summaryrefslogtreecommitdiff
path: root/skins
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2014-12-27 15:41:37 +0100
committerPierre Schmitz <pierre@archlinux.de>2014-12-31 11:43:28 +0100
commitc1f9b1f7b1b77776192048005dcc66dcf3df2bfb (patch)
tree2b38796e738dd74cb42ecd9bfd151803108386bc /skins
parentb88ab0086858470dd1f644e64cb4e4f62bb2be9b (diff)
Update to MediaWiki 1.24.1
Diffstat (limited to 'skins')
-rw-r--r--skins/ArchLinux.php348
-rw-r--r--skins/ArchLinux/ArchLinux.php53
-rw-r--r--skins/ArchLinux/ArchLinuxTemplate.php405
-rw-r--r--skins/ArchLinux/COPYING342
-rw-r--r--skins/ArchLinux/FF2Fixes.css (renamed from skins/archlinux/FF2Fixes.css)0
-rw-r--r--skins/ArchLinux/IE60Fixes.css (renamed from skins/archlinux/IE60Fixes.css)29
-rw-r--r--skins/ArchLinux/IE70Fixes.css (renamed from skins/archlinux/IE70Fixes.css)14
-rw-r--r--skins/ArchLinux/SkinArchLinux.php53
-rw-r--r--skins/ArchLinux/arch.css (renamed from skins/archlinux/arch.css)0
-rw-r--r--skins/ArchLinux/archlogo.gif (renamed from skins/archlinux/archlogo.gif)bin1845 -> 1845 bytes
-rw-r--r--skins/ArchLinux/archlogo.png (renamed from skins/archlinux/archlogo.png)bin4192 -> 4192 bytes
-rw-r--r--skins/ArchLinux/archnavbar.css (renamed from skins/archlinux/archnavbar.css)0
-rw-r--r--skins/ArchLinux/bullet.gif (renamed from skins/archlinux/bullet.gif)bin50 -> 50 bytes
-rw-r--r--skins/ArchLinux/headbg.jpg (renamed from skins/archlinux/headbg.jpg)bin7881 -> 7881 bytes
-rw-r--r--skins/ArchLinux/hooks.txt8
-rw-r--r--skins/ArchLinux/link_icon.gif (renamed from skins/archlinux/link_icon.gif)bin342 -> 342 bytes
-rw-r--r--skins/ArchLinux/magnify-clip.png (renamed from skins/archlinux/magnify-clip.png)bin170 -> 170 bytes
-rw-r--r--skins/ArchLinux/main.css (renamed from skins/monobook/main.css)274
-rw-r--r--skins/ArchLinux/print.css (renamed from skins/archlinux/print.css)0
-rw-r--r--skins/ArchLinux/required.gif (renamed from skins/archlinux/required.gif)bin47 -> 47 bytes
-rw-r--r--skins/ArchLinux/user.gif (renamed from skins/archlinux/user.gif)bin325 -> 325 bytes
-rw-r--r--skins/ArchLinux/wiki-indexed.png (renamed from skins/archlinux/wiki-indexed.png)bin8007 -> 8007 bytes
-rw-r--r--skins/ArchLinux/wiki.png (renamed from skins/archlinux/wiki.png)bin22589 -> 22589 bytes
-rw-r--r--skins/CologneBlue/COPYING342
-rw-r--r--skins/CologneBlue/CologneBlue.php50
-rw-r--r--skins/CologneBlue/SkinCologneBlue.php (renamed from skins/CologneBlue.php)336
-rw-r--r--skins/CologneBlue/i18n/af.json3
-rw-r--r--skins/CologneBlue/i18n/aln.json9
-rw-r--r--skins/CologneBlue/i18n/an.json10
-rw-r--r--skins/CologneBlue/i18n/ar.json10
-rw-r--r--skins/CologneBlue/i18n/arz.json10
-rw-r--r--skins/CologneBlue/i18n/ast.json11
-rw-r--r--skins/CologneBlue/i18n/az.json10
-rw-r--r--skins/CologneBlue/i18n/ba.json8
-rw-r--r--skins/CologneBlue/i18n/bcc.json3
-rw-r--r--skins/CologneBlue/i18n/be-tarask.json3
-rw-r--r--skins/CologneBlue/i18n/be.json3
-rw-r--r--skins/CologneBlue/i18n/bg.json3
-rw-r--r--skins/CologneBlue/i18n/bn.json8
-rw-r--r--skins/CologneBlue/i18n/br.json10
-rw-r--r--skins/CologneBlue/i18n/bs.json11
-rw-r--r--skins/CologneBlue/i18n/ca.json3
-rw-r--r--skins/CologneBlue/i18n/ce.json8
-rw-r--r--skins/CologneBlue/i18n/ckb.json8
-rw-r--r--skins/CologneBlue/i18n/crh-cyrl.json3
-rw-r--r--skins/CologneBlue/i18n/crh-latn.json3
-rw-r--r--skins/CologneBlue/i18n/cs.json12
-rw-r--r--skins/CologneBlue/i18n/cy.json3
-rw-r--r--skins/CologneBlue/i18n/da.json3
-rw-r--r--skins/CologneBlue/i18n/de.json11
-rw-r--r--skins/CologneBlue/i18n/diq.json8
-rw-r--r--skins/CologneBlue/i18n/dsb.json3
-rw-r--r--skins/CologneBlue/i18n/el.json9
-rw-r--r--skins/CologneBlue/i18n/en.json6
-rw-r--r--skins/CologneBlue/i18n/eo.json10
-rw-r--r--skins/CologneBlue/i18n/es.json14
-rw-r--r--skins/CologneBlue/i18n/et.json11
-rw-r--r--skins/CologneBlue/i18n/eu.json3
-rw-r--r--skins/CologneBlue/i18n/fa.json12
-rw-r--r--skins/CologneBlue/i18n/fi.json11
-rw-r--r--skins/CologneBlue/i18n/fo.json3
-rw-r--r--skins/CologneBlue/i18n/fr.json13
-rw-r--r--skins/CologneBlue/i18n/frp.json10
-rw-r--r--skins/CologneBlue/i18n/ga.json8
-rw-r--r--skins/CologneBlue/i18n/gl.json10
-rw-r--r--skins/CologneBlue/i18n/he.json11
-rw-r--r--skins/CologneBlue/i18n/hr.json3
-rw-r--r--skins/CologneBlue/i18n/hsb.json8
-rw-r--r--skins/CologneBlue/i18n/hu.json10
-rw-r--r--skins/CologneBlue/i18n/hy.json3
-rw-r--r--skins/CologneBlue/i18n/ia.json11
-rw-r--r--skins/CologneBlue/i18n/id.json13
-rw-r--r--skins/CologneBlue/i18n/is.json3
-rw-r--r--skins/CologneBlue/i18n/it.json11
-rw-r--r--skins/CologneBlue/i18n/ja.json12
-rw-r--r--skins/CologneBlue/i18n/ka.json9
-rw-r--r--skins/CologneBlue/i18n/kk-arab.json5
-rw-r--r--skins/CologneBlue/i18n/kk-cyrl.json10
-rw-r--r--skins/CologneBlue/i18n/kk-latn.json5
-rw-r--r--skins/CologneBlue/i18n/km.json9
-rw-r--r--skins/CologneBlue/i18n/ko.json12
-rw-r--r--skins/CologneBlue/i18n/krc.json8
-rw-r--r--skins/CologneBlue/i18n/ksh.json10
-rw-r--r--skins/CologneBlue/i18n/la.json3
-rw-r--r--skins/CologneBlue/i18n/lb.json12
-rw-r--r--skins/CologneBlue/i18n/li.json3
-rw-r--r--skins/CologneBlue/i18n/lt.json3
-rw-r--r--skins/CologneBlue/i18n/lzh.json5
-rw-r--r--skins/CologneBlue/i18n/min.json8
-rw-r--r--skins/CologneBlue/i18n/mk.json11
-rw-r--r--skins/CologneBlue/i18n/ml.json11
-rw-r--r--skins/CologneBlue/i18n/mr.json3
-rw-r--r--skins/CologneBlue/i18n/ms.json12
-rw-r--r--skins/CologneBlue/i18n/mt.json11
-rw-r--r--skins/CologneBlue/i18n/mwl.json3
-rw-r--r--skins/CologneBlue/i18n/nb.json5
-rw-r--r--skins/CologneBlue/i18n/nds-nl.json3
-rw-r--r--skins/CologneBlue/i18n/nds.json3
-rw-r--r--skins/CologneBlue/i18n/ne.json9
-rw-r--r--skins/CologneBlue/i18n/new.json8
-rw-r--r--skins/CologneBlue/i18n/nl.json10
-rw-r--r--skins/CologneBlue/i18n/nn.json10
-rw-r--r--skins/CologneBlue/i18n/oc.json10
-rw-r--r--skins/CologneBlue/i18n/os.json3
-rw-r--r--skins/CologneBlue/i18n/pdt.json9
-rw-r--r--skins/CologneBlue/i18n/pl.json12
-rw-r--r--skins/CologneBlue/i18n/ps.json3
-rw-r--r--skins/CologneBlue/i18n/pt-br.json9
-rw-r--r--skins/CologneBlue/i18n/pt.json10
-rw-r--r--skins/CologneBlue/i18n/qqq.json13
-rw-r--r--skins/CologneBlue/i18n/qu.json9
-rw-r--r--skins/CologneBlue/i18n/ro.json9
-rw-r--r--skins/CologneBlue/i18n/roa-tara.json10
-rw-r--r--skins/CologneBlue/i18n/ru.json13
-rw-r--r--skins/CologneBlue/i18n/sa.json3
-rw-r--r--skins/CologneBlue/i18n/scn.json8
-rw-r--r--skins/CologneBlue/i18n/si.json10
-rw-r--r--skins/CologneBlue/i18n/sk.json11
-rw-r--r--skins/CologneBlue/i18n/sq.json3
-rw-r--r--skins/CologneBlue/i18n/sr-ec.json11
-rw-r--r--skins/CologneBlue/i18n/sr-el.json5
-rw-r--r--skins/CologneBlue/i18n/su.json8
-rw-r--r--skins/CologneBlue/i18n/sv.json11
-rw-r--r--skins/CologneBlue/i18n/ta.json3
-rw-r--r--skins/CologneBlue/i18n/te.json8
-rw-r--r--skins/CologneBlue/i18n/tet.json3
-rw-r--r--skins/CologneBlue/i18n/th.json11
-rw-r--r--skins/CologneBlue/i18n/tl.json10
-rw-r--r--skins/CologneBlue/i18n/tt-cyrl.json8
-rw-r--r--skins/CologneBlue/i18n/tt-latn.json8
-rw-r--r--skins/CologneBlue/i18n/tyv.json3
-rw-r--r--skins/CologneBlue/i18n/ug-arab.json10
-rw-r--r--skins/CologneBlue/i18n/uk.json12
-rw-r--r--skins/CologneBlue/i18n/uz.json8
-rw-r--r--skins/CologneBlue/i18n/vep.json8
-rw-r--r--skins/CologneBlue/i18n/vi.json12
-rw-r--r--skins/CologneBlue/i18n/vmf.json8
-rw-r--r--skins/CologneBlue/i18n/vro.json3
-rw-r--r--skins/CologneBlue/i18n/wo.json9
-rw-r--r--skins/CologneBlue/i18n/yi.json9
-rw-r--r--skins/CologneBlue/i18n/yue.json5
-rw-r--r--skins/CologneBlue/i18n/zh-hans.json12
-rw-r--r--skins/CologneBlue/i18n/zh-hant.json11
-rw-r--r--skins/CologneBlue/resources/print.css (renamed from skins/cologneblue/print.css)0
-rw-r--r--skins/CologneBlue/resources/screen.css (renamed from skins/cologneblue/screen.css)35
-rw-r--r--skins/Modern.php169
-rw-r--r--skins/Modern/COPYING342
-rw-r--r--skins/Modern/Modern.php50
-rw-r--r--skins/Modern/SkinModern.php205
-rw-r--r--skins/Modern/i18n/aln.json9
-rw-r--r--skins/Modern/i18n/an.json10
-rw-r--r--skins/Modern/i18n/ar.json10
-rw-r--r--skins/Modern/i18n/arz.json10
-rw-r--r--skins/Modern/i18n/ast.json11
-rw-r--r--skins/Modern/i18n/az.json10
-rw-r--r--skins/Modern/i18n/ba.json8
-rw-r--r--skins/Modern/i18n/bcc.json3
-rw-r--r--skins/Modern/i18n/bcl.json3
-rw-r--r--skins/Modern/i18n/be-tarask.json3
-rw-r--r--skins/Modern/i18n/be.json3
-rw-r--r--skins/Modern/i18n/bg.json3
-rw-r--r--skins/Modern/i18n/bn.json8
-rw-r--r--skins/Modern/i18n/br.json10
-rw-r--r--skins/Modern/i18n/bs.json11
-rw-r--r--skins/Modern/i18n/ca.json8
-rw-r--r--skins/Modern/i18n/ce.json8
-rw-r--r--skins/Modern/i18n/ckb.json8
-rw-r--r--skins/Modern/i18n/cs.json12
-rw-r--r--skins/Modern/i18n/da.json3
-rw-r--r--skins/Modern/i18n/de.json11
-rw-r--r--skins/Modern/i18n/diq.json8
-rw-r--r--skins/Modern/i18n/dsb.json8
-rw-r--r--skins/Modern/i18n/el.json10
-rw-r--r--skins/Modern/i18n/en.json6
-rw-r--r--skins/Modern/i18n/eo.json10
-rw-r--r--skins/Modern/i18n/es.json13
-rw-r--r--skins/Modern/i18n/et.json11
-rw-r--r--skins/Modern/i18n/eu.json8
-rw-r--r--skins/Modern/i18n/fa.json11
-rw-r--r--skins/Modern/i18n/fi.json12
-rw-r--r--skins/Modern/i18n/fr.json13
-rw-r--r--skins/Modern/i18n/frp.json10
-rw-r--r--skins/Modern/i18n/fur.json3
-rw-r--r--skins/Modern/i18n/ga.json8
-rw-r--r--skins/Modern/i18n/gl.json10
-rw-r--r--skins/Modern/i18n/he.json5
-rw-r--r--skins/Modern/i18n/hsb.json8
-rw-r--r--skins/Modern/i18n/hu.json10
-rw-r--r--skins/Modern/i18n/hy.json8
-rw-r--r--skins/Modern/i18n/ia.json11
-rw-r--r--skins/Modern/i18n/id.json13
-rw-r--r--skins/Modern/i18n/is.json3
-rw-r--r--skins/Modern/i18n/it.json11
-rw-r--r--skins/Modern/i18n/ja.json12
-rw-r--r--skins/Modern/i18n/ka.json9
-rw-r--r--skins/Modern/i18n/kk-arab.json5
-rw-r--r--skins/Modern/i18n/kk-cyrl.json5
-rw-r--r--skins/Modern/i18n/kk-latn.json5
-rw-r--r--skins/Modern/i18n/km.json9
-rw-r--r--skins/Modern/i18n/ko.json10
-rw-r--r--skins/Modern/i18n/krc.json8
-rw-r--r--skins/Modern/i18n/ksh.json10
-rw-r--r--skins/Modern/i18n/lb.json12
-rw-r--r--skins/Modern/i18n/lt.json8
-rw-r--r--skins/Modern/i18n/lzh.json5
-rw-r--r--skins/Modern/i18n/mai.json8
-rw-r--r--skins/Modern/i18n/min.json8
-rw-r--r--skins/Modern/i18n/mk.json11
-rw-r--r--skins/Modern/i18n/ml.json11
-rw-r--r--skins/Modern/i18n/mr.json3
-rw-r--r--skins/Modern/i18n/ms.json12
-rw-r--r--skins/Modern/i18n/mt.json11
-rw-r--r--skins/Modern/i18n/mwl.json3
-rw-r--r--skins/Modern/i18n/myv.json3
-rw-r--r--skins/Modern/i18n/nb.json5
-rw-r--r--skins/Modern/i18n/nds-nl.json8
-rw-r--r--skins/Modern/i18n/ne.json9
-rw-r--r--skins/Modern/i18n/new.json8
-rw-r--r--skins/Modern/i18n/nl.json10
-rw-r--r--skins/Modern/i18n/nn.json10
-rw-r--r--skins/Modern/i18n/oc.json10
-rw-r--r--skins/Modern/i18n/pdt.json9
-rw-r--r--skins/Modern/i18n/pl.json12
-rw-r--r--skins/Modern/i18n/ps.json3
-rw-r--r--skins/Modern/i18n/pt-br.json9
-rw-r--r--skins/Modern/i18n/pt.json12
-rw-r--r--skins/Modern/i18n/qqq.json11
-rw-r--r--skins/Modern/i18n/qu.json9
-rw-r--r--skins/Modern/i18n/ro.json9
-rw-r--r--skins/Modern/i18n/roa-tara.json10
-rw-r--r--skins/Modern/i18n/ru.json14
-rw-r--r--skins/Modern/i18n/sah.json3
-rw-r--r--skins/Modern/i18n/scn.json8
-rw-r--r--skins/Modern/i18n/si.json9
-rw-r--r--skins/Modern/i18n/sk.json10
-rw-r--r--skins/Modern/i18n/sr-ec.json11
-rw-r--r--skins/Modern/i18n/sr-el.json5
-rw-r--r--skins/Modern/i18n/su.json8
-rw-r--r--skins/Modern/i18n/sv.json11
-rw-r--r--skins/Modern/i18n/te.json8
-rw-r--r--skins/Modern/i18n/th.json11
-rw-r--r--skins/Modern/i18n/tl.json10
-rw-r--r--skins/Modern/i18n/tr.json8
-rw-r--r--skins/Modern/i18n/tt-cyrl.json8
-rw-r--r--skins/Modern/i18n/tt-latn.json8
-rw-r--r--skins/Modern/i18n/tyv.json8
-rw-r--r--skins/Modern/i18n/tzm.json8
-rw-r--r--skins/Modern/i18n/ug-arab.json10
-rw-r--r--skins/Modern/i18n/uk.json10
-rw-r--r--skins/Modern/i18n/uz.json8
-rw-r--r--skins/Modern/i18n/vep.json8
-rw-r--r--skins/Modern/i18n/vi.json12
-rw-r--r--skins/Modern/i18n/vmf.json8
-rw-r--r--skins/Modern/i18n/wo.json9
-rw-r--r--skins/Modern/i18n/yi.json9
-rw-r--r--skins/Modern/i18n/yue.json5
-rw-r--r--skins/Modern/i18n/zh-hans.json12
-rw-r--r--skins/Modern/i18n/zh-hant.json11
-rw-r--r--skins/Modern/resources/images/audio.png (renamed from skins/archlinux/audio.png)bin186 -> 186 bytes
-rw-r--r--skins/Modern/resources/images/bullet.gif (renamed from skins/common/images/bullet.gif)bin50 -> 50 bytes
-rw-r--r--skins/Modern/resources/images/discussionitem_icon.gif (renamed from skins/archlinux/discussionitem_icon.gif)bin549 -> 549 bytes
-rw-r--r--skins/Modern/resources/images/document.png (renamed from skins/archlinux/document.png)bin152 -> 152 bytes
-rw-r--r--skins/Modern/resources/images/external.png (renamed from skins/modern/external.png)bin141 -> 141 bytes
-rw-r--r--skins/Modern/resources/images/file_icon.gif (renamed from skins/archlinux/file_icon.gif)bin323 -> 323 bytes
-rw-r--r--skins/Modern/resources/images/footer-grad.png (renamed from skins/modern/footer-grad.png)bin81 -> 81 bytes
-rw-r--r--skins/Modern/resources/images/link_icon.gif (renamed from skins/common/images/link_icon.gif)bin342 -> 342 bytes
-rw-r--r--skins/Modern/resources/images/lock_icon.gif (renamed from skins/modern/lock_icon.gif)bin321 -> 321 bytes
-rw-r--r--skins/Modern/resources/images/mail_icon.gif (renamed from skins/archlinux/mail_icon.gif)bin321 -> 321 bytes
-rw-r--r--skins/Modern/resources/images/news_icon.png (renamed from skins/archlinux/news_icon.png)bin284 -> 284 bytes
-rw-r--r--skins/Modern/resources/images/video.png (renamed from skins/modern/video.png)bin113 -> 113 bytes
-rw-r--r--skins/Modern/resources/main.css (renamed from skins/modern/main.css)73
-rw-r--r--skins/Modern/resources/print.css (renamed from skins/modern/print.css)1
-rw-r--r--skins/MonoBook.php325
-rw-r--r--skins/MonoBook/COPYING342
-rw-r--r--skins/MonoBook/IE60Fixes.css (renamed from skins/monobook/IE60Fixes.css)29
-rw-r--r--skins/MonoBook/IE70Fixes.css (renamed from skins/monobook/IE70Fixes.css)14
-rw-r--r--skins/MonoBook/MonoBook.php52
-rw-r--r--skins/MonoBook/MonoBookTemplate.php379
-rw-r--r--skins/MonoBook/SkinMonoBook.php53
-rw-r--r--skins/MonoBook/bullet.gif (renamed from skins/modern/bullet.gif)bin50 -> 50 bytes
-rw-r--r--skins/MonoBook/headbg.jpg (renamed from skins/monobook/headbg.jpg)bin7881 -> 7881 bytes
-rw-r--r--skins/MonoBook/hooks.txt8
-rw-r--r--skins/MonoBook/i18n/aln.json9
-rw-r--r--skins/MonoBook/i18n/an.json10
-rw-r--r--skins/MonoBook/i18n/ar.json10
-rw-r--r--skins/MonoBook/i18n/arz.json10
-rw-r--r--skins/MonoBook/i18n/ast.json11
-rw-r--r--skins/MonoBook/i18n/az.json11
-rw-r--r--skins/MonoBook/i18n/bcc.json10
-rw-r--r--skins/MonoBook/i18n/bcl.json9
-rw-r--r--skins/MonoBook/i18n/be-tarask.json4
-rw-r--r--skins/MonoBook/i18n/be.json12
-rw-r--r--skins/MonoBook/i18n/bg.json6
-rw-r--r--skins/MonoBook/i18n/bn.json8
-rw-r--r--skins/MonoBook/i18n/br.json10
-rw-r--r--skins/MonoBook/i18n/bs.json11
-rw-r--r--skins/MonoBook/i18n/ca.json12
-rw-r--r--skins/MonoBook/i18n/ce.json9
-rw-r--r--skins/MonoBook/i18n/ckb.json4
-rw-r--r--skins/MonoBook/i18n/crh-cyrl.json5
-rw-r--r--skins/MonoBook/i18n/crh-latn.json5
-rw-r--r--skins/MonoBook/i18n/cs.json13
-rw-r--r--skins/MonoBook/i18n/da.json12
-rw-r--r--skins/MonoBook/i18n/de.json12
-rw-r--r--skins/MonoBook/i18n/diq.json8
-rw-r--r--skins/MonoBook/i18n/dsb.json11
-rw-r--r--skins/MonoBook/i18n/el.json9
-rw-r--r--skins/MonoBook/i18n/en.json9
-rw-r--r--skins/MonoBook/i18n/eo.json10
-rw-r--r--skins/MonoBook/i18n/es.json13
-rw-r--r--skins/MonoBook/i18n/et.json11
-rw-r--r--skins/MonoBook/i18n/eu.json4
-rw-r--r--skins/MonoBook/i18n/ext.json4
-rw-r--r--skins/MonoBook/i18n/fa.json11
-rw-r--r--skins/MonoBook/i18n/fi.json10
-rw-r--r--skins/MonoBook/i18n/fr.json13
-rw-r--r--skins/MonoBook/i18n/frp.json10
-rw-r--r--skins/MonoBook/i18n/fur.json4
-rw-r--r--skins/MonoBook/i18n/ga.json5
-rw-r--r--skins/MonoBook/i18n/gan-hans.json5
-rw-r--r--skins/MonoBook/i18n/gan-hant.json5
-rw-r--r--skins/MonoBook/i18n/gd.json8
-rw-r--r--skins/MonoBook/i18n/gl.json12
-rw-r--r--skins/MonoBook/i18n/hak.json9
-rw-r--r--skins/MonoBook/i18n/he.json12
-rw-r--r--skins/MonoBook/i18n/hi.json11
-rw-r--r--skins/MonoBook/i18n/hr.json6
-rw-r--r--skins/MonoBook/i18n/hsb.json10
-rw-r--r--skins/MonoBook/i18n/hu.json10
-rw-r--r--skins/MonoBook/i18n/hy.json10
-rw-r--r--skins/MonoBook/i18n/ia.json11
-rw-r--r--skins/MonoBook/i18n/id.json13
-rw-r--r--skins/MonoBook/i18n/ilo.json8
-rw-r--r--skins/MonoBook/i18n/is.json9
-rw-r--r--skins/MonoBook/i18n/it.json11
-rw-r--r--skins/MonoBook/i18n/ja.json13
-rw-r--r--skins/MonoBook/i18n/ka.json10
-rw-r--r--skins/MonoBook/i18n/kk-arab.json6
-rw-r--r--skins/MonoBook/i18n/kk-cyrl.json10
-rw-r--r--skins/MonoBook/i18n/kk-latn.json6
-rw-r--r--skins/MonoBook/i18n/km.json9
-rw-r--r--skins/MonoBook/i18n/ko.json11
-rw-r--r--skins/MonoBook/i18n/krc.json8
-rw-r--r--skins/MonoBook/i18n/ksh.json10
-rw-r--r--skins/MonoBook/i18n/ku-latn.json8
-rw-r--r--skins/MonoBook/i18n/lb.json11
-rw-r--r--skins/MonoBook/i18n/lt.json10
-rw-r--r--skins/MonoBook/i18n/lzh.json6
-rw-r--r--skins/MonoBook/i18n/mg.json4
-rw-r--r--skins/MonoBook/i18n/min.json8
-rw-r--r--skins/MonoBook/i18n/mk.json11
-rw-r--r--skins/MonoBook/i18n/ml.json11
-rw-r--r--skins/MonoBook/i18n/mr.json4
-rw-r--r--skins/MonoBook/i18n/ms.json13
-rw-r--r--skins/MonoBook/i18n/mt.json10
-rw-r--r--skins/MonoBook/i18n/mwl.json4
-rw-r--r--skins/MonoBook/i18n/nb.json7
-rw-r--r--skins/MonoBook/i18n/nds-nl.json8
-rw-r--r--skins/MonoBook/i18n/nds.json4
-rw-r--r--skins/MonoBook/i18n/ne.json9
-rw-r--r--skins/MonoBook/i18n/new.json8
-rw-r--r--skins/MonoBook/i18n/nl.json12
-rw-r--r--skins/MonoBook/i18n/nn.json12
-rw-r--r--skins/MonoBook/i18n/nv.json4
-rw-r--r--skins/MonoBook/i18n/oc.json10
-rw-r--r--skins/MonoBook/i18n/os.json4
-rw-r--r--skins/MonoBook/i18n/pa.json4
-rw-r--r--skins/MonoBook/i18n/pam.json4
-rw-r--r--skins/MonoBook/i18n/pdt.json9
-rw-r--r--skins/MonoBook/i18n/pl.json12
-rw-r--r--skins/MonoBook/i18n/pms.json5
-rw-r--r--skins/MonoBook/i18n/ps.json4
-rw-r--r--skins/MonoBook/i18n/pt-br.json11
-rw-r--r--skins/MonoBook/i18n/pt.json13
-rw-r--r--skins/MonoBook/i18n/qqq.json13
-rw-r--r--skins/MonoBook/i18n/qu.json9
-rw-r--r--skins/MonoBook/i18n/rm.json9
-rw-r--r--skins/MonoBook/i18n/ro.json9
-rw-r--r--skins/MonoBook/i18n/roa-tara.json10
-rw-r--r--skins/MonoBook/i18n/ru.json13
-rw-r--r--skins/MonoBook/i18n/sa.json4
-rw-r--r--skins/MonoBook/i18n/sah.json9
-rw-r--r--skins/MonoBook/i18n/scn.json12
-rw-r--r--skins/MonoBook/i18n/si.json9
-rw-r--r--skins/MonoBook/i18n/sk.json11
-rw-r--r--skins/MonoBook/i18n/sq.json8
-rw-r--r--skins/MonoBook/i18n/sr-ec.json10
-rw-r--r--skins/MonoBook/i18n/sr-el.json10
-rw-r--r--skins/MonoBook/i18n/stq.json9
-rw-r--r--skins/MonoBook/i18n/su.json9
-rw-r--r--skins/MonoBook/i18n/sv.json13
-rw-r--r--skins/MonoBook/i18n/te.json8
-rw-r--r--skins/MonoBook/i18n/th.json11
-rw-r--r--skins/MonoBook/i18n/tl.json11
-rw-r--r--skins/MonoBook/i18n/tr.json8
-rw-r--r--skins/MonoBook/i18n/tt-cyrl.json8
-rw-r--r--skins/MonoBook/i18n/tt-latn.json8
-rw-r--r--skins/MonoBook/i18n/tyv.json8
-rw-r--r--skins/MonoBook/i18n/ug-arab.json10
-rw-r--r--skins/MonoBook/i18n/uk.json13
-rw-r--r--skins/MonoBook/i18n/vep.json8
-rw-r--r--skins/MonoBook/i18n/vi.json10
-rw-r--r--skins/MonoBook/i18n/vmf.json8
-rw-r--r--skins/MonoBook/i18n/vo.json4
-rw-r--r--skins/MonoBook/i18n/vro.json9
-rw-r--r--skins/MonoBook/i18n/wa.json8
-rw-r--r--skins/MonoBook/i18n/wo.json9
-rw-r--r--skins/MonoBook/i18n/yi.json9
-rw-r--r--skins/MonoBook/i18n/yue.json6
-rw-r--r--skins/MonoBook/i18n/zh-hans.json13
-rw-r--r--skins/MonoBook/i18n/zh-hant.json11
-rw-r--r--skins/MonoBook/link_icon.gif (renamed from skins/modern/link_icon.gif)bin342 -> 342 bytes
-rw-r--r--skins/MonoBook/magnify-clip.png (renamed from skins/monobook/magnify-clip.png)bin170 -> 170 bytes
-rw-r--r--skins/MonoBook/main.css (renamed from skins/archlinux/main.css)274
-rw-r--r--skins/MonoBook/required.gif (renamed from skins/monobook/required.gif)bin47 -> 47 bytes
-rw-r--r--skins/MonoBook/user.gif (renamed from skins/monobook/user.gif)bin325 -> 325 bytes
-rw-r--r--skins/MonoBook/wiki-indexed.png (renamed from skins/monobook/wiki-indexed.png)bin8007 -> 8007 bytes
-rw-r--r--skins/MonoBook/wiki.png (renamed from skins/monobook/wiki.png)bin22589 -> 22589 bytes
-rw-r--r--skins/README29
-rw-r--r--skins/Vector.php456
-rw-r--r--skins/Vector/COPYING342
-rw-r--r--skins/Vector/SkinVector.php96
-rw-r--r--skins/Vector/Vector.php110
-rw-r--r--skins/Vector/VectorTemplate.php585
-rw-r--r--skins/Vector/collapsibleTabs.js (renamed from skins/vector/collapsibleTabs.js)113
-rw-r--r--skins/Vector/components/animations.less28
-rw-r--r--skins/Vector/components/common.less134
-rw-r--r--skins/Vector/components/externalLinks.less10
-rw-r--r--skins/Vector/components/footer.less57
-rw-r--r--skins/Vector/components/navigation.less144
-rw-r--r--skins/Vector/components/personalMenu.less40
-rw-r--r--skins/Vector/components/search.less111
-rw-r--r--skins/Vector/components/tabs.less245
-rw-r--r--skins/Vector/components/watchstar.less48
-rw-r--r--skins/Vector/composer.json40
-rw-r--r--skins/Vector/csshover.htc (renamed from skins/vector/csshover.htc)0
-rw-r--r--skins/Vector/csshover.min.htc (renamed from skins/vector/csshover.min.htc)0
-rw-r--r--skins/Vector/hooks.txt6
-rw-r--r--skins/Vector/i18n/ab.json13
-rw-r--r--skins/Vector/i18n/ace.json19
-rw-r--r--skins/Vector/i18n/ady-cyrl.json21
-rw-r--r--skins/Vector/i18n/aeb.json19
-rw-r--r--skins/Vector/i18n/af.json20
-rw-r--r--skins/Vector/i18n/aln.json20
-rw-r--r--skins/Vector/i18n/am.json22
-rw-r--r--skins/Vector/i18n/an.json21
-rw-r--r--skins/Vector/i18n/ang.json18
-rw-r--r--skins/Vector/i18n/ar.json28
-rw-r--r--skins/Vector/i18n/arc.json20
-rw-r--r--skins/Vector/i18n/arn.json19
-rw-r--r--skins/Vector/i18n/aro.json8
-rw-r--r--skins/Vector/i18n/arq.json19
-rw-r--r--skins/Vector/i18n/ary.json19
-rw-r--r--skins/Vector/i18n/arz.json22
-rw-r--r--skins/Vector/i18n/as.json21
-rw-r--r--skins/Vector/i18n/ase.json23
-rw-r--r--skins/Vector/i18n/ast.json24
-rw-r--r--skins/Vector/i18n/av.json8
-rw-r--r--skins/Vector/i18n/avk.json16
-rw-r--r--skins/Vector/i18n/az.json28
-rw-r--r--skins/Vector/i18n/azb.json20
-rw-r--r--skins/Vector/i18n/ba.json20
-rw-r--r--skins/Vector/i18n/ban.json17
-rw-r--r--skins/Vector/i18n/bar.json19
-rw-r--r--skins/Vector/i18n/bbc-latn.json21
-rw-r--r--skins/Vector/i18n/bcc.json20
-rw-r--r--skins/Vector/i18n/bcl.json19
-rw-r--r--skins/Vector/i18n/be-tarask.json22
-rw-r--r--skins/Vector/i18n/be.json23
-rw-r--r--skins/Vector/i18n/bew.json11
-rw-r--r--skins/Vector/i18n/bg.json22
-rw-r--r--skins/Vector/i18n/bho.json19
-rw-r--r--skins/Vector/i18n/bi.json10
-rw-r--r--skins/Vector/i18n/bjn.json19
-rw-r--r--skins/Vector/i18n/bm.json8
-rw-r--r--skins/Vector/i18n/bn.json25
-rw-r--r--skins/Vector/i18n/bo.json19
-rw-r--r--skins/Vector/i18n/bpy.json18
-rw-r--r--skins/Vector/i18n/br.json23
-rw-r--r--skins/Vector/i18n/brh.json16
-rw-r--r--skins/Vector/i18n/bs.json22
-rw-r--r--skins/Vector/i18n/bto.json18
-rw-r--r--skins/Vector/i18n/bug.json12
-rw-r--r--skins/Vector/i18n/bxr.json16
-rw-r--r--skins/Vector/i18n/ca.json28
-rw-r--r--skins/Vector/i18n/cdo.json20
-rw-r--r--skins/Vector/i18n/ce.json21
-rw-r--r--skins/Vector/i18n/ceb.json18
-rw-r--r--skins/Vector/i18n/ckb.json21
-rw-r--r--skins/Vector/i18n/co.json17
-rw-r--r--skins/Vector/i18n/cps.json19
-rw-r--r--skins/Vector/i18n/crh-cyrl.json18
-rw-r--r--skins/Vector/i18n/crh-latn.json18
-rw-r--r--skins/Vector/i18n/cs.json23
-rw-r--r--skins/Vector/i18n/csb.json19
-rw-r--r--skins/Vector/i18n/cu.json18
-rw-r--r--skins/Vector/i18n/cv.json17
-rw-r--r--skins/Vector/i18n/cy.json19
-rw-r--r--skins/Vector/i18n/da.json22
-rw-r--r--skins/Vector/i18n/de.json26
-rw-r--r--skins/Vector/i18n/diq.json23
-rw-r--r--skins/Vector/i18n/dsb.json18
-rw-r--r--skins/Vector/i18n/dtp.json19
-rw-r--r--skins/Vector/i18n/dv.json17
-rw-r--r--skins/Vector/i18n/ee.json14
-rw-r--r--skins/Vector/i18n/egl.json19
-rw-r--r--skins/Vector/i18n/el.json26
-rw-r--r--skins/Vector/i18n/en.json21
-rw-r--r--skins/Vector/i18n/eo.json24
-rw-r--r--skins/Vector/i18n/es-formal.json10
-rw-r--r--skins/Vector/i18n/es.json32
-rw-r--r--skins/Vector/i18n/esu.json9
-rw-r--r--skins/Vector/i18n/et.json25
-rw-r--r--skins/Vector/i18n/eu.json21
-rw-r--r--skins/Vector/i18n/ext.json18
-rw-r--r--skins/Vector/i18n/fa.json27
-rw-r--r--skins/Vector/i18n/ff.json14
-rw-r--r--skins/Vector/i18n/fi.json24
-rw-r--r--skins/Vector/i18n/fit.json18
-rw-r--r--skins/Vector/i18n/fo.json20
-rw-r--r--skins/Vector/i18n/fr.json28
-rw-r--r--skins/Vector/i18n/frc.json9
-rw-r--r--skins/Vector/i18n/frp.json21
-rw-r--r--skins/Vector/i18n/frr.json21
-rw-r--r--skins/Vector/i18n/fur.json19
-rw-r--r--skins/Vector/i18n/fy.json18
-rw-r--r--skins/Vector/i18n/ga.json21
-rw-r--r--skins/Vector/i18n/gag.json10
-rw-r--r--skins/Vector/i18n/gan-hans.json19
-rw-r--r--skins/Vector/i18n/gan-hant.json18
-rw-r--r--skins/Vector/i18n/gd.json21
-rw-r--r--skins/Vector/i18n/gl.json24
-rw-r--r--skins/Vector/i18n/gom-deva.json19
-rw-r--r--skins/Vector/i18n/gom-latn.json18
-rw-r--r--skins/Vector/i18n/grc.json19
-rw-r--r--skins/Vector/i18n/gsw.json18
-rw-r--r--skins/Vector/i18n/gu.json23
-rw-r--r--skins/Vector/i18n/guc.json15
-rw-r--r--skins/Vector/i18n/gv.json19
-rw-r--r--skins/Vector/i18n/ha.json7
-rw-r--r--skins/Vector/i18n/hak.json19
-rw-r--r--skins/Vector/i18n/haw.json18
-rw-r--r--skins/Vector/i18n/he.json24
-rw-r--r--skins/Vector/i18n/hi.json21
-rw-r--r--skins/Vector/i18n/hif-latn.json19
-rw-r--r--skins/Vector/i18n/hil.json18
-rw-r--r--skins/Vector/i18n/hr.json19
-rw-r--r--skins/Vector/i18n/hrx.json18
-rw-r--r--skins/Vector/i18n/hsb.json19
-rw-r--r--skins/Vector/i18n/hsn.json10
-rw-r--r--skins/Vector/i18n/ht.json20
-rw-r--r--skins/Vector/i18n/hu-formal.json18
-rw-r--r--skins/Vector/i18n/hu.json26
-rw-r--r--skins/Vector/i18n/hy.json23
-rw-r--r--skins/Vector/i18n/ia.json22
-rw-r--r--skins/Vector/i18n/id.json27
-rw-r--r--skins/Vector/i18n/ie.json21
-rw-r--r--skins/Vector/i18n/ig.json18
-rw-r--r--skins/Vector/i18n/ike-latn.json4
-rw-r--r--skins/Vector/i18n/ilo.json21
-rw-r--r--skins/Vector/i18n/inh.json19
-rw-r--r--skins/Vector/i18n/io.json18
-rw-r--r--skins/Vector/i18n/is.json21
-rw-r--r--skins/Vector/i18n/it.json27
-rw-r--r--skins/Vector/i18n/izh.json8
-rw-r--r--skins/Vector/i18n/ja.json29
-rw-r--r--skins/Vector/i18n/jam.json19
-rw-r--r--skins/Vector/i18n/jbo.json21
-rw-r--r--skins/Vector/i18n/jv.json18
-rw-r--r--skins/Vector/i18n/ka.json23
-rw-r--r--skins/Vector/i18n/kaa.json18
-rw-r--r--skins/Vector/i18n/kab.json18
-rw-r--r--skins/Vector/i18n/kbd-cyrl.json19
-rw-r--r--skins/Vector/i18n/kg.json14
-rw-r--r--skins/Vector/i18n/khw.json18
-rw-r--r--skins/Vector/i18n/ki.json8
-rw-r--r--skins/Vector/i18n/kiu.json18
-rw-r--r--skins/Vector/i18n/kk-cyrl.json22
-rw-r--r--skins/Vector/i18n/kl.json15
-rw-r--r--skins/Vector/i18n/km.json21
-rw-r--r--skins/Vector/i18n/kn.json20
-rw-r--r--skins/Vector/i18n/ko.json25
-rw-r--r--skins/Vector/i18n/koi.json9
-rw-r--r--skins/Vector/i18n/krc.json21
-rw-r--r--skins/Vector/i18n/kri.json16
-rw-r--r--skins/Vector/i18n/ks-arab.json5
-rw-r--r--skins/Vector/i18n/ksh.json21
-rw-r--r--skins/Vector/i18n/ku-latn.json19
-rw-r--r--skins/Vector/i18n/kv.json10
-rw-r--r--skins/Vector/i18n/kw.json20
-rw-r--r--skins/Vector/i18n/ky.json21
-rw-r--r--skins/Vector/i18n/la.json19
-rw-r--r--skins/Vector/i18n/lad.json18
-rw-r--r--skins/Vector/i18n/lb.json23
-rw-r--r--skins/Vector/i18n/lez.json21
-rw-r--r--skins/Vector/i18n/lg.json18
-rw-r--r--skins/Vector/i18n/li.json18
-rw-r--r--skins/Vector/i18n/lij.json19
-rw-r--r--skins/Vector/i18n/liv.json16
-rw-r--r--skins/Vector/i18n/lmo.json20
-rw-r--r--skins/Vector/i18n/ln.json19
-rw-r--r--skins/Vector/i18n/lrc.json18
-rw-r--r--skins/Vector/i18n/lt.json22
-rw-r--r--skins/Vector/i18n/ltg.json15
-rw-r--r--skins/Vector/i18n/lus.json18
-rw-r--r--skins/Vector/i18n/luz.json9
-rw-r--r--skins/Vector/i18n/lv.json20
-rw-r--r--skins/Vector/i18n/lzh.json21
-rw-r--r--skins/Vector/i18n/lzz.json15
-rw-r--r--skins/Vector/i18n/mai.json20
-rw-r--r--skins/Vector/i18n/map-bms.json18
-rw-r--r--skins/Vector/i18n/mdf.json18
-rw-r--r--skins/Vector/i18n/mg.json18
-rw-r--r--skins/Vector/i18n/mhr.json21
-rw-r--r--skins/Vector/i18n/mi.json8
-rw-r--r--skins/Vector/i18n/mic.json10
-rw-r--r--skins/Vector/i18n/min.json21
-rw-r--r--skins/Vector/i18n/mk.json24
-rw-r--r--skins/Vector/i18n/ml.json24
-rw-r--r--skins/Vector/i18n/mn.json20
-rw-r--r--skins/Vector/i18n/mnc.json15
-rw-r--r--skins/Vector/i18n/mr.json21
-rw-r--r--skins/Vector/i18n/mrj.json15
-rw-r--r--skins/Vector/i18n/ms.json25
-rw-r--r--skins/Vector/i18n/mt.json20
-rw-r--r--skins/Vector/i18n/mui.json9
-rw-r--r--skins/Vector/i18n/my.json19
-rw-r--r--skins/Vector/i18n/myv.json18
-rw-r--r--skins/Vector/i18n/mzn.json19
-rw-r--r--skins/Vector/i18n/nah.json15
-rw-r--r--skins/Vector/i18n/nan.json19
-rw-r--r--skins/Vector/i18n/nap.json19
-rw-r--r--skins/Vector/i18n/nb.json22
-rw-r--r--skins/Vector/i18n/nds-nl.json19
-rw-r--r--skins/Vector/i18n/nds.json19
-rw-r--r--skins/Vector/i18n/ne.json22
-rw-r--r--skins/Vector/i18n/new.json12
-rw-r--r--skins/Vector/i18n/nl.json28
-rw-r--r--skins/Vector/i18n/nn.json20
-rw-r--r--skins/Vector/i18n/nov.json10
-rw-r--r--skins/Vector/i18n/nrm.json10
-rw-r--r--skins/Vector/i18n/nso.json16
-rw-r--r--skins/Vector/i18n/oc.json21
-rw-r--r--skins/Vector/i18n/or.json19
-rw-r--r--skins/Vector/i18n/os.json19
-rw-r--r--skins/Vector/i18n/pa.json21
-rw-r--r--skins/Vector/i18n/pam.json19
-rw-r--r--skins/Vector/i18n/pbb.json12
-rw-r--r--skins/Vector/i18n/pcd.json18
-rw-r--r--skins/Vector/i18n/pdc.json14
-rw-r--r--skins/Vector/i18n/pfl.json17
-rw-r--r--skins/Vector/i18n/pi.json8
-rw-r--r--skins/Vector/i18n/pih.json8
-rw-r--r--skins/Vector/i18n/pl.json24
-rw-r--r--skins/Vector/i18n/pms.json18
-rw-r--r--skins/Vector/i18n/pnb.json19
-rw-r--r--skins/Vector/i18n/pnt.json19
-rw-r--r--skins/Vector/i18n/ppl.json16
-rw-r--r--skins/Vector/i18n/prg.json17
-rw-r--r--skins/Vector/i18n/ps.json21
-rw-r--r--skins/Vector/i18n/pt-br.json24
-rw-r--r--skins/Vector/i18n/pt.json28
-rw-r--r--skins/Vector/i18n/qqq.json28
-rw-r--r--skins/Vector/i18n/qu.json19
-rw-r--r--skins/Vector/i18n/qug.json18
-rw-r--r--skins/Vector/i18n/rap.json10
-rw-r--r--skins/Vector/i18n/rgn.json9
-rw-r--r--skins/Vector/i18n/rif.json12
-rw-r--r--skins/Vector/i18n/rm.json18
-rw-r--r--skins/Vector/i18n/rmf.json15
-rw-r--r--skins/Vector/i18n/ro.json25
-rw-r--r--skins/Vector/i18n/roa-tara.json21
-rw-r--r--skins/Vector/i18n/ru.json28
-rw-r--r--skins/Vector/i18n/rue.json18
-rw-r--r--skins/Vector/i18n/rup.json9
-rw-r--r--skins/Vector/i18n/rw.json11
-rw-r--r--skins/Vector/i18n/ryu.json9
-rw-r--r--skins/Vector/i18n/sa.json19
-rw-r--r--skins/Vector/i18n/sah.json18
-rw-r--r--skins/Vector/i18n/sat.json20
-rw-r--r--skins/Vector/i18n/saz.json8
-rw-r--r--skins/Vector/i18n/sc.json22
-rw-r--r--skins/Vector/i18n/scn.json20
-rw-r--r--skins/Vector/i18n/sco.json20
-rw-r--r--skins/Vector/i18n/sd.json10
-rw-r--r--skins/Vector/i18n/sdc.json17
-rw-r--r--skins/Vector/i18n/sdh.json16
-rw-r--r--skins/Vector/i18n/se.json20
-rw-r--r--skins/Vector/i18n/sg.json18
-rw-r--r--skins/Vector/i18n/sgs.json18
-rw-r--r--skins/Vector/i18n/sh.json18
-rw-r--r--skins/Vector/i18n/shi.json18
-rw-r--r--skins/Vector/i18n/shn.json13
-rw-r--r--skins/Vector/i18n/si.json22
-rw-r--r--skins/Vector/i18n/sk.json24
-rw-r--r--skins/Vector/i18n/sl.json22
-rw-r--r--skins/Vector/i18n/sli.json21
-rw-r--r--skins/Vector/i18n/sly.json13
-rw-r--r--skins/Vector/i18n/so.json18
-rw-r--r--skins/Vector/i18n/sq.json23
-rw-r--r--skins/Vector/i18n/sr-ec.json25
-rw-r--r--skins/Vector/i18n/sr-el.json25
-rw-r--r--skins/Vector/i18n/ss.json13
-rw-r--r--skins/Vector/i18n/stq.json18
-rw-r--r--skins/Vector/i18n/su.json20
-rw-r--r--skins/Vector/i18n/sv.json27
-rw-r--r--skins/Vector/i18n/sw.json19
-rw-r--r--skins/Vector/i18n/szl.json20
-rw-r--r--skins/Vector/i18n/ta.json21
-rw-r--r--skins/Vector/i18n/tcy.json19
-rw-r--r--skins/Vector/i18n/te.json24
-rw-r--r--skins/Vector/i18n/tet.json12
-rw-r--r--skins/Vector/i18n/tg-cyrl.json18
-rw-r--r--skins/Vector/i18n/tg-latn.json18
-rw-r--r--skins/Vector/i18n/th.json24
-rw-r--r--skins/Vector/i18n/tk.json18
-rw-r--r--skins/Vector/i18n/tl.json22
-rw-r--r--skins/Vector/i18n/tly.json18
-rw-r--r--skins/Vector/i18n/tpi.json16
-rw-r--r--skins/Vector/i18n/tr.json23
-rw-r--r--skins/Vector/i18n/tru.json16
-rw-r--r--skins/Vector/i18n/ts.json18
-rw-r--r--skins/Vector/i18n/tt-cyrl.json22
-rw-r--r--skins/Vector/i18n/tt-latn.json19
-rw-r--r--skins/Vector/i18n/tyv.json20
-rw-r--r--skins/Vector/i18n/tzm.json19
-rw-r--r--skins/Vector/i18n/udm.json16
-rw-r--r--skins/Vector/i18n/ug-arab.json23
-rw-r--r--skins/Vector/i18n/uk.json31
-rw-r--r--skins/Vector/i18n/ur.json23
-rw-r--r--skins/Vector/i18n/uz.json24
-rw-r--r--skins/Vector/i18n/vec.json22
-rw-r--r--skins/Vector/i18n/vep.json18
-rw-r--r--skins/Vector/i18n/vi.json25
-rw-r--r--skins/Vector/i18n/vls.json14
-rw-r--r--skins/Vector/i18n/vmf.json19
-rw-r--r--skins/Vector/i18n/vo.json18
-rw-r--r--skins/Vector/i18n/vot.json16
-rw-r--r--skins/Vector/i18n/vro.json18
-rw-r--r--skins/Vector/i18n/wa.json18
-rw-r--r--skins/Vector/i18n/war.json20
-rw-r--r--skins/Vector/i18n/wo.json18
-rw-r--r--skins/Vector/i18n/wuu.json18
-rw-r--r--skins/Vector/i18n/xal.json18
-rw-r--r--skins/Vector/i18n/xh.json4
-rw-r--r--skins/Vector/i18n/xmf.json18
-rw-r--r--skins/Vector/i18n/yi.json23
-rw-r--r--skins/Vector/i18n/yo.json18
-rw-r--r--skins/Vector/i18n/yue.json23
-rw-r--r--skins/Vector/i18n/za.json13
-rw-r--r--skins/Vector/i18n/zea.json18
-rw-r--r--skins/Vector/i18n/zh-hans.json27
-rw-r--r--skins/Vector/i18n/zh-hant.json26
-rw-r--r--skins/Vector/images/arrow-collapsed-ltr.png (renamed from skins/vector/images/arrow-collapsed-ltr.png)bin143 -> 143 bytes
-rw-r--r--skins/Vector/images/arrow-collapsed-ltr.svg1
-rw-r--r--skins/Vector/images/arrow-collapsed-rtl.png (renamed from skins/vector/images/arrow-collapsed-rtl.png)bin145 -> 145 bytes
-rw-r--r--skins/Vector/images/arrow-collapsed-rtl.svg1
-rw-r--r--skins/Vector/images/arrow-down-focus-icon.png (renamed from skins/vector/images/arrow-down-focus-icon.png)bin135 -> 135 bytes
-rw-r--r--skins/Vector/images/arrow-down-focus-icon.svg1
-rw-r--r--skins/Vector/images/arrow-down-icon.png (renamed from skins/vector/images/arrow-down-icon.png)bin135 -> 135 bytes
-rw-r--r--skins/Vector/images/arrow-down-icon.svg1
-rw-r--r--skins/Vector/images/arrow-expanded.png (renamed from skins/vector/images/arrow-expanded.png)bin145 -> 145 bytes
-rw-r--r--skins/Vector/images/arrow-expanded.svg1
-rw-r--r--skins/Vector/images/bullet-icon.png (renamed from skins/vector/images/bullet-icon.png)bin107 -> 107 bytes
-rw-r--r--skins/Vector/images/external-link-ltr-icon.png (renamed from skins/vector/images/external-link-ltr-icon.png)bin141 -> 141 bytes
-rw-r--r--skins/Vector/images/external-link-ltr-icon.svg1
-rw-r--r--skins/Vector/images/external-link-rtl-icon.png (renamed from skins/vector/images/external-link-rtl-icon.png)bin141 -> 141 bytes
-rw-r--r--skins/Vector/images/external-link-rtl-icon.svg1
-rw-r--r--skins/Vector/images/link-icon.png (renamed from skins/vector/images/link-icon.png)bin359 -> 359 bytes
-rw-r--r--skins/Vector/images/magnify-clip.png (renamed from skins/common/images/magnify-clip.png)bin204 -> 204 bytes
-rw-r--r--skins/Vector/images/page-fade.png (renamed from skins/vector/images/page-fade.png)bin115 -> 115 bytes
-rw-r--r--skins/Vector/images/portal-break-ltr.png (renamed from skins/vector/images/portal-break-ltr.png)bin168 -> 168 bytes
-rw-r--r--skins/Vector/images/portal-break-rtl.png (renamed from skins/vector/images/portal-break-rtl.png)bin161 -> 161 bytes
-rw-r--r--skins/Vector/images/portal-break.png (renamed from skins/vector/images/portal-break.png)bin96 -> 96 bytes
-rw-r--r--skins/Vector/images/preferences/break.png (renamed from skins/vector/images/preferences-break.png)bin103 -> 103 bytes
-rw-r--r--skins/Vector/images/preferences/fade.png (renamed from skins/vector/images/preferences-fade.png)bin85 -> 85 bytes
-rw-r--r--skins/Vector/images/search-fade.png (renamed from skins/vector/images/search-fade.png)bin94 -> 94 bytes
-rw-r--r--skins/Vector/images/search-ltr.png (renamed from skins/vector/images/search-ltr.png)bin214 -> 214 bytes
-rw-r--r--skins/Vector/images/search-ltr.svg1
-rw-r--r--skins/Vector/images/search-rtl.png (renamed from skins/vector/images/search-rtl.png)bin214 -> 214 bytes
-rw-r--r--skins/Vector/images/search-rtl.svg1
-rw-r--r--skins/Vector/images/tab-break.png (renamed from skins/vector/images/tab-break.png)bin125 -> 125 bytes
-rw-r--r--skins/Vector/images/tab-current-fade.png (renamed from skins/vector/images/tab-current-fade.png)bin70 -> 70 bytes
-rw-r--r--skins/Vector/images/tab-normal-fade.png (renamed from skins/vector/images/tab-normal-fade.png)bin117 -> 117 bytes
-rw-r--r--skins/Vector/images/unwatch-icon-hl.pngbin0 -> 716 bytes
-rw-r--r--skins/Vector/images/unwatch-icon-hl.svg1
-rw-r--r--skins/Vector/images/unwatch-icon.pngbin0 -> 658 bytes
-rw-r--r--skins/Vector/images/unwatch-icon.svg1
-rw-r--r--skins/Vector/images/user-icon.pngbin0 -> 286 bytes
-rw-r--r--skins/Vector/images/user-icon.svg11
-rw-r--r--skins/Vector/images/watch-icon-hl.pngbin0 -> 640 bytes
-rw-r--r--skins/Vector/images/watch-icon-hl.svg1
-rw-r--r--skins/Vector/images/watch-icon-loading.pngbin0 -> 485 bytes
-rw-r--r--skins/Vector/images/watch-icon-loading.svg1
-rw-r--r--skins/Vector/images/watch-icon.pngbin0 -> 642 bytes
-rw-r--r--skins/Vector/images/watch-icon.svg1
-rw-r--r--skins/Vector/screen-hd.less (renamed from skins/vector/screen-hd.less)4
-rw-r--r--skins/Vector/screen.less9
-rw-r--r--skins/Vector/skinStyles/jquery.tipsy.less4
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/close.pngbin0 -> 139 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/titlebar-fade.pngbin0 -> 81 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-anim_basic_16x16.gifbin0 -> 1553 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-bg_flat_15_cd0a0a_40x100.pngbin0 -> 87 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-bg_flat_70_000000_40x100.pngbin0 -> 87 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-hard_100_f2f5f7_1x100.pngbin0 -> 97 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-hard_80_d7ebf9_1x100.pngbin0 -> 104 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_e4f1fb_1x100.pngbin0 -> 106 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_ffffff_1x100.pngbin0 -> 80 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_25_ffef8f_1x100.pngbin0 -> 152 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-bg_inset-hard_100_f0f0f0_1x100.pngbin0 -> 89 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-icons_2694e8_256x240.pngbin0 -> 3702 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-icons_2e83ff_256x240.pngbin0 -> 4549 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-icons_3d80b3_256x240.pngbin0 -> 3702 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-icons_666666_256x240.pngbin0 -> 3702 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-icons_72a7cf_256x240.pngbin0 -> 3702 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/images/ui-icons_ffffff_256x240.pngbin0 -> 3702 bytes
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.accordion.css16
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.autocomplete.css40
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.button.css347
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.core.css39
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.datepicker.css61
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.dialog.css37
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.progressbar.css12
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.resizable.css19
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.selectable.css11
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.slider.css25
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.tabs.css18
-rw-r--r--skins/Vector/skinStyles/jquery.ui/jquery.ui.theme.css246
-rw-r--r--skins/Vector/skinStyles/mediawiki.notification.less24
-rw-r--r--skins/Vector/skinStyles/mediawiki.special.less7
-rw-r--r--skins/Vector/skinStyles/mediawiki.special.preferences.less114
-rw-r--r--skins/Vector/variables.less39
-rw-r--r--skins/Vector/vector.js107
-rw-r--r--skins/archlinux/external-ltr.pngbin141 -> 0 bytes
-rw-r--r--skins/archlinux/external-rtl.pngbin141 -> 0 bytes
-rw-r--r--skins/archlinux/favicon.icobin575 -> 0 bytes
-rw-r--r--skins/archlinux/lock_icon.gifbin918 -> 0 bytes
-rw-r--r--skins/archlinux/video.pngbin116 -> 0 bytes
-rw-r--r--skins/common/IE80Fixes.css15
-rw-r--r--skins/common/IEFixes.js146
-rw-r--r--skins/common/ajax.js194
-rw-r--r--skins/common/commonContent.css178
-rw-r--r--skins/common/commonElements.css234
-rw-r--r--skins/common/commonInterface.css68
-rw-r--r--skins/common/commonPrint.css390
-rw-r--r--skins/common/config-cc.css57
-rw-r--r--skins/common/config.css148
-rw-r--r--skins/common/config.js108
-rw-r--r--skins/common/feed.css95
-rw-r--r--skins/common/images/Arr_.pngbin96 -> 0 bytes
-rw-r--r--skins/common/images/Arr_d.pngbin205 -> 0 bytes
-rw-r--r--skins/common/images/Arr_l.pngbin205 -> 0 bytes
-rw-r--r--skins/common/images/Arr_r.pngbin206 -> 0 bytes
-rw-r--r--skins/common/images/Arr_u.pngbin207 -> 0 bytes
-rw-r--r--skins/common/images/Checker-16x16.pngbin81 -> 0 bytes
-rw-r--r--skins/common/images/Zoom_sans.gifbin901 -> 0 bytes
-rw-r--r--skins/common/images/add.pngbin526 -> 0 bytes
-rw-r--r--skins/common/images/ajax-loader.gifbin1788 -> 0 bytes
-rw-r--r--skins/common/images/ar/button_bold.pngbin533 -> 0 bytes
-rw-r--r--skins/common/images/ar/button_headline.pngbin484 -> 0 bytes
-rw-r--r--skins/common/images/ar/button_italic.pngbin532 -> 0 bytes
-rw-r--r--skins/common/images/ar/button_link.pngbin557 -> 0 bytes
-rw-r--r--skins/common/images/ar/button_nowiki.pngbin874 -> 0 bytes
-rw-r--r--skins/common/images/arrow_disabled_first_25.pngbin318 -> 0 bytes
-rw-r--r--skins/common/images/arrow_disabled_last_25.pngbin323 -> 0 bytes
-rw-r--r--skins/common/images/arrow_disabled_left_25.pngbin301 -> 0 bytes
-rw-r--r--skins/common/images/arrow_disabled_right_25.pngbin307 -> 0 bytes
-rw-r--r--skins/common/images/arrow_first_25.pngbin352 -> 0 bytes
-rw-r--r--skins/common/images/arrow_last_25.pngbin342 -> 0 bytes
-rw-r--r--skins/common/images/arrow_left_25.pngbin330 -> 0 bytes
-rw-r--r--skins/common/images/arrow_right_25.pngbin337 -> 0 bytes
-rw-r--r--skins/common/images/be-tarask/button_bold.pngbin550 -> 0 bytes
-rw-r--r--skins/common/images/be-tarask/button_italic.pngbin539 -> 0 bytes
-rw-r--r--skins/common/images/be-tarask/button_link.pngbin419 -> 0 bytes
-rw-r--r--skins/common/images/button_bold.pngbin250 -> 0 bytes
-rw-r--r--skins/common/images/button_extlink.pngbin435 -> 0 bytes
-rw-r--r--skins/common/images/button_headline.pngbin440 -> 0 bytes
-rw-r--r--skins/common/images/button_hr.pngbin200 -> 0 bytes
-rw-r--r--skins/common/images/button_image.pngbin483 -> 0 bytes
-rw-r--r--skins/common/images/button_italic.pngbin250 -> 0 bytes
-rw-r--r--skins/common/images/button_link.pngbin280 -> 0 bytes
-rw-r--r--skins/common/images/button_math.pngbin617 -> 0 bytes
-rw-r--r--skins/common/images/button_media.pngbin728 -> 0 bytes
-rw-r--r--skins/common/images/button_nowiki.pngbin322 -> 0 bytes
-rw-r--r--skins/common/images/button_sig.pngbin920 -> 0 bytes
-rw-r--r--skins/common/images/button_template.pngbin178 -> 0 bytes
-rw-r--r--skins/common/images/cc-0.pngbin969 -> 0 bytes
-rw-r--r--skins/common/images/cc-by-nc-sa.pngbin1530 -> 0 bytes
-rw-r--r--skins/common/images/cc-by-sa.pngbin1377 -> 0 bytes
-rw-r--r--skins/common/images/cc-by.pngbin1165 -> 0 bytes
-rw-r--r--skins/common/images/closewindow.pngbin108 -> 0 bytes
-rw-r--r--skins/common/images/closewindow19x19.pngbin833 -> 0 bytes
-rw-r--r--skins/common/images/critical-32.pngbin1758 -> 0 bytes
-rw-r--r--skins/common/images/cyrl/LICENSE17
-rw-r--r--skins/common/images/cyrl/button_bold.pngbin254 -> 0 bytes
-rw-r--r--skins/common/images/cyrl/button_italic.pngbin423 -> 0 bytes
-rw-r--r--skins/common/images/cyrl/button_link.pngbin278 -> 0 bytes
-rw-r--r--skins/common/images/de/button_bold.pngbin255 -> 0 bytes
-rw-r--r--skins/common/images/de/button_italic.pngbin260 -> 0 bytes
-rw-r--r--skins/common/images/diffunderline.gifbin52 -> 0 bytes
-rw-r--r--skins/common/images/download-32.pngbin1759 -> 0 bytes
-rw-r--r--skins/common/images/fa/button_bold.pngbin459 -> 0 bytes
-rw-r--r--skins/common/images/fa/button_headline.pngbin392 -> 0 bytes
-rw-r--r--skins/common/images/fa/button_italic.pngbin512 -> 0 bytes
-rw-r--r--skins/common/images/fa/button_link.pngbin485 -> 0 bytes
-rw-r--r--skins/common/images/fa/button_nowiki.pngbin874 -> 0 bytes
-rw-r--r--skins/common/images/feed-icon.pngbin542 -> 0 bytes
-rw-r--r--skins/common/images/gnu-fdl.pngbin1573 -> 0 bytes
-rw-r--r--skins/common/images/help-question-hover.gifbin1246 -> 0 bytes
-rw-r--r--skins/common/images/help-question.gifbin126 -> 0 bytes
-rw-r--r--skins/common/images/icons/COPYING43
-rw-r--r--skins/common/images/icons/fileicon-c.pngbin1753 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-cpp.pngbin1382 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-deb.pngbin4527 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-djvu.pngbin10436 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-dvi.pngbin12476 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-exe.pngbin5469 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-h.pngbin803 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-html.pngbin7171 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-iso.pngbin6105 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-java.pngbin5706 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-mid.pngbin6316 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-mov.pngbin7579 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-o.pngbin1742 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-ogg.pngbin3151 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-pdf.pngbin4710 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-ps.pngbin2786 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-psd.pngbin7756 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-rm.pngbin2519 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-rpm.pngbin3784 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-svg.pngbin4793 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-tar.pngbin6025 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-tex.pngbin3738 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-ttf.pngbin3193 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon-txt.pngbin3388 -> 0 bytes
-rw-r--r--skins/common/images/icons/fileicon.pngbin789 -> 0 bytes
-rw-r--r--skins/common/images/info-32.pngbin1892 -> 0 bytes
-rw-r--r--skins/common/images/ksh/LICENSE7
-rw-r--r--skins/common/images/ksh/button_S_italic.pngbin368 -> 0 bytes
-rw-r--r--skins/common/images/magnify-clip-rtl.pngbin149 -> 0 bytes
-rw-r--r--skins/common/images/mediawiki.pngbin22589 -> 0 bytes
-rw-r--r--skins/common/images/nextredirectltr.pngbin121 -> 0 bytes
-rw-r--r--skins/common/images/nextredirectrtl.pngbin121 -> 0 bytes
-rw-r--r--skins/common/images/poweredby_mediawiki_88x31.pngbin3525 -> 0 bytes
-rw-r--r--skins/common/images/public-domain.pngbin2017 -> 0 bytes
-rw-r--r--skins/common/images/question-small.pngbin316 -> 0 bytes
-rw-r--r--skins/common/images/question.svg12
-rw-r--r--skins/common/images/redirectltr.pngbin128 -> 0 bytes
-rw-r--r--skins/common/images/redirectrtl.pngbin132 -> 0 bytes
-rw-r--r--skins/common/images/remove.pngbin555 -> 0 bytes
-rw-r--r--skins/common/images/spinner.gifbin1819 -> 0 bytes
-rw-r--r--skins/common/images/tick-32.pngbin1103 -> 0 bytes
-rw-r--r--skins/common/images/tipsy-arrow.gifbin205 -> 0 bytes
-rw-r--r--skins/common/images/tooltip_icon.pngbin352 -> 0 bytes
-rw-r--r--skins/common/images/warning-32.pngbin1299 -> 0 bytes
-rw-r--r--skins/common/images/wiki.pngbin24358 -> 0 bytes
-rw-r--r--skins/common/oldshared.css469
-rw-r--r--skins/common/protect.js387
-rw-r--r--skins/common/shared.css1210
-rw-r--r--skins/common/upload.js356
-rw-r--r--skins/common/wikibits.js248
-rw-r--r--skins/modern/audio.pngbin186 -> 0 bytes
-rw-r--r--skins/modern/discussionitem_icon.gifbin549 -> 0 bytes
-rw-r--r--skins/modern/document.pngbin152 -> 0 bytes
-rw-r--r--skins/modern/file_icon.gifbin323 -> 0 bytes
-rw-r--r--skins/modern/mail_icon.gifbin321 -> 0 bytes
-rw-r--r--skins/modern/news_icon.pngbin284 -> 0 bytes
-rw-r--r--skins/monobook/audio.pngbin186 -> 0 bytes
-rw-r--r--skins/monobook/bullet.gifbin50 -> 0 bytes
-rw-r--r--skins/monobook/discussionitem_icon.gifbin549 -> 0 bytes
-rw-r--r--skins/monobook/document.pngbin152 -> 0 bytes
-rw-r--r--skins/monobook/external-ltr.pngbin141 -> 0 bytes
-rw-r--r--skins/monobook/external-rtl.pngbin141 -> 0 bytes
-rw-r--r--skins/monobook/file_icon.gifbin323 -> 0 bytes
-rw-r--r--skins/monobook/link_icon.gifbin342 -> 0 bytes
-rw-r--r--skins/monobook/lock_icon.gifbin918 -> 0 bytes
-rw-r--r--skins/monobook/mail_icon.gifbin321 -> 0 bytes
-rw-r--r--skins/monobook/news_icon.pngbin284 -> 0 bytes
-rw-r--r--skins/monobook/video.pngbin116 -> 0 bytes
-rw-r--r--skins/vector/beta/screen.less75
-rw-r--r--skins/vector/beta/variables.less37
-rw-r--r--skins/vector/collapsibleNav.js121
-rw-r--r--skins/vector/collapsibleNav.less91
-rw-r--r--skins/vector/externalLinks.less75
-rw-r--r--skins/vector/images/arrow-collapsed-ltr.svg37
-rw-r--r--skins/vector/images/arrow-collapsed-rtl.svg37
-rw-r--r--skins/vector/images/arrow-down-focus-icon.svg37
-rw-r--r--skins/vector/images/arrow-down-icon.svg37
-rw-r--r--skins/vector/images/arrow-expanded.svg37
-rw-r--r--skins/vector/images/audio-icon.pngbin185 -> 0 bytes
-rw-r--r--skins/vector/images/document-icon.pngbin135 -> 0 bytes
-rw-r--r--skins/vector/images/edit-icon.pngbin276 -> 0 bytes
-rw-r--r--skins/vector/images/file-icon.pngbin133 -> 0 bytes
-rw-r--r--skins/vector/images/lock-icon.pngbin174 -> 0 bytes
-rw-r--r--skins/vector/images/magnify-clip.pngbin204 -> 0 bytes
-rw-r--r--skins/vector/images/mail-icon.pngbin197 -> 0 bytes
-rw-r--r--skins/vector/images/news-icon.pngbin180 -> 0 bytes
-rw-r--r--skins/vector/images/talk-icon.pngbin173 -> 0 bytes
-rw-r--r--skins/vector/images/user-icon.pngbin568 -> 0 bytes
-rw-r--r--skins/vector/images/user-icon.svg424
-rw-r--r--skins/vector/images/video-icon.pngbin162 -> 0 bytes
-rw-r--r--skins/vector/images/watch-icon-loading.gifbin840 -> 0 bytes
-rw-r--r--skins/vector/images/watch-icons.pngbin1422 -> 0 bytes
-rw-r--r--skins/vector/screen.less791
-rw-r--r--skins/vector/styles-beta.less13
-rw-r--r--skins/vector/styles.less11
-rw-r--r--skins/vector/variables.less37
-rw-r--r--skins/vector/vector.js55
1008 files changed, 15419 insertions, 8193 deletions
diff --git a/skins/ArchLinux.php b/skins/ArchLinux.php
deleted file mode 100644
index b25d8cd8..00000000
--- a/skins/ArchLinux.php
+++ /dev/null
@@ -1,348 +0,0 @@
-<?php
-/**
- * ArchLinux skin (based on MonoBook)
- *
- * 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
- *
- * @todo document
- * @file
- * @ingroup Skins
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
- die( -1 );
-}
-
-/**
- * Inherit main code from SkinTemplate, set the CSS and template filter.
- * @todo document
- * @ingroup Skins
- */
-class SkinArchLinux extends SkinTemplate {
- /** Using archlinux. */
- var $skinname = 'archlinux', $stylename = 'archlinux',
- $template = 'ArchLinuxTemplate', $useHeadElement = true;
-
- /**
- * @param $out OutputPage
- */
- function setupSkinUserCss( OutputPage $out ) {
- parent::setupSkinUserCss( $out );
-
- $out->addModuleStyles( 'skins.archlinux' );
-
- // TODO: Migrate all of these
- $out->addStyle( 'archlinux/IE60Fixes.css', 'screen', 'IE 6' );
- $out->addStyle( 'archlinux/IE70Fixes.css', 'screen', 'IE 7' );
-
- }
-}
-
-/**
- * @todo document
- * @ingroup Skins
- */
-class ArchLinuxTemplate extends BaseTemplate {
-
- /**
- * Template filter callback for ArchLinux skin.
- * Takes an associative array of data set from a SkinTemplate-based
- * class, and a wrapper for MediaWiki's localization database, and
- * outputs a formatted page.
- *
- * @access private
- */
- function execute() {
- global $wgArchNavBar, $wgArchHome, $wgArchNavBarSelected, $wgArchNavBarSelectedDefault;
- // Suppress warnings to prevent notices about missing indexes in $this->data
- wfSuppressWarnings();
-
- $this->html( 'headelement' );
-?>
-
-<div id="archnavbar"><!-- Arch Linux global navigation bar -->
- <div id="archnavbarlogo">
- <p><a id="logo" href="<?php if (isset($wgArchHome)) { echo $wgArchHome; } ?>"></a></p>
- </div>
- <div id="archnavbarmenu">
- <ul id="archnavbarlist">
- <?php
- if (isset($wgArchNavBar)) {
- foreach ($wgArchNavBar as $name => $url) {
- if ((isset($wgArchNavBarSelected) && $this->data['title'] == $name && in_array($name, $wgArchNavBarSelected))
- || (!(isset($wgArchNavBarSelected) && in_array($this->data['title'], $wgArchNavBarSelected)) && isset($wgArchNavBarSelectedDefault) && $name == $wgArchNavBarSelectedDefault)) {
- $anbClass = ' class="anb-selected"';
- } else {
- $anbClass = '';
- }
- echo '<li id="anb-'.strtolower($name).'"'.$anbClass.'><a href="'.$url.'">'.$name.'</a></li>';
- }
- }
- ?>
- </ul>
- </div>
-</div><!-- #archnavbar -->
-
-<div id="globalWrapper">
-<div id="column-content"><div id="content" class="mw-body-primary" role="main">
- <a id="top"></a>
- <?php if ( $this->data['sitenotice'] ) { ?><div id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div><?php } ?>
-
- <h1 id="firstHeading" class="firstHeading" lang="<?php
- $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
- $this->text( 'pageLanguage' );
- ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
- <div id="bodyContent" class="mw-body">
- <div id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
- <div id="contentSub"<?php $this->html( 'userlangattributes' ) ?>><?php $this->html( 'subtitle' ) ?></div>
-<?php if ( $this->data['undelete'] ) { ?>
- <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div>
-<?php } ?><?php if ( $this->data['newtalk'] ) { ?>
- <div class="usermessage"><?php $this->html( 'newtalk' ) ?></div>
-<?php } ?>
- <div id="jump-to-nav" class="mw-jump"><?php $this->msg( 'jumpto' ) ?> <a href="#column-one"><?php $this->msg( 'jumptonavigation' ) ?></a><?php $this->msg( 'comma-separator' ) ?><a href="#searchInput"><?php $this->msg( 'jumptosearch' ) ?></a></div>
-
- <!-- start content -->
-<?php $this->html( 'bodytext' ) ?>
- <?php if ( $this->data['catlinks'] ) { $this->html( 'catlinks' ); } ?>
- <!-- end content -->
- <?php if ( $this->data['dataAfterContent'] ) { $this->html( 'dataAfterContent' ); } ?>
- <div class="visualClear"></div>
- </div>
-</div></div>
-<div id="column-one"<?php $this->html( 'userlangattributes' ) ?>>
- <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
-<?php $this->cactions(); ?>
- <div class="portlet" id="p-personal" role="navigation">
- <h3><?php $this->msg( 'personaltools' ) ?></h3>
- <div class="pBody">
- <ul<?php $this->html( 'userlangattributes' ) ?>>
-<?php foreach ( $this->getPersonalTools() as $key => $item ) { ?>
- <?php echo $this->makeListItem( $key, $item ); ?>
-
-<?php } ?>
- </ul>
- </div>
- </div>
- <div class="portlet" id="p-logo" role="banner">
-<?php
- echo Html::element( 'a', array(
- 'href' => $this->data['nav_urls']['mainpage']['href'],
- 'style' => "background-image: url({$this->data['logopath']});" )
- + Linker::tooltipAndAccesskeyAttribs( 'p-logo' ) ); ?>
-
- </div>
-<?php
- $this->renderPortals( $this->data['sidebar'] );
-?>
-</div><!-- end of the left (by default at least) column -->
-<div class="visualClear"></div>
-<?php
- $validFooterIcons = $this->getFooterIcons( "icononly" );
- $validFooterLinks = $this->getFooterLinks( "flat" ); // Additional footer links
-
- if ( count( $validFooterIcons ) + count( $validFooterLinks ) > 0 ) { ?>
-<div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
-<?php
- $footerEnd = '</div>';
- } else {
- $footerEnd = '';
- }
- foreach ( $validFooterIcons as $blockName => $footerIcons ) { ?>
- <div id="f-<?php echo htmlspecialchars( $blockName ); ?>ico">
-<?php foreach ( $footerIcons as $icon ) { ?>
- <?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
-
-<?php }
-?>
- </div>
-<?php }
-
- if ( count( $validFooterLinks ) > 0 ) {
-?> <ul id="f-list">
-<?php
- foreach ( $validFooterLinks as $aLink ) { ?>
- <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
-<?php
- }
-?>
- </ul>
-<?php }
-echo $footerEnd;
-?>
-
-</div>
-<?php
- $this->printTrail();
- echo Html::closeElement( 'body' );
- echo Html::closeElement( 'html' );
- wfRestoreWarnings();
- } // end of execute() method
-
- /*************************************************************************************************/
-
- /**
- * @param $sidebar array
- */
- protected function renderPortals( $sidebar ) {
- if ( !isset( $sidebar['SEARCH'] ) ) {
- $sidebar['SEARCH'] = true;
- }
- if ( !isset( $sidebar['TOOLBOX'] ) ) {
- $sidebar['TOOLBOX'] = true;
- }
- if ( !isset( $sidebar['LANGUAGES'] ) ) {
- $sidebar['LANGUAGES'] = true;
- }
-
- foreach ( $sidebar as $boxName => $content ) {
- if ( $content === false ) {
- continue;
- }
-
- if ( $boxName == 'SEARCH' ) {
- $this->searchBox();
- } elseif ( $boxName == 'TOOLBOX' ) {
- $this->toolbox();
- } elseif ( $boxName == 'LANGUAGES' ) {
- $this->languageBox();
- } else {
- $this->customBox( $boxName, $content );
- }
- }
- }
-
- function searchBox() {
- global $wgUseTwoButtonsSearchForm;
-?>
- <div id="p-search" class="portlet" role="search">
- <h3><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
- <div id="searchBody" class="pBody">
- <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
- <input type='hidden' name="title" value="<?php $this->text( 'searchtitle' ) ?>"/>
- <?php echo $this->makeSearchInput( array( "id" => "searchInput" ) ); ?>
-
- <?php echo $this->makeSearchButton( "go", array( "id" => "searchGoButton", "class" => "searchButton" ) );
- if ( $wgUseTwoButtonsSearchForm ) { ?>&#160;
- <?php echo $this->makeSearchButton( "fulltext", array( "id" => "mw-searchButton", "class" => "searchButton" ) );
- } else { ?>
-
- <div><a href="<?php $this->text( 'searchaction' ) ?>" rel="search"><?php $this->msg( 'powersearch-legend' ) ?></a></div><?php
- } ?>
-
- </form>
- </div>
- </div>
-<?php
- }
-
- /**
- * Prints the cactions bar.
- * Shared between MonoBook and Modern
- */
- function cactions() {
-?>
- <div id="p-cactions" class="portlet" role="navigation">
- <h3><?php $this->msg( 'views' ) ?></h3>
- <div class="pBody">
- <ul><?php
- foreach ( $this->data['content_actions'] as $key => $tab ) {
- echo '
- ' . $this->makeListItem( $key, $tab );
- } ?>
-
- </ul>
- </div>
- </div>
-<?php
- }
- /*************************************************************************************************/
- function toolbox() {
-?>
- <div class="portlet" id="p-tb" role="navigation">
- <h3><?php $this->msg( 'toolbox' ) ?></h3>
- <div class="pBody">
- <ul>
-<?php
- foreach ( $this->getToolbox() as $key => $tbitem ) { ?>
- <?php echo $this->makeListItem( $key, $tbitem ); ?>
-
-<?php
- }
- wfRunHooks( 'ArchLinuxTemplateToolboxEnd', array( &$this ) );
- wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
-?>
- </ul>
- </div>
- </div>
-<?php
- }
-
- /*************************************************************************************************/
- function languageBox() {
- if ( $this->data['language_urls'] ) {
-?>
- <div id="p-lang" class="portlet" role="navigation">
- <h3<?php $this->html( 'userlangattributes' ) ?>><?php $this->msg( 'otherlanguages' ) ?></h3>
- <div class="pBody">
- <ul>
-<?php foreach ( $this->data['language_urls'] as $key => $langlink ) { ?>
- <?php echo $this->makeListItem( $key, $langlink ); ?>
-
-<?php } ?>
- </ul>
- </div>
- </div>
-<?php
- }
- }
-
- /*************************************************************************************************/
- /**
- * @param $bar string
- * @param $cont array|string
- */
- function customBox( $bar, $cont ) {
- $portletAttribs = array( 'class' => 'generated-sidebar portlet', 'id' => Sanitizer::escapeId( "p-$bar" ), 'role' => 'navigation' );
- $tooltip = Linker::titleAttrib( "p-$bar" );
- if ( $tooltip !== false ) {
- $portletAttribs['title'] = $tooltip;
- }
- echo ' ' . Html::openElement( 'div', $portletAttribs );
- $msgObj = wfMessage( $bar );
-?>
-
- <h3><?php echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $bar ); ?></h3>
- <div class='pBody'>
-<?php if ( is_array( $cont ) ) { ?>
- <ul>
-<?php foreach ( $cont as $key => $val ) { ?>
- <?php echo $this->makeListItem( $key, $val ); ?>
-
-<?php } ?>
- </ul>
-<?php } else {
- # allow raw HTML block to be defined by extensions
- print $cont;
- }
-?>
- </div>
- </div>
-<?php
- }
-} // end of class
-
-
diff --git a/skins/ArchLinux/ArchLinux.php b/skins/ArchLinux/ArchLinux.php
new file mode 100644
index 00000000..168139d2
--- /dev/null
+++ b/skins/ArchLinux/ArchLinux.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * ArchLinux skin (based on MonoBook)
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * 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 Skins
+ */
+
+$wgExtensionCredits['skin'][] = array(
+ 'path' => __FILE__,
+ 'name' => 'ArchLinux',
+ 'description' => 'MediaWiki skin based on MonoBook',
+ 'url' => 'https://www.archlinux.org/',
+ 'author' => array( 'Pierre Schmitz' ),
+ 'license-name' => 'GPLv2+',
+);
+
+// Register files
+$wgAutoloadClasses['SkinArchLinux'] = __DIR__ . '/SkinArchLinux.php';
+$wgAutoloadClasses['ArchLinuxTemplate'] = __DIR__ . '/ArchLinuxTemplate.php';
+
+// Register skin
+$wgValidSkinNames['archlinux'] = 'ArchLinux';
+
+// Register modules
+$wgResourceModules['skins.archlinux.styles'] = array(
+ 'styles' => array(
+ 'main.css' => array( 'media' => 'screen' ),
+ 'archnavbar.css' => array( 'media' => 'screen' ),
+ 'arch.css' => array( 'media' => 'screen' ),
+ 'print.css' => array( 'media' => 'print' )
+ ),
+ 'remoteSkinPath' => 'ArchLinux',
+ 'localBasePath' => __DIR__,
+);
diff --git a/skins/ArchLinux/ArchLinuxTemplate.php b/skins/ArchLinux/ArchLinuxTemplate.php
new file mode 100644
index 00000000..8960f8b6
--- /dev/null
+++ b/skins/ArchLinux/ArchLinuxTemplate.php
@@ -0,0 +1,405 @@
+<?php
+/**
+ * ArchLinux skin (based on MonoBook)
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * 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 Skins
+ */
+
+/**
+ * @ingroup Skins
+ */
+class ArchLinuxTemplate extends BaseTemplate {
+
+ /**
+ * Template filter callback for ArchLinux skin.
+ * Takes an associative array of data set from a SkinTemplate-based
+ * class, and a wrapper for MediaWiki's localization database, and
+ * outputs a formatted page.
+ *
+ * @access private
+ */
+ function execute() {
+ global $wgArchNavBar, $wgArchHome, $wgArchNavBarSelected, $wgArchNavBarSelectedDefault;
+ // Suppress warnings to prevent notices about missing indexes in $this->data
+ wfSuppressWarnings();
+
+ $this->html( 'headelement' );
+ ?>
+
+ <div id="archnavbar"><!-- Arch Linux global navigation bar -->
+ <div id="archnavbarlogo">
+ <p><a id="logo" href="<?php if (isset($wgArchHome)) { echo $wgArchHome; } ?>"></a></p>
+ </div>
+ <div id="archnavbarmenu">
+ <ul id="archnavbarlist">
+ <?php
+ if (isset($wgArchNavBar)) {
+ foreach ($wgArchNavBar as $name => $url) {
+ if ((isset($wgArchNavBarSelected) && $this->data['title'] == $name && in_array($name, $wgArchNavBarSelected))
+ || (!(isset($wgArchNavBarSelected) && in_array($this->data['title'], $wgArchNavBarSelected)) && isset($wgArchNavBarSelectedDefault) && $name == $wgArchNavBarSelectedDefault)) {
+ $anbClass = ' class="anb-selected"';
+ } else {
+ $anbClass = '';
+ }
+ echo '<li id="anb-'.strtolower($name).'"'.$anbClass.'><a href="'.$url.'">'.$name.'</a></li>';
+ }
+ }
+ ?>
+ </ul>
+ </div>
+ </div><!-- #archnavbar -->
+
+ <div id="globalWrapper">
+ <div id="column-content">
+ <div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+ <?php
+ if ( $this->data['sitenotice'] ) {
+ ?>
+ <div id="siteNotice"><?php
+ $this->html( 'sitenotice' )
+ ?></div><?php
+ }
+ ?>
+
+ <h1 id="firstHeading" class="firstHeading" lang="<?php
+ $this->data['pageLanguage'] =
+ $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
+ $this->text( 'pageLanguage' );
+ ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
+
+ <div id="bodyContent" class="mw-body-content">
+ <div id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
+ <div id="contentSub"<?php
+ $this->html( 'userlangattributes' ) ?>><?php $this->html( 'subtitle' )
+ ?></div>
+ <?php if ( $this->data['undelete'] ) { ?>
+ <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div>
+ <?php
+}
+ ?><?php
+ if ( $this->data['newtalk'] ) {
+ ?>
+ <div class="usermessage"><?php $this->html( 'newtalk' ) ?></div>
+ <?php
+ }
+ ?>
+ <div id="jump-to-nav" class="mw-jump"><?php
+ $this->msg( 'jumpto' )
+ ?> <a href="#column-one"><?php
+ $this->msg( 'jumptonavigation' )
+ ?></a><?php
+ $this->msg( 'comma-separator' )
+ ?><a href="#searchInput"><?php
+ $this->msg( 'jumptosearch' )
+ ?></a></div>
+
+ <!-- start content -->
+ <?php $this->html( 'bodytext' ) ?>
+ <?php
+ if ( $this->data['catlinks'] ) {
+ $this->html( 'catlinks' );
+ }
+ ?>
+ <!-- end content -->
+ <?php
+ if ( $this->data['dataAfterContent'] ) {
+ $this->html( 'dataAfterContent'
+ );
+ }
+ ?>
+ <div class="visualClear"></div>
+ </div>
+ </div>
+ </div>
+ <div id="column-one"<?php $this->html( 'userlangattributes' ) ?>>
+ <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
+ <?php $this->cactions(); ?>
+ <div class="portlet" id="p-personal" role="navigation">
+ <h3><?php $this->msg( 'personaltools' ) ?></h3>
+
+ <div class="pBody">
+ <ul<?php $this->html( 'userlangattributes' ) ?>>
+ <?php foreach ( $this->getPersonalTools() as $key => $item ) { ?>
+ <?php echo $this->makeListItem( $key, $item ); ?>
+
+ <?php
+}
+ ?>
+ </ul>
+ </div>
+ </div>
+ <div class="portlet" id="p-logo" role="banner">
+ <?php
+ echo Html::element( 'a', array(
+ 'href' => $this->data['nav_urls']['mainpage']['href'],
+ 'style' => "background-image: url({$this->data['logopath']});" )
+ + Linker::tooltipAndAccesskeyAttribs( 'p-logo' ) ); ?>
+
+ </div>
+ <?php
+ $this->renderPortals( $this->data['sidebar'] );
+ ?>
+ </div><!-- end of the left (by default at least) column -->
+ <div class="visualClear"></div>
+ <?php
+ $validFooterIcons = $this->getFooterIcons( "icononly" );
+ $validFooterLinks = $this->getFooterLinks( "flat" ); // Additional footer links
+
+ if ( count( $validFooterIcons ) + count( $validFooterLinks ) > 0 ) {
+ ?>
+ <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
+ <?php
+ $footerEnd = '</div>';
+ } else {
+ $footerEnd = '';
+ }
+
+ foreach ( $validFooterIcons as $blockName => $footerIcons ) {
+ ?>
+ <div id="f-<?php echo htmlspecialchars( $blockName ); ?>ico">
+ <?php foreach ( $footerIcons as $icon ) { ?>
+ <?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
+
+ <?php
+}
+ ?>
+ </div>
+ <?php
+ }
+
+ if ( count( $validFooterLinks ) > 0 ) {
+ ?>
+ <ul id="f-list">
+ <?php
+ foreach ( $validFooterLinks as $aLink ) {
+ ?>
+ <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
+ <?php
+ }
+ ?>
+ </ul>
+ <?php
+ }
+
+ echo $footerEnd;
+ ?>
+
+ </div>
+ <?php
+ $this->printTrail();
+ echo Html::closeElement( 'body' );
+ echo Html::closeElement( 'html' );
+ wfRestoreWarnings();
+ } // end of execute() method
+
+ /*************************************************************************************************/
+
+ /**
+ * @param array $sidebar
+ */
+ protected function renderPortals( $sidebar ) {
+ if ( !isset( $sidebar['SEARCH'] ) ) {
+ $sidebar['SEARCH'] = true;
+ }
+ if ( !isset( $sidebar['TOOLBOX'] ) ) {
+ $sidebar['TOOLBOX'] = true;
+ }
+ if ( !isset( $sidebar['LANGUAGES'] ) ) {
+ $sidebar['LANGUAGES'] = true;
+ }
+
+ foreach ( $sidebar as $boxName => $content ) {
+ if ( $content === false ) {
+ continue;
+ }
+
+ if ( $boxName == 'SEARCH' ) {
+ $this->searchBox();
+ } elseif ( $boxName == 'TOOLBOX' ) {
+ $this->toolbox();
+ } elseif ( $boxName == 'LANGUAGES' ) {
+ $this->languageBox();
+ } else {
+ $this->customBox( $boxName, $content );
+ }
+ }
+ }
+
+ function searchBox() {
+ ?>
+ <div id="p-search" class="portlet" role="search">
+ <h3><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
+
+ <div id="searchBody" class="pBody">
+ <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
+ <input type='hidden' name="title" value="<?php $this->text( 'searchtitle' ) ?>"/>
+ <?php echo $this->makeSearchInput( array( "id" => "searchInput" ) ); ?>
+
+ <?php
+ echo $this->makeSearchButton(
+ "go",
+ array( "id" => "searchGoButton", "class" => "searchButton" )
+ );
+
+ if ( $this->config->get( 'UseTwoButtonsSearchForm' ) ) {
+ ?>&#160;
+ <?php echo $this->makeSearchButton(
+ "fulltext",
+ array( "id" => "mw-searchButton", "class" => "searchButton" )
+ );
+ } else {
+ ?>
+
+ <div><a href="<?php
+ $this->text( 'searchaction' )
+ ?>" rel="search"><?php $this->msg( 'powersearch-legend' ) ?></a></div><?php
+ } ?>
+
+ </form>
+
+ <?php $this->renderAfterPortlet( 'search' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Prints the cactions bar.
+ * Shared between MonoBook and Modern
+ */
+ function cactions() {
+ ?>
+ <div id="p-cactions" class="portlet" role="navigation">
+ <h3><?php $this->msg( 'views' ) ?></h3>
+
+ <div class="pBody">
+ <ul><?php
+ foreach ( $this->data['content_actions'] as $key => $tab ) {
+ echo '
+ ' . $this->makeListItem( $key, $tab );
+ } ?>
+
+ </ul>
+ <?php $this->renderAfterPortlet( 'cactions' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /*************************************************************************************************/
+ function toolbox() {
+ ?>
+ <div class="portlet" id="p-tb" role="navigation">
+ <h3><?php $this->msg( 'toolbox' ) ?></h3>
+
+ <div class="pBody">
+ <ul>
+ <?php
+ foreach ( $this->getToolbox() as $key => $tbitem ) {
+ ?>
+ <?php echo $this->makeListItem( $key, $tbitem ); ?>
+
+ <?php
+ }
+ wfRunHooks( 'ArchLinuxTemplateToolboxEnd', array( &$this ) );
+ wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
+ ?>
+ </ul>
+ <?php $this->renderAfterPortlet( 'tb' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /*************************************************************************************************/
+ function languageBox() {
+ if ( $this->data['language_urls'] !== false ) {
+ ?>
+ <div id="p-lang" class="portlet" role="navigation">
+ <h3<?php $this->html( 'userlangattributes' ) ?>><?php $this->msg( 'otherlanguages' ) ?></h3>
+
+ <div class="pBody">
+ <ul>
+ <?php foreach ( $this->data['language_urls'] as $key => $langlink ) { ?>
+ <?php echo $this->makeListItem( $key, $langlink ); ?>
+
+ <?php
+}
+ ?>
+ </ul>
+
+ <?php $this->renderAfterPortlet( 'lang' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+ }
+
+ /*************************************************************************************************/
+ /**
+ * @param string $bar
+ * @param array|string $cont
+ */
+ function customBox( $bar, $cont ) {
+ $portletAttribs = array(
+ 'class' => 'generated-sidebar portlet',
+ 'id' => Sanitizer::escapeId( "p-$bar" ),
+ 'role' => 'navigation'
+ );
+
+ $tooltip = Linker::titleAttrib( "p-$bar" );
+ if ( $tooltip !== false ) {
+ $portletAttribs['title'] = $tooltip;
+ }
+ echo ' ' . Html::openElement( 'div', $portletAttribs );
+ $msgObj = wfMessage( $bar );
+ ?>
+
+ <h3><?php echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $bar ); ?></h3>
+ <div class='pBody'>
+ <?php
+ if ( is_array( $cont ) ) {
+ ?>
+ <ul>
+ <?php
+ foreach ( $cont as $key => $val ) {
+ ?>
+ <?php echo $this->makeListItem( $key, $val ); ?>
+
+ <?php
+ }
+ ?>
+ </ul>
+ <?php
+ } else {
+ # allow raw HTML block to be defined by extensions
+ print $cont;
+ }
+
+ $this->renderAfterPortlet( $bar );
+ ?>
+ </div>
+ </div>
+ <?php
+ }
+} // end of class
diff --git a/skins/ArchLinux/COPYING b/skins/ArchLinux/COPYING
new file mode 100644
index 00000000..019694a9
--- /dev/null
+++ b/skins/ArchLinux/COPYING
@@ -0,0 +1,342 @@
+== 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 Library 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.
+
+== 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 Library General
+Public License instead of this License.
diff --git a/skins/archlinux/FF2Fixes.css b/skins/ArchLinux/FF2Fixes.css
index c8b65f50..c8b65f50 100644
--- a/skins/archlinux/FF2Fixes.css
+++ b/skins/ArchLinux/FF2Fixes.css
diff --git a/skins/archlinux/IE60Fixes.css b/skins/ArchLinux/IE60Fixes.css
index 534d3333..a5beed5d 100644
--- a/skins/archlinux/IE60Fixes.css
+++ b/skins/ArchLinux/IE60Fixes.css
@@ -6,29 +6,35 @@ div#column-content {
margin-left: 0;
height: 1%;
}
-div#column-content div#content {
+
+div#column-content .mw-body {
margin-left: 12.2em;
margin-top: 3em;
height: 1%;
}
-.rtl div#column-content div#content {
+
+.rtl div#column-content .mw-body {
margin-right: 12.2em;
margin-left: 0;
}
+
div#column-one {
position: absolute;
top: 0;
left: 0;
z-index: 4;
}
+
.rtl div#column-one {
left: auto;
right: 0;
}
+
div#footer {
margin-left: 13.6em;
border-left: 1px solid #fabd23;
}
+
.rtl div#footer {
margin-left: 0;
margin-right: 13.6em;
@@ -36,6 +42,16 @@ div#footer {
border-right: 1px solid #fabd23;
}
+/* float/negative margin brokenness */
+* html div#footer {
+ margin-top: 0;
+}
+
+* html div#column-content {
+ display: inline;
+ margin-bottom: 0;
+}
+
/* the tabs */
#p-cactions {
@@ -49,6 +65,7 @@ div#footer {
cursor: default;
float: none !important;
}
+
#p-cactions li a {
display: inline-block !important;
vertical-align: top;
@@ -56,17 +73,21 @@ div#footer {
border: solid #aaa;
border-width: 1px 1px 0;
}
+
#p-cactions li.selected a {
border-color: #fabd23;
padding-bottom: 0.17em;
}
+
#p-cactions li a:hover {
padding-bottom: 0.17em;
}
+
#p-navigation a {
display: inline-block;
width: 100%;
}
+
#portal-personaltools {
padding-bottom: 0.1em;
}
@@ -82,10 +103,12 @@ div#footer {
#p-logo a:hover {
cursor: pointer;
}
+
div.visualClear {
- width:100%;
+ width: 100%;
line-height: 0;
}
+
textarea {
width: 96%;
}
diff --git a/skins/archlinux/IE70Fixes.css b/skins/ArchLinux/IE70Fixes.css
index e8d3a8f8..e82d57a3 100644
--- a/skins/archlinux/IE70Fixes.css
+++ b/skins/ArchLinux/IE70Fixes.css
@@ -3,17 +3,17 @@
/* workaround for various ie float bugs */
/* This bit is needed to make links clickable... WTF */
-div#column-content div#content {
+div#column-content .mw-body {
margin-left: 12.2em;
margin-top: 3em;
height: 1%;
}
-.rtl div#column-content div#content {
+
+.rtl div#column-content .mw-body {
margin-right: 12.2em;
margin-left: 0;
}
-
.rtl div#column-one {
/* For some reason it tries to inherit the padding-top into every div,
* and I can't figure out how to get it back off.
@@ -37,13 +37,13 @@ li#pt-userpage, li#pt-anonuserpage, li#pt-login {
padding-right: 0;
padding-left: 16px;
}
+
/* the tabs */
#p-cactions {
z-index: 3;
}
-
#p-cactions li {
padding-bottom: 0 !important;
border: none;
@@ -59,20 +59,25 @@ li#pt-userpage, li#pt-anonuserpage, li#pt-login {
border: solid #aaa;
border-width: 1px 1px 0;
}
+
#p-cactions li.selected a {
border-color: #fabd23;
padding-bottom: 0.17em;
}
+
#p-cactions li a:hover {
padding-bottom: 0.17em;
}
+
#p-navigation a {
display: inline-block;
width: 100%;
}
+
#portal-personaltools {
padding-bottom: 0.1em;
}
+
textarea {
width: 96%;
}
@@ -85,7 +90,6 @@ div.tleft {
}
*/
-
div#footer li {
/* Work around bug with inline <li> tags with right margins and nowrap */
margin-right: 0;
diff --git a/skins/ArchLinux/SkinArchLinux.php b/skins/ArchLinux/SkinArchLinux.php
new file mode 100644
index 00000000..4be24176
--- /dev/null
+++ b/skins/ArchLinux/SkinArchLinux.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * ArchLinux skin (based on MonoBook)
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * 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 Skins
+ */
+
+/**
+ * Inherit main code from SkinTemplate, set the CSS and template filter.
+ * @ingroup Skins
+ */
+class SkinArchLinux extends SkinTemplate {
+ /** Using ArchLinux. */
+ public $skinname = 'archlinux';
+ public $stylename = 'ArchLinux';
+ public $template = 'ArchLinuxTemplate';
+
+ /**
+ * @param OutputPage $out
+ */
+ function setupSkinUserCss( OutputPage $out ) {
+ parent::setupSkinUserCss( $out );
+
+ $out->addModuleStyles( array(
+ 'mediawiki.skinning.interface',
+ 'mediawiki.skinning.content.externallinks',
+ 'skins.archlinux.styles'
+ ) );
+
+ // TODO: Migrate all of these
+ $out->addStyle( $this->stylename . '/IE60Fixes.css', 'screen', 'IE 6' );
+ $out->addStyle( $this->stylename . '/IE70Fixes.css', 'screen', 'IE 7' );
+ }
+}
diff --git a/skins/archlinux/arch.css b/skins/ArchLinux/arch.css
index a1856c7a..a1856c7a 100644
--- a/skins/archlinux/arch.css
+++ b/skins/ArchLinux/arch.css
diff --git a/skins/archlinux/archlogo.gif b/skins/ArchLinux/archlogo.gif
index e1852a06..e1852a06 100644
--- a/skins/archlinux/archlogo.gif
+++ b/skins/ArchLinux/archlogo.gif
Binary files differ
diff --git a/skins/archlinux/archlogo.png b/skins/ArchLinux/archlogo.png
index e873e94b..e873e94b 100644
--- a/skins/archlinux/archlogo.png
+++ b/skins/ArchLinux/archlogo.png
Binary files differ
diff --git a/skins/archlinux/archnavbar.css b/skins/ArchLinux/archnavbar.css
index d95832bc..d95832bc 100644
--- a/skins/archlinux/archnavbar.css
+++ b/skins/ArchLinux/archnavbar.css
diff --git a/skins/archlinux/bullet.gif b/skins/ArchLinux/bullet.gif
index b43de48a..b43de48a 100644
--- a/skins/archlinux/bullet.gif
+++ b/skins/ArchLinux/bullet.gif
Binary files differ
diff --git a/skins/archlinux/headbg.jpg b/skins/ArchLinux/headbg.jpg
index 5491c6e4..5491c6e4 100644
--- a/skins/archlinux/headbg.jpg
+++ b/skins/ArchLinux/headbg.jpg
Binary files differ
diff --git a/skins/ArchLinux/hooks.txt b/skins/ArchLinux/hooks.txt
new file mode 100644
index 00000000..b456a669
--- /dev/null
+++ b/skins/ArchLinux/hooks.txt
@@ -0,0 +1,8 @@
+Hooks provided by the MonoBook skin.
+
+'MonoBookTemplateToolboxEnd': DEPRECATED. Called by Monobook skin after toolbox
+links have been rendered (useful for adding more). Note: this is only run for
+the Monobook skin. To add items to the toolbox you should use the
+SkinTemplateToolboxEnd hook instead, which works for all "SkinTemplate"-type
+skins.
+$tools: array of tools
diff --git a/skins/archlinux/link_icon.gif b/skins/ArchLinux/link_icon.gif
index 168c1a2f..168c1a2f 100644
--- a/skins/archlinux/link_icon.gif
+++ b/skins/ArchLinux/link_icon.gif
Binary files differ
diff --git a/skins/archlinux/magnify-clip.png b/skins/ArchLinux/magnify-clip.png
index ffd7637f..ffd7637f 100644
--- a/skins/archlinux/magnify-clip.png
+++ b/skins/ArchLinux/magnify-clip.png
Binary files differ
diff --git a/skins/monobook/main.css b/skins/ArchLinux/main.css
index d8f25ebb..e0e0dc77 100644
--- a/skins/monobook/main.css
+++ b/skins/ArchLinux/main.css
@@ -15,27 +15,29 @@ div#column-content {
margin: 0 0 .6em -12.2em;
padding: 0;
}
-div#content {
+
+.mw-body {
margin: 2.8em 0 0 12.2em;
padding: 1em;
position: relative;
z-index: 2;
+ background: white;
+ color: black;
+ border: 1px solid #aaa;
+ border-right: none;
+ line-height: 1.5em;
}
+
div#column-one {
padding-top: 160px;
}
+
/* Hide, but keep accessible for screen-readers */
#column-one h2 {
position: absolute;
top: -9999px;
}
-div#content {
- background: white;
- color: black;
- border: 1px solid #aaa;
- border-right: none;
- line-height: 1.5em;
-}
+
/* the left column width is specified in class .portlet */
/* Font size:
@@ -67,9 +69,11 @@ div#globalWrapper {
a {
color: #002bb8;
}
+
a:visited {
color: #5a3696;
}
+
a.new,
#p-personal a.new {
color: #cc2200;
@@ -81,14 +85,6 @@ ul {
list-style-image: url(bullet.gif);
}
-input.historysubmit {
- padding: 0 .3em .3em .3em !important;
- font-size: 94%;
- cursor: pointer;
- height: 1.7em !important;
- margin-left: 1.6em;
-}
-
pre, .mw-code {
line-height: 1.1em;
}
@@ -96,6 +92,7 @@ pre, .mw-code {
#firstHeading {
padding-top: 0;
}
+
/*
** the main content area
*/
@@ -104,9 +101,11 @@ pre, .mw-code {
font-size: 95%;
padding: 0 0.9em;
}
+
#localNotice {
margin: 0;
}
+
#siteNotice p {
margin: 0;
padding: 0;
@@ -139,85 +138,6 @@ table.rimage {
}
/*
-** keep the whitespace in front of the ^=, hides rule from konqueror
-** this is css3, the validator doesn't like it when validating as css2
-*/
-#bodyContent a.external {
- /* @embed */
- background: url(external-ltr.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href ^="https://"],
-.link-https {
- /* @embed */
- background: url(lock_icon.gif) center right no-repeat;
- padding-right: 16px;
-}
-#bodyContent a.external[href ^="mailto:"],
-.link-mailto {
- /* @embed */
- background: url(mail_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="news:"] {
- /* @embed */
- background: url(news_icon.png) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="ftp://"],
-.link-ftp {
- /* @embed */
- background: url(file_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="irc://"],
-#bodyContent a.external[href ^="ircs://"],
-.link-irc {
- /* @embed */
- background: url(discussionitem_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"],
-#bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"],
-#bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"],
-#bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"],
-#bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"],
-#bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"],
-.link-audio {
- /* @embed */
- background: url(audio.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"],
-#bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"],
-#bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"],
-#bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"],
-.link-video {
- /* @embed */
- background: url(video.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"],
-#bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"],
-#bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"],
-.link-document {
- /* @embed */
- background: url(document.png) center right no-repeat;
- padding-right: 12px;
-}
-
-/* Interwiki Styling */
-#bodyContent a.extiw,
-#bodyContent a.extiw:active {
- color: #36b;
-}
-
-/* External links */
-#bodyContent a.external {
- color: #36b;
-}
-
-/*
** Structural Elements
*/
@@ -232,6 +152,7 @@ table.rimage {
width: 11.6em;
overflow: hidden;
}
+
.portlet h3 {
background: transparent;
padding: 0 1em 0 .5em;
@@ -242,6 +163,7 @@ table.rimage {
font-weight: normal;
white-space: nowrap;
}
+
.pBody {
font-size: 95%;
background-color: white;
@@ -250,10 +172,19 @@ table.rimage {
border: 1px solid #aaa;
padding: 0 .8em .3em .5em;
}
+
+/* allows .pBody styles to wrap around content added via BaseTemplateAfterPortlet hook */
+.pBody:after {
+ content: '';
+ clear: both;
+ display: block;
+}
+
.portlet ul {
line-height: 1.5em;
font-size: 95%;
}
+
.portlet li {
padding: 0;
margin: 0;
@@ -272,9 +203,11 @@ table.rimage {
width: 12em;
overflow: visible;
}
+
#p-logo h3 {
display: none;
}
+
#p-logo a,
#p-logo a:hover {
display: block;
@@ -292,28 +225,34 @@ table.rimage {
position: relative;
z-index: 3;
}
+
input.searchButton {
margin-top: 1px;
font-size: 95%;
}
+
#searchGoButton {
padding-left: .5em;
padding-right: .5em;
font-weight: bold;
}
+
#searchInput {
width: 10.9em;
margin: 0;
font-size: 95%;
}
+
#p-search .pBody {
padding: .5em .4em .4em .4em;
text-align: center;
}
+
#p-search #searchform div div {
margin-top: .4em;
font-size: 95%;
}
+
/*
** the personal toolbar
*/
@@ -323,6 +262,7 @@ input.searchButton {
top: 0;
z-index: 3;
}
+
#p-personal {
width: 100%;
white-space: nowrap;
@@ -333,9 +273,11 @@ input.searchButton {
overflow: visible;
line-height: 1.2em;
}
+
#p-personal h3 {
display: none;
}
+
#p-personal .portlet,
#p-personal .pBody {
z-index: 0;
@@ -345,6 +287,7 @@ input.searchButton {
overflow: visible;
background: none;
}
+
/* this is the ul contained in the portlet */
#p-personal ul {
border: none;
@@ -359,6 +302,7 @@ input.searchButton {
background: none;
cursor: default;
}
+
#p-personal li {
z-index: 0;
border: none;
@@ -369,20 +313,24 @@ input.searchButton {
line-height: 1.2em;
background: none;
}
+
#p-personal li a {
text-decoration: none;
color: #005896;
padding-bottom: .2em;
background: none;
}
+
#p-personal li a:hover {
background-color: white;
padding-bottom: .2em;
text-decoration: none;
}
+
#p-personal li.active a:hover {
background-color: transparent;
}
+
/* The icon in front of the username / login link */
li#pt-userpage,
li#pt-anonuserpage,
@@ -391,17 +339,21 @@ li#pt-login {
background: url(user.gif) top left no-repeat;
padding-left: 20px;
}
+
#p-personal ul {
text-transform: lowercase;
}
+
/* Don't lowercase username or IP addresses (IPv6) */
li#pt-userpage,
li#pt-anonuserpage {
text-transform: none;
}
+
#p-personal li.active {
font-weight: bold;
}
+
/*
** the page-related actions- page/talk, edit etc
*/
@@ -419,10 +371,12 @@ li#pt-anonuserpage {
padding-left: 1em;
font-size: 95%;
}
+
#p-cactions ul {
list-style-type: none;
list-style-image: none;
}
+
#p-cactions li {
display: inline;
border: 1px solid #aaa;
@@ -432,10 +386,12 @@ li#pt-anonuserpage {
overflow: visible;
background: white;
}
+
#p-cactions li.selected {
border-color: #fabd23;
font-weight: bold;
}
+
#p-cactions li a {
background-color: #fbfbfb;
color: #002bb8;
@@ -446,41 +402,51 @@ li#pt-anonuserpage {
margin: 0;
text-decoration: none;
}
+
#p-cactions li.selected a {
z-index: 3;
background-color: white;
}
+
#p-cactions .new a {
color: #ba0000;
}
+
#p-cactions li a:hover {
z-index: 3;
text-decoration: none;
background-color: white;
}
+
#p-cactions h3 {
display: none;
}
+
#p-cactions li.istalk {
margin-right: 0;
}
+
#p-cactions li.istalk a {
padding-right: .5em;
}
+
#p-cactions #ca-addsection a {
padding-left: .4em;
padding-right: .4em;
}
+
/* offsets to distinguish the tab groups */
li#ca-talk {
margin-right: 1.6em;
}
+
li#ca-watch,
li#ca-unwatch,
li#ca-varlang-0,
li#ca-print {
margin-left: 1.6em;
}
+
#p-cactions .pBody {
font-size: 1em;
background-color: transparent;
@@ -489,6 +455,7 @@ li#ca-print {
border: 0;
padding: 0;
}
+
#p-cactions li a {
text-transform: lowercase;
}
@@ -511,6 +478,7 @@ li#ca-print {
#t-ispermalink, #t-iscite {
color: #999;
}
+
/*
** footer
*/
@@ -524,19 +492,23 @@ div#footer {
text-align: center;
font-size: 90%;
}
+
div#footer li {
display: inline;
margin: 0 1.3em;
}
+
#f-poweredbyico, #f-copyrightico {
margin: 0 8px;
position: relative;
top: -2px; /* Bump it up just a tad */
}
+
#f-poweredbyico {
float: right;
height: 1%;
}
+
#f-copyrightico {
float: left;
height: 1%;
@@ -556,10 +528,12 @@ div#footer li {
width: 100%;
clear: both;
}
+
#preftoc li {
background-color: #f0f0f0;
color: #000;
}
+
#preftoc li {
margin: 1px -2px 1px 2px;
float: left;
@@ -573,6 +547,7 @@ div#footer li {
list-style-image: none;
z-index: 3;
}
+
#preftoc li.selected {
font-weight: bold;
background-color: #f9f9f9;
@@ -583,9 +558,11 @@ div#footer li {
padding-top: 2px;
margin-right: -3px;
}
+
#preftoc > li.selected {
top: 2px;
}
+
#preftoc a,
#preftoc a:active {
display: block;
@@ -594,10 +571,12 @@ div#footer li {
position: relative;
text-decoration: none;
}
+
#preftoc li.selected a {
cursor: default;
text-decoration: none;
}
+
#preferences {
margin: 0;
border: 1px solid #aaa;
@@ -605,6 +584,7 @@ div#footer li {
padding: 1.5em;
background-color: #F9F9F9;
}
+
.prefsection {
border: none;
padding: 0;
@@ -614,12 +594,15 @@ div#footer li {
.prefsection legend {
font-weight: bold;
}
+
.prefsection table, .prefsection legend {
background-color: #F9F9F9;
}
+
.mainLegend {
display: none;
}
+
td.htmlform-tip {
font-size: x-small;
padding: .2em 2em;
@@ -636,37 +619,6 @@ td.htmlform-tip {
margin-top: 2em;
}
-div#userloginForm,
-div#userlogin {
- margin: 0 3em 1em 0;
- border: 1px solid #aaa;
- clear: both;
- padding: 1.5em 2em;
- background-color: #f9f9f9;
- float: left;
-}
-
-div#userloginForm table,
-div#userlogin table {
- background-color: #f9f9f9;
-}
-
-div#userloginForm h2,
-div#userlogin h2 {
- padding-top: 0;
-}
-
-div#userlogin .captcha,
-div#userloginForm .captcha {
- border: 1px solid #bbb;
- padding: 1.5em 2em;
- background-color: white;
-}
-
-#loginend, #signupend {
- clear: both;
-}
-
#userloginprompt, #languagelinks {
font-size: 85%;
}
@@ -677,67 +629,21 @@ div#userloginForm .captcha {
padding-top: 2em;
}
-#userlogin .loginText, #userlogin .loginPassword {
- width: 12em;
-}
-
#userloginlink a, #wpLoginattempt, #wpCreateaccount {
font-weight: bold;
}
-/*
-** IE/Mac fixes, hope to find a validating way to move this
-** to a separate stylesheet. This would work but doesn't validate:
-** @import("IEMacFixes.css");
-*/
-/* tabs: border on the a, not the div */
-* > html #p-cactions li {
- border: none;
-}
-* > html #p-cactions li a {
- border: 1px solid #aaa;
- border-bottom: none;
-}
-* > html #p-cactions li.selected a {
- border-color: #fabd23;
-}
-/* footer icons need a fixed width */
-* > html #f-poweredbyico,
-* > html #f-copyrightico {
- width: 88px;
-}
-* > html #bodyContent,
-* > html #bodyContent pre {
- overflow-x: auto;
- width: 100%;
- padding-bottom: 25px;
-}
-
-/* more IE fixes */
-/* float/negative margin brokenness */
-* html div#footer {
- margin-top: 0;
-}
-* html div#column-content {
- display: inline;
- margin-bottom: 0;
-}
+/**
+ * This was originally added by Gabriel Wicke in r3681 (committed on 25 May 2004)
+ * with the commit message "tweaks to page history".
+ * Unlike the other IE/Mac fixes that used to be present here, this seems to get
+ * applied on more modern browsers, so let's keep it here until someone has the
+ * time to properly test it out.
+ */
#pagehistory li.selected {
position: relative;
}
-/* Mac IE 5.0 fix; floated content turns invisible */
-* > html div#column-content {
- float: none;
-}
-* > html div#column-one {
- position: absolute;
- left: 0;
- top: 0;
-}
-* > html div#footer {
- margin-left: 13.2em;
-}
.redirectText {
font-size: 150%;
margin: 5px;
@@ -765,6 +671,7 @@ span.updatedmarker {
font-size: small;
text-align: center;
}
+
.editExternallyHelp {
font-style: italic;
color: gray;
@@ -864,10 +771,12 @@ div.mw-lag-warn-high {
text-align: center;
margin: 3px auto;
}
+
div.mw-lag-warn-normal {
border: 1px solid #FFCC66;
background-color: #FFFFCC;
}
+
div.mw-lag-warn-high {
font-weight: bold;
border: 2px solid #FF0033;
@@ -878,17 +787,13 @@ div.mw-lag-warn-high {
background-color: #ccc;
padding: 0.1em;
}
+
.MediaTransformError td {
text-align: center;
vertical-align: middle;
font-size: 90%;
}
-/* God-damned hack for the crappy layout */
-.os-suggest {
- font-size: 127%;
-}
-
/* Sometimes people don't want personal tools to be lowercase! */
.no-text-transform {
text-transform: none;
@@ -901,6 +806,5 @@ div.mw-lag-warn-high {
/* mediawiki.notification */
.skin-monobook .mw-notification {
- -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
}
diff --git a/skins/archlinux/print.css b/skins/ArchLinux/print.css
index a2780f7a..a2780f7a 100644
--- a/skins/archlinux/print.css
+++ b/skins/ArchLinux/print.css
diff --git a/skins/archlinux/required.gif b/skins/ArchLinux/required.gif
index bd719769..bd719769 100644
--- a/skins/archlinux/required.gif
+++ b/skins/ArchLinux/required.gif
Binary files differ
diff --git a/skins/archlinux/user.gif b/skins/ArchLinux/user.gif
index 34b4839d..34b4839d 100644
--- a/skins/archlinux/user.gif
+++ b/skins/ArchLinux/user.gif
Binary files differ
diff --git a/skins/archlinux/wiki-indexed.png b/skins/ArchLinux/wiki-indexed.png
index 799ebac8..799ebac8 100644
--- a/skins/archlinux/wiki-indexed.png
+++ b/skins/ArchLinux/wiki-indexed.png
Binary files differ
diff --git a/skins/archlinux/wiki.png b/skins/ArchLinux/wiki.png
index 8c421183..8c421183 100644
--- a/skins/archlinux/wiki.png
+++ b/skins/ArchLinux/wiki.png
Binary files differ
diff --git a/skins/CologneBlue/COPYING b/skins/CologneBlue/COPYING
new file mode 100644
index 00000000..019694a9
--- /dev/null
+++ b/skins/CologneBlue/COPYING
@@ -0,0 +1,342 @@
+== 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 Library 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.
+
+== 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 Library General
+Public License instead of this License.
diff --git a/skins/CologneBlue/CologneBlue.php b/skins/CologneBlue/CologneBlue.php
new file mode 100644
index 00000000..a8fee10e
--- /dev/null
+++ b/skins/CologneBlue/CologneBlue.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * CologneBlue skin
+ *
+ * @file
+ * @ingroup Extensions
+ *
+ * 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
+ */
+
+$wgExtensionCredits['skin'][] = array(
+ 'path' => __FILE__,
+ 'name' => 'Cologne Blue',
+ 'namemsg' => 'skinname-cologneblue',
+ 'descriptionmsg' => 'cologneblue-desc',
+ 'url' => 'https://www.mediawiki.org/wiki/Skin:Cologne_Blue',
+ 'author' => array( 'Lee Daniel Crocker', '...' ),
+ 'license-name' => 'GPLv2+',
+);
+
+// Register files
+$wgAutoloadClasses['SkinCologneBlue'] = __DIR__ . '/SkinCologneBlue.php';
+$wgAutoloadClasses['CologneBlueTemplate'] = __DIR__ . '/SkinCologneBlue.php';
+$wgMessagesDirs['CologneBlue'] = __DIR__ . '/i18n';
+
+// Register skin
+$wgValidSkinNames['cologneblue'] = 'CologneBlue';
+
+// Register modules
+$wgResourceModules['skins.cologneblue'] = array(
+ 'styles' => array(
+ 'resources/screen.css' => array( 'media' => 'screen' ),
+ 'resources/print.css' => array( 'media' => 'print' ),
+ ),
+ 'remoteBasePath' => $GLOBALS['wgStylePath'] . '/CologneBlue',
+ 'localBasePath' => __DIR__,
+);
diff --git a/skins/CologneBlue.php b/skins/CologneBlue/SkinCologneBlue.php
index 04e0e6a4..eb7d50b6 100644
--- a/skins/CologneBlue.php
+++ b/skins/CologneBlue/SkinCologneBlue.php
@@ -31,12 +31,11 @@ if ( !defined( 'MEDIAWIKI' ) ) {
* @ingroup Skins
*/
class SkinCologneBlue extends SkinTemplate {
- var $skinname = 'cologneblue', $stylename = 'cologneblue',
- $template = 'CologneBlueTemplate';
- var $useHeadElement = true;
+ public $skinname = 'cologneblue';
+ public $template = 'CologneBlueTemplate';
/**
- * @param $out OutputPage
+ * @param OutputPage $out
*/
function setupSkinUserCss( OutputPage $out ) {
parent::setupSkinUserCss( $out );
@@ -47,6 +46,8 @@ class SkinCologneBlue extends SkinTemplate {
/**
* Override langlink formatting behavior not to uppercase the language names.
* See otherLanguages() in CologneBlueTemplate.
+ * @param string $name
+ * @return string
*/
function formatLanguageName( $name ) {
return $name;
@@ -85,26 +86,41 @@ class CologneBlueTemplate extends BaseTemplate {
}
function otherLanguages() {
- global $wgHideInterlanguageLinks;
- if ( $wgHideInterlanguageLinks ) {
+ if ( $this->config->get( 'HideInterlanguageLinks' ) ) {
return "";
}
+ $html = '';
+
// We override SkinTemplate->formatLanguageName() in SkinCologneBlue
// not to capitalize the language names.
$language_urls = $this->data['language_urls'];
- if ( empty( $language_urls ) ) {
- return "";
- }
+ if ( !empty( $language_urls ) ) {
+ $s = array();
+ foreach ( $language_urls as $key => $data ) {
+ $s[] = $this->makeListItem( $key, $data, array( 'tag' => 'span' ) );
+ }
- $s = array();
- foreach ( $language_urls as $key => $data ) {
- $s[] = $this->makeListItem( $key, $data, array( 'tag' => 'span' ) );
+ $html = wfMessage( 'otherlanguages' )->text()
+ . wfMessage( 'colon-separator' )->text()
+ . $this->getSkin()->getLanguage()->pipeList( $s );
}
- return wfMessage( 'otherlanguages' )->text()
- . wfMessage( 'colon-separator' )->text()
- . $this->getSkin()->getLanguage()->pipeList( $s );
+ $html .= $this->renderAfterPortlet( 'lang' );
+
+ return $html;
+ }
+
+ /**
+ * @param string $name
+ */
+ protected function renderAfterPortlet( $name ) {
+ $content = '';
+ wfRunHooks( 'BaseTemplateAfterPortlet', array( $this, $name, &$content ) );
+
+ $html = $content !== '' ? "<div class='after-portlet after-portlet-$name'>$content</div>" : '';
+
+ return $html;
}
function pageTitleLinks() {
@@ -121,9 +137,9 @@ class CologneBlueTemplate extends BaseTemplate {
/**
* Used in bottomLinks() to eliminate repetitive code.
*
- * @param $key string Key to be passed to makeListItem()
- * @param $navlink array Navlink suitable for processNavlinkForDocument()
- * @param $message string Key of the message to use in place of standard text
+ * @param string $key Key to be passed to makeListItem()
+ * @param array $navlink Navlink suitable for processNavlinkForDocument()
+ * @param string $message Key of the message to use in place of standard text
*
* @return string
*/
@@ -137,7 +153,11 @@ class CologneBlueTemplate extends BaseTemplate {
$navlink['text'] = wfMessage( $message )->escaped();
}
- return $this->makeListItem( $key, $this->processNavlinkForDocument( $navlink ), array( 'tag' => 'span' ) );
+ return $this->makeListItem(
+ $key,
+ $this->processNavlinkForDocument( $navlink ),
+ array( 'tag' => 'span' )
+ );
}
function bottomLinks() {
@@ -152,10 +172,22 @@ class CologneBlueTemplate extends BaseTemplate {
$editLinkMessage = $this->getSkin()->getTitle()->exists() ? 'editthispage' : 'create-this-page';
$element[] = $this->processBottomLink( 'edit', $content_nav['views']['edit'], $editLinkMessage );
- $element[] = $this->processBottomLink( 'viewsource', $content_nav['views']['viewsource'], 'viewsource' );
-
- $element[] = $this->processBottomLink( 'watch', $content_nav['actions']['watch'], 'watchthispage' );
- $element[] = $this->processBottomLink( 'unwatch', $content_nav['actions']['unwatch'], 'unwatchthispage' );
+ $element[] = $this->processBottomLink(
+ 'viewsource',
+ $content_nav['views']['viewsource'],
+ 'viewsource'
+ );
+
+ $element[] = $this->processBottomLink(
+ 'watch',
+ $content_nav['actions']['watch'],
+ 'watchthispage'
+ );
+ $element[] = $this->processBottomLink(
+ 'unwatch',
+ $content_nav['actions']['unwatch'],
+ 'unwatchthispage'
+ );
$element[] = $this->talkLink();
@@ -169,21 +201,35 @@ class CologneBlueTemplate extends BaseTemplate {
$lines[] = $this->getSkin()->getLanguage()->pipeList( array_filter( $element ) );
-
// Second row. Privileged actions.
$element = array();
- $element[] = $this->processBottomLink( 'delete', $content_nav['actions']['delete'], 'deletethispage' );
- $element[] = $this->processBottomLink( 'undelete', $content_nav['actions']['undelete'], 'undeletethispage' );
-
- $element[] = $this->processBottomLink( 'protect', $content_nav['actions']['protect'], 'protectthispage' );
- $element[] = $this->processBottomLink( 'unprotect', $content_nav['actions']['unprotect'], 'unprotectthispage' );
+ $element[] = $this->processBottomLink(
+ 'delete',
+ $content_nav['actions']['delete'],
+ 'deletethispage'
+ );
+ $element[] = $this->processBottomLink(
+ 'undelete',
+ $content_nav['actions']['undelete'],
+ 'undeletethispage'
+ );
+
+ $element[] = $this->processBottomLink(
+ 'protect',
+ $content_nav['actions']['protect'],
+ 'protectthispage'
+ );
+ $element[] = $this->processBottomLink(
+ 'unprotect',
+ $content_nav['actions']['unprotect'],
+ 'unprotectthispage'
+ );
$element[] = $this->processBottomLink( 'move', $content_nav['actions']['move'], 'movethispage' );
$lines[] = $this->getSkin()->getLanguage()->pipeList( array_filter( $element ) );
-
// Third row. Language links.
$lines[] = $this->otherLanguages();
}
@@ -225,8 +271,9 @@ class CologneBlueTemplate extends BaseTemplate {
$message = $companionTitle->isTalkPage() ? 'talkpage' : 'articlepage';
}
- // Obviously this can't be reasonable and just return the key for talk namespace, only for content ones.
- // Thus we have to mangle it in exactly the same way SkinTemplate does. (bug 40805)
+ // Obviously this can't be reasonable and just return the key for talk
+ // namespace, only for content ones. Thus we have to mangle it in
+ // exactly the same way SkinTemplate does. (bug 40805)
$key = $companionTitle->getNamespaceKey( '' );
if ( $companionTitle->isTalkPage() ) {
$key = ( $key == 'main' ? 'talk' : $key . "_talk" );
@@ -234,17 +281,19 @@ class CologneBlueTemplate extends BaseTemplate {
// Use the regular navigational link, but replace its text. Everything else stays unmodified.
$namespacesLinks = $this->data['content_navigation']['namespaces'];
+
return $this->processBottomLink( $message, $namespacesLinks[$key], $message );
}
/**
* Takes a navigational link generated by SkinTemplate in whichever way
- * and mangles attributes unsuitable for repeated use. In particular, this modifies the ids
- * and removes the accesskeys. This is necessary to be able to use the same navlink twice,
- * e.g. in sidebar and in footer.
+ * and mangles attributes unsuitable for repeated use. In particular, this
+ * modifies the ids and removes the accesskeys. This is necessary to be
+ * able to use the same navlink twice, e.g. in sidebar and in footer.
*
- * @param $navlink array Navigational link generated by SkinTemplate
- * @param $idPrefix mixed Prefix to add to id of this navlink. If false, id is removed entirely. Default is 'cb-'.
+ * @param array $navlink Navigational link generated by SkinTemplate
+ * @param mixed $idPrefix Prefix to add to id of this navlink. If false, id
+ * is removed entirely. Default is 'cb-'.
*/
function processNavlinkForDocument( $navlink, $idPrefix = 'cb-' ) {
if ( $navlink['id'] ) {
@@ -267,42 +316,66 @@ class CologneBlueTemplate extends BaseTemplate {
*/
function beforeContent() {
ob_start();
-?>
-<div id="content">
- <div id="topbar">
- <p id="sitetitle" role="banner">
- <a href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>">
- <?php echo wfMessage( 'sitetitle' )->escaped() ?>
- </a>
- </p>
- <p id="sitesub"><?php echo wfMessage( 'sitesubtitle' )->escaped() ?></p>
- <div id="linkcollection" role="navigation">
- <div id="langlinks"><?php echo str_replace( '<br />', '', $this->otherLanguages() ) ?></div>
- <?php echo $this->getSkin()->getCategories() ?>
- <div id="titlelinks"><?php echo $this->pageTitleLinks() ?></div>
- <?php if ( $this->data['newtalk'] ) { ?>
- <div class="usermessage"><strong><?php echo $this->data['newtalk'] ?></strong></div>
- <?php } ?>
+ ?>
+ <div id="content">
+ <div id="topbar">
+ <p id="sitetitle" role="banner">
+ <a href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>">
+ <?php echo wfMessage( 'sitetitle' )->escaped() ?>
+ </a>
+ </p>
+
+ <p id="sitesub"><?php echo wfMessage( 'sitesubtitle' )->escaped() ?></p>
+
+ <div id="linkcollection" role="navigation">
+ <div id="langlinks"><?php echo str_replace( '<br />', '', $this->otherLanguages() ) ?></div>
+ <?php echo $this->getSkin()->getCategories() ?>
+ <div id="titlelinks"><?php echo $this->pageTitleLinks() ?></div>
+ <?php
+ if ( $this->data['newtalk'] ) {
+ ?>
+ <div class="usermessage"><strong><?php echo $this->data['newtalk'] ?></strong></div>
+ <?php
+ }
+ ?>
+ </div>
</div>
- </div>
- <div id="article" role="main">
- <?php if ( $this->getSkin()->getSiteNotice() ) { ?>
- <div id="siteNotice"><?php echo $this->getSkin()->getSiteNotice() ?></div>
- <?php } ?>
+ <div id="article" class="mw-body" role="main">
+ <?php
+ if ( $this->getSkin()->getSiteNotice() ) {
+ ?>
+ <div id="siteNotice"><?php echo $this->getSkin()->getSiteNotice() ?></div>
+ <?php
+ }
+ ?>
<h1 id="firstHeading" lang="<?php
- $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
- $this->text( 'pageLanguage' );
+ $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
+ $this->text( 'pageLanguage' );
?>"><span dir="auto"><?php echo $this->data['title'] ?></span></h1>
- <?php if ( $this->translator->translate( 'tagline' ) ) { ?>
- <p class="tagline"><?php echo htmlspecialchars( $this->translator->translate( 'tagline' ) ) ?></p>
- <?php } ?>
- <?php if ( $this->getSkin()->getOutput()->getSubtitle() ) { ?>
- <p class="subtitle"><?php echo $this->getSkin()->getOutput()->getSubtitle() ?></p>
- <?php } ?>
- <?php if ( $this->getSkin()->subPageSubtitle() ) { ?>
- <p class="subpages"><?php echo $this->getSkin()->subPageSubtitle() ?></p>
- <?php } ?>
-<?php
+ <?php
+ if ( $this->translator->translate( 'tagline' ) ) {
+ ?>
+ <p class="tagline"><?php
+ echo htmlspecialchars( $this->translator->translate( 'tagline' ) )
+ ?></p>
+ <?php
+ }
+ ?>
+ <?php
+ if ( $this->getSkin()->getOutput()->getSubtitle() ) {
+ ?>
+ <p class="subtitle"><?php echo $this->getSkin()->getOutput()->getSubtitle() ?></p>
+ <?php
+ }
+ ?>
+ <?php
+ if ( $this->getSkin()->subPageSubtitle() ) {
+ ?>
+ <p class="subpages"><?php echo $this->getSkin()->subPageSubtitle() ?></p>
+ <?php
+ }
+ ?>
+ <?php
$s = ob_get_contents();
ob_end_clean();
@@ -314,45 +387,47 @@ class CologneBlueTemplate extends BaseTemplate {
*/
function afterContent() {
ob_start();
-?>
- </div>
- <div id="footer">
- <div id="footer-navigation" role="navigation">
-<?php
- // Page-related links
- echo $this->bottomLinks();
- echo "\n<br />";
-
- // Footer and second searchbox
- echo $this->getSkin()->getLanguage()->pipeList( array(
- $this->getSkin()->mainPageLink(),
- $this->getSkin()->aboutLink(),
- $this->searchForm( 'footer' )
- ) );
-?>
+ ?>
</div>
- <div id="footer-info" role="contentinfo">
-<?php
- // Standard footer info
- $footlinks = $this->getFooterLinks();
- if ( $footlinks['info'] ) {
- foreach ( $footlinks['info'] as $item ) {
- echo $this->data[$item] . ' ';
- }
- }
-?>
+ <div id="footer">
+ <div id="footer-navigation" role="navigation">
+ <?php
+ // Page-related links
+ echo $this->bottomLinks();
+ echo "\n<br />";
+
+ // Footer and second searchbox
+ echo $this->getSkin()->getLanguage()->pipeList( array(
+ $this->getSkin()->mainPageLink(),
+ $this->getSkin()->aboutLink(),
+ $this->searchForm( 'footer' )
+ ) );
+ ?>
+ </div>
+ <div id="footer-info" role="contentinfo">
+ <?php
+ // Standard footer info
+ $footlinks = $this->getFooterLinks();
+ if ( $footlinks['info'] ) {
+ foreach ( $footlinks['info'] as $item ) {
+ echo $this->data[$item] . ' ';
+ }
+ }
+ ?>
+ </div>
</div>
- </div>
-</div>
-<div id="mw-navigation">
- <h2><?php echo wfMessage( 'navigation-heading' )->escaped() ?></h2>
- <div id="toplinks" role="navigation">
- <p id="syslinks"><?php echo $this->sysLinks() ?></p>
- <p id="variantlinks"><?php echo $this->variantLinks() ?></p>
- </div>
- <?php echo $this->quickBar() ?>
-</div>
-<?php
+ </div>
+ <div id="mw-navigation">
+ <h2><?php echo wfMessage( 'navigation-heading' )->escaped() ?></h2>
+
+ <div id="toplinks" role="navigation">
+ <p id="syslinks"><?php echo $this->sysLinks() ?></p>
+
+ <p id="variantlinks"><?php echo $this->variantLinks() ?></p>
+ </div>
+ <?php echo $this->quickBar() ?>
+ </div>
+ <?php
$s = ob_get_contents();
ob_end_clean();
@@ -381,7 +456,7 @@ class CologneBlueTemplate extends BaseTemplate {
);
$personalUrls = $this->getPersonalTools();
- foreach ( array( 'logout', 'createaccount', 'login', 'anonlogin' ) as $key ) {
+ foreach ( array( 'logout', 'createaccount', 'login' ) as $key ) {
if ( $personalUrls[$key] ) {
$s[] = $this->makeListItem( $key, $personalUrls[$key], array( 'tag' => 'span' ) );
}
@@ -393,14 +468,15 @@ class CologneBlueTemplate extends BaseTemplate {
/**
* Adds CologneBlue-specific items to the sidebar: qbedit, qbpageoptions and qbmyoptions menus.
*
- * @param $bar sidebar data
- * @return array modified sidebar data
+ * @param array $bar Sidebar data
+ * @return array Modified sidebar data
*/
function sidebarAdditions( $bar ) {
// "This page" and "Edit" menus
- // We need to do some massaging here... we reuse all of the items, except for $...['views']['view'],
- // as $...['namespaces']['main'] and $...['namespaces']['talk'] together serve the same purpose.
- // We also don't use $...['variants'], these are displayed in the top menu.
+ // We need to do some massaging here... we reuse all of the items,
+ // except for $...['views']['view'], as $...['namespaces']['main'] and
+ // $...['namespaces']['talk'] together serve the same purpose. We also
+ // don't use $...['variants'], these are displayed in the top menu.
$content_navigation = $this->data['content_navigation'];
$qbpageoptions = array_merge(
$content_navigation['namespaces'],
@@ -422,7 +498,7 @@ class CologneBlueTemplate extends BaseTemplate {
// Personal tools ("My pages")
$qbmyoptions = $this->getPersonalTools();
- foreach ( array( 'logout', 'createaccount', 'login', 'anonlogin' ) as $key ) {
+ foreach ( array( 'logout', 'createaccount', 'login', ) as $key ) {
$qbmyoptions[$key] = null;
}
@@ -468,7 +544,6 @@ class CologneBlueTemplate extends BaseTemplate {
$bar = $this->sidebarAdditions( $bar );
}
-
// Fill out special sidebar items with content
$orig_bar = $bar;
$bar = array();
@@ -482,7 +557,6 @@ class CologneBlueTemplate extends BaseTemplate {
}
}
-
// Output the sidebar
// CologneBlue uses custom messages for some portlets, but we should keep the ids for consistency
$idToMessage = array(
@@ -499,7 +573,11 @@ class CologneBlueTemplate extends BaseTemplate {
foreach ( $bar as $heading => $data ) {
$portletId = Sanitizer::escapeId( "p-$heading" );
$headingMsg = wfMessage( $idToMessage[$heading] ? $idToMessage[$heading] : $heading );
- $headingHTML = "<h3>" . ( $headingMsg->exists() ? $headingMsg->escaped() : htmlspecialchars( $heading ) ) . "</h3>";
+ $headingHTML = "<h3>";
+ $headingHTML .= $headingMsg->exists()
+ ? $headingMsg->escaped()
+ : htmlspecialchars( $heading );
+ $headingHTML .= "</h3>";
$listHTML = "";
if ( is_array( $data ) ) {
@@ -520,36 +598,44 @@ class CologneBlueTemplate extends BaseTemplate {
if ( $listHTML ) {
$role = ( $heading == 'search' ) ? 'search' : 'navigation';
- $s .= "<div class=\"portlet\" id=\"$portletId\" role=\"$role\">\n$headingHTML\n$listHTML\n</div>\n";
+ $s .= "<div class=\"portlet\" id=\"$portletId\" "
+ . "role=\"$role\">\n$headingHTML\n$listHTML\n</div>\n";
}
+
+ $s .= $this->renderAfterPortlet( $heading );
}
$s .= "</div>\n";
+
return $s;
}
/**
- * @param $label string
+ * @param string $label
* @return string
*/
function searchForm( $which ) {
- global $wgUseTwoButtonsSearchForm;
-
$search = $this->getSkin()->getRequest()->getText( 'search' );
$action = $this->data['searchaction'];
- $s = "<form id=\"searchform-" . htmlspecialchars( $which ) . "\" method=\"get\" class=\"inline\" action=\"$action\">";
+ $s = "<form id=\"searchform-" . htmlspecialchars( $which )
+ . "\" method=\"get\" class=\"inline\" action=\"$action\">";
if ( $which == 'footer' ) {
$s .= wfMessage( 'qbfind' )->text() . ": ";
}
- $s .= $this->makeSearchInput( array( 'class' => 'mw-searchInput', 'type' => 'text', 'size' => '14' ) );
+ $s .= $this->makeSearchInput( array(
+ 'class' => 'mw-searchInput',
+ 'type' => 'text',
+ 'size' => '14'
+ ) );
$s .= ( $which == 'footer' ? " " : "<br />" );
$s .= $this->makeSearchButton( 'go', array( 'class' => 'searchButton' ) );
- if ( $wgUseTwoButtonsSearchForm ) {
+ if ( $this->config->get( 'UseTwoButtonsSearchForm' ) ) {
$s .= $this->makeSearchButton( 'fulltext', array( 'class' => 'searchButton' ) );
} else {
- $s .= '<div><a href="' . $action . '" rel="search">' . wfMessage( 'powersearch-legend' )->escaped() . "</a></div>\n";
+ $s .= '<div><a href="' . $action . '" rel="search">'
+ . wfMessage( 'powersearch-legend' )->escaped() . "</a></div>\n";
}
$s .= '</form>';
diff --git a/skins/CologneBlue/i18n/af.json b/skins/CologneBlue/i18n/af.json
new file mode 100644
index 00000000..e4bd3045
--- /dev/null
+++ b/skins/CologneBlue/i18n/af.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Keulen blou"
+}
diff --git a/skins/CologneBlue/i18n/aln.json b/skins/CologneBlue/i18n/aln.json
new file mode 100644
index 00000000..61d45697
--- /dev/null
+++ b/skins/CologneBlue/i18n/aln.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bresta"
+ ]
+ },
+ "cologneblue.css": "/* CSS i vendosun këtu ka me i prekë shfrytëzuesit e dukjes Cologne Blue */",
+ "cologneblue.js": "/* Çdo JavaScript këtu ka me u ngarkue për shfrytëzuesit që përdorin dukjen Cologne Blue */"
+}
diff --git a/skins/CologneBlue/i18n/an.json b/skins/CologneBlue/i18n/an.json
new file mode 100644
index 00000000..2925c149
--- /dev/null
+++ b/skins/CologneBlue/i18n/an.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Juanpabl"
+ ]
+ },
+ "cologneblue.css": "/* Os estilos CSS colocaus aquí s'aplicarán ta totz os usuarios que faigan servir l'apariencia Cologne Blue */",
+ "cologneblue.js": "/* Qualsiquier codigo Javascript escrito aquí se cargará ta totz os usuarios que faigan servir l'apariencia Colonia azul */",
+ "skinname-cologneblue": "Colonia Azul (Cologne Blue)"
+}
diff --git a/skins/CologneBlue/i18n/ar.json b/skins/CologneBlue/i18n/ar.json
new file mode 100644
index 00000000..b03e7811
--- /dev/null
+++ b/skins/CologneBlue/i18n/ar.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meno25"
+ ]
+ },
+ "cologneblue.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة كولون بلو */",
+ "cologneblue.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة كولون بلو */",
+ "skinname-cologneblue": "كولون بلو"
+}
diff --git a/skins/CologneBlue/i18n/arz.json b/skins/CologneBlue/i18n/arz.json
new file mode 100644
index 00000000..82695dd3
--- /dev/null
+++ b/skins/CologneBlue/i18n/arz.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meno25"
+ ]
+ },
+ "cologneblue.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمى واجهة كولون بلو */",
+ "cologneblue.js": "/* أى جافاسكريبت هنا ح تتحمل لليوزرز اللى بيستعملو واجهة كولون بلو */",
+ "skinname-cologneblue": "كولون بلو"
+}
diff --git a/skins/CologneBlue/i18n/ast.json b/skins/CologneBlue/i18n/ast.json
new file mode 100644
index 00000000..115031f0
--- /dev/null
+++ b/skins/CologneBlue/i18n/ast.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Xuacu"
+ ]
+ },
+ "cologneblue.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Cologne Blue */",
+ "cologneblue.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu Cologne Blue */",
+ "skinname-cologneblue": "Azul Colonia",
+ "cologneblue-desc": "Un tema llixeru col mínimu formatu"
+}
diff --git a/skins/CologneBlue/i18n/az.json b/skins/CologneBlue/i18n/az.json
new file mode 100644
index 00000000..fbf09a91
--- /dev/null
+++ b/skins/CologneBlue/i18n/az.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vago"
+ ]
+ },
+ "cologneblue.css": "/* Burada yerləşən CSS Cologne Blue skin istifadəçilərinə tətbiq olunur */",
+ "cologneblue.js": "/* Burada Cologne Blue skin istifadəçiləri üçün istənilən JavaScript yüklənəcək */",
+ "skinname-cologneblue": "Cologne Blue"
+}
diff --git a/skins/CologneBlue/i18n/ba.json b/skins/CologneBlue/i18n/ba.json
new file mode 100644
index 00000000..ac6c4c29
--- /dev/null
+++ b/skins/CologneBlue/i18n/ba.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Assele"
+ ]
+ },
+ "skinname-cologneblue": "Кёльн һағышы"
+}
diff --git a/skins/CologneBlue/i18n/bcc.json b/skins/CologneBlue/i18n/bcc.json
new file mode 100644
index 00000000..51780c74
--- /dev/null
+++ b/skins/CologneBlue/i18n/bcc.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "نیلی کولاجن"
+}
diff --git a/skins/CologneBlue/i18n/be-tarask.json b/skins/CologneBlue/i18n/be-tarask.json
new file mode 100644
index 00000000..fa74c299
--- /dev/null
+++ b/skins/CologneBlue/i18n/be-tarask.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Кёльнскі смутак"
+}
diff --git a/skins/CologneBlue/i18n/be.json b/skins/CologneBlue/i18n/be.json
new file mode 100644
index 00000000..472776eb
--- /dev/null
+++ b/skins/CologneBlue/i18n/be.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Сіні Кёльн"
+}
diff --git a/skins/CologneBlue/i18n/bg.json b/skins/CologneBlue/i18n/bg.json
new file mode 100644
index 00000000..73269582
--- /dev/null
+++ b/skins/CologneBlue/i18n/bg.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Кьолнско синьо"
+}
diff --git a/skins/CologneBlue/i18n/bn.json b/skins/CologneBlue/i18n/bn.json
new file mode 100644
index 00000000..2b9e689e
--- /dev/null
+++ b/skins/CologneBlue/i18n/bn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aftab1995"
+ ]
+ },
+ "skinname-cologneblue": "কলোন ব্লু"
+}
diff --git a/skins/CologneBlue/i18n/br.json b/skins/CologneBlue/i18n/br.json
new file mode 100644
index 00000000..fed61a89
--- /dev/null
+++ b/skins/CologneBlue/i18n/br.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fulup"
+ ]
+ },
+ "cologneblue.css": "/* Talvezout a raio ar CSS lakaet amañ evit implijerien ar gwiskadur Glaz Kologn */",
+ "cologneblue.js": "/* Kement JavaScript amañ a vo karget evit an implijerien a ra gant ar gwiskadur Glaz Kologn */",
+ "skinname-cologneblue": "Glaz Kologn"
+}
diff --git a/skins/CologneBlue/i18n/bs.json b/skins/CologneBlue/i18n/bs.json
new file mode 100644
index 00000000..aaebb708
--- /dev/null
+++ b/skins/CologneBlue/i18n/bs.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "CERminator",
+ "Kal-El"
+ ]
+ },
+ "cologneblue.css": "/* CSS umetnut ovdje uticat će na korisnike koji koriste Cologne Blue skin */",
+ "cologneblue.js": "/* Bilo koja JavaScript će biti učitana za sve korisnike koji koriste Cologne Blue skin */",
+ "skinname-cologneblue": "Kelnsko plavo"
+}
diff --git a/skins/CologneBlue/i18n/ca.json b/skins/CologneBlue/i18n/ca.json
new file mode 100644
index 00000000..ded284b1
--- /dev/null
+++ b/skins/CologneBlue/i18n/ca.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Colònia blava"
+}
diff --git a/skins/CologneBlue/i18n/ce.json b/skins/CologneBlue/i18n/ce.json
new file mode 100644
index 00000000..2e71c1bb
--- /dev/null
+++ b/skins/CologneBlue/i18n/ce.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Умар"
+ ]
+ },
+ "skinname-cologneblue": "Кёльнин сингаттам"
+}
diff --git a/skins/CologneBlue/i18n/ckb.json b/skins/CologneBlue/i18n/ckb.json
new file mode 100644
index 00000000..014b2d28
--- /dev/null
+++ b/skins/CologneBlue/i18n/ckb.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Asoxor"
+ ]
+ },
+ "skinname-cologneblue": "شینی کۆلۆن"
+}
diff --git a/skins/CologneBlue/i18n/crh-cyrl.json b/skins/CologneBlue/i18n/crh-cyrl.json
new file mode 100644
index 00000000..26d10080
--- /dev/null
+++ b/skins/CologneBlue/i18n/crh-cyrl.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Кёльн асретлиги"
+}
diff --git a/skins/CologneBlue/i18n/crh-latn.json b/skins/CologneBlue/i18n/crh-latn.json
new file mode 100644
index 00000000..afda05cc
--- /dev/null
+++ b/skins/CologneBlue/i18n/crh-latn.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Köln asretligi"
+}
diff --git a/skins/CologneBlue/i18n/cs.json b/skins/CologneBlue/i18n/cs.json
new file mode 100644
index 00000000..ded73e06
--- /dev/null
+++ b/skins/CologneBlue/i18n/cs.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Li-sung",
+ "Mormegil"
+ ]
+ },
+ "cologneblue.css": "/* Zde uvedené CSS bude ovlivňovat pouze styl „Kolínská modř“ */",
+ "cologneblue.js": "/* JavaScript pro uživatele používající vzhled „Kolínská modř“ */",
+ "skinname-cologneblue": "Kolínská modř",
+ "cologneblue-desc": "Odlehčený vzhled s minimálním formátováním"
+}
diff --git a/skins/CologneBlue/i18n/cy.json b/skins/CologneBlue/i18n/cy.json
new file mode 100644
index 00000000..7508e147
--- /dev/null
+++ b/skins/CologneBlue/i18n/cy.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Glas Cwlen"
+}
diff --git a/skins/CologneBlue/i18n/da.json b/skins/CologneBlue/i18n/da.json
new file mode 100644
index 00000000..fdd70276
--- /dev/null
+++ b/skins/CologneBlue/i18n/da.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Kølnerblå"
+}
diff --git a/skins/CologneBlue/i18n/de.json b/skins/CologneBlue/i18n/de.json
new file mode 100644
index 00000000..1dc8193d
--- /dev/null
+++ b/skins/CologneBlue/i18n/de.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Metalhead64"
+ ]
+ },
+ "cologneblue.css": "/* Das folgende CSS wird für Benutzer der Kölnisch-Blau-Benutzeroberfläche geladen. */",
+ "cologneblue.js": "/* Das folgende JavaScript wird für Benutzer der Kölnisch-Blau-Benutzeroberfläche geladen. */",
+ "skinname-cologneblue": "Kölnisch Blau",
+ "cologneblue-desc": "Eine leichtgewichtige Benutzeroberfläche mit minimaler Formatierung"
+}
diff --git a/skins/CologneBlue/i18n/diq.json b/skins/CologneBlue/i18n/diq.json
new file mode 100644
index 00000000..50d00606
--- /dev/null
+++ b/skins/CologneBlue/i18n/diq.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan"
+ ]
+ },
+ "skinname-cologneblue": "Cologne Blue"
+}
diff --git a/skins/CologneBlue/i18n/dsb.json b/skins/CologneBlue/i18n/dsb.json
new file mode 100644
index 00000000..5118afbf
--- /dev/null
+++ b/skins/CologneBlue/i18n/dsb.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Kölnski Módry"
+}
diff --git a/skins/CologneBlue/i18n/el.json b/skins/CologneBlue/i18n/el.json
new file mode 100644
index 00000000..502ecf2c
--- /dev/null
+++ b/skins/CologneBlue/i18n/el.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dead3y3"
+ ]
+ },
+ "cologneblue.css": "/* Το τοποθετημένο εδώ CSS θα επηρεάσει χρήστες του Cologne Blue skin */",
+ "cologneblue.js": "/* Οποιοσδήποτε κώδικας JavaScript εδώ θα φορτωθεί για χρήστες που χρησιμοποιούν το Cologne Blue skin */"
+}
diff --git a/skins/CologneBlue/i18n/en.json b/skins/CologneBlue/i18n/en.json
new file mode 100644
index 00000000..2f19694a
--- /dev/null
+++ b/skins/CologneBlue/i18n/en.json
@@ -0,0 +1,6 @@
+{
+ "cologneblue.css": "/* CSS placed here will affect users of the Cologne Blue skin */",
+ "cologneblue.js": "/* Any JavaScript here will be loaded for users using the Cologne Blue skin */",
+ "skinname-cologneblue": "Cologne Blue",
+ "cologneblue-desc": "A lightweight skin with minimal formatting"
+}
diff --git a/skins/CologneBlue/i18n/eo.json b/skins/CologneBlue/i18n/eo.json
new file mode 100644
index 00000000..38e8e190
--- /dev/null
+++ b/skins/CologneBlue/i18n/eo.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Objectivesea"
+ ]
+ },
+ "cologneblue.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Kolonja Blua temo. */",
+ "cologneblue.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Kolonja Blua temo. */",
+ "skinname-cologneblue": "Kolonja Bluo"
+}
diff --git a/skins/CologneBlue/i18n/es.json b/skins/CologneBlue/i18n/es.json
new file mode 100644
index 00000000..5cbe6f1b
--- /dev/null
+++ b/skins/CologneBlue/i18n/es.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fitoschido",
+ "Locos epraix",
+ "Sanbec",
+ "Vivaelcelta"
+ ]
+ },
+ "cologneblue.css": "/* El CSS colocado en esta página afectará a los usuarios que usen la apariencia Cologne Blue */",
+ "cologneblue.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la piel Colonia azul */",
+ "skinname-cologneblue": "Colonia azul",
+ "cologneblue-desc": "Un tema ligero con formato minimalista"
+}
diff --git a/skins/CologneBlue/i18n/et.json b/skins/CologneBlue/i18n/et.json
new file mode 100644
index 00000000..4791a479
--- /dev/null
+++ b/skins/CologneBlue/i18n/et.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pikne"
+ ]
+ },
+ "cologneblue.css": "/* Siin asuv kaskaadilaadistik puudutab kõiki Kölni sinise kujunduse kasutajaid. */",
+ "cologneblue.js": "/* Siin asuv JavaScript laaditakse kõigi Kölni sinise kujunduse kasutajate jaoks. */",
+ "skinname-cologneblue": "Kölni sinine",
+ "cologneblue-desc": "Lihtne minimaalse vormistusega kujundus"
+}
diff --git a/skins/CologneBlue/i18n/eu.json b/skins/CologneBlue/i18n/eu.json
new file mode 100644
index 00000000..1c79342b
--- /dev/null
+++ b/skins/CologneBlue/i18n/eu.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Cologne Blue"
+}
diff --git a/skins/CologneBlue/i18n/fa.json b/skins/CologneBlue/i18n/fa.json
new file mode 100644
index 00000000..3cc04ebb
--- /dev/null
+++ b/skins/CologneBlue/i18n/fa.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Huji",
+ "Reza1615"
+ ]
+ },
+ "cologneblue.css": "/* دستورات این بخش کاربرانی را که از پوستهٔ کلون‌بلو استفاده کنند تحت تاثیر قرار می‌دهند. */",
+ "cologneblue.js": "/ * کدهای جاوااسکریپتی که در اینجا قرار می‌گیرند برای کاربران پوستهٔ کلون بارگیری می‌شود * /",
+ "skinname-cologneblue": "آبی کلن",
+ "cologneblue-desc": "پوستهٔ بسیار سبک با حداقل شکل‌بندی"
+}
diff --git a/skins/CologneBlue/i18n/fi.json b/skins/CologneBlue/i18n/fi.json
new file mode 100644
index 00000000..bf6de1c2
--- /dev/null
+++ b/skins/CologneBlue/i18n/fi.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Crt",
+ "Nedergard"
+ ]
+ },
+ "cologneblue.css": "/* Tämä sivu sisältää Kölnin sininen -ulkoasua muuttavia tyylejä. */",
+ "cologneblue.js": "/* Tämän sivun JavaScript-koodi liitetään Kölnin sininen -tyyliin */",
+ "skinname-cologneblue": "Kölnin sininen"
+}
diff --git a/skins/CologneBlue/i18n/fo.json b/skins/CologneBlue/i18n/fo.json
new file mode 100644
index 00000000..e07b65aa
--- /dev/null
+++ b/skins/CologneBlue/i18n/fo.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Cologne-bláur"
+}
diff --git a/skins/CologneBlue/i18n/fr.json b/skins/CologneBlue/i18n/fr.json
new file mode 100644
index 00000000..fe2a7aee
--- /dev/null
+++ b/skins/CologneBlue/i18n/fr.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gomoko",
+ "IAlex",
+ "Zetud"
+ ]
+ },
+ "cologneblue.css": "/* Le CSS placé ici affectera les utilisateurs de l’habillage Cologne Blue. */",
+ "cologneblue.js": "/* Tout JavaScript ici sera chargé avec les pages accédées par les utilisateurs de l’habillage Bleu de cologne uniquement */",
+ "skinname-cologneblue": "Bleu de Cologne",
+ "cologneblue-desc": "Un habillage léger avec une mise en forme minimale"
+}
diff --git a/skins/CologneBlue/i18n/frp.json b/skins/CologneBlue/i18n/frp.json
new file mode 100644
index 00000000..c373d9b2
--- /dev/null
+++ b/skins/CologneBlue/i18n/frp.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe"
+ ]
+ },
+ "cologneblue.css": "/* Lo code CSS betâ ique afècterat los usanciérs de l’habelyâjo « Blu de Cologne ». */",
+ "cologneblue.js": "/* Tot code JavaScript betâ ique serat chargiê per los usanciérs de l’habelyâjo « Blu de Cologne ». */",
+ "skinname-cologneblue": "Blu de Cologne"
+}
diff --git a/skins/CologneBlue/i18n/ga.json b/skins/CologneBlue/i18n/ga.json
new file mode 100644
index 00000000..8752ba58
--- /dev/null
+++ b/skins/CologneBlue/i18n/ga.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kwekubo"
+ ]
+ },
+ "skinname-cologneblue": "Gorm Köln"
+}
diff --git a/skins/CologneBlue/i18n/gl.json b/skins/CologneBlue/i18n/gl.json
new file mode 100644
index 00000000..db86c26a
--- /dev/null
+++ b/skins/CologneBlue/i18n/gl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Toliño"
+ ]
+ },
+ "cologneblue.css": "/* O CSS que se coloque aquí afectará a quen use a aparencia Azul colonial */",
+ "cologneblue.js": "/* Calquera JavaScript que haxa aquí será cargado para os usuarios que usen a aparencia Azul colonial */",
+ "skinname-cologneblue": "Azul colonial"
+}
diff --git a/skins/CologneBlue/i18n/he.json b/skins/CologneBlue/i18n/he.json
new file mode 100644
index 00000000..4f90a002
--- /dev/null
+++ b/skins/CologneBlue/i18n/he.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Guycn2"
+ ]
+ },
+ "cologneblue.css": "/* הסגנונות הנכתבים כאן ישפיעו על העיצוב CologneBlue בלבד */",
+ "cologneblue.js": "/* כל סקריפט JavaScript שנכתב כאן ירוץ רק עבור המשתמשים בעיצוב CologneBlue */",
+ "skinname-cologneblue": "מים כחולים",
+ "cologneblue-desc": "מעטפת קלה עם עיצוב מינימלי"
+}
diff --git a/skins/CologneBlue/i18n/hr.json b/skins/CologneBlue/i18n/hr.json
new file mode 100644
index 00000000..0ad4e574
--- /dev/null
+++ b/skins/CologneBlue/i18n/hr.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Kölnska plava"
+}
diff --git a/skins/CologneBlue/i18n/hsb.json b/skins/CologneBlue/i18n/hsb.json
new file mode 100644
index 00000000..5cdf8e69
--- /dev/null
+++ b/skins/CologneBlue/i18n/hsb.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "skinname-cologneblue": "Kölnjanska módrina"
+}
diff --git a/skins/CologneBlue/i18n/hu.json b/skins/CologneBlue/i18n/hu.json
new file mode 100644
index 00000000..91e33f20
--- /dev/null
+++ b/skins/CologneBlue/i18n/hu.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dj"
+ ]
+ },
+ "cologneblue.css": "/* Az ide elhelyezett CSS hatással lesz a Kölni kék felület használóira */",
+ "cologneblue.js": "/* A Kölni kék felületet használó szerkesztők számára betöltendő JavaScriptek */",
+ "skinname-cologneblue": "Kölni kék"
+}
diff --git a/skins/CologneBlue/i18n/hy.json b/skins/CologneBlue/i18n/hy.json
new file mode 100644
index 00000000..136f637d
--- /dev/null
+++ b/skins/CologneBlue/i18n/hy.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Քյոլնի թախիծ"
+}
diff --git a/skins/CologneBlue/i18n/ia.json b/skins/CologneBlue/i18n/ia.json
new file mode 100644
index 00000000..f7131fdd
--- /dev/null
+++ b/skins/CologneBlue/i18n/ia.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "McDutchie"
+ ]
+ },
+ "cologneblue.css": "/* Le CSS placiate hic afficera le usatores del apparentia Colonia Blau */",
+ "cologneblue.js": "/* Omne JavaScript hic se executara pro le usatores del apparentia Colonia Blau */",
+ "skinname-cologneblue": "Colonia Blau",
+ "cologneblue-desc": "Apparentia legier e minimalista"
+}
diff --git a/skins/CologneBlue/i18n/id.json b/skins/CologneBlue/i18n/id.json
new file mode 100644
index 00000000..b5c11b09
--- /dev/null
+++ b/skins/CologneBlue/i18n/id.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arifin.wijaya",
+ "Bennylin",
+ "Iwan Novirion"
+ ]
+ },
+ "cologneblue.css": "/* CSS yang ada di sini akan diterapkan pada kulit Cologne Blue. */",
+ "cologneblue.js": "/* Semua JavaScript di sini akan dimuatkan untuk para pengguna yang menggunakan kulit Cologne Blue */",
+ "skinname-cologneblue": "Biru Köln",
+ "cologneblue-desc": "Kulit yang ringan dengan format minimal"
+}
diff --git a/skins/CologneBlue/i18n/is.json b/skins/CologneBlue/i18n/is.json
new file mode 100644
index 00000000..2b109669
--- /dev/null
+++ b/skins/CologneBlue/i18n/is.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Kölnarblátt"
+}
diff --git a/skins/CologneBlue/i18n/it.json b/skins/CologneBlue/i18n/it.json
new file mode 100644
index 00000000..993bcdaf
--- /dev/null
+++ b/skins/CologneBlue/i18n/it.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Darth Kule",
+ "FRacco"
+ ]
+ },
+ "cologneblue.css": "/* Gli stili CSS inseriti qui si applicano agli utenti che usano la skin Cologne Blue */",
+ "cologneblue.js": "/* Il codice JavaScript inserito qui viene caricato dagli utenti che usano la skin Cologne Blue */",
+ "cologneblue-desc": "Skin leggera con formattazione minima"
+}
diff --git a/skins/CologneBlue/i18n/ja.json b/skins/CologneBlue/i18n/ja.json
new file mode 100644
index 00000000..28c599d6
--- /dev/null
+++ b/skins/CologneBlue/i18n/ja.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "青子守歌",
+ "Fryed-peach"
+ ]
+ },
+ "cologneblue.css": "/* ここに記述したCSSはケルンブルー外装の利用者に影響します */",
+ "cologneblue.js": "/* ここにあるすべてのJavaScriptは、ケルンブルー外装を使用している利用者に対して読み込まれます */",
+ "skinname-cologneblue": "ケルンブルー",
+ "cologneblue-desc": "最小限の書式設定しかない軽量な外装"
+}
diff --git a/skins/CologneBlue/i18n/ka.json b/skins/CologneBlue/i18n/ka.json
new file mode 100644
index 00000000..77956903
--- /dev/null
+++ b/skins/CologneBlue/i18n/ka.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "David1010"
+ ]
+ },
+ "cologneblue.css": "/* აქ ჩასმული CSS გამოყენებული იქნება კელნის ლურჯი გაფორმების თემაში */",
+ "skinname-cologneblue": "კელნის ლურჯი"
+}
diff --git a/skins/CologneBlue/i18n/kk-arab.json b/skins/CologneBlue/i18n/kk-arab.json
new file mode 100644
index 00000000..49ea4fb1
--- /dev/null
+++ b/skins/CologneBlue/i18n/kk-arab.json
@@ -0,0 +1,5 @@
+{
+ "cologneblue.css": "/* مىندا ورنالاستىرىلعان CSS تەك «كولن زەڭگىرلىگى» (cologneblue) مانەرىن پايدالانۋشىلارىنا ىقپال ەتەدى skin */",
+ "cologneblue.js": "/* مىنداعى JavaScript تەك «كولن زەڭگىرلىگى» (cologneblue) مانەرىن پايدالانۋشىلار ٴۇشىن جەگىلەدى */",
+ "skinname-cologneblue": "كولن زەڭگىرلىگى (cologneblue)"
+}
diff --git a/skins/CologneBlue/i18n/kk-cyrl.json b/skins/CologneBlue/i18n/kk-cyrl.json
new file mode 100644
index 00000000..c7fb7410
--- /dev/null
+++ b/skins/CologneBlue/i18n/kk-cyrl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek"
+ ]
+ },
+ "cologneblue.css": "/* Мында орналастырылған CSS тек «Көлн зеңгірлігі» (cologneblue) мәнерін пайдаланушыларына ықпал етеді skin */",
+ "cologneblue.js": "/* Мындағы JavaScript тек «Көлн зеңгірлігі» (cologneblue) мәнерін пайдаланушылар үшін жегіледі */",
+ "skinname-cologneblue": "Көк зеңгірлігі (cologneblue)"
+}
diff --git a/skins/CologneBlue/i18n/kk-latn.json b/skins/CologneBlue/i18n/kk-latn.json
new file mode 100644
index 00000000..0f29340a
--- /dev/null
+++ b/skins/CologneBlue/i18n/kk-latn.json
@@ -0,0 +1,5 @@
+{
+ "cologneblue.css": "/* Mında ornalastırılğan CSS tek «Köln zeñgirligi» (cologneblue) mänerin paýdalanwşılarına ıqpal etedi skin */",
+ "cologneblue.js": "/* Mındağı JavaScript tek «Köln zeñgirligi» (cologneblue) mänerin paýdalanwşılar üşin jegiledi */",
+ "skinname-cologneblue": "Köln zeñgirligi (cologneblue)"
+}
diff --git a/skins/CologneBlue/i18n/km.json b/skins/CologneBlue/i18n/km.json
new file mode 100644
index 00000000..df901263
--- /dev/null
+++ b/skins/CologneBlue/i18n/km.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "វ័ណថារិទ្ធ"
+ ]
+ },
+ "cologneblue.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើអ្នកប្រើប្រាស់នៃសំបក Cologne Blue */",
+ "skinname-cologneblue": "ទឹកអប់ខៀវ"
+}
diff --git a/skins/CologneBlue/i18n/ko.json b/skins/CologneBlue/i18n/ko.json
new file mode 100644
index 00000000..39b42cbf
--- /dev/null
+++ b/skins/CologneBlue/i18n/ko.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "아라",
+ "Kwj2772"
+ ]
+ },
+ "cologneblue.css": "/* 이 CSS 설정은 쾰른 블루 스킨을 사용하는 사용자에게 적용됩니다 */",
+ "cologneblue.js": "/* 이 자바스크립트 설정은 쾰른 블루 스킨을 사용하는 사용자에게 적용됩니다 */",
+ "skinname-cologneblue": "쾰른 블루",
+ "cologneblue-desc": "최소한의 형식을 가진 경량 스킨"
+}
diff --git a/skins/CologneBlue/i18n/krc.json b/skins/CologneBlue/i18n/krc.json
new file mode 100644
index 00000000..6bcafeb8
--- /dev/null
+++ b/skins/CologneBlue/i18n/krc.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Къарачайлы"
+ ]
+ },
+ "skinname-cologneblue": "Кёльн такъылыкъ"
+}
diff --git a/skins/CologneBlue/i18n/ksh.json b/skins/CologneBlue/i18n/ksh.json
new file mode 100644
index 00000000..0a0649ae
--- /dev/null
+++ b/skins/CologneBlue/i18n/ksh.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha"
+ ]
+ },
+ "cologneblue.css": "/* CSS heh aan dä Stell wirrek nur op de Ovverflääsch „Kölsch Blau“ */",
+ "cologneblue.js": "/* De JavaSkrippte fun hee krijje alle Sigge met de Ovverflääsch \"Kölsch Blou\" jescheck */",
+ "skinname-cologneblue": "Kölsch Blau"
+}
diff --git a/skins/CologneBlue/i18n/la.json b/skins/CologneBlue/i18n/la.json
new file mode 100644
index 00000000..bbc2ffe1
--- /dev/null
+++ b/skins/CologneBlue/i18n/la.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Caerulus Colonia"
+}
diff --git a/skins/CologneBlue/i18n/lb.json b/skins/CologneBlue/i18n/lb.json
new file mode 100644
index 00000000..b8e192f5
--- /dev/null
+++ b/skins/CologneBlue/i18n/lb.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaffi",
+ "Robby"
+ ]
+ },
+ "cologneblue.css": "/* Dës CSS huet nëmmen Afloss op de Skin ''Köln Blo'' */",
+ "cologneblue.js": "/* All JavaScript hei gëtt gelueden esoubal ee Benotzer d'Ausgesinn Köln Blo benotzt */",
+ "skinname-cologneblue": "Köln Blo",
+ "cologneblue-desc": "E liicht Ausgesi mat minimaler Formatéierung"
+}
diff --git a/skins/CologneBlue/i18n/li.json b/skins/CologneBlue/i18n/li.json
new file mode 100644
index 00000000..b355ea26
--- /dev/null
+++ b/skins/CologneBlue/i18n/li.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Keuls blauw"
+}
diff --git a/skins/CologneBlue/i18n/lt.json b/skins/CologneBlue/i18n/lt.json
new file mode 100644
index 00000000..56049718
--- /dev/null
+++ b/skins/CologneBlue/i18n/lt.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Kelno mėlyna"
+}
diff --git a/skins/CologneBlue/i18n/lzh.json b/skins/CologneBlue/i18n/lzh.json
new file mode 100644
index 00000000..33372f1b
--- /dev/null
+++ b/skins/CologneBlue/i18n/lzh.json
@@ -0,0 +1,5 @@
+{
+ "cologneblue.css": "/* 此之 CSS 用於馨藍面之簿也 */",
+ "cologneblue.js": "/* 此之JavaScript將載於用馨藍面之簿 */",
+ "skinname-cologneblue": "馨藍"
+}
diff --git a/skins/CologneBlue/i18n/min.json b/skins/CologneBlue/i18n/min.json
new file mode 100644
index 00000000..eb622e84
--- /dev/null
+++ b/skins/CologneBlue/i18n/min.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion"
+ ]
+ },
+ "skinname-cologneblue": "Biru Köln"
+}
diff --git a/skins/CologneBlue/i18n/mk.json b/skins/CologneBlue/i18n/mk.json
new file mode 100644
index 00000000..7be469cb
--- /dev/null
+++ b/skins/CologneBlue/i18n/mk.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06"
+ ]
+ },
+ "cologneblue.css": "/* Тука поставениот CSS ќе се применува врз корисниците што го избрале рувото „Келнско сино“ */",
+ "cologneblue.js": "/* Тука поставениот JavaScript ќе им се вчитува на корисниците што го користат рувото „Келнско сино“ */",
+ "skinname-cologneblue": "Келнско сино",
+ "cologneblue-desc": "Лесно руво со минимално форматирање"
+}
diff --git a/skins/CologneBlue/i18n/ml.json b/skins/CologneBlue/i18n/ml.json
new file mode 100644
index 00000000..ac770555
--- /dev/null
+++ b/skins/CologneBlue/i18n/ml.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Praveenp"
+ ]
+ },
+ "cologneblue.css": "/* ഇവിടെ നൽകുന്ന സി.എസ്.എസ്. കൊളോൺ നീല ദൃശ്യരൂപം ഉപയോഗിക്കുന്നവർക്ക് ബാധകമായിരിക്കും */",
+ "cologneblue.js": "/* ഇവിടെ നൽകുന്ന ജാവാസ്ക്രിപ്റ്റ് കൊളോൺ നീല ദൃശ്യരൂപം ഉപയോഗിക്കുന്നവർക്ക് ബാധകമായിരിക്കും */",
+ "skinname-cologneblue": "ക്ലോൺ നീല",
+ "cologneblue-desc": "കുറച്ച് ക്രമപ്പെടുത്തൽ മാത്രമുള്ള ഒരു ലഘു ദൃശ്യരൂപം"
+}
diff --git a/skins/CologneBlue/i18n/mr.json b/skins/CologneBlue/i18n/mr.json
new file mode 100644
index 00000000..85be6199
--- /dev/null
+++ b/skins/CologneBlue/i18n/mr.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "सुरेखनीळी"
+}
diff --git a/skins/CologneBlue/i18n/ms.json b/skins/CologneBlue/i18n/ms.json
new file mode 100644
index 00000000..9812299c
--- /dev/null
+++ b/skins/CologneBlue/i18n/ms.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Aviator"
+ ]
+ },
+ "cologneblue.css": "/* Kod CSS yang terletak di sini akan mempengaruhi pengguna yang memakai rupa Cologne Blue */",
+ "cologneblue.js": "/* Sebarang kod JavaScript di sini akan dimuat oleh sesiapa yang memakai rupa Blue Cologne */",
+ "skinname-cologneblue": "Cologne Blue",
+ "cologneblue-desc": "Rupa ringan dengan pemformatan minimum"
+}
diff --git a/skins/CologneBlue/i18n/mt.json b/skins/CologneBlue/i18n/mt.json
new file mode 100644
index 00000000..871f0450
--- /dev/null
+++ b/skins/CologneBlue/i18n/mt.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrisportelli",
+ "Giangian15"
+ ]
+ },
+ "cologneblue.css": "/* CSS li tpoġġa hawnhekk se jaffetwa dawk l-utenti li jagħmlu użu mill-aspett grafiku Cologne Blue */",
+ "cologneblue.js": "/* Kull ''JavaScript'' hawnhekk jiġi mniżżel għal dawk l-utenti li qegħdin jagħmlu użu mill-iskin ''Cologne Blue'' */",
+ "skinname-cologneblue": "Cologne Blue"
+}
diff --git a/skins/CologneBlue/i18n/mwl.json b/skins/CologneBlue/i18n/mwl.json
new file mode 100644
index 00000000..c00c3693
--- /dev/null
+++ b/skins/CologneBlue/i18n/mwl.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Azul"
+}
diff --git a/skins/CologneBlue/i18n/nb.json b/skins/CologneBlue/i18n/nb.json
new file mode 100644
index 00000000..124cb786
--- /dev/null
+++ b/skins/CologneBlue/i18n/nb.json
@@ -0,0 +1,5 @@
+{
+ "cologneblue.css": "/* CSS i denne fila vil gjelde alle som bruker drakta Kølnerblå */",
+ "cologneblue.js": "/* Javascript i denne fila vil gjelde for brukere av drakta Kølnerblå */",
+ "skinname-cologneblue": "Kølnerblå"
+}
diff --git a/skins/CologneBlue/i18n/nds-nl.json b/skins/CologneBlue/i18n/nds-nl.json
new file mode 100644
index 00000000..b355ea26
--- /dev/null
+++ b/skins/CologneBlue/i18n/nds-nl.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Keuls blauw"
+}
diff --git a/skins/CologneBlue/i18n/nds.json b/skins/CologneBlue/i18n/nds.json
new file mode 100644
index 00000000..05bba6ab
--- /dev/null
+++ b/skins/CologneBlue/i18n/nds.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Kölsch Blau"
+}
diff --git a/skins/CologneBlue/i18n/ne.json b/skins/CologneBlue/i18n/ne.json
new file mode 100644
index 00000000..5201e772
--- /dev/null
+++ b/skins/CologneBlue/i18n/ne.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "सरोज कुमार ढकाल"
+ ]
+ },
+ "cologneblue.css": "/* यहाँ राखिएको CSS ले कोलोग्ने ब्लु स्किनको प्रयोगकर्ताहरुलाई प्रभावित गर्ने छ */",
+ "skinname-cologneblue": "कोलोग्ने निलो"
+}
diff --git a/skins/CologneBlue/i18n/new.json b/skins/CologneBlue/i18n/new.json
new file mode 100644
index 00000000..94c5014a
--- /dev/null
+++ b/skins/CologneBlue/i18n/new.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eukesh"
+ ]
+ },
+ "cologneblue.css": "/* थन तःगु CSS नं कोलोन ब्लु स्किनया छ्य्‌लामितेत असर याइ */"
+}
diff --git a/skins/CologneBlue/i18n/nl.json b/skins/CologneBlue/i18n/nl.json
new file mode 100644
index 00000000..c6ead3fe
--- /dev/null
+++ b/skins/CologneBlue/i18n/nl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Siebrand"
+ ]
+ },
+ "cologneblue.css": "/* CSS die hier wordt geplaatst heeft alleen invloed op de skin Keuls blauw */",
+ "cologneblue.js": "/* JavaScript die hier wordt geplaatst heeft alleen invloed op gebruikers die de skin Keuls blauw gebruiken */",
+ "skinname-cologneblue": "Keuls blauw"
+}
diff --git a/skins/CologneBlue/i18n/nn.json b/skins/CologneBlue/i18n/nn.json
new file mode 100644
index 00000000..a0f699e2
--- /dev/null
+++ b/skins/CologneBlue/i18n/nn.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Frokor"
+ ]
+ },
+ "cologneblue.css": "/* CSS i denne fila vil gjelde alle som nyttar drakta Kølnerblå */",
+ "cologneblue.js": "/* Javascript i denne fila vil gjelde for brukarar av drakta Kølnerblå */",
+ "skinname-cologneblue": "Kölnerblå"
+}
diff --git a/skins/CologneBlue/i18n/oc.json b/skins/CologneBlue/i18n/oc.json
new file mode 100644
index 00000000..090ce494
--- /dev/null
+++ b/skins/CologneBlue/i18n/oc.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31"
+ ]
+ },
+ "cologneblue.css": "/* Lo CSS plaçat aicí afectarà los utilizaires de l’abilhatge Cologne Blue */",
+ "cologneblue.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge Cologne Blue unicament. */",
+ "skinname-cologneblue": "Colonha Blau"
+}
diff --git a/skins/CologneBlue/i18n/os.json b/skins/CologneBlue/i18n/os.json
new file mode 100644
index 00000000..c0295711
--- /dev/null
+++ b/skins/CologneBlue/i18n/os.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Кёльны æрхæндæг"
+}
diff --git a/skins/CologneBlue/i18n/pdt.json b/skins/CologneBlue/i18n/pdt.json
new file mode 100644
index 00000000..f37352de
--- /dev/null
+++ b/skins/CologneBlue/i18n/pdt.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wikipeeta"
+ ]
+ },
+ "cologneblue.css": "/* CSS opp dise Sted wirtjt opp daut Keloonsch-Blau-Skin */",
+ "cologneblue.js": "/* Daut neachste JavaScript woat fe Brucka mett Keloonsch-Blau-Skin jelode */"
+}
diff --git a/skins/CologneBlue/i18n/pl.json b/skins/CologneBlue/i18n/pl.json
new file mode 100644
index 00000000..4356577f
--- /dev/null
+++ b/skins/CologneBlue/i18n/pl.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrumps",
+ "Sp5uhe"
+ ]
+ },
+ "cologneblue.css": "/* Umieszczony tutaj kod CSS wpłynie na wygląd skórki Błękit */",
+ "cologneblue.js": "/* Umieszczony tutaj kod JavaScript zostanie załadowany wyłącznie przez użytkowników korzystających ze skórki Błękit */",
+ "skinname-cologneblue": "Błękit",
+ "cologneblue-desc": "Lekka skórka z minimalnym formatowaniem"
+}
diff --git a/skins/CologneBlue/i18n/ps.json b/skins/CologneBlue/i18n/ps.json
new file mode 100644
index 00000000..48a15cf5
--- /dev/null
+++ b/skins/CologneBlue/i18n/ps.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "شين کلون"
+}
diff --git a/skins/CologneBlue/i18n/pt-br.json b/skins/CologneBlue/i18n/pt-br.json
new file mode 100644
index 00000000..b970763b
--- /dev/null
+++ b/skins/CologneBlue/i18n/pt-br.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Diego Queiroz"
+ ]
+ },
+ "cologneblue.js": "/* Qualquer JavaScript aqui colocado afetará os usuários do skin Azul colonial */",
+ "skinname-cologneblue": "Azul colonial"
+}
diff --git a/skins/CologneBlue/i18n/pt.json b/skins/CologneBlue/i18n/pt.json
new file mode 100644
index 00000000..b223597c
--- /dev/null
+++ b/skins/CologneBlue/i18n/pt.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hamilton Abreu"
+ ]
+ },
+ "cologneblue.css": "/* Código CSS colocado aqui afectará os utilizadores do tema Azul colonial */",
+ "cologneblue.js": "/* Código Javascript colocado aqui será carregado para utilizadores do tema Azul colonial */",
+ "skinname-cologneblue": "Azul colonial"
+}
diff --git a/skins/CologneBlue/i18n/qqq.json b/skins/CologneBlue/i18n/qqq.json
new file mode 100644
index 00000000..b13f7ca4
--- /dev/null
+++ b/skins/CologneBlue/i18n/qqq.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meno25",
+ "Umherirrender",
+ "Shirayuki"
+ ]
+ },
+ "cologneblue.css": "{{optional}}",
+ "cologneblue.js": "{{optional}}",
+ "skinname-cologneblue": "{{optional}}",
+ "cologneblue-desc": "Used in [[Special:Version]], description of Cologne Blue skin."
+}
diff --git a/skins/CologneBlue/i18n/qu.json b/skins/CologneBlue/i18n/qu.json
new file mode 100644
index 00000000..09f3e270
--- /dev/null
+++ b/skins/CologneBlue/i18n/qu.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna"
+ ]
+ },
+ "cologneblue.css": "/* Churamusqa CSS chantakunaqa ''Cologne Blue skin'' nisqa qarata llamk'achiq ruraqkunapaq llamk'anqa */",
+ "cologneblue.js": "/* Ima kaypi qillqamusqa JavaScript nisqa wakichi qillqapas ''Cologne Blue skin'' nisqa qarata llamk'achiq ruraqkunapaq chaqnasqa kanqa */"
+}
diff --git a/skins/CologneBlue/i18n/ro.json b/skins/CologneBlue/i18n/ro.json
new file mode 100644
index 00000000..94fd1fb7
--- /dev/null
+++ b/skins/CologneBlue/i18n/ro.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Firilacroco"
+ ]
+ },
+ "cologneblue.css": "/* CSS plasate aici vor afecta utilizatorii stilului Cologne Blue */",
+ "skinname-cologneblue": "Albastru de Cologne"
+}
diff --git a/skins/CologneBlue/i18n/roa-tara.json b/skins/CologneBlue/i18n/roa-tara.json
new file mode 100644
index 00000000..0a881c34
--- /dev/null
+++ b/skins/CologneBlue/i18n/roa-tara.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras"
+ ]
+ },
+ "cologneblue.css": "/* 'U CSS ca se iacchie aqquà 'u 'ndrucane le utinde d'a masckere Blu Cologne */",
+ "cologneblue.js": "/* Ogne JavaScript aqquà avène carecate pe le utinde ca ausane 'a masckere Blu Cologne */",
+ "skinname-cologneblue": "Blu Cologne"
+}
diff --git a/skins/CologneBlue/i18n/ru.json b/skins/CologneBlue/i18n/ru.json
new file mode 100644
index 00000000..a318aaf5
--- /dev/null
+++ b/skins/CologneBlue/i18n/ru.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaganer",
+ "Okras",
+ "Rave"
+ ]
+ },
+ "cologneblue.css": "/* Размещённый здесь CSS будет применяться к теме оформления Cologne Blue */",
+ "cologneblue.js": "/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Cologne Blue */",
+ "skinname-cologneblue": "Кёльнская тоска",
+ "cologneblue-desc": "Легкая тема оформления с минимальным форматированием"
+}
diff --git a/skins/CologneBlue/i18n/sa.json b/skins/CologneBlue/i18n/sa.json
new file mode 100644
index 00000000..6354a6be
--- /dev/null
+++ b/skins/CologneBlue/i18n/sa.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "नील"
+}
diff --git a/skins/CologneBlue/i18n/scn.json b/skins/CologneBlue/i18n/scn.json
new file mode 100644
index 00000000..093f1d55
--- /dev/null
+++ b/skins/CologneBlue/i18n/scn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Santu"
+ ]
+ },
+ "skinname-cologneblue": "Cologne Blu"
+}
diff --git a/skins/CologneBlue/i18n/si.json b/skins/CologneBlue/i18n/si.json
new file mode 100644
index 00000000..277abb4e
--- /dev/null
+++ b/skins/CologneBlue/i18n/si.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Singhalawap",
+ "නන්දිමිතුරු"
+ ]
+ },
+ "cologneblue.css": "/* මෙහි CSS බහාලීම \"Cologne Blue\" ඡවිය භාවිතා කරන පරිශීලකයන් හට බලපෑම් සිදු කල හැක */",
+ "cologneblue.js": "/* මෙහි ඕනෑම ජාවාස්ක්‍රිප්ට් එකක් සිහිල්-සුවඳ-පැන් ඡවිය භාවිතා කරන පරිශීලකයන්හට ප්‍රවේශනය කෙරේ */"
+}
diff --git a/skins/CologneBlue/i18n/sk.json b/skins/CologneBlue/i18n/sk.json
new file mode 100644
index 00000000..a9fdc932
--- /dev/null
+++ b/skins/CologneBlue/i18n/sk.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Helix84",
+ "Rudko"
+ ]
+ },
+ "cologneblue.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov štýlu Kolínska modrá */",
+ "cologneblue.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom vzhľadu Kolínska modrá */",
+ "skinname-cologneblue": "Kolínska modrá"
+}
diff --git a/skins/CologneBlue/i18n/sq.json b/skins/CologneBlue/i18n/sq.json
new file mode 100644
index 00000000..3b730dfb
--- /dev/null
+++ b/skins/CologneBlue/i18n/sq.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Kolonjë Blu"
+}
diff --git a/skins/CologneBlue/i18n/sr-ec.json b/skins/CologneBlue/i18n/sr-ec.json
new file mode 100644
index 00000000..f191c034
--- /dev/null
+++ b/skins/CologneBlue/i18n/sr-ec.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Milicevic01",
+ "Rancher"
+ ]
+ },
+ "cologneblue.css": "/* CSS постављен овде ће утицати на све кориснике теме „Келнско плава“ */",
+ "cologneblue.js": "/* Јаваскрипт постављен овде ће се учитати за све оне који користе тему „Келнско плава“ */",
+ "skinname-cologneblue": "Келнско плава"
+}
diff --git a/skins/CologneBlue/i18n/sr-el.json b/skins/CologneBlue/i18n/sr-el.json
new file mode 100644
index 00000000..b2320d03
--- /dev/null
+++ b/skins/CologneBlue/i18n/sr-el.json
@@ -0,0 +1,5 @@
+{
+ "cologneblue.css": "/* CSS postavljen ovde će uticati na sve korisnike teme „Kelnsko plava“ */",
+ "cologneblue.js": "/* Javaskript postavljen ovde će se učitati za sve one koji koriste temu „Kelnsko plava“ */",
+ "skinname-cologneblue": "Kelnsko plava"
+}
diff --git a/skins/CologneBlue/i18n/su.json b/skins/CologneBlue/i18n/su.json
new file mode 100644
index 00000000..1c2803d0
--- /dev/null
+++ b/skins/CologneBlue/i18n/su.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kandar"
+ ]
+ },
+ "cologneblue-desc": "Kulit hampang kalayan format anu basajan"
+}
diff --git a/skins/CologneBlue/i18n/sv.json b/skins/CologneBlue/i18n/sv.json
new file mode 100644
index 00000000..82160c12
--- /dev/null
+++ b/skins/CologneBlue/i18n/sv.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lokal Profil"
+ ]
+ },
+ "cologneblue.css": "/* CSS som skrivs här kommer att påverka alla användare av utseendet Cologne blå */",
+ "cologneblue.js": "/* JavaScript här kommer att laddas för dem som använder utseendet Cologne blå */",
+ "skinname-cologneblue": "Cologne blå",
+ "cologneblue-desc": "Ett lättviktsutseende med minimal formatering"
+}
diff --git a/skins/CologneBlue/i18n/ta.json b/skins/CologneBlue/i18n/ta.json
new file mode 100644
index 00000000..a7f6896e
--- /dev/null
+++ b/skins/CologneBlue/i18n/ta.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "கொலோன் (Cologne) நீலம் Blue"
+}
diff --git a/skins/CologneBlue/i18n/te.json b/skins/CologneBlue/i18n/te.json
new file mode 100644
index 00000000..522e31e2
--- /dev/null
+++ b/skins/CologneBlue/i18n/te.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Veeven"
+ ]
+ },
+ "skinname-cologneblue": "కలోన్ నీలం"
+}
diff --git a/skins/CologneBlue/i18n/tet.json b/skins/CologneBlue/i18n/tet.json
new file mode 100644
index 00000000..ddc23fa7
--- /dev/null
+++ b/skins/CologneBlue/i18n/tet.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Kolónia azúl"
+}
diff --git a/skins/CologneBlue/i18n/th.json b/skins/CologneBlue/i18n/th.json
new file mode 100644
index 00000000..4246b6f4
--- /dev/null
+++ b/skins/CologneBlue/i18n/th.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Manop",
+ "Octahedron80"
+ ]
+ },
+ "cologneblue.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินโคโลญจ์บลู */",
+ "cologneblue.js": "/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินโคโลญจ์บลู */",
+ "skinname-cologneblue": "โคโลญจ์บลู"
+}
diff --git a/skins/CologneBlue/i18n/tl.json b/skins/CologneBlue/i18n/tl.json
new file mode 100644
index 00000000..72e6ecd1
--- /dev/null
+++ b/skins/CologneBlue/i18n/tl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sky Harbor"
+ ]
+ },
+ "cologneblue.css": "/* Ang Cascading Style Sheets na inilagay dito ay makakaapekto sa mga tagagamit ng pabalat na Cologne Blue */",
+ "cologneblue.js": "/* Ang anumang JavaScript dito ay ikakarga para sa mga tagagamit ng pabalat na Cologne Blue */",
+ "skinname-cologneblue": "Cologne Blue"
+}
diff --git a/skins/CologneBlue/i18n/tt-cyrl.json b/skins/CologneBlue/i18n/tt-cyrl.json
new file mode 100644
index 00000000..ddcc5345
--- /dev/null
+++ b/skins/CologneBlue/i18n/tt-cyrl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ильнар"
+ ]
+ },
+ "skinname-cologneblue": "Зәңгәр сагыш"
+}
diff --git a/skins/CologneBlue/i18n/tt-latn.json b/skins/CologneBlue/i18n/tt-latn.json
new file mode 100644
index 00000000..545b9549
--- /dev/null
+++ b/skins/CologneBlue/i18n/tt-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "skinname-cologneblue": "Zäñgär sağış"
+}
diff --git a/skins/CologneBlue/i18n/tyv.json b/skins/CologneBlue/i18n/tyv.json
new file mode 100644
index 00000000..1c79342b
--- /dev/null
+++ b/skins/CologneBlue/i18n/tyv.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Cologne Blue"
+}
diff --git a/skins/CologneBlue/i18n/ug-arab.json b/skins/CologneBlue/i18n/ug-arab.json
new file mode 100644
index 00000000..fcfb8917
--- /dev/null
+++ b/skins/CologneBlue/i18n/ug-arab.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arlin"
+ ]
+ },
+ "cologneblue.css": "/* CSS placed here will affect users of the Cologne Blue skin */",
+ "cologneblue.js": "/* Any JavaScript here will be loaded for users using the Cologne Blue skin */",
+ "skinname-cologneblue": "Cologne Blue"
+}
diff --git a/skins/CologneBlue/i18n/uk.json b/skins/CologneBlue/i18n/uk.json
new file mode 100644
index 00000000..748fc42e
--- /dev/null
+++ b/skins/CologneBlue/i18n/uk.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dim Grits",
+ "Alex Khimich"
+ ]
+ },
+ "cologneblue.css": "/* Розміщений тут CSS-код буде використаний для користувачів з налаштованою темою оформлення Кельнське блакитне */",
+ "cologneblue.js": "/* Розміщений тут код JavaScript буде завантажений для всіх користувачів, що використовують тему оформлення Кельнське синє */",
+ "skinname-cologneblue": "Кельнське синє",
+ "cologneblue-desc": "Легка тема оформлення з мінімальними форматуванням."
+}
diff --git a/skins/CologneBlue/i18n/uz.json b/skins/CologneBlue/i18n/uz.json
new file mode 100644
index 00000000..6d2c6e1b
--- /dev/null
+++ b/skins/CologneBlue/i18n/uz.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sociologist"
+ ]
+ },
+ "skinname-cologneblue": "Kyolncha sogʻinch"
+}
diff --git a/skins/CologneBlue/i18n/vep.json b/skins/CologneBlue/i18n/vep.json
new file mode 100644
index 00000000..c647564a
--- /dev/null
+++ b/skins/CologneBlue/i18n/vep.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Игорь Бродский"
+ ]
+ },
+ "skinname-cologneblue": "Köl'nan sinine"
+}
diff --git a/skins/CologneBlue/i18n/vi.json b/skins/CologneBlue/i18n/vi.json
new file mode 100644
index 00000000..c1d2470e
--- /dev/null
+++ b/skins/CologneBlue/i18n/vi.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minh Nguyen",
+ "Vinhtantran"
+ ]
+ },
+ "cologneblue.css": "/* Mã CSS tại đây sẽ ảnh hưởng đến những người dùng sử dụng giao diện Xanh Cologne */",
+ "cologneblue.js": "/* Mã JavaScript tại đây sẽ được tải khi người dùng sử dụng giao diện Xanh Cologne */",
+ "skinname-cologneblue": "Xanh Cologne",
+ "cologneblue-desc": "Giao diện nhẹ nhàng có ít định dạng"
+}
diff --git a/skins/CologneBlue/i18n/vmf.json b/skins/CologneBlue/i18n/vmf.json
new file mode 100644
index 00000000..21fa28f9
--- /dev/null
+++ b/skins/CologneBlue/i18n/vmf.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Silvicola"
+ ]
+ },
+ "cologneblue.css": "/* CSS hiir beâjflusd nôr dii Kölnisch-Blau-schelfn. Wen'd ale uf ôômôôl beâjflusn wilsch, muâsch an MediaWiki:Common.css was ändârn. */"
+}
diff --git a/skins/CologneBlue/i18n/vro.json b/skins/CologneBlue/i18n/vro.json
new file mode 100644
index 00000000..751ff4c4
--- /dev/null
+++ b/skins/CologneBlue/i18n/vro.json
@@ -0,0 +1,3 @@
+{
+ "skinname-cologneblue": "Array"
+}
diff --git a/skins/CologneBlue/i18n/wo.json b/skins/CologneBlue/i18n/wo.json
new file mode 100644
index 00000000..6981f6ff
--- /dev/null
+++ b/skins/CologneBlue/i18n/wo.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibou"
+ ]
+ },
+ "cologneblue.css": "/* CSS yiñ def fii dañuy am ay njeexit ci jëfandikukatu col gu Cologne Blue */",
+ "cologneblue.js": "/* Bépp JavaScript buñ fi duggal jëfandikukat yiy jëfandikoo col gu Cologne Blue keppa koy yeb */"
+}
diff --git a/skins/CologneBlue/i18n/yi.json b/skins/CologneBlue/i18n/yi.json
new file mode 100644
index 00000000..82757093
--- /dev/null
+++ b/skins/CologneBlue/i18n/yi.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "פוילישער"
+ ]
+ },
+ "cologneblue.css": "/* CSS געשטעלט דא ווירקט נאר אויפן קעלנישן־בלוי סקין */",
+ "skinname-cologneblue": "קעלניש בלוי"
+}
diff --git a/skins/CologneBlue/i18n/yue.json b/skins/CologneBlue/i18n/yue.json
new file mode 100644
index 00000000..e161c692
--- /dev/null
+++ b/skins/CologneBlue/i18n/yue.json
@@ -0,0 +1,5 @@
+{
+ "cologneblue.css": "/* 響呢度放 CSS 碼去改用戶用嘅科隆藍畫面 */",
+ "cologneblue.js": "/* 響每一次個頁面載入時,用科隆藍畫面嘅用戶都會載入呢度任何嘅JavaScript */",
+ "skinname-cologneblue": "科隆藍"
+}
diff --git a/skins/CologneBlue/i18n/zh-hans.json b/skins/CologneBlue/i18n/zh-hans.json
new file mode 100644
index 00000000..07e16f8e
--- /dev/null
+++ b/skins/CologneBlue/i18n/zh-hans.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liuxinyu970226",
+ "Xiaomingyan"
+ ]
+ },
+ "cologneblue.css": "/* 放置于这里的CSS将影响使用科隆香水蓝皮肤的用户 */",
+ "cologneblue.js": "/* 这里的任何JavaScript将为使用科隆香水蓝皮肤的用户加载 */",
+ "skinname-cologneblue": "科隆香水蓝",
+ "cologneblue-desc": "使用最低格式的轻量级皮肤"
+}
diff --git a/skins/CologneBlue/i18n/zh-hant.json b/skins/CologneBlue/i18n/zh-hant.json
new file mode 100644
index 00000000..11521650
--- /dev/null
+++ b/skins/CologneBlue/i18n/zh-hant.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cwlin0416"
+ ]
+ },
+ "cologneblue.css": "/* 此 CSS 會影響使用 Cologne Blue 介面外觀的使用者 */",
+ "cologneblue.js": "/* 此 JavaScript 會用於使用 Cologne Blue 介面外觀的使用者 */",
+ "skinname-cologneblue": "科隆香水藍",
+ "cologneblue-desc": "使用最少格式設定的輕量級的外觀"
+}
diff --git a/skins/cologneblue/print.css b/skins/CologneBlue/resources/print.css
index d4b05518..d4b05518 100644
--- a/skins/cologneblue/print.css
+++ b/skins/CologneBlue/resources/print.css
diff --git a/skins/cologneblue/screen.css b/skins/CologneBlue/resources/screen.css
index bc5dd316..58823965 100644
--- a/skins/cologneblue/screen.css
+++ b/skins/CologneBlue/resources/screen.css
@@ -56,9 +56,6 @@ p, pre, .mw-code, td, th, li, dd, dt {
textarea {
overflow: auto;
width: 100%;
-}
-
-#editform textarea {
display: block;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
@@ -88,8 +85,6 @@ textarea {
font-size: 9pt;
}
-
-
#quickbar {
font-family: Verdana, Arial, sans-serif;
font-size: 8pt;
@@ -136,6 +131,11 @@ textarea {
line-height: inherit;
}
+div.after-portlet {
+ display: inline;
+ padding-left: .5em;
+}
+
h1 {
color: #666666;
font-family: Verdana, Arial, sans-serif;
@@ -195,10 +195,19 @@ input.mw-searchInput {
}
/* Directionality-specific styles */
-#quickbar { position: absolute; left: 4px; }
-#article { margin-left: 148px; margin-right: 4px; }
-#footer { margin-left: 152px; }
+#quickbar {
+ position: absolute;
+ left: 4px;
+}
+
+#article {
+ margin-left: 148px;
+ margin-right: 4px;
+}
+#footer {
+ margin-left: 152px;
+}
#sitetitle, #sitesub, #toplinks, #linkcollection {
margin-top: 0;
@@ -210,6 +219,7 @@ input.mw-searchInput {
text-transform: uppercase;
height: 32pt;
}
+
#sitetitle {
padding-left: 8px;
font-family: Times, serif;
@@ -218,14 +228,16 @@ input.mw-searchInput {
line-height: 32pt;
background-color: #6688AA;
}
+
#sitetitle a, #toplinks a {
color: white;
text-decoration: none;
}
+
/* Bring #sitetitle to top. Otherwise #toplinks is overlaid over it, making the link unclickable. */
#sitetitle a {
position: relative;
- z-index: 10
+ z-index: 10;
}
#toplinks {
@@ -236,9 +248,11 @@ input.mw-searchInput {
width: 100%;
font-size: 8pt;
}
+
#toplinks a {
font-size: 10pt;
}
+
#toplinks p {
position: absolute;
right: 0;
@@ -246,9 +260,11 @@ input.mw-searchInput {
width: 100%;
text-align: right;
}
+
#toplinks #syslinks {
bottom: 0;
}
+
#toplinks #variantlinks {
bottom: 12pt;
}
@@ -269,6 +285,7 @@ input.mw-searchInput {
text-align: right;
padding-left: 140px;
}
+
/* Override text justification (user preference), see bug 31990 */
#linkcollection * {
text-align: right;
diff --git a/skins/Modern.php b/skins/Modern.php
deleted file mode 100644
index 8d778cf6..00000000
--- a/skins/Modern.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-/**
- * Modern skin, derived from monobook template.
- *
- * 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
- *
- * @todo document
- * @file
- * @ingroup Skins
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
- die( -1 );
-}
-
-/**
- * Inherit main code from SkinTemplate, set the CSS and template filter.
- * @todo document
- * @ingroup Skins
- */
-class SkinModern extends SkinTemplate {
- var $skinname = 'modern', $stylename = 'modern',
- $template = 'ModernTemplate', $useHeadElement = true;
-
- /**
- * @param $out OutputPage
- */
- function setupSkinUserCss( OutputPage $out ) {
- parent::setupSkinUserCss( $out );
- $out->addModuleStyles( 'skins.modern' );
- }
-}
-
-/**
- * @todo document
- * @ingroup Skins
- */
-class ModernTemplate extends MonoBookTemplate {
-
- /**
- * Template filter callback for Modern skin.
- * Takes an associative array of data set from a SkinTemplate-based
- * class, and a wrapper for MediaWiki's localization database, and
- * outputs a formatted page.
- *
- * @access private
- */
- function execute() {
- // Suppress warnings to prevent notices about missing indexes in $this->data
- wfSuppressWarnings();
-
- $this->html( 'headelement' );
-?>
-
- <!-- heading -->
- <div id="mw_header"><h1 id="firstHeading" lang="<?php
- $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
- $this->text( 'pageLanguage' );
- ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1></div>
-
- <div id="mw_main">
- <div id="mw_contentwrapper">
- <!-- navigation portlet -->
-<?php $this->cactions(); ?>
-
- <!-- content -->
- <div id="mw_content" role="main">
- <!-- contentholder does nothing by default, but it allows users to style the text inside
- the content area without affecting the meaning of 'em' in #mw_content, which is used
- for the margins -->
- <div id="mw_contentholder" class="mw-body">
- <div class='mw-topboxes'>
- <div id="mw-js-message" style="display:none;"<?php $this->html( 'userlangattributes' ) ?>></div>
- <div class="mw-topbox" id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
- <?php if ( $this->data['newtalk'] ) {
- ?><div class="usermessage mw-topbox"><?php $this->html( 'newtalk' ) ?></div>
- <?php } ?>
- <?php if ( $this->data['sitenotice'] ) {
- ?><div class="mw-topbox" id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div>
- <?php } ?>
- </div>
-
- <div id="contentSub"<?php $this->html( 'userlangattributes' ) ?>><?php $this->html( 'subtitle' ) ?></div>
-
- <?php if ( $this->data['undelete'] ) { ?><div id="contentSub2"><?php $this->html( 'undelete' ) ?></div><?php } ?>
- <div id="jump-to-nav"><?php $this->msg( 'jumpto' ) ?> <a href="#mw_portlets"><?php $this->msg( 'jumptonavigation' ) ?></a><?php $this->msg( 'comma-separator' ) ?><a href="#searchInput"><?php $this->msg( 'jumptosearch' ) ?></a></div>
-
- <?php $this->html( 'bodytext' ) ?>
- <div class='mw_clear'></div>
- <?php if ( $this->data['catlinks'] ) { $this->html( 'catlinks' ); } ?>
- <?php $this->html( 'dataAfterContent' ) ?>
- </div><!-- mw_contentholder -->
- </div><!-- mw_content -->
- </div><!-- mw_contentwrapper -->
-
- <div id="mw_portlets"<?php $this->html( "userlangattributes" ) ?>>
- <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
-
- <!-- portlets -->
- <?php $this->renderPortals( $this->data['sidebar'] ); ?>
-
- </div><!-- mw_portlets -->
-
-
- </div><!-- main -->
-
- <div class="mw_clear"></div>
-
- <!-- personal portlet -->
- <div class="portlet" id="p-personal" role="navigation">
- <h3><?php $this->msg( 'personaltools' ) ?></h3>
- <div class="pBody">
- <ul>
-<?php foreach ( $this->getPersonalTools() as $key => $item ) { ?>
- <?php echo $this->makeListItem( $key, $item ); ?>
-
-<?php } ?>
- </ul>
- </div>
- </div>
-
-
- <!-- footer -->
- <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
- <ul id="f-list">
-<?php
- foreach ( $this->getFooterLinks( "flat" ) as $aLink ) {
- if ( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
-?> <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
-<?php }
- }
-?>
- </ul>
-<?php
- foreach ( $this->getFooterIcons( "nocopyright" ) as $blockName => $footerIcons ) { ?>
- <div id="mw_<?php echo htmlspecialchars( $blockName ); ?>">
-<?php
- foreach ( $footerIcons as $icon ) { ?>
- <?php echo $this->getSkin()->makeFooterIcon( $icon, 'withoutImage' ); ?>
-
-<?php
- } ?>
- </div>
-<?php
- }
-?>
- </div>
-
- <?php $this->printTrail(); ?>
-</body></html>
-<?php
- wfRestoreWarnings();
- } // end of execute() method
-} // end of class
-
-
diff --git a/skins/Modern/COPYING b/skins/Modern/COPYING
new file mode 100644
index 00000000..019694a9
--- /dev/null
+++ b/skins/Modern/COPYING
@@ -0,0 +1,342 @@
+== 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 Library 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.
+
+== 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 Library General
+Public License instead of this License.
diff --git a/skins/Modern/Modern.php b/skins/Modern/Modern.php
new file mode 100644
index 00000000..f1a3ce34
--- /dev/null
+++ b/skins/Modern/Modern.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Modern skin
+ *
+ * @file
+ * @ingroup Skins
+ *
+ * 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
+ */
+
+$wgExtensionCredits['skin'][] = array(
+ 'path' => __FILE__,
+ 'name' => 'Modern',
+ 'namemsg' => 'skinname-modern',
+ 'descriptionmsg' => 'modern-desc',
+ 'url' => 'https://www.mediawiki.org/wiki/Skin:Modern',
+ 'author' => array( 'River Tarnell', '...' ),
+ 'license-name' => 'GPLv2+',
+);
+
+// Register files
+$wgAutoloadClasses['SkinModern'] = __DIR__ . '/SkinModern.php';
+$wgAutoloadClasses['ModernTemplate'] = __DIR__ . '/SkinModern.php';
+$wgMessagesDirs['Modern'] = __DIR__ . '/i18n';
+
+// Register skin
+$wgValidSkinNames['modern'] = 'Modern';
+
+// Register modules
+$wgResourceModules['skins.modern'] = array(
+ 'styles' => array(
+ 'resources/main.css' => array( 'media' => 'screen' ),
+ 'resources/print.css' => array( 'media' => 'print' ),
+ ),
+ 'remoteBasePath' => $GLOBALS['wgStylePath'] . '/Modern',
+ 'localBasePath' => __DIR__,
+);
diff --git a/skins/Modern/SkinModern.php b/skins/Modern/SkinModern.php
new file mode 100644
index 00000000..e12ad357
--- /dev/null
+++ b/skins/Modern/SkinModern.php
@@ -0,0 +1,205 @@
+<?php
+/**
+ * Modern skin, derived from monobook template.
+ *
+ * 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
+ *
+ * @todo document
+ * @file
+ * @ingroup Skins
+ */
+
+if ( !defined( 'MEDIAWIKI' ) ) {
+ die( -1 );
+}
+
+/**
+ * Inherit main code from SkinTemplate, set the CSS and template filter.
+ * @todo document
+ * @ingroup Skins
+ */
+class SkinModern extends SkinTemplate {
+ public $skinname = 'modern';
+ public $template = 'ModernTemplate';
+
+ /**
+ * @param OutputPage $out
+ */
+ function setupSkinUserCss( OutputPage $out ) {
+ parent::setupSkinUserCss( $out );
+ $out->addModuleStyles( 'skins.modern' );
+ }
+}
+
+/**
+ * @todo document
+ * @ingroup Skins
+ */
+class ModernTemplate extends MonoBookTemplate {
+
+ /**
+ * Template filter callback for Modern skin.
+ * Takes an associative array of data set from a SkinTemplate-based
+ * class, and a wrapper for MediaWiki's localization database, and
+ * outputs a formatted page.
+ *
+ * @access private
+ */
+ function execute() {
+ // Suppress warnings to prevent notices about missing indexes in $this->data
+ wfSuppressWarnings();
+
+ $this->html( 'headelement' );
+ ?>
+
+ <!-- heading -->
+ <div id="mw_header"><h1 id="firstHeading" lang="<?php
+ $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
+ $this->text( 'pageLanguage' );
+ ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1></div>
+
+ <div id="mw_main">
+ <div id="mw_contentwrapper">
+ <!-- navigation portlet -->
+ <?php $this->cactions(); ?>
+
+ <!-- content -->
+ <div id="mw_content" role="main">
+ <!-- contentholder does nothing by default, but it allows users to style the text inside
+ the content area without affecting the meaning of 'em' in #mw_content, which is used
+ for the margins -->
+ <div id="mw_contentholder" class="mw-body">
+ <div class='mw-topboxes'>
+ <div id="mw-js-message"
+ style="display:none;"<?php $this->html( 'userlangattributes' ) ?>></div>
+ <div class="mw-topbox" id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
+ <?php
+ if ( $this->data['newtalk'] ) {
+ ?>
+ <div class="usermessage mw-topbox"><?php $this->html( 'newtalk' ) ?></div>
+ <?php
+ }
+ ?>
+ <?php
+ if ( $this->data['sitenotice'] ) {
+ ?>
+ <div class="mw-topbox" id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div>
+ <?php
+ }
+ ?>
+ </div>
+
+ <div id="contentSub"<?php
+ $this->html( 'userlangattributes' )
+ ?>><?php
+ $this->html( 'subtitle' )
+ ?></div>
+
+ <?php
+ if ( $this->data['undelete'] ) {
+ ?>
+ <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div><?php
+ }
+ ?>
+ <div id="jump-to-nav"><?php $this->msg( 'jumpto' ) ?>
+ <a href="#mw_portlets"><?php
+ $this->msg( 'jumptonavigation' ) ?></a><?php $this->msg( 'comma-separator' )
+ ?>
+ <a href="#searchInput"><?php $this->msg( 'jumptosearch' ) ?></a>
+ </div>
+
+ <?php $this->html( 'bodytext' ) ?>
+ <div class='mw_clear'></div>
+ <?php
+ if ( $this->data['catlinks'] ) {
+ $this->html( 'catlinks' );
+ }
+ ?>
+ <?php $this->html( 'dataAfterContent' ) ?>
+ </div><!-- mw_contentholder -->
+ </div><!-- mw_content -->
+ </div><!-- mw_contentwrapper -->
+
+ <div id="mw_portlets"<?php $this->html( "userlangattributes" ) ?>>
+ <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
+
+ <!-- portlets -->
+ <?php $this->renderPortals( $this->data['sidebar'] ); ?>
+
+ </div><!-- mw_portlets -->
+
+
+ </div><!-- main -->
+
+ <div class="mw_clear"></div>
+
+ <!-- personal portlet -->
+ <div class="portlet" id="p-personal" role="navigation">
+ <h3><?php $this->msg( 'personaltools' ) ?></h3>
+
+ <div class="pBody">
+ <ul>
+ <?php
+ foreach ( $this->getPersonalTools() as $key => $item ) {
+ ?>
+ <?php echo $this->makeListItem( $key, $item ); ?>
+
+ <?php
+ }
+ ?>
+ </ul>
+ </div>
+ </div>
+
+
+ <!-- footer -->
+ <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
+ <ul id="f-list">
+ <?php
+ foreach ( $this->getFooterLinks( "flat" ) as $aLink ) {
+ if ( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
+ ?>
+ <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
+ <?php
+ }
+ }
+ ?>
+ </ul>
+ <?php
+ foreach ( $this->getFooterIcons( "nocopyright" ) as $blockName => $footerIcons ) {
+ ?>
+ <div id="mw_<?php echo htmlspecialchars( $blockName ); ?>">
+ <?php
+ foreach ( $footerIcons as $icon ) {
+ ?>
+ <?php echo $this->getSkin()->makeFooterIcon( $icon, 'withoutImage' ); ?>
+
+ <?php
+ } ?>
+ </div>
+ <?php
+ }
+ ?>
+ </div>
+
+ <?php $this->printTrail(); ?>
+
+ </body>
+</html>
+ <?php
+ wfRestoreWarnings();
+ } // end of execute() method
+} // end of class
diff --git a/skins/Modern/i18n/aln.json b/skins/Modern/i18n/aln.json
new file mode 100644
index 00000000..da8bb3bf
--- /dev/null
+++ b/skins/Modern/i18n/aln.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bresta"
+ ]
+ },
+ "modern.css": "/* CSSi i vednosun këtu ka me i prekë shfrytëzuesit e dukjes Modern */",
+ "modern.js": "/* Çdo JavaScript këtu ka me u ngarkue për shfrytëzuesit që përdorin dukjen Modern */"
+}
diff --git a/skins/Modern/i18n/an.json b/skins/Modern/i18n/an.json
new file mode 100644
index 00000000..ee55bf79
--- /dev/null
+++ b/skins/Modern/i18n/an.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Juanpabl"
+ ]
+ },
+ "modern.css": "/* Os estilos CSS colocaus aquí s'aplicarán ta totz os usuarios que faigan servir l'apariencia Modern */",
+ "modern.js": "/* O codigo Javascript que se meta aquí será cargau por os usuarios faigan servir l'apariencia Modern */",
+ "skinname-modern": "Moderna"
+}
diff --git a/skins/Modern/i18n/ar.json b/skins/Modern/i18n/ar.json
new file mode 100644
index 00000000..fe3fa710
--- /dev/null
+++ b/skins/Modern/i18n/ar.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meno25"
+ ]
+ },
+ "modern.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة مودرن */",
+ "modern.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة مودرن */",
+ "skinname-modern": "مودرن"
+}
diff --git a/skins/Modern/i18n/arz.json b/skins/Modern/i18n/arz.json
new file mode 100644
index 00000000..8f7dbe69
--- /dev/null
+++ b/skins/Modern/i18n/arz.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meno25"
+ ]
+ },
+ "modern.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمى واجهة مودرن */",
+ "modern.js": "/* أى جافاسكريبت هنا ح تتحمل لليوزرز اللى بيستعملو واجهة مودرن */",
+ "skinname-modern": "مودرن"
+}
diff --git a/skins/Modern/i18n/ast.json b/skins/Modern/i18n/ast.json
new file mode 100644
index 00000000..be5fae68
--- /dev/null
+++ b/skins/Modern/i18n/ast.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Xuacu"
+ ]
+ },
+ "modern.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Modern */",
+ "modern.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu Modern */",
+ "skinname-modern": "Modernu",
+ "modern-desc": "Un tema azul/buxu con barres llateral y superior. Deriváu de MonoBook."
+}
diff --git a/skins/Modern/i18n/az.json b/skins/Modern/i18n/az.json
new file mode 100644
index 00000000..fa5a5842
--- /dev/null
+++ b/skins/Modern/i18n/az.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vago"
+ ]
+ },
+ "modern.css": "/* Burada yerləşən CSS Modern skin istifadəçilərinə tətbiq olunur */",
+ "modern.js": "/* Burada Modern skin istifadəçiləri üçün istənilən JavaScript yüklənəcək */",
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/ba.json b/skins/Modern/i18n/ba.json
new file mode 100644
index 00000000..a0f797b9
--- /dev/null
+++ b/skins/Modern/i18n/ba.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Assele"
+ ]
+ },
+ "skinname-modern": "Заманса"
+}
diff --git a/skins/Modern/i18n/bcc.json b/skins/Modern/i18n/bcc.json
new file mode 100644
index 00000000..036721e0
--- /dev/null
+++ b/skins/Modern/i18n/bcc.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "مدرن"
+}
diff --git a/skins/Modern/i18n/bcl.json b/skins/Modern/i18n/bcl.json
new file mode 100644
index 00000000..84f5a0b2
--- /dev/null
+++ b/skins/Modern/i18n/bcl.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Bago"
+}
diff --git a/skins/Modern/i18n/be-tarask.json b/skins/Modern/i18n/be-tarask.json
new file mode 100644
index 00000000..bdd735cf
--- /dev/null
+++ b/skins/Modern/i18n/be-tarask.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Сучаснае"
+}
diff --git a/skins/Modern/i18n/be.json b/skins/Modern/i18n/be.json
new file mode 100644
index 00000000..52a2be37
--- /dev/null
+++ b/skins/Modern/i18n/be.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Сучаснасць"
+}
diff --git a/skins/Modern/i18n/bg.json b/skins/Modern/i18n/bg.json
new file mode 100644
index 00000000..ad220251
--- /dev/null
+++ b/skins/Modern/i18n/bg.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Модерен"
+}
diff --git a/skins/Modern/i18n/bn.json b/skins/Modern/i18n/bn.json
new file mode 100644
index 00000000..6e7d6558
--- /dev/null
+++ b/skins/Modern/i18n/bn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aftab1995"
+ ]
+ },
+ "skinname-modern": "মডার্ন"
+}
diff --git a/skins/Modern/i18n/br.json b/skins/Modern/i18n/br.json
new file mode 100644
index 00000000..c318fa08
--- /dev/null
+++ b/skins/Modern/i18n/br.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fulup"
+ ]
+ },
+ "modern.css": "/* Talvezout a raio ar CSS lakaet amañ evit implijerien ar gwiskadur Modern */",
+ "modern.js": "/* Kement JavaScript amañ a vo karget evit an implijerien a ra gant ar gwiskadur Modern */",
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/bs.json b/skins/Modern/i18n/bs.json
new file mode 100644
index 00000000..e8001260
--- /dev/null
+++ b/skins/Modern/i18n/bs.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "CERminator",
+ "Kal-El"
+ ]
+ },
+ "modern.css": "/* CSS umetnut ovdje uticat će na korisnike koji koriste Modern skin */",
+ "modern.js": "/* Bilo koja JavaScript će biti učitana za sve korisnike koji koriste Modern skin */",
+ "skinname-modern": "Moderna"
+}
diff --git a/skins/Modern/i18n/ca.json b/skins/Modern/i18n/ca.json
new file mode 100644
index 00000000..7085c9f0
--- /dev/null
+++ b/skins/Modern/i18n/ca.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fitoschido"
+ ]
+ },
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/ce.json b/skins/Modern/i18n/ce.json
new file mode 100644
index 00000000..b8161d0a
--- /dev/null
+++ b/skins/Modern/i18n/ce.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Умар"
+ ]
+ },
+ "skinname-modern": "Кхузаманан"
+}
diff --git a/skins/Modern/i18n/ckb.json b/skins/Modern/i18n/ckb.json
new file mode 100644
index 00000000..1867cd74
--- /dev/null
+++ b/skins/Modern/i18n/ckb.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Asoxor"
+ ]
+ },
+ "skinname-modern": "مۆدێڕن"
+}
diff --git a/skins/Modern/i18n/cs.json b/skins/Modern/i18n/cs.json
new file mode 100644
index 00000000..9fe656d2
--- /dev/null
+++ b/skins/Modern/i18n/cs.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Li-sung",
+ "Mormegil"
+ ]
+ },
+ "modern.css": "/* Zde uvedené CSS bude ovlivňovat pouze styl „Moderní“ */",
+ "modern.js": "/* JavaScript pro uživatele používající vzhled „Moderní“ */",
+ "skinname-modern": "Moderní",
+ "modern-desc": "Šedomodrý vzhled s postranním a horním panelem. Odvozen z MonoBooku."
+}
diff --git a/skins/Modern/i18n/da.json b/skins/Modern/i18n/da.json
new file mode 100644
index 00000000..62c98826
--- /dev/null
+++ b/skins/Modern/i18n/da.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Moderne"
+}
diff --git a/skins/Modern/i18n/de.json b/skins/Modern/i18n/de.json
new file mode 100644
index 00000000..a666783b
--- /dev/null
+++ b/skins/Modern/i18n/de.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Metalhead64"
+ ]
+ },
+ "modern.css": "/* Das folgende CSS wird für Benutzer der Modern-Benutzeroberfläche geladen. */",
+ "modern.js": "/* Das folgende JavaScript wird für Benutzer der Modern-Benutzeroberfläche geladen. */",
+ "skinname-modern": "Modern",
+ "modern-desc": "Ein Thema in blau und grau mit Seiten- und Kopfleiste. Abgeleitet von MonoBook."
+}
diff --git a/skins/Modern/i18n/diq.json b/skins/Modern/i18n/diq.json
new file mode 100644
index 00000000..04b70c48
--- /dev/null
+++ b/skins/Modern/i18n/diq.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan"
+ ]
+ },
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/dsb.json b/skins/Modern/i18n/dsb.json
new file mode 100644
index 00000000..d6238b24
--- /dev/null
+++ b/skins/Modern/i18n/dsb.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "skinname-modern": "Moderny"
+}
diff --git a/skins/Modern/i18n/el.json b/skins/Modern/i18n/el.json
new file mode 100644
index 00000000..b824d77a
--- /dev/null
+++ b/skins/Modern/i18n/el.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dead3y3"
+ ]
+ },
+ "modern.css": "/* Το τοποθετημένο εδώ CSS θα επηρεάσει χρήστες του Modern skin */",
+ "modern.js": "/* Οποιοσδήποτε κώδικας JavaScript εδώ θα φορτωθεί για χρήστες που χρησιμοποιούν το Modern skin */",
+ "skinname-modern": "Μοντέρνο"
+}
diff --git a/skins/Modern/i18n/en.json b/skins/Modern/i18n/en.json
new file mode 100644
index 00000000..398e5329
--- /dev/null
+++ b/skins/Modern/i18n/en.json
@@ -0,0 +1,6 @@
+{
+ "modern.css": "/* CSS placed here will affect users of the Modern skin */",
+ "modern.js": "/* Any JavaScript here will be loaded for users using the Modern skin */",
+ "skinname-modern": "Modern",
+ "modern-desc": "A blue/grey theme with sidebar and top bar. Derived from MonoBook."
+}
diff --git a/skins/Modern/i18n/eo.json b/skins/Modern/i18n/eo.json
new file mode 100644
index 00000000..e1328520
--- /dev/null
+++ b/skins/Modern/i18n/eo.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Objectivesea"
+ ]
+ },
+ "modern.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Moderna temo. */",
+ "modern.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Moderna temo. */",
+ "skinname-modern": "Moderno"
+}
diff --git a/skins/Modern/i18n/es.json b/skins/Modern/i18n/es.json
new file mode 100644
index 00000000..3a77b406
--- /dev/null
+++ b/skins/Modern/i18n/es.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fitoschido",
+ "Sanbec",
+ "Vivaelcelta"
+ ]
+ },
+ "modern.css": "/* El CSS colocado en esta página afectará a los usuarios que usen la apariencia Moderna */",
+ "modern.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la apariencia Moderna */",
+ "skinname-modern": "Moderna",
+ "modern-desc": "Un tema azul y gris, con barras lateral y superior. Derivado de MonoBook."
+}
diff --git a/skins/Modern/i18n/et.json b/skins/Modern/i18n/et.json
new file mode 100644
index 00000000..692dda57
--- /dev/null
+++ b/skins/Modern/i18n/et.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pikne"
+ ]
+ },
+ "modern.css": "/* Siin asuv kaskaadilaadistik puudutab kõiki uudse kujunduse kasutajaid. */",
+ "modern.js": "/* Siin asuv JavaScript laaditakse kõigi uudse kujunduse kasutajate jaoks. */",
+ "skinname-modern": "Uudne",
+ "modern-desc": "Sinine ja hall kujundus külg- ja ülaribaga. Tuletatud MonoBookist."
+}
diff --git a/skins/Modern/i18n/eu.json b/skins/Modern/i18n/eu.json
new file mode 100644
index 00000000..d6021298
--- /dev/null
+++ b/skins/Modern/i18n/eu.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "An13sa"
+ ]
+ },
+ "skinname-modern": "Modernoa"
+}
diff --git a/skins/Modern/i18n/fa.json b/skins/Modern/i18n/fa.json
new file mode 100644
index 00000000..fce391db
--- /dev/null
+++ b/skins/Modern/i18n/fa.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Reza1615"
+ ]
+ },
+ "modern.css": "/* دستورات این بخش کاربرانی را که از پوستهٔ مدرن استفاده کنند تحت تاثیر قرار می‌دهند. */",
+ "modern.js": "/ * کدهای جاوااسکریپتی که در اینجا قرار می‌گیرند برای کاربران پوستهٔ مدرن بارگیری می‌شود * /",
+ "skinname-modern": "مدرن",
+ "modern-desc": "تم آبی/خاکستری با نوار نوار کناری و بالا. از منوبوک مشتق شده."
+}
diff --git a/skins/Modern/i18n/fi.json b/skins/Modern/i18n/fi.json
new file mode 100644
index 00000000..df0fec75
--- /dev/null
+++ b/skins/Modern/i18n/fi.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Nedergard",
+ "Nike",
+ "Str4nd"
+ ]
+ },
+ "modern.css": "/* Tämä sivu sisältää Moderni-ulkoasua muuttavia tyylejä. */",
+ "modern.js": "/* Tämän sivun JavaScript-koodi liitetään Moderni-tyyliin */",
+ "skinname-modern": "Moderni"
+}
diff --git a/skins/Modern/i18n/fr.json b/skins/Modern/i18n/fr.json
new file mode 100644
index 00000000..d29784f8
--- /dev/null
+++ b/skins/Modern/i18n/fr.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gomoko",
+ "IAlex",
+ "Zetud"
+ ]
+ },
+ "modern.css": "/* Le CSS placé ici affectera les utilisateurs de l’habillage Modern. */",
+ "modern.js": "/* Tout JavaScript ici sera chargé avec les pages accédées par les utilisateurs de l’habillage Moderne uniquement */",
+ "skinname-modern": "Moderne",
+ "modern-desc": "Un thème bleu/gris avec barre latérale et bandeau supérieur. Dérivé de MonoBook."
+}
diff --git a/skins/Modern/i18n/frp.json b/skins/Modern/i18n/frp.json
new file mode 100644
index 00000000..07a22706
--- /dev/null
+++ b/skins/Modern/i18n/frp.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe"
+ ]
+ },
+ "modern.css": "/* Lo code CSS betâ ique afècterat los usanciérs de l’habelyâjo « Modèrno ». */",
+ "modern.js": "/* Tot code JavaScript betâ ique serat chargiê per los usanciérs de l’habelyâjo « Modèrno ». */",
+ "skinname-modern": "Modèrno"
+}
diff --git a/skins/Modern/i18n/fur.json b/skins/Modern/i18n/fur.json
new file mode 100644
index 00000000..62c98826
--- /dev/null
+++ b/skins/Modern/i18n/fur.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Moderne"
+}
diff --git a/skins/Modern/i18n/ga.json b/skins/Modern/i18n/ga.json
new file mode 100644
index 00000000..01444508
--- /dev/null
+++ b/skins/Modern/i18n/ga.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kwekubo"
+ ]
+ },
+ "skinname-modern": "Nua-aimseartha"
+}
diff --git a/skins/Modern/i18n/gl.json b/skins/Modern/i18n/gl.json
new file mode 100644
index 00000000..5067710a
--- /dev/null
+++ b/skins/Modern/i18n/gl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Toliño"
+ ]
+ },
+ "modern.css": "/* O CSS que se coloque aquí afectará a quen use a aparencia Moderna */",
+ "modern.js": "/* Calquera JavaScript que haxa aquí será cargado para os usuarios que usen a aparencia Moderna */",
+ "skinname-modern": "Moderna"
+}
diff --git a/skins/Modern/i18n/he.json b/skins/Modern/i18n/he.json
new file mode 100644
index 00000000..27f64752
--- /dev/null
+++ b/skins/Modern/i18n/he.json
@@ -0,0 +1,5 @@
+{
+ "modern.css": "/* הסגנונות הנכתבים כאן ישפיעו על העיצוב Modern בלבד */",
+ "modern.js": "/* כל סקריפט JavaScript שנכתב כאן ירוץ רק עבור המשתמשים בעיצוב Modern */",
+ "skinname-modern": "מודרני"
+}
diff --git a/skins/Modern/i18n/hsb.json b/skins/Modern/i18n/hsb.json
new file mode 100644
index 00000000..d6238b24
--- /dev/null
+++ b/skins/Modern/i18n/hsb.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "skinname-modern": "Moderny"
+}
diff --git a/skins/Modern/i18n/hu.json b/skins/Modern/i18n/hu.json
new file mode 100644
index 00000000..b4668654
--- /dev/null
+++ b/skins/Modern/i18n/hu.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dj"
+ ]
+ },
+ "modern.css": "/* Az ide elhelyezett CSS hatással lesz a Modern felület használóira */",
+ "modern.js": "/* A Modern felületet használó szerkesztők számára betöltendő JavaScriptek */",
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/hy.json b/skins/Modern/i18n/hy.json
new file mode 100644
index 00000000..0f3c1248
--- /dev/null
+++ b/skins/Modern/i18n/hy.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vadgt"
+ ]
+ },
+ "skinname-modern": "Մոդերն"
+}
diff --git a/skins/Modern/i18n/ia.json b/skins/Modern/i18n/ia.json
new file mode 100644
index 00000000..e233504a
--- /dev/null
+++ b/skins/Modern/i18n/ia.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "McDutchie"
+ ]
+ },
+ "modern.css": "/* Le CSS placiate hic afficera le usatores del apparentia Moderne */",
+ "modern.js": "/* Omne JavaScript hic se executara pro le usatores del apparentia Moderne */",
+ "skinname-modern": "Moderne",
+ "modern-desc": "Thema blau/gris con barra lateral e barra superior. Derivate de MonoBook."
+}
diff --git a/skins/Modern/i18n/id.json b/skins/Modern/i18n/id.json
new file mode 100644
index 00000000..0e2f4baf
--- /dev/null
+++ b/skins/Modern/i18n/id.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arifin.wijaya",
+ "Bennylin",
+ "Iwan Novirion"
+ ]
+ },
+ "modern.css": "/* CSS yang ada di sini akan diterapkan pada kulit Modern. */",
+ "modern.js": "/* Semua JavaScript di sini akan dimuatkan untuk para pengguna yang menggunakan kulit Modern */",
+ "skinname-modern": "Modern",
+ "modern-desc": "Tema biru/abu-abu dengan bilah samping dan bilah atas. Berasal dari MonoBook."
+}
diff --git a/skins/Modern/i18n/is.json b/skins/Modern/i18n/is.json
new file mode 100644
index 00000000..7e18fc5a
--- /dev/null
+++ b/skins/Modern/i18n/is.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Nútímalegt"
+}
diff --git a/skins/Modern/i18n/it.json b/skins/Modern/i18n/it.json
new file mode 100644
index 00000000..4731f1a3
--- /dev/null
+++ b/skins/Modern/i18n/it.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Beta16",
+ "Darth Kule"
+ ]
+ },
+ "modern.css": "/* Gli stili CSS inseriti qui si applicano agli utenti che usano la skin Modern */",
+ "modern.js": "/* Il codice JavaScript inserito qui viene caricato dagli utenti che usano la skin Modern */",
+ "modern-desc": "Versione in blu e grigio con barra laterale e superiore. Derivata dal MonoBook."
+}
diff --git a/skins/Modern/i18n/ja.json b/skins/Modern/i18n/ja.json
new file mode 100644
index 00000000..3924d50e
--- /dev/null
+++ b/skins/Modern/i18n/ja.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fryed-peach",
+ "青子守歌"
+ ]
+ },
+ "modern.css": "/* ここに記述したCSSはモダン外装の利用者に影響します */",
+ "modern.js": "/* ここにあるすべてのJavaScriptは、モダン外装を使用している利用者に対して読み込まれます */",
+ "skinname-modern": "モダン",
+ "modern-desc": "サイドバーとトップバーのある、青とグレーのテーマ。モノブックからの派生。"
+}
diff --git a/skins/Modern/i18n/ka.json b/skins/Modern/i18n/ka.json
new file mode 100644
index 00000000..0bf40d85
--- /dev/null
+++ b/skins/Modern/i18n/ka.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "David1010"
+ ]
+ },
+ "modern.css": "/* აქ ჩასმული CSS გამოყენებული იქნება თანამედროვე გაფორმების თემაში */",
+ "skinname-modern": "თანამედროვე"
+}
diff --git a/skins/Modern/i18n/kk-arab.json b/skins/Modern/i18n/kk-arab.json
new file mode 100644
index 00000000..937f5fcb
--- /dev/null
+++ b/skins/Modern/i18n/kk-arab.json
@@ -0,0 +1,5 @@
+{
+ "modern.css": "/* مىندا ورنالاستىرىلعان CSS تەك «زاماناۋىي» (modern) مانەرىن پايدالانۋشىلارىنا ىقپال ەتەدى */",
+ "modern.js": "/* مىنداعى JavaScript تەك «زاماناۋىي» (modern) مانەرىن پايدالانۋشىلار ٴۇشىن جەگىلەدى */",
+ "skinname-modern": "زاماناۋىي (modern)"
+}
diff --git a/skins/Modern/i18n/kk-cyrl.json b/skins/Modern/i18n/kk-cyrl.json
new file mode 100644
index 00000000..c7055c9c
--- /dev/null
+++ b/skins/Modern/i18n/kk-cyrl.json
@@ -0,0 +1,5 @@
+{
+ "modern.css": "/* Мында орналастырылған CSS тек «Заманауи» (modern) мәнерін пайдаланушыларына ықпал етеді */",
+ "modern.js": "/* Мындағы JavaScript тек «Заманауи» (modern) мәнерін пайдаланушылар үшін жегіледі */",
+ "skinname-modern": "Заманауи (modern)"
+}
diff --git a/skins/Modern/i18n/kk-latn.json b/skins/Modern/i18n/kk-latn.json
new file mode 100644
index 00000000..41764951
--- /dev/null
+++ b/skins/Modern/i18n/kk-latn.json
@@ -0,0 +1,5 @@
+{
+ "modern.css": "/* Mında ornalastırılğan CSS tek «Zamanawï» (modern) mänerin paýdalanwşılarına ıqpal etedi */",
+ "modern.js": "/* Mındağı JavaScript tek «Zamanawï» (modern) mänerin paýdalanwşılar üşin jegiledi */",
+ "skinname-modern": "Zamanawï (modern)"
+}
diff --git a/skins/Modern/i18n/km.json b/skins/Modern/i18n/km.json
new file mode 100644
index 00000000..feb19dd0
--- /dev/null
+++ b/skins/Modern/i18n/km.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "វ័ណថារិទ្ធ"
+ ]
+ },
+ "modern.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើអ្នកប្រើប្រាស់នៃសំបក Modern */",
+ "skinname-modern": "ទំនើប"
+}
diff --git a/skins/Modern/i18n/ko.json b/skins/Modern/i18n/ko.json
new file mode 100644
index 00000000..3a5703ec
--- /dev/null
+++ b/skins/Modern/i18n/ko.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "아라"
+ ]
+ },
+ "modern.css": "/* 이 CSS 설정은 모던 스킨을 사용하는 사용자에게 적용됩니다 */",
+ "modern.js": "/* 이 자바스크립트 설정은 모던 스킨을 사용하는 사용자에게 적용됩니다 */",
+ "skinname-modern": "모던"
+}
diff --git a/skins/Modern/i18n/krc.json b/skins/Modern/i18n/krc.json
new file mode 100644
index 00000000..b7028b13
--- /dev/null
+++ b/skins/Modern/i18n/krc.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Къарачайлы"
+ ]
+ },
+ "skinname-modern": "Бусагъатдагъы"
+}
diff --git a/skins/Modern/i18n/ksh.json b/skins/Modern/i18n/ksh.json
new file mode 100644
index 00000000..a2175809
--- /dev/null
+++ b/skins/Modern/i18n/ksh.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha"
+ ]
+ },
+ "modern.css": "/* CSS heh aan dä Stell wirrek nur op de Ovverflääsch „Modern“ */",
+ "modern.js": "/* De JavaSkrippte fun hee krijje alle Sigge met de Ovverflääsch \"Modern\" jescheck */",
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/lb.json b/skins/Modern/i18n/lb.json
new file mode 100644
index 00000000..38edae99
--- /dev/null
+++ b/skins/Modern/i18n/lb.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaffi",
+ "Robby"
+ ]
+ },
+ "modern.css": "/* Dës CSS huet nëmmen Afloss op de Skin ''Modern'' */",
+ "modern.js": "/* All JavaScript hei gëtt gelueden esoubal ee Benotzer d'Ausgesinn Modern benotzt */",
+ "skinname-modern": "Modern",
+ "modern-desc": "E blo/gréngt Ausgesinn mat enger Toolbar op der Säit an uewen. Ofgeleet vu MonoBook"
+}
diff --git a/skins/Modern/i18n/lt.json b/skins/Modern/i18n/lt.json
new file mode 100644
index 00000000..bb8970bc
--- /dev/null
+++ b/skins/Modern/i18n/lt.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Garas"
+ ]
+ },
+ "skinname-modern": "Moderni"
+}
diff --git a/skins/Modern/i18n/lzh.json b/skins/Modern/i18n/lzh.json
new file mode 100644
index 00000000..052736eb
--- /dev/null
+++ b/skins/Modern/i18n/lzh.json
@@ -0,0 +1,5 @@
+{
+ "modern.css": "/* 此之 CSS 用於時髦面之簿也 */",
+ "modern.js": "/* 此之JavaScript將載於用時髦面之簿 */",
+ "skinname-modern": "時髦"
+}
diff --git a/skins/Modern/i18n/mai.json b/skins/Modern/i18n/mai.json
new file mode 100644
index 00000000..d43a53be
--- /dev/null
+++ b/skins/Modern/i18n/mai.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Umeshberma"
+ ]
+ },
+ "skinname-modern": "आधुनिक"
+}
diff --git a/skins/Modern/i18n/min.json b/skins/Modern/i18n/min.json
new file mode 100644
index 00000000..81a52339
--- /dev/null
+++ b/skins/Modern/i18n/min.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion"
+ ]
+ },
+ "skinname-modern": "Moderen"
+}
diff --git a/skins/Modern/i18n/mk.json b/skins/Modern/i18n/mk.json
new file mode 100644
index 00000000..c792c81d
--- /dev/null
+++ b/skins/Modern/i18n/mk.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06"
+ ]
+ },
+ "modern.css": "/* Тука поставениот CSS се однесува на корисниците на рувото „Современо“ */",
+ "modern.js": "/* Било која Јава скрипта поставена овде ќе биде вчитана за сите корисници што го користат рувото Современо */",
+ "skinname-modern": "Современо",
+ "modern-desc": "Сино/сиво руво со странична и горна лента. Изведено од „Монобук“."
+}
diff --git a/skins/Modern/i18n/ml.json b/skins/Modern/i18n/ml.json
new file mode 100644
index 00000000..575e43b4
--- /dev/null
+++ b/skins/Modern/i18n/ml.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Praveenp"
+ ]
+ },
+ "modern.css": "/* ഇവിടെ നൽകുന്ന സി.എസ്.എസ്. നവീനം ദൃശ്യരൂപം ഉപയോഗിക്കുന്നവർക്ക് ബാധകമായിരിക്കും */",
+ "modern.js": "/* ഇവിടെ നൽകുന്ന ജാവാസ്ക്രിപ്റ്റ് നവീനം ദൃശ്യരൂപം ഉപയോഗിക്കുന്നവർക്ക് ബാധകമായിരിക്കും */",
+ "skinname-modern": "നവീനം",
+ "modern-desc": "സൈഡ്ബാറും ടോപ്പ്ബാറുമുള്ള നീല/ചാര ദൃശ്യരൂപം. മോണോബുക്കിൽ നിന്ന് നിർമ്മിച്ചത്."
+}
diff --git a/skins/Modern/i18n/mr.json b/skins/Modern/i18n/mr.json
new file mode 100644
index 00000000..8bce4a6b
--- /dev/null
+++ b/skins/Modern/i18n/mr.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "आधुनिक"
+}
diff --git a/skins/Modern/i18n/ms.json b/skins/Modern/i18n/ms.json
new file mode 100644
index 00000000..eedfa9e3
--- /dev/null
+++ b/skins/Modern/i18n/ms.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Aviator"
+ ]
+ },
+ "modern.css": "/* CSS yang terletak di sini akan mempengaruhi pengguna kulit Moden */",
+ "modern.js": "/* Sebarang kod JavaScript di sini akan dimuat oleh sesiapa yang menggunakan rupa Moden */",
+ "skinname-modern": "Moden",
+ "modern-desc": "Tema biru/kelabu dengan palang sisi dan palang puncak. Diubah suai daripada MonoBook."
+}
diff --git a/skins/Modern/i18n/mt.json b/skins/Modern/i18n/mt.json
new file mode 100644
index 00000000..770bdea5
--- /dev/null
+++ b/skins/Modern/i18n/mt.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrisportelli",
+ "Giangian15"
+ ]
+ },
+ "modern.css": "/* CSS li tpoġġa hawnhekk se jaffetwa dawk l-utenti li jagħmlu użu mill-aspett grafiku Modern */",
+ "modern.js": "/* Kull ''JavaScript'' hawnhekk jiġi mniżżel għal dawk l-utenti li qegħdin jagħmlu użu mill-iskin ''Modern''*/",
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/mwl.json b/skins/Modern/i18n/mwl.json
new file mode 100644
index 00000000..ec5086ef
--- /dev/null
+++ b/skins/Modern/i18n/mwl.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Moderno"
+}
diff --git a/skins/Modern/i18n/myv.json b/skins/Modern/i18n/myv.json
new file mode 100644
index 00000000..f2d412f3
--- /dev/null
+++ b/skins/Modern/i18n/myv.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "НееньШкань"
+}
diff --git a/skins/Modern/i18n/nb.json b/skins/Modern/i18n/nb.json
new file mode 100644
index 00000000..74fe02b8
--- /dev/null
+++ b/skins/Modern/i18n/nb.json
@@ -0,0 +1,5 @@
+{
+ "modern.css": "/* CSS i denne fila vil gjelde alle som bruker drakta Modern */",
+ "modern.js": "/* Javascript i denne fila vil gjelde for brukere av drakta Modern */",
+ "skinname-modern": "Moderne"
+}
diff --git a/skins/Modern/i18n/nds-nl.json b/skins/Modern/i18n/nds-nl.json
new file mode 100644
index 00000000..78c762ba
--- /dev/null
+++ b/skins/Modern/i18n/nds-nl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Servien"
+ ]
+ },
+ "skinname-modern": "Niejmoeds"
+}
diff --git a/skins/Modern/i18n/ne.json b/skins/Modern/i18n/ne.json
new file mode 100644
index 00000000..1d741853
--- /dev/null
+++ b/skins/Modern/i18n/ne.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "सरोज कुमार ढकाल"
+ ]
+ },
+ "modern.css": "/* यहाँ राखिएको CSS ले मोनोबुक मोडर्न प्रयोगकर्ताहरुलाई प्रभावित गर्ने छ */",
+ "skinname-modern": "मोडर्न"
+}
diff --git a/skins/Modern/i18n/new.json b/skins/Modern/i18n/new.json
new file mode 100644
index 00000000..65fcc13d
--- /dev/null
+++ b/skins/Modern/i18n/new.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eukesh"
+ ]
+ },
+ "modern.css": "/* थन तःगु CSS नं मोडर्न स्किनया छ्य्‌लामितेत असर याइ */"
+}
diff --git a/skins/Modern/i18n/nl.json b/skins/Modern/i18n/nl.json
new file mode 100644
index 00000000..efd95d57
--- /dev/null
+++ b/skins/Modern/i18n/nl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Siebrand"
+ ]
+ },
+ "modern.css": "/* CSS die hier wordt geplaatst heeft alleen invloed op de skin Modern */",
+ "modern.js": "/* JavaScript die hier wordt geplaatst heeft alleen invloed op gebruikers die de skin Modern gebruiken */",
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/nn.json b/skins/Modern/i18n/nn.json
new file mode 100644
index 00000000..dcd3fdf5
--- /dev/null
+++ b/skins/Modern/i18n/nn.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Frokor"
+ ]
+ },
+ "modern.css": "/* CSS i denne fila vil gjelde alle som nyttar drakta Modern */",
+ "modern.js": "* Javascript i denne fila vil gjelde for brukarar av drakta Modern */",
+ "skinname-modern": "Moderne"
+}
diff --git a/skins/Modern/i18n/oc.json b/skins/Modern/i18n/oc.json
new file mode 100644
index 00000000..e007587e
--- /dev/null
+++ b/skins/Modern/i18n/oc.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31"
+ ]
+ },
+ "modern.css": "/* Lo CSS plaçat aicí afectarà los utilizaires de l’abilhatge Modern */",
+ "modern.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge Modern unicament. */",
+ "skinname-modern": "Modèrne"
+}
diff --git a/skins/Modern/i18n/pdt.json b/skins/Modern/i18n/pdt.json
new file mode 100644
index 00000000..a52419dc
--- /dev/null
+++ b/skins/Modern/i18n/pdt.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wikipeeta"
+ ]
+ },
+ "modern.css": "/* CSS opp dise Sted wirtjt opp daut Modern-Skin */",
+ "modern.js": "/* Daut neachste JavaScript woat fe Brucka mett Modern-Skin jelode. */"
+}
diff --git a/skins/Modern/i18n/pl.json b/skins/Modern/i18n/pl.json
new file mode 100644
index 00000000..df72e384
--- /dev/null
+++ b/skins/Modern/i18n/pl.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sp5uhe",
+ "Ty221"
+ ]
+ },
+ "modern.css": "/* Umieszczony tutaj kod CSS wpłynie na wygląd skórki Nowoczesna */",
+ "modern.js": "/* Umieszczony tutaj kod JavaScript zostanie załadowany wyłącznie przez użytkowników korzystających ze skórki Nowoczesna */",
+ "skinname-modern": "Nowoczesna",
+ "modern-desc": "Niebieski/szary motyw z paskiem bocznym i górnym. Pochodzą z MonoBook."
+}
diff --git a/skins/Modern/i18n/ps.json b/skins/Modern/i18n/ps.json
new file mode 100644
index 00000000..c687dfda
--- /dev/null
+++ b/skins/Modern/i18n/ps.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "نوی"
+}
diff --git a/skins/Modern/i18n/pt-br.json b/skins/Modern/i18n/pt-br.json
new file mode 100644
index 00000000..3072dede
--- /dev/null
+++ b/skins/Modern/i18n/pt-br.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Diego Queiroz"
+ ]
+ },
+ "modern.js": "/* Qualquer JavaScript aqui colocado afetará os usuários do skin Moderno */",
+ "skinname-modern": "Moderno"
+}
diff --git a/skins/Modern/i18n/pt.json b/skins/Modern/i18n/pt.json
new file mode 100644
index 00000000..982a5459
--- /dev/null
+++ b/skins/Modern/i18n/pt.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hamilton Abreu",
+ "Vitorvicentevalente"
+ ]
+ },
+ "modern.css": "/* Código CSS colocado aqui afectará os utilizadores do tema Moderno */",
+ "modern.js": "/* Código Javascript colocado aqui será carregado para utilizadores do tema Moderno */",
+ "skinname-modern": "Moderno",
+ "modern-desc": "Um tema azul/cinza com barras lateral e de topo. Derivado do MonoBook."
+}
diff --git a/skins/Modern/i18n/qqq.json b/skins/Modern/i18n/qqq.json
new file mode 100644
index 00000000..a620a1d7
--- /dev/null
+++ b/skins/Modern/i18n/qqq.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Shirayuki",
+ "Umherirrender"
+ ]
+ },
+ "modern.css": "{{optional}}",
+ "modern.js": "{{optional}}",
+ "skinname-modern": "{{optional}}\n{{Identical|Modern}}"
+}
diff --git a/skins/Modern/i18n/qu.json b/skins/Modern/i18n/qu.json
new file mode 100644
index 00000000..61a5dec8
--- /dev/null
+++ b/skins/Modern/i18n/qu.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna"
+ ]
+ },
+ "modern.css": "/* Churamusqa CSS chantakunaqa ''Modern skin'' nisqa qarata llamk'achiq ruraqkunapaq llamk'anqa */",
+ "modern.js": "/* Ima kaypi qillqamusqa JavaScript nisqa wakichi qillqapas ''Modern skin'' nisqa qarata llamk'achiq ruraqkunapaq chaqnasqa kanqa */"
+}
diff --git a/skins/Modern/i18n/ro.json b/skins/Modern/i18n/ro.json
new file mode 100644
index 00000000..b64f6ab1
--- /dev/null
+++ b/skins/Modern/i18n/ro.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Firilacroco"
+ ]
+ },
+ "modern.css": "/* CSS plasate aici vor afecta utilizatorii stilului Modern */",
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/roa-tara.json b/skins/Modern/i18n/roa-tara.json
new file mode 100644
index 00000000..5ba5bc97
--- /dev/null
+++ b/skins/Modern/i18n/roa-tara.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras"
+ ]
+ },
+ "modern.css": "/* 'U CSS ca se iacchie aqquà 'u 'ndrucane le utinde d'a masckere Moderne */",
+ "modern.js": "/* Ogne JavaScript aqquà avène carecate pe le utinde ca ausane 'a masckere Moderne */",
+ "skinname-modern": "Moderne"
+}
diff --git a/skins/Modern/i18n/ru.json b/skins/Modern/i18n/ru.json
new file mode 100644
index 00000000..f6e77f53
--- /dev/null
+++ b/skins/Modern/i18n/ru.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alexandr Efremov",
+ "Kaganer",
+ "Milicevic01",
+ "Okras"
+ ]
+ },
+ "modern.css": "/* Размещённый здесь CSS будет применяться к теме оформления Modern */",
+ "modern.js": "/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Modern */",
+ "skinname-modern": "Современное",
+ "modern-desc": "Голубая/серая тема с боковой и верхней панелями. Производная от MonoBook."
+}
diff --git a/skins/Modern/i18n/sah.json b/skins/Modern/i18n/sah.json
new file mode 100644
index 00000000..f389250d
--- /dev/null
+++ b/skins/Modern/i18n/sah.json
@@ -0,0 +1,3 @@
+{
+ "skinname-modern": "Билиҥҥи"
+}
diff --git a/skins/Modern/i18n/scn.json b/skins/Modern/i18n/scn.json
new file mode 100644
index 00000000..39b21c80
--- /dev/null
+++ b/skins/Modern/i18n/scn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Santu"
+ ]
+ },
+ "skinname-modern": "Mudernu"
+}
diff --git a/skins/Modern/i18n/si.json b/skins/Modern/i18n/si.json
new file mode 100644
index 00000000..8dc274b6
--- /dev/null
+++ b/skins/Modern/i18n/si.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "නන්දිමිතුරු"
+ ]
+ },
+ "modern.css": "/* මෙහි CSS බහාලීම නූතන ඡවිය භාවිතා කරන පරිශීලකයන් හට බලපෑම් සිදු කල හැක */",
+ "modern.js": "/* මෙහි ඕනෑම ජාවාස්ක්‍රිප්ට් එකක් නූතන ඡවිය භාවිතා කරන පරිශීලකයන්හට ප්‍රවේශනය කෙරේ */"
+}
diff --git a/skins/Modern/i18n/sk.json b/skins/Modern/i18n/sk.json
new file mode 100644
index 00000000..b0e30337
--- /dev/null
+++ b/skins/Modern/i18n/sk.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rudko"
+ ]
+ },
+ "modern.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov štýlu Moderný */",
+ "modern.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom vzhľadu Moderný */",
+ "skinname-modern": "Moderný"
+}
diff --git a/skins/Modern/i18n/sr-ec.json b/skins/Modern/i18n/sr-ec.json
new file mode 100644
index 00000000..01ac0233
--- /dev/null
+++ b/skins/Modern/i18n/sr-ec.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Milicevic01",
+ "Rancher"
+ ]
+ },
+ "modern.css": "/* CSS постављен овде ће утицати на све кориснике теме „Савремено“ */",
+ "modern.js": "/* Јаваскрипт постављен овде ће се учитати за све оне који користе тему „Савремено“ */",
+ "skinname-modern": "Савремено"
+}
diff --git a/skins/Modern/i18n/sr-el.json b/skins/Modern/i18n/sr-el.json
new file mode 100644
index 00000000..33899819
--- /dev/null
+++ b/skins/Modern/i18n/sr-el.json
@@ -0,0 +1,5 @@
+{
+ "modern.css": "/* CSS postavljen ovde će uticati na sve korisnike teme „Savremeno“ */",
+ "modern.js": "/* Javaskript postavljen ovde će se učitati za sve one koji koriste temu „Savremeno“ */",
+ "skinname-modern": "Savremeno"
+}
diff --git a/skins/Modern/i18n/su.json b/skins/Modern/i18n/su.json
new file mode 100644
index 00000000..b4a429be
--- /dev/null
+++ b/skins/Modern/i18n/su.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kandar"
+ ]
+ },
+ "modern-desc": "Téma paul/hawuk sarta kolom gigir jeung luhur. Diturunkeun tina MonoBook."
+}
diff --git a/skins/Modern/i18n/sv.json b/skins/Modern/i18n/sv.json
new file mode 100644
index 00000000..d2c6cb21
--- /dev/null
+++ b/skins/Modern/i18n/sv.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lokal Profil"
+ ]
+ },
+ "modern.css": "/* CSS som skrivs här kommer att påverka alla användare av utseendet Modern */",
+ "modern.js": "/* JavaScript här kommer att laddas för dem som använder utseendet Modern */",
+ "skinname-modern": "Modern",
+ "modern-desc": "Ett blå/grått utseende med sido- och toppfält. Härstammar från MonoBook."
+}
diff --git a/skins/Modern/i18n/te.json b/skins/Modern/i18n/te.json
new file mode 100644
index 00000000..34e2733f
--- /dev/null
+++ b/skins/Modern/i18n/te.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Veeven"
+ ]
+ },
+ "skinname-modern": "ఆధునిక"
+}
diff --git a/skins/Modern/i18n/th.json b/skins/Modern/i18n/th.json
new file mode 100644
index 00000000..73caaa0b
--- /dev/null
+++ b/skins/Modern/i18n/th.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Manop",
+ "Octahedron80"
+ ]
+ },
+ "modern.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินโมเดิร์น */",
+ "modern.js": "/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินโมเดิร์น */",
+ "skinname-modern": "โมเดิร์น"
+}
diff --git a/skins/Modern/i18n/tl.json b/skins/Modern/i18n/tl.json
new file mode 100644
index 00000000..24080c0e
--- /dev/null
+++ b/skins/Modern/i18n/tl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "AnakngAraw"
+ ]
+ },
+ "modern.css": "/* Ang CSS na iniligay dito ay makakaapekto sa tagagamit ng Makabagong (''Modern'') pabalat */",
+ "modern.js": "/* Ang anumang JavaScript dito ay ikakarga para sa mga tagagamit na gumagamit ng Modernong pabalat */",
+ "skinname-modern": "Makabago (Moderno)"
+}
diff --git a/skins/Modern/i18n/tr.json b/skins/Modern/i18n/tr.json
new file mode 100644
index 00000000..9fa58d7e
--- /dev/null
+++ b/skins/Modern/i18n/tr.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Karduelis"
+ ]
+ },
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/tt-cyrl.json b/skins/Modern/i18n/tt-cyrl.json
new file mode 100644
index 00000000..c29c08f8
--- /dev/null
+++ b/skins/Modern/i18n/tt-cyrl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ильнар"
+ ]
+ },
+ "skinname-modern": "Замана"
+}
diff --git a/skins/Modern/i18n/tt-latn.json b/skins/Modern/i18n/tt-latn.json
new file mode 100644
index 00000000..5ecc4bfe
--- /dev/null
+++ b/skins/Modern/i18n/tt-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "skinname-modern": "Zamana"
+}
diff --git a/skins/Modern/i18n/tyv.json b/skins/Modern/i18n/tyv.json
new file mode 100644
index 00000000..d85f031e
--- /dev/null
+++ b/skins/Modern/i18n/tyv.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sborsody"
+ ]
+ },
+ "skinname-modern": "Модерн"
+}
diff --git a/skins/Modern/i18n/tzm.json b/skins/Modern/i18n/tzm.json
new file mode 100644
index 00000000..8a22c6fd
--- /dev/null
+++ b/skins/Modern/i18n/tzm.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tifinaghes"
+ ]
+ },
+ "skinname-modern": "ⴰⵜⵔⴰⵔ"
+}
diff --git a/skins/Modern/i18n/ug-arab.json b/skins/Modern/i18n/ug-arab.json
new file mode 100644
index 00000000..962b2c9f
--- /dev/null
+++ b/skins/Modern/i18n/ug-arab.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arlin"
+ ]
+ },
+ "modern.css": "/* CSS placed here will affect users of the Modern skin */",
+ "modern.js": "/* Any JavaScript here will be loaded for users using the Modern skin */",
+ "skinname-modern": "Modern"
+}
diff --git a/skins/Modern/i18n/uk.json b/skins/Modern/i18n/uk.json
new file mode 100644
index 00000000..9aa7a2a5
--- /dev/null
+++ b/skins/Modern/i18n/uk.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dim Grits"
+ ]
+ },
+ "modern.css": "/* Розміщений тут CSS-код буде використаний в темі оформлення Сучасне */",
+ "modern.js": "/* Розміщений тут код JavaScript буде завантажений для всіх користувачів, що використовують тему оформлення Сучасне */",
+ "skinname-modern": "Сучасне"
+}
diff --git a/skins/Modern/i18n/uz.json b/skins/Modern/i18n/uz.json
new file mode 100644
index 00000000..24d51c50
--- /dev/null
+++ b/skins/Modern/i18n/uz.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "CoderSI"
+ ]
+ },
+ "skinname-modern": "Zamonaviy"
+}
diff --git a/skins/Modern/i18n/vep.json b/skins/Modern/i18n/vep.json
new file mode 100644
index 00000000..c929ca15
--- /dev/null
+++ b/skins/Modern/i18n/vep.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Игорь Бродский"
+ ]
+ },
+ "skinname-modern": "Nügüd'aigaine"
+}
diff --git a/skins/Modern/i18n/vi.json b/skins/Modern/i18n/vi.json
new file mode 100644
index 00000000..90995905
--- /dev/null
+++ b/skins/Modern/i18n/vi.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minh Nguyen",
+ "Vinhtantran"
+ ]
+ },
+ "modern.css": "/* Mã CSS tại đây sẽ ảnh hưởng đến những người dùng sử dụng giao diện Hiện đại */",
+ "modern.js": "/* Mã JavaScript tại đây sẽ được tải khi người dùng sử dụng giao diện Hiện đại */",
+ "skinname-modern": "Hiện đại",
+ "modern-desc": "Giao diện màu xanh/xám có thanh bên và thanh trên. Phỏng theo MonoBook."
+}
diff --git a/skins/Modern/i18n/vmf.json b/skins/Modern/i18n/vmf.json
new file mode 100644
index 00000000..22d776bc
--- /dev/null
+++ b/skins/Modern/i18n/vmf.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Matma Rex"
+ ]
+ },
+ "modern.css": "/* CSS hiir beâjflusd nôr dii Modern-schelfn. Wen'd ale uf ôômôôl beâjflusn wilsch, muâsch an MediaWiki:Common.css was ändârn. */"
+}
diff --git a/skins/Modern/i18n/wo.json b/skins/Modern/i18n/wo.json
new file mode 100644
index 00000000..49b4f218
--- /dev/null
+++ b/skins/Modern/i18n/wo.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibou"
+ ]
+ },
+ "modern.css": "/* CSS yiñ def fii dañuy am ay njeexit ci jëfandikukatu col gu Modern */",
+ "modern.js": "/* Bépp JavaScript buñ fi duggal jëfandikukat yiy jëfandikoo col gu Modern keppa koy yeb */"
+}
diff --git a/skins/Modern/i18n/yi.json b/skins/Modern/i18n/yi.json
new file mode 100644
index 00000000..f9c0b538
--- /dev/null
+++ b/skins/Modern/i18n/yi.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "פוילישער"
+ ]
+ },
+ "modern.css": "/* CSS געשטעלט דא ווירקט אויפן מאדערנעם סקין */",
+ "skinname-modern": "מאדערן"
+}
diff --git a/skins/Modern/i18n/yue.json b/skins/Modern/i18n/yue.json
new file mode 100644
index 00000000..3c28d364
--- /dev/null
+++ b/skins/Modern/i18n/yue.json
@@ -0,0 +1,5 @@
+{
+ "modern.css": "/* 響呢度放 CSS 碼去改用戶用嘅摩登畫面 */",
+ "modern.js": "/* 響每一次個頁面載入時,用摩登畫面嘅用戶都會載入呢度任何嘅JavaScript */",
+ "skinname-modern": "摩登"
+}
diff --git a/skins/Modern/i18n/zh-hans.json b/skins/Modern/i18n/zh-hans.json
new file mode 100644
index 00000000..756f801d
--- /dev/null
+++ b/skins/Modern/i18n/zh-hans.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liuxinyu970226",
+ "Xiaomingyan"
+ ]
+ },
+ "modern.css": "/* 放置于这里的CSS将影响使用现代皮肤的用户 */",
+ "modern.js": "/* 这里的任何JavaScript将为使用现代皮肤的用户加载 */",
+ "skinname-modern": "现代",
+ "modern-desc": "带侧边栏和顶栏的蓝灰色主题。从MonoBook衍生而来。"
+}
diff --git a/skins/Modern/i18n/zh-hant.json b/skins/Modern/i18n/zh-hant.json
new file mode 100644
index 00000000..431c568d
--- /dev/null
+++ b/skins/Modern/i18n/zh-hant.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cwlin0416"
+ ]
+ },
+ "modern.css": "/* 此 CSS 會影響使用 Modern 介面外觀的使用者 */",
+ "modern.js": "/* 此 JavaScript 會用於使用 Modern 介面外觀的使用者 */",
+ "skinname-modern": "現代",
+ "modern-desc": "擁有側邊欄與上方列的藍灰色主題。 自 MonoBook 衍生而來。"
+}
diff --git a/skins/archlinux/audio.png b/skins/Modern/resources/images/audio.png
index 68c8768c..68c8768c 100644
--- a/skins/archlinux/audio.png
+++ b/skins/Modern/resources/images/audio.png
Binary files differ
diff --git a/skins/common/images/bullet.gif b/skins/Modern/resources/images/bullet.gif
index b43de48a..b43de48a 100644
--- a/skins/common/images/bullet.gif
+++ b/skins/Modern/resources/images/bullet.gif
Binary files differ
diff --git a/skins/archlinux/discussionitem_icon.gif b/skins/Modern/resources/images/discussionitem_icon.gif
index e3ca6d9e..e3ca6d9e 100644
--- a/skins/archlinux/discussionitem_icon.gif
+++ b/skins/Modern/resources/images/discussionitem_icon.gif
Binary files differ
diff --git a/skins/archlinux/document.png b/skins/Modern/resources/images/document.png
index ee46a50d..ee46a50d 100644
--- a/skins/archlinux/document.png
+++ b/skins/Modern/resources/images/document.png
Binary files differ
diff --git a/skins/modern/external.png b/skins/Modern/resources/images/external.png
index 63083831..63083831 100644
--- a/skins/modern/external.png
+++ b/skins/Modern/resources/images/external.png
Binary files differ
diff --git a/skins/archlinux/file_icon.gif b/skins/Modern/resources/images/file_icon.gif
index 69dbeaf7..69dbeaf7 100644
--- a/skins/archlinux/file_icon.gif
+++ b/skins/Modern/resources/images/file_icon.gif
Binary files differ
diff --git a/skins/modern/footer-grad.png b/skins/Modern/resources/images/footer-grad.png
index 72b87247..72b87247 100644
--- a/skins/modern/footer-grad.png
+++ b/skins/Modern/resources/images/footer-grad.png
Binary files differ
diff --git a/skins/common/images/link_icon.gif b/skins/Modern/resources/images/link_icon.gif
index 168c1a2f..168c1a2f 100644
--- a/skins/common/images/link_icon.gif
+++ b/skins/Modern/resources/images/link_icon.gif
Binary files differ
diff --git a/skins/modern/lock_icon.gif b/skins/Modern/resources/images/lock_icon.gif
index 82844033..82844033 100644
--- a/skins/modern/lock_icon.gif
+++ b/skins/Modern/resources/images/lock_icon.gif
Binary files differ
diff --git a/skins/archlinux/mail_icon.gif b/skins/Modern/resources/images/mail_icon.gif
index cf5680d9..cf5680d9 100644
--- a/skins/archlinux/mail_icon.gif
+++ b/skins/Modern/resources/images/mail_icon.gif
Binary files differ
diff --git a/skins/archlinux/news_icon.png b/skins/Modern/resources/images/news_icon.png
index 4d3cb476..4d3cb476 100644
--- a/skins/archlinux/news_icon.png
+++ b/skins/Modern/resources/images/news_icon.png
Binary files differ
diff --git a/skins/modern/video.png b/skins/Modern/resources/images/video.png
index e535c0c4..e535c0c4 100644
--- a/skins/modern/video.png
+++ b/skins/Modern/resources/images/video.png
Binary files differ
diff --git a/skins/modern/main.css b/skins/Modern/resources/main.css
index 40fbfd78..1ce8ada4 100644
--- a/skins/modern/main.css
+++ b/skins/Modern/resources/main.css
@@ -3,7 +3,6 @@ body {
padding: 0 0 0 0;
font-size: x-small;
-
font-family: sans-serif;
color: black;
background-color: #f0f0f0;
@@ -155,8 +154,7 @@ div.mw_clear {
textarea {
width: 100%;
padding: .1em;
-}
-#editform textarea {
+ display: block;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
@@ -197,7 +195,7 @@ textarea {
ul {
/* @embed */
- list-style-image: url(bullet.gif);
+ list-style-image: url(images/bullet.gif);
}
#p-cactions {
@@ -261,9 +259,9 @@ ul {
#footer {
background-color: #f0f0f0;
/* @embed */
- background: url(footer-grad.png) repeat-x 0 0;
+ background: url(images/footer-grad.png) repeat-x 0 0;
padding: 10px 1em 1em 1em;
- clear:both;
+ clear: both;
color: #444444;
}
@@ -303,7 +301,7 @@ hr {
}
#contentSub {
- color: #888;
+ color: #545454;
font-size: small;
padding-left: 2em;
}
@@ -318,21 +316,27 @@ a {
color: #003366;
background: none;
}
+
a:visited {
color: #5a3696;
}
+
a:active {
color: #faa700;
}
+
a:hover {
text-decoration: underline;
}
+
a.stub {
color: #772233;
}
+
a.new {
color: #ba0000;
}
+
a.new:visited {
color: #a55858;
}
@@ -405,39 +409,45 @@ h1, h2, h3, h4, h5, h6 {
text-decoration: none;
color: white;
}
+
#mw_content a.external {
/* @embed */
- background: url(external.png) center right no-repeat;
+ background: url(images/external.png) center right no-repeat;
padding-right: 13px;
}
+
#mw_content a.external[href ^="https://"],
.link-https {
/* @embed */
- background: url(lock_icon.gif) center right no-repeat;
+ background: url(images/lock_icon.gif) center right no-repeat;
padding-right: 16px;
}
+
#mw_content a.external[href ^="mailto:"],
.link-mailto {
/* @embed */
- background: url(mail_icon.gif) center right no-repeat;
+ background: url(images/mail_icon.gif) center right no-repeat;
padding-right: 18px;
}
+
#mw_content a.external[href ^="news:"] {
/* @embed */
- background: url(news_icon.png) center right no-repeat;
+ background: url(images/news_icon.png) center right no-repeat;
padding-right: 18px;
}
+
#mw_content a.external[href ^="ftp://"],
.link-ftp {
/* @embed */
- background: url(file_icon.gif) center right no-repeat;
+ background: url(images/file_icon.gif) center right no-repeat;
padding-right: 18px;
}
+
#mw_content a.external[href ^="irc://"],
#mw_content a.external[href ^="ircs://"],
.link-irc {
/* @embed */
- background: url(discussionitem_icon.gif) center right no-repeat;
+ background: url(images/discussionitem_icon.gif) center right no-repeat;
padding-right: 18px;
}
@@ -449,24 +459,26 @@ h1, h2, h3, h4, h5, h6 {
#mw_content a.external[href $=".wma"], #mw_content a.external[href $=".WMA"],
.link-audio {
/* @embed */
- background: url(audio.png) center right no-repeat;
+ background: url(images/audio.png) center right no-repeat;
padding-right: 13px;
}
+
#mw_content a.external[href $=".ogm"], #mw_content a.external[href $=".OGM"],
#mw_content a.external[href $=".avi"], #mw_content a.external[href $=".AVI"],
#mw_content a.external[href $=".mpeg"], #mw_content a.external[href $=".MPEG"],
#mw_content a.external[href $=".mpg"], #mw_content a.external[href $=".MPG"],
.link-video {
/* @embed */
- background: url(video.png) center right no-repeat;
+ background: url(images/video.png) center right no-repeat;
padding-right: 13px;
}
+
#mw_content a.external[href $=".pdf"], #mw_content a.external[href $=".PDF"],
#mw_content a.external[href *=".pdf#"], #mw_content a.external[href *=".PDF#"],
#mw_content a.external[href *=".pdf?"], #mw_content a.external[href *=".PDF?"],
.link-document {
/* @embed */
- background: url(document.png) center right no-repeat;
+ background: url(images/document.png) center right no-repeat;
padding-right: 12px;
}
@@ -475,13 +487,16 @@ h1, h2, h3, h4, h5, h6 {
margin: 0 0 .5em .5em;
border: 0;
}
+
div.floatright p {
font-style: italic;
}
+
/* @noflip */div.floatleft, table.floatleft {
margin: 0 .5em .5em 0;
border: 0;
}
+
div.floatleft p {
font-style: italic;
}
@@ -491,6 +506,7 @@ div.thumb {
margin-bottom: .5em;
width: auto;
}
+
div.thumbinner {
border: 1px solid #ccc;
padding: 3px !important;
@@ -499,9 +515,11 @@ div.thumbinner {
text-align: center;
overflow: hidden;
}
+
html .thumbimage {
border: 1px solid #ccc;
}
+
html .thumbcaption {
border: none;
text-align: left;
@@ -509,26 +527,32 @@ html .thumbcaption {
padding: 3px !important;
font-size: 94%;
}
+
div.magnify {
float: right;
border: none !important;
background: none !important;
margin-left: 3px;
}
+
div.magnify a, div.magnify img {
display: block;
border: none !important;
background: none !important;
}
+
/* @noflip */div.tright {
margin: .5em 0 .8em 1.4em;
}
+
/* @noflip */div.tleft {
margin: .5em 1.4em .8em 0;
}
+
img.thumbborder {
border: 1px solid #dddddd;
}
+
.mw-warning {
border: 1px solid #aaa;
background-color: #f9f9f9;
@@ -585,6 +609,7 @@ table.toc td {
font-size: 100%;
font-weight: bold;
}
+
#toc #toctitle,
.toc #toctitle,
#toc .toctitle,
@@ -635,11 +660,11 @@ table.toc td {
#mw_content a.extiw:active {
color: #36b;
}
+
#mw_content a.external {
color: #36b;
}
-
.redirectText {
font-size: 150%;
margin: 5px;
@@ -680,6 +705,7 @@ span.updatedmarker {
font-size: small;
text-align: center;
}
+
.editExternallyHelp {
font-style: italic;
color: gray;
@@ -781,10 +807,12 @@ div.mw-lag-warn-high {
text-align: center;
margin: 3px auto;
}
+
div.mw-lag-warn-normal {
border: 1px solid #FFCC66;
background-color: #FFFFCC;
}
+
div.mw-lag-warn-high {
font-weight: bold;
border: 2px solid #FF0033;
@@ -795,32 +823,38 @@ div.mw-lag-warn-high {
background-color: #ccc;
padding: 0.1em;
}
+
.MediaTransformError td {
text-align: center;
vertical-align: middle;
font-size: 90%;
}
+
ul {
line-height: 1.5em;
list-style-type: square;
margin: .3em 0 0 1.5em;
padding: 0;
/* @embed */
- list-style-image: url(bullet.gif);
+ list-style-image: url(images/bullet.gif);
}
+
ol {
line-height: 1.5em;
margin: .3em 0 0 3.2em;
padding: 0;
list-style-image: none;
}
+
li {
margin-bottom: .1em;
}
+
dt {
font-weight: bold;
margin-bottom: .1em;
}
+
dl {
margin-top: .2em;
margin-bottom: .5em;
@@ -850,7 +884,7 @@ pre, .mw-code {
margin: 0 -1em 1em -1em;
padding: 0 0 8px 0;
/* @embed */
- background: url(footer-grad.png) repeat-x bottom left;
+ background: url(images/footer-grad.png) repeat-x bottom left;
}
.mw-topbox p {
@@ -877,6 +911,7 @@ pre, .mw-code {
width: 100%;
text-align: center;
}
+
*.center * {
margin-left: auto;
margin-right: auto;
diff --git a/skins/modern/print.css b/skins/Modern/resources/print.css
index e97bbdb4..150d2d20 100644
--- a/skins/modern/print.css
+++ b/skins/Modern/resources/print.css
@@ -4,6 +4,7 @@
#jump-to-nav,
#footer,
.mw-editsection,
+.mw-editsection-like,
.noprint {
display: none;
}
diff --git a/skins/MonoBook.php b/skins/MonoBook.php
deleted file mode 100644
index 6d66cac3..00000000
--- a/skins/MonoBook.php
+++ /dev/null
@@ -1,325 +0,0 @@
-<?php
-/**
- * MonoBook nouveau.
- *
- * Translated from gwicke's previous TAL template version to remove
- * dependency on PHPTAL.
- *
- * 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
- *
- * @todo document
- * @file
- * @ingroup Skins
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
- die( -1 );
-}
-
-/**
- * Inherit main code from SkinTemplate, set the CSS and template filter.
- * @todo document
- * @ingroup Skins
- */
-class SkinMonoBook extends SkinTemplate {
- /** Using monobook. */
- var $skinname = 'monobook', $stylename = 'monobook',
- $template = 'MonoBookTemplate', $useHeadElement = true;
-
- /**
- * @param $out OutputPage
- */
- function setupSkinUserCss( OutputPage $out ) {
- parent::setupSkinUserCss( $out );
-
- $out->addModuleStyles( 'skins.monobook' );
-
- // TODO: Migrate all of these
- $out->addStyle( 'monobook/IE60Fixes.css', 'screen', 'IE 6' );
- $out->addStyle( 'monobook/IE70Fixes.css', 'screen', 'IE 7' );
-
- }
-}
-
-/**
- * @todo document
- * @ingroup Skins
- */
-class MonoBookTemplate extends BaseTemplate {
-
- /**
- * Template filter callback for MonoBook skin.
- * Takes an associative array of data set from a SkinTemplate-based
- * class, and a wrapper for MediaWiki's localization database, and
- * outputs a formatted page.
- *
- * @access private
- */
- function execute() {
- // Suppress warnings to prevent notices about missing indexes in $this->data
- wfSuppressWarnings();
-
- $this->html( 'headelement' );
-?><div id="globalWrapper">
-<div id="column-content"><div id="content" class="mw-body-primary" role="main">
- <a id="top"></a>
- <?php if ( $this->data['sitenotice'] ) { ?><div id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div><?php } ?>
-
- <h1 id="firstHeading" class="firstHeading" lang="<?php
- $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
- $this->text( 'pageLanguage' );
- ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
- <div id="bodyContent" class="mw-body">
- <div id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
- <div id="contentSub"<?php $this->html( 'userlangattributes' ) ?>><?php $this->html( 'subtitle' ) ?></div>
-<?php if ( $this->data['undelete'] ) { ?>
- <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div>
-<?php } ?><?php if ( $this->data['newtalk'] ) { ?>
- <div class="usermessage"><?php $this->html( 'newtalk' ) ?></div>
-<?php } ?>
- <div id="jump-to-nav" class="mw-jump"><?php $this->msg( 'jumpto' ) ?> <a href="#column-one"><?php $this->msg( 'jumptonavigation' ) ?></a><?php $this->msg( 'comma-separator' ) ?><a href="#searchInput"><?php $this->msg( 'jumptosearch' ) ?></a></div>
-
- <!-- start content -->
-<?php $this->html( 'bodytext' ) ?>
- <?php if ( $this->data['catlinks'] ) { $this->html( 'catlinks' ); } ?>
- <!-- end content -->
- <?php if ( $this->data['dataAfterContent'] ) { $this->html( 'dataAfterContent' ); } ?>
- <div class="visualClear"></div>
- </div>
-</div></div>
-<div id="column-one"<?php $this->html( 'userlangattributes' ) ?>>
- <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
-<?php $this->cactions(); ?>
- <div class="portlet" id="p-personal" role="navigation">
- <h3><?php $this->msg( 'personaltools' ) ?></h3>
- <div class="pBody">
- <ul<?php $this->html( 'userlangattributes' ) ?>>
-<?php foreach ( $this->getPersonalTools() as $key => $item ) { ?>
- <?php echo $this->makeListItem( $key, $item ); ?>
-
-<?php } ?>
- </ul>
- </div>
- </div>
- <div class="portlet" id="p-logo" role="banner">
-<?php
- echo Html::element( 'a', array(
- 'href' => $this->data['nav_urls']['mainpage']['href'],
- 'style' => "background-image: url({$this->data['logopath']});" )
- + Linker::tooltipAndAccesskeyAttribs( 'p-logo' ) ); ?>
-
- </div>
-<?php
- $this->renderPortals( $this->data['sidebar'] );
-?>
-</div><!-- end of the left (by default at least) column -->
-<div class="visualClear"></div>
-<?php
- $validFooterIcons = $this->getFooterIcons( "icononly" );
- $validFooterLinks = $this->getFooterLinks( "flat" ); // Additional footer links
-
- if ( count( $validFooterIcons ) + count( $validFooterLinks ) > 0 ) { ?>
-<div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
-<?php
- $footerEnd = '</div>';
- } else {
- $footerEnd = '';
- }
- foreach ( $validFooterIcons as $blockName => $footerIcons ) { ?>
- <div id="f-<?php echo htmlspecialchars( $blockName ); ?>ico">
-<?php foreach ( $footerIcons as $icon ) { ?>
- <?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
-
-<?php }
-?>
- </div>
-<?php }
-
- if ( count( $validFooterLinks ) > 0 ) {
-?> <ul id="f-list">
-<?php
- foreach ( $validFooterLinks as $aLink ) { ?>
- <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
-<?php
- }
-?>
- </ul>
-<?php }
-echo $footerEnd;
-?>
-
-</div>
-<?php
- $this->printTrail();
- echo Html::closeElement( 'body' );
- echo Html::closeElement( 'html' );
- wfRestoreWarnings();
- } // end of execute() method
-
- /*************************************************************************************************/
-
- /**
- * @param $sidebar array
- */
- protected function renderPortals( $sidebar ) {
- if ( !isset( $sidebar['SEARCH'] ) ) {
- $sidebar['SEARCH'] = true;
- }
- if ( !isset( $sidebar['TOOLBOX'] ) ) {
- $sidebar['TOOLBOX'] = true;
- }
- if ( !isset( $sidebar['LANGUAGES'] ) ) {
- $sidebar['LANGUAGES'] = true;
- }
-
- foreach ( $sidebar as $boxName => $content ) {
- if ( $content === false ) {
- continue;
- }
-
- if ( $boxName == 'SEARCH' ) {
- $this->searchBox();
- } elseif ( $boxName == 'TOOLBOX' ) {
- $this->toolbox();
- } elseif ( $boxName == 'LANGUAGES' ) {
- $this->languageBox();
- } else {
- $this->customBox( $boxName, $content );
- }
- }
- }
-
- function searchBox() {
- global $wgUseTwoButtonsSearchForm;
-?>
- <div id="p-search" class="portlet" role="search">
- <h3><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
- <div id="searchBody" class="pBody">
- <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
- <input type='hidden' name="title" value="<?php $this->text( 'searchtitle' ) ?>"/>
- <?php echo $this->makeSearchInput( array( "id" => "searchInput" ) ); ?>
-
- <?php echo $this->makeSearchButton( "go", array( "id" => "searchGoButton", "class" => "searchButton" ) );
- if ( $wgUseTwoButtonsSearchForm ) { ?>&#160;
- <?php echo $this->makeSearchButton( "fulltext", array( "id" => "mw-searchButton", "class" => "searchButton" ) );
- } else { ?>
-
- <div><a href="<?php $this->text( 'searchaction' ) ?>" rel="search"><?php $this->msg( 'powersearch-legend' ) ?></a></div><?php
- } ?>
-
- </form>
- </div>
- </div>
-<?php
- }
-
- /**
- * Prints the cactions bar.
- * Shared between MonoBook and Modern
- */
- function cactions() {
-?>
- <div id="p-cactions" class="portlet" role="navigation">
- <h3><?php $this->msg( 'views' ) ?></h3>
- <div class="pBody">
- <ul><?php
- foreach ( $this->data['content_actions'] as $key => $tab ) {
- echo '
- ' . $this->makeListItem( $key, $tab );
- } ?>
-
- </ul>
- </div>
- </div>
-<?php
- }
- /*************************************************************************************************/
- function toolbox() {
-?>
- <div class="portlet" id="p-tb" role="navigation">
- <h3><?php $this->msg( 'toolbox' ) ?></h3>
- <div class="pBody">
- <ul>
-<?php
- foreach ( $this->getToolbox() as $key => $tbitem ) { ?>
- <?php echo $this->makeListItem( $key, $tbitem ); ?>
-
-<?php
- }
- wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
- wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
-?>
- </ul>
- </div>
- </div>
-<?php
- }
-
- /*************************************************************************************************/
- function languageBox() {
- if ( $this->data['language_urls'] ) {
-?>
- <div id="p-lang" class="portlet" role="navigation">
- <h3<?php $this->html( 'userlangattributes' ) ?>><?php $this->msg( 'otherlanguages' ) ?></h3>
- <div class="pBody">
- <ul>
-<?php foreach ( $this->data['language_urls'] as $key => $langlink ) { ?>
- <?php echo $this->makeListItem( $key, $langlink ); ?>
-
-<?php } ?>
- </ul>
- </div>
- </div>
-<?php
- }
- }
-
- /*************************************************************************************************/
- /**
- * @param $bar string
- * @param $cont array|string
- */
- function customBox( $bar, $cont ) {
- $portletAttribs = array( 'class' => 'generated-sidebar portlet', 'id' => Sanitizer::escapeId( "p-$bar" ), 'role' => 'navigation' );
- $tooltip = Linker::titleAttrib( "p-$bar" );
- if ( $tooltip !== false ) {
- $portletAttribs['title'] = $tooltip;
- }
- echo ' ' . Html::openElement( 'div', $portletAttribs );
- $msgObj = wfMessage( $bar );
-?>
-
- <h3><?php echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $bar ); ?></h3>
- <div class='pBody'>
-<?php if ( is_array( $cont ) ) { ?>
- <ul>
-<?php foreach ( $cont as $key => $val ) { ?>
- <?php echo $this->makeListItem( $key, $val ); ?>
-
-<?php } ?>
- </ul>
-<?php } else {
- # allow raw HTML block to be defined by extensions
- print $cont;
- }
-?>
- </div>
- </div>
-<?php
- }
-} // end of class
-
-
diff --git a/skins/MonoBook/COPYING b/skins/MonoBook/COPYING
new file mode 100644
index 00000000..019694a9
--- /dev/null
+++ b/skins/MonoBook/COPYING
@@ -0,0 +1,342 @@
+== 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 Library 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.
+
+== 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 Library General
+Public License instead of this License.
diff --git a/skins/monobook/IE60Fixes.css b/skins/MonoBook/IE60Fixes.css
index 534d3333..a5beed5d 100644
--- a/skins/monobook/IE60Fixes.css
+++ b/skins/MonoBook/IE60Fixes.css
@@ -6,29 +6,35 @@ div#column-content {
margin-left: 0;
height: 1%;
}
-div#column-content div#content {
+
+div#column-content .mw-body {
margin-left: 12.2em;
margin-top: 3em;
height: 1%;
}
-.rtl div#column-content div#content {
+
+.rtl div#column-content .mw-body {
margin-right: 12.2em;
margin-left: 0;
}
+
div#column-one {
position: absolute;
top: 0;
left: 0;
z-index: 4;
}
+
.rtl div#column-one {
left: auto;
right: 0;
}
+
div#footer {
margin-left: 13.6em;
border-left: 1px solid #fabd23;
}
+
.rtl div#footer {
margin-left: 0;
margin-right: 13.6em;
@@ -36,6 +42,16 @@ div#footer {
border-right: 1px solid #fabd23;
}
+/* float/negative margin brokenness */
+* html div#footer {
+ margin-top: 0;
+}
+
+* html div#column-content {
+ display: inline;
+ margin-bottom: 0;
+}
+
/* the tabs */
#p-cactions {
@@ -49,6 +65,7 @@ div#footer {
cursor: default;
float: none !important;
}
+
#p-cactions li a {
display: inline-block !important;
vertical-align: top;
@@ -56,17 +73,21 @@ div#footer {
border: solid #aaa;
border-width: 1px 1px 0;
}
+
#p-cactions li.selected a {
border-color: #fabd23;
padding-bottom: 0.17em;
}
+
#p-cactions li a:hover {
padding-bottom: 0.17em;
}
+
#p-navigation a {
display: inline-block;
width: 100%;
}
+
#portal-personaltools {
padding-bottom: 0.1em;
}
@@ -82,10 +103,12 @@ div#footer {
#p-logo a:hover {
cursor: pointer;
}
+
div.visualClear {
- width:100%;
+ width: 100%;
line-height: 0;
}
+
textarea {
width: 96%;
}
diff --git a/skins/monobook/IE70Fixes.css b/skins/MonoBook/IE70Fixes.css
index e8d3a8f8..e82d57a3 100644
--- a/skins/monobook/IE70Fixes.css
+++ b/skins/MonoBook/IE70Fixes.css
@@ -3,17 +3,17 @@
/* workaround for various ie float bugs */
/* This bit is needed to make links clickable... WTF */
-div#column-content div#content {
+div#column-content .mw-body {
margin-left: 12.2em;
margin-top: 3em;
height: 1%;
}
-.rtl div#column-content div#content {
+
+.rtl div#column-content .mw-body {
margin-right: 12.2em;
margin-left: 0;
}
-
.rtl div#column-one {
/* For some reason it tries to inherit the padding-top into every div,
* and I can't figure out how to get it back off.
@@ -37,13 +37,13 @@ li#pt-userpage, li#pt-anonuserpage, li#pt-login {
padding-right: 0;
padding-left: 16px;
}
+
/* the tabs */
#p-cactions {
z-index: 3;
}
-
#p-cactions li {
padding-bottom: 0 !important;
border: none;
@@ -59,20 +59,25 @@ li#pt-userpage, li#pt-anonuserpage, li#pt-login {
border: solid #aaa;
border-width: 1px 1px 0;
}
+
#p-cactions li.selected a {
border-color: #fabd23;
padding-bottom: 0.17em;
}
+
#p-cactions li a:hover {
padding-bottom: 0.17em;
}
+
#p-navigation a {
display: inline-block;
width: 100%;
}
+
#portal-personaltools {
padding-bottom: 0.1em;
}
+
textarea {
width: 96%;
}
@@ -85,7 +90,6 @@ div.tleft {
}
*/
-
div#footer li {
/* Work around bug with inline <li> tags with right margins and nowrap */
margin-right: 0;
diff --git a/skins/MonoBook/MonoBook.php b/skins/MonoBook/MonoBook.php
new file mode 100644
index 00000000..97c0cd84
--- /dev/null
+++ b/skins/MonoBook/MonoBook.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * MonoBook nouveau.
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * 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 Skins
+ */
+
+$wgExtensionCredits['skin'][] = array(
+ 'path' => __FILE__,
+ 'name' => 'MonoBook',
+ 'namemsg' => 'skinname-monobook',
+ 'descriptionmsg' => 'monobook-desc',
+ 'url' => 'https://www.mediawiki.org/wiki/Skin:MonoBook',
+ 'author' => array( 'Gabriel Wicke', '...' ),
+ 'license-name' => 'GPLv2+',
+);
+
+// Register files
+$wgAutoloadClasses['SkinMonoBook'] = __DIR__ . '/SkinMonoBook.php';
+$wgAutoloadClasses['MonoBookTemplate'] = __DIR__ . '/MonoBookTemplate.php';
+$wgMessagesDirs['MonoBook'] = __DIR__ . '/i18n';
+
+// Register skin
+$wgValidSkinNames['monobook'] = 'MonoBook';
+
+// Register modules
+$wgResourceModules['skins.monobook.styles'] = array(
+ 'styles' => array(
+ 'main.css' => array( 'media' => 'screen' ),
+ ),
+ 'remoteSkinPath' => 'MonoBook',
+ 'localBasePath' => __DIR__,
+);
diff --git a/skins/MonoBook/MonoBookTemplate.php b/skins/MonoBook/MonoBookTemplate.php
new file mode 100644
index 00000000..c432625f
--- /dev/null
+++ b/skins/MonoBook/MonoBookTemplate.php
@@ -0,0 +1,379 @@
+<?php
+/**
+ * MonoBook nouveau.
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * 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 Skins
+ */
+
+/**
+ * @ingroup Skins
+ */
+class MonoBookTemplate extends BaseTemplate {
+
+ /**
+ * Template filter callback for MonoBook skin.
+ * Takes an associative array of data set from a SkinTemplate-based
+ * class, and a wrapper for MediaWiki's localization database, and
+ * outputs a formatted page.
+ *
+ * @access private
+ */
+ function execute() {
+ // Suppress warnings to prevent notices about missing indexes in $this->data
+ wfSuppressWarnings();
+
+ $this->html( 'headelement' );
+ ?><div id="globalWrapper">
+ <div id="column-content">
+ <div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+ <?php
+ if ( $this->data['sitenotice'] ) {
+ ?>
+ <div id="siteNotice"><?php
+ $this->html( 'sitenotice' )
+ ?></div><?php
+ }
+ ?>
+
+ <h1 id="firstHeading" class="firstHeading" lang="<?php
+ $this->data['pageLanguage'] =
+ $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
+ $this->text( 'pageLanguage' );
+ ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
+
+ <div id="bodyContent" class="mw-body-content">
+ <div id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
+ <div id="contentSub"<?php
+ $this->html( 'userlangattributes' ) ?>><?php $this->html( 'subtitle' )
+ ?></div>
+ <?php if ( $this->data['undelete'] ) { ?>
+ <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div>
+ <?php
+}
+ ?><?php
+ if ( $this->data['newtalk'] ) {
+ ?>
+ <div class="usermessage"><?php $this->html( 'newtalk' ) ?></div>
+ <?php
+ }
+ ?>
+ <div id="jump-to-nav" class="mw-jump"><?php
+ $this->msg( 'jumpto' )
+ ?> <a href="#column-one"><?php
+ $this->msg( 'jumptonavigation' )
+ ?></a><?php
+ $this->msg( 'comma-separator' )
+ ?><a href="#searchInput"><?php
+ $this->msg( 'jumptosearch' )
+ ?></a></div>
+
+ <!-- start content -->
+ <?php $this->html( 'bodytext' ) ?>
+ <?php
+ if ( $this->data['catlinks'] ) {
+ $this->html( 'catlinks' );
+ }
+ ?>
+ <!-- end content -->
+ <?php
+ if ( $this->data['dataAfterContent'] ) {
+ $this->html( 'dataAfterContent'
+ );
+ }
+ ?>
+ <div class="visualClear"></div>
+ </div>
+ </div>
+ </div>
+ <div id="column-one"<?php $this->html( 'userlangattributes' ) ?>>
+ <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
+ <?php $this->cactions(); ?>
+ <div class="portlet" id="p-personal" role="navigation">
+ <h3><?php $this->msg( 'personaltools' ) ?></h3>
+
+ <div class="pBody">
+ <ul<?php $this->html( 'userlangattributes' ) ?>>
+ <?php foreach ( $this->getPersonalTools() as $key => $item ) { ?>
+ <?php echo $this->makeListItem( $key, $item ); ?>
+
+ <?php
+}
+ ?>
+ </ul>
+ </div>
+ </div>
+ <div class="portlet" id="p-logo" role="banner">
+ <?php
+ echo Html::element( 'a', array(
+ 'href' => $this->data['nav_urls']['mainpage']['href'],
+ 'style' => "background-image: url({$this->data['logopath']});" )
+ + Linker::tooltipAndAccesskeyAttribs( 'p-logo' ) ); ?>
+
+ </div>
+ <?php
+ $this->renderPortals( $this->data['sidebar'] );
+ ?>
+ </div><!-- end of the left (by default at least) column -->
+ <div class="visualClear"></div>
+ <?php
+ $validFooterIcons = $this->getFooterIcons( "icononly" );
+ $validFooterLinks = $this->getFooterLinks( "flat" ); // Additional footer links
+
+ if ( count( $validFooterIcons ) + count( $validFooterLinks ) > 0 ) {
+ ?>
+ <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
+ <?php
+ $footerEnd = '</div>';
+ } else {
+ $footerEnd = '';
+ }
+
+ foreach ( $validFooterIcons as $blockName => $footerIcons ) {
+ ?>
+ <div id="f-<?php echo htmlspecialchars( $blockName ); ?>ico">
+ <?php foreach ( $footerIcons as $icon ) { ?>
+ <?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
+
+ <?php
+}
+ ?>
+ </div>
+ <?php
+ }
+
+ if ( count( $validFooterLinks ) > 0 ) {
+ ?>
+ <ul id="f-list">
+ <?php
+ foreach ( $validFooterLinks as $aLink ) {
+ ?>
+ <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
+ <?php
+ }
+ ?>
+ </ul>
+ <?php
+ }
+
+ echo $footerEnd;
+ ?>
+
+ </div>
+ <?php
+ $this->printTrail();
+ echo Html::closeElement( 'body' );
+ echo Html::closeElement( 'html' );
+ wfRestoreWarnings();
+ } // end of execute() method
+
+ /*************************************************************************************************/
+
+ /**
+ * @param array $sidebar
+ */
+ protected function renderPortals( $sidebar ) {
+ if ( !isset( $sidebar['SEARCH'] ) ) {
+ $sidebar['SEARCH'] = true;
+ }
+ if ( !isset( $sidebar['TOOLBOX'] ) ) {
+ $sidebar['TOOLBOX'] = true;
+ }
+ if ( !isset( $sidebar['LANGUAGES'] ) ) {
+ $sidebar['LANGUAGES'] = true;
+ }
+
+ foreach ( $sidebar as $boxName => $content ) {
+ if ( $content === false ) {
+ continue;
+ }
+
+ if ( $boxName == 'SEARCH' ) {
+ $this->searchBox();
+ } elseif ( $boxName == 'TOOLBOX' ) {
+ $this->toolbox();
+ } elseif ( $boxName == 'LANGUAGES' ) {
+ $this->languageBox();
+ } else {
+ $this->customBox( $boxName, $content );
+ }
+ }
+ }
+
+ function searchBox() {
+ ?>
+ <div id="p-search" class="portlet" role="search">
+ <h3><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
+
+ <div id="searchBody" class="pBody">
+ <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
+ <input type='hidden' name="title" value="<?php $this->text( 'searchtitle' ) ?>"/>
+ <?php echo $this->makeSearchInput( array( "id" => "searchInput" ) ); ?>
+
+ <?php
+ echo $this->makeSearchButton(
+ "go",
+ array( "id" => "searchGoButton", "class" => "searchButton" )
+ );
+
+ if ( $this->config->get( 'UseTwoButtonsSearchForm' ) ) {
+ ?>&#160;
+ <?php echo $this->makeSearchButton(
+ "fulltext",
+ array( "id" => "mw-searchButton", "class" => "searchButton" )
+ );
+ } else {
+ ?>
+
+ <div><a href="<?php
+ $this->text( 'searchaction' )
+ ?>" rel="search"><?php $this->msg( 'powersearch-legend' ) ?></a></div><?php
+ } ?>
+
+ </form>
+
+ <?php $this->renderAfterPortlet( 'search' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Prints the cactions bar.
+ * Shared between MonoBook and Modern
+ */
+ function cactions() {
+ ?>
+ <div id="p-cactions" class="portlet" role="navigation">
+ <h3><?php $this->msg( 'views' ) ?></h3>
+
+ <div class="pBody">
+ <ul><?php
+ foreach ( $this->data['content_actions'] as $key => $tab ) {
+ echo '
+ ' . $this->makeListItem( $key, $tab );
+ } ?>
+
+ </ul>
+ <?php $this->renderAfterPortlet( 'cactions' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /*************************************************************************************************/
+ function toolbox() {
+ ?>
+ <div class="portlet" id="p-tb" role="navigation">
+ <h3><?php $this->msg( 'toolbox' ) ?></h3>
+
+ <div class="pBody">
+ <ul>
+ <?php
+ foreach ( $this->getToolbox() as $key => $tbitem ) {
+ ?>
+ <?php echo $this->makeListItem( $key, $tbitem ); ?>
+
+ <?php
+ }
+ wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
+ wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
+ ?>
+ </ul>
+ <?php $this->renderAfterPortlet( 'tb' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /*************************************************************************************************/
+ function languageBox() {
+ if ( $this->data['language_urls'] !== false ) {
+ ?>
+ <div id="p-lang" class="portlet" role="navigation">
+ <h3<?php $this->html( 'userlangattributes' ) ?>><?php $this->msg( 'otherlanguages' ) ?></h3>
+
+ <div class="pBody">
+ <ul>
+ <?php foreach ( $this->data['language_urls'] as $key => $langlink ) { ?>
+ <?php echo $this->makeListItem( $key, $langlink ); ?>
+
+ <?php
+}
+ ?>
+ </ul>
+
+ <?php $this->renderAfterPortlet( 'lang' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+ }
+
+ /*************************************************************************************************/
+ /**
+ * @param string $bar
+ * @param array|string $cont
+ */
+ function customBox( $bar, $cont ) {
+ $portletAttribs = array(
+ 'class' => 'generated-sidebar portlet',
+ 'id' => Sanitizer::escapeId( "p-$bar" ),
+ 'role' => 'navigation'
+ );
+
+ $tooltip = Linker::titleAttrib( "p-$bar" );
+ if ( $tooltip !== false ) {
+ $portletAttribs['title'] = $tooltip;
+ }
+ echo ' ' . Html::openElement( 'div', $portletAttribs );
+ $msgObj = wfMessage( $bar );
+ ?>
+
+ <h3><?php echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $bar ); ?></h3>
+ <div class='pBody'>
+ <?php
+ if ( is_array( $cont ) ) {
+ ?>
+ <ul>
+ <?php
+ foreach ( $cont as $key => $val ) {
+ ?>
+ <?php echo $this->makeListItem( $key, $val ); ?>
+
+ <?php
+ }
+ ?>
+ </ul>
+ <?php
+ } else {
+ # allow raw HTML block to be defined by extensions
+ print $cont;
+ }
+
+ $this->renderAfterPortlet( $bar );
+ ?>
+ </div>
+ </div>
+ <?php
+ }
+} // end of class
diff --git a/skins/MonoBook/SkinMonoBook.php b/skins/MonoBook/SkinMonoBook.php
new file mode 100644
index 00000000..0546e756
--- /dev/null
+++ b/skins/MonoBook/SkinMonoBook.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * MonoBook nouveau.
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * 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 Skins
+ */
+
+/**
+ * Inherit main code from SkinTemplate, set the CSS and template filter.
+ * @ingroup Skins
+ */
+class SkinMonoBook extends SkinTemplate {
+ /** Using MonoBook. */
+ public $skinname = 'monobook';
+ public $stylename = 'MonoBook';
+ public $template = 'MonoBookTemplate';
+
+ /**
+ * @param OutputPage $out
+ */
+ function setupSkinUserCss( OutputPage $out ) {
+ parent::setupSkinUserCss( $out );
+
+ $out->addModuleStyles( array(
+ 'mediawiki.skinning.interface',
+ 'mediawiki.skinning.content.externallinks',
+ 'skins.monobook.styles'
+ ) );
+
+ // TODO: Migrate all of these
+ $out->addStyle( $this->stylename . '/IE60Fixes.css', 'screen', 'IE 6' );
+ $out->addStyle( $this->stylename . '/IE70Fixes.css', 'screen', 'IE 7' );
+ }
+}
diff --git a/skins/modern/bullet.gif b/skins/MonoBook/bullet.gif
index b43de48a..b43de48a 100644
--- a/skins/modern/bullet.gif
+++ b/skins/MonoBook/bullet.gif
Binary files differ
diff --git a/skins/monobook/headbg.jpg b/skins/MonoBook/headbg.jpg
index 5491c6e4..5491c6e4 100644
--- a/skins/monobook/headbg.jpg
+++ b/skins/MonoBook/headbg.jpg
Binary files differ
diff --git a/skins/MonoBook/hooks.txt b/skins/MonoBook/hooks.txt
new file mode 100644
index 00000000..b456a669
--- /dev/null
+++ b/skins/MonoBook/hooks.txt
@@ -0,0 +1,8 @@
+Hooks provided by the MonoBook skin.
+
+'MonoBookTemplateToolboxEnd': DEPRECATED. Called by Monobook skin after toolbox
+links have been rendered (useful for adding more). Note: this is only run for
+the Monobook skin. To add items to the toolbox you should use the
+SkinTemplateToolboxEnd hook instead, which works for all "SkinTemplate"-type
+skins.
+$tools: array of tools
diff --git a/skins/MonoBook/i18n/aln.json b/skins/MonoBook/i18n/aln.json
new file mode 100644
index 00000000..b853dde7
--- /dev/null
+++ b/skins/MonoBook/i18n/aln.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bresta"
+ ]
+ },
+ "monobook.css": "/* CSS i vednosun këtu ka me i prekë shfrytëzuesit e dukjes Monobook */",
+ "monobook.js": "/* Çdo JavaScript këtu ka me u ngarkue për shfrytëzuesit që përdorin dukjen MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/an.json b/skins/MonoBook/i18n/an.json
new file mode 100644
index 00000000..f635897c
--- /dev/null
+++ b/skins/MonoBook/i18n/an.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Juanpabl"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Os estilos CSS colocaus aquí s'aplicarán ta totz os usuarios que faigan servir l'apariencia Monobook */",
+ "monobook.js": "/* O codigo Javascript que se meta aquí será cargau por os usuarios faigan servir l'apariencia MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/ar.json b/skins/MonoBook/i18n/ar.json
new file mode 100644
index 00000000..05cad213
--- /dev/null
+++ b/skins/MonoBook/i18n/ar.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meno25"
+ ]
+ },
+ "skinname-monobook": "مونوبوك",
+ "monobook.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة مونوبوك */",
+ "monobook.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة مونوبوك */"
+}
diff --git a/skins/MonoBook/i18n/arz.json b/skins/MonoBook/i18n/arz.json
new file mode 100644
index 00000000..a49f0038
--- /dev/null
+++ b/skins/MonoBook/i18n/arz.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meno25"
+ ]
+ },
+ "skinname-monobook": "مونوبوك",
+ "monobook.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمى واجهة مونوبوك */",
+ "monobook.js": "/* أى جافاسكريبت هنا ح تتحمل لليوزرز اللى بيستعملو واجهة مونوبوك */"
+}
diff --git a/skins/MonoBook/i18n/ast.json b/skins/MonoBook/i18n/ast.json
new file mode 100644
index 00000000..76f295be
--- /dev/null
+++ b/skins/MonoBook/i18n/ast.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Xuacu"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "El tema clásicu de MediaWiki dende 2004, llamáu asina pola foto en blanco y negro d'un llibru nel fondu de la páxina",
+ "monobook.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Monobook */",
+ "monobook.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/az.json b/skins/MonoBook/i18n/az.json
new file mode 100644
index 00000000..55b33d8f
--- /dev/null
+++ b/skins/MonoBook/i18n/az.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vago",
+ "Vugar 1981"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Burada yerləşən CSS Monobook skin istifadəçilərinə tətbiq olunur */",
+ "monobook.js": "/* Burada MonoBook skin istifadəçiləri üçün istənilən JavaScript yüklənəcək */"
+}
diff --git a/skins/MonoBook/i18n/bcc.json b/skins/MonoBook/i18n/bcc.json
new file mode 100644
index 00000000..97323822
--- /dev/null
+++ b/skins/MonoBook/i18n/bcc.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mostafadaneshvar"
+ ]
+ },
+ "skinname-monobook": "منوبوک",
+ "monobook.css": "/* CSS که اداننت کابران پوست مونوبوک تاثیر کننت */",
+ "monobook.js": "/* جاوا اسکریپت ادان فقط په کابرانی که چه پوست منوبوک استفاده کننت بار بیت. */"
+}
diff --git a/skins/MonoBook/i18n/bcl.json b/skins/MonoBook/i18n/bcl.json
new file mode 100644
index 00000000..1ef08f2c
--- /dev/null
+++ b/skins/MonoBook/i18n/bcl.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filipinayzd"
+ ]
+ },
+ "monobook.css": "/* an CSS na pigbugtak digdi makakaapektar sa mga parágamit kan Monobook skin */",
+ "monobook.js": "/* Deprecado; gamiton an [[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/be-tarask.json b/skins/MonoBook/i18n/be-tarask.json
new file mode 100644
index 00000000..2b4aa8c0
--- /dev/null
+++ b/skins/MonoBook/i18n/be-tarask.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "Монакніга"
+}
diff --git a/skins/MonoBook/i18n/be.json b/skins/MonoBook/i18n/be.json
new file mode 100644
index 00000000..684d3d35
--- /dev/null
+++ b/skins/MonoBook/i18n/be.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Yury Tarasievich",
+ "Mikalai Udodau"
+ ]
+ },
+ "skinname-monobook": "Манабук",
+ "monobook-desc": "Класічная вокладка MediaWiki з 2004 года, названая ў гонар чорна-белай фатаграфіі кнігі ў фоне старонкі",
+ "monobook.css": "/* CSS, упісаны сюды, будзе дзейнічаць на браўзер кожнага чытача з актыўнай світай Monobook */",
+ "monobook.js": "/* Any JavaScript here will be loaded for users using the MonoBook skin */"
+}
diff --git a/skins/MonoBook/i18n/bg.json b/skins/MonoBook/i18n/bg.json
new file mode 100644
index 00000000..398ca3aa
--- /dev/null
+++ b/skins/MonoBook/i18n/bg.json
@@ -0,0 +1,6 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "Монобук",
+ "monobook.css": "/* Чрез редактиране на този файл можете да промените облика Монобук */",
+ "monobook.js": "/* Остаряла страница; използвайте [[MediaWiki:Common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/bn.json b/skins/MonoBook/i18n/bn.json
new file mode 100644
index 00000000..d6a4112c
--- /dev/null
+++ b/skins/MonoBook/i18n/bn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aftab1995"
+ ]
+ },
+ "skinname-monobook": "মনোবুক"
+}
diff --git a/skins/MonoBook/i18n/br.json b/skins/MonoBook/i18n/br.json
new file mode 100644
index 00000000..2ba630f7
--- /dev/null
+++ b/skins/MonoBook/i18n/br.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fulup"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Talvezout a raio ar CSS lakaet amañ evit implijerien ar gwiskadur Monobook */",
+ "monobook.js": "/* Kement JavaScript amañ a vo karget evit an implijerien a ra gant ar gwiskadur MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/bs.json b/skins/MonoBook/i18n/bs.json
new file mode 100644
index 00000000..ddecc4c9
--- /dev/null
+++ b/skins/MonoBook/i18n/bs.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "CERminator",
+ "Kal-El"
+ ]
+ },
+ "skinname-monobook": "MonoKnjiga",
+ "monobook.css": "/* CSS umetnut ovdje uticat će na korisnike koji koriste Monobook skin */",
+ "monobook.js": "/* Bilo koja JavaScript će biti učitana za sve korisnike koji koriste MonoBook skin */"
+}
diff --git a/skins/MonoBook/i18n/ca.json b/skins/MonoBook/i18n/ca.json
new file mode 100644
index 00000000..bb6e17e6
--- /dev/null
+++ b/skins/MonoBook/i18n/ca.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Martorell",
+ "Toniher",
+ "Fitoschido"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "El tema clàssic de MediaWiki des del 2004, que rep el nom d'una foto en blanc i negre d'un llibre en el fons de la pàgina.",
+ "monobook.css": "/* Editeu aquest fitxer per personalitzar l'aparença del monobook per a tot el lloc sencer */"
+}
diff --git a/skins/MonoBook/i18n/ce.json b/skins/MonoBook/i18n/ce.json
new file mode 100644
index 00000000..61515a86
--- /dev/null
+++ b/skins/MonoBook/i18n/ce.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Умар"
+ ]
+ },
+ "monobook.css": "/* Чуйиллина йолу кхузе CSS хир ю лелош масхьа Monobook чохь */",
+ "monobook.js": "/* Кхузе чу язийна йолу JavaScript код, чу ера ю, массо MonoBook хатl лелош болу декъашхошна */"
+}
diff --git a/skins/MonoBook/i18n/ckb.json b/skins/MonoBook/i18n/ckb.json
new file mode 100644
index 00000000..c73cd560
--- /dev/null
+++ b/skins/MonoBook/i18n/ckb.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "مۆنۆ"
+}
diff --git a/skins/MonoBook/i18n/crh-cyrl.json b/skins/MonoBook/i18n/crh-cyrl.json
new file mode 100644
index 00000000..57bb68f7
--- /dev/null
+++ b/skins/MonoBook/i18n/crh-cyrl.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* monobook темасынынъ аярларыны (настройкаларыны) денъиштирмек ичюн бу ерини денъиштиринъиз. Бутюн сайтта тесирли олур. */"
+}
diff --git a/skins/MonoBook/i18n/crh-latn.json b/skins/MonoBook/i18n/crh-latn.json
new file mode 100644
index 00000000..f8ddb187
--- /dev/null
+++ b/skins/MonoBook/i18n/crh-latn.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* monobook temasınıñ ayarlarını (nastroykalarını) deñiştirmek içün bu yerini deñiştiriñiz. Bütün saytta tesirli olur. */"
+}
diff --git a/skins/MonoBook/i18n/cs.json b/skins/MonoBook/i18n/cs.json
new file mode 100644
index 00000000..d755d521
--- /dev/null
+++ b/skins/MonoBook/i18n/cs.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Danny B.",
+ "Li-sung",
+ "Mormegil"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "Klasický vzhled MediaWiki od roku 2004, pojmenovaný po černobílé fotografii knihy v pozadí stránky",
+ "monobook.css": "/* Zde uvedené CSS bude ovlivňovat pouze styl „Monobook“ */",
+ "monobook.js": "/* JavaScript pro uživatele používající vzhled MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/da.json b/skins/MonoBook/i18n/da.json
new file mode 100644
index 00000000..bb7745e5
--- /dev/null
+++ b/skins/MonoBook/i18n/da.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Peter Alberti",
+ "Christian List"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "Den klassiske MediaWiki hud siden 2004, opkaldt efter det sort-hvide foto af en bog i baggrunden af siderne",
+ "monobook.css": "/** CSS inkluderet her vil være aktivt for brugere af Monobook-temaet . */",
+ "monobook.js": "/* JavaScript i denne fil vil indlæses for brugere af udseendet MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/de.json b/skins/MonoBook/i18n/de.json
new file mode 100644
index 00000000..047b91df
--- /dev/null
+++ b/skins/MonoBook/i18n/de.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geitost",
+ "Metalhead64"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "Ergänzt die klassische MediaWiki-Benutzeroberfläche seit 2004, benannt nach dem Schwarzweißfoto eines Buches im Seitenhintergrund",
+ "monobook.css": "/* Das folgende CSS wird für Benutzer der MonoBook-Benutzeroberfläche geladen */",
+ "monobook.js": "/* Das folgende JavaScript wird für Benutzer der Monobook-Benutzeroberfläche geladen. */"
+}
diff --git a/skins/MonoBook/i18n/diq.json b/skins/MonoBook/i18n/diq.json
new file mode 100644
index 00000000..ca9696d0
--- /dev/null
+++ b/skins/MonoBook/i18n/diq.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan"
+ ]
+ },
+ "skinname-monobook": "MonoBook"
+}
diff --git a/skins/MonoBook/i18n/dsb.json b/skins/MonoBook/i18n/dsb.json
new file mode 100644
index 00000000..6731b7b5
--- /dev/null
+++ b/skins/MonoBook/i18n/dsb.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki",
+ "Nepl1"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* How zaměstnjony CSS wustatkujo se na wužywarje monobook-šata */",
+ "monobook.js": "/* Slědujucy JavaScript zacytajo se za wužywarjow, kótarež skin MonoBook wužywaju */"
+}
diff --git a/skins/MonoBook/i18n/el.json b/skins/MonoBook/i18n/el.json
new file mode 100644
index 00000000..1e7f7b86
--- /dev/null
+++ b/skins/MonoBook/i18n/el.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dead3y3"
+ ]
+ },
+ "monobook.css": "/* Το τοποθετημένο εδώ CSS θα επηρεάσει χρήστες του Monobook skin */",
+ "monobook.js": "/* Οποιοσδήποτε κώδικας JavaScript εδώ θα φορτωθεί για χρήστες που χρησιμοποιούν το MonoBook skin */"
+}
diff --git a/skins/MonoBook/i18n/en.json b/skins/MonoBook/i18n/en.json
new file mode 100644
index 00000000..0b27e6b4
--- /dev/null
+++ b/skins/MonoBook/i18n/en.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": []
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "The classic MediaWiki skin since 2004, named after the black-and-white photo of a book in the page background",
+ "monobook.css": "/* CSS placed here will affect users of the MonoBook skin */",
+ "monobook.js": "/* Any JavaScript here will be loaded for users using the MonoBook skin */"
+}
diff --git a/skins/MonoBook/i18n/eo.json b/skins/MonoBook/i18n/eo.json
new file mode 100644
index 00000000..170286a2
--- /dev/null
+++ b/skins/MonoBook/i18n/eo.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Objectivesea"
+ ]
+ },
+ "skinname-monobook": "Librejo",
+ "monobook.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Libreja temo. */",
+ "monobook.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Libreja temo. */"
+}
diff --git a/skins/MonoBook/i18n/es.json b/skins/MonoBook/i18n/es.json
new file mode 100644
index 00000000..48d424c7
--- /dev/null
+++ b/skins/MonoBook/i18n/es.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sanbec",
+ "Vivaelcelta",
+ "Fitoschido"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "El tema clásico de MediaWiki desde 2004, cuyo nombre viene de la foto en blanco y negro de un libro en el fondo",
+ "monobook.css": "/* El CSS colocado en esta página afectará a los usuarios que usen la apariencia \"MonoBook\" */",
+ "monobook.js": "/* El código JavaScript que se ponga aquí será cargado por los usuarios de la apariencia MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/et.json b/skins/MonoBook/i18n/et.json
new file mode 100644
index 00000000..bad03709
--- /dev/null
+++ b/skins/MonoBook/i18n/et.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pikne"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "2004. aastast pärinev klassikaline MediaWiki kujundus, mis on nime saanud lehekülje taustal oleva mustvalge raamatu foto järgi",
+ "monobook.css": "/* Siin asuv kaskaadilaadistik puudutab kõiki MonoBooki-kujunduse kasutajaid. */",
+ "monobook.js": "/* Siin asuv JavaScript laaditakse MonoBooki-kujunduse kasutajate jaoks. */"
+}
diff --git a/skins/MonoBook/i18n/eu.json b/skins/MonoBook/i18n/eu.json
new file mode 100644
index 00000000..d9d6f9c2
--- /dev/null
+++ b/skins/MonoBook/i18n/eu.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* Hemen idatzitako CSS kodeak Monobook itxuran bakarrik izango du eragina */"
+}
diff --git a/skins/MonoBook/i18n/ext.json b/skins/MonoBook/i18n/ext.json
new file mode 100644
index 00000000..7ea38be0
--- /dev/null
+++ b/skins/MonoBook/i18n/ext.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "monobook.js": "/* Antigu; gasta [[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/fa.json b/skins/MonoBook/i18n/fa.json
new file mode 100644
index 00000000..f013e859
--- /dev/null
+++ b/skins/MonoBook/i18n/fa.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Reza1615"
+ ]
+ },
+ "skinname-monobook": "مونوبوک",
+ "monobook-desc": "پوسته کلاسیک مدیاویکی از سال ۲۰۰۴ از عکس سیاه و سفید در زمینه صفحه کتاب نام گرفت",
+ "monobook.css": "/* دستورات این بخش کاربرانی را که از پوستهٔ مونوبوک استفاده کنند تحت تاثیر قرار می‌دهند. */",
+ "monobook.js": "/ * کدهای جاوااسکریپتی که در اینجا قرار می‌گیرند برای کاربران پوستهٔ منوبوک بارگیری می‌شود * /"
+}
diff --git a/skins/MonoBook/i18n/fi.json b/skins/MonoBook/i18n/fi.json
new file mode 100644
index 00000000..f516bddb
--- /dev/null
+++ b/skins/MonoBook/i18n/fi.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Crt"
+ ]
+ },
+ "skinname-monobook": "Monobook",
+ "monobook.css": "/* Tämä sivu sisältää Monobook-ulkoasua muuttavia tyylejä. */",
+ "monobook.js": "/* Tämän sivun JavaScript-koodi liitetään Monobook-tyyliin */"
+}
diff --git a/skins/MonoBook/i18n/fr.json b/skins/MonoBook/i18n/fr.json
new file mode 100644
index 00000000..2fc23cc7
--- /dev/null
+++ b/skins/MonoBook/i18n/fr.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gomoko",
+ "Verdy p",
+ "Dr Brains"
+ ]
+ },
+ "skinname-monobook": "Monobook",
+ "monobook-desc": "L’habillage classique de MediaWiki depuis 2004, nommé d’après la photo en noir et blanc d’un livre dans l’arrière-plan de la page",
+ "monobook.css": "/* Le CSS placé ici affectera les utilisateurs de l’habillage Monobook. */",
+ "monobook.js": "/* Tout JavaScript ici sera chargé avec les pages accédées par les utilisateurs de l’habillage MonoBook uniquement. */"
+}
diff --git a/skins/MonoBook/i18n/frp.json b/skins/MonoBook/i18n/frp.json
new file mode 100644
index 00000000..06a705a6
--- /dev/null
+++ b/skins/MonoBook/i18n/frp.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Lo code CSS betâ ique afècterat los usanciérs de l’habelyâjo « MonoBook ». */",
+ "monobook.js": "/* Tot code JavaScript betâ ique serat chargiê per los usanciérs de l’habelyâjo « MonoBook ». */"
+}
diff --git a/skins/MonoBook/i18n/fur.json b/skins/MonoBook/i18n/fur.json
new file mode 100644
index 00000000..566906ba
--- /dev/null
+++ b/skins/MonoBook/i18n/fur.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* modifiche chest file par personalizâ la skin monobook par dut il sît */"
+}
diff --git a/skins/MonoBook/i18n/ga.json b/skins/MonoBook/i18n/ga.json
new file mode 100644
index 00000000..20f45e3b
--- /dev/null
+++ b/skins/MonoBook/i18n/ga.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* athraigh an comhad seo chun an craiceann MonoBook a athrú don suíomh ar fad */"
+}
diff --git a/skins/MonoBook/i18n/gan-hans.json b/skins/MonoBook/i18n/gan-hans.json
new file mode 100644
index 00000000..bb08ae12
--- /dev/null
+++ b/skins/MonoBook/i18n/gan-hans.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* 个首𠮶 CSS 会碍到正用Monobook皮肤𠮶用户 */",
+ "monobook.js": "/* 伓再使用;请用[[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/gan-hant.json b/skins/MonoBook/i18n/gan-hant.json
new file mode 100644
index 00000000..3746c564
--- /dev/null
+++ b/skins/MonoBook/i18n/gan-hant.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* 箇首嗰 CSS 會礙到正用Monobook皮膚嗰用戶 */",
+ "monobook.js": "/* 伓再使用;請用[[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/gd.json b/skins/MonoBook/i18n/gd.json
new file mode 100644
index 00000000..f5bd1545
--- /dev/null
+++ b/skins/MonoBook/i18n/gd.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "GunChleoc"
+ ]
+ },
+ "monobook-desc": "Craiceann MediaWiki clasaigeach o 2004 a chaidh ainmeachadh a-rèir dealbh de leabhar ann an dubh 's geal air cùlaibh nan duilleagan"
+}
diff --git a/skins/MonoBook/i18n/gl.json b/skins/MonoBook/i18n/gl.json
new file mode 100644
index 00000000..0e53e4ab
--- /dev/null
+++ b/skins/MonoBook/i18n/gl.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Toliño",
+ "Xosé"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "A aparencia clásica de MediaWiki desde 2004; recibe o seu nome pola foto en branco e negro dun libro que aparece no fondo das páxinas",
+ "monobook.css": "/* O CSS que se coloque aquí afectará a quen use a aparencia Monobook */",
+ "monobook.js": "/* Calquera JavaScript que haxa aquí será cargado para os usuarios que usen a aparencia MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/hak.json b/skins/MonoBook/i18n/hak.json
new file mode 100644
index 00000000..32535091
--- /dev/null
+++ b/skins/MonoBook/i18n/hak.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hakka"
+ ]
+ },
+ "monobook.css": "/* Chhṳ́-chhu ke CSS chiông-voi yáng-hióng sṳ́-yung Monobook mien-pán ke yung-fu */",
+ "monobook.js": "/* Yí-kîn put-chai sṳ́-yung; chhiáng-yung [[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/he.json b/skins/MonoBook/i18n/he.json
new file mode 100644
index 00000000..9e4f0581
--- /dev/null
+++ b/skins/MonoBook/i18n/he.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rotemliss",
+ "Amire80"
+ ]
+ },
+ "skinname-monobook": "מונובוק",
+ "monobook-desc": "העיצוב הקלאסי של מדיה־ויקי מ־2004, שנקרא על שם הצילום השחור־לבן של ספר ברקע",
+ "monobook.css": "/* הסגנונות הנכתבים כאן ישפיעו על העיצוב MonoBook בלבד */",
+ "monobook.js": "/* כל סקריפט JavaScript שנכתב כאן ירוץ רק עבור המשתמשים בעיצוב Monobook */"
+}
diff --git a/skins/MonoBook/i18n/hi.json b/skins/MonoBook/i18n/hi.json
new file mode 100644
index 00000000..e645482c
--- /dev/null
+++ b/skins/MonoBook/i18n/hi.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaustubh",
+ "Siddhartha Ghai"
+ ]
+ },
+ "monobook-desc": "2004 से मीडियाविकि की क्लासिक त्वचा, जिसका नाम पृष्ठभूमि में पुस्तक के इकरंगा चित्र से पड़ा।",
+ "monobook.css": "/* यहां रखी गई css मोनोबुक त्वचा का इस्तेमाल करने वाले सभी सदस्योंपर असर करेगी */",
+ "monobook.js": "/* यहाँ पर दी गई जावास्क्रिप्ट मोनोबुक त्वचा का प्रयोग कर रहे सदस्यों के लिए लोड होगी */"
+}
diff --git a/skins/MonoBook/i18n/hr.json b/skins/MonoBook/i18n/hr.json
new file mode 100644
index 00000000..a53e4063
--- /dev/null
+++ b/skins/MonoBook/i18n/hr.json
@@ -0,0 +1,6 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/** Ovdje idu izmjene monobook stylesheeta */",
+ "monobook.js": "/* Ne rabi se više; molimo rabite [[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/hsb.json b/skins/MonoBook/i18n/hsb.json
new file mode 100644
index 00000000..2ac24c7c
--- /dev/null
+++ b/skins/MonoBook/i18n/hsb.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* CSS wobdźěłać, zo by so skin „monobook” za wšěčh wužiwarjow tutoho skina priměrił */",
+ "monobook.js": "/* Slědowacy JavaScript začita so za wužiwarjow, kotřiž šat MonoBook wužiwaja */"
+}
diff --git a/skins/MonoBook/i18n/hu.json b/skins/MonoBook/i18n/hu.json
new file mode 100644
index 00000000..07e3a104
--- /dev/null
+++ b/skins/MonoBook/i18n/hu.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dani"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Az ide elhelyezett CSS hatással lesz a Monobook felület használóira */",
+ "monobook.js": "/* A Monobook felületet használó szerkesztők számára betöltendő JavaScriptek */"
+}
diff --git a/skins/MonoBook/i18n/hy.json b/skins/MonoBook/i18n/hy.json
new file mode 100644
index 00000000..db1d72e0
--- /dev/null
+++ b/skins/MonoBook/i18n/hy.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Teak"
+ ]
+ },
+ "skinname-monobook": "ՄիաԳիրք",
+ "monobook.css": "/* Այստեղ տեղադրված CSS կոդը կկիրառվի Monobook տեսքի վրա*/",
+ "monobook.js": "/* Հնացած է. օգտագործեք [[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/ia.json b/skins/MonoBook/i18n/ia.json
new file mode 100644
index 00000000..39a703cb
--- /dev/null
+++ b/skins/MonoBook/i18n/ia.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "McDutchie"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "Le apparentia classic de MediaWiki depost 2004, nominate assi pro le imagine in nigro e blanco (\"mono\") de un libro (\"book\") in le fundo del pagina.",
+ "monobook.css": "/* Le CSS placiate hic afficera le usatores del apparentia MonoBook */",
+ "monobook.js": "/* Omne JavaScript hic se executara pro le usatores del apparentia MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/id.json b/skins/MonoBook/i18n/id.json
new file mode 100644
index 00000000..d87d6636
--- /dev/null
+++ b/skins/MonoBook/i18n/id.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion",
+ "Rex",
+ "Arifin.wijaya"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "Kulit MediaWiki klasik sejak tahun 2004, dinamai foto hitam-putih dari buku di latar belakang halaman",
+ "monobook.css": "/* CSS yang ada di sini akan diterapkan pada kulit Monobook. */",
+ "monobook.js": "/* Semua JavaScript di sini akan dimuatkan untuk para pengguna yang menggunakan kulit MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/ilo.json b/skins/MonoBook/i18n/ilo.json
new file mode 100644
index 00000000..c59ae5fa
--- /dev/null
+++ b/skins/MonoBook/i18n/ilo.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lam-ang"
+ ]
+ },
+ "monobook-desc": "Ti klasiko a kudil ti MediaWiki manipud idi 2004, nanaganan manipud ti nangisit-ken-puraw a retrato ti libro iti likudan ti panid"
+}
diff --git a/skins/MonoBook/i18n/is.json b/skins/MonoBook/i18n/is.json
new file mode 100644
index 00000000..1539ae1e
--- /dev/null
+++ b/skins/MonoBook/i18n/is.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "לערי ריינהארט"
+ ]
+ },
+ "skinname-monobook": "EinBók",
+ "monobook.css": "/* Það sem sett er hingað er bætt við Monobook stilsniðið fyrir allan vefinn */"
+}
diff --git a/skins/MonoBook/i18n/it.json b/skins/MonoBook/i18n/it.json
new file mode 100644
index 00000000..ba87cd91
--- /dev/null
+++ b/skins/MonoBook/i18n/it.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Beta16",
+ "Darth Kule"
+ ]
+ },
+ "monobook-desc": "La skin classica di MediaWiki dal 2004, prende il nome dall'immagine in bianco e nero del libro usata come sfondo della pagina",
+ "monobook.css": "/* Gli stili CSS inseriti qui si applicano agli utenti che usano la skin Monobook */",
+ "monobook.js": "/* Il codice JavaScript inserito qui viene caricato dagli utenti che usano la skin MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/ja.json b/skins/MonoBook/i18n/ja.json
new file mode 100644
index 00000000..0b89fbd1
--- /dev/null
+++ b/skins/MonoBook/i18n/ja.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fryed-peach",
+ "青子守歌",
+ "Takot"
+ ]
+ },
+ "skinname-monobook": "モノブック",
+ "monobook-desc": "ページ背景にモノクロの本の写真があることから名付けられた、2004年以来のクラシックなMediaWiki外装。",
+ "monobook.css": "/* ここに記述したCSSはモノブック外装の利用者に影響します */",
+ "monobook.js": "/* ここにあるすべてのJavaScriptは、モノブック外装を使用している利用者に対して読み込まれます */"
+}
diff --git a/skins/MonoBook/i18n/ka.json b/skins/MonoBook/i18n/ka.json
new file mode 100644
index 00000000..0b16b54e
--- /dev/null
+++ b/skins/MonoBook/i18n/ka.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alsandro",
+ "David1010"
+ ]
+ },
+ "skinname-monobook": "მონობუკი",
+ "monobook.css": "/* აქ ჩასმული CSS გავლენას იქონიებს Monobook ინტერფეისის მომხმარებლებზე */"
+}
diff --git a/skins/MonoBook/i18n/kk-arab.json b/skins/MonoBook/i18n/kk-arab.json
new file mode 100644
index 00000000..71f45b99
--- /dev/null
+++ b/skins/MonoBook/i18n/kk-arab.json
@@ -0,0 +1,6 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "دارا كىتاپ (monobook)",
+ "monobook.css": "/* مىندا ورنالاستىرىلعان CSS تەك «دارا كىتاپ» (monobook) مانەرىن پايدالانۋشىلارىنا ىقپال ەتەدى */",
+ "monobook.js": "/* مىنداعى JavaScript تەك «دارا كىتاپ» (monobook) مانەرىن پايدالانۋشىلار ٴۇشىن جەگىلەدى */"
+}
diff --git a/skins/MonoBook/i18n/kk-cyrl.json b/skins/MonoBook/i18n/kk-cyrl.json
new file mode 100644
index 00000000..c964423a
--- /dev/null
+++ b/skins/MonoBook/i18n/kk-cyrl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek"
+ ]
+ },
+ "skinname-monobook": "Жеке кітап (monobook)",
+ "monobook.css": "/* Мында орналастырылған CSS тек «Дара кітап» (monobook) мәнерін пайдаланушыларына ықпал етеді */",
+ "monobook.js": "/* Мындағы JavaScript тек «Дара кітап» (monobook) мәнерін пайдаланушылар үшін жегіледі */"
+}
diff --git a/skins/MonoBook/i18n/kk-latn.json b/skins/MonoBook/i18n/kk-latn.json
new file mode 100644
index 00000000..b2ae5045
--- /dev/null
+++ b/skins/MonoBook/i18n/kk-latn.json
@@ -0,0 +1,6 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "Dara kitap (monobook)",
+ "monobook.css": "/* Mında ornalastırılğan CSS tek «Dara kitap» (monobook) mänerin paýdalanwşılarına ıqpal etedi */",
+ "monobook.js": "/* Mındağı JavaScript tek «Dara kitap» (monobook) mänerin paýdalanwşılar üşin jegiledi */"
+}
diff --git a/skins/MonoBook/i18n/km.json b/skins/MonoBook/i18n/km.json
new file mode 100644
index 00000000..162e5a82
--- /dev/null
+++ b/skins/MonoBook/i18n/km.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "វ័ណថារិទ្ធ"
+ ]
+ },
+ "skinname-monobook": "សៀវភៅឯក",
+ "monobook.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើអ្នកប្រើប្រាស់នៃសំបក Monobook */"
+}
diff --git a/skins/MonoBook/i18n/ko.json b/skins/MonoBook/i18n/ko.json
new file mode 100644
index 00000000..08886f45
--- /dev/null
+++ b/skins/MonoBook/i18n/ko.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "아라"
+ ]
+ },
+ "skinname-monobook": "모노북",
+ "monobook-desc": "문서 배경에서 책의 흑백 사진을 이른, 2004년 이후의 고전 미디어위키 스킨",
+ "monobook.css": "/* 이 CSS 설정은 모노북 스킨을 사용하는 사용자에게 적용됩니다 */",
+ "monobook.js": "/* 이 자바스크립트 설정은 모노북 스킨을 사용하는 사용자에게 적용됩니다 */"
+}
diff --git a/skins/MonoBook/i18n/krc.json b/skins/MonoBook/i18n/krc.json
new file mode 100644
index 00000000..2ec14104
--- /dev/null
+++ b/skins/MonoBook/i18n/krc.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Къарачайлы"
+ ]
+ },
+ "skinname-monobook": "Моно-китаб"
+}
diff --git a/skins/MonoBook/i18n/ksh.json b/skins/MonoBook/i18n/ksh.json
new file mode 100644
index 00000000..6c8c8106
--- /dev/null
+++ b/skins/MonoBook/i18n/ksh.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha"
+ ]
+ },
+ "skinname-monobook": "MonoBoch",
+ "monobook.css": "/* CSS heh aan dä Stell wirrek nur op de Ovverflääsch „Monobooch“ */",
+ "monobook.js": "/* De JavaSkrippte fun hee krijje alle Sigge met de Ovverflääsch \"Monnobooch\" jescheck */"
+}
diff --git a/skins/MonoBook/i18n/ku-latn.json b/skins/MonoBook/i18n/ku-latn.json
new file mode 100644
index 00000000..7fb824a7
--- /dev/null
+++ b/skins/MonoBook/i18n/ku-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Krinkle"
+ ]
+ },
+ "monobook.css": "/* CSS placed here will affect users of the Monobook skin */"
+}
diff --git a/skins/MonoBook/i18n/lb.json b/skins/MonoBook/i18n/lb.json
new file mode 100644
index 00000000..254f56d6
--- /dev/null
+++ b/skins/MonoBook/i18n/lb.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Robby"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "De klassesche Look vu MediaWiki zanter 2004, benannt no der Schwaarzwäissfoto vun engem Buch am Hannergrond vun der Säit",
+ "monobook.css": "/* Dës CSS huet nëmmen Afloss op de Skin ''Monobook'' */",
+ "monobook.js": "/* All JavaScript hei gëtt gelueden esoubal ee Benotzer d'Ausgesinn MonoBook benotzt */"
+}
diff --git a/skins/MonoBook/i18n/lt.json b/skins/MonoBook/i18n/lt.json
new file mode 100644
index 00000000..82ba4168
--- /dev/null
+++ b/skins/MonoBook/i18n/lt.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Garas"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Čia įdėtas CSS bus rodomas Monobook išvaizdos naudotojams */",
+ "monobook.js": "/* Šis JavaScript bus įkeltas tik „MonoBook“ išvaizdos naudotojams. */"
+}
diff --git a/skins/MonoBook/i18n/lzh.json b/skins/MonoBook/i18n/lzh.json
new file mode 100644
index 00000000..f6d6dcb8
--- /dev/null
+++ b/skins/MonoBook/i18n/lzh.json
@@ -0,0 +1,6 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "單書",
+ "monobook.css": "/* 此之 CSS 用於單書面之簿也 */",
+ "monobook.js": "/* 此之JavaScript將載於用單書面之簿 */"
+}
diff --git a/skins/MonoBook/i18n/mg.json b/skins/MonoBook/i18n/mg.json
new file mode 100644
index 00000000..4d3c35b7
--- /dev/null
+++ b/skins/MonoBook/i18n/mg.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* Ovay ity rakitra ity raha hampiasa takilan'angaly (stylesheet) anao manokana amin'ny wiki iray manontolo */"
+}
diff --git a/skins/MonoBook/i18n/min.json b/skins/MonoBook/i18n/min.json
new file mode 100644
index 00000000..2eb90011
--- /dev/null
+++ b/skins/MonoBook/i18n/min.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion"
+ ]
+ },
+ "skinname-monobook": "MonoBook"
+}
diff --git a/skins/MonoBook/i18n/mk.json b/skins/MonoBook/i18n/mk.json
new file mode 100644
index 00000000..be8e2801
--- /dev/null
+++ b/skins/MonoBook/i18n/mk.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06"
+ ]
+ },
+ "skinname-monobook": "Монобук",
+ "monobook-desc": "Класичното руво на МедијаВики од 2004 г., наречена по црнобелата слика на книга во позадината",
+ "monobook.css": "/* Тука поставениот CSS ќе се применува врз корисниците на рувото „Монобук“ */",
+ "monobook.js": "/* Тука поставениот JavaScript ќе им се вчитува на корисниците што го користат рувото „Монобук“ */"
+}
diff --git a/skins/MonoBook/i18n/ml.json b/skins/MonoBook/i18n/ml.json
new file mode 100644
index 00000000..2f014d14
--- /dev/null
+++ b/skins/MonoBook/i18n/ml.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Praveenp"
+ ]
+ },
+ "skinname-monobook": "മോണോബുക്ക്",
+ "monobook-desc": "2004 മുതലുള്ള പരമ്പരാഗത ദൃശ്യരൂപം, താളിന്റെ പശ്ചാത്തലത്തിലുള്ള കറുപ്പിലും വെളുപ്പിലുമുള്ള പുസ്തകത്തിൽ നിന്നാണ് പേരുണ്ടായത്",
+ "monobook.css": "/* ഇവിടെ നൽകുന്ന സി.എസ്.എസ്. മോണോബുക്ക് ദൃശ്യരൂപം ഉപയോഗിക്കുന്നവർക്ക് ബാധകമായിരിക്കും */",
+ "monobook.js": "/* ഇവിടെ നൽകുന്ന ജാവാസ്ക്രിപ്റ്റ് മോണോബുക്ക് ദൃശ്യരൂപം ഉപയോഗിക്കുന്നവർക്ക് ബാധകമായിരിക്കും */"
+}
diff --git a/skins/MonoBook/i18n/mr.json b/skins/MonoBook/i18n/mr.json
new file mode 100644
index 00000000..5d80231d
--- /dev/null
+++ b/skins/MonoBook/i18n/mr.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "मोनोबुक"
+}
diff --git a/skins/MonoBook/i18n/ms.json b/skins/MonoBook/i18n/ms.json
new file mode 100644
index 00000000..bb8900ce
--- /dev/null
+++ b/skins/MonoBook/i18n/ms.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Pizza1016",
+ "Aviator"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "Rupa MediaWiki yang klasik sejak tahun 2004, dinamakan bersempena gambar buku hitam putih pada latar belakang laman.",
+ "monobook.css": "/* CSS yang terletak di sini akan mempengaruhi pengguna kulit Monobook */",
+ "monobook.js": "/* Sebarang kod JavaScript di sini akan dimuat bagi sesiapa yang memakai rupa MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/mt.json b/skins/MonoBook/i18n/mt.json
new file mode 100644
index 00000000..3d4a9b05
--- /dev/null
+++ b/skins/MonoBook/i18n/mt.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Giangian15"
+ ]
+ },
+ "skinname-monobook": "Monobook",
+ "monobook.css": "/* CSS li tpoġġa hawnhekk se jaffetwa dawk l-utenti li jagħmlu użu mill-iskin ''Monobook'' */",
+ "monobook.js": "/* Kull ''JavaScript'' hawnhekk jiġi mniżżel għal dawk l-utenti li qegħdin jagħmlu użu mill-iskin ''Monobook'' */"
+}
diff --git a/skins/MonoBook/i18n/mwl.json b/skins/MonoBook/i18n/mwl.json
new file mode 100644
index 00000000..dd5baad7
--- /dev/null
+++ b/skins/MonoBook/i18n/mwl.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "Lhibro"
+}
diff --git a/skins/MonoBook/i18n/nb.json b/skins/MonoBook/i18n/nb.json
new file mode 100644
index 00000000..312f9c68
--- /dev/null
+++ b/skins/MonoBook/i18n/nb.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "Monobook",
+ "monobook-desc": "Den klassiske MediaWiki-drakten fra 2004, oppkalt etter svarthvittbildet av en bok som brukes som bakgrunnsbilde",
+ "monobook.css": "/* CSS i denne fila vil gjelde alle som bruker drakta Monobook */",
+ "monobook.js": "/* Javascript i denne fila vil gjelde for brukere av drakta Monobook */"
+}
diff --git a/skins/MonoBook/i18n/nds-nl.json b/skins/MonoBook/i18n/nds-nl.json
new file mode 100644
index 00000000..38e52ecb
--- /dev/null
+++ b/skins/MonoBook/i18n/nds-nl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Servien"
+ ]
+ },
+ "skinname-monobook": "Monobook"
+}
diff --git a/skins/MonoBook/i18n/nds.json b/skins/MonoBook/i18n/nds.json
new file mode 100644
index 00000000..20beeb0a
--- /dev/null
+++ b/skins/MonoBook/i18n/nds.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* disse Datei ännern üm de Monobook-Stilvörlaag för de ganze Siet antopassen */"
+}
diff --git a/skins/MonoBook/i18n/ne.json b/skins/MonoBook/i18n/ne.json
new file mode 100644
index 00000000..04516dd8
--- /dev/null
+++ b/skins/MonoBook/i18n/ne.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "सरोज कुमार ढकाल"
+ ]
+ },
+ "skinname-monobook": "मोनोबुक",
+ "monobook.css": "/* यहाँ राखिएको CSS ले मोनोबुक स्किनको प्रयोगकर्ताहरुलाई प्रभावित गर्ने छ */"
+}
diff --git a/skins/MonoBook/i18n/new.json b/skins/MonoBook/i18n/new.json
new file mode 100644
index 00000000..a16debab
--- /dev/null
+++ b/skins/MonoBook/i18n/new.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eukesh"
+ ]
+ },
+ "monobook.css": "/* थन तःगु CSS नं मोनोबुक स्किनया छ्य्‌लामितेत असर याइ */"
+}
diff --git a/skins/MonoBook/i18n/nl.json b/skins/MonoBook/i18n/nl.json
new file mode 100644
index 00000000..b08e117c
--- /dev/null
+++ b/skins/MonoBook/i18n/nl.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Siebrand",
+ "Sjoerddebruin"
+ ]
+ },
+ "skinname-monobook": "Monobook",
+ "monobook-desc": "De klassieke MediaWiki-vormgeving sinds 2004, genoemd naar de zwart-witfoto van een boek op de achtergrond van de pagina",
+ "monobook.css": "/* CSS die hier wordt geplaatst heeft alleen invloed op de skin Monobook */",
+ "monobook.js": "/* JavaScript die hier wordt geplaatst heeft alleen invloed op gebruikers die de skin Monobook gebruiken */"
+}
diff --git a/skins/MonoBook/i18n/nn.json b/skins/MonoBook/i18n/nn.json
new file mode 100644
index 00000000..2655c705
--- /dev/null
+++ b/skins/MonoBook/i18n/nn.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eirik",
+ "Frokor",
+ "Njardarlogar"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* CSS-tekst som vert plassert her, endrar utsjånaden til sidedrakta Monobook */",
+ "monobook.js": "/* Javascript i denne fila vil gjelde for brukarar av drakta Monobook */"
+}
diff --git a/skins/MonoBook/i18n/nv.json b/skins/MonoBook/i18n/nv.json
new file mode 100644
index 00000000..48a4ea12
--- /dev/null
+++ b/skins/MonoBook/i18n/nv.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "NaaltsoosŁáa'ígíí"
+}
diff --git a/skins/MonoBook/i18n/oc.json b/skins/MonoBook/i18n/oc.json
new file mode 100644
index 00000000..7c1e1f84
--- /dev/null
+++ b/skins/MonoBook/i18n/oc.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31"
+ ]
+ },
+ "skinname-monobook": "Monobook",
+ "monobook.css": "/* Lo CSS plaçat aicí afectarà los utilizaires del skin Monobook */",
+ "monobook.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge MonoBook unicament. */"
+}
diff --git a/skins/MonoBook/i18n/os.json b/skins/MonoBook/i18n/os.json
new file mode 100644
index 00000000..55bc17b3
--- /dev/null
+++ b/skins/MonoBook/i18n/os.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "Моно-чиныг"
+}
diff --git a/skins/MonoBook/i18n/pa.json b/skins/MonoBook/i18n/pa.json
new file mode 100644
index 00000000..ad04b11c
--- /dev/null
+++ b/skins/MonoBook/i18n/pa.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "ਮੋਨੋਬੁੱਕ"
+}
diff --git a/skins/MonoBook/i18n/pam.json b/skins/MonoBook/i18n/pam.json
new file mode 100644
index 00000000..e6923ae7
--- /dev/null
+++ b/skins/MonoBook/i18n/pam.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* CSS a mikabit keni miapectuan la reng gagamit king Monobook a pabalat */"
+}
diff --git a/skins/MonoBook/i18n/pdt.json b/skins/MonoBook/i18n/pdt.json
new file mode 100644
index 00000000..428d91ca
--- /dev/null
+++ b/skins/MonoBook/i18n/pdt.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wikipeeta"
+ ]
+ },
+ "monobook.css": "/* CSS opp dise Sted wirtjt opp daut Monobook-Skin */",
+ "monobook.js": "/* Daut neachste JavaScript woat fe Brucka mett Monobook-Skin jelode */"
+}
diff --git a/skins/MonoBook/i18n/pl.json b/skins/MonoBook/i18n/pl.json
new file mode 100644
index 00000000..4c7031a2
--- /dev/null
+++ b/skins/MonoBook/i18n/pl.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sp5uhe",
+ "Matma Rex"
+ ]
+ },
+ "skinname-monobook": "Książka",
+ "monobook-desc": "Klasyczna skórka MediaWiki, stworzona w 2004 roku, nazwana od czarno-białego zdjęcia książki w tle strony",
+ "monobook.css": "/* Umieszczony tutaj kod CSS wpłynie na wygląd skórki Książka */",
+ "monobook.js": "/* Umieszczony tutaj kod JavaScript zostanie załadowany wyłącznie przez użytkowników korzystających ze skórki Książka */"
+}
diff --git a/skins/MonoBook/i18n/pms.json b/skins/MonoBook/i18n/pms.json
new file mode 100644
index 00000000..8fe767c1
--- /dev/null
+++ b/skins/MonoBook/i18n/pms.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* cangé st'archivi-sì për modifiché la formatassion dël sit antregh */",
+ "monobook.js": "/* Ës messagi-sì as dovrìa pa pì dovrelo; a sò pòst ch'a dòvra [[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/ps.json b/skins/MonoBook/i18n/ps.json
new file mode 100644
index 00000000..afdd3912
--- /dev/null
+++ b/skins/MonoBook/i18n/ps.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "مونوبوک"
+}
diff --git a/skins/MonoBook/i18n/pt-br.json b/skins/MonoBook/i18n/pt-br.json
new file mode 100644
index 00000000..afd441c8
--- /dev/null
+++ b/skins/MonoBook/i18n/pt-br.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fabsouza1"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "A skin clássica do MediaWiki desde 2004, assim chamada depois de uma foto preto-e-branco de um livro colocada plano de fundo da página",
+ "monobook.css": "/* o código CSS colocado aqui terá efeito nos usuários do tema Monobook */",
+ "monobook.js": "/* Qualquer JavaScript aqui colocado afetará os usuários do skin MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/pt.json b/skins/MonoBook/i18n/pt.json
new file mode 100644
index 00000000..df348862
--- /dev/null
+++ b/skins/MonoBook/i18n/pt.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hamilton Abreu",
+ "Fúlvio",
+ "Vitorvicentevalente"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "O tema clássico do MediaWiki desde 2004, tendo este nome sido atribuído devido a uma imagem a preto-e-branco de um livro no plano de fundo da página",
+ "monobook.css": "/* Código CSS colocado aqui afectará os utilizadores do tema Monobook */",
+ "monobook.js": "/* Código Javascript colocado aqui será carregado para utilizadores do tema Monobook */"
+}
diff --git a/skins/MonoBook/i18n/qqq.json b/skins/MonoBook/i18n/qqq.json
new file mode 100644
index 00000000..5056ddbd
--- /dev/null
+++ b/skins/MonoBook/i18n/qqq.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meno25",
+ "Umherirrender",
+ "Matma Rex"
+ ]
+ },
+ "skinname-monobook": "{{optional}}",
+ "monobook-desc": "{{desc|what=skin|name=MonoBook|url=https://www.mediawiki.org/wiki/Skin:MonoBook}}",
+ "monobook.css": "{{optional}}\nCSS applied to users using MonoBook skin.",
+ "monobook.js": "{{optional}}\nJS for users using MonoBook skin."
+}
diff --git a/skins/MonoBook/i18n/qu.json b/skins/MonoBook/i18n/qu.json
new file mode 100644
index 00000000..2fdb43c4
--- /dev/null
+++ b/skins/MonoBook/i18n/qu.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna"
+ ]
+ },
+ "monobook.css": "/* Kayman churasqa CSS nisqaqa Monobook qaratam hukchanqa tukuy internet tiyanapaq */",
+ "monobook.js": "/* Ima kaypi qillqamusqa JavaScript nisqa wakichi qillqapas MonoBook nisqata llamk'achiq ruraqkunapaq chaqnasqa kanqa */"
+}
diff --git a/skins/MonoBook/i18n/rm.json b/skins/MonoBook/i18n/rm.json
new file mode 100644
index 00000000..7eb17f7e
--- /dev/null
+++ b/skins/MonoBook/i18n/rm.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gion-andri"
+ ]
+ },
+ "monobook.css": "/* editescha quest file per adattar il skin momobook per l'entira pagina */",
+ "monobook.js": ""
+}
diff --git a/skins/MonoBook/i18n/ro.json b/skins/MonoBook/i18n/ro.json
new file mode 100644
index 00000000..22323723
--- /dev/null
+++ b/skins/MonoBook/i18n/ro.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Firilacroco"
+ ]
+ },
+ "skinname-monobook": "Monobook",
+ "monobook.css": "/* modificați acest fișier pentru a adapta înfățișarea monobook-ului pentru tot situl*/"
+}
diff --git a/skins/MonoBook/i18n/roa-tara.json b/skins/MonoBook/i18n/roa-tara.json
new file mode 100644
index 00000000..d7b52b07
--- /dev/null
+++ b/skins/MonoBook/i18n/roa-tara.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* 'U CSS ca se iacchie aqquà 'u 'ndrucane le utinde d'a masckere Monobook */",
+ "monobook.js": "/* Ogne JavaScript aqquà avène carecate pe le utinde ca ausane 'a masckere MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/ru.json b/skins/MonoBook/i18n/ru.json
new file mode 100644
index 00000000..9b62f1b8
--- /dev/null
+++ b/skins/MonoBook/i18n/ru.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlexSm",
+ "Kaganer",
+ "Okras"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "Классическая тема оформления MediaWiki, созданная в 2004 году и названая в честь чёрно-белой фотографии книги с фонового изображения страницы",
+ "monobook.css": "/* Размещённый здесь CSS будет применяться к теме оформления Monobook */",
+ "monobook.js": "/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/sa.json b/skins/MonoBook/i18n/sa.json
new file mode 100644
index 00000000..8f2e32e7
--- /dev/null
+++ b/skins/MonoBook/i18n/sa.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "पुस्तक"
+}
diff --git a/skins/MonoBook/i18n/sah.json b/skins/MonoBook/i18n/sah.json
new file mode 100644
index 00000000..5f3cbfc9
--- /dev/null
+++ b/skins/MonoBook/i18n/sah.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "HalanTul"
+ ]
+ },
+ "monobook.css": "/* Манна оҥоһуллубут CSS Monobook диэн скиҥҥа туһаныллыа */",
+ "monobook.js": "/* Эргэрбит; маны туһан:[[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/scn.json b/skins/MonoBook/i18n/scn.json
new file mode 100644
index 00000000..cba6acf2
--- /dev/null
+++ b/skins/MonoBook/i18n/scn.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Santu",
+ "Sarvaturi",
+ "Tonyfroio"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Li stili CSS nziriti ccà s'àpplicanu a l'utenti chi usanu la skin Monobook */",
+ "monobook.js": "/* Lu còdici JavaScript nzirutu ccà veni carricatu di l'utenti c'ùsanu la skin MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/si.json b/skins/MonoBook/i18n/si.json
new file mode 100644
index 00000000..89a60282
--- /dev/null
+++ b/skins/MonoBook/i18n/si.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "නන්දිමිතුරු"
+ ]
+ },
+ "monobook.css": "/* මෙහි CSS බහාලීම ඒකායන ඡවිය භාවිතා කරන පරිශීලකයන් හට බලපෑම් සිදු කල හැක */",
+ "monobook.js": "/* මෙහි ඕනෑම ජාවාස්ක්‍රිප්ට් එකක් ඒකායන ඡවිය භාවිතා කරන පරිශීලකයන්හට ප්‍රවේශනය කෙරේ */"
+}
diff --git a/skins/MonoBook/i18n/sk.json b/skins/MonoBook/i18n/sk.json
new file mode 100644
index 00000000..8865e10a
--- /dev/null
+++ b/skins/MonoBook/i18n/sk.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Helix84",
+ "Rudko"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov štýlu Monobook */",
+ "monobook.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom vzhľadu Monobook */"
+}
diff --git a/skins/MonoBook/i18n/sq.json b/skins/MonoBook/i18n/sq.json
new file mode 100644
index 00000000..2a744552
--- /dev/null
+++ b/skins/MonoBook/i18n/sq.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dori"
+ ]
+ },
+ "monobook.css": "/* redaktoni këtë faqe për të përshtatur pamjen Monobook për tëra faqet tuaja */"
+}
diff --git a/skins/MonoBook/i18n/sr-ec.json b/skins/MonoBook/i18n/sr-ec.json
new file mode 100644
index 00000000..0304c037
--- /dev/null
+++ b/skins/MonoBook/i18n/sr-ec.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rancher"
+ ]
+ },
+ "skinname-monobook": "Монобук",
+ "monobook.css": "/* CSS постављен овде ће утицати на све кориснике теме „Монобук“ */",
+ "monobook.js": "/* Јаваскрипт постављен овде ће се учитати за све оне који користе тему „Монобук“ */"
+}
diff --git a/skins/MonoBook/i18n/sr-el.json b/skins/MonoBook/i18n/sr-el.json
new file mode 100644
index 00000000..35398b55
--- /dev/null
+++ b/skins/MonoBook/i18n/sr-el.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rancher"
+ ]
+ },
+ "skinname-monobook": "Monobuk",
+ "monobook.css": "/* CSS postavljen ovde će uticati na sve korisnike teme „Monobuk“ */",
+ "monobook.js": "/* Javaskript postavljen ovde će se učitati za sve one koji koriste temu „Monobuk“ */"
+}
diff --git a/skins/MonoBook/i18n/stq.json b/skins/MonoBook/i18n/stq.json
new file mode 100644
index 00000000..d21f86d8
--- /dev/null
+++ b/skins/MonoBook/i18n/stq.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Maartenvdbent"
+ ]
+ },
+ "monobook.css": "/* Littikschrieuwen nit twinge */",
+ "monobook.js": "/* Ferallerd; benutsje insteede deerfon [[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/su.json b/skins/MonoBook/i18n/su.json
new file mode 100644
index 00000000..a932c944
--- /dev/null
+++ b/skins/MonoBook/i18n/su.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kandar"
+ ]
+ },
+ "monobook-desc": "Kulit MediaWiki klasik ti 2004, ngaranna dicokot tina poto hideung-bodas hiji buku dina kasang tukang kacana",
+ "monobook.css": "/* édit koropak ieu pikeun nyaluyukeun kulit ''monobook'' pikeun sakabéh situs */"
+}
diff --git a/skins/MonoBook/i18n/sv.json b/skins/MonoBook/i18n/sv.json
new file mode 100644
index 00000000..20102810
--- /dev/null
+++ b/skins/MonoBook/i18n/sv.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lejonel",
+ "Lokal Profil",
+ "Skalman"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "Det klassiska MediaWiki-utseendet sedan 2004, uppkallad efter det svart-vita foto på en bok som syns i bakgrunden på sidan.",
+ "monobook.css": "/* CSS som skrivs här kommer att påverka alla användare av utseendet MonoBook */",
+ "monobook.js": "/* JavaScript här kommer att laddas för dem som använder utseendet MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/te.json b/skins/MonoBook/i18n/te.json
new file mode 100644
index 00000000..71b3dbe0
--- /dev/null
+++ b/skins/MonoBook/i18n/te.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Veeven"
+ ]
+ },
+ "skinname-monobook": "మోనోబుక్"
+}
diff --git a/skins/MonoBook/i18n/th.json b/skins/MonoBook/i18n/th.json
new file mode 100644
index 00000000..38be3f92
--- /dev/null
+++ b/skins/MonoBook/i18n/th.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Manop",
+ "Octahedron80"
+ ]
+ },
+ "skinname-monobook": "โมโนบุ๊ก",
+ "monobook.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินโมโนบุ๊ก */",
+ "monobook.js": "/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินโมโนบุ๊ก */"
+}
diff --git a/skins/MonoBook/i18n/tl.json b/skins/MonoBook/i18n/tl.json
new file mode 100644
index 00000000..5d105274
--- /dev/null
+++ b/skins/MonoBook/i18n/tl.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "AnakngAraw",
+ "Sky Harbor"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* Ang CSS na inilagay dito ay makakaapekto sa mga tagagamit ng pabalat na Monobook */",
+ "monobook.js": "/* Ang anumang JavaScript dito ay ikakarga para sa mga tagagamit na gumagamit ng pabalat na MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/tr.json b/skins/MonoBook/i18n/tr.json
new file mode 100644
index 00000000..bdb96c81
--- /dev/null
+++ b/skins/MonoBook/i18n/tr.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dbl2010"
+ ]
+ },
+ "monobook.css": "/* Buraya konulacak CSS kodu tüm Monobook teması kullanan tüm kullanıcılarda etkin olur */"
+}
diff --git a/skins/MonoBook/i18n/tt-cyrl.json b/skins/MonoBook/i18n/tt-cyrl.json
new file mode 100644
index 00000000..8f84daff
--- /dev/null
+++ b/skins/MonoBook/i18n/tt-cyrl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ильнар"
+ ]
+ },
+ "skinname-monobook": "Китап"
+}
diff --git a/skins/MonoBook/i18n/tt-latn.json b/skins/MonoBook/i18n/tt-latn.json
new file mode 100644
index 00000000..53dfaa03
--- /dev/null
+++ b/skins/MonoBook/i18n/tt-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "skinname-monobook": "Kitap"
+}
diff --git a/skins/MonoBook/i18n/tyv.json b/skins/MonoBook/i18n/tyv.json
new file mode 100644
index 00000000..26936cfc
--- /dev/null
+++ b/skins/MonoBook/i18n/tyv.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sborsody"
+ ]
+ },
+ "skinname-monobook": "МоноБук"
+}
diff --git a/skins/MonoBook/i18n/ug-arab.json b/skins/MonoBook/i18n/ug-arab.json
new file mode 100644
index 00000000..73e07761
--- /dev/null
+++ b/skins/MonoBook/i18n/ug-arab.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arlin"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* CSS placed here will affect users of the Monobook skin */",
+ "monobook.js": "/* Any JavaScript here will be loaded for users using the MonoBook skin */"
+}
diff --git a/skins/MonoBook/i18n/uk.json b/skins/MonoBook/i18n/uk.json
new file mode 100644
index 00000000..289f50e8
--- /dev/null
+++ b/skins/MonoBook/i18n/uk.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dim Grits",
+ "Matma Rex",
+ "Ата"
+ ]
+ },
+ "skinname-monobook": "Моно-книга",
+ "monobook-desc": "Класична тема оформлення MediaWiki з 2004 року, названа за чорно-білим фото книги на фоні сторінки",
+ "monobook.css": "/* Розміщений тут CSS буде застосовуватися до всіх тем оформлення Monobook */",
+ "monobook.js": "/* Розміщений тут код JavaScript буде завантажений для всіх користувачів, що використовують тему оформлення Моно-книга */"
+}
diff --git a/skins/MonoBook/i18n/vep.json b/skins/MonoBook/i18n/vep.json
new file mode 100644
index 00000000..2213e16e
--- /dev/null
+++ b/skins/MonoBook/i18n/vep.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Игорь Бродский"
+ ]
+ },
+ "skinname-monobook": "MonoBook"
+}
diff --git a/skins/MonoBook/i18n/vi.json b/skins/MonoBook/i18n/vi.json
new file mode 100644
index 00000000..67566f6c
--- /dev/null
+++ b/skins/MonoBook/i18n/vi.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minh Nguyen"
+ ]
+ },
+ "monobook-desc": "Giao diện MediaWiki cổ điển năm 2004, được đặt tên theo bức hình nền cuốn sách đen trắng",
+ "monobook.css": "/* Mã CSS đặt ở đây sẽ ảnh hưởng đến thành viên sử dụng giao diện MonoBook */",
+ "monobook.js": "/* Mã JavaScript tại đây sẽ được tải khi người dùng sử dụng giao diện MonoBook */"
+}
diff --git a/skins/MonoBook/i18n/vmf.json b/skins/MonoBook/i18n/vmf.json
new file mode 100644
index 00000000..9b3453b0
--- /dev/null
+++ b/skins/MonoBook/i18n/vmf.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Silvicola"
+ ]
+ },
+ "monobook.css": "/* CSS hiir beâjflusd nôr dii Monobook-schelfn. Wen'd ale uf ôômôôl beâjflusn wilsch, muâsch an MediaWiki:Common.css was ändârn. */"
+}
diff --git a/skins/MonoBook/i18n/vo.json b/skins/MonoBook/i18n/vo.json
new file mode 100644
index 00000000..fbae30d4
--- /dev/null
+++ b/skins/MonoBook/i18n/vo.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "monobook.css": "/* El CSS isio pepladöl otefon gebanis padafomäta: Monobook */"
+}
diff --git a/skins/MonoBook/i18n/vro.json b/skins/MonoBook/i18n/vro.json
new file mode 100644
index 00000000..9bc10396
--- /dev/null
+++ b/skins/MonoBook/i18n/vro.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Võrok"
+ ]
+ },
+ "monobook.css": "/* Taa lehe pääl om Monobook-vällänägemist muutvit kujonduisi. */",
+ "monobook.js": "/* Olõi soovitõt; pruugiq [[MediaWiki:common.js]] */"
+}
diff --git a/skins/MonoBook/i18n/wa.json b/skins/MonoBook/i18n/wa.json
new file mode 100644
index 00000000..8ffba09f
--- /dev/null
+++ b/skins/MonoBook/i18n/wa.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Srtxg"
+ ]
+ },
+ "monobook.css": "/* li côde CSS metou chal serè eployî pa tos les uzeus eployant l' pea «monobook» */"
+}
diff --git a/skins/MonoBook/i18n/wo.json b/skins/MonoBook/i18n/wo.json
new file mode 100644
index 00000000..a01b87e9
--- /dev/null
+++ b/skins/MonoBook/i18n/wo.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibou"
+ ]
+ },
+ "monobook.css": "/* CSS yiñ def fii dañuy am ay njeexit ci jëfandikukatu col gu Monobook. */",
+ "monobook.js": "/*Bépp JavaScript buñ fi duggal jëfandikukat yiy jëfandikoo col gu Monobook keppa koy yeb. */"
+}
diff --git a/skins/MonoBook/i18n/yi.json b/skins/MonoBook/i18n/yi.json
new file mode 100644
index 00000000..5a7d3e11
--- /dev/null
+++ b/skins/MonoBook/i18n/yi.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "פוילישער"
+ ]
+ },
+ "skinname-monobook": "מאנאבוק",
+ "monobook.css": "/* סטייל דא געלייגט וועט באאיינפלוסן דעם Monobook סקין */"
+}
diff --git a/skins/MonoBook/i18n/yue.json b/skins/MonoBook/i18n/yue.json
new file mode 100644
index 00000000..0689c6ec
--- /dev/null
+++ b/skins/MonoBook/i18n/yue.json
@@ -0,0 +1,6 @@
+{
+ "@metadata": [],
+ "skinname-monobook": "MonoBook",
+ "monobook.css": "/* 響呢度放 CSS 碼去改用戶用嘅 Monobook 畫面 */",
+ "monobook.js": "/* 響每一次個頁面載入時,用 Monobook 畫面嘅用戶都會載入呢度任何嘅JavaScript */"
+}
diff --git a/skins/MonoBook/i18n/zh-hans.json b/skins/MonoBook/i18n/zh-hans.json
new file mode 100644
index 00000000..83964019
--- /dev/null
+++ b/skins/MonoBook/i18n/zh-hans.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Xiaomingyan",
+ "Cwek",
+ "Liuxinyu970226"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "自2004年就出现的经典MediaWiki皮肤,命名依据一本书中某页面的黑白照片背景",
+ "monobook.css": "/* 放置于这里的CSS将影响使用MonoBook皮肤的用户 */",
+ "monobook.js": "/* 这里的任何JavaScript将为使用MonoBook皮肤的用户加载 */"
+}
diff --git a/skins/MonoBook/i18n/zh-hant.json b/skins/MonoBook/i18n/zh-hant.json
new file mode 100644
index 00000000..047f9544
--- /dev/null
+++ b/skins/MonoBook/i18n/zh-hant.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cwlin0416"
+ ]
+ },
+ "skinname-monobook": "MonoBook",
+ "monobook-desc": "MediaWiki 自 2004 年以來的經典外觀,根據頁面背景的書本黑白照命名",
+ "monobook.css": "/* 此 CSS 會影響使用 Monobook 介面外觀的使用者 */",
+ "monobook.js": "/* 此 JavaScript 會用於使用 Monobook 介面外觀的使用者 */"
+}
diff --git a/skins/modern/link_icon.gif b/skins/MonoBook/link_icon.gif
index 168c1a2f..168c1a2f 100644
--- a/skins/modern/link_icon.gif
+++ b/skins/MonoBook/link_icon.gif
Binary files differ
diff --git a/skins/monobook/magnify-clip.png b/skins/MonoBook/magnify-clip.png
index ffd7637f..ffd7637f 100644
--- a/skins/monobook/magnify-clip.png
+++ b/skins/MonoBook/magnify-clip.png
Binary files differ
diff --git a/skins/archlinux/main.css b/skins/MonoBook/main.css
index d8f25ebb..e0e0dc77 100644
--- a/skins/archlinux/main.css
+++ b/skins/MonoBook/main.css
@@ -15,27 +15,29 @@ div#column-content {
margin: 0 0 .6em -12.2em;
padding: 0;
}
-div#content {
+
+.mw-body {
margin: 2.8em 0 0 12.2em;
padding: 1em;
position: relative;
z-index: 2;
+ background: white;
+ color: black;
+ border: 1px solid #aaa;
+ border-right: none;
+ line-height: 1.5em;
}
+
div#column-one {
padding-top: 160px;
}
+
/* Hide, but keep accessible for screen-readers */
#column-one h2 {
position: absolute;
top: -9999px;
}
-div#content {
- background: white;
- color: black;
- border: 1px solid #aaa;
- border-right: none;
- line-height: 1.5em;
-}
+
/* the left column width is specified in class .portlet */
/* Font size:
@@ -67,9 +69,11 @@ div#globalWrapper {
a {
color: #002bb8;
}
+
a:visited {
color: #5a3696;
}
+
a.new,
#p-personal a.new {
color: #cc2200;
@@ -81,14 +85,6 @@ ul {
list-style-image: url(bullet.gif);
}
-input.historysubmit {
- padding: 0 .3em .3em .3em !important;
- font-size: 94%;
- cursor: pointer;
- height: 1.7em !important;
- margin-left: 1.6em;
-}
-
pre, .mw-code {
line-height: 1.1em;
}
@@ -96,6 +92,7 @@ pre, .mw-code {
#firstHeading {
padding-top: 0;
}
+
/*
** the main content area
*/
@@ -104,9 +101,11 @@ pre, .mw-code {
font-size: 95%;
padding: 0 0.9em;
}
+
#localNotice {
margin: 0;
}
+
#siteNotice p {
margin: 0;
padding: 0;
@@ -139,85 +138,6 @@ table.rimage {
}
/*
-** keep the whitespace in front of the ^=, hides rule from konqueror
-** this is css3, the validator doesn't like it when validating as css2
-*/
-#bodyContent a.external {
- /* @embed */
- background: url(external-ltr.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href ^="https://"],
-.link-https {
- /* @embed */
- background: url(lock_icon.gif) center right no-repeat;
- padding-right: 16px;
-}
-#bodyContent a.external[href ^="mailto:"],
-.link-mailto {
- /* @embed */
- background: url(mail_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="news:"] {
- /* @embed */
- background: url(news_icon.png) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="ftp://"],
-.link-ftp {
- /* @embed */
- background: url(file_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="irc://"],
-#bodyContent a.external[href ^="ircs://"],
-.link-irc {
- /* @embed */
- background: url(discussionitem_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"],
-#bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"],
-#bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"],
-#bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"],
-#bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"],
-#bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"],
-.link-audio {
- /* @embed */
- background: url(audio.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"],
-#bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"],
-#bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"],
-#bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"],
-.link-video {
- /* @embed */
- background: url(video.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"],
-#bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"],
-#bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"],
-.link-document {
- /* @embed */
- background: url(document.png) center right no-repeat;
- padding-right: 12px;
-}
-
-/* Interwiki Styling */
-#bodyContent a.extiw,
-#bodyContent a.extiw:active {
- color: #36b;
-}
-
-/* External links */
-#bodyContent a.external {
- color: #36b;
-}
-
-/*
** Structural Elements
*/
@@ -232,6 +152,7 @@ table.rimage {
width: 11.6em;
overflow: hidden;
}
+
.portlet h3 {
background: transparent;
padding: 0 1em 0 .5em;
@@ -242,6 +163,7 @@ table.rimage {
font-weight: normal;
white-space: nowrap;
}
+
.pBody {
font-size: 95%;
background-color: white;
@@ -250,10 +172,19 @@ table.rimage {
border: 1px solid #aaa;
padding: 0 .8em .3em .5em;
}
+
+/* allows .pBody styles to wrap around content added via BaseTemplateAfterPortlet hook */
+.pBody:after {
+ content: '';
+ clear: both;
+ display: block;
+}
+
.portlet ul {
line-height: 1.5em;
font-size: 95%;
}
+
.portlet li {
padding: 0;
margin: 0;
@@ -272,9 +203,11 @@ table.rimage {
width: 12em;
overflow: visible;
}
+
#p-logo h3 {
display: none;
}
+
#p-logo a,
#p-logo a:hover {
display: block;
@@ -292,28 +225,34 @@ table.rimage {
position: relative;
z-index: 3;
}
+
input.searchButton {
margin-top: 1px;
font-size: 95%;
}
+
#searchGoButton {
padding-left: .5em;
padding-right: .5em;
font-weight: bold;
}
+
#searchInput {
width: 10.9em;
margin: 0;
font-size: 95%;
}
+
#p-search .pBody {
padding: .5em .4em .4em .4em;
text-align: center;
}
+
#p-search #searchform div div {
margin-top: .4em;
font-size: 95%;
}
+
/*
** the personal toolbar
*/
@@ -323,6 +262,7 @@ input.searchButton {
top: 0;
z-index: 3;
}
+
#p-personal {
width: 100%;
white-space: nowrap;
@@ -333,9 +273,11 @@ input.searchButton {
overflow: visible;
line-height: 1.2em;
}
+
#p-personal h3 {
display: none;
}
+
#p-personal .portlet,
#p-personal .pBody {
z-index: 0;
@@ -345,6 +287,7 @@ input.searchButton {
overflow: visible;
background: none;
}
+
/* this is the ul contained in the portlet */
#p-personal ul {
border: none;
@@ -359,6 +302,7 @@ input.searchButton {
background: none;
cursor: default;
}
+
#p-personal li {
z-index: 0;
border: none;
@@ -369,20 +313,24 @@ input.searchButton {
line-height: 1.2em;
background: none;
}
+
#p-personal li a {
text-decoration: none;
color: #005896;
padding-bottom: .2em;
background: none;
}
+
#p-personal li a:hover {
background-color: white;
padding-bottom: .2em;
text-decoration: none;
}
+
#p-personal li.active a:hover {
background-color: transparent;
}
+
/* The icon in front of the username / login link */
li#pt-userpage,
li#pt-anonuserpage,
@@ -391,17 +339,21 @@ li#pt-login {
background: url(user.gif) top left no-repeat;
padding-left: 20px;
}
+
#p-personal ul {
text-transform: lowercase;
}
+
/* Don't lowercase username or IP addresses (IPv6) */
li#pt-userpage,
li#pt-anonuserpage {
text-transform: none;
}
+
#p-personal li.active {
font-weight: bold;
}
+
/*
** the page-related actions- page/talk, edit etc
*/
@@ -419,10 +371,12 @@ li#pt-anonuserpage {
padding-left: 1em;
font-size: 95%;
}
+
#p-cactions ul {
list-style-type: none;
list-style-image: none;
}
+
#p-cactions li {
display: inline;
border: 1px solid #aaa;
@@ -432,10 +386,12 @@ li#pt-anonuserpage {
overflow: visible;
background: white;
}
+
#p-cactions li.selected {
border-color: #fabd23;
font-weight: bold;
}
+
#p-cactions li a {
background-color: #fbfbfb;
color: #002bb8;
@@ -446,41 +402,51 @@ li#pt-anonuserpage {
margin: 0;
text-decoration: none;
}
+
#p-cactions li.selected a {
z-index: 3;
background-color: white;
}
+
#p-cactions .new a {
color: #ba0000;
}
+
#p-cactions li a:hover {
z-index: 3;
text-decoration: none;
background-color: white;
}
+
#p-cactions h3 {
display: none;
}
+
#p-cactions li.istalk {
margin-right: 0;
}
+
#p-cactions li.istalk a {
padding-right: .5em;
}
+
#p-cactions #ca-addsection a {
padding-left: .4em;
padding-right: .4em;
}
+
/* offsets to distinguish the tab groups */
li#ca-talk {
margin-right: 1.6em;
}
+
li#ca-watch,
li#ca-unwatch,
li#ca-varlang-0,
li#ca-print {
margin-left: 1.6em;
}
+
#p-cactions .pBody {
font-size: 1em;
background-color: transparent;
@@ -489,6 +455,7 @@ li#ca-print {
border: 0;
padding: 0;
}
+
#p-cactions li a {
text-transform: lowercase;
}
@@ -511,6 +478,7 @@ li#ca-print {
#t-ispermalink, #t-iscite {
color: #999;
}
+
/*
** footer
*/
@@ -524,19 +492,23 @@ div#footer {
text-align: center;
font-size: 90%;
}
+
div#footer li {
display: inline;
margin: 0 1.3em;
}
+
#f-poweredbyico, #f-copyrightico {
margin: 0 8px;
position: relative;
top: -2px; /* Bump it up just a tad */
}
+
#f-poweredbyico {
float: right;
height: 1%;
}
+
#f-copyrightico {
float: left;
height: 1%;
@@ -556,10 +528,12 @@ div#footer li {
width: 100%;
clear: both;
}
+
#preftoc li {
background-color: #f0f0f0;
color: #000;
}
+
#preftoc li {
margin: 1px -2px 1px 2px;
float: left;
@@ -573,6 +547,7 @@ div#footer li {
list-style-image: none;
z-index: 3;
}
+
#preftoc li.selected {
font-weight: bold;
background-color: #f9f9f9;
@@ -583,9 +558,11 @@ div#footer li {
padding-top: 2px;
margin-right: -3px;
}
+
#preftoc > li.selected {
top: 2px;
}
+
#preftoc a,
#preftoc a:active {
display: block;
@@ -594,10 +571,12 @@ div#footer li {
position: relative;
text-decoration: none;
}
+
#preftoc li.selected a {
cursor: default;
text-decoration: none;
}
+
#preferences {
margin: 0;
border: 1px solid #aaa;
@@ -605,6 +584,7 @@ div#footer li {
padding: 1.5em;
background-color: #F9F9F9;
}
+
.prefsection {
border: none;
padding: 0;
@@ -614,12 +594,15 @@ div#footer li {
.prefsection legend {
font-weight: bold;
}
+
.prefsection table, .prefsection legend {
background-color: #F9F9F9;
}
+
.mainLegend {
display: none;
}
+
td.htmlform-tip {
font-size: x-small;
padding: .2em 2em;
@@ -636,37 +619,6 @@ td.htmlform-tip {
margin-top: 2em;
}
-div#userloginForm,
-div#userlogin {
- margin: 0 3em 1em 0;
- border: 1px solid #aaa;
- clear: both;
- padding: 1.5em 2em;
- background-color: #f9f9f9;
- float: left;
-}
-
-div#userloginForm table,
-div#userlogin table {
- background-color: #f9f9f9;
-}
-
-div#userloginForm h2,
-div#userlogin h2 {
- padding-top: 0;
-}
-
-div#userlogin .captcha,
-div#userloginForm .captcha {
- border: 1px solid #bbb;
- padding: 1.5em 2em;
- background-color: white;
-}
-
-#loginend, #signupend {
- clear: both;
-}
-
#userloginprompt, #languagelinks {
font-size: 85%;
}
@@ -677,67 +629,21 @@ div#userloginForm .captcha {
padding-top: 2em;
}
-#userlogin .loginText, #userlogin .loginPassword {
- width: 12em;
-}
-
#userloginlink a, #wpLoginattempt, #wpCreateaccount {
font-weight: bold;
}
-/*
-** IE/Mac fixes, hope to find a validating way to move this
-** to a separate stylesheet. This would work but doesn't validate:
-** @import("IEMacFixes.css");
-*/
-/* tabs: border on the a, not the div */
-* > html #p-cactions li {
- border: none;
-}
-* > html #p-cactions li a {
- border: 1px solid #aaa;
- border-bottom: none;
-}
-* > html #p-cactions li.selected a {
- border-color: #fabd23;
-}
-/* footer icons need a fixed width */
-* > html #f-poweredbyico,
-* > html #f-copyrightico {
- width: 88px;
-}
-* > html #bodyContent,
-* > html #bodyContent pre {
- overflow-x: auto;
- width: 100%;
- padding-bottom: 25px;
-}
-
-/* more IE fixes */
-/* float/negative margin brokenness */
-* html div#footer {
- margin-top: 0;
-}
-* html div#column-content {
- display: inline;
- margin-bottom: 0;
-}
+/**
+ * This was originally added by Gabriel Wicke in r3681 (committed on 25 May 2004)
+ * with the commit message "tweaks to page history".
+ * Unlike the other IE/Mac fixes that used to be present here, this seems to get
+ * applied on more modern browsers, so let's keep it here until someone has the
+ * time to properly test it out.
+ */
#pagehistory li.selected {
position: relative;
}
-/* Mac IE 5.0 fix; floated content turns invisible */
-* > html div#column-content {
- float: none;
-}
-* > html div#column-one {
- position: absolute;
- left: 0;
- top: 0;
-}
-* > html div#footer {
- margin-left: 13.2em;
-}
.redirectText {
font-size: 150%;
margin: 5px;
@@ -765,6 +671,7 @@ span.updatedmarker {
font-size: small;
text-align: center;
}
+
.editExternallyHelp {
font-style: italic;
color: gray;
@@ -864,10 +771,12 @@ div.mw-lag-warn-high {
text-align: center;
margin: 3px auto;
}
+
div.mw-lag-warn-normal {
border: 1px solid #FFCC66;
background-color: #FFFFCC;
}
+
div.mw-lag-warn-high {
font-weight: bold;
border: 2px solid #FF0033;
@@ -878,17 +787,13 @@ div.mw-lag-warn-high {
background-color: #ccc;
padding: 0.1em;
}
+
.MediaTransformError td {
text-align: center;
vertical-align: middle;
font-size: 90%;
}
-/* God-damned hack for the crappy layout */
-.os-suggest {
- font-size: 127%;
-}
-
/* Sometimes people don't want personal tools to be lowercase! */
.no-text-transform {
text-transform: none;
@@ -901,6 +806,5 @@ div.mw-lag-warn-high {
/* mediawiki.notification */
.skin-monobook .mw-notification {
- -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
}
diff --git a/skins/monobook/required.gif b/skins/MonoBook/required.gif
index bd719769..bd719769 100644
--- a/skins/monobook/required.gif
+++ b/skins/MonoBook/required.gif
Binary files differ
diff --git a/skins/monobook/user.gif b/skins/MonoBook/user.gif
index 34b4839d..34b4839d 100644
--- a/skins/monobook/user.gif
+++ b/skins/MonoBook/user.gif
Binary files differ
diff --git a/skins/monobook/wiki-indexed.png b/skins/MonoBook/wiki-indexed.png
index 799ebac8..799ebac8 100644
--- a/skins/monobook/wiki-indexed.png
+++ b/skins/MonoBook/wiki-indexed.png
Binary files differ
diff --git a/skins/monobook/wiki.png b/skins/MonoBook/wiki.png
index 8c421183..8c421183 100644
--- a/skins/monobook/wiki.png
+++ b/skins/MonoBook/wiki.png
Binary files differ
diff --git a/skins/README b/skins/README
new file mode 100644
index 00000000..4145b354
--- /dev/null
+++ b/skins/README
@@ -0,0 +1,29 @@
+Skins, such as the default skin Vector, are distributed separately. Drop them
+into this directory and enable as per the skin's installation instructions.
+
+You can find a list of available skins at
+<https://www.mediawiki.org/wiki/Category:All_skins>,
+and more information about installing and configuring skins at
+<https://www.mediawiki.org/wiki/Manual:Skin_configuration>.
+
+If you are a developer, you might want to fetch the skin tree in another
+directory and make a symbolic link:
+
+ mediawiki/skins$ ln -s ../../skins-trunk/FooBar
+
+Most skins are available through Git:
+ https://gerrit.wikimedia.org/r/#/admin/projects/?filter=mediawiki%252Fskins%252F
+ https://git.wikimedia.org/project/mediawiki
+
+
+Please note that under POSIX systems (Linux...), parent of a symbolic path
+refers to the link source, NOT to the target! You should check the env
+variable MW_INSTALL_PATH in case the extension is not in the default location.
+
+The following code snippet lets you override the default path:
+
+ $IP = getenv( 'MW_INSTALL_PATH' );
+ if( $IP === false ) {
+ $IP = __DIR__ . '/../..';
+ }
+ require_once "$IP/maintenance/Maintenance.php"; // a MediaWiki core file
diff --git a/skins/Vector.php b/skins/Vector.php
deleted file mode 100644
index 288b5fd6..00000000
--- a/skins/Vector.php
+++ /dev/null
@@ -1,456 +0,0 @@
-<?php
-/**
- * Vector - Modern version of MonoBook with fresh look and many usability
- * improvements.
- *
- * 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
- *
- * @todo document
- * @file
- * @ingroup Skins
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
- die( -1 );
-}
-
-/**
- * SkinTemplate class for Vector skin
- * @ingroup Skins
- */
-class SkinVector extends SkinTemplate {
-
- protected static $bodyClasses = array( 'vector-animateLayout' );
-
- var $skinname = 'vector', $stylename = 'vector',
- $template = 'VectorTemplate', $useHeadElement = true;
-
- /**
- * Initializes output page and sets up skin-specific parameters
- * @param $out OutputPage object to initialize
- */
- public function initPage( OutputPage $out ) {
- global $wgLocalStylePath;
-
- parent::initPage( $out );
-
- // Append CSS which includes IE only behavior fixes for hover support -
- // this is better than including this in a CSS file since it doesn't
- // wait for the CSS file to load before fetching the HTC file.
- $min = $this->getRequest()->getFuzzyBool( 'debug' ) ? '' : '.min';
- $out->addHeadItem( 'csshover',
- '<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
- htmlspecialchars( $wgLocalStylePath ) .
- "/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
- );
-
- $out->addModules( array( 'skins.vector.js', 'skins.vector.collapsibleNav' ) );
- }
-
- /**
- * Loads skin and user CSS files.
- * @param $out OutputPage object
- */
- function setupSkinUserCss( OutputPage $out ) {
- parent::setupSkinUserCss( $out );
-
- $styles = array( 'skins.vector' );
- wfRunHooks( 'SkinVectorStyleModules', array( &$this, &$styles ) );
- $out->addModuleStyles( $styles );
- }
-
- /**
- * Adds classes to the body element.
- *
- * @param $out OutputPage object
- * @param &$bodyAttrs Array of attributes that will be set on the body element
- */
- function addToBodyAttributes( $out, &$bodyAttrs ) {
- if ( isset( $bodyAttrs['class'] ) && strlen( $bodyAttrs['class'] ) > 0 ) {
- $bodyAttrs['class'] .= ' ' . implode( ' ', static::$bodyClasses );
- } else {
- $bodyAttrs['class'] = implode( ' ', static::$bodyClasses );
- }
- }
-}
-
-/**
- * QuickTemplate class for Vector skin
- * @ingroup Skins
- */
-class VectorTemplate extends BaseTemplate {
-
- /* Functions */
-
- /**
- * Outputs the entire contents of the (X)HTML page
- */
- public function execute() {
- global $wgVectorUseIconWatch;
-
- // Build additional attributes for navigation urls
- $nav = $this->data['content_navigation'];
-
- if ( $wgVectorUseIconWatch ) {
- $mode = $this->getSkin()->getUser()->isWatched( $this->getSkin()->getRelevantTitle() ) ? 'unwatch' : 'watch';
- if ( isset( $nav['actions'][$mode] ) ) {
- $nav['views'][$mode] = $nav['actions'][$mode];
- $nav['views'][$mode]['class'] = rtrim( 'icon ' . $nav['views'][$mode]['class'], ' ' );
- $nav['views'][$mode]['primary'] = true;
- unset( $nav['actions'][$mode] );
- }
- }
-
- $xmlID = '';
- foreach ( $nav as $section => $links ) {
- foreach ( $links as $key => $link ) {
- if ( $section == 'views' && !( isset( $link['primary'] ) && $link['primary'] ) ) {
- $link['class'] = rtrim( 'collapsible ' . $link['class'], ' ' );
- }
-
- $xmlID = isset( $link['id'] ) ? $link['id'] : 'ca-' . $xmlID;
- $nav[$section][$key]['attributes'] =
- ' id="' . Sanitizer::escapeId( $xmlID ) . '"';
- if ( $link['class'] ) {
- $nav[$section][$key]['attributes'] .=
- ' class="' . htmlspecialchars( $link['class'] ) . '"';
- unset( $nav[$section][$key]['class'] );
- }
- if ( isset( $link['tooltiponly'] ) && $link['tooltiponly'] ) {
- $nav[$section][$key]['key'] =
- Linker::tooltip( $xmlID );
- } else {
- $nav[$section][$key]['key'] =
- Xml::expandAttributes( Linker::tooltipAndAccesskeyAttribs( $xmlID ) );
- }
- }
- }
- $this->data['namespace_urls'] = $nav['namespaces'];
- $this->data['view_urls'] = $nav['views'];
- $this->data['action_urls'] = $nav['actions'];
- $this->data['variant_urls'] = $nav['variants'];
-
- // Reverse horizontally rendered navigation elements
- if ( $this->data['rtl'] ) {
- $this->data['view_urls'] =
- array_reverse( $this->data['view_urls'] );
- $this->data['namespace_urls'] =
- array_reverse( $this->data['namespace_urls'] );
- $this->data['personal_urls'] =
- array_reverse( $this->data['personal_urls'] );
- }
- // Output HTML Page
- $this->html( 'headelement' );
-?>
- <div id="mw-page-base" class="noprint"></div>
- <div id="mw-head-base" class="noprint"></div>
- <div id="content" class="mw-body" role="main">
- <a id="top"></a>
- <div id="mw-js-message" style="display:none;"<?php $this->html( 'userlangattributes' ) ?>></div>
- <?php if ( $this->data['sitenotice'] ) { ?>
- <div id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div>
- <?php } ?>
- <h1 id="firstHeading" class="firstHeading" lang="<?php
- $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
- $this->text( 'pageLanguage' );
- ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
- <div id="bodyContent">
- <?php if ( $this->data['isarticle'] ) { ?>
- <div id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
- <?php } ?>
- <div id="contentSub"<?php $this->html( 'userlangattributes' ) ?>><?php $this->html( 'subtitle' ) ?></div>
- <?php if ( $this->data['undelete'] ) { ?>
- <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div>
- <?php } ?>
- <?php if ( $this->data['newtalk'] ) { ?>
- <div class="usermessage"><?php $this->html( 'newtalk' ) ?></div>
- <?php } ?>
- <div id="jump-to-nav" class="mw-jump">
- <?php $this->msg( 'jumpto' ) ?>
- <a href="#mw-navigation"><?php $this->msg( 'jumptonavigation' ) ?></a><?php $this->msg( 'comma-separator' ) ?>
- <a href="#p-search"><?php $this->msg( 'jumptosearch' ) ?></a>
- </div>
- <?php $this->html( 'bodycontent' ) ?>
- <?php if ( $this->data['printfooter'] ) { ?>
- <div class="printfooter">
- <?php $this->html( 'printfooter' ); ?>
- </div>
- <?php } ?>
- <?php if ( $this->data['catlinks'] ) { ?>
- <?php $this->html( 'catlinks' ); ?>
- <?php } ?>
- <?php if ( $this->data['dataAfterContent'] ) { ?>
- <?php $this->html( 'dataAfterContent' ); ?>
- <?php } ?>
- <div class="visualClear"></div>
- <?php $this->html( 'debughtml' ); ?>
- </div>
- </div>
- <div id="mw-navigation">
- <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
- <div id="mw-head">
- <?php $this->renderNavigation( 'PERSONAL' ); ?>
- <div id="left-navigation">
- <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?>
- </div>
- <div id="right-navigation">
- <?php $this->renderNavigation( array( 'VIEWS', 'ACTIONS', 'SEARCH' ) ); ?>
- </div>
- </div>
- <div id="mw-panel">
- <div id="p-logo" role="banner"><a style="background-image: url(<?php $this->text( 'logopath' ) ?>);" href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>" <?php echo Xml::expandAttributes( Linker::tooltipAndAccesskeyAttribs( 'p-logo' ) ) ?>></a></div>
- <?php $this->renderPortals( $this->data['sidebar'] ); ?>
- </div>
- </div>
- <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
- <?php foreach ( $this->getFooterLinks() as $category => $links ) { ?>
- <ul id="footer-<?php echo $category ?>">
- <?php foreach ( $links as $link ) { ?>
- <li id="footer-<?php echo $category ?>-<?php echo $link ?>"><?php $this->html( $link ) ?></li>
- <?php } ?>
- </ul>
- <?php } ?>
- <?php $footericons = $this->getFooterIcons( "icononly" );
- if ( count( $footericons ) > 0 ) { ?>
- <ul id="footer-icons" class="noprint">
-<?php foreach ( $footericons as $blockName => $footerIcons ) { ?>
- <li id="footer-<?php echo htmlspecialchars( $blockName ); ?>ico">
-<?php foreach ( $footerIcons as $icon ) { ?>
- <?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
-
-<?php } ?>
- </li>
-<?php } ?>
- </ul>
- <?php } ?>
- <div style="clear:both"></div>
- </div>
- <?php $this->printTrail(); ?>
-
- </body>
-</html>
-<?php
- }
-
- /**
- * Render a series of portals
- *
- * @param $portals array
- */
- protected function renderPortals( $portals ) {
- // Force the rendering of the following portals
- if ( !isset( $portals['SEARCH'] ) ) {
- $portals['SEARCH'] = true;
- }
- if ( !isset( $portals['TOOLBOX'] ) ) {
- $portals['TOOLBOX'] = true;
- }
- if ( !isset( $portals['LANGUAGES'] ) ) {
- $portals['LANGUAGES'] = true;
- }
- // Render portals
- foreach ( $portals as $name => $content ) {
- if ( $content === false ) {
- continue;
- }
-
- switch ( $name ) {
- case 'SEARCH':
- break;
- case 'TOOLBOX':
- $this->renderPortal( 'tb', $this->getToolbox(), 'toolbox', 'SkinTemplateToolboxEnd' );
- break;
- case 'LANGUAGES':
- if ( $this->data['language_urls'] ) {
- $this->renderPortal( 'lang', $this->data['language_urls'], 'otherlanguages' );
- }
- break;
- default:
- $this->renderPortal( $name, $content );
- break;
- }
- }
- }
-
- /**
- * @param $name string
- * @param $content array
- * @param $msg null|string
- * @param $hook null|string|array
- */
- protected function renderPortal( $name, $content, $msg = null, $hook = null ) {
- if ( $msg === null ) {
- $msg = $name;
- }
- $msgObj = wfMessage( $msg );
- ?>
-<div class="portal" role="navigation" id='<?php echo Sanitizer::escapeId( "p-$name" ) ?>'<?php echo Linker::tooltip( 'p-' . $name ) ?> aria-labelledby='<?php echo Sanitizer::escapeId( "p-$name-label" ) ?>'>
- <h3<?php $this->html( 'userlangattributes' ) ?> id='<?php echo Sanitizer::escapeId( "p-$name-label" ) ?>'><?php echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $msg ); ?></h3>
- <div class="body">
-<?php
- if ( is_array( $content ) ) { ?>
- <ul>
-<?php
- foreach ( $content as $key => $val ) { ?>
- <?php echo $this->makeListItem( $key, $val ); ?>
-
-<?php
- }
- if ( $hook !== null ) {
- wfRunHooks( $hook, array( &$this, true ) );
- }
- ?>
- </ul>
-<?php
- } else { ?>
- <?php echo $content; /* Allow raw HTML block to be defined by extensions */ ?>
-<?php
- } ?>
- </div>
-</div>
-<?php
- }
-
- /**
- * Render one or more navigations elements by name, automatically reveresed
- * when UI is in RTL mode
- *
- * @param $elements array
- */
- protected function renderNavigation( $elements ) {
- global $wgVectorUseSimpleSearch;
-
- // If only one element was given, wrap it in an array, allowing more
- // flexible arguments
- if ( !is_array( $elements ) ) {
- $elements = array( $elements );
- // If there's a series of elements, reverse them when in RTL mode
- } elseif ( $this->data['rtl'] ) {
- $elements = array_reverse( $elements );
- }
- // Render elements
- foreach ( $elements as $name => $element ) {
- switch ( $element ) {
- case 'NAMESPACES':
-?>
-<div id="p-namespaces" role="navigation" class="vectorTabs<?php if ( count( $this->data['namespace_urls'] ) == 0 ) { echo ' emptyPortlet'; } ?>" aria-labelledby="p-namespaces-label">
- <h3 id="p-namespaces-label"><?php $this->msg( 'namespaces' ) ?></h3>
- <ul<?php $this->html( 'userlangattributes' ) ?>>
- <?php foreach ( $this->data['namespace_urls'] as $link ) { ?>
- <li <?php echo $link['attributes'] ?>><span><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></span></li>
- <?php } ?>
- </ul>
-</div>
-<?php
- break;
- case 'VARIANTS':
-?>
-<div id="p-variants" role="navigation" class="vectorMenu<?php if ( count( $this->data['variant_urls'] ) == 0 ) { echo ' emptyPortlet'; } ?>" aria-labelledby="p-variants-label">
- <h3 id="mw-vector-current-variant">
- <?php foreach ( $this->data['variant_urls'] as $link ) { ?>
- <?php if ( stripos( $link['attributes'], 'selected' ) !== false ) { ?>
- <?php echo htmlspecialchars( $link['text'] ) ?>
- <?php } ?>
- <?php } ?>
- </h3>
- <h3 id="p-variants-label"><span><?php $this->msg( 'variants' ) ?></span><a href="#"></a></h3>
- <div class="menu">
- <ul>
- <?php foreach ( $this->data['variant_urls'] as $link ) { ?>
- <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" lang="<?php echo htmlspecialchars( $link['lang'] ) ?>" hreflang="<?php echo htmlspecialchars( $link['hreflang'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></li>
- <?php } ?>
- </ul>
- </div>
-</div>
-<?php
- break;
- case 'VIEWS':
-?>
-<div id="p-views" role="navigation" class="vectorTabs<?php if ( count( $this->data['view_urls'] ) == 0 ) { echo ' emptyPortlet'; } ?>" aria-labelledby="p-views-label">
- <h3 id="p-views-label"><?php $this->msg( 'views' ) ?></h3>
- <ul<?php $this->html( 'userlangattributes' ) ?>>
- <?php foreach ( $this->data['view_urls'] as $link ) { ?>
- <li<?php echo $link['attributes'] ?>><span><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php
- // $link['text'] can be undefined - bug 27764
- if ( array_key_exists( 'text', $link ) ) {
- echo array_key_exists( 'img', $link ) ? '<img src="' . $link['img'] . '" alt="' . $link['text'] . '" />' : htmlspecialchars( $link['text'] );
- }
- ?></a></span></li>
- <?php } ?>
- </ul>
-</div>
-<?php
- break;
- case 'ACTIONS':
-?>
-<div id="p-cactions" role="navigation" class="vectorMenu<?php if ( count( $this->data['action_urls'] ) == 0 ) { echo ' emptyPortlet'; } ?>" aria-labelledby="p-cactions-label">
- <h3 id="p-cactions-label"><span><?php $this->msg( 'actions' ) ?></span><a href="#"></a></h3>
- <div class="menu">
- <ul<?php $this->html( 'userlangattributes' ) ?>>
- <?php foreach ( $this->data['action_urls'] as $link ) { ?>
- <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></li>
- <?php } ?>
- </ul>
- </div>
-</div>
-<?php
- break;
- case 'PERSONAL':
-?>
-<div id="p-personal" role="navigation" class="<?php if ( count( $this->data['personal_urls'] ) == 0 ) { echo ' emptyPortlet'; } ?>" aria-labelledby="p-personal-label">
- <h3 id="p-personal-label"><?php $this->msg( 'personaltools' ) ?></h3>
- <ul<?php $this->html( 'userlangattributes' ) ?>>
-<?php
- $personalTools = $this->getPersonalTools();
- foreach ( $personalTools as $key => $item ) {
- echo $this->makeListItem( $key, $item );
- }
-?>
- </ul>
-</div>
-<?php
- break;
- case 'SEARCH':
-?>
-<div id="p-search" role="search">
- <h3<?php $this->html( 'userlangattributes' ) ?>><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
- <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
- <?php if ( $wgVectorUseSimpleSearch && $this->getSkin()->getUser()->getOption( 'vector-simplesearch' ) ) { ?>
- <div id="simpleSearch">
- <?php if ( $this->data['rtl'] ) { ?>
- <?php echo $this->makeSearchButton( 'image', array( 'id' => 'searchButton', 'src' => $this->getSkin()->getSkinStylePath( 'images/search-rtl.png' ), 'width' => '12', 'height' => '13' ) ); ?>
- <?php } ?>
- <?php echo $this->makeSearchInput( array( 'id' => 'searchInput', 'type' => 'text' ) ); ?>
- <?php if ( !$this->data['rtl'] ) { ?>
- <?php echo $this->makeSearchButton( 'image', array( 'id' => 'searchButton', 'src' => $this->getSkin()->getSkinStylePath( 'images/search-ltr.png' ), 'width' => '12', 'height' => '13' ) ); ?>
- <?php } ?>
- <?php } else { ?>
- <div>
- <?php echo $this->makeSearchInput( array( 'id' => 'searchInput' ) ); ?>
- <?php echo $this->makeSearchButton( 'go', array( 'id' => 'searchGoButton', 'class' => 'searchButton' ) ); ?>
- <?php echo $this->makeSearchButton( 'fulltext', array( 'id' => 'mw-searchButton', 'class' => 'searchButton' ) ); ?>
- <?php } ?>
- <input type='hidden' name="title" value="<?php $this->text( 'searchtitle' ) ?>"/>
- </div>
- </form>
-</div>
-<?php
-
- break;
- }
- }
- }
-}
diff --git a/skins/Vector/COPYING b/skins/Vector/COPYING
new file mode 100644
index 00000000..019694a9
--- /dev/null
+++ b/skins/Vector/COPYING
@@ -0,0 +1,342 @@
+== 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 Library 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.
+
+== 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 Library General
+Public License instead of this License.
diff --git a/skins/Vector/SkinVector.php b/skins/Vector/SkinVector.php
new file mode 100644
index 00000000..8f7056d7
--- /dev/null
+++ b/skins/Vector/SkinVector.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Vector - Modern version of MonoBook with fresh look and many usability
+ * improvements.
+ *
+ * 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 Skins
+ */
+
+/**
+ * SkinTemplate class for Vector skin
+ * @ingroup Skins
+ */
+class SkinVector extends SkinTemplate {
+ public $skinname = 'vector';
+ public $stylename = 'Vector';
+ public $template = 'VectorTemplate';
+ /**
+ * @var Config
+ */
+ private $vectorConfig;
+
+ public function __construct( Config $config ) {
+ $this->vectorConfig = $config;
+ }
+
+ protected static $bodyClasses = array( 'vector-animateLayout' );
+
+ /**
+ * Initializes output page and sets up skin-specific parameters
+ * @param OutputPage $out Object to initialize
+ */
+ public function initPage( OutputPage $out ) {
+ parent::initPage( $out );
+
+ // Append CSS which includes IE only behavior fixes for hover support -
+ // this is better than including this in a CSS file since it doesn't
+ // wait for the CSS file to load before fetching the HTC file.
+ $min = $this->getRequest()->getFuzzyBool( 'debug' ) ? '' : '.min';
+ $out->addHeadItem( 'csshover',
+ '<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
+ htmlspecialchars( $this->getConfig()->get( 'LocalStylePath' ) ) .
+ "/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
+ );
+
+ $out->addModules( array( 'skins.vector.js' ) );
+ }
+
+ /**
+ * Loads skin and user CSS files.
+ * @param OutputPage $out
+ */
+ function setupSkinUserCss( OutputPage $out ) {
+ parent::setupSkinUserCss( $out );
+
+ $styles = array( 'mediawiki.skinning.interface', 'skins.vector.styles' );
+ wfRunHooks( 'SkinVectorStyleModules', array( $this, &$styles ) );
+ $out->addModuleStyles( $styles );
+ }
+
+ /**
+ * Override to pass our Config instance to it
+ */
+ public function setupTemplate( $classname, $repository = false, $cache_dir = false ) {
+ return new $classname( $this->vectorConfig );
+ }
+
+ /**
+ * Adds classes to the body element.
+ *
+ * @param OutputPage $out
+ * @param array &$bodyAttrs Array of attributes that will be set on the body element
+ */
+ function addToBodyAttributes( $out, &$bodyAttrs ) {
+ if ( isset( $bodyAttrs['class'] ) && strlen( $bodyAttrs['class'] ) > 0 ) {
+ $bodyAttrs['class'] .= ' ' . implode( ' ', static::$bodyClasses );
+ } else {
+ $bodyAttrs['class'] = implode( ' ', static::$bodyClasses );
+ }
+ }
+}
diff --git a/skins/Vector/Vector.php b/skins/Vector/Vector.php
new file mode 100644
index 00000000..16bec178
--- /dev/null
+++ b/skins/Vector/Vector.php
@@ -0,0 +1,110 @@
+<?php
+/**
+ * Vector - Modern version of MonoBook with fresh look and many usability
+ * improvements.
+ *
+ * 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 Skins
+ */
+
+$GLOBALS['wgExtensionCredits']['skin'][] = array(
+ 'path' => __FILE__,
+ 'name' => 'Vector',
+ 'namemsg' => 'skinname-vector',
+ 'descriptionmsg' => 'vector-skin-desc',
+ 'url' => 'https://www.mediawiki.org/wiki/Skin:Vector',
+ 'author' => array( 'Trevor Parscal', 'Roan Kattouw', '...' ),
+ 'license-name' => 'GPLv2+',
+);
+
+// Register files
+$GLOBALS['wgAutoloadClasses']['SkinVector'] = __DIR__ . '/SkinVector.php';
+$GLOBALS['wgAutoloadClasses']['VectorTemplate'] = __DIR__ . '/VectorTemplate.php';
+$GLOBALS['wgMessagesDirs']['Vector'] = __DIR__ . '/i18n';
+
+// Register skin
+SkinFactory::getDefaultInstance()->register( 'vector', 'Vector', function(){
+ $config = ConfigFactory::getDefaultInstance()->makeConfig( 'vector' );
+ return new SkinVector( $config );
+} );
+
+// Register config
+$GLOBALS['wgConfigRegistry']['vector'] = 'GlobalVarConfig::newInstance';
+
+// Configuration options
+/**
+ * Search form look.
+ * - true = use an icon search button
+ * - false = use Go & Search buttons
+ */
+$GLOBALS['wgVectorUseSimpleSearch'] = true;
+
+/**
+ * Watch and unwatch as an icon rather than a link.
+ * - true = use an icon watch/unwatch button
+ * - false = use watch/unwatch text link
+ */
+$GLOBALS['wgVectorUseIconWatch'] = true;
+
+// Register modules
+$GLOBALS['wgResourceModules']['skins.vector.styles'] = array(
+ 'styles' => array(
+ 'screen.less' => array( 'media' => 'screen' ),
+ 'screen-hd.less' => array( 'media' => 'screen and (min-width: 982px)' ),
+ ),
+ 'remoteSkinPath' => 'Vector',
+ 'localBasePath' => __DIR__,
+);
+
+$GLOBALS['wgResourceModules']['skins.vector.js'] = array(
+ 'scripts' => array(
+ 'collapsibleTabs.js',
+ 'vector.js',
+ ),
+ 'position' => 'top',
+ 'dependencies' => array(
+ 'jquery.throttle-debounce',
+ 'jquery.tabIndex',
+ ),
+ 'remoteSkinPath' => 'Vector',
+ 'localBasePath' => __DIR__,
+);
+
+// Apply module customizations
+$GLOBALS['wgResourceModuleSkinStyles']['vector'] = array(
+ 'jquery.tipsy' => 'skinStyles/jquery.tipsy.less',
+ 'jquery.ui.core' => array(
+ 'skinStyles/jquery.ui/jquery.ui.core.css',
+ 'skinStyles/jquery.ui/jquery.ui.theme.css',
+ ),
+ 'jquery.ui.accordion' => 'skinStyles/jquery.ui/jquery.ui.accordion.css',
+ 'jquery.ui.autocomplete' => 'skinStyles/jquery.ui/jquery.ui.autocomplete.css',
+ 'jquery.ui.button' => 'skinStyles/jquery.ui/jquery.ui.button.css',
+ 'jquery.ui.datepicker' => 'skinStyles/jquery.ui/jquery.ui.datepicker.css',
+ 'jquery.ui.dialog' => 'skinStyles/jquery.ui/jquery.ui.dialog.css',
+ 'jquery.ui.progressbar' => 'skinStyles/jquery.ui/jquery.ui.progressbar.css',
+ 'jquery.ui.resizable' => 'skinStyles/jquery.ui/jquery.ui.resizable.css',
+ 'jquery.ui.selectable' => 'skinStyles/jquery.ui/jquery.ui.selectable.css',
+ 'jquery.ui.slider' => 'skinStyles/jquery.ui/jquery.ui.slider.css',
+ 'jquery.ui.tabs' => 'skinStyles/jquery.ui/jquery.ui.tabs.css',
+ 'mediawiki.notification' => 'skinStyles/mediawiki.notification.less',
+ 'mediawiki.special' => 'skinStyles/mediawiki.special.less',
+ 'mediawiki.special.preferences' => 'skinStyles/mediawiki.special.preferences.less',
+ 'remoteSkinPath' => 'Vector',
+ 'localBasePath' => __DIR__,
+);
diff --git a/skins/Vector/VectorTemplate.php b/skins/Vector/VectorTemplate.php
new file mode 100644
index 00000000..30ba32e5
--- /dev/null
+++ b/skins/Vector/VectorTemplate.php
@@ -0,0 +1,585 @@
+<?php
+/**
+ * Vector - Modern version of MonoBook with fresh look and many usability
+ * improvements.
+ *
+ * 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 Skins
+ */
+
+/**
+ * QuickTemplate class for Vector skin
+ * @ingroup Skins
+ */
+class VectorTemplate extends BaseTemplate {
+ /* Functions */
+
+ /**
+ * Outputs the entire contents of the (X)HTML page
+ */
+ public function execute() {
+ // Build additional attributes for navigation urls
+ $nav = $this->data['content_navigation'];
+
+ if ( $this->config->get( 'VectorUseIconWatch' ) ) {
+ $mode = $this->getSkin()->getUser()->isWatched( $this->getSkin()->getRelevantTitle() )
+ ? 'unwatch'
+ : 'watch';
+
+ if ( isset( $nav['actions'][$mode] ) ) {
+ $nav['views'][$mode] = $nav['actions'][$mode];
+ $nav['views'][$mode]['class'] = rtrim( 'icon ' . $nav['views'][$mode]['class'], ' ' );
+ $nav['views'][$mode]['primary'] = true;
+ unset( $nav['actions'][$mode] );
+ }
+ }
+
+ $xmlID = '';
+ foreach ( $nav as $section => $links ) {
+ foreach ( $links as $key => $link ) {
+ if ( $section == 'views' && !( isset( $link['primary'] ) && $link['primary'] ) ) {
+ $link['class'] = rtrim( 'collapsible ' . $link['class'], ' ' );
+ }
+
+ $xmlID = isset( $link['id'] ) ? $link['id'] : 'ca-' . $xmlID;
+ $nav[$section][$key]['attributes'] =
+ ' id="' . Sanitizer::escapeId( $xmlID ) . '"';
+ if ( $link['class'] ) {
+ $nav[$section][$key]['attributes'] .=
+ ' class="' . htmlspecialchars( $link['class'] ) . '"';
+ unset( $nav[$section][$key]['class'] );
+ }
+ if ( isset( $link['tooltiponly'] ) && $link['tooltiponly'] ) {
+ $nav[$section][$key]['key'] =
+ Linker::tooltip( $xmlID );
+ } else {
+ $nav[$section][$key]['key'] =
+ Xml::expandAttributes( Linker::tooltipAndAccesskeyAttribs( $xmlID ) );
+ }
+ }
+ }
+ $this->data['namespace_urls'] = $nav['namespaces'];
+ $this->data['view_urls'] = $nav['views'];
+ $this->data['action_urls'] = $nav['actions'];
+ $this->data['variant_urls'] = $nav['variants'];
+
+ // Reverse horizontally rendered navigation elements
+ if ( $this->data['rtl'] ) {
+ $this->data['view_urls'] =
+ array_reverse( $this->data['view_urls'] );
+ $this->data['namespace_urls'] =
+ array_reverse( $this->data['namespace_urls'] );
+ $this->data['personal_urls'] =
+ array_reverse( $this->data['personal_urls'] );
+ }
+ // Output HTML Page
+ $this->html( 'headelement' );
+ ?>
+ <div id="mw-page-base" class="noprint"></div>
+ <div id="mw-head-base" class="noprint"></div>
+ <div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+
+ <?php
+ if ( $this->data['sitenotice'] ) {
+ ?>
+ <div id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div>
+ <?php
+ }
+ ?>
+ <h1 id="firstHeading" class="firstHeading" lang="<?php
+ $this->data['pageLanguage'] =
+ $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
+ $this->text( 'pageLanguage' );
+ ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
+ <?php $this->html( 'prebodyhtml' ) ?>
+ <div id="bodyContent" class="mw-body-content">
+ <?php
+ if ( $this->data['isarticle'] ) {
+ ?>
+ <div id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
+ <?php
+ }
+ ?>
+ <div id="contentSub"<?php
+ $this->html( 'userlangattributes' )
+ ?>><?php $this->html( 'subtitle' ) ?></div>
+ <?php
+ if ( $this->data['undelete'] ) {
+ ?>
+ <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div>
+ <?php
+ }
+ ?>
+ <?php
+ if ( $this->data['newtalk'] ) {
+ ?>
+ <div class="usermessage"><?php $this->html( 'newtalk' ) ?></div>
+ <?php
+ }
+ ?>
+ <div id="jump-to-nav" class="mw-jump">
+ <?php $this->msg( 'jumpto' ) ?>
+ <a href="#mw-navigation"><?php
+ $this->msg( 'jumptonavigation' )
+ ?></a><?php
+ $this->msg( 'comma-separator' )
+ ?>
+ <a href="#p-search"><?php $this->msg( 'jumptosearch' ) ?></a>
+ </div>
+ <?php $this->html( 'bodycontent' ) ?>
+ <?php
+ if ( $this->data['printfooter'] ) {
+ ?>
+ <div class="printfooter">
+ <?php $this->html( 'printfooter' ); ?>
+ </div>
+ <?php
+ }
+ ?>
+ <?php
+ if ( $this->data['catlinks'] ) {
+ ?>
+ <?php
+ $this->html( 'catlinks' );
+ ?>
+ <?php
+ }
+ ?>
+ <?php
+ if ( $this->data['dataAfterContent'] ) {
+ ?>
+ <?php
+ $this->html( 'dataAfterContent' );
+ ?>
+ <?php
+ }
+ ?>
+ <div class="visualClear"></div>
+ <?php $this->html( 'debughtml' ); ?>
+ </div>
+ </div>
+ <div id="mw-navigation">
+ <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
+
+ <div id="mw-head">
+ <?php $this->renderNavigation( 'PERSONAL' ); ?>
+ <div id="left-navigation">
+ <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?>
+ </div>
+ <div id="right-navigation">
+ <?php $this->renderNavigation( array( 'VIEWS', 'ACTIONS', 'SEARCH' ) ); ?>
+ </div>
+ </div>
+ <div id="mw-panel">
+ <div id="p-logo" role="banner"><a style="background-image: url(<?php
+ $this->text( 'logopath' )
+ ?>);" href="<?php
+ echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] )
+ ?>" <?php
+ echo Xml::expandAttributes( Linker::tooltipAndAccesskeyAttribs( 'p-logo' ) )
+ ?>></a></div>
+ <?php $this->renderPortals( $this->data['sidebar'] ); ?>
+ </div>
+ </div>
+ <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
+ <?php
+ foreach ( $this->getFooterLinks() as $category => $links ) {
+ ?>
+ <ul id="footer-<?php
+ echo $category
+ ?>">
+ <?php
+ foreach ( $links as $link ) {
+ ?>
+ <li id="footer-<?php
+ echo $category
+ ?>-<?php
+ echo $link
+ ?>"><?php
+ $this->html( $link )
+ ?></li>
+ <?php
+ }
+ ?>
+ </ul>
+ <?php
+ }
+ ?>
+ <?php $footericons = $this->getFooterIcons( "icononly" );
+ if ( count( $footericons ) > 0 ) {
+ ?>
+ <ul id="footer-icons" class="noprint">
+ <?php
+ foreach ( $footericons as $blockName => $footerIcons ) {
+ ?>
+ <li id="footer-<?php
+ echo htmlspecialchars( $blockName ); ?>ico">
+ <?php
+ foreach ( $footerIcons as $icon ) {
+ ?>
+ <?php
+ echo $this->getSkin()->makeFooterIcon( $icon );
+ ?>
+
+ <?php
+ }
+ ?>
+ </li>
+ <?php
+ }
+ ?>
+ </ul>
+ <?php
+ }
+ ?>
+ <div style="clear:both"></div>
+ </div>
+ <?php $this->printTrail(); ?>
+
+ </body>
+</html>
+ <?php
+ }
+
+ /**
+ * Render a series of portals
+ *
+ * @param array $portals
+ */
+ protected function renderPortals( $portals ) {
+ // Force the rendering of the following portals
+ if ( !isset( $portals['SEARCH'] ) ) {
+ $portals['SEARCH'] = true;
+ }
+ if ( !isset( $portals['TOOLBOX'] ) ) {
+ $portals['TOOLBOX'] = true;
+ }
+ if ( !isset( $portals['LANGUAGES'] ) ) {
+ $portals['LANGUAGES'] = true;
+ }
+ // Render portals
+ foreach ( $portals as $name => $content ) {
+ if ( $content === false ) {
+ continue;
+ }
+
+ switch ( $name ) {
+ case 'SEARCH':
+ break;
+ case 'TOOLBOX':
+ $this->renderPortal( 'tb', $this->getToolbox(), 'toolbox', 'SkinTemplateToolboxEnd' );
+ break;
+ case 'LANGUAGES':
+ if ( $this->data['language_urls'] !== false ) {
+ $this->renderPortal( 'lang', $this->data['language_urls'], 'otherlanguages' );
+ }
+ break;
+ default:
+ $this->renderPortal( $name, $content );
+ break;
+ }
+ }
+ }
+
+ /**
+ * @param string $name
+ * @param array $content
+ * @param null|string $msg
+ * @param null|string|array $hook
+ */
+ protected function renderPortal( $name, $content, $msg = null, $hook = null ) {
+ if ( $msg === null ) {
+ $msg = $name;
+ }
+ $msgObj = wfMessage( $msg );
+ ?>
+ <div class="portal" role="navigation" id='<?php
+ echo Sanitizer::escapeId( "p-$name" )
+ ?>'<?php
+ echo Linker::tooltip( 'p-' . $name )
+ ?> aria-labelledby='<?php echo Sanitizer::escapeId( "p-$name-label" ) ?>'>
+ <h3<?php
+ $this->html( 'userlangattributes' )
+ ?> id='<?php
+ echo Sanitizer::escapeId( "p-$name-label" )
+ ?>'><?php
+ echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $msg );
+ ?></h3>
+
+ <div class="body">
+ <?php
+ if ( is_array( $content ) ) {
+ ?>
+ <ul>
+ <?php
+ foreach ( $content as $key => $val ) {
+ ?>
+ <?php echo $this->makeListItem( $key, $val ); ?>
+
+ <?php
+ }
+ if ( $hook !== null ) {
+ wfRunHooks( $hook, array( &$this, true ) );
+ }
+ ?>
+ </ul>
+ <?php
+ } else {
+ ?>
+ <?php
+ echo $content; /* Allow raw HTML block to be defined by extensions */
+ }
+
+ $this->renderAfterPortlet( $name );
+ ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Render one or more navigations elements by name, automatically reveresed
+ * when UI is in RTL mode
+ *
+ * @param array $elements
+ */
+ protected function renderNavigation( $elements ) {
+ // If only one element was given, wrap it in an array, allowing more
+ // flexible arguments
+ if ( !is_array( $elements ) ) {
+ $elements = array( $elements );
+ // If there's a series of elements, reverse them when in RTL mode
+ } elseif ( $this->data['rtl'] ) {
+ $elements = array_reverse( $elements );
+ }
+ // Render elements
+ foreach ( $elements as $name => $element ) {
+ switch ( $element ) {
+ case 'NAMESPACES':
+ ?>
+ <div id="p-namespaces" role="navigation" class="vectorTabs<?php
+ if ( count( $this->data['namespace_urls'] ) == 0 ) {
+ echo ' emptyPortlet';
+ }
+ ?>" aria-labelledby="p-namespaces-label">
+ <h3 id="p-namespaces-label"><?php $this->msg( 'namespaces' ) ?></h3>
+ <ul<?php $this->html( 'userlangattributes' ) ?>>
+ <?php
+ foreach ( $this->data['namespace_urls'] as $link ) {
+ ?>
+ <li <?php
+ echo $link['attributes']
+ ?>><span><a href="<?php
+ echo htmlspecialchars( $link['href'] )
+ ?>" <?php
+ echo $link['key']
+ ?>><?php
+ echo htmlspecialchars( $link['text'] )
+ ?></a></span></li>
+ <?php
+ }
+ ?>
+ </ul>
+ </div>
+ <?php
+ break;
+ case 'VARIANTS':
+ ?>
+ <div id="p-variants" role="navigation" class="vectorMenu<?php
+ if ( count( $this->data['variant_urls'] ) == 0 ) {
+ echo ' emptyPortlet';
+ }
+ ?>" aria-labelledby="p-variants-label">
+ <?php
+ // Replace the label with the name of currently chosen variant, if any
+ $variantLabel = $this->getMsg( 'variants' )->text();
+ foreach ( $this->data['variant_urls'] as $link ) {
+ if ( stripos( $link['attributes'], 'selected' ) !== false ) {
+ $variantLabel = $link['text'];
+ break;
+ }
+ }
+ ?>
+ <h3 id="p-variants-label"><span><?php echo htmlspecialchars( $variantLabel ) ?></span><a href="#"></a></h3>
+
+ <div class="menu">
+ <ul>
+ <?php
+ foreach ( $this->data['variant_urls'] as $link ) {
+ ?>
+ <li<?php
+ echo $link['attributes']
+ ?>><a href="<?php
+ echo htmlspecialchars( $link['href'] )
+ ?>" lang="<?php
+ echo htmlspecialchars( $link['lang'] )
+ ?>" hreflang="<?php
+ echo htmlspecialchars( $link['hreflang'] )
+ ?>" <?php
+ echo $link['key']
+ ?>><?php
+ echo htmlspecialchars( $link['text'] )
+ ?></a></li>
+ <?php
+ }
+ ?>
+ </ul>
+ </div>
+ </div>
+ <?php
+ break;
+ case 'VIEWS':
+ ?>
+ <div id="p-views" role="navigation" class="vectorTabs<?php
+ if ( count( $this->data['view_urls'] ) == 0 ) {
+ echo ' emptyPortlet';
+ }
+ ?>" aria-labelledby="p-views-label">
+ <h3 id="p-views-label"><?php $this->msg( 'views' ) ?></h3>
+ <ul<?php
+ $this->html( 'userlangattributes' )
+ ?>>
+ <?php
+ foreach ( $this->data['view_urls'] as $link ) {
+ ?>
+ <li<?php
+ echo $link['attributes']
+ ?>><span><a href="<?php
+ echo htmlspecialchars( $link['href'] )
+ ?>" <?php
+ echo $link['key']
+ ?>><?php
+ // $link['text'] can be undefined - bug 27764
+ if ( array_key_exists( 'text', $link ) ) {
+ echo array_key_exists( 'img', $link )
+ ? '<img src="' . $link['img'] . '" alt="' . $link['text'] . '" />'
+ : htmlspecialchars( $link['text'] );
+ }
+ ?></a></span></li>
+ <?php
+ }
+ ?>
+ </ul>
+ </div>
+ <?php
+ break;
+ case 'ACTIONS':
+ ?>
+ <div id="p-cactions" role="navigation" class="vectorMenu<?php
+ if ( count( $this->data['action_urls'] ) == 0 ) {
+ echo ' emptyPortlet';
+ }
+ ?>" aria-labelledby="p-cactions-label">
+ <h3 id="p-cactions-label"><span><?php
+ $this->msg( 'vector-more-actions' )
+ ?></span><a href="#"></a></h3>
+
+ <div class="menu">
+ <ul<?php $this->html( 'userlangattributes' ) ?>>
+ <?php
+ foreach ( $this->data['action_urls'] as $link ) {
+ ?>
+ <li<?php
+ echo $link['attributes']
+ ?>>
+ <a href="<?php
+ echo htmlspecialchars( $link['href'] )
+ ?>" <?php
+ echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] )
+ ?></a>
+ </li>
+ <?php
+ }
+ ?>
+ </ul>
+ </div>
+ </div>
+ <?php
+ break;
+ case 'PERSONAL':
+ ?>
+ <div id="p-personal" role="navigation" class="<?php
+ if ( count( $this->data['personal_urls'] ) == 0 ) {
+ echo ' emptyPortlet';
+ }
+ ?>" aria-labelledby="p-personal-label">
+ <h3 id="p-personal-label"><?php $this->msg( 'personaltools' ) ?></h3>
+ <ul<?php $this->html( 'userlangattributes' ) ?>>
+ <?php
+ $personalTools = $this->getPersonalTools();
+ foreach ( $personalTools as $key => $item ) {
+ echo $this->makeListItem( $key, $item );
+ }
+ ?>
+ </ul>
+ </div>
+ <?php
+ break;
+ case 'SEARCH':
+ ?>
+ <div id="p-search" role="search">
+ <h3<?php $this->html( 'userlangattributes' ) ?>>
+ <label for="searchInput"><?php $this->msg( 'search' ) ?></label>
+ </h3>
+
+ <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
+ <?php
+ if ( $this->config->get( 'VectorUseSimpleSearch' ) ) {
+ ?>
+ <div id="simpleSearch">
+ <?php
+ } else {
+ ?>
+ <div>
+ <?php
+ }
+ ?>
+ <?php
+ echo $this->makeSearchInput( array( 'id' => 'searchInput' ) );
+ echo Html::hidden( 'title', $this->get( 'searchtitle' ) );
+ // We construct two buttons (for 'go' and 'fulltext' search modes),
+ // but only one will be visible and actionable at a time (they are
+ // overlaid on top of each other in CSS).
+ // * Browsers will use the 'fulltext' one by default (as it's the
+ // first in tree-order), which is desirable when they are unable
+ // to show search suggestions (either due to being broken or
+ // having JavaScript turned off).
+ // * The mediawiki.searchSuggest module, after doing tests for the
+ // broken browsers, removes the 'fulltext' button and handles
+ // 'fulltext' search itself; this will reveal the 'go' button and
+ // cause it to be used.
+ echo $this->makeSearchButton(
+ 'fulltext',
+ array( 'id' => 'mw-searchButton', 'class' => 'searchButton mw-fallbackSearchButton' )
+ );
+ echo $this->makeSearchButton(
+ 'go',
+ array( 'id' => 'searchButton', 'class' => 'searchButton' )
+ );
+ ?>
+ </div>
+ </form>
+ </div>
+ <?php
+
+ break;
+ }
+ }
+ }
+}
diff --git a/skins/vector/collapsibleTabs.js b/skins/Vector/collapsibleTabs.js
index e3c2c519..e24bea95 100644
--- a/skins/vector/collapsibleTabs.js
+++ b/skins/Vector/collapsibleTabs.js
@@ -9,7 +9,7 @@
return this;
}
// Merge options into the defaults
- var $settings = $.extend( {}, $.collapsibleTabs.defaults, options );
+ var settings = $.extend( {}, $.collapsibleTabs.defaults, options );
this.each( function () {
var $el = $( this );
@@ -17,52 +17,25 @@
$.collapsibleTabs.instances = ( $.collapsibleTabs.instances.length === 0 ?
$el : $.collapsibleTabs.instances.add( $el ) );
// attach the settings to the elements
- $el.data( 'collapsibleTabsSettings', $settings );
+ $el.data( 'collapsibleTabsSettings', settings );
// attach data to our collapsible elements
- $el.children( $settings.collapsible ).each( function () {
+ $el.children( settings.collapsible ).each( function () {
$.collapsibleTabs.addData( $( this ) );
} );
} );
- // if we haven't already bound our resize hanlder, bind it now
+ // if we haven't already bound our resize handler, bind it now
if ( !$.collapsibleTabs.boundEvent ) {
- $( window )
- .delayedBind( 500, 'resize', function () {
- $.collapsibleTabs.handleResize();
- } );
+ $( window ).on( 'resize', $.debounce( 500, function () {
+ $.collapsibleTabs.handleResize();
+ } ) );
+ $.collapsibleTabs.boundEvent = true;
}
+
// call our resize handler to setup the page
$.collapsibleTabs.handleResize();
return this;
};
- /**
- * Returns the amount of horizontal distance between the two tabs groups
- * (#left-navigation and #right-navigation), in pixels. If negative, this
- * means that the tabs overlap, and the value is the width of overlapping
- * parts.
- *
- * Used in default expandCondition and collapseCondition.
- *
- * @return {Numeric} distance/overlap in pixels
- */
- function calculateTabDistance() {
- var $leftTab, $rightTab, leftEnd, rightStart;
-
- // In RTL, #right-navigation is actually on the left and vice versa.
- // Hooray for descriptive naming.
- if ( !rtl ) {
- $leftTab = $( '#left-navigation' );
- $rightTab = $( '#right-navigation' );
- } else {
- $leftTab = $( '#right-navigation' );
- $rightTab = $( '#left-navigation' );
- }
-
- leftEnd = $leftTab.offset().left + $leftTab.width();
- rightStart = $rightTab.offset().left;
-
- return rightStart - leftEnd;
- }
$.collapsibleTabs = {
instances: [],
boundEvent: null,
@@ -72,36 +45,34 @@
collapsible: 'li.collapsible',
shifting: false,
expandCondition: function ( eleWidth ) {
- // If there's at least eleWidth pixels free space, expand.
- return calculateTabDistance() >= eleWidth;
+ // If there are at least eleWidth + 1 pixels of free space, expand.
+ // We add 1 because .width() will truncate fractional values but .offset() will not.
+ return $.collapsibleTabs.calculateTabDistance() >= eleWidth + 1;
},
collapseCondition: function () {
// If there's an overlap, collapse.
- return calculateTabDistance() < 0;
+ return $.collapsibleTabs.calculateTabDistance() < 0;
}
},
addData: function ( $collapsible ) {
- var $settings = $collapsible.parent().data( 'collapsibleTabsSettings' );
- if ( $settings !== null ) {
+ var settings = $collapsible.parent().data( 'collapsibleTabsSettings' );
+ if ( settings ) {
$collapsible.data( 'collapsibleTabsSettings', {
- expandedContainer: $settings.expandedContainer,
- collapsedContainer: $settings.collapsedContainer,
+ expandedContainer: settings.expandedContainer,
+ collapsedContainer: settings.collapsedContainer,
expandedWidth: $collapsible.width(),
prevElement: $collapsible.prev()
} );
}
},
getSettings: function ( $collapsible ) {
- var $settings = $collapsible.data( 'collapsibleTabsSettings' );
- if ( $settings === undefined ) {
+ var settings = $collapsible.data( 'collapsibleTabsSettings' );
+ if ( !settings ) {
$.collapsibleTabs.addData( $collapsible );
- $settings = $collapsible.data( 'collapsibleTabsSettings' );
+ settings = $collapsible.data( 'collapsibleTabsSettings' );
}
- return $settings;
+ return settings;
},
- /**
- * @param {jQuery.Event} e
- */
handleResize: function () {
$.collapsibleTabs.instances.each( function () {
var $el = $( this ),
@@ -132,21 +103,21 @@
} );
},
moveToCollapsed: function ( ele ) {
- var data, expContainerSettings, target,
+ var outerData, expContainerSettings, target,
$moving = $( ele );
- data = $.collapsibleTabs.getSettings( $moving );
- if ( !data ) {
+ outerData = $.collapsibleTabs.getSettings( $moving );
+ if ( !outerData ) {
return;
}
- expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
+ expContainerSettings = $.collapsibleTabs.getSettings( $( outerData.expandedContainer ) );
if ( !expContainerSettings ) {
return;
}
expContainerSettings.shifting = true;
// Remove the element from where it's at and put it in the dropdown menu
- target = data.collapsedContainer;
+ target = outerData.collapsedContainer;
$moving.css( 'position', 'relative' )
.css( ( rtl ? 'left' : 'right' ), 0 )
.animate( { width: '1px' }, 'normal', function () {
@@ -154,9 +125,7 @@
$( this ).hide();
// add the placeholder
$( '<span class="placeholder" style="display: none;"></span>' ).insertAfter( this );
- // XXX: 'data' is undefined here, should the 'data' from the outer scope have
- // a different name?
- $( this ).detach().prependTo( target ).data( 'collapsibleTabsSettings', data );
+ $( this ).detach().prependTo( target ).data( 'collapsibleTabsSettings', outerData );
$( this ).attr( 'style', 'display: list-item;' );
data = $.collapsibleTabs.getSettings( $( ele ) );
if ( data ) {
@@ -204,6 +173,34 @@
}
} )
);
+ },
+ /**
+ * Returns the amount of horizontal distance between the two tabs groups
+ * (#left-navigation and #right-navigation), in pixels. If negative, this
+ * means that the tabs overlap, and the value is the width of overlapping
+ * parts.
+ *
+ * Used in default expandCondition and collapseCondition.
+ *
+ * @return {Numeric} distance/overlap in pixels
+ */
+ calculateTabDistance: function () {
+ var $leftTab, $rightTab, leftEnd, rightStart;
+
+ // In RTL, #right-navigation is actually on the left and vice versa.
+ // Hooray for descriptive naming.
+ if ( !rtl ) {
+ $leftTab = $( '#left-navigation' );
+ $rightTab = $( '#right-navigation' );
+ } else {
+ $leftTab = $( '#right-navigation' );
+ $rightTab = $( '#left-navigation' );
+ }
+
+ leftEnd = $leftTab.offset().left + $leftTab.width();
+ rightStart = $rightTab.offset().left;
+
+ return rightStart - leftEnd;
}
};
diff --git a/skins/Vector/components/animations.less b/skins/Vector/components/animations.less
new file mode 100644
index 00000000..ab273dc0
--- /dev/null
+++ b/skins/Vector/components/animations.less
@@ -0,0 +1,28 @@
+/* Animate between standard and high definition layouts */
+body.vector-animateLayout {
+ .mw-body,
+ div#footer,
+ #left-navigation {
+ .transition(margin-left 250ms, padding 250ms;);
+ }
+
+ #p-logo {
+ .transition(left 250ms);
+ }
+
+ #mw-panel {
+ .transition(padding-right 250ms);
+ }
+
+ #p-search {
+ .transition(margin-right 250ms);
+ }
+
+ #p-personal {
+ .transition(right 250ms);
+ }
+
+ #mw-head-base {
+ .transition(margin-left 250ms);
+ }
+}
diff --git a/skins/Vector/components/common.less b/skins/Vector/components/common.less
new file mode 100644
index 00000000..ac4b8509
--- /dev/null
+++ b/skins/Vector/components/common.less
@@ -0,0 +1,134 @@
+/*
+ * Any rules which should not be flipped automatically in right-to-left situations should be
+ * prepended with @noflip in a comment block.
+ *
+ * This stylesheet employs a few CSS trick to accomplish compatibility with a wide range of web
+ * browsers. The most common trick is to use some styles in IE6 only. This is accomplished by using
+ * a rule that makes things work in IE6, and then following it with a rule that begins with
+ * "html > body" or use a child selector ">", which is ignored by IE6 because it does not support
+ * the child selector. You can spot this by looking for the "OVERRIDDEN BY COMPLIANT BROWSERS" and
+ * "IGNORED BY IE6" comments.
+ */
+@import "mediawiki.mixins";
+
+/* Framework */
+html {
+ font-size: @html-font-size;
+}
+html,
+body {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ font-family: @content-font-family;
+}
+body {
+ background-color: @menu-background-color;
+}
+
+/* Content */
+.mw-body {
+ margin-left: 10em;
+ padding: @content-padding;
+ /* Border on top, left, and bottom side */
+ border: 1px solid @content-border-color;
+ border-right-width: 0;
+ /* Merge the border with tabs' one (in their background image) */
+ margin-top: -1px;
+ background-color: @body-background-color;
+ color: @content-font-color;
+ direction: ltr;
+
+ .mw-editsection,
+ .mw-editsection-like {
+ font-family: @content-font-family;
+ }
+
+ p {
+ line-height: inherit;
+ margin: 0.5em 0;
+ }
+
+ h1,
+ h2,
+ #firstHeading {
+ font-family: @content-heading-font-family;
+ line-height: @heading-line-height;
+ margin-bottom: 0.25em;
+ padding: 0;
+ }
+
+ h1,
+ #firstHeading {
+ font-size: @content-heading-font-size;
+ }
+
+ h2 {
+ font-size: 1.5em;
+ margin-top: 1em;
+ }
+
+ h3,
+ h4,
+ h5,
+ h6 {
+ line-height: @content-line-height;
+ margin-top: 0.3em;
+ margin-bottom: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font-size: 1.17em;
+ }
+
+ h3,
+ h4 {
+ font-weight: bold;
+ }
+
+ h4,
+ h5,
+ h6 {
+ font-size: 100%; /* (reset) */
+ }
+
+ #toc h2,
+ .toc h2 {
+ font-size: 100%; /* (reset) */
+ font-family: @content-font-family;
+ }
+}
+
+/* Hide empty portlets */
+div.emptyPortlet {
+ display: none;
+}
+
+ul {
+ list-style-type: disc;
+ .list-style-image('images/bullet-icon.png');
+}
+
+pre, .mw-code {
+ line-height: 1.3em;
+}
+
+/* Site Notice (includes notices from CentralNotice extension) */
+#siteNotice {
+ font-size: 0.8em;
+}
+
+.redirectText {
+ font-size: 140%;
+}
+
+.redirectMsg img {
+ vertical-align: text-bottom;
+}
+
+.mw-body-content {
+ position: relative;
+ line-height: @content-line-height;
+ font-size: @content-font-size;
+}
diff --git a/skins/Vector/components/externalLinks.less b/skins/Vector/components/externalLinks.less
new file mode 100644
index 00000000..4cf8f0a5
--- /dev/null
+++ b/skins/Vector/components/externalLinks.less
@@ -0,0 +1,10 @@
+@import "mediawiki.mixins.less";
+// External links
+.mw-body {
+ .external {
+ background-position: center right;
+ background-repeat: no-repeat;
+ .background-image-svg('images/external-link-ltr-icon.svg', 'images/external-link-ltr-icon.png');
+ padding-right: 13px;
+ }
+}
diff --git a/skins/Vector/components/footer.less b/skins/Vector/components/footer.less
new file mode 100644
index 00000000..3d61b669
--- /dev/null
+++ b/skins/Vector/components/footer.less
@@ -0,0 +1,57 @@
+/* Footer */
+div#footer {
+ margin-left: 10em;
+ margin-top: 0;
+ padding: 0.75em;
+ direction: ltr;
+
+ ul {
+ list-style-type: none;
+ list-style-image: none;
+ margin: 0;
+ padding: 0;
+
+ li {
+ margin: 0;
+ padding: 0;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ color: #333;
+ font-size: 0.7em;
+ }
+ }
+
+ #footer-icons {
+ float: right;
+
+ li {
+ float: left;
+ margin-left: 0.5em;
+ line-height: 2em;
+ text-align: right;
+ }
+ }
+
+ #footer-info {
+ li {
+ line-height: 1.4em;
+ }
+ }
+
+ #footer-places {
+ li {
+ float: left;
+ margin-right: 1em;
+ line-height: 2em;
+ }
+ }
+}
+
+body.ltr {
+ div#footer {
+ #footer-places {
+ /* @noflip */
+ float: left;
+ }
+ }
+}
diff --git a/skins/Vector/components/navigation.less b/skins/Vector/components/navigation.less
new file mode 100644
index 00000000..8b384acf
--- /dev/null
+++ b/skins/Vector/components/navigation.less
@@ -0,0 +1,144 @@
+@import "mediawiki.mixins";
+@import "personalMenu";
+@import "search";
+@import "tabs";
+
+/* Hide, but keep accessible for screen-readers */
+#mw-navigation h2 {
+ position: absolute;
+ top: -9999px;
+}
+
+/* Head */
+#mw-page-base {
+ height: 5em;
+ background-position: bottom left;
+ background-repeat: repeat-x;
+ /* This image is only a fallback (for IE 6-9), so we do not @embed it. */
+ background-image: url('images/page-fade.png');
+ .vertical-gradient(@body-background-color, @menu-background-color, 50%, 100%);
+ background-color: @body-background-color;
+}
+
+#mw-head-base {
+ margin-top: -5em;
+ margin-left: 10em;
+ height: 5em;
+}
+
+div#mw-head {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 100%;
+
+ h3 {
+ margin: 0;
+ padding: 0;
+ }
+}
+
+/* Navigation Containers */
+#left-navigation {
+ float: left;
+ margin-left: 10em;
+ margin-top: 2.5em;
+ /* When right nav would overlap left nav, it's placed below it
+ (normal CSS floats behavior). This rule ensures that no empty space
+ is shown between them due to right nav's margin-top. Page layout
+ is still broken, but at least the nav overlaps only the page title
+ instead of half the content. */
+ margin-bottom: -2.5em;
+ /* IE 6 double-margin bug fix */
+ display: inline;
+}
+
+#right-navigation {
+ float: right;
+ margin-top: 2.5em;
+}
+
+/* Logo */
+#p-logo {
+ position: absolute;
+ top: -160px;
+ left: 0;
+ width: 10em;
+ height: 160px;
+
+ a {
+ display: block;
+ width: 10em;
+ height: 160px;
+ background-repeat: no-repeat;
+ background-position: center center;
+ text-decoration: none;
+ }
+}
+
+/* Panel */
+div#mw-panel {
+ font-size: @menu-main-font-size;
+ position: absolute;
+ top: 160px;
+ padding-top: 1em;
+ width: 10em;
+ left: 0;
+
+ div.portal {
+ margin: 0 0.6em 0 0.7em;
+ padding: 0.25em 0;
+ direction: ltr;
+ background-position: top left;
+ background-repeat: no-repeat;
+ .background-image('images/portal-break.png');
+
+ h3 {
+ font-size: @menu-main-heading-font-size;
+ color: @menu-main-heading-color;
+ font-weight: normal;
+ margin: 0;
+ padding: @menu-main-heading-padding;
+ cursor: default;
+ border: none;
+ }
+
+ div.body {
+ margin: @menu-main-body-margin;
+ padding-top: 0;
+
+ ul {
+ list-style-type: none;
+ list-style-image: none;
+ margin: 0;
+ padding: @menu-main-body-padding;
+
+ li {
+ line-height: 1.125em;
+ margin: 0;
+ padding: 0.25em 0;
+ font-size: @menu-main-body-font-size;
+ word-wrap: break-word;
+
+ a {
+ color: @menu-main-body-link-color;
+ &:visited {
+ color: @menu-main-body-link-visited-color;
+ }
+ }
+ }
+ }
+ }
+
+ &.first {
+ background-image: none;
+ margin-top: 0;
+ h3 {
+ display: none;
+ }
+ div.body {
+ margin-left: 0.5em;
+ }
+ }
+ }
+}
diff --git a/skins/Vector/components/personalMenu.less b/skins/Vector/components/personalMenu.less
new file mode 100644
index 00000000..bec2cb5c
--- /dev/null
+++ b/skins/Vector/components/personalMenu.less
@@ -0,0 +1,40 @@
+/* Personal */
+#p-personal {
+ position: absolute;
+ top: 0.33em;
+ right: 0.75em;
+ /* Display on top of page tabs - bugs 37158, 48078 */
+ z-index: 100;
+
+ h3 {
+ display: none;
+ }
+
+ ul {
+ list-style-type: none;
+ list-style-image: none;
+ margin: 0;
+ padding-left: 10em; /* Keep from overlapping logo */
+ }
+
+ li {
+ line-height: 1.125em;
+ /* @noflip */
+ float: left;
+ margin-left: 0.75em;
+ margin-top: 0.5em;
+ font-size: @menu-personal-font-size;
+ white-space: nowrap;
+ }
+}
+
+/* Icon for Usernames */
+#pt-userpage,
+#pt-anonuserpage {
+ background-position: left top;
+ background-repeat: no-repeat;
+ /* SVG support using a transparent gradient to guarantee cross-browser
+ * compatibility (browsers able to understand gradient syntax support also SVG) */
+ .background-image-svg('images/user-icon.svg', 'images/user-icon.png');
+ padding-left: 15px !important;
+}
diff --git a/skins/Vector/components/search.less b/skins/Vector/components/search.less
new file mode 100644
index 00000000..925205ce
--- /dev/null
+++ b/skins/Vector/components/search.less
@@ -0,0 +1,111 @@
+/* Search */
+#p-search {
+ /* @noflip */
+ float: left;
+ margin-right: 0.5em;
+ margin-left: 0.5em;
+
+ h3 {
+ display: none;
+ }
+
+ form,
+ input {
+ margin: 0;
+ margin-top: 0.4em;
+ }
+}
+
+div#simpleSearch {
+ display: block;
+ width: 12.6em;
+ padding-right: 1.4em;
+ height: 1.4em;
+ margin-top: 0.65em;
+ position: relative;
+ min-height: 1px; /* Gotta trigger hasLayout for IE7 */
+ border: solid 1px #aaa;
+ color: black;
+ background-color: white;
+ .background-image('images/search-fade.png');
+ background-position: top left;
+ background-repeat: repeat-x;
+
+ // Styles for both the search input and the button
+ input {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background-color: transparent;
+ color: black;
+ }
+
+ // The search input
+ #searchInput {
+ width: 100%;
+ padding: 0.2em 0 0.2em 0.2em;
+ font-size: 13px;
+ direction: ltr;
+
+ &:focus {
+ outline: none;
+ }
+
+ // These rules MAY NOT be merged because of how CSS requires browsers
+ // to parse unrecognized selectors!
+ // Note these rules ensure that placeholder text can be distinguished from
+ // standard text. In browsers which make this distinction clear these rules
+ // are not necessary.
+ // For inputs that use jquery.placeholder.js e.g. IE9-
+ &.placeholder {
+ color: #999;
+ }
+ // Distinguish placeholder text in IE10+
+ &:-ms-input-placeholder {
+ color: #999;
+ }
+ // Distinguish placeholder text in Firefox 18-
+ &:-moz-placeholder {
+ color: #999;
+ }
+
+ // Undo the styles Webkit browsers apply to type=search fields,
+ // we provide our own
+ -webkit-appearance: textfield;
+
+ &::-webkit-search-decoration,
+ &::-webkit-search-cancel-button,
+ &::-webkit-search-results-button,
+ &::-webkit-search-results-decoration {
+ -webkit-appearance: textfield;
+ }
+ }
+
+ // The buttons. They are displayed in the same position, and if both are
+ // present the fulltext search one obscures the 'Go' one.
+ #searchButton,
+ #mw-searchButton {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 1.65em;
+ height: 100%;
+ cursor: pointer;
+ /* Hide button text and replace it with the image. */
+ text-indent: -99999px;
+ /* Needed to make IE6 respect the text-indent. */
+ line-height: 1;
+ /* Opera 12 on RTL flips the text in a funny way without this. */
+ /* @noflip */
+ direction: ltr;
+ white-space: nowrap;
+ overflow: hidden;
+ .background-image-svg('images/search-ltr.svg', 'images/search-ltr.png');
+ background-position: center center;
+ background-repeat: no-repeat;
+ }
+
+ #mw-searchButton {
+ z-index: 1;
+ }
+}
diff --git a/skins/Vector/components/tabs.less b/skins/Vector/components/tabs.less
new file mode 100644
index 00000000..a5647345
--- /dev/null
+++ b/skins/Vector/components/tabs.less
@@ -0,0 +1,245 @@
+/*
+Styling for namespace tabs (page, discussion) and views (read, edit, view history, watch and other actions)
+*/
+
+/* Navigation Labels */
+div.vectorTabs h3 {
+ display: none;
+}
+
+/* Namespaces and Views */
+div.vectorTabs {
+ /* @noflip */
+ float: left;
+ height: 2.5em;
+ .background-image('images/tab-break.png');
+ background-position: bottom left;
+ background-repeat: no-repeat;
+ padding-left: 1px;
+
+ ul {
+ /* @noflip */
+ float: left;
+ height: 100%;
+ list-style-type: none;
+ list-style-image: none;
+ margin: 0;
+ padding: 0;
+ .background-image('images/tab-break.png');
+ background-position: right bottom;
+ background-repeat: no-repeat;
+
+ li {
+ /* @noflip */
+ float: left;
+ line-height: 1.125em;
+ /* For IE6, overridden later to display:block by modern browsers */
+ display: inline-block;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ background-color: #f3f3f3;
+ .background-image('images/tab-normal-fade.png');
+ background-position: bottom left;
+ background-repeat: repeat-x;
+ white-space: nowrap;
+ }
+
+ /* IGNORED BY IE6 which doesn't support child selector */
+ > li {
+ display: block;
+ }
+ }
+
+ li {
+ &.new {
+ a,
+ a:visited{
+ color: #a55858;
+ }
+ }
+
+ &.selected {
+ .background-image('images/tab-current-fade.png');
+ a,
+ a:visited{
+ color: #333;
+ text-decoration: none;
+ }
+ }
+
+ &.icon {
+ a {
+ background-position: bottom right;
+ background-repeat: no-repeat;
+ }
+ }
+
+ a {
+ /* For IE6, overridden later to display:block by modern browsers */
+ display: inline-block;
+ height: 1.9em;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ color: @menu-link-color;
+ cursor: pointer;
+ font-size: 0.8em;
+ }
+
+ /* Ignored by IE6 which doesn't support child selector */
+ > a {
+ display: block;
+ }
+ }
+
+ span {
+ display: inline-block;
+ .background-image('images/tab-break.png');
+ background-position: bottom right;
+ background-repeat: no-repeat;
+
+ a {
+ /* For IE6, overridden later to display:block by modern browsers */
+ display: inline-block;
+ padding-top: 1.25em;
+ }
+
+ /* Ignored by IE6 which doesn't support child selector */
+ > a {
+ /* @noflip */
+ float: left;
+ display: block;
+ }
+ }
+}
+
+/* Variants and Actions */
+div.vectorMenu {
+ /* @noflip */
+ direction: ltr;
+ /* @noflip */
+ float: left;
+ cursor: pointer;
+ position: relative;
+}
+
+body.rtl div.vectorMenu {
+ /* @noflip */
+ direction: rtl;
+}
+
+div#mw-head div.vectorMenu h3 {
+ /* @noflip */
+ float: left;
+ .background-image('images/tab-break.png');
+ background-repeat: no-repeat;
+ background-position: bottom right;
+ margin-left: -1px;
+ font-size: 1em;
+ height: 2.5em;
+ // This effectively moves the "background border" outside of the element to act like a real
+ // border. It is necessary for the dropdown (div.vectorMenu div.menu) to align well.
+ padding-right: 1px;
+ margin-right: -1px;
+}
+
+div.vectorMenu h3 span {
+ display: block;
+ font-size: 0.8em;
+ padding-left: 0.7em;
+ padding-top: 1.375em;
+ margin-right: 20px;
+ font-weight: normal;
+ color: @menu-main-heading-color;
+}
+
+div.vectorMenu h3 a {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 20px;
+ height: 2.5em;
+ .background-image-svg('images/arrow-down-icon.svg', 'images/arrow-down-icon.png');
+ background-position: 100% 70%;
+ background-repeat: no-repeat;
+ .transition(background-position 250ms);
+}
+
+div.vectorMenu.menuForceShow h3 a {
+ background-position: 100% 100%;
+}
+
+div.vectorMenuFocus h3 a {
+ .background-image-svg('images/arrow-down-focus-icon.svg', 'images/arrow-down-focus-icon.png');
+}
+
+div.vectorMenu div.menu {
+ // Match the width of the dropdown "heading" (the tab)
+ min-width: 100%;
+ position: absolute;
+ top: 2.5em;
+ left: -1px;
+ background-color: white;
+ border: solid 1px silver;
+ border-top-width: 0;
+ clear: both;
+ text-align: left;
+ display: none;
+}
+
+/* Enable forcing showing of the menu for accessibility */
+div.vectorMenu:hover div.menu,
+div.vectorMenu.menuForceShow div.menu {
+ display: block;
+}
+
+div.vectorMenu ul {
+ list-style-type: none;
+ list-style-image: none;
+ padding: 0;
+ margin: 0;
+ text-align: left;
+}
+
+/* Fixes old versions of FireFox */
+div.vectorMenu ul,
+x:-moz-any-link {
+ min-width: 5em;
+}
+
+/* Returns things back to normal in modern versions of FireFox */
+div.vectorMenu ul,
+x:-moz-any-link,
+x:default {
+ min-width: 0;
+}
+
+div.vectorMenu li {
+ padding: 0;
+ margin: 0;
+ text-align: left;
+ line-height: 1em;
+}
+
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+div.vectorMenu li a {
+ display: inline-block;
+ padding: 0.5em;
+ white-space: nowrap;
+ color: @menu-link-color;
+ cursor: pointer;
+ font-size: 0.8em;
+}
+
+/* IGNORED BY IE6 */
+div.vectorMenu li > a {
+ display: block;
+}
+
+div.vectorMenu li.selected a,
+div.vectorMenu li.selected a:visited {
+ color: #333;
+ text-decoration: none;
+}
+
+@import 'watchstar.less';
diff --git a/skins/Vector/components/watchstar.less b/skins/Vector/components/watchstar.less
new file mode 100644
index 00000000..a389ed6d
--- /dev/null
+++ b/skins/Vector/components/watchstar.less
@@ -0,0 +1,48 @@
+@import "mediawiki.mixins.rotation"
+
+/* Watch/Unwatch Icon Styling */
+#ca-unwatch.icon a,
+#ca-watch.icon a {
+ margin: 0;
+ padding: 0;
+ display: block;
+ width: 26px;
+ /* This hides the text but shows the background image */
+ padding-top: 3.1em;
+ margin-top: 0;
+ /* Only applied in IE6 */
+ margin-top: -0.8em !ie;
+ height: 0;
+ overflow: hidden;
+ background-position: 5px 60%;
+}
+#ca-unwatch.icon a {
+ .background-image-svg('images/unwatch-icon.svg', 'images/unwatch-icon.png');
+}
+#ca-watch.icon a {
+ .background-image-svg('images/watch-icon.svg', 'images/watch-icon.png');
+}
+#ca-unwatch.icon a:hover,
+#ca-unwatch.icon a:focus {
+ .background-image-svg('images/unwatch-icon-hl.svg', 'images/unwatch-icon-hl.png');
+}
+#ca-watch.icon a:hover,
+#ca-watch.icon a:focus {
+ .background-image-svg('images/watch-icon-hl.svg', 'images/watch-icon-hl.png');
+}
+#ca-unwatch.icon a.loading,
+#ca-watch.icon a.loading {
+ .background-image-svg('images/watch-icon-loading.svg', 'images/watch-icon-loading.png');
+ .rotation(700ms);
+ /* Suppress the hilarious rotating focus outline on Firefox */
+ outline: none;
+ cursor: default;
+ pointer-events: none;
+ background-position: 50% 60%;
+ -webkit-transform-origin: 50% 57%;
+ transform-origin: 50% 57%;
+}
+#ca-unwatch.icon a span,
+#ca-watch.icon a span {
+ display: none;
+}
diff --git a/skins/Vector/composer.json b/skins/Vector/composer.json
new file mode 100644
index 00000000..b7fff8f1
--- /dev/null
+++ b/skins/Vector/composer.json
@@ -0,0 +1,40 @@
+{
+ "name" : "mediawiki/vector-skin",
+ "type" : "mediawiki-skin",
+ "description": "Modern version of the MonoBook skin",
+ "keywords" : [
+ "wiki",
+ "MediaWiki",
+ "skin"
+ ],
+ "homepage" : "https://www.mediawiki.org/wiki/Skin:Vector",
+ "license" : "GPL-2.0+",
+ "authors" : [
+ {
+ "name" : "Trevor Parscal"
+ },
+ {
+ "name" : "Roan Kattouw"
+ }
+ ],
+ "support" : {
+ "wiki" : "https://www.mediawiki.org/wiki/Skin:Vector",
+ "forum" : "https://www.mediawiki.org/wiki/Skin_talk:Vector",
+ "source": "https://git.wikimedia.org/summary/mediawiki%2Fskins%2FVector",
+ "irc" : "irc://irc.freenode.org/mediawiki"
+ },
+ "require" : {
+ "php" : ">=5.3.2",
+ "composer/installers": ">1.0.12"
+ },
+ "autoload" : {
+ "files": [
+ "Vector.php"
+ ]
+ },
+ "extra" : {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ }
+}
diff --git a/skins/vector/csshover.htc b/skins/Vector/csshover.htc
index a13ea68d..a13ea68d 100644
--- a/skins/vector/csshover.htc
+++ b/skins/Vector/csshover.htc
diff --git a/skins/vector/csshover.min.htc b/skins/Vector/csshover.min.htc
index 7e5c57b3..7e5c57b3 100644
--- a/skins/vector/csshover.min.htc
+++ b/skins/Vector/csshover.min.htc
diff --git a/skins/Vector/hooks.txt b/skins/Vector/hooks.txt
new file mode 100644
index 00000000..6ba9de6f
--- /dev/null
+++ b/skins/Vector/hooks.txt
@@ -0,0 +1,6 @@
+Hooks provided by the Vector skin.
+
+'SkinVectorStyleModules': Called when defining the list of module styles to be
+loaded by the Vector skin.
+$skin: SkinVector object
+&$styles: Array of module names whose style will be loaded for the skin
diff --git a/skins/Vector/i18n/ab.json b/skins/Vector/i18n/ab.json
new file mode 100644
index 00000000..d52ed10c
--- /dev/null
+++ b/skins/Vector/i18n/ab.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Temuri rajavi"
+ ]
+ },
+ "vector-action-move": "Ахьӡ аҧсахра",
+ "vector-view-create": "Арҿиара",
+ "vector-view-edit": "Ариашамҭа",
+ "vector-view-history": "Аҭоурых",
+ "vector-view-view": "Аҧхьара",
+ "vector-view-viewsource": "Ахәаҧшра"
+}
diff --git a/skins/Vector/i18n/ace.json b/skins/Vector/i18n/ace.json
new file mode 100644
index 00000000..befc427a
--- /dev/null
+++ b/skins/Vector/i18n/ace.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fadli Idris",
+ "Si Gam Acèh"
+ ]
+ },
+ "vector-action-addsection": "Tamah bhaih",
+ "vector-action-delete": "Sampôh",
+ "vector-action-move": "Pupinah",
+ "vector-action-protect": "Peulindông",
+ "vector-action-undelete": "Bateuë sampôh",
+ "vector-action-unprotect": "Gantoe neulindông",
+ "vector-view-create": "Peugöt",
+ "vector-view-edit": "Andam",
+ "vector-view-history": "Eu riwayat",
+ "vector-view-view": "Beuët",
+ "vector-view-viewsource": "Eu nè"
+}
diff --git a/skins/Vector/i18n/ady-cyrl.json b/skins/Vector/i18n/ady-cyrl.json
new file mode 100644
index 00000000..77ea2335
--- /dev/null
+++ b/skins/Vector/i18n/ady-cyrl.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Adamsa123",
+ "Amire80",
+ "Celekan",
+ "Siklawy"
+ ]
+ },
+ "vector-action-addsection": "1офтхьабз",
+ "vector-action-delete": "ЛъэкӀ",
+ "vector-action-move": "Хьы",
+ "vector-action-protect": "Иухъумэ",
+ "vector-action-undelete": "Умылъэк1",
+ "vector-action-unprotect": "Умыухъумэ",
+ "vector-view-create": "Игъэхъу",
+ "vector-view-edit": "Гъэтэрэзыжь",
+ "vector-view-history": "Тарихъым eплъ",
+ "vector-view-view": "Едж",
+ "vector-view-viewsource": "Еплъ лъапсэм"
+}
diff --git a/skins/Vector/i18n/aeb.json b/skins/Vector/i18n/aeb.json
new file mode 100644
index 00000000..b3c71f9e
--- /dev/null
+++ b/skins/Vector/i18n/aeb.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Csisc",
+ "Malekbr"
+ ]
+ },
+ "vector-action-addsection": "أضف موضوعا",
+ "vector-action-delete": "احذف",
+ "vector-action-move": "انقل",
+ "vector-action-protect": "احم",
+ "vector-action-undelete": "استرجع الحذف",
+ "vector-action-unprotect": "غير الحماية",
+ "vector-view-create": "أنشئ",
+ "vector-view-edit": "Baddel",
+ "vector-view-history": "Warri l'historique",
+ "vector-view-view": "Aqra",
+ "vector-view-viewsource": "اعرض المصدر"
+}
diff --git a/skins/Vector/i18n/af.json b/skins/Vector/i18n/af.json
new file mode 100644
index 00000000..8bd949e2
--- /dev/null
+++ b/skins/Vector/i18n/af.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Byeboer",
+ "Naudefj"
+ ]
+ },
+ "vector-action-addsection": "Nuwe onderwerp",
+ "vector-action-delete": "Skrap",
+ "vector-action-move": "Skuif",
+ "vector-action-protect": "Beskerm",
+ "vector-action-undelete": "Ontskrap",
+ "vector-action-unprotect": "Wysig beskerming",
+ "vector-view-create": "Skep",
+ "vector-view-edit": "Wysig",
+ "vector-view-history": "Wys geskiedenis",
+ "vector-view-view": "Lees",
+ "vector-view-viewsource": "Wys bronteks",
+ "vector-more-actions": "Meer"
+}
diff --git a/skins/Vector/i18n/aln.json b/skins/Vector/i18n/aln.json
new file mode 100644
index 00000000..a5cc022c
--- /dev/null
+++ b/skins/Vector/i18n/aln.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bresta"
+ ]
+ },
+ "vector.css": "/* CSSi i vednosun këtu ka me i prekë shfrytëzuesit e dukjes Vector */",
+ "vector.js": "/* Çdo JavaScript këtu ka me u ngarkue për shfrytëzuesit që përdorin dukjen Vector */",
+ "vector-action-addsection": "Shto temë",
+ "vector-action-delete": "Fshij",
+ "vector-action-move": "Zhvendos",
+ "vector-action-protect": "Mbroj",
+ "vector-action-undelete": "Kthe fshimjen mbrapsht",
+ "vector-action-unprotect": "Hiq mbrojtjen",
+ "vector-view-create": "Krijo",
+ "vector-view-edit": "Redakto",
+ "vector-view-history": "Shih historinë",
+ "vector-view-view": "Lexo",
+ "vector-view-viewsource": "Shih kodin"
+}
diff --git a/skins/Vector/i18n/am.json b/skins/Vector/i18n/am.json
new file mode 100644
index 00000000..55655bb2
--- /dev/null
+++ b/skins/Vector/i18n/am.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Codex Sinaiticus",
+ "Elfalem",
+ "Hinstein",
+ "Teferra"
+ ]
+ },
+ "vector-action-addsection": "ርዕስ ጨምር",
+ "vector-action-delete": "አጥፋ",
+ "vector-action-move": "ለማዛወር",
+ "vector-action-protect": "ለመቆለፍ",
+ "vector-action-undelete": "አታጥፋ",
+ "vector-action-unprotect": "አለመቆለፍ",
+ "vector-view-create": "አዲስ ፍጠር",
+ "vector-view-edit": "አርም",
+ "vector-view-history": "ታሪኩን አሳይ",
+ "vector-view-view": "ለማንበብ",
+ "vector-view-viewsource": "ጥሬ ኮድ ለመመልከት",
+ "vector-more-actions": "ተጨማሪ"
+}
diff --git a/skins/Vector/i18n/an.json b/skins/Vector/i18n/an.json
new file mode 100644
index 00000000..a4b5f0c0
--- /dev/null
+++ b/skins/Vector/i18n/an.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Juanpabl"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector.css": "/* Os estilos CSS colocaus aquí s'aplicarán ta totz os usuarios que faigan servir l'apariencia Vector */",
+ "vector.js": "/* Qualsiquier codigo Javascript escrito aquí se cargará ta totz os usuarios que usen a piel Vector */",
+ "vector-action-addsection": "Adhibir nueva sección",
+ "vector-action-delete": "Borrar",
+ "vector-action-move": "Tresladar",
+ "vector-action-protect": "Protecher",
+ "vector-action-undelete": "Restaurar",
+ "vector-action-unprotect": "Cambiar protección",
+ "vector-view-create": "Creyar",
+ "vector-view-edit": "Editar",
+ "vector-view-history": "Amostrar l'historial",
+ "vector-view-view": "Leyer",
+ "vector-view-viewsource": "Veyer o codigo fuent"
+}
diff --git a/skins/Vector/i18n/ang.json b/skins/Vector/i18n/ang.json
new file mode 100644
index 00000000..56321dc0
--- /dev/null
+++ b/skins/Vector/i18n/ang.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gott wisst"
+ ]
+ },
+ "vector-action-addsection": "Besettan mearcunge",
+ "vector-action-delete": "Forlēosan",
+ "vector-action-move": "Wegan",
+ "vector-action-protect": "Beorgan",
+ "vector-action-undelete": "Scieppan tramet eft",
+ "vector-action-unprotect": "Andwendan beorgunge",
+ "vector-view-create": "Scieppan",
+ "vector-view-edit": "Adihtan",
+ "vector-view-history": "Stǣr",
+ "vector-view-view": "Rǣdan",
+ "vector-view-viewsource": "Sēon fruman"
+}
diff --git a/skins/Vector/i18n/ar.json b/skins/Vector/i18n/ar.json
new file mode 100644
index 00000000..9c07d9b8
--- /dev/null
+++ b/skins/Vector/i18n/ar.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abanima",
+ "Calak",
+ "Meno25",
+ "Mido",
+ "OsamaK",
+ "أحمد",
+ "زكريا"
+ ]
+ },
+ "skinname-vector": "فكتور",
+ "vector.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة فكتور */",
+ "vector.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة فكتور */",
+ "vector-action-addsection": "أضف موضوعا",
+ "vector-action-delete": "احذف",
+ "vector-action-move": "انقل",
+ "vector-action-protect": "احم",
+ "vector-action-undelete": "ألغ الحذف",
+ "vector-action-unprotect": "غير الحماية",
+ "vector-view-create": "أنشئ",
+ "vector-view-edit": "عدل",
+ "vector-view-history": "اعرض التاريخ",
+ "vector-view-view": "اقرأ",
+ "vector-view-viewsource": "اعرض المصدر",
+ "vector-more-actions": "مزيد"
+}
diff --git a/skins/Vector/i18n/arc.json b/skins/Vector/i18n/arc.json
new file mode 100644
index 00000000..7bb23728
--- /dev/null
+++ b/skins/Vector/i18n/arc.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "334a",
+ "Basharh",
+ "Michaelovic"
+ ]
+ },
+ "vector-action-addsection": "ܐܘܣܦ ܡܠܘܐܐ",
+ "vector-action-delete": "ܫܘܦ",
+ "vector-action-move": "ܫܢܝ",
+ "vector-action-protect": "ܛܪ",
+ "vector-action-undelete": "ܠܐ ܫܘܦ",
+ "vector-action-unprotect": "ܫܚܠܦ ܢܛܝܪܘܬܐ",
+ "vector-view-create": "ܒܪܝ",
+ "vector-view-edit": "ܫܚܠܦ",
+ "vector-view-history": "ܚܙܝ ܬܫܥܝܬܐ",
+ "vector-view-view": "ܩܪܝ",
+ "vector-view-viewsource": "ܚܙܝ ܡܒܘܥܐ"
+}
diff --git a/skins/Vector/i18n/arn.json b/skins/Vector/i18n/arn.json
new file mode 100644
index 00000000..9ff9636c
--- /dev/null
+++ b/skins/Vector/i18n/arn.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Clerc",
+ "Fiestoforo"
+ ]
+ },
+ "vector-action-addsection": "Püñamtun dungu",
+ "vector-action-delete": "Liftun",
+ "vector-action-move": "Wiñamün",
+ "vector-action-protect": "Nürüfkünun",
+ "vector-action-undelete": "Wüñoñamümün",
+ "vector-action-unprotect": "Kalekünun Nürüfkünun",
+ "vector-view-create": "Dewman",
+ "vector-view-edit": "Kümeelün",
+ "vector-view-history": "Pengelün rupañmael",
+ "vector-view-view": "Chillkatun",
+ "vector-view-viewsource": "Kimam chew küpan chi wirin"
+}
diff --git a/skins/Vector/i18n/aro.json b/skins/Vector/i18n/aro.json
new file mode 100644
index 00000000..77dc6c41
--- /dev/null
+++ b/skins/Vector/i18n/aro.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ooswesthoesbes"
+ ]
+ },
+ "vector-view-edit": "Imeakie"
+}
diff --git a/skins/Vector/i18n/arq.json b/skins/Vector/i18n/arq.json
new file mode 100644
index 00000000..740ab9b7
--- /dev/null
+++ b/skins/Vector/i18n/arq.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bachounda",
+ "Oldstoneage"
+ ]
+ },
+ "vector-action-addsection": "زيد موضوع",
+ "vector-action-delete": "امحي",
+ "vector-action-move": "حول",
+ "vector-action-protect": "بروجي",
+ "vector-action-undelete": "ردّ كيما كان",
+ "vector-action-unprotect": "بدّل الـحماية",
+ "vector-view-create": "أصنع",
+ "vector-view-edit": "بدل",
+ "vector-view-history": "روح للتاريخي",
+ "vector-view-view": "أقرى",
+ "vector-view-viewsource": "شوف المصدر"
+}
diff --git a/skins/Vector/i18n/ary.json b/skins/Vector/i18n/ary.json
new file mode 100644
index 00000000..db687eac
--- /dev/null
+++ b/skins/Vector/i18n/ary.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Enzoreg",
+ "Zanatos"
+ ]
+ },
+ "vector-action-addsection": "Zid topic",
+ "vector-action-delete": "Suprimi",
+ "vector-action-move": "Neqel",
+ "vector-action-protect": "Ḫami",
+ "vector-action-undelete": "rja lhadf",
+ "vector-action-unprotect": "Ḫiyed l-ḫimaya",
+ "vector-view-create": "Ĥṫareĝ",
+ "vector-view-edit": "Ĝedel",
+ "vector-view-history": "Ṫariĥ l-fiċyé",
+ "vector-view-view": "Qra",
+ "vector-view-viewsource": "Ċof l-masdar"
+}
diff --git a/skins/Vector/i18n/arz.json b/skins/Vector/i18n/arz.json
new file mode 100644
index 00000000..3541b15b
--- /dev/null
+++ b/skins/Vector/i18n/arz.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ghaly",
+ "Meno25",
+ "Ramsis II"
+ ]
+ },
+ "vector.css": "/* CSS اللى هنا حتأثر على اليوزرز اللى بيستخدموا واجهة فكتور */",
+ "vector.js": "/* اى جافاسكريبت هنا حتتحمل لكل يوزر بيستخدم واجهة فكتور */",
+ "vector-action-addsection": "ضيف موضوع",
+ "vector-action-delete": "مسح",
+ "vector-action-move": "نقل",
+ "vector-action-protect": "حمايه",
+ "vector-action-undelete": "الغى المسح",
+ "vector-action-unprotect": "غير الحمايه",
+ "vector-view-create": "اعمل",
+ "vector-view-edit": "تعديل",
+ "vector-view-history": "استعراض التاريخ",
+ "vector-view-view": "قرايه",
+ "vector-view-viewsource": "استعراض المصدر"
+}
diff --git a/skins/Vector/i18n/as.json b/skins/Vector/i18n/as.json
new file mode 100644
index 00000000..92efe9f3
--- /dev/null
+++ b/skins/Vector/i18n/as.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bishnu Saikia",
+ "Chaipau",
+ "Gitartha.bordoloi"
+ ]
+ },
+ "vector-action-addsection": "বিষয় যোগ",
+ "vector-action-delete": "বিলোপ কৰক",
+ "vector-action-move": "স্থানান্তৰ কৰক",
+ "vector-action-protect": "সুৰক্ষিত কৰক",
+ "vector-action-undelete": "পুনৰুদ্ধাৰ কৰক",
+ "vector-action-unprotect": "সুৰক্ষা সলনি কৰক",
+ "vector-view-create": "সৃষ্টি কৰক",
+ "vector-view-edit": "সম্পাদনা",
+ "vector-view-history": "ইতিহাস চাওক",
+ "vector-view-view": "পঢ়ক",
+ "vector-view-viewsource": "উৎস চাওক",
+ "vector-more-actions": "অধিক"
+}
diff --git a/skins/Vector/i18n/ase.json b/skins/Vector/i18n/ase.json
new file mode 100644
index 00000000..97a35001
--- /dev/null
+++ b/skins/Vector/i18n/ase.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Icemandeaf"
+ ]
+ },
+ "skinname-vector": "M509x575S10e20494x425S14a20493x459S16d20492x478S1fb20494x502S17620493x525S11a20493x545",
+ "vector-skin-desc": "M535x520S19a00507x481S19a08465x481S22f14465x506S22f04509x506 M515x598S18d20494x403S17620499x432S11920493x452S17620499x482S14720500x502S17620499x528S17620499x548S14020485x568 M521x508S1f748479x493S1f740501x493 M532x517S15a16505x505S2880f468x484S20e00491x495S1821d503x492 M534x547S2ff00482x483S10001513x517S2e305488x487 S38700463x496 M535x536S20300516x521S20308470x521S26500516x502S26510470x502S14c30511x465S14c38465x465 M526x522S15a56499x510S11520503x479S20e00489x496S26a02474x489 M520x540S37606481x460S15a40508x513S28801499x491S20500488x492",
+ "vector.css": "/* M509x529S16d20492x471S20320493x495S20320493x514 M535x523S14c50508x492S14c58469x492S22520503x477S22520465x477 M525x525S10004510x475S22a04511x510S1000c476x475S22a14477x510 M534x518S2ff00482x483S15a10522x486S2b700514x458 M521x532S10609498x496S10621487x512S21100500x483S2df20479x468 M526x522S15a56499x510S11520503x479S20e00489x496S26a02474x489 M521x508S1f748479x493S1f740501x493 M509x575S10e20494x425S14a20493x459S16d20492x478S1fb20494x502S17620493x525S11a20493x545 M517x524S15a02484x477S15a20489x484S21100504x492S22a04504x509 */",
+ "vector.js": "/* M520x523S1f540480x477S2a204497x495 M519x527S19220498x489S2a20c482x473S20320498x512 M525x525S10004510x475S22a04511x510S1000c476x475S22a14477x510 M534x518S2ff00482x483S15a10522x486S2b700514x458 M524x539S14402493x485S1440a486x461S22b00508x509S22b10476x483 M536x521S2ff00482x483S10011515x491S28108515x461 M526x522S15a56499x510S11520503x479S20e00489x496S26a02474x489 M509x575S10e20494x425S14a20493x459S16d20492x478S1fb20494x502S17620493x525S11a20493x545 M517x524S15a02484x477S15a20489x484S21100504x492S22a04504x509 */",
+ "vector-action-addsection": "M532x517S15a16505x505S2880f468x484S20e00491x495S1821d503x492 M522x522S15a37478x479S10041485x492S20600500x492",
+ "vector-action-delete": "M527x532S1ea40473x511S1f540512x478S22a07497x504S2f700512x468",
+ "vector-action-move": "M552x509S18520488x494S18528449x494S26626522x492",
+ "vector-action-protect": "M512x519S15a19488x482S15a11489x482S20600488x508",
+ "vector-action-undelete": "M515x538S15a0a486x463S10050500x467S2330b485x516S20e00491x501 M527x532S1ea40473x511S1f540512x478S22a07497x504S2f700512x468",
+ "vector-action-unprotect": "M521x532S10609498x496S10621487x512S21100500x483S2df20479x468 M512x519S15a19488x482S15a11489x482S20600488x508",
+ "vector-view-create": "M532x519S20302493x485S2030a489x502S21100509x504S26900516x482S26910468x501",
+ "vector-view-edit": "M521x532S10609498x496S10621487x512S21100500x483S2df20479x468",
+ "vector-view-history": "M525x524S2ff00482x483S10e00507x494S26500511x474 M514x523S11541487x478S22f04489x509",
+ "vector-view-view": "M513x540S15a06486x459S10e50494x474S22b04493x510",
+ "vector-view-viewsource": "M525x524S2ff00482x483S10e00507x494S26500511x474 M509x545S16d20492x456S17620493x480S10120493x497S14a20494x530",
+ "vector-more-actions": "M526x508S18510501x493S18518475x493"
+}
diff --git a/skins/Vector/i18n/ast.json b/skins/Vector/i18n/ast.json
new file mode 100644
index 00000000..dc9ac236
--- /dev/null
+++ b/skins/Vector/i18n/ast.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Esbardu",
+ "Xuacu"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Versión moderna de MonoBook, con un aspeutu frescu y munchos ameyoramientos d'usabilidá",
+ "vector.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Vector */",
+ "vector.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu Vector */",
+ "vector-action-addsection": "Amestar seición",
+ "vector-action-delete": "Desaniciar",
+ "vector-action-move": "Treslladar",
+ "vector-action-protect": "Protexer",
+ "vector-action-undelete": "Restaurar",
+ "vector-action-unprotect": "Camudar la proteición",
+ "vector-view-create": "Crear",
+ "vector-view-edit": "Editar",
+ "vector-view-history": "Ver historial",
+ "vector-view-view": "Lleer",
+ "vector-view-viewsource": "Ver fonte",
+ "vector-more-actions": "Más"
+}
diff --git a/skins/Vector/i18n/av.json b/skins/Vector/i18n/av.json
new file mode 100644
index 00000000..e7a6452b
--- /dev/null
+++ b/skins/Vector/i18n/av.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Умар"
+ ]
+ },
+ "vector-view-edit": "Хисизабизе"
+}
diff --git a/skins/Vector/i18n/avk.json b/skins/Vector/i18n/avk.json
new file mode 100644
index 00000000..a0585bd8
--- /dev/null
+++ b/skins/Vector/i18n/avk.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wikimistusik"
+ ]
+ },
+ "vector-action-addsection": "Loplekura va detce",
+ "vector-action-delete": "Sulara",
+ "vector-action-move": "Arrundara",
+ "vector-action-protect": "Nendara",
+ "vector-view-create": "Redura",
+ "vector-view-edit": "Betara",
+ "vector-view-history": "Wira va izvot",
+ "vector-view-view": "Belira",
+ "vector-view-viewsource": "klitawira"
+}
diff --git a/skins/Vector/i18n/az.json b/skins/Vector/i18n/az.json
new file mode 100644
index 00000000..48d42e59
--- /dev/null
+++ b/skins/Vector/i18n/az.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "AZISS",
+ "Arystanbek",
+ "Gulmammad",
+ "Sortilegus",
+ "Vago",
+ "Vugar 1981",
+ "Wertuose"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector.css": "/* Burada yerləşən CSS Vector istifadəçilərinə tətbiq olunur */",
+ "vector.js": "/* Burada Vector skin istifadəçiləri üçün istənilən JavaScript yüklənəcək */",
+ "vector-action-addsection": "Mövzu əlavə et",
+ "vector-action-delete": "Sil",
+ "vector-action-move": "Adını dəyişdir",
+ "vector-action-protect": "Mühafizə et",
+ "vector-action-undelete": "Bərpa et",
+ "vector-action-unprotect": "Mühafizəni kənarlaşdır",
+ "vector-view-create": "Yarat",
+ "vector-view-edit": "Redaktə",
+ "vector-view-history": "Tarixçəyə bax",
+ "vector-view-view": "Oxu",
+ "vector-view-viewsource": "Mənbəyə bax",
+ "vector-more-actions": "Daha"
+}
diff --git a/skins/Vector/i18n/azb.json b/skins/Vector/i18n/azb.json
new file mode 100644
index 00000000..ae46e1ce
--- /dev/null
+++ b/skins/Vector/i18n/azb.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "E THP",
+ "Ebrahimi-amir",
+ "Mousa"
+ ]
+ },
+ "vector-action-addsection": "قوْنو آرتیر",
+ "vector-action-delete": "سیل",
+ "vector-action-move": "داشی",
+ "vector-action-protect": "قوْرو",
+ "vector-action-undelete": "سیلمگی قایتار",
+ "vector-action-unprotect": "قوْروماغی دَییشدیر",
+ "vector-view-create": "یارات",
+ "vector-view-edit": "دَییشدیر",
+ "vector-view-history": "گئچمیشه باخ",
+ "vector-view-view": "اوْخو",
+ "vector-view-viewsource": "قایناغا باخ"
+}
diff --git a/skins/Vector/i18n/ba.json b/skins/Vector/i18n/ba.json
new file mode 100644
index 00000000..30969f7c
--- /dev/null
+++ b/skins/Vector/i18n/ba.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Assele",
+ "Haqmar"
+ ]
+ },
+ "skinname-vector": "Векторлы",
+ "vector-action-addsection": "Тема өҫтәргә",
+ "vector-action-delete": "Юйырға",
+ "vector-action-move": "Исемен үҙгәртергә",
+ "vector-action-protect": "Һаҡларға",
+ "vector-action-undelete": "Тергеҙергә",
+ "vector-action-unprotect": "Һаҡлауҙы үҙгәртергә",
+ "vector-view-create": "Яһау",
+ "vector-view-edit": "Үҙгәртергә",
+ "vector-view-history": "Тарихты ҡарау",
+ "vector-view-view": "Уҡыу",
+ "vector-view-viewsource": "Сығанаҡты ҡарарға"
+}
diff --git a/skins/Vector/i18n/ban.json b/skins/Vector/i18n/ban.json
new file mode 100644
index 00000000..4641011f
--- /dev/null
+++ b/skins/Vector/i18n/ban.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Adi Mayndra",
+ "BASAbali"
+ ]
+ },
+ "vector-action-addsection": "imbuhin indik wacana",
+ "vector-action-delete": "ngapus",
+ "vector-action-move": "kisidang",
+ "vector-action-protect": "nyaga",
+ "vector-view-create": "ngawe",
+ "vector-view-edit": "mecikang",
+ "vector-view-history": "indik sane lintang",
+ "vector-view-view": "Waca",
+ "vector-view-viewsource": "cingak witnyane"
+}
diff --git a/skins/Vector/i18n/bar.json b/skins/Vector/i18n/bar.json
new file mode 100644
index 00000000..0c085b16
--- /dev/null
+++ b/skins/Vector/i18n/bar.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bua333",
+ "Mucalexx"
+ ]
+ },
+ "vector-action-addsection": "An Obschnitt dazua doa",
+ "vector-action-delete": "Leschn",
+ "vector-action-move": "Vaschiabm",
+ "vector-action-protect": "Schitzn",
+ "vector-action-undelete": "Wiederherstön",
+ "vector-action-unprotect": "freigeem",
+ "vector-view-create": "Aufbaun",
+ "vector-view-edit": "Werkln",
+ "vector-view-history": "Gschicht oschaugn",
+ "vector-view-view": "Lesn",
+ "vector-view-viewsource": "Quejtext ozoagn"
+}
diff --git a/skins/Vector/i18n/bbc-latn.json b/skins/Vector/i18n/bbc-latn.json
new file mode 100644
index 00000000..fe9a2840
--- /dev/null
+++ b/skins/Vector/i18n/bbc-latn.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Daniel Harahap",
+ "WBT003Bugari",
+ "WBT006Hendra",
+ "WBT009Anju"
+ ]
+ },
+ "vector-action-addsection": "Bagian na imbaru",
+ "vector-action-delete": "Sesa",
+ "vector-action-move": "Pahusor",
+ "vector-action-protect": "Ramoti",
+ "vector-action-undelete": "unang sesa",
+ "vector-action-unprotect": "Uba parlindungan",
+ "vector-view-create": "Tompa",
+ "vector-view-edit": "Paubah",
+ "vector-view-history": "Patudu andorang na",
+ "vector-view-view": "Jaha",
+ "vector-view-viewsource": "Ida haroanna"
+}
diff --git a/skins/Vector/i18n/bcc.json b/skins/Vector/i18n/bcc.json
new file mode 100644
index 00000000..f6c3c4d1
--- /dev/null
+++ b/skins/Vector/i18n/bcc.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mostafadaneshvar",
+ "RigiMahnoor"
+ ]
+ },
+ "vector-action-addsection": "هور کتن عنوان",
+ "vector-action-delete": "زورگ",
+ "vector-action-move": "جاه په جاه",
+ "vector-action-protect": "حفاظت",
+ "vector-action-undelete": "ترینگ",
+ "vector-action-unprotect": "پروتکشنء ٹگل بدئ",
+ "vector-view-create": "شرکتن",
+ "vector-view-edit": "اصلاح",
+ "vector-view-history": "چارتن تاریح",
+ "vector-view-view": "وانتن",
+ "vector-view-viewsource": "پیشدارگ بن جاه",
+ "vector-more-actions": "گیشتر"
+}
diff --git a/skins/Vector/i18n/bcl.json b/skins/Vector/i18n/bcl.json
new file mode 100644
index 00000000..7e2d73a2
--- /dev/null
+++ b/skins/Vector/i18n/bcl.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filipinayzd",
+ "Geopoet"
+ ]
+ },
+ "vector-action-addsection": "Idagdag an topic",
+ "vector-action-delete": "puráon",
+ "vector-action-move": "Ibalyó",
+ "vector-action-protect": "Protektaran",
+ "vector-action-undelete": "Bawion sa pagkapara",
+ "vector-action-unprotect": "Ribayan an proteksyon",
+ "vector-view-create": "Magmukna",
+ "vector-view-edit": "Liwatón",
+ "vector-view-history": "Tanawon sa historiya",
+ "vector-view-view": "Basáha",
+ "vector-view-viewsource": "Hilingón an ginikánan"
+}
diff --git a/skins/Vector/i18n/be-tarask.json b/skins/Vector/i18n/be-tarask.json
new file mode 100644
index 00000000..4bbef699
--- /dev/null
+++ b/skins/Vector/i18n/be-tarask.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "EugeneZelenko",
+ "Red Winged Duck",
+ "Wizardist"
+ ]
+ },
+ "skinname-vector": "Вэктар",
+ "vector-action-addsection": "Дадаць тэму",
+ "vector-action-delete": "Выдаліць",
+ "vector-action-move": "Перанесьці",
+ "vector-action-protect": "Абараніць",
+ "vector-action-undelete": "Аднавіць",
+ "vector-action-unprotect": "Зьмяніць абарону",
+ "vector-view-create": "Стварыць",
+ "vector-view-edit": "Рэдагаваць",
+ "vector-view-history": "Паказаць гісторыю",
+ "vector-view-view": "Чытаць",
+ "vector-view-viewsource": "Паказаць крыніцу",
+ "vector-more-actions": "Болей"
+}
diff --git a/skins/Vector/i18n/be.json b/skins/Vector/i18n/be.json
new file mode 100644
index 00000000..5dbc57c5
--- /dev/null
+++ b/skins/Vector/i18n/be.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mikalai Udodau",
+ "Yury Tarasievich",
+ "Дзяніс Тутэйшы",
+ "Хомелка"
+ ]
+ },
+ "vector-skin-desc": "Сучасная версія вокладкі Манабук, з абноўленым відам і шматлікімі зручнымі паляпшэннямі",
+ "vector-action-addsection": "Дадаць тэму",
+ "vector-action-delete": "Сцерці",
+ "vector-action-move": "Перанесці",
+ "vector-action-protect": "Ахова",
+ "vector-action-undelete": "Аднавіць",
+ "vector-action-unprotect": "Змяніць ахову",
+ "vector-view-create": "Стварыць",
+ "vector-view-edit": "Правіць",
+ "vector-view-history": "Паказаць гісторыю",
+ "vector-view-view": "Чытаць",
+ "vector-view-viewsource": "Паказаць зыходны тэкст",
+ "vector-more-actions": "Яшчэ"
+}
diff --git a/skins/Vector/i18n/bew.json b/skins/Vector/i18n/bew.json
new file mode 100644
index 00000000..ab009b4e
--- /dev/null
+++ b/skins/Vector/i18n/bew.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Naval Scene"
+ ]
+ },
+ "vector-action-delete": "Ngapus",
+ "vector-action-move": "Pindahin",
+ "vector-action-undelete": "Balikin nyang keapus",
+ "vector-view-create": "Bikin"
+}
diff --git a/skins/Vector/i18n/bg.json b/skins/Vector/i18n/bg.json
new file mode 100644
index 00000000..087556d2
--- /dev/null
+++ b/skins/Vector/i18n/bg.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borislav",
+ "DCLXVI",
+ "Spiritia",
+ "StanProg"
+ ]
+ },
+ "vector-action-addsection": "Добавяне на тема",
+ "vector-action-delete": "Изтриване",
+ "vector-action-move": "Преместване",
+ "vector-action-protect": "Защита",
+ "vector-action-undelete": "Възстановяване",
+ "vector-action-unprotect": "Промяна на защитата",
+ "vector-view-create": "Създаване",
+ "vector-view-edit": "Редактиране",
+ "vector-view-history": "История",
+ "vector-view-view": "Преглед",
+ "vector-view-viewsource": "Преглед на кода",
+ "vector-more-actions": "Още"
+}
diff --git a/skins/Vector/i18n/bho.json b/skins/Vector/i18n/bho.json
new file mode 100644
index 00000000..e41f3322
--- /dev/null
+++ b/skins/Vector/i18n/bho.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ganesh",
+ "Nepaboy"
+ ]
+ },
+ "vector-action-addsection": "विषय जोड़ीं",
+ "vector-action-delete": "मिटाईं",
+ "vector-action-move": "स्थांतरण",
+ "vector-action-protect": "संरक्षित करीं",
+ "vector-action-undelete": "मत मिटाईं",
+ "vector-action-unprotect": "सुरक्षा बदलीं",
+ "vector-view-create": "बनाईं",
+ "vector-view-edit": "सम्पादन",
+ "vector-view-history": "इतिहास देखीं",
+ "vector-view-view": "पढ़ीं",
+ "vector-view-viewsource": "स्त्रोत देखीं"
+}
diff --git a/skins/Vector/i18n/bi.json b/skins/Vector/i18n/bi.json
new file mode 100644
index 00000000..a30c41bf
--- /dev/null
+++ b/skins/Vector/i18n/bi.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sotiale"
+ ]
+ },
+ "vector-action-move": "Muv",
+ "vector-view-history": "Lukluk histri",
+ "vector-view-view": "Rid"
+}
diff --git a/skins/Vector/i18n/bjn.json b/skins/Vector/i18n/bjn.json
new file mode 100644
index 00000000..61cb74e3
--- /dev/null
+++ b/skins/Vector/i18n/bjn.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ezagren",
+ "J Subhi"
+ ]
+ },
+ "vector-action-addsection": "Tambahi tupik",
+ "vector-action-delete": "Hapus",
+ "vector-action-move": "Pindahakan",
+ "vector-action-protect": "Lindungi",
+ "vector-action-undelete": "Pawalangan pahapusan",
+ "vector-action-unprotect": "Palindungan",
+ "vector-view-create": "Ulah",
+ "vector-view-edit": "Babak",
+ "vector-view-history": "Tiringi halam",
+ "vector-view-view": "Baca",
+ "vector-view-viewsource": "Tiringi asal mula"
+}
diff --git a/skins/Vector/i18n/bm.json b/skins/Vector/i18n/bm.json
new file mode 100644
index 00000000..9164ec8b
--- /dev/null
+++ b/skins/Vector/i18n/bm.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amadouyoro.thiam"
+ ]
+ },
+ "vector-view-view": "Kalan"
+}
diff --git a/skins/Vector/i18n/bn.json b/skins/Vector/i18n/bn.json
new file mode 100644
index 00000000..a2c37b3d
--- /dev/null
+++ b/skins/Vector/i18n/bn.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aftab1995",
+ "Bellayet",
+ "Leemon2010",
+ "Nasir8891",
+ "Tauhid16",
+ "Wikitanvir"
+ ]
+ },
+ "skinname-vector": "ভেক্টর",
+ "vector-action-addsection": "বিষয় যোগ",
+ "vector-action-delete": "অপসারণ",
+ "vector-action-move": "স্থানান্তর",
+ "vector-action-protect": "সুরক্ষা",
+ "vector-action-undelete": "পুনরুদ্ধার",
+ "vector-action-unprotect": "সুরক্ষা পরিবর্তন",
+ "vector-view-create": "তৈরি",
+ "vector-view-edit": "সম্পাদনা",
+ "vector-view-history": "ইতিহাস",
+ "vector-view-view": "পড়ুন",
+ "vector-view-viewsource": "উৎস দেখুন",
+ "vector-more-actions": "আরও"
+}
diff --git a/skins/Vector/i18n/bo.json b/skins/Vector/i18n/bo.json
new file mode 100644
index 00000000..defe396d
--- /dev/null
+++ b/skins/Vector/i18n/bo.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Freeyak",
+ "Phurbutsering"
+ ]
+ },
+ "vector-action-addsection": "བརྗོད་གཞི་ཁ་སྣོན།",
+ "vector-action-delete": "སུབས།",
+ "vector-action-move": "སྤོར་བ།",
+ "vector-action-protect": "འགོག་སྲུང།",
+ "vector-action-undelete": "མི་བསུབས་",
+ "vector-action-unprotect": "སྲུང་སྐྱོབ་གློད་པ།",
+ "vector-view-create": "གསར་བཟོ།",
+ "vector-view-edit": "རྩོམ་སྒྲིག",
+ "vector-view-history": "ལོ་རྒྱུས་ལ་ལྟ་བ།",
+ "vector-view-view": "ཀློག་པ།",
+ "vector-view-viewsource": "ཁུངས་ལ་ལྟ་བ།"
+}
diff --git a/skins/Vector/i18n/bpy.json b/skins/Vector/i18n/bpy.json
new file mode 100644
index 00000000..31243639
--- /dev/null
+++ b/skins/Vector/i18n/bpy.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Usingha"
+ ]
+ },
+ "vector-action-addsection": "বিষয় তিলকর",
+ "vector-action-delete": "পুসে বেলা",
+ "vector-action-move": "থেইকর",
+ "vector-action-protect": "লুকর",
+ "vector-action-undelete": "নাপুসি",
+ "vector-action-unprotect": "লুকরানিহান সিলকর",
+ "vector-view-create": "হঙকরিক",
+ "vector-view-edit": "পতানি",
+ "vector-view-history": "ইতিহাস চেইক",
+ "vector-view-view": "পাকরিক",
+ "vector-view-viewsource": "সোর্স চেইক"
+}
diff --git a/skins/Vector/i18n/br.json b/skins/Vector/i18n/br.json
new file mode 100644
index 00000000..9cf579b7
--- /dev/null
+++ b/skins/Vector/i18n/br.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fulup",
+ "Y-M D"
+ ]
+ },
+ "skinname-vector": "Vektor",
+ "vector.css": "/* Talvezout a raio ar CSS lakaet amañ evit implijerien ar gwiskadur Vektor */",
+ "vector.js": "/* Kement JavaScript amañ a vo karget evit an implijerien a ra gant ar gwiskadur Vektor */",
+ "vector-action-addsection": "Rannbennad nevez",
+ "vector-action-delete": "Diverkañ",
+ "vector-action-move": "Adenvel",
+ "vector-action-protect": "Gwareziñ",
+ "vector-action-undelete": "Diziverkañ",
+ "vector-action-unprotect": "Cheñch gwarez",
+ "vector-view-create": "Krouiñ",
+ "vector-view-edit": "Kemmañ",
+ "vector-view-history": "Gwelet an istor",
+ "vector-view-view": "Lenn",
+ "vector-view-viewsource": "Sellet ouzh tarzh an destenn",
+ "vector-more-actions": "Muioc'h"
+}
diff --git a/skins/Vector/i18n/brh.json b/skins/Vector/i18n/brh.json
new file mode 100644
index 00000000..ee435e64
--- /dev/null
+++ b/skins/Vector/i18n/brh.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Imdadb"
+ ]
+ },
+ "vector-action-addsection": "Púskun sarhál",
+ "vector-action-delete": "Mesa",
+ "vector-action-move": "Surif",
+ "vector-action-protect": "Rakk",
+ "vector-view-create": "Biná",
+ "vector-view-edit": "Radbadal",
+ "vector-view-history": "Lekav e ur",
+ "vector-view-view": "Xuán",
+ "vector-view-viewsource": "Bumpad e ur"
+}
diff --git a/skins/Vector/i18n/bs.json b/skins/Vector/i18n/bs.json
new file mode 100644
index 00000000..f5e80acb
--- /dev/null
+++ b/skins/Vector/i18n/bs.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "CERminator",
+ "DzWiki",
+ "KWiki",
+ "Edinwiki"
+ ]
+ },
+ "vector-action-addsection": "Dodaj temu",
+ "vector-action-delete": "Izbriši",
+ "vector-action-move": "Preusmjeri",
+ "vector-action-protect": "Zaštiti",
+ "vector-action-undelete": "Vrati obrisano",
+ "vector-action-unprotect": "Promijeni zaštitu",
+ "vector-view-create": "Napravi",
+ "vector-view-edit": "Uredi",
+ "vector-view-history": "Pregled historije",
+ "vector-view-view": "Čitanje",
+ "vector-view-viewsource": "Pogledaj izvor",
+ "vector-more-actions": "Više"
+}
diff --git a/skins/Vector/i18n/bto.json b/skins/Vector/i18n/bto.json
new file mode 100644
index 00000000..4dd54b86
--- /dev/null
+++ b/skins/Vector/i18n/bto.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filipinayzd"
+ ]
+ },
+ "vector-action-delete": "Puraon",
+ "vector-action-move": "Ilipat",
+ "vector-action-protect": "Protektaran",
+ "vector-action-undelete": "Ibalik",
+ "vector-action-unprotect": "Ribayan a proteksyon",
+ "vector-view-create": "Gumibo",
+ "vector-view-edit": "Balyowan",
+ "vector-view-history": "Baydon a kasaysayan",
+ "vector-view-view": "Basahon",
+ "vector-view-viewsource": "Baydon a ginikanan",
+ "vector-more-actions": "Dakul pa"
+}
diff --git a/skins/Vector/i18n/bug.json b/skins/Vector/i18n/bug.json
new file mode 100644
index 00000000..b1b0f9e2
--- /dev/null
+++ b/skins/Vector/i18n/bug.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kurniasan"
+ ]
+ },
+ "vector-action-move": "Paléccé'",
+ "vector-view-create": "Ebbu",
+ "vector-view-edit": "Padéccéng",
+ "vector-view-view": "Baca",
+ "vector-view-viewsource": "Ita sumber"
+}
diff --git a/skins/Vector/i18n/bxr.json b/skins/Vector/i18n/bxr.json
new file mode 100644
index 00000000..64ff4130
--- /dev/null
+++ b/skins/Vector/i18n/bxr.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjargal",
+ "Elvonudinium"
+ ]
+ },
+ "vector-action-addsection": "Һэдэб нэмэхэ",
+ "vector-action-delete": "Усадхаха",
+ "vector-action-move": "Зөөхэ",
+ "vector-view-create": "Үүдхэхэ",
+ "vector-view-edit": "Заһабарилха",
+ "vector-view-history": "Түүхые хараха",
+ "vector-view-view": "Уншаха",
+ "vector-view-viewsource": "эшэ үндэһэндэнь хандаха"
+}
diff --git a/skins/Vector/i18n/ca.json b/skins/Vector/i18n/ca.json
new file mode 100644
index 00000000..c494f64f
--- /dev/null
+++ b/skins/Vector/i18n/ca.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aleator",
+ "Anskar",
+ "Calak",
+ "Paucabot",
+ "Ssola",
+ "Vriullop",
+ "Toniher",
+ "Fitoschido"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Versió moderna del MonoBook amb un nou aspesctes i moltes millores en la usabilitat",
+ "vector-action-addsection": "Secció nova",
+ "vector-action-delete": "Esborra",
+ "vector-action-move": "Reanomena",
+ "vector-action-protect": "Protegeix",
+ "vector-action-undelete": "Restaura",
+ "vector-action-unprotect": "Desprotegeix",
+ "vector-view-create": "Crea",
+ "vector-view-edit": "Modifica",
+ "vector-view-history": "Mostra l'historial",
+ "vector-view-view": "Mostra",
+ "vector-view-viewsource": "Mostra el codi",
+ "vector-more-actions": "Més"
+}
diff --git a/skins/Vector/i18n/cdo.json b/skins/Vector/i18n/cdo.json
new file mode 100644
index 00000000..e5f7baec
--- /dev/null
+++ b/skins/Vector/i18n/cdo.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Yejianfei",
+ "唐吉訶德的侍從"
+ ]
+ },
+ "vector-action-addsection": "加話題",
+ "vector-action-delete": "刪掉咯",
+ "vector-action-move": "移動",
+ "vector-action-protect": "保護",
+ "vector-action-undelete": "取消刪除",
+ "vector-action-unprotect": "改變保護",
+ "vector-view-create": "創建",
+ "vector-view-edit": "修改",
+ "vector-view-history": "看歷史",
+ "vector-view-view": "讀",
+ "vector-view-viewsource": "看源代碼",
+ "vector-more-actions": "再看"
+}
diff --git a/skins/Vector/i18n/ce.json b/skins/Vector/i18n/ce.json
new file mode 100644
index 00000000..75053d78
--- /dev/null
+++ b/skins/Vector/i18n/ce.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sasan700",
+ "Умар"
+ ]
+ },
+ "skinname-vector": "Векторан",
+ "vector-action-addsection": "ТӀетоха хьедар",
+ "vector-action-delete": "ДӀаяккха",
+ "vector-action-move": "ЦӀе хийца",
+ "vector-action-protect": "Гlаролла дé",
+ "vector-action-undelete": "МеттахӀоттае",
+ "vector-action-unprotect": "ГӀароллех къаста",
+ "vector-view-create": "Кхоллар",
+ "vector-view-edit": "Нисъе",
+ "vector-view-history": "АгӀона хийцамаш",
+ "vector-view-view": "Éшар",
+ "vector-view-viewsource": "Билглонашка хьажа",
+ "vector-more-actions": "Кхин"
+}
diff --git a/skins/Vector/i18n/ceb.json b/skins/Vector/i18n/ceb.json
new file mode 100644
index 00000000..e2c631fc
--- /dev/null
+++ b/skins/Vector/i18n/ceb.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jordz"
+ ]
+ },
+ "vector-action-addsection": "Pagdugang og topiko",
+ "vector-action-delete": "Papasa",
+ "vector-action-move": "Ibalhin",
+ "vector-action-protect": "Protektahi",
+ "vector-action-undelete": "Ayaw papasa",
+ "vector-action-unprotect": "Ayaw protektahi",
+ "vector-view-create": "Himoa",
+ "vector-view-edit": "Usba",
+ "vector-view-history": "Tan-awa ang kaagi",
+ "vector-view-view": "Basaha",
+ "vector-view-viewsource": "Tan-awa ang ginikanan"
+}
diff --git a/skins/Vector/i18n/ckb.json b/skins/Vector/i18n/ckb.json
new file mode 100644
index 00000000..0db46708
--- /dev/null
+++ b/skins/Vector/i18n/ckb.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Asoxor",
+ "Calak"
+ ]
+ },
+ "skinname-vector": "ڤێکتۆر",
+ "vector-action-addsection": "بابەت دابنێ",
+ "vector-action-delete": "بیسڕەوە",
+ "vector-action-move": "بیگوازەوە",
+ "vector-action-protect": "بیپارێزە",
+ "vector-action-undelete": "سڕینەوە بگەڕێنەوە",
+ "vector-action-unprotect": "پاراستن بگۆڕە",
+ "vector-view-create": "دروستکردن",
+ "vector-view-edit": "دەستکاریی بکە",
+ "vector-view-history": "مێژووەکەی ببینە",
+ "vector-view-view": "بیخوێنەوە",
+ "vector-view-viewsource": "سەرچاوەکەی ببینە",
+ "vector-more-actions": "زیاتر"
+}
diff --git a/skins/Vector/i18n/co.json b/skins/Vector/i18n/co.json
new file mode 100644
index 00000000..ad844201
--- /dev/null
+++ b/skins/Vector/i18n/co.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Paulu"
+ ]
+ },
+ "vector-action-addsection": "Aghjunghje discussione",
+ "vector-action-delete": "Supprimà",
+ "vector-action-move": "Cullucà",
+ "vector-action-protect": "Pruteghje",
+ "vector-action-unprotect": "Cambià a prutezzione",
+ "vector-view-create": "Creà",
+ "vector-view-edit": "Mudificà",
+ "vector-view-history": "Vede a cronolugia",
+ "vector-view-view": "Leghje",
+ "vector-view-viewsource": "Vede a surghjente"
+}
diff --git a/skins/Vector/i18n/cps.json b/skins/Vector/i18n/cps.json
new file mode 100644
index 00000000..5c406412
--- /dev/null
+++ b/skins/Vector/i18n/cps.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Capisano",
+ "Oxyzen"
+ ]
+ },
+ "vector-action-addsection": "Magdugang sang topiko",
+ "vector-action-delete": "Panason",
+ "vector-action-move": "Isdogon",
+ "vector-action-protect": "Protektahan",
+ "vector-action-undelete": "Indi pag panason",
+ "vector-action-unprotect": "Islan ang proteksyon",
+ "vector-view-create": "Ubrahon",
+ "vector-view-edit": "Bag-uhon",
+ "vector-view-history": "Ipakita ang kasaysayan",
+ "vector-view-view": "Basahon",
+ "vector-view-viewsource": "Lantawon ang ginhalinan"
+}
diff --git a/skins/Vector/i18n/crh-cyrl.json b/skins/Vector/i18n/crh-cyrl.json
new file mode 100644
index 00000000..b49a884f
--- /dev/null
+++ b/skins/Vector/i18n/crh-cyrl.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "vector-action-addsection": "Мевзу къош",
+ "vector-action-delete": "Ёкъ эт",
+ "vector-action-move": "Адыны денъиштир",
+ "vector-action-protect": "Къорчала",
+ "vector-action-undelete": "Янъыдан ярат",
+ "vector-action-unprotect": "Къорчалавны денъиштир",
+ "vector-view-create": "Ярат",
+ "vector-view-edit": "Денъиштир",
+ "vector-view-history": "Кечмишини косьтер",
+ "vector-view-view": "Окъу",
+ "vector-view-viewsource": "Менба кодуны косьтер"
+}
diff --git a/skins/Vector/i18n/crh-latn.json b/skins/Vector/i18n/crh-latn.json
new file mode 100644
index 00000000..ad8d58a0
--- /dev/null
+++ b/skins/Vector/i18n/crh-latn.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "vector-action-addsection": "Mevzu qoş",
+ "vector-action-delete": "Yoq et",
+ "vector-action-move": "Adını deñiştir",
+ "vector-action-protect": "Qorçala",
+ "vector-action-undelete": "Yañıdan yarat",
+ "vector-action-unprotect": "Qorçalavnı deñiştir",
+ "vector-view-create": "Yarat",
+ "vector-view-edit": "Deñiştir",
+ "vector-view-history": "Keçmişini köster",
+ "vector-view-view": "Oqu",
+ "vector-view-viewsource": "Menba kodunı köster"
+}
diff --git a/skins/Vector/i18n/cs.json b/skins/Vector/i18n/cs.json
new file mode 100644
index 00000000..081783be
--- /dev/null
+++ b/skins/Vector/i18n/cs.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mormegil"
+ ]
+ },
+ "skinname-vector": "Vektor",
+ "vector-skin-desc": "Moderní verze MonoBooku s novějším vzhledem a vylepšenou použitelností",
+ "vector.css": "/* Zde uvedené CSS bude ovlivňovat pouze styl „Vektor“ */",
+ "vector.js": "/* JavaScript pro uživatele používající vzhled „Vektor“ */",
+ "vector-action-addsection": "Přidat téma",
+ "vector-action-delete": "Smazat",
+ "vector-action-move": "Přesunout",
+ "vector-action-protect": "Zamknout",
+ "vector-action-undelete": "Obnovit",
+ "vector-action-unprotect": "Změnit zámek",
+ "vector-view-create": "Založit",
+ "vector-view-edit": "Editovat",
+ "vector-view-history": "Zobrazit historii",
+ "vector-view-view": "Číst",
+ "vector-view-viewsource": "Zobrazit zdrojový kód",
+ "vector-more-actions": "Další"
+}
diff --git a/skins/Vector/i18n/csb.json b/skins/Vector/i18n/csb.json
new file mode 100644
index 00000000..56d09304
--- /dev/null
+++ b/skins/Vector/i18n/csb.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaszeba",
+ "Kuvaly"
+ ]
+ },
+ "vector-action-addsection": "Dodôj témã",
+ "vector-action-delete": "Rëmôj",
+ "vector-action-move": "Przeniesë",
+ "vector-action-protect": "Zazychrëjë",
+ "vector-action-undelete": "Doprowôdzë nazôd",
+ "vector-action-unprotect": "Òdzychrëjë",
+ "vector-view-create": "Ùsôdzë",
+ "vector-view-edit": "Edicëjô",
+ "vector-view-history": "Historëjô lopka",
+ "vector-view-view": "Czëtôj",
+ "vector-view-viewsource": "Zdrojowi tekst"
+}
diff --git a/skins/Vector/i18n/cu.json b/skins/Vector/i18n/cu.json
new file mode 100644
index 00000000..caad73cd
--- /dev/null
+++ b/skins/Vector/i18n/cu.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "ОйЛ"
+ ]
+ },
+ "vector-action-addsection": "новꙑ бєсѣдꙑ чѧсти сътворѥниѥ",
+ "vector-action-delete": "поничьжєниѥ",
+ "vector-action-move": "прѣимєнованиѥ",
+ "vector-action-protect": "ꙁабранѥниѥ",
+ "vector-action-unprotect": "иꙁмѣни ꙁабранѥниꙗ обраꙁъ",
+ "vector-view-create": "сътворѥниѥ",
+ "vector-view-edit": "исправи",
+ "vector-view-history": "їсторїꙗ",
+ "vector-view-view": "чьтѥниѥ",
+ "vector-view-viewsource": "страницѧ источьнъ обраꙁъ",
+ "vector-more-actions": "вѧщє"
+}
diff --git a/skins/Vector/i18n/cv.json b/skins/Vector/i18n/cv.json
new file mode 100644
index 00000000..6206af8d
--- /dev/null
+++ b/skins/Vector/i18n/cv.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chavash",
+ "FLAGELLVM DEI"
+ ]
+ },
+ "vector-action-addsection": "Тема хуш",
+ "vector-action-delete": "Кăларса пăрах",
+ "vector-action-move": "Ятне улăштар",
+ "vector-action-protect": "Хӳтĕле",
+ "vector-view-create": "Çĕннине ту",
+ "vector-view-edit": "Тӳрлет",
+ "vector-view-history": "Кун-çул",
+ "vector-view-view": "Вула",
+ "vector-view-viewsource": "пуçламăш текста пăх"
+}
diff --git a/skins/Vector/i18n/cy.json b/skins/Vector/i18n/cy.json
new file mode 100644
index 00000000..99d4dc3a
--- /dev/null
+++ b/skins/Vector/i18n/cy.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lloffiwr"
+ ]
+ },
+ "vector-action-addsection": "Ychwanegu adran",
+ "vector-action-delete": "Dileu",
+ "vector-action-move": "Symud",
+ "vector-action-protect": "Diogelu",
+ "vector-action-undelete": "Adfer",
+ "vector-action-unprotect": "Newid y diogelwch",
+ "vector-view-create": "Dechrau",
+ "vector-view-edit": "Golygu",
+ "vector-view-history": "Gweld yr hanes",
+ "vector-view-view": "Darllen",
+ "vector-view-viewsource": "Dangos côd y dudalen",
+ "vector-more-actions": "Rhagor"
+}
diff --git a/skins/Vector/i18n/da.json b/skins/Vector/i18n/da.json
new file mode 100644
index 00000000..1651d666
--- /dev/null
+++ b/skins/Vector/i18n/da.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Byrial",
+ "Christian List",
+ "Peter Alberti"
+ ]
+ },
+ "vector-skin-desc": "Moderne version af MonoBook med frisk udseende og mange forbedringer af brugervenligheden",
+ "vector-action-addsection": "Nyt emne",
+ "vector-action-delete": "Slet",
+ "vector-action-move": "Flyt",
+ "vector-action-protect": "Beskyt",
+ "vector-action-undelete": "Gendan",
+ "vector-action-unprotect": "Ændr beskyttelse",
+ "vector-view-create": "Opret",
+ "vector-view-edit": "Redigér",
+ "vector-view-history": "Se historik",
+ "vector-view-view": "Læs",
+ "vector-view-viewsource": "Se kilden",
+ "vector-more-actions": "Mere"
+}
diff --git a/skins/Vector/i18n/de.json b/skins/Vector/i18n/de.json
new file mode 100644
index 00000000..d2201c2f
--- /dev/null
+++ b/skins/Vector/i18n/de.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kghbln",
+ "Metalhead64",
+ "The Evil IP address",
+ "Umherirrender"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Moderne Version von Monobook mit frischem Aussehen und vielen Verbesserungen an der Benutzerfreundlichkeit",
+ "vector.css": "/* Das folgende CSS wird für Benutzer der Vector-Benutzeroberfläche geladen. */",
+ "vector.js": "/* Das folgende JavaScript wird für Benutzer der Vector-Benutzeroberfläche geladen. */",
+ "vector-action-addsection": "Abschnitt hinzufügen",
+ "vector-action-delete": "Löschen",
+ "vector-action-move": "Verschieben",
+ "vector-action-protect": "Schützen",
+ "vector-action-undelete": "Wiederherstellen",
+ "vector-action-unprotect": "Seitenschutz ändern",
+ "vector-view-create": "Erstellen",
+ "vector-view-edit": "Bearbeiten",
+ "vector-view-history": "Versionsgeschichte",
+ "vector-view-view": "Lesen",
+ "vector-view-viewsource": "Quelltext anzeigen",
+ "vector-more-actions": "Mehr"
+}
diff --git a/skins/Vector/i18n/diq.json b/skins/Vector/i18n/diq.json
new file mode 100644
index 00000000..5ba4455d
--- /dev/null
+++ b/skins/Vector/i18n/diq.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Asmen",
+ "Calak",
+ "Erdemaslancan",
+ "Mirzali"
+ ]
+ },
+ "skinname-vector": "Vektor",
+ "vector-action-addsection": "Mewzu vıraze",
+ "vector-action-delete": "Bestere",
+ "vector-action-move": "Bere",
+ "vector-action-protect": "Bışevekne",
+ "vector-action-undelete": "Esterıtışi peyser bıgê",
+ "vector-action-unprotect": "Starkerdışi bıvurne",
+ "vector-view-create": "Vıraze",
+ "vector-view-edit": "Bıvurne",
+ "vector-view-history": "Tarixê pele bıvêne",
+ "vector-view-view": "Bıwane",
+ "vector-view-viewsource": "Çımey bıvêne",
+ "vector-more-actions": "Zêde"
+}
diff --git a/skins/Vector/i18n/dsb.json b/skins/Vector/i18n/dsb.json
new file mode 100644
index 00000000..7220f360
--- /dev/null
+++ b/skins/Vector/i18n/dsb.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "vector-action-addsection": "Temu pśidaś",
+ "vector-action-delete": "Wulašowaś",
+ "vector-action-move": "Pśesunuś",
+ "vector-action-protect": "Šćitaś",
+ "vector-action-undelete": "Wótnowiś",
+ "vector-action-unprotect": "Šćit změniś",
+ "vector-view-create": "Napóraś",
+ "vector-view-edit": "Wobźěłaś",
+ "vector-view-history": "Wersije a awtory",
+ "vector-view-view": "Cytaś",
+ "vector-view-viewsource": "Žrědło se woglědaś"
+}
diff --git a/skins/Vector/i18n/dtp.json b/skins/Vector/i18n/dtp.json
new file mode 100644
index 00000000..a337040f
--- /dev/null
+++ b/skins/Vector/i18n/dtp.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "FRANCIS5091",
+ "FRANELYA"
+ ]
+ },
+ "vector-action-addsection": "Ruhangai piboboroson",
+ "vector-action-delete": "Pugaso",
+ "vector-action-move": "Poundoliho",
+ "vector-action-protect": "Tingoligai",
+ "vector-action-undelete": "Kada pugaso",
+ "vector-action-unprotect": "Alanai tingolig",
+ "vector-view-create": "Pomonsoi",
+ "vector-view-edit": "Idito",
+ "vector-view-history": "Intaai susuyan",
+ "vector-view-view": "Basao",
+ "vector-view-viewsource": "Intaai wowonod"
+}
diff --git a/skins/Vector/i18n/dv.json b/skins/Vector/i18n/dv.json
new file mode 100644
index 00000000..9e530568
--- /dev/null
+++ b/skins/Vector/i18n/dv.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ushau97"
+ ]
+ },
+ "vector-action-addsection": "ޚިޔާލެއް އިތުރުކުރައްވާ",
+ "vector-action-delete": "ފޮހެލައްވާ",
+ "vector-action-move": "ތަން ބަދަލުކުރައްވާ",
+ "vector-action-protect": "ދިފާޢުކުރައްވާ",
+ "vector-action-unprotect": "ދިފާޢުކުރުން ބަދަލުކުރައްވާ",
+ "vector-view-create": "ފަށްޓަވާ",
+ "vector-view-edit": "އުނިއިތުރު ގެންނަވާ",
+ "vector-view-history": "ޞަފްޙާގެ ތާރީޚް",
+ "vector-view-view": "ކިޔުއްވާ",
+ "vector-view-viewsource": "މަސްދަރު ބައްލަވާ"
+}
diff --git a/skins/Vector/i18n/ee.json b/skins/Vector/i18n/ee.json
new file mode 100644
index 00000000..2214755d
--- /dev/null
+++ b/skins/Vector/i18n/ee.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Natsubee"
+ ]
+ },
+ "vector-action-delete": "Tutui",
+ "vector-action-move": "Ɖɔli eƒe nɔƒe",
+ "vector-view-create": "Dze egɔme",
+ "vector-view-edit": "Trɔ asi le eŋu",
+ "vector-view-history": "Kpɔ xoxoawo",
+ "vector-view-view": "Xlẽ",
+ "vector-view-viewsource": "Kpɔ alesi woŋlɔe"
+}
diff --git a/skins/Vector/i18n/egl.json b/skins/Vector/i18n/egl.json
new file mode 100644
index 00000000..a819ab07
--- /dev/null
+++ b/skins/Vector/i18n/egl.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lévi"
+ ]
+ },
+ "vector-action-addsection": "Zûnta discusiòun",
+ "vector-action-delete": "Scanşèla",
+ "vector-action-move": "Spôsta",
+ "vector-action-protect": "Prutēz",
+ "vector-action-undelete": "Fà al recóper",
+ "vector-action-unprotect": "Câmbia la prutesiòun",
+ "vector-view-create": "Invèinta",
+ "vector-view-edit": "Mudéfica",
+ "vector-view-history": "Guêrda la stôria",
+ "vector-view-view": "Lēş",
+ "vector-view-viewsource": "Guêrda la surzéia",
+ "vector-more-actions": "Êter"
+}
diff --git a/skins/Vector/i18n/el.json b/skins/Vector/i18n/el.json
new file mode 100644
index 00000000..06fa36b8
--- /dev/null
+++ b/skins/Vector/i18n/el.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Calak",
+ "Crazymadlover",
+ "Evropi",
+ "Omnipaedista",
+ "Protnet",
+ "ZaDiak"
+ ]
+ },
+ "vector.css": "/* Το τοποθετημένο εδώ CSS θα επηρεάσει χρήστες του Vector skin */",
+ "vector.js": "/* Οποιοσδήποτε κώδικας JavaScript εδώ θα φορτωθεί για χρήστες που χρησιμοποιούν το Vector skin */",
+ "vector-action-addsection": "Προσθήκη θέματος",
+ "vector-action-delete": "Διαγραφή",
+ "vector-action-move": "Μετακίνηση",
+ "vector-action-protect": "Προστασία",
+ "vector-action-undelete": "Επαναφορά",
+ "vector-action-unprotect": "Αλλαγή προστασίας",
+ "vector-view-create": "Δημιουργία",
+ "vector-view-edit": "Επεξεργασία",
+ "vector-view-history": "Προβολή ιστορικού",
+ "vector-view-view": "Ανάγνωση",
+ "vector-view-viewsource": "Προβολή κώδικα",
+ "vector-more-actions": "Περισσότερα"
+}
diff --git a/skins/Vector/i18n/en.json b/skins/Vector/i18n/en.json
new file mode 100644
index 00000000..949218e7
--- /dev/null
+++ b/skins/Vector/i18n/en.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": []
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Modern version of MonoBook with fresh look and many usability improvements",
+ "vector.css": "/* CSS placed here will affect users of the Vector skin */",
+ "vector.js": "/* Any JavaScript here will be loaded for users using the Vector skin */",
+ "vector-action-addsection": "Add topic",
+ "vector-action-delete": "Delete",
+ "vector-action-move": "Move",
+ "vector-action-protect": "Protect",
+ "vector-action-undelete": "Undelete",
+ "vector-action-unprotect": "Change protection",
+ "vector-view-create": "Create",
+ "vector-view-edit": "Edit",
+ "vector-view-history": "View history",
+ "vector-view-view": "Read",
+ "vector-view-viewsource": "View source",
+ "vector-more-actions": "More"
+}
diff --git a/skins/Vector/i18n/eo.json b/skins/Vector/i18n/eo.json
new file mode 100644
index 00000000..5f92fe8a
--- /dev/null
+++ b/skins/Vector/i18n/eo.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "KuboF",
+ "Objectivesea",
+ "Yekrats"
+ ]
+ },
+ "skinname-vector": "Vektoro",
+ "vector.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Vektora temo. */",
+ "vector.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Vektora temo. */",
+ "vector-action-addsection": "Aldoni temon",
+ "vector-action-delete": "Forigi",
+ "vector-action-move": "Alinomigi",
+ "vector-action-protect": "Protekti",
+ "vector-action-undelete": "Malforigi",
+ "vector-action-unprotect": "Ŝanĝi protektadon",
+ "vector-view-create": "Krei",
+ "vector-view-edit": "Redakti",
+ "vector-view-history": "Vidi historion",
+ "vector-view-view": "Legi",
+ "vector-view-viewsource": "Vidi fonton",
+ "vector-more-actions": "Pli"
+}
diff --git a/skins/Vector/i18n/es-formal.json b/skins/Vector/i18n/es-formal.json
new file mode 100644
index 00000000..a666c053
--- /dev/null
+++ b/skins/Vector/i18n/es-formal.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "XanaG"
+ ]
+ },
+ "vector-view-edit": "Editar",
+ "vector-view-history": "Ver historial",
+ "vector-view-view": "Leer"
+}
diff --git a/skins/Vector/i18n/es.json b/skins/Vector/i18n/es.json
new file mode 100644
index 00000000..75352a51
--- /dev/null
+++ b/skins/Vector/i18n/es.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Armando-Martin",
+ "Crazymadlover",
+ "Dalton2",
+ "Fitoschido",
+ "Locos epraix",
+ "Manuelt15",
+ "MarcoAurelio",
+ "Miguel2706",
+ "Platonides",
+ "Vivaelcelta"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Versión moderna de MonoBook, con un aspecto actualizado y muchas mejoras de usabilidad",
+ "vector.css": "/* El CSS colocado en esta página afectará a los usuarios que usen la apariencia \"Vector\" */",
+ "vector.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la apariencia Vector */",
+ "vector-action-addsection": "Sección nueva",
+ "vector-action-delete": "Borrar",
+ "vector-action-move": "Trasladar",
+ "vector-action-protect": "Proteger",
+ "vector-action-undelete": "Restaurar",
+ "vector-action-unprotect": "Cambiar protección",
+ "vector-view-create": "Crear",
+ "vector-view-edit": "Editar",
+ "vector-view-history": "Ver historial",
+ "vector-view-view": "Leer",
+ "vector-view-viewsource": "Ver código",
+ "vector-more-actions": "Más"
+}
diff --git a/skins/Vector/i18n/esu.json b/skins/Vector/i18n/esu.json
new file mode 100644
index 00000000..b32ac1de
--- /dev/null
+++ b/skins/Vector/i18n/esu.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "82-145"
+ ]
+ },
+ "vector-action-move": "Atra cimirtuq",
+ "vector-view-view": "Naaqe"
+}
diff --git a/skins/Vector/i18n/et.json b/skins/Vector/i18n/et.json
new file mode 100644
index 00000000..fc01b32f
--- /dev/null
+++ b/skins/Vector/i18n/et.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ker",
+ "Pikne",
+ "WikedKentaur"
+ ]
+ },
+ "skinname-vector": "Vektor",
+ "vector-skin-desc": "MonoBooki uuem versioon värskema väljanägemise ja mitme kasutajasõbralikuma täiendusega",
+ "vector.css": "/* Siin asuv kaskaadilaadistik puudutab kõiki Vektori-kujunduse kasutajaid. */",
+ "vector.js": "/* Siin asuv JavaScript laaditakse kõigi Vektori-kujunduse kasutajate jaoks. */",
+ "vector-action-addsection": "Lisa teema",
+ "vector-action-delete": "Kustuta",
+ "vector-action-move": "Teisalda",
+ "vector-action-protect": "Kaitse",
+ "vector-action-undelete": "Taasta",
+ "vector-action-unprotect": "Muuda kaitset",
+ "vector-view-create": "Loo",
+ "vector-view-edit": "Muuda",
+ "vector-view-history": "Näita ajalugu",
+ "vector-view-view": "Vaata",
+ "vector-view-viewsource": "Vaata lähteteksti",
+ "vector-more-actions": "Veel"
+}
diff --git a/skins/Vector/i18n/eu.json b/skins/Vector/i18n/eu.json
new file mode 100644
index 00000000..856742c2
--- /dev/null
+++ b/skins/Vector/i18n/eu.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Unai Fdz. de Betoño",
+ "Xabier Armendaritz",
+ "Fitoschido"
+ ]
+ },
+ "vector-action-addsection": "Gehitu atala",
+ "vector-action-delete": "Ezabatu",
+ "vector-action-move": "Mugitu",
+ "vector-action-protect": "Babestu",
+ "vector-action-undelete": "Berreskuratu",
+ "vector-action-unprotect": "Babesa aldatu",
+ "vector-view-create": "Sortu",
+ "vector-view-edit": "Aldatu",
+ "vector-view-history": "Ikusi historia",
+ "vector-view-view": "Irakurri",
+ "vector-view-viewsource": "Kodea ikusia",
+ "vector-more-actions": "Gehiago"
+}
diff --git a/skins/Vector/i18n/ext.json b/skins/Vector/i18n/ext.json
new file mode 100644
index 00000000..1cf9a4f9
--- /dev/null
+++ b/skins/Vector/i18n/ext.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Better"
+ ]
+ },
+ "vector-action-addsection": "Añiil tema",
+ "vector-action-delete": "Esborral",
+ "vector-action-move": "Mual",
+ "vector-action-protect": "Protegel",
+ "vector-action-undelete": "Esborral",
+ "vector-action-unprotect": "Esprotegel",
+ "vector-view-create": "Crial",
+ "vector-view-edit": "Eital",
+ "vector-view-history": "Guipal estorial",
+ "vector-view-view": "Leyel",
+ "vector-view-viewsource": "Guipal cóigu"
+}
diff --git a/skins/Vector/i18n/fa.json b/skins/Vector/i18n/fa.json
new file mode 100644
index 00000000..b5b1d075
--- /dev/null
+++ b/skins/Vector/i18n/fa.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Calak",
+ "Ebraminio",
+ "Huji",
+ "Reza1615",
+ "Zack90"
+ ]
+ },
+ "skinname-vector": "برداری",
+ "vector-skin-desc": "نسخه مدرن منوبوک با نگاه تازه و بهبود قابلیت استفاده",
+ "vector.css": "/* دستورات این بخش کاربرانی را که از پوستهٔ وکتور استفاده کنند تحت تاثیر قرار می‌دهند. */",
+ "vector.js": "/ * کدهای جاوااسکریپتی که در اینجا قرار می‌گیرند برای کاربران پوستهٔ وکتور بارگیری می‌شود * /",
+ "vector-action-addsection": "افزودن بخش",
+ "vector-action-delete": "حذف",
+ "vector-action-move": "انتقال",
+ "vector-action-protect": "محافظت",
+ "vector-action-undelete": "احیا",
+ "vector-action-unprotect": "تغییر سطح حفاظت",
+ "vector-view-create": "ایجاد",
+ "vector-view-edit": "ویرایش",
+ "vector-view-history": "نمایش تاریخچه",
+ "vector-view-view": "خواندن",
+ "vector-view-viewsource": "نمایش مبدأ",
+ "vector-more-actions": "بیشتر"
+}
diff --git a/skins/Vector/i18n/ff.json b/skins/Vector/i18n/ff.json
new file mode 100644
index 00000000..ac3ee5ba
--- /dev/null
+++ b/skins/Vector/i18n/ff.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibrahima"
+ ]
+ },
+ "vector-action-addsection": "Ɓeydi toɓɓere",
+ "vector-action-move": "Dirtin",
+ "vector-view-create": "Sos",
+ "vector-view-edit": "Taƴto",
+ "vector-view-history": "Yiyto aslol",
+ "vector-view-view": "Tar",
+ "vector-view-viewsource": "Yiyto ɗaɗol"
+}
diff --git a/skins/Vector/i18n/fi.json b/skins/Vector/i18n/fi.json
new file mode 100644
index 00000000..75336897
--- /dev/null
+++ b/skins/Vector/i18n/fi.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Crt",
+ "Nedergard",
+ "Nike",
+ "Pxos"
+ ]
+ },
+ "vector.css": "/* Tämä sivu sisältää Vector-ulkoasua muuttavia tyylejä. */",
+ "vector.js": "/* Tämän sivun JavaScript-koodi liitetään Vector-tyyliin */",
+ "vector-action-addsection": "Lisää aihe",
+ "vector-action-delete": "Poista",
+ "vector-action-move": "Siirrä",
+ "vector-action-protect": "Suojaa",
+ "vector-action-undelete": "Palauta",
+ "vector-action-unprotect": "Muuta suojausta",
+ "vector-view-create": "Luo",
+ "vector-view-edit": "Muokkaa",
+ "vector-view-history": "Näytä historia",
+ "vector-view-view": "Lue",
+ "vector-view-viewsource": "Näytä lähdekoodi",
+ "vector-more-actions": "Muut"
+}
diff --git a/skins/Vector/i18n/fit.json b/skins/Vector/i18n/fit.json
new file mode 100644
index 00000000..46089ae1
--- /dev/null
+++ b/skins/Vector/i18n/fit.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mestos"
+ ]
+ },
+ "vector-action-addsection": "Lissää aine",
+ "vector-action-delete": "Ota poies",
+ "vector-action-move": "Siirä",
+ "vector-action-protect": "Suojaa",
+ "vector-action-undelete": "Pane takashiin",
+ "vector-action-unprotect": "Muuta suojaa",
+ "vector-view-create": "Luo",
+ "vector-view-edit": "Mookkaa",
+ "vector-view-history": "Näytä histuuria",
+ "vector-view-view": "Lue",
+ "vector-view-viewsource": "Näytä lähekooti"
+}
diff --git a/skins/Vector/i18n/fo.json b/skins/Vector/i18n/fo.json
new file mode 100644
index 00000000..46f272c7
--- /dev/null
+++ b/skins/Vector/i18n/fo.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Diupwijk",
+ "EileenSanda"
+ ]
+ },
+ "vector-action-addsection": "Nýtt evni",
+ "vector-action-delete": "Strika",
+ "vector-action-move": "Flyt",
+ "vector-action-protect": "Friða",
+ "vector-action-undelete": "Endurstovna",
+ "vector-action-unprotect": "Broyt verju",
+ "vector-view-create": "Stovna",
+ "vector-view-edit": "Rætta",
+ "vector-view-history": "Vís søgu",
+ "vector-view-view": "Les",
+ "vector-view-viewsource": "Vís keldu",
+ "vector-more-actions": "Meira"
+}
diff --git a/skins/Vector/i18n/fr.json b/skins/Vector/i18n/fr.json
new file mode 100644
index 00000000..623fda83
--- /dev/null
+++ b/skins/Vector/i18n/fr.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Akeron",
+ "Crochet.david",
+ "DavidL",
+ "Gomoko",
+ "Jean-Frédéric",
+ "Od1n"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Version moderne de MonoBook avec un aspect rajeuni et beaucoup d’améliorations ergonomiques",
+ "vector.css": "/* Le CSS placé ici affectera les utilisateurs de l’habillage Vector. */",
+ "vector.js": "/* Tout code JavaScript placé ici sera chargé pour les utilisateurs de l’habillage Vector */",
+ "vector-action-addsection": "Ajouter un sujet",
+ "vector-action-delete": "Supprimer",
+ "vector-action-move": "Renommer",
+ "vector-action-protect": "Protéger",
+ "vector-action-undelete": "Rétablir",
+ "vector-action-unprotect": "Changer la protection",
+ "vector-view-create": "Créer",
+ "vector-view-edit": "Modifier",
+ "vector-view-history": "Historique",
+ "vector-view-view": "Lire",
+ "vector-view-viewsource": "Voir la source",
+ "vector-more-actions": "Plus"
+}
diff --git a/skins/Vector/i18n/frc.json b/skins/Vector/i18n/frc.json
new file mode 100644
index 00000000..f13d8ce6
--- /dev/null
+++ b/skins/Vector/i18n/frc.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ebe123"
+ ]
+ },
+ "vector-action-delete": "Supprimer",
+ "vector-action-protect": "Protéger"
+}
diff --git a/skins/Vector/i18n/frp.json b/skins/Vector/i18n/frp.json
new file mode 100644
index 00000000..4f0c3bcf
--- /dev/null
+++ b/skins/Vector/i18n/frp.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe"
+ ]
+ },
+ "skinname-vector": "Vèctor",
+ "vector.css": "/* Lo code CSS betâ ique afècterat los usanciérs de l’habelyâjo « Vèctor ». */",
+ "vector.js": "/* Tot code JavaScript betâ ique serat chargiê per los usanciérs de l’habelyâjo « Vèctor ». */",
+ "vector-action-addsection": "Apondre na chousa",
+ "vector-action-delete": "Suprimar",
+ "vector-action-move": "Dèplaciér",
+ "vector-action-protect": "Protègiér",
+ "vector-action-undelete": "Refâre",
+ "vector-action-unprotect": "Changiér la protèccion",
+ "vector-view-create": "Fâre",
+ "vector-view-edit": "Changiér",
+ "vector-view-history": "Vêre l’historico",
+ "vector-view-view": "Liére",
+ "vector-view-viewsource": "Vêre lo tèxto sôrsa"
+}
diff --git a/skins/Vector/i18n/frr.json b/skins/Vector/i18n/frr.json
new file mode 100644
index 00000000..f9ff0a3f
--- /dev/null
+++ b/skins/Vector/i18n/frr.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Murma174",
+ "Pyt"
+ ]
+ },
+ "vector-skin-desc": "Modern werjuun faan Monobook mä frisk skak an föl muar mögelkhaiden",
+ "vector-action-addsection": "Nei kirew began",
+ "vector-action-delete": "Strik",
+ "vector-action-move": "Fersküüw",
+ "vector-action-protect": "Seekre",
+ "vector-action-undelete": "Weder iinstel",
+ "vector-action-unprotect": "Sidjenseekerhaid",
+ "vector-view-create": "Maage",
+ "vector-view-edit": "Bewerke",
+ "vector-view-history": "Ferluup uunluke",
+ "vector-view-view": "Lees",
+ "vector-view-viewsource": "Kweltekst uunluke",
+ "vector-more-actions": "Muar"
+}
diff --git a/skins/Vector/i18n/fur.json b/skins/Vector/i18n/fur.json
new file mode 100644
index 00000000..9df18463
--- /dev/null
+++ b/skins/Vector/i18n/fur.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Klenje",
+ "Tocaibon"
+ ]
+ },
+ "vector-action-addsection": "Gnove sezion",
+ "vector-action-delete": "Elimine",
+ "vector-action-move": "Môf",
+ "vector-action-protect": "Protêç",
+ "vector-action-undelete": "Recupere",
+ "vector-action-unprotect": "Gambie la protezion",
+ "vector-view-create": "Cree",
+ "vector-view-edit": "Cambie",
+ "vector-view-history": "Cjale il storic",
+ "vector-view-view": "Lei",
+ "vector-view-viewsource": "Cjale risultive"
+}
diff --git a/skins/Vector/i18n/fy.json b/skins/Vector/i18n/fy.json
new file mode 100644
index 00000000..328193d3
--- /dev/null
+++ b/skins/Vector/i18n/fy.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kening Aldgilles",
+ "SK-luuut"
+ ]
+ },
+ "vector-action-delete": "Fuortsmite",
+ "vector-action-move": "Werneam",
+ "vector-action-protect": "Beskermje",
+ "vector-action-undelete": "Tebeksette",
+ "vector-action-unprotect": "Beskerming fuorthelje",
+ "vector-view-create": "Oanmeitsje",
+ "vector-view-edit": "Wizigje",
+ "vector-view-history": "Skiednis sjen litte",
+ "vector-view-view": "Lês",
+ "vector-view-viewsource": "Besjoch de boarne"
+}
diff --git a/skins/Vector/i18n/ga.json b/skins/Vector/i18n/ga.json
new file mode 100644
index 00000000..81f4caa4
--- /dev/null
+++ b/skins/Vector/i18n/ga.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kscanne",
+ "Kwekubo",
+ "Moydow"
+ ]
+ },
+ "skinname-vector": "Veicteoir",
+ "vector-action-addsection": "Cuir topaic leis",
+ "vector-action-delete": "Scrios",
+ "vector-action-move": "Athainmnigh",
+ "vector-action-protect": "Glasáil",
+ "vector-action-undelete": "Díscrios",
+ "vector-action-unprotect": "Díghlasáil",
+ "vector-view-create": "Cruthaigh",
+ "vector-view-edit": "Athraigh an lch seo",
+ "vector-view-history": "Féach ar stair",
+ "vector-view-view": "Léigh",
+ "vector-view-viewsource": "Féach ar fhoinse"
+}
diff --git a/skins/Vector/i18n/gag.json b/skins/Vector/i18n/gag.json
new file mode 100644
index 00000000..4f454735
--- /dev/null
+++ b/skins/Vector/i18n/gag.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cuman",
+ "Emperyan"
+ ]
+ },
+ "vector-view-edit": "Diiştir",
+ "vector-view-view": "Oku"
+}
diff --git a/skins/Vector/i18n/gan-hans.json b/skins/Vector/i18n/gan-hans.json
new file mode 100644
index 00000000..5c0db678
--- /dev/null
+++ b/skins/Vector/i18n/gan-hans.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liangent",
+ "Xiaomingyan"
+ ]
+ },
+ "vector-action-addsection": "添主题",
+ "vector-action-delete": "删吥",
+ "vector-action-move": "移吥",
+ "vector-action-protect": "护到",
+ "vector-action-undelete": "望下删吥𠮶页面",
+ "vector-action-unprotect": "更改保护",
+ "vector-view-create": "创建",
+ "vector-view-edit": "编辑",
+ "vector-view-history": "望下历史",
+ "vector-view-view": "读",
+ "vector-view-viewsource": "望下原始码"
+}
diff --git a/skins/Vector/i18n/gan-hant.json b/skins/Vector/i18n/gan-hant.json
new file mode 100644
index 00000000..ceb23b53
--- /dev/null
+++ b/skins/Vector/i18n/gan-hant.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Symane"
+ ]
+ },
+ "vector-action-addsection": "添主題",
+ "vector-action-delete": "刪吥",
+ "vector-action-move": "移吥",
+ "vector-action-protect": "護到",
+ "vector-action-undelete": "望下刪吥嗰頁面",
+ "vector-action-unprotect": "解除保護",
+ "vector-view-create": "創建",
+ "vector-view-edit": "編輯",
+ "vector-view-history": "望下歷史",
+ "vector-view-view": "讀",
+ "vector-view-viewsource": "望下原始碼"
+}
diff --git a/skins/Vector/i18n/gd.json b/skins/Vector/i18n/gd.json
new file mode 100644
index 00000000..04fa42b8
--- /dev/null
+++ b/skins/Vector/i18n/gd.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Akerbeltz",
+ "GunChleoc"
+ ]
+ },
+ "vector-skin-desc": "Tionndadh ùr-nodha de MonoBook le dreach ùr air 's iomadh leasachadh air a sho-chleachdachd",
+ "vector-action-addsection": "Cuir ris cuspair",
+ "vector-action-delete": "Sguab às",
+ "vector-action-move": "Gluais",
+ "vector-action-protect": "Dìon",
+ "vector-action-undelete": "Neo-dhèan an sguabadh às",
+ "vector-action-unprotect": "Atharraich an dìon",
+ "vector-view-create": "Cruthaich",
+ "vector-view-edit": "Deasaich",
+ "vector-view-history": "Seall an eachdraidh",
+ "vector-view-view": "Leugh",
+ "vector-view-viewsource": "Seall an tùs",
+ "vector-more-actions": "Barrachd"
+}
diff --git a/skins/Vector/i18n/gl.json b/skins/Vector/i18n/gl.json
new file mode 100644
index 00000000..455b9bd8
--- /dev/null
+++ b/skins/Vector/i18n/gl.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Elisardojm",
+ "Toliño",
+ "Vivaelcelta"
+ ]
+ },
+ "vector-skin-desc": "Versión moderna da aparencia MonoBook, cun aspecto fresco e moitas melloras na usabilidade",
+ "vector.css": "/* O CSS que se coloque aquí afectará a quen use a aparencia Vector */",
+ "vector.js": "/* Calquera JavaScript que haxa aquí será cargado para os usuarios que usen a aparencia Vector */",
+ "vector-action-addsection": "Nova sección",
+ "vector-action-delete": "Borrar",
+ "vector-action-move": "Mover",
+ "vector-action-protect": "Protexer",
+ "vector-action-undelete": "Restaurar",
+ "vector-action-unprotect": "Cambiar a protección",
+ "vector-view-create": "Crear",
+ "vector-view-edit": "Editar",
+ "vector-view-history": "Ver o historial",
+ "vector-view-view": "Ler",
+ "vector-view-viewsource": "Ver o código fonte",
+ "vector-more-actions": "Máis"
+}
diff --git a/skins/Vector/i18n/gom-deva.json b/skins/Vector/i18n/gom-deva.json
new file mode 100644
index 00000000..044d43c0
--- /dev/null
+++ b/skins/Vector/i18n/gom-deva.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Darshan kandolkar",
+ "Pooja tople",
+ "Sanket.prabhu26",
+ "Supriya kankumbikar"
+ ]
+ },
+ "vector-action-addsection": "माथाळो दियात",
+ "vector-action-delete": "काडून उडयात",
+ "vector-action-move": "दुसरेकडे व्हरात",
+ "vector-action-protect": "राख",
+ "vector-view-create": "निर्माण कर",
+ "vector-view-edit": "बदल",
+ "vector-view-history": "इतिहास पळेयात",
+ "vector-view-view": "वाचचें",
+ "vector-view-viewsource": "उगम पळेयात"
+}
diff --git a/skins/Vector/i18n/gom-latn.json b/skins/Vector/i18n/gom-latn.json
new file mode 100644
index 00000000..37a3117b
--- /dev/null
+++ b/skins/Vector/i18n/gom-latn.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Isidore Dantas",
+ "The Discoverer"
+ ]
+ },
+ "vector-action-addsection": "Vixoi zodd",
+ "vector-action-delete": "Kadd",
+ "vector-action-move": "Zago bodol",
+ "vector-action-protect": "Rakh",
+ "vector-view-create": "Roch",
+ "vector-view-edit": "Sudar",
+ "vector-view-history": "Itihas polloi",
+ "vector-view-view": "Vach",
+ "vector-view-viewsource": "Mull polloi",
+ "vector-more-actions": "Anik"
+}
diff --git a/skins/Vector/i18n/grc.json b/skins/Vector/i18n/grc.json
new file mode 100644
index 00000000..c22ebf16
--- /dev/null
+++ b/skins/Vector/i18n/grc.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Crazymadlover",
+ "Omnipaedista"
+ ]
+ },
+ "vector-action-addsection": "Θέμα προστιθέναι",
+ "vector-action-delete": "Σβεννύναι",
+ "vector-action-move": "Κινεῖν",
+ "vector-action-protect": "Φυλάττειν",
+ "vector-action-undelete": "Ἀποκαθιστάναι",
+ "vector-action-unprotect": "Ἄλλαξον τὴν φύλαξιν",
+ "vector-view-create": "Ποιεῖν",
+ "vector-view-edit": "Μεταγράφειν",
+ "vector-view-history": "Ἱστορίαν ὁρᾶν",
+ "vector-view-view": "Ἀναγνῶναι",
+ "vector-view-viewsource": "Ὁρᾶν τὴν πηγήν"
+}
diff --git a/skins/Vector/i18n/gsw.json b/skins/Vector/i18n/gsw.json
new file mode 100644
index 00000000..90b3e73a
--- /dev/null
+++ b/skins/Vector/i18n/gsw.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Als-Holder"
+ ]
+ },
+ "vector-action-addsection": "Abschnitt zuefiege",
+ "vector-action-delete": "Lesche",
+ "vector-action-move": "Verschiebe",
+ "vector-action-protect": "Schitze",
+ "vector-action-undelete": "Widerhärstelle",
+ "vector-action-unprotect": "Syteschutz ändere",
+ "vector-view-create": "Aalege",
+ "vector-view-edit": "Bearbeite",
+ "vector-view-history": "Versionsgschicht",
+ "vector-view-view": "Läse",
+ "vector-view-viewsource": "Quälltext aaluege"
+}
diff --git a/skins/Vector/i18n/gu.json b/skins/Vector/i18n/gu.json
new file mode 100644
index 00000000..d0c9287a
--- /dev/null
+++ b/skins/Vector/i18n/gu.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aritra",
+ "Ashok modhvadia",
+ "Dsvyas",
+ "KartikMistry"
+ ]
+ },
+ "vector-skin-desc": "તાજા દેખાવ અને વધુ ઉપયોગી સુધારાઓ સાથે મોનોબુકની આધુનિક આવૃત્તિ",
+ "vector-action-addsection": "નવી ચર્ચા",
+ "vector-action-delete": "રદ કરો",
+ "vector-action-move": "ખસેડો",
+ "vector-action-protect": "સુરક્ષિત કરો",
+ "vector-action-undelete": "રદ કરેલું પાછું વાળો",
+ "vector-action-unprotect": "સુરક્ષા બદલો",
+ "vector-view-create": "બનાવો",
+ "vector-view-edit": "ફેરફાર કરો",
+ "vector-view-history": "ઇતિહાસ જુઓ",
+ "vector-view-view": "વાંચો",
+ "vector-view-viewsource": "સ્રોત જુઓ",
+ "vector-more-actions": "વધુ"
+}
diff --git a/skins/Vector/i18n/guc.json b/skins/Vector/i18n/guc.json
new file mode 100644
index 00000000..e69fac5a
--- /dev/null
+++ b/skins/Vector/i18n/guc.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Maor X"
+ ]
+ },
+ "vector-action-delete": "Ojuichajaa",
+ "vector-action-move": "Ansülaa",
+ "vector-action-protect": "Eisalajaa",
+ "vector-view-create": "Akumajaa",
+ "vector-view-edit": "Anaataa",
+ "vector-view-history": "Achikii a'wanajaayamaajatü",
+ "vector-view-view": "Aashaje'eraa",
+ "vector-view-viewsource": "Anüliaa eejeetülee"
+}
diff --git a/skins/Vector/i18n/gv.json b/skins/Vector/i18n/gv.json
new file mode 100644
index 00000000..9be429f0
--- /dev/null
+++ b/skins/Vector/i18n/gv.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "MacTire02",
+ "Shimmin Beg"
+ ]
+ },
+ "vector-action-addsection": "Cur cooish noa rish",
+ "vector-action-delete": "Scryss",
+ "vector-action-move": "Scugh",
+ "vector-action-protect": "Coadee",
+ "vector-action-undelete": "Jee-scryss",
+ "vector-action-unprotect": "Caghlaa coadey",
+ "vector-view-create": "Croo",
+ "vector-view-edit": "Reagh",
+ "vector-view-history": "Jeeagh er shennaghys",
+ "vector-view-view": "Lhaih",
+ "vector-view-viewsource": "Jeeagh er bun"
+}
diff --git a/skins/Vector/i18n/ha.json b/skins/Vector/i18n/ha.json
new file mode 100644
index 00000000..37be4a19
--- /dev/null
+++ b/skins/Vector/i18n/ha.json
@@ -0,0 +1,7 @@
+{
+ "@metadata": [],
+ "vector-action-delete": "Soke",
+ "vector-action-move": "Gusarwa",
+ "vector-action-protect": "A kare",
+ "vector-view-create": "Ƙirƙira"
+}
diff --git a/skins/Vector/i18n/hak.json b/skins/Vector/i18n/hak.json
new file mode 100644
index 00000000..ed0c0cbf
--- /dev/null
+++ b/skins/Vector/i18n/hak.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anson2812",
+ "Jetlag"
+ ]
+ },
+ "vector-action-addsection": "加入話題",
+ "vector-action-delete": "刪除",
+ "vector-action-move": "移動",
+ "vector-action-protect": "保護",
+ "vector-action-undelete": "恢復",
+ "vector-action-unprotect": "更改保護",
+ "vector-view-create": "建立",
+ "vector-view-edit": "編寫",
+ "vector-view-history": "查看歷史",
+ "vector-view-view": "閱讀",
+ "vector-view-viewsource": "查看源碼"
+}
diff --git a/skins/Vector/i18n/haw.json b/skins/Vector/i18n/haw.json
new file mode 100644
index 00000000..98e29196
--- /dev/null
+++ b/skins/Vector/i18n/haw.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kolonahe"
+ ]
+ },
+ "vector-action-addsection": "Hoʻohui kumuhana",
+ "vector-action-delete": "Holoi",
+ "vector-action-move": "E hoʻoneʻe",
+ "vector-action-protect": "E hoʻomalu",
+ "vector-action-undelete": "Holoiʻole",
+ "vector-action-unprotect": "E hoʻololi i ka hoʻomalu",
+ "vector-view-create": "Haku",
+ "vector-view-edit": "Hoʻololi",
+ "vector-view-history": "Nānā i ka mōʻaukala",
+ "vector-view-view": "Heluhelu",
+ "vector-view-viewsource": "Nānā i ke kumu"
+}
diff --git a/skins/Vector/i18n/he.json b/skins/Vector/i18n/he.json
new file mode 100644
index 00000000..887d86be
--- /dev/null
+++ b/skins/Vector/i18n/he.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Rotemliss"
+ ]
+ },
+ "skinname-vector": "וקטור",
+ "vector-skin-desc": "גרסה מודרנית של מונובוק עם מראה רענן והרבה שיפורי שמישות",
+ "vector.css": "/* הסגנונות הנכתבים כאן ישפיעו על העיצוב Vector בלבד */",
+ "vector.js": "/* כל סקריפט JavaScript שנכתב כאן ירוץ רק עבור המשתמשים בעיצוב Vector */",
+ "vector-action-addsection": "הוספת נושא",
+ "vector-action-delete": "מחיקה",
+ "vector-action-move": "העברה",
+ "vector-action-protect": "הגנה",
+ "vector-action-undelete": "ביטול מחיקה",
+ "vector-action-unprotect": "שינוי הגנה",
+ "vector-view-create": "יצירה",
+ "vector-view-edit": "עריכה",
+ "vector-view-history": "הצגת היסטוריה",
+ "vector-view-view": "קריאה",
+ "vector-view-viewsource": "הצגת מקור",
+ "vector-more-actions": "עוד"
+}
diff --git a/skins/Vector/i18n/hi.json b/skins/Vector/i18n/hi.json
new file mode 100644
index 00000000..6b68d3e7
--- /dev/null
+++ b/skins/Vector/i18n/hi.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Siddhartha Ghai",
+ "आलोक",
+ "रोहित रावत"
+ ]
+ },
+ "vector-action-addsection": "विषय जोड़ें",
+ "vector-action-delete": "हटाएँ",
+ "vector-action-move": "स्थानांतरण करें",
+ "vector-action-protect": "सुरक्षित करें",
+ "vector-action-undelete": "हटाना वापस लें",
+ "vector-action-unprotect": "सुरक्षा बदलें",
+ "vector-view-create": "बनाएँ",
+ "vector-view-edit": "सम्पादन",
+ "vector-view-history": "इतिहास देखें",
+ "vector-view-view": "पढ़ें",
+ "vector-view-viewsource": "स्रोत देखें",
+ "vector-more-actions": "अधिक"
+}
diff --git a/skins/Vector/i18n/hif-latn.json b/skins/Vector/i18n/hif-latn.json
new file mode 100644
index 00000000..df37b3e6
--- /dev/null
+++ b/skins/Vector/i18n/hif-latn.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Girmitya",
+ "Thakurji"
+ ]
+ },
+ "vector-action-addsection": "Topic jorro",
+ "vector-action-delete": "Mitao",
+ "vector-action-move": "Naam badlo",
+ "vector-action-protect": "Bachao",
+ "vector-action-undelete": "Pahile jaise karo",
+ "vector-action-unprotect": "Surakchha ke badlo",
+ "vector-view-create": "Banao",
+ "vector-view-edit": "Badlo",
+ "vector-view-history": "Itihaas dekho",
+ "vector-view-view": "Parrho",
+ "vector-view-viewsource": "Source dekho"
+}
diff --git a/skins/Vector/i18n/hil.json b/skins/Vector/i18n/hil.json
new file mode 100644
index 00000000..304f8ac2
--- /dev/null
+++ b/skins/Vector/i18n/hil.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anjoeli9806"
+ ]
+ },
+ "vector-action-addsection": "Magdugang sang topiko",
+ "vector-action-delete": "Panason",
+ "vector-action-move": "Saylohon",
+ "vector-action-protect": "Pangapinan",
+ "vector-action-undelete": "Dulaon ang pagpanas",
+ "vector-action-unprotect": "Ilisan ang pagpangapin",
+ "vector-view-create": "Himuon",
+ "vector-view-edit": "Ilisan",
+ "vector-view-history": "Lantawon ang kasaysayan",
+ "vector-view-view": "Magbasa",
+ "vector-view-viewsource": "Lantawon ang ginhalinan"
+}
diff --git a/skins/Vector/i18n/hr.json b/skins/Vector/i18n/hr.json
new file mode 100644
index 00000000..1887ee51
--- /dev/null
+++ b/skins/Vector/i18n/hr.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ex13",
+ "Tivek"
+ ]
+ },
+ "vector-action-addsection": "Dodaj temu",
+ "vector-action-delete": "Izbriši",
+ "vector-action-move": "Premjesti",
+ "vector-action-protect": "Zaštiti",
+ "vector-action-undelete": "Vrati",
+ "vector-action-unprotect": "Promijeni zaštitu",
+ "vector-view-create": "Započni",
+ "vector-view-edit": "Uredi",
+ "vector-view-history": "Vidi stare izmjene",
+ "vector-view-view": "Čitaj",
+ "vector-view-viewsource": "Vidi izvor"
+}
diff --git a/skins/Vector/i18n/hrx.json b/skins/Vector/i18n/hrx.json
new file mode 100644
index 00000000..0a45056e
--- /dev/null
+++ b/skins/Vector/i18n/hrx.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Paul Beppler"
+ ]
+ },
+ "vector-action-addsection": "Abschnitt hinzufüche",
+ "vector-action-delete": "Lösche",
+ "vector-action-move": "Verschiebe",
+ "vector-action-protect": "Schütz",
+ "vector-action-undelete": "Wiederherstelle",
+ "vector-action-unprotect": "Seiteschutz ännre",
+ "vector-view-create": "Erstell",
+ "vector-view-edit": "Beoorbeite",
+ "vector-view-history": "Versionsgeschicht",
+ "vector-view-view": "Lese",
+ "vector-view-viewsource": "Quelltext oonzeiche"
+}
diff --git a/skins/Vector/i18n/hsb.json b/skins/Vector/i18n/hsb.json
new file mode 100644
index 00000000..a46105cb
--- /dev/null
+++ b/skins/Vector/i18n/hsb.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "vector-action-addsection": "Temu přidać",
+ "vector-action-delete": "wušmórnyć",
+ "vector-action-move": "přesunyć",
+ "vector-action-protect": "škitać",
+ "vector-action-undelete": "Wobnowić",
+ "vector-action-unprotect": "Škit wotstronić",
+ "vector-view-create": "Wutworić",
+ "vector-view-edit": "Wobdźěłać",
+ "vector-view-history": "Stawizny",
+ "vector-view-view": "Čitać",
+ "vector-view-viewsource": "Žórło sej wobhladać",
+ "vector-more-actions": "Wjace"
+}
diff --git a/skins/Vector/i18n/hsn.json b/skins/Vector/i18n/hsn.json
new file mode 100644
index 00000000..99d8dec9
--- /dev/null
+++ b/skins/Vector/i18n/hsn.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "YulouCN"
+ ]
+ },
+ "vector-view-edit": "增改",
+ "vector-view-history": "履歷",
+ "vector-view-view": "讀"
+}
diff --git a/skins/Vector/i18n/ht.json b/skins/Vector/i18n/ht.json
new file mode 100644
index 00000000..f71167a8
--- /dev/null
+++ b/skins/Vector/i18n/ht.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boukman",
+ "Internoob",
+ "Masterches"
+ ]
+ },
+ "vector-action-addsection": "Ajoute yon sijè",
+ "vector-action-delete": "Efase",
+ "vector-action-move": "Chanje non",
+ "vector-action-protect": "Pwoteje",
+ "vector-action-undelete": "Retabli",
+ "vector-action-unprotect": "Pa pwoteje",
+ "vector-view-create": "Kreye",
+ "vector-view-edit": "Modifye",
+ "vector-view-history": "Gade istorik",
+ "vector-view-view": "Li",
+ "vector-view-viewsource": "Wè kòd tèks sa a"
+}
diff --git a/skins/Vector/i18n/hu-formal.json b/skins/Vector/i18n/hu-formal.json
new file mode 100644
index 00000000..4c9fcad9
--- /dev/null
+++ b/skins/Vector/i18n/hu-formal.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tacsipacsi"
+ ]
+ },
+ "vector-action-addsection": "Új téma nyitása",
+ "vector-action-delete": "Törlés",
+ "vector-action-move": "Átnevezés",
+ "vector-action-protect": "Lapvédelem",
+ "vector-action-undelete": "Visszaállítás",
+ "vector-action-unprotect": "Védelem módosítása",
+ "vector-view-create": "Létrehozás",
+ "vector-view-edit": "Szerkesztés",
+ "vector-view-history": "Laptörténet",
+ "vector-view-view": "Olvasás",
+ "vector-view-viewsource": "A lap forrása"
+}
diff --git a/skins/Vector/i18n/hu.json b/skins/Vector/i18n/hu.json
new file mode 100644
index 00000000..a144ece2
--- /dev/null
+++ b/skins/Vector/i18n/hu.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bdamokos",
+ "Dani",
+ "Dj",
+ "Misibacsi",
+ "Tacsipacsi",
+ "Tgr"
+ ]
+ },
+ "vector.css": "/* Az ide elhelyezett CSS hatással lesz a Vector felület használóira */",
+ "vector.js": "/* A Vector felületet használó szerkesztők számára betöltendő JavaScriptek */",
+ "vector-action-addsection": "Új téma nyitása",
+ "vector-action-delete": "Törlés",
+ "vector-action-move": "Átnevezés",
+ "vector-action-protect": "Lapvédelem",
+ "vector-action-undelete": "Visszaállítás",
+ "vector-action-unprotect": "Védelem módosítása",
+ "vector-view-create": "Létrehozás",
+ "vector-view-edit": "Szerkesztés",
+ "vector-view-history": "Laptörténet",
+ "vector-view-view": "Olvasás",
+ "vector-view-viewsource": "A lap forrása",
+ "vector-more-actions": "Több"
+}
diff --git a/skins/Vector/i18n/hy.json b/skins/Vector/i18n/hy.json
new file mode 100644
index 00000000..79e46017
--- /dev/null
+++ b/skins/Vector/i18n/hy.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Teak",
+ "Vadgt",
+ "Xelgen",
+ "Arman musikyan"
+ ]
+ },
+ "skinname-vector": "Սովորական",
+ "vector-action-addsection": "Ավելացնել քննարկում",
+ "vector-action-delete": "Ջնջել",
+ "vector-action-move": "Տեղափոխել այս էջը",
+ "vector-action-protect": "Պաշտպանել",
+ "vector-action-undelete": "Վերականգնել",
+ "vector-action-unprotect": "Փոխել պաշտպանումը",
+ "vector-view-create": "Ստեղծել",
+ "vector-view-edit": "Խմբագրել",
+ "vector-view-history": "Դիտել պատմությունը",
+ "vector-view-view": "Կարդալ",
+ "vector-view-viewsource": "Դիտել ելատեքստը",
+ "vector-more-actions": "Ավելին"
+}
diff --git a/skins/Vector/i18n/ia.json b/skins/Vector/i18n/ia.json
new file mode 100644
index 00000000..c1281fc7
--- /dev/null
+++ b/skins/Vector/i18n/ia.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "McDutchie"
+ ]
+ },
+ "vector-skin-desc": "Version moderne de MonoBook con aspecto rejuvenescite e multe meliorationes de usabilitate.",
+ "vector.css": "/* Le CSS placiate hic afficera le usatores del apparentia Vector */",
+ "vector.js": "/* Omne JavaScript hic se executara pro le usatores del apparentia Vector */",
+ "vector-action-addsection": "Adder topico",
+ "vector-action-delete": "Deler",
+ "vector-action-move": "Renominar",
+ "vector-action-protect": "Proteger",
+ "vector-action-undelete": "Restaurar",
+ "vector-action-unprotect": "Cambiar protection",
+ "vector-view-create": "Crear",
+ "vector-view-edit": "Modificar",
+ "vector-view-history": "Vider historia",
+ "vector-view-view": "Leger",
+ "vector-view-viewsource": "Vider texto fonte",
+ "vector-more-actions": "Plus"
+}
diff --git a/skins/Vector/i18n/id.json b/skins/Vector/i18n/id.json
new file mode 100644
index 00000000..149cc1f2
--- /dev/null
+++ b/skins/Vector/i18n/id.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arifin.wijaya",
+ "Bennylin",
+ "Farras",
+ "Iwan Novirion",
+ "Rex"
+ ]
+ },
+ "skinname-vector": "Vektor",
+ "vector-skin-desc": "Versi modern dari MonoBook dengan tampilan segar dan banyak perbaikan kegunaan",
+ "vector.css": "/* CSS yang ada di sini akan diterapkan pada kulit Vektor. */",
+ "vector.js": "/* Semua JavaScript di sini akan dimuatkan untuk para pengguna yang menggunakan kulit Vector */",
+ "vector-action-addsection": "Bagian baru",
+ "vector-action-delete": "Hapus",
+ "vector-action-move": "Pindahkan",
+ "vector-action-protect": "Lindungi",
+ "vector-action-undelete": "Pembatalan penghapusan",
+ "vector-action-unprotect": "Ubah perlindungan",
+ "vector-view-create": "Buat",
+ "vector-view-edit": "Sunting",
+ "vector-view-history": "Versi terdahulu",
+ "vector-view-view": "Baca",
+ "vector-view-viewsource": "Lihat sumber",
+ "vector-more-actions": "Lainnya"
+}
diff --git a/skins/Vector/i18n/ie.json b/skins/Vector/i18n/ie.json
new file mode 100644
index 00000000..259b88b0
--- /dev/null
+++ b/skins/Vector/i18n/ie.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Makuba",
+ "Renan"
+ ]
+ },
+ "vector.css": "/* CSS colocat ci va afectar usatores de pelle Vector */",
+ "vector.js": "/* Alquel JavaScript ci va esser cargat por usatores que usa li pelle Vector */",
+ "vector-action-addsection": "Adjunter tema",
+ "vector-action-delete": "Deleter",
+ "vector-action-move": "Mover",
+ "vector-action-protect": "Gardar",
+ "vector-action-undelete": "Restituer",
+ "vector-action-unprotect": "Desgardar",
+ "vector-view-create": "Crear",
+ "vector-view-edit": "Redacter",
+ "vector-view-history": "Historie de versiones",
+ "vector-view-view": "Leer",
+ "vector-view-viewsource": "Vider fonte"
+}
diff --git a/skins/Vector/i18n/ig.json b/skins/Vector/i18n/ig.json
new file mode 100644
index 00000000..66e93cce
--- /dev/null
+++ b/skins/Vector/i18n/ig.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ukabia"
+ ]
+ },
+ "vector-action-addsection": "Tinyé Okwu",
+ "vector-action-delete": "Kàcha",
+ "vector-action-move": "Páfụ",
+ "vector-action-protect": "Cẹdolu",
+ "vector-action-undelete": "Á gbàkashikwà",
+ "vector-action-unprotect": "Nchẹdo mgbanwe",
+ "vector-view-create": "Ké",
+ "vector-view-edit": "Mèzi",
+ "vector-view-history": "Zí ịta",
+ "vector-view-view": "Gụ́",
+ "vector-view-viewsource": "Zi mkpurụ"
+}
diff --git a/skins/Vector/i18n/ike-latn.json b/skins/Vector/i18n/ike-latn.json
new file mode 100644
index 00000000..6c7337bd
--- /dev/null
+++ b/skins/Vector/i18n/ike-latn.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "vector-view-edit": "Suqusiqpaa"
+}
diff --git a/skins/Vector/i18n/ilo.json b/skins/Vector/i18n/ilo.json
new file mode 100644
index 00000000..d83586d0
--- /dev/null
+++ b/skins/Vector/i18n/ilo.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lam-ang",
+ "Saluyot"
+ ]
+ },
+ "vector-skin-desc": "Modernno a bersion ti MonoBook nga addaan iti baro a langa ken adu kadagiti naserbi a panagpasayaat",
+ "vector-action-addsection": "Agnayon ti topiko",
+ "vector-action-delete": "Ikkaten",
+ "vector-action-move": "Iyalis",
+ "vector-action-protect": "Salakniban",
+ "vector-action-undelete": "Isubli ti inikkat",
+ "vector-action-unprotect": "Sukatan ti salaknib",
+ "vector-view-create": "Agaramid",
+ "vector-view-edit": "Urnosen",
+ "vector-view-history": "Kitaen ti pakasaritaan",
+ "vector-view-view": "Basaen",
+ "vector-view-viewsource": "Kitaen ti taudan",
+ "vector-more-actions": "Adu pay"
+}
diff --git a/skins/Vector/i18n/inh.json b/skins/Vector/i18n/inh.json
new file mode 100644
index 00000000..e50a3ec7
--- /dev/null
+++ b/skins/Vector/i18n/inh.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Sapral Mikail"
+ ]
+ },
+ "vector-action-addsection": "БӀагал тӀатоха",
+ "vector-action-delete": "ДӀадаккха",
+ "vector-action-move": "ЦӀи хувца",
+ "vector-action-protect": "Лораде",
+ "vector-action-undelete": "Юхаоттаде",
+ "vector-action-unprotect": "Лорам хувца",
+ "vector-view-create": "Кхолларле",
+ "vector-view-edit": "Хувцам",
+ "vector-view-history": "Искар",
+ "vector-view-view": "Дешар",
+ "vector-view-viewsource": "Зембакхама бӀаргтассам"
+}
diff --git a/skins/Vector/i18n/io.json b/skins/Vector/i18n/io.json
new file mode 100644
index 00000000..3bfec4dd
--- /dev/null
+++ b/skins/Vector/i18n/io.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya"
+ ]
+ },
+ "vector-action-addsection": "Adjuntar topiko",
+ "vector-action-delete": "Efacar",
+ "vector-action-move": "Movar",
+ "vector-action-protect": "Protektar",
+ "vector-action-undelete": "Rekuperar",
+ "vector-action-unprotect": "Desprotektar",
+ "vector-view-create": "Krear",
+ "vector-view-edit": "Redaktar",
+ "vector-view-history": "Vidar versionaro",
+ "vector-view-view": "Lektar",
+ "vector-view-viewsource": "Vidar fonto"
+}
diff --git a/skins/Vector/i18n/is.json b/skins/Vector/i18n/is.json
new file mode 100644
index 00000000..dc54f1b6
--- /dev/null
+++ b/skins/Vector/i18n/is.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Friðrik Bragi Dýrfjörð",
+ "Maxí",
+ "Snævar",
+ "Ævar Arnfjörð Bjarmason"
+ ]
+ },
+ "vector-action-addsection": "Bæta við umræðu",
+ "vector-action-delete": "Eyða",
+ "vector-action-move": "Færa",
+ "vector-action-protect": "Vernda",
+ "vector-action-undelete": "Hætta við eyðingu",
+ "vector-action-unprotect": "Breyta verndunarstigi",
+ "vector-view-create": "Skapa",
+ "vector-view-edit": "Breyta",
+ "vector-view-history": "Breytingaskrá",
+ "vector-view-view": "Lesa",
+ "vector-view-viewsource": "Sýna frumkóða"
+}
diff --git a/skins/Vector/i18n/it.json b/skins/Vector/i18n/it.json
new file mode 100644
index 00000000..2edac078
--- /dev/null
+++ b/skins/Vector/i18n/it.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Beta16",
+ "Darth Kule",
+ "Gianfranco",
+ "Melos",
+ "Pietrodn",
+ "FRacco"
+ ]
+ },
+ "vector-skin-desc": "Versione moderna del MonoBook con un aspetto rinnovato e molti miglioramenti dell'usabilità",
+ "vector.css": "/* Gli stili CSS inseriti qui si applicano agli utenti che usano la skin Vector */",
+ "vector.js": "/* Il codice JavaScript inserito qui viene caricato dagli utenti che usano la skin Vector */",
+ "vector-action-addsection": "Aggiungi discussione",
+ "vector-action-delete": "Cancella",
+ "vector-action-move": "Sposta",
+ "vector-action-protect": "Proteggi",
+ "vector-action-undelete": "Ripristina",
+ "vector-action-unprotect": "Cambia la protezione",
+ "vector-view-create": "Crea",
+ "vector-view-edit": "Modifica",
+ "vector-view-history": "Cronologia",
+ "vector-view-view": "Leggi",
+ "vector-view-viewsource": "Visualizza sorgente",
+ "vector-more-actions": "Altro"
+}
diff --git a/skins/Vector/i18n/izh.json b/skins/Vector/i18n/izh.json
new file mode 100644
index 00000000..ab41111c
--- /dev/null
+++ b/skins/Vector/i18n/izh.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aig mest ei varasta"
+ ]
+ },
+ "vector-view-view": "Lukkiia"
+}
diff --git a/skins/Vector/i18n/ja.json b/skins/Vector/i18n/ja.json
new file mode 100644
index 00000000..9cb43e46
--- /dev/null
+++ b/skins/Vector/i18n/ja.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fryed-peach",
+ "Marine-Blue",
+ "Penn Station",
+ "Shirayuki",
+ "Whym",
+ "青子守歌",
+ "Takot"
+ ]
+ },
+ "skinname-vector": "ベクター",
+ "vector-skin-desc": "新しい見た目でユーザビリティが改善された、モダンバージョンのMonobook。",
+ "vector.css": "/* ここに記述したCSSはベクター外装の利用者に影響します */",
+ "vector.js": "/* ここにあるすべてのJavaScriptは、ベクター外装を使用している利用者に対して読み込まれます */",
+ "vector-action-addsection": "話題追加",
+ "vector-action-delete": "削除",
+ "vector-action-move": "移動",
+ "vector-action-protect": "保護",
+ "vector-action-undelete": "復元",
+ "vector-action-unprotect": "保護再設定",
+ "vector-view-create": "作成",
+ "vector-view-edit": "編集",
+ "vector-view-history": "履歴表示",
+ "vector-view-view": "閲覧",
+ "vector-view-viewsource": "ソースを閲覧",
+ "vector-more-actions": "その他"
+}
diff --git a/skins/Vector/i18n/jam.json b/skins/Vector/i18n/jam.json
new file mode 100644
index 00000000..cf843059
--- /dev/null
+++ b/skins/Vector/i18n/jam.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hazard-SJ",
+ "Yocahuna"
+ ]
+ },
+ "vector-action-addsection": "Ad tapik",
+ "vector-action-delete": "Diliit",
+ "vector-action-move": "Muuv",
+ "vector-action-protect": "Protek",
+ "vector-action-undelete": "Andiliit",
+ "vector-action-unprotect": "Neu protektian",
+ "vector-view-create": "Kriet",
+ "vector-view-edit": "Hedit",
+ "vector-view-history": "Vyuu ischri",
+ "vector-view-view": "Riid",
+ "vector-view-viewsource": "Vyuu Suos"
+}
diff --git a/skins/Vector/i18n/jbo.json b/skins/Vector/i18n/jbo.json
new file mode 100644
index 00000000..b75db03d
--- /dev/null
+++ b/skins/Vector/i18n/jbo.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gleki"
+ ]
+ },
+ "skinname-vector": "la vektor",
+ "vector-skin-desc": "lo cabna versio be la monobuk i vifne tarmi i so'i da nu xamgu zenba",
+ "vector-action-addsection": "jmina la'e se casnu",
+ "vector-action-delete": "vimcu",
+ "vector-action-move": "stika lo cmene",
+ "vector-action-protect": "bandu",
+ "vector-action-undelete": "volvygau",
+ "vector-action-unprotect": "cnegau lo bandu",
+ "vector-view-create": "zbasu",
+ "vector-view-edit": "stika",
+ "vector-view-history": "lo ckupau citri",
+ "vector-view-view": "tcidu",
+ "vector-view-viewsource": "cpacu lo krasi",
+ "vector-more-actions": "ji'a"
+}
diff --git a/skins/Vector/i18n/jv.json b/skins/Vector/i18n/jv.json
new file mode 100644
index 00000000..7af6b953
--- /dev/null
+++ b/skins/Vector/i18n/jv.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pras"
+ ]
+ },
+ "vector-action-addsection": "Tambah topik",
+ "vector-action-delete": "Busak",
+ "vector-action-move": "Pindhahna",
+ "vector-action-protect": "Reksa",
+ "vector-action-undelete": "Batalna pambusakan",
+ "vector-action-unprotect": "Owahi pangreksan",
+ "vector-view-create": "Gawé",
+ "vector-view-edit": "Sunting",
+ "vector-view-history": "Sajarah kaca",
+ "vector-view-view": "Waca",
+ "vector-view-viewsource": "Pirsani sumber"
+}
diff --git a/skins/Vector/i18n/ka.json b/skins/Vector/i18n/ka.json
new file mode 100644
index 00000000..a08fe71c
--- /dev/null
+++ b/skins/Vector/i18n/ka.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alsandro",
+ "David1010",
+ "გიორგიმელა"
+ ]
+ },
+ "skinname-vector": "ვექტორული",
+ "vector.css": "/* აქ ჩასმული CSS გამოყენებული იქნება ვექტორული გაფორმების თემაში */",
+ "vector-action-addsection": "თემის ჩამატება",
+ "vector-action-delete": "წაშლა",
+ "vector-action-move": "გადატანა",
+ "vector-action-protect": "დაცვა",
+ "vector-action-undelete": "აღდგენა",
+ "vector-action-unprotect": "დაცვის შეცვლა",
+ "vector-view-create": "შექმნა",
+ "vector-view-edit": "რედაქტირება",
+ "vector-view-history": "ისტორია",
+ "vector-view-view": "შემოწმებული სტატია",
+ "vector-view-viewsource": "წყაროს ხილვა",
+ "vector-more-actions": "მეტი"
+}
diff --git a/skins/Vector/i18n/kaa.json b/skins/Vector/i18n/kaa.json
new file mode 100644
index 00000000..1518526c
--- /dev/null
+++ b/skins/Vector/i18n/kaa.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Atabek"
+ ]
+ },
+ "vector-action-addsection": "Tema qosıw",
+ "vector-action-delete": "O'shiriw",
+ "vector-action-move": "Ko'shiriw",
+ "vector-action-protect": "Qorg'aw",
+ "vector-action-undelete": "Qayta tiklew",
+ "vector-action-unprotect": "Qorg'awdı o'zgertiw",
+ "vector-view-create": "Jaratıw",
+ "vector-view-edit": "O'zgertiw",
+ "vector-view-history": "Tariyxın ko'riw",
+ "vector-view-view": "Oqıw",
+ "vector-view-viewsource": "Deregin ko'riw"
+}
diff --git a/skins/Vector/i18n/kab.json b/skins/Vector/i18n/kab.json
new file mode 100644
index 00000000..f233083a
--- /dev/null
+++ b/skins/Vector/i18n/kab.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mmistmurt"
+ ]
+ },
+ "vector-action-addsection": "Rnud ameggay",
+ "vector-action-delete": "Mḥu",
+ "vector-action-move": "Smimeḍ",
+ "vector-action-protect": "Mmesten",
+ "vector-action-undelete": "Uɣaled",
+ "vector-action-unprotect": "Beddel amesten",
+ "vector-view-create": "Snulfu",
+ "vector-view-edit": "Ẓẓiẓreg",
+ "vector-view-history": "Ẓeṛ amazray",
+ "vector-view-view": "Ɣer",
+ "vector-view-viewsource": "Ẓer aɣbalu"
+}
diff --git a/skins/Vector/i18n/kbd-cyrl.json b/skins/Vector/i18n/kbd-cyrl.json
new file mode 100644
index 00000000..efd893e0
--- /dev/null
+++ b/skins/Vector/i18n/kbd-cyrl.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bogups",
+ "Тамэ Балъкъэрхэ"
+ ]
+ },
+ "vector-action-addsection": "Теухугъуэ щӀэуэ щӀэдзэн",
+ "vector-action-delete": "Ихын",
+ "vector-action-move": "ЦӀэр хъуэжын",
+ "vector-action-protect": "Хъумэн",
+ "vector-action-undelete": "ЗыфӀэгъэувэжын",
+ "vector-action-unprotect": "Хъумэныр техыжын",
+ "vector-view-create": "ЩӀын",
+ "vector-view-edit": "Гъэтэрэзын",
+ "vector-view-history": "Тхыдэм еплъын",
+ "vector-view-view": "Еджэн",
+ "vector-view-viewsource": "КъызхэкӀам еплъын"
+}
diff --git a/skins/Vector/i18n/kg.json b/skins/Vector/i18n/kg.json
new file mode 100644
index 00000000..f88430a0
--- /dev/null
+++ b/skins/Vector/i18n/kg.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rkupsala"
+ ]
+ },
+ "vector-action-delete": "Kufwa",
+ "vector-action-move": "Nata",
+ "vector-action-protect": "Keba",
+ "vector-view-create": "Tunga",
+ "vector-view-edit": "Soba",
+ "vector-view-history": "Tala bansoba",
+ "vector-view-view": "Tânga"
+}
diff --git a/skins/Vector/i18n/khw.json b/skins/Vector/i18n/khw.json
new file mode 100644
index 00000000..a0ceacaf
--- /dev/null
+++ b/skins/Vector/i18n/khw.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rachitrali"
+ ]
+ },
+ "vector-action-addsection": "نوغ موضوع",
+ "vector-action-delete": "بوغاوے",
+ "vector-action-move": "منتقل کورے",
+ "vector-action-protect": "محفوظ کورے",
+ "vector-action-undelete": "اچی انگیے",
+ "vector-action-unprotect": "غیر محفوظ",
+ "vector-view-create": "ساوزاوے",
+ "vector-view-edit": "ایڈٹ کورے",
+ "vector-view-history": "تاریخچہ",
+ "vector-view-view": "راوے",
+ "vector-view-viewsource": "مسودہ"
+}
diff --git a/skins/Vector/i18n/ki.json b/skins/Vector/i18n/ki.json
new file mode 100644
index 00000000..30f6a5fe
--- /dev/null
+++ b/skins/Vector/i18n/ki.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Stephenwanjau"
+ ]
+ },
+ "vector-action-delete": "Futa"
+}
diff --git a/skins/Vector/i18n/kiu.json b/skins/Vector/i18n/kiu.json
new file mode 100644
index 00000000..3d2c3cc6
--- /dev/null
+++ b/skins/Vector/i18n/kiu.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mirzali"
+ ]
+ },
+ "vector-action-addsection": "Mewzu ilawe ke",
+ "vector-action-delete": "Bestere",
+ "vector-action-move": "Bere",
+ "vector-action-protect": "Bısevekne",
+ "vector-action-undelete": "Esterıtene peyser bıcê",
+ "vector-action-unprotect": "Rake",
+ "vector-view-create": "Vıraze",
+ "vector-view-edit": "Bıvurne",
+ "vector-view-history": "Tarixi basne",
+ "vector-view-view": "Bıwane",
+ "vector-view-viewsource": "Çımey bıvêne"
+}
diff --git a/skins/Vector/i18n/kk-cyrl.json b/skins/Vector/i18n/kk-cyrl.json
new file mode 100644
index 00000000..35933509
--- /dev/null
+++ b/skins/Vector/i18n/kk-cyrl.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek",
+ "Daniyar",
+ "GaiJin",
+ "Kaztrans"
+ ]
+ },
+ "vector-action-addsection": "Тақырып қосу",
+ "vector-action-delete": "Жою",
+ "vector-action-move": "Атауын өзгерту",
+ "vector-action-protect": "Қорғау",
+ "vector-action-undelete": "Жоймау",
+ "vector-action-unprotect": "Қорғанысын өзгерту",
+ "vector-view-create": "Бастау",
+ "vector-view-edit": "Өңдеу",
+ "vector-view-history": "Өңделу тарихы",
+ "vector-view-view": "Оқу",
+ "vector-view-viewsource": "Қайнарын қарау",
+ "vector-more-actions": "Тағы"
+}
diff --git a/skins/Vector/i18n/kl.json b/skins/Vector/i18n/kl.json
new file mode 100644
index 00000000..6a3d7b1a
--- /dev/null
+++ b/skins/Vector/i18n/kl.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iketsi",
+ "Qaqqalik"
+ ]
+ },
+ "vector-action-addsection": "Imm. nutaaq",
+ "vector-action-move": "Nuuguk",
+ "vector-view-create": "Pilersiguk",
+ "vector-view-edit": "Aaqqissoruk",
+ "vector-view-history": "Oqalutt.",
+ "vector-view-view": "Takuuk",
+ "vector-view-viewsource": "Toqqavia takuuk"
+}
diff --git a/skins/Vector/i18n/km.json b/skins/Vector/i18n/km.json
new file mode 100644
index 00000000..68271173
--- /dev/null
+++ b/skins/Vector/i18n/km.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "គីមស៊្រុន",
+ "វ័ណថារិទ្ធ"
+ ]
+ },
+ "skinname-vector": "វ៉ិចទ័រ​​",
+ "vector.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើអ្នកប្រើប្រាស់នៃសំបក Vector */",
+ "vector-action-addsection": "បន្ថែម​ប្រធានបទ​",
+ "vector-action-delete": "លុបចោល",
+ "vector-action-move": "ប្តូរទីតាំង",
+ "vector-action-protect": "ការពារ",
+ "vector-action-undelete": "ឈប់លុបចោល",
+ "vector-action-unprotect": "ប្ដូរការការពារ",
+ "vector-view-create": "បង្កើត​",
+ "vector-view-edit": "កែប្រែ​",
+ "vector-view-history": "មើល​ប្រវត្តិ​",
+ "vector-view-view": "អាន",
+ "vector-view-viewsource": "មើល​កូដ"
+}
diff --git a/skins/Vector/i18n/kn.json b/skins/Vector/i18n/kn.json
new file mode 100644
index 00000000..aae7272b
--- /dev/null
+++ b/skins/Vector/i18n/kn.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ktkaushik",
+ "Nayvik",
+ "VASANTH S.N."
+ ]
+ },
+ "vector-action-addsection": "ವಿಷಯ ಸೇರಿಸಿ",
+ "vector-action-delete": "ಅಳಿಸು",
+ "vector-action-move": "ಸ್ಥಳಾಂತರಿಸಿ",
+ "vector-action-protect": "ಸಂರಕ್ಷಿಸು",
+ "vector-action-undelete": "ಅಳಿಸಬೇಡ",
+ "vector-action-unprotect": "ರಕ್ಷಣೆಯನ್ನು ಬದಲಾವಣೆ",
+ "vector-view-create": "ಸೃಷ್ಟಿಸು",
+ "vector-view-edit": "ಸಂಪಾದಿಸಿ",
+ "vector-view-history": "ಇತಿಹಾಸವನ್ನು ನೋಡಿ",
+ "vector-view-view": "ಓದು",
+ "vector-view-viewsource": "ಆಕರ ವೀಕ್ಷಿಸು"
+}
diff --git a/skins/Vector/i18n/ko.json b/skins/Vector/i18n/ko.json
new file mode 100644
index 00000000..038f3421
--- /dev/null
+++ b/skins/Vector/i18n/ko.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "ITurtle",
+ "Kwj2772",
+ "아라"
+ ]
+ },
+ "skinname-vector": "벡터",
+ "vector-skin-desc": "모노북 스킨을 사용할 때 사용자 인터페이스를 향상합니다",
+ "vector.css": "/* 이 CSS 설정은 벡터 스킨을 사용하는 사용자에게 적용됩니다 */",
+ "vector.js": "/* 이 자바스크립트 설정은 벡터 스킨을 사용하는 사용자에게 적용됩니다 */",
+ "vector-action-addsection": "새 주제",
+ "vector-action-delete": "삭제",
+ "vector-action-move": "옮기기",
+ "vector-action-protect": "보호",
+ "vector-action-undelete": "삭제 취소",
+ "vector-action-unprotect": "보호 설정 바꾸기",
+ "vector-view-create": "만들기",
+ "vector-view-edit": "편집",
+ "vector-view-history": "역사 보기",
+ "vector-view-view": "읽기",
+ "vector-view-viewsource": "원본 보기",
+ "vector-more-actions": "더 보기"
+}
diff --git a/skins/Vector/i18n/koi.json b/skins/Vector/i18n/koi.json
new file mode 100644
index 00000000..1753f447
--- /dev/null
+++ b/skins/Vector/i18n/koi.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Enye Lav"
+ ]
+ },
+ "vector-action-delete": "Чышкыны",
+ "vector-view-view": "Лыддьöтны"
+}
diff --git a/skins/Vector/i18n/krc.json b/skins/Vector/i18n/krc.json
new file mode 100644
index 00000000..cdb2f55f
--- /dev/null
+++ b/skins/Vector/i18n/krc.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iltever",
+ "Къарачайлы"
+ ]
+ },
+ "skinname-vector": "Вектор",
+ "vector-action-addsection": "Джангы тема къош",
+ "vector-action-delete": "Кетер",
+ "vector-action-move": "Атын ауушдур",
+ "vector-action-protect": "Джакъла",
+ "vector-action-undelete": "Къайтар",
+ "vector-action-unprotect": "Джакълауну тюрлендир",
+ "vector-view-create": "Къура",
+ "vector-view-edit": "Тюрлендир",
+ "vector-view-history": "Тарихи",
+ "vector-view-view": "Окъу",
+ "vector-view-viewsource": "Кодха къара",
+ "vector-more-actions": "Энтда"
+}
diff --git a/skins/Vector/i18n/kri.json b/skins/Vector/i18n/kri.json
new file mode 100644
index 00000000..056a9e50
--- /dev/null
+++ b/skins/Vector/i18n/kri.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Protostar"
+ ]
+ },
+ "vector-action-addsection": "Add tòpik",
+ "vector-action-delete": "Delet",
+ "vector-action-move": "Muf",
+ "vector-action-protect": "Protèkt",
+ "vector-view-create": "Kreat",
+ "vector-view-edit": "Chenj",
+ "vector-view-history": "Luk historia",
+ "vector-view-view": "Rid",
+ "vector-view-viewsource": "Luk dhi sòrs"
+}
diff --git a/skins/Vector/i18n/ks-arab.json b/skins/Vector/i18n/ks-arab.json
new file mode 100644
index 00000000..1f8ec54b
--- /dev/null
+++ b/skins/Vector/i18n/ks-arab.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "vector-view-edit": "تَرتیٖب دِیُن",
+ "vector-view-view": "پَرُن"
+}
diff --git a/skins/Vector/i18n/ksh.json b/skins/Vector/i18n/ksh.json
new file mode 100644
index 00000000..7d91fae5
--- /dev/null
+++ b/skins/Vector/i18n/ksh.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha"
+ ]
+ },
+ "skinname-vector": "Vektor",
+ "vector.css": "/* CSS heh aan dä Stell wirrek nur op de Ovverflääsch „Vector“ */",
+ "vector.js": "/* De JavaSkrippte fun hee krijje alle Sigge met de Ovverflääsch \"Vector\" jescheck */",
+ "vector-action-addsection": "Ne neue Afschnet onge draan!",
+ "vector-action-delete": "Fottschmiiße!",
+ "vector-action-move": "Ömnänne!",
+ "vector-action-protect": "Schöze!",
+ "vector-action-undelete": "Zerökholle!",
+ "vector-action-unprotect": "Schoz ändere!",
+ "vector-view-create": "Neu Schriive!",
+ "vector-view-edit": "Ändere!",
+ "vector-view-history": "Versione zeije!",
+ "vector-view-view": "Lesse!",
+ "vector-view-viewsource": "Wikitex aanlooere!"
+}
diff --git a/skins/Vector/i18n/ku-latn.json b/skins/Vector/i18n/ku-latn.json
new file mode 100644
index 00000000..90e07065
--- /dev/null
+++ b/skins/Vector/i18n/ku-latn.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ferhengvan",
+ "Gomada"
+ ]
+ },
+ "vector-action-addsection": "Mijarekê lê zêde bike",
+ "vector-action-delete": "Jê bibe",
+ "vector-action-move": "Nav biguherîne",
+ "vector-action-protect": "Biparêze",
+ "vector-action-undelete": "Jê nebe",
+ "vector-action-unprotect": "Parastinê rake",
+ "vector-view-create": "Çêke",
+ "vector-view-edit": "Biguherîne",
+ "vector-view-history": "Dîrokê bibîne",
+ "vector-view-view": "Bixwîne",
+ "vector-view-viewsource": "Çavkaniyan bibîne"
+}
diff --git a/skins/Vector/i18n/kv.json b/skins/Vector/i18n/kv.json
new file mode 100644
index 00000000..d3df0690
--- /dev/null
+++ b/skins/Vector/i18n/kv.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Comp1089"
+ ]
+ },
+ "vector-action-move": "Ним вежны",
+ "vector-view-edit": "Вежны",
+ "vector-view-view": "Лыддьыны"
+}
diff --git a/skins/Vector/i18n/kw.json b/skins/Vector/i18n/kw.json
new file mode 100644
index 00000000..4a2975cd
--- /dev/null
+++ b/skins/Vector/i18n/kw.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kernoweger",
+ "Kw-Moon",
+ "Nrowe"
+ ]
+ },
+ "vector-action-addsection": "Keworra testen",
+ "vector-action-delete": "Dilea",
+ "vector-action-move": "Gwaya",
+ "vector-action-protect": "Difres",
+ "vector-action-undelete": "Disdhilea",
+ "vector-action-unprotect": "Chanjya difresans",
+ "vector-view-create": "Gwruthyl",
+ "vector-view-edit": "Chanjya",
+ "vector-view-history": "Gweles an istori",
+ "vector-view-view": "Redya",
+ "vector-view-viewsource": "Gweles an bennfenten"
+}
diff --git a/skins/Vector/i18n/ky.json b/skins/Vector/i18n/ky.json
new file mode 100644
index 00000000..e536d9b4
--- /dev/null
+++ b/skins/Vector/i18n/ky.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chorobek",
+ "Growingup",
+ "Ztimur",
+ "Викиней"
+ ]
+ },
+ "vector-action-addsection": "Тема кошуу",
+ "vector-action-delete": "Өчүрүү",
+ "vector-action-move": "Аталышын өзгөртүү",
+ "vector-action-protect": "Коргоо",
+ "vector-action-undelete": "Калыбына келтирүү",
+ "vector-action-unprotect": "Коргоону өзгөртүү",
+ "vector-view-create": "Түзүү",
+ "vector-view-edit": "Оңдоо",
+ "vector-view-history": "Тарыхын кароо",
+ "vector-view-view": "Окуу",
+ "vector-view-viewsource": "Кайнарын кароо"
+}
diff --git a/skins/Vector/i18n/la.json b/skins/Vector/i18n/la.json
new file mode 100644
index 00000000..2cc4ad2a
--- /dev/null
+++ b/skins/Vector/i18n/la.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "UV"
+ ]
+ },
+ "vector-action-addsection": "Partem novam addere",
+ "vector-action-delete": "Delere",
+ "vector-action-move": "Movere",
+ "vector-action-protect": "Protegere",
+ "vector-action-undelete": "Restituere",
+ "vector-action-unprotect": "Protectionem mutare",
+ "vector-view-create": "Creare",
+ "vector-view-edit": "Recensere",
+ "vector-view-history": "Historiam inspicere",
+ "vector-view-view": "Legere",
+ "vector-view-viewsource": "Fontem inspicere",
+ "vector-more-actions": "Plus"
+}
diff --git a/skins/Vector/i18n/lad.json b/skins/Vector/i18n/lad.json
new file mode 100644
index 00000000..729ec483
--- /dev/null
+++ b/skins/Vector/i18n/lad.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Universal Life"
+ ]
+ },
+ "vector-action-addsection": "Ajustar sujeto",
+ "vector-action-delete": "Efassar",
+ "vector-action-move": "Taşirear",
+ "vector-action-protect": "Guadrar",
+ "vector-action-undelete": "Traer atrás",
+ "vector-action-unprotect": "Trocar proteksyon",
+ "vector-view-create": "Criar",
+ "vector-view-edit": "Trocar",
+ "vector-view-history": "Ver la istoria",
+ "vector-view-view": "Meldar",
+ "vector-view-viewsource": "Ver su manadero"
+}
diff --git a/skins/Vector/i18n/lb.json b/skins/Vector/i18n/lb.json
new file mode 100644
index 00000000..f1f868e0
--- /dev/null
+++ b/skins/Vector/i18n/lb.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Robby"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Modern Versioun vu Monobook mat frëschem Look a ville Verbesserunge vun der Benotzerfrëndlechkeet",
+ "vector.css": "/* CSS deen hei steet huet Afloss op all Benotzer vum Ausgesinn Vector */",
+ "vector.js": "/* All JavaScript hei gëtt gelueden esoubal ee Benotzer d'Ausgesinn Vector benotzt */",
+ "vector-action-addsection": "Sujet derbäisetzen",
+ "vector-action-delete": "Läschen",
+ "vector-action-move": "Réckelen",
+ "vector-action-protect": "Spären",
+ "vector-action-undelete": "Restauréieren",
+ "vector-action-unprotect": "Spär änneren",
+ "vector-view-create": "Uleeën",
+ "vector-view-edit": "Änneren",
+ "vector-view-history": "Versioune weisen",
+ "vector-view-view": "Liesen",
+ "vector-view-viewsource": "Quellcode weisen",
+ "vector-more-actions": "Méi"
+}
diff --git a/skins/Vector/i18n/lez.json b/skins/Vector/i18n/lez.json
new file mode 100644
index 00000000..d132626c
--- /dev/null
+++ b/skins/Vector/i18n/lez.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lezgia",
+ "Migraghvi",
+ "Namik",
+ "Soul Train"
+ ]
+ },
+ "vector-action-addsection": "Тема алава авун",
+ "vector-action-delete": "Алудун",
+ "vector-action-move": "ТӀвар эхцигун",
+ "vector-action-protect": "Хуьн",
+ "vector-action-undelete": "ТуькӀуьр хъувун",
+ "vector-action-unprotect": "Хуьн дегишарун",
+ "vector-view-create": "ТуькӀуьрун",
+ "vector-view-edit": "Дуьзарин",
+ "vector-view-history": "Тарихдиз килигун",
+ "vector-view-view": "КӀелун",
+ "vector-view-viewsource": "Чешме къалурун"
+}
diff --git a/skins/Vector/i18n/lg.json b/skins/Vector/i18n/lg.json
new file mode 100644
index 00000000..42829006
--- /dev/null
+++ b/skins/Vector/i18n/lg.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kizito"
+ ]
+ },
+ "vector-action-addsection": "Tandikawo emboozi endala",
+ "vector-action-delete": "Gyawo olupapula luno",
+ "vector-action-move": "Simbuliza",
+ "vector-action-protect": "Ssiba",
+ "vector-action-undelete": "Zawo",
+ "vector-action-unprotect": "Kyusa ebikugizo",
+ "vector-view-create": "Lukolewo",
+ "vector-view-edit": "Kyusa",
+ "vector-view-history": "Ennanda ya fayiro eno",
+ "vector-view-view": "Soma",
+ "vector-view-viewsource": "Kebera obulambike obw'ennono obw'olupapula luno"
+}
diff --git a/skins/Vector/i18n/li.json b/skins/Vector/i18n/li.json
new file mode 100644
index 00000000..8fe7e265
--- /dev/null
+++ b/skins/Vector/i18n/li.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ooswesthoesbes"
+ ]
+ },
+ "vector-action-addsection": "Voog köpke toe",
+ "vector-action-delete": "Ewegsjaffe",
+ "vector-action-move": "Verplaats",
+ "vector-action-protect": "Besjirm",
+ "vector-action-undelete": "Plaats trök",
+ "vector-action-unprotect": "Anger beveiliging",
+ "vector-view-create": "Maak aan",
+ "vector-view-edit": "Bewirk",
+ "vector-view-history": "Bekiek de gesjiedenis",
+ "vector-view-view": "Laes",
+ "vector-view-viewsource": "Bekiek bróntèks"
+}
diff --git a/skins/Vector/i18n/lij.json b/skins/Vector/i18n/lij.json
new file mode 100644
index 00000000..e73547cc
--- /dev/null
+++ b/skins/Vector/i18n/lij.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gastaz",
+ "Giromin Cangiaxo"
+ ]
+ },
+ "vector-action-addsection": "Azónzi discusción",
+ "vector-action-delete": "Scancella",
+ "vector-action-move": "Mescia",
+ "vector-action-protect": "Protezi",
+ "vector-action-undelete": "Recuppera",
+ "vector-action-unprotect": "Cangia a proteçion",
+ "vector-view-create": "Crea",
+ "vector-view-edit": "Càngia",
+ "vector-view-history": "Fanni védde a Stöia",
+ "vector-view-view": "Lêzi",
+ "vector-view-viewsource": "Veddi a sorgénte"
+}
diff --git a/skins/Vector/i18n/liv.json b/skins/Vector/i18n/liv.json
new file mode 100644
index 00000000..68518e56
--- /dev/null
+++ b/skins/Vector/i18n/liv.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Warbola"
+ ]
+ },
+ "vector-action-addsection": "Pangid jūrõ tēma",
+ "vector-action-delete": "Kištāntõgid jarā",
+ "vector-action-move": "Vīž jarā",
+ "vector-action-protect": "Kaitsõmi",
+ "vector-view-create": "Lūo",
+ "vector-view-edit": "Redigīer",
+ "vector-view-history": "Nägţ istōrijõ",
+ "vector-view-view": "Vaņ",
+ "vector-view-viewsource": "Vaņ ovāt tekstõ"
+}
diff --git a/skins/Vector/i18n/lmo.json b/skins/Vector/i18n/lmo.json
new file mode 100644
index 00000000..a5c86242
--- /dev/null
+++ b/skins/Vector/i18n/lmo.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Insübrich",
+ "Ninonino"
+ ]
+ },
+ "vector-action-addsection": "Giunta argument",
+ "vector-action-delete": "Scancela",
+ "vector-action-move": "Sposta",
+ "vector-action-protect": "Prutegg",
+ "vector-action-undelete": "Recüpera",
+ "vector-action-unprotect": "Càmbia la protesiù",
+ "vector-view-create": "Crea",
+ "vector-view-edit": "Mudifega",
+ "vector-view-history": "Varda la storia",
+ "vector-view-view": "Legg",
+ "vector-view-viewsource": "Varda el codes",
+ "vector-more-actions": "Amò"
+}
diff --git a/skins/Vector/i18n/ln.json b/skins/Vector/i18n/ln.json
new file mode 100644
index 00000000..5fb40110
--- /dev/null
+++ b/skins/Vector/i18n/ln.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eruedin",
+ "Moyogo"
+ ]
+ },
+ "vector-action-addsection": "Kobakisa mpɔ̂",
+ "vector-action-delete": "Kolímwisa",
+ "vector-action-move": "Kobóngola nkómbó",
+ "vector-action-protect": "Kobátela",
+ "vector-action-undelete": "Kolímwisa tɛ̂",
+ "vector-action-unprotect": " Kobátela tɛ̂",
+ "vector-view-create": "Kokela",
+ "vector-view-edit": "Kobɔngisa",
+ "vector-view-history": "Komɔ́nisa mokóló",
+ "vector-view-view": "Kotánga",
+ "vector-view-viewsource": "Komɔ́nisa mosólo"
+}
diff --git a/skins/Vector/i18n/lrc.json b/skins/Vector/i18n/lrc.json
new file mode 100644
index 00000000..2f756b55
--- /dev/null
+++ b/skins/Vector/i18n/lrc.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mogoeilor"
+ ]
+ },
+ "vector-action-addsection": "موضوع اضاف بكيد",
+ "vector-action-delete": "پاکسا کردن",
+ "vector-action-move": "جاوه جا بوئيت",
+ "vector-action-protect": "حمايت بكيد",
+ "vector-action-undelete": "حذف نبيئني",
+ "vector-action-unprotect": "حمايت آلشت بكيد",
+ "vector-view-create": "راس كردن",
+ "vector-view-edit": "ويرايشت",
+ "vector-view-history": "ديئن ويرگار",
+ "vector-view-view": "حنن",
+ "vector-view-viewsource": "سرچشمه نه بوينيت"
+}
diff --git a/skins/Vector/i18n/lt.json b/skins/Vector/i18n/lt.json
new file mode 100644
index 00000000..40886a84
--- /dev/null
+++ b/skins/Vector/i18n/lt.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Garas",
+ "Homo",
+ "Matasg",
+ "Perkunas"
+ ]
+ },
+ "skinname-vector": "Vektorinė",
+ "vector-action-addsection": "Pridėti temą",
+ "vector-action-delete": "Ištrinti",
+ "vector-action-move": "Pervardyti",
+ "vector-action-protect": "Užrakinti",
+ "vector-action-undelete": "Atkurti",
+ "vector-action-unprotect": "Keisti apsaugą",
+ "vector-view-create": "Kurti",
+ "vector-view-edit": "Redaguoti",
+ "vector-view-history": "Istorija",
+ "vector-view-view": "Skaityti",
+ "vector-view-viewsource": "Žiūrėti kodą"
+}
diff --git a/skins/Vector/i18n/ltg.json b/skins/Vector/i18n/ltg.json
new file mode 100644
index 00000000..d89d6df9
--- /dev/null
+++ b/skins/Vector/i18n/ltg.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dark Eagle"
+ ]
+ },
+ "vector-action-addsection": "Dalikt padaļu",
+ "vector-action-delete": "Iztreit",
+ "vector-action-move": "Puorceļt",
+ "vector-action-protect": "Apsorguot",
+ "vector-action-unprotect": "Puormeit apsardzeibu",
+ "vector-view-edit": "Pataiseit",
+ "vector-view-history": "Viesture",
+ "vector-view-view": "Vērtīs"
+}
diff --git a/skins/Vector/i18n/lus.json b/skins/Vector/i18n/lus.json
new file mode 100644
index 00000000..4f270de4
--- /dev/null
+++ b/skins/Vector/i18n/lus.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "RMizo"
+ ]
+ },
+ "vector-action-addsection": "Thupui belhna",
+ "vector-action-delete": "Paihna",
+ "vector-action-move": "Sawnna",
+ "vector-action-protect": "Venhimna",
+ "vector-action-undelete": "Lak kir lehna",
+ "vector-action-unprotect": "Venhimna dinhmun tidanglam rawh",
+ "vector-view-create": "Siamna",
+ "vector-view-edit": "Siamţhatna",
+ "vector-view-history": "Hunhlui-chanchin",
+ "vector-view-view": "Chhiarna",
+ "vector-view-viewsource": "A hnar enna"
+}
diff --git a/skins/Vector/i18n/luz.json b/skins/Vector/i18n/luz.json
new file mode 100644
index 00000000..0670bfdf
--- /dev/null
+++ b/skins/Vector/i18n/luz.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "علی ساکی لرستانی"
+ ]
+ },
+ "vector-view-history": "دیئن تاریخچه",
+ "vector-view-view": "هوندن"
+}
diff --git a/skins/Vector/i18n/lv.json b/skins/Vector/i18n/lv.json
new file mode 100644
index 00000000..ccd43c5c
--- /dev/null
+++ b/skins/Vector/i18n/lv.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Marozols",
+ "Papuass"
+ ]
+ },
+ "vector-action-addsection": "Jauna sadaļa",
+ "vector-action-delete": "Dzēst",
+ "vector-action-move": "Pārvietot",
+ "vector-action-protect": "Aizsargāt",
+ "vector-action-undelete": "Atjaunot",
+ "vector-action-unprotect": "Mainīt aizsardzību",
+ "vector-view-create": "Izveidot",
+ "vector-view-edit": "Labot",
+ "vector-view-history": "Hronoloģija",
+ "vector-view-view": "Skatīt",
+ "vector-view-viewsource": "Aplūkot kodu",
+ "vector-more-actions": "Vairāk"
+}
diff --git a/skins/Vector/i18n/lzh.json b/skins/Vector/i18n/lzh.json
new file mode 100644
index 00000000..6b6ae38a
--- /dev/null
+++ b/skins/Vector/i18n/lzh.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Justincheng12345"
+ ]
+ },
+ "skinname-vector": "動力",
+ "vector.css": "/* 此之 CSS 用於動力面之簿也 */",
+ "vector.js": "/* 此之JavaScript將載於用動力面之簿 */",
+ "vector-action-addsection": "入題",
+ "vector-action-delete": "刪",
+ "vector-action-move": "遷",
+ "vector-action-protect": "緘",
+ "vector-action-undelete": "覽刪",
+ "vector-action-unprotect": "啟",
+ "vector-view-create": "立",
+ "vector-view-edit": "纂",
+ "vector-view-history": "覽史",
+ "vector-view-view": "閱",
+ "vector-view-viewsource": "覽源"
+}
diff --git a/skins/Vector/i18n/lzz.json b/skins/Vector/i18n/lzz.json
new file mode 100644
index 00000000..35638164
--- /dev/null
+++ b/skins/Vector/i18n/lzz.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bombola",
+ "Ceas08",
+ "Erdemaslancan"
+ ]
+ },
+ "vector-action-delete": "Jili",
+ "vector-action-move": "Tori",
+ "vector-action-protect": "İçvi",
+ "vector-view-create": "dokʼidi",
+ "vector-view-edit": "Doktiri",
+ "vector-view-view": "İǩitxi"
+}
diff --git a/skins/Vector/i18n/mai.json b/skins/Vector/i18n/mai.json
new file mode 100644
index 00000000..068e67d9
--- /dev/null
+++ b/skins/Vector/i18n/mai.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ggajendra",
+ "Umeshberma"
+ ]
+ },
+ "skinname-vector": "सदिश",
+ "vector-action-addsection": "विचार-बिन्दु जोड़ू",
+ "vector-action-delete": "मेटाउ",
+ "vector-action-move": "घसकाउ",
+ "vector-action-protect": "रक्षण करू",
+ "vector-action-undelete": "आपस लाउ",
+ "vector-action-unprotect": "सुरक्षा बदलू",
+ "vector-view-create": "बनाउ",
+ "vector-view-edit": "सम्पादन करू",
+ "vector-view-history": "इतिहास देखू",
+ "vector-view-view": "पढ़ू",
+ "vector-view-viewsource": "जड़ि देखू"
+}
diff --git a/skins/Vector/i18n/map-bms.json b/skins/Vector/i18n/map-bms.json
new file mode 100644
index 00000000..1a08582f
--- /dev/null
+++ b/skins/Vector/i18n/map-bms.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "StefanusRA"
+ ]
+ },
+ "vector-action-addsection": "Nambah topik",
+ "vector-action-delete": "Busek",
+ "vector-action-move": "Pindah",
+ "vector-action-protect": "Reksa",
+ "vector-action-undelete": "Batalna pambusakan",
+ "vector-action-unprotect": "Owahi pangreksan",
+ "vector-view-create": "Gawe",
+ "vector-view-edit": "Sunting",
+ "vector-view-history": "Sajarah kaca",
+ "vector-view-view": "Waca",
+ "vector-view-viewsource": "Deleng sumbere"
+}
diff --git a/skins/Vector/i18n/mdf.json b/skins/Vector/i18n/mdf.json
new file mode 100644
index 00000000..91787fcd
--- /dev/null
+++ b/skins/Vector/i18n/mdf.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Numulunj pilgae"
+ ]
+ },
+ "vector-action-addsection": "Поладомс мезень колга корхтамс",
+ "vector-action-delete": "Нардамс",
+ "vector-action-move": "Шашфтомс",
+ "vector-action-protect": "Араламс",
+ "vector-action-undelete": "Мърдафтомс",
+ "vector-action-unprotect": "Араламать полафтомс",
+ "vector-view-create": "Тиемс",
+ "vector-view-edit": "Петнемс",
+ "vector-view-history": "История няфтемс",
+ "vector-view-view": "Морафтомс",
+ "vector-view-viewsource": "Лисьма няфтемс"
+}
diff --git a/skins/Vector/i18n/mg.json b/skins/Vector/i18n/mg.json
new file mode 100644
index 00000000..5c51602c
--- /dev/null
+++ b/skins/Vector/i18n/mg.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jagwar"
+ ]
+ },
+ "vector-action-addsection": "Hanampy lohahevitra",
+ "vector-action-delete": "Fafana",
+ "vector-action-move": "Hanolo anarana",
+ "vector-action-protect": "Arovy",
+ "vector-action-undelete": "Avereno",
+ "vector-action-unprotect": "Hanala ny fiarovana",
+ "vector-view-create": "Foronona",
+ "vector-view-edit": "Hanova",
+ "vector-view-history": "Hijery ny tantara",
+ "vector-view-view": "Hamaky",
+ "vector-view-viewsource": "Hijery fango"
+}
diff --git a/skins/Vector/i18n/mhr.json b/skins/Vector/i18n/mhr.json
new file mode 100644
index 00000000..efe9d4ba
--- /dev/null
+++ b/skins/Vector/i18n/mhr.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Azim",
+ "Sergey Ivanov",
+ "Сай",
+ "Санюн Вадик"
+ ]
+ },
+ "vector-action-addsection": "У ӱжашым тӱҥалаш",
+ "vector-action-delete": "Шӧраш",
+ "vector-action-move": "Лӱмым вашталташ",
+ "vector-action-protect": "Тӧрлатымаш деч аралаш",
+ "vector-action-undelete": "Шӧрымым пӧртылаш",
+ "vector-action-unprotect": "Оролым вашталташ",
+ "vector-view-create": "Ышташ",
+ "vector-view-edit": "Тӧрлаташ",
+ "vector-view-history": "Эртымгорным ончалаш",
+ "vector-view-view": "Лудаш",
+ "vector-view-viewsource": "Тӱҥалтыш текстым ончалаш"
+}
diff --git a/skins/Vector/i18n/mi.json b/skins/Vector/i18n/mi.json
new file mode 100644
index 00000000..0a59489e
--- /dev/null
+++ b/skins/Vector/i18n/mi.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Piwaiwaka"
+ ]
+ },
+ "vector-view-view": "Tirohia"
+}
diff --git a/skins/Vector/i18n/mic.json b/skins/Vector/i18n/mic.json
new file mode 100644
index 00000000..3079089b
--- /dev/null
+++ b/skins/Vector/i18n/mic.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amqui"
+ ]
+ },
+ "vector-action-move": "Ejigliwsit",
+ "vector-view-create": "Etlitoq",
+ "vector-view-view": "Egiljet"
+}
diff --git a/skins/Vector/i18n/min.json b/skins/Vector/i18n/min.json
new file mode 100644
index 00000000..bf5a735f
--- /dev/null
+++ b/skins/Vector/i18n/min.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion",
+ "Luthfi94",
+ "VoteITP"
+ ]
+ },
+ "skinname-vector": "Vektor",
+ "vector-action-addsection": "Bagian baru",
+ "vector-action-delete": "Hapuih",
+ "vector-action-move": "Pindahkan",
+ "vector-action-protect": "Linduangkan",
+ "vector-action-undelete": "Pambatalan pangapuihan",
+ "vector-action-unprotect": "Tuka palinduangan",
+ "vector-view-create": "Buek",
+ "vector-view-edit": "Suntiang",
+ "vector-view-history": "Riwayaik",
+ "vector-view-view": "Baco",
+ "vector-view-viewsource": "Caliak sumber"
+}
diff --git a/skins/Vector/i18n/mk.json b/skins/Vector/i18n/mk.json
new file mode 100644
index 00000000..1f883ae2
--- /dev/null
+++ b/skins/Vector/i18n/mk.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06",
+ "Brest"
+ ]
+ },
+ "skinname-vector": "Векторско",
+ "vector-skin-desc": "Современа верзија на рувото МоноБук со свеж изглед и многу подобрувања на употребливоста",
+ "vector.css": "/* Тука поставениот CSS се однесува на корисниците на рувото „Векторско“ */",
+ "vector.js": "/* Тука поставениот JavaScript ќе им се вчитува на корисниците што го користат рувото „Векторско“ */",
+ "vector-action-addsection": "Додај тема",
+ "vector-action-delete": "Избриши",
+ "vector-action-move": "Премести",
+ "vector-action-protect": "Заштити",
+ "vector-action-undelete": "Врати",
+ "vector-action-unprotect": "Измени заштита",
+ "vector-view-create": "Создај",
+ "vector-view-edit": "Уреди",
+ "vector-view-history": "Историја",
+ "vector-view-view": "Читај",
+ "vector-view-viewsource": "Извор",
+ "vector-more-actions": "Повеќе"
+}
diff --git a/skins/Vector/i18n/ml.json b/skins/Vector/i18n/ml.json
new file mode 100644
index 00000000..caf43eed
--- /dev/null
+++ b/skins/Vector/i18n/ml.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anoopan",
+ "Praveenp"
+ ]
+ },
+ "skinname-vector": "വെക്റ്റർ",
+ "vector-skin-desc": "മോണോബുക്കിന്റെ പുതിയരൂപവും, നിരവധി ഉപയോഗസൗഹൃദ മെച്ചപ്പെടുത്തലുകളുമുള്ള നൂതന പതിപ്പ്",
+ "vector.css": "/* ഇവിടെ നൽകുന്ന സി.എസ്.എസ്. വെക്റ്റർ ദൃശ്യരൂപത്തിനു ബാധകമായിരിക്കും*/",
+ "vector.js": "/*ഇവിടെ നൽകുന്ന ജാവാസ്ക്രിപ്റ്റ് വെക്റ്റർ ദൃശ്യരൂപം ഉപയോഗിക്കുന്ന ഉപയോക്താക്കൾക്ക് ബാധകമായിരിക്കും*/",
+ "vector-action-addsection": "വിഷയം ചേർക്കുക",
+ "vector-action-delete": "മായ്ക്കുക",
+ "vector-action-move": "തലക്കെട്ട് മാറ്റുക",
+ "vector-action-protect": "സം‌രക്ഷിക്കുക",
+ "vector-action-undelete": "മായ്ക്കപ്പെട്ടത് പുനഃസ്ഥാപിക്കുക",
+ "vector-action-unprotect": "സംരക്ഷണത്തിൽ മാറ്റംവരുത്തുക",
+ "vector-view-create": "സൃഷ്ടിക്കുക",
+ "vector-view-edit": "തിരുത്തുക",
+ "vector-view-history": "നാൾവഴി കാണുക",
+ "vector-view-view": "വായിക്കുക",
+ "vector-view-viewsource": "മൂലരൂപം കാണുക",
+ "vector-more-actions": "കൂടുതൽ"
+}
diff --git a/skins/Vector/i18n/mn.json b/skins/Vector/i18n/mn.json
new file mode 100644
index 00000000..ceeafaf9
--- /dev/null
+++ b/skins/Vector/i18n/mn.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chinneeb",
+ "MongolWiki",
+ "Wisdom"
+ ]
+ },
+ "vector-action-addsection": "Сэдэв нэмэх",
+ "vector-action-delete": "Устгах",
+ "vector-action-move": "Зөөх",
+ "vector-action-protect": "Хамгаалах",
+ "vector-action-undelete": "Үл устгах",
+ "vector-action-unprotect": "Хамгаалалтаа солих",
+ "vector-view-create": "Үүсгэх",
+ "vector-view-edit": "Засварлах",
+ "vector-view-history": "Түүх",
+ "vector-view-view": "Унших",
+ "vector-view-viewsource": "Кодыг харах"
+}
diff --git a/skins/Vector/i18n/mnc.json b/skins/Vector/i18n/mnc.json
new file mode 100644
index 00000000..60434d58
--- /dev/null
+++ b/skins/Vector/i18n/mnc.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minggantu"
+ ]
+ },
+ "vector-action-delete": "Dabgire",
+ "vector-action-move": "Guribure",
+ "vector-action-protect": "Karmara",
+ "vector-view-create": "Ilibure",
+ "vector-view-edit": "banjibume arara",
+ "vector-view-history": "ere šu wen i suduri be baicara",
+ "vector-view-view": "hūlara",
+ "vector-view-viewsource": "da šu wen be baicara"
+}
diff --git a/skins/Vector/i18n/mr.json b/skins/Vector/i18n/mr.json
new file mode 100644
index 00000000..ab7e3229
--- /dev/null
+++ b/skins/Vector/i18n/mr.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaajawa",
+ "V.narsikar"
+ ]
+ },
+ "skinname-vector": "सदिश",
+ "vector-action-addsection": "विषय जोडा",
+ "vector-action-delete": "वगळा",
+ "vector-action-move": "स्थानांतरण",
+ "vector-action-protect": "सुरक्षित करा",
+ "vector-action-undelete": "वगळलेले पुनर्स्थापित करा",
+ "vector-action-unprotect": "सुरक्षितता बदला",
+ "vector-view-create": "तयार करा",
+ "vector-view-edit": "संपादन",
+ "vector-view-history": "इतिहास पहा",
+ "vector-view-view": "वाचा",
+ "vector-view-viewsource": "स्रोत पहा",
+ "vector-more-actions": "अधिक"
+}
diff --git a/skins/Vector/i18n/mrj.json b/skins/Vector/i18n/mrj.json
new file mode 100644
index 00000000..72b93b4c
--- /dev/null
+++ b/skins/Vector/i18n/mrj.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amdf"
+ ]
+ },
+ "vector-action-delete": "Карангдаш",
+ "vector-action-move": "Лӹмӹм вашталташ",
+ "vector-action-protect": "Ӹшӹклӓш",
+ "vector-view-create": "Ӹштӓш",
+ "vector-view-edit": "Тӧрлӹмӓш",
+ "vector-view-history": "Историм анжымаш",
+ "vector-view-view": "Лыдмаш",
+ "vector-view-viewsource": "Сек пӹтӓриш кодым анжалаш"
+}
diff --git a/skins/Vector/i18n/ms.json b/skins/Vector/i18n/ms.json
new file mode 100644
index 00000000..73c8e051
--- /dev/null
+++ b/skins/Vector/i18n/ms.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Aurora",
+ "Pizza1016"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Versi MonoBook yang moden dengan rupa yang segar dan banyak pembaikan kepada kegunaan.",
+ "vector.css": "/* CSS yang terletak di sini akan mempengaruhi pengguna kulit Vector */",
+ "vector.js": "/ * Sebarang JavaScript di sini akan dimuatkan untuk pengguna-pengguna yang menggunakan kulit Vector * /",
+ "vector-action-addsection": "Buka topik",
+ "vector-action-delete": "Hapus",
+ "vector-action-move": "Pindah",
+ "vector-action-protect": "Lindung",
+ "vector-action-undelete": "Nyahhapus",
+ "vector-action-unprotect": "Ubah perlindungan",
+ "vector-view-create": "Cipta",
+ "vector-view-edit": "Sunting",
+ "vector-view-history": "Lihat sejarah",
+ "vector-view-view": "Baca",
+ "vector-view-viewsource": "Lihat sumber",
+ "vector-more-actions": "Lain"
+}
diff --git a/skins/Vector/i18n/mt.json b/skins/Vector/i18n/mt.json
new file mode 100644
index 00000000..3fab17f1
--- /dev/null
+++ b/skins/Vector/i18n/mt.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrisportelli",
+ "Leli Forte"
+ ]
+ },
+ "vector-action-addsection": "Żid diskussjoni",
+ "vector-action-delete": "Ħassar",
+ "vector-action-move": "Mexxi",
+ "vector-action-protect": "Ipproteġi",
+ "vector-action-undelete": "Irkupra",
+ "vector-action-unprotect": "Biddel il-protezzjoni",
+ "vector-view-create": "Oħloq",
+ "vector-view-edit": "Editja",
+ "vector-view-history": "Ara l-kronoloġija",
+ "vector-view-view": "Aqra",
+ "vector-view-viewsource": "Ara s-sors",
+ "vector-more-actions": "Aktar"
+}
diff --git a/skins/Vector/i18n/mui.json b/skins/Vector/i18n/mui.json
new file mode 100644
index 00000000..173eda07
--- /dev/null
+++ b/skins/Vector/i18n/mui.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mahali syarifuddin"
+ ]
+ },
+ "vector-view-view": "Baco",
+ "vector-view-viewsource": "Jingok sumber"
+}
diff --git a/skins/Vector/i18n/my.json b/skins/Vector/i18n/my.json
new file mode 100644
index 00000000..5cc7802f
--- /dev/null
+++ b/skins/Vector/i18n/my.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lionslayer",
+ "Myanmars"
+ ]
+ },
+ "vector-action-addsection": "အကြောင်းအရာအသစ် ထပ်ထည့်ရန်",
+ "vector-action-delete": "ဖျက်​ပါ​",
+ "vector-action-move": "ရွှေ့ပါ",
+ "vector-action-protect": "ထိမ်း​သိမ်း​ပါ​",
+ "vector-action-undelete": "မဖျက်တော့ရန်",
+ "vector-action-unprotect": "ကာကွယ်ခြင်းကို ပြောင်းလဲရန်",
+ "vector-view-create": "စတင်ရေးသားရန်",
+ "vector-view-edit": "ပြင်ရန်",
+ "vector-view-history": "ရာဇဝင်ကြည့်ရန်",
+ "vector-view-view": "ဖတ်ရန်",
+ "vector-view-viewsource": "ရင်းမြစ်ကို ကြည့်ရန်"
+}
diff --git a/skins/Vector/i18n/myv.json b/skins/Vector/i18n/myv.json
new file mode 100644
index 00000000..723d5dd5
--- /dev/null
+++ b/skins/Vector/i18n/myv.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Botuzhaleny-sodamo"
+ ]
+ },
+ "vector-action-addsection": "Поладомс мезде кортамс",
+ "vector-action-delete": "Нардамс",
+ "vector-action-move": "Печтевтемс",
+ "vector-action-protect": "Аравтомс ванстомас",
+ "vector-action-undelete": "Вельмевтемс нардазенть",
+ "vector-action-unprotect": "Полавтомс ванстоманзо",
+ "vector-view-create": "Теемс-Шкамс",
+ "vector-view-edit": "Витнемс-петнемс",
+ "vector-view-history": "Ваномс юронзо-путовксонзо",
+ "vector-view-view": "Ловномс",
+ "vector-view-viewsource": "Ваномс косто саезь"
+}
diff --git a/skins/Vector/i18n/mzn.json b/skins/Vector/i18n/mzn.json
new file mode 100644
index 00000000..cf18634d
--- /dev/null
+++ b/skins/Vector/i18n/mzn.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mjbmr",
+ "محک"
+ ]
+ },
+ "vector-action-addsection": "ترنه گپ بزوئن",
+ "vector-action-delete": "پاک هاکردن",
+ "vector-action-move": "دکش هاکردن",
+ "vector-action-protect": "زلفن بزوئن",
+ "vector-action-undelete": "دباره بنویشته بیّن",
+ "vector-action-unprotect": "زلفن عوض هاکردن",
+ "vector-view-create": "بساتن",
+ "vector-view-edit": "دچی‌ین",
+ "vector-view-history": "تاریخچه ره بَدی‌ین",
+ "vector-view-view": "بخوندستن",
+ "vector-view-viewsource": "ونه منبع ره هارشائن"
+}
diff --git a/skins/Vector/i18n/nah.json b/skins/Vector/i18n/nah.json
new file mode 100644
index 00000000..adf8c21e
--- /dev/null
+++ b/skins/Vector/i18n/nah.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ricardo gs"
+ ]
+ },
+ "vector-action-delete": "Ticpolōz",
+ "vector-action-move": "Ticzacāz",
+ "vector-action-protect": "Ticquīxtīz",
+ "vector-view-create": "Ticchīhuāz",
+ "vector-view-edit": "Ticpatlāz",
+ "vector-view-history": "Tlahcuilōlli tlahcuilōlloh",
+ "vector-view-view": "Tāmapōhuaz",
+ "vector-view-viewsource": "Tiquittāz in mēyalli"
+}
diff --git a/skins/Vector/i18n/nan.json b/skins/Vector/i18n/nan.json
new file mode 100644
index 00000000..f1b90454
--- /dev/null
+++ b/skins/Vector/i18n/nan.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ianbu"
+ ]
+ },
+ "vector-action-addsection": "Ke chi̍t-ê toān-lo̍h",
+ "vector-action-delete": "Thâi",
+ "vector-action-move": "Sóa khì",
+ "vector-action-protect": "Pó-hō·",
+ "vector-action-undelete": "chhú-siau thâi tiàu",
+ "vector-action-unprotect": "kái pó-hō·",
+ "vector-view-create": "Khai-sí siá",
+ "vector-view-edit": "Siu-kái",
+ "vector-view-history": "khoàⁿ le̍k-sú",
+ "vector-view-view": "Tha̍k",
+ "vector-view-viewsource": "Khoàⁿ goân-sú lōe-iông",
+ "vector-more-actions": "閣看"
+}
diff --git a/skins/Vector/i18n/nap.json b/skins/Vector/i18n/nap.json
new file mode 100644
index 00000000..51e03a52
--- /dev/null
+++ b/skins/Vector/i18n/nap.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chelin",
+ "C.R."
+ ]
+ },
+ "vector-action-addsection": "Aggiunge chiacchierata",
+ "vector-action-delete": "Scancèlla",
+ "vector-action-move": "Spusta",
+ "vector-action-protect": "Prutegge",
+ "vector-action-undelete": "Arrepiglia",
+ "vector-action-unprotect": "Càgna prutezzione",
+ "vector-view-create": "Cria",
+ "vector-view-edit": "Càgna",
+ "vector-view-history": "Vere cronologgia",
+ "vector-view-view": "Liegge",
+ "vector-view-viewsource": "Vere sorgente"
+}
diff --git a/skins/Vector/i18n/nb.json b/skins/Vector/i18n/nb.json
new file mode 100644
index 00000000..0ef82e04
--- /dev/null
+++ b/skins/Vector/i18n/nb.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Danmichaelo",
+ "Event",
+ "Nghtwlkr"
+ ]
+ },
+ "vector-skin-desc": "Moderne versjon av MonoBook med et friskt utseende og mange bruksforbedringer",
+ "vector-action-addsection": "Nytt emne",
+ "vector-action-delete": "Slett",
+ "vector-action-move": "Flytt",
+ "vector-action-protect": "Beskytt",
+ "vector-action-undelete": "Gjenopprett",
+ "vector-action-unprotect": "Endre beskyttelse",
+ "vector-view-create": "Opprett",
+ "vector-view-edit": "Rediger",
+ "vector-view-history": "Vis historikk",
+ "vector-view-view": "Les",
+ "vector-view-viewsource": "Vis kilden",
+ "vector-more-actions": "Mer"
+}
diff --git a/skins/Vector/i18n/nds-nl.json b/skins/Vector/i18n/nds-nl.json
new file mode 100644
index 00000000..be846db8
--- /dev/null
+++ b/skins/Vector/i18n/nds-nl.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Servien"
+ ]
+ },
+ "vector-action-addsection": "Niej onderwarp",
+ "vector-action-delete": "Vortdoon",
+ "vector-action-move": "Herneumen",
+ "vector-action-protect": "Beveiligen",
+ "vector-action-undelete": "Weerummeplaotsen",
+ "vector-action-unprotect": "Beveiliging wiezigen",
+ "vector-view-create": "Anmaken",
+ "vector-view-edit": "Bewarken",
+ "vector-view-history": "Geschiedenisse bekieken",
+ "vector-view-view": "Lezen",
+ "vector-view-viewsource": "Brontekste bekieken",
+ "vector-more-actions": "Meer"
+}
diff --git a/skins/Vector/i18n/nds.json b/skins/Vector/i18n/nds.json
new file mode 100644
index 00000000..99145b0e
--- /dev/null
+++ b/skins/Vector/i18n/nds.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Slomox",
+ "Zylbath"
+ ]
+ },
+ "vector-action-addsection": "Thema tofögen",
+ "vector-action-delete": "Wegdoon",
+ "vector-action-move": "Schuven",
+ "vector-action-protect": "Schulen",
+ "vector-action-undelete": "Wedderhalen",
+ "vector-action-unprotect": "Siedenschuul ännern",
+ "vector-view-create": "Opstellen",
+ "vector-view-edit": "Ännern",
+ "vector-view-history": "Historie bekieken",
+ "vector-view-view": "Lesen",
+ "vector-view-viewsource": "Borntext bekieken"
+}
diff --git a/skins/Vector/i18n/ne.json b/skins/Vector/i18n/ne.json
new file mode 100644
index 00000000..443becb9
--- /dev/null
+++ b/skins/Vector/i18n/ne.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bhawani Gautam",
+ "RajeshPandey",
+ "सरोज कुमार ढकाल"
+ ]
+ },
+ "skinname-vector": "भेक्टर",
+ "vector.css": "/* यहाँ राखिएको CSS ले भेक्टर स्किनको प्रयोगकर्ताहरुलाई प्रभावित गर्ने छ */",
+ "vector-action-addsection": "विषय थप्नुहोस",
+ "vector-action-delete": "हटाउने",
+ "vector-action-move": "सार्ने",
+ "vector-action-protect": "सुरक्षित गर्ने",
+ "vector-action-undelete": "हटाएको रद्द गर्ने",
+ "vector-action-unprotect": "सुरक्षा परिवर्तन गर्ने",
+ "vector-view-create": "सृजना गर्ने",
+ "vector-view-edit": "सम्पादन",
+ "vector-view-history": "इतिहास हेर्ने",
+ "vector-view-view": "पढ्ने",
+ "vector-view-viewsource": "स्रोत हेर्ने"
+}
diff --git a/skins/Vector/i18n/new.json b/skins/Vector/i18n/new.json
new file mode 100644
index 00000000..f9720661
--- /dev/null
+++ b/skins/Vector/i18n/new.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eukesh"
+ ]
+ },
+ "vector-action-move": "संकादिसँ",
+ "vector-view-create": "दयेकादिसँ",
+ "vector-view-edit": "सम्पादन",
+ "vector-view-history": "इतिहास स्वयादिसँ",
+ "vector-view-view": "ब्वनादिसँ"
+}
diff --git a/skins/Vector/i18n/nl.json b/skins/Vector/i18n/nl.json
new file mode 100644
index 00000000..07c18d9d
--- /dev/null
+++ b/skins/Vector/i18n/nl.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Calak",
+ "Romaine",
+ "SPQRobin",
+ "Siebrand",
+ "Troefkaart",
+ "Sjoerddebruin"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Moderne versie van MonoBook met een fris uiterlijk en verbeteringen op het gebied van gebruiksvriendelijkheid",
+ "vector.css": "/* CSS die hier wordt geplaatst heeft alleen invloed op de skin Vector */",
+ "vector.js": "/* JavaScript die hier wordt geplaatst heeft alleen invloed op gebruikers die de skin Vector gebruiken */",
+ "vector-action-addsection": "Kopje toevoegen",
+ "vector-action-delete": "Verwijderen",
+ "vector-action-move": "Hernoemen",
+ "vector-action-protect": "Beveiligen",
+ "vector-action-undelete": "Terugplaatsen",
+ "vector-action-unprotect": "Beveiliging wijzigen",
+ "vector-view-create": "Aanmaken",
+ "vector-view-edit": "Bewerken",
+ "vector-view-history": "Geschiedenis weergeven",
+ "vector-view-view": "Lezen",
+ "vector-view-viewsource": "Brontekst bekijken",
+ "vector-more-actions": "Meer"
+}
diff --git a/skins/Vector/i18n/nn.json b/skins/Vector/i18n/nn.json
new file mode 100644
index 00000000..6fd99f17
--- /dev/null
+++ b/skins/Vector/i18n/nn.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gunnernett",
+ "Njardarlogar"
+ ]
+ },
+ "vector-action-addsection": "Nytt emne",
+ "vector-action-delete": "Slett",
+ "vector-action-move": "Flytt",
+ "vector-action-protect": "Vern",
+ "vector-action-undelete": "Gjenopprett",
+ "vector-action-unprotect": "Endra vern",
+ "vector-view-create": "Opprett",
+ "vector-view-edit": "Endre",
+ "vector-view-history": "Sjå historikken",
+ "vector-view-view": "Les",
+ "vector-view-viewsource": "Sjå kjelda",
+ "vector-more-actions": "Meir"
+}
diff --git a/skins/Vector/i18n/nov.json b/skins/Vector/i18n/nov.json
new file mode 100644
index 00000000..66ad9230
--- /dev/null
+++ b/skins/Vector/i18n/nov.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya"
+ ]
+ },
+ "vector-action-delete": "Ekarta",
+ "vector-view-edit": "Modifika",
+ "vector-view-view": "Lekte"
+}
diff --git a/skins/Vector/i18n/nrm.json b/skins/Vector/i18n/nrm.json
new file mode 100644
index 00000000..4c332f27
--- /dev/null
+++ b/skins/Vector/i18n/nrm.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "WikiEoFrEn"
+ ]
+ },
+ "vector-view-create": "Criyaer",
+ "vector-view-edit": "Amendaer",
+ "vector-view-view": "Luure"
+}
diff --git a/skins/Vector/i18n/nso.json b/skins/Vector/i18n/nso.json
new file mode 100644
index 00000000..ea729e7c
--- /dev/null
+++ b/skins/Vector/i18n/nso.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mohau"
+ ]
+ },
+ "vector-action-addsection": "Lokela sererwa",
+ "vector-action-delete": "Phumula",
+ "vector-action-move": "Huduša",
+ "vector-action-protect": "Lota",
+ "vector-view-create": "Hlola",
+ "vector-view-edit": "Fetola",
+ "vector-view-history": "Laetša histori",
+ "vector-view-view": "Bala",
+ "vector-view-viewsource": "Lebelela mothopo"
+}
diff --git a/skins/Vector/i18n/oc.json b/skins/Vector/i18n/oc.json
new file mode 100644
index 00000000..2aa517e9
--- /dev/null
+++ b/skins/Vector/i18n/oc.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boulaur",
+ "Cedric31"
+ ]
+ },
+ "vector.css": "/* Lo CSS plaçat aicí afectarà los utilizaires de l’abilhatge Vector */",
+ "vector.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge Vector unicament. */",
+ "vector-action-addsection": "Apondre un subjècte",
+ "vector-action-delete": "Suprimir",
+ "vector-action-move": "Tornar nomenar",
+ "vector-action-protect": "Protegir",
+ "vector-action-undelete": "Restablir",
+ "vector-action-unprotect": "Suprimir la proteccion",
+ "vector-view-create": "Crear",
+ "vector-view-edit": "Modificar",
+ "vector-view-history": "Veire l'istoric",
+ "vector-view-view": "Legir",
+ "vector-view-viewsource": "Veire la font"
+}
diff --git a/skins/Vector/i18n/or.json b/skins/Vector/i18n/or.json
new file mode 100644
index 00000000..289cc3cc
--- /dev/null
+++ b/skins/Vector/i18n/or.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jnanaranjan Sahu",
+ "Psubhashish"
+ ]
+ },
+ "vector-action-addsection": "ନୂଆ ଯୋଡ଼ନ୍ତୁ",
+ "vector-action-delete": "ଲିଭାଇବେ",
+ "vector-action-move": "ଘୁଞ୍ଚାଇବେ",
+ "vector-action-protect": "କିଳିବେ",
+ "vector-action-undelete": "ଲିଭାଇବେ ନାହିଁ",
+ "vector-action-unprotect": "କିଳିବେ ନାହିଁ",
+ "vector-view-create": "ତିଆରି କରନ୍ତୁ",
+ "vector-view-edit": "ସମ୍ପାଦନା (Edit)",
+ "vector-view-history": "ଇତିହାସ",
+ "vector-view-view": "ପଢ଼ନ୍ତୁ",
+ "vector-view-viewsource": "ସୋର୍ସ ଦେଖନ୍ତୁ"
+}
diff --git a/skins/Vector/i18n/os.json b/skins/Vector/i18n/os.json
new file mode 100644
index 00000000..a1782896
--- /dev/null
+++ b/skins/Vector/i18n/os.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amikeco",
+ "Bouron"
+ ]
+ },
+ "vector-action-addsection": "Нæуæг ныхас бакæнын",
+ "vector-action-delete": "Схафын",
+ "vector-action-move": "Ном ивын",
+ "vector-action-protect": "Сæхгæнын",
+ "vector-action-undelete": "Рацаразын",
+ "vector-action-unprotect": "Ивын хъахъхъæд",
+ "vector-view-create": "Скæнын",
+ "vector-view-edit": "Ивын",
+ "vector-view-history": "Истори",
+ "vector-view-view": "Кæсын",
+ "vector-view-viewsource": "Код кæсын"
+}
diff --git a/skins/Vector/i18n/pa.json b/skins/Vector/i18n/pa.json
new file mode 100644
index 00000000..5f153999
--- /dev/null
+++ b/skins/Vector/i18n/pa.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aalam",
+ "Babanwalia",
+ "Raj Singh",
+ "TariButtar"
+ ]
+ },
+ "vector-action-addsection": "ਵਿਸ਼ਾ ਜੋੜੋ",
+ "vector-action-delete": "ਹਟਾਓ",
+ "vector-action-move": "ਭੇਜੋ",
+ "vector-action-protect": "ਸੁਰੱਖਿਆ",
+ "vector-action-undelete": "ਹਟਾਉਣਾ-ਵਾਪਸ",
+ "vector-action-unprotect": "ਸੁਰੱਖਿਆ ਬਦਲੋ",
+ "vector-view-create": "ਬਣਾਓ",
+ "vector-view-edit": "ਸੋਧੋ",
+ "vector-view-history": "ਅਤੀਤ ਵੇਖੋ",
+ "vector-view-view": "ਪੜ੍ਹੋ",
+ "vector-view-viewsource": "ਸਰੋਤ ਵੇਖੋ"
+}
diff --git a/skins/Vector/i18n/pam.json b/skins/Vector/i18n/pam.json
new file mode 100644
index 00000000..09afda50
--- /dev/null
+++ b/skins/Vector/i18n/pam.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Katimawan2005",
+ "Val2397"
+ ]
+ },
+ "vector-action-addsection": "Dagdagan ing pisasabian",
+ "vector-action-delete": "Buran",
+ "vector-action-move": "Iyalis",
+ "vector-action-protect": "Protectan/kambilan",
+ "vector-action-undelete": "Isubli/iurung ya pangabura",
+ "vector-action-unprotect": "Idayu ya panga-protecta",
+ "vector-view-create": "Maglalang",
+ "vector-view-edit": "Alilan",
+ "vector-view-history": "Lawen ya ing amlat",
+ "vector-view-view": "Basan",
+ "vector-view-viewsource": "Lawen ya ing pikuanan"
+}
diff --git a/skins/Vector/i18n/pbb.json b/skins/Vector/i18n/pbb.json
new file mode 100644
index 00000000..9ddeada9
--- /dev/null
+++ b/skins/Vector/i18n/pbb.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sahaquiel9102"
+ ]
+ },
+ "vector-action-delete": "Cjũcj",
+ "vector-action-move": "Quẽese'j",
+ "vector-action-protect": "Pjupj",
+ "vector-view-edit": "Yu'ptjej",
+ "vector-view-view": "Lẽeĩ"
+}
diff --git a/skins/Vector/i18n/pcd.json b/skins/Vector/i18n/pcd.json
new file mode 100644
index 00000000..57af67e7
--- /dev/null
+++ b/skins/Vector/i18n/pcd.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geoleplubo"
+ ]
+ },
+ "vector-action-addsection": "Rajouter un sujeut",
+ "vector-action-delete": "Défacer",
+ "vector-action-move": "Canger ch'nom",
+ "vector-action-protect": "Garantir",
+ "vector-action-undelete": "N'poin défacher",
+ "vector-action-unprotect": "Canger l'garantie",
+ "vector-view-create": "Créer",
+ "vector-view-edit": "Éditer",
+ "vector-view-history": "Vir l'histoère",
+ "vector-view-view": "Lire",
+ "vector-view-viewsource": "Vir l'source"
+}
diff --git a/skins/Vector/i18n/pdc.json b/skins/Vector/i18n/pdc.json
new file mode 100644
index 00000000..a3903b2f
--- /dev/null
+++ b/skins/Vector/i18n/pdc.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Xqt"
+ ]
+ },
+ "vector-action-delete": "Verwische",
+ "vector-action-move": "Ziehe",
+ "vector-action-protect": "Schitze",
+ "vector-view-create": "Schtaerte",
+ "vector-view-edit": "Ennere",
+ "vector-view-history": "Gschicht zeige",
+ "vector-view-view": "Lese"
+}
diff --git a/skins/Vector/i18n/pfl.json b/skins/Vector/i18n/pfl.json
new file mode 100644
index 00000000..419eb4e6
--- /dev/null
+++ b/skins/Vector/i18n/pfl.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Manuae"
+ ]
+ },
+ "vector-action-addsection": "Abschnidd dzufiesche",
+ "vector-action-delete": "Lesche",
+ "vector-action-move": "Vaschiewe",
+ "vector-action-protect": "Schidze",
+ "vector-action-undelete": "Zriggbringe",
+ "vector-view-create": "Õleesche",
+ "vector-view-edit": "Drõ schaffe",
+ "vector-view-history": "Dadaigschischd",
+ "vector-view-view": "Lese",
+ "vector-view-viewsource": "Gwelltegschd zaische"
+}
diff --git a/skins/Vector/i18n/pi.json b/skins/Vector/i18n/pi.json
new file mode 100644
index 00000000..cc57f670
--- /dev/null
+++ b/skins/Vector/i18n/pi.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hemant wikikosh1"
+ ]
+ },
+ "vector-view-create": "रचेतु"
+}
diff --git a/skins/Vector/i18n/pih.json b/skins/Vector/i18n/pih.json
new file mode 100644
index 00000000..81fb2fcc
--- /dev/null
+++ b/skins/Vector/i18n/pih.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "AmaryllisGardener"
+ ]
+ },
+ "vector-view-history": "View histrei"
+}
diff --git a/skins/Vector/i18n/pl.json b/skins/Vector/i18n/pl.json
new file mode 100644
index 00000000..5cf20822
--- /dev/null
+++ b/skins/Vector/i18n/pl.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Matma Rex",
+ "Sp5uhe"
+ ]
+ },
+ "skinname-vector": "Wektor",
+ "vector-skin-desc": "Odświeżona wersja skórki Książka, z nowym wyglądem i usprawnieniami",
+ "vector.css": "/* Umieszczony tutaj kod CSS wpłynie na wygląd skórki Wektor */",
+ "vector.js": "/* Umieszczony tutaj kod JavaScript zostanie załadowany wyłącznie przez użytkowników korzystających ze skórki Wektor */",
+ "vector-action-addsection": "Dodaj temat",
+ "vector-action-delete": "Usuń",
+ "vector-action-move": "Przenieś",
+ "vector-action-protect": "Zabezpiecz",
+ "vector-action-undelete": "Odtwórz",
+ "vector-action-unprotect": "Zmień zabezpieczenie",
+ "vector-view-create": "Utwórz",
+ "vector-view-edit": "Edytuj",
+ "vector-view-history": "Wyświetl historię",
+ "vector-view-view": "Czytaj",
+ "vector-view-viewsource": "Tekst źródłowy",
+ "vector-more-actions": "Więcej"
+}
diff --git a/skins/Vector/i18n/pms.json b/skins/Vector/i18n/pms.json
new file mode 100644
index 00000000..79627b0d
--- /dev/null
+++ b/skins/Vector/i18n/pms.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borichèt"
+ ]
+ },
+ "vector-action-addsection": "Gionté n'argoment",
+ "vector-action-delete": "Scancelé",
+ "vector-action-move": "Tramudé",
+ "vector-action-protect": "Protege",
+ "vector-action-undelete": "Arcuperé",
+ "vector-action-unprotect": "Cangé la protession",
+ "vector-view-create": "Creé",
+ "vector-view-edit": "Modifiché",
+ "vector-view-history": "Smon-e la stòria",
+ "vector-view-view": "Lese",
+ "vector-view-viewsource": "Vëdde la sorgiss"
+}
diff --git a/skins/Vector/i18n/pnb.json b/skins/Vector/i18n/pnb.json
new file mode 100644
index 00000000..601f513e
--- /dev/null
+++ b/skins/Vector/i18n/pnb.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arslan",
+ "Khalid Mahmood"
+ ]
+ },
+ "vector-action-addsection": "مضمون پاؤ",
+ "vector-action-delete": "مکاؤ",
+ "vector-action-move": "ٹرو",
+ "vector-action-protect": "بچاؤ",
+ "vector-action-undelete": "واپس لیاؤ",
+ "vector-action-unprotect": "تبدیلی بچاؤ",
+ "vector-view-create": "بناؤ",
+ "vector-view-edit": "لکھو",
+ "vector-view-history": "تریخ وکھاؤ",
+ "vector-view-view": "پڑھو",
+ "vector-view-viewsource": "ویکھو"
+}
diff --git a/skins/Vector/i18n/pnt.json b/skins/Vector/i18n/pnt.json
new file mode 100644
index 00000000..1e5ecada
--- /dev/null
+++ b/skins/Vector/i18n/pnt.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Omnipaedista",
+ "Sinopeus",
+ "ZaDiak"
+ ]
+ },
+ "vector-action-delete": "Σβήσον",
+ "vector-action-move": "Ετεροχλάεμαν",
+ "vector-action-protect": "Ασπάλιγμαν",
+ "vector-action-undelete": "Κλώσιμον",
+ "vector-action-unprotect": "Άνοιγμαν",
+ "vector-view-create": "Ποίσον",
+ "vector-view-edit": "Άλλαξον",
+ "vector-view-history": "Τερέστεν ιστορίαν",
+ "vector-view-view": "Δεάβασον",
+ "vector-view-viewsource": "Τερέστεν κωδικόν"
+}
diff --git a/skins/Vector/i18n/ppl.json b/skins/Vector/i18n/ppl.json
new file mode 100644
index 00000000..1c80fd83
--- /dev/null
+++ b/skins/Vector/i18n/ppl.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "A R King"
+ ]
+ },
+ "vector-action-addsection": "Yankwik temaj",
+ "vector-action-delete": "Shikishti",
+ "vector-action-move": "Shikijkwani",
+ "vector-action-undelete": "Shalkwepa",
+ "vector-view-create": "Shikchiwa",
+ "vector-view-edit": "Shikpata",
+ "vector-view-history": "Ken mupatak",
+ "vector-view-view": "Shiamatachia",
+ "vector-view-viewsource": "Shikita ne codigoj"
+}
diff --git a/skins/Vector/i18n/prg.json b/skins/Vector/i18n/prg.json
new file mode 100644
index 00000000..dfd71db0
--- /dev/null
+++ b/skins/Vector/i18n/prg.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Nertiks",
+ "Peteris"
+ ]
+ },
+ "vector-action-delete": "Āupausinais",
+ "vector-action-move": "Prapīdais",
+ "vector-action-protect": "Kūnsteis",
+ "vector-action-unprotect": "Etkūnteis",
+ "vector-view-create": "Teīkeis",
+ "vector-view-edit": "Redigīs",
+ "vector-view-history": "Enwaidinnais istōrijan",
+ "vector-view-view": "Skaitāis",
+ "vector-view-viewsource": "Enwaidinnais appun"
+}
diff --git a/skins/Vector/i18n/ps.json b/skins/Vector/i18n/ps.json
new file mode 100644
index 00000000..2ccb2658
--- /dev/null
+++ b/skins/Vector/i18n/ps.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahmed-Najib-Biabani-Ibrahimkhel"
+ ]
+ },
+ "skinname-vector": "وېکټور",
+ "vector.css": "/* د CSS هره بڼه چې دلته ځای پر ځای کېږي هغه به د وېکټور د پوښ ټولو کارنانو لپاره کار کوي */",
+ "vector.js": "/* د جاوا هر يو سکرېپټ چې دلته ځای پر ځای کېږي هغه به د وېکټور د پوښ ټولو کارنانو لپاره کار کوي */",
+ "vector-action-addsection": "سرليکونه ورگډول",
+ "vector-action-delete": "ړنگول",
+ "vector-action-move": "لېږدول",
+ "vector-action-protect": "ژغورل",
+ "vector-action-undelete": "ناړنگول",
+ "vector-action-unprotect": "ژغورنه بدلول",
+ "vector-view-create": "جوړول",
+ "vector-view-edit": "سمول",
+ "vector-view-history": "پېښليک کتل",
+ "vector-view-view": "لوستل",
+ "vector-view-viewsource": "سرچينه کتل"
+}
diff --git a/skins/Vector/i18n/pt-br.json b/skins/Vector/i18n/pt-br.json
new file mode 100644
index 00000000..db476759
--- /dev/null
+++ b/skins/Vector/i18n/pt-br.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cainamarques",
+ "Diego Queiroz",
+ "Giro720",
+ "Helder.wiki",
+ 555
+ ]
+ },
+ "vector.js": "/* Qualquer JavaScript aqui colocado afetará os usuários do skin Vector */",
+ "vector-action-addsection": "Adicionar tópico",
+ "vector-action-delete": "Eliminar",
+ "vector-action-move": "Mover",
+ "vector-action-protect": "Proteger",
+ "vector-action-undelete": "Restaurar",
+ "vector-action-unprotect": "Alterar a proteção",
+ "vector-view-create": "Criar",
+ "vector-view-edit": "Editar",
+ "vector-view-history": "Ver histórico",
+ "vector-view-view": "Ler",
+ "vector-view-viewsource": "Ver código-fonte",
+ "vector-more-actions": "Mais"
+}
diff --git a/skins/Vector/i18n/pt.json b/skins/Vector/i18n/pt.json
new file mode 100644
index 00000000..98822896
--- /dev/null
+++ b/skins/Vector/i18n/pt.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Crazymadlover",
+ "Giro720",
+ "Hamilton Abreu",
+ "Malafaya",
+ "Vitorvicentevalente",
+ "Waldir"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Versão moderna do MonoBook com um visual fresco e várias melhorias de usabilidade",
+ "vector.css": "/* Código CSS colocado aqui afectará os utilizadores do tema Vector */",
+ "vector.js": "/* Código Javascript colocado aqui será carregado para utilizadores do tema Vector */",
+ "vector-action-addsection": "Adicionar&nbsp;tópico",
+ "vector-action-delete": "Eliminar",
+ "vector-action-move": "Mover",
+ "vector-action-protect": "Proteger",
+ "vector-action-undelete": "Restaurar",
+ "vector-action-unprotect": "Alterar protecção",
+ "vector-view-create": "Criar",
+ "vector-view-edit": "Editar",
+ "vector-view-history": "Ver histórico",
+ "vector-view-view": "Ler",
+ "vector-view-viewsource": "Ver fonte",
+ "vector-more-actions": "Mais"
+}
diff --git a/skins/Vector/i18n/qqq.json b/skins/Vector/i18n/qqq.json
new file mode 100644
index 00000000..fea395be
--- /dev/null
+++ b/skins/Vector/i18n/qqq.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Darth Kule",
+ "EugeneZelenko",
+ "Lloffiwr",
+ "Shirayuki",
+ "Umherirrender",
+ "Matma Rex"
+ ]
+ },
+ "skinname-vector": "{{optional}}",
+ "vector-skin-desc": "{{desc|what=skin|name=Vector|url=https://www.mediawiki.org/wiki/Skin:Vector}}",
+ "vector.css": "{{optional}}",
+ "vector.js": "{{optional}}",
+ "vector-action-addsection": "Used in the Vector skin. See for example {{canonicalurl:Talk:Main_Page|useskin=vector}}",
+ "vector-action-delete": "Used in the Vector skin, as the name of a tab at the top of the page. See for example {{canonicalurl:Main_Page|useskin=vector}}\n\n{{Identical|Delete}}",
+ "vector-action-move": "Used in the Vector skin, on the tabs at the top of the page. See for example {{canonicalurl:Talk:Main_Page|useskin=vector}}\n\n{{Identical|Move}}",
+ "vector-action-protect": "Tab at top of page, in vector skin\n\n{{Identical|Protect}}",
+ "vector-action-undelete": "Tab at top of page, in vector skin.\n{{Identical|Undelete}}",
+ "vector-action-unprotect": "Tab at top of page, in vector skin.\n{{Identical|Change protection}}",
+ "vector-view-create": "Tab label in the Vector skin. See for example {{canonicalurl:Foo|useskin=vector}}\n{{Identical|Create}}",
+ "vector-view-edit": "Tab label in the Vector skin. See for example {{canonicalurl:Main_Page|useskin=vector}}\n{{Identical|Edit}}",
+ "vector-view-history": "Tab label in the Vector skin. See for example {{canonicalurl:Main_Page|useskin=vector}}\n{{Identical|View history}}",
+ "vector-view-view": "Tab label in the Vector skin (verb). See for example {{canonicalurl:Main_Page|useskin=vector}}.\n{{Identical|Read}}",
+ "vector-view-viewsource": "Tab label in the Vector skin.\n{{Identical|View source}}",
+ "vector-more-actions": "Label in the Vector skin's menu for the less-important or rarer actions which are not shown as tabs (like moving the page, or for sysops deleting or protecting the page), as well as (for users with a narrow viewing window in their browser) the less-important tab actions which the user's browser is unable to fit in. {{Identical|More}}"
+}
diff --git a/skins/Vector/i18n/qu.json b/skins/Vector/i18n/qu.json
new file mode 100644
index 00000000..789fd27c
--- /dev/null
+++ b/skins/Vector/i18n/qu.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna"
+ ]
+ },
+ "vector-action-addsection": "Allwiyta yapay",
+ "vector-action-delete": "Qulluy",
+ "vector-action-move": "Astay",
+ "vector-action-protect": "Amachay",
+ "vector-action-undelete": "Qullusqata paqarichiy",
+ "vector-action-unprotect": "Amachayta wakinchay",
+ "vector-view-create": "Kamariy",
+ "vector-view-edit": "Llamk'apuy",
+ "vector-view-history": "Wiñay kawsayta qhaway",
+ "vector-view-view": "Ñawiriy",
+ "vector-view-viewsource": "Pukyu qillqata qhaway",
+ "vector-more-actions": "Aswan"
+}
diff --git a/skins/Vector/i18n/qug.json b/skins/Vector/i18n/qug.json
new file mode 100644
index 00000000..306f4aed
--- /dev/null
+++ b/skins/Vector/i18n/qug.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sylvain2803"
+ ]
+ },
+ "vector-action-addsection": "Shuk mushuk rimanakuyta kallarina",
+ "vector-action-delete": "Pichana",
+ "vector-action-move": "Apakuna",
+ "vector-action-protect": "Harkana",
+ "vector-action-undelete": "Kutin wacharichina",
+ "vector-action-unprotect": "Harkayta shukchina",
+ "vector-view-create": "Kamarina",
+ "vector-view-edit": "Killkana",
+ "vector-view-history": "Wiñay kawsayta rikuna",
+ "vector-view-view": "Killkakatina",
+ "vector-view-viewsource": "Pukyu killkata rikuna"
+}
diff --git a/skins/Vector/i18n/rap.json b/skins/Vector/i18n/rap.json
new file mode 100644
index 00000000..b1f644c8
--- /dev/null
+++ b/skins/Vector/i18n/rap.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Clerc",
+ "MJohnsson"
+ ]
+ },
+ "vector-action-delete": "horo'i",
+ "vector-view-edit": "Haka titika"
+}
diff --git a/skins/Vector/i18n/rgn.json b/skins/Vector/i18n/rgn.json
new file mode 100644
index 00000000..401915f2
--- /dev/null
+++ b/skins/Vector/i18n/rgn.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": [],
+ "vector-action-addsection": "Zonta una cjacarèda",
+ "vector-action-delete": "Scanzèla",
+ "vector-action-move": "Chèmbia nòm",
+ "vector-action-protect": "Metti-j una pruteziò",
+ "vector-action-undelete": "Armett a post",
+ "vector-action-unprotect": "Sbloca"
+}
diff --git a/skins/Vector/i18n/rif.json b/skins/Vector/i18n/rif.json
new file mode 100644
index 00000000..44de1de0
--- /dev/null
+++ b/skins/Vector/i18n/rif.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "MoubarikBelkasim"
+ ]
+ },
+ "vector-action-move": "Smuṭṭi",
+ "vector-view-create": "Seɣnu",
+ "vector-view-edit": "Ẓṛeg",
+ "vector-view-history": "Ẓeṛ amezruy",
+ "vector-view-view": "Ɣeṛ"
+}
diff --git a/skins/Vector/i18n/rm.json b/skins/Vector/i18n/rm.json
new file mode 100644
index 00000000..83ce4271
--- /dev/null
+++ b/skins/Vector/i18n/rm.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gion-andri"
+ ]
+ },
+ "vector-action-addsection": "Agiuntar chapitel",
+ "vector-action-delete": "Stizzar",
+ "vector-action-move": "Spustar",
+ "vector-action-protect": "Bloccar",
+ "vector-action-undelete": "Restituir",
+ "vector-action-unprotect": "Midar la protecziun",
+ "vector-view-create": "Crear",
+ "vector-view-edit": "Modifitgar",
+ "vector-view-history": "Cronologia",
+ "vector-view-view": "Leger",
+ "vector-view-viewsource": "Mussar il code"
+}
diff --git a/skins/Vector/i18n/rmf.json b/skins/Vector/i18n/rmf.json
new file mode 100644
index 00000000..9865a506
--- /dev/null
+++ b/skins/Vector/i18n/rmf.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Szonja"
+ ]
+ },
+ "vector-action-addsection": "Tilja topikos",
+ "vector-action-delete": "Tšuu nikki",
+ "vector-action-undelete": "Tšuu paale",
+ "vector-view-create": "Luona",
+ "vector-view-edit": "Muoka",
+ "vector-view-history": "Sik histores",
+ "vector-view-view": "Draba",
+ "vector-view-viewsource": "Sik navasiinako koodos"
+}
diff --git a/skins/Vector/i18n/ro.json b/skins/Vector/i18n/ro.json
new file mode 100644
index 00000000..96725c0b
--- /dev/null
+++ b/skins/Vector/i18n/ro.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "AdiJapan",
+ "Danutz",
+ "Firilacroco",
+ "Minisarm",
+ "Strainu"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector.css": "/* CSS plasate aici vor afecta utilizatorii stilului Vector */",
+ "vector-action-addsection": "Mesaj nou",
+ "vector-action-delete": "Ștergere",
+ "vector-action-move": "Redenumire",
+ "vector-action-protect": "Protejare",
+ "vector-action-undelete": "Recuperare",
+ "vector-action-unprotect": "Modificare protecție",
+ "vector-view-create": "Creare",
+ "vector-view-edit": "Modificare",
+ "vector-view-history": "Istoric",
+ "vector-view-view": "Lectură",
+ "vector-view-viewsource": "Sursă pagină",
+ "vector-more-actions": "Mai mult"
+}
diff --git a/skins/Vector/i18n/roa-tara.json b/skins/Vector/i18n/roa-tara.json
new file mode 100644
index 00000000..c5721e77
--- /dev/null
+++ b/skins/Vector/i18n/roa-tara.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras"
+ ]
+ },
+ "skinname-vector": "Vettore",
+ "vector.css": "/* 'U CSS ca se iacchie aqquà 'u 'ndrucane le utinde d'a masckere Vettore */",
+ "vector.js": "/* Ogne JavaScript aqquà avène carecate pe le utinde ca ausane 'a masckere Vettore */",
+ "vector-action-addsection": "Aggiunge 'na discussiona",
+ "vector-action-delete": "Scangille",
+ "vector-action-move": "Spuèste",
+ "vector-action-protect": "Protegge",
+ "vector-action-undelete": "Repristine",
+ "vector-action-unprotect": "Cange 'a protezione",
+ "vector-view-create": "Ccreje",
+ "vector-view-edit": "Cange",
+ "vector-view-history": "Vide 'u cunde",
+ "vector-view-view": "Ligge",
+ "vector-view-viewsource": "Vide 'u sorgende"
+}
diff --git a/skins/Vector/i18n/ru.json b/skins/Vector/i18n/ru.json
new file mode 100644
index 00000000..cd344b9b
--- /dev/null
+++ b/skins/Vector/i18n/ru.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ignatus",
+ "JenVan",
+ "Kaganer",
+ "Nemo bis",
+ "Okras",
+ "Александр Сигачёв"
+ ]
+ },
+ "skinname-vector": "Векторное",
+ "vector-skin-desc": "Современная версия MonoBook с обновлённым оформлением и многими улучшениями в юзабилити",
+ "vector.css": "/* Размещённый здесь CSS будет применяться к векторной теме оформления */",
+ "vector.js": "/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Vector */",
+ "vector-action-addsection": "Добавить тему",
+ "vector-action-delete": "Удалить",
+ "vector-action-move": "Переименовать",
+ "vector-action-protect": "Защитить",
+ "vector-action-undelete": "Восстановить",
+ "vector-action-unprotect": "Изменить защиту",
+ "vector-view-create": "Создание",
+ "vector-view-edit": "Править",
+ "vector-view-history": "История",
+ "vector-view-view": "Читать",
+ "vector-view-viewsource": "Просмотр разметки",
+ "vector-more-actions": "Ещё"
+}
diff --git a/skins/Vector/i18n/rue.json b/skins/Vector/i18n/rue.json
new file mode 100644
index 00000000..2147f80e
--- /dev/null
+++ b/skins/Vector/i18n/rue.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazeb"
+ ]
+ },
+ "vector-action-addsection": "Придати тему",
+ "vector-action-delete": "Вымазати",
+ "vector-action-move": "Переменовати",
+ "vector-action-protect": "Всокотити",
+ "vector-action-undelete": "Обновити",
+ "vector-action-unprotect": "Змінити замок",
+ "vector-view-create": "Створити",
+ "vector-view-edit": "Едітовати",
+ "vector-view-history": "Видїти історію",
+ "vector-view-view": "Чітати",
+ "vector-view-viewsource": "Видїти код"
+}
diff --git a/skins/Vector/i18n/rup.json b/skins/Vector/i18n/rup.json
new file mode 100644
index 00000000..12f9446a
--- /dev/null
+++ b/skins/Vector/i18n/rup.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "D'AroemenenZullenNiVergaan"
+ ]
+ },
+ "vector-action-addsection": "Dimândari noao",
+ "vector-view-history": "Vedz isturia"
+}
diff --git a/skins/Vector/i18n/rw.json b/skins/Vector/i18n/rw.json
new file mode 100644
index 00000000..d151c2dc
--- /dev/null
+++ b/skins/Vector/i18n/rw.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vogone"
+ ]
+ },
+ "vector-action-move": "Imura",
+ "vector-view-edit": "Hindura",
+ "vector-view-history": "Reba amateka",
+ "vector-view-view": "Soma"
+}
diff --git a/skins/Vector/i18n/ryu.json b/skins/Vector/i18n/ryu.json
new file mode 100644
index 00000000..ee1d2c1d
--- /dev/null
+++ b/skins/Vector/i18n/ryu.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kyoww"
+ ]
+ },
+ "vector-view-edit": "直すん",
+ "vector-view-view": "読むん"
+}
diff --git a/skins/Vector/i18n/sa.json b/skins/Vector/i18n/sa.json
new file mode 100644
index 00000000..610ba3e4
--- /dev/null
+++ b/skins/Vector/i18n/sa.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "NehalDaveND",
+ "Shubha"
+ ]
+ },
+ "vector-action-addsection": "विषयः योज्यताम्",
+ "vector-action-delete": "अपाक्रियताम्",
+ "vector-action-move": "शीर्षकं परिवर्त्यताम्",
+ "vector-action-protect": "संरक्ष्यताम्",
+ "vector-action-undelete": "नापाकृतं",
+ "vector-action-unprotect": "संरक्षणं परिवर्तयतु",
+ "vector-view-create": "सृज्यताम्",
+ "vector-view-edit": "सम्पाद्यताम्",
+ "vector-view-history": "इतिहासः दृश्यताम्",
+ "vector-view-view": "पठ्यताम्",
+ "vector-view-viewsource": "स्रोतः दृश्यताम्"
+}
diff --git a/skins/Vector/i18n/sah.json b/skins/Vector/i18n/sah.json
new file mode 100644
index 00000000..9d44db50
--- /dev/null
+++ b/skins/Vector/i18n/sah.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "HalanTul"
+ ]
+ },
+ "vector-action-addsection": "Тиэмэ эбии",
+ "vector-action-delete": "Сот",
+ "vector-action-move": "Аатын уларыт",
+ "vector-action-protect": "Уларыйбат гын",
+ "vector-action-undelete": "Төннөр",
+ "vector-action-unprotect": "Көмүскэлин уларыт",
+ "vector-view-create": "Ай",
+ "vector-view-edit": "Уларыт",
+ "vector-view-history": "Устуоруйатын көрүү",
+ "vector-view-view": "Ааҕыы",
+ "vector-view-viewsource": "Бэлиэлэрин көрүү"
+}
diff --git a/skins/Vector/i18n/sat.json b/skins/Vector/i18n/sat.json
new file mode 100644
index 00000000..d0797216
--- /dev/null
+++ b/skins/Vector/i18n/sat.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Albinus",
+ "Samar88",
+ "Srabony90"
+ ]
+ },
+ "vector-action-addsection": "Asol katha joṛaome",
+ "vector-action-delete": "Giḍi",
+ "vector-action-move": "Ocoḱ́me",
+ "vector-action-protect": "Bańcao",
+ "vector-action-undelete": "Bań getgiḍi",
+ "vector-action-unprotect": "Bodol rukhiyạ",
+ "vector-view-create": "Tearme",
+ "vector-view-edit": "So̠mpado̠n",
+ "vector-view-history": "Jạṛ ńelme",
+ "vector-view-view": "Paṛhaḱme",
+ "vector-view-viewsource": "Ńamoḱaḱ ńelme"
+}
diff --git a/skins/Vector/i18n/saz.json b/skins/Vector/i18n/saz.json
new file mode 100644
index 00000000..a3a6ded9
--- /dev/null
+++ b/skins/Vector/i18n/saz.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "MooRePrabu"
+ ]
+ },
+ "vector-view-view": "ꢗꢾꢮ꣄ꢣꢶ"
+}
diff --git a/skins/Vector/i18n/sc.json b/skins/Vector/i18n/sc.json
new file mode 100644
index 00000000..c3e1b7d2
--- /dev/null
+++ b/skins/Vector/i18n/sc.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Andria",
+ "Marzedu",
+ "Via maxima",
+ "Uharteko",
+ "Taxandru"
+ ]
+ },
+ "vector-action-addsection": "Giunghe cuntierra",
+ "vector-action-delete": "Burra",
+ "vector-action-move": "Move",
+ "vector-action-protect": "Barda",
+ "vector-action-undelete": "Recùpera",
+ "vector-view-create": "Crea",
+ "vector-view-edit": "Càmbia",
+ "vector-view-history": "Càstia istòria",
+ "vector-view-view": "Leghe",
+ "vector-view-viewsource": "Càstia mitza",
+ "vector-more-actions": "Prus"
+}
diff --git a/skins/Vector/i18n/scn.json b/skins/Vector/i18n/scn.json
new file mode 100644
index 00000000..a9483c4e
--- /dev/null
+++ b/skins/Vector/i18n/scn.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gmelfi",
+ "Melos"
+ ]
+ },
+ "vector-action-addsection": "Agghiunci argumentu",
+ "vector-action-delete": "Elìmina",
+ "vector-action-move": "Sposta",
+ "vector-action-protect": "Pruteggi",
+ "vector-action-undelete": "Riprìstina",
+ "vector-action-unprotect": "Cancia la prutizzioni",
+ "vector-view-create": "Crea",
+ "vector-view-edit": "Cancia",
+ "vector-view-history": "Talìa a storia",
+ "vector-view-view": "Leggi",
+ "vector-view-viewsource": "Talìa la fonti",
+ "vector-more-actions": "Àutri cosi"
+}
diff --git a/skins/Vector/i18n/sco.json b/skins/Vector/i18n/sco.json
new file mode 100644
index 00000000..acf5387a
--- /dev/null
+++ b/skins/Vector/i18n/sco.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Avicennasis",
+ "John Reid",
+ "Omnipaedista"
+ ]
+ },
+ "vector-action-addsection": "Eik topic",
+ "vector-action-delete": "Delyte",
+ "vector-action-move": "Muiv",
+ "vector-action-protect": "Fend",
+ "vector-action-undelete": "Ondelyte",
+ "vector-action-unprotect": "Chynge protection",
+ "vector-view-create": "Ceaut",
+ "vector-view-edit": "Eedit",
+ "vector-view-history": "See histerie",
+ "vector-view-view": "Read",
+ "vector-view-viewsource": "See Soorce"
+}
diff --git a/skins/Vector/i18n/sd.json b/skins/Vector/i18n/sd.json
new file mode 100644
index 00000000..157f0cc5
--- /dev/null
+++ b/skins/Vector/i18n/sd.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": [],
+ "vector-action-delete": "ڊاھيو",
+ "vector-action-move": "چوريو",
+ "vector-action-protect": "تحفظيو",
+ "vector-action-unprotect": "اڻتحفظيو",
+ "vector-view-create": "سرجيو",
+ "vector-view-edit": "سنواريو",
+ "vector-view-viewsource": "ڪوڊ ڏسو"
+}
diff --git a/skins/Vector/i18n/sdc.json b/skins/Vector/i18n/sdc.json
new file mode 100644
index 00000000..c8439310
--- /dev/null
+++ b/skins/Vector/i18n/sdc.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Felis",
+ "Jun Misugi"
+ ]
+ },
+ "vector-action-addsection": "Aggiungì oggettu",
+ "vector-action-delete": "Canzella",
+ "vector-action-move": "Ippustha",
+ "vector-action-protect": "Pruteggì",
+ "vector-view-create": "Cria",
+ "vector-view-edit": "Mudifigga",
+ "vector-view-history": "Vèdi isthòria",
+ "vector-view-view": "Leggi",
+ "vector-view-viewsource": "Vèdi fonti"
+}
diff --git a/skins/Vector/i18n/sdh.json b/skins/Vector/i18n/sdh.json
new file mode 100644
index 00000000..2f4523f2
--- /dev/null
+++ b/skins/Vector/i18n/sdh.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Paraw2"
+ ]
+ },
+ "vector-action-addsection": "بابەت تازە بدە سەری",
+ "vector-action-delete": "بسڕەوە",
+ "vector-action-move": "جیوەجی بکە",
+ "vector-action-protect": "بپیەرێزەێ",
+ "vector-view-create": "درسکردن",
+ "vector-view-edit": "وێراشتەێ بکە",
+ "vector-view-history": "دیرۆکەگەی بۊن",
+ "vector-view-view": "بخوەنە",
+ "vector-view-viewsource": "سەرچاوەگەێ بۊن"
+}
diff --git a/skins/Vector/i18n/se.json b/skins/Vector/i18n/se.json
new file mode 100644
index 00000000..bb0a900b
--- /dev/null
+++ b/skins/Vector/i18n/se.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gálaniitoluodda",
+ "Jeblad",
+ "Trondtr"
+ ]
+ },
+ "vector-action-addsection": "Lasit fáttá",
+ "vector-action-delete": "Sihko",
+ "vector-action-move": "Sirdde",
+ "vector-action-protect": "Suodjal",
+ "vector-action-undelete": "Máhcat",
+ "vector-action-unprotect": "Rievdat suodjaleami",
+ "vector-view-create": "Álggat",
+ "vector-view-edit": "Rievdat",
+ "vector-view-history": "Geahča historjjá",
+ "vector-view-view": "Loga",
+ "vector-view-viewsource": "Geahča gáldokoda"
+}
diff --git a/skins/Vector/i18n/sg.json b/skins/Vector/i18n/sg.json
new file mode 100644
index 00000000..2f658344
--- /dev/null
+++ b/skins/Vector/i18n/sg.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mdkidiri"
+ ]
+ },
+ "vector-action-addsection": "Zîa mbênî lilö daä",
+ "vector-action-delete": "Lungûla",
+ "vector-action-move": "Sanzêe ïrï",
+ "vector-action-protect": "Funga",
+ "vector-action-undelete": "Kîri na nî",
+ "vector-action-unprotect": "Sanzêe fungä",
+ "vector-view-create": "Seka",
+ "vector-view-edit": "Sepe",
+ "vector-view-history": "Tanda mbai nî",
+ "vector-view-view": "Dîko",
+ "vector-view-viewsource": "Fa ligbî nî"
+}
diff --git a/skins/Vector/i18n/sgs.json b/skins/Vector/i18n/sgs.json
new file mode 100644
index 00000000..7b2591c4
--- /dev/null
+++ b/skins/Vector/i18n/sgs.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hugo.arg"
+ ]
+ },
+ "vector-action-addsection": "Pridietė tema",
+ "vector-action-delete": "Trintė",
+ "vector-action-move": "Parvadintė",
+ "vector-action-protect": "Ožrakintė",
+ "vector-action-undelete": "Atkortė",
+ "vector-action-unprotect": "Keistė apsauga",
+ "vector-view-create": "Sokortė",
+ "vector-view-edit": "Taisītė",
+ "vector-view-history": "Veizietė istuorėjė",
+ "vector-view-view": "Skaitītė",
+ "vector-view-viewsource": "Veizietė kuoda"
+}
diff --git a/skins/Vector/i18n/sh.json b/skins/Vector/i18n/sh.json
new file mode 100644
index 00000000..21e61538
--- /dev/null
+++ b/skins/Vector/i18n/sh.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "OC Ripper"
+ ]
+ },
+ "vector-action-addsection": "Dodaj temu",
+ "vector-action-delete": "Brisanje",
+ "vector-action-move": "Preusmjeri",
+ "vector-action-protect": "Zaštiti",
+ "vector-action-undelete": "Vrati obrisano",
+ "vector-action-unprotect": "Promijeni zaštitu",
+ "vector-view-create": "Napravi",
+ "vector-view-edit": "Uredi",
+ "vector-view-history": "Pregled historije",
+ "vector-view-view": "Čitaj",
+ "vector-view-viewsource": "Vidi izvor (source)"
+}
diff --git a/skins/Vector/i18n/shi.json b/skins/Vector/i18n/shi.json
new file mode 100644
index 00000000..10f48d8e
--- /dev/null
+++ b/skins/Vector/i18n/shi.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dalinanir"
+ ]
+ },
+ "vector-action-addsection": "Zayd amli",
+ "vector-action-delete": "Ḥiyd",
+ "vector-action-move": "Smmatti",
+ "vector-action-protect": "Ḥbu",
+ "vector-action-undelete": "Rard may mayḥiydn",
+ "vector-action-unprotect": "Ḥiyd aḥbu",
+ "vector-view-create": "Skert",
+ "vector-view-edit": "Ara",
+ "vector-view-history": "Mel amzruy",
+ "vector-view-view": "ɣr",
+ "vector-view-viewsource": "Ẓr asagm"
+}
diff --git a/skins/Vector/i18n/shn.json b/skins/Vector/i18n/shn.json
new file mode 100644
index 00000000..c2cea6a6
--- /dev/null
+++ b/skins/Vector/i18n/shn.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saiddzone"
+ ]
+ },
+ "vector-action-protect": "ႁေႉၵင်ႈ",
+ "vector-view-create": "သၢင်ႈ",
+ "vector-view-edit": "မူၼ်ႉမႄး",
+ "vector-view-history": "တူၺ်းပိုၼ်း",
+ "vector-view-view": "လူတူၺ်း",
+ "vector-view-viewsource": "တူၺ်း ငဝ်ႈငႃႇ"
+}
diff --git a/skins/Vector/i18n/si.json b/skins/Vector/i18n/si.json
new file mode 100644
index 00000000..640874f9
--- /dev/null
+++ b/skins/Vector/i18n/si.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Thushara",
+ "දසනැබළයෝ",
+ "පසිඳු කාවින්ද",
+ "සුරනිමල"
+ ]
+ },
+ "vector-action-addsection": "මාතෘකාව එක්කරන්න",
+ "vector-action-delete": "මකන්න",
+ "vector-action-move": "ගෙනයන්න",
+ "vector-action-protect": "ආරක්‍ෂණය",
+ "vector-action-undelete": "මකාදැමීම අවලංගු කරන්න",
+ "vector-action-unprotect": "ආරක්ෂණ තත්වය වෙනස් කරන්න",
+ "vector-view-create": "තනන්න",
+ "vector-view-edit": "සංස්කරණය",
+ "vector-view-history": "ඉතිහාසය නරඹන්න",
+ "vector-view-view": "කියවන්න",
+ "vector-view-viewsource": "මූලාශ්‍රය නරඹන්න",
+ "vector-more-actions": "තවත්"
+}
diff --git a/skins/Vector/i18n/sk.json b/skins/Vector/i18n/sk.json
new file mode 100644
index 00000000..06bf290d
--- /dev/null
+++ b/skins/Vector/i18n/sk.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Helix84",
+ "Rudko",
+ "Sudo77(new)"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov štýlu Vector */",
+ "vector.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom vzhľadu Vector */",
+ "vector-action-addsection": "Pridať tému",
+ "vector-action-delete": "Zmazať",
+ "vector-action-move": "Presunúť",
+ "vector-action-protect": "Zamknúť",
+ "vector-action-undelete": "Obnoviť",
+ "vector-action-unprotect": "Zmeniť stav ochrany",
+ "vector-view-create": "Vytvoriť",
+ "vector-view-edit": "Upraviť",
+ "vector-view-history": "Zobraziť históriu",
+ "vector-view-view": "Čítať",
+ "vector-view-viewsource": "Zobraziť zdroj",
+ "vector-more-actions": "Viac"
+}
diff --git a/skins/Vector/i18n/sl.json b/skins/Vector/i18n/sl.json
new file mode 100644
index 00000000..cfacc3fe
--- /dev/null
+++ b/skins/Vector/i18n/sl.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dbc334",
+ "Smihael",
+ "Yerpo"
+ ]
+ },
+ "vector-skin-desc": "Sodobna različica MonoBook s svežim videzom in mnogimi izboljšavami uporabnosti",
+ "vector-action-addsection": "Dodaj temo",
+ "vector-action-delete": "Izbriši",
+ "vector-action-move": "Prestavi",
+ "vector-action-protect": "Zaščiti",
+ "vector-action-undelete": "Vrni",
+ "vector-action-unprotect": "Spremeni zaščito",
+ "vector-view-create": "Ustvari",
+ "vector-view-edit": "Uredi",
+ "vector-view-history": "Zgodovina",
+ "vector-view-view": "Preberi",
+ "vector-view-viewsource": "Izvorno besedilo",
+ "vector-more-actions": "Več"
+}
diff --git a/skins/Vector/i18n/sli.json b/skins/Vector/i18n/sli.json
new file mode 100644
index 00000000..e394c5ef
--- /dev/null
+++ b/skins/Vector/i18n/sli.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Przemub",
+ "Schläsinger",
+ "Timpul",
+ "Äberlausitzer"
+ ]
+ },
+ "vector-action-addsection": "Obschnitt hinzufiega",
+ "vector-action-delete": "Läscha",
+ "vector-action-move": "Verschieba",
+ "vector-action-protect": "Schützen",
+ "vector-action-undelete": "Wiederherstella",
+ "vector-action-unprotect": "Freigahn",
+ "vector-view-create": "Erstella",
+ "vector-view-edit": "Bearbeita",
+ "vector-view-history": "Versionsgeschichte",
+ "vector-view-view": "Lessa",
+ "vector-view-viewsource": "Quelltext siehn"
+}
diff --git a/skins/Vector/i18n/sly.json b/skins/Vector/i18n/sly.json
new file mode 100644
index 00000000..deb67414
--- /dev/null
+++ b/skins/Vector/i18n/sly.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "ZQheert"
+ ]
+ },
+ "vector-action-delete": "Lelei",
+ "vector-action-move": "Palettei",
+ "vector-view-create": "Bua'",
+ "vector-view-edit": "edi'",
+ "vector-view-view": "Bacai",
+ "vector-view-viewsource": "Tilingi assala'na"
+}
diff --git a/skins/Vector/i18n/so.json b/skins/Vector/i18n/so.json
new file mode 100644
index 00000000..1362fd86
--- /dev/null
+++ b/skins/Vector/i18n/so.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Maax"
+ ]
+ },
+ "vector-action-addsection": "Hadal ku dar",
+ "vector-action-delete": "Tirtir",
+ "vector-action-move": "Wareeji",
+ "vector-action-protect": "Difaac",
+ "vector-action-undelete": "Ha tirtirin",
+ "vector-action-unprotect": "Bedel difaacida",
+ "vector-view-create": "Sameey",
+ "vector-view-edit": "Wax ka bedel",
+ "vector-view-history": "Itusi taariikhda",
+ "vector-view-view": "Akhri",
+ "vector-view-viewsource": "Itusi xogta"
+}
diff --git a/skins/Vector/i18n/sq.json b/skins/Vector/i18n/sq.json
new file mode 100644
index 00000000..fcc34345
--- /dev/null
+++ b/skins/Vector/i18n/sq.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dasius",
+ "GretaDoci",
+ "MicroBoy",
+ "Mikullovci11",
+ "Olsi"
+ ]
+ },
+ "vector-action-addsection": "Shto një temë",
+ "vector-action-delete": "Grise",
+ "vector-action-move": "Zhvendose",
+ "vector-action-protect": "Mbroje",
+ "vector-action-undelete": "Anullo fshirjen",
+ "vector-action-unprotect": "Ndrysho mbrojtjen",
+ "vector-view-create": "Krijo",
+ "vector-view-edit": "Redakto",
+ "vector-view-history": "Shiko historikun",
+ "vector-view-view": "Lexo",
+ "vector-view-viewsource": "Shiko tekstin",
+ "vector-more-actions": "Më tepër..."
+}
diff --git a/skins/Vector/i18n/sr-ec.json b/skins/Vector/i18n/sr-ec.json
new file mode 100644
index 00000000..e33b69c8
--- /dev/null
+++ b/skins/Vector/i18n/sr-ec.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Milicevic01",
+ "Rancher",
+ "Жељко Тодоровић",
+ "Михајло Анђелковић"
+ ]
+ },
+ "skinname-vector": "Векторско",
+ "vector.css": "/* CSS постављен овде ће утицати на све кориснике теме „Векторско“ */",
+ "vector.js": "/* Јаваскрипт постављен овде ће се учитати за све оне који користе тему „Векторско“ */",
+ "vector-action-addsection": "Додај тему",
+ "vector-action-delete": "Обриши",
+ "vector-action-move": "Премести",
+ "vector-action-protect": "Заштити",
+ "vector-action-undelete": "Врати",
+ "vector-action-unprotect": "Промени заштиту",
+ "vector-view-create": "Направи",
+ "vector-view-edit": "Уреди",
+ "vector-view-history": "Историја",
+ "vector-view-view": "Читај",
+ "vector-view-viewsource": "Изворни код",
+ "vector-more-actions": "Више"
+}
diff --git a/skins/Vector/i18n/sr-el.json b/skins/Vector/i18n/sr-el.json
new file mode 100644
index 00000000..38f17ad6
--- /dev/null
+++ b/skins/Vector/i18n/sr-el.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michaello",
+ "Milicevic01",
+ "Rancher",
+ "Жељко Тодоровић"
+ ]
+ },
+ "skinname-vector": "Vektorsko",
+ "vector.css": "/* CSS postavljen ovde će uticati na sve korisnike teme „Vektorsko“ */",
+ "vector.js": "/* Javaskript postavljen ovde će se učitati za sve one koji koriste temu „Vektorsko“ */",
+ "vector-action-addsection": "Dodaj temu",
+ "vector-action-delete": "Obriši",
+ "vector-action-move": "Premesti",
+ "vector-action-protect": "Zaštiti",
+ "vector-action-undelete": "Vrati",
+ "vector-action-unprotect": "Promeni zaštitu",
+ "vector-view-create": "Napravi",
+ "vector-view-edit": "Uredi",
+ "vector-view-history": "Istorija",
+ "vector-view-view": "Čitaj",
+ "vector-view-viewsource": "Izvorni kod",
+ "vector-more-actions": "Više"
+}
diff --git a/skins/Vector/i18n/ss.json b/skins/Vector/i18n/ss.json
new file mode 100644
index 00000000..44a5edf5
--- /dev/null
+++ b/skins/Vector/i18n/ss.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sibande"
+ ]
+ },
+ "vector-action-addsection": "Ngeta sihloko",
+ "vector-action-move": "Khweshisa",
+ "vector-view-create": "Create",
+ "vector-view-edit": "Hlela",
+ "vector-view-history": "Bona umlandvo",
+ "vector-view-view": "Fundza"
+}
diff --git a/skins/Vector/i18n/stq.json b/skins/Vector/i18n/stq.json
new file mode 100644
index 00000000..1e2da5a5
--- /dev/null
+++ b/skins/Vector/i18n/stq.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pyt"
+ ]
+ },
+ "vector-action-addsection": "Ousnit bietouföigje",
+ "vector-action-delete": "Läskje",
+ "vector-action-move": "Ferskuuwe",
+ "vector-action-protect": "Skutsje",
+ "vector-action-undelete": "Wierhäärstaale",
+ "vector-action-unprotect": "Siedenskuts annerje",
+ "vector-view-create": "Moakje",
+ "vector-view-edit": "Beoarbaidje",
+ "vector-view-history": "Versionsgeskichte",
+ "vector-view-view": "Leese",
+ "vector-view-viewsource": "Wältext bekiekje"
+}
diff --git a/skins/Vector/i18n/su.json b/skins/Vector/i18n/su.json
new file mode 100644
index 00000000..72311dba
--- /dev/null
+++ b/skins/Vector/i18n/su.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kandar"
+ ]
+ },
+ "vector-skin-desc": "MonoBook vérsi modéren dina pidangan anu leuwih anyar jeung leuwih hadé",
+ "vector-action-addsection": "Jejer anyar",
+ "vector-action-delete": "Hapus",
+ "vector-action-move": "Pindahkeun",
+ "vector-action-protect": "Konci",
+ "vector-action-undelete": "Bolaykeun ngahapus",
+ "vector-action-unprotect": "Robah protéksi",
+ "vector-view-create": "Jieun",
+ "vector-view-edit": "Édit",
+ "vector-view-history": "Témbongkeun jujutan",
+ "vector-view-view": "Baca",
+ "vector-view-viewsource": "Témbongkeun sumber",
+ "vector-more-actions": "Lianna"
+}
diff --git a/skins/Vector/i18n/sv.json b/skins/Vector/i18n/sv.json
new file mode 100644
index 00000000..6ed8548b
--- /dev/null
+++ b/skins/Vector/i18n/sv.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Martinwiss",
+ "Najami",
+ "Skalman",
+ "WikiPhoenix",
+ "Lokal Profil"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "Modern version av MonoBook med ett nytt utseende och flera användarvänlighetsförbättringar",
+ "vector.css": "/* CSS som skrivs här kommer att påverka alla användare av utseendet Vector */",
+ "vector.js": "/* JavaScript här kommer att laddas för dem som använder utseendet Vector */",
+ "vector-action-addsection": "Nytt ämne",
+ "vector-action-delete": "Radera",
+ "vector-action-move": "Flytta",
+ "vector-action-protect": "Skrivskydda",
+ "vector-action-undelete": "Återställ",
+ "vector-action-unprotect": "Ändra skydd",
+ "vector-view-create": "Skapa",
+ "vector-view-edit": "Redigera",
+ "vector-view-history": "Visa historik",
+ "vector-view-view": "Visa",
+ "vector-view-viewsource": "Visa källa",
+ "vector-more-actions": "Mer"
+}
diff --git a/skins/Vector/i18n/sw.json b/skins/Vector/i18n/sw.json
new file mode 100644
index 00000000..cb511ba1
--- /dev/null
+++ b/skins/Vector/i18n/sw.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lloffiwr",
+ "Muddyb Blast Producer"
+ ]
+ },
+ "vector-action-addsection": "Weka mada",
+ "vector-action-delete": "Futa",
+ "vector-action-move": "Hamisha",
+ "vector-action-protect": "Linda",
+ "vector-action-undelete": "Rudisha",
+ "vector-action-unprotect": "Badilisha ulinzi",
+ "vector-view-create": "Anzisha",
+ "vector-view-edit": "Hariri",
+ "vector-view-history": "Fungua historia",
+ "vector-view-view": "Soma",
+ "vector-view-viewsource": "Tazama msimbo"
+}
diff --git a/skins/Vector/i18n/szl.json b/skins/Vector/i18n/szl.json
new file mode 100644
index 00000000..9e8c1063
--- /dev/null
+++ b/skins/Vector/i18n/szl.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Britscher",
+ "Gaj777",
+ "Przemub"
+ ]
+ },
+ "vector-action-addsection": "Nowo tajla",
+ "vector-action-delete": "Wyćepej",
+ "vector-action-move": "Przećep",
+ "vector-action-protect": "Zawrzij",
+ "vector-action-undelete": "Wćep",
+ "vector-action-unprotect": "Uodymkńij",
+ "vector-view-create": "Stwůrz",
+ "vector-view-edit": "Sprowjej",
+ "vector-view-history": "Uobocz gyszichta",
+ "vector-view-view": "Czytej",
+ "vector-view-viewsource": "Zdrzůdłowy tekst"
+}
diff --git a/skins/Vector/i18n/ta.json b/skins/Vector/i18n/ta.json
new file mode 100644
index 00000000..21f85010
--- /dev/null
+++ b/skins/Vector/i18n/ta.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mayooranathan",
+ "Shanmugamp7",
+ "Surya Prakash.S.A.",
+ "TRYPPN"
+ ]
+ },
+ "vector-action-addsection": "தலைப்பைச் சேர்",
+ "vector-action-delete": "நீக்குக",
+ "vector-action-move": "நகர்த்தவும்",
+ "vector-action-protect": "காக்கவும்",
+ "vector-action-undelete": "நீக்கத்தை நிறுத்து",
+ "vector-action-unprotect": "காப்பை மாற்று",
+ "vector-view-create": "உருவாக்கவும்",
+ "vector-view-edit": "தொகு",
+ "vector-view-history": "வரலாற்றைக் காட்டவும்",
+ "vector-view-view": "படிக்கவும்",
+ "vector-view-viewsource": "மூலத்தைக் காட்டவும்"
+}
diff --git a/skins/Vector/i18n/tcy.json b/skins/Vector/i18n/tcy.json
new file mode 100644
index 00000000..0001fe58
--- /dev/null
+++ b/skins/Vector/i18n/tcy.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "NamwikiTL",
+ "VASANTH S.N."
+ ]
+ },
+ "vector-action-addsection": "ವಿಷಯ ಸೇರಾಲೆ",
+ "vector-action-delete": "ದೆತ್ತ್ ಪಾಡ್ಲೆ",
+ "vector-action-move": "ಸ್ಥಳಾಂತರ ಮಲ್ಪುಲೆ",
+ "vector-action-protect": "ಸ೦ರಕ್ಷಿಸಾಲೆ",
+ "vector-action-undelete": "ಮಾಜಾವಡೆ",
+ "vector-action-unprotect": "ಬದಲಾವಣೆನ್ ರಕ್ಷಿಸಾಲೆ",
+ "vector-view-create": " ಸುರು ಮಲ್ಪುಲೆ",
+ "vector-view-edit": "ಸಂಪಾದನೆ ಮಲ್ಪುಲೆ",
+ "vector-view-history": "ಇತಿಹಾಸೊನು ತೂಲೆ",
+ "vector-view-view": "ಓದ್ಲೇ",
+ "vector-view-viewsource": "ಮೂಲೊನು ತೂಲೆ"
+}
diff --git a/skins/Vector/i18n/te.json b/skins/Vector/i18n/te.json
new file mode 100644
index 00000000..f32d90e8
--- /dev/null
+++ b/skins/Vector/i18n/te.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chaduvari",
+ "Kiranmayee",
+ "Praveen Illa",
+ "Ravichandra",
+ "Veeven"
+ ]
+ },
+ "skinname-vector": "వెక్టర్",
+ "vector-action-addsection": "విషయాన్ని చేర్చు",
+ "vector-action-delete": "తొలగించు",
+ "vector-action-move": "తరలించు",
+ "vector-action-protect": "సంరక్షించు",
+ "vector-action-undelete": "తొలగింపును రద్దుచెయ్యి",
+ "vector-action-unprotect": "సంరక్షణను మార్చు",
+ "vector-view-create": "సృష్టించు",
+ "vector-view-edit": "సవరించు",
+ "vector-view-history": "చరిత్రను చూడండి",
+ "vector-view-view": "చదువు",
+ "vector-view-viewsource": "మూలాన్ని చూపించు",
+ "vector-more-actions": "మరిన్ని"
+}
diff --git a/skins/Vector/i18n/tet.json b/skins/Vector/i18n/tet.json
new file mode 100644
index 00000000..0cc9b827
--- /dev/null
+++ b/skins/Vector/i18n/tet.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "MF-Warburg"
+ ]
+ },
+ "vector-action-protect": "Proteje",
+ "vector-view-create": "Kria",
+ "vector-view-edit": "Edita",
+ "vector-view-history": "Haree istória",
+ "vector-view-view": "Lee"
+}
diff --git a/skins/Vector/i18n/tg-cyrl.json b/skins/Vector/i18n/tg-cyrl.json
new file mode 100644
index 00000000..ede0347a
--- /dev/null
+++ b/skins/Vector/i18n/tg-cyrl.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibrahim"
+ ]
+ },
+ "vector-action-addsection": "Иловаи унвон",
+ "vector-action-delete": "Ҳазф",
+ "vector-action-move": "Кӯчонидан",
+ "vector-action-protect": "Муҳофизат",
+ "vector-action-undelete": "Эҳё",
+ "vector-action-unprotect": "Тағйири муҳофизат",
+ "vector-view-create": "Эҷод",
+ "vector-view-edit": "Вироиш",
+ "vector-view-history": "Намоиши таърих",
+ "vector-view-view": "Хондан",
+ "vector-view-viewsource": "Намоиши манбаъ"
+}
diff --git a/skins/Vector/i18n/tg-latn.json b/skins/Vector/i18n/tg-latn.json
new file mode 100644
index 00000000..1ecb038a
--- /dev/null
+++ b/skins/Vector/i18n/tg-latn.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liangent"
+ ]
+ },
+ "vector-action-addsection": "Ilovai unvon",
+ "vector-action-delete": "Hazf",
+ "vector-action-move": "Kūconidan",
+ "vector-action-protect": "Muhofizat",
+ "vector-action-undelete": "Ehjo",
+ "vector-action-unprotect": "Ba dar ovardan az muhofizat",
+ "vector-view-create": "Eçod",
+ "vector-view-edit": "Viroiş",
+ "vector-view-history": "Namoişi ta'rix",
+ "vector-view-view": "Xondan",
+ "vector-view-viewsource": "Namoişi manba'"
+}
diff --git a/skins/Vector/i18n/th.json b/skins/Vector/i18n/th.json
new file mode 100644
index 00000000..ae4b838d
--- /dev/null
+++ b/skins/Vector/i18n/th.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Horus",
+ "Octahedron80",
+ "Woraponboonkerd"
+ ]
+ },
+ "skinname-vector": "เวกเตอร์",
+ "vector.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินเวกเตอร์ */",
+ "vector.js": "/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินเวกเตอร์ */",
+ "vector-action-addsection": "เพิ่มหัวข้อ",
+ "vector-action-delete": "ลบ",
+ "vector-action-move": "เปลี่ยนชื่อ",
+ "vector-action-protect": "ล็อก",
+ "vector-action-undelete": "กู้คืน",
+ "vector-action-unprotect": "เปลี่ยนการล็อก",
+ "vector-view-create": "สร้าง",
+ "vector-view-edit": "แก้ไข",
+ "vector-view-history": "ดูประวัติ",
+ "vector-view-view": "อ่าน",
+ "vector-view-viewsource": "ดูโค้ด",
+ "vector-more-actions": "เพิ่มเติม"
+}
diff --git a/skins/Vector/i18n/tk.json b/skins/Vector/i18n/tk.json
new file mode 100644
index 00000000..f11da23a
--- /dev/null
+++ b/skins/Vector/i18n/tk.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hanberke"
+ ]
+ },
+ "vector-action-addsection": "Tema goş",
+ "vector-action-delete": "Öçür",
+ "vector-action-move": "Adyny üýtget",
+ "vector-action-protect": "Goraga al",
+ "vector-action-undelete": "Öçürmäni yzyna al",
+ "vector-action-unprotect": "Goragy üýtget",
+ "vector-view-create": "Döret",
+ "vector-view-edit": "Üýtget",
+ "vector-view-history": "Taryhy gör",
+ "vector-view-view": "Oka",
+ "vector-view-viewsource": "Çeşmäni gör"
+}
diff --git a/skins/Vector/i18n/tl.json b/skins/Vector/i18n/tl.json
new file mode 100644
index 00000000..2a0495d1
--- /dev/null
+++ b/skins/Vector/i18n/tl.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "AnakngAraw",
+ "Sky Harbor"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector.css": "/* Ang inilagay na CSS dito ay makakaapekto sa mga tagagamit ng pabalat na Vector */",
+ "vector.js": "/* Ang anumang JavaScript dito ay ikakarga para sa mga tagagamit na gumagamit ng pabalat na Vector */",
+ "vector-action-addsection": "Magdagdag ng paksa",
+ "vector-action-delete": "Burahin",
+ "vector-action-move": "Ilipat",
+ "vector-action-protect": "Ipagsanggalang",
+ "vector-action-undelete": "Alisin ang pagbubura",
+ "vector-action-unprotect": "Baguhin ang pagsasanggalang",
+ "vector-view-create": "Likhain",
+ "vector-view-edit": "Baguhin",
+ "vector-view-history": "Tingnan ang kasaysayan",
+ "vector-view-view": "Basahin",
+ "vector-view-viewsource": "Tingnan ang pinagmulan"
+}
diff --git a/skins/Vector/i18n/tly.json b/skins/Vector/i18n/tly.json
new file mode 100644
index 00000000..a809d5e0
--- /dev/null
+++ b/skins/Vector/i18n/tly.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Гусейн"
+ ]
+ },
+ "vector-action-addsection": "Мывзу зијод кардеј",
+ "vector-action-delete": "Рәдд кардеј",
+ "vector-action-move": "Номи дәгиш кардеј",
+ "vector-action-protect": "Мыдофијә кардеј",
+ "vector-action-undelete": "Бәрпо кардеј",
+ "vector-action-unprotect": "Мыдофијә дәгиш кардеј",
+ "vector-view-create": "Офәјеј",
+ "vector-view-edit": "Сәрост кардеј",
+ "vector-view-history": "Тарых",
+ "vector-view-view": "Һандемон",
+ "vector-view-viewsource": "Дијә кардеј"
+}
diff --git a/skins/Vector/i18n/tpi.json b/skins/Vector/i18n/tpi.json
new file mode 100644
index 00000000..182aa9aa
--- /dev/null
+++ b/skins/Vector/i18n/tpi.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iketsi",
+ "Wantok"
+ ]
+ },
+ "vector-action-delete": "Rausim",
+ "vector-action-move": "Surikim",
+ "vector-action-protect": "Tambuim",
+ "vector-view-create": "Kirapim",
+ "vector-view-edit": "Senisim",
+ "vector-view-history": "Ol senis",
+ "vector-view-view": "Rit",
+ "vector-view-viewsource": "Lukim as tok"
+}
diff --git a/skins/Vector/i18n/tr.json b/skins/Vector/i18n/tr.json
new file mode 100644
index 00000000..da041a9c
--- /dev/null
+++ b/skins/Vector/i18n/tr.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek",
+ "Emperyan",
+ "Joseph",
+ "Stultiwikia",
+ "Vito Genovese"
+ ]
+ },
+ "vector-action-addsection": "Konu ekle",
+ "vector-action-delete": "Sil",
+ "vector-action-move": "Taşı",
+ "vector-action-protect": "Koru",
+ "vector-action-undelete": "Silinmeyi geri al",
+ "vector-action-unprotect": "Korumayı değiştir",
+ "vector-view-create": "Oluştur",
+ "vector-view-edit": "Düzenle",
+ "vector-view-history": "Geçmişi gör",
+ "vector-view-view": "Oku",
+ "vector-view-viewsource": "Kaynağı gör",
+ "vector-more-actions": "Diğer"
+}
diff --git a/skins/Vector/i18n/tru.json b/skins/Vector/i18n/tru.json
new file mode 100644
index 00000000..1949f255
--- /dev/null
+++ b/skins/Vector/i18n/tru.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ariyo"
+ ]
+ },
+ "vector-action-addsection": "Maḥat Fusoqo ḥaṭo",
+ "vector-action-delete": "Slag",
+ "vector-action-move": "Mtaxar",
+ "vector-action-protect": "Mastar",
+ "vector-view-create": "Xlaq",
+ "vector-view-edit": "Mşaḥlaf",
+ "vector-view-history": "Maktabzabno",
+ "vector-view-view": "Qray",
+ "vector-view-viewsource": "Maḥway li aMabu³e."
+}
diff --git a/skins/Vector/i18n/ts.json b/skins/Vector/i18n/ts.json
new file mode 100644
index 00000000..c00b0298
--- /dev/null
+++ b/skins/Vector/i18n/ts.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Thuvack"
+ ]
+ },
+ "vector-action-addsection": "Veka nholoko ya mhaka",
+ "vector-action-delete": "Sula",
+ "vector-action-move": "Yi sa kunwana",
+ "vector-action-protect": "Sirhelela",
+ "vector-action-undelete": "Cinca kusula",
+ "vector-action-unprotect": "Cinca kusirhelela",
+ "vector-view-create": "Tumbuluxa",
+ "vector-view-edit": "Lulamisa",
+ "vector-view-history": "Languta matimu",
+ "vector-view-view": "Hlaya",
+ "vector-view-viewsource": "Languta xihlovo"
+}
diff --git a/skins/Vector/i18n/tt-cyrl.json b/skins/Vector/i18n/tt-cyrl.json
new file mode 100644
index 00000000..606fbe35
--- /dev/null
+++ b/skins/Vector/i18n/tt-cyrl.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro",
+ "Rinatus",
+ "Ильнар",
+ "Рашат Якупов"
+ ]
+ },
+ "skinname-vector": "Сызымлы",
+ "vector-action-addsection": "Яңа тема өстәү",
+ "vector-action-delete": "Бетерү",
+ "vector-action-move": "Күчерү",
+ "vector-action-protect": "Яклау",
+ "vector-action-undelete": "Кайтару",
+ "vector-action-unprotect": "Яклауны үзгәртү",
+ "vector-view-create": "Төзү",
+ "vector-view-edit": "Үзгәртү",
+ "vector-view-history": "Тарихын карау",
+ "vector-view-view": "Уку",
+ "vector-view-viewsource": "Чыганагын карау"
+}
diff --git a/skins/Vector/i18n/tt-latn.json b/skins/Vector/i18n/tt-latn.json
new file mode 100644
index 00000000..140768b9
--- /dev/null
+++ b/skins/Vector/i18n/tt-latn.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "skinname-vector": "Sızımlı",
+ "vector-action-addsection": "Yaña tema östäw",
+ "vector-action-delete": "Beterü",
+ "vector-action-move": "Küçerü",
+ "vector-action-protect": "Yaqlaw",
+ "vector-action-undelete": "Qaytaru",
+ "vector-action-unprotect": "Yaqlawnı beterü",
+ "vector-view-create": "Tözü",
+ "vector-view-edit": "Üzgärtü",
+ "vector-view-history": "Tarixın qaraw",
+ "vector-view-view": "Uqu",
+ "vector-view-viewsource": "Çığanağın qaraw"
+}
diff --git a/skins/Vector/i18n/tyv.json b/skins/Vector/i18n/tyv.json
new file mode 100644
index 00000000..fbfb8e98
--- /dev/null
+++ b/skins/Vector/i18n/tyv.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Agilight",
+ "Sborsody"
+ ]
+ },
+ "skinname-vector": "Вектор",
+ "vector-action-addsection": "Кол сөстү немелээри",
+ "vector-action-delete": "Ырадыры",
+ "vector-action-move": "Шимчээри",
+ "vector-action-protect": "Камгалаары",
+ "vector-action-undelete": "Эгидер",
+ "vector-action-unprotect": "Камгалалды өскертири",
+ "vector-view-create": "Чаяары",
+ "vector-view-edit": "Эдер",
+ "vector-view-history": "Төөгүнү көөрү",
+ "vector-view-view": "Номчуур",
+ "vector-view-viewsource": "Дөзү бижиин көөрү"
+}
diff --git a/skins/Vector/i18n/tzm.json b/skins/Vector/i18n/tzm.json
new file mode 100644
index 00000000..ed7ef13b
--- /dev/null
+++ b/skins/Vector/i18n/tzm.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Moha",
+ "Tifinaghes"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-action-addsection": "ⵔⵏⵓ ⴰⵙⵏⵜⵍ",
+ "vector-action-delete": "ⵓⴽⵓⵙ",
+ "vector-action-move": "ⵙⵎⵓⵜⵜⵉ",
+ "vector-action-undelete": "ⵙⵙⵓⵖⴰⵍ ⵓⴽⵓⵙ",
+ "vector-action-unprotect": "ⴱⴷⴷⴻⵍ ⵜⴰⵙⵜⴰⵏⵜ",
+ "vector-view-create": "ⴰⵔⴰ",
+ "vector-view-edit": "ⴱⴷⴷⴻⵍ",
+ "vector-view-history": "ⵥⵕ ⴰⵎⵣⵔⵓⵢ",
+ "vector-view-view": "ⵖⵔ",
+ "vector-view-viewsource": "ⵥⵕ ⴰⵖⴱⴰⵍⵓ"
+}
diff --git a/skins/Vector/i18n/udm.json b/skins/Vector/i18n/udm.json
new file mode 100644
index 00000000..a126329c
--- /dev/null
+++ b/skins/Vector/i18n/udm.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Andrewboltachev"
+ ]
+ },
+ "vector-action-addsection": "Выль темаез ватсано",
+ "vector-action-delete": "Быдтоно",
+ "vector-action-move": "Мукет интые выжтыны",
+ "vector-action-protect": "Утьыны",
+ "vector-view-create": "Кылдытоно",
+ "vector-view-edit": "Тупатоно",
+ "vector-view-history": "История",
+ "vector-view-view": "Лыдӟоно",
+ "vector-view-viewsource": "Кодзэ учкыны"
+}
diff --git a/skins/Vector/i18n/ug-arab.json b/skins/Vector/i18n/ug-arab.json
new file mode 100644
index 00000000..00bf7dfe
--- /dev/null
+++ b/skins/Vector/i18n/ug-arab.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arlin",
+ "Sahran",
+ "Tel'et"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector.css": "/* CSS placed here will affect users of the Vector skin */",
+ "vector.js": "/* Any JavaScript here will be loaded for users using the Vector skin */",
+ "vector-action-addsection": "يېڭى تېما قوش",
+ "vector-action-delete": "ئۆچۈر",
+ "vector-action-move": "يۆتكە",
+ "vector-action-protect": "قوغدا",
+ "vector-action-undelete": "ئەسلىگە قايتۇر",
+ "vector-action-unprotect": "قوغداش ئۆزگەرت",
+ "vector-view-create": "قۇر",
+ "vector-view-edit": "تەھرىر",
+ "vector-view-history": "تارىخ كۆرسەت",
+ "vector-view-view": "ئوقۇ",
+ "vector-view-viewsource": "مەنبەنى كۆرسەت"
+}
diff --git a/skins/Vector/i18n/uk.json b/skins/Vector/i18n/uk.json
new file mode 100644
index 00000000..7bd2fd1b
--- /dev/null
+++ b/skins/Vector/i18n/uk.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "AS",
+ "Ahonc",
+ "Base",
+ "Calak",
+ "Dim Grits",
+ "NickK",
+ "Prima klasy4na",
+ "Тест",
+ "Ата"
+ ]
+ },
+ "skinname-vector": "Векторне",
+ "vector-skin-desc": "Сучасна версія MonoBook зі свіжим виглядом і багатьма зручними покращеннями",
+ "vector.css": "/* Розміщений тут CSS-код буде використаний в темі оформлення Векторне */",
+ "vector.js": "/* Розміщений тут код JavaScript буде завантажений для всіх користувачів, що використовують векторну тему оформлення */",
+ "vector-action-addsection": "Додати тему",
+ "vector-action-delete": "Вилучити",
+ "vector-action-move": "Перейменувати",
+ "vector-action-protect": "Захистити",
+ "vector-action-undelete": "Відновити",
+ "vector-action-unprotect": "Зміна захисту",
+ "vector-view-create": "Створити",
+ "vector-view-edit": "Редагувати",
+ "vector-view-history": "Переглянути історію",
+ "vector-view-view": "Читати",
+ "vector-view-viewsource": "Переглянути код",
+ "vector-more-actions": "Ще"
+}
diff --git a/skins/Vector/i18n/ur.json b/skins/Vector/i18n/ur.json
new file mode 100644
index 00000000..595477e6
--- /dev/null
+++ b/skins/Vector/i18n/ur.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Calak",
+ "Istabani",
+ "Noor2020",
+ "Tahir mq",
+ "محبوب عالم"
+ ]
+ },
+ "vector-action-addsection": "نیا موضوع",
+ "vector-action-delete": "حذف کرو",
+ "vector-action-move": "منتقل کرو",
+ "vector-action-protect": "محفوظ کرو",
+ "vector-action-undelete": "بحال",
+ "vector-action-unprotect": "تحفظ میں تبدیلی",
+ "vector-view-create": "تخلیق",
+ "vector-view-edit": "ترمیم",
+ "vector-view-history": "تاریخ",
+ "vector-view-view": "مطالعہ",
+ "vector-view-viewsource": "مسودہ",
+ "vector-more-actions": "زیادہ"
+}
diff --git a/skins/Vector/i18n/uz.json b/skins/Vector/i18n/uz.json
new file mode 100644
index 00000000..ee75d39a
--- /dev/null
+++ b/skins/Vector/i18n/uz.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abdulla",
+ "Arystanbek",
+ "Casual",
+ "CoderSI",
+ "Sociologist"
+ ]
+ },
+ "skinname-vector": "Vektor",
+ "vector-action-addsection": "Mavzu qoʻshish",
+ "vector-action-delete": "O‘chirish",
+ "vector-action-move": "Ko‘chirish",
+ "vector-action-protect": "Himoyalash",
+ "vector-action-undelete": "Tiklash",
+ "vector-action-unprotect": "Himoyalashni oʻzgartirish",
+ "vector-view-create": "Yaratish",
+ "vector-view-edit": "Tahrirlash",
+ "vector-view-history": "Tarix",
+ "vector-view-view": "Mutolaa",
+ "vector-view-viewsource": "Manbasini koʻrish",
+ "vector-more-actions": "Yana"
+}
diff --git a/skins/Vector/i18n/vec.json b/skins/Vector/i18n/vec.json
new file mode 100644
index 00000000..96228289
--- /dev/null
+++ b/skins/Vector/i18n/vec.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alunardon90",
+ "Candalua",
+ "Frigotoni",
+ "GatoSelvadego",
+ "Vajotwo"
+ ]
+ },
+ "vector-action-addsection": "Zonta discusion",
+ "vector-action-delete": "Scanseła",
+ "vector-action-move": "Sposta",
+ "vector-action-protect": "Protezi",
+ "vector-action-undelete": "Recupera",
+ "vector-action-unprotect": "Canbia ła protesion",
+ "vector-view-create": "Crea",
+ "vector-view-edit": "Canbia",
+ "vector-view-history": "Varda ła storia",
+ "vector-view-view": "Lezi",
+ "vector-view-viewsource": "Varda el testo"
+}
diff --git a/skins/Vector/i18n/vep.json b/skins/Vector/i18n/vep.json
new file mode 100644
index 00000000..00f876cd
--- /dev/null
+++ b/skins/Vector/i18n/vep.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Игорь Бродский"
+ ]
+ },
+ "vector-action-addsection": "Ližada tem",
+ "vector-action-delete": "Čuta poiš",
+ "vector-action-move": "Udesnimitada",
+ "vector-action-protect": "Kaita",
+ "vector-action-undelete": "Pördutada",
+ "vector-action-unprotect": "Toižetada kaičend",
+ "vector-view-create": "Säta",
+ "vector-view-edit": "Redaktiruida",
+ "vector-view-history": "Kacta istorii",
+ "vector-view-view": "Lugeda",
+ "vector-view-viewsource": "Kacta purtkehe"
+}
diff --git a/skins/Vector/i18n/vi.json b/skins/Vector/i18n/vi.json
new file mode 100644
index 00000000..a59d9b4d
--- /dev/null
+++ b/skins/Vector/i18n/vi.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minh Nguyen",
+ "Vinhtantran",
+ "Withoutaname"
+ ]
+ },
+ "skinname-vector": "Vectơ",
+ "vector-skin-desc": "Giao diện làm lại từ MonoBook có màu tươi và khả dụng hơn",
+ "vector.css": "/* Mã CSS đặt ở đây sẽ ảnh hưởng đến thành viên sử dụng giao diện Vectơ */",
+ "vector.js": "/* Mã JavaScript tại đây sẽ được tải khi người dùng sử dụng giao diện Vectơ */",
+ "vector-action-addsection": "Thêm chủ đề",
+ "vector-action-delete": "Xóa",
+ "vector-action-move": "Di chuyển",
+ "vector-action-protect": "Khóa",
+ "vector-action-undelete": "Phục hồi",
+ "vector-action-unprotect": "Đổi mức khóa",
+ "vector-view-create": "Tạo",
+ "vector-view-edit": "Sửa đổi",
+ "vector-view-history": "Xem lịch sử",
+ "vector-view-view": "Đọc",
+ "vector-view-viewsource": "Xem mã nguồn",
+ "vector-more-actions": "Khác"
+}
diff --git a/skins/Vector/i18n/vls.json b/skins/Vector/i18n/vls.json
new file mode 100644
index 00000000..c2b841cc
--- /dev/null
+++ b/skins/Vector/i18n/vls.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "DasRakel"
+ ]
+ },
+ "vector-action-delete": "Wegdoen",
+ "vector-action-move": "Ernoemn",
+ "vector-view-create": "Anmoakn",
+ "vector-view-edit": "Bewerkn",
+ "vector-view-history": "Geschiedenisse bekykn",
+ "vector-view-view": "Leezn",
+ "vector-view-viewsource": "Brontekst bekykn"
+}
diff --git a/skins/Vector/i18n/vmf.json b/skins/Vector/i18n/vmf.json
new file mode 100644
index 00000000..439e93ac
--- /dev/null
+++ b/skins/Vector/i18n/vmf.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Silvicola"
+ ]
+ },
+ "vector.css": "/* CSS hiir beâjflusd nôr dii Vector-schelfn. Wen'd ale uf ôômôôl beâjflusn wilsch, muâsch an MediaWiki:Common.css was ändârn. */",
+ "vector-action-addsection": "Ân najn abschnid ôôfangn",
+ "vector-action-delete": "Leschn",
+ "vector-action-move": "Umdaafn",
+ "vector-action-protect": "Schidsn",
+ "vector-action-undelete": "Leschn riggängich machn",
+ "vector-action-unprotect": "Schuds ufgeebn",
+ "vector-view-create": "Ôôleechn",
+ "vector-view-edit": "Bearbajdn",
+ "vector-view-history": "Wärsjoonsfolche",
+ "vector-view-view": "Leesn",
+ "vector-view-viewsource": "Gwäl-dhägsd ôôgugn"
+}
diff --git a/skins/Vector/i18n/vo.json b/skins/Vector/i18n/vo.json
new file mode 100644
index 00000000..1bd30425
--- /dev/null
+++ b/skins/Vector/i18n/vo.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya"
+ ]
+ },
+ "vector-action-addsection": "Lüükön yegädi",
+ "vector-action-delete": "Moükön",
+ "vector-action-move": "Topätükön",
+ "vector-action-protect": "Jelön",
+ "vector-action-undelete": "Sämoükön",
+ "vector-action-unprotect": "Votükön jeli",
+ "vector-view-create": "Jafön",
+ "vector-view-edit": "Redakön",
+ "vector-view-history": "Logön jenotemi",
+ "vector-view-view": "Reidön",
+ "vector-view-viewsource": "Logön fonäti"
+}
diff --git a/skins/Vector/i18n/vot.json b/skins/Vector/i18n/vot.json
new file mode 100644
index 00000000..7bdc92d6
--- /dev/null
+++ b/skins/Vector/i18n/vot.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "Paivud"
+ ]
+ },
+ "vector-action-addsection": "Vassõn teema",
+ "vector-action-delete": "Pühi",
+ "vector-action-move": "Liikut",
+ "vector-action-protect": "Varjaa",
+ "vector-view-create": "Loo cülci",
+ "vector-view-edit": "Muuttaa",
+ "vector-view-history": "Istori",
+ "vector-view-view": "Lukõa",
+ "vector-view-viewsource": "Lähtekoodi"
+}
diff --git a/skins/Vector/i18n/vro.json b/skins/Vector/i18n/vro.json
new file mode 100644
index 00000000..a6c3c064
--- /dev/null
+++ b/skins/Vector/i18n/vro.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Võrok"
+ ]
+ },
+ "vector-action-addsection": "Vahtsõ teema ülespandminõ",
+ "vector-action-delete": "Kistudaq ärq",
+ "vector-action-move": "Nõstaq ümbre",
+ "vector-action-protect": "Kaidsaq",
+ "vector-action-undelete": "Tiiq tagasi",
+ "vector-action-unprotect": "Muudaq kaidsõt",
+ "vector-view-create": "Luuq",
+ "vector-view-edit": "Toimõndaq",
+ "vector-view-history": "Näütäq aoluku",
+ "vector-view-view": "Loeq",
+ "vector-view-viewsource": "Kaeq lätteteksti"
+}
diff --git a/skins/Vector/i18n/wa.json b/skins/Vector/i18n/wa.json
new file mode 100644
index 00000000..0401884d
--- /dev/null
+++ b/skins/Vector/i18n/wa.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Srtxg"
+ ]
+ },
+ "vector-action-addsection": "Radjouter on sudjet",
+ "vector-action-delete": "Disfacer",
+ "vector-action-move": "Displaecî",
+ "vector-action-protect": "Protedjî",
+ "vector-action-undelete": "Rapexhî",
+ "vector-action-unprotect": "Candjî l' protedjaedje",
+ "vector-view-create": "Ahiver",
+ "vector-view-edit": "Candjî",
+ "vector-view-history": "Vey l' istwere",
+ "vector-view-view": "Lére",
+ "vector-view-viewsource": "Vey côde sourdant"
+}
diff --git a/skins/Vector/i18n/war.json b/skins/Vector/i18n/war.json
new file mode 100644
index 00000000..8b2f9582
--- /dev/null
+++ b/skins/Vector/i18n/war.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Harvzsf",
+ "JinJian"
+ ]
+ },
+ "vector-action-addsection": "Igdugang hin himangrawon",
+ "vector-action-delete": "Para-a",
+ "vector-action-move": "Balhina",
+ "vector-action-protect": "Panalipda",
+ "vector-action-undelete": "Igbalik an ginpara",
+ "vector-action-unprotect": "Liwani an panalipod",
+ "vector-view-create": "Himo-a",
+ "vector-view-edit": "Igliwat",
+ "vector-view-history": "Kitaa an kaagi",
+ "vector-view-view": "Basaha",
+ "vector-view-viewsource": "Kitaa an ginkuhaan",
+ "vector-more-actions": "Damo pa"
+}
diff --git a/skins/Vector/i18n/wo.json b/skins/Vector/i18n/wo.json
new file mode 100644
index 00000000..5d248d14
--- /dev/null
+++ b/skins/Vector/i18n/wo.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibou"
+ ]
+ },
+ "vector-action-addsection": "Yokkuw tëriit",
+ "vector-action-delete": "Far",
+ "vector-action-move": "Tuddewaat",
+ "vector-action-protect": "Aar",
+ "vector-action-undelete": "Delloowaat",
+ "vector-action-unprotect": "Aaradi",
+ "vector-view-create": "Sos",
+ "vector-view-edit": "Soppi",
+ "vector-view-history": "Wone jaar-jaaram",
+ "vector-view-view": "Jàng",
+ "vector-view-viewsource": "Wone gongikuwaayam"
+}
diff --git a/skins/Vector/i18n/wuu.json b/skins/Vector/i18n/wuu.json
new file mode 100644
index 00000000..dade0ffe
--- /dev/null
+++ b/skins/Vector/i18n/wuu.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Benojan"
+ ]
+ },
+ "vector-action-addsection": "加話題",
+ "vector-action-delete": "刪",
+ "vector-action-move": "移",
+ "vector-action-protect": "保",
+ "vector-action-undelete": "弗刪",
+ "vector-action-unprotect": "换保护状态",
+ "vector-view-create": "建",
+ "vector-view-edit": "编",
+ "vector-view-history": "望页史",
+ "vector-view-view": "读",
+ "vector-view-viewsource": "望源码"
+}
diff --git a/skins/Vector/i18n/xal.json b/skins/Vector/i18n/xal.json
new file mode 100644
index 00000000..b57aad7d
--- /dev/null
+++ b/skins/Vector/i18n/xal.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Huuchin"
+ ]
+ },
+ "vector-action-addsection": "Төриг немх",
+ "vector-action-delete": "Һарһх",
+ "vector-action-move": "Көндәх",
+ "vector-action-protect": "Харсх",
+ "vector-action-undelete": "Һарһх биш",
+ "vector-action-unprotect": "Харсх биш",
+ "vector-view-create": "Бүтәх",
+ "vector-view-edit": "Чиклх",
+ "vector-view-history": "Тууҗин хәләвр",
+ "vector-view-view": "Умшлһн",
+ "vector-view-viewsource": "Темдгллһнә хәләвр"
+}
diff --git a/skins/Vector/i18n/xh.json b/skins/Vector/i18n/xh.json
new file mode 100644
index 00000000..731e3b02
--- /dev/null
+++ b/skins/Vector/i18n/xh.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "vector-view-edit": "Tshintsha"
+}
diff --git a/skins/Vector/i18n/xmf.json b/skins/Vector/i18n/xmf.json
new file mode 100644
index 00000000..47cee058
--- /dev/null
+++ b/skins/Vector/i18n/xmf.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kilavagora",
+ "Lika2672",
+ "Machirkholi"
+ ]
+ },
+ "vector-action-addsection": "თემაშ მიშაძინა",
+ "vector-action-delete": "ლასუა",
+ "vector-action-move": "გინოღალა",
+ "vector-action-protect": "თხილუა",
+ "vector-view-create": "დორსხუაფა",
+ "vector-view-edit": "რედაქტირაფა",
+ "vector-view-history": "ისტორიაშ ძირაფა",
+ "vector-view-view": "კითხირი",
+ "vector-view-viewsource": "ქიძირე წყუ"
+}
diff --git a/skins/Vector/i18n/yi.json b/skins/Vector/i18n/yi.json
new file mode 100644
index 00000000..16907ade
--- /dev/null
+++ b/skins/Vector/i18n/yi.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joystick",
+ "פוילישער"
+ ]
+ },
+ "skinname-vector": "וועקטאר",
+ "vector-skin-desc": "מאדערנע ווערסיע פון מאנאבוק מיט פרישן אויסזען און א סך באניצער־פריינדלעכקייט פארבעסערונגען",
+ "vector.css": "/* CSS געשטעלט דא ווירקט נאר אויפן וועקטאר סקין */",
+ "vector-action-addsection": "צושטעלן טעמע",
+ "vector-action-delete": "אויסמעקן",
+ "vector-action-move": "באַוועגן",
+ "vector-action-protect": "שיצן",
+ "vector-action-undelete": "מבטל זיין אויסמעקן",
+ "vector-action-unprotect": "ענדערונג באַשיצונג",
+ "vector-view-create": "שאַפֿן",
+ "vector-view-edit": "רעדאַקטירן",
+ "vector-view-history": "ווײַזן היסטאָריע",
+ "vector-view-view": "לייענען",
+ "vector-view-viewsource": "ווײַזן מקור",
+ "vector-more-actions": "נאך"
+}
diff --git a/skins/Vector/i18n/yo.json b/skins/Vector/i18n/yo.json
new file mode 100644
index 00000000..e26e68b6
--- /dev/null
+++ b/skins/Vector/i18n/yo.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Demmy"
+ ]
+ },
+ "vector-action-addsection": "Àfikún orí-ọ̀rọ̀",
+ "vector-action-delete": "Ìparẹ́",
+ "vector-action-move": "Ìyípòdà",
+ "vector-action-protect": "Àbò",
+ "vector-action-undelete": "Ìmúkúrò ìparẹ́",
+ "vector-action-unprotect": "Ìyípadà àbò",
+ "vector-view-create": "Ṣ'èdá",
+ "vector-view-edit": "Àtúnṣe",
+ "vector-view-history": "Wo ìtàn",
+ "vector-view-view": "Àwòkà",
+ "vector-view-viewsource": "Wo àmìọ̀rọ̀"
+}
diff --git a/skins/Vector/i18n/yue.json b/skins/Vector/i18n/yue.json
new file mode 100644
index 00000000..3aa23090
--- /dev/null
+++ b/skins/Vector/i18n/yue.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ktchankt",
+ "Waihorace"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector.css": "/* 響呢度放 CSS 碼去改用戶用嘅域達畫面 */",
+ "vector.js": "/* 響每一次個頁面載入時,用域達畫面嘅用戶都會載入呢度任何嘅JavaScript */",
+ "vector-action-addsection": "加主題",
+ "vector-action-delete": "剷走",
+ "vector-action-move": "搬",
+ "vector-action-protect": "保護",
+ "vector-action-undelete": "取消剷走",
+ "vector-action-unprotect": "改保護",
+ "vector-view-create": "開",
+ "vector-view-edit": "改",
+ "vector-view-history": "睇吓歷史",
+ "vector-view-view": "閱",
+ "vector-view-viewsource": "睇吓原始碼",
+ "vector-more-actions": "更多"
+}
diff --git a/skins/Vector/i18n/za.json b/skins/Vector/i18n/za.json
new file mode 100644
index 00000000..72bd20d0
--- /dev/null
+++ b/skins/Vector/i18n/za.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Biŋhai"
+ ]
+ },
+ "vector-action-delete": "Ca",
+ "vector-action-move": "Daen",
+ "vector-action-protect": "Bauj",
+ "vector-view-create": "Laeb",
+ "vector-view-edit": "gaij",
+ "vector-view-history": "Cazyawj lizsij"
+}
diff --git a/skins/Vector/i18n/zea.json b/skins/Vector/i18n/zea.json
new file mode 100644
index 00000000..d0f9aab6
--- /dev/null
+++ b/skins/Vector/i18n/zea.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ooswesthoesbes"
+ ]
+ },
+ "vector-action-addsection": "Voeg kopje toe",
+ "vector-action-delete": "Wissen",
+ "vector-action-move": "Verschuuf",
+ "vector-action-protect": "Bescherm",
+ "vector-action-undelete": "Plaets truhhe",
+ "vector-action-unprotect": "Beveiligienge anpass'n",
+ "vector-view-create": "Anmaeken",
+ "vector-view-edit": "Bewerk",
+ "vector-view-history": "Geschiedenisse bekiek'n",
+ "vector-view-view": "Lezen",
+ "vector-view-viewsource": "Brontekst bekieken"
+}
diff --git a/skins/Vector/i18n/zh-hans.json b/skins/Vector/i18n/zh-hans.json
new file mode 100644
index 00000000..79b7cca5
--- /dev/null
+++ b/skins/Vector/i18n/zh-hans.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hydra",
+ "Liangent",
+ "Liuxinyu970226",
+ "Xiaomingyan",
+ "Cwek"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "提供清新的外观和许多可用性改进的现代版MonoBook",
+ "vector.css": "/* 放置于这里的CSS将影响使用Vector皮肤的用户 */",
+ "vector.js": "/* 这里的任何JavaScript将为使用Vector皮肤的用户加载 */",
+ "vector-action-addsection": "添加话题",
+ "vector-action-delete": "删除",
+ "vector-action-move": "移动",
+ "vector-action-protect": "保护",
+ "vector-action-undelete": "还原",
+ "vector-action-unprotect": "更改保护",
+ "vector-view-create": "创建",
+ "vector-view-edit": "编辑",
+ "vector-view-history": "查看历史",
+ "vector-view-view": "阅读",
+ "vector-view-viewsource": "查看源代码",
+ "vector-more-actions": "更多"
+}
diff --git a/skins/Vector/i18n/zh-hant.json b/skins/Vector/i18n/zh-hant.json
new file mode 100644
index 00000000..556db105
--- /dev/null
+++ b/skins/Vector/i18n/zh-hant.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cwlin0416",
+ "Justincheng12345",
+ "Liuxinyu970226",
+ "Mark85296341"
+ ]
+ },
+ "skinname-vector": "Vector",
+ "vector-skin-desc": "現代版的 MonoBook,有著較新穎的外觀與許多使用性的改進",
+ "vector.css": "/* 此 CSS 會影響使用 Vector 介面外觀的使用者 */",
+ "vector.js": "/* 此 JavaScript 會用於使用 Vector 介面外觀的使用者 */",
+ "vector-action-addsection": "加入主題",
+ "vector-action-delete": "刪除",
+ "vector-action-move": "移動",
+ "vector-action-protect": "保護",
+ "vector-action-undelete": "取消刪除",
+ "vector-action-unprotect": "變更保護",
+ "vector-view-create": "建立",
+ "vector-view-edit": "編輯",
+ "vector-view-history": "檢視歷史",
+ "vector-view-view": "閱讀",
+ "vector-view-viewsource": "檢視原始碼",
+ "vector-more-actions": "更多"
+}
diff --git a/skins/vector/images/arrow-collapsed-ltr.png b/skins/Vector/images/arrow-collapsed-ltr.png
index 063ac6f7..063ac6f7 100644
--- a/skins/vector/images/arrow-collapsed-ltr.png
+++ b/skins/Vector/images/arrow-collapsed-ltr.png
Binary files differ
diff --git a/skins/Vector/images/arrow-collapsed-ltr.svg b/skins/Vector/images/arrow-collapsed-ltr.svg
new file mode 100644
index 00000000..b943caa4
--- /dev/null
+++ b/skins/Vector/images/arrow-collapsed-ltr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M6.001 2.998l5.001 5-5.001 5z" fill="#797979"/></svg> \ No newline at end of file
diff --git a/skins/vector/images/arrow-collapsed-rtl.png b/skins/Vector/images/arrow-collapsed-rtl.png
index c3462182..c3462182 100644
--- a/skins/vector/images/arrow-collapsed-rtl.png
+++ b/skins/Vector/images/arrow-collapsed-rtl.png
Binary files differ
diff --git a/skins/Vector/images/arrow-collapsed-rtl.svg b/skins/Vector/images/arrow-collapsed-rtl.svg
new file mode 100644
index 00000000..5faf356d
--- /dev/null
+++ b/skins/Vector/images/arrow-collapsed-rtl.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M9.999 13.002l-5.001-5 5.001-5z" fill="#797979"/></svg> \ No newline at end of file
diff --git a/skins/vector/images/arrow-down-focus-icon.png b/skins/Vector/images/arrow-down-focus-icon.png
index 7640bd1e..7640bd1e 100644
--- a/skins/vector/images/arrow-down-focus-icon.png
+++ b/skins/Vector/images/arrow-down-focus-icon.png
Binary files differ
diff --git a/skins/Vector/images/arrow-down-focus-icon.svg b/skins/Vector/images/arrow-down-focus-icon.svg
new file mode 100644
index 00000000..826c280d
--- /dev/null
+++ b/skins/Vector/images/arrow-down-focus-icon.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="22" height="16"><path d="M15.502 6.001l-5 5.001-5-5.001z" fill="#929292"/></svg> \ No newline at end of file
diff --git a/skins/vector/images/arrow-down-icon.png b/skins/Vector/images/arrow-down-icon.png
index 12e3b932..12e3b932 100644
--- a/skins/vector/images/arrow-down-icon.png
+++ b/skins/Vector/images/arrow-down-icon.png
Binary files differ
diff --git a/skins/Vector/images/arrow-down-icon.svg b/skins/Vector/images/arrow-down-icon.svg
new file mode 100644
index 00000000..8e31b2f5
--- /dev/null
+++ b/skins/Vector/images/arrow-down-icon.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="22" height="16"><path d="M15.502 6.001l-5 5.001-5-5.001z" fill="#797979"/></svg> \ No newline at end of file
diff --git a/skins/vector/images/arrow-expanded.png b/skins/Vector/images/arrow-expanded.png
index 0221028e..0221028e 100644
--- a/skins/vector/images/arrow-expanded.png
+++ b/skins/Vector/images/arrow-expanded.png
Binary files differ
diff --git a/skins/Vector/images/arrow-expanded.svg b/skins/Vector/images/arrow-expanded.svg
new file mode 100644
index 00000000..e744ec32
--- /dev/null
+++ b/skins/Vector/images/arrow-expanded.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M13.002 6.001l-5 5.001-5-5.001z" fill="#797979"/></svg> \ No newline at end of file
diff --git a/skins/vector/images/bullet-icon.png b/skins/Vector/images/bullet-icon.png
index 7bae98f6..7bae98f6 100644
--- a/skins/vector/images/bullet-icon.png
+++ b/skins/Vector/images/bullet-icon.png
Binary files differ
diff --git a/skins/vector/images/external-link-ltr-icon.png b/skins/Vector/images/external-link-ltr-icon.png
index 63083831..63083831 100644
--- a/skins/vector/images/external-link-ltr-icon.png
+++ b/skins/Vector/images/external-link-ltr-icon.png
Binary files differ
diff --git a/skins/Vector/images/external-link-ltr-icon.svg b/skins/Vector/images/external-link-ltr-icon.svg
new file mode 100644
index 00000000..5969d03b
--- /dev/null
+++ b/skins/Vector/images/external-link-ltr-icon.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10"><g transform="translate(-826.429 -698.791)"><rect width="5.982" height="5.982" x="826.929" y="702.309" fill="#fff" stroke="#06c"/><g><path d="M831.194 698.791h5.234v5.391l-1.571 1.545-1.31-1.31-2.725 2.725-2.689-2.689 2.808-2.808-1.311-1.311z" fill="#06f"/><path d="M835.424 699.795l.022 4.885-1.817-1.817-2.881 2.881-1.228-1.228 2.881-2.881-1.851-1.851z" fill="#fff"/></g></g></svg> \ No newline at end of file
diff --git a/skins/vector/images/external-link-rtl-icon.png b/skins/Vector/images/external-link-rtl-icon.png
index 5313234e..5313234e 100644
--- a/skins/vector/images/external-link-rtl-icon.png
+++ b/skins/Vector/images/external-link-rtl-icon.png
Binary files differ
diff --git a/skins/Vector/images/external-link-rtl-icon.svg b/skins/Vector/images/external-link-rtl-icon.svg
new file mode 100644
index 00000000..75a70256
--- /dev/null
+++ b/skins/Vector/images/external-link-rtl-icon.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10"><g transform="translate(-826.429 -698.791)"><rect width="5.982" height="5.982" x="-835.929" y="702.309" transform="scale(-1 1)" fill="#fff" stroke="#06c"/><g><path d="M831.663 698.791h-5.234v5.391l1.571 1.545 1.31-1.31 2.725 2.725 2.689-2.689-2.808-2.808 1.311-1.311z" fill="#06f"/><path d="M827.433 699.795l-.022 4.885 1.817-1.817 2.881 2.881 1.228-1.228-2.881-2.881 1.851-1.851z" fill="#fff"/></g></g></svg> \ No newline at end of file
diff --git a/skins/vector/images/link-icon.png b/skins/Vector/images/link-icon.png
index b70efaaa..b70efaaa 100644
--- a/skins/vector/images/link-icon.png
+++ b/skins/Vector/images/link-icon.png
Binary files differ
diff --git a/skins/common/images/magnify-clip.png b/skins/Vector/images/magnify-clip.png
index 00a9cee1..00a9cee1 100644
--- a/skins/common/images/magnify-clip.png
+++ b/skins/Vector/images/magnify-clip.png
Binary files differ
diff --git a/skins/vector/images/page-fade.png b/skins/Vector/images/page-fade.png
index b4a60342..b4a60342 100644
--- a/skins/vector/images/page-fade.png
+++ b/skins/Vector/images/page-fade.png
Binary files differ
diff --git a/skins/vector/images/portal-break-ltr.png b/skins/Vector/images/portal-break-ltr.png
index 20bf3668..20bf3668 100644
--- a/skins/vector/images/portal-break-ltr.png
+++ b/skins/Vector/images/portal-break-ltr.png
Binary files differ
diff --git a/skins/vector/images/portal-break-rtl.png b/skins/Vector/images/portal-break-rtl.png
index e5f6223e..e5f6223e 100644
--- a/skins/vector/images/portal-break-rtl.png
+++ b/skins/Vector/images/portal-break-rtl.png
Binary files differ
diff --git a/skins/vector/images/portal-break.png b/skins/Vector/images/portal-break.png
index 90c39182..90c39182 100644
--- a/skins/vector/images/portal-break.png
+++ b/skins/Vector/images/portal-break.png
Binary files differ
diff --git a/skins/vector/images/preferences-break.png b/skins/Vector/images/preferences/break.png
index b5293082..b5293082 100644
--- a/skins/vector/images/preferences-break.png
+++ b/skins/Vector/images/preferences/break.png
Binary files differ
diff --git a/skins/vector/images/preferences-fade.png b/skins/Vector/images/preferences/fade.png
index 638084dc..638084dc 100644
--- a/skins/vector/images/preferences-fade.png
+++ b/skins/Vector/images/preferences/fade.png
Binary files differ
diff --git a/skins/vector/images/search-fade.png b/skins/Vector/images/search-fade.png
index 6cb7d286..6cb7d286 100644
--- a/skins/vector/images/search-fade.png
+++ b/skins/Vector/images/search-fade.png
Binary files differ
diff --git a/skins/vector/images/search-ltr.png b/skins/Vector/images/search-ltr.png
index 1db2eb24..1db2eb24 100644
--- a/skins/vector/images/search-ltr.png
+++ b/skins/Vector/images/search-ltr.png
Binary files differ
diff --git a/skins/Vector/images/search-ltr.svg b/skins/Vector/images/search-ltr.svg
new file mode 100644
index 00000000..0720f205
--- /dev/null
+++ b/skins/Vector/images/search-ltr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="12" height="13"><g stroke-width="2" stroke="#6c6c6c" fill="none"><path d="M11.29 11.71l-4-4"/><circle cx="5" cy="5" r="4"/></g></svg> \ No newline at end of file
diff --git a/skins/vector/images/search-rtl.png b/skins/Vector/images/search-rtl.png
index c26c8d07..c26c8d07 100644
--- a/skins/vector/images/search-rtl.png
+++ b/skins/Vector/images/search-rtl.png
Binary files differ
diff --git a/skins/Vector/images/search-rtl.svg b/skins/Vector/images/search-rtl.svg
new file mode 100644
index 00000000..622d5f9a
--- /dev/null
+++ b/skins/Vector/images/search-rtl.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="12" height="13"><g stroke-width="2" stroke="#6c6c6c" fill="none"><path d="M.71 11.71l4-4"/><circle cx="7" cy="5" r="4"/></g></svg> \ No newline at end of file
diff --git a/skins/vector/images/tab-break.png b/skins/Vector/images/tab-break.png
index 6d37af5b..6d37af5b 100644
--- a/skins/vector/images/tab-break.png
+++ b/skins/Vector/images/tab-break.png
Binary files differ
diff --git a/skins/vector/images/tab-current-fade.png b/skins/Vector/images/tab-current-fade.png
index b8f772fa..b8f772fa 100644
--- a/skins/vector/images/tab-current-fade.png
+++ b/skins/Vector/images/tab-current-fade.png
Binary files differ
diff --git a/skins/vector/images/tab-normal-fade.png b/skins/Vector/images/tab-normal-fade.png
index f719a88d..f719a88d 100644
--- a/skins/vector/images/tab-normal-fade.png
+++ b/skins/Vector/images/tab-normal-fade.png
Binary files differ
diff --git a/skins/Vector/images/unwatch-icon-hl.png b/skins/Vector/images/unwatch-icon-hl.png
new file mode 100644
index 00000000..6b2b5027
--- /dev/null
+++ b/skins/Vector/images/unwatch-icon-hl.png
Binary files differ
diff --git a/skins/Vector/images/unwatch-icon-hl.svg b/skins/Vector/images/unwatch-icon-hl.svg
new file mode 100644
index 00000000..d52d5471
--- /dev/null
+++ b/skins/Vector/images/unwatch-icon-hl.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><linearGradient id="a"><stop offset="0" stop-color="#c2edff"/><stop offset=".5" stop-color="#68bdff"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient x1="13.47" y1="14.363" x2="4.596" y2="3.397" id="b" xlink:href="#a" gradientUnits="userSpaceOnUse"/></defs><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="url(#b)" stroke="#c8b250" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/skins/Vector/images/unwatch-icon.png b/skins/Vector/images/unwatch-icon.png
new file mode 100644
index 00000000..9fd9436a
--- /dev/null
+++ b/skins/Vector/images/unwatch-icon.png
Binary files differ
diff --git a/skins/Vector/images/unwatch-icon.svg b/skins/Vector/images/unwatch-icon.svg
new file mode 100644
index 00000000..cde7bc59
--- /dev/null
+++ b/skins/Vector/images/unwatch-icon.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><linearGradient id="a"><stop offset="0" stop-color="#c2edff"/><stop offset=".5" stop-color="#68bdff"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient x1="13.47" y1="14.363" x2="4.596" y2="3.397" id="b" xlink:href="#a" gradientUnits="userSpaceOnUse"/></defs><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="url(#b)" stroke="#7cb5d1" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/skins/Vector/images/user-icon.png b/skins/Vector/images/user-icon.png
new file mode 100644
index 00000000..909bcce1
--- /dev/null
+++ b/skins/Vector/images/user-icon.png
Binary files differ
diff --git a/skins/Vector/images/user-icon.svg b/skins/Vector/images/user-icon.svg
new file mode 100644
index 00000000..87eeb8ea
--- /dev/null
+++ b/skins/Vector/images/user-icon.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="12px" height="13.836px" viewBox="0 0 12 13.836" enable-background="new 0 0 12 13.836" xml:space="preserve">
+<path fill="#777777" d="M1.938,6.656c-1.32,1.485-1.47,3.15-0.97,4.25c0.323,0.707,0.78,1.127,1.313,1.375
+ c0.496,0.229,1.074,0.273,1.658,0.282c0.023,0,0.04,0.03,0.062,0.03h4.187c0.61,0,1.225-0.125,1.75-0.405
+ c0.527-0.28,0.961-0.718,1.188-1.376c0.335-0.964,0.175-2.529-1.094-4.03C9.094,7.954,7.68,8.719,6.065,8.719
+ c-1.677,0-3.182-0.812-4.125-2.063H1.938z"/>
+<path fill="#777777" d="M6.063,0c-1.89,0-3.595,1.674-3.594,3.563C2.467,5.45,4.173,7.155,6.06,7.155
+ c1.89,0,3.564-1.705,3.563-3.593C9.625,1.673,7.95,0,6.063,0L6.063,0z"/>
+</svg>
diff --git a/skins/Vector/images/watch-icon-hl.png b/skins/Vector/images/watch-icon-hl.png
new file mode 100644
index 00000000..4cb87cda
--- /dev/null
+++ b/skins/Vector/images/watch-icon-hl.png
Binary files differ
diff --git a/skins/Vector/images/watch-icon-hl.svg b/skins/Vector/images/watch-icon-hl.svg
new file mode 100644
index 00000000..664c6711
--- /dev/null
+++ b/skins/Vector/images/watch-icon-hl.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="#fff" stroke="#c8b250" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/skins/Vector/images/watch-icon-loading.png b/skins/Vector/images/watch-icon-loading.png
new file mode 100644
index 00000000..5f0c490f
--- /dev/null
+++ b/skins/Vector/images/watch-icon-loading.png
Binary files differ
diff --git a/skins/Vector/images/watch-icon-loading.svg b/skins/Vector/images/watch-icon-loading.svg
new file mode 100644
index 00000000..751eb14d
--- /dev/null
+++ b/skins/Vector/images/watch-icon-loading.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="#fff" stroke="#d1d1d1" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/skins/Vector/images/watch-icon.png b/skins/Vector/images/watch-icon.png
new file mode 100644
index 00000000..39daff23
--- /dev/null
+++ b/skins/Vector/images/watch-icon.png
Binary files differ
diff --git a/skins/Vector/images/watch-icon.svg b/skins/Vector/images/watch-icon.svg
new file mode 100644
index 00000000..907b05b2
--- /dev/null
+++ b/skins/Vector/images/watch-icon.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="#fff" stroke="#7cb5d1" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/skins/vector/screen-hd.less b/skins/Vector/screen-hd.less
index 5a1fc055..7c1d48b3 100644
--- a/skins/vector/screen-hd.less
+++ b/skins/Vector/screen-hd.less
@@ -1,6 +1,8 @@
/* Vector screen styles for high definition displays */
-div#content {
+@import "variables.less";
+
+.mw-body {
margin-left: 11em;
padding: 1.25em 1.5em 1.5em 1.5em;
}
diff --git a/skins/Vector/screen.less b/skins/Vector/screen.less
new file mode 100644
index 00000000..da0dec53
--- /dev/null
+++ b/skins/Vector/screen.less
@@ -0,0 +1,9 @@
+/* Vector screen styles */
+
+@import "variables.less";
+
+@import "components/common.less";
+@import "components/animations.less";
+@import "components/navigation.less";
+@import "components/footer.less";
+@import "components/externalLinks.less";
diff --git a/skins/Vector/skinStyles/jquery.tipsy.less b/skins/Vector/skinStyles/jquery.tipsy.less
new file mode 100644
index 00000000..0e0c8ecc
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.tipsy.less
@@ -0,0 +1,4 @@
+/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
+.tipsy {
+ font-size: 0.8em;
+}
diff --git a/skins/Vector/skinStyles/jquery.ui/images/close.png b/skins/Vector/skinStyles/jquery.ui/images/close.png
new file mode 100644
index 00000000..ef0dd9e3
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/close.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/titlebar-fade.png b/skins/Vector/skinStyles/jquery.ui/images/titlebar-fade.png
new file mode 100644
index 00000000..12a80c88
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/titlebar-fade.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-anim_basic_16x16.gif b/skins/Vector/skinStyles/jquery.ui/images/ui-anim_basic_16x16.gif
new file mode 100644
index 00000000..085ccaec
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-anim_basic_16x16.gif
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-bg_flat_15_cd0a0a_40x100.png b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_flat_15_cd0a0a_40x100.png
new file mode 100644
index 00000000..09de537f
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_flat_15_cd0a0a_40x100.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-bg_flat_70_000000_40x100.png b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_flat_70_000000_40x100.png
new file mode 100644
index 00000000..c06dd561
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_flat_70_000000_40x100.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
new file mode 100644
index 00000000..5308b466
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-hard_80_d7ebf9_1x100.png b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-hard_80_d7ebf9_1x100.png
new file mode 100644
index 00000000..0c8997f7
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-hard_80_d7ebf9_1x100.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_e4f1fb_1x100.png b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_e4f1fb_1x100.png
new file mode 100644
index 00000000..31492556
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_e4f1fb_1x100.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_ffffff_1x100.png b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_ffffff_1x100.png
new file mode 100644
index 00000000..09b23761
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_ffffff_1x100.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_25_ffef8f_1x100.png b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
new file mode 100644
index 00000000..66627c18
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-bg_inset-hard_100_f0f0f0_1x100.png b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_inset-hard_100_f0f0f0_1x100.png
new file mode 100644
index 00000000..ccb6dc06
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-bg_inset-hard_100_f0f0f0_1x100.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-icons_2694e8_256x240.png b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_2694e8_256x240.png
new file mode 100644
index 00000000..998ac3bc
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_2694e8_256x240.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-icons_2e83ff_256x240.png b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 00000000..84b601bf
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-icons_3d80b3_256x240.png b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_3d80b3_256x240.png
new file mode 100644
index 00000000..ec129a8b
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_3d80b3_256x240.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-icons_666666_256x240.png b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_666666_256x240.png
new file mode 100644
index 00000000..a32c57d8
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_666666_256x240.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-icons_72a7cf_256x240.png b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_72a7cf_256x240.png
new file mode 100644
index 00000000..88fad1a5
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_72a7cf_256x240.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/images/ui-icons_ffffff_256x240.png b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 00000000..29ba7d28
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/images/ui-icons_ffffff_256x240.png
Binary files differ
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.accordion.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.accordion.css
new file mode 100644
index 00000000..d429fd20
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.accordion.css
@@ -0,0 +1,16 @@
+/*!
+ * jQuery UI Accordion 1.9.2
+ * http://jqueryui.com
+ *
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+.ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }
+.ui-accordion .ui-accordion-icons { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-noicons { padding-left: .7em; }
+.ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.autocomplete.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.autocomplete.css
new file mode 100644
index 00000000..da6de452
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.autocomplete.css
@@ -0,0 +1,40 @@
+/* Autocomplete
+----------------------------------*/
+.ui-autocomplete { position: absolute; cursor: default; }
+.ui-autocomplete-loading { /* @embed */ background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/* Menu
+----------------------------------*/
+.ui-menu {
+ list-style:none;
+ padding: 2px;
+ margin: 0;
+ display:block;
+ float: left;
+}
+.ui-menu .ui-menu {
+ margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+ margin:0;
+ padding: 0;
+ zoom: 1;
+ float: left;
+ clear: left;
+ width: 100%;
+}
+.ui-menu .ui-menu-item a {
+ text-decoration:none;
+ display:block;
+ padding:.2em .4em;
+ line-height:1.5;
+ zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+ font-weight: normal;
+ margin: -1px;
+}
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.button.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.button.css
new file mode 100644
index 00000000..8c2286d1
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.button.css
@@ -0,0 +1,347 @@
+/* Button
+----------------------------------*/
+
+.ui-button {
+ display: inline-block;
+ position: relative;
+ padding: 0;
+ margin-right: .1em;
+ text-decoration: none !important;
+ cursor: pointer;
+ text-align: center;
+ zoom: 1;
+ overflow: visible; /* the overflow property removes extra width in IE */
+}
+
+/*button text element */
+.ui-button .ui-button-text {
+ display: block;
+ line-height: 1.4;
+ text-shadow: 0 1px 1px #fff;
+}
+.ui-button-text-only .ui-button-text {
+ padding: 0.3em 1em 0.25em 1em;
+}
+.ui-button-icon-only .ui-button-text,
+.ui-button-icons-only .ui-button-text {
+ padding: 0.3em;
+ text-indent: -9999999px;
+}
+.ui-button-text-icon-primary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+ padding: 0.3em 1em 0.25em 2.1em;
+}
+.ui-button-text-icon-secondary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+ padding: 0.3em 2.1em 0.25em 1em;
+}
+.ui-button-text-icons .ui-button-text {
+ padding-left: 2.1em;
+ padding-right: 2.1em;
+}
+
+/* no icon support for input elements, provide padding by default */
+input.ui-button {
+ padding: 0.3em 1em;
+}
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon,
+.ui-button-text-icon-primary .ui-icon,
+.ui-button-text-icon-secondary .ui-icon,
+.ui-button-text-icons .ui-icon,
+.ui-button-text-icon .ui-icon,
+.ui-button-icons-only .ui-icon {
+ position: absolute;
+ top: 50%;
+ margin-top: -9px;
+}
+.ui-button-icon-only .ui-icon {
+ left: 50%;
+ margin-left: -8px;
+}
+.ui-button-text-icon-primary .ui-button-icon-primary,
+.ui-button-text-icon .ui-button-icon-primary,
+.ui-button-text-icons .ui-button-icon-primary,
+.ui-button-icons-only .ui-button-icon-primary {
+ left: 0.5em;
+}
+.ui-button-text-icon-secondary .ui-button-icon-secondary,
+.ui-button-text-icon .ui-button-icon-secondary,
+.ui-button-text-icons .ui-button-icon-secondary,
+.ui-button-icons-only .ui-button-icon-secondary {
+ right: 0.5em;
+}
+
+/*button sets*/
+.ui-buttonset {
+ margin-right: 7px;
+}
+.ui-buttonset .ui-button {
+ margin-left: 0;
+ margin-right: -.4em;
+}
+
+/* workarounds */
+button.ui-button::-moz-focus-inner {
+ border: 0;
+ padding: 0; /* reset extra padding in Firefox */
+}
+/* Disables the annoying dashed border Firefox puts on active buttons */
+body button.ui-button::-moz-focus-inner {
+ border: 0;
+}
+/* Give large buttons some extra padding */
+body .ui-button-large {
+ padding: 5px;
+}
+/* Use white icons for colored buttons */
+.ui-button-green .ui-icon,
+.ui-button-blue .ui-icon,
+.ui-button-red .ui-icon,
+.ui-button-orange .ui-icon {
+ /* @embed */
+ background-image: url(images/ui-icons_ffffff_256x240.png) !important;
+}
+
+/* Corner radius */
+/* This is normally handled in jquery.ui.theme.css, but in our case, the corner
+ styling of our buttons doesn't match our default widget corner styling */
+.ui-button.ui-corner-all,
+.ui-button.ui-corner-top,
+.ui-button.ui-corner-left,
+.ui-button.ui-corner-tl {
+ border-top-left-radius: 4px;
+}
+.ui-button.ui-corner-all,
+.ui-button.ui-corner-top,
+
+.ui-button.ui-corner-right,
+.ui-button.ui-corner-tr {
+ border-top-right-radius: 4px;
+}
+.ui-button.ui-corner-all,
+.ui-button.ui-corner-bottom,
+.ui-button.ui-corner-left,
+.ui-button.ui-corner-bl {
+ border-bottom-left-radius: 4px;
+}
+.ui-button.ui-corner-all,
+.ui-button.ui-corner-bottom,
+.ui-button.ui-corner-right,
+.ui-button.ui-corner-br {
+ border-bottom-right-radius: 4px;
+}
+
+body .ui-button {
+ color: #2779aa;
+ margin: 0.5em 0 0.5em 0.4em;
+ border: 1px solid #aaa !important;
+ background: #f0f0f0 !important;
+ background: -moz-linear-gradient(top, #fff 0%, #ddd 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #fff 0%, #ddd 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #fff 0%, #ddd 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #fff 0%, #ddd 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #fff 0%, #ddd 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dddddd', GradientType=0); /* IE6-8 */
+ cursor: pointer;
+ font-size: 1em;
+ line-height: 1.4em;
+ width: auto;
+ overflow: visible;
+ box-shadow: 0 1px 3px rgba(0,0,0,.2);
+}
+
+body .ui-button-icon-only {
+ width: 2.2em;
+}
+
+body .ui-button-icons-only {
+ width: 3.4em;
+}
+
+body .ui-button:hover {
+ color: #2779aa;
+ border-color: #bbb !important;
+ background: #fff !important;
+ background: -moz-linear-gradient(top, #fff 0%, #eee 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #fff 0%, #eee 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #fff 0%, #eee 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #fff 0%, #eee 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #fff 0%, #eee 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); /* IE6-8 */
+ box-shadow: 0 1px 3px rgba(0,0,0,.1);
+}
+body .ui-button:active,
+body .ui-button:focus {
+ border-color: #8ad !important;
+ box-shadow: 0 0 1px 1px rgba(167,215,249,.5);
+}
+body .ui-button:active {
+ background: #e0e0e0 !important;
+ background: -moz-linear-gradient(top, #f0f0f0 0%, #d0d0d0 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #f0f0f0 0%, #d0d0d0 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #f0f0f0 0%, #d0d0d0 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #f0f0f0 0%, #d0d0d0 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #f0f0f0 0%, #d0d0d0 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f0f0f0', endColorstr='#d0d0d0', GradientType=0); /* IE6-8 */
+}
+
+/* Green buttons */
+body .ui-button-green,
+body .ui-button-green .ui-button-text {
+ color: white;
+ text-shadow: 0 -1px 1px #072;
+}
+body .ui-button.ui-button-green {
+ border-color: #294 !important;
+ background: #295 !important;
+ background: -moz-linear-gradient(top, #3c8 0%, #295 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #3c8 0%, #295 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #3c8 0%, #295 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #3c8 0%, #295 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #3c8 0%, #295 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33cc88', endColorstr='#229955', GradientType=0); /* IE6-8 */
+ box-shadow: 0 1px 3px rgba(0,0,0,.3);
+}
+body .ui-button.ui-button-green:hover {
+ background: #33a055 !important;
+ background: -moz-linear-gradient(top, #44d388 0%, #33a055 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #44d388 0%, #33a055 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #44d388 0%, #33a055 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #44d388 0%, #33a055 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #44d388 0%, #33a055 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#44d388', endColorstr='#33a055', GradientType=0); /* IE6-8 */
+ box-shadow: 0 1px 3px rgba(0,0,0,.25);
+}
+body .ui-button.ui-button-green:active,
+body .ui-button.ui-button-green:focus {
+ border-color: #172 !important;
+ box-shadow: 0 0 2px 2px rgba(167,215,249,.75);
+}
+body .ui-button.ui-button-green:active {
+ background: #338855 !important;
+ background: -moz-linear-gradient(top, #30c080 0%, #338855 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #30c080 0%, #338855 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #30c080 0%, #338855 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #30c080 0%, #338855 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #30c080 0%, #338855 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#30c080', endColorstr='#338855', GradientType=0); /* IE6-8 */
+}
+
+/* Blue buttons */
+body .ui-button-blue,
+body .ui-button-blue .ui-button-text {
+ color: white;
+ text-shadow: 0 -1px 1px #037;
+}
+body .ui-button.ui-button-blue {
+ border-color: #468 !important;
+ background: #36b !important;
+ background: -moz-linear-gradient(top, #48e 0%, #36b 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #48e 0%, #36b 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #48e 0%, #36b 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #48e 0%, #36b 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #48e 0%, #36b 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4488ee', endColorstr='#3366bb', GradientType=0); /* IE6-8 */
+ box-shadow: 0 1px 3px rgba(0,0,0,.35);
+}
+body .ui-button.ui-button-blue:hover {
+ background: #36c !important;
+ background: -moz-linear-gradient(top, #59e 0%, #36c 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #59e 0%, #36c 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #59e 0%, #36c 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #59e 0%, #36c 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #59e 0%, #36c 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5599ee', endColorstr='#3366cc', GradientType=0); /* IE6-8 */
+}
+body .ui-button.ui-button-blue:active,
+body .ui-button.ui-button-blue:focus {
+ border-color: #357 !important;
+ box-shadow: 0 0 2px 2px rgba(167,215,249,.75);
+}
+body .ui-button.ui-button-blue:active {
+ background: #3060a0 !important;
+ background: -moz-linear-gradient(top, #4080e0 0%, #3060a0 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #4080e0 0%, #3060a0 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #4080e0 0%, #3060a0 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #4080e0 0%, #3060a0 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #4080e0 0%, #3060a0 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4080e0', endColorstr='#3060a0', GradientType=0); /* IE6-8 */
+}
+
+/* Red buttons */
+body .ui-button-red,
+body .ui-button-red .ui-button-text {
+ color: white;
+ text-shadow: 0 -1px 1px #700;
+}
+body .ui-button.ui-button-red {
+ border-color: #944 !important;
+ background: #a22 !important;
+ background: -moz-linear-gradient(top, #d44 0%, #a22 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #d44 0%, #a22 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #d44 0%, #a22 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #d44 0%, #a22 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #d44 0%, #a22 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dd4444', endColorstr='#aa2222', GradientType=0); /* IE6-8 */
+ box-shadow: 0 1px 3px rgba(0,0,0,.35);
+}
+body .ui-button.ui-button-red:hover {
+ border-color: #a44 !important;
+ background: #b03333 !important;
+ background: -moz-linear-gradient(top, #ee4646 0%, #b03333 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #ee4646 0%, #b03333 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #ee4646 0%, #b03333 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #ee4646 0%, #b03333 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #ee4646 0%, #b03333 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee4646', endColorstr='#b03333', GradientType=0); /* IE6-8 */
+ box-shadow: 0 1px 3px rgba(0,0,0,.3);
+}
+body .ui-button.ui-button-red:active,
+body .ui-button.ui-button-red:focus {
+ border-color: #747 !important;
+ box-shadow: 0 0 2px 2px rgba(167,215,249,.7);
+}
+body .ui-button.ui-button-red:active {
+ background: #952020 !important;
+ background: -moz-linear-gradient(top, #d04545 0%, #952020 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #d04545 0%, #952020 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #d04545 0%, #952020 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #d04545 0%, #952020 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #d04545 0%, #952020 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d04545', endColorstr='#952020', GradientType=0); /* IE6-8 */
+}
+
+/* Disabled buttons */
+body .ui-button-green.disabled,
+body .ui-button-green.disabled:hover,
+body .ui-button-green.disabled:active,
+body .ui-button-green.disabled:focus,
+body .ui-button-blue.disabled,
+body .ui-button-blue.disabled:hover,
+body .ui-button-blue.disabled:active,
+body .ui-button-blue.disabled:focus,
+body .ui-button-red.disabled,
+body .ui-button-red.disabled:hover,
+body .ui-button-red.disabled:active,
+body .ui-button-red.disabled:focus,
+body .ui-button.disabled,
+body .ui-button.disabled:hover {
+ color: #aaa;
+ border-color: #ccc !important;
+ background: #eee !important;
+ background: -moz-linear-gradient(top, #f6f6f6 0%, #eee 90%) !important; /* FF3.6+ */
+ background: -webkit-linear-gradient(top, #f6f6f6 0%, #eee 90%) !important; /* Chrome10+, Safari5.1+ */
+ background: -o-linear-gradient(top, #f6f6f6 0%, #eee 90%) !important; /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #f6f6f6 0%, #eee 90%) !important; /* IE10+ */
+ background: linear-gradient(to bottom, #f6f6f6 0%, #eee 90%) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f6f6f6', endColorstr='#eeeeee', GradientType=0); /* IE6-8 */
+ box-shadow: 0 1px 3px rgba(0,0,0,0);
+}
+body .ui-button-green.disabled .ui-button-text,
+body .ui-button-blue.disabled .ui-button-text,
+body .ui-button-red.disabled .ui-button-text {
+ color: #aaa;
+ text-shadow: 0 1px 1px #fff;
+}
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.core.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.core.css
new file mode 100644
index 00000000..2e088ca1
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.core.css
@@ -0,0 +1,39 @@
+/*!
+ * jQuery UI CSS Framework 1.9.2
+ * http://jqueryui.com
+ *
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
+.ui-helper-clearfix:after { clear: both; }
+.ui-helper-clearfix { zoom: 1; }
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.datepicker.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.datepicker.css
new file mode 100644
index 00000000..871bf690
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.datepicker.css
@@ -0,0 +1,61 @@
+/* Datepicker
+----------------------------------*/
+.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; padding:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .2em 0 0 0; padding: 0 .2em; border-top: 1px solid #DDDDDD; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+/* @noflip */ .ui-datepicker-rtl { direction: rtl; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+/* @noflip */ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+ display: none; /*sorry for IE5*/
+ display/**/: block; /*sorry for IE5*/
+ position: absolute; /*must have*/
+ z-index: -1; /*must have*/
+ filter: mask(); /*must have*/
+ top: -4px; /*must have*/
+ left: -4px; /*must have*/
+ width: 200px; /*must have*/
+ height: 200px; /*must have*/
+} \ No newline at end of file
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.dialog.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.dialog.css
new file mode 100644
index 00000000..cd85f14e
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.dialog.css
@@ -0,0 +1,37 @@
+/* Dialog
+----------------------------------*/
+.ui-dialog { position: absolute; padding: 0; width: 300px; }
+.ui-dialog .ui-dialog-titlebar { padding: .75em; position: relative; }
+.ui-dialog .ui-dialog-title { float: left; margin: 0; }
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .75em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/* Customizations */
+body .ui-dialog .ui-dialog-titlebar-close:hover {
+ text-decoration: none;
+}
+body .ui-dialog .ui-dialog-content .status-invalid input {
+ border: 2px solid red;
+ padding: 2px 1px;
+}
+body .ui-dialog .ui-dialog-titlebar {
+ padding: 0.9em 1.4em 0.6em !important;
+}
+body .ui-dialog .ui-widget-header {
+ /* @embed */
+ background: #f0f0f0 url(images/titlebar-fade.png) repeat-x scroll 50% 100% !important;
+}
+/* FIXME: Should just update the icon sprite if we're keeping this X */
+body .ui-dialog .ui-icon-closethick {
+ /* @embed */
+ background: url(images/close.png) no-repeat 50% 50% !important;
+}
+body .ui-dialog .ui-dialog-buttonpane {
+ margin-top: 0 !important;
+ padding:0.3em 1.4em 0.5em 1.4em !important;
+}
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.progressbar.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.progressbar.css
new file mode 100644
index 00000000..bd7e4033
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.progressbar.css
@@ -0,0 +1,12 @@
+/*!
+ * jQuery UI Progressbar 1.9.2
+ * http://jqueryui.com
+ *
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.resizable.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.resizable.css
new file mode 100644
index 00000000..f1bd7c5e
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.resizable.css
@@ -0,0 +1,19 @@
+/* Resizable
+----------------------------------*/
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+/* @noflip */
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+/* @noflip */
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+/* @noflip */
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+/* @noflip */
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+/* @noflip */
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+/* @noflip */
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} \ No newline at end of file
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.selectable.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.selectable.css
new file mode 100644
index 00000000..5854c41f
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.selectable.css
@@ -0,0 +1,11 @@
+/*!
+ * jQuery UI Selectable 1.9.2
+ * http://jqueryui.com
+ *
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.slider.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.slider.css
new file mode 100644
index 00000000..e5794789
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.slider.css
@@ -0,0 +1,25 @@
+/*!
+ * jQuery UI Slider 1.9.2
+ * http://jqueryui.com
+ *
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; } \ No newline at end of file
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.tabs.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.tabs.css
new file mode 100644
index 00000000..11a000ff
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.tabs.css
@@ -0,0 +1,18 @@
+/*!
+ * jQuery UI Tabs 1.9.2
+ * http://jqueryui.com
+ *
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
diff --git a/skins/Vector/skinStyles/jquery.ui/jquery.ui.theme.css b/skins/Vector/skinStyles/jquery.ui/jquery.ui.theme.css
new file mode 100644
index 00000000..6bde5d3e
--- /dev/null
+++ b/skins/Vector/skinStyles/jquery.ui/jquery.ui.theme.css
@@ -0,0 +1,246 @@
+
+
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=sans-serif&fwDefault=normal&fsDefault=1.0em&cornerRadius=3px&bgColorHeader=ffffff&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=cccccc&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=f0f0f0&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=cccccc&fcActive=000000&iconColorActive=666666&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=000000&bgTextureOverlay=21_glow_ball.png&bgImgOpacityOverlay=100&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=70&opacityShadow=20&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
+*/
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: sans-serif; font-size: 0.8em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #cccccc; /* @embed */ background: #f2f5f7 url(images/ui-bg_highlight-hard_100_f2f5f7_1x100.png) 50% top repeat-x; color: #362b36; }
+.ui-widget-header { border-bottom: 1px solid #bbbbbb; line-height: 1em; /* @embed */ background: #ffffff url(images/ui-bg_highlight-soft_100_ffffff_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #aed0ea; /* @embed */ background: #d7ebf9 url(images/ui-bg_highlight-hard_80_d7ebf9_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #2779aa; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2779aa; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #74b2e2; /* @embed */ background: #e4f1fb url(images/ui-bg_highlight-soft_100_e4f1fb_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #0070a3; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #0070a3; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #cccccc; background: #f0f0f0 /* @embed */ url(images/ui-bg_inset-hard_100_f0f0f0_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000000; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #000000; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #f9dd34; background: #ffef8f /* @embed */ url(images/ui-bg_highlight-soft_25_ffef8f_1x100.png) 50% top repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #cd0a0a /* @embed */ url(images/ui-bg_flat_15_cd0a0a_40x100.png) 50% 50% repeat-x; color: #ffffff; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; }
+.ui-icon, .ui-widget-content .ui-icon, .ui-widget-header .ui-icon { /* @embed */ background-image: url(images/ui-icons_72a7cf_256x240.png); }
+.ui-state-default .ui-icon { /* @embed */ background-image: url(images/ui-icons_3d80b3_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon { /* @embed */ background-image: url(images/ui-icons_2694e8_256x240.png); }
+.ui-state-active .ui-icon { /* @embed */ background-image: url(images/ui-icons_666666_256x240.png); }
+.ui-state-highlight .ui-icon { /* @embed */ background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon { /* @embed */ background-image: url(images/ui-icons_ffffff_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { border-top-left-radius: 0; }
+.ui-corner-tr { border-top-right-radius: 0; }
+.ui-corner-bl { border-bottom-left-radius: 0; }
+.ui-corner-br { border-bottom-right-radius: 0; }
+.ui-corner-top { border-top-left-radius: 0; border-top-right-radius: 0; }
+.ui-corner-bottom { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+.ui-corner-right { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+.ui-corner-left { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+.ui-corner-all { border-radius: 0; }
+
+/* Overlays */
+.ui-widget-overlay { background: #000000; opacity: .75;filter:Alpha(Opacity=75); }
+.ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; /* @embed */ background: #000000 url(images/ui-bg_flat_70_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); border-radius: 8px; }
diff --git a/skins/Vector/skinStyles/mediawiki.notification.less b/skins/Vector/skinStyles/mediawiki.notification.less
new file mode 100644
index 00000000..55cfe76c
--- /dev/null
+++ b/skins/Vector/skinStyles/mediawiki.notification.less
@@ -0,0 +1,24 @@
+@import "../variables";
+
+/* mediawiki.notification */
+
+// This wrapper class is needed to ensure these rules have larger CSS
+// selector specificity than default styles
+.mediawiki {
+ .mw-notification-area {
+ font-size: 0.8em;
+ }
+
+ .mw-notification-area-layout {
+ top: 7em;
+ }
+
+ .mw-notification {
+ background-color: #fff;
+ background-color: rgba(255, 255, 255, 0.93);
+ padding: 0.75em 1.5em;
+ border: solid 1px @content-border-color;
+ border-radius: 0.75em;
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
+ }
+}
diff --git a/skins/Vector/skinStyles/mediawiki.special.less b/skins/Vector/skinStyles/mediawiki.special.less
new file mode 100644
index 00000000..6af4b1ef
--- /dev/null
+++ b/skins/Vector/skinStyles/mediawiki.special.less
@@ -0,0 +1,7 @@
+/**
+ * Adjusts for decreased margin-bottom for h2 elements inside #content div
+ * introduced in March / April 2014 typography update.
+ */
+table.mw-specialpages-table {
+ margin-top: 0;
+}
diff --git a/skins/Vector/skinStyles/mediawiki.special.preferences.less b/skins/Vector/skinStyles/mediawiki.special.preferences.less
new file mode 100644
index 00000000..c4637186
--- /dev/null
+++ b/skins/Vector/skinStyles/mediawiki.special.preferences.less
@@ -0,0 +1,114 @@
+@import "mediawiki.mixins";
+@import "../variables";
+
+/**
+ * The following code is highly modified from monobook. It would be nice if the
+ * preftoc id was more human readable like preferences-toc for instance,
+ * howerver this would require backporting the other skins.
+ */
+
+#preftoc {
+ /* Tabs */
+ width: 100%;
+ float: left;
+ clear: both;
+ margin: 0 !important;
+ padding: 0 !important;
+ .background-image('../images/preferences/break.png');
+ background-position: bottom left;
+ background-repeat: no-repeat;
+
+ li {
+ /* Tab */
+ float: left;
+ margin: 0;
+ padding: 0;
+ padding-right: 1px;
+ height: 2.25em;
+ white-space: nowrap;
+ list-style-type: none;
+ list-style-image: none;
+ .background-image('../images/preferences/break.png');
+ background-position: bottom right;
+ background-repeat: no-repeat;
+
+ /* Sadly, IE6 won't understand this */
+ &:first-child {
+ margin-left: 1px;
+ }
+
+ &.selected {
+ a {
+ .background-image('../images/preferences/fade.png');
+ background-position: bottom;
+ background-repeat: repeat-x;
+ color: #333;
+ text-decoration: none;
+ }
+ }
+ }
+
+ a,
+ a:active {
+ display: inline-block;
+ position: relative;
+ color: @menu-link-color;
+ padding: 0.5em;
+ text-decoration: none;
+ background-image: none;
+ font-size: 0.9em;
+ }
+
+ a:hover,
+ a:focus {
+ text-decoration: underline;
+ }
+}
+
+#preferences {
+ float: left;
+ width: 100%;
+ margin: 0;
+ margin-top: -2px;
+ clear: both;
+ border: solid 1px #ccc;
+ background-color: #fafafa;
+
+ fieldset {
+ border: none;
+ border-top: solid 1px #ccc;
+
+ &.prefsection {
+ border: none;
+ padding: 0;
+ margin: 1em;
+
+ legend.mainLegend {
+ display: none;
+ }
+ }
+ }
+
+ legend {
+ color: #666;
+ }
+
+ td {
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ }
+
+ div.mw-prefs-buttons {
+ padding: 1em;
+
+ input {
+ margin-right: 0.25em;
+ }
+ }
+}
+
+.htmlform-tip {
+ font-size: x-small;
+ padding: .2em 2em;
+ color: #666;
+}
diff --git a/skins/Vector/variables.less b/skins/Vector/variables.less
new file mode 100644
index 00000000..b17d15cf
--- /dev/null
+++ b/skins/Vector/variables.less
@@ -0,0 +1,39 @@
+@html-font-size: 100%;
+
+// Page content
+// FIXME: Use global variable since Echo and CentralNotice use this variable
+@content-border-color: #a7d7f9;
+// FIXME: Find an open font that works with this stack and is readable by Windows users
+@content-font-family: sans-serif;
+@content-font-color: #252525;
+@content-font-size: 0.875em;
+@content-line-height: 1.6;
+@content-padding: 1em;
+@content-heading-font-size: 1.8em;
+@content-heading-font-family: "Linux Libertine", Georgia, Times, serif;
+@body-background-color: #fff;
+@heading-line-height: 1.3;
+
+// Navigation
+@menu-background-color: #f6f6f6;
+
+// Common menu
+@menu-link-color: #0645ad;
+
+// Main menu
+@menu-main-font-size: inherit;
+
+@menu-main-heading-font-size: 0.75em;
+@menu-main-heading-padding: 0.25em 0 0.25em 0.25em;
+@menu-main-heading-color: #4d4d4d;
+
+@menu-main-body-font-size: 0.75em;
+@menu-main-body-link-color: #0645ad;
+@menu-main-body-link-visited-color: #0b0080;
+@menu-main-body-margin: 0 0 0 1.25em;
+@menu-main-body-padding: 0;
+
+@menu-main-logo-left: 0.5em;
+
+// Personal menu
+@menu-personal-font-size: 0.75em;
diff --git a/skins/Vector/vector.js b/skins/Vector/vector.js
new file mode 100644
index 00000000..7be35355
--- /dev/null
+++ b/skins/Vector/vector.js
@@ -0,0 +1,107 @@
+/**
+ * Vector-specific scripts
+ */
+jQuery( function ( $ ) {
+ /**
+ * Focus search input at the very end
+ */
+ $( '#searchInput' ).attr( 'tabindex', $( document ).lastTabIndex() + 1 );
+
+ /**
+ * Dropdown menu accessibility
+ */
+ $( 'div.vectorMenu' ).each( function () {
+ var $el = $( this );
+ $el.find( '> h3 > a' ).parent()
+ .attr( 'tabindex', '0' )
+ // For accessibility, show the menu when the h3 is clicked (bug 24298/46486)
+ .on( 'click keypress', function ( e ) {
+ if ( e.type === 'click' || e.which === 13 ) {
+ $el.toggleClass( 'menuForceShow' );
+ e.preventDefault();
+ }
+ } )
+ // When the heading has focus, also set a class that will change the arrow icon
+ .focus( function () {
+ $el.find( '> a' ).addClass( 'vectorMenuFocus' );
+ } )
+ .blur( function () {
+ $el.find( '> a' ).removeClass( 'vectorMenuFocus' );
+ } )
+ .find( '> a:first' )
+ // As the h3 can already be focused there's no need for the link to be focusable
+ .attr( 'tabindex', '-1' );
+ } );
+
+ /**
+ * Sidebar
+ */
+ $( '#mw-panel > .portal:first' ).addClass( 'first' );
+
+ /**
+ * Collapsible tabs
+ */
+ var $cactions = $( '#p-cactions' ),
+ $tabContainer = $( '#p-views ul' ),
+ originalDropdownWidth = $cactions.width();
+
+ // Bind callback functions to animate our drop down menu in and out
+ // and then call the collapsibleTabs function on the menu
+ $tabContainer
+ .bind( 'beforeTabCollapse', function () {
+ // If the dropdown was hidden, show it
+ if ( $cactions.hasClass( 'emptyPortlet' ) ) {
+ $cactions
+ .removeClass( 'emptyPortlet' )
+ .find( 'h3' )
+ .css( 'width', '1px' ).animate( { 'width': originalDropdownWidth }, 'normal' );
+ }
+ } )
+ .bind( 'beforeTabExpand', function () {
+ // If we're removing the last child node right now, hide the dropdown
+ if ( $cactions.find( 'li' ).length === 1 ) {
+ $cactions.find( 'h3' ).animate( { 'width': '1px' }, 'normal', function () {
+ $( this ).attr( 'style', '' )
+ .parent().addClass( 'emptyPortlet' );
+ });
+ }
+ } )
+ .collapsibleTabs( {
+ expandCondition: function ( eleWidth ) {
+ // (This looks a bit awkward because we're doing expensive queries as late as possible.)
+
+ var distance = $.collapsibleTabs.calculateTabDistance();
+ // If there are at least eleWidth + 1 pixels of free space, expand.
+ // We add 1 because .width() will truncate fractional values but .offset() will not.
+ if ( distance >= eleWidth + 1 ) {
+ return true;
+ } else {
+ // Maybe we can still expand? Account for the width of the "Actions" dropdown if the
+ // expansion would hide it.
+ if ( $cactions.find( 'li' ).length === 1 ) {
+ return distance >= eleWidth + 1 - originalDropdownWidth;
+ } else {
+ return false;
+ }
+ }
+ },
+ collapseCondition: function () {
+ // (This looks a bit awkward because we're doing expensive queries as late as possible.)
+ // TODO The dropdown itself should probably "fold" to just the down-arrow (hiding the text)
+ // if it can't fit on the line?
+
+ // If there's an overlap, collapse.
+ if ( $.collapsibleTabs.calculateTabDistance() < 0 ) {
+ // But only if the width of the tab to collapse is smaller than the width of the dropdown
+ // we would have to insert. An example language where this happens is Lithuanian (lt).
+ if ( $cactions.hasClass( 'emptyPortlet' ) ) {
+ return $tabContainer.children( 'li.collapsible:last' ).width() > originalDropdownWidth;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+ } );
+} );
diff --git a/skins/archlinux/external-ltr.png b/skins/archlinux/external-ltr.png
deleted file mode 100644
index 63083831..00000000
--- a/skins/archlinux/external-ltr.png
+++ /dev/null
Binary files differ
diff --git a/skins/archlinux/external-rtl.png b/skins/archlinux/external-rtl.png
deleted file mode 100644
index 5313234e..00000000
--- a/skins/archlinux/external-rtl.png
+++ /dev/null
Binary files differ
diff --git a/skins/archlinux/favicon.ico b/skins/archlinux/favicon.ico
deleted file mode 100644
index 55497b85..00000000
--- a/skins/archlinux/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/skins/archlinux/lock_icon.gif b/skins/archlinux/lock_icon.gif
deleted file mode 100644
index f71cd9b8..00000000
--- a/skins/archlinux/lock_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/archlinux/video.png b/skins/archlinux/video.png
deleted file mode 100644
index d86dbe01..00000000
--- a/skins/archlinux/video.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/IE80Fixes.css b/skins/common/IE80Fixes.css
deleted file mode 100644
index 6e5cb8a4..00000000
--- a/skins/common/IE80Fixes.css
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Fixes textarea scrolling bug (bug #19334). The bug only occurs when a
- * percentage width is given, so instead of width: 100%, use min-width: 100%;
- * max-width: 100%. We also need to give a fixed width for the actual width
- * property for the hack to work, although the actual value (500px here) ends
- * up being ignored; min/max-width take precedence.
- *
- * More info: http://grantovich.net/posts/2009/06/that-weird-ie8-textarea-bug/
- */
-#wpTextbox1 {
- height: 390px;
- width: 500px;
- min-width: 100%;
- max-width: 100%;
-}
diff --git a/skins/common/IEFixes.js b/skins/common/IEFixes.js
deleted file mode 100644
index e35fcd1a..00000000
--- a/skins/common/IEFixes.js
+++ /dev/null
@@ -1,146 +0,0 @@
-// IE fixes javascript loaded by wikibits.js for IE <= 6.0
-( function ( mw, $ ) {
-
-var doneIEAlphaFix, doneIETransform, expandedURLs, fixalpha, isMSIE55,
- relativeforfloats, setrelative, hasClass;
-
-// Also returns true for IE6, 7, 8, 9 and 10. createPopup is removed in IE11.
-// Good thing this is only loaded for IE <= 6 by wikibits.
-// Might as well set it to true.
-isMSIE55 = window.isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup );
-doneIETransform = window.doneIETransform = undefined;
-doneIEAlphaFix = window.doneIEAlphaFix = undefined;
-
-window.hookit = function () {
- if ( !doneIETransform && document.getElementById && document.getElementById( 'bodyContent' ) ) {
- doneIETransform = true;
- relativeforfloats();
- fixalpha();
- }
-};
-
-if ( document.attachEvent ) {
- document.attachEvent( 'onreadystatechange', window.hookit );
-}
-
-// png alpha transparency fixes
-fixalpha = window.fixalpha = function ( logoId ) {
- // bg
- if ( isMSIE55 && !doneIEAlphaFix ) {
- var bg, imageUrl, linkFix, logoa, logospan, plogo;
- plogo = document.getElementById( logoId || 'p-logo' );
- if ( !plogo ) {
- return;
- }
-
- logoa = plogo.getElementsByTagName('a')[0];
- if ( !logoa ) {
- return;
- }
-
- bg = logoa.currentStyle.backgroundImage;
- imageUrl = bg.substring( 5, bg.length - 2 );
-
- doneIEAlphaFix = true;
-
- if ( imageUrl.substr( imageUrl.length - 4 ).toLowerCase() === '.png' ) {
- logospan = logoa.appendChild( document.createElement( 'span' ) );
-
- logoa.style.backgroundImage = 'none';
- logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')';
- logospan.style.height = '100%';
- logospan.style.position = 'absolute';
- logospan.style.width = logoa.currentStyle.width;
- logospan.style.cursor = 'hand';
- // Center image with hack for IE5.5
- if ( document.documentElement.dir === 'rtl' ) {
- logospan.style.right = '50%';
- logospan.style.setExpression( 'marginRight', '"-" + (this.offsetWidth / 2) + "px"' );
- } else {
- logospan.style.left = '50%';
- logospan.style.setExpression( 'marginLeft', '"-" + (this.offsetWidth / 2) + "px"' );
- }
- logospan.style.top = '50%';
- logospan.style.setExpression( 'marginTop', '"-" + (this.offsetHeight / 2) + "px"' );
-
- linkFix = logoa.appendChild( logoa.cloneNode() );
- linkFix.style.position = 'absolute';
- linkFix.style.height = '100%';
- linkFix.style.width = '100%';
- }
- }
-};
-
-if ( isMSIE55 ) {
- // ondomready
- $( fixalpha );
-}
-
-// fix ie6 disappering float bug
-relativeforfloats = window.relativeforfloats = function () {
- var bc, tables, divs;
- bc = document.getElementById( 'bodyContent' );
- if ( bc ) {
- tables = bc.getElementsByTagName( 'table' );
- divs = bc.getElementsByTagName( 'div' );
- setrelative( tables );
- setrelative( divs );
- }
-};
-
-setrelative = window.setrelative = function ( nodes ) {
- var i = 0;
- while ( i < nodes.length ) {
- if( ( ( nodes[i].style.float && nodes[i].style.float !== ( 'none' ) ||
- ( nodes[i].align && nodes[i].align !== ( 'none' ) ) ) &&
- ( !nodes[i].style.position || nodes[i].style.position !== 'relative' ) ) )
- {
- nodes[i].style.position = 'relative';
- }
- i++;
- }
-};
-
-// Expand links for printing
-hasClass = function ( classText, classWanted ) {
- var i = 0, classArr = classText.split(/\s/);
- for ( i = 0; i < classArr.length; i++ ) {
- if ( classArr[i].toLowerCase() === classWanted.toLowerCase() ) {
- return true;
- }
- }
- return false;
-};
-
-expandedURLs = window.expandedURLs = undefined;
-
-window.onbeforeprint = function () {
- var allLinks, contentEl, expandedLink, expandedText, i;
-
- expandedURLs = [];
- contentEl = document.getElementById( 'content' );
-
- if ( contentEl ) {
- allLinks = contentEl.getElementsByTagName( 'a' );
-
- for ( i = 0; i < allLinks.length; i++ ) {
- if ( hasClass( allLinks[i].className, 'external' ) && !hasClass( allLinks[i].className, 'free' ) ) {
- expandedLink = document.createElement( 'span' );
- expandedText = document.createTextNode( ' (' + allLinks[i].href + ')' );
- expandedLink.appendChild( expandedText );
- allLinks[i].parentNode.insertBefore( expandedLink, allLinks[i].nextSibling );
- expandedURLs[i] = expandedLink;
- }
- }
- }
-};
-
-window.onafterprint = function() {
- for ( var i = 0; i < expandedURLs.length; i++ ) {
- if ( expandedURLs[i] ) {
- expandedURLs[i].removeNode( true );
- }
- }
-};
-
-}( mediaWiki, jQuery ) );
diff --git a/skins/common/ajax.js b/skins/common/ajax.js
deleted file mode 100644
index ca74b384..00000000
--- a/skins/common/ajax.js
+++ /dev/null
@@ -1,194 +0,0 @@
-/**
- * Remote Scripting Library
- * Copyright 2005 modernmethod, inc
- * Under the open source BSD license
- * http://www.modernmethod.com/sajax/
- */
-
-/*jshint camelcase:false, onevar:false */
-/*global alert */
-( function ( mw ) {
-
-/**
- * if sajax_debug_mode is true, this function outputs given the message into
- * the element with id = sajax_debug; if no such element exists in the document,
- * it is injected.
- */
-function debug( text ) {
- if ( !window.sajax_debug_mode ) {
- return false;
- }
-
- var e = document.getElementById( 'sajax_debug' );
-
- if ( !e ) {
- e = document.createElement( 'p' );
- e.className = 'sajax_debug';
- e.id = 'sajax_debug';
-
- var b = document.getElementsByTagName( 'body' )[0];
-
- if ( b.firstChild ) {
- b.insertBefore( e, b.firstChild );
- } else {
- b.appendChild( e );
- }
- }
-
- var m = document.createElement( 'div' );
- m.appendChild( document.createTextNode( text ) );
-
- e.appendChild( m );
-
- return true;
-}
-
-/**
- * Compatibility wrapper for creating a new XMLHttpRequest object.
- */
-function createXhr() {
- debug( 'sajax_init_object() called..' );
- var a;
- try {
- // Try the new style before ActiveX so we don't
- // unnecessarily trigger warnings in IE 7 when
- // set to prompt about ActiveX usage
- a = new XMLHttpRequest();
- } catch ( xhrE ) {
- try {
- a = new window.ActiveXObject( 'Msxml2.XMLHTTP' );
- } catch ( msXmlE ) {
- try {
- a = new window.ActiveXObject( 'Microsoft.XMLHTTP' );
- } catch ( msXhrE ) {
- a = null;
- }
- }
- }
- if ( !a ) {
- debug( 'Could not create connection object.' );
- }
-
- return a;
-}
-
-/**
- * Perform an AJAX call to MediaWiki. Calls are handled by AjaxDispatcher.php
- * func_name - the name of the function to call. Must be registered in $wgAjaxExportList
- * args - an array of arguments to that function
- * target - the target that will handle the result of the call. If this is a function,
- * if will be called with the XMLHttpRequest as a parameter; if it's an input
- * element, its value will be set to the resultText; if it's another type of
- * element, its innerHTML will be set to the resultText.
- *
- * Example:
- * sajax_do_call( 'doFoo', [1, 2, 3], document.getElementById( 'showFoo' ) );
- *
- * This will call the doFoo function via MediaWiki's AjaxDispatcher, with
- * (1, 2, 3) as the parameter list, and will show the result in the element
- * with id = showFoo
- */
-function doAjaxRequest( func_name, args, target ) {
- var i, x;
- var uri;
- var post_data;
- uri = mw.util.wikiScript() + '?action=ajax';
- if ( window.sajax_request_type === 'GET' ) {
- if ( uri.indexOf( '?' ) === -1 ) {
- uri = uri + '?rs=' + encodeURIComponent( func_name );
- } else {
- uri = uri + '&rs=' + encodeURIComponent( func_name );
- }
- for ( i = 0; i < args.length; i++ ) {
- uri = uri + '&rsargs[]=' + encodeURIComponent( args[i] );
- }
- //uri = uri + '&rsrnd=' + new Date().getTime();
- post_data = null;
- } else {
- post_data = 'rs=' + encodeURIComponent( func_name );
- for ( i = 0; i < args.length; i++ ) {
- post_data = post_data + '&rsargs[]=' + encodeURIComponent( args[i] );
- }
- }
- x = createXhr();
- if ( !x ) {
- alert( 'AJAX not supported' );
- return false;
- }
-
- try {
- x.open( window.sajax_request_type, uri, true );
- } catch ( e ) {
- if ( location.hostname === 'localhost' ) {
- alert( 'Your browser blocks XMLHttpRequest to "localhost", try using a real hostname for development/testing.' );
- }
- throw e;
- }
- if ( window.sajax_request_type === 'POST' ) {
- x.setRequestHeader( 'Method', 'POST ' + uri + ' HTTP/1.1' );
- x.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
- }
- x.setRequestHeader( 'Pragma', 'cache=yes' );
- x.setRequestHeader( 'Cache-Control', 'no-transform' );
- x.onreadystatechange = function () {
- if ( x.readyState !== 4 ) {
- return;
- }
-
- debug( 'received (' + x.status + ' ' + x.statusText + ') ' + x.responseText );
-
- //if ( x.status != 200 )
- // alert( 'Error: ' + x.status + ' ' + x.statusText + ': ' + x.responseText );
- //else
-
- if ( typeof target === 'function' ) {
- target( x );
- } else if ( typeof target === 'object' ) {
- if ( target.tagName === 'INPUT' ) {
- if ( x.status === 200 ) {
- target.value= x.responseText;
- }
- //else alert( 'Error: ' + x.status + ' ' + x.statusText + ' (' + x.responseText + ')' );
- } else {
- if ( x.status === 200 ) {
- target.innerHTML = x.responseText;
- } else {
- target.innerHTML = '<div class="error">Error: ' + x.status +
- ' ' + x.statusText + ' (' + x.responseText + ')</div>';
- }
- }
- } else {
- alert( 'Bad target for sajax_do_call: not a function or object: ' + target );
- }
- };
-
- debug( func_name + ' uri = ' + uri + ' / post = ' + post_data );
- x.send( post_data );
- debug( func_name + ' waiting..' );
-
- return true;
-}
-
-/**
- * @return {boolean} Whether the browser supports AJAX
- */
-function wfSupportsAjax() {
- var request = createXhr();
- var supportsAjax = request ? true : false;
- request = undefined;
- return supportsAjax;
-}
-
-// Expose + Mark as deprecated
-var deprecationNotice = 'Sajax is deprecated, use jQuery.ajax or mediawiki.api instead.';
-
-// Variables
-mw.log.deprecate( window, 'sajax_debug_mode', false, deprecationNotice );
-mw.log.deprecate( window, 'sajax_request_type', 'GET', deprecationNotice );
-// Methods
-mw.log.deprecate( window, 'sajax_debug', debug, deprecationNotice );
-mw.log.deprecate( window, 'sajax_init_object', createXhr, deprecationNotice );
-mw.log.deprecate( window, 'sajax_do_call', doAjaxRequest, deprecationNotice );
-mw.log.deprecate( window, 'wfSupportsAjax', wfSupportsAjax, deprecationNotice );
-
-}( mediaWiki ) );
diff --git a/skins/common/commonContent.css b/skins/common/commonContent.css
deleted file mode 100644
index 14d39b92..00000000
--- a/skins/common/commonContent.css
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * MediaWiki style sheet for general styles on complex content
- *
- * Styles for complex things which are a standard part of page content
- * (ie: the CSS classing built into the system), like the TOC.
- */
-
-/* Table of Contents */
-#toc,
-.toc,
-.mw-warning {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
-}
-
-/**
- * We want to display the ToC element with intrinsic width in block mode. The fit-content
- * value for width is however not supported by large groups of browsers.
- *
- * We use display:table. Even though it should only contain other table-* display
- * elements, there are no known problems with using this.
- *
- * Because IE < 8, FF 2 and other older browsers don't support display:table, we fallback to
- * using inline-block mode, which features at least intrinsic width, but won't clear preceding
- * inline elements. In practice inline elements surrounding the TOC are uncommon enough that
- * this is an acceptable sacrifice.
- */
-#toc,
-.toc {
- display: -moz-inline-block;
- display: inline-block;
- display: table;
-
- /* IE7 and earlier */
- zoom: 1;
- *display: inline;
-
- padding: 7px;
-}
-
-/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
-table#toc,
-table.toc {
- border-collapse: collapse;
-}
-/* Remove additional paddings inside table-cells that are not present in <div>s */
-table#toc td,
-table.toc td {
- padding: 0;
-}
-
-#toc h2,
-.toc h2 {
- display: inline;
- border: none;
- padding: 0;
- font-size: 100%;
- font-weight: bold;
-}
-#toc #toctitle,
-.toc #toctitle,
-#toc .toctitle,
-.toc .toctitle {
- text-align: center;
-}
-#toc ul,
-.toc ul {
- list-style-type: none;
- list-style-image: none;
- margin-left: 0;
- padding: 0;
- text-align: left;
-}
-#toc ul ul,
-.toc ul ul {
- margin: 0 0 0 2em;
-}
-#toc .toctoggle,
-.toc .toctoggle {
- font-size: 94%;
-}
-
-.toccolours {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
-}
-
-/* Warning */
-.mw-warning {
- margin-left: 50px;
- margin-right: 50px;
- text-align: center;
-}
-
-/* Images */
-/* @noflip */div.floatright, table.floatright {
- margin: 0 0 .5em .5em;
- border: 0;
-}
-div.floatright p { font-style: italic; }
-/* @noflip */div.floatleft, table.floatleft {
- margin: 0 .5em .5em 0;
- border: 0;
-}
-div.floatleft p { font-style: italic; }
-/* Thumbnails */
-div.thumb {
- margin-bottom: .5em;
- width: auto;
- background-color: transparent;
-}
-div.thumbinner {
- border: 1px solid #ccc;
- padding: 3px !important;
- background-color: #f9f9f9;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-html .thumbimage {
- border: 1px solid #ccc;
-}
-html .thumbcaption {
- border: none;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-div.magnify {
- border: none !important;
- background: none !important;
- margin-left: 3px;
-}
-div.magnify a, div.magnify img {
- display: block;
- border: none !important;
- background: none !important;
-}
-/* @noflip */div.tright {
- margin: .5em 0 1.3em 1.4em;
-}
-/* @noflip */div.tleft {
- margin: .5em 1.4em 1.3em 0;
-}
-img.thumbborder {
- border: 1px solid #dddddd;
-}
-
-/**
- * Edit forms
- */
-#editform textarea {
- display: block;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-/**
- * Basic styles for the user login and create account forms
- */
-#userlogin, #userloginForm {
- border: solid 1px #cccccc;
- padding: 1.2em;
- margin: 0.5em;
-}
-
-#loginend {
- margin: 0.5em;
-}
-
-#loginend table {
- width: 100%;
-}
diff --git a/skins/common/commonElements.css b/skins/common/commonElements.css
deleted file mode 100644
index 76ec4af7..00000000
--- a/skins/common/commonElements.css
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
- * MediaWiki style sheet for general styles on basic content elements
- *
- * Styles for basic elements: links, lists, etc...
- *
- * This style sheet is used by the Monobook and Vector skins.
- */
-
-/* Links */
-a {
- text-decoration: none;
- color: #0645ad;
- background: none;
-}
-a:visited {
- color: #0b0080;
-}
-a:active {
- color: #faa700;
-}
-a:hover, a:focus {
- text-decoration: underline;
-}
-a.stub {
- color: #772233;
-}
-a.new, #p-personal a.new {
- color: #ba0000;
-}
-a.new:visited, #p-personal a.new:visited {
- color: #a55858;
-}
-
-/* Interwiki Styling */
-.mw-body a.extiw,
-.mw-body a.extiw:active {
- color: #36b;
-}
-.mw-body a.extiw:visited {
- color: #636;
-}
-.mw-body a.extiw:active {
- color: #b63;
-}
-
-/* External links */
-.mw-body a.external {
- color: #36b;
-}
-.mw-body a.external:visited {
- color: #636; /* bug 3112 */
-}
-.mw-body a.external:active {
- color: #b63;
-}
-
-/* Inline Elements */
-img {
- border: none;
- vertical-align: middle;
-}
-hr {
- height: 1px;
- color: #aaa;
- background-color: #aaa;
- border: 0;
- margin: .2em 0;
-}
-
-/* Structural Elements */
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- color: black;
- background: none;
- font-weight: normal;
- margin: 0;
- overflow: hidden;
- padding-top: .5em;
- padding-bottom: .17em;
- border-bottom: 1px solid #aaa;
-}
-h1 {
- font-size: 188%;
-}
-h2 {
- font-size: 150%;
-}
-h3,
-h4,
-h5,
-h6 {
- border-bottom: none;
- font-weight: bold;
-}
-h3 {
- font-size: 132%;
-}
-h4 {
- font-size: 116%;
-}
-h5 {
- font-size: 108%;
-}
-h6 {
- font-size: 100%;
-}
-
-/* Some space under the headers in the content area */
-h1,
-h2 {
- margin-bottom: .6em;
-}
-h3,
-h4,
-h5 {
- margin-bottom: .3em;
-}
-
-p {
- margin: .4em 0 .5em 0;
- line-height: 1.5em;
-}
-p img {
- margin: 0;
-}
-
-ul {
- line-height: 1.5em;
- list-style-type: square;
- margin: .3em 0 0 1.6em;
- padding: 0;
-}
-ol {
- line-height: 1.5em;
- margin: .3em 0 0 3.2em;
- padding: 0;
- list-style-image: none;
-}
-li {
- margin-bottom: .1em;
-}
-dt {
- font-weight: bold;
- margin-bottom: .1em;
-}
-dl {
- margin-top: .2em;
- margin-bottom: .5em;
-}
-dd {
- line-height: 1.5em;
- margin-left: 1.6em;
- margin-bottom: .1em;
-}
-
-q {
- font-family: Times, "Times New Roman", serif;
- font-style: italic;
-}
-/* Disabled for now
-blockquote {
- font-family: Times, "Times New Roman", serif;
- font-style: italic;
-}*/
-pre, code, tt, kbd, samp, .mw-code {
- /*
- * Some browsers will render the monospace text too small, namely Firefox, Chrome and Safari.
- * Specifying any valid, second value will trigger correct behavior without forcing a different font.
- */
- font-family: monospace, Courier;
-}
-code {
- background-color: #f9f9f9;
-}
-pre, .mw-code {
- padding: 1em;
- border: 1px solid #ddd;
- color: black;
- background-color: #f9f9f9;
-}
-
-/* Tables */
-table {
- font-size: 100%;
-}
-
-/* Forms */
-fieldset {
- border: 1px solid #2f6fab;
- margin: 1em 0 1em 0;
- padding: 0 1em 1em;
- line-height: 1.5em;
-}
-fieldset.nested {
- margin: 0 0 0.5em 0;
- padding: 0 0.5em 0.5em;
-}
-legend {
- padding: .5em;
- font-size: 95%;
-}
-form {
- border: none;
- margin: 0;
-}
-textarea {
- width: 100%;
- padding: .1em;
-}
-select {
- vertical-align: top;
-}
-
-/* Emulate Center */
-.center {
- width: 100%;
- text-align: center;
-}
-*.center * {
- margin-left: auto;
- margin-right: auto;
-}
-/* Small for tables and similar */
-.small {
- font-size: 94%;
-}
-table.small {
- font-size: 100%;
-}
-
diff --git a/skins/common/commonInterface.css b/skins/common/commonInterface.css
deleted file mode 100644
index af6665e4..00000000
--- a/skins/common/commonInterface.css
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * MediaWiki style sheet for common core styles on interfaces
- *
- * Styles for the Monobook/Vector pattern of laying out common interfaces.
- * These ids/classes are not built into the system,
- * they are outputted by the actual MonoBook/Vector code by convention.
- */
-
-/* Categories */
-.catlinks {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- padding: 5px;
- margin-top: 1em;
- clear: both;
-}
-
-/* User Message */
-.usermessage {
- background-color: #ffce7b;
- border: 1px solid #ffa500;
- color: black;
- font-weight: bold;
- margin: 2em 0 1em;
- padding: .5em 1em;
- vertical-align: middle;
-}
-
-/* Site Notice (includes notices from CentralNotice extension) */
-#siteNotice {
- position: relative;
- text-align: center;
- margin: 0;
-}
-#localNotice {
- margin-bottom: 0.9em;
-}
-
-/* First h1 */
-.firstHeading,
-#firstHeading {
- margin-bottom: .1em;
- /* These two rules hack around bug 2013 (fix for more limited bug 11325).
- * When bug 2013 is fixed properly, they should be removed. */
- line-height: 1.2em;
- padding-bottom: 0;
-}
-
-/* Sub-navigation */
-#siteSub {
- display: none;
-}
-#jump-to-nav {
- /* Negate #contentSub's margin and replicate it so that the jump to links don't affect the spacing */
- margin-top: -1.4em;
- margin-bottom: 1.4em
-}
-#contentSub, #contentSub2 {
- font-size: 84%;
- line-height: 1.2em;
- margin: 0 0 1.4em 1em;
- color: #7d7d7d;
- width: auto;
-}
-span.subpages {
- display: block;
-}
-
diff --git a/skins/common/commonPrint.css b/skins/common/commonPrint.css
deleted file mode 100644
index 58628772..00000000
--- a/skins/common/commonPrint.css
+++ /dev/null
@@ -1,390 +0,0 @@
-/**
- * MediaWiki Print style sheet for CSS2-capable browsers.
- * Copyright Gabriel Wicke, http://www.aulinx.de/
- *
- * Derived from the plone (http://plone.org/) styles
- * Copyright Alexander Limi
- */
-
-/* Thanks to A List Apart (http://alistapart.com/) for useful extras */
-a.stub,
-a.new {
- color: #ba0000;
- text-decoration: none;
-}
-
-#toc {
- border: 1px solid #aaaaaa;
- background-color: #f9f9f9;
- padding: 5px;
-}
-
-/* images */
-div.floatright {
- float: right;
- clear: right;
- position: relative;
- margin: 0.5em 0 0.8em 1.4em;
-}
-div.floatright p {
- font-style: italic;
-}
-div.floatleft {
- float: left;
- clear: left;
- position: relative;
- margin: 0.5em 1.4em 0.8em 0;
-}
-div.floatleft p {
- font-style: italic;
-}
-div.center {
- text-align: center;
-}
-
-/* thumbnails */
-div.thumb {
- border: none;
- width: auto;
- margin-top: 0.5em;
- margin-bottom: 0.8em;
- background-color: transparent;
-}
-div.thumbinner {
- border:1px solid #cccccc;
- padding: 3px !important;
- background-color: White;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-html .thumbimage {
- border: 1px solid #cccccc;
-}
-html .thumbcaption {
- border: none;
- text-align: left;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-
-div.magnify {
- display: none;
-}
-/* @noflip */
-div.tright {
- float: right;
- clear: right;
- margin: 0.5em 0 0.8em 1.4em;
-}
-/* @noflip */
-div.tleft {
- float: left;
- clear: left;
- margin: 0.5em 1.4em 0.8em 0;
-}
-img.thumbborder {
- border: 1px solid #dddddd;
-}
-
-/* table standards */
-table.rimage {
- float: right;
- width: 1pt;
- position: relative;
- margin-left: 1em;
- margin-bottom: 1em;
- text-align: center;
-}
-
-body {
- background: white;
- color: black;
- margin: 0;
- padding: 0;
-}
-
-.noprint,
-div#jump-to-nav,
-.mw-jump,
-div.top,
-div#column-one,
-#colophon,
-.mw-editsection,
-.toctoggle,
-.tochidden,
-div#f-poweredbyico,
-div#f-copyrightico,
-li#viewcount,
-li#about,
-li#disclaimer,
-li#mobileview,
-li#privacy,
-#footer-places,
-.mw-hidden-catlinks,
-tr.mw-metadata-show-hide-extended,
-span.mw-filepage-other-resolutions,
-#filetoc,
-.usermessage,
-.patrollink,
-#mw-navigation {
- /* Hides all the elements irrelevant for printing */
- display: none;
-}
-
-ul {
- list-style-type: square;
-}
-
-#content {
- background: none;
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
- direction: ltr;
-}
-#footer {
- background : white;
- color : black;
- margin-top: 1em;
- border-top: 1px solid #AAA;
- direction: ltr;
-}
-
-h1, h2, h3, h4, h5, h6 {
- font-weight: bold;
-}
-
-p {
- margin: 1em 0;
- line-height: 1.2em;
-}
-
-pre, .mw-code {
- border: 1pt dashed black;
- white-space: pre;
- font-size: 8pt;
- overflow: auto;
- padding: 1em 0;
- background: white;
- color: black;
-}
-
-table.listing,
-table.listing td {
- border: 1pt solid black;
- border-collapse: collapse;
-}
-
-a {
- color: black !important;
- background: none !important;
- padding: 0 !important;
-}
-
-a:link, a:visited {
- color: #520;
- background: transparent;
- text-decoration: underline;
-}
-
-#content a.external.text:after,
-#content a.external.autonumber:after {
- /* Expand URLs for printing */
- content: " (" attr(href) ")";
-}
-
-#globalWrapper {
- width: 100% !important;
- min-width: 0 !important;
-}
-
-#content {
- background: white;
- color: black;
-}
-
-#column-content {
- margin: 0 !important;
-}
-
-#column-content #content {
- padding: 1em;
- margin: 0 !important;
-}
-
-/* MSIE/Win doesn't understand 'inherit' */
-a,
-a.external,
-a.new,
-a.stub {
- color: black !important;
- text-decoration: none !important;
-}
-
-/* Continue ... */
-a,
-a.external,
-a.new,
-a.stub {
- color: inherit !important;
- text-decoration: inherit !important;
-}
-
-img {
- border: none;
- vertical-align: middle;
-}
-
-/* math */
-span.texhtml {
- font-family: serif;
-}
-
-#siteNotice {
- display: none;
-}
-
-/* Galleries (see shared.css for more info) */
-li.gallerybox {
- vertical-align: top;
- display: -moz-inline-box;
- display: inline-block;
-}
-
-ul.gallery, li.gallerybox {
- zoom: 1;
- *display: inline;
-}
-
-ul.gallery {
- margin: 2px;
- padding: 2px;
- display: block;
-}
-
-li.gallerycaption {
- font-weight: bold;
- text-align: center;
- display: block;
- word-wrap: break-word;
-}
-
-li.gallerybox div.thumb {
- text-align: center;
- border: 1px solid #ccc;
- margin: 2px;
-}
-
-div.gallerytext {
- overflow: hidden;
- font-size: 94%;
- padding: 2px 4px;
- word-wrap: break-word;
-}
-
-/**
- * Diff rendering
- */
-table.diff {
- background: white;
-}
-td.diff-otitle {
- background: #ffffff;
-}
-td.diff-ntitle {
- background: #ffffff;
-}
-td.diff-addedline {
- background: #ccffcc;
- font-size: smaller;
- border: solid 2px black;
-}
-td.diff-deletedline {
- background: #ffffaa;
- font-size: smaller;
- border: dotted 2px black;
-}
-td.diff-context {
- background: #eeeeee;
- font-size: smaller;
-}
-.diffchange {
- color: silver;
- font-weight: bold;
- text-decoration: underline;
-}
-
-/**
- * Table rendering
- * As on shared.css but with white background.
- */
-table.wikitable,
-table.mw_metadata {
- margin: 1em 0;
- border: 1px #aaa solid;
- background: white;
- border-collapse: collapse;
-}
-table.wikitable > tr > th, table.wikitable > tr > td,
-table.wikitable > * > tr > th, table.wikitable > * > tr > td,
-.mw_metadata th, .mw_metadata td {
- border: 1px #aaa solid;
- padding: 0.2em;
-}
-table.wikitable > tr > th,
-table.wikitable > * > tr > th,
-.mw_metadata th {
- text-align: center;
- background: white;
- font-weight: bold;
-}
-table.wikitable > caption,
-.mw_metadata caption {
- font-weight: bold;
-}
-
-a.sortheader {
- margin: 0 0.3em;
-}
-
-/* Some pagination options */
-.wikitable, .thumb, img {
- page-break-inside: avoid;
-}
-h2, h3, h4, h5, h6 {
- page-break-after: avoid;
-}
-p {
- widows: 3;
- orphans: 3;
-}
-
-/**
- * Categories
- */
-.catlinks ul {
- display: inline;
- margin: 0;
- padding: 0;
- list-style: none;
- list-style-type: none;
- list-style-image: none;
- vertical-align: middle !ie;
-}
-
-.catlinks li {
- display: inline-block;
- line-height: 1.15em;
- padding: 0 .4em;
- border-left: 1px solid #AAA;
- margin: 0.1em 0;
- zoom: 1;
- display: inline !ie;
-}
-
-.catlinks li:first-child {
- padding-left: .2em;
- border-left: none;
-}
diff --git a/skins/common/config-cc.css b/skins/common/config-cc.css
deleted file mode 100644
index d81218ec..00000000
--- a/skins/common/config-cc.css
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * Copy of CC standard stylesheet, plus tweaks for iframe usage
- */
-
-body {
- margin: 0;
- background: #eee;
- font-family: Verdana;
- color: #333;
-}
-
-#main {
- border: 1px solid #D0D0D0;
- background: #fff;
- margin: 0.5em;
-}
-
-/**
- * Looks like you have to specify the width of #menu
- * or IE5 Mac stretches it all the way across the div, and
- * Opera streches it half way.
- */
-
-#main #menu {
- border-left: 1px dotted #ccc;
- float: right;
- width: 230px;
- background: white;
- margin: 0 0 10px 10px;
-}
-
-td, h3, p, h1, pre {
- margin: 0 20px 20px 20px;
- font-size: 11px;
- line-height: 140%;
-}
-
-.header {
- padding-left: 10px;
- padding-top: 10px;
-}
-
-.nav {
- padding-left: 10px;
- padding-bottom: 10px;
- font-size: 11px;
- margin-bottom: 16px;
-}
-
-#menu p {
- font-size: 11px;
-}
-
-.dent {
- margin-left: 64px;
-}
-
diff --git a/skins/common/config.css b/skins/common/config.css
deleted file mode 100644
index 79780da9..00000000
--- a/skins/common/config.css
+++ /dev/null
@@ -1,148 +0,0 @@
-.env-check {
- font-size: 90%;
- margin: 1em 0 1em 2.5em;
-}
-
-.config-section {
- margin-top: 2em;
-}
-.config-block {
- margin-top: 2em;
- display: block;
-
-}
-.config-block-label {
- display: block;
- margin-bottom: .2em;
-}
-.config-block-label label, .config-label {
- font-weight: bold;
- padding-right: .5em;
- padding-top: .2em;
-}
-.config-block-elements {
- margin-left: 2em;
-}
-.config-block-elements li {
- list-style: none;
-}
-.config-input {
- clear: left;
- zoom: 100%; /* IE hack */
-}
-
-.config-page-wrapper {
- padding: 0.5em;
-}
-
-.config-page-list {
- float: right;
- width: 12em;
- border: 1px solid #aaa;
- background: #fff;
- padding: 0.5em;
- /* 3em left margin to leave space between the list and the page-content */
- margin: 0.5em 0.5em 0.5em 3.5em;
-}
-
-.config-page {
- padding: 0.5em 0.5em 0.5em 2em;
- margin: 0.5em 0.5em 0.5em 0.5em;
- background: #eee;
-}
-
-.config-submit {
- clear: left;
- text-align: center;
- padding: 1em;
-}
-
-.config-submit input {
- margin-left: 0.5em;
- margin-right: 0.5em;
-}
-
-.config-page-disabled {
- color: #aaa;
-}
-
-.config-error-box {
- border: 2px solid #f00;
-}
-
-.config-page-current {
- font-weight: bold;
-}
-
-.config-message {
- display: list-item;
- line-height: 1.5em;
- /* @embed */
- list-style-image: url(images/bullet.gif);
- list-style-type: square;
-}
-
-.config-input-text {
- width: 20em;
- margin-right: 1em;
-}
-
-.config-input-check {
- margin-left: 3.7em;
- margin-right: 2em;
- margin-bottom: 0.25em;
-}
-
-.config-input-check input {
- margin-left: -1em;
-}
-
-.error {
- color: red;
- background-color: #fff;
- font-weight: bold;
- left: 1em;
- font-size: 100%;
-}
-
-.config-settings-block {
- list-style-type: none;
- list-style-image: none;
- margin: 0;
- padding: 0;
-}
-
-.btn-install {
- font-weight: bold;
- font-size: 110%;
- padding: .2em .3em;
-}
-
-.success-message {
- font-weight: bold;
- font-size: 110%;
- color: green;
-}
-.success-box {
- font-size: 130%;
-}
-
-.config-cc-wrapper {
- clear: left;
- /* If you change this height, also change it in WebInstaller_Options::submitCC() */
- height: 54em;
-}
-
-.config-plainlink a {
- background: none !important;
- padding: 0 !important;
-}
-
-.config-download-link {
- font-size: 1.8em;
- margin-left: 2em;
-}
-
-#config-live-log {
- margin-right: 18em;
-}
diff --git a/skins/common/config.js b/skins/common/config.js
deleted file mode 100644
index fb8edc1f..00000000
--- a/skins/common/config.js
+++ /dev/null
@@ -1,108 +0,0 @@
-( function ( $ ) {
- $( function () {
- var $label, labelText;
-
- function syncText() {
- var value = $(this).val()
- .replace( /[\[\]\{\}|#<>%+? ]/g, '_' )
- .replace( /&/, '&amp;' )
- .replace( /__+/g, '_' )
- .replace( /^_+/, '' )
- .replace( /_+$/, '' );
- value = value.substr( 0, 1 ).toUpperCase() + value.substr( 1 );
- $label.text( labelText.replace( '$1', value ) );
- }
-
- // Set up the help system
- $( '.mw-help-field-data' )
- .hide()
- .closest( '.mw-help-field-container' )
- .find( '.mw-help-field-hint' )
- .show()
- .click( function () {
- $(this)
- .closest( '.mw-help-field-container' )
- .find( '.mw-help-field-data' )
- .slideToggle( 'fast' );
- } );
-
- // Show/hide code for DB-specific options
- // FIXME: Do we want slow, fast, or even non-animated (instantaneous) showing/hiding here?
- $( '.dbRadio' ).each( function () {
- $( document.getElementById( $(this).attr( 'rel' ) ) ).hide();
- } );
- $( document.getElementById( $( '.dbRadio:checked' ).attr( 'rel' ) ) ).show();
- $( '.dbRadio' ).click( function () {
- var $checked = $( '.dbRadio:checked' ),
- $wrapper = $( document.getElementById( $checked.attr( 'rel' ) ) );
- if ( $wrapper.is( ':hidden' ) ) {
- $( '.dbWrapper' ).hide( 'slow' );
- $wrapper.show( 'slow' );
- }
- } );
-
- // Scroll to the bottom of upgrade log
- $( '#config-live-log' ).children( 'textarea' ).each( function () {
- this.scrollTop = this.scrollHeight;
- } );
-
- // Show/hide Creative Commons thingy
- $( '.licenseRadio' ).click( function () {
- var $wrapper = $( '#config-cc-wrapper' );
- if ( $( '#config__LicenseCode_cc-choose' ).is( ':checked' ) ) {
- $wrapper.show( 'slow' );
- } else {
- $wrapper.hide( 'slow' );
- }
- } );
-
- // Show/hide random stuff (email, upload)
- $( '.showHideRadio' ).click( function () {
- var $wrapper = $( '#' + $(this).attr( 'rel' ) );
- if ( $(this).is( ':checked' ) ) {
- $wrapper.show( 'slow' );
- } else {
- $wrapper.hide( 'slow' );
- }
- } );
- $( '.hideShowRadio' ).click( function () {
- var $wrapper = $( '#' + $(this).attr( 'rel' ) );
- if ( $(this).is( ':checked' ) ) {
- $wrapper.hide( 'slow' );
- } else {
- $wrapper.show( 'slow' );
- }
- } );
-
- // Hide "other" textboxes by default
- // Should not be done in CSS for javascript disabled compatibility
- $( '.enabledByOther' ).closest( '.config-block' ).hide();
-
- // Enable/disable "other" textboxes
- $( '.enableForOther' ).click( function () {
- var $textbox = $( document.getElementById( $(this).attr( 'rel' ) ) );
- // FIXME: Ugh, this is ugly
- if ( $(this).val() === 'other' ) {
- $textbox.removeProp( 'readonly' ).closest( '.config-block' ).slideDown( 'fast' );
- } else {
- $textbox.prop( 'readonly', true ).closest( '.config-block' ).slideUp( 'fast' );
- }
- } );
-
- // Synchronize radio button label for sitename with textbox
- $label = $( 'label[for=config__NamespaceType_site-name]' );
- labelText = $label.text();
- $label.text( labelText.replace( '$1', '' ) );
- $( '#config_wgSitename' ).on( 'keyup change', syncText ).each( syncText );
-
- // Show/Hide memcached servers when needed
- $( 'input[name$="config_wgMainCacheType"]' ).change( function () {
- var $memc = $( '#config-memcachewrapper' );
- if( $( 'input[name$="config_wgMainCacheType"]:checked' ).val() === 'memcached' ) {
- $memc.show( 'slow' );
- } else {
- $memc.hide( 'slow' );
- }
- } );
- } );
-}( jQuery ) );
diff --git a/skins/common/feed.css b/skins/common/feed.css
deleted file mode 100644
index 94396639..00000000
--- a/skins/common/feed.css
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-Make RSS and Atom feeds at least semi-legible to folk who accidentally
-load them in a browser...
-
-Compatibility:
-* Mozilla is fine.
-* Safari 1.2: the RSS <link> text isn't shown
-* Opera 7.5 uses the style sheet instead of its native RSS mode.
-* IE/Mac 5.2: none of the :before content works; doesn't get the charset right and displays garbage for non-ASCII.
-* IE/Win 6.0: No background color, borders, font size, font weight, or :before content.
-
-*/
-
-/* RSS: */ rss, channel, title, link, description, language, generator, lastBuildDate, item, pubDate, author, comments, creator,
-/* Atom: */ feed, id, modified, tagline, entry, issued, created, updated, summary, comment {
- display: block;
-}
-
-rss, feed {
- background: white;
- color: black;
- margin: 1em;
- font-family: "Verdana", "Tahoma", "Arial", "Helvetica", sans-serif;
- line-height: 1.5em;
- font-size: 76%;
-}
-
-rss:before {
- content: "This RSS feed is meant to be read in a syndicated news reader, and isn't ideal for a web browser.";
-}
-
-feed:before {
- content: "This Atom feed is meant to be read in a syndicated news reader, and isn't ideal for a web browser.";
-}
-rss:before, feed:before {
- color: red;
- text-align: center;
- line-height: 2em;
-}
-
-channel>title,
-item>title,
-feed>title,
-entry>title {
- font-weight: bold;
- border-bottom: solid 1px #aaa;
- margin-left: -0.5em;
-}
-channel>title, feed>title {
- font-size: larger;
-}
-item>title, entry>title {
- font-size: large;
-}
-item, entry {
- margin-top: 1em;
- margin-left: 2em;
-}
-
-item>description, entry>summary {
- white-space: pre;
- overflow: auto;
- background: #f8f8ff;
-}
-
-pubDate:before { content: "Date: " }
-link:before { content: "Link: " }
-author:before, creator:before { content: "Author: " }
-description:before { content: "Description: " }
-id:before { content: "Id: " }
-
-generator:before { content: "Generator: " }
-language:before { content: "Language: " }
-lastBuildDate:before { content: "Updated: " }
-comments:before { content: "Comments page: " }
-
-tagline:before { content: "Tagline: " }
-issued:before { content: "Issued: " }
-created:before { content: "Created: " }
-modified:before { content: "Modified: " }
-updated:before { content: "Updated: " }
-summary:before { content: "Summary: " }
-comment:before { content: "Comment: " }
-
-pubDate:before, link:before, author:before, description:before,
-language:before, generator:before, lastBuildDate:before, comments:before,
-tagline:before, issued:before, created:before, modified:before,
-summary:before, comment:before, creator:before, id:before, updated:before {
- color: #224;
- font-weight: bold;
-}
-
-feed link:after {
- content: attr(href);
-}
diff --git a/skins/common/images/Arr_.png b/skins/common/images/Arr_.png
deleted file mode 100644
index bc67a4b6..00000000
--- a/skins/common/images/Arr_.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/Arr_d.png b/skins/common/images/Arr_d.png
deleted file mode 100644
index 58a9fc66..00000000
--- a/skins/common/images/Arr_d.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/Arr_l.png b/skins/common/images/Arr_l.png
deleted file mode 100644
index 2246254f..00000000
--- a/skins/common/images/Arr_l.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/Arr_r.png b/skins/common/images/Arr_r.png
deleted file mode 100644
index 467a555a..00000000
--- a/skins/common/images/Arr_r.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/Arr_u.png b/skins/common/images/Arr_u.png
deleted file mode 100644
index 1aa543af..00000000
--- a/skins/common/images/Arr_u.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/Checker-16x16.png b/skins/common/images/Checker-16x16.png
deleted file mode 100644
index 3e9e3d09..00000000
--- a/skins/common/images/Checker-16x16.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/Zoom_sans.gif b/skins/common/images/Zoom_sans.gif
deleted file mode 100644
index 56a49de8..00000000
--- a/skins/common/images/Zoom_sans.gif
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/add.png b/skins/common/images/add.png
deleted file mode 100644
index 3497423c..00000000
--- a/skins/common/images/add.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/ajax-loader.gif b/skins/common/images/ajax-loader.gif
deleted file mode 100644
index 72203fdd..00000000
--- a/skins/common/images/ajax-loader.gif
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/ar/button_bold.png b/skins/common/images/ar/button_bold.png
deleted file mode 100644
index e524f6cb..00000000
--- a/skins/common/images/ar/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/ar/button_headline.png b/skins/common/images/ar/button_headline.png
deleted file mode 100644
index 398e5614..00000000
--- a/skins/common/images/ar/button_headline.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/ar/button_italic.png b/skins/common/images/ar/button_italic.png
deleted file mode 100644
index 6ec73e9e..00000000
--- a/skins/common/images/ar/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/ar/button_link.png b/skins/common/images/ar/button_link.png
deleted file mode 100644
index c9c63f6c..00000000
--- a/skins/common/images/ar/button_link.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/ar/button_nowiki.png b/skins/common/images/ar/button_nowiki.png
deleted file mode 100644
index 743ea61b..00000000
--- a/skins/common/images/ar/button_nowiki.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/arrow_disabled_first_25.png b/skins/common/images/arrow_disabled_first_25.png
deleted file mode 100644
index 78a493e6..00000000
--- a/skins/common/images/arrow_disabled_first_25.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/arrow_disabled_last_25.png b/skins/common/images/arrow_disabled_last_25.png
deleted file mode 100644
index 2a64fd03..00000000
--- a/skins/common/images/arrow_disabled_last_25.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/arrow_disabled_left_25.png b/skins/common/images/arrow_disabled_left_25.png
deleted file mode 100644
index 83df0684..00000000
--- a/skins/common/images/arrow_disabled_left_25.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/arrow_disabled_right_25.png b/skins/common/images/arrow_disabled_right_25.png
deleted file mode 100644
index aa4fbf8c..00000000
--- a/skins/common/images/arrow_disabled_right_25.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/arrow_first_25.png b/skins/common/images/arrow_first_25.png
deleted file mode 100644
index 52b32a5a..00000000
--- a/skins/common/images/arrow_first_25.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/arrow_last_25.png b/skins/common/images/arrow_last_25.png
deleted file mode 100644
index caf50331..00000000
--- a/skins/common/images/arrow_last_25.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/arrow_left_25.png b/skins/common/images/arrow_left_25.png
deleted file mode 100644
index f363bf66..00000000
--- a/skins/common/images/arrow_left_25.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/arrow_right_25.png b/skins/common/images/arrow_right_25.png
deleted file mode 100644
index 3f8fee38..00000000
--- a/skins/common/images/arrow_right_25.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/be-tarask/button_bold.png b/skins/common/images/be-tarask/button_bold.png
deleted file mode 100644
index 5c10cfe2..00000000
--- a/skins/common/images/be-tarask/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/be-tarask/button_italic.png b/skins/common/images/be-tarask/button_italic.png
deleted file mode 100644
index 72209d74..00000000
--- a/skins/common/images/be-tarask/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/be-tarask/button_link.png b/skins/common/images/be-tarask/button_link.png
deleted file mode 100644
index 09c86fb1..00000000
--- a/skins/common/images/be-tarask/button_link.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_bold.png b/skins/common/images/button_bold.png
deleted file mode 100644
index 75c3f109..00000000
--- a/skins/common/images/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_extlink.png b/skins/common/images/button_extlink.png
deleted file mode 100644
index 458943c1..00000000
--- a/skins/common/images/button_extlink.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_headline.png b/skins/common/images/button_headline.png
deleted file mode 100644
index 9cf751d9..00000000
--- a/skins/common/images/button_headline.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_hr.png b/skins/common/images/button_hr.png
deleted file mode 100644
index 47e1ca40..00000000
--- a/skins/common/images/button_hr.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_image.png b/skins/common/images/button_image.png
deleted file mode 100644
index 69192965..00000000
--- a/skins/common/images/button_image.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_italic.png b/skins/common/images/button_italic.png
deleted file mode 100644
index 527fbd14..00000000
--- a/skins/common/images/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_link.png b/skins/common/images/button_link.png
deleted file mode 100644
index eb5634b9..00000000
--- a/skins/common/images/button_link.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_math.png b/skins/common/images/button_math.png
deleted file mode 100644
index 507e4b51..00000000
--- a/skins/common/images/button_math.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_media.png b/skins/common/images/button_media.png
deleted file mode 100644
index 4194ec18..00000000
--- a/skins/common/images/button_media.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_nowiki.png b/skins/common/images/button_nowiki.png
deleted file mode 100644
index 2ba818de..00000000
--- a/skins/common/images/button_nowiki.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_sig.png b/skins/common/images/button_sig.png
deleted file mode 100644
index fe34b3fb..00000000
--- a/skins/common/images/button_sig.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/button_template.png b/skins/common/images/button_template.png
deleted file mode 100644
index 94d9d0b9..00000000
--- a/skins/common/images/button_template.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/cc-0.png b/skins/common/images/cc-0.png
deleted file mode 100644
index 9d3fe5f8..00000000
--- a/skins/common/images/cc-0.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/cc-by-nc-sa.png b/skins/common/images/cc-by-nc-sa.png
deleted file mode 100644
index 0d24a713..00000000
--- a/skins/common/images/cc-by-nc-sa.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/cc-by-sa.png b/skins/common/images/cc-by-sa.png
deleted file mode 100644
index 518fb647..00000000
--- a/skins/common/images/cc-by-sa.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/cc-by.png b/skins/common/images/cc-by.png
deleted file mode 100644
index 9cca2f92..00000000
--- a/skins/common/images/cc-by.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/closewindow.png b/skins/common/images/closewindow.png
deleted file mode 100644
index 990702e2..00000000
--- a/skins/common/images/closewindow.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/closewindow19x19.png b/skins/common/images/closewindow19x19.png
deleted file mode 100644
index c96d9ffb..00000000
--- a/skins/common/images/closewindow19x19.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/critical-32.png b/skins/common/images/critical-32.png
deleted file mode 100644
index 9b38e6a2..00000000
--- a/skins/common/images/critical-32.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/cyrl/LICENSE b/skins/common/images/cyrl/LICENSE
deleted file mode 100644
index bedcec66..00000000
--- a/skins/common/images/cyrl/LICENSE
+++ /dev/null
@@ -1,17 +0,0 @@
-button_bold.png
----------------
-Source : http://commons.wikimedia.org/wiki/Image:Button_bold_ukr.png
-License: Public domain
-Author : Alexey Belomoev
-
-button_italic.png
-------------------------
-Source : http://commons.wikimedia.org/wiki/Image:Button_italic_ukr.png
-License: Public domain
-Author : Alexey Belomoev
-
-button_link.png
------------------
-Source : http://commons.wikimedia.org/wiki/Image:Button_internal_link_ukr.png
-License: GPL
-Author : Saproj, Erik Möller
diff --git a/skins/common/images/cyrl/button_bold.png b/skins/common/images/cyrl/button_bold.png
deleted file mode 100644
index eae30d98..00000000
--- a/skins/common/images/cyrl/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/cyrl/button_italic.png b/skins/common/images/cyrl/button_italic.png
deleted file mode 100644
index b958d220..00000000
--- a/skins/common/images/cyrl/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/cyrl/button_link.png b/skins/common/images/cyrl/button_link.png
deleted file mode 100644
index 12ad3731..00000000
--- a/skins/common/images/cyrl/button_link.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/de/button_bold.png b/skins/common/images/de/button_bold.png
deleted file mode 100644
index 367d5bc1..00000000
--- a/skins/common/images/de/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/de/button_italic.png b/skins/common/images/de/button_italic.png
deleted file mode 100644
index fdd8c9f9..00000000
--- a/skins/common/images/de/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/diffunderline.gif b/skins/common/images/diffunderline.gif
deleted file mode 100644
index e062c560..00000000
--- a/skins/common/images/diffunderline.gif
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/download-32.png b/skins/common/images/download-32.png
deleted file mode 100644
index e5b8318e..00000000
--- a/skins/common/images/download-32.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/fa/button_bold.png b/skins/common/images/fa/button_bold.png
deleted file mode 100644
index c54d094c..00000000
--- a/skins/common/images/fa/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/fa/button_headline.png b/skins/common/images/fa/button_headline.png
deleted file mode 100644
index 9890d155..00000000
--- a/skins/common/images/fa/button_headline.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/fa/button_italic.png b/skins/common/images/fa/button_italic.png
deleted file mode 100644
index 33f91ed6..00000000
--- a/skins/common/images/fa/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/fa/button_link.png b/skins/common/images/fa/button_link.png
deleted file mode 100644
index 76b939e6..00000000
--- a/skins/common/images/fa/button_link.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/fa/button_nowiki.png b/skins/common/images/fa/button_nowiki.png
deleted file mode 100644
index 743ea61b..00000000
--- a/skins/common/images/fa/button_nowiki.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/feed-icon.png b/skins/common/images/feed-icon.png
deleted file mode 100644
index 00f49f6c..00000000
--- a/skins/common/images/feed-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/gnu-fdl.png b/skins/common/images/gnu-fdl.png
deleted file mode 100644
index 3feaf57f..00000000
--- a/skins/common/images/gnu-fdl.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/help-question-hover.gif b/skins/common/images/help-question-hover.gif
deleted file mode 100644
index 515138db..00000000
--- a/skins/common/images/help-question-hover.gif
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/help-question.gif b/skins/common/images/help-question.gif
deleted file mode 100644
index b4fc9c5b..00000000
--- a/skins/common/images/help-question.gif
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/COPYING b/skins/common/images/icons/COPYING
deleted file mode 100644
index 136530a9..00000000
--- a/skins/common/images/icons/COPYING
+++ /dev/null
@@ -1,43 +0,0 @@
-The icons used here are derived from the crystalsvg icons in the the
-pics/crystalsvg/ directory of kdelibs-3.4.0 they were modified on 2005-05-15
-by Ævar Arnfjörð Bjarmason for use in MediaWiki.
-
-What follows is the contents of the LICENSE.crystalsvg file found in the pics/
-subdirectory of kdelibs-3.4.0:
-
-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-This copyright and license notice covers all CrystalSVG images.
-Note the license notice contains an add-on.
-********************************************************************************
-KDE Crystal theme icons.
-Copyright (C) 2002 and following years KDE Artists
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation,
-version 2.1 of the License.
-This library 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
-Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
- **** NOTE THIS ADD-ON ****
-The GNU Lesser General Public License or LGPL is written for software libraries
-in the first place. We expressly want the LGPL to be valid for this artwork
-library too.
-KDE Crystal theme icons is a special kind of software library, it is an
-artwork library, it's elements can be used in a Graphical User Interface, or
-GUI.
-Source code, for this library means:
- - for vectors svg;
- - for pixels, if applicable, the multi-layered formats xcf or psd, or
-otherwise png.
-The LGPL in some sections obliges you to make the files carry
-notices. With images this is in some cases impossible or hardly useful.
-With this library a notice is placed at a prominent place in the directory
-containing the elements. You may follow this practice.
-The exception in section 6 of the GNU Lesser General Public License covers
-the use of elements of this art library in a GUI.
-kde-artists [at] kde.org
-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/skins/common/images/icons/fileicon-c.png b/skins/common/images/icons/fileicon-c.png
deleted file mode 100644
index 0d603b70..00000000
--- a/skins/common/images/icons/fileicon-c.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-cpp.png b/skins/common/images/icons/fileicon-cpp.png
deleted file mode 100644
index 123688f0..00000000
--- a/skins/common/images/icons/fileicon-cpp.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-deb.png b/skins/common/images/icons/fileicon-deb.png
deleted file mode 100644
index 87ca3fab..00000000
--- a/skins/common/images/icons/fileicon-deb.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-djvu.png b/skins/common/images/icons/fileicon-djvu.png
deleted file mode 100644
index 1da22761..00000000
--- a/skins/common/images/icons/fileicon-djvu.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-dvi.png b/skins/common/images/icons/fileicon-dvi.png
deleted file mode 100644
index f37878d8..00000000
--- a/skins/common/images/icons/fileicon-dvi.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-exe.png b/skins/common/images/icons/fileicon-exe.png
deleted file mode 100644
index dc020eb8..00000000
--- a/skins/common/images/icons/fileicon-exe.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-h.png b/skins/common/images/icons/fileicon-h.png
deleted file mode 100644
index 339bf025..00000000
--- a/skins/common/images/icons/fileicon-h.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-html.png b/skins/common/images/icons/fileicon-html.png
deleted file mode 100644
index f28f8a26..00000000
--- a/skins/common/images/icons/fileicon-html.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-iso.png b/skins/common/images/icons/fileicon-iso.png
deleted file mode 100644
index c73d2294..00000000
--- a/skins/common/images/icons/fileicon-iso.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-java.png b/skins/common/images/icons/fileicon-java.png
deleted file mode 100644
index a1b4f225..00000000
--- a/skins/common/images/icons/fileicon-java.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-mid.png b/skins/common/images/icons/fileicon-mid.png
deleted file mode 100644
index ce2bebb2..00000000
--- a/skins/common/images/icons/fileicon-mid.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-mov.png b/skins/common/images/icons/fileicon-mov.png
deleted file mode 100644
index 952de1f2..00000000
--- a/skins/common/images/icons/fileicon-mov.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-o.png b/skins/common/images/icons/fileicon-o.png
deleted file mode 100644
index f3523d96..00000000
--- a/skins/common/images/icons/fileicon-o.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-ogg.png b/skins/common/images/icons/fileicon-ogg.png
deleted file mode 100644
index ef4d8016..00000000
--- a/skins/common/images/icons/fileicon-ogg.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-pdf.png b/skins/common/images/icons/fileicon-pdf.png
deleted file mode 100644
index 8c8da92b..00000000
--- a/skins/common/images/icons/fileicon-pdf.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-ps.png b/skins/common/images/icons/fileicon-ps.png
deleted file mode 100644
index e8728331..00000000
--- a/skins/common/images/icons/fileicon-ps.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-psd.png b/skins/common/images/icons/fileicon-psd.png
deleted file mode 100644
index 598f190e..00000000
--- a/skins/common/images/icons/fileicon-psd.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-rm.png b/skins/common/images/icons/fileicon-rm.png
deleted file mode 100644
index 81dbe0b7..00000000
--- a/skins/common/images/icons/fileicon-rm.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-rpm.png b/skins/common/images/icons/fileicon-rpm.png
deleted file mode 100644
index 1903aacc..00000000
--- a/skins/common/images/icons/fileicon-rpm.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-svg.png b/skins/common/images/icons/fileicon-svg.png
deleted file mode 100644
index b782113a..00000000
--- a/skins/common/images/icons/fileicon-svg.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-tar.png b/skins/common/images/icons/fileicon-tar.png
deleted file mode 100644
index e5fd1b74..00000000
--- a/skins/common/images/icons/fileicon-tar.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-tex.png b/skins/common/images/icons/fileicon-tex.png
deleted file mode 100644
index a4372841..00000000
--- a/skins/common/images/icons/fileicon-tex.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-ttf.png b/skins/common/images/icons/fileicon-ttf.png
deleted file mode 100644
index 1ed4e740..00000000
--- a/skins/common/images/icons/fileicon-ttf.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon-txt.png b/skins/common/images/icons/fileicon-txt.png
deleted file mode 100644
index 9e988e71..00000000
--- a/skins/common/images/icons/fileicon-txt.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/icons/fileicon.png b/skins/common/images/icons/fileicon.png
deleted file mode 100644
index 59696a38..00000000
--- a/skins/common/images/icons/fileicon.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/info-32.png b/skins/common/images/info-32.png
deleted file mode 100644
index ab09e1d5..00000000
--- a/skins/common/images/info-32.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/ksh/LICENSE b/skins/common/images/ksh/LICENSE
deleted file mode 100644
index ba56f97f..00000000
--- a/skins/common/images/ksh/LICENSE
+++ /dev/null
@@ -1,7 +0,0 @@
-
-button_S_italic.png
--------------------
-Source : http://commons.wikimedia.org/wiki/Image:Button_S_italic.png
-License: Public domain
-Author : Purodha Blissenbach, http://ksh.wikipedia.org/wiki/User:Purodha
-
diff --git a/skins/common/images/ksh/button_S_italic.png b/skins/common/images/ksh/button_S_italic.png
deleted file mode 100644
index 15496c08..00000000
--- a/skins/common/images/ksh/button_S_italic.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/magnify-clip-rtl.png b/skins/common/images/magnify-clip-rtl.png
deleted file mode 100644
index ff85c077..00000000
--- a/skins/common/images/magnify-clip-rtl.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/mediawiki.png b/skins/common/images/mediawiki.png
deleted file mode 100644
index 8c421183..00000000
--- a/skins/common/images/mediawiki.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/nextredirectltr.png b/skins/common/images/nextredirectltr.png
deleted file mode 100644
index cd657c33..00000000
--- a/skins/common/images/nextredirectltr.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/nextredirectrtl.png b/skins/common/images/nextredirectrtl.png
deleted file mode 100644
index b788f334..00000000
--- a/skins/common/images/nextredirectrtl.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/poweredby_mediawiki_88x31.png b/skins/common/images/poweredby_mediawiki_88x31.png
deleted file mode 100644
index 30e1d2ea..00000000
--- a/skins/common/images/poweredby_mediawiki_88x31.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/public-domain.png b/skins/common/images/public-domain.png
deleted file mode 100644
index ebf01072..00000000
--- a/skins/common/images/public-domain.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/question-small.png b/skins/common/images/question-small.png
deleted file mode 100644
index f7405d26..00000000
--- a/skins/common/images/question-small.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/question.svg b/skins/common/images/question.svg
deleted file mode 100644
index 27973053..00000000
--- a/skins/common/images/question.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="21.059px" height="21.06px" viewBox="0 0 21.059 21.06" enable-background="new 0 0 21.059 21.06" xml:space="preserve">
-<path fill="#575757" d="M10.529,0C4.715,0,0,4.714,0,10.529s4.715,10.53,10.529,10.53c5.816,0,10.529-4.715,10.529-10.53
- S16.346,0,10.529,0z M10.527,16.767c-0.861,0-1.498-0.688-1.498-1.516c0-0.862,0.637-1.534,1.498-1.534c0.828,0,1.5,0.672,1.5,1.534
- C12.027,16.078,11.355,16.767,10.527,16.767z M12.664,10.255c-0.723,0.568-1,0.931-1,1.739v0.5H9.459v-0.603
- c0-1.517,0.449-2.136,1.154-2.688c0.707-0.552,1.139-0.845,1.139-1.637c0-0.672-0.414-1.051-1.24-1.051
- c-0.707,0-1.328,0.189-1.982,0.638L7.479,5.346c0.861-0.604,1.93-1.034,3.342-1.034c1.912,0,3.516,1.051,3.516,3.066
- C14.336,8.808,13.543,9.566,12.664,10.255z"/>
-</svg>
diff --git a/skins/common/images/redirectltr.png b/skins/common/images/redirectltr.png
deleted file mode 100644
index 695f2a13..00000000
--- a/skins/common/images/redirectltr.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/redirectrtl.png b/skins/common/images/redirectrtl.png
deleted file mode 100644
index c954a2ad..00000000
--- a/skins/common/images/redirectrtl.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/remove.png b/skins/common/images/remove.png
deleted file mode 100644
index cd03d6da..00000000
--- a/skins/common/images/remove.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/spinner.gif b/skins/common/images/spinner.gif
deleted file mode 100644
index 6146be4e..00000000
--- a/skins/common/images/spinner.gif
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/tick-32.png b/skins/common/images/tick-32.png
deleted file mode 100644
index 34cfa9ce..00000000
--- a/skins/common/images/tick-32.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/tipsy-arrow.gif b/skins/common/images/tipsy-arrow.gif
deleted file mode 100644
index 9f1a15b6..00000000
--- a/skins/common/images/tipsy-arrow.gif
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/tooltip_icon.png b/skins/common/images/tooltip_icon.png
deleted file mode 100644
index ba5718ab..00000000
--- a/skins/common/images/tooltip_icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/warning-32.png b/skins/common/images/warning-32.png
deleted file mode 100644
index 0400734c..00000000
--- a/skins/common/images/warning-32.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/images/wiki.png b/skins/common/images/wiki.png
deleted file mode 100644
index 48595b00..00000000
--- a/skins/common/images/wiki.png
+++ /dev/null
Binary files differ
diff --git a/skins/common/oldshared.css b/skins/common/oldshared.css
deleted file mode 100644
index eea8b8ee..00000000
--- a/skins/common/oldshared.css
+++ /dev/null
@@ -1,469 +0,0 @@
-/**
- * oldshared.css
- * This file contains CSS settings common to Wikistandard, Nostalgia and
- * CologneBlue, the old pre-Monobook skins
- */
-
-/* For clarity, explicitly state some recommendations from
- * http://www.w3.org/TR/CSS21/sample.html to make sure the editsection links scale right
- */
-
-h1 { font-size: 2em; }
-h2 { font-size: 1.5em; }
-h3 { font-size: 1.17em; }
-h4 { font-size: 1.11em; }
-h5 { font-size: 1.05em; }
-h6 { font-size: 1em; }
-h1, h2, h3, h4, h5, h6 {
- font-weight: bolder;
-}
-
-/* Now the custom parts */
-
-#footer { clear: both }
-/* images */
-/* @noflip */
-div.floatright {
- float: right;
- clear: right;
- margin: 0 0 1em 1em;
-}
-
-/* @noflip */
-div.floatright p {
- font-style: italic;
-}
-
-/* @noflip */
-div.floatleft {
- float: left;
- clear: left;
- margin: 0.3em 0.5em 0.5em 0;
-}
-
-/* @noflip */
-div.floatleft p {
- font-style: italic;
-}
-
-/* table standards */
-table.rimage {
- float: right;
- margin-left: 1em;
- margin-bottom: 1em;
- text-align: center;
- font-size: smaller;
-}
-
-/* thumbnails */
-div.thumb {
- margin-bottom: .5em;
- border-style: solid;
- border-color: white;
- width: auto;
-}
-div.thumbinner {
- border: 1px solid #ccc;
- padding: 3px !important;
- background-color: #f9f9f9;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-html .thumbimage {
- border: 1px solid #ccc;
-}
-html .thumbcaption {
- border: none;
- text-align: left;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-div.magnify {
- float: right;
- border: none !important;
- background: none !important;
- margin-left: 3px;
-}
-div.magnify a,
-div.magnify img {
- display: block;
- border: none !important;
- background: none !important;
-}
-/* @noflip */
-div.tright {
- clear: right;
- float: right;
- border-width: .5em 0 .8em 1.4em;
-}
-/* @noflip */
-div.tleft {
- float: left;
- clear: left;
- margin-right: .5em;
- border-width: .5em 1.4em .8em 0;
-}
-img.thumbborder {
- border: 1px solid #dddddd;
-}
-
-/* Page history styling */
-/* the auto-generated edit comments */
-.autocomment { color: #4b4b4b; }
-
-img { border: none; }
-
-#toc,
-.toc {
- border: 1px solid #bba;
- background-color: #f7f8ff;
- padding: 5px;
- font-size: 95%;
- text-align: center;
- display: -moz-inline-block;
- display: inline-block;
- display: table;
-
- /* IE7 and earlier */
- zoom: 1;
- *display: inline;
-
- padding: 7px;
-}
-/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
-table#toc,
-table.toc {
- border-collapse: collapse;
-}
-/* Remove additional paddings inside table-cells that are not present in <div>s */
-table#toc td,
-table.toc td {
- padding: 0;
-}
-#toc h2,
-.toc h2 {
- display: inline;
- border: none;
- padding: 0;
- font-size: 100%;
- font-weight: bold;
-}
-#toc ul,
-.toc ul {
- list-style-type: none;
- list-style-image: none;
- padding: 0;
- text-align: left;
-}
-#toc ul ul,
-.toc ul ul {
- margin: 0 0 0 2em;
-}
-#toc .toctoggle,
-.toc .toctoggle {
- font-size: 94%;
-}
-
-.error {
- color: red;
- font-size: larger;
-}
-
-/* preference page with js-genrated toc */
-#preftoc {
- float: left;
- margin: 1em 1em 1em 1em;
- width: 13em;
-}
-#preftoc li {
- border: 1px solid White;
-}
-#preftoc li.selected {
- background-color:#f9f9f9;
- border:1px dashed #aaaaaa;
-}
-#preftoc a,
-#preftoc a:active {
- display: block;
- color: #005189;
-}
-.mw-prefs-buttons {
- clear: left;
- float: left;
- margin-top: 1em;
-}
-div.htmlform-tip {
- font-size: 94%;
- margin-top: 0.4em;
- color: #666;
-}
-fieldset.prefsection {
- margin-top: 1em;
-}
-fieldset.operaprefsection {
- margin-left: 15em;
-}
-
-/* emulate center */
-.center {
- width: 100%;
- text-align: center;
-}
-*.center * {
- margin-left: auto;
- margin-right: auto;
-}
-
-/* small for tables and similar */
-.small {
- font-size: 94%;
-}
-table.small {
- font-size: 100%;
-}
-
-/* use this instead of #toc for page content */
-.toccolours {
- border: 1px solid #aaaaaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
-}
-#siteNotice {
- border: 1px solid #aaaaaa;
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-.redirectText {
- font-size: 150%;
- margin: 5px;
-}
-.sharedUploadNotice {
- font-style: italic;
-}
-span.unpatrolled {
- font-weight: bold;
- color: red;
-}
-
-span.updatedmarker {
- color: black;
- background-color: #00FF00;
-}
-
-div.gallerybox {
- width: 150px;
-}
-
-span.comment {
- font-style: italic;
-}
-
-span.changedby {
- font-size: 95%;
-}
-
-.previewnote {
- text-align: center;
- color: #cc0000;
-}
-.editExternally {
- border-style: solid;
- border-width: 1px;
- border-color: gray;
- background: #ffffff;
- padding: 3px;
- margin-top: 0.5em;
- float: left;
- font-size: small;
- text-align: center;
-}
-.editExternallyHelp {
- font-style: italic;
- color: gray;
-}
-
-li span.deleted {
- text-decoration: line-through;
- color: #888;
- font-style: italic;
-}
-
-/* Classes for Exif data display */
-table.mw_metadata {
- margin-left: 0.5em;
-}
-
-table.mw_metadata caption {
- font-weight: bold;
-}
-table.mw_metadata th {
- font-weight: normal;
-}
-table.mw_metadata td {
- padding: 0.1em;
-}
-
-table.mw_metadata {
- border: none;
- border-collapse: collapse;
-}
-table.mw_metadata td,
-table.mw_metadata th {
- border: 1px solid #aaaaaa;
- padding-left: 4px;
- padding-right: 4px;
-}
-table.mw_metadata th {
- background-color: #f9f9f9;
-}
-table.mw_metadata td {
- background-color: #fcfcfc;
-}
-table.mw_metadata td.spacer {
- background: inherit;
- border-top: none;
- border-bottom: none;
-}
-table.collapsed tr.collapsable {
- display: none;
-}
-
-.visualClear {
- clear: both;
-}
-
-/* Allmessages table */
-#allmessagestable th {
- background-color: #b2b2ff;
-}
-
-#allmessagestable tr.orig {
- background-color: #ffe2e2;
-}
-
-#allmessagestable tr.new {
- background-color: #e2ffe2;
-}
-
-#allmessagestable tr.def {
- background-color: #f0f0ff;
-}
-
-#jump-to-nav {
- display: none;
-}
-
-div.multipageimagenavbox {
- border: solid 1px silver;
- padding: 4px;
- margin: 1em;
- background: #f0f0f0;
-}
-
-div.multipageimagenavbox div.thumb {
- border: none;
- margin-left: 2em;
- margin-right: 2em;
-}
-
-div.multipageimagenavbox hr {
- margin: 6px;
-}
-
-table.multipageimage td {
- text-align: center;
-}
-
-/*
- Table pager (e.g. Special:Imagelist)
- - remove underlines from the navigation link
- - collapse borders
- - set the borders to outsets (similar to Special:Allmessages)
- - remove line wrapping for all td and th, set background color
- - restore line wrapping for the last two table cells (description and size)
-*/
-.TablePager_nav a {
- text-decoration: none;
-}
-.TablePager {
- border-collapse: collapse;
-}
-.TablePager,
-.TablePager td,
-.TablePager th {
- border: 0.15em solid #777777;
- padding: 0 0.15em 0 0.15em;
-}
-.TablePager th {
- background-color: #eeeeff;
-}
-.TablePager td {
- background-color: #ffffff;
-}
-.TablePager tr:hover td {
- background-color: #eeeeff;
-}
-
-.imagelist td,
-.imagelist th {
- white-space: nowrap;
-}
-.imagelist .TablePager_col_links {
- background-color: #eeeeff;
-}
-.imagelist .TablePager_col_img_description {
- white-space: normal;
-}
-.imagelist th.TablePager_sort {
- background-color: #ccccff;
-}
-
-.templatesUsed {
- margin-top: 1em;
-}
-
-.MediaTransformError {
- border: thin solid #777;
- background-color: #ccc;
- padding: 0.1em;
-}
-.MediaTransformError td {
- text-align: center;
- vertical-align: middle;
- font-size: 90%;
-}
-
-form#specialpages {
- display: inline;
-}
-
-body {
- direction: ltr;
- unicode-bidi: embed;
- background-color: #ffffec;
-}
-body.ns-0 {
- background-color: white;
-}
-
-/** RTL specific CSS starts here **/
-
-/**
- * Lists:
- * The following lines don't have a visible effect on non-Gecko browsers
- * They fix a problem with Gecko browsers rendering lists to the right of
- * left-floated objects in an RTL layout.
- */
-/* @noflip */
-html > body.rtl div#article ul {
- display: table;
-}
-/* @noflip */
-html > body.rtl div#bodyContent ul#filetoc {
- display: block;
-}
-
-/* RTL specific CSS ends here **/
diff --git a/skins/common/protect.js b/skins/common/protect.js
deleted file mode 100644
index dc142ca9..00000000
--- a/skins/common/protect.js
+++ /dev/null
@@ -1,387 +0,0 @@
-( function ( mw, $ ) {
-
-var ProtectionForm = window.ProtectionForm = {
- existingMatch: false,
-
- /**
- * Set up the protection chaining interface (i.e. "unlock move permissions" checkbox)
- * on the protection form
- *
- * @param opts Object : parameters with members:
- * tableId Identifier of the table containing UI bits
- * labelText Text to use for the checkbox label
- * numTypes The number of protection types
- * existingMatch True if all the existing expiry times match
- */
- init: function ( opts ) {
- var box, boxbody, row, cell, check, label;
-
- if ( !( document.createTextNode && document.getElementById && document.getElementsByTagName ) ) {
- return false;
- }
-
- box = document.getElementById( opts.tableId );
- if ( !box ) {
- return false;
- }
-
- boxbody = box.getElementsByTagName( 'tbody' )[0];
- row = document.createElement( 'tr' );
- boxbody.insertBefore( row, boxbody.firstChild.nextSibling );
-
- this.existingMatch = opts.existingMatch;
-
- cell = document.createElement( 'td' );
- row.appendChild( cell );
- // If there is only one protection type, there is nothing to chain
- if ( opts.numTypes > 1 ) {
- check = document.createElement( 'input' );
- check.id = 'mwProtectUnchained';
- check.type = 'checkbox';
- $( check ).click( function () {
- ProtectionForm.onChainClick();
- } );
-
- label = document.createElement( 'label' );
- label.htmlFor = 'mwProtectUnchained';
- label.appendChild( document.createTextNode( opts.labelText ) );
-
- cell.appendChild( check );
- cell.appendChild( document.createTextNode( ' ' ) );
- cell.appendChild( label );
-
- check.checked = !this.areAllTypesMatching();
- this.enableUnchainedInputs( check.checked );
- }
-
- $( '#mwProtect-reason' ).byteLimit( 180 );
-
- this.updateCascadeCheckbox();
-
- return true;
- },
-
- /**
- * Sets the disabled attribute on the cascade checkbox depending on the current selected levels
- */
- updateCascadeCheckbox: function () {
- var i, lists, items, selected;
-
- // For non-existent titles, there is no cascade option
- if ( !document.getElementById( 'mwProtect-cascade' ) ) {
- return;
- }
- lists = this.getLevelSelectors();
- for ( i = 0; i < lists.length; i++ ) {
- if ( lists[i].selectedIndex > -1 ) {
- items = lists[i].getElementsByTagName( 'option' );
- selected = items[ lists[i].selectedIndex ].value;
- if ( !this.isCascadeableLevel( selected ) ) {
- document.getElementById( 'mwProtect-cascade' ).checked = false;
- document.getElementById( 'mwProtect-cascade' ).disabled = true;
- return;
- }
- }
- }
- document.getElementById( 'mwProtect-cascade' ).disabled = false;
- },
-
- /**
- * Checks if a cerain protection level is cascadeable.
- * @param level {String}
- * @return {Boolean}
- */
- isCascadeableLevel: function ( level ) {
- var cascadeLevels, len, i;
-
- cascadeLevels = mw.config.get( 'wgCascadeableLevels' );
- // cascadeLevels isn't defined on all pages
- if ( cascadeLevels ) {
- for ( i = 0, len = cascadeLevels.length; i < len; i += 1 ) {
- if ( cascadeLevels[i] === level ) {
- return true;
- }
- }
- }
- return false;
- },
-
- /**
- * When protection levels are locked together, update the rest
- * when one action's level changes
- *
- * @param source Element Level selector that changed
- */
- updateLevels: function ( source ) {
- if ( !this.isUnchained() ) {
- this.setAllSelectors( source.selectedIndex );
- }
- this.updateCascadeCheckbox();
- },
-
- /**
- * When protection levels are locked together, update the
- * expiries when one changes
- *
- * @param source Element expiry input that changed
- */
-
- updateExpiry: function ( source ) {
- var expiry, listId, list;
-
- if ( !this.isUnchained() ) {
- expiry = source.value;
- this.forEachExpiryInput( function ( element ) {
- element.value = expiry;
- } );
- }
- listId = source.id.replace( /^mwProtect-(\w+)-expires$/, 'mwProtectExpirySelection-$1' );
- list = document.getElementById( listId );
- if ( list && list.value !== 'othertime' ) {
- if ( this.isUnchained() ) {
- list.value = 'othertime';
- } else {
- this.forEachExpirySelector( function ( element ) {
- element.value = 'othertime';
- } );
- }
- }
- },
-
- /**
- * When protection levels are locked together, update the
- * expiry lists when one changes and clear the custom inputs
- *
- * @param source Element expiry selector that changed
- */
- updateExpiryList: function ( source ) {
- var expiry;
- if ( !this.isUnchained() ) {
- expiry = source.value;
- this.forEachExpirySelector( function ( element ) {
- element.value = expiry;
- } );
- this.forEachExpiryInput( function ( element ) {
- element.value = '';
- } );
- }
- },
-
- /**
- * Update chain status and enable/disable various bits of the UI
- * when the user changes the "unlock move permissions" checkbox
- */
- onChainClick: function () {
- if ( this.isUnchained() ) {
- this.enableUnchainedInputs( true );
- } else {
- this.setAllSelectors( this.getMaxLevel() );
- this.enableUnchainedInputs( false );
- }
- this.updateCascadeCheckbox();
- },
-
- /**
- * Returns true if the named attribute in all objects in the given array are matching
- */
- matchAttribute: function ( objects, attrName ) {
- var i, element, value;
-
- // Check levels
- value = null;
- for ( i = 0; i < objects.length; i++ ) {
- element = objects[i];
- if ( value === null ) {
- value = element[attrName];
- } else {
- if ( value !== element[attrName] ) {
- return false;
- }
- }
- }
- return true;
- },
-
- /**
- * Are all actions protected at the same level, with the same expiry time?
- *
- * @return boolean
- */
- areAllTypesMatching: function () {
- return this.existingMatch
- && this.matchAttribute( this.getLevelSelectors(), 'selectedIndex' )
- && this.matchAttribute( this.getExpirySelectors(), 'selectedIndex' )
- && this.matchAttribute( this.getExpiryInputs(), 'value' );
- },
-
- /**
- * Is protection chaining off?
- *
- * @return bool
- */
- isUnchained: function () {
- var element = document.getElementById( 'mwProtectUnchained' );
- return element
- ? element.checked
- : true; // No control, so we need to let the user set both levels
- },
-
- /**
- * Find the highest protection level in any selector
- */
- getMaxLevel: function () {
- var maxIndex = -1;
- this.forEachLevelSelector( function ( element ) {
- if ( element.selectedIndex > maxIndex ) {
- maxIndex = element.selectedIndex;
- }
- } );
- return maxIndex;
- },
-
- /**
- * Protect all actions at the specified level
- *
- * @param index int Protection level
- */
- setAllSelectors: function ( index ) {
- this.forEachLevelSelector( function ( element ) {
- if ( element.selectedIndex !== index ) {
- element.selectedIndex = index;
- }
- } );
- },
-
- /**
- * Apply a callback to each protection selector
- *
- * @param func callable Callback function
- */
- forEachLevelSelector: function ( func ) {
- var i, selectors;
-
- selectors = this.getLevelSelectors();
- for ( i = 0; i < selectors.length; i++ ) {
- func( selectors[i] );
- }
- },
-
- /**
- * Get a list of all protection selectors on the page
- *
- * @return Array
- */
- getLevelSelectors: function () {
- var i, ours, all, element;
-
- all = document.getElementsByTagName( 'select' );
- ours = [];
- for ( i = 0; i < all.length; i++ ) {
- element = all[i];
- if ( element.id.match( /^mwProtect-level-/ ) ) {
- ours[ours.length] = element;
- }
- }
- return ours;
- },
-
- /**
- * Apply a callback to each expiry input
- *
- * @param func callable Callback function
- */
- forEachExpiryInput: function ( func ) {
- var i, inputs;
-
- inputs = this.getExpiryInputs();
- for ( i = 0; i < inputs.length; i++ ) {
- func( inputs[i] );
- }
- },
-
- /**
- * Get a list of all expiry inputs on the page
- *
- * @return Array
- */
- getExpiryInputs: function () {
- var i, all, element, ours;
-
- all = document.getElementsByTagName( 'input' );
- ours = [];
- for ( i = 0; i < all.length; i++ ) {
- element = all[i];
- if ( element.name.match( /^mwProtect-expiry-/ ) ) {
- ours[ours.length] = element;
- }
- }
- return ours;
- },
-
- /**
- * Apply a callback to each expiry selector list
- * @param func callable Callback function
- */
- forEachExpirySelector: function ( func ) {
- var i, inputs;
-
- inputs = this.getExpirySelectors();
- for ( i = 0; i < inputs.length; i++ ) {
- func( inputs[i] );
- }
- },
-
- /**
- * Get a list of all expiry selector lists on the page
- *
- * @return Array
- */
- getExpirySelectors: function () {
- var i, all, ours, element;
-
- all = document.getElementsByTagName( 'select' );
- ours = [];
- for ( i = 0; i < all.length; i++ ) {
- element = all[i];
- if ( element.id.match( /^mwProtectExpirySelection-/ ) ) {
- ours[ours.length] = element;
- }
- }
- return ours;
- },
-
- /**
- * Enable/disable protection selectors and expiry inputs
- *
- * @param val boolean Enable?
- */
- enableUnchainedInputs: function ( val ) {
- var first = true;
-
- this.forEachLevelSelector( function ( element ) {
- if ( first ) {
- first = false;
- } else {
- element.disabled = !val;
- }
- } );
- first = true;
- this.forEachExpiryInput( function ( element ) {
- if ( first ) {
- first = false;
- } else {
- element.disabled = !val;
- }
- } );
- first = true;
- this.forEachExpirySelector( function ( element ) {
- if ( first ) {
- first = false;
- } else {
- element.disabled = !val;
- }
- } );
- }
-};
-
-}( mediaWiki, jQuery ) );
diff --git a/skins/common/shared.css b/skins/common/shared.css
deleted file mode 100644
index ac7265a8..00000000
--- a/skins/common/shared.css
+++ /dev/null
@@ -1,1210 +0,0 @@
-/**
- * CSS in this file is used by *all* skins (that have any CSS at all). Be
- * careful what you put in here, since what looks good in one skin may not in
- * another, but don't ignore the poor pre-Monobook users either.
- */
-
-/* GENERAL CLASSES FOR DIRECTIONALITY SUPPORT */
-
-/**
- * These classes should be used for text depending on the content direction.
- * Content stuff like editsection, ul/ol and TOC depend on this.
- */
-.mw-content-ltr {
- /* @noflip */
- direction: ltr;
-}
-.mw-content-rtl {
- /* @noflip */
- direction: rtl;
-}
-
-/* Most input fields should be in site direction */
-.sitedir-ltr textarea,
-.sitedir-ltr input {
- /* @noflip */
- direction: ltr;
-}
-.sitedir-rtl textarea,
-.sitedir-rtl input {
- /* @noflip */
- direction: rtl;
-}
-
-/* User-Agent styles for new HTML5 elements */
-mark {
- background-color: yellow;
- color: black;
-}
-
-/* Input types that should follow user direction, like buttons */
-/* TODO: What about buttons in wikipage content ? */
-input[type="submit"],
-input[type="button"],
-input[type="reset"],
-input[type="file"] {
- direction: ltr;
-}
-
-/* Override default values */
-textarea[dir="ltr"],
-input[dir="ltr"] {
- /* @noflip */
- direction: ltr;
-}
-textarea[dir="rtl"],
-input[dir="rtl"] {
- /* @noflip */
- direction: rtl;
-}
-
-/* Default style for semantic tags */
-abbr[title],
-.explain[title] {
- border-bottom: 1px dotted;
- cursor: help;
-}
-
-/* Colored watchlist and recent changes numbers */
-.mw-plusminus-pos {
- color: #006400; /* dark green */
-}
-.mw-plusminus-neg {
- color: #8b0000; /* dark red */
-}
-.mw-plusminus-null {
- color: #aaa; /* gray */
-}
-
-/**
- * Links to redirects appear italicized on [[Special:AllPages]], [[Special:PrefixIndex]],
- * [[Special:Watchlist/edit]] and in category listings.
- */
-.allpagesredirect,
-.redirect-in-category,
-.watchlistredir {
- font-style: italic;
-}
-
-/* Comment and username portions of RC entries */
-span.comment {
- font-style: italic;
-}
-
-span.changedby {
- font-size: 95%;
-}
-
-/* Math */
-.texvc {
- direction: ltr;
- unicode-bidi: embed;
-}
-img.tex {
- vertical-align: middle;
-}
-span.texhtml {
- font-family: serif;
-}
-
-/**
- * Add a bit of margin space between the preview and the toolbar.
- * This replaces the ugly <p><br /></p> we used to insert into the page source
- */
-#wikiPreview.ontop {
- margin-bottom: 1em;
-}
-
-/* Stop floats from intruding into edit area in previews */
-#editform,
-#toolbar,
-#wpTextbox1 {
- clear: both;
-}
-
-#toolbar img {
- cursor: pointer;
-}
-
-/**
- * File description page
- */
-
-div.mw-filepage-resolutioninfo {
- font-size: smaller;
-}
-
-/**
- * File histories
- */
-h2#filehistory {
- clear: both;
-}
-
-table.filehistory th,
-table.filehistory td {
- vertical-align: top;
-}
-table.filehistory th {
- text-align: left;
-}
-table.filehistory td.mw-imagepage-filesize,
-table.filehistory th.mw-imagepage-filesize {
- white-space: nowrap;
-}
-
-table.filehistory td.filehistory-selected {
- font-weight: bold;
-}
-
-/**
- * Add a checkered background image on hover for file
- * description pages. (bug 26470)
- */
-.filehistory a img,
-#file img:hover {
- /* @embed */
- background: white url(images/Checker-16x16.png) repeat;
-}
-
-/**
- * rev_deleted stuff
- */
-li span.deleted,
-span.history-deleted {
- text-decoration: line-through;
- color: #888;
- font-style: italic;
-}
-
-/**
- * Patrol stuff
- */
-.not-patrolled {
- background-color: #ffa;
-}
-
-.unpatrolled {
- font-weight: bold;
- color: red;
-}
-
-div.patrollink {
- font-size: 75%;
- text-align: right;
-}
-
-/**
- * Forms
- */
-td.mw-label {
- text-align: right;
-}
-td.mw-input {
- text-align: left;
-}
-td.mw-submit {
- text-align: left;
-}
-
-td.mw-label {
- vertical-align: top;
-}
-.prefsection td.mw-label {
- width: 20%;
-}
-.prefsection table {
- width: 100%;
-}
-.prefsection table.mw-htmlform-matrix {
- width: auto;
-}
-
-.mw-icon-question {
- /* @embed */
- background: url('images/question-small.png') no-repeat;
- /* SVG support using a transparent gradient to guarantee cross-browser
- * compatibility (browsers able to understand gradient syntax support also SVG)
- * lifted from #pt-login css rule in skins/vector/screen.css */
- /* @embed */
- background: -webkit-linear-gradient(transparent, transparent), url('images/question.svg') no-repeat;
- /* @embed */
- background: linear-gradient(transparent, transparent), url('images/question.svg') no-repeat;
- background-size: 13px 13px;
- display: inline-block;
- height: 13px;
- width: 13px;
- margin-left: 4px;
-}
-
-.mw-icon-question:lang(ar),
-.mw-icon-question:lang(fa),
-.mw-icon-question:lang(ur) {
- -webkit-transform: scaleX(-1);
- -ms-transform: scaleX(-1);
- transform: scaleX(-1);
-}
-
-td.mw-submit {
- white-space: nowrap;
-}
-
-table.mw-htmlform-nolabel td.mw-label {
- width: 1px;
-}
-
-tr.mw-htmlform-vertical-label td.mw-label {
- text-align: left !important;
-}
-
-.mw-htmlform-invalid-input td.mw-input input {
- border-color: red;
-}
-
-.mw-htmlform-flatlist div.mw-htmlform-flatlist-item {
- display: inline;
- margin-right: 1em;
- white-space: nowrap;
-}
-
-.mw-htmlform-matrix td {
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-
-input#wpSummary {
- width: 80%;
- margin-bottom: 1em;
-}
-
-/**
- * Image captions
- */
-/* @noflip */
-.mw-content-ltr .thumbcaption {
- text-align: left;
-}
-/* @noflip */
-.mw-content-rtl .thumbcaption {
- text-align: right;
-}
-/* @noflip */
-.mw-content-ltr .magnify {
- float: right;
-}
-/* @noflip */
-.mw-content-rtl .magnify {
- float: left;
-}
-
-/**
- * Categories
- */
-#catlinks {
- /**
- * Overrides text justification (user preference)
- * See bug 31990
- */
- text-align: left;
-}
-.catlinks ul {
- display: inline;
- margin: 0;
- padding: 0;
- list-style: none;
- list-style-type: none;
- list-style-image: none;
- vertical-align: middle !ie;
-}
-
-.catlinks li {
- display: inline-block;
- line-height: 1.25em;
- border-left: 1px solid #AAA;
- margin: 0.125em 0;
- padding: 0 0.5em;
- zoom: 1;
- display: inline !ie;
-}
-
-.catlinks li:first-child {
- padding-left: 0.25em;
- border-left: none;
-}
-
-/* (bug 5346) make category redirects italic */
-.catlinks li a.mw-redirect {
- font-style: italic;
-}
-/**
- * Hidden categories
- */
-.mw-hidden-cats-hidden {
- display: none;
-}
-.catlinks-allhidden {
- display: none;
-}
-
-/* Convenience links to edit block, delete and protect reasons */
-p.mw-ipb-conveniencelinks,
-p.mw-protect-editreasons,
-p.mw-filedelete-editreasons,
-p.mw-delete-editreasons,
-p.mw-revdel-editreasons {
- font-size: 90%;
- text-align: right;
-}
-
-/**
- * OpenSearch ajax suggestions
- */
-.os-suggest {
- overflow: auto;
- overflow-x: hidden;
- position: absolute;
- top: 0;
- left: 0;
- width: 0;
- background-color: white;
- border-style: solid;
- border-color: #AAAAAA;
- border-width: 1px;
- z-index:99;
- font-size:95%;
-}
-
-table.os-suggest-results {
- font-size: 95%;
- cursor: pointer;
- border: 0;
- border-collapse: collapse;
- width: 100%;
-}
-
-.os-suggest-result,
-.os-suggest-result-hl {
- white-space: nowrap;
- background-color: white;
- color: black;
- padding: 2px;
-}
-.os-suggest-result-hl,
-.os-suggest-result-hl-webkit {
- background-color: #4C59A6;
- color: white;
-}
-
-.os-suggest-toggle {
- position: relative;
- left: 1ex;
- font-size: 65%;
-}
-.os-suggest-toggle-def {
- position: absolute;
- top: 0;
- left: 0;
- font-size: 65%;
- visibility: hidden;
-}
-
-/* Page history styling */
-
-/* The auto-generated edit comments */
-.autocomment {
- color: gray;
-}
-#pagehistory .history-user {
- margin-left: 0.4em;
- margin-right: 0.2em;
-}
-#pagehistory span.minor {
- font-weight: bold;
-}
-#pagehistory li {
- border: 1px solid white;
-}
-#pagehistory li.selected {
- background-color: #f9f9f9;
- border: 1px dashed #aaa;
-}
-
-.mw-history-revisiondelete-button, #mw-fileduplicatesearch-icon {
- float: right;
-}
-
-/** Generic minor/bot/newpage styling (recent changes) */
-.newpage,
-.minoredit,
-.botedit {
- font-weight: bold;
-}
-
-#shared-image-dup,
-#shared-image-conflict {
- font-style: italic;
-}
-
-/**
- * Recreating deleted page warning
- * Reupload file warning
- * Page protection warning
- * incl. log entries for these warnings
- */
-div.mw-warning-with-logexcerpt {
- padding: 3px;
- margin-bottom: 3px;
- border: 2px solid #2F6FAB;
- clear: both;
-}
-div.mw-warning-with-logexcerpt ul li {
- font-size: 90%;
-}
-
-/* (show/hide) revision deletion links */
-span.mw-revdelundel-link,
-strong.mw-revdelundel-link {
- font-size: 90%;
-}
-span.mw-revdelundel-hidden,
-input.mw-revdelundel-hidden {
- visibility: hidden;
-}
-
-td.mw-revdel-checkbox,
-th.mw-revdel-checkbox {
- padding-right: 10px;
- text-align: center;
-}
-
-/* red links; see bug 36276 */
-a.new {
- color: #BA0000;
-}
-
-/* feed links */
-a.feedlink {
- /* @embed */
- background: url(images/feed-icon.png) center left no-repeat;
- padding-left: 16px;
-}
-
-/* Plainlinks - this can be used to switch
- * off special external link styling */
-.plainlinks a {
- background: none !important;
- padding: 0 !important;
-}
-/* External URLs should always be treated as LTR (bug 4330) */
-/* @noflip */ .rtl a.external.free,
-.rtl a.external.autonumber {
- direction: ltr;
- unicode-bidi: embed;
-}
-
-/**
- * wikitable class for skinning normal tables
- * keep in sync with commonPrint.css
- */
-table.wikitable {
- margin: 1em 0;
- background-color: #f9f9f9;
- border: 1px #aaa solid;
- border-collapse: collapse;
- color: black;
-}
-table.wikitable > tr > th,
-table.wikitable > tr > td,
-table.wikitable > * > tr > th,
-table.wikitable > * > tr > td {
- border: 1px #aaa solid;
- padding: 0.2em;
-}
-table.wikitable > tr > th,
-table.wikitable > * > tr > th {
- background-color: #f2f2f2;
- text-align: center;
-}
-table.wikitable > caption {
- font-weight: bold;
-}
-
-/* hide initially collapsed collapsable tables */
-table.collapsed tr.collapsable {
- display: none;
-}
-
-/* success and error messages */
-.error,
-.warning,
-.success {
- font-size: larger;
-}
-.error {
- color: #cc0000;
-}
-.warning {
- color: #705000;
-}
-.success {
- color: #009000;
-}
-
-.errorbox,
-.warningbox,
-.successbox {
- border: 1px solid;
- padding: .5em 1em;
- margin-bottom: 1em;
- display: -moz-inline-block;
- display: inline-block;
- zoom: 1;
- *display: inline;
-}
-.errorbox h2,
-.warningbox h2,
-.successbox h2 {
- font-size: 1em;
- color: inherit;
- font-weight: bold;
- display: inline;
- margin: 0 .5em 0 0;
- border: none;
-}
-.errorbox {
- color: #cc0000;
- border-color: #fac5c5;
- background-color: #fae3e3;
-}
-.warningbox {
- color: #705000;
- border-color: #fde29b;
- background-color: #fdf1d1;
-}
-.successbox {
- color: #009000;
- border-color: #b7fdb5;
- background-color: #e1fddf;
-}
-
-/* general info/warning box for SP */
-.mw-infobox {
- border: 2px solid #ff7f00;
- margin: 0.5em;
- clear: left;
- overflow: hidden;
-}
-
-.mw-infobox-left {
- margin: 7px;
- float: left;
- width: 35px;
-}
-
-.mw-infobox-right {
- margin: 0.5em 0.5em 0.5em 49px;
-}
-
-/* Note on preview page */
-.previewnote {
- color: #c00;
- margin-bottom: 1em;
-}
-
-.previewnote p {
- text-indent: 3em;
- margin: 0.8em 0;
-}
-
-.visualClear {
- clear: both;
-}
-
-#mw_trackbacks {
- border: solid 1px #bbbbff;
- background-color: #eeeeff;
- padding: 0.2em;
-}
-
-/**
- * Data table style
- *
- * Transparent table with suddle borders
- * and blue row-highlighting.
- */
-.mw-datatable {
- border-collapse: collapse;
-}
-.mw-datatable,
-.mw-datatable td,
-.mw-datatable th {
- border: 1px solid #aaaaaa;
- padding: 0 0.15em 0 0.15em;
-}
-.mw-datatable th {
- background-color: #ddddff;
-}
-.mw-datatable td {
- background-color: #ffffff;
-}
-.mw-datatable tr:hover td {
- background-color: #eeeeff;
-}
-
-
-/**
- * TablePager tables generated by the TablePager PHP class
- * in MediaWiki (e.g. Special:ListFiles).
- */
-.TablePager {
- min-width: 80%;
-}
-.TablePager_nav {
- margin: 0 auto;
-}
-.TablePager_nav td {
- padding: 3px;
- text-align: center;
-}
-.TablePager_nav a {
- text-decoration: none;
-}
-
-.imagelist td,
-.imagelist th {
- white-space: nowrap;
-}
-.imagelist .TablePager_col_links {
- background-color: #eeeeff;
-}
-.imagelist .TablePager_col_img_description {
- white-space: normal;
-}
-.imagelist th.TablePager_sort {
- background-color: #ccccff;
-}
-
-/* filetoc */
-ul#filetoc {
- text-align: center;
- border: 1px solid #aaaaaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
- margin-bottom: 0.5em;
- margin-left: 0;
- margin-right: 0;
-}
-
-#filetoc li {
- display: inline;
- list-style-type: none;
- padding-right: 2em;
-}
-
-/* Classes for Exif data display */
-table.mw_metadata {
- font-size: 0.8em;
- margin-left: 0.5em;
- margin-bottom: 0.5em;
- width: 400px;
-}
-
-table.mw_metadata caption {
- font-weight: bold;
-}
-
-table.mw_metadata th {
- font-weight: normal;
-}
-
-table.mw_metadata td {
- padding: 0.1em;
-}
-
-table.mw_metadata {
- border: none;
- border-collapse: collapse;
-}
-
-table.mw_metadata td,
-table.mw_metadata th {
- text-align: center;
- border: 1px solid #aaaaaa;
- padding-left: 5px;
- padding-right: 5px;
-}
-
-table.mw_metadata th {
- background-color: #f9f9f9;
-}
-
-table.mw_metadata td {
- background-color: #fcfcfc;
-}
-
-table.mw_metadata ul.metadata-langlist {
- list-style-type: none;
- list-style-image: none;
- padding-right: 5px;
- padding-left: 5px;
- margin: 0;
-}
-
-/* Correct directionality when page dir is different from site/user dir */
-.mw-content-ltr ul,
-.mw-content-rtl .mw-content-ltr ul {
- /* @noflip */
- margin: 0.3em 0 0 1.6em;
- padding: 0;
-}
-.mw-content-rtl ul,
-.mw-content-ltr .mw-content-rtl ul {
- /* @noflip */
- margin: 0.3em 1.6em 0 0;
- padding: 0;
-}
-.mw-content-ltr ol,
-.mw-content-rtl .mw-content-ltr ol {
- /* @noflip */
- margin: 0.3em 0 0 3.2em;
- padding: 0;
-}
-.mw-content-rtl ol,
-.mw-content-ltr .mw-content-rtl ol {
- /* @noflip */
- margin: 0.3em 3.2em 0 0;
- padding: 0;
-}
-/* @noflip */
-.mw-content-ltr dd,
-.mw-content-rtl .mw-content-ltr dd {
- margin-left: 1.6em;
- margin-right: 0;
-}
-/* @noflip */
-.mw-content-rtl dd,
-.mw-content-ltr .mw-content-rtl dd {
- margin-right: 1.6em;
- margin-left: 0;
-}
-
-/* Galleries */
-/* These display attributes look nonsensical, but are needed to support IE and FF2 */
-/* Don't forget to update commonPrint.css */
-li.gallerybox {
- vertical-align: top;
- display: -moz-inline-box;
- display: inline-block;
-}
-
-ul.gallery,
-li.gallerybox {
- zoom: 1;
- *display: inline;
-}
-
-ul.gallery {
- margin: 2px;
- padding: 2px;
- display: block;
-}
-
-li.gallerycaption {
- font-weight: bold;
- text-align: center;
- display: block;
- word-wrap: break-word;
-}
-
-li.gallerybox div.thumb {
- text-align: center;
- border: 1px solid #ccc;
- background-color: #f9f9f9;
- margin: 2px;
-}
-
-li.gallerybox div.thumb img {
- display: block;
- margin: 0 auto;
-}
-
-div.gallerytext {
- overflow: hidden;
- font-size: 94%;
- padding: 2px 4px;
- word-wrap: break-word;
-}
-
-/* new gallery stuff */
-ul.mw-gallery-nolines li.gallerybox div.thumb {
- background-color: transparent;
- border: none;
-}
-
-ul.mw-gallery-nolines li.gallerybox div.gallerytext {
- text-align: center;
-}
-
-/* height constrained gallery */
-
-ul.mw-gallery-packed li.gallerybox div.thumb,
-ul.mw-gallery-packed-overlay li.gallerybox div.thumb,
-ul.mw-gallery-packed-hover li.gallerybox div.thumb {
- background-color: transparent;
- border: none;
-}
-ul.mw-gallery-packed li.gallerybox div.thumb img,
-ul.mw-gallery-packed-overlay li.gallerybox div.thumb img,
-ul.mw-gallery-packed-hover li.gallerybox div.thumb img {
- margin: 0 auto;
-}
-
-ul.mw-gallery-packed-hover li.gallerybox,
-ul.mw-gallery-packed-overlay li.gallerybox {
- position:relative;
-}
-
-ul.mw-gallery-packed-hover div.gallerytextwrapper {
- overflow: hidden;
- height: 0;
-}
-
-ul.mw-gallery-packed-hover li.gallerybox:hover div.gallerytextwrapper,
-ul.mw-gallery-packed-overlay li.gallerybox div.gallerytextwrapper,
-ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapper {
- position:absolute;
- opacity:.8;
- filter:alpha(opacity=80);
- zoom: 1;
- background-color:white;
- padding: 5px 10px;
- bottom: 0;
- left: 0; /* Needed for IE */
- height: auto;
- font-weight: bold;
- margin: 2px; /* correspond to style on div.thumb */
-}
-
-ul.mw-gallery-packed-hover,
-ul.mw-gallery-packed-overlay,
-ul.mw-gallery-packed {
- text-align: center;
-}
-
-ul.mw-gallery-packed-hover div.gallerytext,
-ul.mw-gallery-packed-overlay div.gallerytext {
- opacity: 1;
- position: relative; /* Resets opacity in old IE */
-}
-
-
-.mw-ajax-loader {
- /* @embed */
- background-image: url(images/ajax-loader.gif);
- background-position: center center;
- background-repeat: no-repeat;
- padding: 16px;
- position: relative;
- top: -16px;
-}
-
-.mw-small-spinner {
- padding: 10px !important;
- margin-right: 0.6em;
- /* @embed */
- background-image: url(images/spinner.gif);
- background-position: center center;
- background-repeat: no-repeat;
-}
-
-/* Language specific height correction for titles. Ref Bug 29405 and Bug 30809 */
-/* Languages like hi or ml require slightly more vertical space to show diacritics properly */
-h1:lang(anp),
-h1:lang(as),
-h1:lang(bh), /* Macrolanguage, used on bh.wikipedia.org, should be removed one day */
-h1:lang(bho),
-h1:lang(bn),
-h1:lang(gu),
-h1:lang(hi),
-h1:lang(kn),
-h1:lang(ks),
-h1:lang(ml),
-h1:lang(mr),
-h1:lang(my),
-h1:lang(mai),
-h1:lang(ne),
-h1:lang(new),
-h1:lang(or),
-h1:lang(pa),
-h1:lang(pi),
-h1:lang(sa),
-h1:lang(ta),
-h1:lang(te) {
- line-height: 1.6em !important;
-}
-h2:lang(anp), h3:lang(anp), h4:lang(anp), h5:lang(anp), h6:lang(anp),
-h2:lang(as), h3:lang(as), h4:lang(as), h5:lang(as), h6:lang(as),
-h2:lang(bho), h3:lang(bho), h4:lang(bho), h5:lang(bho), h6:lang(bho),
-h2:lang(bh), h3:lang(bh), h4:lang(bh), h5:lang(bh), h6:lang(bh),
-h2:lang(bn), h3:lang(bn), h4:lang(bn), h5:lang(bn), h6:lang(bn),
-h2:lang(gu), h3:lang(gu), h4:lang(gu), h5:lang(gu), h6:lang(gu),
-h2:lang(hi), h3:lang(hi), h4:lang(hi), h5:lang(hi), h6:lang(hi),
-h2:lang(kn), h3:lang(kn), h4:lang(kn), h5:lang(kn), h6:lang(kn),
-h2:lang(ks), h3:lang(ks), h4:lang(ks), h5:lang(ks), h6:lang(ks),
-h2:lang(ml), h3:lang(ml), h4:lang(ml), h5:lang(ml), h6:lang(ml),
-h2:lang(mr), h3:lang(mr), h4:lang(mr), h5:lang(mr), h6:lang(mr),
-h2:lang(my), h3:lang(my), h4:lang(my), h5:lang(my), h6:lang(my),
-h2:lang(mai), h3:lang(mai), h4:lang(mai), h5:lang(mai), h6:lang(mai),
-h2:lang(ne), h3:lang(ne), h4:lang(ne), h5:lang(ne), h6:lang(ne),
-h2:lang(new), h3:lang(new), h4:lang(new), h5:lang(new), h6:lang(new),
-h2:lang(or), h3:lang(or), h4:lang(or), h5:lang(or), h6:lang(or),
-h2:lang(pa), h3:lang(pa), h4:lang(pa), h5:lang(pa), h6:lang(pa),
-h2:lang(pi), h3:lang(pi), h4:lang(pi), h5:lang(pi), h6:lang(pi),
-h2:lang(sa), h3:lang(sa), h4:lang(sa), h5:lang(sa), h6:lang(sa),
-h2:lang(ta), h3:lang(ta), h4:lang(ta), h5:lang(ta), h6:lang(ta),
-h2:lang(te), h3:lang(te), h4:lang(te), h5:lang(te), h6:lang(te) {
- line-height: 1.2em;
-}
-
-/* Localised ordered list numbering for some languages */
-ol:lang(bcc) li,
-ol:lang(bqi) li,
-ol:lang(fa) li,
-ol:lang(glk) li,
-ol:lang(kk-arab) li,
-ol:lang(mzn) li {
- list-style-type: -moz-persian;
- list-style-type: persian;
-}
-
-ol:lang(ckb) li {
- list-style-type: -moz-arabic-indic;
- list-style-type: arabic-indic;
-}
-
-ol:lang(hi) li,
-ol:lang(mr) li {
- list-style-type: -moz-devanagari;
- list-style-type: devanagari;
-}
-
-ol:lang(as) li,
-ol:lang(bn) li {
- list-style-type: -moz-bengali;
- list-style-type: bengali;
-}
-
-ol:lang(or) li {
- list-style-type: -moz-oriya;
- list-style-type: oriya;
-}
-
-#toc ul, .toc ul {
- margin: .3em 0;
-}
-
-/* Correct directionality when page dir is different from site/user dir */
-/* @noflip */ .mw-content-ltr .toc ul,
-.mw-content-ltr #toc ul,
-.mw-content-rtl .mw-content-ltr .toc ul,
-.mw-content-rtl .mw-content-ltr #toc ul {
- text-align: left;
-}
-/* @noflip */ .mw-content-rtl .toc ul,
-.mw-content-rtl #toc ul,
-.mw-content-ltr .mw-content-rtl .toc ul,
-.mw-content-ltr .mw-content-rtl #toc ul {
- text-align: right;
-}
-/* @noflip */ .mw-content-ltr .toc ul ul,
-.mw-content-ltr #toc ul ul,
-.mw-content-rtl .mw-content-ltr .toc ul ul,
-.mw-content-rtl .mw-content-ltr #toc ul ul {
- margin: 0 0 0 2em;
-}
-/* @noflip */ .mw-content-rtl .toc ul ul,
-.mw-content-rtl #toc ul ul,
-.mw-content-ltr .mw-content-rtl .toc ul ul,
-.mw-content-ltr .mw-content-rtl #toc ul ul {
- margin: 0 2em 0 0;
-}
-
-#toc #toctitle,
-.toc #toctitle,
-#toc .toctitle,
-.toc .toctitle {
- direction: ltr;
-}
-
-/* tooltip styles */
-.mw-help-field-hint {
- display: none;
- margin-left: 2px;
- margin-bottom: -8px;
- padding: 0 0 0 15px;
- /* @embed */
- background-image: url('images/help-question.gif');
- background-position: left center;
- background-repeat: no-repeat;
- cursor: pointer;
- font-size: .8em;
- text-decoration: underline;
- color: #0645ad;
-}
-.mw-help-field-hint:hover {
- /* @embed */
- background-image: url('images/help-question-hover.gif');
-}
-.mw-help-field-data {
- display: block;
- background-color: #d6f3ff;
- padding:5px 8px 4px 8px;
- border: 1px solid #5dc9f4;
- margin-left: 20px;
-}
-.tipsy {
- padding: 5px 5px 10px;
- font-size: 12px;
- position: absolute;
- z-index: 100000;
- overflow: visible;
-}
-.tipsy-inner {
- padding: 5px 8px 4px 8px;
- background-color: #d6f3ff;
- color: black;
- border: 1px solid #5dc9f4;
- max-width: 300px;
- text-align: left;
-}
-.tipsy-arrow {
- position: absolute;
- /* @embed */
- background: url(images/tipsy-arrow.gif) no-repeat top left;
- width: 13px;
- height: 13px;
-}
-.tipsy-se .tipsy-arrow {
- bottom: -2px;
- right: 10px;
- background-position: 0% 100%;
-}
-
-#mw-clearyourcache,
-#mw-sitecsspreview,
-#mw-sitejspreview,
-#mw-usercsspreview,
-#mw-userjspreview {
- direction: ltr;
- unicode-bidi: embed;
-}
-
-/* Correct user & content directionality when viewing a diff */
-.diff-currentversion-title,
-.diff {
- direction: ltr;
- unicode-bidi: embed;
-}
-/* @noflip */ .diff-contentalign-right td {
- direction: rtl;
- unicode-bidi: embed;
-}
-/* @noflip */ .diff-contentalign-left td {
- direction: ltr;
- unicode-bidi: embed;
-}
-.diff-multi,
-.diff-otitle,
-.diff-ntitle,
-.diff-lineno {
- direction: ltr !important;
- unicode-bidi: embed;
-}
-
-#mw-revision-info,
-#mw-revision-info-current,
-#mw-revision-nav {
- direction: ltr;
- display: inline;
-}
-
-/* Images */
-
-/* @noflip */ div.tright,
-div.floatright,
-table.floatright {
- clear: right;
- float: right;
-}
-/* @noflip */ div.tleft,
-div.floatleft,
-table.floatleft {
- float: left;
- clear: left;
-}
-div.floatright,
-table.floatright,
-div.floatleft,
-table.floatleft {
- position: relative;
-}
-
-/* bug 12205 */
-#mw-credits a {
- unicode-bidi: embed;
-}
-
-/* Accessibility */
-.mw-jump,
-#jump-to-nav {
- overflow: hidden;
- height: 0;
- zoom: 1; /* http://webaim.org/techniques/skipnav/#iequirk */
-}
-
-/* Print footer should be hidden by default in screen. */
-.printfooter {
- display: none;
-}
-
-/* For developpers */
-.xdebug-error {
- position: absolute;
- z-index: 99;
-}
-
-.mw-editsection,
-.toctoggle {
- -moz-user-select: none;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-/* Display editsection links smaller and next to headings */
-.mw-editsection {
- font-size: small;
- font-weight: normal;
- margin-left: 1em;
- vertical-align: baseline;
- /* Reset line-height; headings tend to have it set to larger values */
- line-height: 1em;
- /* As .mw-editsection is a <span> (inline element), it is treated as part */
- /* of the heading content when selecting text by multiple clicks and thus */
- /* selected together with heading content, despite the user-select: none; */
- /* rule set above. This enforces non-selection without changing the look. */
- display: inline-block;
-}
-
-/* Correct directionality when page dir is different from site/user dir */
-/* @noflip */
-.mw-content-ltr .mw-editsection,
-.mw-content-rtl .mw-content-ltr .mw-editsection {
- margin-left: 1em;
-}
-/* @noflip */
-.mw-content-rtl .mw-editsection,
-.mw-content-ltr .mw-content-rtl .mw-editsection {
- margin-right: 1em;
-}
diff --git a/skins/common/upload.js b/skins/common/upload.js
deleted file mode 100644
index d639f63a..00000000
--- a/skins/common/upload.js
+++ /dev/null
@@ -1,356 +0,0 @@
-/*jshint camelcase:false */
-( function ( mw, $ ) {
-var licenseSelectorCheck, wgUploadWarningObj, wgUploadLicenseObj, fillDestFilename,
- ajaxUploadDestCheck = mw.config.get( 'wgAjaxUploadDestCheck' ),
- fileExtensions = mw.config.get( 'wgFileExtensions' ),
- $spinnerDestCheck, $spinnerLicense;
-
-licenseSelectorCheck = window.licenseSelectorCheck = function () {
- var selector = document.getElementById( 'wpLicense' ),
- selection = selector.options[selector.selectedIndex].value;
- if ( selector.selectedIndex > 0 ) {
- if ( !selection ) {
- // Option disabled, but browser is broken and doesn't respect this
- selector.selectedIndex = 0;
- }
- }
- // We might show a preview
- wgUploadLicenseObj.fetchPreview( selection );
-};
-
-function uploadSetup() {
- // Disable URL box if the URL copy upload source type is not selected
- var ein,
- selector, ua, isMacIe, i,
- optionsTable, row, td,
- wpLicense, wpLicenseRow, wpLicenseTbody,
- uploadSourceIds, len, onchange,
- e = document.getElementById( 'wpSourceTypeurl' );
- if ( e ) {
- if ( !e.checked ) {
- ein = document.getElementById( 'wpUploadFileURL' );
- if ( ein ) {
- ein.disabled = true;
- }
- }
- }
-
- // For MSIE/Mac: non-breaking spaces cause the <option> not to render.
- // But for some reason, setting the text to itself works
- selector = document.getElementById( 'wpLicense' );
- if ( selector ) {
- ua = navigator.userAgent;
- isMacIe = ua.indexOf( 'MSIE' ) !== -1 && ua.indexOf( 'Mac' ) !== -1;
- if ( isMacIe ) {
- for ( i = 0; i < selector.options.length; i++ ) {
- selector.options[i].text = selector.options[i].text;
- }
- }
- }
-
- // AJAX wpDestFile warnings
- if ( ajaxUploadDestCheck ) {
- // Insert an event handler that fetches upload warnings when wpDestFile
- // has been changed
- document.getElementById( 'wpDestFile' ).onchange = function () {
- wgUploadWarningObj.checkNow( this.value );
- };
- // Insert a row where the warnings will be displayed just below the
- // wpDestFile row
- optionsTable = document.getElementById( 'mw-htmlform-description' ).tBodies[0];
- row = optionsTable.insertRow( 1 );
- td = document.createElement( 'td' );
- td.id = 'wpDestFile-warning';
- td.colSpan = 2;
-
- row.appendChild( td );
- }
-
- wpLicense = document.getElementById( 'wpLicense' );
- if ( mw.config.get( 'wgAjaxLicensePreview' ) && wpLicense ) {
- // License selector check
- wpLicense.onchange = licenseSelectorCheck;
-
- // License selector table row
- wpLicenseRow = wpLicense.parentNode.parentNode;
- wpLicenseTbody = wpLicenseRow.parentNode;
-
- row = document.createElement( 'tr' );
- td = document.createElement( 'td' );
- row.appendChild( td );
- td = document.createElement( 'td' );
- td.id = 'mw-license-preview';
- row.appendChild( td );
-
- wpLicenseTbody.insertBefore( row, wpLicenseRow.nextSibling );
- }
-
-
- // fillDestFile setup
- uploadSourceIds = mw.config.get( 'wgUploadSourceIds' );
- len = uploadSourceIds.length;
- onchange = function () {
- fillDestFilename( this.id );
- };
- for ( i = 0; i < len; i += 1 ) {
- document.getElementById( uploadSourceIds[i] ).onchange = onchange;
- }
-}
-
-wgUploadWarningObj = window.wgUploadWarningObj = {
- responseCache: { '' : '&nbsp;' },
- nameToCheck: '',
- typing: false,
- delay: 500, // ms
- timeoutID: false,
-
- keypress: function () {
- var cached, destFile, warningElt;
-
- if ( !ajaxUploadDestCheck ) {
- return;
- }
-
- // Find file to upload
- destFile = document.getElementById( 'wpDestFile' );
- warningElt = document.getElementById( 'wpDestFile-warning' );
- if ( !destFile || !warningElt ) {
- return;
- }
-
- this.nameToCheck = destFile.value;
-
- // Clear timer
- if ( this.timeoutID ) {
- clearTimeout( this.timeoutID );
- }
- // Check response cache
- for ( cached in this.responseCache ) {
- if ( this.nameToCheck === cached ) {
- this.setWarning(this.responseCache[this.nameToCheck]);
- return;
- }
- }
-
- this.timeoutID = setTimeout( function () {
- wgUploadWarningObj.timeout();
- }, this.delay );
- },
-
- checkNow: function ( fname ) {
- if ( !ajaxUploadDestCheck ) {
- return;
- }
- if ( this.timeoutID ) {
- clearTimeout( this.timeoutID );
- }
- this.nameToCheck = fname;
- this.timeout();
- },
-
- timeout: function () {
- if ( !ajaxUploadDestCheck || this.nameToCheck === '' ) {
- return;
- }
- $spinnerDestCheck = $.createSpinner().insertAfter( '#wpDestFile' );
-
- var uploadWarningObj = this;
- ( new mw.Api() ).get( {
- action: 'query',
- titles: ( new mw.Title( this.nameToCheck, mw.config.get( 'wgNamespaceIds' ).file ) ).getPrefixedText(),
- prop: 'imageinfo',
- iiprop: 'uploadwarning',
- indexpageids: ''
- } ).done( function ( result ) {
- var resultOut = '';
- if ( result.query ) {
- resultOut = result.query.pages[result.query.pageids[0]].imageinfo[0];
- }
- uploadWarningObj.processResult( resultOut, uploadWarningObj.nameToCheck );
- } );
- },
-
- processResult: function ( result, fileName ) {
- $spinnerDestCheck.remove();
- $spinnerDestCheck = undefined;
- this.setWarning( result.html );
- this.responseCache[fileName] = result.html;
- },
-
- setWarning: function ( warning ) {
- var warningElt = document.getElementById( 'wpDestFile-warning' ),
- ackElt = document.getElementsByName( 'wpDestFileWarningAck' );
-
- this.setInnerHTML( warningElt, warning );
-
- // Set a value in the form indicating that the warning is acknowledged and
- // doesn't need to be redisplayed post-upload
- if ( !warning ) {
- ackElt[0].value = '';
- } else {
- ackElt[0].value = '1';
- }
-
- },
- setInnerHTML: function ( element, text ) {
- // Check for no change to avoid flicker in IE 7
- if ( element.innerHTML !== text ) {
- element.innerHTML = text;
- }
- }
-};
-
-fillDestFilename = window.fillDestFilename = function ( id ) {
- var e, path, slash, backslash, fname,
- found, ext, i,
- destFile;
- if ( !mw.config.get( 'wgUploadAutoFill' ) ) {
- return;
- }
- if ( !document.getElementById ) {
- return;
- }
- // Remove any previously flagged errors
- e = document.getElementById( 'mw-upload-permitted' );
- if ( e ) {
- e.className = '';
- }
-
- e = document.getElementById( 'mw-upload-prohibited' );
- if ( e ) {
- e.className = '';
- }
-
- path = document.getElementById( id ).value;
- // Find trailing part
- slash = path.lastIndexOf( '/' );
- backslash = path.lastIndexOf( '\\' );
- if ( slash === -1 && backslash === -1 ) {
- fname = path;
- } else if ( slash > backslash ) {
- fname = path.substring( slash + 1, 10000 );
- } else {
- fname = path.substring( backslash + 1, 10000 );
- }
-
- // Clear the filename if it does not have a valid extension.
- // URLs are less likely to have a useful extension, so don't include them in the
- // extension check.
- if ( mw.config.get( 'wgStrictFileExtensions' ) && fileExtensions && id !== 'wpUploadFileURL' ) {
- found = false;
- if ( fname.lastIndexOf( '.' ) !== -1 ) {
- ext = fname.substr( fname.lastIndexOf( '.' ) + 1 );
- for ( i = 0; i < fileExtensions.length; i += 1 ) {
- if ( fileExtensions[i].toLowerCase() === ext.toLowerCase() ) {
- found = true;
- break;
- }
- }
- }
- if ( !found ) {
- // Not a valid extension
- // Clear the upload and set mw-upload-permitted to error
- document.getElementById( id ).value = '';
- e = document.getElementById( 'mw-upload-permitted' );
- if ( e ) {
- e.className = 'error';
- }
-
- e = document.getElementById( 'mw-upload-prohibited' );
- if ( e ) {
- e.className = 'error';
- }
-
- // Clear wpDestFile as well
- e = document.getElementById( 'wpDestFile' );
- if ( e ) {
- e.value = '';
- }
-
- return false;
- }
- }
-
- // Replace spaces by underscores
- fname = fname.replace( / /g, '_' );
- // Capitalise first letter if needed
- if ( mw.config.get( 'wgCapitalizeUploads' ) ) {
- fname = fname.charAt( 0 ).toUpperCase().concat( fname.substring( 1, 10000 ) );
- }
-
- // Output result
- destFile = document.getElementById( 'wpDestFile' );
- if ( destFile ) {
- // Call decodeURIComponent function to remove possible URL-encoded characters
- // from the file name (bug 30390). Especially likely with upload-form-url.
- // decodeURIComponent can throw an exception in input is invalid utf-8
- try {
- destFile.value = decodeURIComponent( fname );
- } catch ( err ) {
- destFile.value = fname;
- }
- wgUploadWarningObj.checkNow( fname );
- }
-};
-
-window.toggleFilenameFiller = function () {
- if ( !document.getElementById ) {
- return;
- }
- var destName = document.getElementById( 'wpDestFile' ).value;
- mw.config.set( 'wgUploadAutoFill', !destName );
-};
-
-wgUploadLicenseObj = window.wgUploadLicenseObj = {
-
- responseCache: { '' : '' },
-
- fetchPreview: function ( license ) {
- var cached, title;
- if ( !mw.config.get( 'wgAjaxLicensePreview' ) ) {
- return;
- }
- for ( cached in this.responseCache ) {
- if ( cached === license ) {
- this.showPreview( this.responseCache[license] );
- return;
- }
- }
-
- $spinnerLicense = $.createSpinner().insertAfter( '#wpLicense' );
-
- title = document.getElementById( 'wpDestFile' ).value;
- if ( !title ) {
- title = 'File:Sample.jpg';
- }
-
- ( new mw.Api() ).get( {
- action: 'parse',
- text: '{{' + license + '}}',
- title: title,
- prop: 'text',
- pst: ''
- } ).done( function ( result ) {
- wgUploadLicenseObj.processResult( result, license );
- } );
- },
-
- processResult: function ( result, license ) {
- $spinnerLicense.remove();
- $spinnerLicense = undefined;
- this.responseCache[license] = result.parse.text['*'];
- this.showPreview( this.responseCache[license] );
- },
-
- showPreview: function ( preview ) {
- var previewPanel = document.getElementById( 'mw-license-preview' );
- if ( previewPanel.innerHTML !== preview ) {
- previewPanel.innerHTML = preview;
- }
- }
-
-};
-
-$( uploadSetup );
-
-}( mediaWiki, jQuery ) );
diff --git a/skins/common/wikibits.js b/skins/common/wikibits.js
deleted file mode 100644
index d28ca0a3..00000000
--- a/skins/common/wikibits.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * MediaWiki legacy wikibits
- */
-( function ( mw, $ ) {
- var msg,
- win = window,
- ua = navigator.userAgent.toLowerCase(),
- isIE6 = ( /msie ([0-9]{1,}[\.0-9]{0,})/.exec( ua ) && parseFloat( RegExp.$1 ) <= 6.0 ),
- isGecko = /gecko/.test( ua ) && !/khtml|spoofer|netscape\/7\.0/.test( ua ),
- onloadFuncts = [];
-
-if ( mw.config.get( 'wgBreakFrames' ) ) {
- // Note: In IE < 9 strict comparison to window is non-standard (the standard didn't exist yet)
- // it works only comparing to window.self or window.window (http://stackoverflow.com/q/4850978/319266)
- if ( win.top !== win.self ) {
- // Un-trap us from framesets
- win.top.location = win.location;
- }
-}
-
-win.redirectToFragment = function ( fragment ) {
- var webKitVersion,
- match = navigator.userAgent.match( /AppleWebKit\/(\d+)/ );
- if ( match ) {
- webKitVersion = parseInt( match[1], 10 );
- if ( webKitVersion < 420 ) {
- // Released Safari w/ WebKit 418.9.1 messes up horribly
- // Nightlies of 420+ are ok
- return;
- }
- }
- if ( !win.location.hash ) {
- win.location.hash = fragment;
-
- // Mozilla needs to wait until after load, otherwise the window doesn't
- // scroll. See <https://bugzilla.mozilla.org/show_bug.cgi?id=516293>.
- // There's no obvious way to detect this programmatically, so we use
- // version-testing. If Firefox fixes the bug, they'll jump twice, but
- // better twice than not at all, so make the fix hit future versions as
- // well.
- if ( isGecko ) {
- $( function () {
- if ( win.location.hash === fragment ) {
- win.location.hash = fragment;
- }
- } );
- }
- }
-};
-
-/**
- * User-agent sniffing.
- * To be removed in MediaWiki 1.23.
- *
- * @deprecated since 1.17 Use jquery.client instead
- */
-
-msg = 'Use feature detection or module jquery.client instead';
-
-mw.log.deprecate( win, 'clientPC', ua, msg );
-
-// Ignored dummy values
-mw.log.deprecate( win, 'is_gecko', false, msg );
-mw.log.deprecate( win, 'is_chrome_mac', false, msg );
-mw.log.deprecate( win, 'is_chrome', false, msg );
-mw.log.deprecate( win, 'webkit_version', false, msg );
-mw.log.deprecate( win, 'is_safari_win', false, msg );
-mw.log.deprecate( win, 'is_safari', false, msg );
-mw.log.deprecate( win, 'webkit_match', false, msg );
-mw.log.deprecate( win, 'is_ff2', false, msg );
-mw.log.deprecate( win, 'ff2_bugs', false, msg );
-mw.log.deprecate( win, 'is_ff2_win', false, msg );
-mw.log.deprecate( win, 'is_ff2_x11', false, msg );
-mw.log.deprecate( win, 'opera95_bugs', false, msg );
-mw.log.deprecate( win, 'opera7_bugs', false, msg );
-mw.log.deprecate( win, 'opera6_bugs', false, msg );
-mw.log.deprecate( win, 'is_opera_95', false, msg );
-mw.log.deprecate( win, 'is_opera_preseven', false, msg );
-mw.log.deprecate( win, 'is_opera', false, msg );
-mw.log.deprecate( win, 'ie6_bugs', false, msg );
-
-/**
- * DOM utilities for handling of events, text nodes and selecting elements
- *
- * To be removed in MediaWiki 1.23.
- *
- * @deprecated since 1.17 Use jQuery instead
- */
-msg = 'Use jQuery instead';
-
-// Ignored dummy values
-mw.log.deprecate( win, 'doneOnloadHook', undefined, msg );
-mw.log.deprecate( win, 'onloadFuncts', [], msg );
-mw.log.deprecate( win, 'runOnloadHook', $.noop, msg );
-mw.log.deprecate( win, 'changeText', $.noop, msg );
-mw.log.deprecate( win, 'killEvt', $.noop, msg );
-mw.log.deprecate( win, 'addHandler', $.noop, msg );
-mw.log.deprecate( win, 'hookEvent', $.noop, msg );
-mw.log.deprecate( win, 'addClickHandler', $.noop, msg );
-mw.log.deprecate( win, 'removeHandler', $.noop, msg );
-mw.log.deprecate( win, 'getElementsByClassName', function () { return []; }, msg );
-mw.log.deprecate( win, 'getInnerText', function () { return ''; }, msg );
-
-// Run a function after the window onload event is fired
-mw.log.deprecate( win, 'addOnloadHook', function ( hookFunct ) {
- if ( onloadFuncts ) {
- onloadFuncts.push(hookFunct);
- } else {
- // If func queue is gone the event has happened already,
- // run immediately instead of queueing.
- hookFunct();
- }
-}, msg );
-
-$( win ).on( 'load', function () {
- var i, functs;
-
- // Don't run twice
- if ( !onloadFuncts ) {
- return;
- }
-
- // Deference and clear onloadFuncts before running any
- // hooks to make sure we don't miss any addOnloadHook
- // calls.
- functs = onloadFuncts.slice();
- onloadFuncts = undefined;
-
- // Execute the queued functions
- for ( i = 0; i < functs.length; i++ ) {
- functs[i]();
- }
-} );
-
-/**
- * Toggle checkboxes with shift selection
- *
- * To be removed in MediaWiki 1.23.
- *
- * @deprecated since 1.17 Use jquery.checkboxShiftClick instead
- */
-msg = 'Use jquery.checkboxShiftClick instead';
-mw.log.deprecate( win, 'checkboxes', [], msg );
-mw.log.deprecate( win, 'lastCheckbox', null, msg );
-mw.log.deprecate( win, 'setupCheckboxShiftClick', $.noop, msg );
-mw.log.deprecate( win, 'addCheckboxClickHandlers', $.noop, msg );
-mw.log.deprecate( win, 'checkboxClickHandler', $.noop, msg );
-
-/**
- * Add a button to the default editor toolbar
- *
- * To be removed in MediaWiki 1.23.
- *
- * @deprecated since 1.17 Use mw.toolbar instead
- */
-mw.log.deprecate( win, 'mwEditButtons', [], 'Use mw.toolbar instead' );
-mw.log.deprecate( win, 'mwCustomEditButtons', [], 'Use mw.toolbar instead' );
-
-/**
- * Spinner creation, injection and removal
- *
- * To be removed in MediaWiki 1.23.
- *
- * @deprecated since 1.18 Use jquery.spinner instead
- */
-mw.log.deprecate( win, 'injectSpinner', $.noop, 'Use jquery.spinner instead' );
-mw.log.deprecate( win, 'removeSpinner', $.noop, 'Use jquery.spinner instead' );
-
-/**
- * Escape utilities
- *
- * To be removed in MediaWiki 1.23.
- *
- * @deprecated since 1.18 Use mw.html instead
- */
-mw.log.deprecate( win, 'escapeQuotes', $.noop,'Use mw.html instead' );
-mw.log.deprecate( win, 'escapeQuotesHTML', $.noop,'Use mw.html instead' );
-
-/**
- * Display a message to the user
- *
- * To be removed in MediaWiki 1.23.
- *
- * @deprecated since 1.17 Use mediawiki.notify instead
- * @param {string|HTMLElement} message To be put inside the message box
- */
-mw.log.deprecate( win, 'jsMsg', mw.util.jsMessage, 'Use mediawiki.notify instead' );
-
-/**
- * Misc. utilities
- *
- * To be removed in MediaWiki 1.23.
- *
- * @deprecated since 1.17 Use mediawiki.util instead
- */
-msg = 'Use mediawiki.util instead';
-mw.log.deprecate( win, 'tooltipAccessKeyPrefix', 'alt-', msg );
-mw.log.deprecate( win, 'tooltipAccessKeyRegexp', /\[(alt-)?(.)\]$/, msg );
-mw.log.deprecate( win, 'updateTooltipAccessKeys', mw.util.updateTooltipAccessKeys, msg );
-mw.log.deprecate( win, 'addPortletLink', mw.util.addPortletLink, msg );
-mw.log.deprecate( win, 'appendCSS', mw.util.addCSS, msg );
-
-/**
- * Wikipage import methods
- */
-
-// included-scripts tracker
-win.loadedScripts = {};
-
-win.importScript = function ( page ) {
- var uri = mw.config.get( 'wgScript' ) + '?title=' +
- mw.util.wikiUrlencode( page ) +
- '&action=raw&ctype=text/javascript';
- return win.importScriptURI( uri );
-};
-
-win.importScriptURI = function ( url ) {
- if ( win.loadedScripts[url] ) {
- return null;
- }
- win.loadedScripts[url] = true;
- var s = document.createElement( 'script' );
- s.setAttribute( 'src', url );
- s.setAttribute( 'type', 'text/javascript' );
- document.getElementsByTagName( 'head' )[0].appendChild( s );
- return s;
-};
-
-win.importStylesheet = function( page ) {
- return win.importStylesheetURI( mw.config.get( 'wgScript' ) + '?action=raw&ctype=text/css&title=' + mw.util.wikiUrlencode( page ) );
-};
-
-win.importStylesheetURI = function( url, media ) {
- var l = document.createElement( 'link' );
- l.rel = 'stylesheet';
- l.href = url;
- if ( media ) {
- l.media = media;
- }
- document.getElementsByTagName('head')[0].appendChild( l );
- return l;
-};
-
-if ( isIE6 ) {
- win.importScriptURI( mw.config.get( 'stylepath' ) + '/common/IEFixes.js' );
-}
-
-}( mediaWiki, jQuery ) );
diff --git a/skins/modern/audio.png b/skins/modern/audio.png
deleted file mode 100644
index 68c8768c..00000000
--- a/skins/modern/audio.png
+++ /dev/null
Binary files differ
diff --git a/skins/modern/discussionitem_icon.gif b/skins/modern/discussionitem_icon.gif
deleted file mode 100644
index e3ca6d9e..00000000
--- a/skins/modern/discussionitem_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/modern/document.png b/skins/modern/document.png
deleted file mode 100644
index ee46a50d..00000000
--- a/skins/modern/document.png
+++ /dev/null
Binary files differ
diff --git a/skins/modern/file_icon.gif b/skins/modern/file_icon.gif
deleted file mode 100644
index 69dbeaf7..00000000
--- a/skins/modern/file_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/modern/mail_icon.gif b/skins/modern/mail_icon.gif
deleted file mode 100644
index cf5680d9..00000000
--- a/skins/modern/mail_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/modern/news_icon.png b/skins/modern/news_icon.png
deleted file mode 100644
index 4d3cb476..00000000
--- a/skins/modern/news_icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/audio.png b/skins/monobook/audio.png
deleted file mode 100644
index 68c8768c..00000000
--- a/skins/monobook/audio.png
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/bullet.gif b/skins/monobook/bullet.gif
deleted file mode 100644
index b43de48a..00000000
--- a/skins/monobook/bullet.gif
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/discussionitem_icon.gif b/skins/monobook/discussionitem_icon.gif
deleted file mode 100644
index e3ca6d9e..00000000
--- a/skins/monobook/discussionitem_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/document.png b/skins/monobook/document.png
deleted file mode 100644
index ee46a50d..00000000
--- a/skins/monobook/document.png
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/external-ltr.png b/skins/monobook/external-ltr.png
deleted file mode 100644
index 63083831..00000000
--- a/skins/monobook/external-ltr.png
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/external-rtl.png b/skins/monobook/external-rtl.png
deleted file mode 100644
index 5313234e..00000000
--- a/skins/monobook/external-rtl.png
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/file_icon.gif b/skins/monobook/file_icon.gif
deleted file mode 100644
index 69dbeaf7..00000000
--- a/skins/monobook/file_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/link_icon.gif b/skins/monobook/link_icon.gif
deleted file mode 100644
index 168c1a2f..00000000
--- a/skins/monobook/link_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/lock_icon.gif b/skins/monobook/lock_icon.gif
deleted file mode 100644
index f71cd9b8..00000000
--- a/skins/monobook/lock_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/mail_icon.gif b/skins/monobook/mail_icon.gif
deleted file mode 100644
index cf5680d9..00000000
--- a/skins/monobook/mail_icon.gif
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/news_icon.png b/skins/monobook/news_icon.png
deleted file mode 100644
index 4d3cb476..00000000
--- a/skins/monobook/news_icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/monobook/video.png b/skins/monobook/video.png
deleted file mode 100644
index d86dbe01..00000000
--- a/skins/monobook/video.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/beta/screen.less b/skins/vector/beta/screen.less
deleted file mode 100644
index 6d56cd5c..00000000
--- a/skins/vector/beta/screen.less
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Content */
-#content {
- line-height: 1.5em;
- .mw-editsection {
- font-family: @content-font-family;
- }
-
- h1,
- #firstHeading {
- font-family: @content-heading-font-family;
- font-size: 1.833em;
- line-height: 22pt;
- padding: 0;
- margin-bottom: 4pt;
- }
-
- h2 {
- font-size: 1.5em;
- line-height: 22pt;
- }
-
- h2,
- h3,
- h4,
- h5,
- h6 {
- font-family: @content-heading-font-family;
- padding: 0;
- margin-bottom: 4pt;
- margin-top: 14pt;
- }
-
- h3 {
- font-size: 1.17em;
- line-height: 22pt;
- }
-
- h3,
- h4 {
- font-weight: bold;
- }
-
- h4,
- h5,
- h6 {
- font-size: 100%; /* (reset) */
- }
-
- h6 {
- font-style: italic;
- }
-
- p {
- margin-bottom: 8pt;
- }
-
- // FIXME: this is hacky
- #toc h2 {
- font-size: 100%;
- }
-}
-
-/* Personal menu */
-#p-personal a {
- color: #555;
-}
-
-/* Main menu */
-div#mw-panel div.portal {
- margin-left: 1.25em;
- h3 {
- margin: 0;
- line-height: 1;
- }
-}
diff --git a/skins/vector/beta/variables.less b/skins/vector/beta/variables.less
deleted file mode 100644
index 08e662dc..00000000
--- a/skins/vector/beta/variables.less
+++ /dev/null
@@ -1,37 +0,0 @@
-@html-font-size: 90%;
-
-@body-font-size: inherit;
-
-// Page content
-@content-font-family: "Helvetica Neue", "Helvetica", "Nimbus Sans L", "Arial", "Liberation Sans", sans-serif;
-@content-font-color: #252525;
-@content-font-size: 0.9em;
-@content-line-height: inherit;
-@content-padding: 1em;
-@content-heading-font-size: 1.6em;
-@content-heading-font-family: Georgia, "DejaVu Serif", serif;
-
-// Common menu
-@menu-link-color: #555;
-
-// Main menu
-@menu-main-font-size: 0.82em;
-@menu-main-heading-font-size: 100%;
-@menu-main-heading-padding: 5px 0;
-
-@menu-main-body-font-size: inherit;
-@menu-main-body-link-color: inherit;
-@menu-main-body-link-visited-color: inherit;
-@menu-main-body-margin: 0;
-@menu-main-body-padding: 0 0 10px;
-@menu-main-logo-left: 1.6em;
-
-// Personal menu
-@menu-personal-font-size: 0.75em;
-
-// Collapsible nav
-@collapsible-nav-heading-color: #555;
-@collapsible-nav-heading-collapsed-color: inherit;
-
-@collapsible-nav-heading-padding: 4px 0 3px 1.5em;
-@collapsible-nav-body-margin: 0 0 0 1.25em;
diff --git a/skins/vector/collapsibleNav.js b/skins/vector/collapsibleNav.js
deleted file mode 100644
index 67313c95..00000000
--- a/skins/vector/collapsibleNav.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * Collapsible navigation for Vector
- */
-( function ( mw, $ ) {
- 'use strict';
- var map;
-
- // Use the same function for all navigation headings - don't repeat
- function toggle( $element ) {
- $.cookie(
- 'vector-nav-' + $element.parent().attr( 'id' ),
- $element.parent().is( '.collapsed' ),
- { 'expires': 30, 'path': '/' }
- );
- $element
- .parent()
- .toggleClass( 'expanded' )
- .toggleClass( 'collapsed' )
- .find( '.body' )
- .slideToggle( 'fast' );
- }
-
- /* Browser Support */
-
- map = {
- // Left-to-right languages
- ltr: {
- // Collapsible Nav is broken in Opera < 9.6 and Konqueror < 4
- opera: [['>=', 9.6]],
- konqueror: [['>=', 4.0]],
- blackberry: false,
- ipod: false,
- iphone: false,
- ps3: false
- },
- // Right-to-left languages
- rtl: {
- opera: [['>=', 9.6]],
- konqueror: [['>=', 4.0]],
- blackberry: false,
- ipod: false,
- iphone: false,
- ps3: false
- }
- };
- if ( !$.client.test( map ) ) {
- return true;
- }
-
- $( function ( $ ) {
- var $headings, tabIndex;
-
- /* General Portal Modification */
-
- // Always show the first portal
- $( '#mw-panel > .portal:first' ).addClass( 'first persistent' );
- // Apply a class to the entire panel to activate styles
- $( '#mw-panel' ).addClass( 'collapsible-nav' );
- // Use cookie data to restore preferences of what to show and hide
- $( '#mw-panel > .portal:not(.persistent)' )
- .each( function ( i ) {
- var id = $(this).attr( 'id' ),
- state = $.cookie( 'vector-nav-' + id );
- // Add anchor tag to heading for better accessibility
- $( this ).find( 'h3' ).wrapInner( $( '<a href="#"></a>' ).click( false ) );
- // In the case that we are not showing the new version, let's show the languages by default
- if (
- state === 'true' ||
- ( state === null && i < 1 ) ||
- ( state === null && id === 'p-lang' )
- ) {
- $(this)
- .addClass( 'expanded' )
- .removeClass( 'collapsed' )
- .find( '.body' )
- .hide() // bug 34450
- .show();
- } else {
- $(this)
- .addClass( 'collapsed' )
- .removeClass( 'expanded' );
- }
- // Re-save cookie
- if ( state !== null ) {
- $.cookie( 'vector-nav-' + $(this).attr( 'id' ), state, { 'expires': 30, 'path': '/' } );
- }
- } );
-
- /* Tab Indexing */
-
- $headings = $( '#mw-panel > .portal:not(.persistent) > h3' );
-
- // Get the highest tab index
- tabIndex = $( document ).lastTabIndex() + 1;
-
- // Fix the search not having a tabindex
- $( '#searchInput' ).attr( 'tabindex', tabIndex++ );
-
- // Make it keyboard accessible
- $headings.attr( 'tabindex', function () {
- return tabIndex++;
- });
-
- // Toggle the selected menu's class and expand or collapse the menu
- $( '#mw-panel' )
- .delegate( '.portal:not(.persistent) > h3', 'keydown', function ( e ) {
- // Make the space and enter keys act as a click
- if ( e.which === 13 /* Enter */ || e.which === 32 /* Space */ ) {
- toggle( $(this) );
- }
- } )
- .delegate( '.portal:not(.persistent) > h3', 'mousedown', function ( e ) {
- if ( e.which !== 3 ) { // Right mouse click
- toggle( $(this) );
- $(this).blur();
- }
- return false;
- } );
- });
-
-}( mediaWiki, jQuery ) );
diff --git a/skins/vector/collapsibleNav.less b/skins/vector/collapsibleNav.less
deleted file mode 100644
index e6f5c9aa..00000000
--- a/skins/vector/collapsibleNav.less
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * LESS Stylesheet for collapsible nav
- */
-@import "mediawiki.mixins.less";
-
-#mw-panel.collapsible-nav {
- .portal {
- background-position: left top;
- background-repeat: no-repeat;
- .background-image('images/portal-break.png');
- padding: 0.25em 0 !important;
- margin: -11px 9px 10px 11px;
-
- h3 {
- font-size: @menu-main-heading-font-size;
- color: @collapsible-nav-heading-color;
- font-weight: normal;
- background-position: left center;
- background-repeat: no-repeat;
- .background-image-svg('images/arrow-expanded.svg', 'images/arrow-expanded.png');
- padding: @collapsible-nav-heading-padding;
- margin-bottom: 0;
-
- &:hover {
- cursor: pointer;
- text-decoration: none;
- }
-
- a {
- color: @collapsible-nav-heading-color;
- text-decoration: none;
- }
- }
-
- .body {
- margin: @collapsible-nav-body-margin;
- background-image: none !important;
- padding-top: 0;
- display: none;
-
- ul {
- li {
- padding: 0.25em 0;
- }
- }
- }
-
-
- /* First */
- &.first {
- background-image: none;
- margin-top: 0;
- h3 {
- display: none;
- }
- }
-
- /* Persistent */
- &.persistent {
- .body {
- display: block;
- margin-left: 0.5em;
- }
-
- h3 {
- background-image: none !important;
- padding-left: 0.7em;
- cursor: default;
- }
- }
-
- /* Collapsed */
- &.collapsed {
- h3 {
- color: @collapsible-nav-heading-collapsed-color;
- background-position: left center;
- background-repeat: no-repeat;
- .background-image-svg('images/arrow-collapsed-ltr.svg', 'images/arrow-collapsed-ltr.png');
- margin-bottom: 0;
-
- &:hover {
- text-decoration: underline;
- }
-
- a {
- color: @collapsible-nav-heading-collapsed-color;
- }
- }
- }
- }
-}
diff --git a/skins/vector/externalLinks.less b/skins/vector/externalLinks.less
deleted file mode 100644
index 5b02abbd..00000000
--- a/skins/vector/externalLinks.less
+++ /dev/null
@@ -1,75 +0,0 @@
-// FIXME: This size of this CSS is ridiculous. Please refactor (see bug 54604)
-@import "mediawiki.mixins.less";
-
-div#content a.external {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/external-link-ltr-icon.png');
- padding-right: 13px;
-}
-div#content a.external[href ^="https://"],
-.link-https {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/lock-icon.png');
- padding-right: 13px;
-}
-div#content a.external[href ^="mailto:"],
-.link-mailto {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/mail-icon.png');
- padding-right: 13px;
-}
-div#content a.external[href ^="news:"] {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/news-icon.png');
- padding-right: 13px;
-}
-div#content a.external[href ^="ftp://"],
-.link-ftp {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/file-icon.png');
- padding-right: 13px;
-}
-div#content a.external[href ^="irc://"],
-div#content a.external[href ^="ircs://"],
-.link-irc {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/talk-icon.png');
- padding-right: 13px;
-}
-div#content a.external[href $=".ogg"], div#content a.external[href $=".OGG"],
-div#content a.external[href $=".mid"], div#content a.external[href $=".MID"],
-div#content a.external[href $=".midi"], div#content a.external[href $=".MIDI"],
-div#content a.external[href $=".mp3"], div#content a.external[href $=".MP3"],
-div#content a.external[href $=".wav"], div#content a.external[href $=".WAV"],
-div#content a.external[href $=".wma"], div#content a.external[href $=".WMA"],
-.link-audio {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/audio-icon.png');
- padding-right: 13px;
-}
-div#content a.external[href $=".ogm"], div#content a.external[href $=".OGM"],
-div#content a.external[href $=".avi"], div#content a.external[href $=".AVI"],
-div#content a.external[href $=".mpeg"], div#content a.external[href $=".MPEG"],
-div#content a.external[href $=".mpg"], div#content a.external[href $=".MPG"],
-.link-video {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/video-icon.png');
- padding-right: 13px;
-}
-div#content a.external[href $=".pdf"], div#content a.external[href $=".PDF"],
-div#content a.external[href *=".pdf#"], div#content a.external[href *=".PDF#"],
-div#content a.external[href *=".pdf?"], div#content a.external[href *=".PDF?"],
-.link-document {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image('images/document-icon.png');
- padding-right: 13px;
-}
diff --git a/skins/vector/images/arrow-collapsed-ltr.svg b/skins/vector/images/arrow-collapsed-ltr.svg
deleted file mode 100644
index d0c4729c..00000000
--- a/skins/vector/images/arrow-collapsed-ltr.svg
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- version="1.1"
- width="16"
- height="16"
- id="svg2">
- <defs
- id="defs4" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- transform="translate(0,-1036.0288)"
- id="layer1">
- <path
- d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
- transform="matrix(0,-2.7307791,1.576616,0,0.05143855,1066.4148)"
- id="path2985"
- style="fill:#797979;fill-opacity:1;stroke:none" />
- </g>
-</svg>
diff --git a/skins/vector/images/arrow-collapsed-rtl.svg b/skins/vector/images/arrow-collapsed-rtl.svg
deleted file mode 100644
index 8c5e04b9..00000000
--- a/skins/vector/images/arrow-collapsed-rtl.svg
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- version="1.1"
- width="16"
- height="16"
- id="svg2">
- <defs
- id="defs4" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- transform="translate(0,-1036.0288)"
- id="layer1">
- <path
- d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
- transform="matrix(0,2.7307791,-1.576616,0,15.948561,1021.6428)"
- id="path2985"
- style="fill:#797979;fill-opacity:1;stroke:none" />
- </g>
-</svg>
diff --git a/skins/vector/images/arrow-down-focus-icon.svg b/skins/vector/images/arrow-down-focus-icon.svg
deleted file mode 100644
index f2edf263..00000000
--- a/skins/vector/images/arrow-down-focus-icon.svg
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- version="1.1"
- width="22"
- height="16"
- id="svg2">
- <defs
- id="defs4" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- transform="translate(0,-1036.3622)"
- id="layer1">
- <path
- d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
- transform="matrix(2.7307791,0,0,1.576616,-11.885956,1036.4136)"
- id="path2985"
- style="fill:#929292;fill-opacity:1;stroke:none" />
- </g>
-</svg>
diff --git a/skins/vector/images/arrow-down-icon.svg b/skins/vector/images/arrow-down-icon.svg
deleted file mode 100644
index 9218ff28..00000000
--- a/skins/vector/images/arrow-down-icon.svg
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- version="1.1"
- width="22"
- height="16"
- id="svg2">
- <defs
- id="defs4" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- transform="translate(0,-1036.3622)"
- id="layer1">
- <path
- d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
- transform="matrix(2.7307791,0,0,1.576616,-11.885956,1036.4136)"
- id="path2985"
- style="fill:#797979;fill-opacity:1;stroke:none" />
- </g>
-</svg>
diff --git a/skins/vector/images/arrow-expanded.svg b/skins/vector/images/arrow-expanded.svg
deleted file mode 100644
index 60704d27..00000000
--- a/skins/vector/images/arrow-expanded.svg
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- version="1.1"
- width="16"
- height="16"
- id="svg2">
- <defs
- id="defs4" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- transform="translate(0,-1036.3622)"
- id="layer1">
- <path
- d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
- transform="matrix(2.7307791,0,0,1.576616,-14.385956,1036.4136)"
- id="path2985"
- style="fill:#797979;fill-opacity:1;stroke:none" />
- </g>
-</svg>
diff --git a/skins/vector/images/audio-icon.png b/skins/vector/images/audio-icon.png
deleted file mode 100644
index 5a1d2f43..00000000
--- a/skins/vector/images/audio-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/document-icon.png b/skins/vector/images/document-icon.png
deleted file mode 100644
index 4d56572b..00000000
--- a/skins/vector/images/document-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/edit-icon.png b/skins/vector/images/edit-icon.png
deleted file mode 100644
index 43e46919..00000000
--- a/skins/vector/images/edit-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/file-icon.png b/skins/vector/images/file-icon.png
deleted file mode 100644
index ed246698..00000000
--- a/skins/vector/images/file-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/lock-icon.png b/skins/vector/images/lock-icon.png
deleted file mode 100644
index a9ba8a72..00000000
--- a/skins/vector/images/lock-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/magnify-clip.png b/skins/vector/images/magnify-clip.png
deleted file mode 100644
index 00a9cee1..00000000
--- a/skins/vector/images/magnify-clip.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/mail-icon.png b/skins/vector/images/mail-icon.png
deleted file mode 100644
index 0d93a2f8..00000000
--- a/skins/vector/images/mail-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/news-icon.png b/skins/vector/images/news-icon.png
deleted file mode 100644
index 6f27054b..00000000
--- a/skins/vector/images/news-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/talk-icon.png b/skins/vector/images/talk-icon.png
deleted file mode 100644
index 0332054e..00000000
--- a/skins/vector/images/talk-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/user-icon.png b/skins/vector/images/user-icon.png
deleted file mode 100644
index 57f9f8db..00000000
--- a/skins/vector/images/user-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/user-icon.svg b/skins/vector/images/user-icon.svg
deleted file mode 100644
index 767d5107..00000000
--- a/skins/vector/images/user-icon.svg
+++ /dev/null
@@ -1,424 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- width="12"
- height="13.837458"
- id="svg2108">
- <metadata
- id="metadata68">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3">
- <linearGradient
- id="linearGradient4356">
- <stop
- id="stop4358"
- style="stop-color:#000000;stop-opacity:1"
- offset="0" />
- <stop
- id="stop4360"
- style="stop-color:#000000;stop-opacity:0"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient4344">
- <stop
- id="stop4346"
- style="stop-color:#727e0a;stop-opacity:1"
- offset="0" />
- <stop
- id="stop4348"
- style="stop-color:#5b6508;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient4338">
- <stop
- id="stop4340"
- style="stop-color:#e9b15e;stop-opacity:1"
- offset="0" />
- <stop
- id="stop4342"
- style="stop-color:#966416;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient4163">
- <stop
- id="stop4165"
- style="stop-color:#3b74bc;stop-opacity:1"
- offset="0" />
- <stop
- id="stop4167"
- style="stop-color:#2d5990;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient3824">
- <stop
- id="stop3826"
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0" />
- <stop
- id="stop3828"
- style="stop-color:#c9c9c9;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient3816">
- <stop
- id="stop3818"
- style="stop-color:#000000;stop-opacity:1"
- offset="0" />
- <stop
- id="stop3820"
- style="stop-color:#000000;stop-opacity:0"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient3800">
- <stop
- id="stop3802"
- style="stop-color:#f4d9b1;stop-opacity:1"
- offset="0" />
- <stop
- id="stop3804"
- style="stop-color:#df9725;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <radialGradient
- cx="29.344931"
- cy="17.064077"
- r="9.1620579"
- fx="29.344931"
- fy="17.064077"
- id="radialGradient3806"
- xlink:href="#linearGradient3800"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- cx="31.112698"
- cy="19.008621"
- r="8.6620579"
- fx="31.112698"
- fy="19.008621"
- id="radialGradient3822"
- xlink:href="#linearGradient3816"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- x1="30.935921"
- y1="29.553486"
- x2="30.935921"
- y2="35.803486"
- id="linearGradient3830"
- xlink:href="#linearGradient3824"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- cx="28.089741"
- cy="27.203083"
- r="13.56536"
- fx="28.089741"
- fy="27.203083"
- id="radialGradient4169"
- xlink:href="#linearGradient4163"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.297564,0,0,0.884831,-8.358505,4.940469)" />
- <radialGradient
- cx="29.344931"
- cy="17.064077"
- r="9.1620579"
- fx="29.344931"
- fy="17.064077"
- id="radialGradient4171"
- xlink:href="#linearGradient3800"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.787998,0,0,0.787998,6.221198,3.617627)" />
- <linearGradient
- x1="30.935921"
- y1="29.553486"
- x2="30.935921"
- y2="35.803486"
- id="linearGradient4175"
- xlink:href="#linearGradient3824"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(0.707108,0)" />
- <radialGradient
- cx="31.112698"
- cy="19.008621"
- r="8.6620579"
- fx="31.112698"
- fy="19.008621"
- id="radialGradient4179"
- xlink:href="#linearGradient3816"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- x1="30.935921"
- y1="29.553486"
- x2="30.935921"
- y2="35.803486"
- id="linearGradient4326"
- xlink:href="#linearGradient3824"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-12.41789,-7)" />
- <radialGradient
- cx="29.344931"
- cy="17.064077"
- r="9.1620579"
- fx="29.344931"
- fy="17.064077"
- id="radialGradient4328"
- xlink:href="#linearGradient4338"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.787998,0,0,0.787998,6.221198,3.617627)" />
- <radialGradient
- cx="31.112698"
- cy="19.008621"
- r="8.6620579"
- fx="31.112698"
- fy="19.008621"
- id="radialGradient4330"
- xlink:href="#linearGradient3816"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- x1="30.935921"
- y1="29.553486"
- x2="30.935921"
- y2="35.803486"
- id="linearGradient4332"
- xlink:href="#linearGradient3824"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-13.125,-7)" />
- <radialGradient
- cx="31.112698"
- cy="19.008621"
- r="8.6620579"
- fx="31.112698"
- fy="19.008621"
- id="radialGradient4336"
- xlink:href="#linearGradient3816"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- cx="16.214741"
- cy="19.836468"
- r="13.56536"
- fx="16.214741"
- fy="19.836468"
- id="radialGradient4350"
- xlink:href="#linearGradient4344"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.681917,0,8.233773)" />
- <linearGradient
- x1="20.661695"
- y1="35.817974"
- x2="22.626925"
- y2="36.217758"
- id="linearGradient4362"
- xlink:href="#linearGradient4356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)" />
- <linearGradient
- x1="22.686766"
- y1="36.3904"
- x2="21.408455"
- y2="35.739632"
- id="linearGradient4366"
- xlink:href="#linearGradient4356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.1096,-3.945209)" />
- <linearGradient
- x1="20.661695"
- y1="35.817974"
- x2="22.626925"
- y2="36.217758"
- id="linearGradient4372"
- xlink:href="#linearGradient4356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.07212,-9.82492)" />
- <linearGradient
- x1="22.686766"
- y1="36.3904"
- x2="21.408455"
- y2="35.739632"
- id="linearGradient4374"
- xlink:href="#linearGradient4356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)" />
- <linearGradient
- x1="22.686766"
- y1="36.3904"
- x2="21.408455"
- y2="35.739632"
- id="linearGradient1366"
- xlink:href="#linearGradient4356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)" />
- <linearGradient
- x1="20.661695"
- y1="35.817974"
- x2="22.626925"
- y2="36.217758"
- id="linearGradient1369"
- xlink:href="#linearGradient4356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.07212,-9.82492)" />
- <linearGradient
- x1="30.935921"
- y1="29.553486"
- x2="30.935921"
- y2="35.803486"
- id="linearGradient1372"
- xlink:href="#linearGradient3824"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-12.41789,-7)" />
- <radialGradient
- cx="16.214741"
- cy="19.836468"
- r="13.56536"
- fx="16.214741"
- fy="19.836468"
- id="radialGradient1381"
- xlink:href="#linearGradient4344"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.681917,0,8.233773)" />
- <radialGradient
- cx="31.112698"
- cy="19.008621"
- r="8.6620579"
- fx="31.112698"
- fy="19.008621"
- id="radialGradient2243"
- xlink:href="#linearGradient3816"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- cx="28.089741"
- cy="27.203083"
- r="13.56536"
- fx="28.089741"
- fy="27.203083"
- id="radialGradient2245"
- xlink:href="#linearGradient4163"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.297564,0,0,0.884831,-8.358505,4.940469)" />
- <linearGradient
- x1="30.935921"
- y1="29.553486"
- x2="30.935921"
- y2="35.803486"
- id="linearGradient2247"
- xlink:href="#linearGradient3824"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- cx="31.112698"
- cy="19.008621"
- r="8.6620579"
- fx="31.112698"
- fy="19.008621"
- id="radialGradient2249"
- xlink:href="#linearGradient3816"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- cx="29.344931"
- cy="17.064077"
- r="9.1620579"
- fx="29.344931"
- fy="17.064077"
- id="radialGradient2251"
- xlink:href="#linearGradient3800"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.787998,0,0,0.787998,6.221198,3.617627)" />
- <linearGradient
- x1="20.661695"
- y1="35.817974"
- x2="22.626925"
- y2="36.217758"
- id="linearGradient2253"
- xlink:href="#linearGradient4356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)" />
- <linearGradient
- x1="22.686766"
- y1="36.3904"
- x2="21.408455"
- y2="35.739632"
- id="linearGradient2255"
- xlink:href="#linearGradient4356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.1096,-3.945209)" />
- </defs>
- <g
- transform="translate(-5.0000039,-32.070112)"
- id="layer1"
- style="display:inline" />
- <g
- transform="translate(-5.0000039,-32.070112)"
- id="layer2"
- style="display:inline">
- <g
- transform="matrix(0.39012793,0,0,0.39012793,-1.0891578,28.22979)"
- id="g2230">
- <path
- d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
- transform="matrix(1.77551,0,0,0.959183,-24.25322,18.77153)"
- id="path4306"
- style="color:#000000;fill:url(#radialGradient2243);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 25.986174,41.636039 10.606602,0 c 3.005204,0 5.980484,-1.101932 7.071067,-4.242641 1.035639,-2.982476 0.176777,-8.662058 -6.540737,-13.258252 l -12.551146,0 c -6.717514,4.24264 -7.556991,10.044831 -6.010407,13.435028 1.575595,3.45379 4.24264,4.065865 7.424621,4.065865 z"
- id="path4308"
- style="color:#000000;fill:url(#radialGradient2245);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 26.693281,25.726136 c 3.18198,2.828427 4.596194,13.081476 4.596194,13.081476 0,0 1.414213,-10.253048 3.889087,-13.258252 l -8.485281,0.176776 z"
- id="path4310"
- style="color:#000000;fill:url(#linearGradient2247);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 28.972721,26.786797 c 0,0 -2.151323,1.660335 -1.965991,3.660533 -2.041226,-1.800794 -2.099873,-5.251524 -2.099873,-5.251524 l 4.065864,1.590991 z"
- id="path4312"
- style="color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 25.914862,40.593933 10.493447,-0.0221 c 2.639723,0 5.253161,-0.967919 6.211112,-3.726667 0.909689,-2.61976 -0.09472,-7.608614 -5.995279,-11.645837 L 25.099417,24.956264 c -5.900557,3.726667 -7.04262,8.823219 -5.662029,12.044182 1.380592,3.220963 3.395211,3.57139 6.477474,3.593487 z"
- id="path4314"
- style="opacity:0.21518986;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 33.410795,26.786797 c 0,0 2.151323,1.660335 1.965991,3.660533 2.041226,-1.800794 2.099873,-5.251524 2.099873,-5.251524 l -4.065864,1.590991 z"
- id="path4316"
- style="color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
- transform="translate(-0.125,3.5)"
- id="path4318"
- style="color:#000000;fill:url(#radialGradient2249);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
- id="path4320"
- style="color:#000000;fill:url(#radialGradient2251);fill-opacity:1;fill-rule:evenodd;stroke:#c17d11;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
- transform="matrix(0.877095,0,0,0.877095,3.823927,2.336267)"
- id="path4322"
- style="opacity:0.19620254;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.14012825px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 21.85179,40.775197 c -1.247607,-0.544969 -1.805994,-1.858277 -1.805994,-1.858277 0.841281,-4.069136 3.719925,-7.046216 3.719925,-7.046216 0,0 -2.279321,6.411514 -1.913931,8.904493 z"
- id="path4354"
- style="opacity:0.22784807;color:#000000;fill:url(#linearGradient2253);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 40.757497,39.916846 c 1.231251,-0.580978 1.80438,-2.002321 1.80438,-2.002321 -0.95912,-4.042983 -3.976149,-6.842821 -3.976149,-6.842821 0,0 2.464593,6.342602 2.171769,8.845142 z"
- id="path4364"
- style="opacity:0.22784807;color:#000000;fill:url(#linearGradient2255);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
- </g>
- </g>
-</svg>
diff --git a/skins/vector/images/video-icon.png b/skins/vector/images/video-icon.png
deleted file mode 100644
index ed852322..00000000
--- a/skins/vector/images/video-icon.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/watch-icon-loading.gif b/skins/vector/images/watch-icon-loading.gif
deleted file mode 100644
index 618c308e..00000000
--- a/skins/vector/images/watch-icon-loading.gif
+++ /dev/null
Binary files differ
diff --git a/skins/vector/images/watch-icons.png b/skins/vector/images/watch-icons.png
deleted file mode 100644
index 03aa7d54..00000000
--- a/skins/vector/images/watch-icons.png
+++ /dev/null
Binary files differ
diff --git a/skins/vector/screen.less b/skins/vector/screen.less
deleted file mode 100644
index bb4be725..00000000
--- a/skins/vector/screen.less
+++ /dev/null
@@ -1,791 +0,0 @@
-/*
- * Any rules which should not be flipped automatically in right-to-left situations should be
- * prepended with @noflip in a comment block.
- *
- * This stylesheet employs a few CSS trick to accomplish compatibility with a wide range of web
- * browsers. The most common trick is to use some styles in IE6 only. This is accomplished by using
- * a rule that makes things work in IE6, and then following it with a rule that begins with
- * "html > body" or use a child selector ">", which is ignored by IE6 because it does not support
- * the child selector. You can spot this by looking for the "OVERRIDDEN BY COMPLIANT BROWSERS" and
- * "IGNORED BY IE6" comments.
- */
-@import "mediawiki.mixins";
-
-/* Framework */
-html {
- font-size: @html-font-size;
-}
-html,
-body {
- height: 100%;
- margin: 0;
- padding: 0;
- font-family: @content-font-family;
-}
-body {
- background-color: #f6f6f6;
- font-size: @body-font-size;
-}
-/* Content */
-div#content {
- line-height: @content-line-height;
- margin-left: 10em;
- padding: @content-padding;
- /* Border on top, left, and bottom side */
- border: 1px solid #a7d7f9;
- border-right-width: 0;
- /* Merge the border with tabs' one (in their background image) */
- margin-top: -1px;
- background-color: white;
- color: @content-font-color;
- direction: ltr;
-}
-/* Hide, but keep accessible for screen-readers */
-#mw-navigation h2 {
- position: absolute;
- top: -9999px;
-}
-/* Head */
-#mw-page-base {
- height: 5em;
- background-color: white;
- .background-image('images/page-fade.png');
- background-position: bottom left;
- background-repeat: repeat-x;
-}
-#mw-head-base {
- margin-top: -5em;
- margin-left: 10em;
- height: 5em;
-}
-div#mw-head {
- position: absolute;
- top: 0;
- right: 0;
- width: 100%;
-}
-div#mw-head h3 {
- margin: 0;
- padding: 0;
-}
-/* Hide empty portlets */
-div.emptyPortlet {
- display: none;
-}
-/* Personal */
-#p-personal {
- position: absolute;
- top: 0.33em;
- right: 0.75em;
- /* Display on top of page tabs - bugs 37158, 48078 */
- z-index: 100;
-}
-#p-personal h3 {
- display: none;
-}
-#p-personal ul {
- list-style-type: none;
- list-style-image: none;
- margin: 0;
- padding-left: 10em; /* Keep from overlapping logo */
-}
-#p-personal li {
- line-height: 1.125em;
- /* @noflip */
- float: left;
- margin-left: 0.75em;
- margin-top: 0.5em;
- font-size: @menu-personal-font-size;
- white-space: nowrap;
-}
-/* Navigation Containers */
-#left-navigation {
- float: left;
- margin-left: 10em;
- margin-top: 2.5em;
- /* When right nav would overlap left nav, it's placed below it
- (normal CSS floats behavior). This rule ensures that no empty space
- is shown between them due to right nav's margin-top. Page layout
- is still broken, but at least the nav overlaps only the page title
- instead of half the content. */
- margin-bottom: -2.5em;
- /* IE 6 double-margin bug fix */
- display: inline;
-}
-#right-navigation {
- float: right;
- margin-top: 2.5em;
-}
-/* Navigation Labels */
-div.vectorTabs h3,
-div.vectorMenu h3 span {
- display: none;
-}
-/* Namespaces and Views */
-div.vectorTabs {
- /* @noflip */
- float: left;
- height: 2.5em;
-}
-div.vectorTabs {
- .background-image('images/tab-break.png');
- background-position: bottom left;
- background-repeat: no-repeat;
- padding-left: 1px;
-}
-div.vectorTabs ul {
- /* @noflip */
- float: left;
- height: 100%;
- list-style-type: none;
- list-style-image: none;
- margin: 0;
- padding: 0;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs ul li {
- /* @noflip */
- float: left;
- line-height: 1.125em;
- display: inline-block;
- height: 100%;
- margin: 0;
- padding: 0;
- background-color: #f3f3f3;
- .background-image('images/tab-normal-fade.png');
- background-position: bottom left;
- background-repeat: repeat-x;
- white-space: nowrap;
-}
-/* IGNORED BY IE6 */
-div.vectorTabs ul > li {
- display: block;
-}
-div.vectorTabs li.selected {
- .background-image('images/tab-current-fade.png');
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs li a {
- display: inline-block;
- height: 1.9em;
- padding-left: 0.5em;
- padding-right: 0.5em;
- color: @menu-link-color;
- cursor: pointer;
- font-size: 0.8em;
-}
-/* IGNORED BY IE6 */
-div.vectorTabs li > a {
- display: block;
-}
-div.vectorTabs li.icon a {
- background-position: bottom right;
- background-repeat: no-repeat;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs span a {
- display: inline-block;
- padding-top: 1.25em;
-}
-/* IGNORED BY IE6 */
-div.vectorTabs span > a {
- /* @noflip */
- float: left;
- display: block;
-}
-div.vectorTabs span {
- display: inline-block;
- .background-image('images/tab-break.png');
- background-position: bottom right;
- background-repeat: no-repeat;
-}
-div.vectorTabs li.selected a,
-div.vectorTabs li.selected a:visited{
- color: #333;
- text-decoration: none;
-}
-div.vectorTabs li.new a,
-div.vectorTabs li.new a:visited{
- color: #a55858;
-}
-/* Variants and Actions */
-div.vectorMenu {
- /* @noflip */
- direction: ltr;
- /* @noflip */
- float: left;
- /* SVG support using a transparent gradient to guarantee cross-browser
- * compatibility (browsers able to understand gradient syntax support also SVG) */
- .background-image-svg('images/arrow-down-icon.svg', 'images/arrow-down-icon.png');
- /* @noflip */
- background-position: 100% 60%;
- background-repeat: no-repeat;
- cursor: pointer;
-}
-div.vectorMenuFocus {
- /* SVG support using a transparent gradient to guarantee cross-browser
- * compatibility (browsers able to understand gradient syntax support also SVG) */
- .background-image-svg('images/arrow-down-focus-icon.svg', 'images/arrow-down-focus-icon.png');
- background-position: 100% 60%;
-}
-body.rtl div.vectorMenu {
- /* @noflip */
- direction: rtl;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div#mw-head div.vectorMenu h3 {
- /* @noflip */
- float: left;
- .background-image('images/tab-break.png');
- background-repeat: no-repeat;
- background-position: bottom left;
- margin-left: -1px;
-}
-/* IGNORED BY IE6 */
-div#mw-head div.vectorMenu > h3 {
- background-image: none;
-}
-div#mw-head div.vectorMenu h4,
-div.vectorMenu#p-variants #mw-vector-current-variant {
- display: inline-block;
- float: left;
- font-size: 0.8em;
- padding-left: 0.5em;
- padding-top: 1.375em;
- font-weight: normal;
- border: none;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorMenu h3 a {
- display: inline-block;
- width: 24px;
- height: 1.9em;
- text-decoration: none;
- .background-image('images/tab-break.png');
- background-repeat: no-repeat;
- background-position: bottom right;
-}
-/* IGNORED BY IE6 */
-div.vectorMenu h3 > a {
- display: block;
-}
-div.vectorMenu div.menu {
- position: relative;
- display: none;
- clear: both;
- text-align: left;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-body.rtl div.vectorMenu div.menu {
- /* @noflip */
- margin-left: 24px;
-}
-/* IGNORED BY IE6 */
-body.rtl div.vectorMenu > div.menu {
- /* @noflip */
- margin-left: auto;
-}
-/* IGNORED BY IE6 */
-/* Also fixes old versions of FireFox */
-body.rtl div.vectorMenu > div.menu,
-x:-moz-any-link {
- /* @noflip */
- margin-left: 23px;
-}
-/* Enable forcing showing of the menu for accessibility */
-div.vectorMenu:hover div.menu,
-div.vectorMenu div.menuForceShow {
- display: block;
-}
-div.vectorMenu ul {
- position: absolute;
- background-color: white;
- border: solid 1px silver;
- border-top-width: 0;
- list-style-type: none;
- list-style-image: none;
- padding: 0;
- margin: 0;
- margin-left: -1px;
- text-align: left;
-}
-/* Fixes old versions of FireFox */
-div.vectorMenu ul,
-x:-moz-any-link {
- min-width: 5em;
-}
-/* Returns things back to normal in modern versions of FireFox */
-div.vectorMenu ul,
-x:-moz-any-link,
-x:default {
- min-width: 0;
-}
-div.vectorMenu li {
- padding: 0;
- margin: 0;
- text-align: left;
- line-height: 1em;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorMenu li a {
- display: inline-block;
- padding: 0.5em;
- white-space: nowrap;
- color: @menu-link-color;
- cursor: pointer;
- font-size: 0.8em;
-}
-/* IGNORED BY IE6 */
-div.vectorMenu li > a {
- display: block;
-}
-div.vectorMenu li.selected a,
-div.vectorMenu li.selected a:visited {
- color: #333;
- text-decoration: none;
-}
-/* Search */
-#p-search h3 {
- display: none;
-}
-#p-search {
- /* @noflip */
- float: left;
-}
-#p-search {
- margin-right: 0.5em;
- margin-left: 0.5em;
-}
-#p-search form,
-#p-search input {
- margin: 0;
- margin-top: 0.4em;
-}
-div#simpleSearch {
- display: block;
- width: 14em;
- height: 1.4em;
- margin-top: 0.65em;
- position: relative;
- min-height: 1px; /* Gotta trigger hasLayout for IE7 */
- border: solid 1px #aaa;
- color: black;
- background-color: white;
- .background-image('images/search-fade.png');
- background-position: top left;
- background-repeat: repeat-x;
-}
-div#simpleSearch input:focus {
- outline: none;
-}
-div#simpleSearch input {
- color: black;
-}
-div#simpleSearch input.placeholder {
- color: #999;
-}
-div#simpleSearch input::-webkit-input-placeholder {
- color: #999;
-}
-div#simpleSearch input:-moz-placeholder {
- color: #999;
-}
-div#simpleSearch input:-ms-input-placeholder {
- color: #999;
-}
-div#simpleSearch input#searchInput {
- position: absolute;
- top: 0;
- left: 0;
- width: 90%;
- margin: 0;
- padding: 0;
- padding-left: 0.2em;
- padding-top: 0.2em;
- padding-bottom: 0.2em;
- outline: none;
- border: none;
- /*
- * DON'T PANIC! Browsers that won't scale this properly are the same browsers that have JS issues that prevent
- * this from ever being shown anyways.
- */
- font-size: 13px;
- background-color: transparent;
- direction: ltr;
-}
-div#simpleSearch button#searchButton {
- position: absolute;
- width: 10%;
- right: 0;
- top: 0;
- padding: 0;
- padding-top: 0.3em;
- padding-bottom: 0.2em;
- padding-right: 0.4em;
- margin: 0;
- border: none;
- cursor: pointer;
- background-color: transparent;
- background-image: none;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div#simpleSearch button#searchButton img {
- border: none;
- margin: 0;
- margin-top: -3px;
- padding: 0;
-}
-/* IGNORED BY IE6 */
-div#simpleSearch button#searchButton > img {
- margin: 0;
-}
-/* Panel */
-div#mw-panel {
- font-size: @menu-main-font-size;
- position: absolute;
- top: 160px;
- padding-top: 1em;
- width: 10em;
- left: 0;
-}
-div#mw-panel div.portal {
- padding-bottom: 1.5em;
- direction: ltr;
-}
-div#mw-panel div.portal h3 {
- font-weight: normal;
- color: #444;
- padding: @menu-main-heading-padding;
- cursor: default;
- border: none;
- font-size: @menu-main-heading-font-size;
-}
-div#mw-panel div.portal div.body {
- padding-top: 0.5em;
- margin: @menu-main-body-margin;
-
- .background-image('images/portal-break.png');
- background-repeat: no-repeat;
- background-position: top left;
-}
-div#mw-panel div.portal div.body ul {
- list-style-type: none;
- list-style-image: none;
- padding: @menu-main-body-padding;
- margin: 0;
-}
-div#mw-panel div.portal div.body ul li {
- line-height: 1.125em;
- padding: 0;
- padding-bottom: 0.5em;
- margin: 0;
- font-size: @menu-main-body-font-size;
- word-wrap: break-word;
-}
-div#mw-panel div.portal div.body ul li a {
- color: @menu-main-body-link-color;
- &:visited {
- color: @menu-main-body-link-visited-color;
- }
-}
-
-/* Footer */
-div#footer {
- margin-left: 10em;
- margin-top: 0;
- padding: 0.75em;
- direction: ltr;
-}
-div#footer ul {
- list-style-type: none;
- list-style-image: none;
- margin: 0;
- padding: 0;
-}
-div#footer ul li {
- margin: 0;
- padding: 0;
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- color: #333;
- font-size: 0.7em;
-}
-div#footer #footer-icons {
- float: right;
-}
-
-body.ltr div#footer #footer-places {
- /* @noflip */
- float: left;
-}
-div#footer #footer-info li {
- line-height: 1.4em;
-}
-div#footer #footer-icons li {
- float: left;
- margin-left: 0.5em;
- line-height: 2em;
- text-align: right;
-}
-div#footer #footer-places li {
- float: left;
- margin-right: 1em;
- line-height: 2em;
-}
-/* Logo */
-#p-logo {
- position: absolute;
- top: -160px;
- left: 0;
- width: 10em;
- height: 160px;
-}
-#p-logo a {
- display: block;
- width: 10em;
- height: 160px;
- background-repeat: no-repeat;
- background-position: center center;
- text-decoration: none;
-}
-
-/*
- *
- * The following code is highly modified from monobook. It would be nice if the
- * preftoc id was more human readable like preferences-toc for instance,
- * howerver this would require backporting the other skins.
- */
-
-/* Preferences */
-#preftoc {
- /* Tabs */
- width: 100%;
- float: left;
- clear: both;
- margin: 0 !important;
- padding: 0 !important;
- .background-image('images/preferences-break.png');
- background-position: bottom left;
- background-repeat: no-repeat;
-}
- #preftoc li {
- /* Tab */
- float: left;
- margin: 0;
- padding: 0;
- padding-right: 1px;
- height: 2.25em;
- white-space: nowrap;
- list-style-type: none;
- list-style-image: none;
- .background-image('images/preferences-break.png');
- background-position: bottom right;
- background-repeat: no-repeat;
- }
- /* Sadly, IE6 won't understand this */
- #preftoc li:first-child {
- margin-left: 1px;
- }
- #preftoc a,
- #preftoc a:active {
- display: inline-block;
- position: relative;
- color: @menu-link-color;
- padding: 0.5em;
- text-decoration: none;
- background-image: none;
- font-size: 0.9em;
- }
- #preftoc a:hover,
- #preftoc a:focus {
- text-decoration: underline;
- }
- #preftoc li.selected a {
- .background-image('images/preferences-fade.png');
- background-position: bottom;
- background-repeat: repeat-x;
- color: #333;
- text-decoration: none;
- }
-#preferences {
- float: left;
- width: 100%;
- margin: 0;
- margin-top: -2px;
- clear: both;
- border: solid 1px #ccc;
- background-color: #fafafa;
-}
-#preferences fieldset {
- border: none;
- border-top: solid 1px #ccc;
-}
-#preferences fieldset.prefsection {
- border: none;
- padding: 0;
- margin: 1em;
-}
-#preferences legend {
- color: #666;
-}
-#preferences fieldset.prefsection legend.mainLegend {
- display: none;
-}
-#preferences td {
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-.htmlform-tip {
- font-size: x-small;
- padding: .2em 2em;
- color: #666;
-}
-#preferences div.mw-prefs-buttons {
- padding: 1em;
-}
-#preferences div.mw-prefs-buttons input {
- margin-right: 0.25em;
-}
-
-ul {
- list-style-type: disc;
- .list-style-image('images/bullet-icon.png');
-}
-
-pre, .mw-code {
- line-height: 1.3em;
-}
-
-/* Site Notice (includes notices from CentralNotice extension) */
-#siteNotice {
- font-size: 0.8em;
-}
-#firstHeading {
- padding-top: 0;
- margin-top: 0;
- font-size: @content-heading-font-size;
-}
-
-/* Icon for Usernames */
-#pt-userpage,
-#pt-anonuserpage,
-#pt-login {
- background-position: left top;
- background-repeat: no-repeat;
- /* SVG support using a transparent gradient to guarantee cross-browser
- * compatibility (browsers able to understand gradient syntax support also SVG) */
- .background-image-svg('images/user-icon.svg', 'images/user-icon.png');
- padding-left: 15px !important;
-}
-
-.redirectText {
- font-size: 140%;
-}
-
-.redirectMsg img {
- vertical-align: text-bottom;
-}
-
-#bodyContent {
- position: relative;
- width: 100%;
- line-height: 1.5em;
- font-size: @content-font-size;
-}
-
-/* mediawiki.notification */
-.skin-vector .mw-notification-area {
- font-size: 0.8em;
-}
-.skin-vector .mw-notification-area-layout {
- top: 7em;
-}
-.skin-vector .mw-notification {
- background-color: #fff;
- background-color: rgba(255, 255, 255, 0.93);
- padding: 0.75em 1.5em;
- border: solid 1px #a7d7f9;
- border-radius: 0.75em;
- -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
- box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
-}
-
-/* Watch/Unwatch Icon Styling */
-#ca-unwatch.icon a,
-#ca-watch.icon a {
- margin: 0;
- padding: 0;
- outline: none;
- display: block;
- width: 26px;
- /* This hides the text but shows the background image */
- padding-top: 3.1em;
- margin-top: 0;
- /* Only applied in IE6 */
- margin-top: -0.8em !ie;
- height: 0;
- overflow: hidden;
- .background-image('images/watch-icons.png');
-}
-#ca-unwatch.icon a {
- background-position: -43px 60%;
-}
-#ca-watch.icon a {
- background-position: 5px 60%;
-}
-#ca-unwatch.icon a:hover,
-#ca-unwatch.icon a:focus {
- background-position: -67px 60%;
-}
-#ca-watch.icon a:hover,
-#ca-watch.icon a:focus {
- background-position: -19px 60%;
-}
-#ca-unwatch.icon a.loading,
-#ca-watch.icon a.loading {
- .background-image('images/watch-icon-loading.gif');
- background-position: 5px 60%;
-}
-#ca-unwatch.icon a span,
-#ca-watch.icon a span {
- display: none;
-}
-div.vectorTabs ul {
- .background-image('images/tab-break.png');
- background-position: right bottom;
- background-repeat: no-repeat;
-}
-
-/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
-.tipsy {
- font-size: 0.8em;
-}
-
-/* Animate between standard and high definition layouts */
-body.vector-animateLayout {
- div#content,
- div#footer,
- #left-navigation {
- .transition(margin-left 250ms, padding 250ms;);
- }
-
- #p-logo {
- .transition(left 250ms);
- }
-
- #mw-panel {
- .transition(padding-right 250ms);
- }
-
- #p-search {
- .transition(margin-right 250ms);
- }
-
- #p-personal {
- .transition(right 250ms);
- }
-
- #mw-head-base {
- .transition(margin-left 250ms);
- }
-}
diff --git a/skins/vector/styles-beta.less b/skins/vector/styles-beta.less
deleted file mode 100644
index a76b6394..00000000
--- a/skins/vector/styles-beta.less
+++ /dev/null
@@ -1,13 +0,0 @@
-@import "variables.less";
-@import "beta/variables.less";
-
-@media screen {
- @import "screen.less";
- @import "beta/screen.less";
- @import "externalLinks.less";
- @import "collapsibleNav.less";
-}
-
-@media screen and (min-width: 982px) {
- @import "screen-hd.less";
-}
diff --git a/skins/vector/styles.less b/skins/vector/styles.less
deleted file mode 100644
index bd458510..00000000
--- a/skins/vector/styles.less
+++ /dev/null
@@ -1,11 +0,0 @@
-@import "variables.less";
-
-@media screen {
- @import "screen.less";
- @import "externalLinks.less";
- @import "collapsibleNav.less";
-}
-
-@media screen and (min-width: 982px) {
- @import "screen-hd.less";
-}
diff --git a/skins/vector/variables.less b/skins/vector/variables.less
deleted file mode 100644
index 691e0fd5..00000000
--- a/skins/vector/variables.less
+++ /dev/null
@@ -1,37 +0,0 @@
-@html-font-size: 1em;
-
-@body-font-size: 1em;
-
-// Page content
-@content-font-family: sans-serif;
-@content-font-color: black;
-@content-font-size: 0.8em;
-@content-line-height: 1.5em;
-@content-padding: 1.5em 1.5em 1.5em 1.75em;
-@content-heading-font-size: 1.6em;
-@content-heading-font-family: sans-serif;
-
-// Common menu
-@menu-link-color: #0645ad;
-
-// Main menu
-@menu-main-font-size: inherit;
-@menu-main-heading-font-size: 0.75em;
-@menu-main-heading-padding: 0 1.75em 0.25em 0.25em;
-
-@menu-main-body-font-size: 0.75em;
-@menu-main-body-link-color: #0645ad;
-@menu-main-body-link-visited-color: #0b0080;
-@menu-main-body-margin: 0 0 0 1.25em;
-@menu-main-body-padding: 0;
-@menu-main-logo-left: 0.5em;
-
-// Personal menu
-@menu-personal-font-size: 0.75em;
-
-// Collapsible nav
-@collapsible-nav-heading-color: #4D4D4D;
-@collapsible-nav-heading-collapsed-color: #0645AD;
-
-@collapsible-nav-heading-padding: 4px 0 3px 1.5em;
-@collapsible-nav-body-margin: 0 0 0 1.25em;
diff --git a/skins/vector/vector.js b/skins/vector/vector.js
deleted file mode 100644
index aa64624a..00000000
--- a/skins/vector/vector.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Vector-specific scripts
- */
-jQuery( function ( $ ) {
- $( 'div.vectorMenu' ).each( function () {
- var $el = $( this );
- $el.find( '> h3 > a' ).parent()
- .attr( 'tabindex', '0' )
- // For accessibility, show the menu when the h3 is clicked (bug 24298/46486)
- .on( 'click keypress', function ( e ) {
- if( e.type === 'click' || e.which === 13 ) {
- $el.find( '.menu:first' ).toggleClass( 'menuForceShow' );
- e.preventDefault();
- }
- } )
- // When the heading has focus, also set a class that will change the arrow icon
- .focus( function () {
- $el.find( '> a' ).addClass( 'vectorMenuFocus' );
- } )
- .blur( function () {
- $el.find( '> a' ).removeClass( 'vectorMenuFocus' );
- } )
- .find( '> a:first' )
- // As the h3 can already be focused there's no need for the link to be focusable
- .attr( 'tabindex', '-1' );
- } );
-
- /**
- * Collapsible tabs for Vector
- */
- var $cactions = $( '#p-cactions' );
-
- // Bind callback functions to animate our drop down menu in and out
- // and then call the collapsibleTabs function on the menu
- $( '#p-views ul' )
- .bind( 'beforeTabCollapse', function () {
- // If the dropdown was hidden, show it
- if ( $cactions.hasClass( 'emptyPortlet' ) ) {
- $cactions
- .removeClass( 'emptyPortlet' )
- .find( 'h3' )
- .css( 'width', '1px' ).animate( { 'width': '24px' }, 390 );
- }
- } )
- .bind( 'beforeTabExpand', function () {
- // If we're removing the last child node right now, hide the dropdown
- if ( $cactions.find( 'li' ).length === 1 ) {
- $cactions.find( 'h3' ).animate( { 'width': '1px' }, 390, function () {
- $( this ).attr( 'style', '' )
- .parent().addClass( 'emptyPortlet' );
- });
- }
- } )
- .collapsibleTabs();
-} );