From 317f8f8f0651488f226b5280a8f036c7c135c639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Mon, 4 Dec 2017 17:54:04 +0100 Subject: Add oembed --- sources/plugins/Audio/dialogs/audio.js | 350 ++ sources/plugins/Audio/docs/install.html | 69 + sources/plugins/Audio/docs/styles.css | 67 + sources/plugins/Audio/images/audio.png | Bin 0 -> 15258 bytes sources/plugins/Audio/images/icon.png | Bin 0 -> 1356 bytes sources/plugins/Audio/images/placeholder.png | Bin 0 -> 862 bytes sources/plugins/Audio/plugin.js | 211 + sources/plugins/a11yhelp/dialogs/a11yhelp.js | 55 +- .../a11yhelp/dialogs/lang/_translationstatus.txt | 2 +- sources/plugins/a11yhelp/dialogs/lang/af.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/ar.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/az.js | 145 + sources/plugins/a11yhelp/dialogs/lang/bg.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/ca.js | 17 +- sources/plugins/a11yhelp/dialogs/lang/cs.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/cy.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/da.js | 31 +- sources/plugins/a11yhelp/dialogs/lang/de-ch.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/de.js | 17 +- sources/plugins/a11yhelp/dialogs/lang/el.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/en-gb.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/en.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/eo.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/es-mx.js | 145 + sources/plugins/a11yhelp/dialogs/lang/es.js | 17 +- sources/plugins/a11yhelp/dialogs/lang/et.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/eu.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/fa.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/fi.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/fo.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/fr-ca.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/fr.js | 79 +- sources/plugins/a11yhelp/dialogs/lang/gl.js | 17 +- sources/plugins/a11yhelp/dialogs/lang/gu.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/he.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/hi.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/hr.js | 129 +- sources/plugins/a11yhelp/dialogs/lang/hu.js | 17 +- sources/plugins/a11yhelp/dialogs/lang/id.js | 29 +- sources/plugins/a11yhelp/dialogs/lang/it.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/ja.js | 19 +- sources/plugins/a11yhelp/dialogs/lang/km.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/ko.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/ku.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/lt.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/lv.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/mk.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/mn.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/nb.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/nl.js | 17 +- sources/plugins/a11yhelp/dialogs/lang/no.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/oc.js | 145 + sources/plugins/a11yhelp/dialogs/lang/pl.js | 23 +- sources/plugins/a11yhelp/dialogs/lang/pt-br.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/pt.js | 73 +- sources/plugins/a11yhelp/dialogs/lang/ro.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/ru.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/si.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/sk.js | 17 +- sources/plugins/a11yhelp/dialogs/lang/sl.js | 41 +- sources/plugins/a11yhelp/dialogs/lang/sq.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/sr-latn.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/sr.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/sv.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/th.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/tr.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/tt.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/ug.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/uk.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/vi.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/zh-cn.js | 15 +- sources/plugins/a11yhelp/dialogs/lang/zh.js | 15 +- sources/plugins/a11yhelp/plugin.js | 4 +- sources/plugins/basicstyles/icons/bold.png | Bin 813 -> 580 bytes sources/plugins/basicstyles/icons/hidpi/bold.png | Bin 1865 -> 1207 bytes sources/plugins/basicstyles/icons/hidpi/italic.png | Bin 1452 -> 854 bytes sources/plugins/basicstyles/icons/hidpi/strike.png | Bin 2171 -> 1357 bytes .../plugins/basicstyles/icons/hidpi/subscript.png | Bin 1965 -> 1189 bytes .../basicstyles/icons/hidpi/superscript.png | Bin 2021 -> 1156 bytes .../plugins/basicstyles/icons/hidpi/underline.png | Bin 1577 -> 1084 bytes sources/plugins/basicstyles/icons/italic.png | Bin 708 -> 611 bytes sources/plugins/basicstyles/icons/strike.png | Bin 879 -> 627 bytes sources/plugins/basicstyles/icons/subscript.png | Bin 806 -> 584 bytes sources/plugins/basicstyles/icons/superscript.png | Bin 859 -> 594 bytes sources/plugins/basicstyles/icons/underline.png | Bin 747 -> 541 bytes sources/plugins/basicstyles/lang/af.js | 2 +- sources/plugins/basicstyles/lang/ar.js | 2 +- sources/plugins/basicstyles/lang/az.js | 12 + sources/plugins/basicstyles/lang/bg.js | 2 +- sources/plugins/basicstyles/lang/bn.js | 4 +- sources/plugins/basicstyles/lang/bs.js | 2 +- sources/plugins/basicstyles/lang/ca.js | 2 +- sources/plugins/basicstyles/lang/cs.js | 2 +- sources/plugins/basicstyles/lang/cy.js | 2 +- sources/plugins/basicstyles/lang/da.js | 2 +- sources/plugins/basicstyles/lang/de-ch.js | 2 +- sources/plugins/basicstyles/lang/de.js | 2 +- sources/plugins/basicstyles/lang/el.js | 2 +- sources/plugins/basicstyles/lang/en-au.js | 2 +- sources/plugins/basicstyles/lang/en-ca.js | 2 +- sources/plugins/basicstyles/lang/en-gb.js | 2 +- sources/plugins/basicstyles/lang/en.js | 2 +- sources/plugins/basicstyles/lang/eo.js | 2 +- sources/plugins/basicstyles/lang/es-mx.js | 12 + sources/plugins/basicstyles/lang/es.js | 2 +- sources/plugins/basicstyles/lang/et.js | 2 +- sources/plugins/basicstyles/lang/eu.js | 2 +- sources/plugins/basicstyles/lang/fa.js | 2 +- sources/plugins/basicstyles/lang/fi.js | 2 +- sources/plugins/basicstyles/lang/fo.js | 2 +- sources/plugins/basicstyles/lang/fr-ca.js | 2 +- sources/plugins/basicstyles/lang/fr.js | 2 +- sources/plugins/basicstyles/lang/gl.js | 2 +- sources/plugins/basicstyles/lang/gu.js | 2 +- sources/plugins/basicstyles/lang/he.js | 2 +- sources/plugins/basicstyles/lang/hi.js | 2 +- sources/plugins/basicstyles/lang/hr.js | 6 +- sources/plugins/basicstyles/lang/hu.js | 2 +- sources/plugins/basicstyles/lang/id.js | 2 +- sources/plugins/basicstyles/lang/is.js | 2 +- sources/plugins/basicstyles/lang/it.js | 2 +- sources/plugins/basicstyles/lang/ja.js | 2 +- sources/plugins/basicstyles/lang/ka.js | 2 +- sources/plugins/basicstyles/lang/km.js | 2 +- sources/plugins/basicstyles/lang/ko.js | 2 +- sources/plugins/basicstyles/lang/ku.js | 2 +- sources/plugins/basicstyles/lang/lt.js | 2 +- sources/plugins/basicstyles/lang/lv.js | 2 +- sources/plugins/basicstyles/lang/mk.js | 2 +- sources/plugins/basicstyles/lang/mn.js | 2 +- sources/plugins/basicstyles/lang/ms.js | 2 +- sources/plugins/basicstyles/lang/nb.js | 2 +- sources/plugins/basicstyles/lang/nl.js | 2 +- sources/plugins/basicstyles/lang/no.js | 2 +- sources/plugins/basicstyles/lang/oc.js | 12 + sources/plugins/basicstyles/lang/pl.js | 2 +- sources/plugins/basicstyles/lang/pt-br.js | 2 +- sources/plugins/basicstyles/lang/pt.js | 4 +- sources/plugins/basicstyles/lang/ro.js | 2 +- sources/plugins/basicstyles/lang/ru.js | 2 +- sources/plugins/basicstyles/lang/si.js | 2 +- sources/plugins/basicstyles/lang/sk.js | 2 +- sources/plugins/basicstyles/lang/sl.js | 2 +- sources/plugins/basicstyles/lang/sq.js | 2 +- sources/plugins/basicstyles/lang/sr-latn.js | 2 +- sources/plugins/basicstyles/lang/sr.js | 2 +- sources/plugins/basicstyles/lang/sv.js | 2 +- sources/plugins/basicstyles/lang/th.js | 2 +- sources/plugins/basicstyles/lang/tr.js | 2 +- sources/plugins/basicstyles/lang/tt.js | 2 +- sources/plugins/basicstyles/lang/ug.js | 2 +- sources/plugins/basicstyles/lang/uk.js | 2 +- sources/plugins/basicstyles/lang/vi.js | 2 +- sources/plugins/basicstyles/lang/zh-cn.js | 2 +- sources/plugins/basicstyles/lang/zh.js | 2 +- sources/plugins/basicstyles/plugin.js | 4 +- sources/plugins/button/lang/af.js | 2 +- sources/plugins/button/lang/ar.js | 2 +- sources/plugins/button/lang/ast.js | 8 - sources/plugins/button/lang/az.js | 8 + sources/plugins/button/lang/bg.js | 2 +- sources/plugins/button/lang/ca.js | 2 +- sources/plugins/button/lang/cs.js | 2 +- sources/plugins/button/lang/da.js | 2 +- sources/plugins/button/lang/de-ch.js | 2 +- sources/plugins/button/lang/de.js | 2 +- sources/plugins/button/lang/el.js | 2 +- sources/plugins/button/lang/en-gb.js | 2 +- sources/plugins/button/lang/en.js | 2 +- sources/plugins/button/lang/eo.js | 2 +- sources/plugins/button/lang/es-mx.js | 8 + sources/plugins/button/lang/es.js | 2 +- sources/plugins/button/lang/eu.js | 2 +- sources/plugins/button/lang/fa.js | 2 +- sources/plugins/button/lang/fi.js | 2 +- sources/plugins/button/lang/fr.js | 2 +- sources/plugins/button/lang/gl.js | 2 +- sources/plugins/button/lang/he.js | 2 +- sources/plugins/button/lang/hr.js | 8 + sources/plugins/button/lang/hu.js | 2 +- sources/plugins/button/lang/id.js | 2 +- sources/plugins/button/lang/it.js | 2 +- sources/plugins/button/lang/ja.js | 2 +- sources/plugins/button/lang/km.js | 2 +- sources/plugins/button/lang/ko.js | 2 +- sources/plugins/button/lang/ku.js | 2 +- sources/plugins/button/lang/lt.js | 2 +- sources/plugins/button/lang/nb.js | 2 +- sources/plugins/button/lang/nl.js | 2 +- sources/plugins/button/lang/no.js | 8 + sources/plugins/button/lang/oc.js | 8 + sources/plugins/button/lang/pl.js | 2 +- sources/plugins/button/lang/pt-br.js | 2 +- sources/plugins/button/lang/pt.js | 2 +- sources/plugins/button/lang/ro.js | 2 +- sources/plugins/button/lang/ru.js | 2 +- sources/plugins/button/lang/sk.js | 2 +- sources/plugins/button/lang/sl.js | 2 +- sources/plugins/button/lang/sq.js | 2 +- sources/plugins/button/lang/sv.js | 2 +- sources/plugins/button/lang/tr.js | 2 +- sources/plugins/button/lang/tt.js | 2 +- sources/plugins/button/lang/ug.js | 2 +- sources/plugins/button/lang/uk.js | 2 +- sources/plugins/button/lang/vi.js | 2 +- sources/plugins/button/lang/zh-cn.js | 2 +- sources/plugins/button/lang/zh.js | 2 +- sources/plugins/button/plugin.js | 30 +- sources/plugins/clipboard/dev/clipboard.html | 190 + sources/plugins/clipboard/dev/console.js | 49 + sources/plugins/clipboard/dev/dnd.html | 185 + sources/plugins/clipboard/icons/copy-rtl.png | Bin 0 -> 506 bytes sources/plugins/clipboard/icons/copy.png | Bin 0 -> 506 bytes sources/plugins/clipboard/icons/cut-rtl.png | Bin 0 -> 776 bytes sources/plugins/clipboard/icons/cut.png | Bin 0 -> 776 bytes sources/plugins/clipboard/icons/hidpi/copy-rtl.png | Bin 0 -> 759 bytes sources/plugins/clipboard/icons/hidpi/copy.png | Bin 0 -> 759 bytes sources/plugins/clipboard/icons/hidpi/cut-rtl.png | Bin 0 -> 1576 bytes sources/plugins/clipboard/icons/hidpi/cut.png | Bin 0 -> 1576 bytes .../plugins/clipboard/icons/hidpi/paste-rtl.png | Bin 0 -> 854 bytes sources/plugins/clipboard/icons/hidpi/paste.png | Bin 0 -> 854 bytes sources/plugins/clipboard/icons/paste-rtl.png | Bin 0 -> 464 bytes sources/plugins/clipboard/icons/paste.png | Bin 0 -> 464 bytes sources/plugins/clipboard/lang/af.js | 12 + sources/plugins/clipboard/lang/ar.js | 12 + sources/plugins/clipboard/lang/az.js | 12 + sources/plugins/clipboard/lang/bg.js | 12 + sources/plugins/clipboard/lang/bn.js | 12 + sources/plugins/clipboard/lang/bs.js | 12 + sources/plugins/clipboard/lang/ca.js | 12 + sources/plugins/clipboard/lang/cs.js | 12 + sources/plugins/clipboard/lang/cy.js | 12 + sources/plugins/clipboard/lang/da.js | 12 + sources/plugins/clipboard/lang/de-ch.js | 12 + sources/plugins/clipboard/lang/de.js | 12 + sources/plugins/clipboard/lang/el.js | 12 + sources/plugins/clipboard/lang/en-au.js | 12 + sources/plugins/clipboard/lang/en-ca.js | 12 + sources/plugins/clipboard/lang/en-gb.js | 12 + sources/plugins/clipboard/lang/en.js | 12 + sources/plugins/clipboard/lang/eo.js | 12 + sources/plugins/clipboard/lang/es-mx.js | 12 + sources/plugins/clipboard/lang/es.js | 12 + sources/plugins/clipboard/lang/et.js | 12 + sources/plugins/clipboard/lang/eu.js | 12 + sources/plugins/clipboard/lang/fa.js | 12 + sources/plugins/clipboard/lang/fi.js | 12 + sources/plugins/clipboard/lang/fo.js | 12 + sources/plugins/clipboard/lang/fr-ca.js | 12 + sources/plugins/clipboard/lang/fr.js | 12 + sources/plugins/clipboard/lang/gl.js | 12 + sources/plugins/clipboard/lang/gu.js | 12 + sources/plugins/clipboard/lang/he.js | 12 + sources/plugins/clipboard/lang/hi.js | 12 + sources/plugins/clipboard/lang/hr.js | 12 + sources/plugins/clipboard/lang/hu.js | 12 + sources/plugins/clipboard/lang/id.js | 12 + sources/plugins/clipboard/lang/is.js | 12 + sources/plugins/clipboard/lang/it.js | 12 + sources/plugins/clipboard/lang/ja.js | 12 + sources/plugins/clipboard/lang/ka.js | 12 + sources/plugins/clipboard/lang/km.js | 12 + sources/plugins/clipboard/lang/ko.js | 12 + sources/plugins/clipboard/lang/ku.js | 12 + sources/plugins/clipboard/lang/lt.js | 12 + sources/plugins/clipboard/lang/lv.js | 12 + sources/plugins/clipboard/lang/mk.js | 12 + sources/plugins/clipboard/lang/mn.js | 12 + sources/plugins/clipboard/lang/ms.js | 12 + sources/plugins/clipboard/lang/nb.js | 12 + sources/plugins/clipboard/lang/nl.js | 12 + sources/plugins/clipboard/lang/no.js | 12 + sources/plugins/clipboard/lang/oc.js | 12 + sources/plugins/clipboard/lang/pl.js | 12 + sources/plugins/clipboard/lang/pt-br.js | 12 + sources/plugins/clipboard/lang/pt.js | 12 + sources/plugins/clipboard/lang/ro.js | 12 + sources/plugins/clipboard/lang/ru.js | 12 + sources/plugins/clipboard/lang/si.js | 12 + sources/plugins/clipboard/lang/sk.js | 12 + sources/plugins/clipboard/lang/sl.js | 12 + sources/plugins/clipboard/lang/sq.js | 12 + sources/plugins/clipboard/lang/sr-latn.js | 12 + sources/plugins/clipboard/lang/sr.js | 12 + sources/plugins/clipboard/lang/sv.js | 12 + sources/plugins/clipboard/lang/th.js | 12 + sources/plugins/clipboard/lang/tr.js | 12 + sources/plugins/clipboard/lang/tt.js | 12 + sources/plugins/clipboard/lang/ug.js | 12 + sources/plugins/clipboard/lang/uk.js | 12 + sources/plugins/clipboard/lang/vi.js | 12 + sources/plugins/clipboard/lang/zh-cn.js | 12 + sources/plugins/clipboard/lang/zh.js | 12 + sources/plugins/clipboard/plugin.js | 2780 +++++++++++++ sources/plugins/contextmenu/lang/af.js | 2 +- sources/plugins/contextmenu/lang/ar.js | 2 +- sources/plugins/contextmenu/lang/az.js | 7 + sources/plugins/contextmenu/lang/bg.js | 2 +- sources/plugins/contextmenu/lang/bn.js | 2 +- sources/plugins/contextmenu/lang/bs.js | 2 +- sources/plugins/contextmenu/lang/ca.js | 2 +- sources/plugins/contextmenu/lang/cs.js | 2 +- sources/plugins/contextmenu/lang/cy.js | 2 +- sources/plugins/contextmenu/lang/da.js | 2 +- sources/plugins/contextmenu/lang/de-ch.js | 2 +- sources/plugins/contextmenu/lang/de.js | 2 +- sources/plugins/contextmenu/lang/el.js | 2 +- sources/plugins/contextmenu/lang/en-au.js | 2 +- sources/plugins/contextmenu/lang/en-ca.js | 2 +- sources/plugins/contextmenu/lang/en-gb.js | 2 +- sources/plugins/contextmenu/lang/en.js | 2 +- sources/plugins/contextmenu/lang/eo.js | 2 +- sources/plugins/contextmenu/lang/es-mx.js | 7 + sources/plugins/contextmenu/lang/es.js | 2 +- sources/plugins/contextmenu/lang/et.js | 2 +- sources/plugins/contextmenu/lang/eu.js | 2 +- sources/plugins/contextmenu/lang/fa.js | 2 +- sources/plugins/contextmenu/lang/fi.js | 2 +- sources/plugins/contextmenu/lang/fo.js | 2 +- sources/plugins/contextmenu/lang/fr-ca.js | 2 +- sources/plugins/contextmenu/lang/fr.js | 2 +- sources/plugins/contextmenu/lang/gl.js | 2 +- sources/plugins/contextmenu/lang/gu.js | 2 +- sources/plugins/contextmenu/lang/he.js | 2 +- sources/plugins/contextmenu/lang/hi.js | 2 +- sources/plugins/contextmenu/lang/hr.js | 2 +- sources/plugins/contextmenu/lang/hu.js | 2 +- sources/plugins/contextmenu/lang/id.js | 2 +- sources/plugins/contextmenu/lang/is.js | 2 +- sources/plugins/contextmenu/lang/it.js | 2 +- sources/plugins/contextmenu/lang/ja.js | 2 +- sources/plugins/contextmenu/lang/ka.js | 2 +- sources/plugins/contextmenu/lang/km.js | 2 +- sources/plugins/contextmenu/lang/ko.js | 2 +- sources/plugins/contextmenu/lang/ku.js | 2 +- sources/plugins/contextmenu/lang/lt.js | 2 +- sources/plugins/contextmenu/lang/lv.js | 2 +- sources/plugins/contextmenu/lang/mk.js | 2 +- sources/plugins/contextmenu/lang/mn.js | 2 +- sources/plugins/contextmenu/lang/ms.js | 2 +- sources/plugins/contextmenu/lang/nb.js | 2 +- sources/plugins/contextmenu/lang/nl.js | 2 +- sources/plugins/contextmenu/lang/no.js | 2 +- sources/plugins/contextmenu/lang/oc.js | 7 + sources/plugins/contextmenu/lang/pl.js | 2 +- sources/plugins/contextmenu/lang/pt-br.js | 2 +- sources/plugins/contextmenu/lang/pt.js | 2 +- sources/plugins/contextmenu/lang/ro.js | 2 +- sources/plugins/contextmenu/lang/ru.js | 2 +- sources/plugins/contextmenu/lang/si.js | 2 +- sources/plugins/contextmenu/lang/sk.js | 2 +- sources/plugins/contextmenu/lang/sl.js | 4 +- sources/plugins/contextmenu/lang/sq.js | 2 +- sources/plugins/contextmenu/lang/sr-latn.js | 2 +- sources/plugins/contextmenu/lang/sr.js | 2 +- sources/plugins/contextmenu/lang/sv.js | 2 +- sources/plugins/contextmenu/lang/th.js | 2 +- sources/plugins/contextmenu/lang/tr.js | 2 +- sources/plugins/contextmenu/lang/tt.js | 2 +- sources/plugins/contextmenu/lang/ug.js | 2 +- sources/plugins/contextmenu/lang/uk.js | 2 +- sources/plugins/contextmenu/lang/vi.js | 2 +- sources/plugins/contextmenu/lang/zh-cn.js | 2 +- sources/plugins/contextmenu/lang/zh.js | 2 +- sources/plugins/contextmenu/plugin.js | 29 +- sources/plugins/dialog/dialogDefinition.js | 2 +- sources/plugins/dialog/plugin.js | 67 +- sources/plugins/dialog/samples/assets/my_dialog.js | 2 +- sources/plugins/dialog/samples/dialog.html | 4 +- sources/plugins/dialogadvtab/plugin.js | 2 +- sources/plugins/dialogui/plugin.js | 16 +- sources/plugins/elementspath/lang/af.js | 2 +- sources/plugins/elementspath/lang/ar.js | 2 +- sources/plugins/elementspath/lang/az.js | 8 + sources/plugins/elementspath/lang/bg.js | 2 +- sources/plugins/elementspath/lang/bn.js | 2 +- sources/plugins/elementspath/lang/bs.js | 2 +- sources/plugins/elementspath/lang/ca.js | 2 +- sources/plugins/elementspath/lang/cs.js | 2 +- sources/plugins/elementspath/lang/cy.js | 2 +- sources/plugins/elementspath/lang/da.js | 2 +- sources/plugins/elementspath/lang/de-ch.js | 2 +- sources/plugins/elementspath/lang/de.js | 2 +- sources/plugins/elementspath/lang/el.js | 2 +- sources/plugins/elementspath/lang/en-au.js | 2 +- sources/plugins/elementspath/lang/en-ca.js | 2 +- sources/plugins/elementspath/lang/en-gb.js | 2 +- sources/plugins/elementspath/lang/en.js | 2 +- sources/plugins/elementspath/lang/eo.js | 2 +- sources/plugins/elementspath/lang/es-mx.js | 8 + sources/plugins/elementspath/lang/es.js | 2 +- sources/plugins/elementspath/lang/et.js | 2 +- sources/plugins/elementspath/lang/eu.js | 2 +- sources/plugins/elementspath/lang/fa.js | 2 +- sources/plugins/elementspath/lang/fi.js | 2 +- sources/plugins/elementspath/lang/fo.js | 2 +- sources/plugins/elementspath/lang/fr-ca.js | 2 +- sources/plugins/elementspath/lang/fr.js | 6 +- sources/plugins/elementspath/lang/gl.js | 2 +- sources/plugins/elementspath/lang/gu.js | 2 +- sources/plugins/elementspath/lang/he.js | 2 +- sources/plugins/elementspath/lang/hi.js | 2 +- sources/plugins/elementspath/lang/hr.js | 4 +- sources/plugins/elementspath/lang/hu.js | 2 +- sources/plugins/elementspath/lang/is.js | 2 +- sources/plugins/elementspath/lang/it.js | 2 +- sources/plugins/elementspath/lang/ja.js | 2 +- sources/plugins/elementspath/lang/ka.js | 2 +- sources/plugins/elementspath/lang/km.js | 2 +- sources/plugins/elementspath/lang/ko.js | 2 +- sources/plugins/elementspath/lang/ku.js | 2 +- sources/plugins/elementspath/lang/lt.js | 2 +- sources/plugins/elementspath/lang/lv.js | 2 +- sources/plugins/elementspath/lang/mk.js | 2 +- sources/plugins/elementspath/lang/mn.js | 2 +- sources/plugins/elementspath/lang/ms.js | 2 +- sources/plugins/elementspath/lang/nb.js | 2 +- sources/plugins/elementspath/lang/nl.js | 2 +- sources/plugins/elementspath/lang/no.js | 2 +- sources/plugins/elementspath/lang/oc.js | 8 + sources/plugins/elementspath/lang/pl.js | 2 +- sources/plugins/elementspath/lang/pt-br.js | 2 +- sources/plugins/elementspath/lang/pt.js | 2 +- sources/plugins/elementspath/lang/ro.js | 2 +- sources/plugins/elementspath/lang/ru.js | 2 +- sources/plugins/elementspath/lang/si.js | 2 +- sources/plugins/elementspath/lang/sk.js | 2 +- sources/plugins/elementspath/lang/sl.js | 4 +- sources/plugins/elementspath/lang/sq.js | 2 +- sources/plugins/elementspath/lang/sr-latn.js | 2 +- sources/plugins/elementspath/lang/sr.js | 2 +- sources/plugins/elementspath/lang/sv.js | 2 +- sources/plugins/elementspath/lang/th.js | 2 +- sources/plugins/elementspath/lang/tr.js | 2 +- sources/plugins/elementspath/lang/tt.js | 2 +- sources/plugins/elementspath/lang/ug.js | 2 +- sources/plugins/elementspath/lang/uk.js | 2 +- sources/plugins/elementspath/lang/vi.js | 2 +- sources/plugins/elementspath/lang/zh-cn.js | 2 +- sources/plugins/elementspath/lang/zh.js | 2 +- sources/plugins/elementspath/plugin.js | 25 +- sources/plugins/enterkey/plugin.js | 27 +- sources/plugins/enterkey/samples/enterkey.html | 4 +- sources/plugins/entities/plugin.js | 2 +- sources/plugins/fakeobjects/lang/af.js | 2 +- sources/plugins/fakeobjects/lang/ar.js | 2 +- sources/plugins/fakeobjects/lang/az.js | 11 + sources/plugins/fakeobjects/lang/bg.js | 2 +- sources/plugins/fakeobjects/lang/bn.js | 2 +- sources/plugins/fakeobjects/lang/bs.js | 2 +- sources/plugins/fakeobjects/lang/ca.js | 2 +- sources/plugins/fakeobjects/lang/cs.js | 2 +- sources/plugins/fakeobjects/lang/cy.js | 2 +- sources/plugins/fakeobjects/lang/da.js | 2 +- sources/plugins/fakeobjects/lang/de-ch.js | 2 +- sources/plugins/fakeobjects/lang/de.js | 2 +- sources/plugins/fakeobjects/lang/el.js | 2 +- sources/plugins/fakeobjects/lang/en-au.js | 2 +- sources/plugins/fakeobjects/lang/en-ca.js | 2 +- sources/plugins/fakeobjects/lang/en-gb.js | 2 +- sources/plugins/fakeobjects/lang/en.js | 2 +- sources/plugins/fakeobjects/lang/eo.js | 2 +- sources/plugins/fakeobjects/lang/es-mx.js | 11 + sources/plugins/fakeobjects/lang/es.js | 2 +- sources/plugins/fakeobjects/lang/et.js | 2 +- sources/plugins/fakeobjects/lang/eu.js | 2 +- sources/plugins/fakeobjects/lang/fa.js | 2 +- sources/plugins/fakeobjects/lang/fi.js | 2 +- sources/plugins/fakeobjects/lang/fo.js | 2 +- sources/plugins/fakeobjects/lang/fr-ca.js | 2 +- sources/plugins/fakeobjects/lang/fr.js | 6 +- sources/plugins/fakeobjects/lang/gl.js | 2 +- sources/plugins/fakeobjects/lang/gu.js | 2 +- sources/plugins/fakeobjects/lang/he.js | 2 +- sources/plugins/fakeobjects/lang/hi.js | 2 +- sources/plugins/fakeobjects/lang/hr.js | 2 +- sources/plugins/fakeobjects/lang/hu.js | 2 +- sources/plugins/fakeobjects/lang/id.js | 2 +- sources/plugins/fakeobjects/lang/is.js | 2 +- sources/plugins/fakeobjects/lang/it.js | 2 +- sources/plugins/fakeobjects/lang/ja.js | 2 +- sources/plugins/fakeobjects/lang/ka.js | 2 +- sources/plugins/fakeobjects/lang/km.js | 2 +- sources/plugins/fakeobjects/lang/ko.js | 2 +- sources/plugins/fakeobjects/lang/ku.js | 2 +- sources/plugins/fakeobjects/lang/lt.js | 2 +- sources/plugins/fakeobjects/lang/lv.js | 2 +- sources/plugins/fakeobjects/lang/mk.js | 2 +- sources/plugins/fakeobjects/lang/mn.js | 2 +- sources/plugins/fakeobjects/lang/ms.js | 2 +- sources/plugins/fakeobjects/lang/nb.js | 2 +- sources/plugins/fakeobjects/lang/nl.js | 2 +- sources/plugins/fakeobjects/lang/no.js | 2 +- sources/plugins/fakeobjects/lang/oc.js | 11 + sources/plugins/fakeobjects/lang/pl.js | 2 +- sources/plugins/fakeobjects/lang/pt-br.js | 2 +- sources/plugins/fakeobjects/lang/pt.js | 6 +- sources/plugins/fakeobjects/lang/ro.js | 2 +- sources/plugins/fakeobjects/lang/ru.js | 2 +- sources/plugins/fakeobjects/lang/si.js | 2 +- sources/plugins/fakeobjects/lang/sk.js | 2 +- sources/plugins/fakeobjects/lang/sl.js | 4 +- sources/plugins/fakeobjects/lang/sq.js | 2 +- sources/plugins/fakeobjects/lang/sr-latn.js | 2 +- sources/plugins/fakeobjects/lang/sr.js | 2 +- sources/plugins/fakeobjects/lang/sv.js | 2 +- sources/plugins/fakeobjects/lang/th.js | 2 +- sources/plugins/fakeobjects/lang/tr.js | 2 +- sources/plugins/fakeobjects/lang/tt.js | 2 +- sources/plugins/fakeobjects/lang/ug.js | 2 +- sources/plugins/fakeobjects/lang/uk.js | 2 +- sources/plugins/fakeobjects/lang/vi.js | 2 +- sources/plugins/fakeobjects/lang/zh-cn.js | 2 +- sources/plugins/fakeobjects/lang/zh.js | 2 +- sources/plugins/fakeobjects/plugin.js | 30 +- sources/plugins/filebrowser/plugin.js | 4 +- sources/plugins/floatingspace/plugin.js | 10 +- sources/plugins/floatpanel/plugin.js | 50 +- sources/plugins/format/lang/af.js | 2 +- sources/plugins/format/lang/ar.js | 2 +- sources/plugins/format/lang/az.js | 18 + sources/plugins/format/lang/bg.js | 2 +- sources/plugins/format/lang/bn.js | 4 +- sources/plugins/format/lang/bs.js | 2 +- sources/plugins/format/lang/ca.js | 2 +- sources/plugins/format/lang/cs.js | 2 +- sources/plugins/format/lang/cy.js | 2 +- sources/plugins/format/lang/da.js | 2 +- sources/plugins/format/lang/de-ch.js | 2 +- sources/plugins/format/lang/de.js | 2 +- sources/plugins/format/lang/el.js | 2 +- sources/plugins/format/lang/en-au.js | 2 +- sources/plugins/format/lang/en-ca.js | 2 +- sources/plugins/format/lang/en-gb.js | 2 +- sources/plugins/format/lang/en.js | 2 +- sources/plugins/format/lang/eo.js | 2 +- sources/plugins/format/lang/es-mx.js | 18 + sources/plugins/format/lang/es.js | 2 +- sources/plugins/format/lang/et.js | 2 +- sources/plugins/format/lang/eu.js | 2 +- sources/plugins/format/lang/fa.js | 2 +- sources/plugins/format/lang/fi.js | 2 +- sources/plugins/format/lang/fo.js | 2 +- sources/plugins/format/lang/fr-ca.js | 2 +- sources/plugins/format/lang/fr.js | 6 +- sources/plugins/format/lang/gl.js | 2 +- sources/plugins/format/lang/gu.js | 2 +- sources/plugins/format/lang/he.js | 2 +- sources/plugins/format/lang/hi.js | 2 +- sources/plugins/format/lang/hr.js | 22 +- sources/plugins/format/lang/hu.js | 2 +- sources/plugins/format/lang/id.js | 2 +- sources/plugins/format/lang/is.js | 2 +- sources/plugins/format/lang/it.js | 2 +- sources/plugins/format/lang/ja.js | 2 +- sources/plugins/format/lang/ka.js | 2 +- sources/plugins/format/lang/km.js | 2 +- sources/plugins/format/lang/ko.js | 2 +- sources/plugins/format/lang/ku.js | 2 +- sources/plugins/format/lang/lt.js | 2 +- sources/plugins/format/lang/lv.js | 2 +- sources/plugins/format/lang/mk.js | 2 +- sources/plugins/format/lang/mn.js | 2 +- sources/plugins/format/lang/ms.js | 2 +- sources/plugins/format/lang/nb.js | 2 +- sources/plugins/format/lang/nl.js | 2 +- sources/plugins/format/lang/no.js | 2 +- sources/plugins/format/lang/oc.js | 18 + sources/plugins/format/lang/pl.js | 2 +- sources/plugins/format/lang/pt-br.js | 2 +- sources/plugins/format/lang/pt.js | 2 +- sources/plugins/format/lang/ro.js | 2 +- sources/plugins/format/lang/ru.js | 2 +- sources/plugins/format/lang/si.js | 2 +- sources/plugins/format/lang/sk.js | 2 +- sources/plugins/format/lang/sl.js | 4 +- sources/plugins/format/lang/sq.js | 2 +- sources/plugins/format/lang/sr-latn.js | 2 +- sources/plugins/format/lang/sr.js | 2 +- sources/plugins/format/lang/sv.js | 2 +- sources/plugins/format/lang/th.js | 2 +- sources/plugins/format/lang/tr.js | 2 +- sources/plugins/format/lang/tt.js | 2 +- sources/plugins/format/lang/ug.js | 2 +- sources/plugins/format/lang/uk.js | 2 +- sources/plugins/format/lang/vi.js | 2 +- sources/plugins/format/lang/zh-cn.js | 2 +- sources/plugins/format/lang/zh.js | 2 +- sources/plugins/format/plugin.js | 6 +- .../horizontalrule/icons/hidpi/horizontalrule.png | Bin 939 -> 530 bytes .../horizontalrule/icons/horizontalrule.png | Bin 519 -> 432 bytes sources/plugins/horizontalrule/lang/af.js | 2 +- sources/plugins/horizontalrule/lang/ar.js | 2 +- sources/plugins/horizontalrule/lang/az.js | 7 + sources/plugins/horizontalrule/lang/bg.js | 2 +- sources/plugins/horizontalrule/lang/bn.js | 4 +- sources/plugins/horizontalrule/lang/bs.js | 2 +- sources/plugins/horizontalrule/lang/ca.js | 2 +- sources/plugins/horizontalrule/lang/cs.js | 2 +- sources/plugins/horizontalrule/lang/cy.js | 2 +- sources/plugins/horizontalrule/lang/da.js | 2 +- sources/plugins/horizontalrule/lang/de-ch.js | 2 +- sources/plugins/horizontalrule/lang/de.js | 2 +- sources/plugins/horizontalrule/lang/el.js | 2 +- sources/plugins/horizontalrule/lang/en-au.js | 2 +- sources/plugins/horizontalrule/lang/en-ca.js | 2 +- sources/plugins/horizontalrule/lang/en-gb.js | 2 +- sources/plugins/horizontalrule/lang/en.js | 2 +- sources/plugins/horizontalrule/lang/eo.js | 2 +- sources/plugins/horizontalrule/lang/es-mx.js | 7 + sources/plugins/horizontalrule/lang/es.js | 2 +- sources/plugins/horizontalrule/lang/et.js | 2 +- sources/plugins/horizontalrule/lang/eu.js | 2 +- sources/plugins/horizontalrule/lang/fa.js | 2 +- sources/plugins/horizontalrule/lang/fi.js | 2 +- sources/plugins/horizontalrule/lang/fo.js | 2 +- sources/plugins/horizontalrule/lang/fr-ca.js | 2 +- sources/plugins/horizontalrule/lang/fr.js | 2 +- sources/plugins/horizontalrule/lang/gl.js | 2 +- sources/plugins/horizontalrule/lang/gu.js | 2 +- sources/plugins/horizontalrule/lang/he.js | 2 +- sources/plugins/horizontalrule/lang/hi.js | 2 +- sources/plugins/horizontalrule/lang/hr.js | 2 +- sources/plugins/horizontalrule/lang/hu.js | 2 +- sources/plugins/horizontalrule/lang/id.js | 2 +- sources/plugins/horizontalrule/lang/is.js | 2 +- sources/plugins/horizontalrule/lang/it.js | 2 +- sources/plugins/horizontalrule/lang/ja.js | 2 +- sources/plugins/horizontalrule/lang/ka.js | 2 +- sources/plugins/horizontalrule/lang/km.js | 2 +- sources/plugins/horizontalrule/lang/ko.js | 2 +- sources/plugins/horizontalrule/lang/ku.js | 2 +- sources/plugins/horizontalrule/lang/lt.js | 2 +- sources/plugins/horizontalrule/lang/lv.js | 2 +- sources/plugins/horizontalrule/lang/mk.js | 2 +- sources/plugins/horizontalrule/lang/mn.js | 2 +- sources/plugins/horizontalrule/lang/ms.js | 2 +- sources/plugins/horizontalrule/lang/nb.js | 2 +- sources/plugins/horizontalrule/lang/nl.js | 2 +- sources/plugins/horizontalrule/lang/no.js | 2 +- sources/plugins/horizontalrule/lang/oc.js | 7 + sources/plugins/horizontalrule/lang/pl.js | 2 +- sources/plugins/horizontalrule/lang/pt-br.js | 2 +- sources/plugins/horizontalrule/lang/pt.js | 4 +- sources/plugins/horizontalrule/lang/ro.js | 2 +- sources/plugins/horizontalrule/lang/ru.js | 2 +- sources/plugins/horizontalrule/lang/si.js | 2 +- sources/plugins/horizontalrule/lang/sk.js | 2 +- sources/plugins/horizontalrule/lang/sl.js | 2 +- sources/plugins/horizontalrule/lang/sq.js | 2 +- sources/plugins/horizontalrule/lang/sr-latn.js | 2 +- sources/plugins/horizontalrule/lang/sr.js | 2 +- sources/plugins/horizontalrule/lang/sv.js | 2 +- sources/plugins/horizontalrule/lang/th.js | 2 +- sources/plugins/horizontalrule/lang/tr.js | 2 +- sources/plugins/horizontalrule/lang/tt.js | 2 +- sources/plugins/horizontalrule/lang/ug.js | 2 +- sources/plugins/horizontalrule/lang/uk.js | 2 +- sources/plugins/horizontalrule/lang/vi.js | 2 +- sources/plugins/horizontalrule/lang/zh-cn.js | 2 +- sources/plugins/horizontalrule/lang/zh.js | 2 +- sources/plugins/horizontalrule/plugin.js | 4 +- sources/plugins/html5video/dialogs/html5video.js | 161 + sources/plugins/html5video/icons/html5video.png | Bin 0 -> 14773 bytes sources/plugins/html5video/lang/de.js | 14 + sources/plugins/html5video/lang/en.js | 15 + sources/plugins/html5video/lang/es.js | 14 + sources/plugins/html5video/lang/eu.js | 14 + sources/plugins/html5video/lang/fr.js | 14 + sources/plugins/html5video/lang/ru.js | 15 + sources/plugins/html5video/lang/uk.js | 14 + sources/plugins/html5video/lang/uz.js | 14 + sources/plugins/html5video/plugin.js | 139 + sources/plugins/htmlwriter/plugin.js | 7 +- .../plugins/htmlwriter/samples/outputforflash.html | 4 +- sources/plugins/htmlwriter/samples/outputhtml.html | 4 +- sources/plugins/iframe/dialogs/iframe.js | 4 +- sources/plugins/iframe/icons/hidpi/iframe.png | Bin 3091 -> 1837 bytes sources/plugins/iframe/icons/iframe.png | Bin 989 -> 816 bytes sources/plugins/iframe/lang/af.js | 2 +- sources/plugins/iframe/lang/ar.js | 2 +- sources/plugins/iframe/lang/az.js | 11 + sources/plugins/iframe/lang/bg.js | 2 +- sources/plugins/iframe/lang/bn.js | 2 +- sources/plugins/iframe/lang/bs.js | 2 +- sources/plugins/iframe/lang/ca.js | 2 +- sources/plugins/iframe/lang/cs.js | 2 +- sources/plugins/iframe/lang/cy.js | 2 +- sources/plugins/iframe/lang/da.js | 2 +- sources/plugins/iframe/lang/de-ch.js | 2 +- sources/plugins/iframe/lang/de.js | 2 +- sources/plugins/iframe/lang/el.js | 2 +- sources/plugins/iframe/lang/en-au.js | 2 +- sources/plugins/iframe/lang/en-ca.js | 2 +- sources/plugins/iframe/lang/en-gb.js | 2 +- sources/plugins/iframe/lang/en.js | 2 +- sources/plugins/iframe/lang/eo.js | 2 +- sources/plugins/iframe/lang/es-mx.js | 11 + sources/plugins/iframe/lang/es.js | 2 +- sources/plugins/iframe/lang/et.js | 2 +- sources/plugins/iframe/lang/eu.js | 2 +- sources/plugins/iframe/lang/fa.js | 2 +- sources/plugins/iframe/lang/fi.js | 2 +- sources/plugins/iframe/lang/fo.js | 2 +- sources/plugins/iframe/lang/fr-ca.js | 2 +- sources/plugins/iframe/lang/fr.js | 12 +- sources/plugins/iframe/lang/gl.js | 2 +- sources/plugins/iframe/lang/gu.js | 2 +- sources/plugins/iframe/lang/he.js | 2 +- sources/plugins/iframe/lang/hi.js | 2 +- sources/plugins/iframe/lang/hr.js | 4 +- sources/plugins/iframe/lang/hu.js | 2 +- sources/plugins/iframe/lang/id.js | 2 +- sources/plugins/iframe/lang/is.js | 2 +- sources/plugins/iframe/lang/it.js | 2 +- sources/plugins/iframe/lang/ja.js | 2 +- sources/plugins/iframe/lang/ka.js | 2 +- sources/plugins/iframe/lang/km.js | 2 +- sources/plugins/iframe/lang/ko.js | 2 +- sources/plugins/iframe/lang/ku.js | 2 +- sources/plugins/iframe/lang/lt.js | 2 +- sources/plugins/iframe/lang/lv.js | 2 +- sources/plugins/iframe/lang/mk.js | 2 +- sources/plugins/iframe/lang/mn.js | 2 +- sources/plugins/iframe/lang/ms.js | 2 +- sources/plugins/iframe/lang/nb.js | 2 +- sources/plugins/iframe/lang/nl.js | 2 +- sources/plugins/iframe/lang/no.js | 2 +- sources/plugins/iframe/lang/oc.js | 11 + sources/plugins/iframe/lang/pl.js | 2 +- sources/plugins/iframe/lang/pt-br.js | 2 +- sources/plugins/iframe/lang/pt.js | 2 +- sources/plugins/iframe/lang/ro.js | 2 +- sources/plugins/iframe/lang/ru.js | 2 +- sources/plugins/iframe/lang/si.js | 2 +- sources/plugins/iframe/lang/sk.js | 2 +- sources/plugins/iframe/lang/sl.js | 8 +- sources/plugins/iframe/lang/sq.js | 2 +- sources/plugins/iframe/lang/sr-latn.js | 2 +- sources/plugins/iframe/lang/sr.js | 2 +- sources/plugins/iframe/lang/sv.js | 4 +- sources/plugins/iframe/lang/th.js | 2 +- sources/plugins/iframe/lang/tr.js | 2 +- sources/plugins/iframe/lang/tt.js | 2 +- sources/plugins/iframe/lang/ug.js | 2 +- sources/plugins/iframe/lang/uk.js | 2 +- sources/plugins/iframe/lang/vi.js | 2 +- sources/plugins/iframe/lang/zh-cn.js | 2 +- sources/plugins/iframe/lang/zh.js | 2 +- sources/plugins/iframe/plugin.js | 4 +- sources/plugins/image/dialogs/image.js | 15 +- sources/plugins/image/icons/hidpi/image.png | Bin 1745 -> 905 bytes sources/plugins/image/icons/image.png | Bin 756 -> 498 bytes sources/plugins/image/lang/af.js | 2 +- sources/plugins/image/lang/ar.js | 2 +- sources/plugins/image/lang/az.js | 25 + sources/plugins/image/lang/bg.js | 2 +- sources/plugins/image/lang/bn.js | 4 +- sources/plugins/image/lang/bs.js | 2 +- sources/plugins/image/lang/ca.js | 2 +- sources/plugins/image/lang/cs.js | 2 +- sources/plugins/image/lang/cy.js | 2 +- sources/plugins/image/lang/da.js | 2 +- sources/plugins/image/lang/de-ch.js | 2 +- sources/plugins/image/lang/de.js | 2 +- sources/plugins/image/lang/el.js | 2 +- sources/plugins/image/lang/en-au.js | 2 +- sources/plugins/image/lang/en-ca.js | 2 +- sources/plugins/image/lang/en-gb.js | 2 +- sources/plugins/image/lang/en.js | 2 +- sources/plugins/image/lang/eo.js | 2 +- sources/plugins/image/lang/es-mx.js | 25 + sources/plugins/image/lang/es.js | 2 +- sources/plugins/image/lang/et.js | 2 +- sources/plugins/image/lang/eu.js | 2 +- sources/plugins/image/lang/fa.js | 2 +- sources/plugins/image/lang/fi.js | 2 +- sources/plugins/image/lang/fo.js | 2 +- sources/plugins/image/lang/fr-ca.js | 2 +- sources/plugins/image/lang/fr.js | 22 +- sources/plugins/image/lang/gl.js | 2 +- sources/plugins/image/lang/gu.js | 2 +- sources/plugins/image/lang/he.js | 2 +- sources/plugins/image/lang/hi.js | 2 +- sources/plugins/image/lang/hr.js | 4 +- sources/plugins/image/lang/hu.js | 2 +- sources/plugins/image/lang/id.js | 2 +- sources/plugins/image/lang/is.js | 2 +- sources/plugins/image/lang/it.js | 2 +- sources/plugins/image/lang/ja.js | 2 +- sources/plugins/image/lang/ka.js | 2 +- sources/plugins/image/lang/km.js | 2 +- sources/plugins/image/lang/ko.js | 2 +- sources/plugins/image/lang/ku.js | 2 +- sources/plugins/image/lang/lt.js | 2 +- sources/plugins/image/lang/lv.js | 2 +- sources/plugins/image/lang/mk.js | 2 +- sources/plugins/image/lang/mn.js | 2 +- sources/plugins/image/lang/ms.js | 2 +- sources/plugins/image/lang/nb.js | 2 +- sources/plugins/image/lang/nl.js | 2 +- sources/plugins/image/lang/no.js | 2 +- sources/plugins/image/lang/oc.js | 25 + sources/plugins/image/lang/pl.js | 2 +- sources/plugins/image/lang/pt-br.js | 2 +- sources/plugins/image/lang/pt.js | 24 +- sources/plugins/image/lang/ro.js | 2 +- sources/plugins/image/lang/ru.js | 2 +- sources/plugins/image/lang/si.js | 2 +- sources/plugins/image/lang/sk.js | 2 +- sources/plugins/image/lang/sl.js | 16 +- sources/plugins/image/lang/sq.js | 2 +- sources/plugins/image/lang/sr-latn.js | 2 +- sources/plugins/image/lang/sr.js | 2 +- sources/plugins/image/lang/sv.js | 2 +- sources/plugins/image/lang/th.js | 2 +- sources/plugins/image/lang/tr.js | 2 +- sources/plugins/image/lang/tt.js | 2 +- sources/plugins/image/lang/ug.js | 2 +- sources/plugins/image/lang/uk.js | 2 +- sources/plugins/image/lang/vi.js | 2 +- sources/plugins/image/lang/zh-cn.js | 2 +- sources/plugins/image/lang/zh.js | 2 +- sources/plugins/image/plugin.js | 10 +- sources/plugins/indent/dev/indent.html | 2 +- sources/plugins/indent/icons/hidpi/indent-rtl.png | Bin 1610 -> 757 bytes sources/plugins/indent/icons/hidpi/indent.png | Bin 1573 -> 1001 bytes sources/plugins/indent/icons/hidpi/outdent-rtl.png | Bin 1584 -> 738 bytes sources/plugins/indent/icons/hidpi/outdent.png | Bin 1598 -> 754 bytes sources/plugins/indent/icons/indent-rtl.png | Bin 726 -> 438 bytes sources/plugins/indent/icons/indent.png | Bin 711 -> 489 bytes sources/plugins/indent/icons/outdent-rtl.png | Bin 708 -> 450 bytes sources/plugins/indent/icons/outdent.png | Bin 699 -> 413 bytes sources/plugins/indent/lang/af.js | 2 +- sources/plugins/indent/lang/ar.js | 2 +- sources/plugins/indent/lang/az.js | 8 + sources/plugins/indent/lang/bg.js | 2 +- sources/plugins/indent/lang/bn.js | 4 +- sources/plugins/indent/lang/bs.js | 2 +- sources/plugins/indent/lang/ca.js | 2 +- sources/plugins/indent/lang/cs.js | 2 +- sources/plugins/indent/lang/cy.js | 2 +- sources/plugins/indent/lang/da.js | 2 +- sources/plugins/indent/lang/de-ch.js | 2 +- sources/plugins/indent/lang/de.js | 2 +- sources/plugins/indent/lang/el.js | 2 +- sources/plugins/indent/lang/en-au.js | 2 +- sources/plugins/indent/lang/en-ca.js | 2 +- sources/plugins/indent/lang/en-gb.js | 2 +- sources/plugins/indent/lang/en.js | 2 +- sources/plugins/indent/lang/eo.js | 2 +- sources/plugins/indent/lang/es-mx.js | 8 + sources/plugins/indent/lang/es.js | 2 +- sources/plugins/indent/lang/et.js | 2 +- sources/plugins/indent/lang/eu.js | 2 +- sources/plugins/indent/lang/fa.js | 2 +- sources/plugins/indent/lang/fi.js | 2 +- sources/plugins/indent/lang/fo.js | 2 +- sources/plugins/indent/lang/fr-ca.js | 2 +- sources/plugins/indent/lang/fr.js | 6 +- sources/plugins/indent/lang/gl.js | 2 +- sources/plugins/indent/lang/gu.js | 2 +- sources/plugins/indent/lang/he.js | 2 +- sources/plugins/indent/lang/hi.js | 2 +- sources/plugins/indent/lang/hr.js | 2 +- sources/plugins/indent/lang/hu.js | 2 +- sources/plugins/indent/lang/id.js | 2 +- sources/plugins/indent/lang/is.js | 2 +- sources/plugins/indent/lang/it.js | 2 +- sources/plugins/indent/lang/ja.js | 2 +- sources/plugins/indent/lang/ka.js | 2 +- sources/plugins/indent/lang/km.js | 2 +- sources/plugins/indent/lang/ko.js | 2 +- sources/plugins/indent/lang/ku.js | 2 +- sources/plugins/indent/lang/lt.js | 2 +- sources/plugins/indent/lang/lv.js | 2 +- sources/plugins/indent/lang/mk.js | 2 +- sources/plugins/indent/lang/mn.js | 2 +- sources/plugins/indent/lang/ms.js | 2 +- sources/plugins/indent/lang/nb.js | 2 +- sources/plugins/indent/lang/nl.js | 2 +- sources/plugins/indent/lang/no.js | 2 +- sources/plugins/indent/lang/oc.js | 8 + sources/plugins/indent/lang/pl.js | 2 +- sources/plugins/indent/lang/pt-br.js | 2 +- sources/plugins/indent/lang/pt.js | 6 +- sources/plugins/indent/lang/ro.js | 2 +- sources/plugins/indent/lang/ru.js | 2 +- sources/plugins/indent/lang/si.js | 2 +- sources/plugins/indent/lang/sk.js | 2 +- sources/plugins/indent/lang/sl.js | 2 +- sources/plugins/indent/lang/sq.js | 2 +- sources/plugins/indent/lang/sr-latn.js | 2 +- sources/plugins/indent/lang/sr.js | 2 +- sources/plugins/indent/lang/sv.js | 2 +- sources/plugins/indent/lang/th.js | 2 +- sources/plugins/indent/lang/tr.js | 2 +- sources/plugins/indent/lang/tt.js | 2 +- sources/plugins/indent/lang/ug.js | 2 +- sources/plugins/indent/lang/uk.js | 2 +- sources/plugins/indent/lang/vi.js | 2 +- sources/plugins/indent/lang/zh-cn.js | 2 +- sources/plugins/indent/lang/zh.js | 2 +- sources/plugins/indent/plugin.js | 4 +- sources/plugins/indentblock/plugin.js | 16 +- sources/plugins/indentlist/plugin.js | 29 +- .../plugins/justify/icons/hidpi/justifyblock.png | Bin 882 -> 533 bytes .../plugins/justify/icons/hidpi/justifycenter.png | Bin 1142 -> 576 bytes .../plugins/justify/icons/hidpi/justifyleft.png | Bin 1042 -> 569 bytes .../plugins/justify/icons/hidpi/justifyright.png | Bin 1048 -> 549 bytes sources/plugins/justify/icons/justifyblock.png | Bin 496 -> 315 bytes sources/plugins/justify/icons/justifycenter.png | Bin 609 -> 564 bytes sources/plugins/justify/icons/justifyleft.png | Bin 558 -> 342 bytes sources/plugins/justify/icons/justifyright.png | Bin 554 -> 348 bytes sources/plugins/justify/lang/af.js | 2 +- sources/plugins/justify/lang/ar.js | 2 +- sources/plugins/justify/lang/az.js | 10 + sources/plugins/justify/lang/bg.js | 2 +- sources/plugins/justify/lang/bn.js | 4 +- sources/plugins/justify/lang/bs.js | 2 +- sources/plugins/justify/lang/ca.js | 2 +- sources/plugins/justify/lang/cs.js | 2 +- sources/plugins/justify/lang/cy.js | 2 +- sources/plugins/justify/lang/da.js | 2 +- sources/plugins/justify/lang/de-ch.js | 2 +- sources/plugins/justify/lang/de.js | 2 +- sources/plugins/justify/lang/el.js | 2 +- sources/plugins/justify/lang/en-au.js | 2 +- sources/plugins/justify/lang/en-ca.js | 2 +- sources/plugins/justify/lang/en-gb.js | 2 +- sources/plugins/justify/lang/en.js | 2 +- sources/plugins/justify/lang/eo.js | 2 +- sources/plugins/justify/lang/es-mx.js | 10 + sources/plugins/justify/lang/es.js | 2 +- sources/plugins/justify/lang/et.js | 2 +- sources/plugins/justify/lang/eu.js | 2 +- sources/plugins/justify/lang/fa.js | 2 +- sources/plugins/justify/lang/fi.js | 2 +- sources/plugins/justify/lang/fo.js | 2 +- sources/plugins/justify/lang/fr-ca.js | 2 +- sources/plugins/justify/lang/fr.js | 2 +- sources/plugins/justify/lang/gl.js | 2 +- sources/plugins/justify/lang/gu.js | 2 +- sources/plugins/justify/lang/he.js | 2 +- sources/plugins/justify/lang/hi.js | 2 +- sources/plugins/justify/lang/hr.js | 2 +- sources/plugins/justify/lang/hu.js | 2 +- sources/plugins/justify/lang/id.js | 2 +- sources/plugins/justify/lang/is.js | 2 +- sources/plugins/justify/lang/it.js | 2 +- sources/plugins/justify/lang/ja.js | 2 +- sources/plugins/justify/lang/ka.js | 2 +- sources/plugins/justify/lang/km.js | 2 +- sources/plugins/justify/lang/ko.js | 2 +- sources/plugins/justify/lang/ku.js | 2 +- sources/plugins/justify/lang/lt.js | 2 +- sources/plugins/justify/lang/lv.js | 2 +- sources/plugins/justify/lang/mk.js | 2 +- sources/plugins/justify/lang/mn.js | 2 +- sources/plugins/justify/lang/ms.js | 2 +- sources/plugins/justify/lang/nb.js | 2 +- sources/plugins/justify/lang/nl.js | 2 +- sources/plugins/justify/lang/no.js | 2 +- sources/plugins/justify/lang/oc.js | 10 + sources/plugins/justify/lang/pl.js | 2 +- sources/plugins/justify/lang/pt-br.js | 2 +- sources/plugins/justify/lang/pt.js | 4 +- sources/plugins/justify/lang/ro.js | 2 +- sources/plugins/justify/lang/ru.js | 2 +- sources/plugins/justify/lang/si.js | 2 +- sources/plugins/justify/lang/sk.js | 2 +- sources/plugins/justify/lang/sl.js | 2 +- sources/plugins/justify/lang/sq.js | 2 +- sources/plugins/justify/lang/sr-latn.js | 2 +- sources/plugins/justify/lang/sr.js | 2 +- sources/plugins/justify/lang/sv.js | 2 +- sources/plugins/justify/lang/th.js | 2 +- sources/plugins/justify/lang/tr.js | 2 +- sources/plugins/justify/lang/tt.js | 2 +- sources/plugins/justify/lang/ug.js | 2 +- sources/plugins/justify/lang/uk.js | 2 +- sources/plugins/justify/lang/vi.js | 2 +- sources/plugins/justify/lang/zh-cn.js | 2 +- sources/plugins/justify/lang/zh.js | 2 +- sources/plugins/justify/plugin.js | 43 +- sources/plugins/lineutils/dev/dnd.html | 172 + sources/plugins/lineutils/dev/magicfinger.html | 285 ++ sources/plugins/lineutils/plugin.js | 1018 +++++ sources/plugins/link/dialogs/anchor.js | 29 +- sources/plugins/link/dialogs/link.js | 223 +- sources/plugins/link/icons/anchor-rtl.png | Bin 764 -> 523 bytes sources/plugins/link/icons/anchor.png | Bin 757 -> 517 bytes sources/plugins/link/icons/hidpi/anchor-rtl.png | Bin 1654 -> 957 bytes sources/plugins/link/icons/hidpi/anchor.png | Bin 1633 -> 917 bytes sources/plugins/link/icons/hidpi/link.png | Bin 1620 -> 935 bytes sources/plugins/link/icons/hidpi/unlink.png | Bin 2209 -> 1317 bytes sources/plugins/link/icons/link.png | Bin 656 -> 533 bytes sources/plugins/link/icons/unlink.png | Bin 812 -> 692 bytes sources/plugins/link/images/anchor.png | Bin 589 -> 752 bytes sources/plugins/link/images/hidpi/anchor.png | Bin 1379 -> 1109 bytes sources/plugins/link/lang/af.js | 4 +- sources/plugins/link/lang/ar.js | 4 +- sources/plugins/link/lang/az.js | 67 + sources/plugins/link/lang/bg.js | 4 +- sources/plugins/link/lang/bn.js | 6 +- sources/plugins/link/lang/bs.js | 4 +- sources/plugins/link/lang/ca.js | 4 +- sources/plugins/link/lang/cs.js | 4 +- sources/plugins/link/lang/cy.js | 4 +- sources/plugins/link/lang/da.js | 4 +- sources/plugins/link/lang/de-ch.js | 4 +- sources/plugins/link/lang/de.js | 4 +- sources/plugins/link/lang/el.js | 4 +- sources/plugins/link/lang/en-au.js | 4 +- sources/plugins/link/lang/en-ca.js | 4 +- sources/plugins/link/lang/en-gb.js | 4 +- sources/plugins/link/lang/en.js | 4 +- sources/plugins/link/lang/eo.js | 4 +- sources/plugins/link/lang/es-mx.js | 67 + sources/plugins/link/lang/es.js | 4 +- sources/plugins/link/lang/et.js | 4 +- sources/plugins/link/lang/eu.js | 4 +- sources/plugins/link/lang/fa.js | 4 +- sources/plugins/link/lang/fi.js | 4 +- sources/plugins/link/lang/fo.js | 4 +- sources/plugins/link/lang/fr-ca.js | 4 +- sources/plugins/link/lang/fr.js | 50 +- sources/plugins/link/lang/gl.js | 4 +- sources/plugins/link/lang/gu.js | 4 +- sources/plugins/link/lang/he.js | 4 +- sources/plugins/link/lang/hi.js | 4 +- sources/plugins/link/lang/hr.js | 16 +- sources/plugins/link/lang/hu.js | 4 +- sources/plugins/link/lang/id.js | 4 +- sources/plugins/link/lang/is.js | 4 +- sources/plugins/link/lang/it.js | 4 +- sources/plugins/link/lang/ja.js | 4 +- sources/plugins/link/lang/ka.js | 4 +- sources/plugins/link/lang/km.js | 4 +- sources/plugins/link/lang/ko.js | 4 +- sources/plugins/link/lang/ku.js | 4 +- sources/plugins/link/lang/lt.js | 4 +- sources/plugins/link/lang/lv.js | 4 +- sources/plugins/link/lang/mk.js | 4 +- sources/plugins/link/lang/mn.js | 4 +- sources/plugins/link/lang/ms.js | 4 +- sources/plugins/link/lang/nb.js | 14 +- sources/plugins/link/lang/nl.js | 4 +- sources/plugins/link/lang/no.js | 4 +- sources/plugins/link/lang/oc.js | 67 + sources/plugins/link/lang/pl.js | 4 +- sources/plugins/link/lang/pt-br.js | 4 +- sources/plugins/link/lang/pt.js | 70 +- sources/plugins/link/lang/ro.js | 4 +- sources/plugins/link/lang/ru.js | 4 +- sources/plugins/link/lang/si.js | 4 +- sources/plugins/link/lang/sk.js | 4 +- sources/plugins/link/lang/sl.js | 50 +- sources/plugins/link/lang/sq.js | 4 +- sources/plugins/link/lang/sr-latn.js | 4 +- sources/plugins/link/lang/sr.js | 4 +- sources/plugins/link/lang/sv.js | 6 +- sources/plugins/link/lang/th.js | 4 +- sources/plugins/link/lang/tr.js | 4 +- sources/plugins/link/lang/tt.js | 4 +- sources/plugins/link/lang/ug.js | 4 +- sources/plugins/link/lang/uk.js | 4 +- sources/plugins/link/lang/vi.js | 4 +- sources/plugins/link/lang/zh-cn.js | 4 +- sources/plugins/link/lang/zh.js | 4 +- sources/plugins/link/plugin.js | 133 +- sources/plugins/list/icons/bulletedlist-rtl.png | Bin 647 -> 367 bytes sources/plugins/list/icons/bulletedlist.png | Bin 646 -> 370 bytes .../plugins/list/icons/hidpi/bulletedlist-rtl.png | Bin 1451 -> 820 bytes sources/plugins/list/icons/hidpi/bulletedlist.png | Bin 1441 -> 828 bytes .../plugins/list/icons/hidpi/numberedlist-rtl.png | Bin 1248 -> 628 bytes sources/plugins/list/icons/hidpi/numberedlist.png | Bin 1218 -> 655 bytes sources/plugins/list/icons/numberedlist-rtl.png | Bin 666 -> 390 bytes sources/plugins/list/icons/numberedlist.png | Bin 645 -> 390 bytes sources/plugins/list/lang/af.js | 2 +- sources/plugins/list/lang/ar.js | 2 +- sources/plugins/list/lang/az.js | 8 + sources/plugins/list/lang/bg.js | 2 +- sources/plugins/list/lang/bn.js | 4 +- sources/plugins/list/lang/bs.js | 2 +- sources/plugins/list/lang/ca.js | 2 +- sources/plugins/list/lang/cs.js | 2 +- sources/plugins/list/lang/cy.js | 2 +- sources/plugins/list/lang/da.js | 2 +- sources/plugins/list/lang/de-ch.js | 2 +- sources/plugins/list/lang/de.js | 2 +- sources/plugins/list/lang/el.js | 2 +- sources/plugins/list/lang/en-au.js | 2 +- sources/plugins/list/lang/en-ca.js | 2 +- sources/plugins/list/lang/en-gb.js | 2 +- sources/plugins/list/lang/en.js | 2 +- sources/plugins/list/lang/eo.js | 2 +- sources/plugins/list/lang/es-mx.js | 8 + sources/plugins/list/lang/es.js | 2 +- sources/plugins/list/lang/et.js | 2 +- sources/plugins/list/lang/eu.js | 2 +- sources/plugins/list/lang/fa.js | 2 +- sources/plugins/list/lang/fi.js | 2 +- sources/plugins/list/lang/fo.js | 2 +- sources/plugins/list/lang/fr-ca.js | 2 +- sources/plugins/list/lang/fr.js | 6 +- sources/plugins/list/lang/gl.js | 2 +- sources/plugins/list/lang/gu.js | 2 +- sources/plugins/list/lang/he.js | 2 +- sources/plugins/list/lang/hi.js | 2 +- sources/plugins/list/lang/hr.js | 2 +- sources/plugins/list/lang/hu.js | 2 +- sources/plugins/list/lang/id.js | 2 +- sources/plugins/list/lang/is.js | 2 +- sources/plugins/list/lang/it.js | 2 +- sources/plugins/list/lang/ja.js | 2 +- sources/plugins/list/lang/ka.js | 2 +- sources/plugins/list/lang/km.js | 2 +- sources/plugins/list/lang/ko.js | 2 +- sources/plugins/list/lang/ku.js | 2 +- sources/plugins/list/lang/lt.js | 2 +- sources/plugins/list/lang/lv.js | 2 +- sources/plugins/list/lang/mk.js | 2 +- sources/plugins/list/lang/mn.js | 2 +- sources/plugins/list/lang/ms.js | 2 +- sources/plugins/list/lang/nb.js | 4 +- sources/plugins/list/lang/nl.js | 2 +- sources/plugins/list/lang/no.js | 2 +- sources/plugins/list/lang/oc.js | 8 + sources/plugins/list/lang/pl.js | 2 +- sources/plugins/list/lang/pt-br.js | 2 +- sources/plugins/list/lang/pt.js | 2 +- sources/plugins/list/lang/ro.js | 2 +- sources/plugins/list/lang/ru.js | 2 +- sources/plugins/list/lang/si.js | 2 +- sources/plugins/list/lang/sk.js | 2 +- sources/plugins/list/lang/sl.js | 6 +- sources/plugins/list/lang/sq.js | 2 +- sources/plugins/list/lang/sr-latn.js | 2 +- sources/plugins/list/lang/sr.js | 2 +- sources/plugins/list/lang/sv.js | 2 +- sources/plugins/list/lang/th.js | 2 +- sources/plugins/list/lang/tr.js | 2 +- sources/plugins/list/lang/tt.js | 2 +- sources/plugins/list/lang/ug.js | 2 +- sources/plugins/list/lang/uk.js | 2 +- sources/plugins/list/lang/vi.js | 2 +- sources/plugins/list/lang/zh-cn.js | 2 +- sources/plugins/list/lang/zh.js | 2 +- sources/plugins/list/plugin.js | 42 +- sources/plugins/listblock/plugin.js | 14 +- sources/plugins/liststyle/dialogs/liststyle.js | 2 +- sources/plugins/liststyle/lang/af.js | 2 +- sources/plugins/liststyle/lang/ar.js | 2 +- sources/plugins/liststyle/lang/az.js | 25 + sources/plugins/liststyle/lang/bg.js | 2 +- sources/plugins/liststyle/lang/bn.js | 4 +- sources/plugins/liststyle/lang/bs.js | 2 +- sources/plugins/liststyle/lang/ca.js | 2 +- sources/plugins/liststyle/lang/cs.js | 2 +- sources/plugins/liststyle/lang/cy.js | 2 +- sources/plugins/liststyle/lang/da.js | 2 +- sources/plugins/liststyle/lang/de-ch.js | 2 +- sources/plugins/liststyle/lang/de.js | 2 +- sources/plugins/liststyle/lang/el.js | 2 +- sources/plugins/liststyle/lang/en-au.js | 2 +- sources/plugins/liststyle/lang/en-ca.js | 2 +- sources/plugins/liststyle/lang/en-gb.js | 2 +- sources/plugins/liststyle/lang/en.js | 2 +- sources/plugins/liststyle/lang/eo.js | 2 +- sources/plugins/liststyle/lang/es-mx.js | 25 + sources/plugins/liststyle/lang/es.js | 2 +- sources/plugins/liststyle/lang/et.js | 2 +- sources/plugins/liststyle/lang/eu.js | 2 +- sources/plugins/liststyle/lang/fa.js | 2 +- sources/plugins/liststyle/lang/fi.js | 2 +- sources/plugins/liststyle/lang/fo.js | 2 +- sources/plugins/liststyle/lang/fr-ca.js | 2 +- sources/plugins/liststyle/lang/fr.js | 14 +- sources/plugins/liststyle/lang/gl.js | 2 +- sources/plugins/liststyle/lang/gu.js | 2 +- sources/plugins/liststyle/lang/he.js | 2 +- sources/plugins/liststyle/lang/hi.js | 2 +- sources/plugins/liststyle/lang/hr.js | 2 +- sources/plugins/liststyle/lang/hu.js | 2 +- sources/plugins/liststyle/lang/id.js | 2 +- sources/plugins/liststyle/lang/is.js | 2 +- sources/plugins/liststyle/lang/it.js | 2 +- sources/plugins/liststyle/lang/ja.js | 2 +- sources/plugins/liststyle/lang/ka.js | 2 +- sources/plugins/liststyle/lang/km.js | 2 +- sources/plugins/liststyle/lang/ko.js | 2 +- sources/plugins/liststyle/lang/ku.js | 2 +- sources/plugins/liststyle/lang/lt.js | 2 +- sources/plugins/liststyle/lang/lv.js | 2 +- sources/plugins/liststyle/lang/mk.js | 2 +- sources/plugins/liststyle/lang/mn.js | 2 +- sources/plugins/liststyle/lang/ms.js | 2 +- sources/plugins/liststyle/lang/nb.js | 4 +- sources/plugins/liststyle/lang/nl.js | 2 +- sources/plugins/liststyle/lang/no.js | 2 +- sources/plugins/liststyle/lang/oc.js | 25 + sources/plugins/liststyle/lang/pl.js | 2 +- sources/plugins/liststyle/lang/pt-br.js | 2 +- sources/plugins/liststyle/lang/pt.js | 20 +- sources/plugins/liststyle/lang/ro.js | 2 +- sources/plugins/liststyle/lang/ru.js | 2 +- sources/plugins/liststyle/lang/si.js | 2 +- sources/plugins/liststyle/lang/sk.js | 2 +- sources/plugins/liststyle/lang/sl.js | 2 +- sources/plugins/liststyle/lang/sq.js | 2 +- sources/plugins/liststyle/lang/sr-latn.js | 2 +- sources/plugins/liststyle/lang/sr.js | 2 +- sources/plugins/liststyle/lang/sv.js | 2 +- sources/plugins/liststyle/lang/th.js | 2 +- sources/plugins/liststyle/lang/tr.js | 2 +- sources/plugins/liststyle/lang/tt.js | 2 +- sources/plugins/liststyle/lang/ug.js | 2 +- sources/plugins/liststyle/lang/uk.js | 2 +- sources/plugins/liststyle/lang/vi.js | 2 +- sources/plugins/liststyle/lang/zh-cn.js | 2 +- sources/plugins/liststyle/lang/zh.js | 2 +- sources/plugins/liststyle/plugin.js | 14 +- sources/plugins/magicline/dev/magicline.html | 2 +- sources/plugins/magicline/lang/af.js | 2 +- sources/plugins/magicline/lang/ar.js | 2 +- sources/plugins/magicline/lang/az.js | 8 + sources/plugins/magicline/lang/bg.js | 2 +- sources/plugins/magicline/lang/ca.js | 2 +- sources/plugins/magicline/lang/cs.js | 2 +- sources/plugins/magicline/lang/cy.js | 2 +- sources/plugins/magicline/lang/da.js | 2 +- sources/plugins/magicline/lang/de-ch.js | 2 +- sources/plugins/magicline/lang/de.js | 2 +- sources/plugins/magicline/lang/el.js | 2 +- sources/plugins/magicline/lang/en-gb.js | 2 +- sources/plugins/magicline/lang/en.js | 2 +- sources/plugins/magicline/lang/eo.js | 2 +- sources/plugins/magicline/lang/es-mx.js | 8 + sources/plugins/magicline/lang/es.js | 2 +- sources/plugins/magicline/lang/et.js | 2 +- sources/plugins/magicline/lang/eu.js | 2 +- sources/plugins/magicline/lang/fa.js | 2 +- sources/plugins/magicline/lang/fi.js | 2 +- sources/plugins/magicline/lang/fr-ca.js | 2 +- sources/plugins/magicline/lang/fr.js | 4 +- sources/plugins/magicline/lang/gl.js | 2 +- sources/plugins/magicline/lang/he.js | 2 +- sources/plugins/magicline/lang/hr.js | 2 +- sources/plugins/magicline/lang/hu.js | 2 +- sources/plugins/magicline/lang/id.js | 2 +- sources/plugins/magicline/lang/it.js | 2 +- sources/plugins/magicline/lang/ja.js | 2 +- sources/plugins/magicline/lang/km.js | 2 +- sources/plugins/magicline/lang/ko.js | 2 +- sources/plugins/magicline/lang/ku.js | 2 +- sources/plugins/magicline/lang/lv.js | 2 +- sources/plugins/magicline/lang/nb.js | 2 +- sources/plugins/magicline/lang/nl.js | 2 +- sources/plugins/magicline/lang/no.js | 2 +- sources/plugins/magicline/lang/oc.js | 8 + sources/plugins/magicline/lang/pl.js | 2 +- sources/plugins/magicline/lang/pt-br.js | 2 +- sources/plugins/magicline/lang/pt.js | 4 +- sources/plugins/magicline/lang/ru.js | 2 +- sources/plugins/magicline/lang/si.js | 2 +- sources/plugins/magicline/lang/sk.js | 2 +- sources/plugins/magicline/lang/sl.js | 2 +- sources/plugins/magicline/lang/sq.js | 2 +- sources/plugins/magicline/lang/sv.js | 2 +- sources/plugins/magicline/lang/tr.js | 2 +- sources/plugins/magicline/lang/tt.js | 2 +- sources/plugins/magicline/lang/ug.js | 2 +- sources/plugins/magicline/lang/uk.js | 2 +- sources/plugins/magicline/lang/vi.js | 2 +- sources/plugins/magicline/lang/zh-cn.js | 2 +- sources/plugins/magicline/lang/zh.js | 2 +- sources/plugins/magicline/plugin.js | 16 +- sources/plugins/magicline/samples/magicline.html | 4 +- sources/plugins/maximize/icons/hidpi/maximize.png | Bin 2462 -> 1112 bytes sources/plugins/maximize/icons/maximize.png | Bin 921 -> 461 bytes sources/plugins/maximize/lang/af.js | 2 +- sources/plugins/maximize/lang/ar.js | 2 +- sources/plugins/maximize/lang/az.js | 8 + sources/plugins/maximize/lang/bg.js | 2 +- sources/plugins/maximize/lang/bn.js | 2 +- sources/plugins/maximize/lang/bs.js | 2 +- sources/plugins/maximize/lang/ca.js | 2 +- sources/plugins/maximize/lang/cs.js | 2 +- sources/plugins/maximize/lang/cy.js | 2 +- sources/plugins/maximize/lang/da.js | 2 +- sources/plugins/maximize/lang/de-ch.js | 2 +- sources/plugins/maximize/lang/de.js | 2 +- sources/plugins/maximize/lang/el.js | 2 +- sources/plugins/maximize/lang/en-au.js | 2 +- sources/plugins/maximize/lang/en-ca.js | 2 +- sources/plugins/maximize/lang/en-gb.js | 2 +- sources/plugins/maximize/lang/en.js | 2 +- sources/plugins/maximize/lang/eo.js | 2 +- sources/plugins/maximize/lang/es-mx.js | 8 + sources/plugins/maximize/lang/es.js | 2 +- sources/plugins/maximize/lang/et.js | 2 +- sources/plugins/maximize/lang/eu.js | 2 +- sources/plugins/maximize/lang/fa.js | 2 +- sources/plugins/maximize/lang/fi.js | 2 +- sources/plugins/maximize/lang/fo.js | 2 +- sources/plugins/maximize/lang/fr-ca.js | 2 +- sources/plugins/maximize/lang/fr.js | 4 +- sources/plugins/maximize/lang/gl.js | 2 +- sources/plugins/maximize/lang/gu.js | 2 +- sources/plugins/maximize/lang/he.js | 2 +- sources/plugins/maximize/lang/hi.js | 2 +- sources/plugins/maximize/lang/hr.js | 2 +- sources/plugins/maximize/lang/hu.js | 2 +- sources/plugins/maximize/lang/id.js | 2 +- sources/plugins/maximize/lang/is.js | 2 +- sources/plugins/maximize/lang/it.js | 2 +- sources/plugins/maximize/lang/ja.js | 2 +- sources/plugins/maximize/lang/ka.js | 2 +- sources/plugins/maximize/lang/km.js | 2 +- sources/plugins/maximize/lang/ko.js | 2 +- sources/plugins/maximize/lang/ku.js | 2 +- sources/plugins/maximize/lang/lt.js | 2 +- sources/plugins/maximize/lang/lv.js | 2 +- sources/plugins/maximize/lang/mk.js | 2 +- sources/plugins/maximize/lang/mn.js | 2 +- sources/plugins/maximize/lang/ms.js | 2 +- sources/plugins/maximize/lang/nb.js | 2 +- sources/plugins/maximize/lang/nl.js | 2 +- sources/plugins/maximize/lang/no.js | 2 +- sources/plugins/maximize/lang/oc.js | 8 + sources/plugins/maximize/lang/pl.js | 2 +- sources/plugins/maximize/lang/pt-br.js | 2 +- sources/plugins/maximize/lang/pt.js | 2 +- sources/plugins/maximize/lang/ro.js | 2 +- sources/plugins/maximize/lang/ru.js | 2 +- sources/plugins/maximize/lang/si.js | 2 +- sources/plugins/maximize/lang/sk.js | 2 +- sources/plugins/maximize/lang/sl.js | 2 +- sources/plugins/maximize/lang/sq.js | 2 +- sources/plugins/maximize/lang/sr-latn.js | 2 +- sources/plugins/maximize/lang/sr.js | 2 +- sources/plugins/maximize/lang/sv.js | 2 +- sources/plugins/maximize/lang/th.js | 2 +- sources/plugins/maximize/lang/tr.js | 2 +- sources/plugins/maximize/lang/tt.js | 2 +- sources/plugins/maximize/lang/ug.js | 2 +- sources/plugins/maximize/lang/uk.js | 2 +- sources/plugins/maximize/lang/vi.js | 2 +- sources/plugins/maximize/lang/zh-cn.js | 2 +- sources/plugins/maximize/lang/zh.js | 2 +- sources/plugins/maximize/plugin.js | 34 +- sources/plugins/menu/plugin.js | 59 +- sources/plugins/notification/lang/az.js | 7 + sources/plugins/notification/lang/ca.js | 7 + sources/plugins/notification/lang/cs.js | 7 + sources/plugins/notification/lang/da.js | 7 + sources/plugins/notification/lang/de-ch.js | 7 + sources/plugins/notification/lang/de.js | 7 + sources/plugins/notification/lang/en.js | 7 + sources/plugins/notification/lang/eo.js | 7 + sources/plugins/notification/lang/es-mx.js | 7 + sources/plugins/notification/lang/es.js | 7 + sources/plugins/notification/lang/eu.js | 7 + sources/plugins/notification/lang/fr.js | 7 + sources/plugins/notification/lang/gl.js | 7 + sources/plugins/notification/lang/hr.js | 7 + sources/plugins/notification/lang/hu.js | 7 + sources/plugins/notification/lang/id.js | 7 + sources/plugins/notification/lang/it.js | 7 + sources/plugins/notification/lang/ja.js | 7 + sources/plugins/notification/lang/km.js | 7 + sources/plugins/notification/lang/ko.js | 7 + sources/plugins/notification/lang/ku.js | 7 + sources/plugins/notification/lang/nb.js | 7 + sources/plugins/notification/lang/nl.js | 7 + sources/plugins/notification/lang/oc.js | 7 + sources/plugins/notification/lang/pl.js | 7 + sources/plugins/notification/lang/pt-br.js | 7 + sources/plugins/notification/lang/pt.js | 7 + sources/plugins/notification/lang/ru.js | 7 + sources/plugins/notification/lang/sk.js | 7 + sources/plugins/notification/lang/sv.js | 7 + sources/plugins/notification/lang/tr.js | 7 + sources/plugins/notification/lang/ug.js | 7 + sources/plugins/notification/lang/uk.js | 7 + sources/plugins/notification/lang/zh-cn.js | 7 + sources/plugins/notification/lang/zh.js | 7 + sources/plugins/notification/plugin.js | 929 +++++ sources/plugins/oembed/LICENSE.md | 21 + sources/plugins/oembed/README.md | 201 + sources/plugins/oembed/icons/hidpi/oembed.png | Bin 0 -> 1849 bytes sources/plugins/oembed/icons/oembed.png | Bin 0 -> 3143 bytes sources/plugins/oembed/lang/de.js | 23 + sources/plugins/oembed/lang/en.js | 23 + sources/plugins/oembed/lang/fr.js | 25 + sources/plugins/oembed/lang/nl.js | 23 + sources/plugins/oembed/lang/pl.js | 23 + sources/plugins/oembed/lang/pt-br.js | 23 + sources/plugins/oembed/lang/ru.js | 23 + sources/plugins/oembed/lang/tr.js | 23 + sources/plugins/oembed/libs/jquery.oembed.min.js | 1 + sources/plugins/oembed/plugin.js | 446 +++ sources/plugins/panel/plugin.js | 71 +- sources/plugins/popup/plugin.js | 4 +- .../removeformat/icons/hidpi/removeformat.png | Bin 2119 -> 1219 bytes .../plugins/removeformat/icons/removeformat.png | Bin 871 -> 637 bytes sources/plugins/removeformat/lang/af.js | 2 +- sources/plugins/removeformat/lang/ar.js | 2 +- sources/plugins/removeformat/lang/az.js | 7 + sources/plugins/removeformat/lang/bg.js | 2 +- sources/plugins/removeformat/lang/bn.js | 4 +- sources/plugins/removeformat/lang/bs.js | 2 +- sources/plugins/removeformat/lang/ca.js | 2 +- sources/plugins/removeformat/lang/cs.js | 2 +- sources/plugins/removeformat/lang/cy.js | 2 +- sources/plugins/removeformat/lang/da.js | 2 +- sources/plugins/removeformat/lang/de-ch.js | 2 +- sources/plugins/removeformat/lang/de.js | 2 +- sources/plugins/removeformat/lang/el.js | 2 +- sources/plugins/removeformat/lang/en-au.js | 2 +- sources/plugins/removeformat/lang/en-ca.js | 2 +- sources/plugins/removeformat/lang/en-gb.js | 2 +- sources/plugins/removeformat/lang/en.js | 2 +- sources/plugins/removeformat/lang/eo.js | 2 +- sources/plugins/removeformat/lang/es-mx.js | 7 + sources/plugins/removeformat/lang/es.js | 2 +- sources/plugins/removeformat/lang/et.js | 2 +- sources/plugins/removeformat/lang/eu.js | 2 +- sources/plugins/removeformat/lang/fa.js | 2 +- sources/plugins/removeformat/lang/fi.js | 2 +- sources/plugins/removeformat/lang/fo.js | 2 +- sources/plugins/removeformat/lang/fr-ca.js | 2 +- sources/plugins/removeformat/lang/fr.js | 2 +- sources/plugins/removeformat/lang/gl.js | 2 +- sources/plugins/removeformat/lang/gu.js | 2 +- sources/plugins/removeformat/lang/he.js | 2 +- sources/plugins/removeformat/lang/hi.js | 2 +- sources/plugins/removeformat/lang/hr.js | 2 +- sources/plugins/removeformat/lang/hu.js | 2 +- sources/plugins/removeformat/lang/id.js | 2 +- sources/plugins/removeformat/lang/is.js | 2 +- sources/plugins/removeformat/lang/it.js | 2 +- sources/plugins/removeformat/lang/ja.js | 2 +- sources/plugins/removeformat/lang/ka.js | 2 +- sources/plugins/removeformat/lang/km.js | 2 +- sources/plugins/removeformat/lang/ko.js | 2 +- sources/plugins/removeformat/lang/ku.js | 2 +- sources/plugins/removeformat/lang/lt.js | 2 +- sources/plugins/removeformat/lang/lv.js | 2 +- sources/plugins/removeformat/lang/mk.js | 2 +- sources/plugins/removeformat/lang/mn.js | 2 +- sources/plugins/removeformat/lang/ms.js | 2 +- sources/plugins/removeformat/lang/nb.js | 2 +- sources/plugins/removeformat/lang/nl.js | 2 +- sources/plugins/removeformat/lang/no.js | 2 +- sources/plugins/removeformat/lang/oc.js | 7 + sources/plugins/removeformat/lang/pl.js | 2 +- sources/plugins/removeformat/lang/pt-br.js | 2 +- sources/plugins/removeformat/lang/pt.js | 4 +- sources/plugins/removeformat/lang/ro.js | 2 +- sources/plugins/removeformat/lang/ru.js | 2 +- sources/plugins/removeformat/lang/si.js | 2 +- sources/plugins/removeformat/lang/sk.js | 2 +- sources/plugins/removeformat/lang/sl.js | 2 +- sources/plugins/removeformat/lang/sq.js | 2 +- sources/plugins/removeformat/lang/sr-latn.js | 2 +- sources/plugins/removeformat/lang/sr.js | 2 +- sources/plugins/removeformat/lang/sv.js | 2 +- sources/plugins/removeformat/lang/th.js | 2 +- sources/plugins/removeformat/lang/tr.js | 2 +- sources/plugins/removeformat/lang/tt.js | 2 +- sources/plugins/removeformat/lang/ug.js | 2 +- sources/plugins/removeformat/lang/uk.js | 2 +- sources/plugins/removeformat/lang/vi.js | 2 +- sources/plugins/removeformat/lang/zh-cn.js | 2 +- sources/plugins/removeformat/lang/zh.js | 2 +- sources/plugins/removeformat/plugin.js | 6 +- sources/plugins/resize/plugin.js | 6 +- sources/plugins/richcombo/plugin.js | 21 +- sources/plugins/showborders/plugin.js | 2 +- .../plugins/sourcearea/icons/hidpi/source-rtl.png | Bin 1968 -> 1018 bytes sources/plugins/sourcearea/icons/hidpi/source.png | Bin 1999 -> 1041 bytes sources/plugins/sourcearea/icons/source-rtl.png | Bin 762 -> 565 bytes sources/plugins/sourcearea/icons/source.png | Bin 764 -> 571 bytes sources/plugins/sourcearea/lang/af.js | 2 +- sources/plugins/sourcearea/lang/ar.js | 2 +- sources/plugins/sourcearea/lang/az.js | 7 + sources/plugins/sourcearea/lang/bg.js | 2 +- sources/plugins/sourcearea/lang/bn.js | 4 +- sources/plugins/sourcearea/lang/bs.js | 2 +- sources/plugins/sourcearea/lang/ca.js | 2 +- sources/plugins/sourcearea/lang/cs.js | 2 +- sources/plugins/sourcearea/lang/cy.js | 2 +- sources/plugins/sourcearea/lang/da.js | 2 +- sources/plugins/sourcearea/lang/de-ch.js | 2 +- sources/plugins/sourcearea/lang/de.js | 2 +- sources/plugins/sourcearea/lang/el.js | 2 +- sources/plugins/sourcearea/lang/en-au.js | 2 +- sources/plugins/sourcearea/lang/en-ca.js | 2 +- sources/plugins/sourcearea/lang/en-gb.js | 2 +- sources/plugins/sourcearea/lang/en.js | 2 +- sources/plugins/sourcearea/lang/eo.js | 2 +- sources/plugins/sourcearea/lang/es-mx.js | 7 + sources/plugins/sourcearea/lang/es.js | 2 +- sources/plugins/sourcearea/lang/et.js | 2 +- sources/plugins/sourcearea/lang/eu.js | 2 +- sources/plugins/sourcearea/lang/fa.js | 2 +- sources/plugins/sourcearea/lang/fi.js | 2 +- sources/plugins/sourcearea/lang/fo.js | 2 +- sources/plugins/sourcearea/lang/fr-ca.js | 2 +- sources/plugins/sourcearea/lang/fr.js | 2 +- sources/plugins/sourcearea/lang/gl.js | 2 +- sources/plugins/sourcearea/lang/gu.js | 2 +- sources/plugins/sourcearea/lang/he.js | 2 +- sources/plugins/sourcearea/lang/hi.js | 2 +- sources/plugins/sourcearea/lang/hr.js | 2 +- sources/plugins/sourcearea/lang/hu.js | 2 +- sources/plugins/sourcearea/lang/id.js | 2 +- sources/plugins/sourcearea/lang/is.js | 2 +- sources/plugins/sourcearea/lang/it.js | 2 +- sources/plugins/sourcearea/lang/ja.js | 2 +- sources/plugins/sourcearea/lang/ka.js | 2 +- sources/plugins/sourcearea/lang/km.js | 2 +- sources/plugins/sourcearea/lang/ko.js | 2 +- sources/plugins/sourcearea/lang/ku.js | 2 +- sources/plugins/sourcearea/lang/lt.js | 2 +- sources/plugins/sourcearea/lang/lv.js | 2 +- sources/plugins/sourcearea/lang/mk.js | 2 +- sources/plugins/sourcearea/lang/mn.js | 2 +- sources/plugins/sourcearea/lang/ms.js | 2 +- sources/plugins/sourcearea/lang/nb.js | 2 +- sources/plugins/sourcearea/lang/nl.js | 2 +- sources/plugins/sourcearea/lang/no.js | 2 +- sources/plugins/sourcearea/lang/oc.js | 7 + sources/plugins/sourcearea/lang/pl.js | 2 +- sources/plugins/sourcearea/lang/pt-br.js | 2 +- sources/plugins/sourcearea/lang/pt.js | 2 +- sources/plugins/sourcearea/lang/ro.js | 2 +- sources/plugins/sourcearea/lang/ru.js | 2 +- sources/plugins/sourcearea/lang/si.js | 2 +- sources/plugins/sourcearea/lang/sk.js | 2 +- sources/plugins/sourcearea/lang/sl.js | 2 +- sources/plugins/sourcearea/lang/sq.js | 2 +- sources/plugins/sourcearea/lang/sr-latn.js | 2 +- sources/plugins/sourcearea/lang/sr.js | 2 +- sources/plugins/sourcearea/lang/sv.js | 2 +- sources/plugins/sourcearea/lang/th.js | 2 +- sources/plugins/sourcearea/lang/tr.js | 2 +- sources/plugins/sourcearea/lang/tt.js | 2 +- sources/plugins/sourcearea/lang/ug.js | 2 +- sources/plugins/sourcearea/lang/uk.js | 2 +- sources/plugins/sourcearea/lang/vi.js | 2 +- sources/plugins/sourcearea/lang/zh-cn.js | 2 +- sources/plugins/sourcearea/lang/zh.js | 2 +- sources/plugins/sourcearea/plugin.js | 10 +- sources/plugins/tab/plugin.js | 2 +- sources/plugins/toolbar/lang/af.js | 2 +- sources/plugins/toolbar/lang/ar.js | 2 +- sources/plugins/toolbar/lang/az.js | 22 + sources/plugins/toolbar/lang/bg.js | 2 +- sources/plugins/toolbar/lang/bn.js | 2 +- sources/plugins/toolbar/lang/bs.js | 2 +- sources/plugins/toolbar/lang/ca.js | 2 +- sources/plugins/toolbar/lang/cs.js | 2 +- sources/plugins/toolbar/lang/cy.js | 2 +- sources/plugins/toolbar/lang/da.js | 2 +- sources/plugins/toolbar/lang/de-ch.js | 2 +- sources/plugins/toolbar/lang/de.js | 2 +- sources/plugins/toolbar/lang/el.js | 2 +- sources/plugins/toolbar/lang/en-au.js | 2 +- sources/plugins/toolbar/lang/en-ca.js | 2 +- sources/plugins/toolbar/lang/en-gb.js | 2 +- sources/plugins/toolbar/lang/en.js | 2 +- sources/plugins/toolbar/lang/eo.js | 2 +- sources/plugins/toolbar/lang/es-mx.js | 22 + sources/plugins/toolbar/lang/es.js | 2 +- sources/plugins/toolbar/lang/et.js | 2 +- sources/plugins/toolbar/lang/eu.js | 2 +- sources/plugins/toolbar/lang/fa.js | 2 +- sources/plugins/toolbar/lang/fi.js | 2 +- sources/plugins/toolbar/lang/fo.js | 2 +- sources/plugins/toolbar/lang/fr-ca.js | 2 +- sources/plugins/toolbar/lang/fr.js | 6 +- sources/plugins/toolbar/lang/gl.js | 2 +- sources/plugins/toolbar/lang/gu.js | 2 +- sources/plugins/toolbar/lang/he.js | 2 +- sources/plugins/toolbar/lang/hi.js | 2 +- sources/plugins/toolbar/lang/hr.js | 2 +- sources/plugins/toolbar/lang/hu.js | 2 +- sources/plugins/toolbar/lang/id.js | 2 +- sources/plugins/toolbar/lang/is.js | 2 +- sources/plugins/toolbar/lang/it.js | 2 +- sources/plugins/toolbar/lang/ja.js | 2 +- sources/plugins/toolbar/lang/ka.js | 2 +- sources/plugins/toolbar/lang/km.js | 2 +- sources/plugins/toolbar/lang/ko.js | 2 +- sources/plugins/toolbar/lang/ku.js | 2 +- sources/plugins/toolbar/lang/lt.js | 2 +- sources/plugins/toolbar/lang/lv.js | 2 +- sources/plugins/toolbar/lang/mk.js | 2 +- sources/plugins/toolbar/lang/mn.js | 2 +- sources/plugins/toolbar/lang/ms.js | 2 +- sources/plugins/toolbar/lang/nb.js | 2 +- sources/plugins/toolbar/lang/nl.js | 2 +- sources/plugins/toolbar/lang/no.js | 2 +- sources/plugins/toolbar/lang/oc.js | 22 + sources/plugins/toolbar/lang/pl.js | 2 +- sources/plugins/toolbar/lang/pt-br.js | 2 +- sources/plugins/toolbar/lang/pt.js | 6 +- sources/plugins/toolbar/lang/ro.js | 2 +- sources/plugins/toolbar/lang/ru.js | 2 +- sources/plugins/toolbar/lang/si.js | 2 +- sources/plugins/toolbar/lang/sk.js | 2 +- sources/plugins/toolbar/lang/sl.js | 30 +- sources/plugins/toolbar/lang/sq.js | 2 +- sources/plugins/toolbar/lang/sr-latn.js | 2 +- sources/plugins/toolbar/lang/sr.js | 2 +- sources/plugins/toolbar/lang/sv.js | 4 +- sources/plugins/toolbar/lang/th.js | 2 +- sources/plugins/toolbar/lang/tr.js | 2 +- sources/plugins/toolbar/lang/tt.js | 2 +- sources/plugins/toolbar/lang/ug.js | 2 +- sources/plugins/toolbar/lang/uk.js | 2 +- sources/plugins/toolbar/lang/vi.js | 2 +- sources/plugins/toolbar/lang/zh-cn.js | 2 +- sources/plugins/toolbar/lang/zh.js | 2 +- sources/plugins/toolbar/plugin.js | 23 +- sources/plugins/toolbar/samples/toolbar.html | 4 +- sources/plugins/widget/dev/assets/contents.css | 23 + sources/plugins/widget/dev/assets/sample.jpg | Bin 0 -> 17932 bytes .../widget/dev/assets/simplebox/contents.css | 36 + .../dev/assets/simplebox/dialogs/simplebox.js | 51 + .../dev/assets/simplebox/icons/simplebox.png | Bin 0 -> 286 bytes .../plugins/widget/dev/assets/simplebox/plugin.js | 114 + sources/plugins/widget/dev/console.js | 131 + sources/plugins/widget/dev/nestedwidgets.html | 134 + sources/plugins/widget/dev/widgetstyles.html | 144 + sources/plugins/widget/images/handle.png | Bin 0 -> 220 bytes sources/plugins/widget/lang/af.js | 8 + sources/plugins/widget/lang/ar.js | 8 + sources/plugins/widget/lang/az.js | 8 + sources/plugins/widget/lang/bg.js | 8 + sources/plugins/widget/lang/ca.js | 8 + sources/plugins/widget/lang/cs.js | 8 + sources/plugins/widget/lang/cy.js | 8 + sources/plugins/widget/lang/da.js | 8 + sources/plugins/widget/lang/de-ch.js | 8 + sources/plugins/widget/lang/de.js | 8 + sources/plugins/widget/lang/el.js | 8 + sources/plugins/widget/lang/en-gb.js | 8 + sources/plugins/widget/lang/en.js | 8 + sources/plugins/widget/lang/eo.js | 8 + sources/plugins/widget/lang/es-mx.js | 8 + sources/plugins/widget/lang/es.js | 8 + sources/plugins/widget/lang/eu.js | 8 + sources/plugins/widget/lang/fa.js | 8 + sources/plugins/widget/lang/fi.js | 8 + sources/plugins/widget/lang/fr.js | 8 + sources/plugins/widget/lang/gl.js | 8 + sources/plugins/widget/lang/he.js | 8 + sources/plugins/widget/lang/hr.js | 8 + sources/plugins/widget/lang/hu.js | 8 + sources/plugins/widget/lang/id.js | 8 + sources/plugins/widget/lang/it.js | 8 + sources/plugins/widget/lang/ja.js | 8 + sources/plugins/widget/lang/km.js | 8 + sources/plugins/widget/lang/ko.js | 8 + sources/plugins/widget/lang/ku.js | 8 + sources/plugins/widget/lang/lv.js | 8 + sources/plugins/widget/lang/nb.js | 8 + sources/plugins/widget/lang/nl.js | 8 + sources/plugins/widget/lang/no.js | 8 + sources/plugins/widget/lang/oc.js | 8 + sources/plugins/widget/lang/pl.js | 8 + sources/plugins/widget/lang/pt-br.js | 8 + sources/plugins/widget/lang/pt.js | 8 + sources/plugins/widget/lang/ru.js | 8 + sources/plugins/widget/lang/sk.js | 8 + sources/plugins/widget/lang/sl.js | 8 + sources/plugins/widget/lang/sq.js | 8 + sources/plugins/widget/lang/sv.js | 8 + sources/plugins/widget/lang/tr.js | 8 + sources/plugins/widget/lang/tt.js | 8 + sources/plugins/widget/lang/ug.js | 8 + sources/plugins/widget/lang/uk.js | 8 + sources/plugins/widget/lang/vi.js | 8 + sources/plugins/widget/lang/zh-cn.js | 8 + sources/plugins/widget/lang/zh.js | 8 + sources/plugins/widget/plugin.js | 4147 ++++++++++++++++++++ sources/plugins/widgetselection/plugin.js | 366 ++ sources/plugins/wysiwygarea/plugin.js | 63 +- sources/plugins/wysiwygarea/samples/fullpage.html | 4 +- 1693 files changed, 18456 insertions(+), 2600 deletions(-) create mode 100644 sources/plugins/Audio/dialogs/audio.js create mode 100644 sources/plugins/Audio/docs/install.html create mode 100644 sources/plugins/Audio/docs/styles.css create mode 100644 sources/plugins/Audio/images/audio.png create mode 100644 sources/plugins/Audio/images/icon.png create mode 100644 sources/plugins/Audio/images/placeholder.png create mode 100644 sources/plugins/Audio/plugin.js create mode 100644 sources/plugins/a11yhelp/dialogs/lang/az.js create mode 100644 sources/plugins/a11yhelp/dialogs/lang/es-mx.js create mode 100644 sources/plugins/a11yhelp/dialogs/lang/oc.js create mode 100644 sources/plugins/basicstyles/lang/az.js create mode 100644 sources/plugins/basicstyles/lang/es-mx.js create mode 100644 sources/plugins/basicstyles/lang/oc.js delete mode 100644 sources/plugins/button/lang/ast.js create mode 100644 sources/plugins/button/lang/az.js create mode 100644 sources/plugins/button/lang/es-mx.js create mode 100644 sources/plugins/button/lang/hr.js create mode 100644 sources/plugins/button/lang/no.js create mode 100644 sources/plugins/button/lang/oc.js create mode 100644 sources/plugins/clipboard/dev/clipboard.html create mode 100644 sources/plugins/clipboard/dev/console.js create mode 100644 sources/plugins/clipboard/dev/dnd.html create mode 100644 sources/plugins/clipboard/icons/copy-rtl.png create mode 100644 sources/plugins/clipboard/icons/copy.png create mode 100644 sources/plugins/clipboard/icons/cut-rtl.png create mode 100644 sources/plugins/clipboard/icons/cut.png create mode 100644 sources/plugins/clipboard/icons/hidpi/copy-rtl.png create mode 100644 sources/plugins/clipboard/icons/hidpi/copy.png create mode 100644 sources/plugins/clipboard/icons/hidpi/cut-rtl.png create mode 100644 sources/plugins/clipboard/icons/hidpi/cut.png create mode 100644 sources/plugins/clipboard/icons/hidpi/paste-rtl.png create mode 100644 sources/plugins/clipboard/icons/hidpi/paste.png create mode 100644 sources/plugins/clipboard/icons/paste-rtl.png create mode 100644 sources/plugins/clipboard/icons/paste.png create mode 100644 sources/plugins/clipboard/lang/af.js create mode 100644 sources/plugins/clipboard/lang/ar.js create mode 100644 sources/plugins/clipboard/lang/az.js create mode 100644 sources/plugins/clipboard/lang/bg.js create mode 100644 sources/plugins/clipboard/lang/bn.js create mode 100644 sources/plugins/clipboard/lang/bs.js create mode 100644 sources/plugins/clipboard/lang/ca.js create mode 100644 sources/plugins/clipboard/lang/cs.js create mode 100644 sources/plugins/clipboard/lang/cy.js create mode 100644 sources/plugins/clipboard/lang/da.js create mode 100644 sources/plugins/clipboard/lang/de-ch.js create mode 100644 sources/plugins/clipboard/lang/de.js create mode 100644 sources/plugins/clipboard/lang/el.js create mode 100644 sources/plugins/clipboard/lang/en-au.js create mode 100644 sources/plugins/clipboard/lang/en-ca.js create mode 100644 sources/plugins/clipboard/lang/en-gb.js create mode 100644 sources/plugins/clipboard/lang/en.js create mode 100644 sources/plugins/clipboard/lang/eo.js create mode 100644 sources/plugins/clipboard/lang/es-mx.js create mode 100644 sources/plugins/clipboard/lang/es.js create mode 100644 sources/plugins/clipboard/lang/et.js create mode 100644 sources/plugins/clipboard/lang/eu.js create mode 100644 sources/plugins/clipboard/lang/fa.js create mode 100644 sources/plugins/clipboard/lang/fi.js create mode 100644 sources/plugins/clipboard/lang/fo.js create mode 100644 sources/plugins/clipboard/lang/fr-ca.js create mode 100644 sources/plugins/clipboard/lang/fr.js create mode 100644 sources/plugins/clipboard/lang/gl.js create mode 100644 sources/plugins/clipboard/lang/gu.js create mode 100644 sources/plugins/clipboard/lang/he.js create mode 100644 sources/plugins/clipboard/lang/hi.js create mode 100644 sources/plugins/clipboard/lang/hr.js create mode 100644 sources/plugins/clipboard/lang/hu.js create mode 100644 sources/plugins/clipboard/lang/id.js create mode 100644 sources/plugins/clipboard/lang/is.js create mode 100644 sources/plugins/clipboard/lang/it.js create mode 100644 sources/plugins/clipboard/lang/ja.js create mode 100644 sources/plugins/clipboard/lang/ka.js create mode 100644 sources/plugins/clipboard/lang/km.js create mode 100644 sources/plugins/clipboard/lang/ko.js create mode 100644 sources/plugins/clipboard/lang/ku.js create mode 100644 sources/plugins/clipboard/lang/lt.js create mode 100644 sources/plugins/clipboard/lang/lv.js create mode 100644 sources/plugins/clipboard/lang/mk.js create mode 100644 sources/plugins/clipboard/lang/mn.js create mode 100644 sources/plugins/clipboard/lang/ms.js create mode 100644 sources/plugins/clipboard/lang/nb.js create mode 100644 sources/plugins/clipboard/lang/nl.js create mode 100644 sources/plugins/clipboard/lang/no.js create mode 100644 sources/plugins/clipboard/lang/oc.js create mode 100644 sources/plugins/clipboard/lang/pl.js create mode 100644 sources/plugins/clipboard/lang/pt-br.js create mode 100644 sources/plugins/clipboard/lang/pt.js create mode 100644 sources/plugins/clipboard/lang/ro.js create mode 100644 sources/plugins/clipboard/lang/ru.js create mode 100644 sources/plugins/clipboard/lang/si.js create mode 100644 sources/plugins/clipboard/lang/sk.js create mode 100644 sources/plugins/clipboard/lang/sl.js create mode 100644 sources/plugins/clipboard/lang/sq.js create mode 100644 sources/plugins/clipboard/lang/sr-latn.js create mode 100644 sources/plugins/clipboard/lang/sr.js create mode 100644 sources/plugins/clipboard/lang/sv.js create mode 100644 sources/plugins/clipboard/lang/th.js create mode 100644 sources/plugins/clipboard/lang/tr.js create mode 100644 sources/plugins/clipboard/lang/tt.js create mode 100644 sources/plugins/clipboard/lang/ug.js create mode 100644 sources/plugins/clipboard/lang/uk.js create mode 100644 sources/plugins/clipboard/lang/vi.js create mode 100644 sources/plugins/clipboard/lang/zh-cn.js create mode 100644 sources/plugins/clipboard/lang/zh.js create mode 100644 sources/plugins/clipboard/plugin.js create mode 100644 sources/plugins/contextmenu/lang/az.js create mode 100644 sources/plugins/contextmenu/lang/es-mx.js create mode 100644 sources/plugins/contextmenu/lang/oc.js create mode 100644 sources/plugins/elementspath/lang/az.js create mode 100644 sources/plugins/elementspath/lang/es-mx.js create mode 100644 sources/plugins/elementspath/lang/oc.js create mode 100644 sources/plugins/fakeobjects/lang/az.js create mode 100644 sources/plugins/fakeobjects/lang/es-mx.js create mode 100644 sources/plugins/fakeobjects/lang/oc.js create mode 100644 sources/plugins/format/lang/az.js create mode 100644 sources/plugins/format/lang/es-mx.js create mode 100644 sources/plugins/format/lang/oc.js create mode 100644 sources/plugins/horizontalrule/lang/az.js create mode 100644 sources/plugins/horizontalrule/lang/es-mx.js create mode 100644 sources/plugins/horizontalrule/lang/oc.js create mode 100644 sources/plugins/html5video/dialogs/html5video.js create mode 100644 sources/plugins/html5video/icons/html5video.png create mode 100644 sources/plugins/html5video/lang/de.js create mode 100644 sources/plugins/html5video/lang/en.js create mode 100644 sources/plugins/html5video/lang/es.js create mode 100644 sources/plugins/html5video/lang/eu.js create mode 100644 sources/plugins/html5video/lang/fr.js create mode 100644 sources/plugins/html5video/lang/ru.js create mode 100644 sources/plugins/html5video/lang/uk.js create mode 100644 sources/plugins/html5video/lang/uz.js create mode 100644 sources/plugins/html5video/plugin.js create mode 100644 sources/plugins/iframe/lang/az.js create mode 100644 sources/plugins/iframe/lang/es-mx.js create mode 100644 sources/plugins/iframe/lang/oc.js create mode 100644 sources/plugins/image/lang/az.js create mode 100644 sources/plugins/image/lang/es-mx.js create mode 100644 sources/plugins/image/lang/oc.js create mode 100644 sources/plugins/indent/lang/az.js create mode 100644 sources/plugins/indent/lang/es-mx.js create mode 100644 sources/plugins/indent/lang/oc.js create mode 100644 sources/plugins/justify/lang/az.js create mode 100644 sources/plugins/justify/lang/es-mx.js create mode 100644 sources/plugins/justify/lang/oc.js create mode 100644 sources/plugins/lineutils/dev/dnd.html create mode 100644 sources/plugins/lineutils/dev/magicfinger.html create mode 100644 sources/plugins/lineutils/plugin.js create mode 100644 sources/plugins/link/lang/az.js create mode 100644 sources/plugins/link/lang/es-mx.js create mode 100644 sources/plugins/link/lang/oc.js create mode 100644 sources/plugins/list/lang/az.js create mode 100644 sources/plugins/list/lang/es-mx.js create mode 100644 sources/plugins/list/lang/oc.js create mode 100644 sources/plugins/liststyle/lang/az.js create mode 100644 sources/plugins/liststyle/lang/es-mx.js create mode 100644 sources/plugins/liststyle/lang/oc.js create mode 100644 sources/plugins/magicline/lang/az.js create mode 100644 sources/plugins/magicline/lang/es-mx.js create mode 100644 sources/plugins/magicline/lang/oc.js create mode 100644 sources/plugins/maximize/lang/az.js create mode 100644 sources/plugins/maximize/lang/es-mx.js create mode 100644 sources/plugins/maximize/lang/oc.js create mode 100644 sources/plugins/notification/lang/az.js create mode 100644 sources/plugins/notification/lang/ca.js create mode 100644 sources/plugins/notification/lang/cs.js create mode 100644 sources/plugins/notification/lang/da.js create mode 100644 sources/plugins/notification/lang/de-ch.js create mode 100644 sources/plugins/notification/lang/de.js create mode 100644 sources/plugins/notification/lang/en.js create mode 100644 sources/plugins/notification/lang/eo.js create mode 100644 sources/plugins/notification/lang/es-mx.js create mode 100644 sources/plugins/notification/lang/es.js create mode 100644 sources/plugins/notification/lang/eu.js create mode 100644 sources/plugins/notification/lang/fr.js create mode 100644 sources/plugins/notification/lang/gl.js create mode 100644 sources/plugins/notification/lang/hr.js create mode 100644 sources/plugins/notification/lang/hu.js create mode 100644 sources/plugins/notification/lang/id.js create mode 100644 sources/plugins/notification/lang/it.js create mode 100644 sources/plugins/notification/lang/ja.js create mode 100644 sources/plugins/notification/lang/km.js create mode 100644 sources/plugins/notification/lang/ko.js create mode 100644 sources/plugins/notification/lang/ku.js create mode 100644 sources/plugins/notification/lang/nb.js create mode 100644 sources/plugins/notification/lang/nl.js create mode 100644 sources/plugins/notification/lang/oc.js create mode 100644 sources/plugins/notification/lang/pl.js create mode 100644 sources/plugins/notification/lang/pt-br.js create mode 100644 sources/plugins/notification/lang/pt.js create mode 100644 sources/plugins/notification/lang/ru.js create mode 100644 sources/plugins/notification/lang/sk.js create mode 100644 sources/plugins/notification/lang/sv.js create mode 100644 sources/plugins/notification/lang/tr.js create mode 100644 sources/plugins/notification/lang/ug.js create mode 100644 sources/plugins/notification/lang/uk.js create mode 100644 sources/plugins/notification/lang/zh-cn.js create mode 100644 sources/plugins/notification/lang/zh.js create mode 100644 sources/plugins/notification/plugin.js create mode 100644 sources/plugins/oembed/LICENSE.md create mode 100644 sources/plugins/oembed/README.md create mode 100644 sources/plugins/oembed/icons/hidpi/oembed.png create mode 100644 sources/plugins/oembed/icons/oembed.png create mode 100644 sources/plugins/oembed/lang/de.js create mode 100644 sources/plugins/oembed/lang/en.js create mode 100644 sources/plugins/oembed/lang/fr.js create mode 100644 sources/plugins/oembed/lang/nl.js create mode 100644 sources/plugins/oembed/lang/pl.js create mode 100644 sources/plugins/oembed/lang/pt-br.js create mode 100644 sources/plugins/oembed/lang/ru.js create mode 100644 sources/plugins/oembed/lang/tr.js create mode 100644 sources/plugins/oembed/libs/jquery.oembed.min.js create mode 100644 sources/plugins/oembed/plugin.js create mode 100644 sources/plugins/removeformat/lang/az.js create mode 100644 sources/plugins/removeformat/lang/es-mx.js create mode 100644 sources/plugins/removeformat/lang/oc.js create mode 100644 sources/plugins/sourcearea/lang/az.js create mode 100644 sources/plugins/sourcearea/lang/es-mx.js create mode 100644 sources/plugins/sourcearea/lang/oc.js create mode 100644 sources/plugins/toolbar/lang/az.js create mode 100644 sources/plugins/toolbar/lang/es-mx.js create mode 100644 sources/plugins/toolbar/lang/oc.js create mode 100644 sources/plugins/widget/dev/assets/contents.css create mode 100644 sources/plugins/widget/dev/assets/sample.jpg create mode 100644 sources/plugins/widget/dev/assets/simplebox/contents.css create mode 100644 sources/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js create mode 100644 sources/plugins/widget/dev/assets/simplebox/icons/simplebox.png create mode 100644 sources/plugins/widget/dev/assets/simplebox/plugin.js create mode 100644 sources/plugins/widget/dev/console.js create mode 100644 sources/plugins/widget/dev/nestedwidgets.html create mode 100644 sources/plugins/widget/dev/widgetstyles.html create mode 100644 sources/plugins/widget/images/handle.png create mode 100644 sources/plugins/widget/lang/af.js create mode 100644 sources/plugins/widget/lang/ar.js create mode 100644 sources/plugins/widget/lang/az.js create mode 100644 sources/plugins/widget/lang/bg.js create mode 100644 sources/plugins/widget/lang/ca.js create mode 100644 sources/plugins/widget/lang/cs.js create mode 100644 sources/plugins/widget/lang/cy.js create mode 100644 sources/plugins/widget/lang/da.js create mode 100644 sources/plugins/widget/lang/de-ch.js create mode 100644 sources/plugins/widget/lang/de.js create mode 100644 sources/plugins/widget/lang/el.js create mode 100644 sources/plugins/widget/lang/en-gb.js create mode 100644 sources/plugins/widget/lang/en.js create mode 100644 sources/plugins/widget/lang/eo.js create mode 100644 sources/plugins/widget/lang/es-mx.js create mode 100644 sources/plugins/widget/lang/es.js create mode 100644 sources/plugins/widget/lang/eu.js create mode 100644 sources/plugins/widget/lang/fa.js create mode 100644 sources/plugins/widget/lang/fi.js create mode 100644 sources/plugins/widget/lang/fr.js create mode 100644 sources/plugins/widget/lang/gl.js create mode 100644 sources/plugins/widget/lang/he.js create mode 100644 sources/plugins/widget/lang/hr.js create mode 100644 sources/plugins/widget/lang/hu.js create mode 100644 sources/plugins/widget/lang/id.js create mode 100644 sources/plugins/widget/lang/it.js create mode 100644 sources/plugins/widget/lang/ja.js create mode 100644 sources/plugins/widget/lang/km.js create mode 100644 sources/plugins/widget/lang/ko.js create mode 100644 sources/plugins/widget/lang/ku.js create mode 100644 sources/plugins/widget/lang/lv.js create mode 100644 sources/plugins/widget/lang/nb.js create mode 100644 sources/plugins/widget/lang/nl.js create mode 100644 sources/plugins/widget/lang/no.js create mode 100644 sources/plugins/widget/lang/oc.js create mode 100644 sources/plugins/widget/lang/pl.js create mode 100644 sources/plugins/widget/lang/pt-br.js create mode 100644 sources/plugins/widget/lang/pt.js create mode 100644 sources/plugins/widget/lang/ru.js create mode 100644 sources/plugins/widget/lang/sk.js create mode 100644 sources/plugins/widget/lang/sl.js create mode 100644 sources/plugins/widget/lang/sq.js create mode 100644 sources/plugins/widget/lang/sv.js create mode 100644 sources/plugins/widget/lang/tr.js create mode 100644 sources/plugins/widget/lang/tt.js create mode 100644 sources/plugins/widget/lang/ug.js create mode 100644 sources/plugins/widget/lang/uk.js create mode 100644 sources/plugins/widget/lang/vi.js create mode 100644 sources/plugins/widget/lang/zh-cn.js create mode 100644 sources/plugins/widget/lang/zh.js create mode 100644 sources/plugins/widget/plugin.js create mode 100644 sources/plugins/widgetselection/plugin.js (limited to 'sources/plugins') diff --git a/sources/plugins/Audio/dialogs/audio.js b/sources/plugins/Audio/dialogs/audio.js new file mode 100644 index 0000000..5b72af9 --- /dev/null +++ b/sources/plugins/Audio/dialogs/audio.js @@ -0,0 +1,350 @@ +CKEDITOR.dialog.add( 'audio', function ( editor ) +{ + var lang = editor.lang.audio; + + function commitValue( audioNode, extraStyles ) + { + var value=this.getValue(); + + if ( !value && this.id=='id' ) + value = generateId(); + + audioNode.setAttribute( this.id, value); + + if ( !value ) + return; + switch( this.id ) + { + case 'poster': + extraStyles.backgroundImage = 'url(' + value + ')'; + break; + case 'width': + extraStyles.width = value + 'px'; + break; + case 'height': + extraStyles.height = value + 'px'; + break; + } + } + + function commitSrc( audioNode, extraStyles, audios ) + { + var match = this.id.match(/(\w+)(\d)/), + id = match[1], + number = parseInt(match[2], 10); + + var audio = audios[number] || (audios[number]={}); + audio[id] = this.getValue(); + } + + function loadValue( audioNode ) + { + if ( audioNode ) + this.setValue( audioNode.getAttribute( this.id ) ); + else + { + if ( this.id == 'id') + this.setValue( generateId() ); + } + } + + function loadSrc( audioNode, audios ) + { + var match = this.id.match(/(\w+)(\d)/), + id = match[1], + number = parseInt(match[2], 10); + + var audio = audios[number]; + if (!audio) + return; + this.setValue( audio[ id ] ); + } + + function generateId() + { + var now = new Date(); + return 'audio' + now.getFullYear() + now.getMonth() + now.getDate() + now.getHours() + now.getMinutes() + now.getSeconds(); + } + + // To automatically get the dimensions of the poster image + var onImgLoadEvent = function() + { + // Image is ready. + var preview = this.previewImage; + preview.removeListener( 'load', onImgLoadEvent ); + preview.removeListener( 'error', onImgLoadErrorEvent ); + preview.removeListener( 'abort', onImgLoadErrorEvent ); + + this.setValueOf( 'info', 'width', preview.$.width ); + this.setValueOf( 'info', 'height', preview.$.height ); + }; + + var onImgLoadErrorEvent = function() + { + // Error. Image is not loaded. + var preview = this.previewImage; + preview.removeListener( 'load', onImgLoadEvent ); + preview.removeListener( 'error', onImgLoadErrorEvent ); + preview.removeListener( 'abort', onImgLoadErrorEvent ); + }; + + return { + title : lang.dialogTitle, + minWidth : 400, + minHeight : 200, + + onShow : function() + { + // Clear previously saved elements. + this.fakeImage = this.audioNode = null; + // To get dimensions of poster image + this.previewImage = editor.document.createElement( 'img' ); + + var fakeImage = this.getSelectedElement(); + if ( fakeImage && fakeImage.data( 'cke-real-element-type' ) && fakeImage.data( 'cke-real-element-type' ) == 'audio' ) + { + this.fakeImage = fakeImage; + + var audioNode = editor.restoreRealElement( fakeImage ), + audios = [], + sourceList = audioNode.getElementsByTag( 'source', '' ); + if (sourceList.count()==0) + sourceList = audioNode.getElementsByTag( 'source', 'cke' ); + + for ( var i = 0, length = sourceList.count() ; i < length ; i++ ) + { + var item = sourceList.getItem( i ); + audios.push( {src : item.getAttribute( 'src' ), type: item.getAttribute( 'type' )} ); + } + + this.audioNode = audioNode; + + this.setupContent( audioNode, audios ); + } + else + this.setupContent( null, [] ); + }, + + onOk : function() + { + // If there's no selected element create one. Otherwise, reuse it + var audioNode = null; + if ( !this.fakeImage ) + { + audioNode = CKEDITOR.dom.element.createFromHtml( '', editor.document ); + audioNode.setAttributes( + { + controls : 'controls' + } ); + } + else + { + audioNode = this.audioNode; + } + + var extraStyles = {}, audios = []; + this.commitContent( audioNode, extraStyles, audios ); + + var innerHtml = '', links = '', + link = lang.linkTemplate || '', + fallbackTemplate = lang.fallbackTemplate || ''; + for(var i=0; i'; + links += link.replace('%src%', audio.src).replace('%type%', audio.type); + } + audioNode.setHtml( innerHtml + fallbackTemplate.replace( '%links%', links ) ); + + // Refresh the fake image. + var newFakeImage = editor.createFakeElement( audioNode, 'cke_audio', 'audio', false ); + newFakeImage.setStyles( extraStyles ); + if ( this.fakeImage ) + { + newFakeImage.replace( this.fakeImage ); + editor.getSelection().selectElement( newFakeImage ); + } + else + { + // Insert it in a div + var div = new CKEDITOR.dom.element( 'DIV', editor.document ); + editor.insertElement( div ); + div.append( newFakeImage ); + } + }, + onHide : function() + { + if ( this.previewImage ) + { + this.previewImage.removeListener( 'load', onImgLoadEvent ); + this.previewImage.removeListener( 'error', onImgLoadErrorEvent ); + this.previewImage.removeListener( 'abort', onImgLoadErrorEvent ); + this.previewImage.remove(); + this.previewImage = null; // Dialog is closed. + } + }, + + contents : + [ + { + id : 'info', + elements : + [ + { + type : 'hbox', + widths: [ '', '100px'], + children : [ + { + type : 'text', + id : 'poster', + label : lang.poster, + commit : commitValue, + setup : loadValue, + onChange : function() + { + var dialog = this.getDialog(), + newUrl = this.getValue(); + + //Update preview image + if ( newUrl.length > 0 ) //Prevent from load before onShow + { + dialog = this.getDialog(); + var preview = dialog.previewImage; + + preview.on( 'load', onImgLoadEvent, dialog ); + preview.on( 'error', onImgLoadErrorEvent, dialog ); + preview.on( 'abort', onImgLoadErrorEvent, dialog ); + preview.setAttribute( 'src', newUrl ); + } + } + }, + { + type : 'button', + id : 'browse', + hidden : 'true', + style : 'display:inline-block;margin-top:10px;', + filebrowser : + { + action : 'Browse', + target: 'info:poster', + url: editor.config.filebrowserImageBrowseUrl || editor.config.filebrowserBrowseUrl + }, + label : editor.lang.common.browseServer + }] + }, + { + type : 'hbox', + widths: [ '33%', '33%', '33%'], + children : [ + { + type : 'text', + id : 'width', + label : editor.lang.common.width, + 'default' : 400, + validate : CKEDITOR.dialog.validate.notEmpty( lang.widthRequired ), + commit : commitValue, + setup : loadValue + }, + { + type : 'text', + id : 'height', + label : editor.lang.common.height, + 'default' : 300, + validate : CKEDITOR.dialog.validate.notEmpty(lang.heightRequired ), + commit : commitValue, + setup : loadValue + }, + { + type : 'text', + id : 'id', + label : 'Id', + commit : commitValue, + setup : loadValue + } + ] + }, + { + type : 'hbox', + widths: [ '', '100px', '75px'], + children : [ + { + type : 'text', + id : 'src0', + label : lang.sourceaudio, + commit : commitSrc, + setup : loadSrc + }, + { + type : 'button', + id : 'browse', + hidden : 'true', + style : 'display:inline-block;margin-top:10px;', + filebrowser : + { + action : 'Browse', + target: 'info:src0', + url: editor.config.filebrowserAudioBrowseUrl || editor.config.filebrowserBrowseUrl + }, + label : editor.lang.common.browseServer + }, + { + id : 'type0', + label : lang.sourceType, + type : 'select', + 'default' : 'audio/mp3', + items : + [ + [ 'MP3', 'audio/mp3' ], + [ 'WAV', 'audio/wav' ] + ], + commit : commitSrc, + setup : loadSrc + }] + }, + + { + type : 'hbox', + widths: [ '', '100px', '75px'], + children : [ + { + type : 'text', + id : 'src1', + label : lang.sourceaudio, + commit : commitSrc, + setup : loadSrc + }, + { + type : 'button', + id : 'browse', + hidden : 'true', + style : 'display:inline-block;margin-top:10px;', + filebrowser : + { + action : 'Browse', + target: 'info:src1', + url: editor.config.filebrowserAudioBrowseUrl || editor.config.filebrowserBrowseUrl + }, + label : editor.lang.common.browseServer + }, + { + id : 'type1', + label : lang.sourceType, + type : 'select', + 'default':'audio/wav', + items : + [ + [ 'MP3', 'audio/mp3' ], + [ 'WAV', 'audio/wav' ] + ], + commit : commitSrc, + setup : loadSrc + }] + } + ] + } + + ] + }; +} ); diff --git a/sources/plugins/Audio/docs/install.html b/sources/plugins/Audio/docs/install.html new file mode 100644 index 0000000..3fbf30e --- /dev/null +++ b/sources/plugins/Audio/docs/install.html @@ -0,0 +1,69 @@ + + + + +Audio plugin + + + + +

Audio Plugin for CKEditor

+ +

Introduction

+

This is a plugin to create HTML5 <audio> elements in CKEditor.

+

Version history:

+
    +
  1. 1.0: 10-July-2015. First version.
  2. +
+ +

Installation

+

1. Copying the files

+

Extract the contents of the zip in you plugins directory, so it ends up like + this
+ +

+
+ckeditor\
+	...
+	images\
+	lang\
+	plugins\
+		...
+		audio\
+			plugin.js
+			dialogs\
+				audio.js
+			docs\
+				install.html
+			images\
+				icon.png
+				placeholder.png
+		...
+	skins\
+	themes\
+
+

2. Adding it to CKEditor

+

Now add the plugin in your config.js or custom js configuration +file: +config.extraPlugins='audio'; +

+ +

3. Add it to your toolbar

+

In your toolbar configuration, add a new 'Audio' item in the place where you want the button to show up.

+ +

4. Configure server browser for audio

+

You can use the config.filebrowserAudioBrowseUrl entry to specify a url so the file browser shows just audio elements (as long as your configure properly your file browser).

+ +

5. Use it

+

Now empty the cache of your browser and reload the editor, the new button should show up and you can add <audio> elements into the content.

+ +

Final notes

+

Please, note that only newer browsers support the Audio element, in older ones a simple text linking to the source audios is provided, you might want to +use some javascript or css to customize the final behavior of these elements.

+ + +

Disclaimers

+

CKEditor is © CKSource.com

+ + diff --git a/sources/plugins/Audio/docs/styles.css b/sources/plugins/Audio/docs/styles.css new file mode 100644 index 0000000..5eba91e --- /dev/null +++ b/sources/plugins/Audio/docs/styles.css @@ -0,0 +1,67 @@ +body { + font-family: Arial, Helvetica, sans-serif; + font-size: 90%; +} +h1 { + text-align:center; + font-size:180%; +} +h2 { + border-bottom:2px solid #CCC; + margin:1em 0 0.4em 0; +} +h3 { + margin-bottom:0.4em; +} +p { + margin:0 0 1em 1em; + text-align:justify; +} +ol { + margin:0 0 1.2em 1em; + padding:0; + list-style-type:none; +} +ol li { + margin:0.2em 0; +} +pre { + font-size:100%; + font-family:"Courier New", Courier, mono; + background-color: #CCCCCC; + border:1px solid #999; + padding:0.2em 1em; + margin: 0.4em 0; + display:block; + white-space: pre; + overflow: auto; +} +code { + font-size:100%; + font-family:"Courier New", Courier, mono; + background-color: #CCCCCC; + border:1px solid #999; + padding:0.2em; + white-space: pre; +} +form { + margin:0 0 0 1em; +} +span.key { + color: #006600; +} +#install { + display:none +} +#languages ul { + display:inline; + list-style-type:none; + margin:0; + padding:0; +} +#languages li { + display:inline; + margin:0; + padding:0; + vertical-align:bottom; +} diff --git a/sources/plugins/Audio/images/audio.png b/sources/plugins/Audio/images/audio.png new file mode 100644 index 0000000..b4a4ef7 Binary files /dev/null and b/sources/plugins/Audio/images/audio.png differ diff --git a/sources/plugins/Audio/images/icon.png b/sources/plugins/Audio/images/icon.png new file mode 100644 index 0000000..1ec7ecc Binary files /dev/null and b/sources/plugins/Audio/images/icon.png differ diff --git a/sources/plugins/Audio/images/placeholder.png b/sources/plugins/Audio/images/placeholder.png new file mode 100644 index 0000000..1456cac Binary files /dev/null and b/sources/plugins/Audio/images/placeholder.png differ diff --git a/sources/plugins/Audio/plugin.js b/sources/plugins/Audio/plugin.js new file mode 100644 index 0000000..ee618f6 --- /dev/null +++ b/sources/plugins/Audio/plugin.js @@ -0,0 +1,211 @@ +/* + * @file audio plugin for CKEditor + * Copyright (C) 2011 Alfonso Martínez de Lizarrondo + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + */ + +( function() { + +CKEDITOR.plugins.add( 'Audio', +{ + // Translations, available at the end of this file, without extra requests + lang : [ 'en', 'es' ], + + getPlaceholderCss : function() + { + return 'img.cke_audio' + + '{' + + 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' + + 'background-position: center center;' + + 'background-repeat: no-repeat;' + + 'background-color:gray;'+ + 'border: 1px solid #a9a9a9;' + + 'width: 80px;' + + 'height: 80px;' + + '}'; + }, + + onLoad : function() + { + // v4 + if (CKEDITOR.addCss) + CKEDITOR.addCss( this.getPlaceholderCss() ); + + }, + + init : function( editor ) + { + var lang = editor.lang.audio; + + // Check for CKEditor 3.5 + if (typeof editor.element.data == 'undefined') + { + alert('The "audio" plugin requires CKEditor 3.5 or newer'); + return; + } + + CKEDITOR.dialog.add( 'audio', this.path + 'dialogs/audio.js' ); + + editor.addCommand( 'Audio', new CKEDITOR.dialogCommand( 'audio' ) ); + editor.ui.addButton( 'Audio', + { + label : lang.toolbar, + command : 'Audio', + icon : this.path + 'images/icon.png' + } ); + + // v3 + if (editor.addCss) + editor.addCss( this.getPlaceholderCss() ); + + + // If the "menu" plugin is loaded, register the menu items. + if ( editor.addMenuItems ) + { + editor.addMenuItems( + { + audio : + { + label : lang.properties, + command : 'Audio', + group : 'flash' + } + }); + } + + editor.on( 'doubleclick', function( evt ) + { + var element = evt.data.element; + + if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'audio' ) + evt.data.dialog = 'audio'; + }); + + // If the "contextmenu" plugin is loaded, register the listeners. + if ( editor.contextMenu ) + { + editor.contextMenu.addListener( function( element, selection ) + { + if ( element && element.is( 'img' ) && !element.isReadOnly() + && element.data( 'cke-real-element-type' ) == 'audio' ) + return { audio : CKEDITOR.TRISTATE_OFF }; + }); + } + + // Add special handling for these items + CKEDITOR.dtd.$empty['cke:source']=1; + CKEDITOR.dtd.$empty['source']=1; + + editor.lang.fakeobjects.audio = lang.fakeObject; + + + }, //Init + + afterInit: function( editor ) + { + var dataProcessor = editor.dataProcessor, + htmlFilter = dataProcessor && dataProcessor.htmlFilter, + dataFilter = dataProcessor && dataProcessor.dataFilter; + + // dataFilter : conversion from html input to internal data + dataFilter.addRules( + { + + elements : { + $ : function( realElement ) + { + if ( realElement.name == 'audio' ) + { + realElement.name = 'cke:audio'; + for( var i=0; i < realElement.children.length; i++) + { + if ( realElement.children[ i ].name == 'source' ) + realElement.children[ i ].name = 'cke:source' + } + + var fakeElement = editor.createFakeParserElement( realElement, 'cke_audio', 'audio', false ), + fakeStyle = fakeElement.attributes.style || ''; + + var width = realElement.attributes.width, + height = realElement.attributes.height, + poster = realElement.attributes.poster; + + if ( typeof width != 'undefined' ) + fakeStyle = fakeElement.attributes.style = fakeStyle + 'width:' + CKEDITOR.tools.cssLength( width ) + ';'; + + if ( typeof height != 'undefined' ) + fakeStyle = fakeElement.attributes.style = fakeStyle + 'height:' + CKEDITOR.tools.cssLength( height ) + ';'; + + if ( poster ) + fakeStyle = fakeElement.attributes.style = fakeStyle + 'background-image:url(' + poster + ');'; + + return fakeElement; + } + } + } + + } + ); + + } // afterInit + +} ); // plugins.add + + +var en = { + toolbar : 'Audio', + dialogTitle : 'Audio properties', + fakeObject : 'Audio', + properties : 'Edit audio', + widthRequired : 'Width field cannot be empty', + heightRequired : 'Height field cannot be empty', + poster: 'Poster image', + sourceaudio: 'Source audio', + sourceType : 'Audio type', + linkTemplate : '%type% ', + fallbackTemplate : 'Your browser doesn\'t support audio.
Please download the file: %links%' + }; + +var es = { + toolbar : 'Audio', + dialogTitle : 'Propiedades de audio', + fakeObject : 'Audio', + properties : 'Editar el audio', + widthRequired : 'La anchura no se puede dejar en blanco', + heightRequired : 'La altura no se puede dejar en blanco', + poster: 'Imagen de presentación', + sourceaudio: 'Archivo de audio', + sourceType : 'Tipo', + linkTemplate : '%type% ', + fallbackTemplate : 'Su navegador no soporta audio.
Por favor, descargue el fichero: %links%' + }; + + // v3 + if (CKEDITOR.skins) + { + en = { audio : en} ; + es = { audio : es} ; + } + +// Translations +CKEDITOR.plugins.setLang( 'audio', 'en', en ); + +CKEDITOR.plugins.setLang( 'audio', 'es', es ); + +})(); diff --git a/sources/plugins/a11yhelp/dialogs/a11yhelp.js b/sources/plugins/a11yhelp/dialogs/a11yhelp.js index 3936e43..eb12d4c 100644 --- a/sources/plugins/a11yhelp/dialogs/a11yhelp.js +++ b/sources/plugins/a11yhelp/dialogs/a11yhelp.js @@ -1,33 +1,34 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) { var lang = editor.lang.a11yhelp, + coreLang = editor.lang.common.keyboard, id = CKEDITOR.tools.getNextId(); // CharCode <-> KeyChar. var keyMap = { - 8: lang.backspace, + 8: coreLang[ 8 ], 9: lang.tab, - 13: lang.enter, - 16: lang.shift, - 17: lang.ctrl, - 18: lang.alt, + 13: coreLang[ 13 ], + 16: coreLang[ 16 ], + 17: coreLang[ 17 ], + 18: coreLang[ 18 ], 19: lang.pause, 20: lang.capslock, 27: lang.escape, 33: lang.pageUp, 34: lang.pageDown, - 35: lang.end, - 36: lang.home, + 35: coreLang[ 35 ], + 36: coreLang[ 36 ], 37: lang.leftArrow, 38: lang.upArrow, 39: lang.rightArrow, 40: lang.downArrow, 45: lang.insert, - 46: lang[ 'delete' ], + 46: coreLang[ 46 ], 91: lang.leftWindowKey, 92: lang.rightWindowKey, 93: lang.selectKey, @@ -74,9 +75,9 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) { }; // Modifier keys override. - keyMap[ CKEDITOR.ALT ] = lang.alt; - keyMap[ CKEDITOR.SHIFT ] = lang.shift; - keyMap[ CKEDITOR.CTRL ] = lang.ctrl; + keyMap[ CKEDITOR.ALT ] = coreLang[ 18 ]; + keyMap[ CKEDITOR.SHIFT ] = coreLang[ 16 ]; + keyMap[ CKEDITOR.CTRL ] = CKEDITOR.env.mac ? coreLang[ 224 ] : coreLang[ 17 ]; // Sort in desc. var modifiers = [ CKEDITOR.ALT, CKEDITOR.SHIFT, CKEDITOR.CTRL ]; @@ -84,7 +85,6 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) { function representKeyStroke( keystroke ) { var quotient, modifier, presentation = []; - for ( var i = 0; i < modifiers.length; i++ ) { modifier = modifiers[ i ]; quotient = keystroke / modifiers[ i ]; @@ -99,23 +99,14 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) { return presentation.join( '+' ); } - var variablesPattern = /\$\{(.*?)\}/g; - - var replaceVariables = ( function() { - // Swaps keystrokes with their commands in object literal. - // This makes searching keystrokes by command much easier. - var keystrokesByCode = editor.keystrokeHandler.keystrokes, - keystrokesByName = {}; - - for ( var i in keystrokesByCode ) - keystrokesByName[ keystrokesByCode[ i ] ] = i; + var variablesPattern = /\$\{(.*?)\}/g, + replaceVariables = function( match, name ) { + var keystrokeCode = editor.getCommandKeystroke( name ); - return function( match, name ) { // Return the keystroke representation or leave match untouched // if there's no keystroke for such command. - return keystrokesByName[ name ] ? representKeyStroke( keystrokesByName[ name ] ) : match; + return keystrokeCode ? representKeyStroke( keystrokeCode ) : match; }; - } )(); // Create the help list directly from lang file entries. function buildHelpContents() { @@ -136,13 +127,17 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) { for ( var j = 0; j < itemsLength; j++ ) { var item = items[ j ], - itemLegend = item.legend.replace( variablesPattern, replaceVariables ); + // (http://dev.ckeditor.com/ticket/16980) There should be a different hotkey shown in Commands on Edge browser. + itemLegend = CKEDITOR.env.edge && item.legendEdge ? item.legendEdge : item.legend; - // (#9765) If some commands haven't been replaced in the legend, + itemLegend = itemLegend.replace( variablesPattern, replaceVariables ); + + // (http://dev.ckeditor.com/ticket/9765) If some commands haven't been replaced in the legend, // most likely their keystrokes are unavailable and we shouldn't include // them in our help list. - if ( itemLegend.match( variablesPattern ) ) + if ( itemLegend.match( variablesPattern ) ) { continue; + } sectionHtml.push( itemTpl.replace( '%1', item.name ).replace( '%2', itemLegend ) ); } @@ -178,7 +173,7 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) { 'overflow-y:auto;' + 'overflow-x:hidden;' + '}' + - // Some adjustments are to be done for Quirks to work "properly" (#5757) + // Some adjustments are to be done for Quirks to work "properly" (http://dev.ckeditor.com/ticket/5757) '.cke_browser_quirks .cke_accessibility_legend,' + '{' + 'height:390px' + diff --git a/sources/plugins/a11yhelp/dialogs/lang/_translationstatus.txt b/sources/plugins/a11yhelp/dialogs/lang/_translationstatus.txt index 4c59097..28e8dae 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +++ b/sources/plugins/a11yhelp/dialogs/lang/_translationstatus.txt @@ -1,4 +1,4 @@ -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license cs.js Found: 30 Missing: 0 diff --git a/sources/plugins/a11yhelp/dialogs/lang/af.js b/sources/plugins/a11yhelp/dialogs/lang/af.js index 600dec5..f1062a9 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/af.js +++ b/sources/plugins/a11yhelp/dialogs/lang/af.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'af', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pouse', capslock: 'Hoofletterslot', escape: 'Ontsnap', pageUp: 'Blaaiop', pageDown: 'Blaaiaf', - end: 'Einde', - home: 'Tuis', leftArrow: 'Linkspyl', upArrow: 'Oppyl', rightArrow: 'Regterpyl', downArrow: 'Afpyl', insert: 'Toevoeg', - 'delete': 'Verwyder', leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/ar.js b/sources/plugins/a11yhelp/dialogs/lang/ar.js index edb58df..870d60d 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/ar.js +++ b/sources/plugins/a11yhelp/dialogs/lang/ar.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ar', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/az.js b/sources/plugins/a11yhelp/dialogs/lang/az.js new file mode 100644 index 0000000..bda91a4 --- /dev/null +++ b/sources/plugins/a11yhelp/dialogs/lang/az.js @@ -0,0 +1,145 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'a11yhelp', 'az', { + title: 'Əlillərə dəstək üzrə təlimat', + contents: 'Kömək. Pəncərəni bağlamaq üçün ESC basın.', + legend: [ + { + name: 'Əsas', + items: [ + { + name: 'Düzəliş edənin alətlər çubuğu', + legend: 'Panelə keçmək üçün ${toolbarFocus} basın. Növbəti panelə TAB, əvvəlki panelə isə SHIFT+TAB düyməsi vasitəsi ilə keçə bilərsiz. Paneldəki düymələr arasında sol və sağ ox düyməsi ilə keçid edə bilərsiz. Seçilmiş düyməsi SPACE və ya ENTER ilə işlədə bilərsiniz.' + }, + + { + name: 'Redaktorun pəncərəsi', + legend: + 'Pəncərə içində növbəti element seçmək üçün TAB düyməni basın, əvvəlki isə - SHIFT+TAB. Təsdiq edilməsi üçün ENTER, imtina edilməsi isə ESC diymələri istifadə edin. Pəncərədə bir neçə vərəq olanda olnarın siyahı ALT+F10 ilə aça bilərsiz. Vərəqlərin siyahı fokus altında olanda ox düymələr vasitəsi ilə onların arasında keçid edə bilərsiz.' + }, + + { + name: 'Redaktorun seçimlərin menyusu', + legend: 'Seçimləri redaktə etmək üçün ${contextMenu} ya da APPLICATION KEY basın. Növbəti seçimə keçmək üçün TAB ya AŞAĞI OX düyməsini basın, əvvəlki isə - SHIFT+TAB ya YUXARI OX. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Alt menyunu açmaq üçün SPACE, ENTER ya SAĞA OX basın. ESC ya SOLA OX ilə geriyə qayıda bilərsiz. Bütün menyunu ESC ilə bağlıyın.' + }, + + { + name: 'Düzəliş edənin siyahı qutusu', + legend: 'Siyahı qutusu içində növbəti bənd seçmək üçün TAB ya AŞAĞI OX, əvvəlki isə SHIFT+TAB ya YUXARI OX basın. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Siyahı qutusu ESC ilə bağlıyın.' + }, + + { + name: 'Redaktor elementin cığır paneli', + legend: 'Elementin cığır paneli seçmək üçün ${elementsPathFocus} basın. Növbəti element seçmək üçün TAB ya SAĞA OX, əvvəlki isə SHIFT+TAB ya SOLA OX istifadə edin. Elementi arımaq SPACE ya ENTER düymələri mövcuddur.' + } + ] + }, + { + name: 'Əmrlər', + items: [ + { + name: 'Əmri geri qaytar', + legend: '${undo} basın' + }, + { + name: 'Geri əmri', + legend: '${redo} basın' + }, + { + name: 'Qalın əmri', + legend: '${bold} basın' + }, + { + name: 'Kursiv əmri', + legend: '${italic} basın' + }, + { + name: 'Altdan xətt əmri', + legend: '${underline} basın' + }, + { + name: 'Link əmri', + legend: '${link} basın' + }, + { + name: 'Paneli gizlət əmri', + legend: '${toolbarCollapse} basın' + }, + { + name: 'Əvvəlki fokus sahəsi seç əmrı', + legend: 'Kursordan əvvəl ən yaxın əlçatmaz yerə dəymək üçün ${accessPreviousSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın.' + }, + { + name: 'Növbəti fokus sahəsi seç əmrı', + legend: 'Kursordan sonra ən yaxın əlçatmaz yerə dəymək üçün ${accessNextSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın.' + }, + { + name: 'Hərtərəfli Kömək', + legend: '${a11yHelp} basın' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING + } + ] + } + ], + tab: 'Tab', + pause: 'Pause', + capslock: 'Caps Lock', + escape: 'Escape', + pageUp: 'Page Up', + pageDown: 'Page Down', + leftArrow: 'Sola ox işarəsi', + upArrow: 'Yuxarı ox işarəsi', + rightArrow: 'Sağa ox işarəsi', + downArrow: 'Aşağı ox işarəsi', + insert: 'Insert', + leftWindowKey: 'Soldaki Windows düyməsi', + rightWindowKey: 'Sağdaki Windows düyməsi', + selectKey: 'Düyməni seçin', + numpad0: 'Numpad 0', + numpad1: 'Numpad 1', + numpad2: 'Numpad 2', + numpad3: 'Numpad 3', + numpad4: 'Numpad 4', + numpad5: 'Numpad 5', + numpad6: 'Numpad 6', + numpad7: 'Numpad 7', + numpad8: 'Numpad 8', + numpad9: 'Numpad 9', + multiply: 'Vurma', + add: 'Əlavə et', + subtract: 'Çıxma', + decimalPoint: 'Onluq kəsri tam ədəddən ayıran nöqtə', + divide: 'Bölüşdürmə', + f1: 'F1', + f2: 'F2', + f3: 'F3', + f4: 'F4', + f5: 'F5', + f6: 'F6', + f7: 'F7', + f8: 'F8', + f9: 'F9', + f10: 'F10', + f11: 'F11', + f12: 'F12', + numLock: 'Num Lock', + scrollLock: 'Scroll Lock', + semiColon: 'Nöqtəli verqül', + equalSign: 'Barəbərlik işarəsi', + comma: 'Vergül', + dash: 'Defis', + period: 'Nöqtə', + forwardSlash: 'Çəp xətt', + graveAccent: 'Vurğu işarəsi', + openBracket: 'Açılan mötərizə', + backSlash: 'Tərs çəpəki xətt', + closeBracket: 'Bağlanan mötərizə', + singleQuote: 'Tək dırnaq' +} ); diff --git a/sources/plugins/a11yhelp/dialogs/lang/bg.js b/sources/plugins/a11yhelp/dialogs/lang/bg.js index 4ebdaad..9a809ff 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/bg.js +++ b/sources/plugins/a11yhelp/dialogs/lang/bg.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'bg', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/ca.js b/sources/plugins/a11yhelp/dialogs/lang/ca.js index b739c4e..5bbaced 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/ca.js +++ b/sources/plugins/a11yhelp/dialogs/lang/ca.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ca', { { name: 'Editor de quadre de diàleg', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'Dins d\'un quadre de diàleg, premi la tecla TAB per desplaçar-se fins al següent element del quadre de diàleg, premi la tecla Shift + TAB per desplaçar-se a l\'anterior element del quadre de diàleg, premi la tecla ENTER per confirmar el quadre de diàleg, premi la tecla ESC per cancel·lar el quadre de diàleg. Quan un quadre de diàleg té diverses pestanyes, la llista de pestanyes pot ser assolit ja sigui amb ALT + F10 o TAB, com a part de l\'ordre de tabulació del quadre de diàleg. Amb la llista de pestanyes seleccionada, pot anar a la fitxa següent i anterior amb la tecla FLETXA DRETA i ESQUERRA, respectivament.' }, { @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ca', { { name: 'Ajuda d\'accessibilitat', legend: 'Premi ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Retrocés', tab: 'Tabulació', - enter: 'Intro', - shift: 'Majúscules', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pausa', capslock: 'Bloqueig de majúscules', escape: 'Escape', pageUp: 'Pàgina Amunt', pageDown: 'Pàgina Avall', - end: 'Fi', - home: 'Inici', leftArrow: 'Fletxa Esquerra', upArrow: 'Fletxa Amunt', rightArrow: 'Fletxa Dreta', downArrow: 'Fletxa Avall', insert: 'Inserir', - 'delete': 'Eliminar', leftWindowKey: 'Tecla Windows Esquerra', rightWindowKey: 'Tecla Windows Dreta', selectKey: 'Tecla Seleccionar', diff --git a/sources/plugins/a11yhelp/dialogs/lang/cs.js b/sources/plugins/a11yhelp/dialogs/lang/cs.js index 6386a35..f792c46 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/cs.js +++ b/sources/plugins/a11yhelp/dialogs/lang/cs.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'cs', { { name: ' Nápověda přístupnosti', legend: 'Stiskněte ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tabulátor', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pauza', capslock: 'Caps lock', escape: 'Escape', pageUp: 'Stránka nahoru', pageDown: 'Stránka dolů', - end: 'Konec', - home: 'Domů', leftArrow: 'Šipka vlevo', upArrow: 'Šipka nahoru', rightArrow: 'Šipka vpravo', downArrow: 'Šipka dolů', insert: 'Vložit', - 'delete': 'Smazat', leftWindowKey: 'Levá klávesa Windows', rightWindowKey: 'Pravá klávesa Windows', selectKey: 'Vyberte klávesu', diff --git a/sources/plugins/a11yhelp/dialogs/lang/cy.js b/sources/plugins/a11yhelp/dialogs/lang/cy.js index f47ff93..e0cc0ba 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/cy.js +++ b/sources/plugins/a11yhelp/dialogs/lang/cy.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'cy', { { name: 'Cymorth Hygyrchedd', legend: 'Pwyswch ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/da.js b/sources/plugins/a11yhelp/dialogs/lang/da.js index 8ec3f61..ae21300 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/da.js +++ b/sources/plugins/a11yhelp/dialogs/lang/da.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -22,18 +22,18 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'da', { }, { - name: 'Editor Context Menu', // MISSING - legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING + name: 'Redaktør kontekstmenu', + legend: 'Tryk ${contextMenu} eller APPLICATION KEY for at åbne kontekstmenuen. Flyt derefter til næste menuvalg med TAB eller PIL NED. Flyt til forrige valg med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge menu-muligheder. Åben under-menu af aktuelle valg med MELLEMRUM eller RETUR eller HØJRE PIL. Gå tilbage til overliggende menu-emne med ESC eller VENSTRE PIL. Luk kontekstmenu med ESC.' }, { - name: 'Editor List Box', // MISSING - legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING + name: 'Redaktør listeboks', + legend: 'Flyt til næste emne med TAB eller PIL NED inde i en listeboks. Flyt til forrige listeemne med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge liste-muligheder. Tryk ESC for at lukke liste-boksen.' }, { - name: 'Editor Element Path Bar', // MISSING - legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING + name: 'Redaktør elementsti-bar', + legend: 'Tryk ${elementsPathFocus} for at navigere til elementernes sti-bar. Flyt til næste element-knap med TAB eller HØJRE PIL. Flyt til forrige knap med SHIFT+TAB eller VENSTRE PIL. Klik MELLEMRUM eller RETUR for at vælge element i editoren.' } ] }, @@ -65,11 +65,11 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'da', { legend: 'Klik ${link}' }, { - name: ' Toolbar Collapse command', // MISSING + name: 'Klap værktøjslinje sammen kommando ', legend: 'Klik ${toolbarCollapse}' }, { - name: ' Access previous focus space command', // MISSING + name: 'Adgang til forrige fokusområde kommando', legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING }, { @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'da', { { name: 'Tilgængelighedshjælp', legend: 'Kilk ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Venstre pil', upArrow: 'Pil op', rightArrow: 'Højre pil', downArrow: 'Pil ned', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Venstre Windows tast', rightWindowKey: 'Højre Windows tast', selectKey: 'Select-knap', diff --git a/sources/plugins/a11yhelp/dialogs/lang/de-ch.js b/sources/plugins/a11yhelp/dialogs/lang/de-ch.js index afa4021..206bbf6 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/de-ch.js +++ b/sources/plugins/a11yhelp/dialogs/lang/de-ch.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'de-ch', { { name: 'Eingabehilfen', legend: 'Drücken Sie ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Rücktaste', tab: 'Tab', - enter: 'Eingabe', - shift: 'Umschalt', - ctrl: 'Strg', - alt: 'Alt', pause: 'Pause', capslock: 'Feststell', escape: 'Escape', pageUp: 'Bild auf', pageDown: 'Bild ab', - end: 'Ende', - home: 'Pos1', leftArrow: 'Linke Pfeiltaste', upArrow: 'Obere Pfeiltaste', rightArrow: 'Rechte Pfeiltaste', downArrow: 'Untere Pfeiltaste', insert: 'Einfügen', - 'delete': 'Entfernen', leftWindowKey: 'Linke Windowstaste', rightWindowKey: 'Rechte Windowstaste', selectKey: 'Taste auswählen', diff --git a/sources/plugins/a11yhelp/dialogs/lang/de.js b/sources/plugins/a11yhelp/dialogs/lang/de.js index 5d3fd04..5e798cb 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/de.js +++ b/sources/plugins/a11yhelp/dialogs/lang/de.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'de', { { name: 'Editordialog', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'Drücke innerhalb eines Dialogs TAB, um zum nächsten Element zu springen. Drücke SHIFT+TAB, um zum vorigen Element zu springen, drücke ENTER um das Formular im Dialog abzusenden, drücke ESC, um den Dialog zu schließen. Hat der Dialog mehrere Tabs, dann kannst du durch ALT+F10 die Tab-Liste aufrufen or mittels TAB als Teil der Dialog-Tab-Reihenfolge. Ist die Tab-Liste fokussiert, dann mithilfe der Pfeiltasten (LINKS und RECHTS) zwischen den Tabs gewechselt werden.' }, { @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'de', { { name: 'Eingabehilfen', legend: 'Drücken Sie ${a11yHelp}' + }, + { + name: 'Einfügen als unformatierter Text. ', + legend: 'Drücke ${pastetext}', + legendEdge: 'Drücke ${pastetext} und anschließend ${paste}' } ] } ], - backspace: 'Rücktaste', tab: 'Tab', - enter: 'Eingabe', - shift: 'Umschalt', - ctrl: 'Strg', - alt: 'Alt', pause: 'Pause', capslock: 'Feststell', escape: 'Escape', pageUp: 'Bild auf', pageDown: 'Bild ab', - end: 'Ende', - home: 'Pos1', leftArrow: 'Linke Pfeiltaste', upArrow: 'Obere Pfeiltaste', rightArrow: 'Rechte Pfeiltaste', downArrow: 'Untere Pfeiltaste', insert: 'Einfügen', - 'delete': 'Entfernen', leftWindowKey: 'Linke Windowstaste', rightWindowKey: 'Rechte Windowstaste', selectKey: 'Taste auswählen', diff --git a/sources/plugins/a11yhelp/dialogs/lang/el.js b/sources/plugins/a11yhelp/dialogs/lang/el.js index ec61ce5..f3e598f 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/el.js +++ b/sources/plugins/a11yhelp/dialogs/lang/el.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'el', { { name: 'Βοήθεια Προσβασιμότητας', legend: 'Πατήστε ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Αριστερό Βέλος', upArrow: 'Πάνω Βέλος', rightArrow: 'Δεξί Βέλος', downArrow: 'Κάτω Βέλος', insert: 'Insert ', - 'delete': 'Delete', leftWindowKey: 'Αριστερό Πλήκτρο Windows', rightWindowKey: 'Δεξί Πλήκτρο Windows', selectKey: 'Πλήκτρο Select', diff --git a/sources/plugins/a11yhelp/dialogs/lang/en-gb.js b/sources/plugins/a11yhelp/dialogs/lang/en-gb.js index 27dbff8..6fa41b3 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/en-gb.js +++ b/sources/plugins/a11yhelp/dialogs/lang/en-gb.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'en-gb', { { name: ' Accessibility Help', legend: 'Press ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Left Arrow', upArrow: 'Up Arrow', rightArrow: 'Right Arrow', downArrow: 'Down Arrow', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Left Windows key', rightWindowKey: 'Right Windows key', selectKey: 'Select key', diff --git a/sources/plugins/a11yhelp/dialogs/lang/en.js b/sources/plugins/a11yhelp/dialogs/lang/en.js index 47823d7..a9ea5bd 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/en.js +++ b/sources/plugins/a11yhelp/dialogs/lang/en.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -98,29 +98,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'en', { { name: ' Accessibility Help', legend: 'Press ${a11yHelp}' + }, + { + name: ' Paste as plain text', + legend: 'Press ${pastetext}', + legendEdge: 'Press ${pastetext}, followed by ${paste}' } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Left Arrow', upArrow: 'Up Arrow', rightArrow: 'Right Arrow', downArrow: 'Down Arrow', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Left Windows key', rightWindowKey: 'Right Windows key', selectKey: 'Select key', diff --git a/sources/plugins/a11yhelp/dialogs/lang/eo.js b/sources/plugins/a11yhelp/dialogs/lang/eo.js index 104cdc4..061e7b5 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/eo.js +++ b/sources/plugins/a11yhelp/dialogs/lang/eo.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'eo', { { name: 'Helpilo pri atingeblo', legend: 'Premu ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Retropaŝo', tab: 'Tabo', - enter: 'Enigi', - shift: 'Registrumo', - ctrl: 'Stirklavo', - alt: 'Alt-klavo', pause: 'Paŭzo', capslock: 'Majuskla baskulo', escape: 'Eskapa klavo', pageUp: 'Antaŭa Paĝo', pageDown: 'Sekva Paĝo', - end: 'Fino', - home: 'Hejmo', leftArrow: 'Sago Maldekstren', upArrow: 'Sago Supren', rightArrow: 'Sago Dekstren', downArrow: 'Sago Suben', insert: 'Enmeti', - 'delete': 'Forigi', leftWindowKey: 'Maldekstra Windows-klavo', rightWindowKey: 'Dekstra Windows-klavo', selectKey: 'Selektklavo', diff --git a/sources/plugins/a11yhelp/dialogs/lang/es-mx.js b/sources/plugins/a11yhelp/dialogs/lang/es-mx.js new file mode 100644 index 0000000..7ef6a4c --- /dev/null +++ b/sources/plugins/a11yhelp/dialogs/lang/es-mx.js @@ -0,0 +1,145 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'a11yhelp', 'es-mx', { + title: 'Instrucciones de accesibilidad', + contents: 'Contenidos de ayuda. Para cerrar este cuadro de diálogo presione ESC.', + legend: [ + { + name: 'General', + items: [ + { + name: 'Barra de herramientas del editor', + legend: 'Presione ${toolbarFocus} para navegar a la barra de herramientas. Desplácese al grupo de barras de herramientas siguiente y anterior con SHIFT + TAB. Desplácese al botón siguiente y anterior de la barra de herramientas con FLECHA DERECHA o FLECHA IZQUIERDA. Presione SPACE o ENTER para activar el botón de la barra de herramientas.' + }, + + { + name: 'Editor de diálogo', + legend: + 'Dentro de un cuadro de diálogo, pulse TAB para desplazarse hasta el siguiente elemento de diálogo, pulse MAYÚS + TAB para desplazarse al elemento de diálogo anterior, pulse ENTER para enviar el diálogo, pulse ESC para cancelar el diálogo. Cuando un cuadro de diálogo tiene varias pestañas, se puede acceder a la lista de pestañas con ALT + F10 o con TAB como parte del orden de tabulación del diálogo. Con la lista de tabuladores enfocada, mueva a la pestaña siguiente y anterior con las flechas DERECHA y IZQUIERDA, respectivamente.' + }, + + { + name: 'Menú contextual del editor', + legend: 'Presione ${contextMenu} o CLAVE DE APLICACIÓN para abrir el menú contextual. A continuación, vaya a la siguiente opción del menú con TAB o DOWN ARROW. Desplácese a la opción anterior con SHIFT + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción del menú. Abra el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Vuelva al elemento de menú principal con ESC o FLECHA IZQUIERDA. Cerrar el menú contextual con ESC.' + }, + + { + name: 'Editor de cuadro de lista', + legend: 'Dentro de un cuadro de lista, mueva al siguiente elemento de lista con TAB O FLECHA ABAJO. Mueva al elemento anterior de la lista con MAYÚS + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción de lista. Presione ESC para cerrar el cuadro de lista.' + }, + + { + name: 'Barra de ruta del elemento del editor', + legend: 'Presione ${elementsPathFocus} para navegar a la barra de ruta de elementos. Desplácese al siguiente botón de elemento con TAB o FLECHA DERECHA. Desplácese al botón anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione SPACE o ENTER para seleccionar el elemento en el editor.' + } + ] + }, + { + name: 'Comandos', + items: [ + { + name: 'Comando deshacer', + legend: 'Presiona ${undo}' + }, + { + name: 'Comando rehacer', + legend: 'Presiona ${redo}' + }, + { + name: 'Comando negrita', + legend: 'Presiona ${bold}' + }, + { + name: 'Comando cursiva', + legend: 'Presiona {italic}' + }, + { + name: 'Comando subrayado', + legend: 'Presiona ${underline}' + }, + { + name: 'Comando enlace', + legend: 'Presiona ${link}' + }, + { + name: 'Comando colapsar barra de herramientas', + legend: 'Presiona ${toolbarCollapse}' + }, + { + name: 'Acceda al comando de espacio de enfoque anterior', + legend: 'Presione ${accessPreviousSpace} para acceder al espacio de enfoque inaccesible más cercano antes del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes.' + }, + { + name: 'Acceder al siguiente comando de espacio de enfoque', + legend: 'Pulse ${accessNextSpace} para acceder al espacio de enfoque más cercano inaccesible después del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes.' + }, + { + name: 'Ayuda de accesibilidad', + legend: 'Presiona ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING + } + ] + } + ], + tab: 'Tabulador', + pause: 'Pausa', + capslock: 'Mayúsculas', + escape: 'Escape', + pageUp: 'Página arriba', + pageDown: 'Página abajo', + leftArrow: 'Flecha izquierda', + upArrow: 'Flecha arriba', + rightArrow: 'Flecha derecha', + downArrow: 'Flecha abajo', + insert: 'Insertar', + leftWindowKey: 'Tecla izquierda de Windows', + rightWindowKey: 'Tecla derecha de Windows', + selectKey: 'Tecla de selección', + numpad0: 'Teclado numérico 0', + numpad1: 'Teclado numérico 1', + numpad2: 'Teclado numérico 2', + numpad3: 'Teclado numérico 3', + numpad4: 'Teclado numérico 4', + numpad5: 'Teclado numérico 5', + numpad6: 'Teclado numérico 6', + numpad7: 'Teclado numérico 7', + numpad8: 'Teclado numérico 8', + numpad9: 'Teclado numérico 9', + multiply: 'Multiplicar', + add: 'Sumar', + subtract: 'Restar', + decimalPoint: 'Punto decimal', + divide: 'Dividir', + f1: 'F1', + f2: 'F2', + f3: 'F3', + f4: 'F4', + f5: 'F5', + f6: 'F6', + f7: 'F7', + f8: 'F8', + f9: 'F9', + f10: 'F10', + f11: 'F11', + f12: 'F12', + numLock: 'Números', + scrollLock: 'Bloqueo de desplazamiento', + semiColon: 'punto y coma', + equalSign: 'Signo igual', + comma: 'Coma', + dash: 'Guión', + period: 'Espacio', + forwardSlash: 'Diagonal', + graveAccent: 'Acento grave', + openBracket: 'Abrir paréntesis', + backSlash: 'Diagonal invertida', + closeBracket: 'Cerrar paréntesis', + singleQuote: 'Comillas simple' +} ); diff --git a/sources/plugins/a11yhelp/dialogs/lang/es.js b/sources/plugins/a11yhelp/dialogs/lang/es.js index 8a1e130..d3b29a2 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/es.js +++ b/sources/plugins/a11yhelp/dialogs/lang/es.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'es', { { name: 'Editor de diálogo', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente.' }, { @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'es', { { name: 'Ayuda de Accesibilidad', legend: 'Presiona ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Retroceso', tab: 'Tabulador', - enter: 'Ingresar', - shift: 'Mayús.', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pausa', capslock: 'Bloq. Mayús.', escape: 'Escape', pageUp: 'Regresar Página', pageDown: 'Avanzar Página', - end: 'Fin', - home: 'Inicio', leftArrow: 'Flecha Izquierda', upArrow: 'Flecha Arriba', rightArrow: 'Flecha Derecha', downArrow: 'Flecha Abajo', insert: 'Insertar', - 'delete': 'Suprimir', leftWindowKey: 'Tecla Windows Izquierda', rightWindowKey: 'Tecla Windows Derecha', selectKey: 'Tecla de Selección', diff --git a/sources/plugins/a11yhelp/dialogs/lang/et.js b/sources/plugins/a11yhelp/dialogs/lang/et.js index 394f0c6..3f6524b 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/et.js +++ b/sources/plugins/a11yhelp/dialogs/lang/et.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'et', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/eu.js b/sources/plugins/a11yhelp/dialogs/lang/eu.js index 097ad14..80c60db 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/eu.js +++ b/sources/plugins/a11yhelp/dialogs/lang/eu.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'eu', { { name: 'Erabilerraztasunaren laguntza', legend: 'Sakatu ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Atzera tekla', tab: 'Tabuladorea', - enter: 'Sartu', - shift: 'Maius', - ctrl: 'Ktrl', - alt: 'Alt', pause: 'Pausatu', capslock: 'Blok Maius', escape: 'Ihes', pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'Buka', - home: 'Etxea', leftArrow: 'Ezker-gezia', upArrow: 'Gora gezia', rightArrow: 'Eskuin-gezia', downArrow: 'Behera gezia', insert: 'Txertatu', - 'delete': 'Ezabatu', leftWindowKey: 'Ezkerreko Windows tekla', rightWindowKey: 'Eskuineko Windows tekla', selectKey: 'Hautatu tekla', diff --git a/sources/plugins/a11yhelp/dialogs/lang/fa.js b/sources/plugins/a11yhelp/dialogs/lang/fa.js index 7391490..dbe99dc 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/fa.js +++ b/sources/plugins/a11yhelp/dialogs/lang/fa.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fa', { { name: 'راهنمای دسترسی', legend: 'فشردن ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'عقبگرد', tab: 'برگه', - enter: 'ورود', - shift: 'تعویض', - ctrl: 'کنترل', - alt: 'دگرساز', pause: 'توقف', capslock: 'Caps Lock', escape: 'گریز', pageUp: 'صفحه به بالا', pageDown: 'صفحه به پایین', - end: 'پایان', - home: 'خانه', leftArrow: 'پیکان چپ', upArrow: 'پیکان بالا', rightArrow: 'پیکان راست', downArrow: 'پیکان پایین', insert: 'ورود', - 'delete': 'حذف', leftWindowKey: 'کلید چپ ویندوز', rightWindowKey: 'کلید راست ویندوز', selectKey: 'انتخاب کلید', diff --git a/sources/plugins/a11yhelp/dialogs/lang/fi.js b/sources/plugins/a11yhelp/dialogs/lang/fi.js index 4f4775b..028020c 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/fi.js +++ b/sources/plugins/a11yhelp/dialogs/lang/fi.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fi', { { name: 'Saavutettavuus ohjeet', legend: 'Paina ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/fo.js b/sources/plugins/a11yhelp/dialogs/lang/fo.js index 21bc261..358ca6e 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/fo.js +++ b/sources/plugins/a11yhelp/dialogs/lang/fo.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fo', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/fr-ca.js b/sources/plugins/a11yhelp/dialogs/lang/fr-ca.js index b43eeab..88c4a1f 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/fr-ca.js +++ b/sources/plugins/a11yhelp/dialogs/lang/fr-ca.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr-ca', { { name: 'Aide d\'accessibilité', legend: 'Appuyer sur ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/fr.js b/sources/plugins/a11yhelp/dialogs/lang/fr.js index ee41566..a2f4649 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/fr.js +++ b/sources/plugins/a11yhelp/dialogs/lang/fr.js @@ -1,39 +1,39 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', { title: 'Instructions d\'accessibilité', - contents: 'Contenu de l\'aide. Pour fermer ce dialogue, appuyez sur la touche ÉCHAP (Echappement).', + contents: 'Contenu de l\'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.', legend: [ { name: 'Général', items: [ { name: 'Barre d\'outils de l\'éditeur', - legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers les groupes suivant ou précédent de la barre d\'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d\'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d\'espace ou la touche ENTRÉE pour activer le bouton de barre d\'outils.' + legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers le groupe suivant ou précédent de la barre d\'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d\'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d\'espace ou la touche Entrée pour activer le bouton de barre d\'outils.' }, { - name: 'Dialogue de l\'éditeur', + name: 'Fenêtre de l\'éditeur', legend: - 'Dans un dialogue, appuyer sur TAB pour aller à l\'élément suivant du dialogue, appuyer sur MAJ+TAB pour aller à l\'élément précédent du dialogue, appuyer sur ECHAP pour annuler le dialogue. Quand un dialogue a de multiples onglets, on peut accéder à la liste des onglets avec ALT+F10 ou avec TAB. Dans la liste des onglets, se déplacer vers le suivant ou le précédent avec les FLECHES DROITE et GAUCHE respectivement.' + 'Dans une boîte de dialogue, appuyer sur Tab pour passer à l\'élément suivant, appuyer sur Maj+Tab pour passer à l\'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement.' }, { name: 'Menu contextuel de l\'éditeur', - legend: 'Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l\'option suivante du menu avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'option précédente avec les touches MAJ+TAB ou FLÈCHE HAUT. appuyer sur la BARRE D\'ESPACE ou la touche ENTRÉE pour sélectionner l\'option du menu. Oovrir le sous-menu de l\'option courante avec la BARRE D\'ESPACE ou les touches ENTRÉE ou FLÈCHE DROITE. Revenir à l\'élément de menu parent avec les touches ÉCHAP ou FLÈCHE GAUCHE. Fermer le menu contextuel avec ÉCHAP.' + legend: 'Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l\'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l\'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou la touche Entrée pour sélectionner l\'option du menu. Appuyer sur la barre d\'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l\'option sélectionnée. Revenir à l\'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap.' }, { name: 'Zone de liste de l\'éditeur', - legend: 'Dans la liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'élément précédent de la liste avec les touches MAJ+TAB ou FLÈCHE HAUT. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'option dans la liste. Appuyer sur ÉCHAP pour fermer le menu déroulant.' + legend: 'Dans une liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l\'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant.' }, { - name: 'Barre d\'emplacement des éléments de l\'éditeur', - legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d\'emplacement des éléments de l\'éditeur. Se déplacer vers le bouton d\'élément suivant avec les touches TAB ou FLÈCHE DROITE. Se déplacer vers le bouton d\'élément précédent avec les touches MAJ+TAB ou FLÈCHE GAUCHE. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'élément dans l\'éditeur.' + name: 'Barre du chemin d\'éléments de l\'éditeur', + legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d\'Ariane des éléments. Se déplacer vers le bouton de l\'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'élément dans l\'éditeur.' } ] }, @@ -45,7 +45,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', { legend: 'Appuyer sur ${undo}' }, { - name: 'Refaire la commande', + name: 'Commande restaurer', legend: 'Appuyer sur ${redo}' }, { @@ -69,55 +69,52 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', { legend: 'Appuyer sur ${toolbarCollapse}' }, { - name: 'Accéder à la précédente commande d\'espace de mise au point', - legend: 'Appuyez sur ${accessPreviousSpace} pour accéder à l\'espace hors d\'atteinte le plus proche avant le caret, par exemple: deux éléments HR adjacents. Répétez la combinaison de touches pour atteindre les espaces de mise au point distants.' + name: 'Commande d\'accès à l\'élément sélectionnable précédent', + legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents.' }, { - name: 'Accès à la prochaine commande de l\'espace de mise au point', - legend: 'Appuyez sur ${accessNextSpace} pour accéder au plus proche espace de mise au point hors d\'atteinte après le caret, par exemple: deux éléments HR adjacents. répétez la combinaison de touches pour atteindre les espace de mise au point distants.' + name: 'Commande d\'accès à l\'élément sélectionnable suivant', + legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants.' }, { - name: ' Aide Accessibilité', + name: ' Aide sur l\'accessibilité', legend: 'Appuyer sur ${a11yHelp}' + }, + { + name: 'Coller comme texte sans mise en forme', + legend: 'Appuyer sur ${pastetext}', + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Retour arrière', tab: 'Tabulation', - enter: 'Entrée', - shift: 'Majuscule', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Verr. Maj.', escape: 'Échap', pageUp: 'Page supérieure', - pageDown: 'Page inférieure', - end: 'Fin', - home: 'Retour', + pageDown: 'Page suivante', leftArrow: 'Flèche gauche', - upArrow: 'Flèche haute', + upArrow: 'Flèche haut', rightArrow: 'Flèche droite', downArrow: 'Flèche basse', - insert: 'Insertion', - 'delete': 'Supprimer', + insert: 'Inser', leftWindowKey: 'Touche Windows gauche', rightWindowKey: 'Touche Windows droite', - selectKey: 'Touche menu', - numpad0: 'Pavé numérique 0', - numpad1: 'Pavé numérique 1', - numpad2: 'Pavé numérique 2', - numpad3: 'Pavé numérique 3', - numpad4: 'Pavé numérique 4', - numpad5: 'Pavé numérique 5', - numpad6: 'Pavé numérique 6', - numpad7: 'Pavé numérique 7', + selectKey: 'Touche Sélectionner', + numpad0: '0 du pavé numérique', + numpad1: '1 du pavé numérique', + numpad2: '2 du pavé numérique', + numpad3: '3 du pavé numérique', + numpad4: '4 du pavé numérique', + numpad5: '5 du pavé numérique', + numpad6: '6 du pavé numérique', + numpad7: '7 du pavé numérique', numpad8: 'Pavé numérique 8', - numpad9: 'Pavé numérique 9', + numpad9: '9 du pavé numérique', multiply: 'Multiplier', - add: 'Addition', - subtract: 'Soustraire', + add: 'Plus', + subtract: 'Moins', decimalPoint: 'Point décimal', divide: 'Diviser', f1: 'F1', @@ -132,9 +129,9 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', { f10: 'F10', f11: 'F11', f12: 'F12', - numLock: 'Verrouillage numérique', - scrollLock: 'Arrêt défilement', - semiColon: 'Point virgule', + numLock: 'Verr. Num.', + scrollLock: 'Arrêt défil.', + semiColon: 'Point-virgule', equalSign: 'Signe égal', comma: 'Virgule', dash: 'Tiret', diff --git a/sources/plugins/a11yhelp/dialogs/lang/gl.js b/sources/plugins/a11yhelp/dialogs/lang/gl.js index f6e6b1c..1bb9595 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/gl.js +++ b/sources/plugins/a11yhelp/dialogs/lang/gl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'gl', { { name: 'Editor de diálogo', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'Dentro do diálogo, prema TAB para navegar cara os seguintes elementos de diálogo, prema MAIÚS+TAB para moverse cara os anteriores elementos de diálogo, prema INTRO para enviar o diálogo, prema ESC para cancelar o diálogo. Cando o diálogo ten múltiples lapelas, a lista de lapelas pode cinguirse con ALT+F10 ou con TAB como parte da orde de lapelas do diálogo. Coa lapela en foco, pode moverse cara a seguinte ou a anterior lapela coas FRECHAS ESQUERDA e DEREICHA respectivamente.' }, { @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'gl', { { name: 'Axuda da accesibilidade', legend: 'Prema ${a11yHelp}' + }, + { + name: 'Pegar como texto simple', + legend: 'Prema ${pastetext}', + legendEdge: 'Prema ${pastetext}, seguido de ${paste}' } ] } ], - backspace: 'Ir atrás', tab: 'Tabulador', - enter: 'Intro', - shift: 'Maiús', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pausa', capslock: 'Bloq. Maiús', escape: 'Escape', pageUp: 'Páxina arriba', pageDown: 'Páxina abaixo', - end: 'Fin', - home: 'Inicio', leftArrow: 'Frecha esquerda', upArrow: 'Frecha arriba', rightArrow: 'Frecha dereita', downArrow: 'Frecha abaixo', insert: 'Inserir', - 'delete': 'Supr', leftWindowKey: 'Tecla Windows esquerda', rightWindowKey: 'Tecla Windows dereita', selectKey: 'Escolla a tecla', diff --git a/sources/plugins/a11yhelp/dialogs/lang/gu.js b/sources/plugins/a11yhelp/dialogs/lang/gu.js index d8d4957..6fa2b3d 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/gu.js +++ b/sources/plugins/a11yhelp/dialogs/lang/gu.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'gu', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/he.js b/sources/plugins/a11yhelp/dialogs/lang/he.js index 025cf88..ed668c4 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/he.js +++ b/sources/plugins/a11yhelp/dialogs/lang/he.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'he', { { name: ' הוראות נגישות', legend: 'לחץ ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'חץ שמאלה', upArrow: 'חץ למעלה', rightArrow: 'חץ ימינה', downArrow: 'חץ למטה', insert: 'הכנס', - 'delete': 'מחק', leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'בחר מקש', diff --git a/sources/plugins/a11yhelp/dialogs/lang/hi.js b/sources/plugins/a11yhelp/dialogs/lang/hi.js index 19fda78..de1e54b 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/hi.js +++ b/sources/plugins/a11yhelp/dialogs/lang/hi.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hi', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/hr.js b/sources/plugins/a11yhelp/dialogs/lang/hr.js index f4568a2..ae28062 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/hr.js +++ b/sources/plugins/a11yhelp/dialogs/lang/hr.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hr', { { name: 'Dijalog', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'Unutar dijaloga, pritisnite TAB kako bi navigirali do sljedećeg elementa dijaloga, pritisnite SHIFT+TAB kako bi se pomaknuli do prethodnog elementa, pritisnite ENTER kako bi poslali dijalog, pritisnite ESC za gašenje dijaloga. Kada dijalog ima više kartica, listi kartica se može pristupiti pomoću ALT+F10 ili sa TAB. Kada je fokusirana lista kartica, pomaknite se naprijed ili nazad pomoću strelica LIJEVO ili DESNO.' }, { @@ -69,80 +69,77 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hr', { legend: 'Pritisni ${toolbarCollapse}' }, { - name: 'Access previous focus space naredba', + name: 'Naredba za pristupi prethodnom prostoru fokusa', legend: 'Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak.' }, { - name: 'Access next focus space naredba', + name: 'Naredba za pristup sljedećem prostoru fokusa', legend: 'Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak.' }, { name: 'Pomoć za dostupnost', legend: 'Pritisni ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING - tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING - pause: 'Pause', // MISSING - capslock: 'Caps Lock', // MISSING - escape: 'Escape', // MISSING - pageUp: 'Page Up', // MISSING - pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING - leftArrow: 'Left Arrow', // MISSING - upArrow: 'Up Arrow', // MISSING - rightArrow: 'Right Arrow', // MISSING - downArrow: 'Down Arrow', // MISSING - insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING - leftWindowKey: 'Left Windows key', // MISSING - rightWindowKey: 'Right Windows key', // MISSING - selectKey: 'Select key', // MISSING - numpad0: 'Numpad 0', // MISSING - numpad1: 'Numpad 1', // MISSING - numpad2: 'Numpad 2', // MISSING - numpad3: 'Numpad 3', // MISSING - numpad4: 'Numpad 4', // MISSING - numpad5: 'Numpad 5', // MISSING - numpad6: 'Numpad 6', // MISSING - numpad7: 'Numpad 7', // MISSING - numpad8: 'Numpad 8', // MISSING - numpad9: 'Numpad 9', // MISSING - multiply: 'Multiply', // MISSING - add: 'Add', // MISSING - subtract: 'Subtract', // MISSING - decimalPoint: 'Decimal Point', // MISSING - divide: 'Divide', // MISSING - f1: 'F1', // MISSING - f2: 'F2', // MISSING - f3: 'F3', // MISSING - f4: 'F4', // MISSING - f5: 'F5', // MISSING - f6: 'F6', // MISSING - f7: 'F7', // MISSING - f8: 'F8', // MISSING - f9: 'F9', // MISSING - f10: 'F10', // MISSING - f11: 'F11', // MISSING - f12: 'F12', // MISSING - numLock: 'Num Lock', // MISSING - scrollLock: 'Scroll Lock', // MISSING - semiColon: 'Semicolon', // MISSING - equalSign: 'Equal Sign', // MISSING - comma: 'Comma', // MISSING - dash: 'Dash', // MISSING - period: 'Period', // MISSING - forwardSlash: 'Forward Slash', // MISSING - graveAccent: 'Grave Accent', // MISSING - openBracket: 'Open Bracket', // MISSING - backSlash: 'Backslash', // MISSING - closeBracket: 'Close Bracket', // MISSING - singleQuote: 'Single Quote' // MISSING + tab: 'Tab', + pause: 'Pause', + capslock: 'Caps Lock', + escape: 'Escape', + pageUp: 'Page Up', + pageDown: 'Page Down', + leftArrow: 'Lijev strelica', + upArrow: 'Strelica gore', + rightArrow: 'Desna strelica', + downArrow: 'Strelica dolje', + insert: 'Insert', + leftWindowKey: 'Lijeva Windows tipka', + rightWindowKey: 'Desna Windows tipka', + selectKey: 'Tipka Select', + numpad0: 'Numpad 0', + numpad1: 'Numpad 1', + numpad2: 'Numpad 2', + numpad3: 'Numpad 3', + numpad4: 'Numpad 4', + numpad5: 'Numpad 5', + numpad6: 'Numpad 6', + numpad7: 'Numpad 7', + numpad8: 'umpad 8', + numpad9: 'Numpad 9', + multiply: 'Množenje', + add: 'Zbrajanje', + subtract: 'Oduzimanje', + decimalPoint: 'Decimalna točka', + divide: 'Dijeljenje', + f1: 'F1', + f2: 'F2', + f3: 'F3', + f4: 'F4', + f5: 'F5', + f6: 'F6', + f7: 'F7', + f8: 'F8', + f9: 'F9', + f10: 'F10', + f11: 'F11', + f12: 'F12', + numLock: 'Num Lock', + scrollLock: 'Scroll Lock', + semiColon: 'Točka zarez', + equalSign: 'Jednako', + comma: 'Zarez', + dash: 'Crtica', + period: 'Točka', + forwardSlash: 'Kosa crta', + graveAccent: 'Akcent', + openBracket: 'Otvorena uglata zagrada', + backSlash: 'Obrnuta kosa crta', + closeBracket: 'Zatvorena uglata zagrada', + singleQuote: 'Jednostruki navodnik' } ); diff --git a/sources/plugins/a11yhelp/dialogs/lang/hu.js b/sources/plugins/a11yhelp/dialogs/lang/hu.js index 7342cee..1bae59f 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/hu.js +++ b/sources/plugins/a11yhelp/dialogs/lang/hu.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hu', { { name: 'Szerkesző párbeszéd ablak', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'Párbeszédablakban nyomjon TAB-ot a következő párbeszédmezőhöz ugráshoz, nyomjon SHIFT + TAB-ot az előző mezőhöz ugráshoz, nyomjon ENTER-t a párbeszédablak elfogadásához, nyomjon ESC-et a párbeszédablak elvetéséhez. Azokhoz a párbeszédablakokhoz, amik több fület tartalmaznak, nyomjon ALT + F10-et vagy TAB-ot hogy a fülekre ugorjon. Ezután a TAB-al vagy a JOBB NYÍLLAL a következő fülre ugorhat.' }, { @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hu', { { name: 'Kisegítő súgó', legend: 'Nyomjon ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'balra nyíl', upArrow: 'felfelé nyíl', rightArrow: 'jobbra nyíl', downArrow: 'lefelé nyíl', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'bal Windows-billentyű', rightWindowKey: 'jobb Windows-billentyű', selectKey: 'Billentyű választása', diff --git a/sources/plugins/a11yhelp/dialogs/lang/id.js b/sources/plugins/a11yhelp/dialogs/lang/id.js index 2b1675f..89aeee7 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/id.js +++ b/sources/plugins/a11yhelp/dialogs/lang/id.js @@ -1,33 +1,33 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'a11yhelp', 'id', { - title: 'Accessibility Instructions', // MISSING + title: 'Instruksi Accessibility', contents: 'Bantuan. Tekan ESC untuk menutup dialog ini.', legend: [ { name: 'Umum', items: [ { - name: 'Editor Toolbar', // MISSING - legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING + name: 'Toolbar Editor', + legend: 'Tekan ${toolbarFocus} untuk berpindah ke toolbar. Untuk berpindah ke group toolbar selanjutnya dan sebelumnya gunakan TAB dan SHIFT+TAB. Untuk berpindah ke tombol toolbar selanjutnya dan sebelumnya gunakan RIGHT ARROW atau LEFT ARROW. Tekan SPASI atau ENTER untuk mengaktifkan tombol toolbar.' }, { - name: 'Editor Dialog', // MISSING + name: 'Dialog Editor', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'Pada jendela dialog, tekan TAB untuk berpindah pada elemen dialog selanjutnya, tekan SHIFT+TAB untuk berpindah pada elemen dialog sebelumnya, tekan ENTER untuk submit dialog, tekan ESC untuk membatalkan dialog. Pada dialog dengan multi tab, daftar tab dapat diakses dengan ALT+F10 ataupun dengan tombol TAB sesuai urutan tab pada dialog. Jika daftar tab aktif terpilih, untuk berpindah tab dapat menggunakan RIGHT dan LEFT ARROW.' }, { - name: 'Editor Context Menu', // MISSING + name: 'Context Menu Editor', legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING }, { - name: 'Editor List Box', // MISSING + name: 'List Box Editor', legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING }, @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'id', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/it.js b/sources/plugins/a11yhelp/dialogs/lang/it.js index bc06683..224bd49 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/it.js +++ b/sources/plugins/a11yhelp/dialogs/lang/it.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'it', { { name: ' Aiuto Accessibilità', legend: 'Premi ${a11yHelp}' + }, + { + name: 'Incolla come testo semplice', + legend: 'Premi ${pastetext}', + legendEdge: 'Premi ${pastetext}, seguito da ${paste}' } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Invio', - shift: 'Maiusc', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pausa', capslock: 'Bloc Maiusc', escape: 'Esc', pageUp: 'Pagina sù', pageDown: 'Pagina giù', - end: 'Fine', - home: 'Inizio', leftArrow: 'Freccia sinistra', upArrow: 'Freccia su', rightArrow: 'Freccia destra', downArrow: 'Freccia giù', insert: 'Ins', - 'delete': 'Canc', leftWindowKey: 'Tasto di Windows sinistro', rightWindowKey: 'Tasto di Windows destro', selectKey: 'Tasto di selezione', diff --git a/sources/plugins/a11yhelp/dialogs/lang/ja.js b/sources/plugins/a11yhelp/dialogs/lang/ja.js index 95f4e4d..b21d740 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/ja.js +++ b/sources/plugins/a11yhelp/dialogs/lang/ja.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -65,7 +65,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ja', { legend: '${link} をクリック' }, { - name: 'ツールバーを縮める', + name: 'ツールバーをたたむ', legend: '${toolbarCollapse} をクリック' }, { @@ -73,35 +73,32 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ja', { legend: '${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。' }, { - name: '次のカーソル移動のできないポイントへ', + name: '次のカーソルポイントへ移動する', legend: '${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。' }, { name: 'ユーザー補助ヘルプ', legend: '${a11yHelp} をクリック' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: '左矢印', upArrow: '上矢印', rightArrow: '右矢印', downArrow: '下矢印', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: '左Windowキー', rightWindowKey: '右のWindowキー', selectKey: 'Select', diff --git a/sources/plugins/a11yhelp/dialogs/lang/km.js b/sources/plugins/a11yhelp/dialogs/lang/km.js index 723a316..91018f5 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/km.js +++ b/sources/plugins/a11yhelp/dialogs/lang/km.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'km', { { name: 'ជំនួយ​ពី​ភាព​ងាយស្រួល', legend: 'ជួយ ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'លុបថយក្រោយ', tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'ផ្អាក', capslock: 'Caps Lock', // MISSING escape: 'ចាកចេញ', pageUp: 'ទំព័រ​លើ', pageDown: 'ទំព័រ​ក្រោម', - end: 'ចុង', - home: 'ផ្ទះ', leftArrow: 'ព្រួញ​ឆ្វេង', upArrow: 'ព្រួញ​លើ', rightArrow: 'ព្រួញ​ស្ដាំ', downArrow: 'ព្រួញ​ក្រោម', insert: 'បញ្ចូល', - 'delete': 'លុប', leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'ជ្រើស​គ្រាប់​ចុច', diff --git a/sources/plugins/a11yhelp/dialogs/lang/ko.js b/sources/plugins/a11yhelp/dialogs/lang/ko.js index 9191e13..78fc71c 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/ko.js +++ b/sources/plugins/a11yhelp/dialogs/lang/ko.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ko', { { name: ' 접근성 도움말', legend: '${a11yHelp} 누르시오' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace 키', tab: '탭 키', - enter: '엔터 키', - shift: '시프트 키', - ctrl: '컨트롤 키', - alt: '알트 키', pause: '일시정지 키', capslock: '캡스 록 키', escape: '이스케이프 키', pageUp: '페이지 업 키', pageDown: '페이지 다운 키', - end: '엔드 키', - home: '홈 키', leftArrow: '왼쪽 화살표 키', upArrow: '위쪽 화살표 키', rightArrow: '오른쪽 화살표 키', downArrow: '아래쪽 화살표 키', insert: '인서트 키', - 'delete': '삭제 키', leftWindowKey: '왼쪽 윈도우 키', rightWindowKey: '오른쪽 윈도우 키', selectKey: '셀렉트 키', diff --git a/sources/plugins/a11yhelp/dialogs/lang/ku.js b/sources/plugins/a11yhelp/dialogs/lang/ku.js index 93f77dc..d293c65 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/ku.js +++ b/sources/plugins/a11yhelp/dialogs/lang/ku.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ku', { { name: 'دەستپێگەیشتنی یارمەتی', legend: 'کلیك ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Left Arrow', upArrow: 'Up Arrow', rightArrow: 'Right Arrow', downArrow: 'Down Arrow', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'پەنجەرەی چەپ', rightWindowKey: 'پەنجەرەی ڕاست', selectKey: 'Select', diff --git a/sources/plugins/a11yhelp/dialogs/lang/lt.js b/sources/plugins/a11yhelp/dialogs/lang/lt.js index d1a21ac..b4095c4 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/lt.js +++ b/sources/plugins/a11yhelp/dialogs/lang/lt.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'lt', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/lv.js b/sources/plugins/a11yhelp/dialogs/lang/lv.js index ccd13b8..67d0d6e 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/lv.js +++ b/sources/plugins/a11yhelp/dialogs/lang/lv.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'lv', { { name: 'Pieejamības palīdzība', legend: 'Nospiediet ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/mk.js b/sources/plugins/a11yhelp/dialogs/lang/mk.js index 3dca6f7..bd24e38 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/mk.js +++ b/sources/plugins/a11yhelp/dialogs/lang/mk.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'mk', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Пауза', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Up', - end: 'End', - home: 'Home', leftArrow: 'Стрелка лево', upArrow: 'Стрелка горе', rightArrow: 'Стрелка десно', downArrow: 'Стрелка доле', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Лево Windows копче', rightWindowKey: 'Десно Windows копче', selectKey: 'Select копче', diff --git a/sources/plugins/a11yhelp/dialogs/lang/mn.js b/sources/plugins/a11yhelp/dialogs/lang/mn.js index 35ae7a7..3037312 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/mn.js +++ b/sources/plugins/a11yhelp/dialogs/lang/mn.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'mn', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/nb.js b/sources/plugins/a11yhelp/dialogs/lang/nb.js index f8a8774..dc49357 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/nb.js +++ b/sources/plugins/a11yhelp/dialogs/lang/nb.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'nb', { { name: 'Hjelp for tilgjengelighet', legend: 'Trykk ${a11yHelp}' + }, + { + name: 'Lim inn som ren tekst', + legend: 'Trykk ${pastetext}', + legendEdge: 'Trykk ${pastetext}, etterfulgt av ${past}' } ] } ], - backspace: 'Backspace', tab: 'Tabulator', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Venstre piltast', upArrow: 'Opp-piltast', rightArrow: 'Høyre piltast', downArrow: 'Ned-piltast', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Venstre Windows-tast', rightWindowKey: 'Høyre Windows-tast', selectKey: 'Velg nøkkel', diff --git a/sources/plugins/a11yhelp/dialogs/lang/nl.js b/sources/plugins/a11yhelp/dialogs/lang/nl.js index a123ba4..4ee8799 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/nl.js +++ b/sources/plugins/a11yhelp/dialogs/lang/nl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'nl', { { name: 'Dialoog tekstverwerker', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Bij dialoogvensters met meerdere tabbladen kan de tabset bereikt worden met ALT+F10 of met TAB als onderdeel van de tabvolgorde in het dialoogvenster. Als de tabset focus heeft, kun je schakalen naar het volgende en vorige tabblad met respectievelijk PIJL RECHTS en PIJL LINKS.' }, { @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'nl', { { name: 'Toegankelijkheidshulp', legend: 'Druk op ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Pijl naar links', upArrow: 'Pijl omhoog', rightArrow: 'Pijl naar rechts', downArrow: 'Pijl naar beneden', insert: 'Invoegen', - 'delete': 'Verwijderen', leftWindowKey: 'Linker Windows-toets', rightWindowKey: 'Rechter Windows-toets', selectKey: 'Selecteer toets', diff --git a/sources/plugins/a11yhelp/dialogs/lang/no.js b/sources/plugins/a11yhelp/dialogs/lang/no.js index 4fb1163..e015fc3 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/no.js +++ b/sources/plugins/a11yhelp/dialogs/lang/no.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'no', { { name: 'Hjelp for tilgjengelighet', legend: 'Trykk ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/oc.js b/sources/plugins/a11yhelp/dialogs/lang/oc.js new file mode 100644 index 0000000..fe313f4 --- /dev/null +++ b/sources/plugins/a11yhelp/dialogs/lang/oc.js @@ -0,0 +1,145 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'a11yhelp', 'oc', { + title: 'Instruccions d\'accessibilitat', + contents: 'Contengut de l\'ajuda. Per tampar aquesta fenèstra, quichatz sus la tòca Escap.', + legend: [ + { + name: 'General', + items: [ + { + name: 'Barra d\'aisinas de l\'editor', + legend: 'Quichar sus ${toolbarFocus} per accedir a la barra d\'aisinas. Se desplaçar cap al groupe seguent o precedent de la barra d\'aisinas amb las tòcas Tab e Maj+Tab. Se desplaçar cap al boton seguent o precedent de la barra d\'aisinas amb las tòcas Sageta dreita e Sageta esquèrra. Quichar sus la barra d\'espaci o la tòca Entrada per activer lo boton de barra d\'aisinas.' + }, + + { + name: 'Fenèstra de l\'editor', + legend: + 'Dins una bóstia de dialòg, quichar sus Tab per passar a l\'element seguent, quichar sus Maj+Tab per passar a l\'element precedent, quichar sus Entrada per validar, quichar sus Escap per anullar. Quand una bóstia de dialòg possedís des onglets, la lista pòt èsser atenta amb Alt+F10 o amb Tab. Dins la lista dels onglets, se desplaçar cap al seguent e lo precedent amb las tòcas Sageta dreita e Sageta esquèrra respectivament.' + }, + + { + name: 'Menú contextual de l\'editor', + legend: 'Quichar sus ${contextMenu} o sus la tòca Menú per dobrir lo menú contextual. Se desplaçar ensuite cap a l\'opcion seguenta del menú amb las tòcas Tab o Sageta bas. Se desplaçar cap a l\'opcion precedenta amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d\'espaci o la tòca Entrada per seleccionar l\'opcion del menu. Quichar sus la barra d\'espaci, la tòca Entrada o Sageta dreita per dobrir lo sosmenú de l\'opcion seleccionada. Tornar a l\'element de menú parent amb la tòca Escap o Sageta esquèrra. Tampar lo menú contextual amb Escap.' + }, + + { + name: 'Zòna de lista de l\'editor', + legend: 'Dins una lista en menú desenrotlant, se desplaçar cap a l\'element seguent de la lista amb las tòcas Tab o Sageta bas. Se desplaçar cap a l\'element precedent de la lista amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d\'espaci o sus Entrada per seleccionar l\'opcion dins la lista. Quichar sus Escap per tampar lo menú desenrotlant.' + }, + + { + name: 'Barra del camin d\'elements de l\'editor', + legend: 'Quichar sus ${elementsPathFocus} per naviguer cap a la barra del fial d\'Ariana dels elements. Se desplaçar cap al boton de l\'element seguent amb las tòcas Tab o Sageta dreita. Se desplaçar cap al boton precedent amb las tòcas Maj+Tab o Sageta esquèrra. Quichar sus la barra d\'espaci o sus Entrada per seleccionar l\'element dins l\'editor.' + } + ] + }, + { + name: 'Comandas', + items: [ + { + name: 'Anullar la comanda', + legend: 'Quichar sus ${undo}' + }, + { + name: 'Comanda restablir', + legend: 'Quichar sus ${redo}' + }, + { + name: ' Comanda gras', + legend: 'Quichar sus ${bold}' + }, + { + name: ' Comanda italica', + legend: 'Quichar sus ${italic}' + }, + { + name: ' Comanda solinhat', + legend: 'Quichar sus ${underline}' + }, + { + name: ' Comanda ligam', + legend: 'Quichar sus ${link}' + }, + { + name: 'Comanda enrotlar la barra d\'aisinas', + legend: 'Quichar sus ${toolbarCollapse}' + }, + { + name: 'Comanda d\'accès a l\'element seleccionable precedent', + legend: 'Quichar sus ${accessNextSpace} per accedir a l\'element seleccionable inategnible lo mai pròche abans lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables precedents.' + }, + { + name: 'Comanda d\'accès a l\'element seleccionable seguent', + legend: 'Quichar sus ${accessNextSpace} per accedir a l\'element seleccionable inatenhible lo mai pròche aprèp lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables seguents.' + }, + { + name: ' Ajuda sus l\'accessibilitat', + legend: 'Quichar sus ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING + } + ] + } + ], + tab: 'Tabulacion', + pause: 'Pausa', + capslock: 'Verr. Maj.', + escape: 'Escap', + pageUp: 'Pagina superiora', + pageDown: 'Pagina seguenta', + leftArrow: 'Sageta esquèrra', + upArrow: 'Sageta naut', + rightArrow: 'Sageta dreita', + downArrow: 'Sageta bassa', + insert: 'Inser', + leftWindowKey: 'Tòca Windows esquèrra', + rightWindowKey: 'Tòca Windows dreita', + selectKey: 'Tòca Seleccionar', + numpad0: '0 del pavat numeric', + numpad1: '1 del pavat numeric', + numpad2: '2 del pavat numeric', + numpad3: '3 del pavat numeric', + numpad4: '4 del pavat numeric', + numpad5: '5 del pavat numeric', + numpad6: '6 del pavat numeric', + numpad7: '7 del pavat numeric', + numpad8: 'Pavat numeric 8', + numpad9: '9 del pavat numeric', + multiply: 'Multiplicar', + add: 'Plus', + subtract: 'Mens', + decimalPoint: 'Punt decimal', + divide: 'Devesir', + f1: 'F1', + f2: 'F2', + f3: 'F3', + f4: 'F4', + f5: 'F5', + f6: 'F6', + f7: 'F7', + f8: 'F8', + f9: 'F9', + f10: 'F10', + f11: 'F11', + f12: 'F12', + numLock: 'Verr. Num.', + scrollLock: 'Arrèst desfil.', + semiColon: 'Punt-virgula', + equalSign: 'Signe egal', + comma: 'Virgula', + dash: 'Jonhent', + period: 'Punt', + forwardSlash: 'Barra oblica', + graveAccent: 'Accent grèu', + openBracket: 'Parentèsi dobèrta', + backSlash: 'Barra oblica invèrsa', + closeBracket: 'Parentèsi tampanta', + singleQuote: 'Apostròfa' +} ); diff --git a/sources/plugins/a11yhelp/dialogs/lang/pl.js b/sources/plugins/a11yhelp/dialogs/lang/pl.js index 1e270f5..23801fa 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/pl.js +++ b/sources/plugins/a11yhelp/dialogs/lang/pl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -69,39 +69,36 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pl', { legend: 'Naciśnij ${toolbarCollapse}' }, { - name: ' Access previous focus space command', // MISSING - legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING + name: 'Przejdź do poprzedniego miejsca, w którym można ustawić focus', + legend: 'Naciśnij ${accessPreviousSpace}, aby przejść do najbliższego niedostępnego miejsca przed kursorem, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc.' }, { - name: ' Access next focus space command', // MISSING - legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING + name: 'Przejdź do następnego miejsca, w którym można ustawić focus', + legend: 'Naciśnij ${accessNextSpace}, aby przejść do najbliższego niedostępnego miejsca po kursorze, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc.' }, { name: 'Pomoc dotycząca dostępności', legend: 'Naciśnij ${a11yHelp}' + }, + { + name: 'Wklej jako tekst', + legend: 'Naciśnij ${pastetext}', + legendEdge: 'Naciśnij ${pastetext}, a następnie ${paste}' } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Strzałka w lewo', upArrow: 'Strzałka w górę', rightArrow: 'Strzałka w prawo', downArrow: 'Strzałka w dół', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Lewy klawisz Windows', rightWindowKey: 'Prawy klawisz Windows', selectKey: 'Klawisz wyboru', diff --git a/sources/plugins/a11yhelp/dialogs/lang/pt-br.js b/sources/plugins/a11yhelp/dialogs/lang/pt-br.js index c499a57..b233f2e 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/pt-br.js +++ b/sources/plugins/a11yhelp/dialogs/lang/pt-br.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt-br', { { name: ' Ajuda de Acessibilidade', legend: 'Pressione ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Tecla Backspace', tab: 'Tecla Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Seta à Esquerda', upArrow: 'Seta à Cima', rightArrow: 'Seta à Direita', downArrow: 'Seta à Baixo', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Tecla do Windows Esquerda', rightWindowKey: 'Tecla do Windows Direita', selectKey: 'Tecla Selecionar', diff --git a/sources/plugins/a11yhelp/dialogs/lang/pt.js b/sources/plugins/a11yhelp/dialogs/lang/pt.js index 2566f5b..cc02ae2 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/pt.js +++ b/sources/plugins/a11yhelp/dialogs/lang/pt.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -12,28 +12,28 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', { items: [ { name: 'Barra de ferramentas do editor', - legend: 'Clique em ${toolbarFocus} para navegar para a barra de ferramentas. Vá para o grupo da barra de ferramentas anterior e seguinte com TAB e SHIFT+TAB. Vá para o botão da barra de ferramentas anterior com a SETA DIREITA ou ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.' + legend: 'Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.' }, { - name: 'Janela do Editor', + name: 'Janela do editor', legend: 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING }, { - name: 'Menu de Contexto do Editor', - legend: 'Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC.' + name: 'Menu de contexto do editor', + legend: 'Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. Vá para o item do menu contentor com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC.' }, { name: 'Editor de caixa em lista', - legend: 'Dentro da caixa da lista, vá para o itemda lista seguinte com TAB ou SETA PARA BAIXO. Move Vá parao item da lista anterior com SHIFT+TAB ou SETA PARA BAIXO. Pressione ESPAÇO ou ENTER para selecionar a opção da lista. Pressione ESC para fechar a caisa da lista.' + legend: 'Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista.' }, { - name: 'Caminho Barra Elemento Editor', - legend: 'Clique em ${elementsPathFocus} para navegar para a barra do caminho dos elementos. Vá para o botão do elemento seguinte com TAB ou SETA DIREITA. Vá para o botão anterior com SHIFT+TAB ou SETA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor.' + name: 'Editor da barra de caminho dos elementos', + legend: 'Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor.' } ] }, @@ -41,35 +41,35 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', { name: 'Comandos', items: [ { - name: 'Comando de Anular', + name: 'Comando de anular', legend: 'Carregar ${undo}' }, { - name: 'Comando de Refazer', - legend: 'Pressione ${redo}' + name: 'Comando de refazer', + legend: 'Clique ${redo}' }, { - name: 'Comando de Negrito', + name: 'Comando de negrito', legend: 'Pressione ${bold}' }, { - name: 'Comando de Itálico', + name: 'Comando de itálico', legend: 'Pressione ${italic}' }, { - name: 'Comando de Sublinhado', + name: 'Comando de sublinhado', legend: 'Pressione ${underline}' }, { - name: 'Comando de Hiperligação', + name: 'Comando de hiperligação', legend: 'Pressione ${link}' }, { - name: 'Comando de Ocultar Barra de Ferramentas', + name: 'Comando de ocultar barra de ferramentas', legend: 'Pressione ${toolbarCollapse}' }, { - name: 'Acesso comando do espaço focus anterior', + name: 'Aceder ao comando espaço de foco anterior', legend: 'Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes.' }, { @@ -79,32 +79,29 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', { { name: 'Ajuda a acessibilidade', legend: 'Pressione ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING - tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', + tab: 'Separador', pause: 'Pausa', capslock: 'Maiúsculas', escape: 'Esc', - pageUp: 'Page Up', // MISSING - pageDown: 'Page Down', // MISSING - end: 'Fim', - home: 'Entrada', + pageUp: 'Subir página', + pageDown: 'Descer página', leftArrow: 'Seta esquerda', upArrow: 'Seta para cima', rightArrow: 'Seta direita', downArrow: 'Seta para baixo', insert: 'Inserir', - 'delete': 'Eliminar', - leftWindowKey: 'Left Windows key', // MISSING - rightWindowKey: 'Right Windows key', // MISSING - selectKey: 'Select key', // MISSING + leftWindowKey: 'Tecla esquerda Windows', + rightWindowKey: 'Tecla direita Windows', + selectKey: 'Selecionar tecla', numpad0: 'Numpad 0', // MISSING numpad1: 'Numpad 1', // MISSING numpad2: 'Numpad 2', // MISSING @@ -118,8 +115,8 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', { multiply: 'Multiplicar', add: 'Adicionar', subtract: 'Subtrair', - decimalPoint: 'Decimal Point', // MISSING - divide: 'Divide', // MISSING + decimalPoint: 'Ponto decimal', + divide: 'Separar', f1: 'F1', f2: 'F2', f3: 'F3', @@ -134,15 +131,15 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', { f12: 'F12', numLock: 'Num Lock', // MISSING scrollLock: 'Scroll Lock', // MISSING - semiColon: 'Semicolon', // MISSING - equalSign: 'Equal Sign', // MISSING + semiColon: 'Ponto e vírgula', + equalSign: 'Sinald e igual', comma: 'Vírgula', - dash: 'Dash', // MISSING - period: 'Period', // MISSING + dash: 'Cardinal', + period: 'Ponto', forwardSlash: 'Forward Slash', // MISSING graveAccent: 'Acento grave', openBracket: 'Open Bracket', // MISSING backSlash: 'Backslash', // MISSING closeBracket: 'Close Bracket', // MISSING - singleQuote: 'Single Quote' // MISSING + singleQuote: 'Plica' } ); diff --git a/sources/plugins/a11yhelp/dialogs/lang/ro.js b/sources/plugins/a11yhelp/dialogs/lang/ro.js index c787177..11177ba 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/ro.js +++ b/sources/plugins/a11yhelp/dialogs/lang/ro.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ro', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/ru.js b/sources/plugins/a11yhelp/dialogs/lang/ru.js index 23bb13d..852a17f 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/ru.js +++ b/sources/plugins/a11yhelp/dialogs/lang/ru.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ru', { { name: 'Справка по горячим клавишам', legend: 'Нажмите ${a11yHelp}' + }, + { + name: 'Вставить только текст', + legend: 'Нажмите ${pastetext}', + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Esc', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Стрелка влево', upArrow: 'Стрелка вверх', rightArrow: 'Стрелка вправо', downArrow: 'Стрелка вниз', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Левая клавиша Windows', rightWindowKey: 'Правая клавиша Windows', selectKey: 'Выбрать', diff --git a/sources/plugins/a11yhelp/dialogs/lang/si.js b/sources/plugins/a11yhelp/dialogs/lang/si.js index e855192..ce72579 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/si.js +++ b/sources/plugins/a11yhelp/dialogs/lang/si.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'si', { { name: 'ප්‍රවේශ ', legend: 'ඔබන්න ${a11y }' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/sk.js b/sources/plugins/a11yhelp/dialogs/lang/sk.js index ee91403..3800f14 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/sk.js +++ b/sources/plugins/a11yhelp/dialogs/lang/sk.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sk', { { name: 'Editorový dialóg', legend: - 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING + 'V dialógovom okne stlačte TAB pre presun na ďalší prvok, SHIFT+TAB pre presun na predchádzajúci prvok, ENTER pre odoslanie, ESC pre zrušenie. Keď má dialógové okno viacero kariet, zoznam kariet dosiahnete buď stlačením ALT+F10 alebo s TAB v príslušnom poradí kariet. So zameraným zoznamom kariet sa pohybujte k ďalšej alebo predchádzajúcej karte cez PRAVÚ a ĽAVÚ ŠÍPKU.' }, { @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sk', { { name: 'Pomoc prístupnosti', legend: 'Stlačte ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Stránka hore', pageDown: 'Stránka dole', - end: 'End', - home: 'Home', leftArrow: 'Šípka naľavo', upArrow: 'Šípka hore', rightArrow: 'Šípka napravo', downArrow: 'Šípka dole', insert: 'Insert', - 'delete': 'Delete', leftWindowKey: 'Ľavé Windows tlačidlo', rightWindowKey: 'Pravé Windows tlačidlo', selectKey: 'Tlačidlo Select', diff --git a/sources/plugins/a11yhelp/dialogs/lang/sl.js b/sources/plugins/a11yhelp/dialogs/lang/sl.js index 7cb12f6..779b410 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/sl.js +++ b/sources/plugins/a11yhelp/dialogs/lang/sl.js @@ -1,17 +1,17 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', { - title: 'Navodila Dostopnosti', - contents: 'Vsebina Pomoči. Če želite zapreti to pogovorno okno pritisnite ESC.', + title: 'Navodila za dostopnost', + contents: 'Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.', legend: [ { name: 'Splošno', items: [ { - name: 'Urejevalna Orodna Vrstica', + name: 'Orodna vrstica urejevalnika', legend: 'Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice.' }, @@ -22,7 +22,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', { }, { - name: 'Urejevalni Kontekstni Meni', + name: 'Kontekstni meni urejevalnika', legend: 'Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC.' }, @@ -77,33 +77,30 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', { legend: 'Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore.' }, { - name: 'Pomoč Dostopnosti', + name: 'Pomoč dostopnosti', legend: 'Pritisnite ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', - leftArrow: 'Levo puščica', - upArrow: 'Gor puščica', - rightArrow: 'Desno puščica', - downArrow: 'Dol puščica', + leftArrow: 'Puščica levo', + upArrow: 'Puščica gor', + rightArrow: 'Puščica desno', + downArrow: 'Puščica dol', insert: 'Insert', - 'delete': 'Delete', - leftWindowKey: 'Leva Windows tipka', - rightWindowKey: 'Desna Windows tipka', + leftWindowKey: 'Leva tipka Windows', + rightWindowKey: 'Desna tipka Windows', selectKey: 'Select tipka', numpad0: 'Numpad 0', numpad1: 'Numpad 1', @@ -135,7 +132,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', { numLock: 'Num Lock', scrollLock: 'Scroll Lock', semiColon: 'Podpičje', - equalSign: 'enačaj', + equalSign: 'Enačaj', comma: 'Vejica', dash: 'Vezaj', period: 'Pika', @@ -143,6 +140,6 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', { graveAccent: 'Krativec', openBracket: 'Oklepaj', backSlash: 'Leva poševnica', - closeBracket: 'Oklepaj', + closeBracket: 'Zaklepaj', singleQuote: 'Opuščaj' } ); diff --git a/sources/plugins/a11yhelp/dialogs/lang/sq.js b/sources/plugins/a11yhelp/dialogs/lang/sq.js index c308122..6283fee 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/sq.js +++ b/sources/plugins/a11yhelp/dialogs/lang/sq.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sq', { { name: 'Ndihmë Qasjeje', legend: 'Shtyp ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Prapa', tab: 'Fletë', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Shenja majtas', upArrow: 'Shenja sipër', rightArrow: 'Shenja djathtas', downArrow: 'Shenja poshtë', insert: 'Shto', - 'delete': 'Grise', leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/sr-latn.js b/sources/plugins/a11yhelp/dialogs/lang/sr-latn.js index b70e635..f8caf01 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/sr-latn.js +++ b/sources/plugins/a11yhelp/dialogs/lang/sr-latn.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sr-latn', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/sr.js b/sources/plugins/a11yhelp/dialogs/lang/sr.js index fb07f86..0ef0222 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/sr.js +++ b/sources/plugins/a11yhelp/dialogs/lang/sr.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sr', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/sv.js b/sources/plugins/a11yhelp/dialogs/lang/sv.js index 4200c9f..867beda 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/sv.js +++ b/sources/plugins/a11yhelp/dialogs/lang/sv.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sv', { { name: 'Hjälp om tillgänglighet', legend: 'Tryck ${a11yHelp}' + }, + { + name: 'Klistra in som vanlig text', + legend: 'Tryck ${pastetext}', + legendEdge: 'Tryck ${pastetext}, följt av ${paste}' } ] } ], - backspace: 'Backsteg', tab: 'Tab', - enter: 'Retur', - shift: 'Skift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Paus', capslock: 'Caps lock', escape: 'Escape', pageUp: 'Sida Up', pageDown: 'Sida Ned', - end: 'Slut', - home: 'Hem', leftArrow: 'Vänsterpil', upArrow: 'Uppil', rightArrow: 'Högerpil', downArrow: 'Nedåtpil', insert: 'Infoga', - 'delete': 'Radera', leftWindowKey: 'Vänster Windowstangent', rightWindowKey: 'Höger Windowstangent', selectKey: 'Välj tangent', diff --git a/sources/plugins/a11yhelp/dialogs/lang/th.js b/sources/plugins/a11yhelp/dialogs/lang/th.js index 00c96d1..5da604f 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/th.js +++ b/sources/plugins/a11yhelp/dialogs/lang/th.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'th', { { name: ' Accessibility Help', // MISSING legend: 'Press ${a11yHelp}' // MISSING + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', // MISSING tab: 'Tab', // MISSING - enter: 'Enter', // MISSING - shift: 'Shift', // MISSING - ctrl: 'Ctrl', // MISSING - alt: 'Alt', // MISSING pause: 'Pause', // MISSING capslock: 'Caps Lock', // MISSING escape: 'Escape', // MISSING pageUp: 'Page Up', // MISSING pageDown: 'Page Down', // MISSING - end: 'End', // MISSING - home: 'Home', // MISSING leftArrow: 'Left Arrow', // MISSING upArrow: 'Up Arrow', // MISSING rightArrow: 'Right Arrow', // MISSING downArrow: 'Down Arrow', // MISSING insert: 'Insert', // MISSING - 'delete': 'Delete', // MISSING leftWindowKey: 'Left Windows key', // MISSING rightWindowKey: 'Right Windows key', // MISSING selectKey: 'Select key', // MISSING diff --git a/sources/plugins/a11yhelp/dialogs/lang/tr.js b/sources/plugins/a11yhelp/dialogs/lang/tr.js index 425f21d..86b4c97 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/tr.js +++ b/sources/plugins/a11yhelp/dialogs/lang/tr.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'tr', { { name: 'Erişilebilirlik Yardımı', legend: '${a11yHelp}\'e basın' + }, + { + name: 'Düz Metin Olarak Yapıştır', + legend: '${pastetext} basın', + legendEdge: 'Önce ${pastetext} ardından${paste} basın' } ] } ], - backspace: 'Silme', tab: 'Sekme tuşu', - enter: 'Gir tuşu', - shift: '"Shift" Kaydırma tuşu', - ctrl: '"Ctrl" Kontrol tuşu', - alt: '"Alt" Anahtar tuşu', pause: 'Durdurma tuşu', capslock: 'Büyük harf tuşu', escape: 'Vazgeç tuşu', pageUp: 'Sayfa Yukarı', pageDown: 'Sayfa Aşağı', - end: 'Sona', - home: 'En başa', leftArrow: 'Sol ok', upArrow: 'Yukarı ok', rightArrow: 'Sağ ok', downArrow: 'Aşağı ok', insert: 'Araya gir', - 'delete': 'Silme', leftWindowKey: 'Sol windows tuşu', rightWindowKey: 'Sağ windows tuşu', selectKey: 'Seçme tuşu', diff --git a/sources/plugins/a11yhelp/dialogs/lang/tt.js b/sources/plugins/a11yhelp/dialogs/lang/tt.js index 1ce78fa..e73f5dd 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/tt.js +++ b/sources/plugins/a11yhelp/dialogs/lang/tt.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'tt', { { name: ' Accessibility Help', // MISSING legend: '${a11yHelp} басыгыз' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Кайтару', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Тыныш', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Сул якка ук', upArrow: 'Өскә таба ук', rightArrow: 'Уң якка ук', downArrow: 'Аска таба ук', insert: 'Өстәү', - 'delete': 'Бетерү', leftWindowKey: 'Сул Windows төймəсе', rightWindowKey: 'Уң Windows төймəсе', selectKey: 'Select төймəсе', diff --git a/sources/plugins/a11yhelp/dialogs/lang/ug.js b/sources/plugins/a11yhelp/dialogs/lang/ug.js index 0dd4d25..4768c55 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/ug.js +++ b/sources/plugins/a11yhelp/dialogs/lang/ug.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ug', { { name: 'توسالغۇسىز لايىھە چۈشەندۈرۈشى', legend: '${a11yHelp} نى بېسىڭ' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Escape', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'سول يا ئوق', upArrow: 'ئۈستى يا ئوق', rightArrow: 'ئوڭ يا ئوق', downArrow: 'ئاستى يا ئوق', insert: 'قىستۇر', - 'delete': 'ئۆچۈر', leftWindowKey: 'سول Windows كۇنۇپكىسى', rightWindowKey: 'ئوڭ Windows كۇنۇپكىسى', selectKey: 'تاللاش كۇنۇپكىسى', diff --git a/sources/plugins/a11yhelp/dialogs/lang/uk.js b/sources/plugins/a11yhelp/dialogs/lang/uk.js index ce5ff60..99a7002 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/uk.js +++ b/sources/plugins/a11yhelp/dialogs/lang/uk.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'uk', { { name: 'Допомога з доступності', legend: 'Натисніть ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Backspace', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Esc', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: 'Ліва стрілка', upArrow: 'Стрілка вгору', rightArrow: 'Права стрілка', downArrow: 'Стрілка вниз', insert: 'Вставити', - 'delete': 'Видалити', leftWindowKey: 'Ліва клавіша Windows', rightWindowKey: 'Права клавіша Windows', selectKey: 'Виберіть клавішу', diff --git a/sources/plugins/a11yhelp/dialogs/lang/vi.js b/sources/plugins/a11yhelp/dialogs/lang/vi.js index c985471..b8c9fe9 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/vi.js +++ b/sources/plugins/a11yhelp/dialogs/lang/vi.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'vi', { { name: 'Trợ giúp liên quan', legend: 'Nhấn ${a11yHelp}' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: 'Phím Backspace', tab: 'Phím Tab', - enter: 'Phím Tab', - shift: 'Phím Shift', - ctrl: 'Phím Ctrl', - alt: 'Phím Alt', pause: 'Phím Pause', capslock: 'Phím Caps Lock', escape: 'Phím Escape', pageUp: 'Phím Page Up', pageDown: 'Phím Page Down', - end: 'Phím End', - home: 'Phím Home', leftArrow: 'Phím Left Arrow', upArrow: 'Phím Up Arrow', rightArrow: 'Phím Right Arrow', downArrow: 'Phím Down Arrow', insert: 'Chèn', - 'delete': 'Xóa', leftWindowKey: 'Phím Left Windows', rightWindowKey: 'Phím Right Windows ', selectKey: 'Chọn phím', diff --git a/sources/plugins/a11yhelp/dialogs/lang/zh-cn.js b/sources/plugins/a11yhelp/dialogs/lang/zh-cn.js index 553f56c..0ce61d2 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/zh-cn.js +++ b/sources/plugins/a11yhelp/dialogs/lang/zh-cn.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'zh-cn', { { name: '辅助功能帮助', legend: '按 ${a11yHelp}' + }, + { + name: '粘贴为纯文本', + legend: '按 ${pastetext}', + legendEdge: '按 ${pastetext},然后再按 ${paste}' } ] } ], - backspace: '退格键', tab: 'Tab 键', - enter: '回车键', - shift: 'Shift 键', - ctrl: 'Ctrl 键', - alt: 'Alt 键', pause: '暂停键', capslock: '大写锁定键', escape: 'Esc 键', pageUp: '上翻页键', pageDown: '下翻页键', - end: '行尾键', - home: '行首键', leftArrow: '向左箭头键', upArrow: '向上箭头键', rightArrow: '向右箭头键', downArrow: '向下箭头键', insert: '插入键', - 'delete': '删除键', leftWindowKey: '左 WIN 键', rightWindowKey: '右 WIN 键', selectKey: '选择键', diff --git a/sources/plugins/a11yhelp/dialogs/lang/zh.js b/sources/plugins/a11yhelp/dialogs/lang/zh.js index 69b61d9..2e35e1d 100644 --- a/sources/plugins/a11yhelp/dialogs/lang/zh.js +++ b/sources/plugins/a11yhelp/dialogs/lang/zh.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'zh', { { name: '協助工具說明', legend: '請按下「${a11yHelp}」' + }, + { + name: ' Paste as plain text', // MISSING + legend: 'Press ${pastetext}', // MISSING + legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING } ] } ], - backspace: '退格鍵', tab: 'Tab', - enter: 'Enter', - shift: 'Shift', - ctrl: 'Ctrl', - alt: 'Alt', pause: 'Pause', capslock: 'Caps Lock', escape: 'Esc', pageUp: 'Page Up', pageDown: 'Page Down', - end: 'End', - home: 'Home', leftArrow: '向左箭號', upArrow: '向上鍵號', rightArrow: '向右鍵號', downArrow: '向下鍵號', insert: '插入', - 'delete': '刪除', leftWindowKey: '左方 Windows 鍵', rightWindowKey: '右方 Windows 鍵', selectKey: '選擇鍵', diff --git a/sources/plugins/a11yhelp/plugin.js b/sources/plugins/a11yhelp/plugin.js index 86b19fe..65da25e 100644 --- a/sources/plugins/a11yhelp/plugin.js +++ b/sources/plugins/a11yhelp/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -17,7 +17,7 @@ // List of available localizations. // jscs:disable - availableLangs: { af:1,ar:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,'de-ch':1,el:1,en:1,'en-gb':1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,'fr-ca':1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,'pt-br':1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,'sr-latn':1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,'zh-cn':1 }, + availableLangs: { af:1,ar:1,az:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,'de-ch':1,el:1,en:1,'en-gb':1,eo:1,es:1,'es-mx':1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,'fr-ca':1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,'pt-br':1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,'sr-latn':1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,'zh-cn':1 }, // jscs:enable init: function( editor ) { diff --git a/sources/plugins/basicstyles/icons/bold.png b/sources/plugins/basicstyles/icons/bold.png index 5ff84fe..d714916 100644 Binary files a/sources/plugins/basicstyles/icons/bold.png and b/sources/plugins/basicstyles/icons/bold.png differ diff --git a/sources/plugins/basicstyles/icons/hidpi/bold.png b/sources/plugins/basicstyles/icons/hidpi/bold.png index 65acb29..2de207d 100644 Binary files a/sources/plugins/basicstyles/icons/hidpi/bold.png and b/sources/plugins/basicstyles/icons/hidpi/bold.png differ diff --git a/sources/plugins/basicstyles/icons/hidpi/italic.png b/sources/plugins/basicstyles/icons/hidpi/italic.png index 2b0f44e..2c2dae4 100644 Binary files a/sources/plugins/basicstyles/icons/hidpi/italic.png and b/sources/plugins/basicstyles/icons/hidpi/italic.png differ diff --git a/sources/plugins/basicstyles/icons/hidpi/strike.png b/sources/plugins/basicstyles/icons/hidpi/strike.png index ef045c8..19c5e22 100644 Binary files a/sources/plugins/basicstyles/icons/hidpi/strike.png and b/sources/plugins/basicstyles/icons/hidpi/strike.png differ diff --git a/sources/plugins/basicstyles/icons/hidpi/subscript.png b/sources/plugins/basicstyles/icons/hidpi/subscript.png index f12f4be..585d59b 100644 Binary files a/sources/plugins/basicstyles/icons/hidpi/subscript.png and b/sources/plugins/basicstyles/icons/hidpi/subscript.png differ diff --git a/sources/plugins/basicstyles/icons/hidpi/superscript.png b/sources/plugins/basicstyles/icons/hidpi/superscript.png index 4f7b762..9daa12a 100644 Binary files a/sources/plugins/basicstyles/icons/hidpi/superscript.png and b/sources/plugins/basicstyles/icons/hidpi/superscript.png differ diff --git a/sources/plugins/basicstyles/icons/hidpi/underline.png b/sources/plugins/basicstyles/icons/hidpi/underline.png index 79702f6..6653814 100644 Binary files a/sources/plugins/basicstyles/icons/hidpi/underline.png and b/sources/plugins/basicstyles/icons/hidpi/underline.png differ diff --git a/sources/plugins/basicstyles/icons/italic.png b/sources/plugins/basicstyles/icons/italic.png index 64d1332..5f8aaae 100644 Binary files a/sources/plugins/basicstyles/icons/italic.png and b/sources/plugins/basicstyles/icons/italic.png differ diff --git a/sources/plugins/basicstyles/icons/strike.png b/sources/plugins/basicstyles/icons/strike.png index 31ea47a..5842b7a 100644 Binary files a/sources/plugins/basicstyles/icons/strike.png and b/sources/plugins/basicstyles/icons/strike.png differ diff --git a/sources/plugins/basicstyles/icons/subscript.png b/sources/plugins/basicstyles/icons/subscript.png index bfe5420..db11f78 100644 Binary files a/sources/plugins/basicstyles/icons/subscript.png and b/sources/plugins/basicstyles/icons/subscript.png differ diff --git a/sources/plugins/basicstyles/icons/superscript.png b/sources/plugins/basicstyles/icons/superscript.png index a1eb2f1..3df28d2 100644 Binary files a/sources/plugins/basicstyles/icons/superscript.png and b/sources/plugins/basicstyles/icons/superscript.png differ diff --git a/sources/plugins/basicstyles/icons/underline.png b/sources/plugins/basicstyles/icons/underline.png index 1dd0c59..160be92 100644 Binary files a/sources/plugins/basicstyles/icons/underline.png and b/sources/plugins/basicstyles/icons/underline.png differ diff --git a/sources/plugins/basicstyles/lang/af.js b/sources/plugins/basicstyles/lang/af.js index 3fbcb9c..bcceb14 100644 --- a/sources/plugins/basicstyles/lang/af.js +++ b/sources/plugins/basicstyles/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'af', { diff --git a/sources/plugins/basicstyles/lang/ar.js b/sources/plugins/basicstyles/lang/ar.js index 8ed2b07..fb4adc6 100644 --- a/sources/plugins/basicstyles/lang/ar.js +++ b/sources/plugins/basicstyles/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ar', { diff --git a/sources/plugins/basicstyles/lang/az.js b/sources/plugins/basicstyles/lang/az.js new file mode 100644 index 0000000..097a1ec --- /dev/null +++ b/sources/plugins/basicstyles/lang/az.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'basicstyles', 'az', { + bold: 'Qalın', + italic: 'Kursiv', + strike: 'Üstüxətli', + subscript: 'Aşağı indeks', + superscript: 'Yuxarı indeks', + underline: 'Altdan xətt' +} ); diff --git a/sources/plugins/basicstyles/lang/bg.js b/sources/plugins/basicstyles/lang/bg.js index e410766..56f6f7d 100644 --- a/sources/plugins/basicstyles/lang/bg.js +++ b/sources/plugins/basicstyles/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'bg', { diff --git a/sources/plugins/basicstyles/lang/bn.js b/sources/plugins/basicstyles/lang/bn.js index 007520b..fd790a4 100644 --- a/sources/plugins/basicstyles/lang/bn.js +++ b/sources/plugins/basicstyles/lang/bn.js @@ -1,10 +1,10 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'bn', { bold: 'বোল্ড', - italic: 'ইটালিক', + italic: 'বাঁকা', strike: 'স্ট্রাইক থ্রু', subscript: 'অধোলেখ', superscript: 'অভিলেখ', diff --git a/sources/plugins/basicstyles/lang/bs.js b/sources/plugins/basicstyles/lang/bs.js index 9484a8d..9188f98 100644 --- a/sources/plugins/basicstyles/lang/bs.js +++ b/sources/plugins/basicstyles/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'bs', { diff --git a/sources/plugins/basicstyles/lang/ca.js b/sources/plugins/basicstyles/lang/ca.js index 7d3cc03..2924d1e 100644 --- a/sources/plugins/basicstyles/lang/ca.js +++ b/sources/plugins/basicstyles/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ca', { diff --git a/sources/plugins/basicstyles/lang/cs.js b/sources/plugins/basicstyles/lang/cs.js index 5322b5a..737c648 100644 --- a/sources/plugins/basicstyles/lang/cs.js +++ b/sources/plugins/basicstyles/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'cs', { diff --git a/sources/plugins/basicstyles/lang/cy.js b/sources/plugins/basicstyles/lang/cy.js index 4a207e8..3acb736 100644 --- a/sources/plugins/basicstyles/lang/cy.js +++ b/sources/plugins/basicstyles/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'cy', { diff --git a/sources/plugins/basicstyles/lang/da.js b/sources/plugins/basicstyles/lang/da.js index d1b1050..0b1f3e8 100644 --- a/sources/plugins/basicstyles/lang/da.js +++ b/sources/plugins/basicstyles/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'da', { diff --git a/sources/plugins/basicstyles/lang/de-ch.js b/sources/plugins/basicstyles/lang/de-ch.js index 21ade9f..2370c04 100644 --- a/sources/plugins/basicstyles/lang/de-ch.js +++ b/sources/plugins/basicstyles/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'de-ch', { diff --git a/sources/plugins/basicstyles/lang/de.js b/sources/plugins/basicstyles/lang/de.js index 5c67cd9..fbc92e4 100644 --- a/sources/plugins/basicstyles/lang/de.js +++ b/sources/plugins/basicstyles/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'de', { diff --git a/sources/plugins/basicstyles/lang/el.js b/sources/plugins/basicstyles/lang/el.js index 899b794..2c72cda 100644 --- a/sources/plugins/basicstyles/lang/el.js +++ b/sources/plugins/basicstyles/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'el', { diff --git a/sources/plugins/basicstyles/lang/en-au.js b/sources/plugins/basicstyles/lang/en-au.js index 4c80293..6b9dc7e 100644 --- a/sources/plugins/basicstyles/lang/en-au.js +++ b/sources/plugins/basicstyles/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'en-au', { diff --git a/sources/plugins/basicstyles/lang/en-ca.js b/sources/plugins/basicstyles/lang/en-ca.js index e85611a..612b2b8 100644 --- a/sources/plugins/basicstyles/lang/en-ca.js +++ b/sources/plugins/basicstyles/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'en-ca', { diff --git a/sources/plugins/basicstyles/lang/en-gb.js b/sources/plugins/basicstyles/lang/en-gb.js index b2cd62c..418058e 100644 --- a/sources/plugins/basicstyles/lang/en-gb.js +++ b/sources/plugins/basicstyles/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'en-gb', { diff --git a/sources/plugins/basicstyles/lang/en.js b/sources/plugins/basicstyles/lang/en.js index 7284189..3c9bc32 100644 --- a/sources/plugins/basicstyles/lang/en.js +++ b/sources/plugins/basicstyles/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'en', { diff --git a/sources/plugins/basicstyles/lang/eo.js b/sources/plugins/basicstyles/lang/eo.js index 0fef072..995f0c3 100644 --- a/sources/plugins/basicstyles/lang/eo.js +++ b/sources/plugins/basicstyles/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'eo', { diff --git a/sources/plugins/basicstyles/lang/es-mx.js b/sources/plugins/basicstyles/lang/es-mx.js new file mode 100644 index 0000000..a57ba4b --- /dev/null +++ b/sources/plugins/basicstyles/lang/es-mx.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'basicstyles', 'es-mx', { + bold: 'Negrita', + italic: 'Cursiva', + strike: 'Tachado', + subscript: 'subíndice', + superscript: 'Sobrescrito', + underline: 'Subrayada' +} ); diff --git a/sources/plugins/basicstyles/lang/es.js b/sources/plugins/basicstyles/lang/es.js index b44dbf7..baaf99f 100644 --- a/sources/plugins/basicstyles/lang/es.js +++ b/sources/plugins/basicstyles/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'es', { diff --git a/sources/plugins/basicstyles/lang/et.js b/sources/plugins/basicstyles/lang/et.js index 18d1a04..8dee05e 100644 --- a/sources/plugins/basicstyles/lang/et.js +++ b/sources/plugins/basicstyles/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'et', { diff --git a/sources/plugins/basicstyles/lang/eu.js b/sources/plugins/basicstyles/lang/eu.js index 97f4075..7017540 100644 --- a/sources/plugins/basicstyles/lang/eu.js +++ b/sources/plugins/basicstyles/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'eu', { diff --git a/sources/plugins/basicstyles/lang/fa.js b/sources/plugins/basicstyles/lang/fa.js index 21cea30..49343fb 100644 --- a/sources/plugins/basicstyles/lang/fa.js +++ b/sources/plugins/basicstyles/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'fa', { diff --git a/sources/plugins/basicstyles/lang/fi.js b/sources/plugins/basicstyles/lang/fi.js index 83b2fca..5e1fbce 100644 --- a/sources/plugins/basicstyles/lang/fi.js +++ b/sources/plugins/basicstyles/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'fi', { diff --git a/sources/plugins/basicstyles/lang/fo.js b/sources/plugins/basicstyles/lang/fo.js index 4af4e21..f48b73a 100644 --- a/sources/plugins/basicstyles/lang/fo.js +++ b/sources/plugins/basicstyles/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'fo', { diff --git a/sources/plugins/basicstyles/lang/fr-ca.js b/sources/plugins/basicstyles/lang/fr-ca.js index 1a1f013..6b8ffbf 100644 --- a/sources/plugins/basicstyles/lang/fr-ca.js +++ b/sources/plugins/basicstyles/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'fr-ca', { diff --git a/sources/plugins/basicstyles/lang/fr.js b/sources/plugins/basicstyles/lang/fr.js index 65d8877..022e438 100644 --- a/sources/plugins/basicstyles/lang/fr.js +++ b/sources/plugins/basicstyles/lang/fr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'fr', { diff --git a/sources/plugins/basicstyles/lang/gl.js b/sources/plugins/basicstyles/lang/gl.js index 597f06b..ebd5aa4 100644 --- a/sources/plugins/basicstyles/lang/gl.js +++ b/sources/plugins/basicstyles/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'gl', { diff --git a/sources/plugins/basicstyles/lang/gu.js b/sources/plugins/basicstyles/lang/gu.js index 3ca4b60..fc043b4 100644 --- a/sources/plugins/basicstyles/lang/gu.js +++ b/sources/plugins/basicstyles/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'gu', { diff --git a/sources/plugins/basicstyles/lang/he.js b/sources/plugins/basicstyles/lang/he.js index 5d73395..16b16a4 100644 --- a/sources/plugins/basicstyles/lang/he.js +++ b/sources/plugins/basicstyles/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'he', { diff --git a/sources/plugins/basicstyles/lang/hi.js b/sources/plugins/basicstyles/lang/hi.js index 0beaa59..2b2fcb5 100644 --- a/sources/plugins/basicstyles/lang/hi.js +++ b/sources/plugins/basicstyles/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'hi', { diff --git a/sources/plugins/basicstyles/lang/hr.js b/sources/plugins/basicstyles/lang/hr.js index ef1c439..94bc730 100644 --- a/sources/plugins/basicstyles/lang/hr.js +++ b/sources/plugins/basicstyles/lang/hr.js @@ -1,10 +1,10 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'hr', { - bold: 'Podebljaj', - italic: 'Ukosi', + bold: 'Podebljano', + italic: 'Ukošeno', strike: 'Precrtano', subscript: 'Subscript', superscript: 'Superscript', diff --git a/sources/plugins/basicstyles/lang/hu.js b/sources/plugins/basicstyles/lang/hu.js index 36081b3..41d3a32 100644 --- a/sources/plugins/basicstyles/lang/hu.js +++ b/sources/plugins/basicstyles/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'hu', { diff --git a/sources/plugins/basicstyles/lang/id.js b/sources/plugins/basicstyles/lang/id.js index 8bad46e..39e916d 100644 --- a/sources/plugins/basicstyles/lang/id.js +++ b/sources/plugins/basicstyles/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'id', { diff --git a/sources/plugins/basicstyles/lang/is.js b/sources/plugins/basicstyles/lang/is.js index 67a4cff..d22f80a 100644 --- a/sources/plugins/basicstyles/lang/is.js +++ b/sources/plugins/basicstyles/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'is', { diff --git a/sources/plugins/basicstyles/lang/it.js b/sources/plugins/basicstyles/lang/it.js index bbd38a7..12d5594 100644 --- a/sources/plugins/basicstyles/lang/it.js +++ b/sources/plugins/basicstyles/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'it', { diff --git a/sources/plugins/basicstyles/lang/ja.js b/sources/plugins/basicstyles/lang/ja.js index a28beba..1d7ba09 100644 --- a/sources/plugins/basicstyles/lang/ja.js +++ b/sources/plugins/basicstyles/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ja', { diff --git a/sources/plugins/basicstyles/lang/ka.js b/sources/plugins/basicstyles/lang/ka.js index 10be39d..e1ea391 100644 --- a/sources/plugins/basicstyles/lang/ka.js +++ b/sources/plugins/basicstyles/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ka', { diff --git a/sources/plugins/basicstyles/lang/km.js b/sources/plugins/basicstyles/lang/km.js index 256559c..a55d004 100644 --- a/sources/plugins/basicstyles/lang/km.js +++ b/sources/plugins/basicstyles/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'km', { diff --git a/sources/plugins/basicstyles/lang/ko.js b/sources/plugins/basicstyles/lang/ko.js index 0a988f4..7a61f11 100644 --- a/sources/plugins/basicstyles/lang/ko.js +++ b/sources/plugins/basicstyles/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ko', { diff --git a/sources/plugins/basicstyles/lang/ku.js b/sources/plugins/basicstyles/lang/ku.js index 99100cb..fa3c16d 100644 --- a/sources/plugins/basicstyles/lang/ku.js +++ b/sources/plugins/basicstyles/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ku', { diff --git a/sources/plugins/basicstyles/lang/lt.js b/sources/plugins/basicstyles/lang/lt.js index 8ea74dd..edb6949 100644 --- a/sources/plugins/basicstyles/lang/lt.js +++ b/sources/plugins/basicstyles/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'lt', { diff --git a/sources/plugins/basicstyles/lang/lv.js b/sources/plugins/basicstyles/lang/lv.js index 38bbe70..4efd61f 100644 --- a/sources/plugins/basicstyles/lang/lv.js +++ b/sources/plugins/basicstyles/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'lv', { diff --git a/sources/plugins/basicstyles/lang/mk.js b/sources/plugins/basicstyles/lang/mk.js index 478ce87..7d56475 100644 --- a/sources/plugins/basicstyles/lang/mk.js +++ b/sources/plugins/basicstyles/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'mk', { diff --git a/sources/plugins/basicstyles/lang/mn.js b/sources/plugins/basicstyles/lang/mn.js index 7edec37..71fa4da 100644 --- a/sources/plugins/basicstyles/lang/mn.js +++ b/sources/plugins/basicstyles/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'mn', { diff --git a/sources/plugins/basicstyles/lang/ms.js b/sources/plugins/basicstyles/lang/ms.js index 0fc9f9b..0fd97ee 100644 --- a/sources/plugins/basicstyles/lang/ms.js +++ b/sources/plugins/basicstyles/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ms', { diff --git a/sources/plugins/basicstyles/lang/nb.js b/sources/plugins/basicstyles/lang/nb.js index b5f922a..6ab2325 100644 --- a/sources/plugins/basicstyles/lang/nb.js +++ b/sources/plugins/basicstyles/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'nb', { diff --git a/sources/plugins/basicstyles/lang/nl.js b/sources/plugins/basicstyles/lang/nl.js index 92cad81..b2ddb86 100644 --- a/sources/plugins/basicstyles/lang/nl.js +++ b/sources/plugins/basicstyles/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'nl', { diff --git a/sources/plugins/basicstyles/lang/no.js b/sources/plugins/basicstyles/lang/no.js index 300659a..9fdcf1b 100644 --- a/sources/plugins/basicstyles/lang/no.js +++ b/sources/plugins/basicstyles/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'no', { diff --git a/sources/plugins/basicstyles/lang/oc.js b/sources/plugins/basicstyles/lang/oc.js new file mode 100644 index 0000000..56d7df0 --- /dev/null +++ b/sources/plugins/basicstyles/lang/oc.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'basicstyles', 'oc', { + bold: 'Gras', + italic: 'Italica', + strike: 'Raiat', + subscript: 'Indici', + superscript: 'Exponent', + underline: 'Solinhat' +} ); diff --git a/sources/plugins/basicstyles/lang/pl.js b/sources/plugins/basicstyles/lang/pl.js index 321f895..5739141 100644 --- a/sources/plugins/basicstyles/lang/pl.js +++ b/sources/plugins/basicstyles/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'pl', { diff --git a/sources/plugins/basicstyles/lang/pt-br.js b/sources/plugins/basicstyles/lang/pt-br.js index fad08d4..b1bbd20 100644 --- a/sources/plugins/basicstyles/lang/pt-br.js +++ b/sources/plugins/basicstyles/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'pt-br', { diff --git a/sources/plugins/basicstyles/lang/pt.js b/sources/plugins/basicstyles/lang/pt.js index 85de020..7421106 100644 --- a/sources/plugins/basicstyles/lang/pt.js +++ b/sources/plugins/basicstyles/lang/pt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'pt', { @@ -7,6 +7,6 @@ CKEDITOR.plugins.setLang( 'basicstyles', 'pt', { italic: 'Itálico', strike: 'Rasurado', subscript: 'Superior à linha', - superscript: 'Inferior à Linha', + superscript: 'Superior à linha', underline: 'Sublinhado' } ); diff --git a/sources/plugins/basicstyles/lang/ro.js b/sources/plugins/basicstyles/lang/ro.js index c274ded..e760a45 100644 --- a/sources/plugins/basicstyles/lang/ro.js +++ b/sources/plugins/basicstyles/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ro', { diff --git a/sources/plugins/basicstyles/lang/ru.js b/sources/plugins/basicstyles/lang/ru.js index 25cdf88..0a38898 100644 --- a/sources/plugins/basicstyles/lang/ru.js +++ b/sources/plugins/basicstyles/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ru', { diff --git a/sources/plugins/basicstyles/lang/si.js b/sources/plugins/basicstyles/lang/si.js index fbd052e..58b5a45 100644 --- a/sources/plugins/basicstyles/lang/si.js +++ b/sources/plugins/basicstyles/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'si', { diff --git a/sources/plugins/basicstyles/lang/sk.js b/sources/plugins/basicstyles/lang/sk.js index 3a19d9b..42e351d 100644 --- a/sources/plugins/basicstyles/lang/sk.js +++ b/sources/plugins/basicstyles/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'sk', { diff --git a/sources/plugins/basicstyles/lang/sl.js b/sources/plugins/basicstyles/lang/sl.js index d6a0dbc..3ccb5ba 100644 --- a/sources/plugins/basicstyles/lang/sl.js +++ b/sources/plugins/basicstyles/lang/sl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'sl', { diff --git a/sources/plugins/basicstyles/lang/sq.js b/sources/plugins/basicstyles/lang/sq.js index 7604a7a..5c6d704 100644 --- a/sources/plugins/basicstyles/lang/sq.js +++ b/sources/plugins/basicstyles/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'sq', { diff --git a/sources/plugins/basicstyles/lang/sr-latn.js b/sources/plugins/basicstyles/lang/sr-latn.js index 6c87984..535dd50 100644 --- a/sources/plugins/basicstyles/lang/sr-latn.js +++ b/sources/plugins/basicstyles/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'sr-latn', { diff --git a/sources/plugins/basicstyles/lang/sr.js b/sources/plugins/basicstyles/lang/sr.js index f0cc6eb..2e7564e 100644 --- a/sources/plugins/basicstyles/lang/sr.js +++ b/sources/plugins/basicstyles/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'sr', { diff --git a/sources/plugins/basicstyles/lang/sv.js b/sources/plugins/basicstyles/lang/sv.js index d11c18c..efa20a8 100644 --- a/sources/plugins/basicstyles/lang/sv.js +++ b/sources/plugins/basicstyles/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'sv', { diff --git a/sources/plugins/basicstyles/lang/th.js b/sources/plugins/basicstyles/lang/th.js index 91c0cea..82cab00 100644 --- a/sources/plugins/basicstyles/lang/th.js +++ b/sources/plugins/basicstyles/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'th', { diff --git a/sources/plugins/basicstyles/lang/tr.js b/sources/plugins/basicstyles/lang/tr.js index 62f6d09..0e36c82 100644 --- a/sources/plugins/basicstyles/lang/tr.js +++ b/sources/plugins/basicstyles/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'tr', { diff --git a/sources/plugins/basicstyles/lang/tt.js b/sources/plugins/basicstyles/lang/tt.js index 13e0217..c8da547 100644 --- a/sources/plugins/basicstyles/lang/tt.js +++ b/sources/plugins/basicstyles/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'tt', { diff --git a/sources/plugins/basicstyles/lang/ug.js b/sources/plugins/basicstyles/lang/ug.js index 780e7b7..aa28429 100644 --- a/sources/plugins/basicstyles/lang/ug.js +++ b/sources/plugins/basicstyles/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'ug', { diff --git a/sources/plugins/basicstyles/lang/uk.js b/sources/plugins/basicstyles/lang/uk.js index 66e9f6a..3ec1acc 100644 --- a/sources/plugins/basicstyles/lang/uk.js +++ b/sources/plugins/basicstyles/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'uk', { diff --git a/sources/plugins/basicstyles/lang/vi.js b/sources/plugins/basicstyles/lang/vi.js index 510ec58..c0aaa69 100644 --- a/sources/plugins/basicstyles/lang/vi.js +++ b/sources/plugins/basicstyles/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'vi', { diff --git a/sources/plugins/basicstyles/lang/zh-cn.js b/sources/plugins/basicstyles/lang/zh-cn.js index 1b7e89f..f43d23d 100644 --- a/sources/plugins/basicstyles/lang/zh-cn.js +++ b/sources/plugins/basicstyles/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'zh-cn', { diff --git a/sources/plugins/basicstyles/lang/zh.js b/sources/plugins/basicstyles/lang/zh.js index 6e75580..d74943c 100644 --- a/sources/plugins/basicstyles/lang/zh.js +++ b/sources/plugins/basicstyles/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'basicstyles', 'zh', { diff --git a/sources/plugins/basicstyles/plugin.js b/sources/plugins/basicstyles/plugin.js index 6960e2e..474ea09 100644 --- a/sources/plugins/basicstyles/plugin.js +++ b/sources/plugins/basicstyles/plugin.js @@ -1,11 +1,11 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.add( 'basicstyles', { // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'bold,italic,underline,strike,subscript,superscript', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% diff --git a/sources/plugins/button/lang/af.js b/sources/plugins/button/lang/af.js index af03793..6ccebfa 100644 --- a/sources/plugins/button/lang/af.js +++ b/sources/plugins/button/lang/af.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ar.js b/sources/plugins/button/lang/ar.js index 28f4346..025068d 100644 --- a/sources/plugins/button/lang/ar.js +++ b/sources/plugins/button/lang/ar.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ast.js b/sources/plugins/button/lang/ast.js deleted file mode 100644 index 5ab7bf6..0000000 --- a/sources/plugins/button/lang/ast.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -CKEDITOR.plugins.setLang( 'button', 'ast', { - selectedLabel: '%1 (Seleicionáu)' -} ); diff --git a/sources/plugins/button/lang/az.js b/sources/plugins/button/lang/az.js new file mode 100644 index 0000000..30ac85e --- /dev/null +++ b/sources/plugins/button/lang/az.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'button', 'az', { + selectedLabel: '%1 (seçilib)' +} ); diff --git a/sources/plugins/button/lang/bg.js b/sources/plugins/button/lang/bg.js index dfe5be1..0b146bb 100644 --- a/sources/plugins/button/lang/bg.js +++ b/sources/plugins/button/lang/bg.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ca.js b/sources/plugins/button/lang/ca.js index 2feb710..0891d49 100644 --- a/sources/plugins/button/lang/ca.js +++ b/sources/plugins/button/lang/ca.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/cs.js b/sources/plugins/button/lang/cs.js index 01f4a86..552a05c 100644 --- a/sources/plugins/button/lang/cs.js +++ b/sources/plugins/button/lang/cs.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/da.js b/sources/plugins/button/lang/da.js index 021201f..255dcc5 100644 --- a/sources/plugins/button/lang/da.js +++ b/sources/plugins/button/lang/da.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/de-ch.js b/sources/plugins/button/lang/de-ch.js index 680cc20..63430d7 100644 --- a/sources/plugins/button/lang/de-ch.js +++ b/sources/plugins/button/lang/de-ch.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/de.js b/sources/plugins/button/lang/de.js index d31afaa..dca3daa 100644 --- a/sources/plugins/button/lang/de.js +++ b/sources/plugins/button/lang/de.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/el.js b/sources/plugins/button/lang/el.js index 84e630c..1718816 100644 --- a/sources/plugins/button/lang/el.js +++ b/sources/plugins/button/lang/el.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/en-gb.js b/sources/plugins/button/lang/en-gb.js index b4060d3..d7daefc 100644 --- a/sources/plugins/button/lang/en-gb.js +++ b/sources/plugins/button/lang/en-gb.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/en.js b/sources/plugins/button/lang/en.js index b0b4807..d5c4088 100644 --- a/sources/plugins/button/lang/en.js +++ b/sources/plugins/button/lang/en.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/eo.js b/sources/plugins/button/lang/eo.js index 733c960..acf0c13 100644 --- a/sources/plugins/button/lang/eo.js +++ b/sources/plugins/button/lang/eo.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/es-mx.js b/sources/plugins/button/lang/es-mx.js new file mode 100644 index 0000000..3b1b47b --- /dev/null +++ b/sources/plugins/button/lang/es-mx.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'button', 'es-mx', { + selectedLabel: '%1 (Seleccionado)' +} ); diff --git a/sources/plugins/button/lang/es.js b/sources/plugins/button/lang/es.js index 8b4695b..cb46c6f 100644 --- a/sources/plugins/button/lang/es.js +++ b/sources/plugins/button/lang/es.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/eu.js b/sources/plugins/button/lang/eu.js index fd60b16..c49d92a 100644 --- a/sources/plugins/button/lang/eu.js +++ b/sources/plugins/button/lang/eu.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/fa.js b/sources/plugins/button/lang/fa.js index 8e923b0..358c88a 100644 --- a/sources/plugins/button/lang/fa.js +++ b/sources/plugins/button/lang/fa.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/fi.js b/sources/plugins/button/lang/fi.js index 2668a8d..4822e74 100644 --- a/sources/plugins/button/lang/fi.js +++ b/sources/plugins/button/lang/fi.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/fr.js b/sources/plugins/button/lang/fr.js index 1039c90..1b1c6d3 100644 --- a/sources/plugins/button/lang/fr.js +++ b/sources/plugins/button/lang/fr.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/gl.js b/sources/plugins/button/lang/gl.js index e73ea65..3e4e0b7 100644 --- a/sources/plugins/button/lang/gl.js +++ b/sources/plugins/button/lang/gl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/he.js b/sources/plugins/button/lang/he.js index 8890cf9..c67afb6 100644 --- a/sources/plugins/button/lang/he.js +++ b/sources/plugins/button/lang/he.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/hr.js b/sources/plugins/button/lang/hr.js new file mode 100644 index 0000000..031f8f5 --- /dev/null +++ b/sources/plugins/button/lang/hr.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'button', 'hr', { + selectedLabel: '%1 (Odabrano)' +} ); diff --git a/sources/plugins/button/lang/hu.js b/sources/plugins/button/lang/hu.js index 9dc42a5..0dffac1 100644 --- a/sources/plugins/button/lang/hu.js +++ b/sources/plugins/button/lang/hu.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/id.js b/sources/plugins/button/lang/id.js index 52726a8..f973ffc 100644 --- a/sources/plugins/button/lang/id.js +++ b/sources/plugins/button/lang/id.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/it.js b/sources/plugins/button/lang/it.js index 0b28b8c..359dc9a 100644 --- a/sources/plugins/button/lang/it.js +++ b/sources/plugins/button/lang/it.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ja.js b/sources/plugins/button/lang/ja.js index 559d08c..e2b064f 100644 --- a/sources/plugins/button/lang/ja.js +++ b/sources/plugins/button/lang/ja.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/km.js b/sources/plugins/button/lang/km.js index ecfc774..9437a2f 100644 --- a/sources/plugins/button/lang/km.js +++ b/sources/plugins/button/lang/km.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ko.js b/sources/plugins/button/lang/ko.js index 2e2cc61..64ad966 100644 --- a/sources/plugins/button/lang/ko.js +++ b/sources/plugins/button/lang/ko.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ku.js b/sources/plugins/button/lang/ku.js index b794e23..d342dd0 100644 --- a/sources/plugins/button/lang/ku.js +++ b/sources/plugins/button/lang/ku.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/lt.js b/sources/plugins/button/lang/lt.js index e17e9e5..b492bd5 100644 --- a/sources/plugins/button/lang/lt.js +++ b/sources/plugins/button/lang/lt.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/nb.js b/sources/plugins/button/lang/nb.js index b91a823..8d38121 100644 --- a/sources/plugins/button/lang/nb.js +++ b/sources/plugins/button/lang/nb.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/nl.js b/sources/plugins/button/lang/nl.js index 0654cec..3e00f80 100644 --- a/sources/plugins/button/lang/nl.js +++ b/sources/plugins/button/lang/nl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/no.js b/sources/plugins/button/lang/no.js new file mode 100644 index 0000000..e6252b1 --- /dev/null +++ b/sources/plugins/button/lang/no.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'button', 'no', { + selectedLabel: '%1 (Valgt)' +} ); diff --git a/sources/plugins/button/lang/oc.js b/sources/plugins/button/lang/oc.js new file mode 100644 index 0000000..cb91761 --- /dev/null +++ b/sources/plugins/button/lang/oc.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'button', 'oc', { + selectedLabel: '%1 (Seleccionat)' +} ); diff --git a/sources/plugins/button/lang/pl.js b/sources/plugins/button/lang/pl.js index bc980d0..304d07a 100644 --- a/sources/plugins/button/lang/pl.js +++ b/sources/plugins/button/lang/pl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/pt-br.js b/sources/plugins/button/lang/pt-br.js index f1cd7c4..e3fdf84 100644 --- a/sources/plugins/button/lang/pt-br.js +++ b/sources/plugins/button/lang/pt-br.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/pt.js b/sources/plugins/button/lang/pt.js index adc8251..e02c45a 100644 --- a/sources/plugins/button/lang/pt.js +++ b/sources/plugins/button/lang/pt.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ro.js b/sources/plugins/button/lang/ro.js index c70153c..0669dd5 100644 --- a/sources/plugins/button/lang/ro.js +++ b/sources/plugins/button/lang/ro.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ru.js b/sources/plugins/button/lang/ru.js index 06ee190..085f6ee 100644 --- a/sources/plugins/button/lang/ru.js +++ b/sources/plugins/button/lang/ru.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/sk.js b/sources/plugins/button/lang/sk.js index adbadf2..12bec80 100644 --- a/sources/plugins/button/lang/sk.js +++ b/sources/plugins/button/lang/sk.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/sl.js b/sources/plugins/button/lang/sl.js index 85e5cc2..c6633ae 100644 --- a/sources/plugins/button/lang/sl.js +++ b/sources/plugins/button/lang/sl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/sq.js b/sources/plugins/button/lang/sq.js index 1690634..2e53e4c 100644 --- a/sources/plugins/button/lang/sq.js +++ b/sources/plugins/button/lang/sq.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/sv.js b/sources/plugins/button/lang/sv.js index db15526..b89e475 100644 --- a/sources/plugins/button/lang/sv.js +++ b/sources/plugins/button/lang/sv.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/tr.js b/sources/plugins/button/lang/tr.js index a87bb12..30d3670 100644 --- a/sources/plugins/button/lang/tr.js +++ b/sources/plugins/button/lang/tr.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/tt.js b/sources/plugins/button/lang/tt.js index 79044c6..6324922 100644 --- a/sources/plugins/button/lang/tt.js +++ b/sources/plugins/button/lang/tt.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/ug.js b/sources/plugins/button/lang/ug.js index fe30252..fa3a90c 100644 --- a/sources/plugins/button/lang/ug.js +++ b/sources/plugins/button/lang/ug.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/uk.js b/sources/plugins/button/lang/uk.js index a40cf8f..7b49fe2 100644 --- a/sources/plugins/button/lang/uk.js +++ b/sources/plugins/button/lang/uk.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/vi.js b/sources/plugins/button/lang/vi.js index a3ea973..b6a5911 100644 --- a/sources/plugins/button/lang/vi.js +++ b/sources/plugins/button/lang/vi.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/zh-cn.js b/sources/plugins/button/lang/zh-cn.js index 1271943..fade7d7 100644 --- a/sources/plugins/button/lang/zh-cn.js +++ b/sources/plugins/button/lang/zh-cn.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/lang/zh.js b/sources/plugins/button/lang/zh.js index 5fee74f..7479462 100644 --- a/sources/plugins/button/lang/zh.js +++ b/sources/plugins/button/lang/zh.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/button/plugin.js b/sources/plugins/button/plugin.js index 0ce75c6..e91fa86 100644 --- a/sources/plugins/button/plugin.js +++ b/sources/plugins/button/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -12,6 +12,7 @@ ' hidefocus="true"' + ' role="button"' + ' aria-labelledby="{id}_label"' + + ' aria-describedby="{id}_description"' + ' aria-haspopup="{hasArrow}"' + ' aria-disabled="{ariaDisabled}"'; @@ -28,13 +29,14 @@ template += ' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event);"' + ' onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" ' + - ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // #188 + ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // http://dev.ckeditor.com/ticket/188 '="CKEDITOR.tools.callFunction({clickFn},this);return false;">' + '{label}' + + '{ariaShortcut}' + '{arrowHtml}' + ''; @@ -47,7 +49,7 @@ btnTpl = CKEDITOR.addTemplate( 'button', template ); CKEDITOR.plugins.add( 'button', { - lang: 'af,ar,bg,ca,cs,da,de,de-ch,el,en,en-gb,eo,es,eu,fa,fi,fr,gl,he,hu,id,it,ja,km,ko,ku,lt,nb,nl,pl,pt,pt-br,ro,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,ca,cs,da,de,de-ch,el,en,en-gb,eo,es,es-mx,eu,fa,fi,fr,gl,he,hr,hu,id,it,ja,km,ko,ku,lt,nb,nl,no,oc,pl,pt,pt-br,ro,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% beforeInit: function( editor ) { editor.ui.addHandler( CKEDITOR.UI_BUTTON, CKEDITOR.ui.button.handler ); } @@ -138,7 +140,9 @@ stateName = '', command = this.command, // Get the command name. - clickFn; + clickFn, + keystroke, + shortcut; this._.editor = editor; @@ -185,7 +189,7 @@ } instance.execute(); - // Fixed iOS focus issue when your press disabled button (#12381). + // Fixed iOS focus issue when your press disabled button (http://dev.ckeditor.com/ticket/12381). if ( env.iOS ) { editor.focus(); } @@ -239,13 +243,20 @@ }, this ); } - if ( !command ) + if ( !command ) { stateName += 'off'; + } else { + keystroke = editor.getCommandKeystroke( command ); + + if ( keystroke ) { + shortcut = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard, keystroke ); + } + } var name = this.name || this.command, iconName = name; - // Check if we're pointing to an icon defined by another command. (#9555) + // Check if we're pointing to an icon defined by another command. (http://dev.ckeditor.com/ticket/9555) if ( this.icon && !( /\./ ).test( this.icon ) ) { iconName = this.icon; this.icon = null; @@ -259,7 +270,8 @@ cls: this.className || '', state: stateName, ariaDisabled: stateName == 'disabled' ? 'true' : 'false', - title: this.title, + title: this.title + ( shortcut ? ' (' + shortcut.display + ')' : '' ), + ariaShortcut: shortcut ? editor.lang.common.keyboardShortcut + ' ' + shortcut.aria : '', titleJs: env.gecko && !env.hc ? '' : ( this.title || '' ).replace( "'", '' ), hasArrow: this.hasArrow ? 'true' : 'false', keydownFn: keydownFn, @@ -299,7 +311,7 @@ element.removeAttribute( 'aria-disabled' ); if ( !this.hasArrow ) { - // Note: aria-pressed attribute should not be added to menuButton instances. (#11331) + // Note: aria-pressed attribute should not be added to menuButton instances. (http://dev.ckeditor.com/ticket/11331) state == CKEDITOR.TRISTATE_ON ? element.setAttribute( 'aria-pressed', true ) : element.removeAttribute( 'aria-pressed' ); diff --git a/sources/plugins/clipboard/dev/clipboard.html b/sources/plugins/clipboard/dev/clipboard.html new file mode 100644 index 0000000..735d00e --- /dev/null +++ b/sources/plugins/clipboard/dev/clipboard.html @@ -0,0 +1,190 @@ + + + + + + Clipboard playground – CKEditor Sample + + + + + +

+ CKEditor Sample — clipboard plugin playground +

+
+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+
+

Editor 6

+

Content content content.

+

Styled by .someClass.

+
+
+
+
+ + + diff --git a/sources/plugins/clipboard/dev/console.js b/sources/plugins/clipboard/dev/console.js new file mode 100644 index 0000000..96ccd81 --- /dev/null +++ b/sources/plugins/clipboard/dev/console.js @@ -0,0 +1,49 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/* global CKCONSOLE */ + +'use strict'; + +( function() { + var pasteType, pasteValue; + + CKCONSOLE.add( 'paste', { + panels: [ + { + type: 'box', + content: + '', + + refresh: function() { + return { + header: 'Paste', + type: pasteType, + value: pasteValue + }; + }, + + refreshOn: function( editor, refresh ) { + editor.on( 'paste', function( evt ) { + pasteType = evt.data.type; + pasteValue = CKEDITOR.tools.htmlEncode( evt.data.dataValue ); + refresh(); + } ); + } + }, + { + type: 'log', + on: function( editor, log, logFn ) { + editor.on( 'paste', function( evt ) { + logFn( 'paste; type:' + evt.data.type )(); + } ); + } + } + ] + } ); +} )(); diff --git a/sources/plugins/clipboard/dev/dnd.html b/sources/plugins/clipboard/dev/dnd.html new file mode 100644 index 0000000..c45475b --- /dev/null +++ b/sources/plugins/clipboard/dev/dnd.html @@ -0,0 +1,185 @@ + + + + + + Manual test for http://dev.ckeditor.com/ticket/11460 + + + + + + + +

+ Manual test for #11460 +

+

Description (hide/show)

+
+

Test internal D&D in the editor, dropping content from an external source (helpers, MS Word) and D&D between editors. Keep in mind that internal D&D is the most complex operation because editor have to handle two ranges at the same time.

+

Expected behavior:

+
    +
  • proper drop position,
  • +
  • in the internal and cross editor D&D: dragged content should be removed,
  • +
  • dropped content should be (more less) the same as dragged content,
  • +
  • paste event should be fired,
  • +
  • undo should work properly (one undo operation for one D&D),
  • +
  • no crashes, nor errors,
  • +
+

Drag scenarios:

+
    +
  • drag simple text,
  • +
  • drag table cell/cells,
  • +
  • drag link,
  • +
  • drag helpers textarea content,
  • +
  • drag helpers html content,
  • +
  • drag content from MS Word.
  • +
+

Drop scenarios:

+
    +
  • drop in the different paragraph (before and after),
  • +
  • drop in the same paragraph (before and after),
  • +
  • drop in the same text node (before and after),
  • +
  • drop between text lines,
  • +
  • drop on the whitespace next to the header,
  • +
  • drop on the whitespace on the left side from the quote,
  • +
  • drop into a cell.
  • +
+

Known issues (not part of this ticket):

+
    +
  • because of #11636 dragged content is not correct in some cases (e.g. when you drag part of the link),
  • +
  • drag position needs clean up after D&D (e.g. remove empty paragraphs, fix table),
  • +
  • drop position needs clean up after D&D (e.g. add spaces before/after dropped content, apply parents styles, break paragraph when one paragraph is dropped at the end to the other paragraph),
  • +
  • in the external D&D: Chrome add plenty of addition tags.
  • +
+
+
+

Helpers (hide/show)

+
+ +
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In commodo vulputate tempor. Sed <b>at elit</b> vel ligula mollis aliquet a ac odio. +
+Aenean cursus egestas ipsum.
+				
+
+
+
+
+
+

Classic editor (hide/show)

+
+ +
+
+
+

Inline editor (hide/show)

+
+

Saturn V carrying Apollo 11 Apollo 11

+ +

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+ +

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

+ +

Broadcasting and quotes

+ +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+ +
+

One small step for [a] man, one giant leap for mankind.

+
+ +

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

+ +
+

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +

Technical details

+ + + + + + + + + + + + + + + + + + + + + + + +
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
+ +

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

+ +
    +
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. +
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. +
  5. Lunar Module for landing on the Moon.
  6. +
+ +

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

+ +
+

Source: Wikipedia.org

+
+
+ + + diff --git a/sources/plugins/clipboard/icons/copy-rtl.png b/sources/plugins/clipboard/icons/copy-rtl.png new file mode 100644 index 0000000..ce94fc0 Binary files /dev/null and b/sources/plugins/clipboard/icons/copy-rtl.png differ diff --git a/sources/plugins/clipboard/icons/copy.png b/sources/plugins/clipboard/icons/copy.png new file mode 100644 index 0000000..ce94fc0 Binary files /dev/null and b/sources/plugins/clipboard/icons/copy.png differ diff --git a/sources/plugins/clipboard/icons/cut-rtl.png b/sources/plugins/clipboard/icons/cut-rtl.png new file mode 100644 index 0000000..8ae48d9 Binary files /dev/null and b/sources/plugins/clipboard/icons/cut-rtl.png differ diff --git a/sources/plugins/clipboard/icons/cut.png b/sources/plugins/clipboard/icons/cut.png new file mode 100644 index 0000000..8ae48d9 Binary files /dev/null and b/sources/plugins/clipboard/icons/cut.png differ diff --git a/sources/plugins/clipboard/icons/hidpi/copy-rtl.png b/sources/plugins/clipboard/icons/hidpi/copy-rtl.png new file mode 100644 index 0000000..74c6765 Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/copy-rtl.png differ diff --git a/sources/plugins/clipboard/icons/hidpi/copy.png b/sources/plugins/clipboard/icons/hidpi/copy.png new file mode 100644 index 0000000..74c6765 Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/copy.png differ diff --git a/sources/plugins/clipboard/icons/hidpi/cut-rtl.png b/sources/plugins/clipboard/icons/hidpi/cut-rtl.png new file mode 100644 index 0000000..f5a9b0d Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/cut-rtl.png differ diff --git a/sources/plugins/clipboard/icons/hidpi/cut.png b/sources/plugins/clipboard/icons/hidpi/cut.png new file mode 100644 index 0000000..f5a9b0d Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/cut.png differ diff --git a/sources/plugins/clipboard/icons/hidpi/paste-rtl.png b/sources/plugins/clipboard/icons/hidpi/paste-rtl.png new file mode 100644 index 0000000..12cac92 Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/paste-rtl.png differ diff --git a/sources/plugins/clipboard/icons/hidpi/paste.png b/sources/plugins/clipboard/icons/hidpi/paste.png new file mode 100644 index 0000000..12cac92 Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/paste.png differ diff --git a/sources/plugins/clipboard/icons/paste-rtl.png b/sources/plugins/clipboard/icons/paste-rtl.png new file mode 100644 index 0000000..7039251 Binary files /dev/null and b/sources/plugins/clipboard/icons/paste-rtl.png differ diff --git a/sources/plugins/clipboard/icons/paste.png b/sources/plugins/clipboard/icons/paste.png new file mode 100644 index 0000000..7039251 Binary files /dev/null and b/sources/plugins/clipboard/icons/paste.png differ diff --git a/sources/plugins/clipboard/lang/af.js b/sources/plugins/clipboard/lang/af.js new file mode 100644 index 0000000..5860867 --- /dev/null +++ b/sources/plugins/clipboard/lang/af.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'af', { + copy: 'Kopiëer', + copyError: 'U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).', + cut: 'Knip', + cutError: 'U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).', + paste: 'Plak', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ar.js b/sources/plugins/clipboard/lang/ar.js new file mode 100644 index 0000000..6d1a0b0 --- /dev/null +++ b/sources/plugins/clipboard/lang/ar.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ar', { + copy: 'نسخ', + copyError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).', + cut: 'قص', + cutError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).', + paste: 'لصق', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/az.js b/sources/plugins/clipboard/lang/az.js new file mode 100644 index 0000000..8f60f35 --- /dev/null +++ b/sources/plugins/clipboard/lang/az.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'az', { + copy: 'Köçür', + copyError: 'Avtomatik köçürülməsi mümkün deyil. Ctrl+C basın.', + cut: 'Kəs', + cutError: 'Avtomatik kəsmə mümkün deyil. Ctrl+X basın.', + paste: 'Əlavə et', + pasteNotification: 'Sizin İnternet bələdçisi bu cür mətnin köçürməsi dəstəklənmir. Əlavə etmək üçün %1 basın.' +} ); diff --git a/sources/plugins/clipboard/lang/bg.js b/sources/plugins/clipboard/lang/bg.js new file mode 100644 index 0000000..2d8eede --- /dev/null +++ b/sources/plugins/clipboard/lang/bg.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'bg', { + copy: 'Копирай', + copyError: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).', + cut: 'Отрежи', + cutError: 'Настройките за сигурност на Вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. Моля ползвайте клавиатурните команди за целта (ctrl+x).', + paste: 'Вмъкни', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/bn.js b/sources/plugins/clipboard/lang/bn.js new file mode 100644 index 0000000..1d0922a --- /dev/null +++ b/sources/plugins/clipboard/lang/bn.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'bn', { + copy: 'কপি', + copyError: 'আপনার ব্রাউজারের নিরাপত্তা সেটিংসমূহ এডিটরকে স্বয়ংক্রিয়ভাবে কপি করার প্রক্রিয়া চালনা করার অনুমতি দেয় না। অনুগ্রহপূর্বক এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।', + cut: 'কাট', + cutError: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।', + paste: 'পেস্ট', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/bs.js b/sources/plugins/clipboard/lang/bs.js new file mode 100644 index 0000000..62f3f1b --- /dev/null +++ b/sources/plugins/clipboard/lang/bs.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'bs', { + copy: 'Kopiraj', + copyError: 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).', + cut: 'Izreži', + cutError: 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).', + paste: 'Zalijepi', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ca.js b/sources/plugins/clipboard/lang/ca.js new file mode 100644 index 0000000..6cd3b58 --- /dev/null +++ b/sources/plugins/clipboard/lang/ca.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ca', { + copy: 'Copiar', + copyError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).', + cut: 'Retallar', + cutError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).', + paste: 'Enganxar', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/cs.js b/sources/plugins/clipboard/lang/cs.js new file mode 100644 index 0000000..4cbf3b4 --- /dev/null +++ b/sources/plugins/clipboard/lang/cs.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'cs', { + copy: 'Kopírovat', + copyError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).', + cut: 'Vyjmout', + cutError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).', + paste: 'Vložit', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/cy.js b/sources/plugins/clipboard/lang/cy.js new file mode 100644 index 0000000..e854e13 --- /dev/null +++ b/sources/plugins/clipboard/lang/cy.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'cy', { + copy: 'Copïo', + copyError: '\'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).', + cut: 'Torri', + cutError: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).', + paste: 'Gludo', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/da.js b/sources/plugins/clipboard/lang/da.js new file mode 100644 index 0000000..257c9d4 --- /dev/null +++ b/sources/plugins/clipboard/lang/da.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'da', { + copy: 'Kopiér', + copyError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.

Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).', + cut: 'Klip', + cutError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.

Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).', + paste: 'Indsæt', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/de-ch.js b/sources/plugins/clipboard/lang/de-ch.js new file mode 100644 index 0000000..e3b9ead --- /dev/null +++ b/sources/plugins/clipboard/lang/de-ch.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'de-ch', { + copy: 'Kopieren', + copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).', + cut: 'Ausschneiden', + cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).', + paste: 'Einfügen', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/de.js b/sources/plugins/clipboard/lang/de.js new file mode 100644 index 0000000..5244081 --- /dev/null +++ b/sources/plugins/clipboard/lang/de.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'de', { + copy: 'Kopieren', + copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).', + cut: 'Ausschneiden', + cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).', + paste: 'Einfügen', + pasteNotification: 'Ihr Browser verhindert das Einfügen über diesen Weg. Zum einfügen drücken Sie %1.' +} ); diff --git a/sources/plugins/clipboard/lang/el.js b/sources/plugins/clipboard/lang/el.js new file mode 100644 index 0000000..4ee396b --- /dev/null +++ b/sources/plugins/clipboard/lang/el.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'el', { + copy: 'Αντιγραφή', + copyError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).', + cut: 'Αποκοπή', + cutError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).', + paste: 'Επικόλληση', + pasteNotification: 'Ο περιηγητής σας δεν σας επιτρέπει να επικολλήσετε με αυτόν τον τρόπο. Πατήστε %1 για επικόλληση.' +} ); diff --git a/sources/plugins/clipboard/lang/en-au.js b/sources/plugins/clipboard/lang/en-au.js new file mode 100644 index 0000000..018a754 --- /dev/null +++ b/sources/plugins/clipboard/lang/en-au.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'en-au', { + copy: 'Copy', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', + cut: 'Cut', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', + paste: 'Paste', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/en-ca.js b/sources/plugins/clipboard/lang/en-ca.js new file mode 100644 index 0000000..fd76ba7 --- /dev/null +++ b/sources/plugins/clipboard/lang/en-ca.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'en-ca', { + copy: 'Copy', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', + cut: 'Cut', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', + paste: 'Paste', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/en-gb.js b/sources/plugins/clipboard/lang/en-gb.js new file mode 100644 index 0000000..fb6aa2e --- /dev/null +++ b/sources/plugins/clipboard/lang/en-gb.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'en-gb', { + copy: 'Copy', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', + cut: 'Cut', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', + paste: 'Paste', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/en.js b/sources/plugins/clipboard/lang/en.js new file mode 100644 index 0000000..5d81cc0 --- /dev/null +++ b/sources/plugins/clipboard/lang/en.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'en', { + copy: 'Copy', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', + cut: 'Cut', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', + paste: 'Paste', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' +} ); diff --git a/sources/plugins/clipboard/lang/eo.js b/sources/plugins/clipboard/lang/eo.js new file mode 100644 index 0000000..3a01213 --- /dev/null +++ b/sources/plugins/clipboard/lang/eo.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'eo', { + copy: 'Kopii', + copyError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).', + cut: 'Eltondi', + cutError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).', + paste: 'Interglui', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/es-mx.js b/sources/plugins/clipboard/lang/es-mx.js new file mode 100644 index 0000000..f4a1be2 --- /dev/null +++ b/sources/plugins/clipboard/lang/es-mx.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'es-mx', { + copy: 'Copiar', + copyError: 'La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de copiado. Por favor, utilice el teclado para (Ctrl/Cmd+C).', + cut: 'Cortar', + cutError: 'La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de corte. Por favor, utilice el teclado para (Ctrl/Cmd+X).', + paste: 'Pegar', + pasteNotification: 'Tu navegador no permite pegar de esta manera. Presiona %1 para pegar.' +} ); diff --git a/sources/plugins/clipboard/lang/es.js b/sources/plugins/clipboard/lang/es.js new file mode 100644 index 0000000..741d912 --- /dev/null +++ b/sources/plugins/clipboard/lang/es.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'es', { + copy: 'Copiar', + copyError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).', + cut: 'Cortar', + cutError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).', + paste: 'Pegar', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/et.js b/sources/plugins/clipboard/lang/et.js new file mode 100644 index 0000000..106ca61 --- /dev/null +++ b/sources/plugins/clipboard/lang/et.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'et', { + copy: 'Kopeeri', + copyError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).', + cut: 'Lõika', + cutError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).', + paste: 'Aseta', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/eu.js b/sources/plugins/clipboard/lang/eu.js new file mode 100644 index 0000000..140fcb8 --- /dev/null +++ b/sources/plugins/clipboard/lang/eu.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'eu', { + copy: 'Kopiatu', + copyError: 'Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki kopiatzea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+C).', + cut: 'Ebaki', + cutError: 'Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki moztea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+X).', + paste: 'Itsatsi', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/fa.js b/sources/plugins/clipboard/lang/fa.js new file mode 100644 index 0000000..8dca4b3 --- /dev/null +++ b/sources/plugins/clipboard/lang/fa.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fa', { + copy: 'رونوشت', + copyError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).', + cut: 'برش', + cutError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).', + paste: 'چسباندن', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/fi.js b/sources/plugins/clipboard/lang/fi.js new file mode 100644 index 0000000..b2db77a --- /dev/null +++ b/sources/plugins/clipboard/lang/fi.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fi', { + copy: 'Kopioi', + copyError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).', + cut: 'Leikkaa', + cutError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).', + paste: 'Liitä', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/fo.js b/sources/plugins/clipboard/lang/fo.js new file mode 100644 index 0000000..8485ef3 --- /dev/null +++ b/sources/plugins/clipboard/lang/fo.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fo', { + copy: 'Avrita', + copyError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).', + cut: 'Kvett', + cutError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).', + paste: 'Innrita', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/fr-ca.js b/sources/plugins/clipboard/lang/fr-ca.js new file mode 100644 index 0000000..1a2dd3d --- /dev/null +++ b/sources/plugins/clipboard/lang/fr-ca.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fr-ca', { + copy: 'Copier', + copyError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).', + cut: 'Couper', + cutError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).', + paste: 'Coller', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/fr.js b/sources/plugins/clipboard/lang/fr.js new file mode 100644 index 0000000..054d055 --- /dev/null +++ b/sources/plugins/clipboard/lang/fr.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fr', { + copy: 'Copier', + copyError: 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).', + cut: 'Couper', + cutError: 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).', + paste: 'Coller', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/gl.js b/sources/plugins/clipboard/lang/gl.js new file mode 100644 index 0000000..5b4fd1a --- /dev/null +++ b/sources/plugins/clipboard/lang/gl.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'gl', { + copy: 'Copiar', + copyError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).', + cut: 'Cortar', + cutError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).', + paste: 'Pegar', + pasteNotification: 'O seu navegador non permite pegar deste xeito. Prema %1 para pegar.' +} ); diff --git a/sources/plugins/clipboard/lang/gu.js b/sources/plugins/clipboard/lang/gu.js new file mode 100644 index 0000000..aeac560 --- /dev/null +++ b/sources/plugins/clipboard/lang/gu.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'gu', { + copy: 'નકલ', + copyError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+C) का प्रयोग करें।', + cut: 'કાપવું', + cutError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.', + paste: 'પેસ્ટ', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/he.js b/sources/plugins/clipboard/lang/he.js new file mode 100644 index 0000000..460b9c6 --- /dev/null +++ b/sources/plugins/clipboard/lang/he.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'he', { + copy: 'העתקה', + copyError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).', + cut: 'גזירה', + cutError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).', + paste: 'הדבקה', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/hi.js b/sources/plugins/clipboard/lang/hi.js new file mode 100644 index 0000000..112853c --- /dev/null +++ b/sources/plugins/clipboard/lang/hi.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'hi', { + copy: 'कॉपी', + copyError: 'आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।', + cut: 'कट', + cutError: 'आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।', + paste: 'पेस्ट', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/hr.js b/sources/plugins/clipboard/lang/hr.js new file mode 100644 index 0000000..4eff9ce --- /dev/null +++ b/sources/plugins/clipboard/lang/hr.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'hr', { + copy: 'Kopiraj', + copyError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).', + cut: 'Izreži', + cutError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).', + paste: 'Zalijepi', + pasteNotification: 'Vaš preglednik Vam ne dozvoljava lijepljenje na ovaj način. Za lijepljenje, pritisnite %1.' +} ); diff --git a/sources/plugins/clipboard/lang/hu.js b/sources/plugins/clipboard/lang/hu.js new file mode 100644 index 0000000..646fb15 --- /dev/null +++ b/sources/plugins/clipboard/lang/hu.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'hu', { + copy: 'Másolás', + copyError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).', + cut: 'Kivágás', + cutError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).', + paste: 'Beillesztés', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/id.js b/sources/plugins/clipboard/lang/id.js new file mode 100644 index 0000000..b68425f --- /dev/null +++ b/sources/plugins/clipboard/lang/id.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'id', { + copy: 'Salin', + copyError: 'Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)', + cut: 'Potong', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING + paste: 'Tempel', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/is.js b/sources/plugins/clipboard/lang/is.js new file mode 100644 index 0000000..32a0fce --- /dev/null +++ b/sources/plugins/clipboard/lang/is.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'is', { + copy: 'Afrita', + copyError: 'Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).', + cut: 'Klippa', + cutError: 'Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).', + paste: 'Líma', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/it.js b/sources/plugins/clipboard/lang/it.js new file mode 100644 index 0000000..46e015c --- /dev/null +++ b/sources/plugins/clipboard/lang/it.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'it', { + copy: 'Copia', + copyError: 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).', + cut: 'Taglia', + cutError: 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).', + paste: 'Incolla', + pasteNotification: 'Il browser non permette di incollare in questo modo. Premere %1 per incollare.' +} ); diff --git a/sources/plugins/clipboard/lang/ja.js b/sources/plugins/clipboard/lang/ja.js new file mode 100644 index 0000000..f527e7c --- /dev/null +++ b/sources/plugins/clipboard/lang/ja.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ja', { + copy: 'コピー', + copyError: 'ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。', + cut: '切り取り', + cutError: 'ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。', + paste: '貼り付け', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ka.js b/sources/plugins/clipboard/lang/ka.js new file mode 100644 index 0000000..2fa9e23 --- /dev/null +++ b/sources/plugins/clipboard/lang/ka.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ka', { + copy: 'ასლი', + copyError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).', + cut: 'ამოჭრა', + cutError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).', + paste: 'ჩასმა', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/km.js b/sources/plugins/clipboard/lang/km.js new file mode 100644 index 0000000..dc66ee8 --- /dev/null +++ b/sources/plugins/clipboard/lang/km.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'km', { + copy: 'ចម្លង', + copyError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។', + cut: 'កាត់យក', + cutError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+X) ។', + paste: 'បិទ​ភ្ជាប់', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ko.js b/sources/plugins/clipboard/lang/ko.js new file mode 100644 index 0000000..8472358 --- /dev/null +++ b/sources/plugins/clipboard/lang/ko.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ko', { + copy: '복사', + copyError: '브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.', + cut: '잘라내기', + cutError: '브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오', + paste: '붙여넣기', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ku.js b/sources/plugins/clipboard/lang/ku.js new file mode 100644 index 0000000..b87aa8b --- /dev/null +++ b/sources/plugins/clipboard/lang/ku.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ku', { + copy: 'لەبەرگرتنەوە', + copyError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).', + cut: 'بڕین', + cutError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).', + paste: 'لکاندن', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/lt.js b/sources/plugins/clipboard/lang/lt.js new file mode 100644 index 0000000..c8d3611 --- /dev/null +++ b/sources/plugins/clipboard/lang/lt.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'lt', { + copy: 'Kopijuoti', + copyError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).', + cut: 'Iškirpti', + cutError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).', + paste: 'Įdėti', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/lv.js b/sources/plugins/clipboard/lang/lv.js new file mode 100644 index 0000000..49775de --- /dev/null +++ b/sources/plugins/clipboard/lang/lv.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'lv', { + copy: 'Kopēt', + copyError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.', + cut: 'Izgriezt', + cutError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.', + paste: 'Ielīmēt', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/mk.js b/sources/plugins/clipboard/lang/mk.js new file mode 100644 index 0000000..07a3d56 --- /dev/null +++ b/sources/plugins/clipboard/lang/mk.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'mk', { + copy: 'Копирај (Copy)', + copyError: 'Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши копирање. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)', + cut: 'Исечи (Cut)', + cutError: 'Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши сечење. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)', + paste: 'Залепи (Paste)', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/mn.js b/sources/plugins/clipboard/lang/mn.js new file mode 100644 index 0000000..3ba66f5 --- /dev/null +++ b/sources/plugins/clipboard/lang/mn.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'mn', { + copy: 'Хуулах', + copyError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.', + cut: 'Хайчлах', + cutError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.', + paste: 'Буулгах', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ms.js b/sources/plugins/clipboard/lang/ms.js new file mode 100644 index 0000000..b9e479a --- /dev/null +++ b/sources/plugins/clipboard/lang/ms.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ms', { + copy: 'Salin', + copyError: 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).', + cut: 'Potong', + cutError: 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).', + paste: 'Tampal', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/nb.js b/sources/plugins/clipboard/lang/nb.js new file mode 100644 index 0000000..bdf1563 --- /dev/null +++ b/sources/plugins/clipboard/lang/nb.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'nb', { + copy: 'Kopier', + copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).', + cut: 'Klipp ut', + cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).', + paste: 'Lim inn', + pasteNotification: 'Nettleseren din lar deg ikke lime inn på denne måten. Trykk %1 for å lime inn.' +} ); diff --git a/sources/plugins/clipboard/lang/nl.js b/sources/plugins/clipboard/lang/nl.js new file mode 100644 index 0000000..16bafd8 --- /dev/null +++ b/sources/plugins/clipboard/lang/nl.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'nl', { + copy: 'Kopiëren', + copyError: 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.', + cut: 'Knippen', + cutError: 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.', + paste: 'Plakken', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/no.js b/sources/plugins/clipboard/lang/no.js new file mode 100644 index 0000000..77ff08a --- /dev/null +++ b/sources/plugins/clipboard/lang/no.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'no', { + copy: 'Kopier', + copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).', + cut: 'Klipp ut', + cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).', + paste: 'Lim inn', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/oc.js b/sources/plugins/clipboard/lang/oc.js new file mode 100644 index 0000000..40d99fa --- /dev/null +++ b/sources/plugins/clipboard/lang/oc.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'oc', { + copy: 'Copiar', + copyError: 'Los paramètres de seguretat de vòstre navigador autorizan pas l\'editor a executar automaticament l\'operacion « Copiar ». Utilizatz l\'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+C).', + cut: 'Talhar', + cutError: 'Los paramètres de seguretat de vòstre navigador autorizan pas l\'editor a executar automaticament l\'operacion « Talhar ». Utilizatz l\'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+X).', + paste: 'Pegar', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/pl.js b/sources/plugins/clipboard/lang/pl.js new file mode 100644 index 0000000..494c9c1 --- /dev/null +++ b/sources/plugins/clipboard/lang/pl.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'pl', { + copy: 'Kopiuj', + copyError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.', + cut: 'Wytnij', + cutError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.', + paste: 'Wklej', + pasteNotification: 'Twoja przeglądarka nie pozwala na wklejanie treści w ten sposób. Naciśnij %1 by wkleić tekst.' +} ); diff --git a/sources/plugins/clipboard/lang/pt-br.js b/sources/plugins/clipboard/lang/pt-br.js new file mode 100644 index 0000000..e0359d9 --- /dev/null +++ b/sources/plugins/clipboard/lang/pt-br.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'pt-br', { + copy: 'Copiar', + copyError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).', + cut: 'Recortar', + cutError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).', + paste: 'Colar', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/pt.js b/sources/plugins/clipboard/lang/pt.js new file mode 100644 index 0000000..6a6df67 --- /dev/null +++ b/sources/plugins/clipboard/lang/pt.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'pt', { + copy: 'Copiar', + copyError: 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).', + cut: 'Cortar', + cutError: 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).', + paste: 'Colar', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ro.js b/sources/plugins/clipboard/lang/ro.js new file mode 100644 index 0000000..4eb472a --- /dev/null +++ b/sources/plugins/clipboard/lang/ro.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ro', { + copy: 'Copiază', + copyError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).', + cut: 'Taie', + cutError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).', + paste: 'Adaugă', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ru.js b/sources/plugins/clipboard/lang/ru.js new file mode 100644 index 0000000..9ef951f --- /dev/null +++ b/sources/plugins/clipboard/lang/ru.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ru', { + copy: 'Копировать', + copyError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).', + cut: 'Вырезать', + cutError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).', + paste: 'Вставить', + pasteNotification: 'Ваш браузер не поддерживает данный метод вставки. Для вставки нажмите %1' +} ); diff --git a/sources/plugins/clipboard/lang/si.js b/sources/plugins/clipboard/lang/si.js new file mode 100644 index 0000000..7356cf4 --- /dev/null +++ b/sources/plugins/clipboard/lang/si.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'si', { + copy: 'පිටපත් කරන්න', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', // MISSING + cut: 'කපාගන්න', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING + paste: 'අලවන්න', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/sk.js b/sources/plugins/clipboard/lang/sk.js new file mode 100644 index 0000000..b844e58 --- /dev/null +++ b/sources/plugins/clipboard/lang/sk.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sk', { + copy: 'Kopírovať', + copyError: 'Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Použite na to klávesnicu (Ctrl/Cmd+C).', + cut: 'Vystrihnúť', + cutError: 'Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Použite na to klávesnicu (Ctrl/Cmd+X).', + paste: 'Vložiť', + pasteNotification: 'Váš prehliadač nepovoľuje prilepiť text takýmto spôsobom. Pre prilepenie stlačte %1.' +} ); diff --git a/sources/plugins/clipboard/lang/sl.js b/sources/plugins/clipboard/lang/sl.js new file mode 100644 index 0000000..787e6fc --- /dev/null +++ b/sources/plugins/clipboard/lang/sl.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sl', { + copy: 'Kopiraj', + copyError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).', + cut: 'Izreži', + cutError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).', + paste: 'Prilepi', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/sq.js b/sources/plugins/clipboard/lang/sq.js new file mode 100644 index 0000000..d78b2e7 --- /dev/null +++ b/sources/plugins/clipboard/lang/sq.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sq', { + copy: 'Kopjo', + copyError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).', + cut: 'Preje', + cutError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).', + paste: 'Hidhe', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/sr-latn.js b/sources/plugins/clipboard/lang/sr-latn.js new file mode 100644 index 0000000..797429f --- /dev/null +++ b/sources/plugins/clipboard/lang/sr-latn.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sr-latn', { + copy: 'Kopiraj', + copyError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).', + cut: 'Iseci', + cutError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).', + paste: 'Zalepi', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/sr.js b/sources/plugins/clipboard/lang/sr.js new file mode 100644 index 0000000..bd4e655 --- /dev/null +++ b/sources/plugins/clipboard/lang/sr.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sr', { + copy: 'Копирај', + copyError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).', + cut: 'Исеци', + cutError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).', + paste: 'Залепи', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/sv.js b/sources/plugins/clipboard/lang/sv.js new file mode 100644 index 0000000..d1ab00b --- /dev/null +++ b/sources/plugins/clipboard/lang/sv.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sv', { + copy: 'Kopiera', + copyError: 'Säkerhetsinställningar i din webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.', + cut: 'Klipp ut', + cutError: 'Säkerhetsinställningar i din webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.', + paste: 'Klistra in', + pasteNotification: 'Din webbläsare tillåter dig inte att klistra in på detta vis. Tryck på %1 för att klistra in.' +} ); diff --git a/sources/plugins/clipboard/lang/th.js b/sources/plugins/clipboard/lang/th.js new file mode 100644 index 0000000..b645b90 --- /dev/null +++ b/sources/plugins/clipboard/lang/th.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'th', { + copy: 'สำเนา', + copyError: 'ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).', + cut: 'ตัด', + cutError: 'ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).', + paste: 'วาง', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/tr.js b/sources/plugins/clipboard/lang/tr.js new file mode 100644 index 0000000..4645335 --- /dev/null +++ b/sources/plugins/clipboard/lang/tr.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'tr', { + copy: 'Kopyala', + copyError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.', + cut: 'Kes', + cutError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.', + paste: 'Yapıştır', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/tt.js b/sources/plugins/clipboard/lang/tt.js new file mode 100644 index 0000000..5e641e3 --- /dev/null +++ b/sources/plugins/clipboard/lang/tt.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'tt', { + copy: 'Күчермәләү', + copyError: 'Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.', + cut: 'Кисеп алу', + cutError: 'Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.', + paste: 'Өстәү', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/ug.js b/sources/plugins/clipboard/lang/ug.js new file mode 100644 index 0000000..deb1d2b --- /dev/null +++ b/sources/plugins/clipboard/lang/ug.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ug', { + copy: 'كۆچۈر', + copyError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ', + cut: 'كەس', + cutError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ', + paste: 'چاپلا', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/uk.js b/sources/plugins/clipboard/lang/uk.js new file mode 100644 index 0000000..f3e06a5 --- /dev/null +++ b/sources/plugins/clipboard/lang/uk.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'uk', { + copy: 'Копіювати', + copyError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).', + cut: 'Вирізати', + cutError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)', + paste: 'Вставити', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/vi.js b/sources/plugins/clipboard/lang/vi.js new file mode 100644 index 0000000..2928a95 --- /dev/null +++ b/sources/plugins/clipboard/lang/vi.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'vi', { + copy: 'Sao chép', + copyError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).', + cut: 'Cắt', + cutError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).', + paste: 'Dán', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/lang/zh-cn.js b/sources/plugins/clipboard/lang/zh-cn.js new file mode 100644 index 0000000..4b738cb --- /dev/null +++ b/sources/plugins/clipboard/lang/zh-cn.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'zh-cn', { + copy: '复制', + copyError: '您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl/Cmd+C)来完成。', + cut: '剪切', + cutError: '您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl/Cmd+X)来完成。', + paste: '粘贴', + pasteNotification: '您的浏览器不允许用此方式粘贴,要粘贴请按 %1。' +} ); diff --git a/sources/plugins/clipboard/lang/zh.js b/sources/plugins/clipboard/lang/zh.js new file mode 100644 index 0000000..f91de7e --- /dev/null +++ b/sources/plugins/clipboard/lang/zh.js @@ -0,0 +1,12 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'zh', { + copy: '複製', + copyError: '瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。', + cut: '剪下', + cutError: '瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。', + paste: '貼上', + pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING +} ); diff --git a/sources/plugins/clipboard/plugin.js b/sources/plugins/clipboard/plugin.js new file mode 100644 index 0000000..433f547 --- /dev/null +++ b/sources/plugins/clipboard/plugin.js @@ -0,0 +1,2780 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @ignore + * File overview: Clipboard support. + */ + +// +// COPY & PASTE EXECUTION FLOWS: +// -- CTRL+C +// * if ( isCustomCopyCutSupported ) +// * dataTransfer.setData( 'text/html', getSelectedHtml ) +// * else +// * browser's default behavior +// -- CTRL+X +// * listen onKey (onkeydown) +// * fire 'saveSnapshot' on editor +// * if ( isCustomCopyCutSupported ) +// * dataTransfer.setData( 'text/html', getSelectedHtml ) +// * extractSelectedHtml // remove selected contents +// * else +// * browser's default behavior +// * deferred second 'saveSnapshot' event +// -- CTRL+V +// * listen onKey (onkeydown) +// * simulate 'beforepaste' for non-IEs on editable +// * listen 'onpaste' on editable ('onbeforepaste' for IE) +// * fire 'beforePaste' on editor +// * if ( !canceled && ( htmlInDataTransfer || !external paste) && dataTransfer is not empty ) getClipboardDataByPastebin +// * fire 'paste' on editor +// * !canceled && fire 'afterPaste' on editor +// -- Copy command +// * tryToCutCopy +// * execCommand +// * !success && notification +// -- Cut command +// * fixCut +// * tryToCutCopy +// * execCommand +// * !success && notification +// -- Paste command +// * fire 'paste' on editable ('beforepaste' for IE) +// * !canceled && execCommand 'paste' +// -- Paste from native context menu & menubar +// (Fx & Webkits are handled in 'paste' default listener. +// Opera cannot be handled at all because it doesn't fire any events +// Special treatment is needed for IE, for which is this part of doc) +// * listen 'onpaste' +// * cancel native event +// * fire 'beforePaste' on editor +// * if ( !canceled && ( htmlInDataTransfer || !external paste) && dataTransfer is not empty ) getClipboardDataByPastebin +// * execIECommand( 'paste' ) -> this fires another 'paste' event, so cancel it +// * fire 'paste' on editor +// * !canceled && fire 'afterPaste' on editor +// +// +// PASTE EVENT - PREPROCESSING: +// -- Possible dataValue types: auto, text, html. +// -- Possible dataValue contents: +// * text (possible \n\r) +// * htmlified text (text + br,div,p - no presentational markup & attrs - depends on browser) +// * html +// -- Possible flags: +// * htmlified - if true then content is a HTML even if no markup inside. This flag is set +// for content from editable pastebins, because they 'htmlify' pasted content. +// +// -- Type: auto: +// * content: htmlified text -> filter, unify text markup (brs, ps, divs), set type: text +// * content: html -> filter, set type: html +// -- Type: text: +// * content: htmlified text -> filter, unify text markup +// * content: html -> filter, strip presentational markup, unify text markup +// -- Type: html: +// * content: htmlified text -> filter, unify text markup +// * content: html -> filter +// +// -- Phases: +// * if dataValue is empty copy data from dataTransfer to dataValue (priority 1) +// * filtering (priorities 3-5) - e.g. pastefromword filters +// * content type sniffing (priority 6) +// * markup transformations for text (priority 6) +// +// DRAG & DROP EXECUTION FLOWS: +// -- Drag +// * save to the global object: +// * drag timestamp (with 'cke-' prefix), +// * selected html, +// * drag range, +// * editor instance. +// * put drag timestamp into event.dataTransfer.text +// -- Drop +// * if events text == saved timestamp && editor == saved editor +// internal drag & drop occurred +// * getRangeAtDropPosition +// * create bookmarks for drag and drop ranges starting from the end of the document +// * dragRange.deleteContents() +// * fire 'paste' with saved html and drop range +// * if events text == saved timestamp && editor != saved editor +// cross editor drag & drop occurred +// * getRangeAtDropPosition +// * fire 'paste' with saved html +// * dragRange.deleteContents() +// * FF: refreshCursor on afterPaste +// * if events text != saved timestamp +// drop form external source occurred +// * getRangeAtDropPosition +// * if event contains html data then fire 'paste' with html +// * else if event contains text data then fire 'paste' with encoded text +// * FF: refreshCursor on afterPaste + +'use strict'; + +( function() { + // Register the plugin. + CKEDITOR.plugins.add( 'clipboard', { + requires: 'notification,toolbar', + // jscs:disable maximumLineLength + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + // jscs:enable maximumLineLength + icons: 'copy,copy-rtl,cut,cut-rtl,paste,paste-rtl', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + init: function( editor ) { + var filterType, + filtersFactory = filtersFactoryFactory(); + + if ( editor.config.forcePasteAsPlainText ) { + filterType = 'plain-text'; + } else if ( editor.config.pasteFilter ) { + filterType = editor.config.pasteFilter; + } + // On Webkit the pasteFilter defaults 'semantic-content' because pasted data is so terrible + // that it must be always filtered. + else if ( CKEDITOR.env.webkit && !( 'pasteFilter' in editor.config ) ) { + filterType = 'semantic-content'; + } + + editor.pasteFilter = filtersFactory.get( filterType ); + + initPasteClipboard( editor ); + initDragDrop( editor ); + + // Convert image file (if present) to base64 string for Firefox. Do it as the first + // step as the conversion is asynchronous and should hold all further paste processing. + if ( CKEDITOR.env.gecko ) { + var supportedImageTypes = [ 'image/png', 'image/jpeg', 'image/gif' ], + latestId; + + editor.on( 'paste', function( evt ) { + var dataObj = evt.data, + data = dataObj.dataValue, + dataTransfer = dataObj.dataTransfer; + + // If data empty check for image content inside data transfer. http://dev.ckeditor.com/ticket/16705 + if ( !data && dataObj.method == 'paste' && dataTransfer && dataTransfer.getFilesCount() == 1 && latestId != dataTransfer.id ) { + var file = dataTransfer.getFile( 0 ); + + if ( CKEDITOR.tools.indexOf( supportedImageTypes, file.type ) != -1 ) { + var fileReader = new FileReader(); + + // Convert image file to img tag with base64 image. + fileReader.addEventListener( 'load', function() { + evt.data.dataValue = ''; + editor.fire( 'paste', evt.data ); + }, false ); + + // Proceed with normal flow if reading file was aborted. + fileReader.addEventListener( 'abort', function() { + editor.fire( 'paste', evt.data ); + }, false ); + + // Proceed with normal flow if reading file failed. + fileReader.addEventListener( 'error', function() { + editor.fire( 'paste', evt.data ); + }, false ); + + fileReader.readAsDataURL( file ); + + latestId = dataObj.dataTransfer.id; + + evt.stop(); + } + } + }, null, null, 1 ); + } + + editor.on( 'paste', function( evt ) { + // Init `dataTransfer` if `paste` event was fired without it, so it will be always available. + if ( !evt.data.dataTransfer ) { + evt.data.dataTransfer = new CKEDITOR.plugins.clipboard.dataTransfer(); + } + + // If dataValue is already set (manually or by paste bin), so do not override it. + if ( evt.data.dataValue ) { + return; + } + + var dataTransfer = evt.data.dataTransfer, + // IE support only text data and throws exception if we try to get html data. + // This html data object may also be empty if we drag content of the textarea. + value = dataTransfer.getData( 'text/html' ); + + if ( value ) { + evt.data.dataValue = value; + evt.data.type = 'html'; + } else { + // Try to get text data otherwise. + value = dataTransfer.getData( 'text/plain' ); + + if ( value ) { + evt.data.dataValue = editor.editable().transformPlainTextToHtml( value ); + evt.data.type = 'text'; + } + } + }, null, null, 1 ); + + editor.on( 'paste', function( evt ) { + var data = evt.data.dataValue, + blockElements = CKEDITOR.dtd.$block; + + // Filter webkit garbage. + if ( data.indexOf( 'Apple-' ) > -1 ) { + // Replace special webkit's   with simple space, because webkit + // produces them even for normal spaces. + data = data.replace( / <\/span>/gi, ' ' ); + + // Strip around white-spaces when not in forced 'html' content type. + // This spans are created only when pasting plain text into Webkit, + // but for safety reasons remove them always. + if ( evt.data.type != 'html' ) { + data = data.replace( /]*>([^<]*)<\/span>/gi, function( all, spaces ) { + // Replace tabs with 4 spaces like Fx does. + return spaces.replace( /\t/g, '    ' ); + } ); + } + + // This br is produced only when copying & pasting HTML content. + if ( data.indexOf( '
' ) > -1 ) { + evt.data.startsWithEOL = 1; + evt.data.preSniffing = 'html'; // Mark as not text. + data = data.replace( /
/, '' ); + } + + // Remove all other classes. + data = data.replace( /(<[^>]+) class="Apple-[^"]*"/gi, '$1' ); + } + + // Strip editable that was copied from inside. (http://dev.ckeditor.com/ticket/9534) + if ( data.match( /^<[^<]+cke_(editable|contents)/i ) ) { + var tmp, + editable_wrapper, + wrapper = new CKEDITOR.dom.element( 'div' ); + + wrapper.setHtml( data ); + // Verify for sure and check for nested editor UI parts. (http://dev.ckeditor.com/ticket/9675) + while ( wrapper.getChildCount() == 1 && + ( tmp = wrapper.getFirst() ) && + tmp.type == CKEDITOR.NODE_ELEMENT && // Make sure first-child is element. + ( tmp.hasClass( 'cke_editable' ) || tmp.hasClass( 'cke_contents' ) ) ) { + wrapper = editable_wrapper = tmp; + } + + // If editable wrapper was found strip it and bogus
(added on FF). + if ( editable_wrapper ) + data = editable_wrapper.getHtml().replace( /
$/i, '' ); + } + + if ( CKEDITOR.env.ie ) { + //  

->

(br.cke-pasted-remove will be removed later) + data = data.replace( /^ (?: |\r\n)?<(\w+)/g, function( match, elementName ) { + if ( elementName.toLowerCase() in blockElements ) { + evt.data.preSniffing = 'html'; // Mark as not a text. + return '<' + elementName; + } + return match; + } ); + } else if ( CKEDITOR.env.webkit ) { + //


->


+ // We don't mark br, because this situation can happen for htmlified text too. + data = data.replace( /<\/(\w+)>

<\/div>$/, function( match, elementName ) { + if ( elementName in blockElements ) { + evt.data.endsWithEOL = 1; + return ''; + } + return match; + } ); + } else if ( CKEDITOR.env.gecko ) { + // Firefox adds bogus
when user pasted text followed by space(s). + data = data.replace( /(\s)
$/, '$1' ); + } + + evt.data.dataValue = data; + }, null, null, 3 ); + + editor.on( 'paste', function( evt ) { + var dataObj = evt.data, + type = editor._.nextPasteType || dataObj.type, + data = dataObj.dataValue, + trueType, + // Default is 'html'. + defaultType = editor.config.clipboard_defaultContentType || 'html', + transferType = dataObj.dataTransfer.getTransferType( editor ); + + // If forced type is 'html' we don't need to know true data type. + if ( type == 'html' || dataObj.preSniffing == 'html' ) { + trueType = 'html'; + } else { + trueType = recogniseContentType( data ); + } + + delete editor._.nextPasteType; + + // Unify text markup. + if ( trueType == 'htmlifiedtext' ) { + data = htmlifiedTextHtmlification( editor.config, data ); + } + + // Strip presentational markup & unify text markup. + // Forced plain text. + // Note: we do not check dontFilter option in this case, because forcePAPT was implemented + // before pasteFilter and pasteFilter is automatically used on Webkit&Blink since 4.5, so + // forcePAPT should have priority as it had before 4.5. + if ( type == 'text' && trueType == 'html' ) { + data = filterContent( editor, data, filtersFactory.get( 'plain-text' ) ); + } + // External paste and pasteFilter exists and filtering isn't disabled. + else if ( transferType == CKEDITOR.DATA_TRANSFER_EXTERNAL && editor.pasteFilter && !dataObj.dontFilter ) { + data = filterContent( editor, data, editor.pasteFilter ); + } + + if ( dataObj.startsWithEOL ) { + data = '
' + data; + } + if ( dataObj.endsWithEOL ) { + data += '
'; + } + + if ( type == 'auto' ) { + type = ( trueType == 'html' || defaultType == 'html' ) ? 'html' : 'text'; + } + + dataObj.type = type; + dataObj.dataValue = data; + delete dataObj.preSniffing; + delete dataObj.startsWithEOL; + delete dataObj.endsWithEOL; + }, null, null, 6 ); + + // Inserts processed data into the editor at the end of the + // events chain. + editor.on( 'paste', function( evt ) { + var data = evt.data; + + if ( data.dataValue ) { + editor.insertHtml( data.dataValue, data.type, data.range ); + + // Defer 'afterPaste' so all other listeners for 'paste' will be fired first. + // Fire afterPaste only if paste inserted some HTML. + setTimeout( function() { + editor.fire( 'afterPaste' ); + }, 0 ); + } + }, null, null, 1000 ); + } + } ); + + function firePasteEvents( editor, data, withBeforePaste ) { + if ( !data.type ) { + data.type = 'auto'; + } + + if ( withBeforePaste ) { + // Fire 'beforePaste' event so clipboard flavor get customized + // by other plugins. + if ( editor.fire( 'beforePaste', data ) === false ) + return false; // Event canceled + } + + // Do not fire paste if there is no data (dataValue and dataTranfser are empty). + // This check should be done after firing 'beforePaste' because for native paste + // 'beforePaste' is by default fired even for empty clipboard. + if ( !data.dataValue && data.dataTransfer.isEmpty() ) { + return false; + } + + if ( !data.dataValue ) { + data.dataValue = ''; + } + + // Because of FF bug we need to use this hack, otherwise cursor is hidden + // or it is not possible to move it (http://dev.ckeditor.com/ticket/12420). + // Also, check that editor.toolbox exists, because the toolbar plugin might not be loaded (http://dev.ckeditor.com/ticket/13305). + if ( CKEDITOR.env.gecko && data.method == 'drop' && editor.toolbox ) { + editor.once( 'afterPaste', function() { + editor.toolbox.focus(); + } ); + } + + return editor.fire( 'paste', data ); + } + + function initPasteClipboard( editor ) { + var clipboard = CKEDITOR.plugins.clipboard, + preventBeforePasteEvent = 0, + preventPasteEvent = 0, + inReadOnly = 0; + + addListeners(); + addButtonsCommands(); + + /** + * Gets clipboard data by directly accessing the clipboard (IE only). + * + * editor.getClipboardData( function( data ) { + * if ( data ) + * alert( data.type + ' ' + data.dataValue ); + * } ); + * + * @member CKEDITOR.editor + * @param {Function/Object} callbackOrOptions For function, see the `callback` parameter documentation. The object was used before 4.7.0 with the `title` property, to set the paste dialog's title. + * @param {Function} callback A function that will be executed with the `data` property of the + * {@link CKEDITOR.editor#event-paste paste event} or `null` if none of the capturing methods succeeded. + * Since 4.7.0 the `callback` should be provided as a first argument, just like in the example above. This parameter will be removed in + * an upcoming major release. + */ + editor.getClipboardData = function( callbackOrOptions, callback ) { + // Options are optional - args shift. + if ( !callback ) { + callback = callbackOrOptions; + callbackOrOptions = null; + } + + // Listen with maximum priority to handle content before everyone else. + // This callback will handle paste event that will be fired if direct + // access to the clipboard succeed in IE. + editor.on( 'paste', onPaste, null, null, 0 ); + + // If command didn't succeed (only IE allows to access clipboard and only if + // user agrees) invoke callback with null, meaning that paste is not blocked. + if ( getClipboardDataDirectly() === false ) { + // Direct access to the clipboard wasn't successful so remove listener. + editor.removeListener( 'paste', onPaste ); + + callback( null ); + } + + function onPaste( evt ) { + evt.removeListener(); + evt.cancel(); + callback( evt.data ); + } + }; + + function addButtonsCommands() { + addButtonCommand( 'Cut', 'cut', createCutCopyCmd( 'cut' ), 10, 1 ); + addButtonCommand( 'Copy', 'copy', createCutCopyCmd( 'copy' ), 20, 4 ); + addButtonCommand( 'Paste', 'paste', createPasteCmd(), 30, 8 ); + + function addButtonCommand( buttonName, commandName, command, toolbarOrder, ctxMenuOrder ) { + var lang = editor.lang.clipboard[ commandName ]; + + editor.addCommand( commandName, command ); + editor.ui.addButton && editor.ui.addButton( buttonName, { + label: lang, + command: commandName, + toolbar: 'clipboard,' + toolbarOrder + } ); + + // If the "menu" plugin is loaded, register the menu item. + if ( editor.addMenuItems ) { + editor.addMenuItem( commandName, { + label: lang, + command: commandName, + group: 'clipboard', + order: ctxMenuOrder + } ); + } + } + } + + function addListeners() { + editor.on( 'key', onKey ); + editor.on( 'contentDom', addPasteListenersToEditable ); + + // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that. + editor.on( 'selectionChange', function( evt ) { + inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly(); + setToolbarStates(); + } ); + + // If the "contextmenu" plugin is loaded, register the listeners. + if ( editor.contextMenu ) { + editor.contextMenu.addListener( function( element, selection ) { + inReadOnly = selection.getRanges()[ 0 ].checkReadOnly(); + return { + cut: stateFromNamedCommand( 'cut' ), + copy: stateFromNamedCommand( 'copy' ), + paste: stateFromNamedCommand( 'paste' ) + }; + } ); + } + } + + // Add events listeners to editable. + function addPasteListenersToEditable() { + var editable = editor.editable(); + + if ( CKEDITOR.plugins.clipboard.isCustomCopyCutSupported ) { + var initOnCopyCut = function( evt ) { + // If user tries to cut in read-only editor, we must prevent default action. (http://dev.ckeditor.com/ticket/13872) + if ( !editor.readOnly || evt.name != 'cut' ) { + clipboard.initPasteDataTransfer( evt, editor ); + } + evt.data.preventDefault(); + }; + + editable.on( 'copy', initOnCopyCut ); + editable.on( 'cut', initOnCopyCut ); + + // Delete content with the low priority so one can overwrite cut data. + editable.on( 'cut', function() { + // If user tries to cut in read-only editor, we must prevent default action. (http://dev.ckeditor.com/ticket/13872) + if ( !editor.readOnly ) { + editor.extractSelectedHtml(); + } + }, null, null, 999 ); + } + + // We'll be catching all pasted content in one line, regardless of whether + // it's introduced by a document command execution (e.g. toolbar buttons) or + // user paste behaviors (e.g. CTRL+V). + editable.on( clipboard.mainPasteEvent, function( evt ) { + if ( clipboard.mainPasteEvent == 'beforepaste' && preventBeforePasteEvent ) { + return; + } + + // If you've just asked yourself why preventPasteEventNow() is not here, but + // in listener for CTRL+V and exec method of 'paste' command + // you've asked the same question we did. + // + // THE ANSWER: + // + // First thing to notice - this answer makes sense only for IE, + // because other browsers don't listen for 'paste' event. + // + // What would happen if we move preventPasteEventNow() here? + // For: + // * CTRL+V - IE fires 'beforepaste', so we prevent 'paste' and pasteDataFromClipboard(). OK. + // * editor.execCommand( 'paste' ) - we fire 'beforepaste', so we prevent + // 'paste' and pasteDataFromClipboard() and doc.execCommand( 'Paste' ). OK. + // * native context menu - IE fires 'beforepaste', so we prevent 'paste', but unfortunately + // on IE we fail with pasteDataFromClipboard() here, because of... we don't know why, but + // we just fail, so... we paste nothing. FAIL. + // * native menu bar - the same as for native context menu. + // + // But don't you know any way to distinguish first two cases from last two? + // Only one - special flag set in CTRL+V handler and exec method of 'paste' + // command. And that's what we did using preventPasteEventNow(). + + pasteDataFromClipboard( evt ); + } ); + + // It's not possible to clearly handle all four paste methods (ctrl+v, native menu bar + // native context menu, editor's command) in one 'paste/beforepaste' event in IE. + // + // For ctrl+v & editor's command it's easy to handle pasting in 'beforepaste' listener, + // so we do this. For another two methods it's better to use 'paste' event. + // + // 'paste' is always being fired after 'beforepaste' (except of weird one on opening native + // context menu), so for two methods handled in 'beforepaste' we're canceling 'paste' + // using preventPasteEvent state. + // + // 'paste' event in IE is being fired before getClipboardDataByPastebin executes its callback. + // + // QUESTION: Why didn't you handle all 4 paste methods in handler for 'paste'? + // Wouldn't this just be simpler? + // ANSWER: Then we would have to evt.data.preventDefault() only for native + // context menu and menu bar pastes. The same with execIECommand(). + // That would force us to mark CTRL+V and editor's paste command with + // special flag, other than preventPasteEvent. But we still would have to + // have preventPasteEvent for the second event fired by execIECommand. + // Code would be longer and not cleaner. + if ( clipboard.mainPasteEvent == 'beforepaste' ) { + editable.on( 'paste', function( evt ) { + if ( preventPasteEvent ) { + return; + } + + // Cancel next 'paste' event fired by execIECommand( 'paste' ) + // at the end of this callback. + preventPasteEventNow(); + + // Prevent native paste. + evt.data.preventDefault(); + + pasteDataFromClipboard( evt ); + + // Force IE to paste content into pastebin so pasteDataFromClipboard will work. + execIECommand( 'paste' ); + } ); + + // If mainPasteEvent is 'beforePaste' (IE before Edge), + // dismiss the (wrong) 'beforepaste' event fired on context/toolbar menu open. (http://dev.ckeditor.com/ticket/7953) + editable.on( 'contextmenu', preventBeforePasteEventNow, null, null, 0 ); + + editable.on( 'beforepaste', function( evt ) { + // Do not prevent event on CTRL+V and SHIFT+INS because it blocks paste (http://dev.ckeditor.com/ticket/11970). + if ( evt.data && !evt.data.$.ctrlKey && !evt.data.$.shiftKey ) + preventBeforePasteEventNow(); + }, null, null, 0 ); + } + + editable.on( 'beforecut', function() { + !preventBeforePasteEvent && fixCut( editor ); + } ); + + var mouseupTimeout; + + // Use editor.document instead of editable in non-IEs for observing mouseup + // since editable won't fire the event if selection process started within + // iframe and ended out of the editor (http://dev.ckeditor.com/ticket/9851). + editable.attachListener( CKEDITOR.env.ie ? editable : editor.document.getDocumentElement(), 'mouseup', function() { + mouseupTimeout = setTimeout( function() { + setToolbarStates(); + }, 0 ); + } ); + + // Make sure that deferred mouseup callback isn't executed after editor instance + // had been destroyed. This may happen when editor.destroy() is called in parallel + // with mouseup event (i.e. a button with onclick callback) (http://dev.ckeditor.com/ticket/10219). + editor.on( 'destroy', function() { + clearTimeout( mouseupTimeout ); + } ); + + editable.on( 'keyup', setToolbarStates ); + } + + // Create object representing Cut or Copy commands. + function createCutCopyCmd( type ) { + return { + type: type, + canUndo: type == 'cut', // We can't undo copy to clipboard. + startDisabled: true, + fakeKeystroke: type == 'cut' ? CKEDITOR.CTRL + 88 /*X*/ : CKEDITOR.CTRL + 67 /*C*/, + exec: function() { + // Attempts to execute the Cut and Copy operations. + function tryToCutCopy( type ) { + if ( CKEDITOR.env.ie ) + return execIECommand( type ); + + // non-IEs part + try { + // Other browsers throw an error if the command is disabled. + return editor.document.$.execCommand( type, false, null ); + } catch ( e ) { + return false; + } + } + + this.type == 'cut' && fixCut(); + + var success = tryToCutCopy( this.type ); + + if ( !success ) { + // Show cutError or copyError. + editor.showNotification( editor.lang.clipboard[ this.type + 'Error' ] ); // jshint ignore:line + } + + return success; + } + }; + } + + function createPasteCmd() { + return { + // Snapshots are done manually by editable.insertXXX methods. + canUndo: false, + async: true, + fakeKeystroke: CKEDITOR.CTRL + 86 /*V*/, + + /** + * The default implementation of the paste command. + * + * @private + * @param {CKEDITOR.editor} editor An instance of the editor where the command is being executed. + * @param {Object/String} data If `data` is a string, then it is considered content that is being pasted. + * Otherwise it is treated as an object with options. + * @param {Boolean/String} [data.notification=true] Content for a notification shown after an unsuccessful + * paste attempt. If `false`, the notification will not be displayed. This parameter was added in 4.7.0. + * @param {String} [data.type='html'] The type of pasted content. There are two allowed values: + * * 'html' + * * 'text' + * @param {String/Object} data.dataValue Content being pasted. If this parameter is an object, it + * is supposed to be a `data` property of the {@link CKEDITOR.editor#paste} event. + * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer Data transfer instance connected + * with the current paste action. + * @member CKEDITOR.editor.commands.paste + */ + exec: function( editor, data ) { + data = typeof data !== 'undefined' && data !== null ? data : {}; + + var cmd = this, + notification = typeof data.notification !== 'undefined' ? data.notification : true, + forcedType = data.type, + keystroke = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard, + editor.getCommandKeystroke( this ) ), + msg = typeof notification === 'string' ? notification : editor.lang.clipboard.pasteNotification + .replace( /%1/, '' + keystroke.display + '' ), + pastedContent = typeof data === 'string' ? data : data.dataValue; + + function callback( data, withBeforePaste ) { + withBeforePaste = typeof withBeforePaste !== 'undefined' ? withBeforePaste : true; + + if ( data ) { + data.method = 'paste'; + + if ( !data.dataTransfer ) { + data.dataTransfer = clipboard.initPasteDataTransfer(); + } + + firePasteEvents( editor, data, withBeforePaste ); + } else if ( notification ) { + editor.showNotification( msg, 'info', editor.config.clipboard_notificationDuration ); + } + + editor.fire( 'afterCommandExec', { + name: 'paste', + command: cmd, + returnValue: !!data + } ); + } + + // Force type for the next paste. + if ( forcedType ) { + editor._.nextPasteType = forcedType; + } else { + delete editor._.nextPasteType; + } + + if ( typeof pastedContent === 'string' ) { + callback( { + dataValue: pastedContent + } ); + } else { + editor.getClipboardData( callback ); + } + } + }; + } + + function preventPasteEventNow() { + preventPasteEvent = 1; + // For safety reason we should wait longer than 0/1ms. + // We don't know how long execution of quite complex getClipboardData will take + // and in for example 'paste' listener execCommand() (which fires 'paste') is called + // after getClipboardData finishes. + // Luckily, it's impossible to immediately fire another 'paste' event we want to handle, + // because we only handle there native context menu and menu bar. + setTimeout( function() { + preventPasteEvent = 0; + }, 100 ); + } + + function preventBeforePasteEventNow() { + preventBeforePasteEvent = 1; + setTimeout( function() { + preventBeforePasteEvent = 0; + }, 10 ); + } + + // Tries to execute any of the paste, cut or copy commands in IE. Returns a + // boolean indicating that the operation succeeded. + // @param {String} command *LOWER CASED* name of command ('paste', 'cut', 'copy'). + function execIECommand( command ) { + var doc = editor.document, + body = doc.getBody(), + enabled = false, + onExec = function() { + enabled = true; + }; + + // The following seems to be the only reliable way to detect that + // clipboard commands are enabled in IE. It will fire the + // onpaste/oncut/oncopy events only if the security settings allowed + // the command to execute. + body.on( command, onExec ); + + // IE7: document.execCommand has problem to paste into positioned element. + if ( CKEDITOR.env.version > 7 ) { + doc.$.execCommand( command ); + } else { + doc.$.selection.createRange().execCommand( command ); + } + + body.removeListener( command, onExec ); + + return enabled; + } + + // Cutting off control type element in IE standards breaks the selection entirely. (http://dev.ckeditor.com/ticket/4881) + function fixCut() { + if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks ) + return; + + var sel = editor.getSelection(), + control, range, dummy; + + if ( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) ) { + range = sel.getRanges()[ 0 ]; + dummy = editor.document.createText( '' ); + dummy.insertBefore( control ); + range.setStartBefore( dummy ); + range.setEndAfter( control ); + sel.selectRanges( [ range ] ); + + // Clear up the fix if the paste wasn't succeeded. + setTimeout( function() { + // Element still online? + if ( control.getParent() ) { + dummy.remove(); + sel.selectElement( control ); + } + }, 0 ); + } + } + + // Allow to peek clipboard content by redirecting the + // pasting content into a temporary bin and grab the content of it. + function getClipboardDataByPastebin( evt, callback ) { + var doc = editor.document, + editable = editor.editable(), + cancel = function( evt ) { + evt.cancel(); + }, + blurListener; + + // Avoid recursions on 'paste' event or consequent paste too fast. (http://dev.ckeditor.com/ticket/5730) + if ( doc.getById( 'cke_pastebin' ) ) + return; + + var sel = editor.getSelection(); + var bms = sel.createBookmarks(); + + // http://dev.ckeditor.com/ticket/11384. On IE9+ we use native selectionchange (i.e. editor#selectionCheck) to cache the most + // recent selection which we then lock on editable blur. See selection.js for more info. + // selectionchange fired before getClipboardDataByPastebin() cached selection + // before creating bookmark (cached selection will be invalid, because bookmarks modified the DOM), + // so we need to fire selectionchange one more time, to store current seleciton. + // Selection will be locked when we focus pastebin. + if ( CKEDITOR.env.ie ) + sel.root.fire( 'selectionchange' ); + + // Create container to paste into. + // For rich content we prefer to use "body" since it holds + // the least possibility to be splitted by pasted content, while this may + // breaks the text selection on a frame-less editable, "div" would be + // the best one in that case. + // In another case on old IEs moving the selection into a "body" paste bin causes error panic. + // Body can't be also used for Opera which fills it with
+ // what is indistinguishable from pasted
(copying
in Opera isn't possible, + // but it can be copied from other browser). + var pastebin = new CKEDITOR.dom.element( + ( CKEDITOR.env.webkit || editable.is( 'body' ) ) && !CKEDITOR.env.ie ? 'body' : 'div', doc ); + + pastebin.setAttributes( { + id: 'cke_pastebin', + 'data-cke-temp': '1' + } ); + + var containerOffset = 0, + offsetParent, + win = doc.getWindow(); + + if ( CKEDITOR.env.webkit ) { + // It's better to paste close to the real paste destination, so inherited styles + // (which Webkits will try to compensate by styling span) differs less from the destination's one. + editable.append( pastebin ); + // Style pastebin like .cke_editable, to minimize differences between origin and destination. (http://dev.ckeditor.com/ticket/9754) + pastebin.addClass( 'cke_editable' ); + + // Compensate position of offsetParent. + if ( !editable.is( 'body' ) ) { + // We're not able to get offsetParent from pastebin (body element), so check whether + // its parent (editable) is positioned. + if ( editable.getComputedStyle( 'position' ) != 'static' ) + offsetParent = editable; + // And if not - safely get offsetParent from editable. + else + offsetParent = CKEDITOR.dom.element.get( editable.$.offsetParent ); + + containerOffset = offsetParent.getDocumentPosition().y; + } + } else { + // Opera and IE doesn't allow to append to html element. + editable.getAscendant( CKEDITOR.env.ie ? 'body' : 'html', 1 ).append( pastebin ); + } + + pastebin.setStyles( { + position: 'absolute', + // Position the bin at the top (+10 for safety) of viewport to avoid any subsequent document scroll. + top: ( win.getScrollPosition().y - containerOffset + 10 ) + 'px', + width: '1px', + // Caret has to fit in that height, otherwise browsers like Chrome & Opera will scroll window to show it. + // Set height equal to viewport's height - 20px (safety gaps), minimum 1px. + height: Math.max( 1, win.getViewPaneSize().height - 20 ) + 'px', + overflow: 'hidden', + // Reset styles that can mess up pastebin position. + margin: 0, + padding: 0 + } ); + + // Paste fails in Safari when the body tag has 'user-select: none'. (http://dev.ckeditor.com/ticket/12506) + if ( CKEDITOR.env.safari ) + pastebin.setStyles( CKEDITOR.tools.cssVendorPrefix( 'user-select', 'text' ) ); + + // Check if the paste bin now establishes new editing host. + var isEditingHost = pastebin.getParent().isReadOnly(); + + if ( isEditingHost ) { + // Hide the paste bin. + pastebin.setOpacity( 0 ); + // And make it editable. + pastebin.setAttribute( 'contenteditable', true ); + } + // Transparency is not enough since positioned non-editing host always shows + // resize handler, pull it off the screen instead. + else { + pastebin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-10000px' ); + } + + editor.on( 'selectionChange', cancel, null, null, 0 ); + + // Webkit fill fire blur on editable when moving selection to + // pastebin (if body is used). Cancel it because it causes incorrect + // selection lock in case of inline editor (http://dev.ckeditor.com/ticket/10644). + // The same seems to apply to Firefox (http://dev.ckeditor.com/ticket/10787). + if ( CKEDITOR.env.webkit || CKEDITOR.env.gecko ) + blurListener = editable.once( 'blur', cancel, null, null, -100 ); + + // Temporarily move selection to the pastebin. + isEditingHost && pastebin.focus(); + var range = new CKEDITOR.dom.range( pastebin ); + range.selectNodeContents( pastebin ); + var selPastebin = range.select(); + + // If non-native paste is executed, IE will open security alert and blur editable. + // Editable will then lock selection inside itself and after accepting security alert + // this selection will be restored. We overwrite stored selection, so it's restored + // in pastebin. (http://dev.ckeditor.com/ticket/9552) + if ( CKEDITOR.env.ie ) { + blurListener = editable.once( 'blur', function() { + editor.lockSelection( selPastebin ); + } ); + } + + var scrollTop = CKEDITOR.document.getWindow().getScrollPosition().y; + + // Wait a while and grab the pasted contents. + setTimeout( function() { + // Restore main window's scroll position which could have been changed + // by browser in cases described in http://dev.ckeditor.com/ticket/9771. + if ( CKEDITOR.env.webkit ) + CKEDITOR.document.getBody().$.scrollTop = scrollTop; + + // Blur will be fired only on non-native paste. In other case manually remove listener. + blurListener && blurListener.removeListener(); + + // Restore properly the document focus. (http://dev.ckeditor.com/ticket/8849) + if ( CKEDITOR.env.ie ) + editable.focus(); + + // IE7: selection must go before removing pastebin. (http://dev.ckeditor.com/ticket/8691) + sel.selectBookmarks( bms ); + pastebin.remove(); + + // Grab the HTML contents. + // We need to look for a apple style wrapper on webkit it also adds + // a div wrapper if you copy/paste the body of the editor. + // Remove hidden div and restore selection. + var bogusSpan; + if ( CKEDITOR.env.webkit && ( bogusSpan = pastebin.getFirst() ) && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ) + pastebin = bogusSpan; + + editor.removeListener( 'selectionChange', cancel ); + callback( pastebin.getHtml() ); + }, 0 ); + } + + // Try to get content directly on IE from clipboard, without native event + // being fired before. In other words - synthetically get clipboard data, if it's possible. + // mainPasteEvent will be fired, so if forced native paste: + // * worked, getClipboardDataByPastebin will grab it, + // * didn't work, dataValue and dataTransfer will be empty and editor#paste won't be fired. + // Clipboard data can be accessed directly only on IEs older than Edge. + // On other browsers we should fire beforePaste event and return false. + function getClipboardDataDirectly() { + if ( clipboard.mainPasteEvent == 'paste' ) { + editor.fire( 'beforePaste', { type: 'auto', method: 'paste' } ); + return false; + } + + // Prevent IE from pasting at the begining of the document. + editor.focus(); + + // Command will be handled by 'beforepaste', but as + // execIECommand( 'paste' ) will fire also 'paste' event + // we're canceling it. + preventPasteEventNow(); + + // http://dev.ckeditor.com/ticket/9247: Lock focus to prevent IE from hiding toolbar for inline editor. + var focusManager = editor.focusManager; + focusManager.lock(); + + if ( editor.editable().fire( clipboard.mainPasteEvent ) && !execIECommand( 'paste' ) ) { + focusManager.unlock(); + return false; + } + focusManager.unlock(); + + return true; + } + + // Listens for some clipboard related keystrokes, so they get customized. + // Needs to be bind to keydown event. + function onKey( event ) { + if ( editor.mode != 'wysiwyg' ) + return; + + switch ( event.data.keyCode ) { + // Paste + case CKEDITOR.CTRL + 86: // CTRL+V + case CKEDITOR.SHIFT + 45: // SHIFT+INS + var editable = editor.editable(); + + // Cancel 'paste' event because ctrl+v is for IE handled + // by 'beforepaste'. + preventPasteEventNow(); + + // Simulate 'beforepaste' event for all browsers using 'paste' as main event. + if ( clipboard.mainPasteEvent == 'paste' ) { + editable.fire( 'beforepaste' ); + } + + return; + + // Cut + case CKEDITOR.CTRL + 88: // CTRL+X + case CKEDITOR.SHIFT + 46: // SHIFT+DEL + // Save Undo snapshot. + editor.fire( 'saveSnapshot' ); // Save before cut + setTimeout( function() { + editor.fire( 'saveSnapshot' ); // Save after cut + }, 50 ); // OSX is slow (http://dev.ckeditor.com/ticket/11416). + } + } + + function pasteDataFromClipboard( evt ) { + // Default type is 'auto', but can be changed by beforePaste listeners. + var eventData = { + type: 'auto', + method: 'paste', + dataTransfer: clipboard.initPasteDataTransfer( evt ) + }; + + eventData.dataTransfer.cacheData(); + + // Fire 'beforePaste' event so clipboard flavor get customized by other plugins. + // If 'beforePaste' is canceled continue executing getClipboardDataByPastebin and then do nothing + // (do not fire 'paste', 'afterPaste' events). This way we can grab all - synthetically + // and natively pasted content and prevent its insertion into editor + // after canceling 'beforePaste' event. + var beforePasteNotCanceled = editor.fire( 'beforePaste', eventData ) !== false; + + // Do not use paste bin if the browser let us get HTML or files from dataTranfer. + if ( beforePasteNotCanceled && clipboard.canClipboardApiBeTrusted( eventData.dataTransfer, editor ) ) { + evt.data.preventDefault(); + setTimeout( function() { + firePasteEvents( editor, eventData ); + }, 0 ); + } else { + getClipboardDataByPastebin( evt, function( data ) { + // Clean up. + eventData.dataValue = data.replace( /]+data-cke-bookmark[^<]*?<\/span>/ig, '' ); + + // Fire remaining events (without beforePaste) + beforePasteNotCanceled && firePasteEvents( editor, eventData ); + } ); + } + } + + function setToolbarStates() { + if ( editor.mode != 'wysiwyg' ) + return; + + var pasteState = stateFromNamedCommand( 'paste' ); + + editor.getCommand( 'cut' ).setState( stateFromNamedCommand( 'cut' ) ); + editor.getCommand( 'copy' ).setState( stateFromNamedCommand( 'copy' ) ); + editor.getCommand( 'paste' ).setState( pasteState ); + editor.fire( 'pasteState', pasteState ); + } + + function stateFromNamedCommand( command ) { + if ( inReadOnly && command in { paste: 1, cut: 1 } ) + return CKEDITOR.TRISTATE_DISABLED; + + if ( command == 'paste' ) + return CKEDITOR.TRISTATE_OFF; + + // Cut, copy - check if the selection is not empty. + var sel = editor.getSelection(), + ranges = sel.getRanges(), + selectionIsEmpty = sel.getType() == CKEDITOR.SELECTION_NONE || ( ranges.length == 1 && ranges[ 0 ].collapsed ); + + return selectionIsEmpty ? CKEDITOR.TRISTATE_DISABLED : CKEDITOR.TRISTATE_OFF; + } + } + + // Returns: + // * 'htmlifiedtext' if content looks like transformed by browser from plain text. + // See clipboard/paste.html TCs for more info. + // * 'html' if it is not 'htmlifiedtext'. + function recogniseContentType( data ) { + if ( CKEDITOR.env.webkit ) { + // Plain text or (

and text inside
). + if ( !data.match( /^[^<]*$/g ) && !data.match( /^(
<\/div>|
[^<]*<\/div>)*$/gi ) ) + return 'html'; + } else if ( CKEDITOR.env.ie ) { + // Text and
or ( text and
in

- paragraphs can be separated by new \r\n ). + if ( !data.match( /^([^<]|)*$/gi ) && !data.match( /^(

([^<]|)*<\/p>|(\r\n))*$/gi ) ) + return 'html'; + } else if ( CKEDITOR.env.gecko ) { + // Text or
. + if ( !data.match( /^([^<]|)*$/gi ) ) + return 'html'; + } else { + return 'html'; + } + + return 'htmlifiedtext'; + } + + // This function transforms what browsers produce when + // pasting plain text into editable element (see clipboard/paste.html TCs + // for more info) into correct HTML (similar to that produced by text2Html). + function htmlifiedTextHtmlification( config, data ) { + function repeatParagraphs( repeats ) { + // Repeat blocks floor((n+1)/2) times. + // Even number of repeats - add
at the beginning of last

. + return CKEDITOR.tools.repeat( '

', ~~( repeats / 2 ) ) + ( repeats % 2 == 1 ? '
' : '' ); + } + + // Replace adjacent white-spaces (EOLs too - Fx sometimes keeps them) with one space. + data = data.replace( /\s+/g, ' ' ) + // Remove spaces from between tags. + .replace( /> +<' ) + // Normalize XHTML syntax and upper cased
tags. + .replace( /
/gi, '
' ); + + // IE - lower cased tags. + data = data.replace( /<\/?[A-Z]+>/g, function( match ) { + return match.toLowerCase(); + } ); + + // Don't touch single lines (no ) - nothing to do here. + if ( data.match( /^[^<]$/ ) ) + return data; + + // Webkit. + if ( CKEDITOR.env.webkit && data.indexOf( '

' ) > -1 ) { + // One line break at the beginning - insert
+ data = data.replace( /^(
(
|)<\/div>)(?!$|(
(
|)<\/div>))/g, '
' ) + // Two or more - reduce number of new lines by one. + .replace( /^(
(
|)<\/div>){2}(?!$)/g, '
' ); + + // Two line breaks create one paragraph in Webkit. + if ( data.match( /
(
|)<\/div>/ ) ) { + data = '

' + data.replace( /(

(
|)<\/div>)+/g, function( match ) { + return repeatParagraphs( match.split( '
' ).length + 1 ); + } ) + '

'; + } + + // One line break create br. + data = data.replace( /<\/div>
/g, '
' ); + + // Remove remaining divs. + data = data.replace( /<\/?div>/g, '' ); + } + + // Opera and Firefox and enterMode != BR. + if ( CKEDITOR.env.gecko && config.enterMode != CKEDITOR.ENTER_BR ) { + // Remove bogus
- Fx generates two for one line break. + // For two line breaks it still produces two , but it's better to ignore this case than the first one. + if ( CKEDITOR.env.gecko ) + data = data.replace( /^

$/, '
' ); + + // This line satisfy edge case when for Opera we have two line breaks + //data = data.replace( /) + + if ( data.indexOf( '

' ) > -1 ) { + // Two line breaks create one paragraph, three - 2, four - 3, etc. + data = '

' + data.replace( /(
){2,}/g, function( match ) { + return repeatParagraphs( match.length / 4 ); + } ) + '

'; + } + } + + return switchEnterMode( config, data ); + } + + function filtersFactoryFactory() { + var filters = {}; + + function setUpTags() { + var tags = {}; + + for ( var tag in CKEDITOR.dtd ) { + if ( tag.charAt( 0 ) != '$' && tag != 'div' && tag != 'span' ) { + tags[ tag ] = 1; + } + } + + return tags; + } + + function createSemanticContentFilter() { + var filter = new CKEDITOR.filter(); + + filter.allow( { + $1: { + elements: setUpTags(), + attributes: true, + styles: false, + classes: false + } + } ); + + return filter; + } + + return { + get: function( type ) { + if ( type == 'plain-text' ) { + // Does this look confusing to you? Did we forget about enter mode? + // It is a trick that let's us creating one filter for edidtor, regardless of its + // activeEnterMode (which as the name indicates can change during runtime). + // + // How does it work? + // The active enter mode is passed to the filter.applyTo method. + // The filter first marks all elements except
as disallowed and then tries to remove + // them. However, it cannot remove e.g. a

element completely, because it's a basic structural element, + // so it tries to replace it with an element created based on the active enter mode, eventually doing nothing. + // + // Now you can sleep well. + return filters.plainText || ( filters.plainText = new CKEDITOR.filter( 'br' ) ); + } else if ( type == 'semantic-content' ) { + return filters.semanticContent || ( filters.semanticContent = createSemanticContentFilter() ); + } else if ( type ) { + // Create filter based on rules (string or object). + return new CKEDITOR.filter( type ); + } + + return null; + } + }; + } + + function filterContent( editor, data, filter ) { + var fragment = CKEDITOR.htmlParser.fragment.fromHtml( data ), + writer = new CKEDITOR.htmlParser.basicWriter(); + + filter.applyTo( fragment, true, false, editor.activeEnterMode ); + fragment.writeHtml( writer ); + + return writer.getHtml(); + } + + function switchEnterMode( config, data ) { + if ( config.enterMode == CKEDITOR.ENTER_BR ) { + data = data.replace( /(<\/p>

)+/g, function( match ) { + return CKEDITOR.tools.repeat( '
', match.length / 7 * 2 ); + } ).replace( /<\/?p>/g, '' ); + } else if ( config.enterMode == CKEDITOR.ENTER_DIV ) { + data = data.replace( /<(\/)?p>/g, '<$1div>' ); + } + + return data; + } + + function preventDefaultSetDropEffectToNone( evt ) { + evt.data.preventDefault(); + evt.data.$.dataTransfer.dropEffect = 'none'; + } + + function initDragDrop( editor ) { + var clipboard = CKEDITOR.plugins.clipboard; + + editor.on( 'contentDom', function() { + var editable = editor.editable(), + dropTarget = CKEDITOR.plugins.clipboard.getDropTarget( editor ), + top = editor.ui.space( 'top' ), + bottom = editor.ui.space( 'bottom' ); + + // -------------- DRAGOVER TOP & BOTTOM -------------- + + // Not allowing dragging on toolbar and bottom (http://dev.ckeditor.com/ticket/12613). + clipboard.preventDefaultDropOnElement( top ); + clipboard.preventDefaultDropOnElement( bottom ); + + // -------------- DRAGSTART -------------- + // Listed on dragstart to mark internal and cross-editor drag & drop + // and save range and selected HTML. + + editable.attachListener( dropTarget, 'dragstart', fireDragEvent ); + + // Make sure to reset data transfer (in case dragend was not called or was canceled). + editable.attachListener( editor, 'dragstart', clipboard.resetDragDataTransfer, clipboard, null, 1 ); + + // Create a dataTransfer object and save it globally. + editable.attachListener( editor, 'dragstart', function( evt ) { + clipboard.initDragDataTransfer( evt, editor ); + }, null, null, 2 ); + + editable.attachListener( editor, 'dragstart', function() { + // Save drag range globally for cross editor D&D. + var dragRange = clipboard.dragRange = editor.getSelection().getRanges()[ 0 ]; + + // Store number of children, so we can later tell if any text node was split on drop. (http://dev.ckeditor.com/ticket/13011, http://dev.ckeditor.com/ticket/13447) + if ( CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) { + clipboard.dragStartContainerChildCount = dragRange ? getContainerChildCount( dragRange.startContainer ) : null; + clipboard.dragEndContainerChildCount = dragRange ? getContainerChildCount( dragRange.endContainer ) : null; + } + }, null, null, 100 ); + + // -------------- DRAGEND -------------- + // Clean up on dragend. + + editable.attachListener( dropTarget, 'dragend', fireDragEvent ); + + // Init data transfer if someone wants to use it in dragend. + editable.attachListener( editor, 'dragend', clipboard.initDragDataTransfer, clipboard, null, 1 ); + + // When drag & drop is done we need to reset dataTransfer so the future + // external drop will be not recognize as internal. + editable.attachListener( editor, 'dragend', clipboard.resetDragDataTransfer, clipboard, null, 100 ); + + // -------------- DRAGOVER -------------- + // We need to call preventDefault on dragover because otherwise if + // we drop image it will overwrite document. + + editable.attachListener( dropTarget, 'dragover', function( evt ) { + // Edge requires this handler to have `preventDefault()` regardless of the situation. + if ( CKEDITOR.env.edge ) { + evt.data.preventDefault(); + return; + } + + var target = evt.data.getTarget(); + + // Prevent reloading page when dragging image on empty document (http://dev.ckeditor.com/ticket/12619). + if ( target && target.is && target.is( 'html' ) ) { + evt.data.preventDefault(); + return; + } + + // If we do not prevent default dragover on IE the file path + // will be loaded and we will lose content. On the other hand + // if we prevent it the cursor will not we shown, so we prevent + // dragover only on IE, on versions which support file API and only + // if the event contains files. + if ( CKEDITOR.env.ie && + CKEDITOR.plugins.clipboard.isFileApiSupported && + evt.data.$.dataTransfer.types.contains( 'Files' ) ) { + evt.data.preventDefault(); + } + } ); + + // -------------- DROP -------------- + + editable.attachListener( dropTarget, 'drop', function( evt ) { + // Do nothing if event was already prevented. (http://dev.ckeditor.com/ticket/13879) + if ( evt.data.$.defaultPrevented ) { + return; + } + + // Cancel native drop. + evt.data.preventDefault(); + + var target = evt.data.getTarget(), + readOnly = target.isReadOnly(); + + // Do nothing if drop on non editable element (http://dev.ckeditor.com/ticket/13015). + // The tag isn't editable (body is), but we want to allow drop on it + // (so it is possible to drop below editor contents). + if ( readOnly && !( target.type == CKEDITOR.NODE_ELEMENT && target.is( 'html' ) ) ) { + return; + } + + // Getting drop position is one of the most complex parts. + var dropRange = clipboard.getRangeAtDropPosition( evt, editor ), + dragRange = clipboard.dragRange; + + // Do nothing if it was not possible to get drop range. + if ( !dropRange ) { + return; + } + + // Fire drop. + fireDragEvent( evt, dragRange, dropRange ); + }, null, null, 9999 ); + + // Create dataTransfer or get it, if it was created before. + editable.attachListener( editor, 'drop', clipboard.initDragDataTransfer, clipboard, null, 1 ); + + // Execute drop action, fire paste. + editable.attachListener( editor, 'drop', function( evt ) { + var data = evt.data; + + if ( !data ) { + return; + } + + // Let user modify drag and drop range. + var dropRange = data.dropRange, + dragRange = data.dragRange, + dataTransfer = data.dataTransfer; + + if ( dataTransfer.getTransferType( editor ) == CKEDITOR.DATA_TRANSFER_INTERNAL ) { + // Execute drop with a timeout because otherwise selection, after drop, + // on IE is in the drag position, instead of drop position. + setTimeout( function() { + clipboard.internalDrop( dragRange, dropRange, dataTransfer, editor ); + }, 0 ); + } else if ( dataTransfer.getTransferType( editor ) == CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ) { + crossEditorDrop( dragRange, dropRange, dataTransfer ); + } else { + externalDrop( dropRange, dataTransfer ); + } + }, null, null, 9999 ); + + // Cross editor drag and drop (drag in one Editor and drop in the other). + function crossEditorDrop( dragRange, dropRange, dataTransfer ) { + // Paste event should be fired before delete contents because otherwise + // Chrome have a problem with drop range (Chrome split the drop + // range container so the offset is bigger then container length). + dropRange.select(); + firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop' }, 1 ); + + // Remove dragged content and make a snapshot. + dataTransfer.sourceEditor.fire( 'saveSnapshot' ); + + dataTransfer.sourceEditor.editable().extractHtmlFromRange( dragRange ); + + // Make some selection before saving snapshot, otherwise error will be thrown, because + // there will be no valid selection after content is removed. + dataTransfer.sourceEditor.getSelection().selectRanges( [ dragRange ] ); + dataTransfer.sourceEditor.fire( 'saveSnapshot' ); + } + + // Drop from external source. + function externalDrop( dropRange, dataTransfer ) { + // Paste content into the drop position. + dropRange.select(); + + firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop' }, 1 ); + + // Usually we reset DataTranfer on dragend, + // but dragend is called on the same element as dragstart + // so it will not be called on on external drop. + clipboard.resetDragDataTransfer(); + } + + // Fire drag/drop events (dragstart, dragend, drop). + function fireDragEvent( evt, dragRange, dropRange ) { + var eventData = { + $: evt.data.$, + target: evt.data.getTarget() + }; + + if ( dragRange ) { + eventData.dragRange = dragRange; + } + if ( dropRange ) { + eventData.dropRange = dropRange; + } + + if ( editor.fire( evt.name, eventData ) === false ) { + evt.data.preventDefault(); + } + } + + function getContainerChildCount( container ) { + if ( container.type != CKEDITOR.NODE_ELEMENT ) { + container = container.getParent(); + } + + return container.getChildCount(); + } + } ); + } + + /** + * @singleton + * @class CKEDITOR.plugins.clipboard + */ + CKEDITOR.plugins.clipboard = { + /** + * True if the environment allows to set data on copy or cut manually. This value is false in IE, because this browser + * shows the security dialog window when the script tries to set clipboard data and on iOS, because custom data is + * not saved to clipboard there. + * + * @since 4.5 + * @readonly + * @property {Boolean} + */ + isCustomCopyCutSupported: !CKEDITOR.env.ie && !CKEDITOR.env.iOS, + + /** + * True if the environment supports MIME types and custom data types in dataTransfer/cliboardData getData/setData methods. + * + * @since 4.5 + * @readonly + * @property {Boolean} + */ + isCustomDataTypesSupported: !CKEDITOR.env.ie, + + /** + * True if the environment supports File API. + * + * @since 4.5 + * @readonly + * @property {Boolean} + */ + isFileApiSupported: !CKEDITOR.env.ie || CKEDITOR.env.version > 9, + + /** + * Main native paste event editable should listen to. + * + * **Note:** Safari does not like the {@link CKEDITOR.editor#beforePaste} event — it sometimes does not + * handle Ctrl+C properly. This is probably caused by some race condition between events. + * Chrome, Firefox and Edge work well with both events, so it is better to use {@link CKEDITOR.editor#paste} + * which will handle pasting from e.g. browsers' menu bars. + * IE7/8 does not like the {@link CKEDITOR.editor#paste} event for which it is throwing random errors. + * + * @since 4.5 + * @readonly + * @property {String} + */ + mainPasteEvent: ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) ? 'beforepaste' : 'paste', + + /** + * Returns `true` if it is expected that a browser provides HTML data through the Clipboard API. + * If not, this method returns `false` and as a result CKEditor will use the paste bin. Read more in + * the [Clipboard Integration](http://docs.ckeditor.com/#!/guide/dev_clipboard-section-clipboard-api) guide. + * + * @since 4.5.2 + * @returns {Boolean} + */ + canClipboardApiBeTrusted: function( dataTransfer, editor ) { + // If it's an internal or cross-editor data transfer, then it means that custom cut/copy/paste support works + // and that the data were put manually on the data transfer so we can be sure that it's available. + if ( dataTransfer.getTransferType( editor ) != CKEDITOR.DATA_TRANSFER_EXTERNAL ) { + return true; + } + + // In Chrome we can trust Clipboard API, with the exception of Chrome on Android (in both - mobile and desktop modes), where + // clipboard API is not available so we need to check it (http://dev.ckeditor.com/ticket/13187). + if ( CKEDITOR.env.chrome && !dataTransfer.isEmpty() ) { + return true; + } + + // Because of a Firefox bug HTML data are not available in some cases (e.g. paste from Word), in such cases we + // need to use the pastebin (http://dev.ckeditor.com/ticket/13528, https://bugzilla.mozilla.org/show_bug.cgi?id=1183686). + if ( CKEDITOR.env.gecko && ( dataTransfer.getData( 'text/html' ) || dataTransfer.getFilesCount() ) ) { + return true; + } + + // Safari fixed clipboard in 10.1 (https://bugs.webkit.org/show_bug.cgi?id=19893) (http://dev.ckeditor.com/ticket/16982). + // However iOS version still doesn't work well enough (https://bugs.webkit.org/show_bug.cgi?id=19893#c34). + if ( CKEDITOR.env.safari && CKEDITOR.env.version >= 603 && !CKEDITOR.env.iOS ) { + return true; + } + + // In older Safari and IE HTML data is not available though the Clipboard API. + // In Edge things are a bit messy at the moment - + // https://connect.microsoft.com/IE/feedback/details/1572456/edge-clipboard-api-text-html-content-messed-up-in-event-clipboarddata + // It is safer to use the paste bin in unknown cases. + return false; + }, + + /** + * Returns the element that should be used as the target for the drop event. + * + * @since 4.5 + * @param {CKEDITOR.editor} editor The editor instance. + * @returns {CKEDITOR.dom.domObject} the element that should be used as the target for the drop event. + */ + getDropTarget: function( editor ) { + var editable = editor.editable(); + + // http://dev.ckeditor.com/ticket/11123 Firefox needs to listen on document, because otherwise event won't be fired. + // http://dev.ckeditor.com/ticket/11086 IE8 cannot listen on document. + if ( ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) || editable.isInline() ) { + return editable; + } else { + return editor.document; + } + }, + + /** + * IE 8 & 9 split text node on drop so the first node contains the + * text before the drop position and the second contains the rest. If you + * drag the content from the same node you will be not be able to get + * it (the range becomes invalid), so you need to join them back. + * + * Note that the first node in IE 8 & 9 is the original node object + * but with shortened content. + * + * Before: + * --- Text Node A ---------------------------------- + * /\ + * Drag position + * + * After (IE 8 & 9): + * --- Text Node A ----- --- Text Node B ----------- + * /\ /\ + * Drop position Drag position + * (invalid) + * + * After (other browsers): + * --- Text Node A ---------------------------------- + * /\ /\ + * Drop position Drag position + * + * **Note:** This function is in the public scope for tests usage only. + * + * @since 4.5 + * @private + * @param {CKEDITOR.dom.range} dragRange The drag range. + * @param {CKEDITOR.dom.range} dropRange The drop range. + * @param {Number} preDragStartContainerChildCount The number of children of the drag range start container before the drop. + * @param {Number} preDragEndContainerChildCount The number of children of the drag range end container before the drop. + */ + fixSplitNodesAfterDrop: function( dragRange, dropRange, preDragStartContainerChildCount, preDragEndContainerChildCount ) { + var dropContainer = dropRange.startContainer; + + if ( + typeof preDragEndContainerChildCount != 'number' || + typeof preDragStartContainerChildCount != 'number' + ) { + return; + } + + // We are only concerned about ranges anchored in elements. + if ( dropContainer.type != CKEDITOR.NODE_ELEMENT ) { + return; + } + + if ( handleContainer( dragRange.startContainer, dropContainer, preDragStartContainerChildCount ) ) { + return; + } + + if ( handleContainer( dragRange.endContainer, dropContainer, preDragEndContainerChildCount ) ) { + return; + } + + function handleContainer( dragContainer, dropContainer, preChildCount ) { + var dragElement = dragContainer; + if ( dragElement.type == CKEDITOR.NODE_TEXT ) { + dragElement = dragContainer.getParent(); + } + + if ( dragElement.equals( dropContainer ) && preChildCount != dropContainer.getChildCount() ) { + applyFix( dropRange ); + return true; + } + } + + function applyFix( dropRange ) { + var nodeBefore = dropRange.startContainer.getChild( dropRange.startOffset - 1 ), + nodeAfter = dropRange.startContainer.getChild( dropRange.startOffset ); + + if ( + nodeBefore && nodeBefore.type == CKEDITOR.NODE_TEXT && + nodeAfter && nodeAfter.type == CKEDITOR.NODE_TEXT + ) { + var offset = nodeBefore.getLength(); + + nodeBefore.setText( nodeBefore.getText() + nodeAfter.getText() ); + nodeAfter.remove(); + + dropRange.setStart( nodeBefore, offset ); + dropRange.collapse( true ); + } + } + }, + + /** + * Checks whether turning the drag range into bookmarks will invalidate the drop range. + * This usually happens when the drop range shares the container with the drag range and is + * located after the drag range, but there are countless edge cases. + * + * This function is stricly related to {@link #internalDrop} which toggles + * order in which it creates bookmarks for both ranges based on a value returned + * by this method. In some cases this method returns a value which is not necessarily + * true in terms of what it was meant to check, but it is convenient, because + * we know how it is interpreted in {@link #internalDrop}, so the correct + * behavior of the entire algorithm is assured. + * + * **Note:** This function is in the public scope for tests usage only. + * + * @since 4.5 + * @private + * @param {CKEDITOR.dom.range} dragRange The first range to compare. + * @param {CKEDITOR.dom.range} dropRange The second range to compare. + * @returns {Boolean} `true` if the first range is before the second range. + */ + isDropRangeAffectedByDragRange: function( dragRange, dropRange ) { + var dropContainer = dropRange.startContainer, + dropOffset = dropRange.endOffset; + + // Both containers are the same and drop offset is at the same position or later. + // " A L] A " " M A " + // ^ ^ + if ( dragRange.endContainer.equals( dropContainer ) && dragRange.endOffset <= dropOffset ) { + return true; + } + + // Bookmark for drag start container will mess up with offsets. + // " O [L A " " M A " + // ^ ^ + if ( + dragRange.startContainer.getParent().equals( dropContainer ) && + dragRange.startContainer.getIndex() < dropOffset + ) { + return true; + } + + // Bookmark for drag end container will mess up with offsets. + // " O] L A " " M A " + // ^ ^ + if ( + dragRange.endContainer.getParent().equals( dropContainer ) && + dragRange.endContainer.getIndex() < dropOffset + ) { + return true; + } + + return false; + }, + + /** + * Internal drag and drop (drag and drop in the same editor instance). + * + * **Note:** This function is in the public scope for tests usage only. + * + * @since 4.5 + * @private + * @param {CKEDITOR.dom.range} dragRange The first range to compare. + * @param {CKEDITOR.dom.range} dropRange The second range to compare. + * @param {CKEDITOR.plugins.clipboard.dataTransfer} dataTransfer + * @param {CKEDITOR.editor} editor + */ + internalDrop: function( dragRange, dropRange, dataTransfer, editor ) { + var clipboard = CKEDITOR.plugins.clipboard, + editable = editor.editable(), + dragBookmark, dropBookmark, isDropRangeAffected; + + // Save and lock snapshot so there will be only + // one snapshot for both remove and insert content. + editor.fire( 'saveSnapshot' ); + editor.fire( 'lockSnapshot', { dontUpdate: 1 } ); + + if ( CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) { + this.fixSplitNodesAfterDrop( + dragRange, + dropRange, + clipboard.dragStartContainerChildCount, + clipboard.dragEndContainerChildCount + ); + } + + // Because we manipulate multiple ranges we need to do it carefully, + // changing one range (event creating a bookmark) may make other invalid. + // We need to change ranges into bookmarks so we can manipulate them easily in the future. + // We can change the range which is later in the text before we change the preceding range. + // We call isDropRangeAffectedByDragRange to test the order of ranges. + isDropRangeAffected = this.isDropRangeAffectedByDragRange( dragRange, dropRange ); + if ( !isDropRangeAffected ) { + dragBookmark = dragRange.createBookmark( false ); + } + dropBookmark = dropRange.clone().createBookmark( false ); + if ( isDropRangeAffected ) { + dragBookmark = dragRange.createBookmark( false ); + } + + // Check if drop range is inside range. + // This is an edge case when we drop something on editable's margin/padding. + // That space is not treated as a part of the range we drag, so it is possible to drop there. + // When we drop, browser tries to find closest drop position and it finds it inside drag range. (http://dev.ckeditor.com/ticket/13453) + var startNode = dragBookmark.startNode, + endNode = dragBookmark.endNode, + dropNode = dropBookmark.startNode, + dropInsideDragRange = + // Must check endNode because dragRange could be collapsed in some edge cases (simulated DnD). + endNode && + ( startNode.getPosition( dropNode ) & CKEDITOR.POSITION_PRECEDING ) && + ( endNode.getPosition( dropNode ) & CKEDITOR.POSITION_FOLLOWING ); + + // If the drop range happens to be inside drag range change it's position to the beginning of the drag range. + if ( dropInsideDragRange ) { + // We only change position of bookmark span that is connected with dropBookmark. + // dropRange will be overwritten and set to the dropBookmark later. + dropNode.insertBefore( startNode ); + } + + // No we can safely delete content for the drag range... + dragRange = editor.createRange(); + dragRange.moveToBookmark( dragBookmark ); + editable.extractHtmlFromRange( dragRange, 1 ); + + // ...and paste content into the drop position. + dropRange = editor.createRange(); + dropRange.moveToBookmark( dropBookmark ); + + // We do not select drop range, because of may be in the place we can not set the selection + // (e.g. between blocks, in case of block widget D&D). We put range to the paste event instead. + firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop', range: dropRange }, 1 ); + + editor.fire( 'unlockSnapshot' ); + }, + + /** + * Gets the range from the `drop` event. + * + * @since 4.5 + * @param {Object} domEvent A native DOM drop event object. + * @param {CKEDITOR.editor} editor The source editor instance. + * @returns {CKEDITOR.dom.range} range at drop position. + */ + getRangeAtDropPosition: function( dropEvt, editor ) { + var $evt = dropEvt.data.$, + x = $evt.clientX, + y = $evt.clientY, + $range, + defaultRange = editor.getSelection( true ).getRanges()[ 0 ], + range = editor.createRange(); + + // Make testing possible. + if ( dropEvt.data.testRange ) + return dropEvt.data.testRange; + + // Webkits. + if ( document.caretRangeFromPoint && editor.document.$.caretRangeFromPoint( x, y ) ) { + $range = editor.document.$.caretRangeFromPoint( x, y ); + range.setStart( CKEDITOR.dom.node( $range.startContainer ), $range.startOffset ); + range.collapse( true ); + } + // FF. + else if ( $evt.rangeParent ) { + range.setStart( CKEDITOR.dom.node( $evt.rangeParent ), $evt.rangeOffset ); + range.collapse( true ); + } + // IEs 9+. + // We check if editable is focused to make sure that it's an internal DnD. External DnD must use the second + // mechanism because of http://dev.ckeditor.com/ticket/13472#comment:6. + else if ( CKEDITOR.env.ie && CKEDITOR.env.version > 8 && defaultRange && editor.editable().hasFocus ) { + // On IE 9+ range by default is where we expected it. + // defaultRange may be undefined if dragover was canceled (file drop). + return defaultRange; + } + // IE 8 and all IEs if !defaultRange or external DnD. + else if ( document.body.createTextRange ) { + // To use this method we need a focus (which may be somewhere else in case of external drop). + editor.focus(); + + $range = editor.document.getBody().$.createTextRange(); + try { + var sucess = false; + + // If user drop between text line IEs moveToPoint throws exception: + // + // Lorem ipsum pulvinar purus et euismod + // + // dolor sit amet,| consectetur adipiscing + // * + // vestibulum tincidunt augue eget tempus. + // + // * - drop position + // | - expected cursor position + // + // So we try to call moveToPoint with +-1px up to +-20px above or + // below original drop position to find nearest good drop position. + for ( var i = 0; i < 20 && !sucess; i++ ) { + if ( !sucess ) { + try { + $range.moveToPoint( x, y - i ); + sucess = true; + } catch ( err ) { + } + } + if ( !sucess ) { + try { + $range.moveToPoint( x, y + i ); + sucess = true; + } catch ( err ) { + } + } + } + + if ( sucess ) { + var id = 'cke-temp-' + ( new Date() ).getTime(); + $range.pasteHTML( '\u200b' ); + + var span = editor.document.getById( id ); + range.moveToPosition( span, CKEDITOR.POSITION_BEFORE_START ); + span.remove(); + } else { + // If the fist method does not succeed we might be next to + // the short element (like header): + // + // Lorem ipsum pulvinar purus et euismod. + // + // + // SOME HEADER| * + // + // + // vestibulum tincidunt augue eget tempus. + // + // * - drop position + // | - expected cursor position + // + // In such situation elementFromPoint returns proper element. Using getClientRect + // it is possible to check if the cursor should be at the beginning or at the end + // of paragraph. + var $element = editor.document.$.elementFromPoint( x, y ), + element = new CKEDITOR.dom.element( $element ), + rect; + + if ( !element.equals( editor.editable() ) && element.getName() != 'html' ) { + rect = element.getClientRect(); + + if ( x < rect.left ) { + range.setStartAt( element, CKEDITOR.POSITION_AFTER_START ); + range.collapse( true ); + } else { + range.setStartAt( element, CKEDITOR.POSITION_BEFORE_END ); + range.collapse( true ); + } + } + // If drop happens on no element elementFromPoint returns html or body. + // + // * |Lorem ipsum pulvinar purus et euismod. + // + // vestibulum tincidunt augue eget tempus. + // + // * - drop position + // | - expected cursor position + // + // In such case we can try to use default selection. If startContainer is not + // 'editable' element it is probably proper selection. + else if ( defaultRange && defaultRange.startContainer && + !defaultRange.startContainer.equals( editor.editable() ) ) { + return defaultRange; + + // Otherwise we can not find any drop position and we have to return null + // and cancel drop event. + } else { + return null; + } + + } + } catch ( err ) { + return null; + } + } else { + return null; + } + + return range; + }, + + /** + * This function tries to link the `evt.data.dataTransfer` property of the {@link CKEDITOR.editor#dragstart}, + * {@link CKEDITOR.editor#dragend} and {@link CKEDITOR.editor#drop} events to a single + * {@link CKEDITOR.plugins.clipboard.dataTransfer} object. + * + * This method is automatically used by the core of the drag and drop functionality and + * usually does not have to be called manually when using the drag and drop events. + * + * This method behaves differently depending on whether the drag and drop events were fired + * artificially (to represent a non-native drag and drop) or whether they were caused by the native drag and drop. + * + * If the native event is not available, then it will create a new {@link CKEDITOR.plugins.clipboard.dataTransfer} + * instance (if it does not exist already) and will link it to this and all following event objects until + * the {@link #resetDragDataTransfer} method is called. It means that all three drag and drop events must be fired + * in order to ensure that the data transfer is bound correctly. + * + * If the native event is available, then the {@link CKEDITOR.plugins.clipboard.dataTransfer} is identified + * by its ID and a new instance is assigned to the `evt.data.dataTransfer` only if the ID changed or + * the {@link #resetDragDataTransfer} method was called. + * + * @since 4.5 + * @param {CKEDITOR.dom.event} [evt] A drop event object. + * @param {CKEDITOR.editor} [sourceEditor] The source editor instance. + */ + initDragDataTransfer: function( evt, sourceEditor ) { + // Create a new dataTransfer object based on the drop event. + // If this event was used on dragstart to create dataTransfer + // both dataTransfer objects will have the same id. + var nativeDataTransfer = evt.data.$ ? evt.data.$.dataTransfer : null, + dataTransfer = new this.dataTransfer( nativeDataTransfer, sourceEditor ); + + if ( !nativeDataTransfer ) { + // No native event. + if ( this.dragData ) { + dataTransfer = this.dragData; + } else { + this.dragData = dataTransfer; + } + } else { + // Native event. If there is the same id we will replace dataTransfer with the one + // created on drag, because it contains drag editor, drag content and so on. + // Otherwise (in case of drag from external source) we save new object to + // the global clipboard.dragData. + if ( this.dragData && dataTransfer.id == this.dragData.id ) { + dataTransfer = this.dragData; + } else { + this.dragData = dataTransfer; + } + } + + evt.data.dataTransfer = dataTransfer; + }, + + /** + * Removes the global {@link #dragData} so the next call to {@link #initDragDataTransfer} + * always creates a new instance of {@link CKEDITOR.plugins.clipboard.dataTransfer}. + * + * @since 4.5 + */ + resetDragDataTransfer: function() { + this.dragData = null; + }, + + /** + * Global object storing the data transfer of the current drag and drop operation. + * Do not use it directly, use {@link #initDragDataTransfer} and {@link #resetDragDataTransfer}. + * + * Note: This object is global (meaning that it is not related to a single editor instance) + * in order to handle drag and drop from one editor into another. + * + * @since 4.5 + * @private + * @property {CKEDITOR.plugins.clipboard.dataTransfer} dragData + */ + + /** + * Range object to save the drag range and remove its content after the drop. + * + * @since 4.5 + * @private + * @property {CKEDITOR.dom.range} dragRange + */ + + /** + * Initializes and links data transfer objects based on the paste event. If the data + * transfer object was already initialized on this event, the function will + * return that object. In IE it is not possible to link copy/cut and paste events + * so the method always returns a new object. The same happens if there is no paste event + * passed to the method. + * + * @since 4.5 + * @param {CKEDITOR.dom.event} [evt] A paste event object. + * @param {CKEDITOR.editor} [sourceEditor] The source editor instance. + * @returns {CKEDITOR.plugins.clipboard.dataTransfer} The data transfer object. + */ + initPasteDataTransfer: function( evt, sourceEditor ) { + if ( !this.isCustomCopyCutSupported ) { + // Edge does not support custom copy/cut, but it have some useful data in the clipboardData (http://dev.ckeditor.com/ticket/13755). + return new this.dataTransfer( ( CKEDITOR.env.edge && evt && evt.data.$ && evt.data.$.clipboardData ) || null, sourceEditor ); + } else if ( evt && evt.data && evt.data.$ ) { + var dataTransfer = new this.dataTransfer( evt.data.$.clipboardData, sourceEditor ); + + if ( this.copyCutData && dataTransfer.id == this.copyCutData.id ) { + dataTransfer = this.copyCutData; + dataTransfer.$ = evt.data.$.clipboardData; + } else { + this.copyCutData = dataTransfer; + } + + return dataTransfer; + } else { + return new this.dataTransfer( null, sourceEditor ); + } + }, + + /** + * Prevents dropping on the specified element. + * + * @since 4.5 + * @param {CKEDITOR.dom.element} element The element on which dropping should be disabled. + */ + preventDefaultDropOnElement: function( element ) { + element && element.on( 'dragover', preventDefaultSetDropEffectToNone ); + } + }; + + // Data type used to link drag and drop events. + // + // In IE URL data type is buggie and there is no way to mark drag & drop without + // modifying text data (which would be displayed if user drop content to the textarea) + // so we just read dragged text. + // + // In Chrome and Firefox we can use custom data types. + var clipboardIdDataType = CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ? 'cke/id' : 'Text'; + /** + * Facade for the native `dataTransfer`/`clipboadData` object to hide all differences + * between browsers. + * + * @since 4.5 + * @class CKEDITOR.plugins.clipboard.dataTransfer + * @constructor Creates a class instance. + * @param {Object} [nativeDataTransfer] A native data transfer object. + * @param {CKEDITOR.editor} [editor] The source editor instance. If the editor is defined, dataValue will + * be created based on the editor content and the type will be 'html'. + */ + CKEDITOR.plugins.clipboard.dataTransfer = function( nativeDataTransfer, editor ) { + if ( nativeDataTransfer ) { + this.$ = nativeDataTransfer; + } + + this._ = { + metaRegExp: /^/i, + bodyRegExp: /([\s\S]*)<\/body>/i, + fragmentRegExp: //g, + + data: {}, + files: [], + + normalizeType: function( type ) { + type = type.toLowerCase(); + + if ( type == 'text' || type == 'text/plain' ) { + return 'Text'; // IE support only Text and URL; + } else if ( type == 'url' ) { + return 'URL'; // IE support only Text and URL; + } else { + return type; + } + } + }; + + // Check if ID is already created. + this.id = this.getData( clipboardIdDataType ); + + // If there is no ID we need to create it. Different browsers needs different ID. + if ( !this.id ) { + if ( clipboardIdDataType == 'Text' ) { + // For IE10+ only Text data type is supported and we have to compare dragged + // and dropped text. If the ID is not set it means that empty string was dragged + // (ex. image with no alt). We change null to empty string. + this.id = ''; + } else { + // String for custom data type. + this.id = 'cke-' + CKEDITOR.tools.getUniqueId(); + } + } + + // In IE10+ we can not use any data type besides text, so we do not call setData. + if ( clipboardIdDataType != 'Text' ) { + // Try to set ID so it will be passed from the drag to the drop event. + // On some browsers with some event it is not possible to setData so we + // need to catch exceptions. + try { + this.$.setData( clipboardIdDataType, this.id ); + } catch ( err ) {} + } + + if ( editor ) { + this.sourceEditor = editor; + + this.setData( 'text/html', editor.getSelectedHtml( 1 ) ); + + // Without setData( 'text', ... ) on dragstart there is no drop event in Safari. + // Also 'text' data is empty as drop to the textarea does not work if we do not put there text. + if ( clipboardIdDataType != 'Text' && !this.getData( 'text/plain' ) ) { + this.setData( 'text/plain', editor.getSelection().getSelectedText() ); + } + } + + /** + * Data transfer ID used to bind all dataTransfer + * objects based on the same event (e.g. in drag and drop events). + * + * @readonly + * @property {String} id + */ + + /** + * A native DOM event object. + * + * @readonly + * @property {Object} $ + */ + + /** + * Source editor — the editor where the drag starts. + * Might be undefined if the drag starts outside the editor (e.g. when dropping files to the editor). + * + * @readonly + * @property {CKEDITOR.editor} sourceEditor + */ + + /** + * Private properties and methods. + * + * @private + * @property {Object} _ + */ + }; + + /** + * Data transfer operation (drag and drop or copy and paste) started and ended in the same + * editor instance. + * + * @since 4.5 + * @readonly + * @property {Number} [=1] + * @member CKEDITOR + */ + CKEDITOR.DATA_TRANSFER_INTERNAL = 1; + + /** + * Data transfer operation (drag and drop or copy and paste) started in one editor + * instance and ended in another. + * + * @since 4.5 + * @readonly + * @property {Number} [=2] + * @member CKEDITOR + */ + CKEDITOR.DATA_TRANSFER_CROSS_EDITORS = 2; + + /** + * Data transfer operation (drag and drop or copy and paste) started outside of the editor. + * The source of the data may be a textarea, HTML, another application, etc. + * + * @since 4.5 + * @readonly + * @property {Number} [=3] + * @member CKEDITOR + */ + CKEDITOR.DATA_TRANSFER_EXTERNAL = 3; + + CKEDITOR.plugins.clipboard.dataTransfer.prototype = { + /** + * Facade for the native `getData` method. + * + * @param {String} type The type of data to retrieve. + * @param {Boolean} [getNative=false] Indicates if the whole, original content of the dataTransfer should be returned. + * Introduced in CKEditor 4.7.0. + * @returns {String} type Stored data for the given type or an empty string if the data for that type does not exist. + */ + getData: function( type, getNative ) { + function isEmpty( data ) { + return data === undefined || data === null || data === ''; + } + + function filterUnwantedCharacters( data ) { + if ( typeof data !== 'string' ) { + return data; + } + + var htmlEnd = data.indexOf( '' ); + + if ( htmlEnd !== -1 ) { + // Just cut everything after ``, so everything after htmlEnd index + length of ``. + // Required to workaround bug: https://bugs.chromium.org/p/chromium/issues/detail?id=696978 + return data.substring( 0, htmlEnd + 7 ); + } + + return data; + } + + type = this._.normalizeType( type ); + + var data = this._.data[ type ], + result; + + if ( isEmpty( data ) ) { + try { + data = this.$.getData( type ); + } catch ( e ) {} + } + + if ( isEmpty( data ) ) { + data = ''; + } + + // Some browsers add at the begging of the HTML data + // or surround it with ...(some content) and (some content) + // This code removes meta tags and returns only the contents of the element if found. Note that + // some significant content may be placed outside Start/EndFragment comments so it's kept. + // + // See http://dev.ckeditor.com/ticket/13583 for more details. + // Additionally http://dev.ckeditor.com/ticket/16847 adds a flag allowing to get the whole, original content. + if ( type == 'text/html' && !getNative ) { + data = data.replace( this._.metaRegExp, '' ); + + // Keep only contents of the element + result = this._.bodyRegExp.exec( data ); + if ( result && result.length ) { + data = result[ 1 ]; + + // Remove also comments. + data = data.replace( this._.fragmentRegExp, '' ); + } + } + // Firefox on Linux put files paths as a text/plain data if there are files + // in the dataTransfer object. We need to hide it, because files should be + // handled on paste only if dataValue is empty. + else if ( type == 'Text' && CKEDITOR.env.gecko && this.getFilesCount() && + data.substring( 0, 7 ) == 'file://' ) { + data = ''; + } + + return filterUnwantedCharacters( data ); + }, + + /** + * Facade for the native `setData` method. + * + * @param {String} type The type of data to retrieve. + * @param {String} value The data to add. + */ + setData: function( type, value ) { + type = this._.normalizeType( type ); + + this._.data[ type ] = value; + + // There is "Unexpected call to method or property access." error if you try + // to set data of unsupported type on IE. + if ( !CKEDITOR.plugins.clipboard.isCustomDataTypesSupported && type != 'URL' && type != 'Text' ) { + return; + } + + // If we use the text type to bind the ID, then if someone tries to set the text, we must also + // update ID accordingly. http://dev.ckeditor.com/ticket/13468. + if ( clipboardIdDataType == 'Text' && type == 'Text' ) { + this.id = value; + } + + try { + this.$.setData( type, value ); + } catch ( e ) {} + }, + + /** + * Gets the data transfer type. + * + * @param {CKEDITOR.editor} targetEditor The drop/paste target editor instance. + * @returns {Number} Possible values: {@link CKEDITOR#DATA_TRANSFER_INTERNAL}, + * {@link CKEDITOR#DATA_TRANSFER_CROSS_EDITORS}, {@link CKEDITOR#DATA_TRANSFER_EXTERNAL}. + */ + getTransferType: function( targetEditor ) { + if ( !this.sourceEditor ) { + return CKEDITOR.DATA_TRANSFER_EXTERNAL; + } else if ( this.sourceEditor == targetEditor ) { + return CKEDITOR.DATA_TRANSFER_INTERNAL; + } else { + return CKEDITOR.DATA_TRANSFER_CROSS_EDITORS; + } + }, + + /** + * Copies the data from the native data transfer to a private cache. + * This function is needed because the data from the native data transfer + * is available only synchronously to the event listener. It is not possible + * to get the data asynchronously, after a timeout, and the {@link CKEDITOR.editor#paste} + * event is fired asynchronously — hence the need for caching the data. + */ + cacheData: function() { + if ( !this.$ ) { + return; + } + + var that = this, + i, file; + + function getAndSetData( type ) { + type = that._.normalizeType( type ); + + var data = that.getData( type, true ); + if ( data ) { + that._.data[ type ] = data; + } + } + + // Copy data. + if ( CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ) { + if ( this.$.types ) { + for ( i = 0; i < this.$.types.length; i++ ) { + getAndSetData( this.$.types[ i ] ); + } + } + } else { + getAndSetData( 'Text' ); + getAndSetData( 'URL' ); + } + + // Copy files references. + file = this._getImageFromClipboard(); + if ( ( this.$ && this.$.files ) || file ) { + this._.files = []; + + // Edge have empty files property with no length (http://dev.ckeditor.com/ticket/13755). + if ( this.$.files && this.$.files.length ) { + for ( i = 0; i < this.$.files.length; i++ ) { + this._.files.push( this.$.files[ i ] ); + } + } + + // Don't include $.items if both $.files and $.items contains files, because, + // according to spec and browsers behavior, they contain the same files. + if ( this._.files.length === 0 && file ) { + this._.files.push( file ); + } + } + }, + + /** + * Gets the number of files in the dataTransfer object. + * + * @returns {Number} The number of files. + */ + getFilesCount: function() { + if ( this._.files.length ) { + return this._.files.length; + } + + if ( this.$ && this.$.files && this.$.files.length ) { + return this.$.files.length; + } + + return this._getImageFromClipboard() ? 1 : 0; + }, + + /** + * Gets the file at the index given. + * + * @param {Number} i Index. + * @returns {File} File instance. + */ + getFile: function( i ) { + if ( this._.files.length ) { + return this._.files[ i ]; + } + + if ( this.$ && this.$.files && this.$.files.length ) { + return this.$.files[ i ]; + } + + // File or null if the file was not found. + return i === 0 ? this._getImageFromClipboard() : undefined; + }, + + /** + * Checks if the data transfer contains any data. + * + * @returns {Boolean} `true` if the object contains no data. + */ + isEmpty: function() { + var typesToCheck = {}, + type; + + // If dataTransfer contains files it is not empty. + if ( this.getFilesCount() ) { + return false; + } + + // Add custom types. + for ( type in this._.data ) { + typesToCheck[ type ] = 1; + } + + // Add native types. + if ( this.$ ) { + if ( CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ) { + if ( this.$.types ) { + for ( var i = 0; i < this.$.types.length; i++ ) { + typesToCheck[ this.$.types[ i ] ] = 1; + } + } + } else { + typesToCheck.Text = 1; + typesToCheck.URL = 1; + } + } + + // Remove ID. + if ( clipboardIdDataType != 'Text' ) { + typesToCheck[ clipboardIdDataType ] = 0; + } + + for ( type in typesToCheck ) { + if ( typesToCheck[ type ] && this.getData( type ) !== '' ) { + return false; + } + } + + return true; + }, + + /** + * When the content of the clipboard is pasted in Chrome, the clipboard data object has an empty `files` property, + * but it is possible to get the file as `items[0].getAsFile();` (http://dev.ckeditor.com/ticket/12961). + * + * @private + * @returns {File} File instance or `null` if not found. + */ + _getImageFromClipboard: function() { + var file; + + if ( this.$ && this.$.items && this.$.items[ 0 ] ) { + try { + file = this.$.items[ 0 ].getAsFile(); + // Duck typing + if ( file && file.type ) { + return file; + } + } catch ( err ) { + // noop + } + } + + return undefined; + } + }; +} )(); + +/** + * The default content type that is used when pasted data cannot be clearly recognized as HTML or text. + * + * For example: `'foo'` may come from a plain text editor or a website. It is not possible to recognize the content + * type in this case, so the default type will be used. At the same time it is clear that `'example text'` is + * HTML and its origin is a web page, email or another rich text editor. + * + * **Note:** If content type is text, then styles of the paste context are preserved. + * + * CKEDITOR.config.clipboard_defaultContentType = 'text'; + * + * See also the {@link CKEDITOR.editor#paste} event and read more about the integration with clipboard + * in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). + * + * @since 4.0 + * @cfg {'html'/'text'} [clipboard_defaultContentType='html'] + * @member CKEDITOR.config + */ + +/** + * Fired after the user initiated a paste action, but before the data is inserted into the editor. + * The listeners to this event are able to process the content before its insertion into the document. + * + * Read more about the integration with clipboard in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). + * + * See also: + * + * * the {@link CKEDITOR.config#pasteFilter} option, + * * the {@link CKEDITOR.editor#drop} event, + * * the {@link CKEDITOR.plugins.clipboard.dataTransfer} class. + * + * @since 3.1 + * @event paste + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param data + * @param {String} data.type The type of data in `data.dataValue`. Usually `'html'` or `'text'`, but for listeners + * with a priority smaller than `6` it may also be `'auto'` which means that the content type has not been recognised yet + * (this will be done by the content type sniffer that listens with priority `6`). + * @param {String} data.dataValue HTML to be pasted. + * @param {String} data.method Indicates the data transfer method. It could be drag and drop or copy and paste. + * Possible values: `'drop'`, `'paste'`. Introduced in CKEditor 4.5. + * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer Facade for the native dataTransfer object + * which provides access to various data types and files, and passes some data between linked events + * (like drag and drop). Introduced in CKEditor 4.5. + * @param {Boolean} [data.dontFilter=false] Whether the {@link CKEDITOR.editor#pasteFilter paste filter} should not + * be applied to data. This option has no effect when `data.type` equals `'text'` which means that for instance + * {@link CKEDITOR.config#forcePasteAsPlainText} has a higher priority. Introduced in CKEditor 4.5. + */ + +/** + * Fired before the {@link #paste} event. Allows to preset data type. + * + * **Note:** This event is deprecated. Add a `0` priority listener for the + * {@link #paste} event instead. + * + * @deprecated + * @event beforePaste + * @member CKEDITOR.editor + */ + +/** + * Fired after the {@link #paste} event if content was modified. Note that if the paste + * event does not insert any data, the `afterPaste` event will not be fired. + * + * @event afterPaste + * @member CKEDITOR.editor + */ + +/** + * Facade for the native `drop` event. Fired when the native `drop` event occurs. + * + * **Note:** To manipulate dropped data, use the {@link CKEDITOR.editor#paste} event. + * Use the `drop` event only to control drag and drop operations (e.g. to prevent the ability to drop some content). + * + * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). + * + * See also: + * + * * The {@link CKEDITOR.editor#paste} event, + * * The {@link CKEDITOR.editor#dragstart} and {@link CKEDITOR.editor#dragend} events, + * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class. + * + * @since 4.5 + * @event drop + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param data + * @param {Object} data.$ Native drop event. + * @param {CKEDITOR.dom.node} data.target Drop target. + * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade. + * @param {CKEDITOR.dom.range} data.dragRange Drag range, lets you manipulate the drag range. + * Note that dragged HTML is saved as `text/html` data on `dragstart` so if you change the drag range + * on drop, dropped HTML will not change. You need to change it manually using + * {@link CKEDITOR.plugins.clipboard.dataTransfer#setData dataTransfer.setData}. + * @param {CKEDITOR.dom.range} data.dropRange Drop range, lets you manipulate the drop range. + */ + +/** + * Facade for the native `dragstart` event. Fired when the native `dragstart` event occurs. + * + * This event can be canceled in order to block the drag start operation. It can also be fired to mimic the start of the drag and drop + * operation. For instance, the `widget` plugin uses this option to integrate its custom block widget drag and drop with + * the entire system. + * + * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). + * + * See also: + * + * * The {@link CKEDITOR.editor#paste} event, + * * The {@link CKEDITOR.editor#drop} and {@link CKEDITOR.editor#dragend} events, + * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class. + * + * @since 4.5 + * @event dragstart + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param data + * @param {Object} data.$ Native dragstart event. + * @param {CKEDITOR.dom.node} data.target Drag target. + * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade. + */ + +/** + * Facade for the native `dragend` event. Fired when the native `dragend` event occurs. + * + * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). + * + * See also: + * + * * The {@link CKEDITOR.editor#paste} event, + * * The {@link CKEDITOR.editor#drop} and {@link CKEDITOR.editor#dragend} events, + * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class. + * + * @since 4.5 + * @event dragend + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param data + * @param {Object} data.$ Native dragend event. + * @param {CKEDITOR.dom.node} data.target Drag target. + * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade. + */ + +/** + * Defines a filter which is applied to external data pasted or dropped into the editor. Possible values are: + * + * * `'plain-text'` – Content will be pasted as a plain text. + * * `'semantic-content'` – Known tags (except `div`, `span`) with all attributes (except + * `style` and `class`) will be kept. + * * `'h1 h2 p div'` – Custom rules compatible with {@link CKEDITOR.filter}. + * * `null` – Content will not be filtered by the paste filter (but it still may be filtered + * by [Advanced Content Filter](#!/guide/dev_advanced_content_filter)). This value can be used to + * disable the paste filter in Chrome and Safari, where this option defaults to `'semantic-content'`. + * + * Example: + * + * config.pasteFilter = 'plain-text'; + * + * Custom setting: + * + * config.pasteFilter = 'h1 h2 p ul ol li; img[!src, alt]; a[!href]'; + * + * Based on this configuration option, a proper {@link CKEDITOR.filter} instance will be defined and assigned to the editor + * as a {@link CKEDITOR.editor#pasteFilter}. You can tweak the paste filter settings on the fly on this object + * as well as delete or replace it. + * + * var editor = CKEDITOR.replace( 'editor', { + * pasteFilter: 'semantic-content' + * } ); + * + * editor.on( 'instanceReady', function() { + * // The result of this will be that all semantic content will be preserved + * // except tables. + * editor.pasteFilter.disallow( 'table' ); + * } ); + * + * Note that the paste filter is applied only to **external** data. There are three data sources: + * + * * copied and pasted in the same editor (internal), + * * copied from one editor and pasted into another (cross-editor), + * * coming from all other sources like websites, MS Word, etc. (external). + * + * If {@link CKEDITOR.config#allowedContent Advanced Content Filter} is not disabled, then + * it will also be applied to pasted and dropped data. The paste filter job is to "normalize" + * external data which often needs to be handled differently than content produced by the editor. + * + * This setting defaults to `'semantic-content'` in Chrome, Opera and Safari (all Blink and Webkit based browsers) + * due to messy HTML which these browsers keep in the clipboard. In other browsers it defaults to `null`. + * + * @since 4.5 + * @cfg {String} [pasteFilter='semantic-content' in Chrome and Safari and `null` in other browsers] + * @member CKEDITOR.config + */ + +/** + * {@link CKEDITOR.filter Content filter} which is used when external data is pasted or dropped into the editor + * or a forced paste as plain text occurs. + * + * This object might be used on the fly to define rules for pasted external content. + * This object is available and used if the {@link CKEDITOR.plugins.clipboard clipboard} plugin is enabled and + * {@link CKEDITOR.config#pasteFilter} or {@link CKEDITOR.config#forcePasteAsPlainText} was defined. + * + * To enable the filter: + * + * var editor = CKEDITOR.replace( 'editor', { + * pasteFilter: 'plain-text' + * } ); + * + * You can also modify the filter on the fly later on: + * + * editor.pasteFilter = new CKEDITOR.filter( 'p h1 h2; a[!href]' ); + * + * Note that the paste filter is only applied to **external** data. There are three data sources: + * + * * copied and pasted in the same editor (internal), + * * copied from one editor and pasted into another (cross-editor), + * * coming from all other sources like websites, MS Word, etc. (external). + * + * If {@link CKEDITOR.config#allowedContent Advanced Content Filter} is not disabled, then + * it will also be applied to pasted and dropped data. The paste filter job is to "normalize" + * external data which often needs to be handled differently than content produced by the editor. + * + * @since 4.5 + * @readonly + * @property {CKEDITOR.filter} [pasteFilter] + * @member CKEDITOR.editor + */ + +/** + * Duration of the notification displayed after pasting was blocked by the browser. + * + * @since 4.7.0 + * @cfg {Number} [clipboard_notificationDuration=10000] + * @member CKEDITOR.config + */ +CKEDITOR.config.clipboard_notificationDuration = 10000; diff --git a/sources/plugins/contextmenu/lang/af.js b/sources/plugins/contextmenu/lang/af.js index bf849cc..76b5b96 100644 --- a/sources/plugins/contextmenu/lang/af.js +++ b/sources/plugins/contextmenu/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'af', { diff --git a/sources/plugins/contextmenu/lang/ar.js b/sources/plugins/contextmenu/lang/ar.js index 6f4b9cd..c81b063 100644 --- a/sources/plugins/contextmenu/lang/ar.js +++ b/sources/plugins/contextmenu/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ar', { diff --git a/sources/plugins/contextmenu/lang/az.js b/sources/plugins/contextmenu/lang/az.js new file mode 100644 index 0000000..651f2f8 --- /dev/null +++ b/sources/plugins/contextmenu/lang/az.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'az', { + options: 'Əlavə əməliyyatlar' +} ); diff --git a/sources/plugins/contextmenu/lang/bg.js b/sources/plugins/contextmenu/lang/bg.js index 7e37b2e..6bb7a40 100644 --- a/sources/plugins/contextmenu/lang/bg.js +++ b/sources/plugins/contextmenu/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'bg', { diff --git a/sources/plugins/contextmenu/lang/bn.js b/sources/plugins/contextmenu/lang/bn.js index e18bb70..fe93ec8 100644 --- a/sources/plugins/contextmenu/lang/bn.js +++ b/sources/plugins/contextmenu/lang/bn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'bn', { diff --git a/sources/plugins/contextmenu/lang/bs.js b/sources/plugins/contextmenu/lang/bs.js index 22cade1..9354351 100644 --- a/sources/plugins/contextmenu/lang/bs.js +++ b/sources/plugins/contextmenu/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'bs', { diff --git a/sources/plugins/contextmenu/lang/ca.js b/sources/plugins/contextmenu/lang/ca.js index d9c157a..91c7ec8 100644 --- a/sources/plugins/contextmenu/lang/ca.js +++ b/sources/plugins/contextmenu/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ca', { diff --git a/sources/plugins/contextmenu/lang/cs.js b/sources/plugins/contextmenu/lang/cs.js index 49ba461..e53a0f5 100644 --- a/sources/plugins/contextmenu/lang/cs.js +++ b/sources/plugins/contextmenu/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'cs', { diff --git a/sources/plugins/contextmenu/lang/cy.js b/sources/plugins/contextmenu/lang/cy.js index 2bb01d9..1816b84 100644 --- a/sources/plugins/contextmenu/lang/cy.js +++ b/sources/plugins/contextmenu/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'cy', { diff --git a/sources/plugins/contextmenu/lang/da.js b/sources/plugins/contextmenu/lang/da.js index 3e73bd8..10043a5 100644 --- a/sources/plugins/contextmenu/lang/da.js +++ b/sources/plugins/contextmenu/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'da', { diff --git a/sources/plugins/contextmenu/lang/de-ch.js b/sources/plugins/contextmenu/lang/de-ch.js index 606c5e5..216cd18 100644 --- a/sources/plugins/contextmenu/lang/de-ch.js +++ b/sources/plugins/contextmenu/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'de-ch', { diff --git a/sources/plugins/contextmenu/lang/de.js b/sources/plugins/contextmenu/lang/de.js index af3d94f..aa0c098 100644 --- a/sources/plugins/contextmenu/lang/de.js +++ b/sources/plugins/contextmenu/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'de', { diff --git a/sources/plugins/contextmenu/lang/el.js b/sources/plugins/contextmenu/lang/el.js index 5641cc2..bdad720 100644 --- a/sources/plugins/contextmenu/lang/el.js +++ b/sources/plugins/contextmenu/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'el', { diff --git a/sources/plugins/contextmenu/lang/en-au.js b/sources/plugins/contextmenu/lang/en-au.js index 2cfb13e..cd6b202 100644 --- a/sources/plugins/contextmenu/lang/en-au.js +++ b/sources/plugins/contextmenu/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'en-au', { diff --git a/sources/plugins/contextmenu/lang/en-ca.js b/sources/plugins/contextmenu/lang/en-ca.js index f5fff30..25950c9 100644 --- a/sources/plugins/contextmenu/lang/en-ca.js +++ b/sources/plugins/contextmenu/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'en-ca', { diff --git a/sources/plugins/contextmenu/lang/en-gb.js b/sources/plugins/contextmenu/lang/en-gb.js index 25b6dfa..62f08d5 100644 --- a/sources/plugins/contextmenu/lang/en-gb.js +++ b/sources/plugins/contextmenu/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'en-gb', { diff --git a/sources/plugins/contextmenu/lang/en.js b/sources/plugins/contextmenu/lang/en.js index 59343e3..10b5f47 100644 --- a/sources/plugins/contextmenu/lang/en.js +++ b/sources/plugins/contextmenu/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'en', { diff --git a/sources/plugins/contextmenu/lang/eo.js b/sources/plugins/contextmenu/lang/eo.js index 8782e56..6a9760c 100644 --- a/sources/plugins/contextmenu/lang/eo.js +++ b/sources/plugins/contextmenu/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'eo', { diff --git a/sources/plugins/contextmenu/lang/es-mx.js b/sources/plugins/contextmenu/lang/es-mx.js new file mode 100644 index 0000000..72bb1fa --- /dev/null +++ b/sources/plugins/contextmenu/lang/es-mx.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'es-mx', { + options: 'Opciones del menú contextual' +} ); diff --git a/sources/plugins/contextmenu/lang/es.js b/sources/plugins/contextmenu/lang/es.js index 7eed8ab..1e8e06d 100644 --- a/sources/plugins/contextmenu/lang/es.js +++ b/sources/plugins/contextmenu/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'es', { diff --git a/sources/plugins/contextmenu/lang/et.js b/sources/plugins/contextmenu/lang/et.js index 7e34fbb..d7ece9a 100644 --- a/sources/plugins/contextmenu/lang/et.js +++ b/sources/plugins/contextmenu/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'et', { diff --git a/sources/plugins/contextmenu/lang/eu.js b/sources/plugins/contextmenu/lang/eu.js index f04ae72..32018e0 100644 --- a/sources/plugins/contextmenu/lang/eu.js +++ b/sources/plugins/contextmenu/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'eu', { diff --git a/sources/plugins/contextmenu/lang/fa.js b/sources/plugins/contextmenu/lang/fa.js index 6ba8b7c..233d30d 100644 --- a/sources/plugins/contextmenu/lang/fa.js +++ b/sources/plugins/contextmenu/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'fa', { diff --git a/sources/plugins/contextmenu/lang/fi.js b/sources/plugins/contextmenu/lang/fi.js index 920c494..5c11832 100644 --- a/sources/plugins/contextmenu/lang/fi.js +++ b/sources/plugins/contextmenu/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'fi', { diff --git a/sources/plugins/contextmenu/lang/fo.js b/sources/plugins/contextmenu/lang/fo.js index 6e71076..6069a48 100644 --- a/sources/plugins/contextmenu/lang/fo.js +++ b/sources/plugins/contextmenu/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'fo', { diff --git a/sources/plugins/contextmenu/lang/fr-ca.js b/sources/plugins/contextmenu/lang/fr-ca.js index c9ffdc1..d7aca5c 100644 --- a/sources/plugins/contextmenu/lang/fr-ca.js +++ b/sources/plugins/contextmenu/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'fr-ca', { diff --git a/sources/plugins/contextmenu/lang/fr.js b/sources/plugins/contextmenu/lang/fr.js index 9205c52..7af3f33 100644 --- a/sources/plugins/contextmenu/lang/fr.js +++ b/sources/plugins/contextmenu/lang/fr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'fr', { diff --git a/sources/plugins/contextmenu/lang/gl.js b/sources/plugins/contextmenu/lang/gl.js index 92561cc..de69eae 100644 --- a/sources/plugins/contextmenu/lang/gl.js +++ b/sources/plugins/contextmenu/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'gl', { diff --git a/sources/plugins/contextmenu/lang/gu.js b/sources/plugins/contextmenu/lang/gu.js index f2065ee..d9a83da 100644 --- a/sources/plugins/contextmenu/lang/gu.js +++ b/sources/plugins/contextmenu/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'gu', { diff --git a/sources/plugins/contextmenu/lang/he.js b/sources/plugins/contextmenu/lang/he.js index 71d3bd9..a276534 100644 --- a/sources/plugins/contextmenu/lang/he.js +++ b/sources/plugins/contextmenu/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'he', { diff --git a/sources/plugins/contextmenu/lang/hi.js b/sources/plugins/contextmenu/lang/hi.js index 9181aca..a3f501d 100644 --- a/sources/plugins/contextmenu/lang/hi.js +++ b/sources/plugins/contextmenu/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'hi', { diff --git a/sources/plugins/contextmenu/lang/hr.js b/sources/plugins/contextmenu/lang/hr.js index 335215d..149c1eb 100644 --- a/sources/plugins/contextmenu/lang/hr.js +++ b/sources/plugins/contextmenu/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'hr', { diff --git a/sources/plugins/contextmenu/lang/hu.js b/sources/plugins/contextmenu/lang/hu.js index f80d0ae..60bb66c 100644 --- a/sources/plugins/contextmenu/lang/hu.js +++ b/sources/plugins/contextmenu/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'hu', { diff --git a/sources/plugins/contextmenu/lang/id.js b/sources/plugins/contextmenu/lang/id.js index 0278f79..8d19e50 100644 --- a/sources/plugins/contextmenu/lang/id.js +++ b/sources/plugins/contextmenu/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'id', { diff --git a/sources/plugins/contextmenu/lang/is.js b/sources/plugins/contextmenu/lang/is.js index 6d208f1..4404c99 100644 --- a/sources/plugins/contextmenu/lang/is.js +++ b/sources/plugins/contextmenu/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'is', { diff --git a/sources/plugins/contextmenu/lang/it.js b/sources/plugins/contextmenu/lang/it.js index dc206c9..0453e18 100644 --- a/sources/plugins/contextmenu/lang/it.js +++ b/sources/plugins/contextmenu/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'it', { diff --git a/sources/plugins/contextmenu/lang/ja.js b/sources/plugins/contextmenu/lang/ja.js index 939486f..5887847 100644 --- a/sources/plugins/contextmenu/lang/ja.js +++ b/sources/plugins/contextmenu/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ja', { diff --git a/sources/plugins/contextmenu/lang/ka.js b/sources/plugins/contextmenu/lang/ka.js index b7c553b..f279b0a 100644 --- a/sources/plugins/contextmenu/lang/ka.js +++ b/sources/plugins/contextmenu/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ka', { diff --git a/sources/plugins/contextmenu/lang/km.js b/sources/plugins/contextmenu/lang/km.js index 967e4fe..9f5d965 100644 --- a/sources/plugins/contextmenu/lang/km.js +++ b/sources/plugins/contextmenu/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'km', { diff --git a/sources/plugins/contextmenu/lang/ko.js b/sources/plugins/contextmenu/lang/ko.js index 8f873fe..45273b5 100644 --- a/sources/plugins/contextmenu/lang/ko.js +++ b/sources/plugins/contextmenu/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ko', { diff --git a/sources/plugins/contextmenu/lang/ku.js b/sources/plugins/contextmenu/lang/ku.js index f49b18b..c183cb2 100644 --- a/sources/plugins/contextmenu/lang/ku.js +++ b/sources/plugins/contextmenu/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ku', { diff --git a/sources/plugins/contextmenu/lang/lt.js b/sources/plugins/contextmenu/lang/lt.js index e50e8a4..e16597a 100644 --- a/sources/plugins/contextmenu/lang/lt.js +++ b/sources/plugins/contextmenu/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'lt', { diff --git a/sources/plugins/contextmenu/lang/lv.js b/sources/plugins/contextmenu/lang/lv.js index fad495a..b14f0eb 100644 --- a/sources/plugins/contextmenu/lang/lv.js +++ b/sources/plugins/contextmenu/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'lv', { diff --git a/sources/plugins/contextmenu/lang/mk.js b/sources/plugins/contextmenu/lang/mk.js index c00cebb..1d7c4c7 100644 --- a/sources/plugins/contextmenu/lang/mk.js +++ b/sources/plugins/contextmenu/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'mk', { diff --git a/sources/plugins/contextmenu/lang/mn.js b/sources/plugins/contextmenu/lang/mn.js index 0745938..5076f18 100644 --- a/sources/plugins/contextmenu/lang/mn.js +++ b/sources/plugins/contextmenu/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'mn', { diff --git a/sources/plugins/contextmenu/lang/ms.js b/sources/plugins/contextmenu/lang/ms.js index 870cbac..019ba76 100644 --- a/sources/plugins/contextmenu/lang/ms.js +++ b/sources/plugins/contextmenu/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ms', { diff --git a/sources/plugins/contextmenu/lang/nb.js b/sources/plugins/contextmenu/lang/nb.js index cc31945..c7c41b0 100644 --- a/sources/plugins/contextmenu/lang/nb.js +++ b/sources/plugins/contextmenu/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'nb', { diff --git a/sources/plugins/contextmenu/lang/nl.js b/sources/plugins/contextmenu/lang/nl.js index baa8eb2..0ceb7cb 100644 --- a/sources/plugins/contextmenu/lang/nl.js +++ b/sources/plugins/contextmenu/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'nl', { diff --git a/sources/plugins/contextmenu/lang/no.js b/sources/plugins/contextmenu/lang/no.js index 8885d40..ee283cf 100644 --- a/sources/plugins/contextmenu/lang/no.js +++ b/sources/plugins/contextmenu/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'no', { diff --git a/sources/plugins/contextmenu/lang/oc.js b/sources/plugins/contextmenu/lang/oc.js new file mode 100644 index 0000000..8fab98f --- /dev/null +++ b/sources/plugins/contextmenu/lang/oc.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'oc', { + options: 'Opcions del menú contextual' +} ); diff --git a/sources/plugins/contextmenu/lang/pl.js b/sources/plugins/contextmenu/lang/pl.js index 47de98d..99ef5d9 100644 --- a/sources/plugins/contextmenu/lang/pl.js +++ b/sources/plugins/contextmenu/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'pl', { diff --git a/sources/plugins/contextmenu/lang/pt-br.js b/sources/plugins/contextmenu/lang/pt-br.js index 8cf3255..ec91513 100644 --- a/sources/plugins/contextmenu/lang/pt-br.js +++ b/sources/plugins/contextmenu/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'pt-br', { diff --git a/sources/plugins/contextmenu/lang/pt.js b/sources/plugins/contextmenu/lang/pt.js index 31c027f..c2c969d 100644 --- a/sources/plugins/contextmenu/lang/pt.js +++ b/sources/plugins/contextmenu/lang/pt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'pt', { diff --git a/sources/plugins/contextmenu/lang/ro.js b/sources/plugins/contextmenu/lang/ro.js index b9c0077..928c4b3 100644 --- a/sources/plugins/contextmenu/lang/ro.js +++ b/sources/plugins/contextmenu/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ro', { diff --git a/sources/plugins/contextmenu/lang/ru.js b/sources/plugins/contextmenu/lang/ru.js index 330afbe..f671b6a 100644 --- a/sources/plugins/contextmenu/lang/ru.js +++ b/sources/plugins/contextmenu/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ru', { diff --git a/sources/plugins/contextmenu/lang/si.js b/sources/plugins/contextmenu/lang/si.js index 8b3eda0..ec603a3 100644 --- a/sources/plugins/contextmenu/lang/si.js +++ b/sources/plugins/contextmenu/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'si', { diff --git a/sources/plugins/contextmenu/lang/sk.js b/sources/plugins/contextmenu/lang/sk.js index 34d64ac..fda2b3d 100644 --- a/sources/plugins/contextmenu/lang/sk.js +++ b/sources/plugins/contextmenu/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'sk', { diff --git a/sources/plugins/contextmenu/lang/sl.js b/sources/plugins/contextmenu/lang/sl.js index e823bb6..9c7fc29 100644 --- a/sources/plugins/contextmenu/lang/sl.js +++ b/sources/plugins/contextmenu/lang/sl.js @@ -1,7 +1,7 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'sl', { - options: 'Možnosti Kontekstnega Menija' + options: 'Možnosti kontekstnega menija' } ); diff --git a/sources/plugins/contextmenu/lang/sq.js b/sources/plugins/contextmenu/lang/sq.js index e1d40dc..698ca2d 100644 --- a/sources/plugins/contextmenu/lang/sq.js +++ b/sources/plugins/contextmenu/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'sq', { diff --git a/sources/plugins/contextmenu/lang/sr-latn.js b/sources/plugins/contextmenu/lang/sr-latn.js index a63e783..d550e84 100644 --- a/sources/plugins/contextmenu/lang/sr-latn.js +++ b/sources/plugins/contextmenu/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'sr-latn', { diff --git a/sources/plugins/contextmenu/lang/sr.js b/sources/plugins/contextmenu/lang/sr.js index ec79a0c..2f7ba14 100644 --- a/sources/plugins/contextmenu/lang/sr.js +++ b/sources/plugins/contextmenu/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'sr', { diff --git a/sources/plugins/contextmenu/lang/sv.js b/sources/plugins/contextmenu/lang/sv.js index 69fa7b9..a3b043f 100644 --- a/sources/plugins/contextmenu/lang/sv.js +++ b/sources/plugins/contextmenu/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'sv', { diff --git a/sources/plugins/contextmenu/lang/th.js b/sources/plugins/contextmenu/lang/th.js index c17f20f..ce77065 100644 --- a/sources/plugins/contextmenu/lang/th.js +++ b/sources/plugins/contextmenu/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'th', { diff --git a/sources/plugins/contextmenu/lang/tr.js b/sources/plugins/contextmenu/lang/tr.js index c31e6f3..4d5a550 100644 --- a/sources/plugins/contextmenu/lang/tr.js +++ b/sources/plugins/contextmenu/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'tr', { diff --git a/sources/plugins/contextmenu/lang/tt.js b/sources/plugins/contextmenu/lang/tt.js index 514a35f..0531370 100644 --- a/sources/plugins/contextmenu/lang/tt.js +++ b/sources/plugins/contextmenu/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'tt', { diff --git a/sources/plugins/contextmenu/lang/ug.js b/sources/plugins/contextmenu/lang/ug.js index b52e259..95a9d0a 100644 --- a/sources/plugins/contextmenu/lang/ug.js +++ b/sources/plugins/contextmenu/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'ug', { diff --git a/sources/plugins/contextmenu/lang/uk.js b/sources/plugins/contextmenu/lang/uk.js index 97b514a..0a4ffb9 100644 --- a/sources/plugins/contextmenu/lang/uk.js +++ b/sources/plugins/contextmenu/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'uk', { diff --git a/sources/plugins/contextmenu/lang/vi.js b/sources/plugins/contextmenu/lang/vi.js index 91fc97c..42c39b0 100644 --- a/sources/plugins/contextmenu/lang/vi.js +++ b/sources/plugins/contextmenu/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'vi', { diff --git a/sources/plugins/contextmenu/lang/zh-cn.js b/sources/plugins/contextmenu/lang/zh-cn.js index 9ee2213..56879ee 100644 --- a/sources/plugins/contextmenu/lang/zh-cn.js +++ b/sources/plugins/contextmenu/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'zh-cn', { diff --git a/sources/plugins/contextmenu/lang/zh.js b/sources/plugins/contextmenu/lang/zh.js index b451c7f..c8d8b93 100644 --- a/sources/plugins/contextmenu/lang/zh.js +++ b/sources/plugins/contextmenu/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'contextmenu', 'zh', { diff --git a/sources/plugins/contextmenu/plugin.js b/sources/plugins/contextmenu/plugin.js index 09d7f25..4a3bd5f 100644 --- a/sources/plugins/contextmenu/plugin.js +++ b/sources/plugins/contextmenu/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -7,10 +7,10 @@ CKEDITOR.plugins.add( 'contextmenu', { requires: 'menu', // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength - // Make sure the base class (CKEDITOR.menu) is loaded before it (#3318). + // Make sure the base class (CKEDITOR.menu) is loaded before it (http://dev.ckeditor.com/ticket/3318). onLoad: function() { /** * Class replacing the non-configurable native context menu with a configurable CKEditor's equivalent. @@ -51,7 +51,7 @@ CKEDITOR.plugins.add( 'contextmenu', { var domEvent = event.data, isCtrlKeyDown = // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event, - // which make this property unreliable. (#4826) + // which make this property unreliable. (http://dev.ckeditor.com/ticket/4826) ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ); if ( nativeContextMenuOnCtrl && isCtrlKeyDown ) @@ -60,7 +60,7 @@ CKEDITOR.plugins.add( 'contextmenu', { // Cancel the browser context menu. domEvent.preventDefault(); - // Fix selection when non-editable element in Webkit/Blink (Mac) (#11306). + // Fix selection when non-editable element in Webkit/Blink (Mac) (http://dev.ckeditor.com/ticket/11306). if ( CKEDITOR.env.mac && CKEDITOR.env.webkit ) { var editor = this.editor, contentEditableParent = new CKEDITOR.dom.elementPath( domEvent.getTarget(), editor.editable() ).contains( function( el ) { @@ -83,7 +83,7 @@ CKEDITOR.plugins.add( 'contextmenu', { CKEDITOR.tools.setTimeout( function() { this.open( offsetParent, null, offsetX, offsetY ); - // IE needs a short while to allow selection change before opening menu. (#7908) + // IE needs a short while to allow selection change before opening menu. (http://dev.ckeditor.com/ticket/7908) }, CKEDITOR.env.ie ? 200 : 0, this ); }, this ); @@ -111,10 +111,14 @@ CKEDITOR.plugins.add( 'contextmenu', { * @param {Number} [offsetY] */ open: function( offsetParent, corner, offsetX, offsetY ) { + if ( this.editor.config.enableContextMenu === false ) { + return; + } + this.editor.focus(); offsetParent = offsetParent || CKEDITOR.document.getDocumentElement(); - // #9362: Force selection check to update commands' states in the new context. + // http://dev.ckeditor.com/ticket/9362: Force selection check to update commands' states in the new context. this.editor.selectionChange( 1 ); this.show( offsetParent, corner, offsetX, offsetY ); @@ -157,3 +161,14 @@ CKEDITOR.plugins.add( 'contextmenu', { * @cfg {Boolean} [browserContextMenuOnCtrl=true] * @member CKEDITOR.config */ + +/** + * Whether to enable the context menu. Regardless of the setting the [Context Menu](http://ckeditor.com/addon/contextmenu) + * plugin is still loaded. + * + * config.enableContextMenu = false; + * + * @since 4.7.0 + * @cfg {Boolean} [enableContextMenu=true] + * @member CKEDITOR.config + */ diff --git a/sources/plugins/dialog/dialogDefinition.js b/sources/plugins/dialog/dialogDefinition.js index df5870c..6ecb491 100644 --- a/sources/plugins/dialog/dialogDefinition.js +++ b/sources/plugins/dialog/dialogDefinition.js @@ -1,6 +1,6 @@ // jscs:disable disallowMixedSpacesAndTabs /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/dialog/plugin.js b/sources/plugins/dialog/plugin.js index 3afe887..f26f9c9 100644 --- a/sources/plugins/dialog/plugin.js +++ b/sources/plugins/dialog/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -177,10 +177,10 @@ CKEDITOR.DIALOG_STATE_BUSY = 2; title = body.getChild( 0 ), close = body.getChild( 1 ); - // Don't allow dragging on dialog (#13184). + // Don't allow dragging on dialog (http://dev.ckeditor.com/ticket/13184). editor.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement( body ); - // IFrame shim for dialog that masks activeX in IE. (#7619) + // IFrame shim for dialog that masks activeX in IE. (http://dev.ckeditor.com/ticket/7619) if ( CKEDITOR.env.ie && !CKEDITOR.env.quirks && !CKEDITOR.env.edge ) { var src = 'javascript:void(function(){' + encodeURIComponent( 'document.open();(' + CKEDITOR.tools.fixDomain + ')();document.close();' ) + '}())', // jshint ignore:line iframe = CKEDITOR.dom.element.createFromHtml( '

- Copyright © 2003-2016, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

diff --git a/sources/plugins/dialogadvtab/plugin.js b/sources/plugins/dialogadvtab/plugin.js index 2d4bcab..460b534 100644 --- a/sources/plugins/dialogadvtab/plugin.js +++ b/sources/plugins/dialogadvtab/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/dialogui/plugin.js b/sources/plugins/dialogui/plugin.js index 03fe753..ab36791 100644 --- a/sources/plugins/dialogui/plugin.js +++ b/sources/plugins/dialogui/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -72,7 +72,7 @@ CKEDITOR.plugins.add( 'dialogui', { if ( !this._.domOnChangeRegistered ) { dialog.on( 'load', function() { this.getInputElement().on( 'change', function() { - // Make sure 'onchange' doesn't get fired after dialog closed. (#5719) + // Make sure 'onchange' doesn't get fired after dialog closed. (http://dev.ckeditor.com/ticket/5719) if ( !dialog.parts.dialog.isVisible() ) return; @@ -240,7 +240,7 @@ CKEDITOR.plugins.add( 'dialogui', { keyPressedOnMe = true; } ); - // Lower the priority this 'keyup' since 'ok' will close the dialog.(#3749) + // Lower the priority this 'keyup' since 'ok' will close the dialog.(http://dev.ckeditor.com/ticket/3749) me.getInputElement().on( 'keyup', function( evt ) { if ( evt.data.getKeystroke() == 13 && keyPressedOnMe ) { dialog.getButton( 'ok' ) && setTimeout( function() { @@ -472,7 +472,7 @@ CKEDITOR.plugins.add( 'dialogui', { if ( typeof inputDefinition.inputStyle != 'undefined' ) inputDefinition.style = inputDefinition.inputStyle; - // Make inputs of radio type focusable (#10866). + // Make inputs of radio type focusable (http://dev.ckeditor.com/ticket/10866). inputDefinition.keyboardFocusable = true; children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) ); @@ -537,7 +537,7 @@ CKEDITOR.plugins.add( 'dialogui', { ( function() { element.on( 'click', function( evt ) { me.click(); - // #9958 + // http://dev.ckeditor.com/ticket/9958 evt.data.preventDefault(); } ); @@ -686,7 +686,7 @@ CKEDITOR.plugins.add( 'dialogui', { ' src="javascript:void(' ]; - // Support for custom document.domain on IE. (#10165) + // Support for custom document.domain on IE. (http://dev.ckeditor.com/ticket/10165) html.push( CKEDITOR.env.ie ? '(function(){' + encodeURIComponent( 'document.open();' + @@ -1423,7 +1423,7 @@ CKEDITOR.plugins.add( 'dialogui', { '', - // Set width to make sure that input is not clipped by the iframe (#11253). + // Set width to make sure that input is not clipped by the iframe (http://dev.ckeditor.com/ticket/11253). 'http://ckeditor.com

- Copyright © 2003-2016, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

diff --git a/sources/plugins/entities/plugin.js b/sources/plugins/entities/plugin.js index bb80b97..d457ad1 100644 --- a/sources/plugins/entities/plugin.js +++ b/sources/plugins/entities/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/fakeobjects/lang/af.js b/sources/plugins/fakeobjects/lang/af.js index eb71716..835d45b 100644 --- a/sources/plugins/fakeobjects/lang/af.js +++ b/sources/plugins/fakeobjects/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'af', { diff --git a/sources/plugins/fakeobjects/lang/ar.js b/sources/plugins/fakeobjects/lang/ar.js index c3dec93..44363c9 100644 --- a/sources/plugins/fakeobjects/lang/ar.js +++ b/sources/plugins/fakeobjects/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ar', { diff --git a/sources/plugins/fakeobjects/lang/az.js b/sources/plugins/fakeobjects/lang/az.js new file mode 100644 index 0000000..01fa87d --- /dev/null +++ b/sources/plugins/fakeobjects/lang/az.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'fakeobjects', 'az', { + anchor: 'Lövbər', + flash: 'Flash animasiya', + hiddenfield: 'Gizli xana', + iframe: 'IFrame', + unknown: 'Tanımamış obyekt' +} ); diff --git a/sources/plugins/fakeobjects/lang/bg.js b/sources/plugins/fakeobjects/lang/bg.js index 9d9a317..538cdf1 100644 --- a/sources/plugins/fakeobjects/lang/bg.js +++ b/sources/plugins/fakeobjects/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'bg', { diff --git a/sources/plugins/fakeobjects/lang/bn.js b/sources/plugins/fakeobjects/lang/bn.js index 83e5e2c..70c9ce9 100644 --- a/sources/plugins/fakeobjects/lang/bn.js +++ b/sources/plugins/fakeobjects/lang/bn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'bn', { diff --git a/sources/plugins/fakeobjects/lang/bs.js b/sources/plugins/fakeobjects/lang/bs.js index 6495f67..4a17242 100644 --- a/sources/plugins/fakeobjects/lang/bs.js +++ b/sources/plugins/fakeobjects/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'bs', { diff --git a/sources/plugins/fakeobjects/lang/ca.js b/sources/plugins/fakeobjects/lang/ca.js index eff05e0..cc09e6c 100644 --- a/sources/plugins/fakeobjects/lang/ca.js +++ b/sources/plugins/fakeobjects/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ca', { diff --git a/sources/plugins/fakeobjects/lang/cs.js b/sources/plugins/fakeobjects/lang/cs.js index 66706f8..7355f4a 100644 --- a/sources/plugins/fakeobjects/lang/cs.js +++ b/sources/plugins/fakeobjects/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'cs', { diff --git a/sources/plugins/fakeobjects/lang/cy.js b/sources/plugins/fakeobjects/lang/cy.js index f1f359c..8b0ffc9 100644 --- a/sources/plugins/fakeobjects/lang/cy.js +++ b/sources/plugins/fakeobjects/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'cy', { diff --git a/sources/plugins/fakeobjects/lang/da.js b/sources/plugins/fakeobjects/lang/da.js index b9d291c..06a869f 100644 --- a/sources/plugins/fakeobjects/lang/da.js +++ b/sources/plugins/fakeobjects/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'da', { diff --git a/sources/plugins/fakeobjects/lang/de-ch.js b/sources/plugins/fakeobjects/lang/de-ch.js index 866e26b..068a003 100644 --- a/sources/plugins/fakeobjects/lang/de-ch.js +++ b/sources/plugins/fakeobjects/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'de-ch', { diff --git a/sources/plugins/fakeobjects/lang/de.js b/sources/plugins/fakeobjects/lang/de.js index 508e5ba..32326cf 100644 --- a/sources/plugins/fakeobjects/lang/de.js +++ b/sources/plugins/fakeobjects/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'de', { diff --git a/sources/plugins/fakeobjects/lang/el.js b/sources/plugins/fakeobjects/lang/el.js index 46852d8..211c8d4 100644 --- a/sources/plugins/fakeobjects/lang/el.js +++ b/sources/plugins/fakeobjects/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'el', { diff --git a/sources/plugins/fakeobjects/lang/en-au.js b/sources/plugins/fakeobjects/lang/en-au.js index ec075ff..189e5c8 100644 --- a/sources/plugins/fakeobjects/lang/en-au.js +++ b/sources/plugins/fakeobjects/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'en-au', { diff --git a/sources/plugins/fakeobjects/lang/en-ca.js b/sources/plugins/fakeobjects/lang/en-ca.js index 11c5e00..071bc10 100644 --- a/sources/plugins/fakeobjects/lang/en-ca.js +++ b/sources/plugins/fakeobjects/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'en-ca', { diff --git a/sources/plugins/fakeobjects/lang/en-gb.js b/sources/plugins/fakeobjects/lang/en-gb.js index 4b91eba..e38f16c 100644 --- a/sources/plugins/fakeobjects/lang/en-gb.js +++ b/sources/plugins/fakeobjects/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'en-gb', { diff --git a/sources/plugins/fakeobjects/lang/en.js b/sources/plugins/fakeobjects/lang/en.js index c86f562..d871231 100644 --- a/sources/plugins/fakeobjects/lang/en.js +++ b/sources/plugins/fakeobjects/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'en', { diff --git a/sources/plugins/fakeobjects/lang/eo.js b/sources/plugins/fakeobjects/lang/eo.js index 3a9eb96..bbce7f8 100644 --- a/sources/plugins/fakeobjects/lang/eo.js +++ b/sources/plugins/fakeobjects/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'eo', { diff --git a/sources/plugins/fakeobjects/lang/es-mx.js b/sources/plugins/fakeobjects/lang/es-mx.js new file mode 100644 index 0000000..f9e87e7 --- /dev/null +++ b/sources/plugins/fakeobjects/lang/es-mx.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'fakeobjects', 'es-mx', { + anchor: 'Ancla', + flash: 'Animación flash', + hiddenfield: 'Campo oculto', + iframe: 'IFrame', + unknown: 'Objeto desconocido' +} ); diff --git a/sources/plugins/fakeobjects/lang/es.js b/sources/plugins/fakeobjects/lang/es.js index 9eadf45..46ac72f 100644 --- a/sources/plugins/fakeobjects/lang/es.js +++ b/sources/plugins/fakeobjects/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'es', { diff --git a/sources/plugins/fakeobjects/lang/et.js b/sources/plugins/fakeobjects/lang/et.js index dc7b354..2c25f43 100644 --- a/sources/plugins/fakeobjects/lang/et.js +++ b/sources/plugins/fakeobjects/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'et', { diff --git a/sources/plugins/fakeobjects/lang/eu.js b/sources/plugins/fakeobjects/lang/eu.js index 93c9dad..dfc4460 100644 --- a/sources/plugins/fakeobjects/lang/eu.js +++ b/sources/plugins/fakeobjects/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'eu', { diff --git a/sources/plugins/fakeobjects/lang/fa.js b/sources/plugins/fakeobjects/lang/fa.js index bc9f8b5..4104d1f 100644 --- a/sources/plugins/fakeobjects/lang/fa.js +++ b/sources/plugins/fakeobjects/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'fa', { diff --git a/sources/plugins/fakeobjects/lang/fi.js b/sources/plugins/fakeobjects/lang/fi.js index 07e302d..c663093 100644 --- a/sources/plugins/fakeobjects/lang/fi.js +++ b/sources/plugins/fakeobjects/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'fi', { diff --git a/sources/plugins/fakeobjects/lang/fo.js b/sources/plugins/fakeobjects/lang/fo.js index 604d5dc..8b7c2f9 100644 --- a/sources/plugins/fakeobjects/lang/fo.js +++ b/sources/plugins/fakeobjects/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'fo', { diff --git a/sources/plugins/fakeobjects/lang/fr-ca.js b/sources/plugins/fakeobjects/lang/fr-ca.js index b4e6d2f..c281f4f 100644 --- a/sources/plugins/fakeobjects/lang/fr-ca.js +++ b/sources/plugins/fakeobjects/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'fr-ca', { diff --git a/sources/plugins/fakeobjects/lang/fr.js b/sources/plugins/fakeobjects/lang/fr.js index 6ab4497..be306ec 100644 --- a/sources/plugins/fakeobjects/lang/fr.js +++ b/sources/plugins/fakeobjects/lang/fr.js @@ -1,11 +1,11 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'fr', { anchor: 'Ancre', flash: 'Animation Flash', - hiddenfield: 'Champ caché', - iframe: 'IFrame', + hiddenfield: 'Champ invisible', + iframe: 'Cadre de contenu incorporé', unknown: 'Objet inconnu' } ); diff --git a/sources/plugins/fakeobjects/lang/gl.js b/sources/plugins/fakeobjects/lang/gl.js index 3209234..2c353a4 100644 --- a/sources/plugins/fakeobjects/lang/gl.js +++ b/sources/plugins/fakeobjects/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'gl', { diff --git a/sources/plugins/fakeobjects/lang/gu.js b/sources/plugins/fakeobjects/lang/gu.js index 8d7f364..66fb428 100644 --- a/sources/plugins/fakeobjects/lang/gu.js +++ b/sources/plugins/fakeobjects/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'gu', { diff --git a/sources/plugins/fakeobjects/lang/he.js b/sources/plugins/fakeobjects/lang/he.js index 393ceb1..bc0d472 100644 --- a/sources/plugins/fakeobjects/lang/he.js +++ b/sources/plugins/fakeobjects/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'he', { diff --git a/sources/plugins/fakeobjects/lang/hi.js b/sources/plugins/fakeobjects/lang/hi.js index c3e6903..e2cc724 100644 --- a/sources/plugins/fakeobjects/lang/hi.js +++ b/sources/plugins/fakeobjects/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'hi', { diff --git a/sources/plugins/fakeobjects/lang/hr.js b/sources/plugins/fakeobjects/lang/hr.js index 8a321a0..11f3574 100644 --- a/sources/plugins/fakeobjects/lang/hr.js +++ b/sources/plugins/fakeobjects/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'hr', { diff --git a/sources/plugins/fakeobjects/lang/hu.js b/sources/plugins/fakeobjects/lang/hu.js index abe5ed7..24cec55 100644 --- a/sources/plugins/fakeobjects/lang/hu.js +++ b/sources/plugins/fakeobjects/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'hu', { diff --git a/sources/plugins/fakeobjects/lang/id.js b/sources/plugins/fakeobjects/lang/id.js index fad6ad1..85d8c14 100644 --- a/sources/plugins/fakeobjects/lang/id.js +++ b/sources/plugins/fakeobjects/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'id', { diff --git a/sources/plugins/fakeobjects/lang/is.js b/sources/plugins/fakeobjects/lang/is.js index c71602b..40df479 100644 --- a/sources/plugins/fakeobjects/lang/is.js +++ b/sources/plugins/fakeobjects/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'is', { diff --git a/sources/plugins/fakeobjects/lang/it.js b/sources/plugins/fakeobjects/lang/it.js index ba893e2..8993951 100644 --- a/sources/plugins/fakeobjects/lang/it.js +++ b/sources/plugins/fakeobjects/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'it', { diff --git a/sources/plugins/fakeobjects/lang/ja.js b/sources/plugins/fakeobjects/lang/ja.js index af24002..db21eeb 100644 --- a/sources/plugins/fakeobjects/lang/ja.js +++ b/sources/plugins/fakeobjects/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ja', { diff --git a/sources/plugins/fakeobjects/lang/ka.js b/sources/plugins/fakeobjects/lang/ka.js index cc65e9a..3544161 100644 --- a/sources/plugins/fakeobjects/lang/ka.js +++ b/sources/plugins/fakeobjects/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ka', { diff --git a/sources/plugins/fakeobjects/lang/km.js b/sources/plugins/fakeobjects/lang/km.js index a8c1a1d..54be6d0 100644 --- a/sources/plugins/fakeobjects/lang/km.js +++ b/sources/plugins/fakeobjects/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'km', { diff --git a/sources/plugins/fakeobjects/lang/ko.js b/sources/plugins/fakeobjects/lang/ko.js index e9f97ac..b5c0593 100644 --- a/sources/plugins/fakeobjects/lang/ko.js +++ b/sources/plugins/fakeobjects/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ko', { diff --git a/sources/plugins/fakeobjects/lang/ku.js b/sources/plugins/fakeobjects/lang/ku.js index 5ef378b..bbfb9f6 100644 --- a/sources/plugins/fakeobjects/lang/ku.js +++ b/sources/plugins/fakeobjects/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ku', { diff --git a/sources/plugins/fakeobjects/lang/lt.js b/sources/plugins/fakeobjects/lang/lt.js index 54a6ce6..e14c211 100644 --- a/sources/plugins/fakeobjects/lang/lt.js +++ b/sources/plugins/fakeobjects/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'lt', { diff --git a/sources/plugins/fakeobjects/lang/lv.js b/sources/plugins/fakeobjects/lang/lv.js index 81dbb2d..388e486 100644 --- a/sources/plugins/fakeobjects/lang/lv.js +++ b/sources/plugins/fakeobjects/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'lv', { diff --git a/sources/plugins/fakeobjects/lang/mk.js b/sources/plugins/fakeobjects/lang/mk.js index a6871cc..deacc87 100644 --- a/sources/plugins/fakeobjects/lang/mk.js +++ b/sources/plugins/fakeobjects/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'mk', { diff --git a/sources/plugins/fakeobjects/lang/mn.js b/sources/plugins/fakeobjects/lang/mn.js index a8f6e00..a2857cc 100644 --- a/sources/plugins/fakeobjects/lang/mn.js +++ b/sources/plugins/fakeobjects/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'mn', { diff --git a/sources/plugins/fakeobjects/lang/ms.js b/sources/plugins/fakeobjects/lang/ms.js index 4008746..7325f14 100644 --- a/sources/plugins/fakeobjects/lang/ms.js +++ b/sources/plugins/fakeobjects/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ms', { diff --git a/sources/plugins/fakeobjects/lang/nb.js b/sources/plugins/fakeobjects/lang/nb.js index 8d1cb97..b6a6527 100644 --- a/sources/plugins/fakeobjects/lang/nb.js +++ b/sources/plugins/fakeobjects/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'nb', { diff --git a/sources/plugins/fakeobjects/lang/nl.js b/sources/plugins/fakeobjects/lang/nl.js index e997794..158985a 100644 --- a/sources/plugins/fakeobjects/lang/nl.js +++ b/sources/plugins/fakeobjects/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'nl', { diff --git a/sources/plugins/fakeobjects/lang/no.js b/sources/plugins/fakeobjects/lang/no.js index 1b35b24..cbbb4cf 100644 --- a/sources/plugins/fakeobjects/lang/no.js +++ b/sources/plugins/fakeobjects/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'no', { diff --git a/sources/plugins/fakeobjects/lang/oc.js b/sources/plugins/fakeobjects/lang/oc.js new file mode 100644 index 0000000..0ecfcf8 --- /dev/null +++ b/sources/plugins/fakeobjects/lang/oc.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'fakeobjects', 'oc', { + anchor: 'Ancòra', + flash: 'Animacion Flash', + hiddenfield: 'Camp invisible', + iframe: 'Quadre de contengut incorporat', + unknown: 'Objècte desconegut' +} ); diff --git a/sources/plugins/fakeobjects/lang/pl.js b/sources/plugins/fakeobjects/lang/pl.js index 6555db9..06b3a20 100644 --- a/sources/plugins/fakeobjects/lang/pl.js +++ b/sources/plugins/fakeobjects/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'pl', { diff --git a/sources/plugins/fakeobjects/lang/pt-br.js b/sources/plugins/fakeobjects/lang/pt-br.js index 70b4c28..6198bf3 100644 --- a/sources/plugins/fakeobjects/lang/pt-br.js +++ b/sources/plugins/fakeobjects/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'pt-br', { diff --git a/sources/plugins/fakeobjects/lang/pt.js b/sources/plugins/fakeobjects/lang/pt.js index 9ca5f62..c3d762f 100644 --- a/sources/plugins/fakeobjects/lang/pt.js +++ b/sources/plugins/fakeobjects/lang/pt.js @@ -1,11 +1,11 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'pt', { - anchor: ' Inserir/Editar Âncora', + anchor: ' Inserir/Editar âncora', flash: 'Animação Flash', hiddenfield: 'Campo oculto', iframe: 'IFrame', - unknown: 'Objeto Desconhecido' + unknown: 'Objeto desconhecido' } ); diff --git a/sources/plugins/fakeobjects/lang/ro.js b/sources/plugins/fakeobjects/lang/ro.js index 882bb3a..25535d3 100644 --- a/sources/plugins/fakeobjects/lang/ro.js +++ b/sources/plugins/fakeobjects/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ro', { diff --git a/sources/plugins/fakeobjects/lang/ru.js b/sources/plugins/fakeobjects/lang/ru.js index fe94054..7f93bc7 100644 --- a/sources/plugins/fakeobjects/lang/ru.js +++ b/sources/plugins/fakeobjects/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ru', { diff --git a/sources/plugins/fakeobjects/lang/si.js b/sources/plugins/fakeobjects/lang/si.js index 7af0c8e..319240b 100644 --- a/sources/plugins/fakeobjects/lang/si.js +++ b/sources/plugins/fakeobjects/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'si', { diff --git a/sources/plugins/fakeobjects/lang/sk.js b/sources/plugins/fakeobjects/lang/sk.js index 384b76c..1372c54 100644 --- a/sources/plugins/fakeobjects/lang/sk.js +++ b/sources/plugins/fakeobjects/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'sk', { diff --git a/sources/plugins/fakeobjects/lang/sl.js b/sources/plugins/fakeobjects/lang/sl.js index 892725a..f6d9827 100644 --- a/sources/plugins/fakeobjects/lang/sl.js +++ b/sources/plugins/fakeobjects/lang/sl.js @@ -1,10 +1,10 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'sl', { anchor: 'Sidro', - flash: 'Flash animacija', + flash: 'Animacija flash', hiddenfield: 'Skrito polje', iframe: 'IFrame', unknown: 'Neznan objekt' diff --git a/sources/plugins/fakeobjects/lang/sq.js b/sources/plugins/fakeobjects/lang/sq.js index 6c0026a..05f0987 100644 --- a/sources/plugins/fakeobjects/lang/sq.js +++ b/sources/plugins/fakeobjects/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'sq', { diff --git a/sources/plugins/fakeobjects/lang/sr-latn.js b/sources/plugins/fakeobjects/lang/sr-latn.js index 36e66f7..fb497f0 100644 --- a/sources/plugins/fakeobjects/lang/sr-latn.js +++ b/sources/plugins/fakeobjects/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'sr-latn', { diff --git a/sources/plugins/fakeobjects/lang/sr.js b/sources/plugins/fakeobjects/lang/sr.js index 05c6404..82a59cb 100644 --- a/sources/plugins/fakeobjects/lang/sr.js +++ b/sources/plugins/fakeobjects/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'sr', { diff --git a/sources/plugins/fakeobjects/lang/sv.js b/sources/plugins/fakeobjects/lang/sv.js index 2108b28..3db31fb 100644 --- a/sources/plugins/fakeobjects/lang/sv.js +++ b/sources/plugins/fakeobjects/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'sv', { diff --git a/sources/plugins/fakeobjects/lang/th.js b/sources/plugins/fakeobjects/lang/th.js index 813e479..c0d1f4e 100644 --- a/sources/plugins/fakeobjects/lang/th.js +++ b/sources/plugins/fakeobjects/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'th', { diff --git a/sources/plugins/fakeobjects/lang/tr.js b/sources/plugins/fakeobjects/lang/tr.js index c68ab3e..768b7c1 100644 --- a/sources/plugins/fakeobjects/lang/tr.js +++ b/sources/plugins/fakeobjects/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'tr', { diff --git a/sources/plugins/fakeobjects/lang/tt.js b/sources/plugins/fakeobjects/lang/tt.js index df6b172..df1a714 100644 --- a/sources/plugins/fakeobjects/lang/tt.js +++ b/sources/plugins/fakeobjects/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'tt', { diff --git a/sources/plugins/fakeobjects/lang/ug.js b/sources/plugins/fakeobjects/lang/ug.js index 3e6404f..c44b8de 100644 --- a/sources/plugins/fakeobjects/lang/ug.js +++ b/sources/plugins/fakeobjects/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'ug', { diff --git a/sources/plugins/fakeobjects/lang/uk.js b/sources/plugins/fakeobjects/lang/uk.js index 9fcf85b..81da8ca 100644 --- a/sources/plugins/fakeobjects/lang/uk.js +++ b/sources/plugins/fakeobjects/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'uk', { diff --git a/sources/plugins/fakeobjects/lang/vi.js b/sources/plugins/fakeobjects/lang/vi.js index 0d9d68b..f1346aa 100644 --- a/sources/plugins/fakeobjects/lang/vi.js +++ b/sources/plugins/fakeobjects/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'vi', { diff --git a/sources/plugins/fakeobjects/lang/zh-cn.js b/sources/plugins/fakeobjects/lang/zh-cn.js index 5328ae6..8d304c2 100644 --- a/sources/plugins/fakeobjects/lang/zh-cn.js +++ b/sources/plugins/fakeobjects/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'zh-cn', { diff --git a/sources/plugins/fakeobjects/lang/zh.js b/sources/plugins/fakeobjects/lang/zh.js index d4aea58..1255003 100644 --- a/sources/plugins/fakeobjects/lang/zh.js +++ b/sources/plugins/fakeobjects/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'fakeobjects', 'zh', { diff --git a/sources/plugins/fakeobjects/plugin.js b/sources/plugins/fakeobjects/plugin.js index a054a99..b1a8e0c 100644 --- a/sources/plugins/fakeobjects/plugin.js +++ b/sources/plugins/fakeobjects/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -53,7 +53,7 @@ CKEDITOR.plugins.add( 'fakeobjects', { // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength init: function( editor ) { @@ -75,8 +75,15 @@ } ); /** + * Creates fake {@link CKEDITOR.dom.element} based on real element. + * Fake element is an img with special attributes, which keep real element properties. + * * @member CKEDITOR.editor - * @todo + * @param {CKEDITOR.dom.element} realElement Real element to transform. + * @param {String} className Class name which will be used as class of fake element. + * @param {String} realElementType Stores type of fake element. + * @param {Boolean} isResizable Keeps information if element is resizable. + * @returns {CKEDITOR.dom.element} Fake element. */ CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType, isResizable ) { var lang = this.lang.fakeobjects, @@ -91,7 +98,7 @@ align: realElement.getAttribute( 'align' ) || '' }; - // Do not set "src" on high-contrast so the alt text is displayed. (#8945) + // Do not set "src" on high-contrast so the alt text is displayed. (http://dev.ckeditor.com/ticket/8945) if ( !CKEDITOR.env.hc ) attributes.src = CKEDITOR.tools.transparentImageData; @@ -115,8 +122,14 @@ }; /** + * Creates fake {@link CKEDITOR.htmlParser.element} based on real element. + * * @member CKEDITOR.editor - * @todo + * @param {CKEDITOR.dom.element} realElement Real element to transform. + * @param {String} className Class name which will be used as class of fake element. + * @param {String} realElementType Store type of fake element. + * @param {Boolean} isResizable Keep information if element is resizable. + * @returns {CKEDITOR.htmlParser.element} Fake htmlParser element. */ CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable ) { var lang = this.lang.fakeobjects, @@ -136,7 +149,7 @@ align: realElement.attributes.align || '' }; - // Do not set "src" on high-contrast so the alt text is displayed. (#8945) + // Do not set "src" on high-contrast so the alt text is displayed. (http://dev.ckeditor.com/ticket/8945) if ( !CKEDITOR.env.hc ) attributes.src = CKEDITOR.tools.transparentImageData; @@ -160,8 +173,11 @@ }; /** + * Creates {@link CKEDITOR.dom.element} from fake element. + * * @member CKEDITOR.editor - * @todo + * @param {CKEDITOR.dom.element} fakeElement Fake element to transform. + * @returns {CKEDITOR.dom.element/null} Returns real element or `null` if transformed element wasn't fake. */ CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement ) { if ( fakeElement.data( 'cke-real-node-type' ) != CKEDITOR.NODE_ELEMENT ) diff --git a/sources/plugins/filebrowser/plugin.js b/sources/plugins/filebrowser/plugin.js index 6d27146..51744f5 100644 --- a/sources/plugins/filebrowser/plugin.js +++ b/sources/plugins/filebrowser/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -167,7 +167,7 @@ params.langCode = editor.langCode; var url = addQueryString( this.filebrowser.url, params ); - // TODO: V4: Remove backward compatibility (#8163). + // TODO: V4: Remove backward compatibility (http://dev.ckeditor.com/ticket/8163). editor.popup( url, width, height, editor.config.filebrowserWindowFeatures || editor.config.fileBrowserWindowFeatures ); } diff --git a/sources/plugins/floatingspace/plugin.js b/sources/plugins/floatingspace/plugin.js index 70e0ce9..bea3306 100644 --- a/sources/plugins/floatingspace/plugin.js +++ b/sources/plugins/floatingspace/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -68,7 +68,7 @@ } return function( evt ) { - // #10112 Do not fail on editable-less editor. + // http://dev.ckeditor.com/ticket/10112 Do not fail on editable-less editor. if ( !( editable = editor.editable() ) ) return; @@ -159,7 +159,7 @@ alignSide = mid - editorRect.left > editorRect.right - mid ? 'left' : 'right'; } - // (#9769) If viewport width is less than space width, + // (http://dev.ckeditor.com/ticket/9769) If viewport width is less than space width, // make sure space never cross the left boundary of the viewport. // In other words: top-left corner of the space is always visible. if ( spaceRect.width > viewRect.width ) { @@ -226,7 +226,7 @@ offset = 0; } - // (#9769) Finally, stick the space to the opposite side of + // (http://dev.ckeditor.com/ticket/9769) Finally, stick the space to the opposite side of // the viewport when it's cut off horizontally on the left/right // side like below. // @@ -258,7 +258,7 @@ } // Pin mode is fixed, so don't include scroll-x. - // (#9903) For mode is "top" or "bottom", add opposite scroll-x for right-aligned space. + // (http://dev.ckeditor.com/ticket/9903) For mode is "top" or "bottom", add opposite scroll-x for right-aligned space. var scroll = mode == 'pin' ? 0 : alignSide == 'left' ? pageScrollX : -pageScrollX; floatSpace.setStyle( alignSide, pixelate( ( mode == 'pin' ? pinnedOffsetX : dockedOffsetX ) + offset + scroll ) ); diff --git a/sources/plugins/floatpanel/plugin.js b/sources/plugins/floatpanel/plugin.js index c104037..c480696 100644 --- a/sources/plugins/floatpanel/plugin.js +++ b/sources/plugins/floatpanel/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -61,7 +61,7 @@ CKEDITOR.plugins.add( 'floatpanel', { iframe = element.getFirst(), that = this; - // Disable native browser menu. (#4825) + // Disable native browser menu. (http://dev.ckeditor.com/ticket/4825) element.disableContextMenu(); this.element = element; @@ -83,7 +83,7 @@ CKEDITOR.plugins.add( 'floatpanel', { editor.on( 'resize', hide ); // When resize of the window is triggered floatpanel should be repositioned according to new dimensions. - // #11724. Fixes issue with undesired panel hiding on Android and iOS. + // http://dev.ckeditor.com/ticket/11724. Fixes issue with undesired panel hiding on Android and iOS. doc.getWindow().on( 'resize', function() { this.reposition(); }, this ); @@ -155,7 +155,7 @@ CKEDITOR.plugins.add( 'floatpanel', { var element = this.element, iframe = this._.iframe, - // Edge prefers iframe's window to the iframe, just like the rest of the browsers (#13143). + // Edge prefers iframe's window to the iframe, just like the rest of the browsers (http://dev.ckeditor.com/ticket/13143). focused = CKEDITOR.env.ie && !CKEDITOR.env.edge ? iframe : new CKEDITOR.dom.window( iframe.$.contentWindow ), doc = element.getDocument(), positionedAncestor = this._.parentElement.getPositionedAncestor(), @@ -165,7 +165,7 @@ CKEDITOR.plugins.add( 'floatpanel', { left = position.x + ( offsetX || 0 ) - positionedAncestorPosition.x, top = position.y + ( offsetY || 0 ) - positionedAncestorPosition.y; - // Floating panels are off by (-1px, 0px) in RTL mode. (#3438) + // Floating panels are off by (-1px, 0px) in RTL mode. (http://dev.ckeditor.com/ticket/3438) if ( rtl && ( corner == 1 || corner == 4 ) ) left += offsetParent.$.offsetWidth; else if ( !rtl && ( corner == 2 || corner == 3 ) ) @@ -198,7 +198,7 @@ CKEDITOR.plugins.add( 'floatpanel', { // With addEventListener compatible browsers, we must // useCapture when registering the focus/blur events to - // guarantee they will be firing in all situations. (#3068, #3222 ) + // guarantee they will be firing in all situations. (http://dev.ckeditor.com/ticket/3068, http://dev.ckeditor.com/ticket/3222 ) CKEDITOR.event.useCapture = true; focused.on( 'blur', function( ev ) { @@ -211,7 +211,7 @@ CKEDITOR.plugins.add( 'floatpanel', { if ( this.visible && !this._.activeChild ) { // [iOS] Allow hide to be prevented if touch is bound - // to any parent of the iframe blur happens before touch (#10714). + // to any parent of the iframe blur happens before touch (http://dev.ckeditor.com/ticket/10714). if ( CKEDITOR.env.iOS ) { if ( !this._.hideTimeout ) this._.hideTimeout = CKEDITOR.tools.setTimeout( doHide, 0, this ); @@ -235,7 +235,7 @@ CKEDITOR.plugins.add( 'floatpanel', { }, this ); // [iOS] if touch is bound to any parent of the iframe blur - // happens twice before touchstart and before touchend (#10714). + // happens twice before touchstart and before touchend (http://dev.ckeditor.com/ticket/10714). if ( CKEDITOR.env.iOS ) { // Prevent false hiding on blur. // We don't need to return focus here because touchend will fire anyway. @@ -266,7 +266,7 @@ CKEDITOR.plugins.add( 'floatpanel', { var target = element; // Reset panel width as the new content can be narrower - // than the old one. (#9355) + // than the old one. (http://dev.ckeditor.com/ticket/9355) target.removeStyle( 'width' ); if ( block.autoSize ) { @@ -275,7 +275,7 @@ CKEDITOR.plugins.add( 'floatpanel', { // Account for extra height needed due to IE quirks box model bug: // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug - // (#3426) + // (http://dev.ckeditor.com/ticket/3426) if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && width > 0 ) width += ( target.$.offsetWidth || 0 ) - ( target.$.clientWidth || 0 ) + 3; @@ -288,7 +288,7 @@ CKEDITOR.plugins.add( 'floatpanel', { // Account for extra height needed due to IE quirks box model bug: // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug - // (#3426) + // (http://dev.ckeditor.com/ticket/3426) if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && height > 0 ) height += ( target.$.offsetHeight || 0 ) - ( target.$.clientHeight || 0 ) + 3; @@ -364,7 +364,7 @@ CKEDITOR.plugins.add( 'floatpanel', { // If IE is in RTL, we have troubles with absolute // position and horizontal scrolls. Here we have a - // series of hacks to workaround it. (#6146) + // series of hacks to workaround it. (http://dev.ckeditor.com/ticket/6146) if ( CKEDITOR.env.ie ) { var offsetParent = new CKEDITOR.dom.element( element.$.offsetParent ), scrollParent = offsetParent; @@ -383,7 +383,7 @@ CKEDITOR.plugins.add( 'floatpanel', { } // Trigger the onHide event of the previously active panel to prevent - // incorrect styles from being applied (#6170) + // incorrect styles from being applied (http://dev.ckeditor.com/ticket/6170) var innerElement = element.getFirst(), activePanel; if ( ( activePanel = innerElement.getCustomData( 'activePanel' ) ) ) @@ -410,12 +410,22 @@ CKEDITOR.plugins.add( 'floatpanel', { // Focus the block now. block.element.focus(); - // #10623, #10951 - restore the viewport's scroll position after focusing list element. + // http://dev.ckeditor.com/ticket/10623, http://dev.ckeditor.com/ticket/10951 - restore the viewport's scroll position after focusing list element. if ( CKEDITOR.env.webkit ) CKEDITOR.document.getBody().$.scrollTop = scrollTop; // We need this get fired manually because of unfired focus() function. this.allowBlur( true ); + + // Ensure that the first item is focused (http://dev.ckeditor.com/ticket/16804). + if ( CKEDITOR.env.ie ) { + CKEDITOR.tools.setTimeout( function() { + block.markFirstDisplayed ? block.markFirstDisplayed() : block._.markFirstDisplayed(); + }, 0 ); + } else { + block.markFirstDisplayed ? block.markFirstDisplayed() : block._.markFirstDisplayed(); + } + this._.editor.fire( 'panelShow', this ); }, 0, this ); }, CKEDITOR.env.air ? 200 : 0, this ); @@ -473,13 +483,13 @@ CKEDITOR.plugins.add( 'floatpanel', { hide: function( returnFocus ) { if ( this.visible && ( !this.onHide || this.onHide.call( this ) !== true ) ) { this.hideChild(); - // Blur previously focused element. (#6671) + // Blur previously focused element. (http://dev.ckeditor.com/ticket/6671) CKEDITOR.env.gecko && this._.iframe.getFrameDocument().$.activeElement.blur(); this.element.setStyle( 'display', 'none' ); this.visible = 0; this.element.getFirst().removeCustomData( 'activePanel' ); - // Return focus properly. (#6247) + // Return focus properly. (http://dev.ckeditor.com/ticket/6247) var focusReturn = returnFocus && this._.returnFocus; if ( focusReturn ) { // Webkit requires focus moved out panel iframe first. @@ -500,7 +510,7 @@ CKEDITOR.plugins.add( 'floatpanel', { * @todo */ allowBlur: function( allow ) { - // Prevent editor from hiding the panel. (#3222) + // Prevent editor from hiding the panel. (http://dev.ckeditor.com/ticket/3222) var panel = this._.panel; if ( allow !== undefined ) panel.allowBlur = allow; @@ -553,7 +563,7 @@ CKEDITOR.plugins.add( 'floatpanel', { panel.showBlock( blockName, offsetParent, corner, offsetX, offsetY ); this.blur(); - /* #3767 IE: Second level menu may not have borders */ + /* http://dev.ckeditor.com/ticket/3767 IE: Second level menu may not have borders */ if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) { setTimeout( function() { panel.element.getChild( 0 ).$.style.cssText += ''; @@ -584,10 +594,10 @@ CKEDITOR.plugins.add( 'floatpanel', { for ( var i in panels ) { var panel = panels[ i ]; - // Safe to destroy it since there're no more instances.(#4241) + // Safe to destroy it since there're no more instances.(http://dev.ckeditor.com/ticket/4241) if ( isLastInstance ) panel.destroy(); - // Panel might be used by other instances, just hide them.(#4552) + // Panel might be used by other instances, just hide them.(http://dev.ckeditor.com/ticket/4552) else panel.element.hide(); } diff --git a/sources/plugins/format/lang/af.js b/sources/plugins/format/lang/af.js index 787e39f..b38cd33 100644 --- a/sources/plugins/format/lang/af.js +++ b/sources/plugins/format/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'af', { diff --git a/sources/plugins/format/lang/ar.js b/sources/plugins/format/lang/ar.js index e891d1a..8fc1c38 100644 --- a/sources/plugins/format/lang/ar.js +++ b/sources/plugins/format/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ar', { diff --git a/sources/plugins/format/lang/az.js b/sources/plugins/format/lang/az.js new file mode 100644 index 0000000..05b2d54 --- /dev/null +++ b/sources/plugins/format/lang/az.js @@ -0,0 +1,18 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'format', 'az', { + label: 'Format', + panelTitle: 'Abzasın formatı', + tag_address: 'Ünvan', + tag_div: 'Normal (DIV)', + tag_h1: 'Başlıq 1', + tag_h2: 'Başlıq 2', + tag_h3: 'Başlıq 3', + tag_h4: 'Başlıq 4', + tag_h5: 'Başlıq 5', + tag_h6: 'Başlıq 6', + tag_p: 'Normal', + tag_pre: 'Formatı saxla' +} ); diff --git a/sources/plugins/format/lang/bg.js b/sources/plugins/format/lang/bg.js index c32fb94..3de0ac4 100644 --- a/sources/plugins/format/lang/bg.js +++ b/sources/plugins/format/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'bg', { diff --git a/sources/plugins/format/lang/bn.js b/sources/plugins/format/lang/bn.js index 43a2cdc..45857a2 100644 --- a/sources/plugins/format/lang/bn.js +++ b/sources/plugins/format/lang/bn.js @@ -1,9 +1,9 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'bn', { - label: 'ফন্ট ফরমেট', + label: 'ধরন-প্রকৃতি', panelTitle: 'ফন্ট ফরমেট', tag_address: 'ঠিকানা', tag_div: 'শীর্ষক (DIV)', diff --git a/sources/plugins/format/lang/bs.js b/sources/plugins/format/lang/bs.js index 192663b..4e9482a 100644 --- a/sources/plugins/format/lang/bs.js +++ b/sources/plugins/format/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'bs', { diff --git a/sources/plugins/format/lang/ca.js b/sources/plugins/format/lang/ca.js index a2c172a..5345898 100644 --- a/sources/plugins/format/lang/ca.js +++ b/sources/plugins/format/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ca', { diff --git a/sources/plugins/format/lang/cs.js b/sources/plugins/format/lang/cs.js index cb0a016..b96a6c4 100644 --- a/sources/plugins/format/lang/cs.js +++ b/sources/plugins/format/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'cs', { diff --git a/sources/plugins/format/lang/cy.js b/sources/plugins/format/lang/cy.js index 8fe80f8..a8f618f 100644 --- a/sources/plugins/format/lang/cy.js +++ b/sources/plugins/format/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'cy', { diff --git a/sources/plugins/format/lang/da.js b/sources/plugins/format/lang/da.js index 9d99d63..1f7c654 100644 --- a/sources/plugins/format/lang/da.js +++ b/sources/plugins/format/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'da', { diff --git a/sources/plugins/format/lang/de-ch.js b/sources/plugins/format/lang/de-ch.js index 906269a..68b8879 100644 --- a/sources/plugins/format/lang/de-ch.js +++ b/sources/plugins/format/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'de-ch', { diff --git a/sources/plugins/format/lang/de.js b/sources/plugins/format/lang/de.js index 7a66720..e6f6677 100644 --- a/sources/plugins/format/lang/de.js +++ b/sources/plugins/format/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'de', { diff --git a/sources/plugins/format/lang/el.js b/sources/plugins/format/lang/el.js index 83e845e..9b34051 100644 --- a/sources/plugins/format/lang/el.js +++ b/sources/plugins/format/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'el', { diff --git a/sources/plugins/format/lang/en-au.js b/sources/plugins/format/lang/en-au.js index 3fae041..5ec7d8e 100644 --- a/sources/plugins/format/lang/en-au.js +++ b/sources/plugins/format/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'en-au', { diff --git a/sources/plugins/format/lang/en-ca.js b/sources/plugins/format/lang/en-ca.js index bc36609..75d66c3 100644 --- a/sources/plugins/format/lang/en-ca.js +++ b/sources/plugins/format/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'en-ca', { diff --git a/sources/plugins/format/lang/en-gb.js b/sources/plugins/format/lang/en-gb.js index 0cbf24a..a91bcbf 100644 --- a/sources/plugins/format/lang/en-gb.js +++ b/sources/plugins/format/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'en-gb', { diff --git a/sources/plugins/format/lang/en.js b/sources/plugins/format/lang/en.js index 0ae1b65..3a6ebda 100644 --- a/sources/plugins/format/lang/en.js +++ b/sources/plugins/format/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'en', { diff --git a/sources/plugins/format/lang/eo.js b/sources/plugins/format/lang/eo.js index 7bac1bc..0d77730 100644 --- a/sources/plugins/format/lang/eo.js +++ b/sources/plugins/format/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'eo', { diff --git a/sources/plugins/format/lang/es-mx.js b/sources/plugins/format/lang/es-mx.js new file mode 100644 index 0000000..d311012 --- /dev/null +++ b/sources/plugins/format/lang/es-mx.js @@ -0,0 +1,18 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'format', 'es-mx', { + label: 'Formato', + panelTitle: 'Formato de párrafo', + tag_address: 'Dirección', + tag_div: 'Normal (DIV)', + tag_h1: 'Encabezado 1', + tag_h2: 'Encabezado 2', + tag_h3: 'Encabezado 3', + tag_h4: 'Encabezado 4', + tag_h5: 'Encabezado 5', + tag_h6: 'Encabezado 6', + tag_p: 'Normal', + tag_pre: 'Formateado' +} ); diff --git a/sources/plugins/format/lang/es.js b/sources/plugins/format/lang/es.js index 8cba087..549f611 100644 --- a/sources/plugins/format/lang/es.js +++ b/sources/plugins/format/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'es', { diff --git a/sources/plugins/format/lang/et.js b/sources/plugins/format/lang/et.js index 3f717b5..43bc350 100644 --- a/sources/plugins/format/lang/et.js +++ b/sources/plugins/format/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'et', { diff --git a/sources/plugins/format/lang/eu.js b/sources/plugins/format/lang/eu.js index 4629fdf..18832bc 100644 --- a/sources/plugins/format/lang/eu.js +++ b/sources/plugins/format/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'eu', { diff --git a/sources/plugins/format/lang/fa.js b/sources/plugins/format/lang/fa.js index af6f8b2..c92db53 100644 --- a/sources/plugins/format/lang/fa.js +++ b/sources/plugins/format/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'fa', { diff --git a/sources/plugins/format/lang/fi.js b/sources/plugins/format/lang/fi.js index 6595551..249183d 100644 --- a/sources/plugins/format/lang/fi.js +++ b/sources/plugins/format/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'fi', { diff --git a/sources/plugins/format/lang/fo.js b/sources/plugins/format/lang/fo.js index 2e89522..2c88021 100644 --- a/sources/plugins/format/lang/fo.js +++ b/sources/plugins/format/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'fo', { diff --git a/sources/plugins/format/lang/fr-ca.js b/sources/plugins/format/lang/fr-ca.js index 167850b..8f190c2 100644 --- a/sources/plugins/format/lang/fr-ca.js +++ b/sources/plugins/format/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'fr-ca', { diff --git a/sources/plugins/format/lang/fr.js b/sources/plugins/format/lang/fr.js index 4a76b58..6962da7 100644 --- a/sources/plugins/format/lang/fr.js +++ b/sources/plugins/format/lang/fr.js @@ -1,12 +1,12 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'fr', { label: 'Format', panelTitle: 'Format de paragraphe', tag_address: 'Adresse', - tag_div: 'Normal (DIV)', + tag_div: 'Division', tag_h1: 'Titre 1', tag_h2: 'Titre 2', tag_h3: 'Titre 3', @@ -14,5 +14,5 @@ CKEDITOR.plugins.setLang( 'format', 'fr', { tag_h5: 'Titre 5', tag_h6: 'Titre 6', tag_p: 'Normal', - tag_pre: 'Formaté' + tag_pre: 'Préformaté' } ); diff --git a/sources/plugins/format/lang/gl.js b/sources/plugins/format/lang/gl.js index 78b96c5..d14946c 100644 --- a/sources/plugins/format/lang/gl.js +++ b/sources/plugins/format/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'gl', { diff --git a/sources/plugins/format/lang/gu.js b/sources/plugins/format/lang/gu.js index 27e5836..8d8897a 100644 --- a/sources/plugins/format/lang/gu.js +++ b/sources/plugins/format/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'gu', { diff --git a/sources/plugins/format/lang/he.js b/sources/plugins/format/lang/he.js index c5a6a81..5fb53a7 100644 --- a/sources/plugins/format/lang/he.js +++ b/sources/plugins/format/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'he', { diff --git a/sources/plugins/format/lang/hi.js b/sources/plugins/format/lang/hi.js index 0e490c3..ce4224d 100644 --- a/sources/plugins/format/lang/hi.js +++ b/sources/plugins/format/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'hi', { diff --git a/sources/plugins/format/lang/hr.js b/sources/plugins/format/lang/hr.js index 004b853..fbafb0e 100644 --- a/sources/plugins/format/lang/hr.js +++ b/sources/plugins/format/lang/hr.js @@ -1,18 +1,18 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'hr', { label: 'Format', - panelTitle: 'Format', - tag_address: 'Address', - tag_div: 'Normal (DIV)', - tag_h1: 'Heading 1', - tag_h2: 'Heading 2', - tag_h3: 'Heading 3', - tag_h4: 'Heading 4', - tag_h5: 'Heading 5', - tag_h6: 'Heading 6', - tag_p: 'Normal', + panelTitle: 'Format paragrafa', + tag_address: 'Adresa', + tag_div: 'Normalno (DIV)', + tag_h1: 'Naslov 1', + tag_h2: 'Naslov 2', + tag_h3: 'Naslov 3', + tag_h4: 'Naslov 4', + tag_h5: 'Naslov 5', + tag_h6: 'Naslov 6', + tag_p: 'Normalno', tag_pre: 'Formatirano' } ); diff --git a/sources/plugins/format/lang/hu.js b/sources/plugins/format/lang/hu.js index dc1c6b3..a5467cf 100644 --- a/sources/plugins/format/lang/hu.js +++ b/sources/plugins/format/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'hu', { diff --git a/sources/plugins/format/lang/id.js b/sources/plugins/format/lang/id.js index 3abaaa5..e8e83f7 100644 --- a/sources/plugins/format/lang/id.js +++ b/sources/plugins/format/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'id', { diff --git a/sources/plugins/format/lang/is.js b/sources/plugins/format/lang/is.js index eb13f4a..862e52e 100644 --- a/sources/plugins/format/lang/is.js +++ b/sources/plugins/format/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'is', { diff --git a/sources/plugins/format/lang/it.js b/sources/plugins/format/lang/it.js index 973f76f..6d47500 100644 --- a/sources/plugins/format/lang/it.js +++ b/sources/plugins/format/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'it', { diff --git a/sources/plugins/format/lang/ja.js b/sources/plugins/format/lang/ja.js index 7b826b1..a611f3d 100644 --- a/sources/plugins/format/lang/ja.js +++ b/sources/plugins/format/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ja', { diff --git a/sources/plugins/format/lang/ka.js b/sources/plugins/format/lang/ka.js index 9c23b82..f5c95b8 100644 --- a/sources/plugins/format/lang/ka.js +++ b/sources/plugins/format/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ka', { diff --git a/sources/plugins/format/lang/km.js b/sources/plugins/format/lang/km.js index 5e385bc..74ca185 100644 --- a/sources/plugins/format/lang/km.js +++ b/sources/plugins/format/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'km', { diff --git a/sources/plugins/format/lang/ko.js b/sources/plugins/format/lang/ko.js index db08c82..e5ed44c 100644 --- a/sources/plugins/format/lang/ko.js +++ b/sources/plugins/format/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ko', { diff --git a/sources/plugins/format/lang/ku.js b/sources/plugins/format/lang/ku.js index 4a94342..277bf8e 100644 --- a/sources/plugins/format/lang/ku.js +++ b/sources/plugins/format/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ku', { diff --git a/sources/plugins/format/lang/lt.js b/sources/plugins/format/lang/lt.js index 06e55f5..9733443 100644 --- a/sources/plugins/format/lang/lt.js +++ b/sources/plugins/format/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'lt', { diff --git a/sources/plugins/format/lang/lv.js b/sources/plugins/format/lang/lv.js index 7cf1391..ace8333 100644 --- a/sources/plugins/format/lang/lv.js +++ b/sources/plugins/format/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'lv', { diff --git a/sources/plugins/format/lang/mk.js b/sources/plugins/format/lang/mk.js index 7ff725a..5c0bb3b 100644 --- a/sources/plugins/format/lang/mk.js +++ b/sources/plugins/format/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'mk', { diff --git a/sources/plugins/format/lang/mn.js b/sources/plugins/format/lang/mn.js index 15f58e1..f3c0dfd 100644 --- a/sources/plugins/format/lang/mn.js +++ b/sources/plugins/format/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'mn', { diff --git a/sources/plugins/format/lang/ms.js b/sources/plugins/format/lang/ms.js index b41b828..56deba9 100644 --- a/sources/plugins/format/lang/ms.js +++ b/sources/plugins/format/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ms', { diff --git a/sources/plugins/format/lang/nb.js b/sources/plugins/format/lang/nb.js index a216014..6bfffb5 100644 --- a/sources/plugins/format/lang/nb.js +++ b/sources/plugins/format/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'nb', { diff --git a/sources/plugins/format/lang/nl.js b/sources/plugins/format/lang/nl.js index 532b7f1..ef2676a 100644 --- a/sources/plugins/format/lang/nl.js +++ b/sources/plugins/format/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'nl', { diff --git a/sources/plugins/format/lang/no.js b/sources/plugins/format/lang/no.js index 2995c96..d9b0586 100644 --- a/sources/plugins/format/lang/no.js +++ b/sources/plugins/format/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'no', { diff --git a/sources/plugins/format/lang/oc.js b/sources/plugins/format/lang/oc.js new file mode 100644 index 0000000..5083f3f --- /dev/null +++ b/sources/plugins/format/lang/oc.js @@ -0,0 +1,18 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'format', 'oc', { + label: 'Format', + panelTitle: 'Format de paragraf', + tag_address: 'Adreça', + tag_div: 'Division (DIV)', + tag_h1: 'Títol 1', + tag_h2: 'Títol 2', + tag_h3: 'Títol 3', + tag_h4: 'Títol 4', + tag_h5: 'Títol 5', + tag_h6: 'Títol 6', + tag_p: 'Normal', + tag_pre: 'Preformatat' +} ); diff --git a/sources/plugins/format/lang/pl.js b/sources/plugins/format/lang/pl.js index e1ca1c7..d1274f9 100644 --- a/sources/plugins/format/lang/pl.js +++ b/sources/plugins/format/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'pl', { diff --git a/sources/plugins/format/lang/pt-br.js b/sources/plugins/format/lang/pt-br.js index c8b28ea..151d1d1 100644 --- a/sources/plugins/format/lang/pt-br.js +++ b/sources/plugins/format/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'pt-br', { diff --git a/sources/plugins/format/lang/pt.js b/sources/plugins/format/lang/pt.js index 93f1ad0..013021d 100644 --- a/sources/plugins/format/lang/pt.js +++ b/sources/plugins/format/lang/pt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'pt', { diff --git a/sources/plugins/format/lang/ro.js b/sources/plugins/format/lang/ro.js index 5cb6a07..549a1b5 100644 --- a/sources/plugins/format/lang/ro.js +++ b/sources/plugins/format/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ro', { diff --git a/sources/plugins/format/lang/ru.js b/sources/plugins/format/lang/ru.js index 00d0407..8e63455 100644 --- a/sources/plugins/format/lang/ru.js +++ b/sources/plugins/format/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ru', { diff --git a/sources/plugins/format/lang/si.js b/sources/plugins/format/lang/si.js index ae531f0..f27eb7f 100644 --- a/sources/plugins/format/lang/si.js +++ b/sources/plugins/format/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'si', { diff --git a/sources/plugins/format/lang/sk.js b/sources/plugins/format/lang/sk.js index 4edfa2e..30ca66c 100644 --- a/sources/plugins/format/lang/sk.js +++ b/sources/plugins/format/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'sk', { diff --git a/sources/plugins/format/lang/sl.js b/sources/plugins/format/lang/sl.js index 0019aab..2dad54f 100644 --- a/sources/plugins/format/lang/sl.js +++ b/sources/plugins/format/lang/sl.js @@ -1,10 +1,10 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'sl', { label: 'Oblika', - panelTitle: 'Oblika', + panelTitle: 'Oblika odstavka', tag_address: 'Napis', tag_div: 'Navaden (DIV)', tag_h1: 'Naslov 1', diff --git a/sources/plugins/format/lang/sq.js b/sources/plugins/format/lang/sq.js index 8945d05..5ddb6ef 100644 --- a/sources/plugins/format/lang/sq.js +++ b/sources/plugins/format/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'sq', { diff --git a/sources/plugins/format/lang/sr-latn.js b/sources/plugins/format/lang/sr-latn.js index 3e7449d..d971950 100644 --- a/sources/plugins/format/lang/sr-latn.js +++ b/sources/plugins/format/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'sr-latn', { diff --git a/sources/plugins/format/lang/sr.js b/sources/plugins/format/lang/sr.js index 40f1d1c..012a14d 100644 --- a/sources/plugins/format/lang/sr.js +++ b/sources/plugins/format/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'sr', { diff --git a/sources/plugins/format/lang/sv.js b/sources/plugins/format/lang/sv.js index 47dab57..31850e0 100644 --- a/sources/plugins/format/lang/sv.js +++ b/sources/plugins/format/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'sv', { diff --git a/sources/plugins/format/lang/th.js b/sources/plugins/format/lang/th.js index 31c0dba..4c8a1d2 100644 --- a/sources/plugins/format/lang/th.js +++ b/sources/plugins/format/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'th', { diff --git a/sources/plugins/format/lang/tr.js b/sources/plugins/format/lang/tr.js index eb311a9..2de6ce2 100644 --- a/sources/plugins/format/lang/tr.js +++ b/sources/plugins/format/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'tr', { diff --git a/sources/plugins/format/lang/tt.js b/sources/plugins/format/lang/tt.js index d44a9ac..160a192 100644 --- a/sources/plugins/format/lang/tt.js +++ b/sources/plugins/format/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'tt', { diff --git a/sources/plugins/format/lang/ug.js b/sources/plugins/format/lang/ug.js index 504fee4..0be2a15 100644 --- a/sources/plugins/format/lang/ug.js +++ b/sources/plugins/format/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'ug', { diff --git a/sources/plugins/format/lang/uk.js b/sources/plugins/format/lang/uk.js index c3cffe1..2e2726d 100644 --- a/sources/plugins/format/lang/uk.js +++ b/sources/plugins/format/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'uk', { diff --git a/sources/plugins/format/lang/vi.js b/sources/plugins/format/lang/vi.js index a066065..d051440 100644 --- a/sources/plugins/format/lang/vi.js +++ b/sources/plugins/format/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'vi', { diff --git a/sources/plugins/format/lang/zh-cn.js b/sources/plugins/format/lang/zh-cn.js index 895be82..addaa23 100644 --- a/sources/plugins/format/lang/zh-cn.js +++ b/sources/plugins/format/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'zh-cn', { diff --git a/sources/plugins/format/lang/zh.js b/sources/plugins/format/lang/zh.js index ba826aa..bb044ad 100644 --- a/sources/plugins/format/lang/zh.js +++ b/sources/plugins/format/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'format', 'zh', { diff --git a/sources/plugins/format/plugin.js b/sources/plugins/format/plugin.js index d990b8e..54d43ca 100644 --- a/sources/plugins/format/plugin.js +++ b/sources/plugins/format/plugin.js @@ -1,12 +1,12 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.add( 'format', { requires: 'richcombo', // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength init: function( editor ) { if ( editor.blockless ) @@ -69,7 +69,7 @@ CKEDITOR.plugins.add( 'format', { editor[ style.checkActive( elementPath, editor ) ? 'removeStyle' : 'applyStyle' ]( style ); - // Save the undo snapshot after all changes are affected. (#4899) + // Save the undo snapshot after all changes are affected. (http://dev.ckeditor.com/ticket/4899) setTimeout( function() { editor.fire( 'saveSnapshot' ); }, 0 ); diff --git a/sources/plugins/horizontalrule/icons/hidpi/horizontalrule.png b/sources/plugins/horizontalrule/icons/hidpi/horizontalrule.png index 433613d..ad97e09 100644 Binary files a/sources/plugins/horizontalrule/icons/hidpi/horizontalrule.png and b/sources/plugins/horizontalrule/icons/hidpi/horizontalrule.png differ diff --git a/sources/plugins/horizontalrule/icons/horizontalrule.png b/sources/plugins/horizontalrule/icons/horizontalrule.png index 4af9bc8..0592614 100644 Binary files a/sources/plugins/horizontalrule/icons/horizontalrule.png and b/sources/plugins/horizontalrule/icons/horizontalrule.png differ diff --git a/sources/plugins/horizontalrule/lang/af.js b/sources/plugins/horizontalrule/lang/af.js index 7a70679..9232187 100644 --- a/sources/plugins/horizontalrule/lang/af.js +++ b/sources/plugins/horizontalrule/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'af', { diff --git a/sources/plugins/horizontalrule/lang/ar.js b/sources/plugins/horizontalrule/lang/ar.js index af5f04b..edf9101 100644 --- a/sources/plugins/horizontalrule/lang/ar.js +++ b/sources/plugins/horizontalrule/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ar', { diff --git a/sources/plugins/horizontalrule/lang/az.js b/sources/plugins/horizontalrule/lang/az.js new file mode 100644 index 0000000..2343630 --- /dev/null +++ b/sources/plugins/horizontalrule/lang/az.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'horizontalrule', 'az', { + toolbar: 'Sərhəd xətti yarat' +} ); diff --git a/sources/plugins/horizontalrule/lang/bg.js b/sources/plugins/horizontalrule/lang/bg.js index 9b66b34..b20914c 100644 --- a/sources/plugins/horizontalrule/lang/bg.js +++ b/sources/plugins/horizontalrule/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'bg', { diff --git a/sources/plugins/horizontalrule/lang/bn.js b/sources/plugins/horizontalrule/lang/bn.js index d2b54cf..d846125 100644 --- a/sources/plugins/horizontalrule/lang/bn.js +++ b/sources/plugins/horizontalrule/lang/bn.js @@ -1,7 +1,7 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'bn', { - toolbar: 'রেখা যুক্ত কর' + toolbar: 'অনুভূমিক লাইন যোগ করি' } ); diff --git a/sources/plugins/horizontalrule/lang/bs.js b/sources/plugins/horizontalrule/lang/bs.js index 20643be..3917873 100644 --- a/sources/plugins/horizontalrule/lang/bs.js +++ b/sources/plugins/horizontalrule/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'bs', { diff --git a/sources/plugins/horizontalrule/lang/ca.js b/sources/plugins/horizontalrule/lang/ca.js index cc37150..81d9457 100644 --- a/sources/plugins/horizontalrule/lang/ca.js +++ b/sources/plugins/horizontalrule/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ca', { diff --git a/sources/plugins/horizontalrule/lang/cs.js b/sources/plugins/horizontalrule/lang/cs.js index 385eb7d..5178139 100644 --- a/sources/plugins/horizontalrule/lang/cs.js +++ b/sources/plugins/horizontalrule/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'cs', { diff --git a/sources/plugins/horizontalrule/lang/cy.js b/sources/plugins/horizontalrule/lang/cy.js index 7f52495..df74af5 100644 --- a/sources/plugins/horizontalrule/lang/cy.js +++ b/sources/plugins/horizontalrule/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'cy', { diff --git a/sources/plugins/horizontalrule/lang/da.js b/sources/plugins/horizontalrule/lang/da.js index d1552dd..cd8cb2a 100644 --- a/sources/plugins/horizontalrule/lang/da.js +++ b/sources/plugins/horizontalrule/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'da', { diff --git a/sources/plugins/horizontalrule/lang/de-ch.js b/sources/plugins/horizontalrule/lang/de-ch.js index 94d29d3..64230b5 100644 --- a/sources/plugins/horizontalrule/lang/de-ch.js +++ b/sources/plugins/horizontalrule/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'de-ch', { diff --git a/sources/plugins/horizontalrule/lang/de.js b/sources/plugins/horizontalrule/lang/de.js index 6a474f2..a1705a6 100644 --- a/sources/plugins/horizontalrule/lang/de.js +++ b/sources/plugins/horizontalrule/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'de', { diff --git a/sources/plugins/horizontalrule/lang/el.js b/sources/plugins/horizontalrule/lang/el.js index 293a090..d281f47 100644 --- a/sources/plugins/horizontalrule/lang/el.js +++ b/sources/plugins/horizontalrule/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'el', { diff --git a/sources/plugins/horizontalrule/lang/en-au.js b/sources/plugins/horizontalrule/lang/en-au.js index 4491ce0..0548518 100644 --- a/sources/plugins/horizontalrule/lang/en-au.js +++ b/sources/plugins/horizontalrule/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'en-au', { diff --git a/sources/plugins/horizontalrule/lang/en-ca.js b/sources/plugins/horizontalrule/lang/en-ca.js index 0a7320d..feab44d 100644 --- a/sources/plugins/horizontalrule/lang/en-ca.js +++ b/sources/plugins/horizontalrule/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'en-ca', { diff --git a/sources/plugins/horizontalrule/lang/en-gb.js b/sources/plugins/horizontalrule/lang/en-gb.js index 4946b57..5cf987f 100644 --- a/sources/plugins/horizontalrule/lang/en-gb.js +++ b/sources/plugins/horizontalrule/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'en-gb', { diff --git a/sources/plugins/horizontalrule/lang/en.js b/sources/plugins/horizontalrule/lang/en.js index 470b2d6..6c750d1 100644 --- a/sources/plugins/horizontalrule/lang/en.js +++ b/sources/plugins/horizontalrule/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'en', { diff --git a/sources/plugins/horizontalrule/lang/eo.js b/sources/plugins/horizontalrule/lang/eo.js index d929aa2..f2ddd72 100644 --- a/sources/plugins/horizontalrule/lang/eo.js +++ b/sources/plugins/horizontalrule/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'eo', { diff --git a/sources/plugins/horizontalrule/lang/es-mx.js b/sources/plugins/horizontalrule/lang/es-mx.js new file mode 100644 index 0000000..9c389cc --- /dev/null +++ b/sources/plugins/horizontalrule/lang/es-mx.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'horizontalrule', 'es-mx', { + toolbar: 'Insertar una línea horizontal' +} ); diff --git a/sources/plugins/horizontalrule/lang/es.js b/sources/plugins/horizontalrule/lang/es.js index 4d913c2..ac42e14 100644 --- a/sources/plugins/horizontalrule/lang/es.js +++ b/sources/plugins/horizontalrule/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'es', { diff --git a/sources/plugins/horizontalrule/lang/et.js b/sources/plugins/horizontalrule/lang/et.js index e1ccddc..156b1c1 100644 --- a/sources/plugins/horizontalrule/lang/et.js +++ b/sources/plugins/horizontalrule/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'et', { diff --git a/sources/plugins/horizontalrule/lang/eu.js b/sources/plugins/horizontalrule/lang/eu.js index dfdc82a..7eeabb8 100644 --- a/sources/plugins/horizontalrule/lang/eu.js +++ b/sources/plugins/horizontalrule/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'eu', { diff --git a/sources/plugins/horizontalrule/lang/fa.js b/sources/plugins/horizontalrule/lang/fa.js index 7224067..f18d1d0 100644 --- a/sources/plugins/horizontalrule/lang/fa.js +++ b/sources/plugins/horizontalrule/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'fa', { diff --git a/sources/plugins/horizontalrule/lang/fi.js b/sources/plugins/horizontalrule/lang/fi.js index 8baa64b..c18cd70 100644 --- a/sources/plugins/horizontalrule/lang/fi.js +++ b/sources/plugins/horizontalrule/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'fi', { diff --git a/sources/plugins/horizontalrule/lang/fo.js b/sources/plugins/horizontalrule/lang/fo.js index 72bf857..d0d3bea 100644 --- a/sources/plugins/horizontalrule/lang/fo.js +++ b/sources/plugins/horizontalrule/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'fo', { diff --git a/sources/plugins/horizontalrule/lang/fr-ca.js b/sources/plugins/horizontalrule/lang/fr-ca.js index a220917..a232a14 100644 --- a/sources/plugins/horizontalrule/lang/fr-ca.js +++ b/sources/plugins/horizontalrule/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'fr-ca', { diff --git a/sources/plugins/horizontalrule/lang/fr.js b/sources/plugins/horizontalrule/lang/fr.js index 18d5d0a..c0c6322 100644 --- a/sources/plugins/horizontalrule/lang/fr.js +++ b/sources/plugins/horizontalrule/lang/fr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'fr', { diff --git a/sources/plugins/horizontalrule/lang/gl.js b/sources/plugins/horizontalrule/lang/gl.js index f25cda4..6215e71 100644 --- a/sources/plugins/horizontalrule/lang/gl.js +++ b/sources/plugins/horizontalrule/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'gl', { diff --git a/sources/plugins/horizontalrule/lang/gu.js b/sources/plugins/horizontalrule/lang/gu.js index e51de2c..f6abc17 100644 --- a/sources/plugins/horizontalrule/lang/gu.js +++ b/sources/plugins/horizontalrule/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'gu', { diff --git a/sources/plugins/horizontalrule/lang/he.js b/sources/plugins/horizontalrule/lang/he.js index 620371b..56c4ebd 100644 --- a/sources/plugins/horizontalrule/lang/he.js +++ b/sources/plugins/horizontalrule/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'he', { diff --git a/sources/plugins/horizontalrule/lang/hi.js b/sources/plugins/horizontalrule/lang/hi.js index a7f6271..1d576c2 100644 --- a/sources/plugins/horizontalrule/lang/hi.js +++ b/sources/plugins/horizontalrule/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'hi', { diff --git a/sources/plugins/horizontalrule/lang/hr.js b/sources/plugins/horizontalrule/lang/hr.js index 8f516aa..53d80f3 100644 --- a/sources/plugins/horizontalrule/lang/hr.js +++ b/sources/plugins/horizontalrule/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'hr', { diff --git a/sources/plugins/horizontalrule/lang/hu.js b/sources/plugins/horizontalrule/lang/hu.js index 80ffd9c..31fcbfc 100644 --- a/sources/plugins/horizontalrule/lang/hu.js +++ b/sources/plugins/horizontalrule/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'hu', { diff --git a/sources/plugins/horizontalrule/lang/id.js b/sources/plugins/horizontalrule/lang/id.js index 0bc3596..3d341ad 100644 --- a/sources/plugins/horizontalrule/lang/id.js +++ b/sources/plugins/horizontalrule/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'id', { diff --git a/sources/plugins/horizontalrule/lang/is.js b/sources/plugins/horizontalrule/lang/is.js index 4d02e8a..1515abc 100644 --- a/sources/plugins/horizontalrule/lang/is.js +++ b/sources/plugins/horizontalrule/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'is', { diff --git a/sources/plugins/horizontalrule/lang/it.js b/sources/plugins/horizontalrule/lang/it.js index e811c5e..c2e23fb 100644 --- a/sources/plugins/horizontalrule/lang/it.js +++ b/sources/plugins/horizontalrule/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'it', { diff --git a/sources/plugins/horizontalrule/lang/ja.js b/sources/plugins/horizontalrule/lang/ja.js index 0f59213..e174c32 100644 --- a/sources/plugins/horizontalrule/lang/ja.js +++ b/sources/plugins/horizontalrule/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ja', { diff --git a/sources/plugins/horizontalrule/lang/ka.js b/sources/plugins/horizontalrule/lang/ka.js index 95498bd..2c798c2 100644 --- a/sources/plugins/horizontalrule/lang/ka.js +++ b/sources/plugins/horizontalrule/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ka', { diff --git a/sources/plugins/horizontalrule/lang/km.js b/sources/plugins/horizontalrule/lang/km.js index dbc3082..8c8ab9f 100644 --- a/sources/plugins/horizontalrule/lang/km.js +++ b/sources/plugins/horizontalrule/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'km', { diff --git a/sources/plugins/horizontalrule/lang/ko.js b/sources/plugins/horizontalrule/lang/ko.js index e91d21b..69df02c 100644 --- a/sources/plugins/horizontalrule/lang/ko.js +++ b/sources/plugins/horizontalrule/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ko', { diff --git a/sources/plugins/horizontalrule/lang/ku.js b/sources/plugins/horizontalrule/lang/ku.js index 530ee75..c8a0fa5 100644 --- a/sources/plugins/horizontalrule/lang/ku.js +++ b/sources/plugins/horizontalrule/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ku', { diff --git a/sources/plugins/horizontalrule/lang/lt.js b/sources/plugins/horizontalrule/lang/lt.js index a44e8cd..86cbdaf 100644 --- a/sources/plugins/horizontalrule/lang/lt.js +++ b/sources/plugins/horizontalrule/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'lt', { diff --git a/sources/plugins/horizontalrule/lang/lv.js b/sources/plugins/horizontalrule/lang/lv.js index 9afbc93..a227a00 100644 --- a/sources/plugins/horizontalrule/lang/lv.js +++ b/sources/plugins/horizontalrule/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'lv', { diff --git a/sources/plugins/horizontalrule/lang/mk.js b/sources/plugins/horizontalrule/lang/mk.js index 41607c7..51efe3d 100644 --- a/sources/plugins/horizontalrule/lang/mk.js +++ b/sources/plugins/horizontalrule/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'mk', { diff --git a/sources/plugins/horizontalrule/lang/mn.js b/sources/plugins/horizontalrule/lang/mn.js index 92e4d5e..bd0ba0f 100644 --- a/sources/plugins/horizontalrule/lang/mn.js +++ b/sources/plugins/horizontalrule/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'mn', { diff --git a/sources/plugins/horizontalrule/lang/ms.js b/sources/plugins/horizontalrule/lang/ms.js index 84da30f..fa22359 100644 --- a/sources/plugins/horizontalrule/lang/ms.js +++ b/sources/plugins/horizontalrule/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ms', { diff --git a/sources/plugins/horizontalrule/lang/nb.js b/sources/plugins/horizontalrule/lang/nb.js index 49bc752..7edefa5 100644 --- a/sources/plugins/horizontalrule/lang/nb.js +++ b/sources/plugins/horizontalrule/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'nb', { diff --git a/sources/plugins/horizontalrule/lang/nl.js b/sources/plugins/horizontalrule/lang/nl.js index 0030102..47efd3f 100644 --- a/sources/plugins/horizontalrule/lang/nl.js +++ b/sources/plugins/horizontalrule/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'nl', { diff --git a/sources/plugins/horizontalrule/lang/no.js b/sources/plugins/horizontalrule/lang/no.js index 11c153e..009fc4b 100644 --- a/sources/plugins/horizontalrule/lang/no.js +++ b/sources/plugins/horizontalrule/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'no', { diff --git a/sources/plugins/horizontalrule/lang/oc.js b/sources/plugins/horizontalrule/lang/oc.js new file mode 100644 index 0000000..42d1797 --- /dev/null +++ b/sources/plugins/horizontalrule/lang/oc.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'horizontalrule', 'oc', { + toolbar: 'Inserir una linha orizontala' +} ); diff --git a/sources/plugins/horizontalrule/lang/pl.js b/sources/plugins/horizontalrule/lang/pl.js index 0676e76..0604f4d 100644 --- a/sources/plugins/horizontalrule/lang/pl.js +++ b/sources/plugins/horizontalrule/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'pl', { diff --git a/sources/plugins/horizontalrule/lang/pt-br.js b/sources/plugins/horizontalrule/lang/pt-br.js index 2ef26de..038616b 100644 --- a/sources/plugins/horizontalrule/lang/pt-br.js +++ b/sources/plugins/horizontalrule/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'pt-br', { diff --git a/sources/plugins/horizontalrule/lang/pt.js b/sources/plugins/horizontalrule/lang/pt.js index 097c34d..c8d710d 100644 --- a/sources/plugins/horizontalrule/lang/pt.js +++ b/sources/plugins/horizontalrule/lang/pt.js @@ -1,7 +1,7 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'pt', { - toolbar: 'Inserir Linha Horizontal' + toolbar: 'Inserir linha horizontal' } ); diff --git a/sources/plugins/horizontalrule/lang/ro.js b/sources/plugins/horizontalrule/lang/ro.js index 7a82af9..4b8f9b8 100644 --- a/sources/plugins/horizontalrule/lang/ro.js +++ b/sources/plugins/horizontalrule/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ro', { diff --git a/sources/plugins/horizontalrule/lang/ru.js b/sources/plugins/horizontalrule/lang/ru.js index 02751af..5424765 100644 --- a/sources/plugins/horizontalrule/lang/ru.js +++ b/sources/plugins/horizontalrule/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ru', { diff --git a/sources/plugins/horizontalrule/lang/si.js b/sources/plugins/horizontalrule/lang/si.js index d4a6e83..b0bb9b1 100644 --- a/sources/plugins/horizontalrule/lang/si.js +++ b/sources/plugins/horizontalrule/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'si', { diff --git a/sources/plugins/horizontalrule/lang/sk.js b/sources/plugins/horizontalrule/lang/sk.js index b49d505..07bce6c 100644 --- a/sources/plugins/horizontalrule/lang/sk.js +++ b/sources/plugins/horizontalrule/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'sk', { diff --git a/sources/plugins/horizontalrule/lang/sl.js b/sources/plugins/horizontalrule/lang/sl.js index 0d51bdd..44e19ae 100644 --- a/sources/plugins/horizontalrule/lang/sl.js +++ b/sources/plugins/horizontalrule/lang/sl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'sl', { diff --git a/sources/plugins/horizontalrule/lang/sq.js b/sources/plugins/horizontalrule/lang/sq.js index af33e7b..9fa6a40 100644 --- a/sources/plugins/horizontalrule/lang/sq.js +++ b/sources/plugins/horizontalrule/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'sq', { diff --git a/sources/plugins/horizontalrule/lang/sr-latn.js b/sources/plugins/horizontalrule/lang/sr-latn.js index f29a557..eb16b98 100644 --- a/sources/plugins/horizontalrule/lang/sr-latn.js +++ b/sources/plugins/horizontalrule/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'sr-latn', { diff --git a/sources/plugins/horizontalrule/lang/sr.js b/sources/plugins/horizontalrule/lang/sr.js index a76fe42..a260b4a 100644 --- a/sources/plugins/horizontalrule/lang/sr.js +++ b/sources/plugins/horizontalrule/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'sr', { diff --git a/sources/plugins/horizontalrule/lang/sv.js b/sources/plugins/horizontalrule/lang/sv.js index b1315e0..bf6280f 100644 --- a/sources/plugins/horizontalrule/lang/sv.js +++ b/sources/plugins/horizontalrule/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'sv', { diff --git a/sources/plugins/horizontalrule/lang/th.js b/sources/plugins/horizontalrule/lang/th.js index a166cb3..164f496 100644 --- a/sources/plugins/horizontalrule/lang/th.js +++ b/sources/plugins/horizontalrule/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'th', { diff --git a/sources/plugins/horizontalrule/lang/tr.js b/sources/plugins/horizontalrule/lang/tr.js index 3fd721f..aeb6fb8 100644 --- a/sources/plugins/horizontalrule/lang/tr.js +++ b/sources/plugins/horizontalrule/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'tr', { diff --git a/sources/plugins/horizontalrule/lang/tt.js b/sources/plugins/horizontalrule/lang/tt.js index 74891c3..411166d 100644 --- a/sources/plugins/horizontalrule/lang/tt.js +++ b/sources/plugins/horizontalrule/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'tt', { diff --git a/sources/plugins/horizontalrule/lang/ug.js b/sources/plugins/horizontalrule/lang/ug.js index bf2bfa7..92f2434 100644 --- a/sources/plugins/horizontalrule/lang/ug.js +++ b/sources/plugins/horizontalrule/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'ug', { diff --git a/sources/plugins/horizontalrule/lang/uk.js b/sources/plugins/horizontalrule/lang/uk.js index b6b56ef..d84f428 100644 --- a/sources/plugins/horizontalrule/lang/uk.js +++ b/sources/plugins/horizontalrule/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'uk', { diff --git a/sources/plugins/horizontalrule/lang/vi.js b/sources/plugins/horizontalrule/lang/vi.js index 040055f..339eb06 100644 --- a/sources/plugins/horizontalrule/lang/vi.js +++ b/sources/plugins/horizontalrule/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'vi', { diff --git a/sources/plugins/horizontalrule/lang/zh-cn.js b/sources/plugins/horizontalrule/lang/zh-cn.js index 29dc458..2dfdb50 100644 --- a/sources/plugins/horizontalrule/lang/zh-cn.js +++ b/sources/plugins/horizontalrule/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'zh-cn', { diff --git a/sources/plugins/horizontalrule/lang/zh.js b/sources/plugins/horizontalrule/lang/zh.js index 79e80b0..b2e4272 100644 --- a/sources/plugins/horizontalrule/lang/zh.js +++ b/sources/plugins/horizontalrule/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'horizontalrule', 'zh', { diff --git a/sources/plugins/horizontalrule/plugin.js b/sources/plugins/horizontalrule/plugin.js index c7faa89..6f2186c 100644 --- a/sources/plugins/horizontalrule/plugin.js +++ b/sources/plugins/horizontalrule/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -24,7 +24,7 @@ // Register a plugin named "horizontalrule". CKEDITOR.plugins.add( pluginName, { // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'horizontalrule', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% diff --git a/sources/plugins/html5video/dialogs/html5video.js b/sources/plugins/html5video/dialogs/html5video.js new file mode 100644 index 0000000..76799e7 --- /dev/null +++ b/sources/plugins/html5video/dialogs/html5video.js @@ -0,0 +1,161 @@ +CKEDITOR.dialog.add( 'html5video', function( editor ) { + return { + title: editor.lang.html5video.title, + minWidth: 500, + minHeight: 100, + contents: [ { + id: 'info', + label: editor.lang.html5video.infoLabel, + elements: [ { + type: 'vbox', + padding: 0, + children: [ + { + type: 'hbox', + widths: [ '365px', '110px' ], + align: 'right', + children: [ { + type: 'text', + id: 'url', + label: editor.lang.html5video.allowed, + required: true, + validate: CKEDITOR.dialog.validate.notEmpty( editor.lang.html5video.urlMissing ), + setup: function( widget ) { + this.setValue( widget.data.src ); + }, + commit: function( widget ) { + widget.setData( 'src', this.getValue() ); + } + }, + { + type: 'button', + id: 'browse', + // v-align with the 'txtUrl' field. + // TODO: We need something better than a fixed size here. + style: 'display:inline-block;margin-top:14px;', + align: 'center', + label: editor.lang.common.browseServer, + hidden: true, + filebrowser: 'info:url' + } ] + } ] + }, + { + type: 'checkbox', + id: 'responsive', + label: editor.lang.html5video.responsive, + setup: function( widget ) { + this.setValue( widget.data.responsive ); + }, + commit: function( widget ) { + widget.setData( 'responsive', this.getValue()?'true':'' ); + } + }, + { + type: 'hbox', + id: 'size', + children: [ { + type: 'text', + id: 'width', + label: editor.lang.common.width, + setup: function( widget ) { + if ( widget.data.width ) { + this.setValue( widget.data.width ); + } + }, + commit: function( widget ) { + widget.setData( 'width', this.getValue() ); + } + }, + { + type: 'text', + id: 'height', + label: editor.lang.common.height, + setup: function( widget ) { + if ( widget.data.height ) { + this.setValue( widget.data.height ); + } + }, + commit: function( widget ) { + widget.setData( 'height', this.getValue() ); + } + }, + ] + }, + + { + type: 'hbox', + id: 'alignment', + children: [ { + type: 'radio', + id: 'align', + label: editor.lang.common.align, + items: [ + [editor.lang.common.alignCenter, 'center'], + [editor.lang.common.alignLeft, 'left'], + [editor.lang.common.alignRight, 'right'], + [editor.lang.common.alignNone, 'none'] + ], + 'default': 'center', + setup: function( widget ) { + if ( widget.data.align ) { + this.setValue( widget.data.align ); + } + }, + commit: function( widget ) { + widget.setData( 'align', this.getValue() ); + } + } ] + } ] + }, + { + id: 'Upload', + hidden: true, + filebrowser: 'uploadButton', + label: editor.lang.html5video.upload, + elements: [ { + type: 'file', + id: 'upload', + label: editor.lang.html5video.btnUpload, + style: 'height:40px', + size: 38 + }, + { + type: 'fileButton', + id: 'uploadButton', + filebrowser: 'info:url', + label: editor.lang.html5video.btnUpload, + 'for': [ 'Upload', 'upload' ] + } ] + }, + { + id: 'advanced', + label: editor.lang.html5video.advanced, + elements: [ { + type: 'vbox', + padding: 0, + children: [ { + type: 'hbox', + children: [ { + type: 'radio', + id: 'autoplay', + label: editor.lang.html5video.autoplay, + items: [ + [editor.lang.html5video.yes, 'yes'], + [editor.lang.html5video.no, 'no'] + ], + 'default': 'no', + setup: function( widget ) { + if ( widget.data.autoplay ) { + this.setValue( widget.data.autoplay ); + } + }, + commit: function( widget ) { + widget.setData( 'autoplay', this.getValue() ); + } + } ] + } ] + } ] + } ] + }; +} ); diff --git a/sources/plugins/html5video/icons/html5video.png b/sources/plugins/html5video/icons/html5video.png new file mode 100644 index 0000000..a246517 Binary files /dev/null and b/sources/plugins/html5video/icons/html5video.png differ diff --git a/sources/plugins/html5video/lang/de.js b/sources/plugins/html5video/lang/de.js new file mode 100644 index 0000000..ddf4c8b --- /dev/null +++ b/sources/plugins/html5video/lang/de.js @@ -0,0 +1,14 @@ +CKEDITOR.plugins.setLang( 'html5video', 'de', { + button: 'HTML5 Video einfügen', + title: 'HTML5 Video', + infoLabel: 'Video Infos', + allowed: 'Erlaubte Dateierweiterungen: MP4, WebM, Ogv', + urlMissing: 'Sie haben keine URL zur Video-Datei angegeben.', + videoProperties: 'Video-Einstellungen', + upload: 'Hochladen', + btnUpload: 'Zum Server senden', + advanced: 'Erweitert', + autoplay: 'Autoplay?', + yes: 'Ja', + no: 'Nein' +} ); diff --git a/sources/plugins/html5video/lang/en.js b/sources/plugins/html5video/lang/en.js new file mode 100644 index 0000000..40eae12 --- /dev/null +++ b/sources/plugins/html5video/lang/en.js @@ -0,0 +1,15 @@ +CKEDITOR.plugins.setLang( 'html5video', 'en', { + button: 'Insert HTML5 video', + title: 'HTML5 video', + infoLabel: 'Video info', + allowed: 'Allowed file extensions: MP4, WebM, Ogv', + urlMissing: 'Video source URL is missing.', + videoProperties: 'Video properties', + upload: 'Upload', + btnUpload: 'Send it to the server', + advanced: 'Advanced', + autoplay: 'Autoplay?', + yes: 'Yes', + no: 'No', + responsive: 'Responsive width' +} ); diff --git a/sources/plugins/html5video/lang/es.js b/sources/plugins/html5video/lang/es.js new file mode 100644 index 0000000..4077935 --- /dev/null +++ b/sources/plugins/html5video/lang/es.js @@ -0,0 +1,14 @@ +CKEDITOR.plugins.setLang( 'html5video', 'es', { + button: 'Insertar video HTML5', + title: 'Video HTML5', + infoLabel: 'Información del video', + allowed: 'Extensiones de archivo permitidas: MP4, WebM, Ogv', + urlMissing: 'La URL del video no puede estar vacia.', + videoProperties: 'Propiedades del video', + upload: 'Cargar', + btnUpload: 'Enviar al servidor', + advanced: 'Avanzado', + autoplay: '¿Reproducir automáticamente?', + yes: 'Si', + no: 'No' +} ); diff --git a/sources/plugins/html5video/lang/eu.js b/sources/plugins/html5video/lang/eu.js new file mode 100644 index 0000000..78635d7 --- /dev/null +++ b/sources/plugins/html5video/lang/eu.js @@ -0,0 +1,14 @@ +CKEDITOR.plugins.setLang( 'html5video', 'eu', { + button: 'Txertatu HTML5 bideoa', + title: 'HTML5 bideoa', + infoLabel: 'Bideoaren informazioa', + allowed: 'Baimendutako fitxategi luzapenak: MP4, WebM, Ogv', + urlMissing: 'Bideoaren URLak ezin du hutsik egon.', + videoProperties: 'Bideoaren propietateak', + upload: 'Kargatu', + btnUpload: 'Bidali zerbitzarira', + advanced: 'Aurreratua', + autoplay: 'Automatikoki erreproduzitu?', + yes: 'Bai', + no: 'Ez' +} ); diff --git a/sources/plugins/html5video/lang/fr.js b/sources/plugins/html5video/lang/fr.js new file mode 100644 index 0000000..326f622 --- /dev/null +++ b/sources/plugins/html5video/lang/fr.js @@ -0,0 +1,14 @@ +CKEDITOR.plugins.setLang( 'html5video', 'fr', { + button: 'Insérer un lecteur video HTML5', + title: 'HTML5 video', + infoLabel: 'Informations video', + allowed: 'Extensions de fichiers autorisées: MP4, WebM, Ogv', + urlMissing: 'URL de la source video manquante. Veuillez la renseigner.', + videoProperties: 'Propriétés Video', + upload: 'Télécharger', + btnUpload: 'Envoyer vers le serveur', + advanced: 'Avancé', + autoplay: 'Jouer automatiquement ?', + yes: 'Oui', + no: 'Non' +} ); diff --git a/sources/plugins/html5video/lang/ru.js b/sources/plugins/html5video/lang/ru.js new file mode 100644 index 0000000..cd5a195 --- /dev/null +++ b/sources/plugins/html5video/lang/ru.js @@ -0,0 +1,15 @@ +CKEDITOR.plugins.setLang( 'html5video', 'ru', { + button: 'Вставить HTML5 видео', + title: 'HTML5 видео', + infoLabel: 'Видео', + allowed: 'Допустимые расширения файлов: MP4, WebM, Ogv', + urlMissing: 'Не выбран источник видео', + videoProperties: 'Свойства видео', + upload: 'Загрузить', + btnUpload: 'Загрузить на сервер', + advanced: 'Дополнительно', + autoplay: 'Автовоспроизведение', + yes: 'Да', + no: 'Нет', + responsive: 'Адаптивная ширина' +} ); diff --git a/sources/plugins/html5video/lang/uk.js b/sources/plugins/html5video/lang/uk.js new file mode 100644 index 0000000..32b920c --- /dev/null +++ b/sources/plugins/html5video/lang/uk.js @@ -0,0 +1,14 @@ +CKEDITOR.plugins.setLang( 'html5video', 'uk', { + button: 'Вставити HTML5 відео', + title: 'HTML5 відео', + infoLabel: 'Інформація', + allowed: 'Допустимі розширення файлів: MP4, WebM, Ogv', + urlMissing: 'Не обрано джерела відео', + videoProperties: 'Властивості відео', + upload: 'Відвантажити', + btnUpload: 'Відвантажити на сервер', + advanced: 'Додатково', + autoplay: 'Автовідтворення?', + yes: 'Так', + no: 'Ні' +} ); diff --git a/sources/plugins/html5video/lang/uz.js b/sources/plugins/html5video/lang/uz.js new file mode 100644 index 0000000..5fec9a2 --- /dev/null +++ b/sources/plugins/html5video/lang/uz.js @@ -0,0 +1,14 @@ +CKEDITOR.plugins.setLang( 'html5video', 'uz', { + button: 'HTML5 video qo‘shing', + title: 'HTML5 video', + infoLabel: 'Video ma\'lumot', + allowed: 'Ruxsat etilgan kengaytmalar: MP4, WebM, Ogv', + urlMissing: 'Video\'ning URL manbasi topilmadi.', + videoProperties: 'Video xususiyatlari', + upload: 'Yuklash', + btnUpload: 'Serverga jo‘natish', + advanced: 'Kengaytrilgan', + autoplay: 'Avtoijro?', + yes: 'Ha', + no: 'Yo‘q' +} ); diff --git a/sources/plugins/html5video/plugin.js b/sources/plugins/html5video/plugin.js new file mode 100644 index 0000000..bf51285 --- /dev/null +++ b/sources/plugins/html5video/plugin.js @@ -0,0 +1,139 @@ +CKEDITOR.plugins.add( 'html5video', { + requires: 'widget', + lang: 'de,en,eu,es,ru,uk,fr', + icons: 'html5video', + init: function( editor ) { + editor.widgets.add( 'html5video', { + button: editor.lang.html5video.button, + template: '
', + /* + * Allowed content rules (http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules): + * - div-s with text-align,float,margin-left,margin-right inline style rules and required ckeditor-html5-video class. + * - video tags with src, controls, width and height attributes. + */ + allowedContent: 'div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,controls,autoplay,width, height]{max-width,height};', + requiredContent: 'div(ckeditor-html5-video); video[src,controls];', + upcast: function( element ) { + return element.name === 'div' && element.hasClass( 'ckeditor-html5-video' ); + }, + dialog: 'html5video', + init: function() { + var src = ''; + var autoplay = ''; + var align = this.element.getStyle( 'text-align' ); + + var width = ''; + var height = ''; + + // If there's a child (the video element) + if ( this.element.getChild( 0 ) ) { + // get it's attributes. + src = this.element.getChild( 0 ).getAttribute( 'src' ); + width = this.element.getChild( 0 ).getAttribute( 'width' ); + height = this.element.getChild( 0 ).getAttribute( 'height' ); + autoplay = this.element.getChild( 0 ).getAttribute( 'autoplay' ); + responsive = this.element.getAttribute( 'data-responsive' ); + } + + if ( src ) { + this.setData( 'src', src ); + + if ( align ) { + this.setData( 'align', align ); + } else { + this.setData( 'align', 'none' ); + } + + if ( width ) { + this.setData( 'width', width ); + } + + if ( height ) { + this.setData( 'height', height ); + } + + if ( autoplay ) { + this.setData( 'autoplay', 'yes' ); + } + + if ( responsive ) { + this.setData( 'responsive', responsive ); + } + } + }, + data: function() { + // If there is an video source + if ( this.data.src ) { + // and there isn't a child (the video element) + if ( !this.element.getChild( 0 ) ) { + // Create a new
diff --git a/sources/plugins/htmlwriter/samples/outputhtml.html b/sources/plugins/htmlwriter/samples/outputhtml.html index f7123a1..a433025 100644 --- a/sources/plugins/htmlwriter/samples/outputhtml.html +++ b/sources/plugins/htmlwriter/samples/outputhtml.html @@ -1,6 +1,6 @@ @@ -216,7 +216,7 @@ CKEDITOR.replace( 'textarea_id', { CKEditor - The text editor for the Internet - http://ckeditor.com

- Copyright © 2003-2016, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

diff --git a/sources/plugins/iframe/dialogs/iframe.js b/sources/plugins/iframe/dialogs/iframe.js index 4b874ca..22c24f7 100644 --- a/sources/plugins/iframe/dialogs/iframe.js +++ b/sources/plugins/iframe/dialogs/iframe.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -65,7 +65,7 @@ // A subset of the specified attributes/styles // should also be applied on the fake element to - // have better visual effect. (#5240) + // have better visual effect. (http://dev.ckeditor.com/ticket/5240) var extraStyles = {}, extraAttributes = {}; this.commitContent( iframeNode, extraStyles, extraAttributes ); diff --git a/sources/plugins/iframe/icons/hidpi/iframe.png b/sources/plugins/iframe/icons/hidpi/iframe.png index ff17604..d99d0f3 100644 Binary files a/sources/plugins/iframe/icons/hidpi/iframe.png and b/sources/plugins/iframe/icons/hidpi/iframe.png differ diff --git a/sources/plugins/iframe/icons/iframe.png b/sources/plugins/iframe/icons/iframe.png index f72d191..a2f5545 100644 Binary files a/sources/plugins/iframe/icons/iframe.png and b/sources/plugins/iframe/icons/iframe.png differ diff --git a/sources/plugins/iframe/lang/af.js b/sources/plugins/iframe/lang/af.js index 4770879..9fa9387 100644 --- a/sources/plugins/iframe/lang/af.js +++ b/sources/plugins/iframe/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'af', { diff --git a/sources/plugins/iframe/lang/ar.js b/sources/plugins/iframe/lang/ar.js index 1b5c046..6388d75 100644 --- a/sources/plugins/iframe/lang/ar.js +++ b/sources/plugins/iframe/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ar', { diff --git a/sources/plugins/iframe/lang/az.js b/sources/plugins/iframe/lang/az.js new file mode 100644 index 0000000..e4b72e6 --- /dev/null +++ b/sources/plugins/iframe/lang/az.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'iframe', 'az', { + border: 'Çərçivə sərhədlərini göstər', + noUrl: 'Çərçivənin ünvanı daxil edin', + scrolling: 'Şürüşdürmələri əlavə et', + title: 'İFRAME elementinin alətləri', + toolbar: 'İFRAME' +} ); diff --git a/sources/plugins/iframe/lang/bg.js b/sources/plugins/iframe/lang/bg.js index d365742..4adb22c 100644 --- a/sources/plugins/iframe/lang/bg.js +++ b/sources/plugins/iframe/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'bg', { diff --git a/sources/plugins/iframe/lang/bn.js b/sources/plugins/iframe/lang/bn.js index 0a91e7c..3479c1f 100644 --- a/sources/plugins/iframe/lang/bn.js +++ b/sources/plugins/iframe/lang/bn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'bn', { diff --git a/sources/plugins/iframe/lang/bs.js b/sources/plugins/iframe/lang/bs.js index 63eb7b6..51ca8a7 100644 --- a/sources/plugins/iframe/lang/bs.js +++ b/sources/plugins/iframe/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'bs', { diff --git a/sources/plugins/iframe/lang/ca.js b/sources/plugins/iframe/lang/ca.js index 0802715..a0d7d92 100644 --- a/sources/plugins/iframe/lang/ca.js +++ b/sources/plugins/iframe/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ca', { diff --git a/sources/plugins/iframe/lang/cs.js b/sources/plugins/iframe/lang/cs.js index fa3e85c..388fa61 100644 --- a/sources/plugins/iframe/lang/cs.js +++ b/sources/plugins/iframe/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'cs', { diff --git a/sources/plugins/iframe/lang/cy.js b/sources/plugins/iframe/lang/cy.js index e89adc7..a23b2ff 100644 --- a/sources/plugins/iframe/lang/cy.js +++ b/sources/plugins/iframe/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'cy', { diff --git a/sources/plugins/iframe/lang/da.js b/sources/plugins/iframe/lang/da.js index d14b8cd..88b4fab 100644 --- a/sources/plugins/iframe/lang/da.js +++ b/sources/plugins/iframe/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'da', { diff --git a/sources/plugins/iframe/lang/de-ch.js b/sources/plugins/iframe/lang/de-ch.js index 233b55b..2a56ccf 100644 --- a/sources/plugins/iframe/lang/de-ch.js +++ b/sources/plugins/iframe/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'de-ch', { diff --git a/sources/plugins/iframe/lang/de.js b/sources/plugins/iframe/lang/de.js index 184387f..7988dfa 100644 --- a/sources/plugins/iframe/lang/de.js +++ b/sources/plugins/iframe/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'de', { diff --git a/sources/plugins/iframe/lang/el.js b/sources/plugins/iframe/lang/el.js index b09fdf9..5abdfb0 100644 --- a/sources/plugins/iframe/lang/el.js +++ b/sources/plugins/iframe/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'el', { diff --git a/sources/plugins/iframe/lang/en-au.js b/sources/plugins/iframe/lang/en-au.js index 9f0885f..59048db 100644 --- a/sources/plugins/iframe/lang/en-au.js +++ b/sources/plugins/iframe/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'en-au', { diff --git a/sources/plugins/iframe/lang/en-ca.js b/sources/plugins/iframe/lang/en-ca.js index 20d438c..401ff49 100644 --- a/sources/plugins/iframe/lang/en-ca.js +++ b/sources/plugins/iframe/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'en-ca', { diff --git a/sources/plugins/iframe/lang/en-gb.js b/sources/plugins/iframe/lang/en-gb.js index 86a3fc0..78d4000 100644 --- a/sources/plugins/iframe/lang/en-gb.js +++ b/sources/plugins/iframe/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'en-gb', { diff --git a/sources/plugins/iframe/lang/en.js b/sources/plugins/iframe/lang/en.js index cf39cbe..1e224b9 100644 --- a/sources/plugins/iframe/lang/en.js +++ b/sources/plugins/iframe/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'en', { diff --git a/sources/plugins/iframe/lang/eo.js b/sources/plugins/iframe/lang/eo.js index 1f50783..eba244d 100644 --- a/sources/plugins/iframe/lang/eo.js +++ b/sources/plugins/iframe/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'eo', { diff --git a/sources/plugins/iframe/lang/es-mx.js b/sources/plugins/iframe/lang/es-mx.js new file mode 100644 index 0000000..767147e --- /dev/null +++ b/sources/plugins/iframe/lang/es-mx.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'iframe', 'es-mx', { + border: 'Mostrar el borde del marco', + noUrl: 'Ingresa la URL del iframe', + scrolling: 'Habilitar la barra de desplazamiento', + title: 'Propiedades del IFrame', + toolbar: 'Iframe' +} ); diff --git a/sources/plugins/iframe/lang/es.js b/sources/plugins/iframe/lang/es.js index 67955e3..1cf5c29 100644 --- a/sources/plugins/iframe/lang/es.js +++ b/sources/plugins/iframe/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'es', { diff --git a/sources/plugins/iframe/lang/et.js b/sources/plugins/iframe/lang/et.js index e01acb8..aac467d 100644 --- a/sources/plugins/iframe/lang/et.js +++ b/sources/plugins/iframe/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'et', { diff --git a/sources/plugins/iframe/lang/eu.js b/sources/plugins/iframe/lang/eu.js index 9f78376..1f77367 100644 --- a/sources/plugins/iframe/lang/eu.js +++ b/sources/plugins/iframe/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'eu', { diff --git a/sources/plugins/iframe/lang/fa.js b/sources/plugins/iframe/lang/fa.js index 4f96602..0c7a09f 100644 --- a/sources/plugins/iframe/lang/fa.js +++ b/sources/plugins/iframe/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'fa', { diff --git a/sources/plugins/iframe/lang/fi.js b/sources/plugins/iframe/lang/fi.js index 3413f0e..0aa7f37 100644 --- a/sources/plugins/iframe/lang/fi.js +++ b/sources/plugins/iframe/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'fi', { diff --git a/sources/plugins/iframe/lang/fo.js b/sources/plugins/iframe/lang/fo.js index 877e5d8..05fdfe8 100644 --- a/sources/plugins/iframe/lang/fo.js +++ b/sources/plugins/iframe/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'fo', { diff --git a/sources/plugins/iframe/lang/fr-ca.js b/sources/plugins/iframe/lang/fr-ca.js index d472cf9..cf7947e 100644 --- a/sources/plugins/iframe/lang/fr-ca.js +++ b/sources/plugins/iframe/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'fr-ca', { diff --git a/sources/plugins/iframe/lang/fr.js b/sources/plugins/iframe/lang/fr.js index 3cfd49a..34fc64e 100644 --- a/sources/plugins/iframe/lang/fr.js +++ b/sources/plugins/iframe/lang/fr.js @@ -1,11 +1,11 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'fr', { - border: 'Afficher une bordure de la IFrame', - noUrl: 'Veuillez entrer l\'adresse du lien de la IFrame', - scrolling: 'Permettre à la barre de défilement', - title: 'Propriétés de la IFrame', - toolbar: 'IFrame' + border: 'Afficher la bordure du cadre', + noUrl: 'Veuillez entrer l\'URL du contenu du cadre', + scrolling: 'Activer les barres de défilement', + title: 'Propriétés du cadre de contenu incorporé', + toolbar: 'Cadre de contenu incorporé' } ); diff --git a/sources/plugins/iframe/lang/gl.js b/sources/plugins/iframe/lang/gl.js index a19d1ee..449e28d 100644 --- a/sources/plugins/iframe/lang/gl.js +++ b/sources/plugins/iframe/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'gl', { diff --git a/sources/plugins/iframe/lang/gu.js b/sources/plugins/iframe/lang/gu.js index 285484c..91bb8bb 100644 --- a/sources/plugins/iframe/lang/gu.js +++ b/sources/plugins/iframe/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'gu', { diff --git a/sources/plugins/iframe/lang/he.js b/sources/plugins/iframe/lang/he.js index bd9ce8b..87467be 100644 --- a/sources/plugins/iframe/lang/he.js +++ b/sources/plugins/iframe/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'he', { diff --git a/sources/plugins/iframe/lang/hi.js b/sources/plugins/iframe/lang/hi.js index a51c275..96d30fb 100644 --- a/sources/plugins/iframe/lang/hi.js +++ b/sources/plugins/iframe/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'hi', { diff --git a/sources/plugins/iframe/lang/hr.js b/sources/plugins/iframe/lang/hr.js index d01d19a..9f289a7 100644 --- a/sources/plugins/iframe/lang/hr.js +++ b/sources/plugins/iframe/lang/hr.js @@ -1,10 +1,10 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'hr', { border: 'Prikaži okvir IFrame-a', - noUrl: 'Unesite URL iframe-a', + noUrl: 'Unesite URL IFrame-a', scrolling: 'Omogući trake za skrolanje', title: 'IFrame svojstva', toolbar: 'IFrame' diff --git a/sources/plugins/iframe/lang/hu.js b/sources/plugins/iframe/lang/hu.js index 7b69168..096d311 100644 --- a/sources/plugins/iframe/lang/hu.js +++ b/sources/plugins/iframe/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'hu', { diff --git a/sources/plugins/iframe/lang/id.js b/sources/plugins/iframe/lang/id.js index 9f2fb24..c351eda 100644 --- a/sources/plugins/iframe/lang/id.js +++ b/sources/plugins/iframe/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'id', { diff --git a/sources/plugins/iframe/lang/is.js b/sources/plugins/iframe/lang/is.js index 7a75de8..bc7cf08 100644 --- a/sources/plugins/iframe/lang/is.js +++ b/sources/plugins/iframe/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'is', { diff --git a/sources/plugins/iframe/lang/it.js b/sources/plugins/iframe/lang/it.js index a785132..e020c27 100644 --- a/sources/plugins/iframe/lang/it.js +++ b/sources/plugins/iframe/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'it', { diff --git a/sources/plugins/iframe/lang/ja.js b/sources/plugins/iframe/lang/ja.js index a24dd15..b104ccd 100644 --- a/sources/plugins/iframe/lang/ja.js +++ b/sources/plugins/iframe/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ja', { diff --git a/sources/plugins/iframe/lang/ka.js b/sources/plugins/iframe/lang/ka.js index a7d3320..7d98f68 100644 --- a/sources/plugins/iframe/lang/ka.js +++ b/sources/plugins/iframe/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ka', { diff --git a/sources/plugins/iframe/lang/km.js b/sources/plugins/iframe/lang/km.js index 0fea30c..9331b23 100644 --- a/sources/plugins/iframe/lang/km.js +++ b/sources/plugins/iframe/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'km', { diff --git a/sources/plugins/iframe/lang/ko.js b/sources/plugins/iframe/lang/ko.js index 358b101..f5c16a0 100644 --- a/sources/plugins/iframe/lang/ko.js +++ b/sources/plugins/iframe/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ko', { diff --git a/sources/plugins/iframe/lang/ku.js b/sources/plugins/iframe/lang/ku.js index 6217ee1..852c3b4 100644 --- a/sources/plugins/iframe/lang/ku.js +++ b/sources/plugins/iframe/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ku', { diff --git a/sources/plugins/iframe/lang/lt.js b/sources/plugins/iframe/lang/lt.js index 6b4c298..c69817f 100644 --- a/sources/plugins/iframe/lang/lt.js +++ b/sources/plugins/iframe/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'lt', { diff --git a/sources/plugins/iframe/lang/lv.js b/sources/plugins/iframe/lang/lv.js index 6b10267..50a6743 100644 --- a/sources/plugins/iframe/lang/lv.js +++ b/sources/plugins/iframe/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'lv', { diff --git a/sources/plugins/iframe/lang/mk.js b/sources/plugins/iframe/lang/mk.js index 6f0c2a2..d576e21 100644 --- a/sources/plugins/iframe/lang/mk.js +++ b/sources/plugins/iframe/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'mk', { diff --git a/sources/plugins/iframe/lang/mn.js b/sources/plugins/iframe/lang/mn.js index bba8e02..dd9d927 100644 --- a/sources/plugins/iframe/lang/mn.js +++ b/sources/plugins/iframe/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'mn', { diff --git a/sources/plugins/iframe/lang/ms.js b/sources/plugins/iframe/lang/ms.js index eea00cb..f0342bf 100644 --- a/sources/plugins/iframe/lang/ms.js +++ b/sources/plugins/iframe/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ms', { diff --git a/sources/plugins/iframe/lang/nb.js b/sources/plugins/iframe/lang/nb.js index ffd6997..c02990e 100644 --- a/sources/plugins/iframe/lang/nb.js +++ b/sources/plugins/iframe/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'nb', { diff --git a/sources/plugins/iframe/lang/nl.js b/sources/plugins/iframe/lang/nl.js index fc80c47..555025d 100644 --- a/sources/plugins/iframe/lang/nl.js +++ b/sources/plugins/iframe/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'nl', { diff --git a/sources/plugins/iframe/lang/no.js b/sources/plugins/iframe/lang/no.js index 59c7255..bb44fe5 100644 --- a/sources/plugins/iframe/lang/no.js +++ b/sources/plugins/iframe/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'no', { diff --git a/sources/plugins/iframe/lang/oc.js b/sources/plugins/iframe/lang/oc.js new file mode 100644 index 0000000..890a571 --- /dev/null +++ b/sources/plugins/iframe/lang/oc.js @@ -0,0 +1,11 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'iframe', 'oc', { + border: 'Afichar la bordadura del quadre', + noUrl: 'Entratz l\'URL del contengut del quadre', + scrolling: 'Activar las barras de desfilament', + title: 'Proprietats del quadre de contengut incorporat', + toolbar: 'Quadre de contengut incorporat' +} ); diff --git a/sources/plugins/iframe/lang/pl.js b/sources/plugins/iframe/lang/pl.js index 3f63161..6d05dd1 100644 --- a/sources/plugins/iframe/lang/pl.js +++ b/sources/plugins/iframe/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'pl', { diff --git a/sources/plugins/iframe/lang/pt-br.js b/sources/plugins/iframe/lang/pt-br.js index ae9157f..58ec356 100644 --- a/sources/plugins/iframe/lang/pt-br.js +++ b/sources/plugins/iframe/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'pt-br', { diff --git a/sources/plugins/iframe/lang/pt.js b/sources/plugins/iframe/lang/pt.js index 0440cb0..1b1cd9f 100644 --- a/sources/plugins/iframe/lang/pt.js +++ b/sources/plugins/iframe/lang/pt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'pt', { diff --git a/sources/plugins/iframe/lang/ro.js b/sources/plugins/iframe/lang/ro.js index 96dbb43..deeb0c4 100644 --- a/sources/plugins/iframe/lang/ro.js +++ b/sources/plugins/iframe/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ro', { diff --git a/sources/plugins/iframe/lang/ru.js b/sources/plugins/iframe/lang/ru.js index ca0bf8e..e352aa3 100644 --- a/sources/plugins/iframe/lang/ru.js +++ b/sources/plugins/iframe/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ru', { diff --git a/sources/plugins/iframe/lang/si.js b/sources/plugins/iframe/lang/si.js index 17d800d..d7660ef 100644 --- a/sources/plugins/iframe/lang/si.js +++ b/sources/plugins/iframe/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'si', { diff --git a/sources/plugins/iframe/lang/sk.js b/sources/plugins/iframe/lang/sk.js index 1b360d8..ac0b91d 100644 --- a/sources/plugins/iframe/lang/sk.js +++ b/sources/plugins/iframe/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'sk', { diff --git a/sources/plugins/iframe/lang/sl.js b/sources/plugins/iframe/lang/sl.js index 13eab17..2b0e375 100644 --- a/sources/plugins/iframe/lang/sl.js +++ b/sources/plugins/iframe/lang/sl.js @@ -1,11 +1,11 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'sl', { - border: 'Pokaži mejo okvira', + border: 'Pokaži obrobo okvirja', noUrl: 'Prosimo, vnesite iframe URL', - scrolling: 'Omogoči scrollbars', - title: 'IFrame Lastnosti', + scrolling: 'Omogoči drsnike', + title: 'Lastnosti IFrame', toolbar: 'IFrame' } ); diff --git a/sources/plugins/iframe/lang/sq.js b/sources/plugins/iframe/lang/sq.js index 671f743..a274000 100644 --- a/sources/plugins/iframe/lang/sq.js +++ b/sources/plugins/iframe/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'sq', { diff --git a/sources/plugins/iframe/lang/sr-latn.js b/sources/plugins/iframe/lang/sr-latn.js index 7b7e316..29685a9 100644 --- a/sources/plugins/iframe/lang/sr-latn.js +++ b/sources/plugins/iframe/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'sr-latn', { diff --git a/sources/plugins/iframe/lang/sr.js b/sources/plugins/iframe/lang/sr.js index d59430a..acd9876 100644 --- a/sources/plugins/iframe/lang/sr.js +++ b/sources/plugins/iframe/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'sr', { diff --git a/sources/plugins/iframe/lang/sv.js b/sources/plugins/iframe/lang/sv.js index bd9f5f5..fab04a5 100644 --- a/sources/plugins/iframe/lang/sv.js +++ b/sources/plugins/iframe/lang/sv.js @@ -1,11 +1,11 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'sv', { border: 'Visa ramkant', noUrl: 'Skriv in URL för iFrame', scrolling: 'Aktivera rullningslister', - title: 'iFrame Egenskaper', + title: 'iFrame-egenskaper', toolbar: 'iFrame' } ); diff --git a/sources/plugins/iframe/lang/th.js b/sources/plugins/iframe/lang/th.js index f22f335..57926b9 100644 --- a/sources/plugins/iframe/lang/th.js +++ b/sources/plugins/iframe/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'th', { diff --git a/sources/plugins/iframe/lang/tr.js b/sources/plugins/iframe/lang/tr.js index 6738e2a..d828f65 100644 --- a/sources/plugins/iframe/lang/tr.js +++ b/sources/plugins/iframe/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'tr', { diff --git a/sources/plugins/iframe/lang/tt.js b/sources/plugins/iframe/lang/tt.js index 8523323..869f67b 100644 --- a/sources/plugins/iframe/lang/tt.js +++ b/sources/plugins/iframe/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'tt', { diff --git a/sources/plugins/iframe/lang/ug.js b/sources/plugins/iframe/lang/ug.js index 3cbd5b0..b46f6da 100644 --- a/sources/plugins/iframe/lang/ug.js +++ b/sources/plugins/iframe/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'ug', { diff --git a/sources/plugins/iframe/lang/uk.js b/sources/plugins/iframe/lang/uk.js index c5173d2..3f91ef6 100644 --- a/sources/plugins/iframe/lang/uk.js +++ b/sources/plugins/iframe/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'uk', { diff --git a/sources/plugins/iframe/lang/vi.js b/sources/plugins/iframe/lang/vi.js index d7c2bc0..be8ebfb 100644 --- a/sources/plugins/iframe/lang/vi.js +++ b/sources/plugins/iframe/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'vi', { diff --git a/sources/plugins/iframe/lang/zh-cn.js b/sources/plugins/iframe/lang/zh-cn.js index 99e657a..a35bd8c 100644 --- a/sources/plugins/iframe/lang/zh-cn.js +++ b/sources/plugins/iframe/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'zh-cn', { diff --git a/sources/plugins/iframe/lang/zh.js b/sources/plugins/iframe/lang/zh.js index 091b807..4f7472a 100644 --- a/sources/plugins/iframe/lang/zh.js +++ b/sources/plugins/iframe/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'iframe', 'zh', { diff --git a/sources/plugins/iframe/plugin.js b/sources/plugins/iframe/plugin.js index 8f049a5..7c479c0 100644 --- a/sources/plugins/iframe/plugin.js +++ b/sources/plugins/iframe/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -7,7 +7,7 @@ CKEDITOR.plugins.add( 'iframe', { requires: 'dialog,fakeobjects', // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'iframe', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% diff --git a/sources/plugins/image/dialogs/image.js b/sources/plugins/image/dialogs/image.js index 4f62f99..5302a7c 100644 --- a/sources/plugins/image/dialogs/image.js +++ b/sources/plugins/image/dialogs/image.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -107,7 +107,7 @@ var oImageOriginal = dialog.originalElement; - // Dialog may already closed. (#5505) + // Dialog may already closed. (http://dev.ckeditor.com/ticket/5505) if ( !oImageOriginal ) return null; @@ -233,7 +233,7 @@ this.firstLoad = false; this.dontResetSize = false; - // Possible fix for #12818. + // Possible fix for http://dev.ckeditor.com/ticket/12818. updatePreview( this ); }; @@ -270,7 +270,7 @@ return { title: editor.lang.image[ dialogType == 'image' ? 'title' : 'titleButton' ], - minWidth: 420, + minWidth: ( CKEDITOR.skinName || editor.config.skin ) == 'moono-lisa' ? 500 : 420, minHeight: 360, onShow: function() { this.imageElement = false; @@ -310,7 +310,7 @@ this.linkEditMode = true; // If there is an existing link, by default keep it (true). - // It will be removed if certain conditions are met and Link tab is enabled. (#13351) + // It will be removed if certain conditions are met and Link tab is enabled. (http://dev.ckeditor.com/ticket/13351) this.addLink = true; // Look for Image element. @@ -490,6 +490,7 @@ type: 'hbox', widths: [ '280px', '110px' ], align: 'right', + className: 'cke_dialog_image_url', children: [ { id: 'txtUrl', type: 'text', @@ -541,7 +542,7 @@ this.getDialog().dontResetSize = true; field.setValue( url ); // And call this.onChange() - // Manually set the initial value.(#4191) + // Manually set the initial value.(http://dev.ckeditor.com/ticket/4191) field.setInitValue(); } }, @@ -692,6 +693,7 @@ { id: 'ratioLock', type: 'html', + className: 'cke_dialog_image_ratiolock', style: 'margin-top:30px;width:40px;height:40px;', onLoad: function() { // Activate Reset button @@ -1014,6 +1016,7 @@ { type: 'button', id: 'browse', + className: 'cke_dialog_image_browse', filebrowser: { action: 'Browse', target: 'Link:txtUrl', diff --git a/sources/plugins/image/icons/hidpi/image.png b/sources/plugins/image/icons/hidpi/image.png index b3c7ade..d0f21ae 100644 Binary files a/sources/plugins/image/icons/hidpi/image.png and b/sources/plugins/image/icons/hidpi/image.png differ diff --git a/sources/plugins/image/icons/image.png b/sources/plugins/image/icons/image.png index fcf61b5..8ea9725 100644 Binary files a/sources/plugins/image/icons/image.png and b/sources/plugins/image/icons/image.png differ diff --git a/sources/plugins/image/lang/af.js b/sources/plugins/image/lang/af.js index c3cf354..8cc5b5f 100644 --- a/sources/plugins/image/lang/af.js +++ b/sources/plugins/image/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'af', { diff --git a/sources/plugins/image/lang/ar.js b/sources/plugins/image/lang/ar.js index 1a0fb7a..a755b3e 100644 --- a/sources/plugins/image/lang/ar.js +++ b/sources/plugins/image/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ar', { diff --git a/sources/plugins/image/lang/az.js b/sources/plugins/image/lang/az.js new file mode 100644 index 0000000..79009fa --- /dev/null +++ b/sources/plugins/image/lang/az.js @@ -0,0 +1,25 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'image', 'az', { + alt: 'Alternativ mətn', + border: 'Sərhəd', + btnUpload: 'Serverə yüklə', + button2Img: 'Şəkil tipli düyməni şəklə çevirmək istədiyinizə əminsinizmi?', + hSpace: 'Üfüqi boşluq', + img2Button: 'Şəkli şəkil tipli düyməyə çevirmək istədiyinizə əminsinizmi?', + infoTab: 'Şəkil haqqında məlumat', + linkTab: 'Link', + lockRatio: 'Ölçülərin uyğunluğu saxla', + menu: 'Şəklin seçimləri', + resetSize: 'Ölçüləri qaytar', + title: 'Şəklin seçimləri', + titleButton: 'Şəkil tipli düyməsinin seçimləri', + upload: 'Serverə yüklə', + urlMissing: 'Şəklin ünvanı yanlışdır.', + vSpace: 'Şaquli boşluq', + validateBorder: 'Sərhədin eni rəqəm olmalıdır.', + validateHSpace: 'Üfüqi boşluq rəqəm olmalıdır.', + validateVSpace: 'Şaquli boşluq rəqəm olmalıdır.' +} ); diff --git a/sources/plugins/image/lang/bg.js b/sources/plugins/image/lang/bg.js index ecc7cd7..6c0b064 100644 --- a/sources/plugins/image/lang/bg.js +++ b/sources/plugins/image/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'bg', { diff --git a/sources/plugins/image/lang/bn.js b/sources/plugins/image/lang/bn.js index 1f39349..bbecfc6 100644 --- a/sources/plugins/image/lang/bn.js +++ b/sources/plugins/image/lang/bn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'bn', { @@ -15,7 +15,7 @@ CKEDITOR.plugins.setLang( 'image', 'bn', { menu: 'ছবির প্রোপার্টি', resetSize: 'সাইজ পূর্বাবস্থায় ফিরিয়ে দাও', title: 'ছবির প্রোপার্টি', - titleButton: 'ছবি বাটন প্রোপার্টি', + titleButton: 'ছবির বাটন সম্বন্ধীয়', upload: 'আপলোড', urlMissing: 'Image source URL is missing.', // MISSING vSpace: 'ভার্টিকেল স্পেস', diff --git a/sources/plugins/image/lang/bs.js b/sources/plugins/image/lang/bs.js index 8470e8f..06dd8bf 100644 --- a/sources/plugins/image/lang/bs.js +++ b/sources/plugins/image/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'bs', { diff --git a/sources/plugins/image/lang/ca.js b/sources/plugins/image/lang/ca.js index 8464dbf..858013e 100644 --- a/sources/plugins/image/lang/ca.js +++ b/sources/plugins/image/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ca', { diff --git a/sources/plugins/image/lang/cs.js b/sources/plugins/image/lang/cs.js index 2f870f8..a18a753 100644 --- a/sources/plugins/image/lang/cs.js +++ b/sources/plugins/image/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'cs', { diff --git a/sources/plugins/image/lang/cy.js b/sources/plugins/image/lang/cy.js index 6310b5b..7407310 100644 --- a/sources/plugins/image/lang/cy.js +++ b/sources/plugins/image/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'cy', { diff --git a/sources/plugins/image/lang/da.js b/sources/plugins/image/lang/da.js index 82f591d..bec69ba 100644 --- a/sources/plugins/image/lang/da.js +++ b/sources/plugins/image/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'da', { diff --git a/sources/plugins/image/lang/de-ch.js b/sources/plugins/image/lang/de-ch.js index 9237c1a..6ba1570 100644 --- a/sources/plugins/image/lang/de-ch.js +++ b/sources/plugins/image/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'de-ch', { diff --git a/sources/plugins/image/lang/de.js b/sources/plugins/image/lang/de.js index 4827329..a391934 100644 --- a/sources/plugins/image/lang/de.js +++ b/sources/plugins/image/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'de', { diff --git a/sources/plugins/image/lang/el.js b/sources/plugins/image/lang/el.js index 9e515e7..3453c3d 100644 --- a/sources/plugins/image/lang/el.js +++ b/sources/plugins/image/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'el', { diff --git a/sources/plugins/image/lang/en-au.js b/sources/plugins/image/lang/en-au.js index 6e7ce12..dba29c7 100644 --- a/sources/plugins/image/lang/en-au.js +++ b/sources/plugins/image/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'en-au', { diff --git a/sources/plugins/image/lang/en-ca.js b/sources/plugins/image/lang/en-ca.js index 2f3992f..e78f83e 100644 --- a/sources/plugins/image/lang/en-ca.js +++ b/sources/plugins/image/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'en-ca', { diff --git a/sources/plugins/image/lang/en-gb.js b/sources/plugins/image/lang/en-gb.js index e60b38a..dcf335e 100644 --- a/sources/plugins/image/lang/en-gb.js +++ b/sources/plugins/image/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'en-gb', { diff --git a/sources/plugins/image/lang/en.js b/sources/plugins/image/lang/en.js index d6cb43a..4d0f50b 100644 --- a/sources/plugins/image/lang/en.js +++ b/sources/plugins/image/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'en', { diff --git a/sources/plugins/image/lang/eo.js b/sources/plugins/image/lang/eo.js index 9ef3115..276ef33 100644 --- a/sources/plugins/image/lang/eo.js +++ b/sources/plugins/image/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'eo', { diff --git a/sources/plugins/image/lang/es-mx.js b/sources/plugins/image/lang/es-mx.js new file mode 100644 index 0000000..dc9b24c --- /dev/null +++ b/sources/plugins/image/lang/es-mx.js @@ -0,0 +1,25 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'image', 'es-mx', { + alt: 'Texto alternativo', + border: 'Borde', + btnUpload: 'Enviar al servidor', + button2Img: '¿Desea transformar el botón de imagen seleccionado en una imagen simple?', + hSpace: 'Espacio horizontal', + img2Button: '¿Desea transformar la imagen seleccionada en un botón de imagen?', + infoTab: 'Información de imagen', + linkTab: 'Enlace', + lockRatio: 'Bloquear aspecto', + menu: 'Propiedades de la imagen', + resetSize: 'Reiniciar tamaño', + title: 'Propiedades de la imagen', + titleButton: 'Propiedades del botón de imagen', + upload: 'Cargar', + urlMissing: 'Falta la URL de origen de la imagen.', + vSpace: 'Espacio vertical', + validateBorder: 'El borde debe ser un número entero.', + validateHSpace: 'El espacio horizontal debe ser un número entero.', + validateVSpace: 'El espacio vertical debe ser un número entero.' +} ); diff --git a/sources/plugins/image/lang/es.js b/sources/plugins/image/lang/es.js index 12e1748..1302a19 100644 --- a/sources/plugins/image/lang/es.js +++ b/sources/plugins/image/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'es', { diff --git a/sources/plugins/image/lang/et.js b/sources/plugins/image/lang/et.js index e02591f..4c7153a 100644 --- a/sources/plugins/image/lang/et.js +++ b/sources/plugins/image/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'et', { diff --git a/sources/plugins/image/lang/eu.js b/sources/plugins/image/lang/eu.js index f288398..52f8289 100644 --- a/sources/plugins/image/lang/eu.js +++ b/sources/plugins/image/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'eu', { diff --git a/sources/plugins/image/lang/fa.js b/sources/plugins/image/lang/fa.js index 00eb831..6628e99 100644 --- a/sources/plugins/image/lang/fa.js +++ b/sources/plugins/image/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'fa', { diff --git a/sources/plugins/image/lang/fi.js b/sources/plugins/image/lang/fi.js index e264d72..665b615 100644 --- a/sources/plugins/image/lang/fi.js +++ b/sources/plugins/image/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'fi', { diff --git a/sources/plugins/image/lang/fo.js b/sources/plugins/image/lang/fo.js index 6073e0c..8332a38 100644 --- a/sources/plugins/image/lang/fo.js +++ b/sources/plugins/image/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'fo', { diff --git a/sources/plugins/image/lang/fr-ca.js b/sources/plugins/image/lang/fr-ca.js index ebeddb2..644a9f3 100644 --- a/sources/plugins/image/lang/fr-ca.js +++ b/sources/plugins/image/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'fr-ca', { diff --git a/sources/plugins/image/lang/fr.js b/sources/plugins/image/lang/fr.js index e06d095..299c379 100644 --- a/sources/plugins/image/lang/fr.js +++ b/sources/plugins/image/lang/fr.js @@ -1,25 +1,25 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'fr', { - alt: 'Texte de remplacement', + alt: 'Texte alternatif', border: 'Bordure', btnUpload: 'Envoyer sur le serveur', - button2Img: 'Voulez-vous transformer le bouton image sélectionné en simple image?', + button2Img: 'Voulez-vous transformer le bouton avec image sélectionné en simple image ?', hSpace: 'Espacement horizontal', - img2Button: 'Voulez-vous transformer l\'image en bouton image?', + img2Button: 'Voulez-vous transformer l\'image sélectionnée en bouton avec image ?', infoTab: 'Informations sur l\'image', linkTab: 'Lien', lockRatio: 'Conserver les proportions', menu: 'Propriétés de l\'image', - resetSize: 'Taille d\'origine', + resetSize: 'Réinitialiser la taille', title: 'Propriétés de l\'image', - titleButton: 'Propriétés du bouton image', - upload: 'Envoyer', - urlMissing: 'L\'adresse source de l\'image est manquante.', + titleButton: 'Propriétés du bouton avec image', + upload: 'Téléverser', + urlMissing: 'L\'URL source de l\'image est manquante.', vSpace: 'Espacement vertical', - validateBorder: 'Bordure doit être un entier.', - validateHSpace: 'HSpace doit être un entier.', - validateVSpace: 'VSpace doit être un entier.' + validateBorder: 'La bordure doit être un nombre entier.', + validateHSpace: 'L\'espacement horizontal doit être un nombre entier.', + validateVSpace: 'L\'espacement vertical doit être un nombre entier.' } ); diff --git a/sources/plugins/image/lang/gl.js b/sources/plugins/image/lang/gl.js index 22f1f41..ba632b8 100644 --- a/sources/plugins/image/lang/gl.js +++ b/sources/plugins/image/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'gl', { diff --git a/sources/plugins/image/lang/gu.js b/sources/plugins/image/lang/gu.js index 36e26fc..f70ae28 100644 --- a/sources/plugins/image/lang/gu.js +++ b/sources/plugins/image/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'gu', { diff --git a/sources/plugins/image/lang/he.js b/sources/plugins/image/lang/he.js index 5b8e18d..41f207a 100644 --- a/sources/plugins/image/lang/he.js +++ b/sources/plugins/image/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'he', { diff --git a/sources/plugins/image/lang/hi.js b/sources/plugins/image/lang/hi.js index 158c188..d4604b3 100644 --- a/sources/plugins/image/lang/hi.js +++ b/sources/plugins/image/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'hi', { diff --git a/sources/plugins/image/lang/hr.js b/sources/plugins/image/lang/hr.js index 6c3aade..962533a 100644 --- a/sources/plugins/image/lang/hr.js +++ b/sources/plugins/image/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'hr', { @@ -10,7 +10,7 @@ CKEDITOR.plugins.setLang( 'image', 'hr', { hSpace: 'HSpace', img2Button: 'Želite li promijeniti odabranu sliku u gumb?', infoTab: 'Info slike', - linkTab: 'Link', + linkTab: 'Veza', lockRatio: 'Zaključaj odnos', menu: 'Svojstva slika', resetSize: 'Obriši veličinu', diff --git a/sources/plugins/image/lang/hu.js b/sources/plugins/image/lang/hu.js index ed4c356..5a9e990 100644 --- a/sources/plugins/image/lang/hu.js +++ b/sources/plugins/image/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'hu', { diff --git a/sources/plugins/image/lang/id.js b/sources/plugins/image/lang/id.js index 68ccd52..8d27ad6 100644 --- a/sources/plugins/image/lang/id.js +++ b/sources/plugins/image/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'id', { diff --git a/sources/plugins/image/lang/is.js b/sources/plugins/image/lang/is.js index f55c69c..fc02308 100644 --- a/sources/plugins/image/lang/is.js +++ b/sources/plugins/image/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'is', { diff --git a/sources/plugins/image/lang/it.js b/sources/plugins/image/lang/it.js index 3aeb017..7b066ca 100644 --- a/sources/plugins/image/lang/it.js +++ b/sources/plugins/image/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'it', { diff --git a/sources/plugins/image/lang/ja.js b/sources/plugins/image/lang/ja.js index 86d54c8..a2d500c 100644 --- a/sources/plugins/image/lang/ja.js +++ b/sources/plugins/image/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ja', { diff --git a/sources/plugins/image/lang/ka.js b/sources/plugins/image/lang/ka.js index fe0f8f4..0a634f0 100644 --- a/sources/plugins/image/lang/ka.js +++ b/sources/plugins/image/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ka', { diff --git a/sources/plugins/image/lang/km.js b/sources/plugins/image/lang/km.js index f3236ee..d60562a 100644 --- a/sources/plugins/image/lang/km.js +++ b/sources/plugins/image/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'km', { diff --git a/sources/plugins/image/lang/ko.js b/sources/plugins/image/lang/ko.js index 30e7e45..75e5252 100644 --- a/sources/plugins/image/lang/ko.js +++ b/sources/plugins/image/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ko', { diff --git a/sources/plugins/image/lang/ku.js b/sources/plugins/image/lang/ku.js index 9a8678a..2b70145 100644 --- a/sources/plugins/image/lang/ku.js +++ b/sources/plugins/image/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ku', { diff --git a/sources/plugins/image/lang/lt.js b/sources/plugins/image/lang/lt.js index 0261413..2343934 100644 --- a/sources/plugins/image/lang/lt.js +++ b/sources/plugins/image/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'lt', { diff --git a/sources/plugins/image/lang/lv.js b/sources/plugins/image/lang/lv.js index f4e6aef..cf20166 100644 --- a/sources/plugins/image/lang/lv.js +++ b/sources/plugins/image/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'lv', { diff --git a/sources/plugins/image/lang/mk.js b/sources/plugins/image/lang/mk.js index 062f94f..9dd01cc 100644 --- a/sources/plugins/image/lang/mk.js +++ b/sources/plugins/image/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'mk', { diff --git a/sources/plugins/image/lang/mn.js b/sources/plugins/image/lang/mn.js index 7923ec6..4daf38a 100644 --- a/sources/plugins/image/lang/mn.js +++ b/sources/plugins/image/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'mn', { diff --git a/sources/plugins/image/lang/ms.js b/sources/plugins/image/lang/ms.js index 98adf09..28511d0 100644 --- a/sources/plugins/image/lang/ms.js +++ b/sources/plugins/image/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ms', { diff --git a/sources/plugins/image/lang/nb.js b/sources/plugins/image/lang/nb.js index ac94f30..87208af 100644 --- a/sources/plugins/image/lang/nb.js +++ b/sources/plugins/image/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'nb', { diff --git a/sources/plugins/image/lang/nl.js b/sources/plugins/image/lang/nl.js index 8755503..bbe4943 100644 --- a/sources/plugins/image/lang/nl.js +++ b/sources/plugins/image/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'nl', { diff --git a/sources/plugins/image/lang/no.js b/sources/plugins/image/lang/no.js index 5f220cb..9d4898a 100644 --- a/sources/plugins/image/lang/no.js +++ b/sources/plugins/image/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'no', { diff --git a/sources/plugins/image/lang/oc.js b/sources/plugins/image/lang/oc.js new file mode 100644 index 0000000..fa595c6 --- /dev/null +++ b/sources/plugins/image/lang/oc.js @@ -0,0 +1,25 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'image', 'oc', { + alt: 'Tèxte alternatiu', + border: 'Bordadura', + btnUpload: 'Mandar sul servidor', + button2Img: 'Volètz transformar lo boton amb imatge seleccionat en imatge simple ?', + hSpace: 'Espaçament orizontal', + img2Button: 'Volètz transformar l\'imatge seleccionat en boton amb imatge ?', + infoTab: 'Informacions sus l\'imatge', + linkTab: 'Ligam', + lockRatio: 'Conservar las proporcions', + menu: 'Proprietats de l\'imatge', + resetSize: 'Reïnicializar la talha', + title: 'Proprietats de l\'imatge', + titleButton: 'Proprietats del boton amb imatge', + upload: 'Mandar', + urlMissing: 'L\'URL font de l\'imatge es mancanta.', + vSpace: 'Espaçament vertical', + validateBorder: 'La bordadura deu èsser un nombre entièr.', + validateHSpace: 'L\'espaçament orizontal deu èsser un nombre entièr.', + validateVSpace: 'L\'espaçament vertical deu èsser un nombre entièr.' +} ); diff --git a/sources/plugins/image/lang/pl.js b/sources/plugins/image/lang/pl.js index ba55b74..93afb85 100644 --- a/sources/plugins/image/lang/pl.js +++ b/sources/plugins/image/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'pl', { diff --git a/sources/plugins/image/lang/pt-br.js b/sources/plugins/image/lang/pt-br.js index 8ac3753..0d13a9a 100644 --- a/sources/plugins/image/lang/pt-br.js +++ b/sources/plugins/image/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'pt-br', { diff --git a/sources/plugins/image/lang/pt.js b/sources/plugins/image/lang/pt.js index c152d81..729c48e 100644 --- a/sources/plugins/image/lang/pt.js +++ b/sources/plugins/image/lang/pt.js @@ -1,25 +1,25 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'pt', { - alt: 'Texto Alternativo', + alt: 'Texto alternativo', border: 'Limite', btnUpload: 'Enviar para o servidor', - button2Img: 'Deseja transformar o botão com imagem selecionado em uma imagem?', - hSpace: 'Esp.Horiz', - img2Button: 'Deseja transformar a imagem selecionada em um botão com imagem?', - infoTab: 'Informação da Imagem', + button2Img: 'Deseja transformar o botão com imagem selecionado numa imagem simples?', + hSpace: 'Esp. Horiz', + img2Button: 'Deseja transformar a imagem selecionada num botão com imagem?', + infoTab: 'Informação da imagem', linkTab: 'Hiperligação', lockRatio: 'Proporcional', menu: 'Propriedades da Imagem', - resetSize: 'Tamanho Original', - title: 'Propriedades da Imagem', - titleButton: 'Propriedades do Botão de imagens', + resetSize: 'Tamanho original', + title: 'Propriedades da imagem', + titleButton: 'Propriedades do botão de imagem', upload: 'Carregar', - urlMissing: 'O URL da fonte da imagem está em falta.', - vSpace: 'Esp.Vert', - validateBorder: 'A borda tem de ser um numero.', + urlMissing: 'O URL de origem da imagem está em falta.', + vSpace: 'Esp. Vert', + validateBorder: 'A borda tem de ser um número inteiro.', validateHSpace: 'HSpace tem de ser um numero.', validateVSpace: 'VSpace tem de ser um numero.' } ); diff --git a/sources/plugins/image/lang/ro.js b/sources/plugins/image/lang/ro.js index c45929a..067dee2 100644 --- a/sources/plugins/image/lang/ro.js +++ b/sources/plugins/image/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ro', { diff --git a/sources/plugins/image/lang/ru.js b/sources/plugins/image/lang/ru.js index 1ea84d2..cb937c9 100644 --- a/sources/plugins/image/lang/ru.js +++ b/sources/plugins/image/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ru', { diff --git a/sources/plugins/image/lang/si.js b/sources/plugins/image/lang/si.js index 7a15196..84cbace 100644 --- a/sources/plugins/image/lang/si.js +++ b/sources/plugins/image/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'si', { diff --git a/sources/plugins/image/lang/sk.js b/sources/plugins/image/lang/sk.js index 1384f6b..38bc38a 100644 --- a/sources/plugins/image/lang/sk.js +++ b/sources/plugins/image/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'sk', { diff --git a/sources/plugins/image/lang/sl.js b/sources/plugins/image/lang/sl.js index 4c7ba8f..29c440f 100644 --- a/sources/plugins/image/lang/sl.js +++ b/sources/plugins/image/lang/sl.js @@ -1,14 +1,14 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'sl', { alt: 'Nadomestno besedilo', border: 'Obroba', btnUpload: 'Pošlji na strežnik', - button2Img: 'Želiš pretvoriti izbrani gumb s sliko v preprosto sliko?', - hSpace: 'Vodoravni razmik', - img2Button: 'Želiš pretvoriti izbrano sliko v gumb s sliko?', + button2Img: 'Želite pretvoriti izbrani gumb s sliko v preprosto sliko?', + hSpace: 'Vodoravni odmik', + img2Button: 'Želite pretvoriti izbrano sliko v gumb s sliko?', infoTab: 'Podatki o sliki', linkTab: 'Povezava', lockRatio: 'Zakleni razmerje', @@ -16,10 +16,10 @@ CKEDITOR.plugins.setLang( 'image', 'sl', { resetSize: 'Ponastavi velikost', title: 'Lastnosti slike', titleButton: 'Lastnosti gumba s sliko', - upload: 'Pošlji', - urlMissing: 'Manjka vir (URL) slike.', - vSpace: 'Navpični razmik', + upload: 'Naloži', + urlMissing: 'Manjka URL vira slike.', + vSpace: 'Navpični odmik', validateBorder: 'Meja mora biti celo število.', - validateHSpace: 'HSpace mora biti celo število.', + validateHSpace: 'Vodoravni odmik mora biti celo število.', validateVSpace: 'VSpace mora biti celo število.' } ); diff --git a/sources/plugins/image/lang/sq.js b/sources/plugins/image/lang/sq.js index a851819..072a96d 100644 --- a/sources/plugins/image/lang/sq.js +++ b/sources/plugins/image/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'sq', { diff --git a/sources/plugins/image/lang/sr-latn.js b/sources/plugins/image/lang/sr-latn.js index 25c39c3..b3c2a98 100644 --- a/sources/plugins/image/lang/sr-latn.js +++ b/sources/plugins/image/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'sr-latn', { diff --git a/sources/plugins/image/lang/sr.js b/sources/plugins/image/lang/sr.js index 25b44c5..4a269d9 100644 --- a/sources/plugins/image/lang/sr.js +++ b/sources/plugins/image/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'sr', { diff --git a/sources/plugins/image/lang/sv.js b/sources/plugins/image/lang/sv.js index bc11f09..db07c37 100644 --- a/sources/plugins/image/lang/sv.js +++ b/sources/plugins/image/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'sv', { diff --git a/sources/plugins/image/lang/th.js b/sources/plugins/image/lang/th.js index f9f8023..0d33bb3 100644 --- a/sources/plugins/image/lang/th.js +++ b/sources/plugins/image/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'th', { diff --git a/sources/plugins/image/lang/tr.js b/sources/plugins/image/lang/tr.js index 5a668f2..2f707a1 100644 --- a/sources/plugins/image/lang/tr.js +++ b/sources/plugins/image/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'tr', { diff --git a/sources/plugins/image/lang/tt.js b/sources/plugins/image/lang/tt.js index 8daf0af..e659066 100644 --- a/sources/plugins/image/lang/tt.js +++ b/sources/plugins/image/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'tt', { diff --git a/sources/plugins/image/lang/ug.js b/sources/plugins/image/lang/ug.js index 70382ec..d2a28ef 100644 --- a/sources/plugins/image/lang/ug.js +++ b/sources/plugins/image/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'ug', { diff --git a/sources/plugins/image/lang/uk.js b/sources/plugins/image/lang/uk.js index c32c230..ace2eea 100644 --- a/sources/plugins/image/lang/uk.js +++ b/sources/plugins/image/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'uk', { diff --git a/sources/plugins/image/lang/vi.js b/sources/plugins/image/lang/vi.js index 70d7578..4c33fd5 100644 --- a/sources/plugins/image/lang/vi.js +++ b/sources/plugins/image/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'vi', { diff --git a/sources/plugins/image/lang/zh-cn.js b/sources/plugins/image/lang/zh-cn.js index 651468f..287a362 100644 --- a/sources/plugins/image/lang/zh-cn.js +++ b/sources/plugins/image/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'zh-cn', { diff --git a/sources/plugins/image/lang/zh.js b/sources/plugins/image/lang/zh.js index 0859d26..920b554 100644 --- a/sources/plugins/image/lang/zh.js +++ b/sources/plugins/image/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'image', 'zh', { diff --git a/sources/plugins/image/plugin.js b/sources/plugins/image/plugin.js index 8bed8ec..507ce0a 100644 --- a/sources/plugins/image/plugin.js +++ b/sources/plugins/image/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -12,13 +12,13 @@ CKEDITOR.plugins.add( 'image', { requires: 'dialog', // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'image', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% init: function( editor ) { // Abort when Image2 is to be loaded since both plugins - // share the same button, command, etc. names (#11222). + // share the same button, command, etc. names (http://dev.ckeditor.com/ticket/11222). if ( editor.plugins.image2 ) return; @@ -78,11 +78,11 @@ }, afterInit: function( editor ) { // Abort when Image2 is to be loaded since both plugins - // share the same button, command, etc. names (#11222). + // share the same button, command, etc. names (http://dev.ckeditor.com/ticket/11222). if ( editor.plugins.image2 ) return; - // Customize the behavior of the alignment commands. (#7430) + // Customize the behavior of the alignment commands. (http://dev.ckeditor.com/ticket/7430) setupAlignCommand( 'left' ); setupAlignCommand( 'right' ); setupAlignCommand( 'center' ); diff --git a/sources/plugins/indent/dev/indent.html b/sources/plugins/indent/dev/indent.html index 4ddab5a..8b935ae 100644 --- a/sources/plugins/indent/dev/indent.html +++ b/sources/plugins/indent/dev/indent.html @@ -1,6 +1,6 @@ diff --git a/sources/plugins/indent/icons/hidpi/indent-rtl.png b/sources/plugins/indent/icons/hidpi/indent-rtl.png index e14dc30..72bf567 100644 Binary files a/sources/plugins/indent/icons/hidpi/indent-rtl.png and b/sources/plugins/indent/icons/hidpi/indent-rtl.png differ diff --git a/sources/plugins/indent/icons/hidpi/indent.png b/sources/plugins/indent/icons/hidpi/indent.png index c629bb4..6381b23 100644 Binary files a/sources/plugins/indent/icons/hidpi/indent.png and b/sources/plugins/indent/icons/hidpi/indent.png differ diff --git a/sources/plugins/indent/icons/hidpi/outdent-rtl.png b/sources/plugins/indent/icons/hidpi/outdent-rtl.png index 35f69ab..441e204 100644 Binary files a/sources/plugins/indent/icons/hidpi/outdent-rtl.png and b/sources/plugins/indent/icons/hidpi/outdent-rtl.png differ diff --git a/sources/plugins/indent/icons/hidpi/outdent.png b/sources/plugins/indent/icons/hidpi/outdent.png index b00179e..8fa4e5e 100644 Binary files a/sources/plugins/indent/icons/hidpi/outdent.png and b/sources/plugins/indent/icons/hidpi/outdent.png differ diff --git a/sources/plugins/indent/icons/indent-rtl.png b/sources/plugins/indent/icons/indent-rtl.png index ff3fd22..0327578 100644 Binary files a/sources/plugins/indent/icons/indent-rtl.png and b/sources/plugins/indent/icons/indent-rtl.png differ diff --git a/sources/plugins/indent/icons/indent.png b/sources/plugins/indent/icons/indent.png index 3e151bc..0a5d293 100644 Binary files a/sources/plugins/indent/icons/indent.png and b/sources/plugins/indent/icons/indent.png differ diff --git a/sources/plugins/indent/icons/outdent-rtl.png b/sources/plugins/indent/icons/outdent-rtl.png index 7165424..ce9ce08 100644 Binary files a/sources/plugins/indent/icons/outdent-rtl.png and b/sources/plugins/indent/icons/outdent-rtl.png differ diff --git a/sources/plugins/indent/icons/outdent.png b/sources/plugins/indent/icons/outdent.png index 54f205d..351f05d 100644 Binary files a/sources/plugins/indent/icons/outdent.png and b/sources/plugins/indent/icons/outdent.png differ diff --git a/sources/plugins/indent/lang/af.js b/sources/plugins/indent/lang/af.js index 416b241..14fff63 100644 --- a/sources/plugins/indent/lang/af.js +++ b/sources/plugins/indent/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'af', { diff --git a/sources/plugins/indent/lang/ar.js b/sources/plugins/indent/lang/ar.js index 13458a6..fe078cb 100644 --- a/sources/plugins/indent/lang/ar.js +++ b/sources/plugins/indent/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ar', { diff --git a/sources/plugins/indent/lang/az.js b/sources/plugins/indent/lang/az.js new file mode 100644 index 0000000..389d1d9 --- /dev/null +++ b/sources/plugins/indent/lang/az.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'indent', 'az', { + indent: 'Sol boşluqu artır', + outdent: 'Sol boşluqu azalt' +} ); diff --git a/sources/plugins/indent/lang/bg.js b/sources/plugins/indent/lang/bg.js index 5c6c994..f4e0163 100644 --- a/sources/plugins/indent/lang/bg.js +++ b/sources/plugins/indent/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'bg', { diff --git a/sources/plugins/indent/lang/bn.js b/sources/plugins/indent/lang/bn.js index 11a428e..88a3393 100644 --- a/sources/plugins/indent/lang/bn.js +++ b/sources/plugins/indent/lang/bn.js @@ -1,8 +1,8 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'bn', { - indent: 'ইনডেন্ট বাড়াও', + indent: 'ইনডেন্ট বাড়াই', outdent: 'ইনডেন্ট কমাও' } ); diff --git a/sources/plugins/indent/lang/bs.js b/sources/plugins/indent/lang/bs.js index fcf1cc2..62df508 100644 --- a/sources/plugins/indent/lang/bs.js +++ b/sources/plugins/indent/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'bs', { diff --git a/sources/plugins/indent/lang/ca.js b/sources/plugins/indent/lang/ca.js index 2ee7ad4..38f299a 100644 --- a/sources/plugins/indent/lang/ca.js +++ b/sources/plugins/indent/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ca', { diff --git a/sources/plugins/indent/lang/cs.js b/sources/plugins/indent/lang/cs.js index 3e5ed77..854aac8 100644 --- a/sources/plugins/indent/lang/cs.js +++ b/sources/plugins/indent/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'cs', { diff --git a/sources/plugins/indent/lang/cy.js b/sources/plugins/indent/lang/cy.js index 3380d70..d1df873 100644 --- a/sources/plugins/indent/lang/cy.js +++ b/sources/plugins/indent/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'cy', { diff --git a/sources/plugins/indent/lang/da.js b/sources/plugins/indent/lang/da.js index 0f18d9a..27e5731 100644 --- a/sources/plugins/indent/lang/da.js +++ b/sources/plugins/indent/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'da', { diff --git a/sources/plugins/indent/lang/de-ch.js b/sources/plugins/indent/lang/de-ch.js index ae8010b..0696275 100644 --- a/sources/plugins/indent/lang/de-ch.js +++ b/sources/plugins/indent/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'de-ch', { diff --git a/sources/plugins/indent/lang/de.js b/sources/plugins/indent/lang/de.js index be211af..3f7a53c 100644 --- a/sources/plugins/indent/lang/de.js +++ b/sources/plugins/indent/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'de', { diff --git a/sources/plugins/indent/lang/el.js b/sources/plugins/indent/lang/el.js index e6df50c..57ac0f5 100644 --- a/sources/plugins/indent/lang/el.js +++ b/sources/plugins/indent/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'el', { diff --git a/sources/plugins/indent/lang/en-au.js b/sources/plugins/indent/lang/en-au.js index 26049a1..6fd80ea 100644 --- a/sources/plugins/indent/lang/en-au.js +++ b/sources/plugins/indent/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'en-au', { diff --git a/sources/plugins/indent/lang/en-ca.js b/sources/plugins/indent/lang/en-ca.js index cf67c87..b103510 100644 --- a/sources/plugins/indent/lang/en-ca.js +++ b/sources/plugins/indent/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'en-ca', { diff --git a/sources/plugins/indent/lang/en-gb.js b/sources/plugins/indent/lang/en-gb.js index dd746c1..0d2edf3 100644 --- a/sources/plugins/indent/lang/en-gb.js +++ b/sources/plugins/indent/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'en-gb', { diff --git a/sources/plugins/indent/lang/en.js b/sources/plugins/indent/lang/en.js index c3b968b..c5dba75 100644 --- a/sources/plugins/indent/lang/en.js +++ b/sources/plugins/indent/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'en', { diff --git a/sources/plugins/indent/lang/eo.js b/sources/plugins/indent/lang/eo.js index 5955684..eb8b8ea 100644 --- a/sources/plugins/indent/lang/eo.js +++ b/sources/plugins/indent/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'eo', { diff --git a/sources/plugins/indent/lang/es-mx.js b/sources/plugins/indent/lang/es-mx.js new file mode 100644 index 0000000..8a6e549 --- /dev/null +++ b/sources/plugins/indent/lang/es-mx.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'indent', 'es-mx', { + indent: 'Incrementar sangría', + outdent: 'Decrementar sangría' +} ); diff --git a/sources/plugins/indent/lang/es.js b/sources/plugins/indent/lang/es.js index 277d048..d7b01c6 100644 --- a/sources/plugins/indent/lang/es.js +++ b/sources/plugins/indent/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'es', { diff --git a/sources/plugins/indent/lang/et.js b/sources/plugins/indent/lang/et.js index aae3755..ce10b13 100644 --- a/sources/plugins/indent/lang/et.js +++ b/sources/plugins/indent/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'et', { diff --git a/sources/plugins/indent/lang/eu.js b/sources/plugins/indent/lang/eu.js index 8e9a551..7934a48 100644 --- a/sources/plugins/indent/lang/eu.js +++ b/sources/plugins/indent/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'eu', { diff --git a/sources/plugins/indent/lang/fa.js b/sources/plugins/indent/lang/fa.js index b17ce97..932734a 100644 --- a/sources/plugins/indent/lang/fa.js +++ b/sources/plugins/indent/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'fa', { diff --git a/sources/plugins/indent/lang/fi.js b/sources/plugins/indent/lang/fi.js index 068452c..c6a5b21 100644 --- a/sources/plugins/indent/lang/fi.js +++ b/sources/plugins/indent/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'fi', { diff --git a/sources/plugins/indent/lang/fo.js b/sources/plugins/indent/lang/fo.js index 1763927..f6e6671 100644 --- a/sources/plugins/indent/lang/fo.js +++ b/sources/plugins/indent/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'fo', { diff --git a/sources/plugins/indent/lang/fr-ca.js b/sources/plugins/indent/lang/fr-ca.js index 029e878..74bbed5 100644 --- a/sources/plugins/indent/lang/fr-ca.js +++ b/sources/plugins/indent/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'fr-ca', { diff --git a/sources/plugins/indent/lang/fr.js b/sources/plugins/indent/lang/fr.js index c0ad5fe..0fb1347 100644 --- a/sources/plugins/indent/lang/fr.js +++ b/sources/plugins/indent/lang/fr.js @@ -1,8 +1,8 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'fr', { - indent: 'Augmenter le retrait (tabulation)', - outdent: 'Diminuer le retrait (tabulation)' + indent: 'Augmenter le retrait', + outdent: 'Diminuer le retrait' } ); diff --git a/sources/plugins/indent/lang/gl.js b/sources/plugins/indent/lang/gl.js index 3d4a3af..832b0ad 100644 --- a/sources/plugins/indent/lang/gl.js +++ b/sources/plugins/indent/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'gl', { diff --git a/sources/plugins/indent/lang/gu.js b/sources/plugins/indent/lang/gu.js index 84f02c0..e69a3ce 100644 --- a/sources/plugins/indent/lang/gu.js +++ b/sources/plugins/indent/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'gu', { diff --git a/sources/plugins/indent/lang/he.js b/sources/plugins/indent/lang/he.js index 26a6626..6fa5ed7 100644 --- a/sources/plugins/indent/lang/he.js +++ b/sources/plugins/indent/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'he', { diff --git a/sources/plugins/indent/lang/hi.js b/sources/plugins/indent/lang/hi.js index a532d64..a3c39d8 100644 --- a/sources/plugins/indent/lang/hi.js +++ b/sources/plugins/indent/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'hi', { diff --git a/sources/plugins/indent/lang/hr.js b/sources/plugins/indent/lang/hr.js index b4c0764..dfa90d4 100644 --- a/sources/plugins/indent/lang/hr.js +++ b/sources/plugins/indent/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'hr', { diff --git a/sources/plugins/indent/lang/hu.js b/sources/plugins/indent/lang/hu.js index b8f780d..22cd8e0 100644 --- a/sources/plugins/indent/lang/hu.js +++ b/sources/plugins/indent/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'hu', { diff --git a/sources/plugins/indent/lang/id.js b/sources/plugins/indent/lang/id.js index 7bb5efb..2c66b70 100644 --- a/sources/plugins/indent/lang/id.js +++ b/sources/plugins/indent/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'id', { diff --git a/sources/plugins/indent/lang/is.js b/sources/plugins/indent/lang/is.js index 9ced9f4..71f80b1 100644 --- a/sources/plugins/indent/lang/is.js +++ b/sources/plugins/indent/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'is', { diff --git a/sources/plugins/indent/lang/it.js b/sources/plugins/indent/lang/it.js index aaffe67..36e0922 100644 --- a/sources/plugins/indent/lang/it.js +++ b/sources/plugins/indent/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'it', { diff --git a/sources/plugins/indent/lang/ja.js b/sources/plugins/indent/lang/ja.js index 0ac03e9..838f4cb 100644 --- a/sources/plugins/indent/lang/ja.js +++ b/sources/plugins/indent/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ja', { diff --git a/sources/plugins/indent/lang/ka.js b/sources/plugins/indent/lang/ka.js index 9e95b2a..a0ce0e8 100644 --- a/sources/plugins/indent/lang/ka.js +++ b/sources/plugins/indent/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ka', { diff --git a/sources/plugins/indent/lang/km.js b/sources/plugins/indent/lang/km.js index 11feba1..514fba2 100644 --- a/sources/plugins/indent/lang/km.js +++ b/sources/plugins/indent/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'km', { diff --git a/sources/plugins/indent/lang/ko.js b/sources/plugins/indent/lang/ko.js index 847528a..c77afbd 100644 --- a/sources/plugins/indent/lang/ko.js +++ b/sources/plugins/indent/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ko', { diff --git a/sources/plugins/indent/lang/ku.js b/sources/plugins/indent/lang/ku.js index d373698..728bfe3 100644 --- a/sources/plugins/indent/lang/ku.js +++ b/sources/plugins/indent/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ku', { diff --git a/sources/plugins/indent/lang/lt.js b/sources/plugins/indent/lang/lt.js index 7677587..4458598 100644 --- a/sources/plugins/indent/lang/lt.js +++ b/sources/plugins/indent/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'lt', { diff --git a/sources/plugins/indent/lang/lv.js b/sources/plugins/indent/lang/lv.js index 348b5ec..74d36a4 100644 --- a/sources/plugins/indent/lang/lv.js +++ b/sources/plugins/indent/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'lv', { diff --git a/sources/plugins/indent/lang/mk.js b/sources/plugins/indent/lang/mk.js index f4071a0..440995e 100644 --- a/sources/plugins/indent/lang/mk.js +++ b/sources/plugins/indent/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'mk', { diff --git a/sources/plugins/indent/lang/mn.js b/sources/plugins/indent/lang/mn.js index f1f1790..d9c74ba 100644 --- a/sources/plugins/indent/lang/mn.js +++ b/sources/plugins/indent/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'mn', { diff --git a/sources/plugins/indent/lang/ms.js b/sources/plugins/indent/lang/ms.js index 6b633fe..5fd53e2 100644 --- a/sources/plugins/indent/lang/ms.js +++ b/sources/plugins/indent/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ms', { diff --git a/sources/plugins/indent/lang/nb.js b/sources/plugins/indent/lang/nb.js index 83cec71..e69a947 100644 --- a/sources/plugins/indent/lang/nb.js +++ b/sources/plugins/indent/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'nb', { diff --git a/sources/plugins/indent/lang/nl.js b/sources/plugins/indent/lang/nl.js index 9897f73..8979f8f 100644 --- a/sources/plugins/indent/lang/nl.js +++ b/sources/plugins/indent/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'nl', { diff --git a/sources/plugins/indent/lang/no.js b/sources/plugins/indent/lang/no.js index 1ef07dd..a01c1bb 100644 --- a/sources/plugins/indent/lang/no.js +++ b/sources/plugins/indent/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'no', { diff --git a/sources/plugins/indent/lang/oc.js b/sources/plugins/indent/lang/oc.js new file mode 100644 index 0000000..00e9cf9 --- /dev/null +++ b/sources/plugins/indent/lang/oc.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'indent', 'oc', { + indent: 'Aumentar l\'alinèa', + outdent: 'Dmesir l\'alinèa' +} ); diff --git a/sources/plugins/indent/lang/pl.js b/sources/plugins/indent/lang/pl.js index 3fc7978..ef78a2e 100644 --- a/sources/plugins/indent/lang/pl.js +++ b/sources/plugins/indent/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'pl', { diff --git a/sources/plugins/indent/lang/pt-br.js b/sources/plugins/indent/lang/pt-br.js index 0a02f0b..45ae5e6 100644 --- a/sources/plugins/indent/lang/pt-br.js +++ b/sources/plugins/indent/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'pt-br', { diff --git a/sources/plugins/indent/lang/pt.js b/sources/plugins/indent/lang/pt.js index 1424b11..6d26cb2 100644 --- a/sources/plugins/indent/lang/pt.js +++ b/sources/plugins/indent/lang/pt.js @@ -1,8 +1,8 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'pt', { - indent: 'Aumentar Avanço', - outdent: 'Diminuir Avanço' + indent: 'Aumentar avanço', + outdent: 'Diminuir avanço' } ); diff --git a/sources/plugins/indent/lang/ro.js b/sources/plugins/indent/lang/ro.js index 51155b6..708b09d 100644 --- a/sources/plugins/indent/lang/ro.js +++ b/sources/plugins/indent/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ro', { diff --git a/sources/plugins/indent/lang/ru.js b/sources/plugins/indent/lang/ru.js index 4baa294..aa21b7a 100644 --- a/sources/plugins/indent/lang/ru.js +++ b/sources/plugins/indent/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ru', { diff --git a/sources/plugins/indent/lang/si.js b/sources/plugins/indent/lang/si.js index 1d38458..98b8dd3 100644 --- a/sources/plugins/indent/lang/si.js +++ b/sources/plugins/indent/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'si', { diff --git a/sources/plugins/indent/lang/sk.js b/sources/plugins/indent/lang/sk.js index f50d6d7..3135f4f 100644 --- a/sources/plugins/indent/lang/sk.js +++ b/sources/plugins/indent/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'sk', { diff --git a/sources/plugins/indent/lang/sl.js b/sources/plugins/indent/lang/sl.js index 0a81f97..15be2f7 100644 --- a/sources/plugins/indent/lang/sl.js +++ b/sources/plugins/indent/lang/sl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'sl', { diff --git a/sources/plugins/indent/lang/sq.js b/sources/plugins/indent/lang/sq.js index 85c4795..9a2dd63 100644 --- a/sources/plugins/indent/lang/sq.js +++ b/sources/plugins/indent/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'sq', { diff --git a/sources/plugins/indent/lang/sr-latn.js b/sources/plugins/indent/lang/sr-latn.js index d930020..ca5a140 100644 --- a/sources/plugins/indent/lang/sr-latn.js +++ b/sources/plugins/indent/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'sr-latn', { diff --git a/sources/plugins/indent/lang/sr.js b/sources/plugins/indent/lang/sr.js index d0077fb..f7498be 100644 --- a/sources/plugins/indent/lang/sr.js +++ b/sources/plugins/indent/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'sr', { diff --git a/sources/plugins/indent/lang/sv.js b/sources/plugins/indent/lang/sv.js index dd92d3a..46b0692 100644 --- a/sources/plugins/indent/lang/sv.js +++ b/sources/plugins/indent/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'sv', { diff --git a/sources/plugins/indent/lang/th.js b/sources/plugins/indent/lang/th.js index 2aebdad..2f60e53 100644 --- a/sources/plugins/indent/lang/th.js +++ b/sources/plugins/indent/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'th', { diff --git a/sources/plugins/indent/lang/tr.js b/sources/plugins/indent/lang/tr.js index 06a1910..21520b6 100644 --- a/sources/plugins/indent/lang/tr.js +++ b/sources/plugins/indent/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'tr', { diff --git a/sources/plugins/indent/lang/tt.js b/sources/plugins/indent/lang/tt.js index 79e6c27..604bbba 100644 --- a/sources/plugins/indent/lang/tt.js +++ b/sources/plugins/indent/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'tt', { diff --git a/sources/plugins/indent/lang/ug.js b/sources/plugins/indent/lang/ug.js index 7f881d2..6fec573 100644 --- a/sources/plugins/indent/lang/ug.js +++ b/sources/plugins/indent/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'ug', { diff --git a/sources/plugins/indent/lang/uk.js b/sources/plugins/indent/lang/uk.js index 4251ebe..c68ca96 100644 --- a/sources/plugins/indent/lang/uk.js +++ b/sources/plugins/indent/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'uk', { diff --git a/sources/plugins/indent/lang/vi.js b/sources/plugins/indent/lang/vi.js index 0b56e84..7f44c5d 100644 --- a/sources/plugins/indent/lang/vi.js +++ b/sources/plugins/indent/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'vi', { diff --git a/sources/plugins/indent/lang/zh-cn.js b/sources/plugins/indent/lang/zh-cn.js index c06b21b..2c9c383 100644 --- a/sources/plugins/indent/lang/zh-cn.js +++ b/sources/plugins/indent/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'zh-cn', { diff --git a/sources/plugins/indent/lang/zh.js b/sources/plugins/indent/lang/zh.js index 1fe6e4e..ee681cb 100644 --- a/sources/plugins/indent/lang/zh.js +++ b/sources/plugins/indent/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'indent', 'zh', { diff --git a/sources/plugins/indent/plugin.js b/sources/plugins/indent/plugin.js index 32ac0c4..900e343 100644 --- a/sources/plugins/indent/plugin.js +++ b/sources/plugins/indent/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -15,7 +15,7 @@ CKEDITOR.plugins.add( 'indent', { // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'indent,indent-rtl,outdent,outdent-rtl', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% diff --git a/sources/plugins/indentblock/plugin.js b/sources/plugins/indentblock/plugin.js index 9d31b98..b39fd73 100644 --- a/sources/plugins/indentblock/plugin.js +++ b/sources/plugins/indentblock/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -39,6 +39,20 @@ } }; + this.contentTransformations = [ + [ 'div: splitMarginShorthand' ], + [ 'h1: splitMarginShorthand' ], + [ 'h2: splitMarginShorthand' ], + [ 'h3: splitMarginShorthand' ], + [ 'h4: splitMarginShorthand' ], + [ 'h5: splitMarginShorthand' ], + [ 'h6: splitMarginShorthand' ], + [ 'ol: splitMarginShorthand' ], + [ 'p: splitMarginShorthand' ], + [ 'pre: splitMarginShorthand' ], + [ 'ul: splitMarginShorthand' ] + ]; + if ( this.enterBr ) this.allowedContent.div = true; diff --git a/sources/plugins/indentlist/plugin.js b/sources/plugins/indentlist/plugin.js index 126af11..0ee30c0 100644 --- a/sources/plugins/indentlist/plugin.js +++ b/sources/plugins/indentlist/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -35,17 +35,24 @@ // Indent and outdent lists with TAB/SHIFT+TAB key. Indenting can // be done for any list item that isn't the first child of the parent. editor.on( 'key', function( evt ) { + var path = editor.elementPath(); + if ( editor.mode != 'wysiwyg' ) return; if ( evt.data.keyCode == this.indentKey ) { - var list = this.getContext( editor.elementPath() ); + // Prevent of getting context of empty path (#424)(https://dev.ckeditor.com/ticket/17028). + if ( !path ) { + return; + } + + var list = this.getContext( path ); if ( list ) { // Don't indent if in first list item of the parent. // Outdent, however, can always be done to collapse // the list into a paragraph (div). - if ( this.isIndent && CKEDITOR.plugins.indentList.firstItemInPath( this.context, editor.elementPath(), list ) ) + if ( this.isIndent && CKEDITOR.plugins.indentList.firstItemInPath( this.context, path, list ) ) return; // Exec related global indentation command. Global @@ -109,7 +116,8 @@ function indentList( editor ) { var that = this, database = this.database, - context = this.context; + context = this.context, + range; function indent( listNode ) { // Our starting and ending points of the range might be inside some blocks under a list item... @@ -164,7 +172,7 @@ for ( i = startItem.getCustomData( 'listarray_index' ); i <= lastItem.getCustomData( 'listarray_index' ); i++ ) { listArray[ i ].indent += indentOffset; - // Make sure the newly created sublist get a brand-new element of the same type. (#5372) + // Make sure the newly created sublist get a brand-new element of the same type. (http://dev.ckeditor.com/ticket/5372) if ( indentOffset > 0 ) { var listRoot = listArray[ i ].parent; listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() ); @@ -179,7 +187,7 @@ var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, listNode.getDirection() ); // Avoid nested
  • after outdent even they're visually same, - // recording them for later refactoring.(#3982) + // recording them for later refactoring.(http://dev.ckeditor.com/ticket/3982) if ( !that.isIndent ) { var parentLiElement; if ( ( parentLiElement = listNode.getParent() ) && parentLiElement.is( 'li' ) ) { @@ -207,7 +215,7 @@ // Nest preceding
      /
        inside current
      1. if any. while ( ( followingList = followingList.getNext() ) && followingList.is && followingList.getName() in context ) { // IE requires a filler NBSP for nested list inside empty list item, - // otherwise the list item will be inaccessiable. (#4476) + // otherwise the list item will be inaccessiable. (http://dev.ckeditor.com/ticket/4476) if ( CKEDITOR.env.needsNbspFiller && !li.getFirst( neitherWhitespacesNorBookmark ) ) li.append( range.document.createText( '\u00a0' ) ); @@ -226,14 +234,13 @@ var selection = editor.getSelection(), ranges = selection && selection.getRanges(), - iterator = ranges.createIterator(), - range; + iterator = ranges.createIterator(); while ( ( range = iterator.getNextRange() ) ) { var nearestListBlock = range.getCommonAncestor(); while ( nearestListBlock && !( nearestListBlock.type == CKEDITOR.NODE_ELEMENT && context[ nearestListBlock.getName() ] ) ) { - // Avoid having plugin propagate to parent of editor in inline mode by canceling the indentation. (#12796) + // Avoid having plugin propagate to parent of editor in inline mode by canceling the indentation. (http://dev.ckeditor.com/ticket/12796) if ( editor.editable().equals( nearestListBlock ) ) { nearestListBlock = false; break; @@ -248,7 +255,7 @@ range.setEndAt( nearestListBlock, CKEDITOR.POSITION_BEFORE_END ); } - // Avoid having selection enclose the entire list. (#6138) + // Avoid having selection enclose the entire list. (http://dev.ckeditor.com/ticket/6138) // [
        • ...
        ] =>
        • [...]
        if ( !nearestListBlock ) { var selectedNode = range.getEnclosedNode(); diff --git a/sources/plugins/justify/icons/hidpi/justifyblock.png b/sources/plugins/justify/icons/hidpi/justifyblock.png index 7209fd4..5c0cf43 100644 Binary files a/sources/plugins/justify/icons/hidpi/justifyblock.png and b/sources/plugins/justify/icons/hidpi/justifyblock.png differ diff --git a/sources/plugins/justify/icons/hidpi/justifycenter.png b/sources/plugins/justify/icons/hidpi/justifycenter.png index 365e320..fd751be 100644 Binary files a/sources/plugins/justify/icons/hidpi/justifycenter.png and b/sources/plugins/justify/icons/hidpi/justifycenter.png differ diff --git a/sources/plugins/justify/icons/hidpi/justifyleft.png b/sources/plugins/justify/icons/hidpi/justifyleft.png index 75308c1..a109ad3 100644 Binary files a/sources/plugins/justify/icons/hidpi/justifyleft.png and b/sources/plugins/justify/icons/hidpi/justifyleft.png differ diff --git a/sources/plugins/justify/icons/hidpi/justifyright.png b/sources/plugins/justify/icons/hidpi/justifyright.png index de7c3d4..5125d56 100644 Binary files a/sources/plugins/justify/icons/hidpi/justifyright.png and b/sources/plugins/justify/icons/hidpi/justifyright.png differ diff --git a/sources/plugins/justify/icons/justifyblock.png b/sources/plugins/justify/icons/justifyblock.png index a507be1..ffe0620 100644 Binary files a/sources/plugins/justify/icons/justifyblock.png and b/sources/plugins/justify/icons/justifyblock.png differ diff --git a/sources/plugins/justify/icons/justifycenter.png b/sources/plugins/justify/icons/justifycenter.png index f758bc4..8b5b40f 100644 Binary files a/sources/plugins/justify/icons/justifycenter.png and b/sources/plugins/justify/icons/justifycenter.png differ diff --git a/sources/plugins/justify/icons/justifyleft.png b/sources/plugins/justify/icons/justifyleft.png index 542ddee..a60d079 100644 Binary files a/sources/plugins/justify/icons/justifyleft.png and b/sources/plugins/justify/icons/justifyleft.png differ diff --git a/sources/plugins/justify/icons/justifyright.png b/sources/plugins/justify/icons/justifyright.png index 71a983c..21de814 100644 Binary files a/sources/plugins/justify/icons/justifyright.png and b/sources/plugins/justify/icons/justifyright.png differ diff --git a/sources/plugins/justify/lang/af.js b/sources/plugins/justify/lang/af.js index d9b468d..9f5c303 100644 --- a/sources/plugins/justify/lang/af.js +++ b/sources/plugins/justify/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'af', { diff --git a/sources/plugins/justify/lang/ar.js b/sources/plugins/justify/lang/ar.js index 4db5875..6c414be 100644 --- a/sources/plugins/justify/lang/ar.js +++ b/sources/plugins/justify/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ar', { diff --git a/sources/plugins/justify/lang/az.js b/sources/plugins/justify/lang/az.js new file mode 100644 index 0000000..9360568 --- /dev/null +++ b/sources/plugins/justify/lang/az.js @@ -0,0 +1,10 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'justify', 'az', { + block: 'Eninə görə', + center: 'Mərkəz', + left: 'Soldan düzləndir', + right: 'Sağdan düzləndir' +} ); diff --git a/sources/plugins/justify/lang/bg.js b/sources/plugins/justify/lang/bg.js index 7a2841c..1724947 100644 --- a/sources/plugins/justify/lang/bg.js +++ b/sources/plugins/justify/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'bg', { diff --git a/sources/plugins/justify/lang/bn.js b/sources/plugins/justify/lang/bn.js index 77d5827..002a633 100644 --- a/sources/plugins/justify/lang/bn.js +++ b/sources/plugins/justify/lang/bn.js @@ -1,9 +1,9 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'bn', { - block: 'ব্লক জাস্টিফাই', + block: 'যাচাই করি', center: 'মাঝ বরাবর ঘেষা', left: 'বা দিকে ঘেঁষা', right: 'ডান দিকে ঘেঁষা' diff --git a/sources/plugins/justify/lang/bs.js b/sources/plugins/justify/lang/bs.js index 1412437..0fbedfc 100644 --- a/sources/plugins/justify/lang/bs.js +++ b/sources/plugins/justify/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'bs', { diff --git a/sources/plugins/justify/lang/ca.js b/sources/plugins/justify/lang/ca.js index 02c3858..afb7adb 100644 --- a/sources/plugins/justify/lang/ca.js +++ b/sources/plugins/justify/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ca', { diff --git a/sources/plugins/justify/lang/cs.js b/sources/plugins/justify/lang/cs.js index d5f263f..467ae6f 100644 --- a/sources/plugins/justify/lang/cs.js +++ b/sources/plugins/justify/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'cs', { diff --git a/sources/plugins/justify/lang/cy.js b/sources/plugins/justify/lang/cy.js index 80883d1..6b39beb 100644 --- a/sources/plugins/justify/lang/cy.js +++ b/sources/plugins/justify/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'cy', { diff --git a/sources/plugins/justify/lang/da.js b/sources/plugins/justify/lang/da.js index e595639..ac8ee29 100644 --- a/sources/plugins/justify/lang/da.js +++ b/sources/plugins/justify/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'da', { diff --git a/sources/plugins/justify/lang/de-ch.js b/sources/plugins/justify/lang/de-ch.js index 36fc080..a2c24eb 100644 --- a/sources/plugins/justify/lang/de-ch.js +++ b/sources/plugins/justify/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'de-ch', { diff --git a/sources/plugins/justify/lang/de.js b/sources/plugins/justify/lang/de.js index dc45266..4db8725 100644 --- a/sources/plugins/justify/lang/de.js +++ b/sources/plugins/justify/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'de', { diff --git a/sources/plugins/justify/lang/el.js b/sources/plugins/justify/lang/el.js index 1d50fd2..1bdc64f 100644 --- a/sources/plugins/justify/lang/el.js +++ b/sources/plugins/justify/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'el', { diff --git a/sources/plugins/justify/lang/en-au.js b/sources/plugins/justify/lang/en-au.js index 53162fd..68eb09c 100644 --- a/sources/plugins/justify/lang/en-au.js +++ b/sources/plugins/justify/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'en-au', { diff --git a/sources/plugins/justify/lang/en-ca.js b/sources/plugins/justify/lang/en-ca.js index d64b9bf..27718a2 100644 --- a/sources/plugins/justify/lang/en-ca.js +++ b/sources/plugins/justify/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'en-ca', { diff --git a/sources/plugins/justify/lang/en-gb.js b/sources/plugins/justify/lang/en-gb.js index adb3b56..d6db4ff 100644 --- a/sources/plugins/justify/lang/en-gb.js +++ b/sources/plugins/justify/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'en-gb', { diff --git a/sources/plugins/justify/lang/en.js b/sources/plugins/justify/lang/en.js index acaaccb..8a72e85 100644 --- a/sources/plugins/justify/lang/en.js +++ b/sources/plugins/justify/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'en', { diff --git a/sources/plugins/justify/lang/eo.js b/sources/plugins/justify/lang/eo.js index f58b324..7531dde 100644 --- a/sources/plugins/justify/lang/eo.js +++ b/sources/plugins/justify/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'eo', { diff --git a/sources/plugins/justify/lang/es-mx.js b/sources/plugins/justify/lang/es-mx.js new file mode 100644 index 0000000..96443e0 --- /dev/null +++ b/sources/plugins/justify/lang/es-mx.js @@ -0,0 +1,10 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'justify', 'es-mx', { + block: 'Justificar', + center: 'Centrar', + left: 'Alinear a la izquierda', + right: 'Alinear a la derecha' +} ); diff --git a/sources/plugins/justify/lang/es.js b/sources/plugins/justify/lang/es.js index 23baf68..2e89bc0 100644 --- a/sources/plugins/justify/lang/es.js +++ b/sources/plugins/justify/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'es', { diff --git a/sources/plugins/justify/lang/et.js b/sources/plugins/justify/lang/et.js index 3226e87..0fc4915 100644 --- a/sources/plugins/justify/lang/et.js +++ b/sources/plugins/justify/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'et', { diff --git a/sources/plugins/justify/lang/eu.js b/sources/plugins/justify/lang/eu.js index dfcc507..f7d291e 100644 --- a/sources/plugins/justify/lang/eu.js +++ b/sources/plugins/justify/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'eu', { diff --git a/sources/plugins/justify/lang/fa.js b/sources/plugins/justify/lang/fa.js index ed6e14e..03c3c6b 100644 --- a/sources/plugins/justify/lang/fa.js +++ b/sources/plugins/justify/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'fa', { diff --git a/sources/plugins/justify/lang/fi.js b/sources/plugins/justify/lang/fi.js index 52ad58f..6993f10 100644 --- a/sources/plugins/justify/lang/fi.js +++ b/sources/plugins/justify/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'fi', { diff --git a/sources/plugins/justify/lang/fo.js b/sources/plugins/justify/lang/fo.js index 6705be4..f11a575 100644 --- a/sources/plugins/justify/lang/fo.js +++ b/sources/plugins/justify/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'fo', { diff --git a/sources/plugins/justify/lang/fr-ca.js b/sources/plugins/justify/lang/fr-ca.js index bb11f6e..8d59e5e 100644 --- a/sources/plugins/justify/lang/fr-ca.js +++ b/sources/plugins/justify/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'fr-ca', { diff --git a/sources/plugins/justify/lang/fr.js b/sources/plugins/justify/lang/fr.js index 348771c..e44df52 100644 --- a/sources/plugins/justify/lang/fr.js +++ b/sources/plugins/justify/lang/fr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'fr', { diff --git a/sources/plugins/justify/lang/gl.js b/sources/plugins/justify/lang/gl.js index 0fdd269..1995e8c 100644 --- a/sources/plugins/justify/lang/gl.js +++ b/sources/plugins/justify/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'gl', { diff --git a/sources/plugins/justify/lang/gu.js b/sources/plugins/justify/lang/gu.js index a59efa7..d491684 100644 --- a/sources/plugins/justify/lang/gu.js +++ b/sources/plugins/justify/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'gu', { diff --git a/sources/plugins/justify/lang/he.js b/sources/plugins/justify/lang/he.js index 92e7c9c..ab5c759 100644 --- a/sources/plugins/justify/lang/he.js +++ b/sources/plugins/justify/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'he', { diff --git a/sources/plugins/justify/lang/hi.js b/sources/plugins/justify/lang/hi.js index 4606e3d..6a4fae8 100644 --- a/sources/plugins/justify/lang/hi.js +++ b/sources/plugins/justify/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'hi', { diff --git a/sources/plugins/justify/lang/hr.js b/sources/plugins/justify/lang/hr.js index 79282d9..852c686 100644 --- a/sources/plugins/justify/lang/hr.js +++ b/sources/plugins/justify/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'hr', { diff --git a/sources/plugins/justify/lang/hu.js b/sources/plugins/justify/lang/hu.js index 0aaff0f..c7b8dad 100644 --- a/sources/plugins/justify/lang/hu.js +++ b/sources/plugins/justify/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'hu', { diff --git a/sources/plugins/justify/lang/id.js b/sources/plugins/justify/lang/id.js index 297ae8e..d67247c 100644 --- a/sources/plugins/justify/lang/id.js +++ b/sources/plugins/justify/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'id', { diff --git a/sources/plugins/justify/lang/is.js b/sources/plugins/justify/lang/is.js index c2f6ad4..d01a43a 100644 --- a/sources/plugins/justify/lang/is.js +++ b/sources/plugins/justify/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'is', { diff --git a/sources/plugins/justify/lang/it.js b/sources/plugins/justify/lang/it.js index 10fc772..fd4ae51 100644 --- a/sources/plugins/justify/lang/it.js +++ b/sources/plugins/justify/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'it', { diff --git a/sources/plugins/justify/lang/ja.js b/sources/plugins/justify/lang/ja.js index 5665a8b..6c71c86 100644 --- a/sources/plugins/justify/lang/ja.js +++ b/sources/plugins/justify/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ja', { diff --git a/sources/plugins/justify/lang/ka.js b/sources/plugins/justify/lang/ka.js index b80d2ef..4ba0bcb 100644 --- a/sources/plugins/justify/lang/ka.js +++ b/sources/plugins/justify/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ka', { diff --git a/sources/plugins/justify/lang/km.js b/sources/plugins/justify/lang/km.js index 6161873..a7546c3 100644 --- a/sources/plugins/justify/lang/km.js +++ b/sources/plugins/justify/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'km', { diff --git a/sources/plugins/justify/lang/ko.js b/sources/plugins/justify/lang/ko.js index 13c155c..346405d 100644 --- a/sources/plugins/justify/lang/ko.js +++ b/sources/plugins/justify/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ko', { diff --git a/sources/plugins/justify/lang/ku.js b/sources/plugins/justify/lang/ku.js index 794b588..24ed914 100644 --- a/sources/plugins/justify/lang/ku.js +++ b/sources/plugins/justify/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ku', { diff --git a/sources/plugins/justify/lang/lt.js b/sources/plugins/justify/lang/lt.js index 1b373fd..08202cb 100644 --- a/sources/plugins/justify/lang/lt.js +++ b/sources/plugins/justify/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'lt', { diff --git a/sources/plugins/justify/lang/lv.js b/sources/plugins/justify/lang/lv.js index e20fe95..8c729c9 100644 --- a/sources/plugins/justify/lang/lv.js +++ b/sources/plugins/justify/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'lv', { diff --git a/sources/plugins/justify/lang/mk.js b/sources/plugins/justify/lang/mk.js index eb9d847..f45fb19 100644 --- a/sources/plugins/justify/lang/mk.js +++ b/sources/plugins/justify/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'mk', { diff --git a/sources/plugins/justify/lang/mn.js b/sources/plugins/justify/lang/mn.js index ff904dd..850e474 100644 --- a/sources/plugins/justify/lang/mn.js +++ b/sources/plugins/justify/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'mn', { diff --git a/sources/plugins/justify/lang/ms.js b/sources/plugins/justify/lang/ms.js index 41d736b..323f8e9 100644 --- a/sources/plugins/justify/lang/ms.js +++ b/sources/plugins/justify/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ms', { diff --git a/sources/plugins/justify/lang/nb.js b/sources/plugins/justify/lang/nb.js index aac1f86..98a3c44 100644 --- a/sources/plugins/justify/lang/nb.js +++ b/sources/plugins/justify/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'nb', { diff --git a/sources/plugins/justify/lang/nl.js b/sources/plugins/justify/lang/nl.js index 3b33e46..972bf82 100644 --- a/sources/plugins/justify/lang/nl.js +++ b/sources/plugins/justify/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'nl', { diff --git a/sources/plugins/justify/lang/no.js b/sources/plugins/justify/lang/no.js index c77daaa..cfcd72a 100644 --- a/sources/plugins/justify/lang/no.js +++ b/sources/plugins/justify/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'no', { diff --git a/sources/plugins/justify/lang/oc.js b/sources/plugins/justify/lang/oc.js new file mode 100644 index 0000000..a13e528 --- /dev/null +++ b/sources/plugins/justify/lang/oc.js @@ -0,0 +1,10 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'justify', 'oc', { + block: 'Justificar', + center: 'Centrar', + left: 'Alinhar a esquèrra', + right: 'Alinhar a dreita' +} ); diff --git a/sources/plugins/justify/lang/pl.js b/sources/plugins/justify/lang/pl.js index 07f9807..60922b9 100644 --- a/sources/plugins/justify/lang/pl.js +++ b/sources/plugins/justify/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'pl', { diff --git a/sources/plugins/justify/lang/pt-br.js b/sources/plugins/justify/lang/pt-br.js index bb63097..cf40ad0 100644 --- a/sources/plugins/justify/lang/pt-br.js +++ b/sources/plugins/justify/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'pt-br', { diff --git a/sources/plugins/justify/lang/pt.js b/sources/plugins/justify/lang/pt.js index f1f233a..46ac43b 100644 --- a/sources/plugins/justify/lang/pt.js +++ b/sources/plugins/justify/lang/pt.js @@ -1,10 +1,10 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'pt', { block: 'Justificado', - center: 'Alinhar ao Centro', + center: 'Alinhar ao centro', left: 'Alinhar à esquerda', right: 'Alinhar à direita' } ); diff --git a/sources/plugins/justify/lang/ro.js b/sources/plugins/justify/lang/ro.js index 3ef171b..21caeca 100644 --- a/sources/plugins/justify/lang/ro.js +++ b/sources/plugins/justify/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ro', { diff --git a/sources/plugins/justify/lang/ru.js b/sources/plugins/justify/lang/ru.js index 5198476..47c98bb 100644 --- a/sources/plugins/justify/lang/ru.js +++ b/sources/plugins/justify/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ru', { diff --git a/sources/plugins/justify/lang/si.js b/sources/plugins/justify/lang/si.js index a29953e..6d9f373 100644 --- a/sources/plugins/justify/lang/si.js +++ b/sources/plugins/justify/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'si', { diff --git a/sources/plugins/justify/lang/sk.js b/sources/plugins/justify/lang/sk.js index f749df5..08c3991 100644 --- a/sources/plugins/justify/lang/sk.js +++ b/sources/plugins/justify/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'sk', { diff --git a/sources/plugins/justify/lang/sl.js b/sources/plugins/justify/lang/sl.js index bd4cd0b..d776354 100644 --- a/sources/plugins/justify/lang/sl.js +++ b/sources/plugins/justify/lang/sl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'sl', { diff --git a/sources/plugins/justify/lang/sq.js b/sources/plugins/justify/lang/sq.js index b184d79..1ed002c 100644 --- a/sources/plugins/justify/lang/sq.js +++ b/sources/plugins/justify/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'sq', { diff --git a/sources/plugins/justify/lang/sr-latn.js b/sources/plugins/justify/lang/sr-latn.js index 978c540..7fdba23 100644 --- a/sources/plugins/justify/lang/sr-latn.js +++ b/sources/plugins/justify/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'sr-latn', { diff --git a/sources/plugins/justify/lang/sr.js b/sources/plugins/justify/lang/sr.js index 062b368..2314a96 100644 --- a/sources/plugins/justify/lang/sr.js +++ b/sources/plugins/justify/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'sr', { diff --git a/sources/plugins/justify/lang/sv.js b/sources/plugins/justify/lang/sv.js index 9e798ac..cac94c0 100644 --- a/sources/plugins/justify/lang/sv.js +++ b/sources/plugins/justify/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'sv', { diff --git a/sources/plugins/justify/lang/th.js b/sources/plugins/justify/lang/th.js index da8a403..4a9d4f9 100644 --- a/sources/plugins/justify/lang/th.js +++ b/sources/plugins/justify/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'th', { diff --git a/sources/plugins/justify/lang/tr.js b/sources/plugins/justify/lang/tr.js index 661782c..fbc512f 100644 --- a/sources/plugins/justify/lang/tr.js +++ b/sources/plugins/justify/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'tr', { diff --git a/sources/plugins/justify/lang/tt.js b/sources/plugins/justify/lang/tt.js index a6b41a1..b36f69c 100644 --- a/sources/plugins/justify/lang/tt.js +++ b/sources/plugins/justify/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'tt', { diff --git a/sources/plugins/justify/lang/ug.js b/sources/plugins/justify/lang/ug.js index 6c71c49..e5861f5 100644 --- a/sources/plugins/justify/lang/ug.js +++ b/sources/plugins/justify/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'ug', { diff --git a/sources/plugins/justify/lang/uk.js b/sources/plugins/justify/lang/uk.js index 55ee9c4..5807f25 100644 --- a/sources/plugins/justify/lang/uk.js +++ b/sources/plugins/justify/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'uk', { diff --git a/sources/plugins/justify/lang/vi.js b/sources/plugins/justify/lang/vi.js index 0d9dce2..de0c170 100644 --- a/sources/plugins/justify/lang/vi.js +++ b/sources/plugins/justify/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'vi', { diff --git a/sources/plugins/justify/lang/zh-cn.js b/sources/plugins/justify/lang/zh-cn.js index f1d3df4..4c19627 100644 --- a/sources/plugins/justify/lang/zh-cn.js +++ b/sources/plugins/justify/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'zh-cn', { diff --git a/sources/plugins/justify/lang/zh.js b/sources/plugins/justify/lang/zh.js index 9cdd4fc..0865d51 100644 --- a/sources/plugins/justify/lang/zh.js +++ b/sources/plugins/justify/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'justify', 'zh', { diff --git a/sources/plugins/justify/plugin.js b/sources/plugins/justify/plugin.js index 15163b8..21b9221 100644 --- a/sources/plugins/justify/plugin.js +++ b/sources/plugins/justify/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -37,7 +37,6 @@ this.name = name; this.value = value; this.context = 'p'; - var classes = editor.config.justifyClasses, blockTag = editor.config.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div'; @@ -150,6 +149,17 @@ if ( block.isReadOnly() ) continue; + // Check if style or class might be applied to currently processed element (#455). + var tag = block.getName(), + isAllowedTextAlign, isAllowedCssClass; + + isAllowedTextAlign = editor.activeFilter.check( tag + '{text-align}' ); + isAllowedCssClass = editor.activeFilter.check( tag + '(' + cssClassName + ')' ); + + if ( !isAllowedCssClass && !isAllowedTextAlign ) { + continue; + } + block.removeAttribute( 'align' ); block.removeStyle( 'text-align' ); @@ -158,13 +168,13 @@ var apply = ( this.state == CKEDITOR.TRISTATE_OFF ) && ( !useComputedState || ( getAlignment( block, true ) != this.value ) ); - if ( cssClassName ) { + if ( cssClassName && isAllowedCssClass ) { // Append the desired class name. if ( apply ) block.addClass( cssClassName ); else if ( !className ) block.removeAttribute( 'class' ); - } else if ( apply ) { + } else if ( apply && isAllowedTextAlign ) { block.setStyle( 'text-align', this.value ); } } @@ -177,15 +187,31 @@ }, refresh: function( editor, path ) { - var firstBlock = path.block || path.blockLimit; - - this.setState( firstBlock.getName() != 'body' && getAlignment( firstBlock, this.editor.config.useComputedState ) == this.value ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF ); + var firstBlock = path.block || path.blockLimit, + name = firstBlock.getName(), + isEditable = firstBlock.equals( editor.editable() ), + isStylable = this.cssClassName ? editor.activeFilter.check( name + '(' + this.cssClassName + ')' ) : + editor.activeFilter.check( name + '{text-align}' ); + + // #455 + // 1. Check if we are directly in editbale. Justification should be always allowed, and not highlighted. + // Checking path.elements.length is required to filter out situation `body > ul` where ul is selected and path.blockLimit returns editable. + // 2. Check if current element can have applied specific class. + // 3. Check if current element can have applied text-align style. + if ( isEditable && path.elements.length === 1 ) { + this.setState( CKEDITOR.TRISTATE_OFF ); + } else if ( !isEditable && isStylable ) { + // 2 & 3 in one condition. + this.setState( getAlignment( firstBlock, this.editor.config.useComputedState ) == this.value ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF ); + } else { + this.setState( CKEDITOR.TRISTATE_DISABLED ); + } } }; CKEDITOR.plugins.add( 'justify', { // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'justifyblock,justifycenter,justifyleft,justifyright', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% @@ -225,7 +251,6 @@ toolbar: 'align,40' } ); } - editor.on( 'dirChanged', onDirChanged ); } } ); diff --git a/sources/plugins/lineutils/dev/dnd.html b/sources/plugins/lineutils/dev/dnd.html new file mode 100644 index 0000000..7293daa --- /dev/null +++ b/sources/plugins/lineutils/dev/dnd.html @@ -0,0 +1,172 @@ + + + + + + Widget Drag & Drop with Lineutils — CKEditor Sample + + + + + + +

        + CKEditor Samples » Widget Drag & Drop with Lineutils +

        + +

        Classic (iframe-based) Editor

        + + + +

        Inline Editor

        + +
        + + + + + + + + + + + + + + + +
        This tableis thevery firstelement of the document.
        We are stillable to accesthe space before it. + + + + + + + + + +
        This table is inside of a cell of another table.
        We can type either before or after it though.
        +
        + +
        +
        +
          +
        1. This numbered list...
        2. +
        3. ...is a neighbour of a horizontal line...
        4. +
        5. +
            +
          1. Nested list!
          2. +
          +
        6. +
        + +
        Saturn V +
        Roll out of Saturn V on launch pad
        +
        + +
          +
        • We can type between the lists...
        • +
        • ...thanks to Magicline.
        • +
        + +

        Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.

        + +

        Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.

        + +

        Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.

        + +
        +

        This text is wrapped in a DIV element. We can type after this element though.

        +
        +
        + + + + + + diff --git a/sources/plugins/lineutils/dev/magicfinger.html b/sources/plugins/lineutils/dev/magicfinger.html new file mode 100644 index 0000000..3172d22 --- /dev/null +++ b/sources/plugins/lineutils/dev/magicfinger.html @@ -0,0 +1,285 @@ + + + + + + Lineutils — CKEditor Sample + + + + +

        + CKEditor Samples » Lineutils +

        + +

        Classic (iframe-based) Editor

        + + + +

        Inline Editor

        + +
        + + + + + + + + + + + + + + + +
        This tableis thevery firstelement of the document.
        We are stillable to accesthe space before it. + + + + + + + + + +
        This table is inside of a cell of another table.
        We can type either before or after it though.
        +
        + +

        Two succesive horizontal lines (HR tags). We can access the space in between:

        + +
        +
        +
          +
        1. This numbered list...
        2. +
        3. ...is a neighbour of a horizontal line...
        4. +
        5. +
            +
          1. Nested list!
          2. +
          +
        6. +
        + +
          +
        • We can type between the lists...
        • +
        • ...thanks to Magicline.
        • +
        + +

        Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.

        + +

        Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.

        + +

        Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.

        + +
        +

        This text is wrapped in a DIV element. We can type after this element though.

        +
        +
        + +

        Extreme inline

        + +
        +
        Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim.
        +
        + Position static +
        foo
        +
        +
        +
        Key
        Value
        +
        +
        Whatever
        +
        +

        Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies

        +
        +
        +

        Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies

        +
        foo
        +
        + +

        Classic (iframe-based) Editor, H-scroll

        + + + + + + + + diff --git a/sources/plugins/lineutils/plugin.js b/sources/plugins/lineutils/plugin.js new file mode 100644 index 0000000..d84c5f3 --- /dev/null +++ b/sources/plugins/lineutils/plugin.js @@ -0,0 +1,1018 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + + /** + * @fileOverview A set of utilities to find and create horizontal spaces in edited content. + */ + +'use strict'; + +( function() { + + CKEDITOR.plugins.add( 'lineutils' ); + + /** + * Determines a position relative to an element in DOM (before). + * + * @readonly + * @property {Number} [=0] + * @member CKEDITOR + */ + CKEDITOR.LINEUTILS_BEFORE = 1; + + /** + * Determines a position relative to an element in DOM (after). + * + * @readonly + * @property {Number} [=2] + * @member CKEDITOR + */ + CKEDITOR.LINEUTILS_AFTER = 2; + + /** + * Determines a position relative to an element in DOM (inside). + * + * @readonly + * @property {Number} [=4] + * @member CKEDITOR + */ + CKEDITOR.LINEUTILS_INSIDE = 4; + + /** + * A utility that traverses the DOM tree and discovers elements + * (relations) matching user-defined lookups. + * + * @private + * @class CKEDITOR.plugins.lineutils.finder + * @constructor Creates a Finder class instance. + * @param {CKEDITOR.editor} editor Editor instance that the Finder belongs to. + * @param {Object} def Finder's definition. + * @since 4.3 + */ + function Finder( editor, def ) { + CKEDITOR.tools.extend( this, { + editor: editor, + editable: editor.editable(), + doc: editor.document, + win: editor.window + }, def, true ); + + this.inline = this.editable.isInline(); + + if ( !this.inline ) { + this.frame = this.win.getFrame(); + } + + this.target = this[ this.inline ? 'editable' : 'doc' ]; + } + + Finder.prototype = { + /** + * Initializes searching for elements with every mousemove event fired. + * To stop searching use {@link #stop}. + * + * @param {Function} [callback] Function executed on every iteration. + */ + start: function( callback ) { + var that = this, + editor = this.editor, + doc = this.doc, + el, elfp, x, y; + + var moveBuffer = CKEDITOR.tools.eventsBuffer( 50, function() { + if ( editor.readOnly || editor.mode != 'wysiwyg' ) + return; + + that.relations = {}; + + // Sometimes it happens that elementFromPoint returns null (especially on IE). + // Any further traversal makes no sense if there's no start point. Abort. + // Note: In IE8 elementFromPoint may return zombie nodes of undefined nodeType, + // so rejecting those as well. + if ( !( elfp = doc.$.elementFromPoint( x, y ) ) || !elfp.nodeType ) { + return; + } + + el = new CKEDITOR.dom.element( elfp ); + + that.traverseSearch( el ); + + if ( !isNaN( x + y ) ) { + that.pixelSearch( el, x, y ); + } + + callback && callback( that.relations, x, y ); + } ); + + // Searching starting from element from point on mousemove. + this.listener = this.editable.attachListener( this.target, 'mousemove', function( evt ) { + x = evt.data.$.clientX; + y = evt.data.$.clientY; + + moveBuffer.input(); + } ); + + this.editable.attachListener( this.inline ? this.editable : this.frame, 'mouseout', function() { + moveBuffer.reset(); + } ); + }, + + /** + * Stops observing mouse events attached by {@link #start}. + */ + stop: function() { + if ( this.listener ) { + this.listener.removeListener(); + } + }, + + /** + * Returns a range representing the relation, according to its element + * and type. + * + * @param {Object} location Location containing a unique identifier and type. + * @returns {CKEDITOR.dom.range} Range representing the relation. + */ + getRange: ( function() { + var where = {}; + + where[ CKEDITOR.LINEUTILS_BEFORE ] = CKEDITOR.POSITION_BEFORE_START; + where[ CKEDITOR.LINEUTILS_AFTER ] = CKEDITOR.POSITION_AFTER_END; + where[ CKEDITOR.LINEUTILS_INSIDE ] = CKEDITOR.POSITION_AFTER_START; + + return function( location ) { + var range = this.editor.createRange(); + + range.moveToPosition( this.relations[ location.uid ].element, where[ location.type ] ); + + return range; + }; + } )(), + + /** + * Stores given relation in a {@link #relations} object. Processes the relation + * to normalize and avoid duplicates. + * + * @param {CKEDITOR.dom.element} el Element of the relation. + * @param {Number} type Relation, one of `CKEDITOR.LINEUTILS_AFTER`, `CKEDITOR.LINEUTILS_BEFORE`, `CKEDITOR.LINEUTILS_INSIDE`. + */ + store: ( function() { + function merge( el, type, relations ) { + var uid = el.getUniqueId(); + + if ( uid in relations ) { + relations[ uid ].type |= type; + } else { + relations[ uid ] = { element: el, type: type }; + } + } + + return function( el, type ) { + var alt; + + // Normalization to avoid duplicates: + // CKEDITOR.LINEUTILS_AFTER becomes CKEDITOR.LINEUTILS_BEFORE of el.getNext(). + if ( is( type, CKEDITOR.LINEUTILS_AFTER ) && isStatic( alt = el.getNext() ) && alt.isVisible() ) { + merge( alt, CKEDITOR.LINEUTILS_BEFORE, this.relations ); + type ^= CKEDITOR.LINEUTILS_AFTER; + } + + // Normalization to avoid duplicates: + // CKEDITOR.LINEUTILS_INSIDE becomes CKEDITOR.LINEUTILS_BEFORE of el.getFirst(). + if ( is( type, CKEDITOR.LINEUTILS_INSIDE ) && isStatic( alt = el.getFirst() ) && alt.isVisible() ) { + merge( alt, CKEDITOR.LINEUTILS_BEFORE, this.relations ); + type ^= CKEDITOR.LINEUTILS_INSIDE; + } + + merge( el, type, this.relations ); + }; + } )(), + + /** + * Traverses the DOM tree towards root, checking all ancestors + * with lookup rules, avoiding duplicates. Stores positive relations + * in the {@link #relations} object. + * + * @param {CKEDITOR.dom.element} el Element which is the starting point. + */ + traverseSearch: function( el ) { + var l, type, uid; + + // Go down DOM towards root (or limit). + do { + uid = el.$[ 'data-cke-expando' ]; + + // This element was already visited and checked. + if ( uid && uid in this.relations ) { + continue; + } + + if ( el.equals( this.editable ) ) { + return; + } + + if ( isStatic( el ) ) { + // Collect all addresses yielded by lookups for that element. + for ( l in this.lookups ) { + + if ( ( type = this.lookups[ l ]( el ) ) ) { + this.store( el, type ); + } + } + } + } while ( !isLimit( el ) && ( el = el.getParent() ) ); + }, + + /** + * Iterates vertically pixel-by-pixel within a given element starting + * from given coordinates, searching for elements in the neighborhood. + * Once an element is found it is processed by {@link #traverseSearch}. + * + * @param {CKEDITOR.dom.element} el Element which is the starting point. + * @param {Number} [x] Horizontal mouse coordinate relative to the viewport. + * @param {Number} [y] Vertical mouse coordinate relative to the viewport. + */ + pixelSearch: ( function() { + var contains = CKEDITOR.env.ie || CKEDITOR.env.webkit ? + function( el, found ) { + return el.contains( found ); + } : function( el, found ) { + return !!( el.compareDocumentPosition( found ) & 16 ); + }; + + // Iterates pixel-by-pixel from starting coordinates, moving by defined + // step and getting elementFromPoint in every iteration. Iteration stops when: + // * A valid element is found. + // * Condition function returns `false` (i.e. reached boundaries of viewport). + // * No element is found (i.e. coordinates out of viewport). + // * Element found is ascendant of starting element. + // + // @param {Object} doc Native DOM document. + // @param {Object} el Native DOM element. + // @param {Number} xStart Horizontal starting coordinate to use. + // @param {Number} yStart Vertical starting coordinate to use. + // @param {Number} step Step of the algorithm. + // @param {Function} condition A condition relative to current vertical coordinate. + function iterate( el, xStart, yStart, step, condition ) { + var y = yStart, + tryouts = 0, + found; + + while ( condition( y ) ) { + y += step; + + // If we try and we try, and still nothing's found, let's end + // that party. + if ( ++tryouts == 25 ) { + return; + } + + found = this.doc.$.elementFromPoint( xStart, y ); + + // Nothing found. This is crazy... but... + // It might be that a line, which is in different document, + // covers that pixel (elementFromPoint is doc-sensitive). + // Better let's have another try. + if ( !found ) { + continue; + } + + // Still in the same element. + else if ( found == el ) { + tryouts = 0; + continue; + } + + // Reached the edge of an element and found an ancestor or... + // A line, that covers that pixel. Better let's have another try. + else if ( !contains( el, found ) ) { + continue; + } + + tryouts = 0; + + // Found a valid element. Stop iterating. + if ( isStatic( ( found = new CKEDITOR.dom.element( found ) ) ) ) { + return found; + } + } + } + + return function( el, x, y ) { + var paneHeight = this.win.getViewPaneSize().height, + + // Try to find an element iterating *up* from the starting point. + neg = iterate.call( this, el.$, x, y, -1, function( y ) { + return y > 0; + } ), + + // Try to find an element iterating *down* from the starting point. + pos = iterate.call( this, el.$, x, y, 1, function( y ) { + return y < paneHeight; + } ); + + if ( neg ) { + this.traverseSearch( neg ); + + // Iterate towards DOM root until neg is a direct child of el. + while ( !neg.getParent().equals( el ) ) { + neg = neg.getParent(); + } + } + + if ( pos ) { + this.traverseSearch( pos ); + + // Iterate towards DOM root until pos is a direct child of el. + while ( !pos.getParent().equals( el ) ) { + pos = pos.getParent(); + } + } + + // Iterate forwards starting from neg and backwards from + // pos to harvest all children of el between those elements. + // Stop when neg and pos meet each other or there's none of them. + // TODO (?) reduce number of hops forwards/backwards. + while ( neg || pos ) { + if ( neg ) { + neg = neg.getNext( isStatic ); + } + + if ( !neg || neg.equals( pos ) ) { + break; + } + + this.traverseSearch( neg ); + + if ( pos ) { + pos = pos.getPrevious( isStatic ); + } + + if ( !pos || pos.equals( neg ) ) { + break; + } + + this.traverseSearch( pos ); + } + }; + } )(), + + /** + * Unlike {@link #traverseSearch}, it collects **all** elements from editable's DOM tree + * and runs lookups for every one of them, collecting relations. + * + * @returns {Object} {@link #relations}. + */ + greedySearch: function() { + this.relations = {}; + + var all = this.editable.getElementsByTag( '*' ), + i = 0, + el, type, l; + + while ( ( el = all.getItem( i++ ) ) ) { + // Don't consider editable, as it might be inline, + // and i.e. checking it's siblings is pointless. + if ( el.equals( this.editable ) ) { + continue; + } + + // On IE8 element.getElementsByTagName returns comments... sic! (http://dev.ckeditor.com/ticket/13176) + if ( el.type != CKEDITOR.NODE_ELEMENT ) { + continue; + } + + // Don't visit non-editable internals, for example widget's + // guts (above wrapper, below nested). Still check editable limits, + // as they are siblings with editable contents. + if ( !el.hasAttribute( 'contenteditable' ) && el.isReadOnly() ) { + continue; + } + + if ( isStatic( el ) && el.isVisible() ) { + // Collect all addresses yielded by lookups for that element. + for ( l in this.lookups ) { + if ( ( type = this.lookups[ l ]( el ) ) ) { + this.store( el, type ); + } + } + } + } + + return this.relations; + } + + /** + * Relations express elements in DOM that match user-defined {@link #lookups}. + * Every relation has its own `type` that determines whether + * it refers to the space before, after or inside the `element`. + * This object stores relations found by {@link #traverseSearch} or {@link #greedySearch}, structured + * in the following way: + * + * relations: { + * // Unique identifier of the element. + * Number: { + * // Element of this relation. + * element: {@link CKEDITOR.dom.element} + * // Conjunction of CKEDITOR.LINEUTILS_BEFORE, CKEDITOR.LINEUTILS_AFTER and CKEDITOR.LINEUTILS_INSIDE. + * type: Number + * }, + * ... + * } + * + * @property {Object} relations + * @readonly + */ + + /** + * A set of user-defined functions used by Finder to check if an element + * is a valid relation, belonging to {@link #relations}. + * When the criterion is met, lookup returns a logical conjunction of `CKEDITOR.LINEUTILS_BEFORE`, + * `CKEDITOR.LINEUTILS_AFTER` or `CKEDITOR.LINEUTILS_INSIDE`. + * + * Lookups are passed along with Finder's definition. + * + * lookups: { + * 'some lookup': function( el ) { + * if ( someCondition ) + * return CKEDITOR.LINEUTILS_BEFORE; + * }, + * ... + * } + * + * @property {Object} lookups + */ + }; + + + /** + * A utility that analyses relations found by + * CKEDITOR.plugins.lineutils.finder and locates them + * in the viewport as horizontal lines of specific coordinates. + * + * @private + * @class CKEDITOR.plugins.lineutils.locator + * @constructor Creates a Locator class instance. + * @param {CKEDITOR.editor} editor Editor instance that Locator belongs to. + * @since 4.3 + */ + function Locator( editor, def ) { + CKEDITOR.tools.extend( this, def, { + editor: editor + }, true ); + } + + Locator.prototype = { + /** + * Locates the Y coordinate for all types of every single relation and stores + * them in an object. + * + * @param {Object} relations {@link CKEDITOR.plugins.lineutils.finder#relations}. + * @returns {Object} {@link #locations}. + */ + locate: ( function() { + function locateSibling( rel, type ) { + var sib = rel.element[ type === CKEDITOR.LINEUTILS_BEFORE ? 'getPrevious' : 'getNext' ](); + + // Return the middle point between siblings. + if ( sib && isStatic( sib ) ) { + rel.siblingRect = sib.getClientRect(); + + if ( type == CKEDITOR.LINEUTILS_BEFORE ) { + return ( rel.siblingRect.bottom + rel.elementRect.top ) / 2; + } else { + return ( rel.elementRect.bottom + rel.siblingRect.top ) / 2; + } + } + + // If there's no sibling, use the edge of an element. + else { + if ( type == CKEDITOR.LINEUTILS_BEFORE ) { + return rel.elementRect.top; + } else { + return rel.elementRect.bottom; + } + } + } + + return function( relations ) { + var rel; + + this.locations = {}; + + for ( var uid in relations ) { + rel = relations[ uid ]; + rel.elementRect = rel.element.getClientRect(); + + if ( is( rel.type, CKEDITOR.LINEUTILS_BEFORE ) ) { + this.store( uid, CKEDITOR.LINEUTILS_BEFORE, locateSibling( rel, CKEDITOR.LINEUTILS_BEFORE ) ); + } + + if ( is( rel.type, CKEDITOR.LINEUTILS_AFTER ) ) { + this.store( uid, CKEDITOR.LINEUTILS_AFTER, locateSibling( rel, CKEDITOR.LINEUTILS_AFTER ) ); + } + + // The middle point of the element. + if ( is( rel.type, CKEDITOR.LINEUTILS_INSIDE ) ) { + this.store( uid, CKEDITOR.LINEUTILS_INSIDE, ( rel.elementRect.top + rel.elementRect.bottom ) / 2 ); + } + } + + return this.locations; + }; + } )(), + + /** + * Calculates distances from every location to given vertical coordinate + * and sorts locations according to that distance. + * + * @param {Number} y The vertical coordinate used for sorting, used as a reference. + * @param {Number} [howMany] Determines the number of "closest locations" to be returned. + * @returns {Array} Sorted, array representation of {@link #locations}. + */ + sort: ( function() { + var locations, sorted, + dist, i; + + function distance( y, uid, type ) { + return Math.abs( y - locations[ uid ][ type ] ); + } + + return function( y, howMany ) { + locations = this.locations; + sorted = []; + + for ( var uid in locations ) { + for ( var type in locations[ uid ] ) { + dist = distance( y, uid, type ); + + // An array is empty. + if ( !sorted.length ) { + sorted.push( { uid: +uid, type: type, dist: dist } ); + } else { + // Sort the array on fly when it's populated. + for ( i = 0; i < sorted.length; i++ ) { + if ( dist < sorted[ i ].dist ) { + sorted.splice( i, 0, { uid: +uid, type: type, dist: dist } ); + break; + } + } + + // Nothing was inserted, so the distance is bigger than + // any of already calculated: push to the end. + if ( i == sorted.length ) { + sorted.push( { uid: +uid, type: type, dist: dist } ); + } + } + } + } + + if ( typeof howMany != 'undefined' ) { + return sorted.slice( 0, howMany ); + } else { + return sorted; + } + }; + } )(), + + /** + * Stores the location in a collection. + * + * @param {Number} uid Unique identifier of the relation. + * @param {Number} type One of `CKEDITOR.LINEUTILS_BEFORE`, `CKEDITOR.LINEUTILS_AFTER` and `CKEDITOR.LINEUTILS_INSIDE`. + * @param {Number} y Vertical position of the relation. + */ + store: function( uid, type, y ) { + if ( !this.locations[ uid ] ) { + this.locations[ uid ] = {}; + } + + this.locations[ uid ][ type ] = y; + } + + /** + * @readonly + * @property {Object} locations + */ + }; + + var tipCss = { + display: 'block', + width: '0px', + height: '0px', + 'border-color': 'transparent', + 'border-style': 'solid', + position: 'absolute', + top: '-6px' + }, + + lineStyle = { + height: '0px', + 'border-top': '1px dashed red', + position: 'absolute', + 'z-index': 9999 + }, + + lineTpl = + '
        ' + + ' ' + + ' ' + + '
        '; + + /** + * A utility that draws horizontal lines in DOM according to locations + * returned by CKEDITOR.plugins.lineutils.locator. + * + * @private + * @class CKEDITOR.plugins.lineutils.liner + * @constructor Creates a Liner class instance. + * @param {CKEDITOR.editor} editor Editor instance that Liner belongs to. + * @param {Object} def Liner's definition. + * @since 4.3 + */ + function Liner( editor, def ) { + var editable = editor.editable(); + + CKEDITOR.tools.extend( this, { + editor: editor, + editable: editable, + inline: editable.isInline(), + doc: editor.document, + win: editor.window, + container: CKEDITOR.document.getBody(), + winTop: CKEDITOR.document.getWindow() + }, def, true ); + + this.hidden = {}; + this.visible = {}; + + if ( !this.inline ) { + this.frame = this.win.getFrame(); + } + + this.queryViewport(); + + // Callbacks must be wrapped. Otherwise they're not attached + // to global DOM objects (i.e. topmost window) for every editor + // because they're treated as duplicates. They belong to the + // same prototype shared among Liner instances. + var queryViewport = CKEDITOR.tools.bind( this.queryViewport, this ), + hideVisible = CKEDITOR.tools.bind( this.hideVisible, this ), + removeAll = CKEDITOR.tools.bind( this.removeAll, this ); + + editable.attachListener( this.winTop, 'resize', queryViewport ); + editable.attachListener( this.winTop, 'scroll', queryViewport ); + + editable.attachListener( this.winTop, 'resize', hideVisible ); + editable.attachListener( this.win, 'scroll', hideVisible ); + + editable.attachListener( this.inline ? editable : this.frame, 'mouseout', function( evt ) { + var x = evt.data.$.clientX, + y = evt.data.$.clientY; + + this.queryViewport(); + + // Check if mouse is out of the element (iframe/editable). + if ( x <= this.rect.left || x >= this.rect.right || y <= this.rect.top || y >= this.rect.bottom ) { + this.hideVisible(); + } + + // Check if mouse is out of the top-window vieport. + if ( x <= 0 || x >= this.winTopPane.width || y <= 0 || y >= this.winTopPane.height ) { + this.hideVisible(); + } + }, this ); + + editable.attachListener( editor, 'resize', queryViewport ); + editable.attachListener( editor, 'mode', removeAll ); + editor.on( 'destroy', removeAll ); + + this.lineTpl = new CKEDITOR.template( lineTpl ).output( { + lineStyle: CKEDITOR.tools.writeCssText( + CKEDITOR.tools.extend( {}, lineStyle, this.lineStyle, true ) + ), + tipLeftStyle: CKEDITOR.tools.writeCssText( + CKEDITOR.tools.extend( {}, tipCss, { + left: '0px', + 'border-left-color': 'red', + 'border-width': '6px 0 6px 6px' + }, this.tipCss, this.tipLeftStyle, true ) + ), + tipRightStyle: CKEDITOR.tools.writeCssText( + CKEDITOR.tools.extend( {}, tipCss, { + right: '0px', + 'border-right-color': 'red', + 'border-width': '6px 6px 6px 0' + }, this.tipCss, this.tipRightStyle, true ) + ) + } ); + } + + Liner.prototype = { + /** + * Permanently removes all lines (both hidden and visible) from DOM. + */ + removeAll: function() { + var l; + + for ( l in this.hidden ) { + this.hidden[ l ].remove(); + delete this.hidden[ l ]; + } + + for ( l in this.visible ) { + this.visible[ l ].remove(); + delete this.visible[ l ]; + } + }, + + /** + * Hides a given line. + * + * @param {CKEDITOR.dom.element} line The line to be hidden. + */ + hideLine: function( line ) { + var uid = line.getUniqueId(); + + line.hide(); + + this.hidden[ uid ] = line; + delete this.visible[ uid ]; + }, + + /** + * Shows a given line. + * + * @param {CKEDITOR.dom.element} line The line to be shown. + */ + showLine: function( line ) { + var uid = line.getUniqueId(); + + line.show(); + + this.visible[ uid ] = line; + delete this.hidden[ uid ]; + }, + + /** + * Hides all visible lines. + */ + hideVisible: function() { + for ( var l in this.visible ) { + this.hideLine( this.visible[ l ] ); + } + }, + + /** + * Shows a line at given location. + * + * @param {Object} location Location object containing the unique identifier of the relation + * and its type. Usually returned by {@link CKEDITOR.plugins.lineutils.locator#sort}. + * @param {Function} [callback] A callback to be called once the line is shown. + */ + placeLine: function( location, callback ) { + var styles, line, l; + + // No style means that line would be out of viewport. + if ( !( styles = this.getStyle( location.uid, location.type ) ) ) { + return; + } + + // Search for any visible line of a different hash first. + // It's faster to re-position visible line than to show it. + for ( l in this.visible ) { + if ( this.visible[ l ].getCustomData( 'hash' ) !== this.hash ) { + line = this.visible[ l ]; + break; + } + } + + // Search for any hidden line of a different hash. + if ( !line ) { + for ( l in this.hidden ) { + if ( this.hidden[ l ].getCustomData( 'hash' ) !== this.hash ) { + this.showLine( ( line = this.hidden[ l ] ) ); + break; + } + } + } + + // If no line available, add the new one. + if ( !line ) { + this.showLine( ( line = this.addLine() ) ); + } + + // Mark the line with current hash. + line.setCustomData( 'hash', this.hash ); + + // Mark the line as visible. + this.visible[ line.getUniqueId() ] = line; + + line.setStyles( styles ); + + callback && callback( line ); + }, + + /** + * Creates a style set to be used by the line, representing a particular + * relation (location). + * + * @param {Number} uid Unique identifier of the relation. + * @param {Number} type Type of the relation. + * @returns {Object} An object containing styles. + */ + getStyle: function( uid, type ) { + var rel = this.relations[ uid ], + loc = this.locations[ uid ][ type ], + styles = {}, + hdiff; + + // Line should be between two elements. + if ( rel.siblingRect ) { + styles.width = Math.max( rel.siblingRect.width, rel.elementRect.width ); + } + // Line is relative to a single element. + else { + styles.width = rel.elementRect.width; + } + + // Let's calculate the vertical position of the line. + if ( this.inline ) { + // (http://dev.ckeditor.com/ticket/13155) + styles.top = loc + this.winTopScroll.y - this.rect.relativeY; + } else { + styles.top = this.rect.top + this.winTopScroll.y + loc; + } + + // Check if line would be vertically out of the viewport. + if ( styles.top - this.winTopScroll.y < this.rect.top || styles.top - this.winTopScroll.y > this.rect.bottom ) { + return false; + } + + // Now let's calculate the horizontal alignment (left and width). + if ( this.inline ) { + // (http://dev.ckeditor.com/ticket/13155) + styles.left = rel.elementRect.left - this.rect.relativeX; + } else { + if ( rel.elementRect.left > 0 ) + styles.left = this.rect.left + rel.elementRect.left; + + // H-scroll case. Left edge of element may be out of viewport. + else { + styles.width += rel.elementRect.left; + styles.left = this.rect.left; + } + + // H-scroll case. Right edge of element may be out of viewport. + if ( ( hdiff = styles.left + styles.width - ( this.rect.left + this.winPane.width ) ) > 0 ) { + styles.width -= hdiff; + } + } + + // Finally include horizontal scroll of the global window. + styles.left += this.winTopScroll.x; + + // Append 'px' to style values. + for ( var style in styles ) { + styles[ style ] = CKEDITOR.tools.cssLength( styles[ style ] ); + } + + return styles; + }, + + /** + * Adds a new line to DOM. + * + * @returns {CKEDITOR.dom.element} A brand-new line. + */ + addLine: function() { + var line = CKEDITOR.dom.element.createFromHtml( this.lineTpl ); + + line.appendTo( this.container ); + + return line; + }, + + /** + * Assigns a unique hash to the instance that is later used + * to tell unwanted lines from new ones. This method **must** be called + * before a new set of relations is to be visualized so {@link #cleanup} + * eventually hides obsolete lines. This is because lines + * are re-used between {@link #placeLine} calls and the number of + * necessary ones may vary depending on the number of relations. + * + * @param {Object} relations {@link CKEDITOR.plugins.lineutils.finder#relations}. + * @param {Object} locations {@link CKEDITOR.plugins.lineutils.locator#locations}. + */ + prepare: function( relations, locations ) { + this.relations = relations; + this.locations = locations; + this.hash = Math.random(); + }, + + /** + * Hides all visible lines that do not belong to current hash + * and no longer represent relations (locations). + * + * See also: {@link #prepare}. + */ + cleanup: function() { + var line; + + for ( var l in this.visible ) { + line = this.visible[ l ]; + + if ( line.getCustomData( 'hash' ) !== this.hash ) { + this.hideLine( line ); + } + } + }, + + /** + * Queries dimensions of the viewport, editable, frame etc. + * that are used for correct positioning of the line. + */ + queryViewport: function() { + this.winPane = this.win.getViewPaneSize(); + this.winTopScroll = this.winTop.getScrollPosition(); + this.winTopPane = this.winTop.getViewPaneSize(); + + // (http://dev.ckeditor.com/ticket/13155) + this.rect = this.getClientRect( this.inline ? this.editable : this.frame ); + }, + + /** + * Returns `boundingClientRect` of an element, shifted by the position + * of `container` when the container is not `static` (http://dev.ckeditor.com/ticket/13155). + * + * See also: {@link CKEDITOR.dom.element#getClientRect}. + * + * @param {CKEDITOR.dom.element} el A DOM element. + * @returns {Object} A shifted rect, extended by `relativeY` and `relativeX` properties. + */ + getClientRect: function( el ) { + var rect = el.getClientRect(), + relativeContainerDocPosition = this.container.getDocumentPosition(), + relativeContainerComputedPosition = this.container.getComputedStyle( 'position' ); + + // Static or not, those values are used to offset the position of the line so they cannot be undefined. + rect.relativeX = rect.relativeY = 0; + + if ( relativeContainerComputedPosition != 'static' ) { + // Remember the offset used to shift the clientRect. + rect.relativeY = relativeContainerDocPosition.y; + rect.relativeX = relativeContainerDocPosition.x; + + rect.top -= rect.relativeY; + rect.bottom -= rect.relativeY; + rect.left -= rect.relativeX; + rect.right -= rect.relativeX; + } + + return rect; + } + }; + + function is( type, flag ) { + return type & flag; + } + + var floats = { left: 1, right: 1, center: 1 }, + positions = { absolute: 1, fixed: 1 }; + + function isElement( node ) { + return node && node.type == CKEDITOR.NODE_ELEMENT; + } + + function isFloated( el ) { + return !!( floats[ el.getComputedStyle( 'float' ) ] || floats[ el.getAttribute( 'align' ) ] ); + } + + function isPositioned( el ) { + return !!positions[ el.getComputedStyle( 'position' ) ]; + } + + function isLimit( node ) { + return isElement( node ) && node.getAttribute( 'contenteditable' ) == 'true'; + } + + function isStatic( node ) { + return isElement( node ) && !isFloated( node ) && !isPositioned( node ); + } + + /** + * Global namespace storing definitions and global helpers for the Line Utilities plugin. + * + * @private + * @class + * @singleton + * @since 4.3 + */ + CKEDITOR.plugins.lineutils = { + finder: Finder, + locator: Locator, + liner: Liner + }; +} )(); diff --git a/sources/plugins/link/dialogs/anchor.js b/sources/plugins/link/dialogs/anchor.js index e544275..04a4abe 100644 --- a/sources/plugins/link/dialogs/anchor.js +++ b/sources/plugins/link/dialogs/anchor.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -18,6 +18,21 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) { } ), 'cke_anchor', 'anchor' ); } + + function getSelectedAnchor( selection ) { + var range = selection.getRanges()[ 0 ], + element = selection.getSelectedElement(); + + // In case of table cell selection, we want to shrink selection from td to a element. + range.shrink( CKEDITOR.SHRINK_ELEMENT ); + element = range.getEnclosedNode(); + + if ( element && element.type === CKEDITOR.NODE_ELEMENT && + ( element.data( 'cke-real-element-type' ) === 'anchor' || element.is( 'a' ) ) ) { + return element; + } + } + return { title: editor.lang.link.anchor.title, minWidth: 300, @@ -35,9 +50,10 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) { var newFake = createFakeAnchor( editor, attributes ); newFake.replace( this._.selectedElement ); - // Selecting fake element for IE. (#11377) - if ( CKEDITOR.env.ie ) + // Selecting fake element for IE. (http://dev.ckeditor.com/ticket/11377) + if ( CKEDITOR.env.ie ) { editor.getSelection().selectElement( newFake ); + } } else { this._.selectedElement.setAttributes( attributes ); } @@ -56,7 +72,7 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) { // Apply style. var style = new CKEDITOR.style( { element: 'a', attributes: attributes } ); style.type = CKEDITOR.STYLE_INLINE; - editor.applyStyle( style ); + style.applyToRange( range ); } } }, @@ -67,7 +83,7 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) { onShow: function() { var sel = editor.getSelection(), - fullySelected = sel.getSelectedElement(), + fullySelected = getSelectedAnchor( sel ), fakeSelected = fullySelected && fullySelected.data( 'cke-realelement' ), linkElement = fakeSelected ? CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, fullySelected ) : @@ -77,8 +93,9 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) { loadElements.call( this, linkElement ); !fakeSelected && sel.selectElement( linkElement ); - if ( fullySelected ) + if ( fullySelected ) { this._.selectedElement = fullySelected; + } } this.getContentElement( 'info', 'txtName' ).focus(); diff --git a/sources/plugins/link/dialogs/link.js b/sources/plugins/link/dialogs/link.js index 35975c7..4c60928 100644 --- a/sources/plugins/link/dialogs/link.js +++ b/sources/plugins/link/dialogs/link.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -7,7 +7,112 @@ ( function() { CKEDITOR.dialog.add( 'link', function( editor ) { - var plugin = CKEDITOR.plugins.link; + var plugin = CKEDITOR.plugins.link, + initialLinkText; + + function createRangeForLink( editor, link ) { + var range = editor.createRange(); + + range.setStartBefore( link ); + range.setEndAfter( link ); + + return range; + } + + function insertLinksIntoSelection( editor, data ) { + var attributes = plugin.getLinkAttributes( editor, data ), + ranges = editor.getSelection().getRanges(), + style = new CKEDITOR.style( { + element: 'a', + attributes: attributes.set + } ), + rangesToSelect = [], + range, + text, + nestedLinks, + i, + j; + + style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why. + + for ( i = 0; i < ranges.length; i++ ) { + range = ranges[ i ]; + + // Use link URL as text with a collapsed cursor. + if ( range.collapsed ) { + // Short mailto link text view (http://dev.ckeditor.com/ticket/5736). + text = new CKEDITOR.dom.text( data.linkText || ( data.type == 'email' ? + data.email.address : attributes.set[ 'data-cke-saved-href' ] ), editor.document ); + range.insertNode( text ); + range.selectNodeContents( text ); + } else if ( initialLinkText !== data.linkText ) { + text = new CKEDITOR.dom.text( data.linkText, editor.document ); + + // Shrink range to preserve block element. + range.shrink( CKEDITOR.SHRINK_TEXT ); + + // Use extractHtmlFromRange to remove markup within the selection. Also this method is a little + // smarter than range#deleteContents as it plays better e.g. with table cells. + editor.editable().extractHtmlFromRange( range ); + + range.insertNode( text ); + } + + // Editable links nested within current range should be removed, so that the link is applied to whole selection. + nestedLinks = range._find( 'a' ); + + for ( j = 0; j < nestedLinks.length; j++ ) { + nestedLinks[ j ].remove( true ); + } + + + // Apply style. + style.applyToRange( range, editor ); + + rangesToSelect.push( range ); + } + + editor.getSelection().selectRanges( rangesToSelect ); + } + + function editLinksInSelection( editor, selectedElements, data ) { + var attributes = plugin.getLinkAttributes( editor, data ), + ranges = [], + element, + href, + textView, + newText, + i; + + for ( i = 0; i < selectedElements.length; i++ ) { + // We're only editing an existing link, so just overwrite the attributes. + element = selectedElements[ i ]; + href = element.data( 'cke-saved-href' ); + textView = element.getHtml(); + + element.setAttributes( attributes.set ); + element.removeAttributes( attributes.removed ); + + + if ( data.linkText && initialLinkText != data.linkText ) { + // Display text has been changed. + newText = data.linkText; + } else if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) { + // Update text view when user changes protocol (http://dev.ckeditor.com/ticket/4612). + // Short mailto link text view (http://dev.ckeditor.com/ticket/5736). + newText = data.type == 'email' ? data.email.address : attributes.set[ 'data-cke-saved-href' ]; + } + + if ( newText ) { + element.setText( newText ); + } + + ranges.push( createRangeForLink( editor, element ) ); + } + + // We changed the content, so need to select it again. + editor.getSelection().selectRanges( ranges ); + } // Handles the event when the "Target" selection box is changed. var targetChanged = function() { @@ -109,13 +214,30 @@ return { title: linkLang.title, - minWidth: 350, - minHeight: 230, + minWidth: ( CKEDITOR.skinName || editor.config.skin ) == 'moono-lisa' ? 450 : 350, + minHeight: 240, contents: [ { id: 'info', label: linkLang.info, title: linkLang.info, elements: [ { + type: 'text', + id: 'linkDisplayText', + label: linkLang.displayText, + setup: function() { + this.enable(); + + this.setValue( editor.getSelection().getSelectedText() ); + + // Keep inner text so that it can be compared in commit function. By obtaining value from getData() + // we get value stripped from new line chars which is important when comparing the value later on. + initialLinkText = this.getValue(); + }, + commit: function( data ) { + data.linkText = this.isEnabled() ? this.getValue() : ''; + } + }, + { id: 'linkType', type: 'select', label: linkLang.type, @@ -145,7 +267,7 @@ label: commonLang.protocol, 'default': 'http://', items: [ - // Force 'ltr' for protocol names in BIDI. (#5433) + // Force 'ltr' for protocol names in BIDI. (http://dev.ckeditor.com/ticket/5433) [ 'http://\u200E', 'http://' ], [ 'https://\u200E', 'https://' ], [ 'ftp://\u200E', 'ftp://' ], @@ -218,7 +340,7 @@ }, commit: function( data ) { // IE will not trigger the onChange event if the mouse has been used - // to carry all the operations #4724 + // to carry all the operations http://dev.ckeditor.com/ticket/4724 this.onChange(); if ( !data.url ) @@ -776,28 +898,55 @@ setup: setupAdvParams, commit: commitAdvParams } ] + }, + { + type: 'hbox', + widths: [ '45%', '55%' ], + children: [ { + type: 'checkbox', + id: 'download', + requiredContent: 'a[download]', + label: linkLang.download, + setup: function( data ) { + if ( data.download !== undefined ) + this.setValue( 'checked', 'checked' ); + }, + commit: function( data ) { + if ( this.getValue() ) { + data.download = this.getValue(); + } + } + } ] } ] } ] } ], onShow: function() { var editor = this.getParentEditor(), selection = editor.getSelection(), - element = null; + displayTextField = this.getContentElement( 'info', 'linkDisplayText' ).getElement().getParent().getParent(), + elements = plugin.getSelectedLink( editor, true ), + firstLink = elements[ 0 ] || null; // Fill in all the relevant fields if there's already one link selected. - if ( ( element = plugin.getSelectedLink( editor ) ) && element.hasAttribute( 'href' ) ) { + if ( firstLink && firstLink.hasAttribute( 'href' ) ) { // Don't change selection if some element is already selected. // For example - don't destroy fake selection. - if ( !selection.getSelectedElement() ) - selection.selectElement( element ); - } else { - element = null; + if ( !selection.getSelectedElement() && !selection.isInTable() ) { + selection.selectElement( firstLink ); + } } - var data = plugin.parseLinkAttributes( editor, element ); + var data = plugin.parseLinkAttributes( editor, firstLink ); + + // Here we'll decide whether or not we want to show Display Text field. + if ( elements.length <= 1 && plugin.showDisplayTextForElement( firstLink, editor ) ) { + displayTextField.show(); + } else { + displayTextField.hide(); + } // Record down the selected element in the dialog. - this._.selectedElement = element; + this._.selectedElements = elements; this.setupContent( data ); }, @@ -807,50 +956,12 @@ // Collect data from fields. this.commitContent( data ); - var selection = editor.getSelection(), - attributes = plugin.getLinkAttributes( editor, data ); - - if ( !this._.selectedElement ) { - var range = selection.getRanges()[ 0 ]; - - // Use link URL as text with a collapsed cursor. - if ( range.collapsed ) { - // Short mailto link text view (#5736). - var text = new CKEDITOR.dom.text( data.type == 'email' ? - data.email.address : attributes.set[ 'data-cke-saved-href' ], editor.document ); - range.insertNode( text ); - range.selectNodeContents( text ); - } - - // Apply style. - var style = new CKEDITOR.style( { - element: 'a', - attributes: attributes.set - } ); - - style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why. - style.applyToRange( range, editor ); - range.select(); + if ( !this._.selectedElements.length ) { + insertLinksIntoSelection( editor, data ); } else { - // We're only editing an existing link, so just overwrite the attributes. - var element = this._.selectedElement, - href = element.data( 'cke-saved-href' ), - textView = element.getHtml(); - - element.setAttributes( attributes.set ); - element.removeAttributes( attributes.removed ); - - // Update text view when user changes protocol (#4612). - if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) { - // Short mailto link text view (#5736). - element.setHtml( data.type == 'email' ? - data.email.address : attributes.set[ 'data-cke-saved-href' ] ); - - // We changed the content, so need to select it again. - selection.selectElement( element ); - } + editLinksInSelection( editor, this._.selectedElements, data ); - delete this._.selectedElement; + delete this._.selectedElements; } }, onLoad: function() { diff --git a/sources/plugins/link/icons/anchor-rtl.png b/sources/plugins/link/icons/anchor-rtl.png index 87d717d..b068855 100644 Binary files a/sources/plugins/link/icons/anchor-rtl.png and b/sources/plugins/link/icons/anchor-rtl.png differ diff --git a/sources/plugins/link/icons/anchor.png b/sources/plugins/link/icons/anchor.png index 0ca085f..e50d6cd 100644 Binary files a/sources/plugins/link/icons/anchor.png and b/sources/plugins/link/icons/anchor.png differ diff --git a/sources/plugins/link/icons/hidpi/anchor-rtl.png b/sources/plugins/link/icons/hidpi/anchor-rtl.png index cd6d4ea..3533c38 100644 Binary files a/sources/plugins/link/icons/hidpi/anchor-rtl.png and b/sources/plugins/link/icons/hidpi/anchor-rtl.png differ diff --git a/sources/plugins/link/icons/hidpi/anchor.png b/sources/plugins/link/icons/hidpi/anchor.png index c5869db..99eeadd 100644 Binary files a/sources/plugins/link/icons/hidpi/anchor.png and b/sources/plugins/link/icons/hidpi/anchor.png differ diff --git a/sources/plugins/link/icons/hidpi/link.png b/sources/plugins/link/icons/hidpi/link.png index bb8a069..43ce99e 100644 Binary files a/sources/plugins/link/icons/hidpi/link.png and b/sources/plugins/link/icons/hidpi/link.png differ diff --git a/sources/plugins/link/icons/hidpi/unlink.png b/sources/plugins/link/icons/hidpi/unlink.png index 5af59c2..8ace29d 100644 Binary files a/sources/plugins/link/icons/hidpi/unlink.png and b/sources/plugins/link/icons/hidpi/unlink.png differ diff --git a/sources/plugins/link/icons/link.png b/sources/plugins/link/icons/link.png index 95092d0..c2c450f 100644 Binary files a/sources/plugins/link/icons/link.png and b/sources/plugins/link/icons/link.png differ diff --git a/sources/plugins/link/icons/unlink.png b/sources/plugins/link/icons/unlink.png index 33a1599..c2f3f64 100644 Binary files a/sources/plugins/link/icons/unlink.png and b/sources/plugins/link/icons/unlink.png differ diff --git a/sources/plugins/link/images/anchor.png b/sources/plugins/link/images/anchor.png index 6d861a0..d94adb4 100644 Binary files a/sources/plugins/link/images/anchor.png and b/sources/plugins/link/images/anchor.png differ diff --git a/sources/plugins/link/images/hidpi/anchor.png b/sources/plugins/link/images/hidpi/anchor.png index f504843..186c3e9 100644 Binary files a/sources/plugins/link/images/hidpi/anchor.png and b/sources/plugins/link/images/hidpi/anchor.png differ diff --git a/sources/plugins/link/lang/af.js b/sources/plugins/link/lang/af.js index 10991c2..3032beb 100644 --- a/sources/plugins/link/lang/af.js +++ b/sources/plugins/link/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'af', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'af', { anchorName: 'Op ankernaam', charset: 'Karakterstel van geskakelde bron', cssClasses: 'CSS klasse', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-posadres', emailBody: 'Berig-inhoud', emailSubject: 'Berig-onderwerp', diff --git a/sources/plugins/link/lang/ar.js b/sources/plugins/link/lang/ar.js index 533d527..e0dd0d9 100644 --- a/sources/plugins/link/lang/ar.js +++ b/sources/plugins/link/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ar', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ar', { anchorName: 'حسب إسم الإشارة المرجعية', charset: 'ترميز المادة المطلوبة', cssClasses: 'فئات التنسيق', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'البريد الإلكتروني', emailBody: 'محتوى الرسالة', emailSubject: 'موضوع الرسالة', diff --git a/sources/plugins/link/lang/az.js b/sources/plugins/link/lang/az.js new file mode 100644 index 0000000..33588fe --- /dev/null +++ b/sources/plugins/link/lang/az.js @@ -0,0 +1,67 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'link', 'az', { + acccessKey: 'Qısayol düyməsi', + advanced: 'Geniş seçimləri', + advisoryContentType: 'Məsləhətli məzmunun növü', + advisoryTitle: 'Məsləhətli başlıq', + anchor: { + toolbar: 'Xeş', + menu: 'Xeşi redaktə et', + title: 'Xeşin seçimləri', + name: 'Xeşin adı', + errorName: 'Xeşin adı yanlışdır', + remove: 'Xeşin adı sil' + }, + anchorId: 'ID görə', + anchorName: 'Xeşin adına görə', + charset: 'Hədəfin kodlaşdırması', + cssClasses: 'Üslub klası', + download: 'Məcburi yükləmə', + displayText: 'Göstərilən mətn', + emailAddress: 'E-poçt ünvanı', + emailBody: 'Mesajın məzmunu', + emailSubject: 'Mesajın başlığı', + id: 'ID', + info: 'Linkin xüsusiyyətləri', + langCode: 'Dilin kodu', + langDir: 'Yaziların istiqaməti', + langDirLTR: 'Soldan sağa (LTR)', + langDirRTL: 'Sağdan sola (RTL)', + menu: 'Linki redaktə et', + name: 'Ad', + noAnchors: '(heç bir xeş tapılmayıb)', + noEmail: 'E-poçt ünvanı daxil edin', + noUrl: 'Linkin URL-ı daxil edin', + other: '', + popupDependent: 'Asılı (Netscape)', + popupFeatures: 'Pəncərənin xüsusiyyətləri', + popupFullScreen: 'Tam ekran rejimi (IE)', + popupLeft: 'Solda', + popupLocationBar: 'Ünvan paneli', + popupMenuBar: 'Menyu paneli', + popupResizable: 'Olçülər dəyişilir', + popupScrollBars: 'Sürüşdürmələr göstər', + popupStatusBar: 'Bildirişlərin paneli', + popupToolbar: 'Alətlərin paneli', + popupTop: 'Yuxarıda', + rel: 'Münasibət', + selectAnchor: 'Xeşi seçin', + styles: 'Üslub', + tabIndex: 'Tabın nömrəsi', + target: 'Hədəf çərçivə', + targetFrame: '', + targetFrameName: 'Freymin adı', + targetPopup: '', + targetPopupName: 'Pəncərənin adı', + title: 'Link', + toAnchor: 'Xeş', + toEmail: 'E-poçt', + toUrl: 'URL', + toolbar: 'Link', + type: 'Linkin növü', + unlink: 'Linki sil', + upload: 'Serverə yüklə' +} ); diff --git a/sources/plugins/link/lang/bg.js b/sources/plugins/link/lang/bg.js index a8e99a7..ad32915 100644 --- a/sources/plugins/link/lang/bg.js +++ b/sources/plugins/link/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'bg', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'bg', { anchorName: 'По име на котва', charset: 'Тип на свързания ресурс', cssClasses: 'Класове за CSS', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-mail aдрес', emailBody: 'Съдържание', emailSubject: 'Тема', diff --git a/sources/plugins/link/lang/bn.js b/sources/plugins/link/lang/bn.js index bd9d05e..c071821 100644 --- a/sources/plugins/link/lang/bn.js +++ b/sources/plugins/link/lang/bn.js @@ -1,9 +1,9 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'bn', { - acccessKey: 'এক্সেস কী', + acccessKey: 'প্রবেশ কী', advanced: 'এডভান্সড', advisoryContentType: 'পরামর্শ কন্টেন্টের প্রকার', advisoryTitle: 'পরামর্শ শীর্ষক', @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'bn', { anchorName: 'নোঙরের নাম দিয়ে', charset: 'লিংক রিসোর্স ক্যারেক্টর সেট', cssClasses: 'স্টাইল-শীট ক্লাস', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'ইমেইল ঠিকানা', emailBody: 'মেসেজের দেহ', emailSubject: 'মেসেজের বিষয়', diff --git a/sources/plugins/link/lang/bs.js b/sources/plugins/link/lang/bs.js index 39a1a84..d23ae35 100644 --- a/sources/plugins/link/lang/bs.js +++ b/sources/plugins/link/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'bs', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'bs', { anchorName: 'Po nazivu sidra', charset: 'Linked Resource Charset', cssClasses: 'Klase CSS stilova', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-Mail Adresa', emailBody: 'Poruka', emailSubject: 'Subjekt poruke', diff --git a/sources/plugins/link/lang/ca.js b/sources/plugins/link/lang/ca.js index 8b80e61..44a9ebd 100644 --- a/sources/plugins/link/lang/ca.js +++ b/sources/plugins/link/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ca', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ca', { anchorName: 'Per nom d\'àncora', charset: 'Conjunt de caràcters font enllaçat', cssClasses: 'Classes del full d\'estil', + download: 'Force Download', // MISSING + displayText: 'Text a mostrar', emailAddress: 'Adreça de correu electrònic', emailBody: 'Cos del missatge', emailSubject: 'Assumpte del missatge', diff --git a/sources/plugins/link/lang/cs.js b/sources/plugins/link/lang/cs.js index 45106c0..508c133 100644 --- a/sources/plugins/link/lang/cs.js +++ b/sources/plugins/link/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'cs', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'cs', { anchorName: 'Podle jména kotvy', charset: 'Přiřazená znaková sada', cssClasses: 'Třída stylu', + download: 'Force Download', // MISSING + displayText: 'Zobrazit text', emailAddress: 'E-mailová adresa', emailBody: 'Tělo zprávy', emailSubject: 'Předmět zprávy', diff --git a/sources/plugins/link/lang/cy.js b/sources/plugins/link/lang/cy.js index 358ec60..024b669 100644 --- a/sources/plugins/link/lang/cy.js +++ b/sources/plugins/link/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'cy', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'cy', { anchorName: 'Gan Enw\'r Angor', charset: 'Set Nodau\'r Adnodd Cysylltiedig', cssClasses: 'Dosbarthiadau Dalen Arddull', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Cyfeiriad E-Bost', emailBody: 'Corff y Neges', emailSubject: 'Testun y Neges', diff --git a/sources/plugins/link/lang/da.js b/sources/plugins/link/lang/da.js index 7a278c4..47adf58 100644 --- a/sources/plugins/link/lang/da.js +++ b/sources/plugins/link/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'da', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'da', { anchorName: 'Efter ankernavn', charset: 'Tegnsæt', cssClasses: 'Typografiark', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-mailadresse', emailBody: 'Besked', emailSubject: 'Emne', diff --git a/sources/plugins/link/lang/de-ch.js b/sources/plugins/link/lang/de-ch.js index d386d2a..eba8c7e 100644 --- a/sources/plugins/link/lang/de-ch.js +++ b/sources/plugins/link/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'de-ch', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'de-ch', { anchorName: 'Nach Ankername', charset: 'Verknüpfter Ressourcenzeichensatz', cssClasses: 'Formatvorlagenklasse', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-Mail-Adresse', emailBody: 'Nachrichtentext', emailSubject: 'Betreffzeile', diff --git a/sources/plugins/link/lang/de.js b/sources/plugins/link/lang/de.js index c8da86f..e73093f 100644 --- a/sources/plugins/link/lang/de.js +++ b/sources/plugins/link/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'de', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'de', { anchorName: 'Nach Ankername', charset: 'Verknüpfter Ressourcenzeichensatz', cssClasses: 'Formatvorlagenklasse', + download: 'Herunterladen erzwingen', + displayText: 'Anzeigetext', emailAddress: 'E-Mail-Adresse', emailBody: 'Nachrichtentext', emailSubject: 'Betreffzeile', diff --git a/sources/plugins/link/lang/el.js b/sources/plugins/link/lang/el.js index 53019a5..bf0fbb9 100644 --- a/sources/plugins/link/lang/el.js +++ b/sources/plugins/link/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'el', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'el', { anchorName: 'Βάσει του Ονόματος Άγκυρας', charset: 'Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής', cssClasses: 'Κλάσεις Φύλλων Στυλ', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Διεύθυνση E-mail', emailBody: 'Κείμενο Μηνύματος', emailSubject: 'Θέμα Μηνύματος', diff --git a/sources/plugins/link/lang/en-au.js b/sources/plugins/link/lang/en-au.js index 5e18970..f67a6f7 100644 --- a/sources/plugins/link/lang/en-au.js +++ b/sources/plugins/link/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'en-au', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'en-au', { anchorName: 'By Anchor Name', charset: 'Linked Resource Charset', cssClasses: 'Stylesheet Classes', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-Mail Address', emailBody: 'Message Body', emailSubject: 'Message Subject', diff --git a/sources/plugins/link/lang/en-ca.js b/sources/plugins/link/lang/en-ca.js index fb4b6c7..636ee5c 100644 --- a/sources/plugins/link/lang/en-ca.js +++ b/sources/plugins/link/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'en-ca', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'en-ca', { anchorName: 'By Anchor Name', charset: 'Linked Resource Charset', cssClasses: 'Stylesheet Classes', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-Mail Address', emailBody: 'Message Body', emailSubject: 'Message Subject', diff --git a/sources/plugins/link/lang/en-gb.js b/sources/plugins/link/lang/en-gb.js index a3af24c..f0f3506 100644 --- a/sources/plugins/link/lang/en-gb.js +++ b/sources/plugins/link/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'en-gb', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'en-gb', { anchorName: 'By Anchor Name', charset: 'Linked Resource Charset', cssClasses: 'Stylesheet Classes', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-Mail Address', emailBody: 'Message Body', emailSubject: 'Message Subject', diff --git a/sources/plugins/link/lang/en.js b/sources/plugins/link/lang/en.js index 1054741..8f613de 100644 --- a/sources/plugins/link/lang/en.js +++ b/sources/plugins/link/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'en', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'en', { anchorName: 'By Anchor Name', charset: 'Linked Resource Charset', cssClasses: 'Stylesheet Classes', + download: 'Force Download', + displayText: 'Display Text', emailAddress: 'E-Mail Address', emailBody: 'Message Body', emailSubject: 'Message Subject', diff --git a/sources/plugins/link/lang/eo.js b/sources/plugins/link/lang/eo.js index e0bc952..d2b6faf 100644 --- a/sources/plugins/link/lang/eo.js +++ b/sources/plugins/link/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'eo', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'eo', { anchorName: 'Per Ankronomo', charset: 'Signaro de la Ligita Rimedo', cssClasses: 'Klasoj de Stilfolioj', + download: 'Altrudi Elŝuton', + displayText: 'Vidigi Tekston', emailAddress: 'Retpoŝto', emailBody: 'Mesaĝa korpo', emailSubject: 'Mesaĝa Temo', diff --git a/sources/plugins/link/lang/es-mx.js b/sources/plugins/link/lang/es-mx.js new file mode 100644 index 0000000..1c27060 --- /dev/null +++ b/sources/plugins/link/lang/es-mx.js @@ -0,0 +1,67 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'link', 'es-mx', { + acccessKey: 'Llave de acceso', + advanced: 'Avanzada', + advisoryContentType: 'Tipo de contenido consultivo', + advisoryTitle: 'Título asesor', + anchor: { + toolbar: 'Ancla', + menu: 'Editar ancla', + title: 'Propiedades del ancla', + name: 'Nombre del ancla', + errorName: 'Escriba el nombre del ancla', + remove: 'Remover ancla' + }, + anchorId: 'Por Id del elemento', + anchorName: 'Por nombre del ancla', + charset: 'Recurso relacionado Charset', + cssClasses: 'Clases de estilo de hoja', + download: 'Forzar la descarga', + displayText: 'Mostrar texto', + emailAddress: 'Dirección de correo electrónico', + emailBody: 'Cuerpo del mensaje', + emailSubject: 'Asunto del mensaje', + id: 'Id', + info: 'Información del enlace', + langCode: 'Código del idioma', + langDir: 'Dirección del idioma', + langDirLTR: 'Izquierda a Derecha (LTR)', + langDirRTL: 'Derecha a Izquierda (RTL)', + menu: 'Editar enlace', + name: 'Nombre', + noAnchors: '(No hay anclas disponibles en el documento)', + noEmail: 'Escriba la dirección de correo electrónico', + noUrl: 'Escriba la URL del enlace', + other: '', + popupDependent: 'Dependiente (Netscape)', + popupFeatures: 'Ventana emergente', + popupFullScreen: 'Pantalla completa (IE)', + popupLeft: 'Posición Izquierda', + popupLocationBar: 'Ubicación de la barra', + popupMenuBar: 'Barra de menú', + popupResizable: 'Redimensionable', + popupScrollBars: 'Barras de desplazamiento', + popupStatusBar: 'Barra de estado', + popupToolbar: 'Barra de herramienta', + popupTop: 'Posición superior', + rel: 'Relación', + selectAnchor: 'Selecciona un ancla', + styles: 'Estilo', + tabIndex: 'Indice de tabulación', + target: 'Objetivo', + targetFrame: '', + targetFrameName: 'Nombre del marco de destino', + targetPopup: '', + targetPopupName: 'Nombre de ventana emergente', + title: 'Enlace', + toAnchor: 'Enlace al ancla en el texto', + toEmail: 'Correo electrónico', + toUrl: 'URL', + toolbar: 'Enlace', + type: 'Tipo de enlace', + unlink: 'Desconectar', + upload: 'Subir' +} ); diff --git a/sources/plugins/link/lang/es.js b/sources/plugins/link/lang/es.js index d17edbc..700ad86 100644 --- a/sources/plugins/link/lang/es.js +++ b/sources/plugins/link/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'es', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'es', { anchorName: 'Por Nombre de Referencia', charset: 'Fuente de caracteres vinculado', cssClasses: 'Clases de hojas de estilo', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Dirección de E-Mail', emailBody: 'Cuerpo del Mensaje', emailSubject: 'Título del Mensaje', diff --git a/sources/plugins/link/lang/et.js b/sources/plugins/link/lang/et.js index 09db6ca..7e31aa6 100644 --- a/sources/plugins/link/lang/et.js +++ b/sources/plugins/link/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'et', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'et', { anchorName: 'Ankru nime järgi', charset: 'Lingitud ressursi märgistik', cssClasses: 'Stiilistiku klassid', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-posti aadress', emailBody: 'Sõnumi tekst', emailSubject: 'Sõnumi teema', diff --git a/sources/plugins/link/lang/eu.js b/sources/plugins/link/lang/eu.js index f3415ab..7a2727e 100644 --- a/sources/plugins/link/lang/eu.js +++ b/sources/plugins/link/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'eu', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'eu', { anchorName: 'Aingura-izenaren arabera', charset: 'Estekatutako baliabide karaktere-jokoa', cssClasses: 'Estilo-orriko klaseak', + download: 'Force Download', // MISSING + displayText: 'Bistaratu testua', emailAddress: 'E-posta helbidea', emailBody: 'Mezuaren gorputza', emailSubject: 'Mezuaren gaia', diff --git a/sources/plugins/link/lang/fa.js b/sources/plugins/link/lang/fa.js index fa6dd5a..525d899 100644 --- a/sources/plugins/link/lang/fa.js +++ b/sources/plugins/link/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'fa', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'fa', { anchorName: 'با نام لنگر', charset: 'نویسه​گان منبع پیوند شده', cssClasses: 'کلاس​های شیوه​نامه(Stylesheet)', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'نشانی پست الکترونیکی', emailBody: 'متن پیام', emailSubject: 'موضوع پیام', diff --git a/sources/plugins/link/lang/fi.js b/sources/plugins/link/lang/fi.js index eedf64f..9ab5224 100644 --- a/sources/plugins/link/lang/fi.js +++ b/sources/plugins/link/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'fi', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'fi', { anchorName: 'Ankkurin nimen mukaan', charset: 'Linkitetty kirjaimisto', cssClasses: 'Tyyliluokat', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Sähköpostiosoite', emailBody: 'Viesti', emailSubject: 'Aihe', diff --git a/sources/plugins/link/lang/fo.js b/sources/plugins/link/lang/fo.js index d46eed4..90ab1ed 100644 --- a/sources/plugins/link/lang/fo.js +++ b/sources/plugins/link/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'fo', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'fo', { anchorName: 'Eftir navni á marknasteini', charset: 'Atknýtt teknsett', cssClasses: 'Typografi klassar', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Teldupost-adressa', emailBody: 'Breyðtekstur', emailSubject: 'Evni', diff --git a/sources/plugins/link/lang/fr-ca.js b/sources/plugins/link/lang/fr-ca.js index 816ad2b..ddf2dde 100644 --- a/sources/plugins/link/lang/fr-ca.js +++ b/sources/plugins/link/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'fr-ca', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'fr-ca', { anchorName: 'Par nom', charset: 'Encodage de la cible', cssClasses: 'Classes CSS', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Courriel', emailBody: 'Corps du message', emailSubject: 'Objet du message', diff --git a/sources/plugins/link/lang/fr.js b/sources/plugins/link/lang/fr.js index fe8755d..d40d8d9 100644 --- a/sources/plugins/link/lang/fr.js +++ b/sources/plugins/link/lang/fr.js @@ -1,15 +1,15 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'fr', { acccessKey: 'Touche d\'accessibilité', advanced: 'Avancé', - advisoryContentType: 'Type de contenu (ex: text/html)', - advisoryTitle: 'Description (title)', + advisoryContentType: 'Type de contenu (indicatif)', + advisoryTitle: 'Infobulle', anchor: { toolbar: 'Ancre', - menu: 'Editer l\'ancre', + menu: 'Modifier l\'ancre', title: 'Propriétés de l\'ancre', name: 'Nom de l\'ancre', errorName: 'Veuillez entrer le nom de l\'ancre.', @@ -17,49 +17,51 @@ CKEDITOR.plugins.setLang( 'link', 'fr', { }, anchorId: 'Par ID d\'élément', anchorName: 'Par nom d\'ancre', - charset: 'Charset de la cible', - cssClasses: 'Classe CSS', - emailAddress: 'Adresse E-Mail', + charset: 'Encodage de la ressource liée', + cssClasses: 'Classes de style', + download: 'Forcer le téléchargement', + displayText: 'Afficher le texte', + emailAddress: 'Adresse électronique', emailBody: 'Corps du message', emailSubject: 'Sujet du message', - id: 'Id', - info: 'Infos sur le lien', + id: 'ID', + info: 'Informations sur le lien', langCode: 'Code de langue', langDir: 'Sens d\'écriture', langDirLTR: 'Gauche à droite', - langDirRTL: 'Droite à gauche', - menu: 'Editer le lien', + langDirRTL: 'Droite à gauche (RTL)', + menu: 'Modifier le lien', name: 'Nom', noAnchors: '(Aucune ancre disponible dans ce document)', - noEmail: 'Veuillez entrer l\'adresse e-mail', - noUrl: 'Veuillez entrer l\'adresse du lien', + noEmail: 'Veuillez entrer l\'adresse électronique', + noUrl: 'Veuillez entrer l\'URL du lien', other: '', popupDependent: 'Dépendante (Netscape)', - popupFeatures: 'Options de la fenêtre popup', + popupFeatures: 'Caractéristiques de la fenêtre surgissante', popupFullScreen: 'Plein écran (IE)', - popupLeft: 'Position gauche', + popupLeft: 'À gauche', popupLocationBar: 'Barre d\'adresse', popupMenuBar: 'Barre de menu', popupResizable: 'Redimensionnable', popupScrollBars: 'Barres de défilement', - popupStatusBar: 'Barre de status', + popupStatusBar: 'Barre d\'état', popupToolbar: 'Barre d\'outils', - popupTop: 'Position haute', + popupTop: 'En haut', rel: 'Relation', - selectAnchor: 'Sélectionner l\'ancre', + selectAnchor: 'Sélectionner une ancre', styles: 'Style', - tabIndex: 'Index de tabulation', + tabIndex: 'Indice de tabulation', target: 'Cible', targetFrame: '', - targetFrameName: 'Nom du Cadre destination', - targetPopup: '', - targetPopupName: 'Nom de la fenêtre popup', + targetFrameName: 'Nom du cadre affecté', + targetPopup: '', + targetPopupName: 'Nom de la fenêtre surgissante', title: 'Lien', toAnchor: 'Ancre', - toEmail: 'E-mail', + toEmail: 'Courriel', toUrl: 'URL', toolbar: 'Lien', type: 'Type de lien', unlink: 'Supprimer le lien', - upload: 'Envoyer' + upload: 'Téléverser' } ); diff --git a/sources/plugins/link/lang/gl.js b/sources/plugins/link/lang/gl.js index bf55977..a7d7b0b 100644 --- a/sources/plugins/link/lang/gl.js +++ b/sources/plugins/link/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'gl', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'gl', { anchorName: 'Polo nome da ancoraxe', charset: 'Codificación do recurso ligado', cssClasses: 'Clases da folla de estilos', + download: 'Forzar a descarga', + displayText: 'Amosar o texto', emailAddress: 'Enderezo de correo', emailBody: 'Corpo da mensaxe', emailSubject: 'Asunto da mensaxe', diff --git a/sources/plugins/link/lang/gu.js b/sources/plugins/link/lang/gu.js index c054450..2bbf577 100644 --- a/sources/plugins/link/lang/gu.js +++ b/sources/plugins/link/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'gu', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'gu', { anchorName: 'ઍંકર નામથી પસંદ કરો', charset: 'લિંક રિસૉર્સ કૅરિક્ટર સેટ', cssClasses: 'સ્ટાઇલ-શીટ ક્લાસ', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'ઈ-મેલ સરનામું', emailBody: 'સંદેશ', emailSubject: 'ઈ-મેલ વિષય', diff --git a/sources/plugins/link/lang/he.js b/sources/plugins/link/lang/he.js index d6b67e1..a00f60a 100644 --- a/sources/plugins/link/lang/he.js +++ b/sources/plugins/link/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'he', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'he', { anchorName: 'עפ"י שם העוגן', charset: 'קידוד המשאב המקושר', cssClasses: 'גיליונות עיצוב קבוצות', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'כתובת הדוא"ל', emailBody: 'גוף ההודעה', emailSubject: 'נושא ההודעה', diff --git a/sources/plugins/link/lang/hi.js b/sources/plugins/link/lang/hi.js index 7c8939b..88b7df9 100644 --- a/sources/plugins/link/lang/hi.js +++ b/sources/plugins/link/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'hi', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'hi', { anchorName: 'ऐंकर नाम से', charset: 'लिंक रिसोर्स करॅक्टर सॅट', cssClasses: 'स्टाइल-शीट क्लास', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'ई-मेल पता', emailBody: 'संदेश', emailSubject: 'संदेश विषय', diff --git a/sources/plugins/link/lang/hr.js b/sources/plugins/link/lang/hr.js index 1d9f224..5bb1b88 100644 --- a/sources/plugins/link/lang/hr.js +++ b/sources/plugins/link/lang/hr.js @@ -1,12 +1,12 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'hr', { acccessKey: 'Pristupna tipka', advanced: 'Napredno', - advisoryContentType: 'Advisory vrsta sadržaja', - advisoryTitle: 'Advisory naslov', + advisoryContentType: 'Savjetodavna vrsta sadržaja', + advisoryTitle: 'Savjetodavni naslov', anchor: { toolbar: 'Ubaci/promijeni sidro', menu: 'Svojstva sidra', @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'hr', { anchorName: 'Po nazivu sidra', charset: 'Kodna stranica povezanih resursa', cssClasses: 'Stylesheet klase', + download: 'Preuzmi na silu', + displayText: 'Prikaži tekst', emailAddress: 'E-Mail adresa', emailBody: 'Sadržaj poruke', emailSubject: 'Naslov', @@ -54,12 +56,12 @@ CKEDITOR.plugins.setLang( 'link', 'hr', { targetFrameName: 'Ime ciljnog okvira', targetPopup: '', targetPopupName: 'Naziv popup prozora', - title: 'Link', + title: 'Veza', toAnchor: 'Sidro na ovoj stranici', toEmail: 'E-Mail', toUrl: 'URL', - toolbar: 'Ubaci/promijeni link', - type: 'Link vrsta', - unlink: 'Ukloni link', + toolbar: 'Ubaci/promijeni vezu', + type: 'Vrsta veze', + unlink: 'Ukloni vezu', upload: 'Pošalji' } ); diff --git a/sources/plugins/link/lang/hu.js b/sources/plugins/link/lang/hu.js index dd7c7ac..102ca56 100644 --- a/sources/plugins/link/lang/hu.js +++ b/sources/plugins/link/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'hu', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'hu', { anchorName: 'Horgony név szerint', charset: 'Hivatkozott tartalom kódlapja', cssClasses: 'Stíluskészlet', + download: 'Kötelező letöltés', + displayText: 'Megjelenített szöveg', emailAddress: 'E-Mail cím', emailBody: 'Üzenet', emailSubject: 'Üzenet tárgya', diff --git a/sources/plugins/link/lang/id.js b/sources/plugins/link/lang/id.js index ff8e559..e255eb5 100644 --- a/sources/plugins/link/lang/id.js +++ b/sources/plugins/link/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'id', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'id', { anchorName: 'By Anchor Name', // MISSING charset: 'Linked Resource Charset', // MISSING cssClasses: 'Kelas Stylesheet', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Alamat E-mail', emailBody: 'Message Body', // MISSING emailSubject: 'Judul Pesan', diff --git a/sources/plugins/link/lang/is.js b/sources/plugins/link/lang/is.js index 3abcded..ccdea0a 100644 --- a/sources/plugins/link/lang/is.js +++ b/sources/plugins/link/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'is', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'is', { anchorName: 'Eftir akkerisnafni', charset: 'Táknróf', cssClasses: 'Stílsniðsflokkur', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Netfang', emailBody: 'Meginmál', emailSubject: 'Efni', diff --git a/sources/plugins/link/lang/it.js b/sources/plugins/link/lang/it.js index 8130e3b..b6b93bf 100644 --- a/sources/plugins/link/lang/it.js +++ b/sources/plugins/link/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'it', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'it', { anchorName: 'Per Nome', charset: 'Set di caretteri della risorsa collegata', cssClasses: 'Nome classe CSS', + download: 'Forza scaricamento', + displayText: 'Mostra testo', emailAddress: 'Indirizzo E-Mail', emailBody: 'Corpo del messaggio', emailSubject: 'Oggetto del messaggio', diff --git a/sources/plugins/link/lang/ja.js b/sources/plugins/link/lang/ja.js index dc0ca23..342025f 100644 --- a/sources/plugins/link/lang/ja.js +++ b/sources/plugins/link/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ja', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ja', { anchorName: 'アンカー名', charset: 'リンク先のcharset', cssClasses: 'スタイルシートクラス', + download: '強制的にダウンロード', + displayText: '表示文字', emailAddress: 'E-Mail アドレス', emailBody: '本文', emailSubject: '件名', diff --git a/sources/plugins/link/lang/ka.js b/sources/plugins/link/lang/ka.js index c461a7f..439c43d 100644 --- a/sources/plugins/link/lang/ka.js +++ b/sources/plugins/link/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ka', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ka', { anchorName: 'ღუზის სახელით', charset: 'კოდირება', cssClasses: 'CSS კლასი', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'ელფოსტის მისამართები', emailBody: 'წერილის ტექსტი', emailSubject: 'წერილის სათაური', diff --git a/sources/plugins/link/lang/km.js b/sources/plugins/link/lang/km.js index d801953..5d0be03 100644 --- a/sources/plugins/link/lang/km.js +++ b/sources/plugins/link/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'km', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'km', { anchorName: 'តាម​ឈ្មោះ​យុថ្កា', charset: 'លេខកូតអក្សររបស់ឈ្នាប់', cssClasses: 'Stylesheet Classes', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'អាសយដ្ឋាន​អ៊ីមែល', emailBody: 'តួ​អត្ថបទ', emailSubject: 'ប្រធានបទ​សារ', diff --git a/sources/plugins/link/lang/ko.js b/sources/plugins/link/lang/ko.js index 2a83a41..894ac62 100644 --- a/sources/plugins/link/lang/ko.js +++ b/sources/plugins/link/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ko', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ko', { anchorName: '책갈피 이름', charset: '링크된 자료 문자열 인코딩', cssClasses: '스타일시트 클래스', + download: '강제 다운로드', + displayText: '보이는 글자', emailAddress: '이메일 주소', emailBody: '메시지 내용', emailSubject: '메시지 제목', diff --git a/sources/plugins/link/lang/ku.js b/sources/plugins/link/lang/ku.js index dbcad9f..ad06cd9 100644 --- a/sources/plugins/link/lang/ku.js +++ b/sources/plugins/link/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ku', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ku', { anchorName: 'بەپێی ناوی لەنگەر', charset: 'بەستەری سەرچاوەی نووسە', cssClasses: 'شێوازی چینی پەڕه', + download: 'داگرتنی بەهێز', + displayText: 'پیشاندانی دەق', emailAddress: 'ناونیشانی ئیمەیل', emailBody: 'ناوەڕۆکی نامە', emailSubject: 'بابەتی نامە', diff --git a/sources/plugins/link/lang/lt.js b/sources/plugins/link/lang/lt.js index db2ed72..27aa8b7 100644 --- a/sources/plugins/link/lang/lt.js +++ b/sources/plugins/link/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'lt', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'lt', { anchorName: 'Pagal žymės vardą', charset: 'Susietų išteklių simbolių lentelė', cssClasses: 'Stilių lentelės klasės', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'El.pašto adresas', emailBody: 'Žinutės turinys', emailSubject: 'Žinutės tema', diff --git a/sources/plugins/link/lang/lv.js b/sources/plugins/link/lang/lv.js index 8e3c649..ef8a3f2 100644 --- a/sources/plugins/link/lang/lv.js +++ b/sources/plugins/link/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'lv', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'lv', { anchorName: 'Pēc iezīmes nosaukuma', charset: 'Pievienotā resursa kodējums', cssClasses: 'Stilu saraksta klases', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-pasta adrese', emailBody: 'Ziņas saturs', emailSubject: 'Ziņas tēma', diff --git a/sources/plugins/link/lang/mk.js b/sources/plugins/link/lang/mk.js index 502f29c..5fb9655 100644 --- a/sources/plugins/link/lang/mk.js +++ b/sources/plugins/link/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'mk', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'mk', { anchorName: 'By Anchor Name', // MISSING charset: 'Linked Resource Charset', // MISSING cssClasses: 'Stylesheet Classes', // MISSING + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-Mail Address', // MISSING emailBody: 'Message Body', // MISSING emailSubject: 'Message Subject', // MISSING diff --git a/sources/plugins/link/lang/mn.js b/sources/plugins/link/lang/mn.js index 8935a8f..ed159c7 100644 --- a/sources/plugins/link/lang/mn.js +++ b/sources/plugins/link/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'mn', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'mn', { anchorName: 'Зангуугийн нэрээр', charset: 'Тэмдэгт оноох нөөцөд холбогдсон', cssClasses: 'Stylesheet классууд', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Э-шуудангийн хаяг', emailBody: 'Зурвасны их бие', emailSubject: 'Зурвасны гарчиг', diff --git a/sources/plugins/link/lang/ms.js b/sources/plugins/link/lang/ms.js index b244ba6..9a2e499 100644 --- a/sources/plugins/link/lang/ms.js +++ b/sources/plugins/link/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ms', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ms', { anchorName: 'dengan menggunakan nama pautan', charset: 'Linked Resource Charset', cssClasses: 'Kelas-kelas Stylesheet', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Alamat E-Mail', emailBody: 'Isi Kandungan Mesej', emailSubject: 'Subjek Mesej', diff --git a/sources/plugins/link/lang/nb.js b/sources/plugins/link/lang/nb.js index d9cedf7..7253b4a 100644 --- a/sources/plugins/link/lang/nb.js +++ b/sources/plugins/link/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'nb', { @@ -8,8 +8,8 @@ CKEDITOR.plugins.setLang( 'link', 'nb', { advisoryContentType: 'Type', advisoryTitle: 'Tittel', anchor: { - toolbar: 'Sett inn/Rediger anker', - menu: 'Egenskaper for anker', + toolbar: 'Anker', + menu: 'Rediger anker', title: 'Egenskaper for anker', name: 'Ankernavn', errorName: 'Vennligst skriv inn ankernavnet', @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'nb', { anchorName: 'Anker etter navn', charset: 'Lenket tegnsett', cssClasses: 'Stilarkklasser', + download: 'Tving nedlasting', + displayText: 'Tekst som skal vises', emailAddress: 'E-postadresse', emailBody: 'Melding', emailSubject: 'Meldingsemne', @@ -26,8 +28,8 @@ CKEDITOR.plugins.setLang( 'link', 'nb', { info: 'Lenkeinfo', langCode: 'Språkkode', langDir: 'Språkretning', - langDirLTR: 'Venstre til høyre (VTH)', - langDirRTL: 'Høyre til venstre (HTV)', + langDirLTR: 'Venstre til høyre (LTR)', + langDirRTL: 'Høyre til venstre (RTL)', menu: 'Rediger lenke', name: 'Navn', noAnchors: '(Ingen anker i dokumentet)', @@ -58,7 +60,7 @@ CKEDITOR.plugins.setLang( 'link', 'nb', { toAnchor: 'Lenke til anker i teksten', toEmail: 'E-post', toUrl: 'URL', - toolbar: 'Sett inn/Rediger lenke', + toolbar: 'Lenke', type: 'Lenketype', unlink: 'Fjern lenke', upload: 'Last opp' diff --git a/sources/plugins/link/lang/nl.js b/sources/plugins/link/lang/nl.js index 1c6036b..12cb509 100644 --- a/sources/plugins/link/lang/nl.js +++ b/sources/plugins/link/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'nl', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'nl', { anchorName: 'Op naam interne link', charset: 'Karakterset van gelinkte bron', cssClasses: 'Stylesheet-klassen', + download: 'Download forceren', + displayText: 'Weergavetekst', emailAddress: 'E-mailadres', emailBody: 'Inhoud bericht', emailSubject: 'Onderwerp bericht', diff --git a/sources/plugins/link/lang/no.js b/sources/plugins/link/lang/no.js index 0a4ef05..bdd7fc6 100644 --- a/sources/plugins/link/lang/no.js +++ b/sources/plugins/link/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'no', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'no', { anchorName: 'Anker etter navn', charset: 'Lenket tegnsett', cssClasses: 'Stilarkklasser', + download: 'Force Download', // MISSING + displayText: 'Tekst som skal vises', emailAddress: 'E-postadresse', emailBody: 'Melding', emailSubject: 'Meldingsemne', diff --git a/sources/plugins/link/lang/oc.js b/sources/plugins/link/lang/oc.js new file mode 100644 index 0000000..f9e51cd --- /dev/null +++ b/sources/plugins/link/lang/oc.js @@ -0,0 +1,67 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'link', 'oc', { + acccessKey: 'Tòca d\'accessibilitat', + advanced: 'Avançat', + advisoryContentType: 'Tipe de contengut (indicatiu)', + advisoryTitle: 'Infobulla', + anchor: { + toolbar: 'Ancòra', + menu: 'Modificar l\'ancòra', + title: 'Proprietats de l\'ancòra', + name: 'Nom de l\'ancòra', + errorName: 'Entratz lo nom de l\'ancòra', + remove: 'Suprimir l\'ancòra' + }, + anchorId: 'Per ID d\'element', + anchorName: 'Per nom d\'ancòra', + charset: 'Encodatge de la ressorsa ligada', + cssClasses: 'Classas d\'estil', + download: 'Forçar lo telecargament', + displayText: 'Afichar lo tèxte', + emailAddress: 'Adreça electronica', + emailBody: 'Còs del messatge', + emailSubject: 'Subjècte del messatge', + id: 'Id', + info: 'Informacions sul ligam', + langCode: 'Còdi de lenga', + langDir: 'Sens d\'escritura', + langDirLTR: 'Esquèrra a dreita (LTR)', + langDirRTL: 'Dreita a esquèrra (RTL)', + menu: 'Modificar lo ligam', + name: 'Nom', + noAnchors: '(Cap d\'ancòra pas disponibla dins aqueste document)', + noEmail: 'Entratz l\'adreça electronica', + noUrl: 'Entratz l\'URL del ligam', + other: '', + popupDependent: 'Dependenta (Netscape)', + popupFeatures: 'Caracteristicas de la fenèstra sorgissenta', + popupFullScreen: 'Ecran complet (IE)', + popupLeft: 'A esquèrra', + popupLocationBar: 'Barra d\'adreça', + popupMenuBar: 'Barra de menú', + popupResizable: 'Redimensionable', + popupScrollBars: 'Barras de desfilament', + popupStatusBar: 'Barra d\'estat', + popupToolbar: 'Barra d\'aisinas', + popupTop: 'Amont', + rel: 'Relacion', + selectAnchor: 'Seleccionar una ancòra', + styles: 'Estil', + tabIndex: 'Indici de tabulacion', + target: 'Cibla', + targetFrame: '', + targetFrameName: 'Nom del quadre afectat', + targetPopup: '', + targetPopupName: 'Nom de la fenèstra sorgissenta', + title: 'Ligam', + toAnchor: 'Ancòra', + toEmail: 'Corrièl', + toUrl: 'URL', + toolbar: 'Ligam', + type: 'Tipe de ligam', + unlink: 'Suprimir lo ligam', + upload: 'Mandar' +} ); diff --git a/sources/plugins/link/lang/pl.js b/sources/plugins/link/lang/pl.js index f37f856..41858d3 100644 --- a/sources/plugins/link/lang/pl.js +++ b/sources/plugins/link/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'pl', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'pl', { anchorName: 'Wg nazwy', charset: 'Kodowanie znaków obiektu docelowego', cssClasses: 'Nazwa klasy CSS', + download: 'Wymuś pobieranie', + displayText: 'Wyświetlany tekst', emailAddress: 'Adres e-mail', emailBody: 'Treść', emailSubject: 'Temat', diff --git a/sources/plugins/link/lang/pt-br.js b/sources/plugins/link/lang/pt-br.js index 04136f7..0c43149 100644 --- a/sources/plugins/link/lang/pt-br.js +++ b/sources/plugins/link/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'pt-br', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'pt-br', { anchorName: 'Nome da âncora', charset: 'Charset do Link', cssClasses: 'Classe de CSS', + download: 'Forçar Download', + displayText: 'Exibir Texto', emailAddress: 'Endereço E-Mail', emailBody: 'Corpo da Mensagem', emailSubject: 'Assunto da Mensagem', diff --git a/sources/plugins/link/lang/pt.js b/sources/plugins/link/lang/pt.js index cd31734..5f45548 100644 --- a/sources/plugins/link/lang/pt.js +++ b/sources/plugins/link/lang/pt.js @@ -1,65 +1,67 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'pt', { - acccessKey: 'Chave de Acesso', + acccessKey: 'Chave de acesso', advanced: 'Avançado', - advisoryContentType: 'Tipo de Conteúdo', + advisoryContentType: 'Tipo de conteúdo', advisoryTitle: 'Título', anchor: { - toolbar: ' Inserir/Editar Âncora', - menu: 'Propriedades da Âncora', - title: 'Propriedades da Âncora', - name: 'Nome da Âncora', + toolbar: ' Inserir/Editar âncora', + menu: 'Propriedades da âncora', + title: 'Propriedades da âncora', + name: 'Nome da âncora', errorName: 'Por favor, introduza o nome da âncora', - remove: 'Remove Anchor' + remove: 'Remover âncora' }, - anchorId: 'Por ID de elemento', + anchorId: 'Por ID do elemento', anchorName: 'Por Nome de Referência', charset: 'Fonte de caracteres vinculado', - cssClasses: 'Classes de Estilo de Folhas Classes', - emailAddress: 'Endereço de E-Mail', - emailBody: 'Corpo da Mensagem', - emailSubject: 'Título de Mensagem', + cssClasses: 'Classes de Estilo', + download: 'Force Download', // MISSING + displayText: 'Mostrar texto', + emailAddress: 'Endereço de email', + emailBody: 'Corpo da mensagem', + emailSubject: 'Título de mensagem', id: 'ID', - info: 'Informação de Hiperligação', - langCode: 'Orientação de idioma', + info: 'Informação da hiperligação', + langCode: 'Código de idioma', langDir: 'Orientação de idioma', - langDirLTR: 'Esquerda à Direita (LTR)', - langDirRTL: 'Direita a Esquerda (RTL)', - menu: 'Editar Hiperligação', + langDirLTR: 'Esquerda para a Direita (EPD)', + langDirRTL: 'Direita para a Esquerda (DPE)', + menu: 'Editar hiperligação', name: 'Nome', - noAnchors: '(Não há referências disponíveis no documento)', - noEmail: 'Por favor introduza o endereço de e-mail', - noUrl: 'Por favor introduza a hiperligação URL', + noAnchors: '(Não existem âncoras no documento)', + noEmail: 'Por favor, escreva o endereço de email', + noUrl: 'Por favor, introduza o endereço URL', other: '', popupDependent: 'Dependente (Netscape)', - popupFeatures: 'Características de Janela de Popup', - popupFullScreen: 'Janela Completa (IE)', - popupLeft: 'Posição Esquerda', + popupFeatures: 'Características de janela flutuante', + popupFullScreen: 'Janela completa (IE)', + popupLeft: 'Posição esquerda', popupLocationBar: 'Barra de localização', - popupMenuBar: 'Barra de Menu', + popupMenuBar: 'Barra de menu', popupResizable: 'Redimensionável', popupScrollBars: 'Barras de deslocamento', - popupStatusBar: 'Barra de Estado', + popupStatusBar: 'Barra de estado', popupToolbar: 'Barra de ferramentas', - popupTop: 'Posição Direita', + popupTop: 'Posição topo', rel: 'Relação', - selectAnchor: 'Seleccionar una referência', + selectAnchor: 'Selecionar âncora', styles: 'Estilo', tabIndex: 'Índice de tabulação', target: 'Alvo', targetFrame: '', - targetFrameName: 'Nome do Frame Destino', + targetFrameName: 'Nome da janela de destino', targetPopup: '', - targetPopupName: 'Nome da Janela de Popup', + targetPopupName: 'Nome da janela flutuante', title: 'Hiperligação', - toAnchor: 'Referência a esta página', + toAnchor: 'Ligar a âncora no texto', toEmail: 'Email', toUrl: 'URL', - toolbar: 'Inserir/Editar Hiperligação', - type: 'Tipo de Hiperligação', - unlink: 'Eliminar Hiperligação', + toolbar: 'Hiperligação', + type: 'Tipo de hiperligação', + unlink: 'Eliminar hiperligação', upload: 'Carregar' } ); diff --git a/sources/plugins/link/lang/ro.js b/sources/plugins/link/lang/ro.js index b561e57..a5d79a3 100644 --- a/sources/plugins/link/lang/ro.js +++ b/sources/plugins/link/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ro', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ro', { anchorName: 'după numele ancorei', charset: 'Setul de caractere al resursei legate', cssClasses: 'Clasele cu stilul paginii (CSS)', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Adresă de e-mail', emailBody: 'Opțiuni Meniu Contextual', emailSubject: 'Subiectul mesajului', diff --git a/sources/plugins/link/lang/ru.js b/sources/plugins/link/lang/ru.js index 5cb6575..7bc00d5 100644 --- a/sources/plugins/link/lang/ru.js +++ b/sources/plugins/link/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ru', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ru', { anchorName: 'По имени', charset: 'Кодировка ресурса', cssClasses: 'Классы CSS', + download: 'Скачать как файл', + displayText: 'Отображаемый текст', emailAddress: 'Email адрес', emailBody: 'Текст сообщения', emailSubject: 'Тема сообщения', diff --git a/sources/plugins/link/lang/si.js b/sources/plugins/link/lang/si.js index b8b4696..7ad9935 100644 --- a/sources/plugins/link/lang/si.js +++ b/sources/plugins/link/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'si', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'si', { anchorName: 'By Anchor Name', // MISSING charset: 'Linked Resource Charset', // MISSING cssClasses: 'විලාසපත්‍ර පන්තිය', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-Mail Address', // MISSING emailBody: 'Message Body', // MISSING emailSubject: 'Message Subject', // MISSING diff --git a/sources/plugins/link/lang/sk.js b/sources/plugins/link/lang/sk.js index d0186f3..6383fc9 100644 --- a/sources/plugins/link/lang/sk.js +++ b/sources/plugins/link/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'sk', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sk', { anchorName: 'Podľa mena kotvy', charset: 'Priradená znaková sada', cssClasses: 'Triedy štýlu', + download: 'Vynútené sťahovanie.', + displayText: 'Zobraziť text', emailAddress: 'E-Mailová adresa', emailBody: 'Telo správy', emailSubject: 'Predmet správy', diff --git a/sources/plugins/link/lang/sl.js b/sources/plugins/link/lang/sl.js index 392d7fe..911203f 100644 --- a/sources/plugins/link/lang/sl.js +++ b/sources/plugins/link/lang/sl.js @@ -1,42 +1,44 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'sl', { - acccessKey: 'Dostopno Geslo', + acccessKey: 'Tipka za dostop', advanced: 'Napredno', - advisoryContentType: 'Predlagani tip vsebine (content-type)', + advisoryContentType: 'Predlagana vrsta vsebine', advisoryTitle: 'Predlagani naslov', anchor: { - toolbar: 'Vstavi/uredi zaznamek', - menu: 'Lastnosti zaznamka', - title: 'Lastnosti zaznamka', - name: 'Ime zaznamka', - errorName: 'Prosim vnesite ime zaznamka', - remove: 'Remove Anchor' + toolbar: 'Sidro', + menu: 'Uredi sidro', + title: 'Lastnosti sidra', + name: 'Ime sidra', + errorName: 'Prosimo, vnesite ime sidra', + remove: 'Odstrani sidro' }, anchorId: 'Po ID-ju elementa', - anchorName: 'Po imenu zaznamka', - charset: 'Kodna tabela povezanega vira', - cssClasses: 'Razred stilne predloge', - emailAddress: 'Elektronski naslov', - emailBody: 'Vsebina sporočila', - emailSubject: 'Predmet sporočila', + anchorName: 'Po imenu sidra', + charset: 'Nabor znakov povezanega vira', + cssClasses: 'Razredi slogovne predloge', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'E-poštni naslov', + emailBody: 'Telo sporočila', + emailSubject: 'Zadeva sporočila', id: 'Id', info: 'Podatki o povezavi', - langCode: 'Smer jezika', + langCode: 'Koda jezika', langDir: 'Smer jezika', langDirLTR: 'Od leve proti desni (LTR)', langDirRTL: 'Od desne proti levi (RTL)', menu: 'Uredi povezavo', name: 'Ime', - noAnchors: '(V tem dokumentu ni zaznamkov)', - noEmail: 'Vnesite elektronski naslov', + noAnchors: '(V tem dokumentu ni sider)', + noEmail: 'Vnesite e-poštni naslov', noUrl: 'Vnesite URL povezave', - other: '', + other: '', popupDependent: 'Podokno (Netscape)', popupFeatures: 'Značilnosti pojavnega okna', - popupFullScreen: 'Celozaslonska slika (IE)', + popupFullScreen: 'Celozaslonsko (IE)', popupLeft: 'Lega levo', popupLocationBar: 'Naslovna vrstica', popupMenuBar: 'Menijska vrstica', @@ -46,7 +48,7 @@ CKEDITOR.plugins.setLang( 'link', 'sl', { popupToolbar: 'Orodna vrstica', popupTop: 'Lega na vrhu', rel: 'Odnos', - selectAnchor: 'Izberi zaznamek', + selectAnchor: 'Izberite sidro', styles: 'Slog', tabIndex: 'Številka tabulatorja', target: 'Cilj', @@ -55,11 +57,11 @@ CKEDITOR.plugins.setLang( 'link', 'sl', { targetPopup: '', targetPopupName: 'Ime pojavnega okna', title: 'Povezava', - toAnchor: 'Zaznamek na tej strani', - toEmail: 'Elektronski naslov', + toAnchor: 'Sidro na tej strani', + toEmail: 'E-pošta', toUrl: 'URL', toolbar: 'Vstavi/uredi povezavo', type: 'Vrsta povezave', unlink: 'Odstrani povezavo', - upload: 'Prenesi' + upload: 'Naloži' } ); diff --git a/sources/plugins/link/lang/sq.js b/sources/plugins/link/lang/sq.js index 33692f1..83b2fb7 100644 --- a/sources/plugins/link/lang/sq.js +++ b/sources/plugins/link/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'sq', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sq', { anchorName: 'Sipas Emrit të Spirancës', charset: 'Seti i Karaktereve të Burimeve të Nëdlidhura', cssClasses: 'Klasa stili CSS', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Posta Elektronike', emailBody: 'Trupi i Porosisë', emailSubject: 'Titulli i Porosisë', diff --git a/sources/plugins/link/lang/sr-latn.js b/sources/plugins/link/lang/sr-latn.js index 592f05a..8f6f6a7 100644 --- a/sources/plugins/link/lang/sr-latn.js +++ b/sources/plugins/link/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'sr-latn', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sr-latn', { anchorName: 'Po nazivu sidra', charset: 'Linked Resource Charset', cssClasses: 'Stylesheet klase', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'E-Mail adresa', emailBody: 'Sadržaj poruke', emailSubject: 'Naslov', diff --git a/sources/plugins/link/lang/sr.js b/sources/plugins/link/lang/sr.js index 6d5055b..18689da 100644 --- a/sources/plugins/link/lang/sr.js +++ b/sources/plugins/link/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'sr', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sr', { anchorName: 'По називу сидра', charset: 'Linked Resource Charset', cssClasses: 'Stylesheet класе', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Адреса електронске поште', emailBody: 'Садржај поруке', emailSubject: 'Наслов', diff --git a/sources/plugins/link/lang/sv.js b/sources/plugins/link/lang/sv.js index 30dc5b0..bc9f4c2 100644 --- a/sources/plugins/link/lang/sv.js +++ b/sources/plugins/link/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'sv', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sv', { anchorName: 'Efter ankarnamn', charset: 'Teckenuppställning', cssClasses: 'Stilmall', + download: 'Tvinga nerladdning', + displayText: 'Visningstext', emailAddress: 'E-postadress', emailBody: 'Innehåll', emailSubject: 'Ämne', @@ -40,7 +42,7 @@ CKEDITOR.plugins.setLang( 'link', 'sv', { popupLeft: 'Position från vänster', popupLocationBar: 'Adressfält', popupMenuBar: 'Menyfält', - popupResizable: 'Resizable', // MISSING + popupResizable: 'Skalbart', popupScrollBars: 'Scrolllista', popupStatusBar: 'Statusfält', popupToolbar: 'Verktygsfält', diff --git a/sources/plugins/link/lang/th.js b/sources/plugins/link/lang/th.js index d49dbb3..593838d 100644 --- a/sources/plugins/link/lang/th.js +++ b/sources/plugins/link/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'th', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'th', { anchorName: 'ชื่อ', charset: 'ลิงค์เชื่อมโยงไปยังชุดตัวอักษร', cssClasses: 'คลาสของไฟล์กำหนดลักษณะการแสดงผล', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'อีเมล์ (E-Mail)', emailBody: 'ข้อความ', emailSubject: 'หัวเรื่อง', diff --git a/sources/plugins/link/lang/tr.js b/sources/plugins/link/lang/tr.js index ce7b726..424ad7b 100644 --- a/sources/plugins/link/lang/tr.js +++ b/sources/plugins/link/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'tr', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'tr', { anchorName: 'Bağlantı Adı ile', charset: 'Bağlı Kaynak Karakter Gurubu', cssClasses: 'Biçem Sayfası Sınıfları', + download: 'İndirmeye Zorla', + displayText: 'Gösterim Metni', emailAddress: 'E-Posta Adresi', emailBody: 'İleti Gövdesi', emailSubject: 'İleti Konusu', diff --git a/sources/plugins/link/lang/tt.js b/sources/plugins/link/lang/tt.js index 4f2d077..25bd354 100644 --- a/sources/plugins/link/lang/tt.js +++ b/sources/plugins/link/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'tt', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'tt', { anchorName: 'Якорь исеме буенча', charset: 'Linked Resource Charset', // MISSING cssClasses: 'Стильләр класслары', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Электрон почта адресы', emailBody: 'Хат эчтәлеге', emailSubject: 'Хат темасы', diff --git a/sources/plugins/link/lang/ug.js b/sources/plugins/link/lang/ug.js index 0d81c27..3cf75b4 100644 --- a/sources/plugins/link/lang/ug.js +++ b/sources/plugins/link/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'ug', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ug', { anchorName: 'لەڭگەرلىك نۇقتا ئاتى بويىچە', charset: 'ھەرپ كودلىنىشى', cssClasses: 'ئۇسلۇب خىلى ئاتى', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'ئادرېس', emailBody: 'مەزمۇن', emailSubject: 'ماۋزۇ', diff --git a/sources/plugins/link/lang/uk.js b/sources/plugins/link/lang/uk.js index 655bdae..8322d86 100644 --- a/sources/plugins/link/lang/uk.js +++ b/sources/plugins/link/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'uk', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'uk', { anchorName: 'За ім\'ям елементу', charset: 'Кодування', cssClasses: 'Клас CSS', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Адреса ел. пошти', emailBody: 'Тіло повідомлення', emailSubject: 'Тема листа', diff --git a/sources/plugins/link/lang/vi.js b/sources/plugins/link/lang/vi.js index 6769108..d78012d 100644 --- a/sources/plugins/link/lang/vi.js +++ b/sources/plugins/link/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'vi', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'vi', { anchorName: 'Theo tên điểm neo', charset: 'Bảng mã của tài nguyên được liên kết đến', cssClasses: 'Lớp Stylesheet', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING emailAddress: 'Thư điện tử', emailBody: 'Nội dung thông điệp', emailSubject: 'Tiêu đề thông điệp', diff --git a/sources/plugins/link/lang/zh-cn.js b/sources/plugins/link/lang/zh-cn.js index af30dd8..6da9e96 100644 --- a/sources/plugins/link/lang/zh-cn.js +++ b/sources/plugins/link/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'zh-cn', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'zh-cn', { anchorName: '按锚点名称', charset: '字符编码', cssClasses: '样式类名称', + download: '强制下载', + displayText: '显示文本', emailAddress: '地址', emailBody: '内容', emailSubject: '主题', diff --git a/sources/plugins/link/lang/zh.js b/sources/plugins/link/lang/zh.js index 4dfa7cf..a2cee62 100644 --- a/sources/plugins/link/lang/zh.js +++ b/sources/plugins/link/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'link', 'zh', { @@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'zh', { anchorName: '依錨點名稱', charset: '連結資源的字元集', cssClasses: '樣式表類別', + download: '強制下載', + displayText: '顯示文字', emailAddress: '電子郵件地址', emailBody: '郵件本文', emailSubject: '郵件主旨', diff --git a/sources/plugins/link/plugin.js b/sources/plugins/link/plugin.js index db11376..120097f 100644 --- a/sources/plugins/link/plugin.js +++ b/sources/plugins/link/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -9,7 +9,7 @@ CKEDITOR.plugins.add( 'link', { requires: 'dialog,fakeobjects', // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'anchor,anchor-rtl,link,unlink', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% @@ -52,7 +52,7 @@ required = 'a[href]'; if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'advanced' ) ) - allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)' ); + allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)' ); if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'target' ) ) allowed = allowed.replace( ']', ',target,onclick]' ); @@ -92,9 +92,12 @@ CKEDITOR.dialog.add( 'anchor', this.path + 'dialogs/anchor.js' ); editor.on( 'doubleclick', function( evt ) { - var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || evt.data.element; + // If the link has descendants and the last part of it is also a part of a word partially + // unlinked, clicked element may be a descendant of the link, not the link itself (http://dev.ckeditor.com/ticket/11956). + // The evt.data.element.getAscendant( 'img', 1 ) condition allows opening anchor dialog if the anchor is empty (#501). + var element = evt.data.element.getAscendant( { a: 1, img: 1 }, true ); - if ( !element.isReadOnly() ) { + if ( element && !element.isReadOnly() ) { if ( element.is( 'a' ) ) { evt.data.dialog = ( element.getAttribute( 'name' ) && ( !element.getAttribute( 'href' ) || !element.getChildCount() ) ) ? 'anchor' : 'link'; @@ -108,7 +111,7 @@ // If event was cancelled, link passed in event data will not be selected. editor.on( 'doubleclick', function( evt ) { - // Make sure both links and anchors are selected (#11822). + // Make sure both links and anchors are selected (http://dev.ckeditor.com/ticket/11822). if ( evt.data.dialog in { link: 1, anchor: 1 } && evt.data.link ) editor.getSelection().selectElement( evt.data.link ); }, null, null, 20 ); @@ -311,20 +314,38 @@ * * @since 3.2.1 * @param {CKEDITOR.editor} editor + * @param {Boolean} [returnMultiple=false] Indicates whether the function should return only the first selected link or all of them. + * @returns {CKEDITOR.dom.element/CKEDITOR.dom.element[]/null} A single link element or an array of link + * elements relevant to the current selection. */ - getSelectedLink: function( editor ) { - var selection = editor.getSelection(); - var selectedElement = selection.getSelectedElement(); - if ( selectedElement && selectedElement.is( 'a' ) ) + getSelectedLink: function( editor, returnMultiple ) { + var selection = editor.getSelection(), + selectedElement = selection.getSelectedElement(), + ranges = selection.getRanges(), + links = [], + link, + range, + i; + + if ( !returnMultiple && selectedElement && selectedElement.is( 'a' ) ) { return selectedElement; + } + + for ( i = 0; i < ranges.length; i++ ) { + range = selection.getRanges()[ i ]; - var range = selection.getRanges()[ 0 ]; + // Skip bogus to cover cases of multiple selection inside tables (#tp2245). + range.shrink( CKEDITOR.SHRINK_TEXT, false, { skipBogus: true } ); + link = editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 ); - if ( range ) { - range.shrink( CKEDITOR.SHRINK_TEXT ); - return editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 ); + if ( link && returnMultiple ) { + links.push( link ); + } else if ( link ) { + return link; + } } - return null; + + return returnMultiple ? links : null; }, /** @@ -340,7 +361,7 @@ var editable = editor.editable(), // The scope of search for anchors is the entire document for inline editors - // and editor's editable for classic editor/divarea (#11359). + // and editor's editable for classic editor/divarea (http://dev.ckeditor.com/ticket/11359). scope = ( editable.isInline() && !editor.plugins.divarea ) ? editor.document : editable, links = scope.getElementsByTag( 'a' ), @@ -384,7 +405,7 @@ fakeAnchor: true, /** - * For browsers that do not support CSS3 `a[name]:empty()`. Note that IE9 is included because of #7783. + * For browsers that do not support CSS3 `a[name]:empty()`. Note that IE9 is included because of http://dev.ckeditor.com/ticket/7783. * * @readonly * @deprecated 4.3.3 It is set to `false` in every browser. @@ -438,7 +459,7 @@ if ( ( javascriptMatch = href.match( javascriptProtocolRegex ) ) ) { if ( emailProtection == 'encode' ) { href = href.replace( encodedEmailLinkRegex, function( match, protectedAddress, rest ) { - // Without it 'undefined' is appended to e-mails without subject and body (#9192). + // Without it 'undefined' is appended to e-mails without subject and body (http://dev.ckeditor.com/ticket/9192). rest = rest || ''; return 'mailto:' + @@ -513,7 +534,7 @@ var featureMatch; while ( ( featureMatch = popupFeaturesRegex.exec( onclickMatch[ 2 ] ) ) ) { - // Some values should remain numbers (#7300) + // Some values should remain numbers (http://dev.ckeditor.com/ticket/7300) if ( ( featureMatch[ 2 ] == 'yes' || featureMatch[ 2 ] == '1' ) && !( featureMatch[ 1 ] in { height: 1, width: 1, top: 1, left: 1 } ) ) retval.target[ featureMatch[ 1 ] ] = true; else if ( isFinite( featureMatch[ 2 ] ) ) @@ -527,6 +548,11 @@ }; } + var download = element.getAttribute( 'download' ); + if ( download !== null ) { + retval.download = true; + } + var advanced = {}; for ( var a in advAttrNames ) { @@ -666,6 +692,11 @@ } } + // Force download attribute. + if ( data.download ) { + set.download = ''; + } + // Advanced attributes. if ( data.advanced ) { for ( var a in advAttrNames ) { @@ -679,7 +710,7 @@ set[ 'data-cke-saved-name' ] = set.name; } - // Browser need the "href" fro copy/paste link to work. (#6641) + // Browser need the "href" fro copy/paste link to work. (http://dev.ckeditor.com/ticket/6641) if ( set[ 'data-cke-saved-href' ] ) set.href = set[ 'data-cke-saved-href' ]; @@ -687,7 +718,8 @@ target: 1, onclick: 1, 'data-cke-pa-onclick': 1, - 'data-cke-saved-name': 1 + 'data-cke-saved-name': 1, + 'download': 1 }; if ( data.advanced ) @@ -701,6 +733,41 @@ set: set, removed: CKEDITOR.tools.objectKeys( removed ) }; + }, + + + /** + * Determines whether an element should have a "Display Text" field in the Link dialog. + * + * @since 4.5.11 + * @param {CKEDITOR.dom.element/null} element Selected element, `null` if none selected or if a ranged selection + * is made. + * @param {CKEDITOR.editor} editor The editor instance for which the check is performed. + * @returns {Boolean} + */ + showDisplayTextForElement: function( element, editor ) { + var undesiredElements = { + img: 1, + table: 1, + tbody: 1, + thead: 1, + tfoot: 1, + input: 1, + select: 1, + textarea: 1 + }, + selection = editor.getSelection(); + + // Widget duck typing, we don't want to show display text for widgets. + if ( editor.widgets && editor.widgets.focused ) { + return false; + } + + if ( selection && selection.getRanges().length > 1 ) { + return false; + } + + return !element || !element.getName || !element.is( undesiredElements ); } }; @@ -709,8 +776,29 @@ CKEDITOR.unlinkCommand = function() {}; CKEDITOR.unlinkCommand.prototype = { exec: function( editor ) { + // IE/Edge removes link from selection while executing "unlink" command when cursor + // is right before/after link's text. Therefore whole link must be selected and the + // position of cursor must be restored to its initial state after unlinking. (http://dev.ckeditor.com/ticket/13062) + if ( CKEDITOR.env.ie ) { + var range = editor.getSelection().getRanges()[ 0 ], + link = ( range.getPreviousEditableNode() && range.getPreviousEditableNode().getAscendant( 'a', true ) ) || + ( range.getNextEditableNode() && range.getNextEditableNode().getAscendant( 'a', true ) ), + bookmark; + + if ( range.collapsed && link ) { + bookmark = range.createBookmark(); + range.selectNodeContents( link ); + range.select(); + } + } + var style = new CKEDITOR.style( { element: 'a', type: CKEDITOR.STYLE_INLINE, alwaysRemoveElement: 1 } ); editor.removeStyle( style ); + + if ( bookmark ) { + range.moveToBookmark( bookmark ); + range.select(); + } }, refresh: function( editor, path ) { @@ -727,7 +815,8 @@ contextSensitive: 1, startDisabled: 1, - requiredContent: 'a[href]' + requiredContent: 'a[href]', + editorFocus: 1 }; CKEDITOR.removeAnchorCommand = function() {}; diff --git a/sources/plugins/list/icons/bulletedlist-rtl.png b/sources/plugins/list/icons/bulletedlist-rtl.png index 766814a..2fed6b5 100644 Binary files a/sources/plugins/list/icons/bulletedlist-rtl.png and b/sources/plugins/list/icons/bulletedlist-rtl.png differ diff --git a/sources/plugins/list/icons/bulletedlist.png b/sources/plugins/list/icons/bulletedlist.png index e57ec7a..8d33138 100644 Binary files a/sources/plugins/list/icons/bulletedlist.png and b/sources/plugins/list/icons/bulletedlist.png differ diff --git a/sources/plugins/list/icons/hidpi/bulletedlist-rtl.png b/sources/plugins/list/icons/hidpi/bulletedlist-rtl.png index 50e3156..7e08fb3 100644 Binary files a/sources/plugins/list/icons/hidpi/bulletedlist-rtl.png and b/sources/plugins/list/icons/hidpi/bulletedlist-rtl.png differ diff --git a/sources/plugins/list/icons/hidpi/bulletedlist.png b/sources/plugins/list/icons/hidpi/bulletedlist.png index 00f84d0..796923f 100644 Binary files a/sources/plugins/list/icons/hidpi/bulletedlist.png and b/sources/plugins/list/icons/hidpi/bulletedlist.png differ diff --git a/sources/plugins/list/icons/hidpi/numberedlist-rtl.png b/sources/plugins/list/icons/hidpi/numberedlist-rtl.png index 1dff87d..2ece272 100644 Binary files a/sources/plugins/list/icons/hidpi/numberedlist-rtl.png and b/sources/plugins/list/icons/hidpi/numberedlist-rtl.png differ diff --git a/sources/plugins/list/icons/hidpi/numberedlist.png b/sources/plugins/list/icons/hidpi/numberedlist.png index c20b88f..20fe003 100644 Binary files a/sources/plugins/list/icons/hidpi/numberedlist.png and b/sources/plugins/list/icons/hidpi/numberedlist.png differ diff --git a/sources/plugins/list/icons/numberedlist-rtl.png b/sources/plugins/list/icons/numberedlist-rtl.png index 2c39858..3c62d8d 100644 Binary files a/sources/plugins/list/icons/numberedlist-rtl.png and b/sources/plugins/list/icons/numberedlist-rtl.png differ diff --git a/sources/plugins/list/icons/numberedlist.png b/sources/plugins/list/icons/numberedlist.png index f509a85..d47e0d5 100644 Binary files a/sources/plugins/list/icons/numberedlist.png and b/sources/plugins/list/icons/numberedlist.png differ diff --git a/sources/plugins/list/lang/af.js b/sources/plugins/list/lang/af.js index 08284ee..6b92ff6 100644 --- a/sources/plugins/list/lang/af.js +++ b/sources/plugins/list/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'af', { diff --git a/sources/plugins/list/lang/ar.js b/sources/plugins/list/lang/ar.js index 4166c77..a7a7de7 100644 --- a/sources/plugins/list/lang/ar.js +++ b/sources/plugins/list/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ar', { diff --git a/sources/plugins/list/lang/az.js b/sources/plugins/list/lang/az.js new file mode 100644 index 0000000..5d4e513 --- /dev/null +++ b/sources/plugins/list/lang/az.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'list', 'az', { + bulletedlist: 'Markerlənmiş siyahını başlat/sil', + numberedlist: 'Nömrələnmiş siyahını başlat/sil' +} ); diff --git a/sources/plugins/list/lang/bg.js b/sources/plugins/list/lang/bg.js index 919cb64..6ac7ab6 100644 --- a/sources/plugins/list/lang/bg.js +++ b/sources/plugins/list/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'bg', { diff --git a/sources/plugins/list/lang/bn.js b/sources/plugins/list/lang/bn.js index 3b0d4d9..cf6a85a 100644 --- a/sources/plugins/list/lang/bn.js +++ b/sources/plugins/list/lang/bn.js @@ -1,8 +1,8 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'bn', { - bulletedlist: 'বুলেট লিস্ট লেবেল', + bulletedlist: 'বুলেটেড তালিকা প্রবেশ/অপসারন করি', numberedlist: 'সাংখ্যিক লিস্টের লেবেল' } ); diff --git a/sources/plugins/list/lang/bs.js b/sources/plugins/list/lang/bs.js index d32464e..76877b5 100644 --- a/sources/plugins/list/lang/bs.js +++ b/sources/plugins/list/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'bs', { diff --git a/sources/plugins/list/lang/ca.js b/sources/plugins/list/lang/ca.js index 10df0a8..408cf53 100644 --- a/sources/plugins/list/lang/ca.js +++ b/sources/plugins/list/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ca', { diff --git a/sources/plugins/list/lang/cs.js b/sources/plugins/list/lang/cs.js index 8df6494..e04b94d 100644 --- a/sources/plugins/list/lang/cs.js +++ b/sources/plugins/list/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'cs', { diff --git a/sources/plugins/list/lang/cy.js b/sources/plugins/list/lang/cy.js index b8fbdd1..c786d4b 100644 --- a/sources/plugins/list/lang/cy.js +++ b/sources/plugins/list/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'cy', { diff --git a/sources/plugins/list/lang/da.js b/sources/plugins/list/lang/da.js index 9a54f9f..5c90ec9 100644 --- a/sources/plugins/list/lang/da.js +++ b/sources/plugins/list/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'da', { diff --git a/sources/plugins/list/lang/de-ch.js b/sources/plugins/list/lang/de-ch.js index a7566fc..7d72503 100644 --- a/sources/plugins/list/lang/de-ch.js +++ b/sources/plugins/list/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'de-ch', { diff --git a/sources/plugins/list/lang/de.js b/sources/plugins/list/lang/de.js index 0ad08ae..ef4b5f2 100644 --- a/sources/plugins/list/lang/de.js +++ b/sources/plugins/list/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'de', { diff --git a/sources/plugins/list/lang/el.js b/sources/plugins/list/lang/el.js index 248f10b..feeebac 100644 --- a/sources/plugins/list/lang/el.js +++ b/sources/plugins/list/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'el', { diff --git a/sources/plugins/list/lang/en-au.js b/sources/plugins/list/lang/en-au.js index 3aa94b9..d3bbc2b 100644 --- a/sources/plugins/list/lang/en-au.js +++ b/sources/plugins/list/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'en-au', { diff --git a/sources/plugins/list/lang/en-ca.js b/sources/plugins/list/lang/en-ca.js index 8eee06d..80be02f 100644 --- a/sources/plugins/list/lang/en-ca.js +++ b/sources/plugins/list/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'en-ca', { diff --git a/sources/plugins/list/lang/en-gb.js b/sources/plugins/list/lang/en-gb.js index 7acd42a..07db96c 100644 --- a/sources/plugins/list/lang/en-gb.js +++ b/sources/plugins/list/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'en-gb', { diff --git a/sources/plugins/list/lang/en.js b/sources/plugins/list/lang/en.js index e88b212..0bdc852 100644 --- a/sources/plugins/list/lang/en.js +++ b/sources/plugins/list/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'en', { diff --git a/sources/plugins/list/lang/eo.js b/sources/plugins/list/lang/eo.js index 8b7ead0..9242615 100644 --- a/sources/plugins/list/lang/eo.js +++ b/sources/plugins/list/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'eo', { diff --git a/sources/plugins/list/lang/es-mx.js b/sources/plugins/list/lang/es-mx.js new file mode 100644 index 0000000..5e50fcb --- /dev/null +++ b/sources/plugins/list/lang/es-mx.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'list', 'es-mx', { + bulletedlist: 'Insertar/Remover Lista con viñetas', + numberedlist: 'Insertar/Remover Lista numerada' +} ); diff --git a/sources/plugins/list/lang/es.js b/sources/plugins/list/lang/es.js index f3c94a1..37f1904 100644 --- a/sources/plugins/list/lang/es.js +++ b/sources/plugins/list/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'es', { diff --git a/sources/plugins/list/lang/et.js b/sources/plugins/list/lang/et.js index fcfe125..498c8a5 100644 --- a/sources/plugins/list/lang/et.js +++ b/sources/plugins/list/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'et', { diff --git a/sources/plugins/list/lang/eu.js b/sources/plugins/list/lang/eu.js index 7b96e14..254793d 100644 --- a/sources/plugins/list/lang/eu.js +++ b/sources/plugins/list/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'eu', { diff --git a/sources/plugins/list/lang/fa.js b/sources/plugins/list/lang/fa.js index 43d91ed..af3f9dd 100644 --- a/sources/plugins/list/lang/fa.js +++ b/sources/plugins/list/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'fa', { diff --git a/sources/plugins/list/lang/fi.js b/sources/plugins/list/lang/fi.js index b80340f..3874597 100644 --- a/sources/plugins/list/lang/fi.js +++ b/sources/plugins/list/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'fi', { diff --git a/sources/plugins/list/lang/fo.js b/sources/plugins/list/lang/fo.js index 812fa3f..416c667 100644 --- a/sources/plugins/list/lang/fo.js +++ b/sources/plugins/list/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'fo', { diff --git a/sources/plugins/list/lang/fr-ca.js b/sources/plugins/list/lang/fr-ca.js index f7bb322..e9eb2b7 100644 --- a/sources/plugins/list/lang/fr-ca.js +++ b/sources/plugins/list/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'fr-ca', { diff --git a/sources/plugins/list/lang/fr.js b/sources/plugins/list/lang/fr.js index f559f97..cb49ec7 100644 --- a/sources/plugins/list/lang/fr.js +++ b/sources/plugins/list/lang/fr.js @@ -1,8 +1,8 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'fr', { - bulletedlist: 'Insérer/Supprimer la liste à puces', - numberedlist: 'Insérer/Supprimer la liste numérotée' + bulletedlist: 'Insérer/Supprimer une liste à puces', + numberedlist: 'Insérer/Supprimer une liste numérotée' } ); diff --git a/sources/plugins/list/lang/gl.js b/sources/plugins/list/lang/gl.js index d89d402..d020a69 100644 --- a/sources/plugins/list/lang/gl.js +++ b/sources/plugins/list/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'gl', { diff --git a/sources/plugins/list/lang/gu.js b/sources/plugins/list/lang/gu.js index 8381217..24a728f 100644 --- a/sources/plugins/list/lang/gu.js +++ b/sources/plugins/list/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'gu', { diff --git a/sources/plugins/list/lang/he.js b/sources/plugins/list/lang/he.js index 2c0f892..118ddae 100644 --- a/sources/plugins/list/lang/he.js +++ b/sources/plugins/list/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'he', { diff --git a/sources/plugins/list/lang/hi.js b/sources/plugins/list/lang/hi.js index 6bf594d..a6bbca5 100644 --- a/sources/plugins/list/lang/hi.js +++ b/sources/plugins/list/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'hi', { diff --git a/sources/plugins/list/lang/hr.js b/sources/plugins/list/lang/hr.js index 5df25cc..ceb0a4c 100644 --- a/sources/plugins/list/lang/hr.js +++ b/sources/plugins/list/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'hr', { diff --git a/sources/plugins/list/lang/hu.js b/sources/plugins/list/lang/hu.js index 39b40db..cf2fe96 100644 --- a/sources/plugins/list/lang/hu.js +++ b/sources/plugins/list/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'hu', { diff --git a/sources/plugins/list/lang/id.js b/sources/plugins/list/lang/id.js index def3199..0b360dc 100644 --- a/sources/plugins/list/lang/id.js +++ b/sources/plugins/list/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'id', { diff --git a/sources/plugins/list/lang/is.js b/sources/plugins/list/lang/is.js index ea4ac73..a23e87e 100644 --- a/sources/plugins/list/lang/is.js +++ b/sources/plugins/list/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'is', { diff --git a/sources/plugins/list/lang/it.js b/sources/plugins/list/lang/it.js index 1a3c53b..611f6fb 100644 --- a/sources/plugins/list/lang/it.js +++ b/sources/plugins/list/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'it', { diff --git a/sources/plugins/list/lang/ja.js b/sources/plugins/list/lang/ja.js index 3d5b448..c2df282 100644 --- a/sources/plugins/list/lang/ja.js +++ b/sources/plugins/list/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ja', { diff --git a/sources/plugins/list/lang/ka.js b/sources/plugins/list/lang/ka.js index e5c1a3b..2053130 100644 --- a/sources/plugins/list/lang/ka.js +++ b/sources/plugins/list/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ka', { diff --git a/sources/plugins/list/lang/km.js b/sources/plugins/list/lang/km.js index 4df9646..71c0c7b 100644 --- a/sources/plugins/list/lang/km.js +++ b/sources/plugins/list/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'km', { diff --git a/sources/plugins/list/lang/ko.js b/sources/plugins/list/lang/ko.js index 73deb19..48b4fd0 100644 --- a/sources/plugins/list/lang/ko.js +++ b/sources/plugins/list/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ko', { diff --git a/sources/plugins/list/lang/ku.js b/sources/plugins/list/lang/ku.js index 585373f..c5d0d9c 100644 --- a/sources/plugins/list/lang/ku.js +++ b/sources/plugins/list/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ku', { diff --git a/sources/plugins/list/lang/lt.js b/sources/plugins/list/lang/lt.js index 820bde9..0eac62e 100644 --- a/sources/plugins/list/lang/lt.js +++ b/sources/plugins/list/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'lt', { diff --git a/sources/plugins/list/lang/lv.js b/sources/plugins/list/lang/lv.js index 062effc..6738856 100644 --- a/sources/plugins/list/lang/lv.js +++ b/sources/plugins/list/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'lv', { diff --git a/sources/plugins/list/lang/mk.js b/sources/plugins/list/lang/mk.js index 4fa9e4d..4054ea2 100644 --- a/sources/plugins/list/lang/mk.js +++ b/sources/plugins/list/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'mk', { diff --git a/sources/plugins/list/lang/mn.js b/sources/plugins/list/lang/mn.js index b12f230..ef9d4e0 100644 --- a/sources/plugins/list/lang/mn.js +++ b/sources/plugins/list/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'mn', { diff --git a/sources/plugins/list/lang/ms.js b/sources/plugins/list/lang/ms.js index 1ebba10..6d51a33 100644 --- a/sources/plugins/list/lang/ms.js +++ b/sources/plugins/list/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ms', { diff --git a/sources/plugins/list/lang/nb.js b/sources/plugins/list/lang/nb.js index 1e96a9f..0e817c8 100644 --- a/sources/plugins/list/lang/nb.js +++ b/sources/plugins/list/lang/nb.js @@ -1,8 +1,8 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'nb', { - bulletedlist: 'Legg til / fjern punktmerket liste', + bulletedlist: 'Legg til / fjern punktliste', numberedlist: 'Legg til / fjern nummerert liste' } ); diff --git a/sources/plugins/list/lang/nl.js b/sources/plugins/list/lang/nl.js index 49aeedf..65f71e9 100644 --- a/sources/plugins/list/lang/nl.js +++ b/sources/plugins/list/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'nl', { diff --git a/sources/plugins/list/lang/no.js b/sources/plugins/list/lang/no.js index c2794c0..dc129c5 100644 --- a/sources/plugins/list/lang/no.js +++ b/sources/plugins/list/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'no', { diff --git a/sources/plugins/list/lang/oc.js b/sources/plugins/list/lang/oc.js new file mode 100644 index 0000000..4705e9a --- /dev/null +++ b/sources/plugins/list/lang/oc.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'list', 'oc', { + bulletedlist: 'Inserir/Suprimir una lista amb de piuses', + numberedlist: 'Inserir/Suprimir una lista numerotada' +} ); diff --git a/sources/plugins/list/lang/pl.js b/sources/plugins/list/lang/pl.js index c95238e..0a0e552 100644 --- a/sources/plugins/list/lang/pl.js +++ b/sources/plugins/list/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'pl', { diff --git a/sources/plugins/list/lang/pt-br.js b/sources/plugins/list/lang/pt-br.js index 47faf0c..b0edd8e 100644 --- a/sources/plugins/list/lang/pt-br.js +++ b/sources/plugins/list/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'pt-br', { diff --git a/sources/plugins/list/lang/pt.js b/sources/plugins/list/lang/pt.js index 36c8be8..52d4348 100644 --- a/sources/plugins/list/lang/pt.js +++ b/sources/plugins/list/lang/pt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'pt', { diff --git a/sources/plugins/list/lang/ro.js b/sources/plugins/list/lang/ro.js index ae66ff3..c229901 100644 --- a/sources/plugins/list/lang/ro.js +++ b/sources/plugins/list/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ro', { diff --git a/sources/plugins/list/lang/ru.js b/sources/plugins/list/lang/ru.js index 293ecbd..862fa78 100644 --- a/sources/plugins/list/lang/ru.js +++ b/sources/plugins/list/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ru', { diff --git a/sources/plugins/list/lang/si.js b/sources/plugins/list/lang/si.js index 02566bc..de2fc4d 100644 --- a/sources/plugins/list/lang/si.js +++ b/sources/plugins/list/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'si', { diff --git a/sources/plugins/list/lang/sk.js b/sources/plugins/list/lang/sk.js index 4621b15..11ca0ee 100644 --- a/sources/plugins/list/lang/sk.js +++ b/sources/plugins/list/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'sk', { diff --git a/sources/plugins/list/lang/sl.js b/sources/plugins/list/lang/sl.js index 40c1d8d..368f9f6 100644 --- a/sources/plugins/list/lang/sl.js +++ b/sources/plugins/list/lang/sl.js @@ -1,8 +1,8 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'sl', { - bulletedlist: 'Označen seznam', - numberedlist: 'Oštevilčen seznam' + bulletedlist: 'Vstavi/odstrani neoštevilčen seznam', + numberedlist: 'Vstavi/odstrani oštevilčen seznam' } ); diff --git a/sources/plugins/list/lang/sq.js b/sources/plugins/list/lang/sq.js index d63dab0..121b41e 100644 --- a/sources/plugins/list/lang/sq.js +++ b/sources/plugins/list/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'sq', { diff --git a/sources/plugins/list/lang/sr-latn.js b/sources/plugins/list/lang/sr-latn.js index 990fd21..134aa69 100644 --- a/sources/plugins/list/lang/sr-latn.js +++ b/sources/plugins/list/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'sr-latn', { diff --git a/sources/plugins/list/lang/sr.js b/sources/plugins/list/lang/sr.js index 5853621..c54ca8a 100644 --- a/sources/plugins/list/lang/sr.js +++ b/sources/plugins/list/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'sr', { diff --git a/sources/plugins/list/lang/sv.js b/sources/plugins/list/lang/sv.js index fa93ade..3a12793 100644 --- a/sources/plugins/list/lang/sv.js +++ b/sources/plugins/list/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'sv', { diff --git a/sources/plugins/list/lang/th.js b/sources/plugins/list/lang/th.js index fa84203..8a47731 100644 --- a/sources/plugins/list/lang/th.js +++ b/sources/plugins/list/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'th', { diff --git a/sources/plugins/list/lang/tr.js b/sources/plugins/list/lang/tr.js index 8e8d925..976e479 100644 --- a/sources/plugins/list/lang/tr.js +++ b/sources/plugins/list/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'tr', { diff --git a/sources/plugins/list/lang/tt.js b/sources/plugins/list/lang/tt.js index 2c5da84..eb103ab 100644 --- a/sources/plugins/list/lang/tt.js +++ b/sources/plugins/list/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'tt', { diff --git a/sources/plugins/list/lang/ug.js b/sources/plugins/list/lang/ug.js index 5323bee..442b92e 100644 --- a/sources/plugins/list/lang/ug.js +++ b/sources/plugins/list/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'ug', { diff --git a/sources/plugins/list/lang/uk.js b/sources/plugins/list/lang/uk.js index 5ee50a7..65a3e1d 100644 --- a/sources/plugins/list/lang/uk.js +++ b/sources/plugins/list/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'uk', { diff --git a/sources/plugins/list/lang/vi.js b/sources/plugins/list/lang/vi.js index 506567e..e9e3acc 100644 --- a/sources/plugins/list/lang/vi.js +++ b/sources/plugins/list/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'vi', { diff --git a/sources/plugins/list/lang/zh-cn.js b/sources/plugins/list/lang/zh-cn.js index 9eb185f..5e0408b 100644 --- a/sources/plugins/list/lang/zh-cn.js +++ b/sources/plugins/list/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'zh-cn', { diff --git a/sources/plugins/list/lang/zh.js b/sources/plugins/list/lang/zh.js index ae02b93..3d207d6 100644 --- a/sources/plugins/list/lang/zh.js +++ b/sources/plugins/list/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'list', 'zh', { diff --git a/sources/plugins/list/plugin.js b/sources/plugins/list/plugin.js index 68b4f02..73f5d0b 100644 --- a/sources/plugins/list/plugin.js +++ b/sources/plugins/list/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -60,7 +60,7 @@ for ( var i = 0, count = listNode.getChildCount(); i < count; i++ ) { var listItem = listNode.getChild( i ); - // Fixing malformed nested lists by moving it into a previous list item. (#6236) + // Fixing malformed nested lists by moving it into a previous list item. (http://dev.ckeditor.com/ticket/6236) if ( listItem.type == CKEDITOR.NODE_ELEMENT && listItem.getName() in CKEDITOR.dtd.$list ) CKEDITOR.plugins.list.listToArray( listItem, database, baseArray, baseIndentLevel + 1 ); @@ -137,13 +137,13 @@ currentListItem.append( item.contents[ i ].clone( 1, 1 ) ); currentIndex++; } else if ( item.indent == Math.max( indentLevel, 0 ) + 1 ) { - // Maintain original direction (#6861). + // Maintain original direction (http://dev.ckeditor.com/ticket/6861). var currDir = listArray[ currentIndex - 1 ].element.getDirection( 1 ), listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode, currDir != orgDir ? orgDir : null ); // If the next block is an
      2. with another list tree as the first // child, we'll need to append a filler (
        /NBSP) or the list item - // wouldn't be editable. (#6724) + // wouldn't be editable. (http://dev.ckeditor.com/ticket/6724) if ( !currentListItem.getChildCount() && CKEDITOR.env.needsNbspFiller && doc.$.documentMode <= 7 ) currentListItem.append( doc.createText( '\xa0' ) ); currentListItem.append( listData.listNode ); @@ -416,7 +416,7 @@ contentBlock.appendTo( listItem ); else { contentBlock.copyAttributes( listItem ); - // Remove direction attribute after it was merged into list root. (#7657) + // Remove direction attribute after it was merged into list root. (http://dev.ckeditor.com/ticket/7657) if ( listDir && contentBlock.getDirection() ) { listItem.removeStyle( 'direction' ); listItem.removeAttribute( 'dir' ); @@ -477,7 +477,7 @@ var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, groupObj.root.getAttribute( 'dir' ) ); - // Compensate
        before/after the list node if the surrounds are non-blocks.(#3836) + // Compensate
        before/after the list node if the surrounds are non-blocks.(http://dev.ckeditor.com/ticket/3836) var docFragment = newList.listNode, boundaryNode, siblingNode; @@ -504,9 +504,9 @@ // Checks wheather this block should be element preserved (not transformed to
      3. ) when creating list. function shouldPreserveBlock( block ) { return ( - // #5335 + // http://dev.ckeditor.com/ticket/5335 block.is( 'pre' ) || - // #5271 - this is a header. + // http://dev.ckeditor.com/ticket/5271 - this is a header. headerTagRegex.test( block.getName() ) || // 11083 - this is a non-editable element. block.getAttribute( 'contenteditable' ) == 'false' @@ -523,7 +523,7 @@ var elementType = CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT ); - // Merge child nodes with direction preserved. (#7448) + // Merge child nodes with direction preserved. (http://dev.ckeditor.com/ticket/7448) function mergeChildren( from, into, refNode, forward ) { var child, itemDir; while ( ( child = from[ forward ? 'getLast' : 'getFirst' ]( elementType ) ) ) { @@ -556,7 +556,7 @@ selection.selectRanges( ranges ); } // Maybe a single range there enclosing the whole list, - // turn on the list state manually(#4129). + // turn on the list state manually(http://dev.ckeditor.com/ticket/4129). else { var range = ranges.length == 1 && ranges[ 0 ], enclosedNode = range && range.getEnclosedNode(); @@ -606,13 +606,13 @@ // First, try to group by a list ancestor. for ( var i = pathElementsCount - 1; i >= 0 && ( element = pathElements[ i ] ); i-- ) { - // Don't leak outside block limit (#3940). + // Don't leak outside block limit (http://dev.ckeditor.com/ticket/3940). if ( listNodeNames[ element.getName() ] && blockLimit.contains( element ) ) { // If we've encountered a list inside a block limit // The last group object of the block limit element should // no longer be valid. Since paragraphs after the list // should belong to a different group of paragraphs before - // the list. (Bug #1309) + // the list. (Bug http://dev.ckeditor.com/ticket/1309) blockLimit.removeCustomData( 'list_group_object_' + index ); var groupObj = element.getCustomData( 'list_group_object' ); @@ -688,7 +688,7 @@ function mergeSibling( rtl ) { var sibling = listNode[ rtl ? 'getPrevious' : 'getNext' ]( nonEmpty ); if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT && sibling.is( listNode.getName() ) ) { - // Move children order by merge direction.(#3820) + // Move children order by merge direction.(http://dev.ckeditor.com/ticket/3820) mergeChildren( listNode, sibling, null, !rtl ); listNode.remove(); @@ -770,7 +770,7 @@ nextPath = nextCursor.startPath(); nextBlock = nextPath.block; - // Abort when nothing to be removed (#10890). + // Abort when nothing to be removed (http://dev.ckeditor.com/ticket/10890). if ( !nextBlock ) break; @@ -785,7 +785,7 @@ nextBlock.remove(); } - // Check if need to further merge with the list resides after the merged block. (#9080) + // Check if need to further merge with the list resides after the merged block. (http://dev.ckeditor.com/ticket/9080) var walkerRng = nextCursor.clone(), editable = editor.editable(); walkerRng.setEndAt( editable, CKEDITOR.POSITION_BEFORE_END ); var walker = new CKEDITOR.dom.walker( walkerRng ); @@ -811,7 +811,7 @@ CKEDITOR.plugins.add( 'list', { // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'bulletedlist,bulletedlist-rtl,numberedlist,numberedlist-rtl', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% @@ -840,7 +840,7 @@ } ); } - // Handled backspace/del key to join list items. (#8248,#9080) + // Handled backspace/del key to join list items. (http://dev.ckeditor.com/ticket/8248,http://dev.ckeditor.com/ticket/9080) editor.on( 'key', function( evt ) { // Use getKey directly in order to ignore modifiers. // Justification: http://dev.ckeditor.com/ticket/11861#comment:13 @@ -908,7 +908,7 @@ // Place cursor at the end of previous block. cursor.moveToElementEditEnd( joinWith ); - // And then just before end of closest block element (#12729). + // And then just before end of closest block element (http://dev.ckeditor.com/ticket/12729). cursor.moveToPosition( cursor.endPath().block, CKEDITOR.POSITION_BEFORE_END ); } } @@ -919,7 +919,7 @@ } else { var list = path.contains( listNodeNames ); - // Backspace pressed at the start of list outdents the first list item. (#9129) + // Backspace pressed at the start of list outdents the first list item. (http://dev.ckeditor.com/ticket/9129) if ( list && range.checkBoundaryOfElement( list, CKEDITOR.START ) ) { li = list.getFirst( nonEmpty ); @@ -981,7 +981,7 @@ nextLine = range.clone(); nextLine.moveToElementEditStart( next ); - // #13409 + // http://dev.ckeditor.com/ticket/13409 // For the following case and similar // //
          @@ -1049,7 +1049,7 @@ } } - // Moving `cursor` and `next line` only when at the end literally (#12729). + // Moving `cursor` and `next line` only when at the end literally (http://dev.ckeditor.com/ticket/12729). if ( isAtEnd == 2 ) { cursor.moveToPosition( cursor.endPath().block, CKEDITOR.POSITION_BEFORE_END ); diff --git a/sources/plugins/listblock/plugin.js b/sources/plugins/listblock/plugin.js index e998167..100159a 100644 --- a/sources/plugins/listblock/plugin.js +++ b/sources/plugins/listblock/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -12,7 +12,7 @@ CKEDITOR.plugins.add( 'listblock', { '' + '{text}' + '' + @@ -50,7 +50,7 @@ CKEDITOR.plugins.add( 'listblock', { keys[ 38 ] = 'prev'; // ARROW-UP keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB keys[ 32 ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // SPACE - CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (#8041). + CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (http://dev.ckeditor.com/ticket/8041). this._.pendingHtml = []; this._.pendingList = []; @@ -180,6 +180,14 @@ CKEDITOR.plugins.add( 'listblock', { this.onMark && this.onMark( item ); }, + markFirstDisplayed: function() { + var context = this; + this._.markFirstDisplayed( function() { + if ( !context.multiSelect ) + context.unmarkAll(); + } ); + }, + unmark: function( value ) { var doc = this.element.getDocument(), itemId = this._.items[ value ], diff --git a/sources/plugins/liststyle/dialogs/liststyle.js b/sources/plugins/liststyle/dialogs/liststyle.js index c9f3430..4f8f39b 100644 --- a/sources/plugins/liststyle/dialogs/liststyle.js +++ b/sources/plugins/liststyle/dialogs/liststyle.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/liststyle/lang/af.js b/sources/plugins/liststyle/lang/af.js index 6e1f287..71ba760 100644 --- a/sources/plugins/liststyle/lang/af.js +++ b/sources/plugins/liststyle/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'af', { diff --git a/sources/plugins/liststyle/lang/ar.js b/sources/plugins/liststyle/lang/ar.js index 39ba5b1..7d961df 100644 --- a/sources/plugins/liststyle/lang/ar.js +++ b/sources/plugins/liststyle/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ar', { diff --git a/sources/plugins/liststyle/lang/az.js b/sources/plugins/liststyle/lang/az.js new file mode 100644 index 0000000..73fc927 --- /dev/null +++ b/sources/plugins/liststyle/lang/az.js @@ -0,0 +1,25 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'liststyle', 'az', { + armenian: 'Erməni nömrələmə', + bulletedTitle: 'Markerlənmiş siyahının xüsusiyyətləri', + circle: 'Dəirəcik', + decimal: 'Rəqəm (1, 2, 3 və s.)', + decimalLeadingZero: 'Aparıcı sıfır olan rəqəm (01, 02, 03 və s.)', + disc: 'Disk', + georgian: 'Gürcü nömrələmə (an, ban, gan, və s.)', + lowerAlpha: 'Kiçik hərflər (a, b, c, d, e və s.)', + lowerGreek: 'Kiçik Yunan hərfləri (alfa, beta, qamma və s.)', + lowerRoman: 'Rum rəqəmləri (i, ii, iii, iv, v və s.)', + none: 'Yoxdur', + notset: '', + numberedTitle: 'Nömrəli siyahının xüsusiyyətləri', + square: 'Dördbucaq', + start: 'Başlanğıc', + type: 'Növ', + upperAlpha: 'Böyük hərflər (a, b, c, d, e və s.)', + upperRoman: 'Böyük Rum rəqəmləri (I, II, III, IV, V və s.)', + validateStartNumber: 'Siyahının başlanğıc nömrəsi tam və müsbət rəqəm olmalıdır.' +} ); diff --git a/sources/plugins/liststyle/lang/bg.js b/sources/plugins/liststyle/lang/bg.js index 99b3535..a119fd4 100644 --- a/sources/plugins/liststyle/lang/bg.js +++ b/sources/plugins/liststyle/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'bg', { diff --git a/sources/plugins/liststyle/lang/bn.js b/sources/plugins/liststyle/lang/bn.js index 67081fe..f1b7bf3 100644 --- a/sources/plugins/liststyle/lang/bn.js +++ b/sources/plugins/liststyle/lang/bn.js @@ -1,9 +1,9 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'bn', { - armenian: 'Armenian numbering', + armenian: 'আর্মেনিয়ান সংখ্যাক্রমে বিন্যাস', bulletedTitle: 'Bulleted List Properties', circle: 'Circle', decimal: 'Decimal (1, 2, 3, etc.)', diff --git a/sources/plugins/liststyle/lang/bs.js b/sources/plugins/liststyle/lang/bs.js index 1cf4a07..163d1fb 100644 --- a/sources/plugins/liststyle/lang/bs.js +++ b/sources/plugins/liststyle/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'bs', { diff --git a/sources/plugins/liststyle/lang/ca.js b/sources/plugins/liststyle/lang/ca.js index 4f99f3c..8006ff8 100644 --- a/sources/plugins/liststyle/lang/ca.js +++ b/sources/plugins/liststyle/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ca', { diff --git a/sources/plugins/liststyle/lang/cs.js b/sources/plugins/liststyle/lang/cs.js index 9fa682d..c1e9a07 100644 --- a/sources/plugins/liststyle/lang/cs.js +++ b/sources/plugins/liststyle/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'cs', { diff --git a/sources/plugins/liststyle/lang/cy.js b/sources/plugins/liststyle/lang/cy.js index d19bafb..97902b5 100644 --- a/sources/plugins/liststyle/lang/cy.js +++ b/sources/plugins/liststyle/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'cy', { diff --git a/sources/plugins/liststyle/lang/da.js b/sources/plugins/liststyle/lang/da.js index 3bbdfbf..27c47b5 100644 --- a/sources/plugins/liststyle/lang/da.js +++ b/sources/plugins/liststyle/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'da', { diff --git a/sources/plugins/liststyle/lang/de-ch.js b/sources/plugins/liststyle/lang/de-ch.js index 13bf8c9..47d8634 100644 --- a/sources/plugins/liststyle/lang/de-ch.js +++ b/sources/plugins/liststyle/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'de-ch', { diff --git a/sources/plugins/liststyle/lang/de.js b/sources/plugins/liststyle/lang/de.js index 5117015..cdbf0b3 100644 --- a/sources/plugins/liststyle/lang/de.js +++ b/sources/plugins/liststyle/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'de', { diff --git a/sources/plugins/liststyle/lang/el.js b/sources/plugins/liststyle/lang/el.js index 6965694..2bd7ce2 100644 --- a/sources/plugins/liststyle/lang/el.js +++ b/sources/plugins/liststyle/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'el', { diff --git a/sources/plugins/liststyle/lang/en-au.js b/sources/plugins/liststyle/lang/en-au.js index 2ad0e28..af38b3e 100644 --- a/sources/plugins/liststyle/lang/en-au.js +++ b/sources/plugins/liststyle/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'en-au', { diff --git a/sources/plugins/liststyle/lang/en-ca.js b/sources/plugins/liststyle/lang/en-ca.js index 55c674a..ce76d82 100644 --- a/sources/plugins/liststyle/lang/en-ca.js +++ b/sources/plugins/liststyle/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'en-ca', { diff --git a/sources/plugins/liststyle/lang/en-gb.js b/sources/plugins/liststyle/lang/en-gb.js index 522112c..7f67124 100644 --- a/sources/plugins/liststyle/lang/en-gb.js +++ b/sources/plugins/liststyle/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'en-gb', { diff --git a/sources/plugins/liststyle/lang/en.js b/sources/plugins/liststyle/lang/en.js index aebe65e..c41b7d7 100644 --- a/sources/plugins/liststyle/lang/en.js +++ b/sources/plugins/liststyle/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'en', { diff --git a/sources/plugins/liststyle/lang/eo.js b/sources/plugins/liststyle/lang/eo.js index 151e47e..b601e76 100644 --- a/sources/plugins/liststyle/lang/eo.js +++ b/sources/plugins/liststyle/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'eo', { diff --git a/sources/plugins/liststyle/lang/es-mx.js b/sources/plugins/liststyle/lang/es-mx.js new file mode 100644 index 0000000..56e6fa7 --- /dev/null +++ b/sources/plugins/liststyle/lang/es-mx.js @@ -0,0 +1,25 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'liststyle', 'es-mx', { + armenian: 'Numeración armenia', + bulletedTitle: 'Propiedades de la lista con viñetas', + circle: 'Círculo', + decimal: 'Decimal (1, 2, 3, etc.)', + decimalLeadingZero: 'Decimal con cero (01, 02, 03, etc.)', + disc: 'Desc', + georgian: 'Numeración gregoriana (an, ban, gan, etc.)', + lowerAlpha: 'Alfabeto minúscula (a, b, c, d, e, etc.)', + lowerGreek: 'Griego minúscula (alpha, beta, gamma, etc.)', + lowerRoman: 'Romano minúscula (i, ii, iii, iv, v, etc.)', + none: 'Ninguno', + notset: '', + numberedTitle: 'Propiedades de la lista numerada', + square: 'Cuadrado', + start: 'Inicio', + type: 'Tipo', + upperAlpha: 'Abecedario mayúscula (A, B, C, D, E, etc.)', + upperRoman: 'Romanos mayúscula (I, II, III, IV, V, etc.)', + validateStartNumber: 'El número de inicio de la lista debe ser un número entero.' +} ); diff --git a/sources/plugins/liststyle/lang/es.js b/sources/plugins/liststyle/lang/es.js index 67f5a0e..75d2920 100644 --- a/sources/plugins/liststyle/lang/es.js +++ b/sources/plugins/liststyle/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'es', { diff --git a/sources/plugins/liststyle/lang/et.js b/sources/plugins/liststyle/lang/et.js index 38273f2..d2dfd5e 100644 --- a/sources/plugins/liststyle/lang/et.js +++ b/sources/plugins/liststyle/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'et', { diff --git a/sources/plugins/liststyle/lang/eu.js b/sources/plugins/liststyle/lang/eu.js index dca69fc..ef616e5 100644 --- a/sources/plugins/liststyle/lang/eu.js +++ b/sources/plugins/liststyle/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'eu', { diff --git a/sources/plugins/liststyle/lang/fa.js b/sources/plugins/liststyle/lang/fa.js index e5f3505..7a4517c 100644 --- a/sources/plugins/liststyle/lang/fa.js +++ b/sources/plugins/liststyle/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'fa', { diff --git a/sources/plugins/liststyle/lang/fi.js b/sources/plugins/liststyle/lang/fi.js index 83eb343..b0cf1b3 100644 --- a/sources/plugins/liststyle/lang/fi.js +++ b/sources/plugins/liststyle/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'fi', { diff --git a/sources/plugins/liststyle/lang/fo.js b/sources/plugins/liststyle/lang/fo.js index 537ec6f..922a85c 100644 --- a/sources/plugins/liststyle/lang/fo.js +++ b/sources/plugins/liststyle/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'fo', { diff --git a/sources/plugins/liststyle/lang/fr-ca.js b/sources/plugins/liststyle/lang/fr-ca.js index fa78407..06c2af9 100644 --- a/sources/plugins/liststyle/lang/fr-ca.js +++ b/sources/plugins/liststyle/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'fr-ca', { diff --git a/sources/plugins/liststyle/lang/fr.js b/sources/plugins/liststyle/lang/fr.js index af7b112..ccb6944 100644 --- a/sources/plugins/liststyle/lang/fr.js +++ b/sources/plugins/liststyle/lang/fr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'fr', { @@ -10,16 +10,16 @@ CKEDITOR.plugins.setLang( 'liststyle', 'fr', { decimalLeadingZero: 'Décimal précédé par un 0 (01, 02, 03, etc.)', disc: 'Disque', georgian: 'Numération géorgienne (an, ban, gan, etc.)', - lowerAlpha: 'Alphabétique minuscules (a, b, c, d, e, etc.)', - lowerGreek: 'Grec minuscule (alpha, beta, gamma, etc.)', - lowerRoman: 'Nombres romains minuscules (i, ii, iii, iv, v, etc.)', + lowerAlpha: 'Lettres minuscules (a, b, c, d, e, etc.)', + lowerGreek: 'Grec minuscule (alpha, bêta, gamma, etc.)', + lowerRoman: 'Chiffres romains minuscules (i, ii, iii, iv, v, etc.)', none: 'Aucun', - notset: '', + notset: '', numberedTitle: 'Propriétés de la liste numérotée', square: 'Carré', start: 'Début', type: 'Type', - upperAlpha: 'Alphabétique majuscules (A, B, C, D, E, etc.)', - upperRoman: 'Nombres romains majuscules (I, II, III, IV, V, etc.)', + upperAlpha: 'Lettres majuscules (A, B, C, D, E, etc.)', + upperRoman: 'Chiffres romains majuscules (I, II, III, IV, V, etc.)', validateStartNumber: 'Le premier élément de la liste doit être un nombre entier.' } ); diff --git a/sources/plugins/liststyle/lang/gl.js b/sources/plugins/liststyle/lang/gl.js index d3511ed..eeb622d 100644 --- a/sources/plugins/liststyle/lang/gl.js +++ b/sources/plugins/liststyle/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'gl', { diff --git a/sources/plugins/liststyle/lang/gu.js b/sources/plugins/liststyle/lang/gu.js index dc18140..434f218 100644 --- a/sources/plugins/liststyle/lang/gu.js +++ b/sources/plugins/liststyle/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'gu', { diff --git a/sources/plugins/liststyle/lang/he.js b/sources/plugins/liststyle/lang/he.js index 0ad2282..93b6106 100644 --- a/sources/plugins/liststyle/lang/he.js +++ b/sources/plugins/liststyle/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'he', { diff --git a/sources/plugins/liststyle/lang/hi.js b/sources/plugins/liststyle/lang/hi.js index 74333bd..0f1ae03 100644 --- a/sources/plugins/liststyle/lang/hi.js +++ b/sources/plugins/liststyle/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'hi', { diff --git a/sources/plugins/liststyle/lang/hr.js b/sources/plugins/liststyle/lang/hr.js index 6f16bc7..8da2ff3 100644 --- a/sources/plugins/liststyle/lang/hr.js +++ b/sources/plugins/liststyle/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'hr', { diff --git a/sources/plugins/liststyle/lang/hu.js b/sources/plugins/liststyle/lang/hu.js index ca62ff7..4e3d922 100644 --- a/sources/plugins/liststyle/lang/hu.js +++ b/sources/plugins/liststyle/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'hu', { diff --git a/sources/plugins/liststyle/lang/id.js b/sources/plugins/liststyle/lang/id.js index d0a5524..36ec1ec 100644 --- a/sources/plugins/liststyle/lang/id.js +++ b/sources/plugins/liststyle/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'id', { diff --git a/sources/plugins/liststyle/lang/is.js b/sources/plugins/liststyle/lang/is.js index b6ad69f..a05c5bc 100644 --- a/sources/plugins/liststyle/lang/is.js +++ b/sources/plugins/liststyle/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'is', { diff --git a/sources/plugins/liststyle/lang/it.js b/sources/plugins/liststyle/lang/it.js index 7d376a4..6ef919d 100644 --- a/sources/plugins/liststyle/lang/it.js +++ b/sources/plugins/liststyle/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'it', { diff --git a/sources/plugins/liststyle/lang/ja.js b/sources/plugins/liststyle/lang/ja.js index da735ab..e55dafc 100644 --- a/sources/plugins/liststyle/lang/ja.js +++ b/sources/plugins/liststyle/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ja', { diff --git a/sources/plugins/liststyle/lang/ka.js b/sources/plugins/liststyle/lang/ka.js index 8adcd16..0ede82d 100644 --- a/sources/plugins/liststyle/lang/ka.js +++ b/sources/plugins/liststyle/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ka', { diff --git a/sources/plugins/liststyle/lang/km.js b/sources/plugins/liststyle/lang/km.js index 6313931..51d7365 100644 --- a/sources/plugins/liststyle/lang/km.js +++ b/sources/plugins/liststyle/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'km', { diff --git a/sources/plugins/liststyle/lang/ko.js b/sources/plugins/liststyle/lang/ko.js index f3f7669..8b88e2d 100644 --- a/sources/plugins/liststyle/lang/ko.js +++ b/sources/plugins/liststyle/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ko', { diff --git a/sources/plugins/liststyle/lang/ku.js b/sources/plugins/liststyle/lang/ku.js index 3656bef..a3a7b47 100644 --- a/sources/plugins/liststyle/lang/ku.js +++ b/sources/plugins/liststyle/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ku', { diff --git a/sources/plugins/liststyle/lang/lt.js b/sources/plugins/liststyle/lang/lt.js index 444ee89..6b7c949 100644 --- a/sources/plugins/liststyle/lang/lt.js +++ b/sources/plugins/liststyle/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'lt', { diff --git a/sources/plugins/liststyle/lang/lv.js b/sources/plugins/liststyle/lang/lv.js index 62d5577..17b6da7 100644 --- a/sources/plugins/liststyle/lang/lv.js +++ b/sources/plugins/liststyle/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'lv', { diff --git a/sources/plugins/liststyle/lang/mk.js b/sources/plugins/liststyle/lang/mk.js index 0d0a5aa..dbb640b 100644 --- a/sources/plugins/liststyle/lang/mk.js +++ b/sources/plugins/liststyle/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'mk', { diff --git a/sources/plugins/liststyle/lang/mn.js b/sources/plugins/liststyle/lang/mn.js index 6ce43d6..54e884c 100644 --- a/sources/plugins/liststyle/lang/mn.js +++ b/sources/plugins/liststyle/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'mn', { diff --git a/sources/plugins/liststyle/lang/ms.js b/sources/plugins/liststyle/lang/ms.js index e916f66..297c02c 100644 --- a/sources/plugins/liststyle/lang/ms.js +++ b/sources/plugins/liststyle/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ms', { diff --git a/sources/plugins/liststyle/lang/nb.js b/sources/plugins/liststyle/lang/nb.js index 7daf0c5..0fe7859 100644 --- a/sources/plugins/liststyle/lang/nb.js +++ b/sources/plugins/liststyle/lang/nb.js @@ -1,10 +1,10 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'nb', { armenian: 'Armensk nummerering', - bulletedTitle: 'Egenskaper for punktmerket liste', + bulletedTitle: 'Egenskaper for punktliste', circle: 'Sirkel', decimal: 'Tall (1, 2, 3, osv.)', decimalLeadingZero: 'Tall, med førstesiffer null (01, 02, 03, osv.)', diff --git a/sources/plugins/liststyle/lang/nl.js b/sources/plugins/liststyle/lang/nl.js index 22eafc8..88ea3f8 100644 --- a/sources/plugins/liststyle/lang/nl.js +++ b/sources/plugins/liststyle/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'nl', { diff --git a/sources/plugins/liststyle/lang/no.js b/sources/plugins/liststyle/lang/no.js index 6fe25f7..26927e6 100644 --- a/sources/plugins/liststyle/lang/no.js +++ b/sources/plugins/liststyle/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'no', { diff --git a/sources/plugins/liststyle/lang/oc.js b/sources/plugins/liststyle/lang/oc.js new file mode 100644 index 0000000..eb64753 --- /dev/null +++ b/sources/plugins/liststyle/lang/oc.js @@ -0,0 +1,25 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'liststyle', 'oc', { + armenian: 'Numerotacion armènia', + bulletedTitle: 'Proprietats de la lista de piuses', + circle: 'Cercle', + decimal: 'Decimal (1, 2, 3, etc.)', + decimalLeadingZero: 'Decimal precedit per un 0 (01, 02, 03, etc.)', + disc: 'Disc', + georgian: 'Numeracion georgiana (an, ban, gan, etc.)', + lowerAlpha: 'Letras minusculas (a, b, c, d, e, etc.)', + lowerGreek: 'Grèc minuscula (alfa, bèta, gamma, etc.)', + lowerRoman: 'Chifras romanas minusculas (i, ii, iii, iv, v, etc.)', + none: 'Pas cap', + notset: '', + numberedTitle: 'Proprietats de la lista numerotada', + square: 'Carrat', + start: 'Començament', + type: 'Tipe', + upperAlpha: 'Letras majusculas (A, B, C, D, E, etc.)', + upperRoman: 'Chifras romanas majusculas (I, II, III, IV, V, etc.)', + validateStartNumber: 'Lo primièr element de la lista deu èsser un nombre entièr.' +} ); diff --git a/sources/plugins/liststyle/lang/pl.js b/sources/plugins/liststyle/lang/pl.js index b119bf2..37d2cd7 100644 --- a/sources/plugins/liststyle/lang/pl.js +++ b/sources/plugins/liststyle/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'pl', { diff --git a/sources/plugins/liststyle/lang/pt-br.js b/sources/plugins/liststyle/lang/pt-br.js index 603f10d..c5f0296 100644 --- a/sources/plugins/liststyle/lang/pt-br.js +++ b/sources/plugins/liststyle/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'pt-br', { diff --git a/sources/plugins/liststyle/lang/pt.js b/sources/plugins/liststyle/lang/pt.js index 1d8fd1f..7dc1f25 100644 --- a/sources/plugins/liststyle/lang/pt.js +++ b/sources/plugins/liststyle/lang/pt.js @@ -1,25 +1,25 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'pt', { armenian: 'Numeração armênia', - bulletedTitle: 'Bulleted List Properties', + bulletedTitle: 'Propriedades da lista não numerada', circle: 'Círculo', decimal: 'Decimal (1, 2, 3, etc.)', - decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)', + decimalLeadingZero: 'Zero decimal à esquerda (01, 02, 03, etc.)', disc: 'Disco', - georgian: 'Georgian numbering (an, ban, gan, etc.)', - lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)', - lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)', - lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)', + georgian: 'Numeração georgiana (an, ban, gan, etc.)', + lowerAlpha: 'Minúsculas (a, b, c, d, e, etc.)', + lowerGreek: 'Grego em minúsculas (alpha, beta, gamma, etc.)', + lowerRoman: 'Romano em minúsculas (i, ii, iii, iv, v, etc.)', none: 'Nenhum', notset: '', numberedTitle: 'Numbered List Properties', square: 'Quadrado', start: 'Iniciar', type: 'Tipo', - upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)', - upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)', - validateStartNumber: 'List start number must be a whole number.' + upperAlpha: 'Maiúsculas (A, B, C, D, E, etc.)', + upperRoman: 'Romanos em maiúscula (I, II, III, IV, V, etc.)', + validateStartNumber: 'A lista tem iniciar por um número inteiro' } ); diff --git a/sources/plugins/liststyle/lang/ro.js b/sources/plugins/liststyle/lang/ro.js index 926d2aa..5a8c327 100644 --- a/sources/plugins/liststyle/lang/ro.js +++ b/sources/plugins/liststyle/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ro', { diff --git a/sources/plugins/liststyle/lang/ru.js b/sources/plugins/liststyle/lang/ru.js index 27abea0..5bfa8c6 100644 --- a/sources/plugins/liststyle/lang/ru.js +++ b/sources/plugins/liststyle/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ru', { diff --git a/sources/plugins/liststyle/lang/si.js b/sources/plugins/liststyle/lang/si.js index f8699df..b401a13 100644 --- a/sources/plugins/liststyle/lang/si.js +++ b/sources/plugins/liststyle/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'si', { diff --git a/sources/plugins/liststyle/lang/sk.js b/sources/plugins/liststyle/lang/sk.js index 443f41e..2529c18 100644 --- a/sources/plugins/liststyle/lang/sk.js +++ b/sources/plugins/liststyle/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'sk', { diff --git a/sources/plugins/liststyle/lang/sl.js b/sources/plugins/liststyle/lang/sl.js index 99a3bf7..bd6c27f 100644 --- a/sources/plugins/liststyle/lang/sl.js +++ b/sources/plugins/liststyle/lang/sl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'sl', { diff --git a/sources/plugins/liststyle/lang/sq.js b/sources/plugins/liststyle/lang/sq.js index 18c77d2..6ee94a5 100644 --- a/sources/plugins/liststyle/lang/sq.js +++ b/sources/plugins/liststyle/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'sq', { diff --git a/sources/plugins/liststyle/lang/sr-latn.js b/sources/plugins/liststyle/lang/sr-latn.js index dad8611..75d1cfa 100644 --- a/sources/plugins/liststyle/lang/sr-latn.js +++ b/sources/plugins/liststyle/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'sr-latn', { diff --git a/sources/plugins/liststyle/lang/sr.js b/sources/plugins/liststyle/lang/sr.js index 8b10fef..f89a441 100644 --- a/sources/plugins/liststyle/lang/sr.js +++ b/sources/plugins/liststyle/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'sr', { diff --git a/sources/plugins/liststyle/lang/sv.js b/sources/plugins/liststyle/lang/sv.js index c2208bf..49bbf48 100644 --- a/sources/plugins/liststyle/lang/sv.js +++ b/sources/plugins/liststyle/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'sv', { diff --git a/sources/plugins/liststyle/lang/th.js b/sources/plugins/liststyle/lang/th.js index d85ecae..d1425e8 100644 --- a/sources/plugins/liststyle/lang/th.js +++ b/sources/plugins/liststyle/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'th', { diff --git a/sources/plugins/liststyle/lang/tr.js b/sources/plugins/liststyle/lang/tr.js index a0f918b..f08131e 100644 --- a/sources/plugins/liststyle/lang/tr.js +++ b/sources/plugins/liststyle/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'tr', { diff --git a/sources/plugins/liststyle/lang/tt.js b/sources/plugins/liststyle/lang/tt.js index 8f79082..13991f4 100644 --- a/sources/plugins/liststyle/lang/tt.js +++ b/sources/plugins/liststyle/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'tt', { diff --git a/sources/plugins/liststyle/lang/ug.js b/sources/plugins/liststyle/lang/ug.js index f232fa3..2d4336e 100644 --- a/sources/plugins/liststyle/lang/ug.js +++ b/sources/plugins/liststyle/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'ug', { diff --git a/sources/plugins/liststyle/lang/uk.js b/sources/plugins/liststyle/lang/uk.js index ece540e..7ef2343 100644 --- a/sources/plugins/liststyle/lang/uk.js +++ b/sources/plugins/liststyle/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'uk', { diff --git a/sources/plugins/liststyle/lang/vi.js b/sources/plugins/liststyle/lang/vi.js index 4e395da..c5ecc44 100644 --- a/sources/plugins/liststyle/lang/vi.js +++ b/sources/plugins/liststyle/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'vi', { diff --git a/sources/plugins/liststyle/lang/zh-cn.js b/sources/plugins/liststyle/lang/zh-cn.js index b0a2765..9d274c2 100644 --- a/sources/plugins/liststyle/lang/zh-cn.js +++ b/sources/plugins/liststyle/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'zh-cn', { diff --git a/sources/plugins/liststyle/lang/zh.js b/sources/plugins/liststyle/lang/zh.js index 4cfc3da..e832518 100644 --- a/sources/plugins/liststyle/lang/zh.js +++ b/sources/plugins/liststyle/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'liststyle', 'zh', { diff --git a/sources/plugins/liststyle/plugin.js b/sources/plugins/liststyle/plugin.js index 1394996..f281edc 100644 --- a/sources/plugins/liststyle/plugin.js +++ b/sources/plugins/liststyle/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -7,7 +7,7 @@ CKEDITOR.plugins.liststyle = { requires: 'dialog,contextmenu', // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength init: function( editor ) { if ( editor.blockless ) @@ -17,7 +17,10 @@ def = new CKEDITOR.dialogCommand( 'numberedListStyle', { requiredContent: 'ol', - allowedContent: 'ol{list-style-type}[start]' + allowedContent: 'ol{list-style-type}[start]; li{list-style-type}[value]', + contentTransformations: [ + [ 'ol: listTypeToStyle' ] + ] } ); cmd = editor.addCommand( 'numberedListStyle', def ); editor.addFeature( cmd ); @@ -25,7 +28,10 @@ def = new CKEDITOR.dialogCommand( 'bulletedListStyle', { requiredContent: 'ul', - allowedContent: 'ul{list-style-type}' + allowedContent: 'ul{list-style-type}', + contentTransformations: [ + [ 'ul: listTypeToStyle' ] + ] } ); cmd = editor.addCommand( 'bulletedListStyle', def ); editor.addFeature( cmd ); diff --git a/sources/plugins/magicline/dev/magicline.html b/sources/plugins/magicline/dev/magicline.html index 09f0c47..077b670 100644 --- a/sources/plugins/magicline/dev/magicline.html +++ b/sources/plugins/magicline/dev/magicline.html @@ -1,6 +1,6 @@ diff --git a/sources/plugins/magicline/lang/af.js b/sources/plugins/magicline/lang/af.js index ba29409..9b9dc2b 100644 --- a/sources/plugins/magicline/lang/af.js +++ b/sources/plugins/magicline/lang/af.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/ar.js b/sources/plugins/magicline/lang/ar.js index b3baca7..1c411f3 100644 --- a/sources/plugins/magicline/lang/ar.js +++ b/sources/plugins/magicline/lang/ar.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/az.js b/sources/plugins/magicline/lang/az.js new file mode 100644 index 0000000..02664f1 --- /dev/null +++ b/sources/plugins/magicline/lang/az.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'magicline', 'az', { + title: 'Abzası burada əlavə et' +} ); diff --git a/sources/plugins/magicline/lang/bg.js b/sources/plugins/magicline/lang/bg.js index ac4f09f..768af06 100644 --- a/sources/plugins/magicline/lang/bg.js +++ b/sources/plugins/magicline/lang/bg.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/ca.js b/sources/plugins/magicline/lang/ca.js index cf63144..dcd9c1a 100644 --- a/sources/plugins/magicline/lang/ca.js +++ b/sources/plugins/magicline/lang/ca.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/cs.js b/sources/plugins/magicline/lang/cs.js index 6b1030f..4705efd 100644 --- a/sources/plugins/magicline/lang/cs.js +++ b/sources/plugins/magicline/lang/cs.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/cy.js b/sources/plugins/magicline/lang/cy.js index 2a63dbb..13e1085 100644 --- a/sources/plugins/magicline/lang/cy.js +++ b/sources/plugins/magicline/lang/cy.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/da.js b/sources/plugins/magicline/lang/da.js index 90b036e..ee4fa17 100644 --- a/sources/plugins/magicline/lang/da.js +++ b/sources/plugins/magicline/lang/da.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/de-ch.js b/sources/plugins/magicline/lang/de-ch.js index 3b53ef3..d6bd3b7 100644 --- a/sources/plugins/magicline/lang/de-ch.js +++ b/sources/plugins/magicline/lang/de-ch.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/de.js b/sources/plugins/magicline/lang/de.js index 0111f3b..189d564 100644 --- a/sources/plugins/magicline/lang/de.js +++ b/sources/plugins/magicline/lang/de.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/el.js b/sources/plugins/magicline/lang/el.js index d31441b..528a554 100644 --- a/sources/plugins/magicline/lang/el.js +++ b/sources/plugins/magicline/lang/el.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/en-gb.js b/sources/plugins/magicline/lang/en-gb.js index 88baa44..e0d3779 100644 --- a/sources/plugins/magicline/lang/en-gb.js +++ b/sources/plugins/magicline/lang/en-gb.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/en.js b/sources/plugins/magicline/lang/en.js index 781de19..37ef2ed 100644 --- a/sources/plugins/magicline/lang/en.js +++ b/sources/plugins/magicline/lang/en.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/eo.js b/sources/plugins/magicline/lang/eo.js index 7128788..3cf6286 100644 --- a/sources/plugins/magicline/lang/eo.js +++ b/sources/plugins/magicline/lang/eo.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/es-mx.js b/sources/plugins/magicline/lang/es-mx.js new file mode 100644 index 0000000..faf006a --- /dev/null +++ b/sources/plugins/magicline/lang/es-mx.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'magicline', 'es-mx', { + title: 'Insertar un párrafo aquí' +} ); diff --git a/sources/plugins/magicline/lang/es.js b/sources/plugins/magicline/lang/es.js index ec0344c..f9a8f52 100644 --- a/sources/plugins/magicline/lang/es.js +++ b/sources/plugins/magicline/lang/es.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/et.js b/sources/plugins/magicline/lang/et.js index af2c5eb..9d2fe53 100644 --- a/sources/plugins/magicline/lang/et.js +++ b/sources/plugins/magicline/lang/et.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/eu.js b/sources/plugins/magicline/lang/eu.js index 3725647..25daf45 100644 --- a/sources/plugins/magicline/lang/eu.js +++ b/sources/plugins/magicline/lang/eu.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/fa.js b/sources/plugins/magicline/lang/fa.js index 02ea6bc..d09ddfc 100644 --- a/sources/plugins/magicline/lang/fa.js +++ b/sources/plugins/magicline/lang/fa.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/fi.js b/sources/plugins/magicline/lang/fi.js index 8667eb2..094bd9d 100644 --- a/sources/plugins/magicline/lang/fi.js +++ b/sources/plugins/magicline/lang/fi.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/fr-ca.js b/sources/plugins/magicline/lang/fr-ca.js index 96d31ee..6319f1c 100644 --- a/sources/plugins/magicline/lang/fr-ca.js +++ b/sources/plugins/magicline/lang/fr-ca.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/fr.js b/sources/plugins/magicline/lang/fr.js index da3610b..430fc5f 100644 --- a/sources/plugins/magicline/lang/fr.js +++ b/sources/plugins/magicline/lang/fr.js @@ -1,8 +1,8 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'magicline', 'fr', { - title: 'Insérez un paragraphe ici' + title: 'Insérer un paragraphe ici' } ); diff --git a/sources/plugins/magicline/lang/gl.js b/sources/plugins/magicline/lang/gl.js index 48f304f..5aaa968 100644 --- a/sources/plugins/magicline/lang/gl.js +++ b/sources/plugins/magicline/lang/gl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/he.js b/sources/plugins/magicline/lang/he.js index cef83c7..9c01d48 100644 --- a/sources/plugins/magicline/lang/he.js +++ b/sources/plugins/magicline/lang/he.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/hr.js b/sources/plugins/magicline/lang/hr.js index e143e73..1916e65 100644 --- a/sources/plugins/magicline/lang/hr.js +++ b/sources/plugins/magicline/lang/hr.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/hu.js b/sources/plugins/magicline/lang/hu.js index 2f3e831..86650d5 100644 --- a/sources/plugins/magicline/lang/hu.js +++ b/sources/plugins/magicline/lang/hu.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/id.js b/sources/plugins/magicline/lang/id.js index 9389c83..3651e37 100644 --- a/sources/plugins/magicline/lang/id.js +++ b/sources/plugins/magicline/lang/id.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/it.js b/sources/plugins/magicline/lang/it.js index 69e0946..9cc27e0 100644 --- a/sources/plugins/magicline/lang/it.js +++ b/sources/plugins/magicline/lang/it.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/ja.js b/sources/plugins/magicline/lang/ja.js index 71ebfd1..84d6b74 100644 --- a/sources/plugins/magicline/lang/ja.js +++ b/sources/plugins/magicline/lang/ja.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/km.js b/sources/plugins/magicline/lang/km.js index 9dd1865..f670a7e 100644 --- a/sources/plugins/magicline/lang/km.js +++ b/sources/plugins/magicline/lang/km.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/ko.js b/sources/plugins/magicline/lang/ko.js index a86363e..0e718f3 100644 --- a/sources/plugins/magicline/lang/ko.js +++ b/sources/plugins/magicline/lang/ko.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/ku.js b/sources/plugins/magicline/lang/ku.js index 72f7fa1..cc3f3a4 100644 --- a/sources/plugins/magicline/lang/ku.js +++ b/sources/plugins/magicline/lang/ku.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/lv.js b/sources/plugins/magicline/lang/lv.js index e3124e9..f96cc44 100644 --- a/sources/plugins/magicline/lang/lv.js +++ b/sources/plugins/magicline/lang/lv.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/nb.js b/sources/plugins/magicline/lang/nb.js index 6780c4d..297f270 100644 --- a/sources/plugins/magicline/lang/nb.js +++ b/sources/plugins/magicline/lang/nb.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/nl.js b/sources/plugins/magicline/lang/nl.js index dccbf5d..bfe36ff 100644 --- a/sources/plugins/magicline/lang/nl.js +++ b/sources/plugins/magicline/lang/nl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/no.js b/sources/plugins/magicline/lang/no.js index 2af2e20..e78ca76 100644 --- a/sources/plugins/magicline/lang/no.js +++ b/sources/plugins/magicline/lang/no.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/oc.js b/sources/plugins/magicline/lang/oc.js new file mode 100644 index 0000000..312f547 --- /dev/null +++ b/sources/plugins/magicline/lang/oc.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.setLang( 'magicline', 'oc', { + title: 'Inserir un paragraf aicí' +} ); diff --git a/sources/plugins/magicline/lang/pl.js b/sources/plugins/magicline/lang/pl.js index b038f54..324bf1e 100644 --- a/sources/plugins/magicline/lang/pl.js +++ b/sources/plugins/magicline/lang/pl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/pt-br.js b/sources/plugins/magicline/lang/pt-br.js index 54ca87f..35f3daa 100644 --- a/sources/plugins/magicline/lang/pt-br.js +++ b/sources/plugins/magicline/lang/pt-br.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/pt.js b/sources/plugins/magicline/lang/pt.js index ed653d7..97884c0 100644 --- a/sources/plugins/magicline/lang/pt.js +++ b/sources/plugins/magicline/lang/pt.js @@ -1,8 +1,8 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'magicline', 'pt', { - title: 'Insira aqui o parágrafo' + title: 'Inserir parágrafo aqui' } ); diff --git a/sources/plugins/magicline/lang/ru.js b/sources/plugins/magicline/lang/ru.js index 8787768..bc41703 100644 --- a/sources/plugins/magicline/lang/ru.js +++ b/sources/plugins/magicline/lang/ru.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/si.js b/sources/plugins/magicline/lang/si.js index 5a484a2..a5cdbe8 100644 --- a/sources/plugins/magicline/lang/si.js +++ b/sources/plugins/magicline/lang/si.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/sk.js b/sources/plugins/magicline/lang/sk.js index 94ae4a4..84761b2 100644 --- a/sources/plugins/magicline/lang/sk.js +++ b/sources/plugins/magicline/lang/sk.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/sl.js b/sources/plugins/magicline/lang/sl.js index 6baf9e9..6d0cf76 100644 --- a/sources/plugins/magicline/lang/sl.js +++ b/sources/plugins/magicline/lang/sl.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/sq.js b/sources/plugins/magicline/lang/sq.js index 00d458f..d405596 100644 --- a/sources/plugins/magicline/lang/sq.js +++ b/sources/plugins/magicline/lang/sq.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/sv.js b/sources/plugins/magicline/lang/sv.js index 0670ada..63327fd 100644 --- a/sources/plugins/magicline/lang/sv.js +++ b/sources/plugins/magicline/lang/sv.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/tr.js b/sources/plugins/magicline/lang/tr.js index e419e8d..02dd216 100644 --- a/sources/plugins/magicline/lang/tr.js +++ b/sources/plugins/magicline/lang/tr.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/tt.js b/sources/plugins/magicline/lang/tt.js index b94cefa..7de33bf 100644 --- a/sources/plugins/magicline/lang/tt.js +++ b/sources/plugins/magicline/lang/tt.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/ug.js b/sources/plugins/magicline/lang/ug.js index 8da9948..0017fd4 100644 --- a/sources/plugins/magicline/lang/ug.js +++ b/sources/plugins/magicline/lang/ug.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/uk.js b/sources/plugins/magicline/lang/uk.js index 57cdeb7..980f0e0 100644 --- a/sources/plugins/magicline/lang/uk.js +++ b/sources/plugins/magicline/lang/uk.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/vi.js b/sources/plugins/magicline/lang/vi.js index ab925ae..b302bd0 100644 --- a/sources/plugins/magicline/lang/vi.js +++ b/sources/plugins/magicline/lang/vi.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/zh-cn.js b/sources/plugins/magicline/lang/zh-cn.js index 166e892..f0a0b3b 100644 --- a/sources/plugins/magicline/lang/zh-cn.js +++ b/sources/plugins/magicline/lang/zh-cn.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/lang/zh.js b/sources/plugins/magicline/lang/zh.js index 2fd4324..3ac9f68 100644 --- a/sources/plugins/magicline/lang/zh.js +++ b/sources/plugins/magicline/lang/zh.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ diff --git a/sources/plugins/magicline/plugin.js b/sources/plugins/magicline/plugin.js index cdb1c23..45b6fea 100644 --- a/sources/plugins/magicline/plugin.js +++ b/sources/plugins/magicline/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -12,7 +12,7 @@ ( function() { CKEDITOR.plugins.add( 'magicline', { - lang: 'af,ar,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,es-mx,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,oc,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% init: initPlugin } ); @@ -38,7 +38,7 @@ // %REMOVE_START% // Internal DEBUG uses tools located in the topmost window. - // (#9701) Due to security limitations some browsers may throw + // (http://dev.ckeditor.com/ticket/9701) Due to security limitations some browsers may throw // errors when accessing window.top object. Do it safely first then. try { that.debug = window.top.DEBUG; @@ -278,7 +278,7 @@ var elements, element, i; for ( var t in { p: 1, br: 1, div: 1 } ) { - // document.find is not available in QM (#11149). + // document.find is not available in QM (http://dev.ckeditor.com/ticket/11149). elements = editor.document.getElementsByTag( t ); for ( i = elements.count(); i--; ) { @@ -428,7 +428,7 @@ function elementFromPoint( doc, mouse ) { var pointedElement = doc.$.elementFromPoint( mouse.x, mouse.y ); - // IE9QM: from times to times it will return an empty object on scroll bar hover. (#12185) + // IE9QM: from times to times it will return an empty object on scroll bar hover. (http://dev.ckeditor.com/ticket/12185) return pointedElement && pointedElement.nodeType ? new CKEDITOR.dom.element( pointedElement ) : null; @@ -483,7 +483,7 @@ // If trigger is an element, neither editable nor editable's ascendant. if ( trigger && that.editable.contains( trigger ) ) { // Check for closest editable limit. - // Don't consider trigger as a limit as it may be nested editable (includeSelf=false) (#12009). + // Don't consider trigger as a limit as it may be nested editable (includeSelf=false) (http://dev.ckeditor.com/ticket/12009). var limit = getClosestEditableLimit( trigger ); // Trigger in nested editable area. @@ -730,7 +730,7 @@ // Consider the editable to be an element with overflow:scroll // and non-zero scrollTop/scrollLeft value. - // For example: divarea editable. (#9383) + // For example: divarea editable. (http://dev.ckeditor.com/ticket/9383) styleSet.top += view.editable.scroll.top; styleSet.left += view.editable.scroll.left; } @@ -931,7 +931,7 @@ var selected = editor.getSelection().getStartElement(), limit; - // (#9833) Go down to the closest non-inline element in DOM structure + // (http://dev.ckeditor.com/ticket/9833) Go down to the closest non-inline element in DOM structure // since inline elements don't participate in in magicline. selected = selected.getAscendant( DTD_BLOCK, 1 ); diff --git a/sources/plugins/magicline/samples/magicline.html b/sources/plugins/magicline/samples/magicline.html index af8d17a..8fff40e 100644 --- a/sources/plugins/magicline/samples/magicline.html +++ b/sources/plugins/magicline/samples/magicline.html @@ -1,6 +1,6 @@ @@ -201,7 +201,7 @@ CKEDITOR.replace( 'editor2', { CKEditor - The text editor for the Internet - http://ckeditor.com

          - Copyright © 2003-2016, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

  • diff --git a/sources/plugins/maximize/icons/hidpi/maximize.png b/sources/plugins/maximize/icons/hidpi/maximize.png index 1d1ed45..865c582 100644 Binary files a/sources/plugins/maximize/icons/hidpi/maximize.png and b/sources/plugins/maximize/icons/hidpi/maximize.png differ diff --git a/sources/plugins/maximize/icons/maximize.png b/sources/plugins/maximize/icons/maximize.png index db01908..ab25547 100644 Binary files a/sources/plugins/maximize/icons/maximize.png and b/sources/plugins/maximize/icons/maximize.png differ diff --git a/sources/plugins/maximize/lang/af.js b/sources/plugins/maximize/lang/af.js index e07bbd2..5f17e23 100644 --- a/sources/plugins/maximize/lang/af.js +++ b/sources/plugins/maximize/lang/af.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'af', { diff --git a/sources/plugins/maximize/lang/ar.js b/sources/plugins/maximize/lang/ar.js index 4181cf3..cdfb258 100644 --- a/sources/plugins/maximize/lang/ar.js +++ b/sources/plugins/maximize/lang/ar.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ar', { diff --git a/sources/plugins/maximize/lang/az.js b/sources/plugins/maximize/lang/az.js new file mode 100644 index 0000000..d3a92ac --- /dev/null +++ b/sources/plugins/maximize/lang/az.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'maximize', 'az', { + maximize: 'Aşkarla', + minimize: 'Gizlət' +} ); diff --git a/sources/plugins/maximize/lang/bg.js b/sources/plugins/maximize/lang/bg.js index c8cd978..a56e04e 100644 --- a/sources/plugins/maximize/lang/bg.js +++ b/sources/plugins/maximize/lang/bg.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'bg', { diff --git a/sources/plugins/maximize/lang/bn.js b/sources/plugins/maximize/lang/bn.js index 82793e3..3fd4087 100644 --- a/sources/plugins/maximize/lang/bn.js +++ b/sources/plugins/maximize/lang/bn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'bn', { diff --git a/sources/plugins/maximize/lang/bs.js b/sources/plugins/maximize/lang/bs.js index 06655fd..cb49710 100644 --- a/sources/plugins/maximize/lang/bs.js +++ b/sources/plugins/maximize/lang/bs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'bs', { diff --git a/sources/plugins/maximize/lang/ca.js b/sources/plugins/maximize/lang/ca.js index 7bb1ba5..fc88615 100644 --- a/sources/plugins/maximize/lang/ca.js +++ b/sources/plugins/maximize/lang/ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ca', { diff --git a/sources/plugins/maximize/lang/cs.js b/sources/plugins/maximize/lang/cs.js index 5dfd482..2234af2 100644 --- a/sources/plugins/maximize/lang/cs.js +++ b/sources/plugins/maximize/lang/cs.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'cs', { diff --git a/sources/plugins/maximize/lang/cy.js b/sources/plugins/maximize/lang/cy.js index a854488..c3370b3 100644 --- a/sources/plugins/maximize/lang/cy.js +++ b/sources/plugins/maximize/lang/cy.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'cy', { diff --git a/sources/plugins/maximize/lang/da.js b/sources/plugins/maximize/lang/da.js index 2d25a51..8dd2d88 100644 --- a/sources/plugins/maximize/lang/da.js +++ b/sources/plugins/maximize/lang/da.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'da', { diff --git a/sources/plugins/maximize/lang/de-ch.js b/sources/plugins/maximize/lang/de-ch.js index acc08f3..440814b 100644 --- a/sources/plugins/maximize/lang/de-ch.js +++ b/sources/plugins/maximize/lang/de-ch.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'de-ch', { diff --git a/sources/plugins/maximize/lang/de.js b/sources/plugins/maximize/lang/de.js index 6bfd5b2..9af6706 100644 --- a/sources/plugins/maximize/lang/de.js +++ b/sources/plugins/maximize/lang/de.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'de', { diff --git a/sources/plugins/maximize/lang/el.js b/sources/plugins/maximize/lang/el.js index 4b89726..7da1b0b 100644 --- a/sources/plugins/maximize/lang/el.js +++ b/sources/plugins/maximize/lang/el.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'el', { diff --git a/sources/plugins/maximize/lang/en-au.js b/sources/plugins/maximize/lang/en-au.js index 0636683..de0310d 100644 --- a/sources/plugins/maximize/lang/en-au.js +++ b/sources/plugins/maximize/lang/en-au.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'en-au', { diff --git a/sources/plugins/maximize/lang/en-ca.js b/sources/plugins/maximize/lang/en-ca.js index 7265dbc..1c48ee0 100644 --- a/sources/plugins/maximize/lang/en-ca.js +++ b/sources/plugins/maximize/lang/en-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'en-ca', { diff --git a/sources/plugins/maximize/lang/en-gb.js b/sources/plugins/maximize/lang/en-gb.js index 4ff811b..433a065 100644 --- a/sources/plugins/maximize/lang/en-gb.js +++ b/sources/plugins/maximize/lang/en-gb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'en-gb', { diff --git a/sources/plugins/maximize/lang/en.js b/sources/plugins/maximize/lang/en.js index 71d8711..1e45418 100644 --- a/sources/plugins/maximize/lang/en.js +++ b/sources/plugins/maximize/lang/en.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'en', { diff --git a/sources/plugins/maximize/lang/eo.js b/sources/plugins/maximize/lang/eo.js index 6c75952..852f529 100644 --- a/sources/plugins/maximize/lang/eo.js +++ b/sources/plugins/maximize/lang/eo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'eo', { diff --git a/sources/plugins/maximize/lang/es-mx.js b/sources/plugins/maximize/lang/es-mx.js new file mode 100644 index 0000000..f47486c --- /dev/null +++ b/sources/plugins/maximize/lang/es-mx.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'maximize', 'es-mx', { + maximize: 'Maximizar', + minimize: 'Minimizar' +} ); diff --git a/sources/plugins/maximize/lang/es.js b/sources/plugins/maximize/lang/es.js index 85963a1..411aae5 100644 --- a/sources/plugins/maximize/lang/es.js +++ b/sources/plugins/maximize/lang/es.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'es', { diff --git a/sources/plugins/maximize/lang/et.js b/sources/plugins/maximize/lang/et.js index 241bb34..1682ec9 100644 --- a/sources/plugins/maximize/lang/et.js +++ b/sources/plugins/maximize/lang/et.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'et', { diff --git a/sources/plugins/maximize/lang/eu.js b/sources/plugins/maximize/lang/eu.js index 12eea43..a25c164 100644 --- a/sources/plugins/maximize/lang/eu.js +++ b/sources/plugins/maximize/lang/eu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'eu', { diff --git a/sources/plugins/maximize/lang/fa.js b/sources/plugins/maximize/lang/fa.js index c16bc2e..e08e9ea 100644 --- a/sources/plugins/maximize/lang/fa.js +++ b/sources/plugins/maximize/lang/fa.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'fa', { diff --git a/sources/plugins/maximize/lang/fi.js b/sources/plugins/maximize/lang/fi.js index d61f5f3..763eede 100644 --- a/sources/plugins/maximize/lang/fi.js +++ b/sources/plugins/maximize/lang/fi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'fi', { diff --git a/sources/plugins/maximize/lang/fo.js b/sources/plugins/maximize/lang/fo.js index c3775fc..635415a 100644 --- a/sources/plugins/maximize/lang/fo.js +++ b/sources/plugins/maximize/lang/fo.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'fo', { diff --git a/sources/plugins/maximize/lang/fr-ca.js b/sources/plugins/maximize/lang/fr-ca.js index ea9ccdd..59ed278 100644 --- a/sources/plugins/maximize/lang/fr-ca.js +++ b/sources/plugins/maximize/lang/fr-ca.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'fr-ca', { diff --git a/sources/plugins/maximize/lang/fr.js b/sources/plugins/maximize/lang/fr.js index f859816..cb3d4dd 100644 --- a/sources/plugins/maximize/lang/fr.js +++ b/sources/plugins/maximize/lang/fr.js @@ -1,8 +1,8 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'fr', { maximize: 'Agrandir', - minimize: 'Minimiser' + minimize: 'Réduire' } ); diff --git a/sources/plugins/maximize/lang/gl.js b/sources/plugins/maximize/lang/gl.js index 498ff27..79009f8 100644 --- a/sources/plugins/maximize/lang/gl.js +++ b/sources/plugins/maximize/lang/gl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'gl', { diff --git a/sources/plugins/maximize/lang/gu.js b/sources/plugins/maximize/lang/gu.js index 4b7af7b..bbd4b52 100644 --- a/sources/plugins/maximize/lang/gu.js +++ b/sources/plugins/maximize/lang/gu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'gu', { diff --git a/sources/plugins/maximize/lang/he.js b/sources/plugins/maximize/lang/he.js index b0adc82..d46856b 100644 --- a/sources/plugins/maximize/lang/he.js +++ b/sources/plugins/maximize/lang/he.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'he', { diff --git a/sources/plugins/maximize/lang/hi.js b/sources/plugins/maximize/lang/hi.js index f9baef8..76b0c0c 100644 --- a/sources/plugins/maximize/lang/hi.js +++ b/sources/plugins/maximize/lang/hi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'hi', { diff --git a/sources/plugins/maximize/lang/hr.js b/sources/plugins/maximize/lang/hr.js index 5492f2f..4b7a7b3 100644 --- a/sources/plugins/maximize/lang/hr.js +++ b/sources/plugins/maximize/lang/hr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'hr', { diff --git a/sources/plugins/maximize/lang/hu.js b/sources/plugins/maximize/lang/hu.js index 11e9530..3e11e22 100644 --- a/sources/plugins/maximize/lang/hu.js +++ b/sources/plugins/maximize/lang/hu.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'hu', { diff --git a/sources/plugins/maximize/lang/id.js b/sources/plugins/maximize/lang/id.js index f6e839a..1a32383 100644 --- a/sources/plugins/maximize/lang/id.js +++ b/sources/plugins/maximize/lang/id.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'id', { diff --git a/sources/plugins/maximize/lang/is.js b/sources/plugins/maximize/lang/is.js index 97313df..dec813f 100644 --- a/sources/plugins/maximize/lang/is.js +++ b/sources/plugins/maximize/lang/is.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'is', { diff --git a/sources/plugins/maximize/lang/it.js b/sources/plugins/maximize/lang/it.js index 448337c..67a8a29 100644 --- a/sources/plugins/maximize/lang/it.js +++ b/sources/plugins/maximize/lang/it.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'it', { diff --git a/sources/plugins/maximize/lang/ja.js b/sources/plugins/maximize/lang/ja.js index 5479f2a..33184da 100644 --- a/sources/plugins/maximize/lang/ja.js +++ b/sources/plugins/maximize/lang/ja.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ja', { diff --git a/sources/plugins/maximize/lang/ka.js b/sources/plugins/maximize/lang/ka.js index 579c4b1..a90fb04 100644 --- a/sources/plugins/maximize/lang/ka.js +++ b/sources/plugins/maximize/lang/ka.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ka', { diff --git a/sources/plugins/maximize/lang/km.js b/sources/plugins/maximize/lang/km.js index bba8746..4cda2db 100644 --- a/sources/plugins/maximize/lang/km.js +++ b/sources/plugins/maximize/lang/km.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'km', { diff --git a/sources/plugins/maximize/lang/ko.js b/sources/plugins/maximize/lang/ko.js index 05bb161..f4af9d4 100644 --- a/sources/plugins/maximize/lang/ko.js +++ b/sources/plugins/maximize/lang/ko.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ko', { diff --git a/sources/plugins/maximize/lang/ku.js b/sources/plugins/maximize/lang/ku.js index 50e24ef..d34e588 100644 --- a/sources/plugins/maximize/lang/ku.js +++ b/sources/plugins/maximize/lang/ku.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ku', { diff --git a/sources/plugins/maximize/lang/lt.js b/sources/plugins/maximize/lang/lt.js index 5cd4de8..064291b 100644 --- a/sources/plugins/maximize/lang/lt.js +++ b/sources/plugins/maximize/lang/lt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'lt', { diff --git a/sources/plugins/maximize/lang/lv.js b/sources/plugins/maximize/lang/lv.js index 77d9db2..afbbbbe 100644 --- a/sources/plugins/maximize/lang/lv.js +++ b/sources/plugins/maximize/lang/lv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'lv', { diff --git a/sources/plugins/maximize/lang/mk.js b/sources/plugins/maximize/lang/mk.js index 382653b..69fcfe9 100644 --- a/sources/plugins/maximize/lang/mk.js +++ b/sources/plugins/maximize/lang/mk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'mk', { diff --git a/sources/plugins/maximize/lang/mn.js b/sources/plugins/maximize/lang/mn.js index f0bcf7c..6c4a076 100644 --- a/sources/plugins/maximize/lang/mn.js +++ b/sources/plugins/maximize/lang/mn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'mn', { diff --git a/sources/plugins/maximize/lang/ms.js b/sources/plugins/maximize/lang/ms.js index b833027..0f27d91 100644 --- a/sources/plugins/maximize/lang/ms.js +++ b/sources/plugins/maximize/lang/ms.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ms', { diff --git a/sources/plugins/maximize/lang/nb.js b/sources/plugins/maximize/lang/nb.js index eb1d77d..a8ec9dd 100644 --- a/sources/plugins/maximize/lang/nb.js +++ b/sources/plugins/maximize/lang/nb.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'nb', { diff --git a/sources/plugins/maximize/lang/nl.js b/sources/plugins/maximize/lang/nl.js index f1a126d..978bda0 100644 --- a/sources/plugins/maximize/lang/nl.js +++ b/sources/plugins/maximize/lang/nl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'nl', { diff --git a/sources/plugins/maximize/lang/no.js b/sources/plugins/maximize/lang/no.js index ac8fc85..02afe8a 100644 --- a/sources/plugins/maximize/lang/no.js +++ b/sources/plugins/maximize/lang/no.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'no', { diff --git a/sources/plugins/maximize/lang/oc.js b/sources/plugins/maximize/lang/oc.js new file mode 100644 index 0000000..cbd94a4 --- /dev/null +++ b/sources/plugins/maximize/lang/oc.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'maximize', 'oc', { + maximize: 'Maximizar', + minimize: 'Minimizar' +} ); diff --git a/sources/plugins/maximize/lang/pl.js b/sources/plugins/maximize/lang/pl.js index 65db8f1..1bf6d07 100644 --- a/sources/plugins/maximize/lang/pl.js +++ b/sources/plugins/maximize/lang/pl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'pl', { diff --git a/sources/plugins/maximize/lang/pt-br.js b/sources/plugins/maximize/lang/pt-br.js index 1da2b5e..e5c2a52 100644 --- a/sources/plugins/maximize/lang/pt-br.js +++ b/sources/plugins/maximize/lang/pt-br.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'pt-br', { diff --git a/sources/plugins/maximize/lang/pt.js b/sources/plugins/maximize/lang/pt.js index a1cc282..a379036 100644 --- a/sources/plugins/maximize/lang/pt.js +++ b/sources/plugins/maximize/lang/pt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'pt', { diff --git a/sources/plugins/maximize/lang/ro.js b/sources/plugins/maximize/lang/ro.js index 4781ec3..0a3ded6 100644 --- a/sources/plugins/maximize/lang/ro.js +++ b/sources/plugins/maximize/lang/ro.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ro', { diff --git a/sources/plugins/maximize/lang/ru.js b/sources/plugins/maximize/lang/ru.js index 6efab0b..30c491a 100644 --- a/sources/plugins/maximize/lang/ru.js +++ b/sources/plugins/maximize/lang/ru.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ru', { diff --git a/sources/plugins/maximize/lang/si.js b/sources/plugins/maximize/lang/si.js index 671ecdd..a0331ab 100644 --- a/sources/plugins/maximize/lang/si.js +++ b/sources/plugins/maximize/lang/si.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'si', { diff --git a/sources/plugins/maximize/lang/sk.js b/sources/plugins/maximize/lang/sk.js index c88e390..a9f2515 100644 --- a/sources/plugins/maximize/lang/sk.js +++ b/sources/plugins/maximize/lang/sk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'sk', { diff --git a/sources/plugins/maximize/lang/sl.js b/sources/plugins/maximize/lang/sl.js index 90187c5..73d5e91 100644 --- a/sources/plugins/maximize/lang/sl.js +++ b/sources/plugins/maximize/lang/sl.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'sl', { diff --git a/sources/plugins/maximize/lang/sq.js b/sources/plugins/maximize/lang/sq.js index 4354dba..e6b5bc3 100644 --- a/sources/plugins/maximize/lang/sq.js +++ b/sources/plugins/maximize/lang/sq.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'sq', { diff --git a/sources/plugins/maximize/lang/sr-latn.js b/sources/plugins/maximize/lang/sr-latn.js index f472eed..33dcd9e 100644 --- a/sources/plugins/maximize/lang/sr-latn.js +++ b/sources/plugins/maximize/lang/sr-latn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'sr-latn', { diff --git a/sources/plugins/maximize/lang/sr.js b/sources/plugins/maximize/lang/sr.js index 70550ee..f1ef2d1 100644 --- a/sources/plugins/maximize/lang/sr.js +++ b/sources/plugins/maximize/lang/sr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'sr', { diff --git a/sources/plugins/maximize/lang/sv.js b/sources/plugins/maximize/lang/sv.js index 3ba63b5..d14fb84 100644 --- a/sources/plugins/maximize/lang/sv.js +++ b/sources/plugins/maximize/lang/sv.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'sv', { diff --git a/sources/plugins/maximize/lang/th.js b/sources/plugins/maximize/lang/th.js index 4b74871..df09eef 100644 --- a/sources/plugins/maximize/lang/th.js +++ b/sources/plugins/maximize/lang/th.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'th', { diff --git a/sources/plugins/maximize/lang/tr.js b/sources/plugins/maximize/lang/tr.js index 0aafb3d..90724f4 100644 --- a/sources/plugins/maximize/lang/tr.js +++ b/sources/plugins/maximize/lang/tr.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'tr', { diff --git a/sources/plugins/maximize/lang/tt.js b/sources/plugins/maximize/lang/tt.js index a8ec7d6..cc92021 100644 --- a/sources/plugins/maximize/lang/tt.js +++ b/sources/plugins/maximize/lang/tt.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'tt', { diff --git a/sources/plugins/maximize/lang/ug.js b/sources/plugins/maximize/lang/ug.js index 0e874d6..85af046 100644 --- a/sources/plugins/maximize/lang/ug.js +++ b/sources/plugins/maximize/lang/ug.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'ug', { diff --git a/sources/plugins/maximize/lang/uk.js b/sources/plugins/maximize/lang/uk.js index 85a3215..5ca1021 100644 --- a/sources/plugins/maximize/lang/uk.js +++ b/sources/plugins/maximize/lang/uk.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'uk', { diff --git a/sources/plugins/maximize/lang/vi.js b/sources/plugins/maximize/lang/vi.js index 0fd29d5..4ab3a6b 100644 --- a/sources/plugins/maximize/lang/vi.js +++ b/sources/plugins/maximize/lang/vi.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'vi', { diff --git a/sources/plugins/maximize/lang/zh-cn.js b/sources/plugins/maximize/lang/zh-cn.js index 7e63c74..f4ddf72 100644 --- a/sources/plugins/maximize/lang/zh-cn.js +++ b/sources/plugins/maximize/lang/zh-cn.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'zh-cn', { diff --git a/sources/plugins/maximize/lang/zh.js b/sources/plugins/maximize/lang/zh.js index 6d633c4..6bca434 100644 --- a/sources/plugins/maximize/lang/zh.js +++ b/sources/plugins/maximize/lang/zh.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ CKEDITOR.plugins.setLang( 'maximize', 'zh', { diff --git a/sources/plugins/maximize/plugin.js b/sources/plugins/maximize/plugin.js index ae621f1..fbce920 100644 --- a/sources/plugins/maximize/plugin.js +++ b/sources/plugins/maximize/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -51,7 +51,7 @@ } retval.inline = $element.style.cssText || ''; - if ( !isInsideEditor ) // Reset any external styles that might interfere. (#2474) + if ( !isInsideEditor ) // Reset any external styles that might interfere. (http://dev.ckeditor.com/ticket/2474) $element.style.cssText = 'position: static; overflow: visible'; restoreFormStyles( data ); @@ -72,14 +72,14 @@ if ( editor.editable().isInline() ) return; - // Refresh all editor instances on the page (#5724). + // Refresh all editor instances on the page (http://dev.ckeditor.com/ticket/5724). var all = CKEDITOR.instances; for ( var i in all ) { var one = all[ i ]; if ( one.mode == 'wysiwyg' && !one.readOnly ) { var body = one.document.getBody(); // Refresh 'contentEditable' otherwise - // DOM lifting breaks design mode. (#5560) + // DOM lifting breaks design mode. (http://dev.ckeditor.com/ticket/5560) body.setAttribute( 'contentEditable', false ); body.setAttribute( 'contentEditable', true ); } @@ -93,7 +93,7 @@ CKEDITOR.plugins.add( 'maximize', { // jscs:disable maximumLineLength - lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% // jscs:enable maximumLineLength icons: 'maximize', // %REMOVE_LINE_CORE% hidpi: true, // %REMOVE_LINE_CORE% @@ -122,7 +122,7 @@ var savedState = CKEDITOR.TRISTATE_OFF; editor.addCommand( 'maximize', { - // Disabled on iOS (#8307). + // Disabled on iOS (http://dev.ckeditor.com/ticket/8307). modes: { wysiwyg: !CKEDITOR.env.iOS, source: !CKEDITOR.env.iOS }, readOnly: 1, editorFocus: false, @@ -163,7 +163,7 @@ // Hide scroll bars. var styles = { - overflow: CKEDITOR.env.webkit ? '' : 'hidden', // #6896 + overflow: CKEDITOR.env.webkit ? '' : 'hidden', // http://dev.ckeditor.com/ticket/6896 width: 0, height: 0 }; @@ -172,15 +172,15 @@ !CKEDITOR.env.gecko && mainDocument.getDocumentElement().setStyle( 'position', 'fixed' ); !( CKEDITOR.env.gecko && CKEDITOR.env.quirks ) && mainDocument.getBody().setStyles( styles ); - // Scroll to the top left (IE needs some time for it - #4923). + // Scroll to the top left (IE needs some time for it - http://dev.ckeditor.com/ticket/4923). CKEDITOR.env.ie ? setTimeout( function() { mainWindow.$.scrollTo( 0, 0 ); }, 0 ) : mainWindow.$.scrollTo( 0, 0 ); // Resize and move to top left. - // Special treatment for FF Quirks (#7284) + // Special treatment for FF Quirks (http://dev.ckeditor.com/ticket/7284) container.setStyle( 'position', CKEDITOR.env.gecko && CKEDITOR.env.quirks ? 'fixed' : 'absolute' ); - container.$.offsetLeft; // SAFARI BUG: See #2066. + container.$.offsetLeft; // SAFARI BUG: See http://dev.ckeditor.com/ticket/2066. container.setStyles( { // Show under floatpanels (-1) and context menu (-2). 'z-index': editor.config.baseFloatZIndex - 5, @@ -188,19 +188,19 @@ top: '0px' } ); - // Add cke_maximized class before resize handle since that will change things sizes (#5580) + // Add cke_maximized class before resize handle since that will change things sizes (http://dev.ckeditor.com/ticket/5580) container.addClass( 'cke_maximized' ); resizeHandler(); - // Still not top left? Fix it. (Bug #174) + // Still not top left? Fix it. (Bug http://dev.ckeditor.com/ticket/174) var offset = container.getDocumentPosition(); container.setStyles( { left: ( -1 * offset.x ) + 'px', top: ( -1 * offset.y ) + 'px' } ); - // Fixing positioning editor chrome in Firefox break design mode. (#5149) + // Fixing positioning editor chrome in Firefox break design mode. (http://dev.ckeditor.com/ticket/5149) CKEDITOR.env.gecko && refreshCursor( editor ); } // Restore from fullscreen if the state is on. @@ -229,7 +229,7 @@ // Remove cke_maximized class. container.removeClass( 'cke_maximized' ); - // Webkit requires a re-layout on editor chrome. (#6695) + // Webkit requires a re-layout on editor chrome. (http://dev.ckeditor.com/ticket/6695) if ( CKEDITOR.env.webkit ) { container.setStyle( 'display', 'inline' ); setTimeout( function() { @@ -250,7 +250,7 @@ // Toggle button label. var button = this.uiItems[ 0 ]; - // Only try to change the button if it exists (#6166) + // Only try to change the button if it exists (http://dev.ckeditor.com/ticket/6166) if ( button ) { var label = ( this.state == CKEDITOR.TRISTATE_OFF ) ? lang.maximize.maximize : lang.maximize.minimize; var buttonNode = CKEDITOR.document.getById( button._.id ); @@ -262,7 +262,7 @@ // Restore selection and scroll position in editing area. if ( editor.mode == 'wysiwyg' ) { if ( savedSelection ) { - // Fixing positioning editor chrome in Firefox break design mode. (#5149) + // Fixing positioning editor chrome in Firefox break design mode. (http://dev.ckeditor.com/ticket/5149) CKEDITOR.env.gecko && refreshCursor( editor ); editor.getSelection().selectRanges( savedSelection ); @@ -294,7 +294,7 @@ toolbar: 'tools,10' } ); - // Restore the command state after mode change, unless it has been changed to disabled (#6467) + // Restore the command state after mode change, unless it has been changed to disabled (http://dev.ckeditor.com/ticket/6467) editor.on( 'mode', function() { var command = editor.getCommand( 'maximize' ); command.setState( command.state == CKEDITOR.TRISTATE_DISABLED ? CKEDITOR.TRISTATE_DISABLED : savedState ); diff --git a/sources/plugins/menu/plugin.js b/sources/plugins/menu/plugin.js index f5de4f9..3596e52 100644 --- a/sources/plugins/menu/plugin.js +++ b/sources/plugins/menu/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -41,10 +41,10 @@ CKEDITOR.plugins.add( 'menu', { }; /** - * Adds one or more items from the specified definition array to the editor context menu. + * Adds one or more items from the specified definition object to the editor context menu. * * @method - * @param {Array} definitions List of definitions for each menu item as if {@link #addMenuItem} is called. + * @param {Object} definitions Object where keys are used as itemName and corresponding values as definition for a {@link #addMenuItem} call. * @member CKEDITOR.editor */ editor.addMenuItems = function( definitions ) { @@ -85,12 +85,15 @@ CKEDITOR.plugins.add( 'menu', { ' class="cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href="{href}"' + ' title="{title}"' + ' tabindex="-1"' + - '_cke_focus=1' + + ' _cke_focus=1' + ' hidefocus="true"' + ' role="{role}"' + + ' aria-label="{label}"' + + ' aria-describedby="{id}_description"' + ' aria-haspopup="{hasPopup}"' + ' aria-disabled="{disabled}"' + - ' {ariaChecked}'; + ' {ariaChecked}' + + ' draggable="false"'; // Some browsers don't cancel key events in the keydown but in the // keypress. @@ -99,11 +102,13 @@ CKEDITOR.plugins.add( 'menu', { menuItemSource += ' onkeypress="return false;"'; // With Firefox, we need to force the button to redraw, otherwise it - // will remain in the focus state. - if ( CKEDITOR.env.gecko ) - menuItemSource += ' onblur="this.style.cssText = this.style.cssText;"'; + // will remain in the focus state. Also we some extra help to prevent dragging (http://dev.ckeditor.com/ticket/10373). + if ( CKEDITOR.env.gecko ) { + menuItemSource += ( ' onblur="this.style.cssText = this.style.cssText;"' + + ' ondragstart="return false;"' ); + } - // #188 + // http://dev.ckeditor.com/ticket/188 menuItemSource += ' onmouseover="CKEDITOR.tools.callFunction({hoverFn},{index});"' + ' onmouseout="CKEDITOR.tools.callFunction({moveOutFn},{index});" ' + ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + @@ -111,6 +116,7 @@ CKEDITOR.plugins.add( 'menu', { '>'; menuItemSource += + //'' + '' + '' + '' + @@ -118,16 +124,22 @@ CKEDITOR.plugins.add( 'menu', { '' + '{label}' + '' + + '{shortcutHtml}' + '{arrowHtml}' + '' + - ''; + '{ariaShortcut}'; var menuArrowSource = '' + '{label}' + ''; + var menuShortcutSource = '' + + '{shortcut}' + + ''; + var menuItemTpl = CKEDITOR.addTemplate( 'menuItem', menuItemSource ), - menuArrowTpl = CKEDITOR.addTemplate( 'menuArrow', menuArrowSource ); + menuArrowTpl = CKEDITOR.addTemplate( 'menuArrow', menuArrowSource ), + menuShortcutTpl = CKEDITOR.addTemplate( 'menuShortcut', menuShortcutSource ); /** * @class @@ -246,7 +258,7 @@ CKEDITOR.plugins.add( 'menu', { // Show the submenu. // This timeout is needed to give time for the sub-menu get - // focus when JAWS is running. (#9844) + // focus when JAWS is running. (http://dev.ckeditor.com/ticket/9844) setTimeout( function() { menu.show( element, 2 ); }, 0 ); @@ -262,7 +274,7 @@ CKEDITOR.plugins.add( 'menu', { add: function( item ) { // Later we may sort the items, but Array#sort is not stable in // some browsers, here we're forcing the original sequence with - // 'order' attribute if it hasn't been assigned. (#3868) + // 'order' attribute if it hasn't been assigned. (http://dev.ckeditor.com/ticket/3868) if ( !item.order ) item.order = this.items.length; @@ -330,7 +342,7 @@ CKEDITOR.plugins.add( 'menu', { keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB keys[ ( editor.lang.dir == 'rtl' ? 37 : 39 ) ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // ARROW-RIGHT/ARROW-LEFT(rtl) keys[ 32 ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // SPACE - CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (#8041). + CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (http://dev.ckeditor.com/ticket/8041). element = this._.element = block.element; @@ -462,7 +474,11 @@ CKEDITOR.plugins.add( 'menu', { render: function( menu, index, output ) { var id = menu.id + String( index ), state = ( typeof this.state == 'undefined' ) ? CKEDITOR.TRISTATE_OFF : this.state, - ariaChecked = ''; + ariaChecked = '', + editor = this.editor, + keystroke, + command, + shortcut; var stateName = state == CKEDITOR.TRISTATE_ON ? 'on' : state == CKEDITOR.TRISTATE_DISABLED ? 'disabled' : 'off'; @@ -478,6 +494,15 @@ CKEDITOR.plugins.add( 'menu', { if ( this.icon && !( /\./ ).test( this.icon ) ) iconName = this.icon; + if ( this.command ) { + command = editor.getCommand( this.command ); + keystroke = editor.getCommandKeystroke( command ); + + if ( keystroke ) { + shortcut = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard, keystroke ); + } + } + var params = { id: id, name: this.name, @@ -487,13 +512,15 @@ CKEDITOR.plugins.add( 'menu', { state: stateName, hasPopup: hasSubMenu ? 'true' : 'false', disabled: state == CKEDITOR.TRISTATE_DISABLED, - title: this.label, + title: this.label + ( shortcut ? ' (' + shortcut.display + ')' : '' ), + ariaShortcut: shortcut ? editor.lang.common.keyboardShortcut + ' ' + shortcut.aria : '', href: 'javascript:void(\'' + ( this.label || '' ).replace( "'" + '' ) + '\')', // jshint ignore:line hoverFn: menu._.itemOverFn, moveOutFn: menu._.itemOutFn, clickFn: menu._.itemClickFn, index: index, iconStyle: CKEDITOR.skin.getIconStyle( iconName, ( this.editor.lang.dir == 'rtl' ), iconName == this.icon ? null : this.icon, this.iconOffset ), + shortcutHtml: shortcut ? menuShortcutTpl.output( { shortcut: shortcut.display } ) : '', arrowHtml: hasSubMenu ? menuArrowTpl.output( { label: arrowLabel } ) : '', role: this.role ? this.role : 'menuitem', ariaChecked: ariaChecked diff --git a/sources/plugins/notification/lang/az.js b/sources/plugins/notification/lang/az.js new file mode 100644 index 0000000..7b04ae2 --- /dev/null +++ b/sources/plugins/notification/lang/az.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'az', { + closed: 'Xəbərdarlıq pəncərəsi bağlanıb' +} ); diff --git a/sources/plugins/notification/lang/ca.js b/sources/plugins/notification/lang/ca.js new file mode 100644 index 0000000..bcff547 --- /dev/null +++ b/sources/plugins/notification/lang/ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'ca', { + closed: 'Notificació tancada.' +} ); diff --git a/sources/plugins/notification/lang/cs.js b/sources/plugins/notification/lang/cs.js new file mode 100644 index 0000000..1bf1c04 --- /dev/null +++ b/sources/plugins/notification/lang/cs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'cs', { + closed: 'Oznámení zavřeno.' +} ); diff --git a/sources/plugins/notification/lang/da.js b/sources/plugins/notification/lang/da.js new file mode 100644 index 0000000..bd3f508 --- /dev/null +++ b/sources/plugins/notification/lang/da.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'da', { + closed: 'Notefikation lukket.' +} ); diff --git a/sources/plugins/notification/lang/de-ch.js b/sources/plugins/notification/lang/de-ch.js new file mode 100644 index 0000000..6b97661 --- /dev/null +++ b/sources/plugins/notification/lang/de-ch.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'de-ch', { + closed: 'Benachrichtigung geschlossen.' +} ); diff --git a/sources/plugins/notification/lang/de.js b/sources/plugins/notification/lang/de.js new file mode 100644 index 0000000..2dc45a3 --- /dev/null +++ b/sources/plugins/notification/lang/de.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'de', { + closed: 'Benachrichtigung geschlossen.' +} ); diff --git a/sources/plugins/notification/lang/en.js b/sources/plugins/notification/lang/en.js new file mode 100644 index 0000000..4731650 --- /dev/null +++ b/sources/plugins/notification/lang/en.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'en', { + closed: 'Notification closed.' +} ); diff --git a/sources/plugins/notification/lang/eo.js b/sources/plugins/notification/lang/eo.js new file mode 100644 index 0000000..743b8de --- /dev/null +++ b/sources/plugins/notification/lang/eo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'eo', { + closed: 'Sciigo fermita' +} ); diff --git a/sources/plugins/notification/lang/es-mx.js b/sources/plugins/notification/lang/es-mx.js new file mode 100644 index 0000000..e759a4b --- /dev/null +++ b/sources/plugins/notification/lang/es-mx.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'es-mx', { + closed: 'Notificación cerrada.' +} ); diff --git a/sources/plugins/notification/lang/es.js b/sources/plugins/notification/lang/es.js new file mode 100644 index 0000000..a0bc477 --- /dev/null +++ b/sources/plugins/notification/lang/es.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'es', { + closed: 'Notificación cerrada.' +} ); diff --git a/sources/plugins/notification/lang/eu.js b/sources/plugins/notification/lang/eu.js new file mode 100644 index 0000000..a2a01ee --- /dev/null +++ b/sources/plugins/notification/lang/eu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'eu', { + closed: 'Jakinarazpena itxita.' +} ); diff --git a/sources/plugins/notification/lang/fr.js b/sources/plugins/notification/lang/fr.js new file mode 100644 index 0000000..4ddacc4 --- /dev/null +++ b/sources/plugins/notification/lang/fr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'fr', { + closed: 'Notification fermée.' +} ); diff --git a/sources/plugins/notification/lang/gl.js b/sources/plugins/notification/lang/gl.js new file mode 100644 index 0000000..38f90c4 --- /dev/null +++ b/sources/plugins/notification/lang/gl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'gl', { + closed: 'Notificación pechada.' +} ); diff --git a/sources/plugins/notification/lang/hr.js b/sources/plugins/notification/lang/hr.js new file mode 100644 index 0000000..e453afc --- /dev/null +++ b/sources/plugins/notification/lang/hr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'hr', { + closed: 'Obavijest zatvorena.' +} ); diff --git a/sources/plugins/notification/lang/hu.js b/sources/plugins/notification/lang/hu.js new file mode 100644 index 0000000..48a846e --- /dev/null +++ b/sources/plugins/notification/lang/hu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'hu', { + closed: 'Értesítés bezárva.' +} ); diff --git a/sources/plugins/notification/lang/id.js b/sources/plugins/notification/lang/id.js new file mode 100644 index 0000000..d8917af --- /dev/null +++ b/sources/plugins/notification/lang/id.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'id', { + closed: 'Pemberitahuan ditutup' +} ); diff --git a/sources/plugins/notification/lang/it.js b/sources/plugins/notification/lang/it.js new file mode 100644 index 0000000..aa48a61 --- /dev/null +++ b/sources/plugins/notification/lang/it.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'it', { + closed: 'Notifica chiusa.' +} ); diff --git a/sources/plugins/notification/lang/ja.js b/sources/plugins/notification/lang/ja.js new file mode 100644 index 0000000..38469b9 --- /dev/null +++ b/sources/plugins/notification/lang/ja.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'ja', { + closed: '通知を閉じました。' +} ); diff --git a/sources/plugins/notification/lang/km.js b/sources/plugins/notification/lang/km.js new file mode 100644 index 0000000..458db41 --- /dev/null +++ b/sources/plugins/notification/lang/km.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'km', { + closed: 'បាន​បិទ​ការ​ផ្ដល់​ដំណឹង។' +} ); diff --git a/sources/plugins/notification/lang/ko.js b/sources/plugins/notification/lang/ko.js new file mode 100644 index 0000000..001f391 --- /dev/null +++ b/sources/plugins/notification/lang/ko.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'ko', { + closed: '알림이 닫힘.' +} ); diff --git a/sources/plugins/notification/lang/ku.js b/sources/plugins/notification/lang/ku.js new file mode 100644 index 0000000..e2bac2a --- /dev/null +++ b/sources/plugins/notification/lang/ku.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'ku', { + closed: 'ئاگادارکەرەوەکە داخرا.' +} ); diff --git a/sources/plugins/notification/lang/nb.js b/sources/plugins/notification/lang/nb.js new file mode 100644 index 0000000..7a299dc --- /dev/null +++ b/sources/plugins/notification/lang/nb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'nb', { + closed: 'Varsling lukket.' +} ); diff --git a/sources/plugins/notification/lang/nl.js b/sources/plugins/notification/lang/nl.js new file mode 100644 index 0000000..9e6c9b1 --- /dev/null +++ b/sources/plugins/notification/lang/nl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'nl', { + closed: 'Melding gesloten.' +} ); diff --git a/sources/plugins/notification/lang/oc.js b/sources/plugins/notification/lang/oc.js new file mode 100644 index 0000000..7d2445a --- /dev/null +++ b/sources/plugins/notification/lang/oc.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'oc', { + closed: 'Notificacion tampada.' +} ); diff --git a/sources/plugins/notification/lang/pl.js b/sources/plugins/notification/lang/pl.js new file mode 100644 index 0000000..51a787f --- /dev/null +++ b/sources/plugins/notification/lang/pl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'pl', { + closed: 'Powiadomienie zostało zamknięte.' +} ); diff --git a/sources/plugins/notification/lang/pt-br.js b/sources/plugins/notification/lang/pt-br.js new file mode 100644 index 0000000..f8cd30a --- /dev/null +++ b/sources/plugins/notification/lang/pt-br.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'pt-br', { + closed: 'Notificação fechada.' +} ); diff --git a/sources/plugins/notification/lang/pt.js b/sources/plugins/notification/lang/pt.js new file mode 100644 index 0000000..3a74685 --- /dev/null +++ b/sources/plugins/notification/lang/pt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'pt', { + closed: 'Notificação encerrada.' +} ); diff --git a/sources/plugins/notification/lang/ru.js b/sources/plugins/notification/lang/ru.js new file mode 100644 index 0000000..1fa54f2 --- /dev/null +++ b/sources/plugins/notification/lang/ru.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'ru', { + closed: 'Уведомление закрыто' +} ); diff --git a/sources/plugins/notification/lang/sk.js b/sources/plugins/notification/lang/sk.js new file mode 100644 index 0000000..ec6c9c0 --- /dev/null +++ b/sources/plugins/notification/lang/sk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'sk', { + closed: 'Notifikácia zatvorená.' +} ); diff --git a/sources/plugins/notification/lang/sv.js b/sources/plugins/notification/lang/sv.js new file mode 100644 index 0000000..f7ae2ad --- /dev/null +++ b/sources/plugins/notification/lang/sv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'sv', { + closed: 'Notifiering stängd.' +} ); diff --git a/sources/plugins/notification/lang/tr.js b/sources/plugins/notification/lang/tr.js new file mode 100644 index 0000000..5d6565a --- /dev/null +++ b/sources/plugins/notification/lang/tr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'tr', { + closed: 'Uyarılar kapatıldı.' +} ); diff --git a/sources/plugins/notification/lang/ug.js b/sources/plugins/notification/lang/ug.js new file mode 100644 index 0000000..f0d9c78 --- /dev/null +++ b/sources/plugins/notification/lang/ug.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'ug', { + closed: 'ئوقتۇرۇش تاقالدى.' +} ); diff --git a/sources/plugins/notification/lang/uk.js b/sources/plugins/notification/lang/uk.js new file mode 100644 index 0000000..aa683ae --- /dev/null +++ b/sources/plugins/notification/lang/uk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'uk', { + closed: 'Сповіщення закрито.' +} ); diff --git a/sources/plugins/notification/lang/zh-cn.js b/sources/plugins/notification/lang/zh-cn.js new file mode 100644 index 0000000..5eaf02e --- /dev/null +++ b/sources/plugins/notification/lang/zh-cn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'zh-cn', { + closed: '通知已关闭' +} ); diff --git a/sources/plugins/notification/lang/zh.js b/sources/plugins/notification/lang/zh.js new file mode 100644 index 0000000..518b36c --- /dev/null +++ b/sources/plugins/notification/lang/zh.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'notification', 'zh', { + closed: '通知已關閉。' +} ); diff --git a/sources/plugins/notification/plugin.js b/sources/plugins/notification/plugin.js new file mode 100644 index 0000000..305db28 --- /dev/null +++ b/sources/plugins/notification/plugin.js @@ -0,0 +1,929 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview The "Notification" plugin. + * + */ + +'use strict'; + +CKEDITOR.plugins.add( 'notification', { + lang: 'az,ca,cs,da,de,de-ch,en,eo,es,es-mx,eu,fr,gl,hr,hu,id,it,ja,km,ko,ku,nb,nl,oc,pl,pt,pt-br,ru,sk,sv,tr,ug,uk,zh,zh-cn', // %REMOVE_LINE_CORE% + + init: function( editor ) { + editor._.notificationArea = new Area( editor ); + + // Overwrites default `editor.showNotification`. + editor.showNotification = function( message, type, progressOrDuration ) { + var progress, duration; + + if ( type == 'progress' ) { + progress = progressOrDuration; + } else { + duration = progressOrDuration; + } + + var notification = new CKEDITOR.plugins.notification( editor, { + message: message, + type: type, + progress: progress, + duration: duration + } ); + + notification.show(); + + return notification; + }; + + // Close the last notification on ESC. + editor.on( 'key', function( evt ) { + if ( evt.data.keyCode == 27 ) { /* ESC */ + var notifications = editor._.notificationArea.notifications; + + if ( !notifications.length ) { + return; + } + + // As long as this is not a common practice to inform screen-reader users about actions, in this case + // this is the best solution (unfortunately there is no standard for accessibility for notifications). + // Notification has an `alert` aria role what means that it does not get a focus nor is needed to be + // closed (unlike `alertdialog`). However notification will capture ESC key so we need to inform user + // why it does not do other actions. + say( editor.lang.notification.closed ); + + // Hide last. + notifications[ notifications.length - 1 ].hide(); + + evt.cancel(); + } + } ); + + // Send the message to the screen readers. + function say( text ) { + var message = new CKEDITOR.dom.element( 'div' ); + message.setStyles( { + position: 'fixed', + 'margin-left': '-9999px' + } ); + message.setAttributes( { + 'aria-live': 'assertive', + 'aria-atomic': 'true' + } ); + message.setText( text ); + + CKEDITOR.document.getBody().append( message ); + + setTimeout( function() { + message.remove(); + }, 100 ); + } + } +} ); + +/** + * Notification class. Notifications are used to display short messages to the user. They might be used to show the result of + * asynchronous actions or information about changes in the editor content. It is recommended to use them instead of + * alert dialogs. They should **not** be used if a user response is required nor with dialog windows (e.g. in dialog validation). + * + * There are four types of notifications available, see the {@link #type} property. + * + * Note that the notification constructor only creates a notification instance. To show it, use the {@link #show} method: + * + * var notification = new CKEDITOR.plugins.notification( editor, { message: 'Foo' } ); + * notification.show(); + * + * You can also use the {@link CKEDITOR.editor#showNotification} method: + * + * editor.showNotification( 'Foo' ); + * + * All of the notification actions: ({@link #show}, {@link #update} and {@link #hide}) fire cancelable events + * on the related {@link CKEDITOR.editor} instance so you can integrate editor notifications with your website notifications. + * + * Refer to the [Notifications](http://docs.ckeditor.com/#!/guide/dev_notifications) article for more information about this feature. + * + * @since 4.5 + * @class CKEDITOR.plugins.notification + * @constructor Create a notification object. Call {@link #show} to show the created notification. + * @param {CKEDITOR.editor} editor The editor instance. + * @param {Object} options + * @param {String} options.message The message displayed in the notification. + * @param {String} [options.type='info'] Notification type, see {@link #type}. + * @param {Number} [options.progress=0] If the type is `progress` this may be a progress from 0 to 1. + * @param {Number} [options.duration] How long the notification will be visible, see {@link #duration}. + */ +function Notification( editor, options ) { + CKEDITOR.tools.extend( this, options, { + editor: editor, + id: 'cke-' + CKEDITOR.tools.getUniqueId(), + area: editor._.notificationArea + } ); + + if ( !options.type ) { + this.type = 'info'; + } + + this.element = this._createElement(); + + // Don't allow dragging on notification (http://dev.ckeditor.com/ticket/13184). + editor.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement( this.element ); +} + +/** + * The editor instance. + * + * @readonly + * @property {CKEDITOR.editor} editor + */ + +/** + * Message displayed in the notification. + * + * @readonly + * @property {String} message + */ + +/** + * Notification type. There are four types available: + * + * * `info` (default) – Information for the user (e.g. "File is uploading.", "ACF modified content."), + * * `warning` – Warning or error message (e.g. "This type of file is not supported.", + * "You cannot paste the script."), + * * `success` – Information that an operation finished successfully (e.g. "File uploaded.", "Data imported."). + * * `progress` – Information about the progress of an operation. When the operation is done, the notification + * type should be changed to `success`. + * + * @readonly + * @property {String} type + */ + +/** + * If the notification {@link #type} is `'progress'`, this is the progress from `0` to `1`. + * + * @readonly + * @property {Number} progress + */ + +/** + * Notification duration. Determines after how many milliseconds the notification should close automatically. + * `0` means that the notification will not close automatically and that the user needs to close it manually. + * The default value for `warning` and `progress` notifications is `0`. For `info` and `success` the value can + * either be set through the {@link CKEDITOR.config#notification_duration} configuration option or equals `5000` + * if the configuration option is not set. + * + * @readonly + * @property {Number} duration + */ + +/** + * Unique notification ID. + * + * @readonly + * @property {Number} id + */ + +/** + * Notification DOM element. There is one element per notification. It is created when the notification is created, + * even if it is not shown. If the notification is hidden, the element is detached from the document but not deleted. + * It will be reused if the notification is shown again. + * + * @readonly + * @property {CKEDITOR.dom.element} element + */ + +/** + * {@link CKEDITOR.plugins.notification.area Notification area} reference. + * + * @readonly + * @property {CKEDITOR.plugins.notification.area} area + */ + +Notification.prototype = { + /** + * Adds the notification element to the notification area. The notification will be hidden automatically if + * {@link #duration} is set. + * + * Fires the {@link CKEDITOR.editor#notificationShow} event. + */ + show: function() { + if ( this.editor.fire( 'notificationShow', { notification: this } ) === false ) { + return; + } + + this.area.add( this ); + + this._hideAfterTimeout(); + }, + + /** + * Updates the notification object and element. + * + * Fires the {@link CKEDITOR.editor#notificationUpdate} event. + * + * @param {Object} options + * @param {String} [options.message] {@link #message} + * @param {String} [options.type] {@link #type} + * @param {Number} [options.progress] {@link #progress} + * @param {Number} [options.duration] {@link #duration} + * @param {Boolean} [options.important=false] If the update is important, the notification will be shown + * if it was hidden and read by screen readers. + */ + update: function( options ) { + var show = true; + + if ( this.editor.fire( 'notificationUpdate', { notification: this, options: options } ) === false ) { + // The idea of cancelable event is to let user create his own way of displaying notification, so if + // `notificationUpdate` event will be canceled there will be no interaction with notification area, but on + // the other hand the logic should work anyway so object will be updated (including `element` property). + // Note: we can safely update the element's attributes below, because this element is created inside + // the constructor. If the notificatinShow event was canceled as well, the element is detached from DOM. + show = false; + } + + var element = this.element, + messageElement = element.findOne( '.cke_notification_message' ), + progressElement = element.findOne( '.cke_notification_progress' ), + type = options.type; + + element.removeAttribute( 'role' ); + + // Change type to progress if `options.progress` is set. + if ( options.progress && this.type != 'progress' ) { + type = 'progress'; + } + + if ( type ) { + element.removeClass( this._getClass() ); + element.removeAttribute( 'aria-label' ); + + this.type = type; + + element.addClass( this._getClass() ); + element.setAttribute( 'aria-label', this.type ); + + if ( this.type == 'progress' && !progressElement ) { + progressElement = this._createProgressElement(); + progressElement.insertBefore( messageElement ); + } else if ( this.type != 'progress' && progressElement ) { + progressElement.remove(); + } + } + + if ( options.message !== undefined ) { + this.message = options.message; + messageElement.setHtml( this.message ); + } + + if ( options.progress !== undefined ) { + this.progress = options.progress; + + if ( progressElement ) { + progressElement.setStyle( 'width', this._getPercentageProgress() ); + } + } + + if ( show && options.important ) { + element.setAttribute( 'role', 'alert' ); + + if ( !this.isVisible() ) { + this.area.add( this ); + } + } + + // Overwrite even if it is undefined. + this.duration = options.duration; + + this._hideAfterTimeout(); + }, + + /** + * Removes the notification element from the notification area. + * + * Fires the {@link CKEDITOR.editor#notificationHide} event. + */ + hide: function() { + if ( this.editor.fire( 'notificationHide', { notification: this } ) === false ) { + return; + } + + this.area.remove( this ); + }, + + /** + * Returns `true` if the notification is in the notification area. + * + * @returns {Boolean} `true` if the notification is in the notification area. + */ + isVisible: function() { + return CKEDITOR.tools.indexOf( this.area.notifications, this ) >= 0; + }, + + /** + * Creates the notification DOM element. + * + * @private + * @returns {CKEDITOR.dom.element} Notification DOM element. + */ + _createElement: function() { + var notification = this, + notificationElement, notificationMessageElement, notificationCloseElement, + close = this.editor.lang.common.close; + + notificationElement = new CKEDITOR.dom.element( 'div' ); + notificationElement.addClass( 'cke_notification' ); + notificationElement.addClass( this._getClass() ); + notificationElement.setAttributes( { + id: this.id, + role: 'alert', + 'aria-label': this.type + } ); + + if ( this.type == 'progress' ) + notificationElement.append( this._createProgressElement() ); + + notificationMessageElement = new CKEDITOR.dom.element( 'p' ); + notificationMessageElement.addClass( 'cke_notification_message' ); + notificationMessageElement.setHtml( this.message ); + notificationElement.append( notificationMessageElement ); + + notificationCloseElement = CKEDITOR.dom.element.createFromHtml( + '' + + 'X' + + '' ); + notificationElement.append( notificationCloseElement ); + + notificationCloseElement.on( 'click', function() { + // Focus editor on close (http://dev.ckeditor.com/ticket/12865) + notification.editor.focus(); + + notification.hide(); + } ); + + return notificationElement; + }, + + /** + * Gets the notification CSS class. + * + * @private + * @returns {String} Notification CSS class. + */ + _getClass: function() { + return ( this.type == 'progress' ) ? + 'cke_notification_info' : + ( 'cke_notification_' + this.type ); + }, + + /** + * Creates a progress element for the notification element. + * + * @private + * @returns {CKEDITOR.dom.element} Progress element for the notification element. + */ + _createProgressElement: function() { + var element = new CKEDITOR.dom.element( 'span' ); + element.addClass( 'cke_notification_progress' ); + element.setStyle( 'width', this._getPercentageProgress() ); + return element; + }, + + /** + * Gets the progress as a percentage (ex. `0.3` -> `30%`). + * + * @private + * @returns {String} Progress as a percentage. + */ + _getPercentageProgress: function() { + return Math.round( ( this.progress || 0 ) * 100 ) + '%'; + }, + + /** + * Hides the notification after a timeout. + * + * @private + */ + _hideAfterTimeout: function() { + var notification = this, + duration; + + if ( this._hideTimeoutId ) { + clearTimeout( this._hideTimeoutId ); + } + + if ( typeof this.duration == 'number' ) { + duration = this.duration; + } else if ( this.type == 'info' || this.type == 'success' ) { + duration = ( typeof this.editor.config.notification_duration == 'number' ) ? + this.editor.config.notification_duration : + 5000; + } + + if ( duration ) { + notification._hideTimeoutId = setTimeout( function() { + notification.hide(); + }, duration ); + } + } +}; + +/** + * Notification area is an area where all notifications are put. The area is laid out dynamically. + * When the first notification is added, the area is shown and all listeners are added. + * When the last notification is removed, the area is hidden and all listeners are removed. + * + * @since 4.5 + * @private + * @class CKEDITOR.plugins.notification.area + * @constructor + * @param {CKEDITOR.editor} editor The editor instance. + */ +function Area( editor ) { + var that = this; + + this.editor = editor; + this.notifications = []; + this.element = this._createElement(); + this._uiBuffer = CKEDITOR.tools.eventsBuffer( 10, this._layout, this ); + this._changeBuffer = CKEDITOR.tools.eventsBuffer( 500, this._layout, this ); + + editor.on( 'destroy', function() { + that._removeListeners(); + that.element.remove(); + } ); +} + +/** + * The editor instance. + * + * @readonly + * @property {CKEDITOR.editor} editor + */ + +/** + * The array of added notifications. + * + * @readonly + * @property {Array} notifications + */ + +/** + * Notification area DOM element. This element is created when the area object is created. It will be attached to the document + * when the first notification is added and removed when the last notification is removed. + * + * @readonly + * @property {CKEDITOR.dom.element} element + */ + +/** + * Notification width. Cached for performance reasons. + * + * @private + * @property {CKEDITOR.dom.element} _notificationWidth + */ + +/** + * Notification margin. Cached for performance reasons. + * + * @private + * @property {CKEDITOR.dom.element} _notificationMargin + */ + +/** + * Event buffer object for UI events to optimize performance. + * + * @private + * @property {Object} _uiBuffer + */ + +/** + * Event buffer object for editor change events to optimize performance. + * + * @private + * @property {Object} _changeBuffer + */ + +Area.prototype = { + /** + * Adds the notification to the notification area. If it is the first notification, the area will also be attached to + * the document and listeners will be attached. + * + * Note that the proper way to show a notification is to call the {@link CKEDITOR.plugins.notification#show} method. + * + * @param {CKEDITOR.plugins.notification} notification Notification to add. + */ + add: function( notification ) { + this.notifications.push( notification ); + + this.element.append( notification.element ); + + if ( this.element.getChildCount() == 1 ) { + CKEDITOR.document.getBody().append( this.element ); + this._attachListeners(); + } + + this._layout(); + }, + + /** + * Removes the notification from the notification area. If it is the last notification, the area will also be + * detached from the document and listeners will be detached. + * + * Note that the proper way to hide a notification is to call the {@link CKEDITOR.plugins.notification#hide} method. + * + * @param {CKEDITOR.plugins.notification} notification Notification to remove. + */ + remove: function( notification ) { + var i = CKEDITOR.tools.indexOf( this.notifications, notification ); + + if ( i < 0 ) { + return; + } + + this.notifications.splice( i, 1 ); + + notification.element.remove(); + + if ( !this.element.getChildCount() ) { + this._removeListeners(); + this.element.remove(); + } + }, + + /** + * Creates the notification area element. + * + * @private + * @returns {CKEDITOR.dom.element} Notification area element. + */ + _createElement: function() { + var editor = this.editor, + config = editor.config, + notificationArea = new CKEDITOR.dom.element( 'div' ); + + notificationArea.addClass( 'cke_notifications_area' ); + notificationArea.setAttribute( 'id', 'cke_notifications_area_' + editor.name ); + notificationArea.setStyle( 'z-index', config.baseFloatZIndex - 2 ); + + return notificationArea; + }, + + /** + * Attaches listeners to the notification area. + * + * @private + */ + _attachListeners: function() { + var win = CKEDITOR.document.getWindow(), + editor = this.editor; + + win.on( 'scroll', this._uiBuffer.input ); + win.on( 'resize', this._uiBuffer.input ); + editor.on( 'change', this._changeBuffer.input ); + editor.on( 'floatingSpaceLayout', this._layout, this, null, 20 ); + editor.on( 'blur', this._layout, this, null, 20 ); + }, + + /** + * Detaches listeners from the notification area. + * + * @private + */ + _removeListeners: function() { + var win = CKEDITOR.document.getWindow(), + editor = this.editor; + + win.removeListener( 'scroll', this._uiBuffer.input ); + win.removeListener( 'resize', this._uiBuffer.input ); + editor.removeListener( 'change', this._changeBuffer.input ); + editor.removeListener( 'floatingSpaceLayout', this._layout ); + editor.removeListener( 'blur', this._layout ); + }, + + /** + * Sets the position of the notification area based on the editor content, toolbar as well as + * viewport position and dimensions. + * + * @private + */ + _layout: function() { + var area = this.element, + editor = this.editor, + contentsRect = editor.ui.contentsElement.getClientRect(), + contentsPos = editor.ui.contentsElement.getDocumentPosition(), + top, + topRect, + areaRect = area.getClientRect(), + notification, + notificationWidth = this._notificationWidth, + notificationMargin = this._notificationMargin, + win = CKEDITOR.document.getWindow(), + scrollPos = win.getScrollPosition(), + viewRect = win.getViewPaneSize(), + body = CKEDITOR.document.getBody(), + bodyPos = body.getDocumentPosition(), + cssLength = CKEDITOR.tools.cssLength; + + // Cache for optimization + if ( !notificationWidth || !notificationMargin ) { + notification = this.element.getChild( 0 ); + notificationWidth = this._notificationWidth = notification.getClientRect().width; + notificationMargin = this._notificationMargin = + parseInt( notification.getComputedStyle( 'margin-left' ), 10 ) + + parseInt( notification.getComputedStyle( 'margin-right' ), 10 ); + } + + // Check if toolbar exist and if so, then assign values to it (#491). + if ( editor.toolbar ) { + top = editor.ui.space( 'top' ); + topRect = top.getClientRect(); + } + + + // --------------------------------------- Horizontal layout ---------------------------------------- + + // +---Viewport-------------------------------+ +---Viewport-------------------------------+ + // | | | | + // | +---Toolbar----------------------------+ | | +---Content----------------------------+ | + // | | | | | | | | + // | +---Content----------------------------+ | | | | | + // | | | | | +---Toolbar----------------------+ | | + // | | +------Notification------+ | | | | | | | + // | | | | OR | +--------------------------------+ | | + // | | | | | | | | + // | | | | | | +------Notification------+ | | + // | | | | | | | | + // | | | | | | | | + // | +--------------------------------------+ | | +--------------------------------------+ | + // +------------------------------------------+ +------------------------------------------+ + if ( top && top.isVisible() && + topRect.bottom > contentsRect.top && + topRect.bottom < contentsRect.bottom - areaRect.height ) { + setBelowToolbar(); + + // +---Viewport-------------------------------+ + // | | + // | +---Content----------------------------+ | + // | | | | + // | | +------Notification------+ | | + // | | | | + // | | | | + // | | | | + // | +--------------------------------------+ | + // | | + // +------------------------------------------+ + } else if ( contentsRect.top > 0 ) { + setTopStandard(); + + // +---Content----------------------------+ + // | | + // +---Viewport-------------------------------+ + // | | | | + // | | +------Notification------+ | | + // | | | | + // | | | | + // | | | | + // | +--------------------------------------+ | + // | | + // +------------------------------------------+ + } else if ( contentsPos.y + contentsRect.height - areaRect.height > scrollPos.y ) { + setTopFixed(); + + // +---Content----------------------------+ +---Content----------------------------+ + // | | | | + // | | | | + // | | | +------Notification------+ | + // | | | | + // | | OR +--------------------------------------+ + // +---Viewport-------------------------------+ + // | | +------Notification------+ | | +---Viewport-------------------------------+ + // | | | | | | + // | +--------------------------------------+ | | | + // | | | | + // +------------------------------------------+ +------------------------------------------+ + } else { + setBottom(); + } + + function setTopStandard() { + area.setStyles( { + position: 'absolute', + top: cssLength( contentsPos.y ) + } ); + } + + function setBelowToolbar() { + area.setStyles( { + position: 'fixed', + top: cssLength( topRect.bottom ) + } ); + } + + function setTopFixed() { + area.setStyles( { + position: 'fixed', + top: 0 + } ); + } + + function setBottom() { + area.setStyles( { + position: 'absolute', + top: cssLength( contentsPos.y + contentsRect.height - areaRect.height ) + } ); + } + + // ---------------------------------------- Vertical layout ----------------------------------------- + + var leftBase = area.getStyle( 'position' ) == 'fixed' ? + contentsRect.left : + body.getComputedStyle( 'position' ) != 'static' ? contentsPos.x - bodyPos.x : contentsPos.x; + + // Content is narrower than notification + if ( contentsRect.width < notificationWidth + notificationMargin ) { + + // +---Viewport-------------------------------+ + // | | + // | +---Content------------+ | + // | | | | + // | +------Notification------+ | | + // | | | | + // | +----------------------+ | + // | | + // +------------------------------------------+ + if ( contentsPos.x + notificationWidth + notificationMargin > scrollPos.x + viewRect.width ) { + setRight(); + + // +---Viewport-------------------------------+ +---Viewport--------------------------+ + // | | | | + // | +---Content------------+ | +---Content------------+ | + // | | | | | | | | + // | | +------Notification------+ | OR | +------Notification------+ | + // | | | | | | | | + // | +----------------------+ | +----------------------+ | + // | | | | + // +------------------------------------------+ +-------------------------------------+ + } else { + setLeft(); + } + + // Content is wider than notification. + } else { + + // +--+Viewport+------------------------+ + // | | + // | +---Content-----------------------------------------+ + // | | | | + // | | +-----+Notification+-----+ | + // | | | | + // | | | | + // | | | | + // | +---------------------------------------------------+ + // | | + // +------------------------------------+ + if ( contentsPos.x + notificationWidth + notificationMargin > scrollPos.x + viewRect.width ) { + setLeft(); + + // +---Viewport-------------------------+ + // | | + // | +---Content----------------------------------------------+ + // | | | | + // | | +------Notification------+ | | + // | | | | + // | | | | + // | +--------------------------------------------------------+ + // | | + // +------------------------------------+ + } else if ( contentsPos.x + contentsRect.width / 2 + + notificationWidth / 2 + notificationMargin > scrollPos.x + viewRect.width ) { + setRightFixed(); + + // +---Viewport-------------------------+ + // | | + // +---Content----------------------------+ | + // | | | | + // | +------Notification------+ | | + // | | | | + // | | | | + // +--------------------------------------+ | + // | | + // +------------------------------------+ + } else if ( contentsRect.left + contentsRect.width - notificationWidth - notificationMargin < 0 ) { + setRight(); + + // +---Viewport-------------------------+ + // | | + // +---Content---------------------------------------------+ | + // | | | | + // | | +------Notification------+ | | + // | | | | + // | | | | + // +-------------------------------------------------------+ | + // | | + // +------------------------------------+ + } else if ( contentsRect.left + contentsRect.width / 2 - notificationWidth / 2 < 0 ) { + setLeftFixed(); + + // +---Viewport-------------------------+ + // | | + // | +---Content----------------------+ | + // | | | | + // | | +-----Notification-----+ | | + // | | | | + // | | | | + // | +--------------------------------+ | + // | | + // +------------------------------------+ + } else { + setCenter(); + } + } + + function setLeft() { + area.setStyle( 'left', cssLength( leftBase ) ); + } + + function setLeftFixed() { + area.setStyle( 'left', cssLength( leftBase - contentsPos.x + scrollPos.x ) ); + } + + function setCenter() { + area.setStyle( 'left', cssLength( leftBase + contentsRect.width / 2 - notificationWidth / 2 - notificationMargin / 2 ) ); + } + + function setRight() { + area.setStyle( 'left', cssLength( leftBase + contentsRect.width - notificationWidth - notificationMargin ) ); + } + + function setRightFixed() { + area.setStyle( 'left', cssLength( leftBase - contentsPos.x + scrollPos.x + viewRect.width - + notificationWidth - notificationMargin ) ); + } + } +}; + +CKEDITOR.plugins.notification = Notification; + +/** + * After how many milliseconds the notification of the `info` and `success` + * {@link CKEDITOR.plugins.notification#type type} should close automatically. + * `0` means that notifications will not close automatically. + * Note that `warning` and `progress` notifications will never close automatically. + * + * Refer to the [Notifications](http://docs.ckeditor.com/#!/guide/dev_notifications) article + * for more information about this feature. + * + * @since 4.5 + * @cfg {Number} [notification_duration=5000] + * @member CKEDITOR.config + */ + +/** + * Event fired when the {@link CKEDITOR.plugins.notification#show} method is called, before the + * notification is shown. If this event is canceled, the notification will not be shown. + * + * Using this event allows you to fully customize how a notification will be shown. It may be used to integrate + * the CKEditor notification system with your web page notifications. + * + * @since 4.5 + * @event notificationShow + * @member CKEDITOR.editor + * @param data + * @param {CKEDITOR.plugins.notification} data.notification Notification which will be shown. + * @param {CKEDITOR.editor} editor The editor instance. + */ + +/** + * Event fired when the {@link CKEDITOR.plugins.notification#update} method is called, before the + * notification is updated. If this event is canceled, the notification will not be shown even if the update was important, + * but the object will be updated anyway. Note that canceling this event does not prevent updating {@link #element} + * attributes, but if {@link #notificationShow} was canceled as well, this element is detached from the DOM. + * + * Using this event allows you to fully customize how a notification will be updated. It may be used to integrate + * the CKEditor notification system with your web page notifications. + * + * @since 4.5 + * @event notificationUpdate + * @member CKEDITOR.editor + * @param data + * @param {CKEDITOR.plugins.notification} data.notification Notification which will be updated. + * Note that it contains the data that has not been updated yet. + * @param {Object} data.options Update options, see {@link CKEDITOR.plugins.notification#update}. + * @param {CKEDITOR.editor} editor The editor instance. + */ + +/** + * Event fired when the {@link CKEDITOR.plugins.notification#hide} method is called, before the + * notification is hidden. If this event is canceled, the notification will not be hidden. + * + * Using this event allows you to fully customize how a notification will be hidden. It may be used to integrate + * the CKEditor notification system with your web page notifications. + * + * @since 4.5 + * @event notificationHide + * @member CKEDITOR.editor + * @param data + * @param {CKEDITOR.plugins.notification} data.notification Notification which will be hidden. + * @param {CKEDITOR.editor} editor The editor instance. + */ diff --git a/sources/plugins/oembed/LICENSE.md b/sources/plugins/oembed/LICENSE.md new file mode 100644 index 0000000..be0064f --- /dev/null +++ b/sources/plugins/oembed/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Ingo Herbote + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/sources/plugins/oembed/README.md b/sources/plugins/oembed/README.md new file mode 100644 index 0000000..64c729c --- /dev/null +++ b/sources/plugins/oembed/README.md @@ -0,0 +1,201 @@ +CKEditor-oEmbed-Plugin +====================== + +oEmbed Plugin for CKEditor + +This Plugin allows to insert embedded content (such as photos, videos, audio, and other rich media) via the OEmbed API. You only have to provide the url to the site (It works also when the url is shortened) you want to embed and the plugin does the rest. + +This Plugin uses the jquery-oembed-all Plugin located at https://github.com/starfishmod/jquery-oembed-all. + +####Demo + +http://w8tcha.github.com/CKEditor-oEmbed-Plugin/ + +####Currently Supported Sites... + +###Video +* Youtube - oembed - YQL +* Blip - oEmbed +* Hulu - oEmbed +* Vimeo - oEmbed +* National film board of Canada - oEmbed +* Qik - oEmbed +* Dotsub - oEmbed +* Clikthrough - oEmbed +* Kino Map - oEmbed +* Funny Or Die - Embedded +* College Humour - Embedded +* Metacafe - Embedded +* embedr - Embedded +* 5min - oEmbed is XML only - using YQL to translate it +* ustream.tv - oEmbed is not JSONP enabled - using YQL to translate it +* viddler - OGP +* twitvid - Embedded +* bambuser - Embedded +* xtranormal - Embedded +* Gametrailers - Embedded +* Vzarr - Embedded +* VHX - oembed +* bambuser - oembed +* dailymotion.com - oembed +* animoto - oembed +* justin.tv - YQL JSON +* livestream - OGP +* scivee - embedded +* veoh - embedded +* minoto-video - oembed using YQL +* TrailerAddict - OGP +* vodpod - oembed YQL - broken as the oembed has absolute positioning which breaks the display +* fora.tv -OGP YQL +* TED - OGP YQL +* Aniboom - embedded +* Comedy Central - OGP +* snotr - embedded +* zapiks - OGP +* youku - embedded +* wistia - Oembed + +###Audio +* Soundcloud - oEmbed +* HuffDuffer - oEmbed +* BandCamp - YQL and Embedded +* podomatic - OGP +* rdio.com - oEmbed +* hark.com - OGP +* chirb.it - YQL and oembed +* official.fm - YQL and oembed +* mixcloud - YQL and oembed +* shoudio - oembed +* audioboo.fm - OGP +* Spotify - OGP YQL + +###Photo +* flickr - oEmbed +* photobucket - oEmbed +* instagram - oEmbed +* yfrog - oEmbed +* 23HQ - oEmbed +* Smugmug - oEmbed +* twitpic - OGP YQL +* 500px.com - OGP +* visual.ly - YQL Lookup +* img.ly - Thumbnail view +* imgur.com - Thumbnail view +* twitgoo.com - Thumbnail view +* gravatar - Thumbnail view when using mailto +* pintrest - YQL - Embedded view of a sort. +* circuitlab - image view +* skitch - YQL oembed +* graphic.ly - OGP +* dribble - jsonp lookup +* Lockerz - YQL lookup +* AsciiArtFarts - YQL Lookup +* lego cusoo - OGP over YQL +* plannary - OGP over YQL +* propic - OGP +* avairy.com - OGP +* lomography - ogp +* weheartit - ogp +* glogster - ogp +* chart.ly - embedded +* twitrpix - OGP +* chictopia - OGP + +###Rich +* Meetup - oEmbed +* gigapans - Embedded +* Slideshare - oEmbed +* ebay - Embedded +* scribd - Embedded +* screenr - Embedded +* tumblr- JSONP lookup +* imdb - JSONP lookup via imdbapi.com +* wikipedia- JSONP lookup +* github- JSONP lookup (CSS) +* eventful - OGP +* myspace - OGP +* live Journal - JSONP Lookup (CSS) +* wordpress - oEmbed (wordpress.com, wp.me, blogs.cnn.com, techcrunch.com). I can add other wordpress sites as well. +* circuitbee -Embedded +* stack overflow - JSONP Lookup (CSS) +* Facebook - JSONP Lookup (CSS) +* Pastebin - Embedded +* Pastie - YQL lookup +* kickstarter - Embedded +* issuu - OGP +* reelapp.com - Embedded +* Etsy - OGP over YQL +* Amazon - Embedded - Requires Affiliate code +* linkedin - Embedded IFRAME - found a link that works :) +* Lanyrd - YQL (CSS) +* twitter - Oembed - status only - but that is ok I think +* github gist - oembed +* speakerdeck - yql oembed +* dipity - yql oembed +* dailymile - oembed +* deviantart - oembed +* Roomshare Japan - oembed +* mobypictures - oembed +* prezi - embedded +* popplet - embedded +* authorstream - OGP +* googlecalendar - Iframe +* cacoo - oembed +* pearltrees - embedded +* urtak - oembed - is broken in iframe return atm -seems to be an embed.ly issue?? +* jotform - embedded +* Urban Dictionary - YQL lookup +* Ars Technica - YQL Lookup +* Eventbrite - OGP YQL +* last.fm OGP YQL +* Rotten Tomatoes - OGP YQL +* iFixit - OGP +* qwiki - OGP +* brighttalk - Meta info +* tinychat - OGP +* tourwrist - embedded +* bnter - OGP +* bigthink - OGP +* wirewax - OGP +* whosay - OGP +* timetoast - embedded +* tripline - OGP +* jsfiddle - embedded + + +####License + +Licensed under the terms of the MIT License. + +####Dependencies +This Plugin requires the following plugins to work: Widget, Dialog. + +####Installation + + 1. Before you can use the plugin you also need to download & install the widget plugin, if you have it not installed. http://ckeditor.com/addon/widget + 2. Extract the contents of the file into the "plugins" folder of CKEditor. + 3. In the CKEditor configuration file (config.js) add the following code: + +````js +config.extraPlugins = 'oembed,widget'; +```` + +2a. Additionally you can also set the default values vor the Max. Width/Height Values + +````js +config.oembed_maxWidth = '560'; +config.oembed_maxHeight = '315'; +```` + +and also you can define an css class for the embeded content wrapper (div), by default there is no Class defined + +````js +config.oembed_WrapperClass = 'embededContent'; +```` + + +3. and also include the plugin in the toolbar + +````js +toolbar :[ ... ['oembed']...] +```` diff --git a/sources/plugins/oembed/icons/hidpi/oembed.png b/sources/plugins/oembed/icons/hidpi/oembed.png new file mode 100644 index 0000000..a568d17 Binary files /dev/null and b/sources/plugins/oembed/icons/hidpi/oembed.png differ diff --git a/sources/plugins/oembed/icons/oembed.png b/sources/plugins/oembed/icons/oembed.png new file mode 100644 index 0000000..2ba7cce Binary files /dev/null and b/sources/plugins/oembed/icons/oembed.png differ diff --git a/sources/plugins/oembed/lang/de.js b/sources/plugins/oembed/lang/de.js new file mode 100644 index 0000000..69422ae --- /dev/null +++ b/sources/plugins/oembed/lang/de.js @@ -0,0 +1,23 @@ +CKEDITOR.plugins.setLang('oembed', 'de', { + title : "Medien Inhalt einbinden (Bilder, Video, Inhalt)", + button : "Medien Inhalt von Verschiedenen Seiten einbinden", + pasteUrl : "Fügen Sie eine Url (Gekürzte Urls werden auch erkannt) ein von einer Seite die Unterstützt wird (z.B.: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...", + invalidUrl : "Sie müssem eine korrekte URL an!", + noEmbedCode : "Kein embed Code gefunden, oder Seite wird nicht Unterstützt!", + url : "URL:", + width: "Breite:", + height: "Höhe:", + widthTitle: "Breite für den eingebundenen Inhalt", + heightTitle: "Höhe für den eingebundenen Inhalt", + maxWidth: "Max. Breite:", + maxHeight: "Max. Höhe:", + maxWidthTitle: "Maximale Breite für den eingebundenen Inhalt", + maxHeightTitle: "Maximale Höhe für den eingebundenen Inhalt", + resizeType: "Größenveränderungsmodus (Nur Video's):", + none:'None', + noresize: "Keine Veränderung (Standardgröße)", + responsive: "Responsive", + custom: "Eigene Größe", + noVimeo: "Der Eigentümber dieses Videos hat Domain einschränkungen für dieses Video gesetzt das Video kann nicht in die Webseite eingebunden werden.", + Error: "Inhalt konnte nicht gefunden werden, bitte Versuchen sie eine Andere URL." +}); diff --git a/sources/plugins/oembed/lang/en.js b/sources/plugins/oembed/lang/en.js new file mode 100644 index 0000000..e461f03 --- /dev/null +++ b/sources/plugins/oembed/lang/en.js @@ -0,0 +1,23 @@ +CKEDITOR.plugins.setLang('oembed', 'en', { + title: "Embed Media Content (Photo, Video, Audio or Rich Content)", + button: "Embed Media from External Sites", + pasteUrl: "Paste a URL (shorted URLs are also supported) from one of the supported sites (e.g. YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.).", + invalidUrl: "Please provide a valid URL.", + noEmbedCode: "No embed code found, or site is not supported.", + url: "URL:", + width: "Width:", + height: "Height:", + widthTitle: "Width for the embeded content", + heightTitle: "Height for the embeded content", + maxWidth: "Max. Width:", + maxHeight: "Max. Height:", + maxWidthTitle: "Maximum Width for the embeded Content", + maxHeightTitle: "Maximum Height for the embeded Content", + none:'None', + resizeType: "Resize Type (videos only):", + noresize: "No Resize (use default)", + responsive: "Responsive Resize", + custom: "Specific Resize", + noVimeo: "The owner of this video has set domain restrictions and you will not be able to embed it on your website.", + Error: "Media Content could not been retrieved, please try a different URL." +}); diff --git a/sources/plugins/oembed/lang/fr.js b/sources/plugins/oembed/lang/fr.js new file mode 100644 index 0000000..c1e0650 --- /dev/null +++ b/sources/plugins/oembed/lang/fr.js @@ -0,0 +1,25 @@ +// French Translation by https://github.com/wissim + +CKEDITOR.plugins.setLang('oembed', 'fr', { + title : "Intégrer des contenus multimédia externes. (Photo, Video, Audio, ...)", + button : "Insérer des contenus multimédia provenant de nombreux sites.", + pasteUrl : "Coller l'URL de partage que vous voulez publier. De nombreux services sont pris en charge tels que : (YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.). Vous pouvez aussi utiliser les URLs courtes.", + invalidUrl : "Merci de fournir une URL valide !", + noEmbedCode : "Aucun code d'intégration trouvé ou le site n'est pas supporté !", + url : "URL:", + width: "Largeur:", + height: "Hauteur:", + widthTitle: "Largeur du conteneur.", + heightTitle: "Hauteur du conteneur.", + maxWidth: "Max. Largeur:", + maxHeight: "Max. Hauteur:", + maxWidthTitle: "Largeur maximale du conteneur.", + maxHeightTitle: "Hauteur maximale du conteneur.", + resizeType: "Resize Type (Only Video's):", + none:'None', + noresize: "No Resize (use default)", + responsive: "Responsive Resize", + custom: "Specific Resize", + noVimeo: "The owner of this video has set domain restrictions and you will not be able to embed it on your website.", + Error: "Media Content could not been retrieved, please try a different URL." +}); diff --git a/sources/plugins/oembed/lang/nl.js b/sources/plugins/oembed/lang/nl.js new file mode 100644 index 0000000..94cf8ad --- /dev/null +++ b/sources/plugins/oembed/lang/nl.js @@ -0,0 +1,23 @@ +CKEDITOR.plugins.setLang('oembed', 'nl', { + title : "Integratie van media-inhoud (foto's, video, content)", + button : "Media-inhoud van externe websites", + pasteUrl : "Geef een URL van een pagina in dat ondersteund wordt (Bijv.: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...", + invalidUrl : "Gelieve een geldige URL op te geven!", + noEmbedCode : "Geen embed code gevonden, of de website wordt niet ondersteund!", + url : "URL:", + width: "Breedte:", + height: "Hoogte:", + widthTitle: "Breedte voor de ingevoegde inhoud", + heightTitle: "Hoogte voor de ingevoegde inhoud", + maxWidth: "Maximale breedte:", + maxHeight: "Maximale hoogte:", + maxWidthTitle: "Maximum breedte voor de ingevoegde inhoud", + maxHeightTitle: "Maximum hoogte voor de ingevoegde inhoud", + none:'None', + resizeType: "Type formaat aanpassing (enkel video's):", + noresize: "Geen formaat aanpassing (gebruik standaard)", + responsive: "Responsieve formaat aanpassing", + custom: "Specifieke formaat aanpassing", + noVimeo: "De eigenaar van deze video heeft restricties ingesteld waardoor je deze video niet kunt invoegen op je eigen website.", + Error: "Media inhoud kon niet worden opgehaald, gelieve een andere URL te proberen." +}); diff --git a/sources/plugins/oembed/lang/pl.js b/sources/plugins/oembed/lang/pl.js new file mode 100644 index 0000000..a7d7b92 --- /dev/null +++ b/sources/plugins/oembed/lang/pl.js @@ -0,0 +1,23 @@ +CKEDITOR.plugins.setLang('oembed', 'pl', { + title: "Osadzanie multimediów (zdjęć, filmów, dźwięku, bogatych treści)", + button: "Osadzanie multimediów z witryn zewnętrznych", + pasteUrl: "Wklej tutaj adres URL (adresy skrócone są również obsługiwane) z jednej z obsługiwanych stron (YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, itp.).", + invalidUrl: "Proszę wprowadzić prawidłowy adres URL!", + noEmbedCode: "Odnośnik nieprawidłowy lub nieobsługiwany!", + url: "URL:", + width: "szerokość:", + height: "wysokość:", + widthTitle: "Szerokość osadzanej zawartości", + heightTitle: "Wysokość osadzanej zawartości", + maxWidth: "Maks. szerokość:", + maxHeight: "Maks. wysokość:", + maxWidthTitle: "Maksymalna szerokość osadzanej zawartości", + maxHeightTitle: "Maksymalna wysokość osadzanej zawartości", + resizeType: "Typ zmiany rozmiaru (tylko nagrania wideo):", + none:'None', + noresize: "Bez zmiany rozmiaru (domyślne)", + responsive: "Responsywna zmiana rozmiaru", + custom: "Narzucona zmiana rozmiaru", + noVimeo: "Właściciel nagrania wideo nałożył ograniczenia domenowe, nagrania nie można osadzić w witrynie.", + Error: "Nie można uzyskać zawartości multimedialnej, proszę spróbować inny adres URL." +}); diff --git a/sources/plugins/oembed/lang/pt-br.js b/sources/plugins/oembed/lang/pt-br.js new file mode 100644 index 0000000..6616432 --- /dev/null +++ b/sources/plugins/oembed/lang/pt-br.js @@ -0,0 +1,23 @@ +CKEDITOR.plugins.setLang('oembed', 'pt-br', { + title: "Conteúdo embed de mídia (foto, vídeo, audio, rich)", + button: "Conteúdo embed de mídia de vários sites", + pasteUrl: "Cole aqui a URL (inclusive URLs encurtadas) de um dos sites que o plugin suporta (ex. YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...", + invalidUrl: "Por favor informe uma URL válida!", + noEmbedCode: "Nenhum código embed foi encontrado, ou esse site não está na lista dos sites suportados pelo plugin!", + url: "URL:", + width: "Largura:", + height: "Altura:", + widthTitle: "Largura do conteúdo embebed", + heightTitle: "Altura do conteúdo embeded", + maxWidth: "Largura máx.:", + maxHeight: "Altura máx.:", + maxWidthTitle: "Largura máxima do conteúdo embeded", + maxHeightTitle: "Altura máxima do conteúdo embeded", + resizeType: "Tipo de redimensionamento (Somente para video):", + none:'None', + noresize: "Sem redimensionamento (default)", + responsive: "Redimensionamento responsivo", + custom: "Redimensionamento específico", + noVimeo: "O dono desse vídeo tem restrições de domínio a você não poderá utilizá-lo em seu site.", + Error: "Esse conteúdo de mídia não foi encontrado, por favor tente uma URL diferente." +}); diff --git a/sources/plugins/oembed/lang/ru.js b/sources/plugins/oembed/lang/ru.js new file mode 100644 index 0000000..f2a1e53 --- /dev/null +++ b/sources/plugins/oembed/lang/ru.js @@ -0,0 +1,23 @@ +CKEDITOR.plugins.setLang('oembed', 'ru', { + title: "Внедрить медиа-контент (видео, аудио, фото и т.д.)", + button: "Внедрить медиа-контент с различных сайтов", + pasteUrl: "Вставьте ссылку на страницу с медиа-контентом (например YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, и т.д.)", + invalidUrl: "Вы ввели некорректный URL", + noEmbedCode: "Не обнаружен код для вставки. Возможно, вы ввели ссылку с неподдерживаемого сайта.", + url: "URL:", + width: "Ширина:", + height: "Высота:", + widthTitle: "Ширина внедряемого медиа-контента", + heightTitle: "Высота внедряемого медиа-контента", + maxWidth: "Макс. ширина:", + maxHeight: "Макс. высота:", + maxWidthTitle: "Максимальная ширина внедряемого медиа-контента", + maxHeightTitle: "Максимальная высота внедряемого медиа-контента", + resizeType: "Изменение размера (только для видео):", + none:'None', + noresize: "Без изменения (стандартный размер)", + responsive: "Задать максимальный размер", + custom: "Задать конкретный размер", + noVimeo: "Владелец этого видео установил ограничения на домен, и вы не можете его встроить на ваш сайт.", + Error: "Невозможно получить медиа-контент. Попробуйте другой URL." +}); diff --git a/sources/plugins/oembed/lang/tr.js b/sources/plugins/oembed/lang/tr.js new file mode 100644 index 0000000..f027106 --- /dev/null +++ b/sources/plugins/oembed/lang/tr.js @@ -0,0 +1,23 @@ +CKEDITOR.plugins.setLang('oembed', 'tr', { + title: "Medya içeriği ekle (Fotoğraf, Video, Ses Dosyası, Zengin Medya İçeriği)", + button: "Farklı sitelerden medya içeriği ekle", + pasteUrl: "Desteklenen sitelerden bir URL ekleyin (Kısaltılmış URL de olabilir) (örnek: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.)...", + invalidUrl: "Lütfen geçerli bir URL adresi tanımlayın!", + noEmbedCode: "Embed kodu bulunamadı veya site desteklenmiyor!", + url: "URL:", + width: "Genişlik:", + height: "Yükseklik:", + widthTitle: "Eklenecek içerik için genişlik", + heightTitle: "Eklenecek içerik için yükseklik", + maxWidth: "Max. genişlik:", + maxHeight: "Max. yükseklik:", + maxWidthTitle: "Eklenecek içerik için max. genişlik", + maxHeightTitle: "Eklenecek içerik için max. yükseklik", + resizeType: "Boyutlandır (sadece videolarda geçerli):", + none:'None', + noresize: "Boyutlandırma yapma (default kullan)", + responsive: "Esnek (Responsive) boyutlandırma", + custom: "Özel boyutlandırma", + noVimeo: "Bu videonun sahibi alan adı kısıtlaması ayarlamış, web sitenizde bu video çalışmayacaktır.", + Error: "Medya içeriği alınamadı, farklı bir URL deneyin." +}); diff --git a/sources/plugins/oembed/libs/jquery.oembed.min.js b/sources/plugins/oembed/libs/jquery.oembed.min.js new file mode 100644 index 0000000..e5bd1c5 --- /dev/null +++ b/sources/plugins/oembed/libs/jquery.oembed.min.js @@ -0,0 +1 @@ +(function(n){function r(){var n=window.location.protocol;return n==="file:"?"http://":"//"}function f(n,t){return t=t?t:"",n?f(--n,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*60))+t):t}function s(n,t){var i=n.apiendpoint,u="",r;i+=i.indexOf("?")<=0?"?":"&";i=i.replace("#","%23");n.maxWidth!==null&&(typeof n.params.maxwidth=="undefined"||n.params.maxwidth===null)&&(n.params.maxwidth=n.maxWidth);n.maxHeight!==null&&(typeof n.params.maxheight=="undefined"||n.params.maxheight===null)&&(n.params.maxheight=n.maxHeight);for(r in n.params)r!=n.callbackparameter&&n.params[r]!==null&&(u+="&"+escape(r)+"="+n.params[r]);return i+="format="+n.format+"&url="+escape(t)+u,n.dataType!="json"&&(i+="&"+n.callbackparameter+"=?"),i}function u(i,r,u){n("#jqoembeddata").data(r,i.code);t.beforeEmbed.call(u,i);t.onEmbed.call(u,i);t.afterEmbed.call(u,i)}function e(i,e,o){var p,a,tt,v;if(n("#jqoembeddata").data(e)!=undefined&&o.embedtag.tag!="iframe")a={code:n("#jqoembeddata").data(e)},u(a,e,i);else if(o.yql){var w=o.yql.from||"htmlstring",g=o.yql.url?o.yql.url(e):e,nt="SELECT * FROM "+w+' WHERE url="'+g+'" and '+(/html/.test(w)?"xpath":"itemPath")+"='"+(o.yql.xpath||"/")+"'";w=="html"&&(nt+=" and compat='html5'");v=n.extend({url:r()+"query.yahooapis.com/v1/public/yql",dataType:"jsonp",data:{q:nt,format:"json",env:"store://datatables.org/alltableswithkeys",callback:"?"},success:function(t){var s,f,c,r,h,l;if(o.yql.xpath&&o.yql.xpath=="//meta|//title|//link"){for(f={},t.query.results==null&&(t.query.results={meta:[]}),r=0,h=t.query.results.meta.length;rt.maxWidth&&(l=t.maxWidth/h,k=t.maxWidth,d=c*l,c=c*l,h=h*l);c>t.maxHeight&&(l=t.maxHeight/c,d=t.maxHeight,k=h*l,h=h*l);c=d;h=k}else c=t.maxHeight,h=t.maxWidth;p=n("<"+b+"/>").attr("src",y).attr("width",h).attr("height",c).attr("allowfullscreen",o.embedtag.allowfullscreen||"true").attr("allowscriptaccess",o.embedtag.allowfullscreen||"always").css("max-height",t.maxHeight||"auto").css("max-width",t.maxWidth||"auto");b=="embed"&&p.attr("type",o.embedtag.type||"application/x-shockwave-flash").attr("flashvars",e.replace(o.templateRegex,it));b=="iframe"&&p.attr("scrolling",o.embedtag.scrolling||"no").attr("frameborder",o.embedtag.frameborder||"0");a={code:p};u(a,e,i)}else o.apiendpoint?(o.apikey&&(o.apiendpoint=o.apiendpoint.replace("_APIKEY_",t.apikeys[o.name])),v=n.extend({url:e.replace(o.templateRegex,o.apiendpoint),dataType:"jsonp",success:function(t){var r=n.extend({},t);r.code=o.templateData(t);u(r,e,i)},error:function(){t.onError.call(i,e,o)}},t.ajaxOptions||{}),n.ajax(v)):(a={code:e.replace(o.templateRegex,o.template)},u(a,e,i));else tt=s(o,e),v=n.extend({url:tt,dataType:o.dataType||"jsonp",success:function(t){var r=n.extend({},t);switch(r.type){case"file":case"photo":r.code=n.fn.oembed.getPhotoCode(e,r);break;case"link":r.code=r.provider_name=="Flickr"?n.fn.oembed.getPhotoCode(e,r):n.fn.oembed.getGenericCode(e,r);break;case"video":case"rich":r.code=n.fn.oembed.getRichCode(e,r);break;default:r.code=n.fn.oembed.getGenericCode(e,r)}u(r,e,i)},error:function(){t.onError.call(i,e,o)}},t.ajaxOptions||{}),n.ajax(v)}function o(n){if(n===null)return null;var t,i={};for(t in n)t!==null&&(i[t.toLowerCase()]=n[t]);return i}n.fn.oembed=function(i,r,u){t=n.extend(!0,n.fn.oembed.defaults,r);var f=["0rz.tw","1link.in","1url.com","2.gp","2big.at","2tu.us","3.ly","307.to","4ms.me","4sq.com","4url.cc","6url.com","7.ly","a.gg","a.nf","aa.cx","abcurl.net","ad.vu","adf.ly","adjix.com","afx.cc","all.fuseurl.com","alturl.com","amzn.to","ar.gy","arst.ch","atu.ca","azc.cc","b23.ru","b2l.me","bacn.me","bcool.bz","binged.it","bit.ly","bizj.us","bloat.me","bravo.ly","bsa.ly","budurl.com","canurl.com","chilp.it","chzb.gr","cl.lk","cl.ly","clck.ru","cli.gs","cliccami.info","clickthru.ca","clop.in","conta.cc","cort.as","cot.ag","crks.me","ctvr.us","cutt.us","dai.ly","decenturl.com","dfl8.me","digbig.com","http://digg.com/[^/]+$","disq.us","dld.bz","dlvr.it","do.my","doiop.com","dopen.us","easyuri.com","easyurl.net","eepurl.com","eweri.com","fa.by","fav.me","fb.me","fbshare.me","ff.im","fff.to","fire.to","firsturl.de","firsturl.net","flic.kr","flq.us","fly2.ws","fon.gs","freak.to","fuseurl.com","fuzzy.to","fwd4.me","fwib.net","g.ro.lt","gizmo.do","gl.am","go.9nl.com","go.ign.com","go.usa.gov","goo.gl","goshrink.com","gurl.es","hex.io","hiderefer.com","hmm.ph","href.in","hsblinks.com","htxt.it","huff.to","hulu.com","hurl.me","hurl.ws","icanhaz.com","idek.net","ilix.in","is.gd","its.my","ix.lt","j.mp","jijr.com","kl.am","klck.me","korta.nu","krunchd.com","l9k.net","lat.ms","liip.to","liltext.com","linkbee.com","linkbun.ch","liurl.cn","ln-s.net","ln-s.ru","lnk.gd","lnk.ms","lnkd.in","lnkurl.com","lru.jp","lt.tl","lurl.no","macte.ch","mash.to","merky.de","migre.me","miniurl.com","minurl.fr","mke.me","moby.to","moourl.com","mrte.ch","myloc.me","myurl.in","n.pr","nbc.co","nblo.gs","nn.nf","not.my","notlong.com","nsfw.in","nutshellurl.com","nxy.in","nyti.ms","o-x.fr","oc1.us","om.ly","omf.gd","omoikane.net","on.cnn.com","on.mktw.net","onforb.es","orz.se","ow.ly","ping.fm","pli.gs","pnt.me","politi.co","post.ly","pp.gg","profile.to","ptiturl.com","pub.vitrue.com","qlnk.net","qte.me","qu.tc","qy.fi","r.ebay.com","r.im","rb6.me","read.bi","readthis.ca","reallytinyurl.com","redir.ec","redirects.ca","redirx.com","retwt.me","ri.ms","rickroll.it","riz.gd","rt.nu","ru.ly","rubyurl.com","rurl.org","rww.tw","s4c.in","s7y.us","safe.mn","sameurl.com","sdut.us","shar.es","shink.de","shorl.com","short.ie","short.to","shortlinks.co.uk","shorturl.com","shout.to","show.my","shrinkify.com","shrinkr.com","shrt.fr","shrt.st","shrten.com","shrunkin.com","simurl.com","slate.me","smallr.com","smsh.me","smurl.name","sn.im","snipr.com","snipurl.com","snurl.com","sp2.ro","spedr.com","srnk.net","srs.li","starturl.com","stks.co","su.pr","surl.co.uk","surl.hu","t.cn","t.co","t.lh.com","ta.gd","tbd.ly","tcrn.ch","tgr.me","tgr.ph","tighturl.com","tiniuri.com","tiny.cc","tiny.ly","tiny.pl","tinylink.in","tinyuri.ca","tinyurl.com","tk.","tl.gd","tmi.me","tnij.org","tnw.to","tny.com","to.ly","togoto.us","totc.us","toysr.us","tpm.ly","tr.im","tra.kz","trunc.it","twhub.com","twirl.at","twitclicks.com","twitterurl.net","twitterurl.org","twiturl.de","twurl.cc","twurl.nl","u.mavrev.com","u.nu","u76.org","ub0.cc","ulu.lu","updating.me","ur1.ca","url.az","url.co.uk","url.ie","url360.me","url4.eu","urlborg.com","urlbrief.com","urlcover.com","urlcut.com","urlenco.de","urli.nl","urls.im","urlshorteningservicefortwitter.com","urlx.ie","urlzen.com","usat.ly","use.my","vb.ly","vevo.ly","vgn.am","vl.am","vm.lc","w55.de","wapo.st","wapurl.co.uk","wipi.es","wp.me","x.vu","xr.com","xrl.in","xrl.us","xurl.es","xurl.jp","y.ahoo.it","yatuc.com","ye.pe","yep.it","yfrog.com","yhoo.it","yiyd.com","youtu.be","yuarel.com","z0p.de","zi.ma","zi.mu","zipmyurl.com","zud.me","zurl.ws","zz.gd","zzang.kr","›.ws","✩.ws","✿.ws","❥.ws","➔.ws","➞.ws","➡.ws","➨.ws","➯.ws","➹.ws","➽.ws"];return n("#jqoembeddata").length===0&&n('<\/span>').appendTo("body"),this.each(function(){var h=n(this),s=i&&(!i.indexOf("http://")||!i.indexOf("https://"))?i:h.attr("href"),r,c,l,a,v;if(u?t.onEmbed=u:t.onEmbed||(t.onEmbed=function(i){n.fn.oembed.insertCode(this,t.embedMethod,i)}),s!==null&&s!==undefined){for(c=0,l=f.length;c<\/div>');var f=i.parent();t.includeHandle&&n('↓<\/span>').insertBefore(i).click(function(){var t=encodeURIComponent(n(this).text());n(this).html(t=="%E2%86%91"?"↓":"↑");n(this).parent().children().last().toggle()});f.append("
    ");try{u.code.clone().appendTo(f)}catch(e){f.append(u.code)}}}};n.fn.oembed.getPhotoCode=function(n,t){var i,r=t.title?t.title:"",u;return r+=t.author_name?" - "+t.author_name:"",r+=t.provider_name?" - "+t.provider_name:"",t.url?i='
    '+r+'<\/a><\/div>':t.thumbnail_url?(u=t.thumbnail_url.replace("_s","_b"),i='
    '+r+'<\/a><\/div>'):i=t.provider_name=="Flickr"?'

    "+n+"<\/a><\/p>":"

    Error loading this picture<\/div>",i};n.fn.oembed.getRichCode=function(n,t){return t.html};n.fn.oembed.getGenericCode=function(n,t){var r=t.title!==null?t.title:n,i=''+r+"<\/a>";return t.html&&(i+="
    "+t.html+"<\/div>"),i};n.fn.oembed.getOEmbedProvider=function(t){for(var r,u,f,i=0;i$/,"$1")||""}}:{from:"json",apiendpoint:this.apiendpoint,url:function(n){return this.apiendpoint+"?format=json&url="+n},datareturn:function(i){var f,o,s;if(i.json.type!="video"&&(i.json.url||i.json.thumbnail_url)&&!i.json.html.indexOf("iframe"))return'';if(i.json.html.indexOf("iframe")){i.json.html.indexOf("allowfullscreen>")&&(i.json.html=i.json.html.replace("allowfullscreen>",'allowfullscreen="false">'));var e=n.parseHTML(i.json.html),r=e[0].width,u=e[0].height;return t.maxHeight&&t.maxWidth&&(t.useResponsiveResize?(o=r,s=u,r>t.maxWidth&&(f=t.maxWidth/r,o=t.maxWidth,s=u*f,u=u*f,r=r*f),u>t.maxHeight&&(f=t.maxHeight/u,s=t.maxHeight,o=r*f),u=s,r=o):(u=t.maxHeight,r=t.maxWidth)),e[0].width=r,e[0].height=u,e[0].outerHTML}return i.json.html||""}},this.apiendpoint=null);for(var o in e)this[o]=e[o];this.format=this.format||"json";this.callbackparameter=this.callbackparameter||"callback";this.embedtag=this.embedtag||{tag:""}};n.fn.updateOEmbedProvider=function(t,i,r,u,f){for(var o,e=0;e<\/iframe>':!1}}}),new n.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"http://backend.deviantart.com/oembed",{format:"jsonp"}),new n.fn.oembed.OEmbedProvider("skitch","photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(n){return"http://skitch.com/oembed/?format=json&url="+n},datareturn:function(t){return n.fn.oembed.getPhotoCode(t.json.url,t.json)}}}),new n.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new n.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"http://flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new n.fn.oembed.OEmbedProvider("photobucket","photo",["photobucket\\.com/(albums|groups)/.+"],r()+"photobucket.com/oembed/"),new n.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],r()+"api.instagram.com/oembed"),new n.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new n.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(n){return n.image_teaser_url?'':!1}}),new n.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"],"http://www.23hq.com/23/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"http://img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],r()+"imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new n.fn.oembed.OEmbedProvider("gravtar","photo",["mailto:.+"],null,{templateRegex:/mailto:([^\/]+).*/,template:function(n,t){return'on Gravtar'}}),new n.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json?id="),new n.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new n.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new n.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new n.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new n.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"],"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}),new n.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&embedId=pt-embed-$1-693&treeId=$1&pearlId=$2&treeTitle=Diagrams%2FVisualization&site=www.pearltrees.com%2FF"}}),new n.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"http://prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550,height:400,flashvars:"prezi_id=$1&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"}}),new n.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(n,t){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2e3),"
    <\/div> + + + + + + + + +

    Nested widgets

    + +

    Classic (iframe-based) Sample

    + + +

    Inline Sample

    +
    +

    Simple Box Sample

    + +
    +

    Title

    +
    +

    Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].

    + +
    + The Eagle +
    The Eagle in lunar orbit
    +
    + +
      +
    • Foo!
    • +
    • Bar!
    • +
    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.

    +
    +
    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.

    + +

    Pellentesque vitae eleifend nisl, non accumsan tellus. Maecenas nec libero non tellus tincidunt mollis porttitor sed arcu. Donec ultricies nulla vitae eros lacinia, vel congue sem auctor. Vivamus convallis, urna ac tincidunt malesuada, lectus erat convallis metus, a hendrerit massa augue accumsan magna. Nulla mattis tellus elit, nec congue magna scelerisque eget. Aliquam posuere nisi augue, posuere sodales nisi iaculis eu. Donec fermentum urna id nibh sagittis fermentum sit amet sed enim. Aliquam neque elit, pretium elementum nunc a, faucibus accumsan lorem. Etiam pulvinar odio et hendrerit tincidunt. Suspendisse tempus eros lacus, in convallis velit mollis ut. Aenean congue, justo eleifend ultricies malesuada, nunc nunc molestie mauris, eget placerat libero eros vel nisi. Quisque diam arcu, mollis ac laoreet vitae, varius et sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis in vehicula sapien. Nunc feugiat porta elit nec volutpat.

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.

    + +
    +

    Title

    +
    +

    The EagleApollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].

    + +
      +
    • Foo!
    • +
    • Bar!
    • +
    +
    +
    + +

    Ut eget ipsum a sapien porta ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus mi lacus, pharetra eu bibendum blandit, tristique sit amet leo. Integer eu nulla nec magna vulputate blandit. Praesent mattis quis ante eget adipiscing. Nulla vel tempus risus, in placerat velit. Mauris sed nibh at elit posuere laoreet. Morbi non sapien sed nunc fringilla imperdiet.

    +
    + + + + diff --git a/sources/plugins/widget/dev/widgetstyles.html b/sources/plugins/widget/dev/widgetstyles.html new file mode 100644 index 0000000..8e54b8d --- /dev/null +++ b/sources/plugins/widget/dev/widgetstyles.html @@ -0,0 +1,144 @@ + + + + + + Applying styles to widgets — CKEditor Sample + + + + + + +

    Applying styles to widgets

    + +

    Classic (iframe-based) Sample

    + + +

    Inline Sample

    +
    +

    Apollo 11

    + +
    + Saturn V +
    Roll out of Saturn V on launch pad
    +
    + +

    Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].

    + +

    Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

    + +

    Broadcasting and quotes

    + +

    Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

    + +
    +

    One small step for [a] man, one giant leap for mankind.

    +
    + +

    \( \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \)

    + +

    Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

    + +
    +

    [...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

    +
    + +
    + The Eagle +
    The Eagle in lunar orbit
    +
    + +

    Technical details

    + +

    Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

    + +
      +
    1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
    2. +
    3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
    4. +
    5. Lunar Module for landing on the Moon.
    6. +
    + +

    After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

    +
    + + + + diff --git a/sources/plugins/widget/images/handle.png b/sources/plugins/widget/images/handle.png new file mode 100644 index 0000000..ba8cda5 Binary files /dev/null and b/sources/plugins/widget/images/handle.png differ diff --git a/sources/plugins/widget/lang/af.js b/sources/plugins/widget/lang/af.js new file mode 100644 index 0000000..e37c598 --- /dev/null +++ b/sources/plugins/widget/lang/af.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'af', { + 'move': 'Klik en trek on te beweeg', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/ar.js b/sources/plugins/widget/lang/ar.js new file mode 100644 index 0000000..0a4f8eb --- /dev/null +++ b/sources/plugins/widget/lang/ar.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'ar', { + 'move': 'إضغط و إسحب للتحريك', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/az.js b/sources/plugins/widget/lang/az.js new file mode 100644 index 0000000..24ddaf3 --- /dev/null +++ b/sources/plugins/widget/lang/az.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'az', { + 'move': 'Tıklayın və aparın', + 'label': '%1 vidjet' +} ); diff --git a/sources/plugins/widget/lang/bg.js b/sources/plugins/widget/lang/bg.js new file mode 100644 index 0000000..9b51458 --- /dev/null +++ b/sources/plugins/widget/lang/bg.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'bg', { + 'move': 'Кликни и влачи, за да преместиш', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/ca.js b/sources/plugins/widget/lang/ca.js new file mode 100644 index 0000000..f46a4f8 --- /dev/null +++ b/sources/plugins/widget/lang/ca.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'ca', { + 'move': 'Clicar i arrossegar per moure', + 'label': '%1 widget' +} ); diff --git a/sources/plugins/widget/lang/cs.js b/sources/plugins/widget/lang/cs.js new file mode 100644 index 0000000..5d9590b --- /dev/null +++ b/sources/plugins/widget/lang/cs.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'cs', { + 'move': 'Klepněte a táhněte pro přesunutí', + 'label': 'Ovládací prvek %1' +} ); diff --git a/sources/plugins/widget/lang/cy.js b/sources/plugins/widget/lang/cy.js new file mode 100644 index 0000000..29dc110 --- /dev/null +++ b/sources/plugins/widget/lang/cy.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'cy', { + 'move': 'Clcio a llusgo i symud', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/da.js b/sources/plugins/widget/lang/da.js new file mode 100644 index 0000000..8dfe785 --- /dev/null +++ b/sources/plugins/widget/lang/da.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'da', { + 'move': 'Klik og træk for at flytte', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/de-ch.js b/sources/plugins/widget/lang/de-ch.js new file mode 100644 index 0000000..a95febb --- /dev/null +++ b/sources/plugins/widget/lang/de-ch.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'de-ch', { + 'move': 'Zum Verschieben anwählen und ziehen', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/de.js b/sources/plugins/widget/lang/de.js new file mode 100644 index 0000000..838ad89 --- /dev/null +++ b/sources/plugins/widget/lang/de.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'de', { + 'move': 'Zum Verschieben anwählen und ziehen', + 'label': '%1 Steuerelement' +} ); diff --git a/sources/plugins/widget/lang/el.js b/sources/plugins/widget/lang/el.js new file mode 100644 index 0000000..863604a --- /dev/null +++ b/sources/plugins/widget/lang/el.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'el', { + 'move': 'Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/en-gb.js b/sources/plugins/widget/lang/en-gb.js new file mode 100644 index 0000000..ed09606 --- /dev/null +++ b/sources/plugins/widget/lang/en-gb.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'en-gb', { + 'move': 'Click and drag to move', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/en.js b/sources/plugins/widget/lang/en.js new file mode 100644 index 0000000..5967f4d --- /dev/null +++ b/sources/plugins/widget/lang/en.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'en', { + 'move': 'Click and drag to move', + 'label': '%1 widget' +} ); diff --git a/sources/plugins/widget/lang/eo.js b/sources/plugins/widget/lang/eo.js new file mode 100644 index 0000000..381511a --- /dev/null +++ b/sources/plugins/widget/lang/eo.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'eo', { + 'move': 'klaki kaj treni por movi', + 'label': '%1 fenestraĵo' +} ); diff --git a/sources/plugins/widget/lang/es-mx.js b/sources/plugins/widget/lang/es-mx.js new file mode 100644 index 0000000..279ea3e --- /dev/null +++ b/sources/plugins/widget/lang/es-mx.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'es-mx', { + 'move': 'Presiona y arrastra para mover', + 'label': '%1 widget' +} ); diff --git a/sources/plugins/widget/lang/es.js b/sources/plugins/widget/lang/es.js new file mode 100644 index 0000000..d8deb2c --- /dev/null +++ b/sources/plugins/widget/lang/es.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'es', { + 'move': 'Dar clic y arrastrar para mover', + 'label': 'reproductor %1' +} ); diff --git a/sources/plugins/widget/lang/eu.js b/sources/plugins/widget/lang/eu.js new file mode 100644 index 0000000..e128dfe --- /dev/null +++ b/sources/plugins/widget/lang/eu.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'eu', { + 'move': 'Klikatu eta arrastatu lekuz aldatzeko', + 'label': '%1 widget' +} ); diff --git a/sources/plugins/widget/lang/fa.js b/sources/plugins/widget/lang/fa.js new file mode 100644 index 0000000..57ea31f --- /dev/null +++ b/sources/plugins/widget/lang/fa.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'fa', { + 'move': 'کلیک و کشیدن برای جابجایی', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/fi.js b/sources/plugins/widget/lang/fi.js new file mode 100644 index 0000000..759b2cf --- /dev/null +++ b/sources/plugins/widget/lang/fi.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'fi', { + 'move': 'Siirrä klikkaamalla ja raahaamalla', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/fr.js b/sources/plugins/widget/lang/fr.js new file mode 100644 index 0000000..9decbf6 --- /dev/null +++ b/sources/plugins/widget/lang/fr.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'fr', { + 'move': 'Cliquer et glisser pour déplacer', + 'label': 'Élément %1' +} ); diff --git a/sources/plugins/widget/lang/gl.js b/sources/plugins/widget/lang/gl.js new file mode 100644 index 0000000..32f65d1 --- /dev/null +++ b/sources/plugins/widget/lang/gl.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'gl', { + 'move': 'Prema e arrastre para mover', + 'label': 'Trebello %1' +} ); diff --git a/sources/plugins/widget/lang/he.js b/sources/plugins/widget/lang/he.js new file mode 100644 index 0000000..b8dd2cb --- /dev/null +++ b/sources/plugins/widget/lang/he.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'he', { + 'move': 'לחץ וגרור להזזה', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/hr.js b/sources/plugins/widget/lang/hr.js new file mode 100644 index 0000000..6b47d95 --- /dev/null +++ b/sources/plugins/widget/lang/hr.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'hr', { + 'move': 'Klikni i povuci za pomicanje', + 'label': '%1 widget' +} ); diff --git a/sources/plugins/widget/lang/hu.js b/sources/plugins/widget/lang/hu.js new file mode 100644 index 0000000..a06047f --- /dev/null +++ b/sources/plugins/widget/lang/hu.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'hu', { + 'move': 'Kattints és húzd a mozgatáshoz', + 'label': '%1 modul' +} ); diff --git a/sources/plugins/widget/lang/id.js b/sources/plugins/widget/lang/id.js new file mode 100644 index 0000000..ef19392 --- /dev/null +++ b/sources/plugins/widget/lang/id.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'id', { + 'move': 'Tekan dan geser untuk memindahkan', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/it.js b/sources/plugins/widget/lang/it.js new file mode 100644 index 0000000..59b43f6 --- /dev/null +++ b/sources/plugins/widget/lang/it.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'it', { + 'move': 'Fare clic e trascinare per spostare', + 'label': 'Widget %1' +} ); diff --git a/sources/plugins/widget/lang/ja.js b/sources/plugins/widget/lang/ja.js new file mode 100644 index 0000000..a742718 --- /dev/null +++ b/sources/plugins/widget/lang/ja.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'ja', { + 'move': 'ドラッグして移動', + 'label': '%1 ウィジェット' +} ); diff --git a/sources/plugins/widget/lang/km.js b/sources/plugins/widget/lang/km.js new file mode 100644 index 0000000..6c61c73 --- /dev/null +++ b/sources/plugins/widget/lang/km.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'km', { + 'move': 'ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/ko.js b/sources/plugins/widget/lang/ko.js new file mode 100644 index 0000000..03afb95 --- /dev/null +++ b/sources/plugins/widget/lang/ko.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'ko', { + 'move': '움직이려면 클릭 후 드래그 하세요', + 'label': '%1 위젯' +} ); diff --git a/sources/plugins/widget/lang/ku.js b/sources/plugins/widget/lang/ku.js new file mode 100644 index 0000000..2af50cb --- /dev/null +++ b/sources/plugins/widget/lang/ku.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'ku', { + 'move': 'کرتەبکە و ڕایبکێشە بۆ جوڵاندن', + 'label': '%1 ویجێت' +} ); diff --git a/sources/plugins/widget/lang/lv.js b/sources/plugins/widget/lang/lv.js new file mode 100644 index 0000000..e5fc3ac --- /dev/null +++ b/sources/plugins/widget/lang/lv.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'lv', { + 'move': 'Klikšķina un velc, lai pārvietotu', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/nb.js b/sources/plugins/widget/lang/nb.js new file mode 100644 index 0000000..af46bc9 --- /dev/null +++ b/sources/plugins/widget/lang/nb.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'nb', { + 'move': 'Klikk og dra for å flytte', + 'label': 'Widget %1' +} ); diff --git a/sources/plugins/widget/lang/nl.js b/sources/plugins/widget/lang/nl.js new file mode 100644 index 0000000..56b182c --- /dev/null +++ b/sources/plugins/widget/lang/nl.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'nl', { + 'move': 'Klik en sleep om te verplaatsen', + 'label': '%1 widget' +} ); diff --git a/sources/plugins/widget/lang/no.js b/sources/plugins/widget/lang/no.js new file mode 100644 index 0000000..b86bd7b --- /dev/null +++ b/sources/plugins/widget/lang/no.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'no', { + 'move': 'Klikk og dra for å flytte', + 'label': 'Widget %1' +} ); diff --git a/sources/plugins/widget/lang/oc.js b/sources/plugins/widget/lang/oc.js new file mode 100644 index 0000000..10ff842 --- /dev/null +++ b/sources/plugins/widget/lang/oc.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'oc', { + 'move': 'Clicar e lisar per desplaçar', + 'label': 'Element %1' +} ); diff --git a/sources/plugins/widget/lang/pl.js b/sources/plugins/widget/lang/pl.js new file mode 100644 index 0000000..2d90df8 --- /dev/null +++ b/sources/plugins/widget/lang/pl.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'pl', { + 'move': 'Kliknij i przeciągnij, by przenieść.', + 'label': 'Widget %1' +} ); diff --git a/sources/plugins/widget/lang/pt-br.js b/sources/plugins/widget/lang/pt-br.js new file mode 100644 index 0000000..9ce9be4 --- /dev/null +++ b/sources/plugins/widget/lang/pt-br.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'pt-br', { + 'move': 'Click e arraste para mover', + 'label': '%1 widget' +} ); diff --git a/sources/plugins/widget/lang/pt.js b/sources/plugins/widget/lang/pt.js new file mode 100644 index 0000000..422ef93 --- /dev/null +++ b/sources/plugins/widget/lang/pt.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'pt', { + 'move': 'Clique e arraste para mover', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/ru.js b/sources/plugins/widget/lang/ru.js new file mode 100644 index 0000000..d6f36f5 --- /dev/null +++ b/sources/plugins/widget/lang/ru.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'ru', { + 'move': 'Нажмите и перетащите, чтобы переместить', + 'label': '%1 виджет' +} ); diff --git a/sources/plugins/widget/lang/sk.js b/sources/plugins/widget/lang/sk.js new file mode 100644 index 0000000..5bf4cc0 --- /dev/null +++ b/sources/plugins/widget/lang/sk.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'sk', { + 'move': 'Kliknite a potiahnite pre presunutie', + 'label': '%1 widget' +} ); diff --git a/sources/plugins/widget/lang/sl.js b/sources/plugins/widget/lang/sl.js new file mode 100644 index 0000000..96ffd1e --- /dev/null +++ b/sources/plugins/widget/lang/sl.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'sl', { + 'move': 'Kliknite in povlecite, da premaknete', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/sq.js b/sources/plugins/widget/lang/sq.js new file mode 100644 index 0000000..ad46c7d --- /dev/null +++ b/sources/plugins/widget/lang/sq.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'sq', { + 'move': 'Kliko dhe tërhiqe për ta lëvizur', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/sv.js b/sources/plugins/widget/lang/sv.js new file mode 100644 index 0000000..7faff37 --- /dev/null +++ b/sources/plugins/widget/lang/sv.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'sv', { + 'move': 'Klicka och drag för att flytta', + 'label': '%1-widget' +} ); diff --git a/sources/plugins/widget/lang/tr.js b/sources/plugins/widget/lang/tr.js new file mode 100644 index 0000000..92fa952 --- /dev/null +++ b/sources/plugins/widget/lang/tr.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'tr', { + 'move': 'Taşımak için, tıklayın ve sürükleyin', + 'label': '%1 Grafik Beleşeni' +} ); diff --git a/sources/plugins/widget/lang/tt.js b/sources/plugins/widget/lang/tt.js new file mode 100644 index 0000000..30fb31a --- /dev/null +++ b/sources/plugins/widget/lang/tt.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'tt', { + 'move': 'Күчереп куер өчен басып шудырыгыз', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/ug.js b/sources/plugins/widget/lang/ug.js new file mode 100644 index 0000000..fc216c4 --- /dev/null +++ b/sources/plugins/widget/lang/ug.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'ug', { + 'move': 'يۆتكەشتە چېكىپ سۆرەڭ', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/uk.js b/sources/plugins/widget/lang/uk.js new file mode 100644 index 0000000..fab6d5d --- /dev/null +++ b/sources/plugins/widget/lang/uk.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'uk', { + 'move': 'Клікніть і потягніть для переміщення', + 'label': '%1 віджет' +} ); diff --git a/sources/plugins/widget/lang/vi.js b/sources/plugins/widget/lang/vi.js new file mode 100644 index 0000000..2bbe246 --- /dev/null +++ b/sources/plugins/widget/lang/vi.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'vi', { + 'move': 'Nhấp chuột và kéo để di chuyển', + 'label': '%1 widget' // MISSING +} ); diff --git a/sources/plugins/widget/lang/zh-cn.js b/sources/plugins/widget/lang/zh-cn.js new file mode 100644 index 0000000..2381407 --- /dev/null +++ b/sources/plugins/widget/lang/zh-cn.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'zh-cn', { + 'move': '点击并拖拽以移动', + 'label': '%1 小部件' +} ); diff --git a/sources/plugins/widget/lang/zh.js b/sources/plugins/widget/lang/zh.js new file mode 100644 index 0000000..b6e945b --- /dev/null +++ b/sources/plugins/widget/lang/zh.js @@ -0,0 +1,8 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ +CKEDITOR.plugins.setLang( 'widget', 'zh', { + 'move': '拖曳以移動', + 'label': '%1 小工具' +} ); diff --git a/sources/plugins/widget/plugin.js b/sources/plugins/widget/plugin.js new file mode 100644 index 0000000..2708e09 --- /dev/null +++ b/sources/plugins/widget/plugin.js @@ -0,0 +1,4147 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview [Widget](http://ckeditor.com/addon/widget) plugin. + */ + +'use strict'; + +( function() { + var DRAG_HANDLER_SIZE = 15; + + CKEDITOR.plugins.add( 'widget', { + // jscs:disable maximumLineLength + lang: 'af,ar,az,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,es-mx,eu,fa,fi,fr,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,oc,pl,pt,pt-br,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + // jscs:enable maximumLineLength + requires: 'lineutils,clipboard,widgetselection', + onLoad: function() { + CKEDITOR.addCss( + '.cke_widget_wrapper{' + + 'position:relative;' + + 'outline:none' + + '}' + + '.cke_widget_inline{' + + 'display:inline-block' + + '}' + + '.cke_widget_wrapper:hover>.cke_widget_element{' + + 'outline:2px solid yellow;' + + 'cursor:default' + + '}' + + '.cke_widget_wrapper:hover .cke_widget_editable{' + + 'outline:2px solid yellow' + + '}' + + '.cke_widget_wrapper.cke_widget_focused>.cke_widget_element,' + + // We need higher specificity than hover style. + '.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{' + + 'outline:2px solid #ace' + + '}' + + '.cke_widget_editable{' + + 'cursor:text' + + '}' + + '.cke_widget_drag_handler_container{' + + 'position:absolute;' + + 'width:' + DRAG_HANDLER_SIZE + 'px;' + + 'height:0;' + + // Initially drag handler should not be visible, until its position will be + // calculated (http://dev.ckeditor.com/ticket/11177). + // We need to hide unpositined handlers, so they don't extend + // widget's outline far to the left (http://dev.ckeditor.com/ticket/12024). + 'display:none;' + + 'opacity:0.75;' + + 'transition:height 0s 0.2s;' + // Delay hiding drag handler. + // Prevent drag handler from being misplaced (http://dev.ckeditor.com/ticket/11198). + 'line-height:0' + + '}' + + '.cke_widget_wrapper:hover>.cke_widget_drag_handler_container{' + + 'height:' + DRAG_HANDLER_SIZE + 'px;' + + 'transition:none' + + '}' + + '.cke_widget_drag_handler_container:hover{' + + 'opacity:1' + + '}' + + 'img.cke_widget_drag_handler{' + + 'cursor:move;' + + 'width:' + DRAG_HANDLER_SIZE + 'px;' + + 'height:' + DRAG_HANDLER_SIZE + 'px;' + + 'display:inline-block' + + '}' + + '.cke_widget_mask{' + + 'position:absolute;' + + 'top:0;' + + 'left:0;' + + 'width:100%;' + + 'height:100%;' + + 'display:block' + + '}' + + '.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{' + + 'cursor:move !important' + + '}' + ); + }, + + beforeInit: function( editor ) { + /** + * An instance of widget repository. It contains all + * {@link CKEDITOR.plugins.widget.repository#registered registered widget definitions} and + * {@link CKEDITOR.plugins.widget.repository#instances initialized instances}. + * + * editor.widgets.add( 'someName', { + * // Widget definition... + * } ); + * + * editor.widgets.registered.someName; // -> Widget definition + * + * @since 4.3 + * @readonly + * @property {CKEDITOR.plugins.widget.repository} widgets + * @member CKEDITOR.editor + */ + editor.widgets = new Repository( editor ); + }, + + afterInit: function( editor ) { + addWidgetButtons( editor ); + setupContextMenu( editor ); + } + } ); + + /** + * Widget repository. It keeps track of all {@link #registered registered widget definitions} and + * {@link #instances initialized instances}. An instance of the repository is available under + * the {@link CKEDITOR.editor#widgets} property. + * + * @class CKEDITOR.plugins.widget.repository + * @mixins CKEDITOR.event + * @constructor Creates a widget repository instance. Note that the widget plugin automatically + * creates a repository instance which is available under the {@link CKEDITOR.editor#widgets} property. + * @param {CKEDITOR.editor} editor The editor instance for which the repository will be created. + */ + function Repository( editor ) { + /** + * The editor instance for which this repository was created. + * + * @readonly + * @property {CKEDITOR.editor} editor + */ + this.editor = editor; + + /** + * A hash of registered widget definitions (definition name => {@link CKEDITOR.plugins.widget.definition}). + * + * To register a definition use the {@link #add} method. + * + * @readonly + */ + this.registered = {}; + + /** + * An object containing initialized widget instances (widget id => {@link CKEDITOR.plugins.widget}). + * + * @readonly + */ + this.instances = {}; + + /** + * An array of selected widget instances. + * + * @readonly + * @property {CKEDITOR.plugins.widget[]} selected + */ + this.selected = []; + + /** + * The focused widget instance. See also {@link CKEDITOR.plugins.widget#event-focus} + * and {@link CKEDITOR.plugins.widget#event-blur} events. + * + * editor.on( 'selectionChange', function() { + * if ( editor.widgets.focused ) { + * // Do something when a widget is focused... + * } + * } ); + * + * @readonly + * @property {CKEDITOR.plugins.widget} focused + */ + this.focused = null; + + /** + * The widget instance that contains the nested editable which is currently focused. + * + * @readonly + * @property {CKEDITOR.plugins.widget} widgetHoldingFocusedEditable + */ + this.widgetHoldingFocusedEditable = null; + + this._ = { + nextId: 0, + upcasts: [], + upcastCallbacks: [], + filters: {} + }; + + setupWidgetsLifecycle( this ); + setupSelectionObserver( this ); + setupMouseObserver( this ); + setupKeyboardObserver( this ); + setupDragAndDrop( this ); + setupNativeCutAndCopy( this ); + } + + Repository.prototype = { + /** + * Minimum interval between selection checks. + * + * @private + */ + MIN_SELECTION_CHECK_INTERVAL: 500, + + /** + * Adds a widget definition to the repository. Fires the {@link CKEDITOR.editor#widgetDefinition} event + * which allows to modify the widget definition which is going to be registered. + * + * @param {String} name The name of the widget definition. + * @param {CKEDITOR.plugins.widget.definition} widgetDef Widget definition. + * @returns {CKEDITOR.plugins.widget.definition} + */ + add: function( name, widgetDef ) { + // Create prototyped copy of original widget definition, so we won't modify it. + widgetDef = CKEDITOR.tools.prototypedCopy( widgetDef ); + widgetDef.name = name; + + widgetDef._ = widgetDef._ || {}; + + this.editor.fire( 'widgetDefinition', widgetDef ); + + if ( widgetDef.template ) + widgetDef.template = new CKEDITOR.template( widgetDef.template ); + + addWidgetCommand( this.editor, widgetDef ); + addWidgetProcessors( this, widgetDef ); + + this.registered[ name ] = widgetDef; + + return widgetDef; + }, + + /** + * Adds a callback for element upcasting. Each callback will be executed + * for every element which is later tested by upcast methods. If a callback + * returns `false`, the element will not be upcasted. + * + * // Images with the "banner" class will not be upcasted (e.g. to the image widget). + * editor.widgets.addUpcastCallback( function( element ) { + * if ( element.name == 'img' && element.hasClass( 'banner' ) ) + * return false; + * } ); + * + * @param {Function} callback + * @param {CKEDITOR.htmlParser.element} callback.element + */ + addUpcastCallback: function( callback ) { + this._.upcastCallbacks.push( callback ); + }, + + /** + * Checks the selection to update widget states (selection and focus). + * + * This method is triggered by the {@link #event-checkSelection} event. + */ + checkSelection: function() { + var sel = this.editor.getSelection(), + selectedElement = sel.getSelectedElement(), + updater = stateUpdater( this ), + widget; + + // Widget is focused so commit and finish checking. + if ( selectedElement && ( widget = this.getByElement( selectedElement, true ) ) ) + return updater.focus( widget ).select( widget ).commit(); + + var range = sel.getRanges()[ 0 ]; + + // No ranges or collapsed range mean that nothing is selected, so commit and finish checking. + if ( !range || range.collapsed ) + return updater.commit(); + + // Range is not empty, so create walker checking for wrappers. + var walker = new CKEDITOR.dom.walker( range ), + wrapper; + + walker.evaluator = Widget.isDomWidgetWrapper; + + while ( ( wrapper = walker.next() ) ) + updater.select( this.getByElement( wrapper ) ); + + updater.commit(); + }, + + /** + * Checks if all widget instances are still present in the DOM. + * Destroys those instances that are not present. + * Reinitializes widgets on widget wrappers for which widget instances + * cannot be found. Takes nested widgets into account, too. + * + * This method triggers the {@link #event-checkWidgets} event whose listeners + * can cancel the method's execution or modify its options. + * + * @param [options] The options object. + * @param {Boolean} [options.initOnlyNew] Initializes widgets only on newly wrapped + * widget elements (those which still have the `cke_widget_new` class). When this option is + * set to `true`, widgets which were invalidated (e.g. by replacing with a cloned DOM structure) + * will not be reinitialized. This makes the check faster. + * @param {Boolean} [options.focusInited] If only one widget is initialized by + * the method, it will be focused. + */ + checkWidgets: function( options ) { + this.fire( 'checkWidgets', CKEDITOR.tools.copy( options || {} ) ); + }, + + /** + * Removes the widget from the editor and moves the selection to the closest + * editable position if the widget was focused before. + * + * @param {CKEDITOR.plugins.widget} widget The widget instance to be deleted. + */ + del: function( widget ) { + if ( this.focused === widget ) { + var editor = widget.editor, + range = editor.createRange(), + found; + + // If haven't found place for caret on the default side, + // try to find it on the other side. + if ( !( found = range.moveToClosestEditablePosition( widget.wrapper, true ) ) ) + found = range.moveToClosestEditablePosition( widget.wrapper, false ); + + if ( found ) + editor.getSelection().selectRanges( [ range ] ); + } + + widget.wrapper.remove(); + this.destroy( widget, true ); + }, + + /** + * Destroys the widget instance and all its nested widgets (widgets inside its nested editables). + * + * @param {CKEDITOR.plugins.widget} widget The widget instance to be destroyed. + * @param {Boolean} [offline] Whether the widget is offline (detached from the DOM tree) — + * in this case the DOM (attributes, classes, etc.) will not be cleaned up. + */ + destroy: function( widget, offline ) { + if ( this.widgetHoldingFocusedEditable === widget ) + setFocusedEditable( this, widget, null, offline ); + + widget.destroy( offline ); + delete this.instances[ widget.id ]; + this.fire( 'instanceDestroyed', widget ); + }, + + /** + * Destroys all widget instances. + * + * @param {Boolean} [offline] Whether the widgets are offline (detached from the DOM tree) — + * in this case the DOM (attributes, classes, etc.) will not be cleaned up. + * @param {CKEDITOR.dom.element} [container] The container within widgets will be destroyed. + * This option will be ignored if the `offline` flag was set to `true`, because in such case + * it is not possible to find widgets within the passed block. + */ + destroyAll: function( offline, container ) { + var widget, + id, + instances = this.instances; + + if ( container && !offline ) { + var wrappers = container.find( '.cke_widget_wrapper' ), + l = wrappers.count(), + i = 0; + + // Length is constant, because this is not a live node list. + // Note: since querySelectorAll returns nodes in document order, + // outer widgets are always placed before their nested widgets and therefore + // are destroyed before them. + for ( ; i < l; ++i ) { + widget = this.getByElement( wrappers.getItem( i ), true ); + // Widget might not be found, because it could be a nested widget, + // which would be destroyed when destroying its parent. + if ( widget ) + this.destroy( widget ); + } + + return; + } + + for ( id in instances ) { + widget = instances[ id ]; + this.destroy( widget, offline ); + } + }, + + /** + * Finalizes a process of widget creation. This includes: + * + * * inserting widget element into editor, + * * marking widget instance as ready (see {@link CKEDITOR.plugins.widget#event-ready}), + * * focusing widget instance. + * + * This method is used by the default widget's command and is called + * after widget's dialog (if set) is closed. It may also be used in a + * customized process of widget creation and insertion. + * + * widget.once( 'edit', function() { + * // Finalize creation only of not ready widgets. + * if ( widget.isReady() ) + * return; + * + * // Cancel edit event to prevent automatic widget insertion. + * evt.cancel(); + * + * CustomDialog.open( widget.data, function saveCallback( savedData ) { + * // Cache the container, because widget may be destroyed while saving data, + * // if this process will require some deep transformations. + * var container = widget.wrapper.getParent(); + * + * widget.setData( savedData ); + * + * // Widget will be retrieved from container and inserted into editor. + * editor.widgets.finalizeCreation( container ); + * } ); + * } ); + * + * @param {CKEDITOR.dom.element/CKEDITOR.dom.documentFragment} container The element + * or document fragment which contains widget wrapper. The container is used, so before + * finalizing creation the widget can be freely transformed (even destroyed and reinitialized). + */ + finalizeCreation: function( container ) { + var wrapper = container.getFirst(); + if ( wrapper && Widget.isDomWidgetWrapper( wrapper ) ) { + this.editor.insertElement( wrapper ); + + var widget = this.getByElement( wrapper ); + // Fire postponed #ready event. + widget.ready = true; + widget.fire( 'ready' ); + widget.focus(); + } + }, + + /** + * Finds a widget instance which contains a given element. The element will be the {@link CKEDITOR.plugins.widget#wrapper wrapper} + * of the returned widget or a descendant of this {@link CKEDITOR.plugins.widget#wrapper wrapper}. + * + * editor.widgets.getByElement( someWidget.wrapper ); // -> someWidget + * editor.widgets.getByElement( someWidget.parts.caption ); // -> someWidget + * + * // Check wrapper only: + * editor.widgets.getByElement( someWidget.wrapper, true ); // -> someWidget + * editor.widgets.getByElement( someWidget.parts.caption, true ); // -> null + * + * @param {CKEDITOR.dom.element} element The element to be checked. + * @param {Boolean} [checkWrapperOnly] If set to `true`, the method will not check wrappers' descendants. + * @returns {CKEDITOR.plugins.widget} The widget instance or `null`. + */ + getByElement: ( function() { + var validWrapperElements = { div: 1, span: 1 }; + function getWidgetId( element ) { + return element.is( validWrapperElements ) && element.data( 'cke-widget-id' ); + } + + return function( element, checkWrapperOnly ) { + if ( !element ) + return null; + + var id = getWidgetId( element ); + + // There's no need to check element parents if element is a wrapper. + if ( !checkWrapperOnly && !id ) { + var limit = this.editor.editable(); + + // Try to find a closest ascendant which is a widget wrapper. + do { + element = element.getParent(); + } while ( element && !element.equals( limit ) && !( id = getWidgetId( element ) ) ); + } + + return this.instances[ id ] || null; + }; + } )(), + + /** + * Initializes a widget on a given element if the widget has not been initialized on it yet. + * + * @param {CKEDITOR.dom.element} element The future widget element. + * @param {String/CKEDITOR.plugins.widget.definition} [widgetDef] Name of a widget or a widget definition. + * The widget definition should be previously registered by using the + * {@link CKEDITOR.plugins.widget.repository#add} method. + * @param [startupData] Widget startup data (has precedence over default one). + * @returns {CKEDITOR.plugins.widget} The widget instance or `null` if a widget could not be initialized on + * a given element. + */ + initOn: function( element, widgetDef, startupData ) { + if ( !widgetDef ) + widgetDef = this.registered[ element.data( 'widget' ) ]; + else if ( typeof widgetDef == 'string' ) + widgetDef = this.registered[ widgetDef ]; + + if ( !widgetDef ) + return null; + + // Wrap element if still wasn't wrapped (was added during runtime by method that skips dataProcessor). + var wrapper = this.wrapElement( element, widgetDef.name ); + + if ( wrapper ) { + // Check if widget wrapper is new (widget hasn't been initialized on it yet). + // This class will be removed by widget constructor to avoid locking snapshot twice. + if ( wrapper.hasClass( 'cke_widget_new' ) ) { + var widget = new Widget( this, this._.nextId++, element, widgetDef, startupData ); + + // Widget could be destroyed when initializing it. + if ( widget.isInited() ) { + this.instances[ widget.id ] = widget; + + return widget; + } else { + return null; + } + } + + // Widget already has been initialized, so try to get widget by element. + // Note - it may happen that other instance will returned than the one created above, + // if for example widget was destroyed and reinitialized. + return this.getByElement( element ); + } + + // No wrapper means that there's no widget for this element. + return null; + }, + + /** + * Initializes widgets on all elements which were wrapped by {@link #wrapElement} and + * have not been initialized yet. + * + * @param {CKEDITOR.dom.element} [container=editor.editable()] The container which will be checked for not + * initialized widgets. Defaults to editor's {@link CKEDITOR.editor#editable editable} element. + * @returns {CKEDITOR.plugins.widget[]} Array of widget instances which have been initialized. + * Note: Only first-level widgets are returned — without nested widgets. + */ + initOnAll: function( container ) { + var newWidgets = ( container || this.editor.editable() ).find( '.cke_widget_new' ), + newInstances = [], + instance; + + for ( var i = newWidgets.count(); i--; ) { + instance = this.initOn( newWidgets.getItem( i ).getFirst( Widget.isDomWidgetElement ) ); + if ( instance ) + newInstances.push( instance ); + } + + return newInstances; + }, + + /** + * Allows to listen to events on specific types of widgets, even if they are not created yet. + * + * Please note that this method inherits parameters from the {@link CKEDITOR.event#method-on} method with one + * extra parameter at the beginning which is the widget name. + * + * editor.widgets.onWidget( 'image', 'action', function( evt ) { + * // Event `action` occurs on `image` widget. + * } ); + * + * @since 4.5 + * @param {String} widgetName + * @param {String} eventName + * @param {Function} listenerFunction + * @param {Object} [scopeObj] + * @param {Object} [listenerData] + * @param {Number} [priority=10] + */ + onWidget: function( widgetName ) { + var args = Array.prototype.slice.call( arguments ); + + args.shift(); + + for ( var i in this.instances ) { + var instance = this.instances[ i ]; + + if ( instance.name == widgetName ) { + instance.on.apply( instance, args ); + } + } + + this.on( 'instanceCreated', function( evt ) { + var widget = evt.data; + + if ( widget.name == widgetName ) { + widget.on.apply( widget, args ); + } + } ); + }, + + /** + * Parses element classes string and returns an object + * whose keys contain class names. Skips all `cke_*` classes. + * + * This method is used by the {@link CKEDITOR.plugins.widget#getClasses} method and + * may be used when overriding that method. + * + * @since 4.4 + * @param {String} classes String (value of `class` attribute). + * @returns {Object} Object containing classes or `null` if no classes found. + */ + parseElementClasses: function( classes ) { + if ( !classes ) + return null; + + classes = CKEDITOR.tools.trim( classes ).split( /\s+/ ); + + var cl, + obj = {}, + hasClasses = 0; + + while ( ( cl = classes.pop() ) ) { + if ( cl.indexOf( 'cke_' ) == -1 ) + obj[ cl ] = hasClasses = 1; + } + + return hasClasses ? obj : null; + }, + + /** + * Wraps an element with a widget's non-editable container. + * + * If this method is called on an {@link CKEDITOR.htmlParser.element}, then it will + * also take care of fixing the DOM after wrapping (the wrapper may not be allowed in element's parent). + * + * @param {CKEDITOR.dom.element/CKEDITOR.htmlParser.element} element The widget element to be wrapped. + * @param {String} [widgetName] The name of the widget definition. Defaults to element's `data-widget` + * attribute value. + * @returns {CKEDITOR.dom.element/CKEDITOR.htmlParser.element} The wrapper element or `null` if + * the widget definition of this name is not registered. + */ + wrapElement: function( element, widgetName ) { + var wrapper = null, + widgetDef, + isInline; + + if ( element instanceof CKEDITOR.dom.element ) { + widgetName = widgetName || element.data( 'widget' ); + widgetDef = this.registered[ widgetName ]; + + if ( !widgetDef ) + return null; + + // Do not wrap already wrapped element. + wrapper = element.getParent(); + if ( wrapper && wrapper.type == CKEDITOR.NODE_ELEMENT && wrapper.data( 'cke-widget-wrapper' ) ) + return wrapper; + + // If attribute isn't already set (e.g. for pasted widget), set it. + if ( !element.hasAttribute( 'data-cke-widget-keep-attr' ) ) + element.data( 'cke-widget-keep-attr', element.data( 'widget' ) ? 1 : 0 ); + + element.data( 'widget', widgetName ); + + isInline = isWidgetInline( widgetDef, element.getName() ); + + wrapper = new CKEDITOR.dom.element( isInline ? 'span' : 'div' ); + wrapper.setAttributes( getWrapperAttributes( isInline, widgetName ) ); + + wrapper.data( 'cke-display-name', widgetDef.pathName ? widgetDef.pathName : element.getName() ); + + // Replace element unless it is a detached one. + if ( element.getParent( true ) ) + wrapper.replace( element ); + element.appendTo( wrapper ); + } + else if ( element instanceof CKEDITOR.htmlParser.element ) { + widgetName = widgetName || element.attributes[ 'data-widget' ]; + widgetDef = this.registered[ widgetName ]; + + if ( !widgetDef ) + return null; + + wrapper = element.parent; + if ( wrapper && wrapper.type == CKEDITOR.NODE_ELEMENT && wrapper.attributes[ 'data-cke-widget-wrapper' ] ) + return wrapper; + + // If attribute isn't already set (e.g. for pasted widget), set it. + if ( !( 'data-cke-widget-keep-attr' in element.attributes ) ) + element.attributes[ 'data-cke-widget-keep-attr' ] = element.attributes[ 'data-widget' ] ? 1 : 0; + if ( widgetName ) + element.attributes[ 'data-widget' ] = widgetName; + + isInline = isWidgetInline( widgetDef, element.name ); + + wrapper = new CKEDITOR.htmlParser.element( isInline ? 'span' : 'div', getWrapperAttributes( isInline, widgetName ) ); + wrapper.attributes[ 'data-cke-display-name' ] = widgetDef.pathName ? widgetDef.pathName : element.name; + + var parent = element.parent, + index; + + // Don't detach already detached element. + if ( parent ) { + index = element.getIndex(); + element.remove(); + } + + wrapper.add( element ); + + // Insert wrapper fixing DOM (splitting parents if wrapper is not allowed inside them). + parent && insertElement( parent, index, wrapper ); + } + + return wrapper; + }, + + // Expose for tests. + _tests_createEditableFilter: createEditableFilter + }; + + CKEDITOR.event.implementOn( Repository.prototype ); + + /** + * An event fired when a widget instance is created, but before it is fully initialized. + * + * @event instanceCreated + * @param {CKEDITOR.plugins.widget} data The widget instance. + */ + + /** + * An event fired when a widget instance was destroyed. + * + * See also {@link CKEDITOR.plugins.widget#event-destroy}. + * + * @event instanceDestroyed + * @param {CKEDITOR.plugins.widget} data The widget instance. + */ + + /** + * An event fired to trigger the selection check. + * + * See the {@link #method-checkSelection} method. + * + * @event checkSelection + */ + + /** + * An event fired by the the {@link #method-checkWidgets} method. + * + * It can be canceled in order to stop the {@link #method-checkWidgets} + * method execution or the event listener can modify the method's options. + * + * @event checkWidgets + * @param [data] + * @param {Boolean} [data.initOnlyNew] Initialize widgets only on newly wrapped + * widget elements (those which still have the `cke_widget_new` class). When this option is + * set to `true`, widgets which were invalidated (e.g. by replacing with a cloned DOM structure) + * will not be reinitialized. This makes the check faster. + * @param {Boolean} [data.focusInited] If only one widget is initialized by + * the method, it will be focused. + */ + + + /** + * An instance of a widget. Together with {@link CKEDITOR.plugins.widget.repository} these + * two classes constitute the core of the Widget System. + * + * Note that neither the repository nor the widget instances can be created by using their constructors. + * A repository instance is automatically set up by the Widget plugin and is accessible under + * {@link CKEDITOR.editor#widgets}, while widget instances are created and destroyed by the repository. + * + * To create a widget, first you need to {@link CKEDITOR.plugins.widget.repository#add register} its + * {@link CKEDITOR.plugins.widget.definition definition}: + * + * editor.widgets.add( 'simplebox', { + * upcast: function( element ) { + * // Defines which elements will become widgets. + * if ( element.hasClass( 'simplebox' ) ) + * return true; + * }, + * init: function() { + * // ... + * } + * } ); + * + * Once the widget definition is registered, widgets will be automatically + * created when loading data: + * + * editor.setData( '
    foo
    ', function() { + * console.log( editor.widgets.instances ); // -> An object containing one instance. + * } ); + * + * It is also possible to create instances during runtime by using a command + * (if a {@link CKEDITOR.plugins.widget.definition#template} property was defined): + * + * // You can execute an automatically defined command to + * // insert a new simplebox widget or edit the one currently focused. + * editor.execCommand( 'simplebox' ); + * + * Note: Since CKEditor 4.5 widget's `startupData` can be passed as the command argument: + * + * editor.execCommand( 'simplebox', { + * startupData: { + * align: 'left' + * } + * } ); + * + * A widget can also be created in a completely custom way: + * + * var element = editor.document.createElement( 'div' ); + * editor.insertElement( element ); + * var widget = editor.widgets.initOn( element, 'simplebox' ); + * + * @since 4.3 + * @class CKEDITOR.plugins.widget + * @mixins CKEDITOR.event + * @extends CKEDITOR.plugins.widget.definition + * @constructor Creates an instance of the widget class. Do not use it directly, but instead initialize widgets + * by using the {@link CKEDITOR.plugins.widget.repository#initOn} method or by the upcasting system. + * @param {CKEDITOR.plugins.widget.repository} widgetsRepo + * @param {Number} id Unique ID of this widget instance. + * @param {CKEDITOR.dom.element} element The widget element. + * @param {CKEDITOR.plugins.widget.definition} widgetDef Widget's registered definition. + * @param [startupData] Initial widget data. This data object will overwrite the default data and + * the data loaded from the DOM. + */ + function Widget( widgetsRepo, id, element, widgetDef, startupData ) { + var editor = widgetsRepo.editor; + + // Extend this widget with widgetDef-specific methods and properties. + CKEDITOR.tools.extend( this, widgetDef, { + /** + * The editor instance. + * + * @readonly + * @property {CKEDITOR.editor} + */ + editor: editor, + + /** + * This widget's unique (per editor instance) ID. + * + * @readonly + * @property {Number} + */ + id: id, + + /** + * Whether this widget is an inline widget (based on an inline element unless + * forced otherwise by {@link CKEDITOR.plugins.widget.definition#inline}). + * + * **Note:** This option does not allow to turn a block element into an inline widget. + * However, it makes it possible to turn an inline element into a block widget or to + * force a correct type in case when automatic recognition fails. + * + * @readonly + * @property {Boolean} + */ + inline: element.getParent().getName() == 'span', + + /** + * The widget element — the element on which the widget was initialized. + * + * @readonly + * @property {CKEDITOR.dom.element} element + */ + element: element, + + /** + * Widget's data object. + * + * The data can only be set by using the {@link #setData} method. + * Changes made to the data fire the {@link #event-data} event. + * + * @readonly + */ + data: CKEDITOR.tools.extend( {}, typeof widgetDef.defaults == 'function' ? widgetDef.defaults() : widgetDef.defaults ), + + /** + * Indicates if a widget is data-ready. Set to `true` when data from all sources + * ({@link CKEDITOR.plugins.widget.definition#defaults}, set in the + * {@link #init} method, loaded from the widget's element and startup data coming from the constructor) + * are finally loaded. This is immediately followed by the first {@link #event-data}. + * + * @readonly + */ + dataReady: false, + + /** + * Whether a widget instance was initialized. This means that: + * + * * An instance was created, + * * Its properties were set, + * * The `init` method was executed. + * + * **Note**: The first {@link #event-data} event could not be fired yet which + * means that the widget's DOM has not been set up yet. Wait for the {@link #event-ready} + * event to be notified when a widget is fully initialized and ready. + * + * **Note**: Use the {@link #isInited} method to check whether a widget is initialized and + * has not been destroyed. + * + * @readonly + */ + inited: false, + + /** + * Whether a widget instance is ready. This means that the widget is {@link #inited} and + * that its DOM was finally set up. + * + * **Note:** Use the {@link #isReady} method to check whether a widget is ready and + * has not been destroyed. + * + * @readonly + */ + ready: false, + + // Revert what widgetDef could override (automatic #edit listener). + edit: Widget.prototype.edit, + + /** + * The nested editable element which is currently focused. + * + * @readonly + * @property {CKEDITOR.plugins.widget.nestedEditable} + */ + focusedEditable: null, + + /** + * The widget definition from which this instance was created. + * + * @readonly + * @property {CKEDITOR.plugins.widget.definition} definition + */ + definition: widgetDef, + + /** + * Link to the widget repository which created this instance. + * + * @readonly + * @property {CKEDITOR.plugins.widget.repository} repository + */ + repository: widgetsRepo, + + draggable: widgetDef.draggable !== false, + + // WAAARNING: Overwrite widgetDef's priv object, because otherwise violent unicorn's gonna visit you. + _: { + downcastFn: ( widgetDef.downcast && typeof widgetDef.downcast == 'string' ) ? + widgetDef.downcasts[ widgetDef.downcast ] : widgetDef.downcast + } + }, true ); + + /** + * An object of widget component elements. + * + * For every `partName => selector` pair in {@link CKEDITOR.plugins.widget.definition#parts}, + * one `partName => element` pair is added to this object during the widget initialization. + * + * @readonly + * @property {Object} parts + */ + + /** + * The template which will be used to create a new widget element (when the widget's command is executed). + * It will be populated with {@link #defaults default values}. + * + * @readonly + * @property {CKEDITOR.template} template + */ + + /** + * The widget wrapper — a non-editable `div` or `span` element (depending on {@link #inline}) + * which is a parent of the {@link #element} and widget compontents like the drag handler and the {@link #mask}. + * It is the outermost widget element. + * + * @readonly + * @property {CKEDITOR.dom.element} wrapper + */ + + widgetsRepo.fire( 'instanceCreated', this ); + + setupWidget( this, widgetDef ); + + this.init && this.init(); + + // Finally mark widget as inited. + this.inited = true; + + setupWidgetData( this, startupData ); + + // If at some point (e.g. in #data listener) widget hasn't been destroyed + // and widget is already attached to document then fire #ready. + if ( this.isInited() && editor.editable().contains( this.wrapper ) ) { + this.ready = true; + this.fire( 'ready' ); + } + } + + Widget.prototype = { + /** + * Adds a class to the widget element. This method is used by + * the {@link #applyStyle} method and should be overridden by widgets + * which should handle classes differently (e.g. add them to other elements). + * + * Since 4.6.0 this method also adds a corresponding class prefixed with {@link #WRAPPER_CLASS_PREFIX} + * to the widget wrapper element. + * + * **Note**: This method should not be used directly. Use the {@link #setData} method to + * set the `classes` property. Read more in the {@link #setData} documentation. + * + * See also: {@link #removeClass}, {@link #hasClass}, {@link #getClasses}. + * + * @since 4.4 + * @param {String} className The class name to be added. + */ + addClass: function( className ) { + this.element.addClass( className ); + this.wrapper.addClass( Widget.WRAPPER_CLASS_PREFIX + className ); + }, + + /** + * Applies the specified style to the widget. It is highly recommended to use the + * {@link CKEDITOR.editor#applyStyle} or {@link CKEDITOR.style#apply} methods instead of + * using this method directly, because unlike editor's and style's methods, this one + * does not perform any checks. + * + * By default this method handles only classes defined in the style. It clones existing + * classes which are stored in the {@link #property-data widget data}'s `classes` property, + * adds new classes, and calls the {@link #setData} method if at least one new class was added. + * Then, using the {@link #event-data} event listener widget applies modifications passing + * new classes to the {@link #addClass} method. + * + * If you need to handle classes differently than in the default way, you can override the + * {@link #addClass} and related methods. You can also handle other style properties than `classes` + * by overriding this method. + * + * See also: {@link #checkStyleActive}, {@link #removeStyle}. + * + * @since 4.4 + * @param {CKEDITOR.style} style The custom widget style to be applied. + */ + applyStyle: function( style ) { + applyRemoveStyle( this, style, 1 ); + }, + + /** + * Checks if the specified style is applied to this widget. It is highly recommended to use the + * {@link CKEDITOR.style#checkActive} method instead of using this method directly, + * because unlike style's method, this one does not perform any checks. + * + * By default this method handles only classes defined in the style and passes + * them to the {@link #hasClass} method. You can override these methods to handle classes + * differently or to handle more of the style properties. + * + * See also: {@link #applyStyle}, {@link #removeStyle}. + * + * @since 4.4 + * @param {CKEDITOR.style} style The custom widget style to be checked. + * @returns {Boolean} Whether the style is applied to this widget. + */ + checkStyleActive: function( style ) { + var classes = getStyleClasses( style ), + cl; + + if ( !classes ) + return false; + + while ( ( cl = classes.pop() ) ) { + if ( !this.hasClass( cl ) ) + return false; + } + return true; + }, + + /** + * Destroys this widget instance. + * + * Use {@link CKEDITOR.plugins.widget.repository#destroy} when possible instead of this method. + * + * This method fires the {#event-destroy} event. + * + * @param {Boolean} [offline] Whether a widget is offline (detached from the DOM tree) — + * in this case the DOM (attributes, classes, etc.) will not be cleaned up. + */ + destroy: function( offline ) { + this.fire( 'destroy' ); + + if ( this.editables ) { + for ( var name in this.editables ) + this.destroyEditable( name, offline ); + } + + if ( !offline ) { + if ( this.element.data( 'cke-widget-keep-attr' ) == '0' ) + this.element.removeAttribute( 'data-widget' ); + this.element.removeAttributes( [ 'data-cke-widget-data', 'data-cke-widget-keep-attr' ] ); + this.element.removeClass( 'cke_widget_element' ); + this.element.replace( this.wrapper ); + } + + this.wrapper = null; + }, + + /** + * Destroys a nested editable and all nested widgets. + * + * @param {String} editableName Nested editable name. + * @param {Boolean} [offline] See {@link #method-destroy} method. + */ + destroyEditable: function( editableName, offline ) { + var editable = this.editables[ editableName ]; + + editable.removeListener( 'focus', onEditableFocus ); + editable.removeListener( 'blur', onEditableBlur ); + this.editor.focusManager.remove( editable ); + + if ( !offline ) { + this.repository.destroyAll( false, editable ); + editable.removeClass( 'cke_widget_editable' ); + editable.removeClass( 'cke_widget_editable_focused' ); + editable.removeAttributes( [ 'contenteditable', 'data-cke-widget-editable', 'data-cke-enter-mode' ] ); + } + + delete this.editables[ editableName ]; + }, + + /** + * Starts widget editing. + * + * This method fires the {@link CKEDITOR.plugins.widget#event-edit} event + * which may be canceled in order to prevent it from opening a dialog window. + * + * The dialog window name is obtained from the event's data `dialog` property or + * from {@link CKEDITOR.plugins.widget.definition#dialog}. + * + * @returns {Boolean} Returns `true` if a dialog window was opened. + */ + edit: function() { + var evtData = { dialog: this.dialog }, + that = this; + + // Edit event was blocked or there's no dialog to be automatically opened. + if ( this.fire( 'edit', evtData ) === false || !evtData.dialog ) + return false; + + this.editor.openDialog( evtData.dialog, function( dialog ) { + var showListener, + okListener; + + // Allow to add a custom dialog handler. + if ( that.fire( 'dialog', dialog ) === false ) + return; + + showListener = dialog.on( 'show', function() { + dialog.setupContent( that ); + } ); + + okListener = dialog.on( 'ok', function() { + // Commit dialog's fields, but prevent from + // firing data event for every field. Fire only one, + // bulk event at the end. + var dataChanged, + dataListener = that.on( 'data', function( evt ) { + dataChanged = 1; + evt.cancel(); + }, null, null, 0 ); + + // Create snapshot preceeding snapshot with changed widget... + // TODO it should not be required, but it is and I found similar + // code in dialog#ok listener in dialog/plugin.js. + that.editor.fire( 'saveSnapshot' ); + dialog.commitContent( that ); + + dataListener.removeListener(); + if ( dataChanged ) { + that.fire( 'data', that.data ); + that.editor.fire( 'saveSnapshot' ); + } + } ); + + dialog.once( 'hide', function() { + showListener.removeListener(); + okListener.removeListener(); + } ); + } ); + + return true; + }, + + /** + * Returns widget element classes parsed to an object. This method + * is used to populate the `classes` property of widget's {@link #property-data}. + * + * This method reuses {@link CKEDITOR.plugins.widget.repository#parseElementClasses}. + * It should be overriden if a widget should handle classes differently (e.g. on other elements). + * + * See also: {@link #removeClass}, {@link #addClass}, {@link #hasClass}. + * + * @since 4.4 + * @returns {Object} + */ + getClasses: function() { + return this.repository.parseElementClasses( this.element.getAttribute( 'class' ) ); + }, + + /** + * Checks if the widget element has specified class. This method is used by + * the {@link #checkStyleActive} method and should be overriden by widgets + * which should handle classes differently (e.g. on other elements). + * + * See also: {@link #removeClass}, {@link #addClass}, {@link #getClasses}. + * + * @since 4.4 + * @param {String} className The class to be checked. + * @param {Boolean} Whether a widget has specified class. + */ + hasClass: function( className ) { + return this.element.hasClass( className ); + }, + + /** + * Initializes a nested editable. + * + * **Note**: Only elements from {@link CKEDITOR.dtd#$editable} may become editables. + * + * @param {String} editableName The nested editable name. + * @param {CKEDITOR.plugins.widget.nestedEditable.definition} definition The definition of the nested editable. + * @returns {Boolean} Whether an editable was successfully initialized. + */ + initEditable: function( editableName, definition ) { + // Don't fetch just first element which matched selector but look for a correct one. (http://dev.ckeditor.com/ticket/13334) + var editable = this._findOneNotNested( definition.selector ); + + if ( editable && editable.is( CKEDITOR.dtd.$editable ) ) { + editable = new NestedEditable( this.editor, editable, { + filter: createEditableFilter.call( this.repository, this.name, editableName, definition ) + } ); + this.editables[ editableName ] = editable; + + editable.setAttributes( { + contenteditable: 'true', + 'data-cke-widget-editable': editableName, + 'data-cke-enter-mode': editable.enterMode + } ); + + if ( editable.filter ) + editable.data( 'cke-filter', editable.filter.id ); + + editable.addClass( 'cke_widget_editable' ); + // This class may be left when d&ding widget which + // had focused editable. Clean this class here, not in + // cleanUpWidgetElement for performance and code size reasons. + editable.removeClass( 'cke_widget_editable_focused' ); + + if ( definition.pathName ) + editable.data( 'cke-display-name', definition.pathName ); + + this.editor.focusManager.add( editable ); + editable.on( 'focus', onEditableFocus, this ); + CKEDITOR.env.ie && editable.on( 'blur', onEditableBlur, this ); + + // Finally, process editable's data. This data wasn't processed when loading + // editor's data, becuase they need to be processed separately, with its own filters and settings. + editable._.initialSetData = true; + editable.setData( editable.getHtml() ); + + return true; + } + + return false; + }, + + /** + * Looks inside wrapper element to find a node that + * matches given selector and is not nested in other widget. (http://dev.ckeditor.com/ticket/13334) + * + * @since 4.5 + * @private + * @param {String} selector Selector to match. + * @returns {CKEDITOR.dom.element} Matched element or `null` if a node has not been found. + */ + _findOneNotNested: function( selector ) { + var matchedElements = this.wrapper.find( selector ), + match, + closestWrapper; + + for ( var i = 0; i < matchedElements.count(); i++ ) { + match = matchedElements.getItem( i ); + closestWrapper = match.getAscendant( Widget.isDomWidgetWrapper ); + + // The closest ascendant-wrapper of this match defines to which widget + // this match belongs. If the ascendant is this widget's wrapper + // it means that the match is not nested in other widget. + if ( this.wrapper.equals( closestWrapper ) ) { + return match; + } + } + + return null; + }, + + /** + * Checks if a widget has already been initialized and has not been destroyed yet. + * + * See {@link #inited} for more details. + * + * @returns {Boolean} + */ + isInited: function() { + return !!( this.wrapper && this.inited ); + }, + + /** + * Checks if a widget is ready and has not been destroyed yet. + * + * See {@link #property-ready} for more details. + * + * @returns {Boolean} + */ + isReady: function() { + return this.isInited() && this.ready; + }, + + /** + * Focuses a widget by selecting it. + */ + focus: function() { + var sel = this.editor.getSelection(); + + // Fake the selection before focusing editor, to avoid unpreventable viewports scrolling + // on Webkit/Blink/IE which is done because there's no selection or selection was somewhere else than widget. + if ( sel ) { + var isDirty = this.editor.checkDirty(); + + sel.fake( this.wrapper ); + + !isDirty && this.editor.resetDirty(); + } + + // Always focus editor (not only when focusManger.hasFocus is false) (because of http://dev.ckeditor.com/ticket/10483). + this.editor.focus(); + }, + + /** + * Removes a class from the widget element. This method is used by + * the {@link #removeStyle} method and should be overriden by widgets + * which should handle classes differently (e.g. on other elements). + * + * **Note**: This method should not be used directly. Use the {@link #setData} method to + * set the `classes` property. Read more in the {@link #setData} documentation. + * + * See also: {@link #hasClass}, {@link #addClass}. + * + * @since 4.4 + * @param {String} className The class to be removed. + */ + removeClass: function( className ) { + this.element.removeClass( className ); + this.wrapper.removeClass( Widget.WRAPPER_CLASS_PREFIX + className ); + }, + + /** + * Removes the specified style from the widget. It is highly recommended to use the + * {@link CKEDITOR.editor#removeStyle} or {@link CKEDITOR.style#remove} methods instead of + * using this method directly, because unlike editor's and style's methods, this one + * does not perform any checks. + * + * Read more about how applying/removing styles works in the {@link #applyStyle} method documentation. + * + * See also {@link #checkStyleActive}, {@link #applyStyle}, {@link #getClasses}. + * + * @since 4.4 + * @param {CKEDITOR.style} style The custom widget style to be removed. + */ + removeStyle: function( style ) { + applyRemoveStyle( this, style, 0 ); + }, + + /** + * Sets widget value(s) in the {@link #property-data} object. + * If the given value(s) modifies current ones, the {@link #event-data} event is fired. + * + * this.setData( 'align', 'left' ); + * this.data.align; // -> 'left' + * + * this.setData( { align: 'right', opened: false } ); + * this.data.align; // -> 'right' + * this.data.opened; // -> false + * + * Set values are stored in {@link #element}'s attribute (`data-cke-widget-data`), + * in a JSON string, therefore {@link #property-data} should contain + * only serializable data. + * + * **Note:** A special data property, `classes`, exists. It contains an object with + * classes which were returned by the {@link #getClasses} method during the widget initialization. + * This property is then used by the {@link #applyStyle} and {@link #removeStyle} methods. + * When it is changed (the reference to object must be changed!), the widget updates its classes by + * using the {@link #addClass} and {@link #removeClass} methods. + * + * // Adding a new class. + * var classes = CKEDITOR.tools.clone( widget.data.classes ); + * classes.newClass = 1; + * widget.setData( 'classes', classes ); + * + * // Removing a class. + * var classes = CKEDITOR.tools.clone( widget.data.classes ); + * delete classes.newClass; + * widget.setData( 'classes', classes ); + * + * @param {String/Object} keyOrData + * @param {Object} value + * @chainable + */ + setData: function( key, value ) { + var data = this.data, + modified = 0; + + if ( typeof key == 'string' ) { + if ( data[ key ] !== value ) { + data[ key ] = value; + modified = 1; + } + } + else { + var newData = key; + + for ( key in newData ) { + if ( data[ key ] !== newData[ key ] ) { + modified = 1; + data[ key ] = newData[ key ]; + } + } + } + + // Block firing data event and overwriting data element before setupWidgetData is executed. + if ( modified && this.dataReady ) { + writeDataToElement( this ); + this.fire( 'data', data ); + } + + return this; + }, + + /** + * Changes the widget's focus state. This method is executed automatically after + * a widget was focused by the {@link #method-focus} method or the selection was moved + * out of the widget. + * + * This is a low-level method which is not integrated with e.g. the undo manager. + * Use the {@link #method-focus} method instead. + * + * @param {Boolean} selected Whether to select or deselect this widget. + * @chainable + */ + setFocused: function( focused ) { + this.wrapper[ focused ? 'addClass' : 'removeClass' ]( 'cke_widget_focused' ); + this.fire( focused ? 'focus' : 'blur' ); + return this; + }, + + /** + * Changes the widget's select state. This method is executed automatically after + * a widget was selected by the {@link #method-focus} method or the selection + * was moved out of the widget. + * + * This is a low-level method which is not integrated with e.g. the undo manager. + * Use the {@link #method-focus} method instead or simply change the selection. + * + * @param {Boolean} selected Whether to select or deselect this widget. + * @chainable + */ + setSelected: function( selected ) { + this.wrapper[ selected ? 'addClass' : 'removeClass' ]( 'cke_widget_selected' ); + this.fire( selected ? 'select' : 'deselect' ); + return this; + }, + + /** + * Repositions drag handler according to the widget's element position. Should be called from events, like mouseover. + */ + updateDragHandlerPosition: function() { + var editor = this.editor, + domElement = this.element.$, + oldPos = this._.dragHandlerOffset, + newPos = { + x: domElement.offsetLeft, + y: domElement.offsetTop - DRAG_HANDLER_SIZE + }; + + if ( oldPos && newPos.x == oldPos.x && newPos.y == oldPos.y ) + return; + + // We need to make sure that dirty state is not changed (http://dev.ckeditor.com/ticket/11487). + var initialDirty = editor.checkDirty(); + + editor.fire( 'lockSnapshot' ); + this.dragHandlerContainer.setStyles( { + top: newPos.y + 'px', + left: newPos.x + 'px', + display: 'block' + } ); + editor.fire( 'unlockSnapshot' ); + !initialDirty && editor.resetDirty(); + + this._.dragHandlerOffset = newPos; + } + }; + + CKEDITOR.event.implementOn( Widget.prototype ); + + /** + * Gets the {@link #isDomNestedEditable nested editable} + * (returned as a {@link CKEDITOR.dom.element}, not as a {@link CKEDITOR.plugins.widget.nestedEditable}) + * closest to the `node` or the `node` if it is a nested editable itself. + * + * @since 4.5 + * @static + * @param {CKEDITOR.dom.element} guard Stop ancestor search on this node (usually editor's editable). + * @param {CKEDITOR.dom.node} node Start the search from this node. + * @returns {CKEDITOR.dom.element/null} Element or `null` if not found. + */ + Widget.getNestedEditable = function( guard, node ) { + if ( !node || node.equals( guard ) ) + return null; + + if ( Widget.isDomNestedEditable( node ) ) + return node; + + return Widget.getNestedEditable( guard, node.getParent() ); + }; + + /** + * Checks whether the `node` is a widget's drag handle element. + * + * @since 4.5 + * @static + * @param {CKEDITOR.dom.node} node + * @returns {Boolean} + */ + Widget.isDomDragHandler = function( node ) { + return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-drag-handler' ); + }; + + /** + * Checks whether the `node` is a container of the widget's drag handle element. + * + * @since 4.5 + * @static + * @param {CKEDITOR.dom.node} node + * @returns {Boolean} + */ + Widget.isDomDragHandlerContainer = function( node ) { + return node.type == CKEDITOR.NODE_ELEMENT && node.hasClass( 'cke_widget_drag_handler_container' ); + }; + + /** + * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#editables nested editable}. + * Note that this function only checks whether it is the right element, not whether + * the passed `node` is an instance of {@link CKEDITOR.plugins.widget.nestedEditable}. + * + * @since 4.5 + * @static + * @param {CKEDITOR.dom.node} node + * @returns {Boolean} + */ + Widget.isDomNestedEditable = function( node ) { + return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-editable' ); + }; + + /** + * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#element widget element}. + * + * @since 4.5 + * @static + * @param {CKEDITOR.dom.node} node + * @returns {Boolean} + */ + Widget.isDomWidgetElement = function( node ) { + return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-widget' ); + }; + + /** + * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#wrapper widget wrapper}. + * + * @since 4.5 + * @static + * @param {CKEDITOR.dom.element} node + * @returns {Boolean} + */ + Widget.isDomWidgetWrapper = function( node ) { + return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-wrapper' ); + }; + + /** + * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#element widget element}. + * + * @since 4.5 + * @static + * @param {CKEDITOR.htmlParser.node} node + * @returns {Boolean} + */ + Widget.isParserWidgetElement = function( node ) { + return node.type == CKEDITOR.NODE_ELEMENT && !!node.attributes[ 'data-widget' ]; + }; + + /** + * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#wrapper widget wrapper}. + * + * @since 4.5 + * @static + * @param {CKEDITOR.htmlParser.element} node + * @returns {Boolean} + */ + Widget.isParserWidgetWrapper = function( node ) { + return node.type == CKEDITOR.NODE_ELEMENT && !!node.attributes[ 'data-cke-widget-wrapper' ]; + }; + + /** + * Prefix added to wrapper classes. Each class added to the widget element by the {@link #addClass} + * method will also be added to the wrapper prefixed with it. + * + * @since 4.6.0 + * @static + * @readonly + * @property {String} [='cke_widget_wrapper_'] + */ + Widget.WRAPPER_CLASS_PREFIX = 'cke_widget_wrapper_'; + + /** + * An event fired when a widget is ready (fully initialized). This event is fired after: + * + * * {@link #init} is called, + * * The first {@link #event-data} event is fired, + * * A widget is attached to the document. + * + * Therefore, in case of widget creation with a command which opens a dialog window, this event + * will be delayed after the dialog window is closed and the widget is finally inserted into the document. + * + * **Note**: If your widget does not use automatic dialog window binding (i.e. you open the dialog window manually) + * or another situation in which the widget wrapper is not attached to document at the time when it is + * initialized occurs, you need to take care of firing {@link #event-ready} yourself. + * + * See also {@link #property-ready} and {@link #property-inited} properties, and + * {@link #isReady} and {@link #isInited} methods. + * + * @event ready + */ + + /** + * An event fired when a widget is about to be destroyed, but before it is + * fully torn down. + * + * @event destroy + */ + + /** + * An event fired when a widget is focused. + * + * Widget can be focused by executing {@link #method-focus}. + * + * @event focus + */ + + /** + * An event fired when a widget is blurred. + * + * @event blur + */ + + /** + * An event fired when a widget is selected. + * + * @event select + */ + + /** + * An event fired when a widget is deselected. + * + * @event deselect + */ + + /** + * An event fired by the {@link #method-edit} method. It can be canceled + * in order to stop the default action (opening a dialog window and/or + * {@link CKEDITOR.plugins.widget.repository#finalizeCreation finalizing widget creation}). + * + * @event edit + * @param data + * @param {String} data.dialog Defaults to {@link CKEDITOR.plugins.widget.definition#dialog} + * and can be changed or set by the listener. + */ + + /** + * An event fired when a dialog window for widget editing is opened. + * This event can be canceled in order to handle the editing dialog in a custom manner. + * + * @event dialog + * @param {CKEDITOR.dialog} data The opened dialog window instance. + */ + + /** + * An event fired when a key is pressed on a focused widget. + * This event is forwarded from the {@link CKEDITOR.editor#key} event and + * has the ability to block editor keystrokes if it is canceled. + * + * @event key + * @param data + * @param {Number} data.keyCode A number representing the key code (or combination). + */ + + /** + * An event fired when a widget is double clicked. + * + * **Note:** If a default editing action is executed on double click (i.e. a widget has a + * {@link CKEDITOR.plugins.widget.definition#dialog dialog} defined and the {@link #event-doubleclick} event was not + * canceled), this event will be automatically canceled, so a listener added with the default priority (10) + * will not be executed. Use a listener with low priority (e.g. 5) to be sure that it will be executed. + * + * widget.on( 'doubleclick', function( evt ) { + * console.log( 'widget#doubleclick' ); + * }, null, null, 5 ); + * + * If your widget handles double click in a special way (so the default editing action is not executed), + * make sure you cancel this event, because otherwise it will be propagated to {@link CKEDITOR.editor#doubleclick} + * and another feature may step in (e.g. a Link dialog window may be opened if your widget was inside a link). + * + * @event doubleclick + * @param data + * @param {CKEDITOR.dom.element} data.element The double-clicked element. + */ + + /** + * An event fired when the context menu is opened for a widget. + * + * @event contextMenu + * @param data The object containing context menu options to be added + * for this widget. See {@link CKEDITOR.plugins.contextMenu#addListener}. + */ + + /** + * An event fired when the widget data changed. See the {@link #setData} method and the {@link #property-data} property. + * + * @event data + */ + + + + /** + * The wrapper class for editable elements inside widgets. + * + * Do not use directly. Use {@link CKEDITOR.plugins.widget.definition#editables} or + * {@link CKEDITOR.plugins.widget#initEditable}. + * + * @class CKEDITOR.plugins.widget.nestedEditable + * @extends CKEDITOR.dom.element + * @constructor + * @param {CKEDITOR.editor} editor + * @param {CKEDITOR.dom.element} element + * @param config + * @param {CKEDITOR.filter} [config.filter] + */ + function NestedEditable( editor, element, config ) { + // Call the base constructor. + CKEDITOR.dom.element.call( this, element.$ ); + this.editor = editor; + this._ = {}; + var filter = this.filter = config.filter; + + // If blockless editable - always use BR mode. + if ( !CKEDITOR.dtd[ this.getName() ].p ) + this.enterMode = this.shiftEnterMode = CKEDITOR.ENTER_BR; + else { + this.enterMode = filter ? filter.getAllowedEnterMode( editor.enterMode ) : editor.enterMode; + this.shiftEnterMode = filter ? filter.getAllowedEnterMode( editor.shiftEnterMode, true ) : editor.shiftEnterMode; + } + } + + NestedEditable.prototype = CKEDITOR.tools.extend( CKEDITOR.tools.prototypedCopy( CKEDITOR.dom.element.prototype ), { + /** + * Sets the editable data. The data will be passed through the {@link CKEDITOR.editor#dataProcessor} + * and the {@link CKEDITOR.editor#filter}. This ensures that the data was filtered and prepared to be + * edited like the {@link CKEDITOR.editor#method-setData editor data}. + * + * Before content is changed, all nested widgets are destroyed. Afterwards, after new content is loaded, + * all nested widgets are initialized. + * + * @param {String} data + */ + setData: function( data ) { + // For performance reasons don't call destroyAll when initializing a nested editable, + // because there are no widgets inside. + if ( !this._.initialSetData ) { + // Destroy all nested widgets before setting data. + this.editor.widgets.destroyAll( false, this ); + } + this._.initialSetData = false; + + data = this.editor.dataProcessor.toHtml( data, { + context: this.getName(), + filter: this.filter, + enterMode: this.enterMode + } ); + this.setHtml( data ); + + this.editor.widgets.initOnAll( this ); + }, + + /** + * Gets the editable data. Like {@link #setData}, this method will process and filter the data. + * + * @returns {String} + */ + getData: function() { + return this.editor.dataProcessor.toDataFormat( this.getHtml(), { + context: this.getName(), + filter: this.filter, + enterMode: this.enterMode + } ); + } + } ); + + /** + * The editor instance. + * + * @readonly + * @property {CKEDITOR.editor} editor + */ + + /** + * The filter instance if allowed content rules were defined. + * + * @readonly + * @property {CKEDITOR.filter} filter + */ + + /** + * The enter mode active in this editable. + * It is determined from editable's name (whether it is a blockless editable), + * its allowed content rules (if defined) and the default editor's mode. + * + * @readonly + * @property {Number} enterMode + */ + + /** + * The shift enter move active in this editable. + * + * @readonly + * @property {Number} shiftEnterMode + */ + + + // + // REPOSITORY helpers ----------------------------------------------------- + // + + function addWidgetButtons( editor ) { + var widgets = editor.widgets.registered, + widget, + widgetName, + widgetButton; + + for ( widgetName in widgets ) { + widget = widgets[ widgetName ]; + + // Create button if defined. + widgetButton = widget.button; + if ( widgetButton && editor.ui.addButton ) { + editor.ui.addButton( CKEDITOR.tools.capitalize( widget.name, true ), { + label: widgetButton, + command: widget.name, + toolbar: 'insert,10' + } ); + } + } + } + + // Create a command creating and editing widget. + // + // @param editor + // @param {CKEDITOR.plugins.widget.definition} widgetDef + function addWidgetCommand( editor, widgetDef ) { + editor.addCommand( widgetDef.name, { + exec: function( editor, commandData ) { + var focused = editor.widgets.focused; + // If a widget of the same type is focused, start editing. + if ( focused && focused.name == widgetDef.name ) + focused.edit(); + // Otherwise... + // ... use insert method is was defined. + else if ( widgetDef.insert ) + widgetDef.insert(); + // ... or create a brand-new widget from template. + else if ( widgetDef.template ) { + var defaults = typeof widgetDef.defaults == 'function' ? widgetDef.defaults() : widgetDef.defaults, + element = CKEDITOR.dom.element.createFromHtml( widgetDef.template.output( defaults ) ), + instance, + wrapper = editor.widgets.wrapElement( element, widgetDef.name ), + temp = new CKEDITOR.dom.documentFragment( wrapper.getDocument() ); + + // Append wrapper to a temporary document. This will unify the environment + // in which #data listeners work when creating and editing widget. + temp.append( wrapper ); + instance = editor.widgets.initOn( element, widgetDef, commandData && commandData.startupData ); + + // Instance could be destroyed during initialization. + // In this case finalize creation if some new widget + // was left in temporary document fragment. + if ( !instance ) { + finalizeCreation(); + return; + } + + // Listen on edit to finalize widget insertion. + // + // * If dialog was set, then insert widget after dialog was successfully saved or destroy this + // temporary instance. + // * If dialog wasn't set and edit wasn't canceled, insert widget. + var editListener = instance.once( 'edit', function( evt ) { + if ( evt.data.dialog ) { + instance.once( 'dialog', function( evt ) { + var dialog = evt.data, + okListener, + cancelListener; + + // Finalize creation AFTER (20) new data was set. + okListener = dialog.once( 'ok', finalizeCreation, null, null, 20 ); + + cancelListener = dialog.once( 'cancel', function( evt ) { + if ( !( evt.data && evt.data.hide === false ) ) { + editor.widgets.destroy( instance, true ); + } + } ); + + dialog.once( 'hide', function() { + okListener.removeListener(); + cancelListener.removeListener(); + } ); + } ); + } else { + // Dialog hasn't been set, so insert widget now. + finalizeCreation(); + } + }, null, null, 999 ); + + instance.edit(); + + // Remove listener in case someone canceled it before this + // listener was executed. + editListener.removeListener(); + } + + function finalizeCreation() { + editor.widgets.finalizeCreation( temp ); + } + }, + + allowedContent: widgetDef.allowedContent, + requiredContent: widgetDef.requiredContent, + contentForms: widgetDef.contentForms, + contentTransformations: widgetDef.contentTransformations + } ); + } + + function addWidgetProcessors( widgetsRepo, widgetDef ) { + var upcast = widgetDef.upcast, + upcasts, + priority = widgetDef.upcastPriority || 10; + + if ( !upcast ) + return; + + // Multiple upcasts defined in string. + if ( typeof upcast == 'string' ) { + upcasts = upcast.split( ',' ); + while ( upcasts.length ) { + addUpcast( widgetDef.upcasts[ upcasts.pop() ], widgetDef.name, priority ); + } + } + // Single rule which is automatically activated. + else { + addUpcast( upcast, widgetDef.name, priority ); + } + + function addUpcast( upcast, name, priority ) { + // Find index of the first higher (in terms of value) priority upcast. + var index = CKEDITOR.tools.getIndex( widgetsRepo._.upcasts, function( element ) { + return element[ 2 ] > priority; + } ); + // Add at the end if it is the highest priority so far. + if ( index < 0 ) { + index = widgetsRepo._.upcasts.length; + } + + widgetsRepo._.upcasts.splice( index, 0, [ upcast, name, priority ] ); + } + } + + function blurWidget( widgetsRepo, widget ) { + widgetsRepo.focused = null; + + if ( widget.isInited() ) { + var isDirty = widget.editor.checkDirty(); + + // Widget could be destroyed in the meantime - e.g. data could be set. + widgetsRepo.fire( 'widgetBlurred', { widget: widget } ); + widget.setFocused( false ); + + !isDirty && widget.editor.resetDirty(); + } + } + + function checkWidgets( evt ) { + var options = evt.data; + + if ( this.editor.mode != 'wysiwyg' ) + return; + + var editable = this.editor.editable(), + instances = this.instances, + newInstances, i, count, wrapper, notYetInitialized; + + if ( !editable ) + return; + + // Remove widgets which have no corresponding elements in DOM. + for ( i in instances ) { + // http://dev.ckeditor.com/ticket/13410 Remove widgets that are ready. This prevents from destroying widgets that are during loading process. + if ( instances[ i ].isReady() && !editable.contains( instances[ i ].wrapper ) ) + this.destroy( instances[ i ], true ); + } + + // Init on all (new) if initOnlyNew option was passed. + if ( options && options.initOnlyNew ) + newInstances = this.initOnAll(); + else { + var wrappers = editable.find( '.cke_widget_wrapper' ); + newInstances = []; + + // Create widgets on existing wrappers if they do not exists. + for ( i = 0, count = wrappers.count(); i < count; i++ ) { + wrapper = wrappers.getItem( i ); + notYetInitialized = !this.getByElement( wrapper, true ); + + // Check if: + // * there's no instance for this widget + // * wrapper is not inside some temporary element like copybin (http://dev.ckeditor.com/ticket/11088) + // * it was a nested widget's wrapper which has been detached from DOM, + // when nested editable has been initialized (it overwrites its innerHTML + // and initializes nested widgets). + if ( notYetInitialized && !findParent( wrapper, isDomTemp ) && editable.contains( wrapper ) ) { + // Add cke_widget_new class because otherwise + // widget will not be created on such wrapper. + wrapper.addClass( 'cke_widget_new' ); + newInstances.push( this.initOn( wrapper.getFirst( Widget.isDomWidgetElement ) ) ); + } + } + } + + // If only single widget was initialized and focusInited was passed, focus it. + if ( options && options.focusInited && newInstances.length == 1 ) + newInstances[ 0 ].focus(); + } + + // Unwraps widget element and clean up element. + // + // This function is used to clean up pasted widgets. + // It should have similar result to widget#destroy plus + // some additional adjustments, specific for pasting. + // + // @param {CKEDITOR.htmlParser.element} el + function cleanUpWidgetElement( el ) { + var parent = el.parent; + if ( parent.type == CKEDITOR.NODE_ELEMENT && parent.attributes[ 'data-cke-widget-wrapper' ] ) + parent.replaceWith( el ); + } + + // Similar to cleanUpWidgetElement, but works on DOM and finds + // widget elements by its own. + // + // Unlike cleanUpWidgetElement it will wrap element back. + // + // @param {CKEDITOR.dom.element} container + function cleanUpAllWidgetElements( widgetsRepo, container ) { + var wrappers = container.find( '.cke_widget_wrapper' ), + wrapper, element, + i = 0, + l = wrappers.count(); + + for ( ; i < l; ++i ) { + wrapper = wrappers.getItem( i ); + element = wrapper.getFirst( Widget.isDomWidgetElement ); + // If wrapper contains widget element - unwrap it and wrap again. + if ( element.type == CKEDITOR.NODE_ELEMENT && element.data( 'widget' ) ) { + element.replace( wrapper ); + widgetsRepo.wrapElement( element ); + } else { + // Otherwise - something is wrong... clean this up. + wrapper.remove(); + } + } + } + + // Creates {@link CKEDITOR.filter} instance for given widget, editable and rules. + // + // Once filter for widget-editable pair is created it is cached, so the same instance + // will be returned when method is executed again. + // + // @param {String} widgetName + // @param {String} editableName + // @param {CKEDITOR.plugins.widget.nestedEditableDefinition} editableDefinition The nested editable definition. + // @returns {CKEDITOR.filter} Filter instance or `null` if rules are not defined. + // @context CKEDITOR.plugins.widget.repository + function createEditableFilter( widgetName, editableName, editableDefinition ) { + if ( !editableDefinition.allowedContent && !editableDefinition.disallowedContent ) + return null; + + var editables = this._.filters[ widgetName ]; + + if ( !editables ) + this._.filters[ widgetName ] = editables = {}; + + var filter = editables[ editableName ]; + + if ( !filter ) { + filter = editableDefinition.allowedContent ? new CKEDITOR.filter( editableDefinition.allowedContent ) : this.editor.filter.clone(); + + editables[ editableName ] = filter; + + if ( editableDefinition.disallowedContent ) { + filter.disallow( editableDefinition.disallowedContent ); + } + } + + return filter; + } + + // Creates an iterator function which when executed on all + // elements in DOM tree will gather elements that should be wrapped + // and initialized as widgets. + function createUpcastIterator( widgetsRepo ) { + var toBeWrapped = [], + upcasts = widgetsRepo._.upcasts, + upcastCallbacks = widgetsRepo._.upcastCallbacks; + + return { + toBeWrapped: toBeWrapped, + + iterator: function( element ) { + var upcast, upcasted, + data, + i, + upcastsLength, + upcastCallbacksLength; + + // Wrapper found - find widget element, add it to be + // cleaned up (unwrapped) and wrapped and stop iterating in this branch. + if ( 'data-cke-widget-wrapper' in element.attributes ) { + element = element.getFirst( Widget.isParserWidgetElement ); + + if ( element ) + toBeWrapped.push( [ element ] ); + + // Do not iterate over descendants. + return false; + } + // Widget element found - add it to be cleaned up (just in case) + // and wrapped and stop iterating in this branch. + else if ( 'data-widget' in element.attributes ) { + toBeWrapped.push( [ element ] ); + + // Do not iterate over descendants. + return false; + } + else if ( ( upcastsLength = upcasts.length ) ) { + // Ignore elements with data-cke-widget-upcasted to avoid multiple upcasts (http://dev.ckeditor.com/ticket/11533). + // Do not iterate over descendants. + if ( element.attributes[ 'data-cke-widget-upcasted' ] ) + return false; + + // Check element with upcast callbacks first. + // If any of them return false abort upcasting. + for ( i = 0, upcastCallbacksLength = upcastCallbacks.length; i < upcastCallbacksLength; ++i ) { + if ( upcastCallbacks[ i ]( element ) === false ) + return; + // Return nothing in order to continue iterating over ascendants. + // See http://dev.ckeditor.com/ticket/11186#comment:6 + } + + for ( i = 0; i < upcastsLength; ++i ) { + upcast = upcasts[ i ]; + data = {}; + + if ( ( upcasted = upcast[ 0 ]( element, data ) ) ) { + // If upcast function returned element, upcast this one. + // It can be e.g. a new element wrapping the original one. + if ( upcasted instanceof CKEDITOR.htmlParser.element ) + element = upcasted; + + // Set initial data attr with data from upcast method. + element.attributes[ 'data-cke-widget-data' ] = encodeURIComponent( JSON.stringify( data ) ); + element.attributes[ 'data-cke-widget-upcasted' ] = 1; + + toBeWrapped.push( [ element, upcast[ 1 ] ] ); + + // Do not iterate over descendants. + return false; + } + } + } + } + }; + } + + // Finds a first parent that matches query. + // + // @param {CKEDITOR.dom.element} element + // @param {Function} query + function findParent( element, query ) { + var parent = element; + + while ( ( parent = parent.getParent() ) ) { + if ( query( parent ) ) + return true; + } + return false; + } + + function getWrapperAttributes( inlineWidget, name ) { + return { + // tabindex="-1" means that it can receive focus by code. + tabindex: -1, + contenteditable: 'false', + 'data-cke-widget-wrapper': 1, + 'data-cke-filter': 'off', + // Class cke_widget_new marks widgets which haven't been initialized yet. + 'class': 'cke_widget_wrapper cke_widget_new cke_widget_' + + ( inlineWidget ? 'inline' : 'block' ) + + ( name ? ' cke_widget_' + name : '' ) + }; + } + + // Inserts element at given index. + // It will check DTD and split ancestor elements up to the first + // that can contain this element. + // + // @param {CKEDITOR.htmlParser.element} parent + // @param {Number} index + // @param {CKEDITOR.htmlParser.element} element + function insertElement( parent, index, element ) { + // Do not split doc fragment... + if ( parent.type == CKEDITOR.NODE_ELEMENT ) { + var parentAllows = CKEDITOR.dtd[ parent.name ]; + // Parent element is known (included in DTD) and cannot contain + // this element. + if ( parentAllows && !parentAllows[ element.name ] ) { + var parent2 = parent.split( index ), + parentParent = parent.parent; + + // Element will now be inserted at right parent's index. + index = parent2.getIndex(); + + // If left part of split is empty - remove it. + if ( !parent.children.length ) { + index -= 1; + parent.remove(); + } + + // If right part of split is empty - remove it. + if ( !parent2.children.length ) + parent2.remove(); + + // Try inserting as grandpas' children. + return insertElement( parentParent, index, element ); + } + } + + // Finally we can add this element. + parent.add( element, index ); + } + + // Checks whether for the given widget definition and element widget should be created in inline or block mode. + // + // See also: {@link CKEDITOR.plugins.widget.definition#inline} and {@link CKEDITOR.plugins.widget#element}. + // + // @param {CKEDITOR.plugins.widget.definition} widgetDef The widget definition. + // @param {String} elementName The name of the widget element. + // @returns {Boolean} + function isWidgetInline( widgetDef, elementName ) { + return typeof widgetDef.inline == 'boolean' ? widgetDef.inline : !!CKEDITOR.dtd.$inline[ elementName ]; + } + + // @param {CKEDITOR.dom.element} + // @returns {Boolean} + function isDomTemp( element ) { + return element.hasAttribute( 'data-cke-temp' ); + } + + function onEditableKey( widget, keyCode ) { + var focusedEditable = widget.focusedEditable, + range; + + // CTRL+A. + if ( keyCode == CKEDITOR.CTRL + 65 ) { + var bogus = focusedEditable.getBogus(); + + range = widget.editor.createRange(); + range.selectNodeContents( focusedEditable ); + // Exclude bogus if exists. + if ( bogus ) + range.setEndAt( bogus, CKEDITOR.POSITION_BEFORE_START ); + + range.select(); + // Cancel event - block default. + return false; + } + // DEL or BACKSPACE. + else if ( keyCode == 8 || keyCode == 46 ) { + var ranges = widget.editor.getSelection().getRanges(); + + range = ranges[ 0 ]; + + // Block del or backspace if at editable's boundary. + return !( ranges.length == 1 && range.collapsed && + range.checkBoundaryOfElement( focusedEditable, CKEDITOR[ keyCode == 8 ? 'START' : 'END' ] ) ); + } + } + + function setFocusedEditable( widgetsRepo, widget, editableElement, offline ) { + var editor = widgetsRepo.editor; + + editor.fire( 'lockSnapshot' ); + + if ( editableElement ) { + var editableName = editableElement.data( 'cke-widget-editable' ), + editableInstance = widget.editables[ editableName ]; + + widgetsRepo.widgetHoldingFocusedEditable = widget; + widget.focusedEditable = editableInstance; + editableElement.addClass( 'cke_widget_editable_focused' ); + + if ( editableInstance.filter ) + editor.setActiveFilter( editableInstance.filter ); + editor.setActiveEnterMode( editableInstance.enterMode, editableInstance.shiftEnterMode ); + } else { + if ( !offline ) + widget.focusedEditable.removeClass( 'cke_widget_editable_focused' ); + + widget.focusedEditable = null; + widgetsRepo.widgetHoldingFocusedEditable = null; + editor.setActiveFilter( null ); + editor.setActiveEnterMode( null, null ); + } + + editor.fire( 'unlockSnapshot' ); + } + + function setupContextMenu( editor ) { + if ( !editor.contextMenu ) + return; + + editor.contextMenu.addListener( function( element ) { + var widget = editor.widgets.getByElement( element, true ); + + if ( widget ) + return widget.fire( 'contextMenu', {} ); + } ); + } + + // And now we've got two problems - original problem and RegExp. + // Some softeners: + // * FF tends to copy all blocks up to the copybin container. + // * IE tends to copy only the copybin, without its container. + // * We use spans on IE and blockless editors, but divs in other cases. + var pasteReplaceRegex = new RegExp( + '^' + + '(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?' + + '(?:<(?:div|span)(?: style="[^"]+")?>)?' + + ']*data-cke-copybin-start="1"[^>]*>.?([\\s\\S]+)]*data-cke-copybin-end="1"[^>]*>.?' + + '(?:)?' + + '(?:)?' + + '$', + // IE8 prefers uppercase when browsers stick to lowercase HTML (http://dev.ckeditor.com/ticket/13460). + 'i' + ); + + function pasteReplaceFn( match, wrapperHtml ) { + // Avoid polluting pasted data with any whitspaces, + // what's going to break check whether only one widget was pasted. + return CKEDITOR.tools.trim( wrapperHtml ); + } + + function setupDragAndDrop( widgetsRepo ) { + var editor = widgetsRepo.editor, + lineutils = CKEDITOR.plugins.lineutils; + + // These listeners handle inline and block widgets drag and drop. + // The only thing we need to do to make block widgets custom drag and drop functionality + // is to fire those events with the right properties (like the target which must be the drag handle). + editor.on( 'dragstart', function( evt ) { + var target = evt.data.target; + + if ( Widget.isDomDragHandler( target ) ) { + var widget = widgetsRepo.getByElement( target ); + + evt.data.dataTransfer.setData( 'cke/widget-id', widget.id ); + + // IE needs focus. + editor.focus(); + + // and widget need to be focused on drag start (http://dev.ckeditor.com/ticket/12172#comment:10). + widget.focus(); + } + } ); + + editor.on( 'drop', function( evt ) { + var dataTransfer = evt.data.dataTransfer, + id = dataTransfer.getData( 'cke/widget-id' ), + transferType = dataTransfer.getTransferType( editor ), + dragRange = editor.createRange(), + sourceWidget; + + // Disable cross-editor drag & drop for widgets - http://dev.ckeditor.com/ticket/13599. + if ( id !== '' && transferType === CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ) { + evt.cancel(); + return; + } + + if ( id === '' || transferType != CKEDITOR.DATA_TRANSFER_INTERNAL ) { + return; + } + + sourceWidget = widgetsRepo.instances[ id ]; + if ( !sourceWidget ) { + return; + } + + dragRange.setStartBefore( sourceWidget.wrapper ); + dragRange.setEndAfter( sourceWidget.wrapper ); + evt.data.dragRange = dragRange; + + // [IE8-9] Reset state of the clipboard#fixSplitNodesAfterDrop fix because by setting evt.data.dragRange + // (see above) after drop happened we do not need it. That fix is needed only if dragRange was created + // before drop (before text node was split). + delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount; + delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount; + + evt.data.dataTransfer.setData( 'text/html', editor.editable().getHtmlFromRange( dragRange ).getHtml() ); + editor.widgets.destroy( sourceWidget, true ); + } ); + + editor.on( 'contentDom', function() { + var editable = editor.editable(); + + // Register Lineutils's utilities as properties of repo. + CKEDITOR.tools.extend( widgetsRepo, { + finder: new lineutils.finder( editor, { + lookups: { + // Element is block but not list item and not in nested editable. + 'default': function( el ) { + if ( el.is( CKEDITOR.dtd.$listItem ) ) + return; + + if ( !el.is( CKEDITOR.dtd.$block ) ) + return; + + // Allow drop line inside, but never before or after nested editable (http://dev.ckeditor.com/ticket/12006). + if ( Widget.isDomNestedEditable( el ) ) + return; + + // Do not allow droping inside the widget being dragged (http://dev.ckeditor.com/ticket/13397). + if ( widgetsRepo._.draggedWidget.wrapper.contains( el ) ) { + return; + } + + // If element is nested editable, make sure widget can be dropped there (http://dev.ckeditor.com/ticket/12006). + var nestedEditable = Widget.getNestedEditable( editable, el ); + if ( nestedEditable ) { + var draggedWidget = widgetsRepo._.draggedWidget; + + // Don't let the widget to be dropped into its own nested editable. + if ( widgetsRepo.getByElement( nestedEditable ) == draggedWidget ) + return; + + var filter = CKEDITOR.filter.instances[ nestedEditable.data( 'cke-filter' ) ], + draggedRequiredContent = draggedWidget.requiredContent; + + // There will be no relation if the filter of nested editable does not allow + // requiredContent of dragged widget. + if ( filter && draggedRequiredContent && !filter.check( draggedRequiredContent ) ) + return; + } + + return CKEDITOR.LINEUTILS_BEFORE | CKEDITOR.LINEUTILS_AFTER; + } + } + } ), + locator: new lineutils.locator( editor ), + liner: new lineutils.liner( editor, { + lineStyle: { + cursor: 'move !important', + 'border-top-color': '#666' + }, + tipLeftStyle: { + 'border-left-color': '#666' + }, + tipRightStyle: { + 'border-right-color': '#666' + } + } ) + }, true ); + } ); + } + + // Setup mouse observer which will trigger: + // * widget focus on widget click, + // * widget#doubleclick forwarded from editor#doubleclick. + function setupMouseObserver( widgetsRepo ) { + var editor = widgetsRepo.editor; + + editor.on( 'contentDom', function() { + var editable = editor.editable(), + evtRoot = editable.isInline() ? editable : editor.document, + widget, + mouseDownOnDragHandler; + + editable.attachListener( evtRoot, 'mousedown', function( evt ) { + var target = evt.data.getTarget(); + + // Clicking scrollbar in Chrome will invoke event with target object of document type (#663). + // In IE8 the target object will be empty (http://dev.ckeditor.com/ticket/10887). + // We need to check if target is a proper element. + widget = ( target instanceof CKEDITOR.dom.element ) ? widgetsRepo.getByElement( target ) : null; + + mouseDownOnDragHandler = 0; // Reset. + + // Widget was clicked, but not editable nested in it. + if ( widget ) { + // Ignore mousedown on drag and drop handler if the widget is inline. + // Block widgets are handled by Lineutils. + if ( widget.inline && target.type == CKEDITOR.NODE_ELEMENT && target.hasAttribute( 'data-cke-widget-drag-handler' ) ) { + mouseDownOnDragHandler = 1; + + // When drag handler is pressed we have to clear current selection if it wasn't already on this widget. + // Otherwise, the selection may be in a fillingChar, which prevents dragging a widget. (http://dev.ckeditor.com/ticket/13284, see comment 8 and 9.) + if ( widgetsRepo.focused != widget ) + editor.getSelection().removeAllRanges(); + + return; + } + + if ( !Widget.getNestedEditable( widget.wrapper, target ) ) { + evt.data.preventDefault(); + if ( !CKEDITOR.env.ie ) + widget.focus(); + } else { + // Reset widget so mouseup listener is not confused. + widget = null; + } + } + } ); + + // Focus widget on mouseup if mousedown was fired on drag handler. + // Note: mouseup won't be fired at all if widget was dragged and dropped, so + // this code will be executed only when drag handler was clicked. + editable.attachListener( evtRoot, 'mouseup', function() { + // Check if widget is not destroyed (if widget is destroyed the wrapper will be null). + if ( mouseDownOnDragHandler && widget && widget.wrapper ) { + mouseDownOnDragHandler = 0; + widget.focus(); + } + } ); + + // On IE it is not enough to block mousedown. If widget wrapper (element with + // contenteditable=false attribute) is clicked directly (it is a target), + // then after mouseup/click IE will select that element. + // It is not possible to prevent that default action, + // so we force fake selection after everything happened. + if ( CKEDITOR.env.ie ) { + editable.attachListener( evtRoot, 'mouseup', function() { + setTimeout( function() { + // Check if widget is not destroyed (if widget is destroyed the wrapper will be null) and + // in editable contains widget (it could be dragged and removed). + if ( widget && widget.wrapper && editable.contains( widget.wrapper ) ) { + widget.focus(); + widget = null; + } + } ); + } ); + } + } ); + + editor.on( 'doubleclick', function( evt ) { + var widget = widgetsRepo.getByElement( evt.data.element ); + + // Not in widget or in nested editable. + if ( !widget || Widget.getNestedEditable( widget.wrapper, evt.data.element ) ) + return; + + return widget.fire( 'doubleclick', { element: evt.data.element } ); + }, null, null, 1 ); + } + + // Setup editor#key observer which will forward it + // to focused widget. + function setupKeyboardObserver( widgetsRepo ) { + var editor = widgetsRepo.editor; + + editor.on( 'key', function( evt ) { + var focused = widgetsRepo.focused, + widgetHoldingFocusedEditable = widgetsRepo.widgetHoldingFocusedEditable, + ret; + + if ( focused ) + ret = focused.fire( 'key', { keyCode: evt.data.keyCode } ); + else if ( widgetHoldingFocusedEditable ) + ret = onEditableKey( widgetHoldingFocusedEditable, evt.data.keyCode ); + + return ret; + }, null, null, 1 ); + } + + // Setup copybin on native copy and cut events in order to handle copy and cut commands + // if user accepted security alert on IEs. + // Note: when copying or cutting using keystroke, copySingleWidget will be first executed + // by the keydown listener. Conflict between two calls will be resolved by copy_bin existence check. + function setupNativeCutAndCopy( widgetsRepo ) { + var editor = widgetsRepo.editor; + + editor.on( 'contentDom', function() { + var editable = editor.editable(); + + editable.attachListener( editable, 'copy', eventListener ); + editable.attachListener( editable, 'cut', eventListener ); + } ); + + function eventListener( evt ) { + if ( widgetsRepo.focused ) + copySingleWidget( widgetsRepo.focused, evt.name == 'cut' ); + } + } + + // Setup selection observer which will trigger: + // * widget select & focus on selection change, + // * nested editable focus (related properites and classes) on selection change, + // * deselecting and blurring all widgets on data, + // * blurring widget on editor blur. + function setupSelectionObserver( widgetsRepo ) { + var editor = widgetsRepo.editor; + + editor.on( 'selectionCheck', function() { + widgetsRepo.fire( 'checkSelection' ); + } ); + + widgetsRepo.on( 'checkSelection', widgetsRepo.checkSelection, widgetsRepo ); + + editor.on( 'selectionChange', function( evt ) { + var nestedEditable = Widget.getNestedEditable( editor.editable(), evt.data.selection.getStartElement() ), + newWidget = nestedEditable && widgetsRepo.getByElement( nestedEditable ), + oldWidget = widgetsRepo.widgetHoldingFocusedEditable; + + if ( oldWidget ) { + if ( oldWidget !== newWidget || !oldWidget.focusedEditable.equals( nestedEditable ) ) { + setFocusedEditable( widgetsRepo, oldWidget, null ); + + if ( newWidget && nestedEditable ) + setFocusedEditable( widgetsRepo, newWidget, nestedEditable ); + } + } + // It may happen that there's no widget even if editable was found - + // e.g. if selection was automatically set in editable although widget wasn't initialized yet. + else if ( newWidget && nestedEditable ) { + setFocusedEditable( widgetsRepo, newWidget, nestedEditable ); + } + } ); + + // Invalidate old widgets early - immediately on dataReady. + editor.on( 'dataReady', function() { + // Deselect and blur all widgets. + stateUpdater( widgetsRepo ).commit(); + } ); + + editor.on( 'blur', function() { + var widget; + + if ( ( widget = widgetsRepo.focused ) ) + blurWidget( widgetsRepo, widget ); + + if ( ( widget = widgetsRepo.widgetHoldingFocusedEditable ) ) + setFocusedEditable( widgetsRepo, widget, null ); + } ); + } + + // Set up actions like: + // * processing in toHtml/toDataFormat, + // * pasting handling, + // * insertion handling, + // * editable reload handling (setData, mode switch, undo/redo), + // * DOM invalidation handling, + // * widgets checks. + function setupWidgetsLifecycle( widgetsRepo ) { + setupWidgetsLifecycleStart( widgetsRepo ); + setupWidgetsLifecycleEnd( widgetsRepo ); + + widgetsRepo.on( 'checkWidgets', checkWidgets ); + widgetsRepo.editor.on( 'contentDomInvalidated', widgetsRepo.checkWidgets, widgetsRepo ); + } + + function setupWidgetsLifecycleEnd( widgetsRepo ) { + var editor = widgetsRepo.editor, + downcastingSessions = {}; + + // Listen before htmlDP#htmlFilter is applied to cache all widgets, because we'll + // loose data-cke-* attributes. + editor.on( 'toDataFormat', function( evt ) { + // To avoid conflicts between htmlDP#toDF calls done at the same time + // (e.g. nestedEditable#getData called during downcasting some widget) + // mark every toDataFormat event chain with the downcasting session id. + var id = CKEDITOR.tools.getNextNumber(), + toBeDowncasted = []; + evt.data.downcastingSessionId = id; + downcastingSessions[ id ] = toBeDowncasted; + + evt.data.dataValue.forEach( function( element ) { + var attrs = element.attributes, + widget, widgetElement; + + // Wrapper. + // Perform first part of downcasting (cleanup) and cache widgets, + // because after applying DP's filter all data-cke-* attributes will be gone. + if ( 'data-cke-widget-id' in attrs ) { + widget = widgetsRepo.instances[ attrs[ 'data-cke-widget-id' ] ]; + if ( widget ) { + widgetElement = element.getFirst( Widget.isParserWidgetElement ); + toBeDowncasted.push( { + wrapper: element, + element: widgetElement, + widget: widget, + editables: {} + } ); + + // If widget did not have data-cke-widget attribute before upcasting remove it. + if ( widgetElement.attributes[ 'data-cke-widget-keep-attr' ] != '1' ) + delete widgetElement.attributes[ 'data-widget' ]; + } + } + // Nested editable. + else if ( 'data-cke-widget-editable' in attrs ) { + // Save the reference to this nested editable in the closest widget to be downcasted. + // Nested editables are downcasted in the successive toDataFormat to create an opportunity + // for dataFilter's "excludeNestedEditable" option to do its job (that option relies on + // contenteditable="true" attribute) (http://dev.ckeditor.com/ticket/11372). + toBeDowncasted[ toBeDowncasted.length - 1 ].editables[ attrs[ 'data-cke-widget-editable' ] ] = element; + + // Don't check children - there won't be next wrapper or nested editable which we + // should process in this session. + return false; + } + }, CKEDITOR.NODE_ELEMENT, true ); + }, null, null, 8 ); + + // Listen after dataProcessor.htmlFilter and ACF were applied + // so wrappers securing widgets' contents are removed after all filtering was done. + editor.on( 'toDataFormat', function( evt ) { + // Ignore some unmarked sessions. + if ( !evt.data.downcastingSessionId ) + return; + + var toBeDowncasted = downcastingSessions[ evt.data.downcastingSessionId ], + toBe, widget, widgetElement, retElement, editableElement, e; + + while ( ( toBe = toBeDowncasted.shift() ) ) { + widget = toBe.widget; + widgetElement = toBe.element; + retElement = widget._.downcastFn && widget._.downcastFn.call( widget, widgetElement ); + + // Replace nested editables' content with their output data. + for ( e in toBe.editables ) { + editableElement = toBe.editables[ e ]; + + delete editableElement.attributes.contenteditable; + editableElement.setHtml( widget.editables[ e ].getData() ); + } + + // Returned element always defaults to widgetElement. + if ( !retElement ) + retElement = widgetElement; + + toBe.wrapper.replaceWith( retElement ); + } + }, null, null, 13 ); + + + editor.on( 'contentDomUnload', function() { + widgetsRepo.destroyAll( true ); + } ); + } + + function setupWidgetsLifecycleStart( widgetsRepo ) { + var editor = widgetsRepo.editor, + processedWidgetOnly, + snapshotLoaded; + + // Listen after ACF (so data are filtered), + // but before dataProcessor.dataFilter was applied (so we can secure widgets' internals). + editor.on( 'toHtml', function( evt ) { + var upcastIterator = createUpcastIterator( widgetsRepo ), + toBeWrapped; + + evt.data.dataValue.forEach( upcastIterator.iterator, CKEDITOR.NODE_ELEMENT, true ); + + // Clean up and wrap all queued elements. + while ( ( toBeWrapped = upcastIterator.toBeWrapped.pop() ) ) { + cleanUpWidgetElement( toBeWrapped[ 0 ] ); + widgetsRepo.wrapElement( toBeWrapped[ 0 ], toBeWrapped[ 1 ] ); + } + + // Used to determine whether only widget was pasted. + if ( evt.data.protectedWhitespaces ) { + // Whitespaces are protected by wrapping content with spans. Take the middle node only. + processedWidgetOnly = evt.data.dataValue.children.length == 3 && + Widget.isParserWidgetWrapper( evt.data.dataValue.children[ 1 ] ); + } else { + processedWidgetOnly = evt.data.dataValue.children.length == 1 && + Widget.isParserWidgetWrapper( evt.data.dataValue.children[ 0 ] ); + } + }, null, null, 8 ); + + editor.on( 'dataReady', function() { + // Clean up all widgets loaded from snapshot. + if ( snapshotLoaded ) + cleanUpAllWidgetElements( widgetsRepo, editor.editable() ); + snapshotLoaded = 0; + + // Some widgets were destroyed on contentDomUnload, + // some on loadSnapshot, but that does not include + // e.g. setHtml on inline editor or widgets removed just + // before setting data. + widgetsRepo.destroyAll( true ); + widgetsRepo.initOnAll(); + } ); + + // Set flag so dataReady will know that additional + // cleanup is needed, because snapshot containing widgets was loaded. + editor.on( 'loadSnapshot', function( evt ) { + // Primitive but sufficient check which will prevent from executing + // heavier cleanUpAllWidgetElements if not needed. + if ( ( /data-cke-widget/ ).test( evt.data ) ) + snapshotLoaded = 1; + + widgetsRepo.destroyAll( true ); + }, null, null, 9 ); + + // Handle pasted single widget. + editor.on( 'paste', function( evt ) { + var data = evt.data; + + data.dataValue = data.dataValue.replace( pasteReplaceRegex, pasteReplaceFn ); + + // If drag'n'drop kind of paste into nested editable (data.range), selection is set AFTER + // data is pasted, which means editor has no chance to change activeFilter's context. + // As a result, pasted data is filtered with default editor's filter instead of NE's and + // funny things get inserted. Changing the filter by analysis of the paste range below (http://dev.ckeditor.com/ticket/13186). + if ( data.range ) { + // Check if pasting into nested editable. + var nestedEditable = Widget.getNestedEditable( editor.editable(), data.range.startContainer ); + + if ( nestedEditable ) { + // Retrieve the filter from NE's data and set it active before editor.insertHtml is done + // in clipboard plugin. + var filter = CKEDITOR.filter.instances[ nestedEditable.data( 'cke-filter' ) ]; + + if ( filter ) { + editor.setActiveFilter( filter ); + } + } + } + } ); + + // Listen with high priority to check widgets after data was inserted. + editor.on( 'afterInsertHtml', function( evt ) { + if ( evt.data.intoRange ) { + widgetsRepo.checkWidgets( { initOnlyNew: true } ); + } else { + editor.fire( 'lockSnapshot' ); + // Init only new for performance reason. + // Focus inited if only widget was processed. + widgetsRepo.checkWidgets( { initOnlyNew: true, focusInited: processedWidgetOnly } ); + + editor.fire( 'unlockSnapshot' ); + } + } ); + } + + // Helper for coordinating which widgets should be + // selected/deselected and which one should be focused/blurred. + function stateUpdater( widgetsRepo ) { + var currentlySelected = widgetsRepo.selected, + toBeSelected = [], + toBeDeselected = currentlySelected.slice( 0 ), + focused = null; + + return { + select: function( widget ) { + if ( CKEDITOR.tools.indexOf( currentlySelected, widget ) < 0 ) + toBeSelected.push( widget ); + + var index = CKEDITOR.tools.indexOf( toBeDeselected, widget ); + if ( index >= 0 ) + toBeDeselected.splice( index, 1 ); + + return this; + }, + + focus: function( widget ) { + focused = widget; + return this; + }, + + commit: function() { + var focusedChanged = widgetsRepo.focused !== focused, + widget, isDirty; + + widgetsRepo.editor.fire( 'lockSnapshot' ); + + if ( focusedChanged && ( widget = widgetsRepo.focused ) ) + blurWidget( widgetsRepo, widget ); + + while ( ( widget = toBeDeselected.pop() ) ) { + currentlySelected.splice( CKEDITOR.tools.indexOf( currentlySelected, widget ), 1 ); + // Widget could be destroyed in the meantime - e.g. data could be set. + if ( widget.isInited() ) { + isDirty = widget.editor.checkDirty(); + + widget.setSelected( false ); + + !isDirty && widget.editor.resetDirty(); + } + } + + if ( focusedChanged && focused ) { + isDirty = widgetsRepo.editor.checkDirty(); + + widgetsRepo.focused = focused; + widgetsRepo.fire( 'widgetFocused', { widget: focused } ); + focused.setFocused( true ); + + !isDirty && widgetsRepo.editor.resetDirty(); + } + + while ( ( widget = toBeSelected.pop() ) ) { + currentlySelected.push( widget ); + widget.setSelected( true ); + } + + widgetsRepo.editor.fire( 'unlockSnapshot' ); + } + }; + } + + + // + // WIDGET helpers --------------------------------------------------------- + // + + // LEFT, RIGHT, UP, DOWN, DEL, BACKSPACE - unblock default fake sel handlers. + var keystrokesNotBlockedByWidget = { 37: 1, 38: 1, 39: 1, 40: 1, 8: 1, 46: 1 }; + + // Applies or removes style's classes from widget. + // @param {CKEDITOR.style} style Custom widget style. + // @param {Boolean} apply Whether to apply or remove style. + function applyRemoveStyle( widget, style, apply ) { + var changed = 0, + classes = getStyleClasses( style ), + updatedClasses = widget.data.classes || {}, + cl; + + // Ee... Something is wrong with this style. + if ( !classes ) + return; + + // Clone, because we need to break reference. + updatedClasses = CKEDITOR.tools.clone( updatedClasses ); + + while ( ( cl = classes.pop() ) ) { + if ( apply ) { + if ( !updatedClasses[ cl ] ) + changed = updatedClasses[ cl ] = 1; + } else { + if ( updatedClasses[ cl ] ) { + delete updatedClasses[ cl ]; + changed = 1; + } + } + } + if ( changed ) + widget.setData( 'classes', updatedClasses ); + } + + function cancel( evt ) { + evt.cancel(); + } + + function copySingleWidget( widget, isCut ) { + var editor = widget.editor, + doc = editor.document; + + // We're still handling previous copy/cut. + // When keystroke is used to copy/cut this will also prevent + // conflict with copySingleWidget called again for native copy/cut event. + if ( doc.getById( 'cke_copybin' ) ) + return; + + // [IE] Use span for copybin and its container to avoid bug with expanding editable height by + // absolutely positioned element. + var copybinName = ( editor.blockless || CKEDITOR.env.ie ) ? 'span' : 'div', + copybin = doc.createElement( copybinName ), + copybinContainer = doc.createElement( copybinName ), + // IE8 always jumps to the end of document. + needsScrollHack = CKEDITOR.env.ie && CKEDITOR.env.version < 9; + + copybinContainer.setAttributes( { + id: 'cke_copybin', + 'data-cke-temp': '1' + } ); + + // Position copybin element outside current viewport. + copybin.setStyles( { + position: 'absolute', + width: '1px', + height: '1px', + overflow: 'hidden' + } ); + + copybin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-5000px' ); + + var range = editor.createRange(); + range.setStartBefore( widget.wrapper ); + range.setEndAfter( widget.wrapper ); + + copybin.setHtml( + '\u200b' + + editor.editable().getHtmlFromRange( range ).getHtml() + + '\u200b' ); + + // Save snapshot with the current state. + editor.fire( 'saveSnapshot' ); + + // Ignore copybin. + editor.fire( 'lockSnapshot' ); + + copybinContainer.append( copybin ); + editor.editable().append( copybinContainer ); + + var listener1 = editor.on( 'selectionChange', cancel, null, null, 0 ), + listener2 = widget.repository.on( 'checkSelection', cancel, null, null, 0 ); + + if ( needsScrollHack ) { + var docElement = doc.getDocumentElement().$, + scrollTop = docElement.scrollTop; + } + + // Once the clone of the widget is inside of copybin, select + // the entire contents. This selection will be copied by the + // native browser's clipboard system. + range = editor.createRange(); + range.selectNodeContents( copybin ); + range.select(); + + if ( needsScrollHack ) + docElement.scrollTop = scrollTop; + + setTimeout( function() { + // [IE] Focus widget before removing copybin to avoid scroll jump. + if ( !isCut ) + widget.focus(); + + copybinContainer.remove(); + + listener1.removeListener(); + listener2.removeListener(); + + editor.fire( 'unlockSnapshot' ); + + if ( isCut ) { + widget.repository.del( widget ); + editor.fire( 'saveSnapshot' ); + } + }, 100 ); // Use 100ms, so Chrome (@Mac) will be able to grab the content. + } + + // Extracts classes array from style instance. + function getStyleClasses( style ) { + var attrs = style.getDefinition().attributes, + classes = attrs && attrs[ 'class' ]; + + return classes ? classes.split( /\s+/ ) : null; + } + + // [IE] Force keeping focus because IE sometimes forgets to fire focus on main editable + // when blurring nested editable. + // @context widget + function onEditableBlur() { + var active = CKEDITOR.document.getActive(), + editor = this.editor, + editable = editor.editable(); + + // If focus stays within editor override blur and set currentActive because it should be + // automatically changed to editable on editable#focus but it is not fired. + if ( ( editable.isInline() ? editable : editor.document.getWindow().getFrame() ).equals( active ) ) + editor.focusManager.focus( editable ); + } + + // Force selectionChange when editable was focused. + // Similar to hack in selection.js#~620. + // @context widget + function onEditableFocus() { + // Gecko does not support 'DOMFocusIn' event on which we unlock selection + // in selection.js to prevent selection locking when entering nested editables. + if ( CKEDITOR.env.gecko ) + this.editor.unlockSelection(); + + // We don't need to force selectionCheck on Webkit, because on Webkit + // we do that on DOMFocusIn in selection.js. + if ( !CKEDITOR.env.webkit ) { + this.editor.forceNextSelectionCheck(); + this.editor.selectionChange( 1 ); + } + } + + // Setup listener on widget#data which will update (remove/add) classes + // by comparing newly set classes with the old ones. + function setupDataClassesListener( widget ) { + // Note: previousClasses and newClasses may be null! + // Tip: for ( cl in null ) is correct. + var previousClasses = null; + + widget.on( 'data', function() { + var newClasses = this.data.classes, + cl; + + // When setting new classes one need to remember + // that he must break reference. + if ( previousClasses == newClasses ) + return; + + for ( cl in previousClasses ) { + // Avoid removing and adding classes again. + if ( !( newClasses && newClasses[ cl ] ) ) + this.removeClass( cl ); + } + for ( cl in newClasses ) + this.addClass( cl ); + + previousClasses = newClasses; + } ); + } + + // Add a listener to data event that will set/change widget's label (http://dev.ckeditor.com/ticket/14539). + function setupA11yListener( widget ) { + // Note, the function gets executed in a context of widget instance. + function getLabelDefault() { + return this.editor.lang.widget.label.replace( /%1/, this.pathName || this.element.getName() ); + } + + // Setting a listener on data is enough, there's no need to perform it on widget initialization, as + // setupWidgetData fires this event anyway. + widget.on( 'data', function() { + // In some cases widget might get destroyed in an earlier data listener. For instance, image2 plugin, does + // so when changing its internal state. + if ( !widget.wrapper ) { + return; + } + + var label = this.getLabel ? this.getLabel() : getLabelDefault.call( this ); + + widget.wrapper.setAttribute( 'role', 'region' ); + widget.wrapper.setAttribute( 'aria-label', label ); + }, null, null, 9999 ); + } + + function setupDragHandler( widget ) { + if ( !widget.draggable ) + return; + + var editor = widget.editor, + // Use getLast to find wrapper's direct descendant (http://dev.ckeditor.com/ticket/12022). + container = widget.wrapper.getLast( Widget.isDomDragHandlerContainer ), + img; + + // Reuse drag handler if already exists (http://dev.ckeditor.com/ticket/11281). + if ( container ) + img = container.findOne( 'img' ); + else { + container = new CKEDITOR.dom.element( 'span', editor.document ); + container.setAttributes( { + 'class': 'cke_reset cke_widget_drag_handler_container', + // Split background and background-image for IE8 which will break on rgba(). + style: 'background:rgba(220,220,220,0.5);background-image:url(' + editor.plugins.widget.path + 'images/handle.png)' + } ); + + img = new CKEDITOR.dom.element( 'img', editor.document ); + img.setAttributes( { + 'class': 'cke_reset cke_widget_drag_handler', + 'data-cke-widget-drag-handler': '1', + src: CKEDITOR.tools.transparentImageData, + width: DRAG_HANDLER_SIZE, + title: editor.lang.widget.move, + height: DRAG_HANDLER_SIZE, + role: 'presentation' + } ); + widget.inline && img.setAttribute( 'draggable', 'true' ); + + container.append( img ); + widget.wrapper.append( container ); + } + + // Preventing page reload when dropped content on widget wrapper (http://dev.ckeditor.com/ticket/13015). + // Widget is not editable so by default drop on it isn't allowed what means that + // browser handles it (there's no editable#drop event). If there's no drop event we cannot block + // the drop, so page is reloaded. This listener enables drop on widget wrappers. + widget.wrapper.on( 'dragover', function( evt ) { + evt.data.preventDefault(); + } ); + + widget.wrapper.on( 'mouseenter', widget.updateDragHandlerPosition, widget ); + setTimeout( function() { + widget.on( 'data', widget.updateDragHandlerPosition, widget ); + }, 50 ); + + if ( !widget.inline ) { + img.on( 'mousedown', onBlockWidgetDrag, widget ); + + // On IE8 'dragstart' is propagated to editable, so editor#dragstart is fired twice on block widgets. + if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) { + img.on( 'dragstart', function( evt ) { + evt.data.preventDefault( true ); + } ); + } + } + + widget.dragHandlerContainer = container; + } + + function onBlockWidgetDrag( evt ) { + var finder = this.repository.finder, + locator = this.repository.locator, + liner = this.repository.liner, + editor = this.editor, + editable = editor.editable(), + listeners = [], + sorted = [], + locations, + y; + + // Mark dragged widget for repository#finder. + this.repository._.draggedWidget = this; + + // Harvest all possible relations and display some closest. + var relations = finder.greedySearch(), + + buffer = CKEDITOR.tools.eventsBuffer( 50, function() { + locations = locator.locate( relations ); + + // There's only a single line displayed for D&D. + sorted = locator.sort( y, 1 ); + + if ( sorted.length ) { + liner.prepare( relations, locations ); + liner.placeLine( sorted[ 0 ] ); + liner.cleanup(); + } + } ); + + // Let's have the "dragging cursor" over entire editable. + editable.addClass( 'cke_widget_dragging' ); + + // Cache mouse position so it is re-used in events buffer. + listeners.push( editable.on( 'mousemove', function( evt ) { + y = evt.data.$.clientY; + buffer.input(); + } ) ); + + // Fire drag start as it happens during the native D&D. + editor.fire( 'dragstart', { target: evt.sender } ); + + function onMouseUp() { + var l; + + buffer.reset(); + + // Stop observing events. + while ( ( l = listeners.pop() ) ) + l.removeListener(); + + onBlockWidgetDrop.call( this, sorted, evt.sender ); + } + + // Mouseup means "drop". This is when the widget is being detached + // from DOM and placed at range determined by the line (location). + listeners.push( editor.document.once( 'mouseup', onMouseUp, this ) ); + + // Prevent calling 'onBlockWidgetDrop' twice in the inline editor. + // `removeListener` does not work if it is called at the same time event is fired. + if ( !editable.isInline() ) { + // Mouseup may occur when user hovers the line, which belongs to + // the outer document. This is, of course, a valid listener too. + listeners.push( CKEDITOR.document.once( 'mouseup', onMouseUp, this ) ); + } + } + + function onBlockWidgetDrop( sorted, dragTarget ) { + var finder = this.repository.finder, + liner = this.repository.liner, + editor = this.editor, + editable = this.editor.editable(); + + if ( !CKEDITOR.tools.isEmpty( liner.visible ) ) { + // Retrieve range for the closest location. + var dropRange = finder.getRange( sorted[ 0 ] ); + + // Focus widget (it could lost focus after mousedown+mouseup) + // and save this state as the one where we want to be taken back when undoing. + this.focus(); + + // Drag range will be set in the drop listener. + editor.fire( 'drop', { + dropRange: dropRange, + target: dropRange.startContainer + } ); + } + + // Clean-up custom cursor for editable. + editable.removeClass( 'cke_widget_dragging' ); + + // Clean-up all remaining lines. + liner.hideVisible(); + + // Clean-up drag & drop. + editor.fire( 'dragend', { target: dragTarget } ); + } + + function setupEditables( widget ) { + var editableName, + editableDef, + definedEditables = widget.editables; + + widget.editables = {}; + + if ( !widget.editables ) + return; + + for ( editableName in definedEditables ) { + editableDef = definedEditables[ editableName ]; + widget.initEditable( editableName, typeof editableDef == 'string' ? { selector: editableDef } : editableDef ); + } + } + + function setupMask( widget ) { + if ( !widget.mask ) + return; + + // Reuse mask if already exists (http://dev.ckeditor.com/ticket/11281). + var img = widget.wrapper.findOne( '.cke_widget_mask' ); + + if ( !img ) { + img = new CKEDITOR.dom.element( 'img', widget.editor.document ); + img.setAttributes( { + src: CKEDITOR.tools.transparentImageData, + 'class': 'cke_reset cke_widget_mask' + } ); + widget.wrapper.append( img ); + } + + widget.mask = img; + } + + // Replace parts object containing: + // partName => selector pairs + // with: + // partName => element pairs + function setupParts( widget ) { + if ( widget.parts ) { + var parts = {}, + el, partName; + + for ( partName in widget.parts ) { + el = widget.wrapper.findOne( widget.parts[ partName ] ); + parts[ partName ] = el; + } + widget.parts = parts; + } + } + + function setupWidget( widget, widgetDef ) { + setupWrapper( widget ); + setupParts( widget ); + setupEditables( widget ); + setupMask( widget ); + setupDragHandler( widget ); + setupDataClassesListener( widget ); + setupA11yListener( widget ); + + // http://dev.ckeditor.com/ticket/11145: [IE8] Non-editable content of widget is draggable. + if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) { + widget.wrapper.on( 'dragstart', function( evt ) { + var target = evt.data.getTarget(); + + // Allow text dragging inside nested editables or dragging inline widget's drag handler. + if ( !Widget.getNestedEditable( widget, target ) && !( widget.inline && Widget.isDomDragHandler( target ) ) ) + evt.data.preventDefault(); + } ); + } + + widget.wrapper.removeClass( 'cke_widget_new' ); + widget.element.addClass( 'cke_widget_element' ); + + widget.on( 'key', function( evt ) { + var keyCode = evt.data.keyCode; + + // ENTER. + if ( keyCode == 13 ) { + widget.edit(); + // CTRL+C or CTRL+X. + } else if ( keyCode == CKEDITOR.CTRL + 67 || keyCode == CKEDITOR.CTRL + 88 ) { + copySingleWidget( widget, keyCode == CKEDITOR.CTRL + 88 ); + return; // Do not preventDefault. + } else if ( keyCode in keystrokesNotBlockedByWidget || ( CKEDITOR.CTRL & keyCode ) || ( CKEDITOR.ALT & keyCode ) ) { + // Pass chosen keystrokes to other plugins or default fake sel handlers. + // Pass all CTRL/ALT keystrokes. + return; + } + + return false; + }, null, null, 999 ); + // Listen with high priority so it's possible + // to overwrite this callback. + + widget.on( 'doubleclick', function( evt ) { + if ( widget.edit() ) { + // We have to cancel event if edit method opens a dialog, otherwise + // link plugin may open extra dialog (http://dev.ckeditor.com/ticket/12140). + evt.cancel(); + } + } ); + + if ( widgetDef.data ) + widget.on( 'data', widgetDef.data ); + + if ( widgetDef.edit ) + widget.on( 'edit', widgetDef.edit ); + } + + function setupWidgetData( widget, startupData ) { + var widgetDataAttr = widget.element.data( 'cke-widget-data' ); + + if ( widgetDataAttr ) + widget.setData( JSON.parse( decodeURIComponent( widgetDataAttr ) ) ); + if ( startupData ) + widget.setData( startupData ); + + // Populate classes if they are not preset. + if ( !widget.data.classes ) + widget.setData( 'classes', widget.getClasses() ); + + // Unblock data and... + widget.dataReady = true; + + // Write data to element because this was blocked when data wasn't ready. + writeDataToElement( widget ); + + // Fire data event first time, because this was blocked when data wasn't ready. + widget.fire( 'data', widget.data ); + } + + function setupWrapper( widget ) { + // Retrieve widget wrapper. Assign an id to it. + var wrapper = widget.wrapper = widget.element.getParent(); + wrapper.setAttribute( 'data-cke-widget-id', widget.id ); + } + + function writeDataToElement( widget ) { + widget.element.data( 'cke-widget-data', encodeURIComponent( JSON.stringify( widget.data ) ) ); + } + + // + // WIDGET STYLE HANDLER --------------------------------------------------- + // + + ( function() { + // Styles categorized by group. It is used to prevent applying styles for the same group being used together. + var styleGroups = {}; + + /** + * The class representing a widget style. It is an {@link CKEDITOR#STYLE_OBJECT object} like + * the styles handler for widgets. + * + * **Note:** This custom style handler does not support all methods of the {@link CKEDITOR.style} class. + * Not supported methods: {@link #applyToRange}, {@link #removeFromRange}, {@link #applyToObject}. + * + * @since 4.4 + * @class CKEDITOR.style.customHandlers.widget + * @extends CKEDITOR.style + */ + CKEDITOR.style.addCustomHandler( { + type: 'widget', + + setup: function( styleDefinition ) { + /** + * The name of widget to which this style can be applied. + * It is extracted from style definition's `widget` property. + * + * @property {String} widget + */ + this.widget = styleDefinition.widget; + + /** + * An array of groups that this style belongs to. + * Styles assigned to the same group cannot be combined. + * + * @since 4.6.2 + * @property {Array} group + */ + this.group = typeof styleDefinition.group == 'string' ? [ styleDefinition.group ] : styleDefinition.group; + + // Store style categorized by its group. + // It is used to prevent enabling two styles from same group. + if ( this.group ) { + saveStyleGroup( this ); + } + }, + + apply: function( editor ) { + var widget; + + // Before CKEditor 4.4 wasn't a required argument, so we need to + // handle a case when it wasn't provided. + if ( !( editor instanceof CKEDITOR.editor ) ) + return; + + // Theoretically we could bypass checkApplicable, get widget from + // widgets.focused and check its name, what would be faster, but then + // this custom style would work differently than the default style + // which checks if it's applicable before applying or removing itself. + if ( this.checkApplicable( editor.elementPath(), editor ) ) { + widget = editor.widgets.focused; + + // Remove other styles from the same group. + if ( this.group ) { + this.removeStylesFromSameGroup( editor ); + } + + widget.applyStyle( this ); + } + }, + + remove: function( editor ) { + // Before CKEditor 4.4 wasn't a required argument, so we need to + // handle a case when it wasn't provided. + if ( !( editor instanceof CKEDITOR.editor ) ) + return; + + if ( this.checkApplicable( editor.elementPath(), editor ) ) + editor.widgets.focused.removeStyle( this ); + }, + + /** + * Removes all styles that belong to the same group as this style. This method will neither add nor remove + * the current style. + * Returns `true` if any style was removed, otherwise returns `false`. + * + * @since 4.6.2 + * @param {CKEDITOR.editor} editor + * @returns {Boolean} + */ + removeStylesFromSameGroup: function( editor ) { + var stylesFromSameGroup, + path, + removed = false; + + // Before CKEditor 4.4 wasn't a required argument, so we need to + // handle a case when it wasn't provided. + if ( !( editor instanceof CKEDITOR.editor ) ) + return false; + + path = editor.elementPath(); + if ( this.checkApplicable( path, editor ) ) { + // Iterate over each group. + for ( var i = 0, l = this.group.length; i < l; i++ ) { + stylesFromSameGroup = styleGroups[ this.widget ][ this.group[ i ] ]; + // Iterate over each style from group. + for ( var j = 0; j < stylesFromSameGroup.length; j++ ) { + if ( stylesFromSameGroup[ j ] !== this && stylesFromSameGroup[ j ].checkActive( path, editor ) ) { + editor.widgets.focused.removeStyle( stylesFromSameGroup[ j ] ); + removed = true; + } + } + } + } + + return removed; + }, + + checkActive: function( elementPath, editor ) { + return this.checkElementMatch( elementPath.lastElement, 0, editor ); + }, + + checkApplicable: function( elementPath, editor ) { + // Before CKEditor 4.4 wasn't a required argument, so we need to + // handle a case when it wasn't provided. + if ( !( editor instanceof CKEDITOR.editor ) ) + return false; + + return this.checkElement( elementPath.lastElement ); + }, + + checkElementMatch: checkElementMatch, + + checkElementRemovable: checkElementMatch, + + /** + * Checks if an element is a {@link CKEDITOR.plugins.widget#wrapper wrapper} of a + * widget whose name matches the {@link #widget widget name} specified in the style definition. + * + * @param {CKEDITOR.dom.element} element + * @returns {Boolean} + */ + checkElement: function( element ) { + if ( !Widget.isDomWidgetWrapper( element ) ) + return false; + + var widgetElement = element.getFirst( Widget.isDomWidgetElement ); + return widgetElement && widgetElement.data( 'widget' ) == this.widget; + }, + + buildPreview: function( label ) { + return label || this._.definition.name; + }, + + /** + * Returns allowed content rules which should be registered for this style. + * Uses widget's {@link CKEDITOR.plugins.widget.definition#styleableElements} to make a rule + * allowing classes on specified elements or use widget's + * {@link CKEDITOR.plugins.widget.definition#styleToAllowedContentRules} method to transform a style + * into allowed content rules. + * + * @param {CKEDITOR.editor} The editor instance. + * @returns {CKEDITOR.filter.allowedContentRules} + */ + toAllowedContentRules: function( editor ) { + if ( !editor ) + return null; + + var widgetDef = editor.widgets.registered[ this.widget ], + classes, + rule = {}; + + if ( !widgetDef ) + return null; + + if ( widgetDef.styleableElements ) { + classes = this.getClassesArray(); + if ( !classes ) + return null; + + rule[ widgetDef.styleableElements ] = { + classes: classes, + propertiesOnly: true + }; + return rule; + } + if ( widgetDef.styleToAllowedContentRules ) + return widgetDef.styleToAllowedContentRules( this ); + return null; + }, + + /** + * Returns classes defined in the style in form of an array. + * + * @returns {String[]} + */ + getClassesArray: function() { + var classes = this._.definition.attributes && this._.definition.attributes[ 'class' ]; + + return classes ? CKEDITOR.tools.trim( classes ).split( /\s+/ ) : null; + }, + + /** + * Not implemented. + * + * @method applyToRange + */ + applyToRange: notImplemented, + + /** + * Not implemented. + * + * @method removeFromRange + */ + removeFromRange: notImplemented, + + /** + * Not implemented. + * + * @method applyToObject + */ + applyToObject: notImplemented + } ); + + function notImplemented() {} + + // @context style + function checkElementMatch( element, fullMatch, editor ) { + // Before CKEditor 4.4 wasn't a required argument, so we need to + // handle a case when it wasn't provided. + if ( !editor ) + return false; + + if ( !this.checkElement( element ) ) + return false; + + var widget = editor.widgets.getByElement( element, true ); + return widget && widget.checkStyleActive( this ); + } + + // Save and categorize style by its group. + function saveStyleGroup( style ) { + var widgetName = style.widget, + group; + + if ( !styleGroups[ widgetName ] ) { + styleGroups[ widgetName ] = {}; + } + + for ( var i = 0, l = style.group.length; i < l; i++ ) { + group = style.group[ i ]; + if ( !styleGroups[ widgetName ][ group ] ) { + styleGroups[ widgetName ][ group ] = []; + } + + styleGroups[ widgetName ][ group ].push( style ); + } + } + + } )(); + + // + // EXPOSE PUBLIC API ------------------------------------------------------ + // + + CKEDITOR.plugins.widget = Widget; + Widget.repository = Repository; + Widget.nestedEditable = NestedEditable; +} )(); + +/** + * An event fired when a widget definition is registered by the {@link CKEDITOR.plugins.widget.repository#add} method. + * It is possible to modify the definition being registered. + * + * @event widgetDefinition + * @member CKEDITOR.editor + * @param {CKEDITOR.plugins.widget.definition} data Widget definition. + */ + +/** + * This is an abstract class that describes the definition of a widget. + * It is a type of {@link CKEDITOR.plugins.widget.repository#add} method's second argument. + * + * Widget instances inherit from registered widget definitions, although not in a prototypal way. + * They are simply extended with corresponding widget definitions. Note that not all properties of + * the widget definition become properties of a widget. Some, like {@link #data} or {@link #edit}, become + * widget's events listeners. + * + * @class CKEDITOR.plugins.widget.definition + * @abstract + * @mixins CKEDITOR.feature + */ + +/** + * Widget definition name. It is automatically set when the definition is + * {@link CKEDITOR.plugins.widget.repository#add registered}. + * + * @property {String} name + */ + +/** + * The method executed while initializing a widget, after a widget instance + * is created, but before it is ready. It is executed before the first + * {@link CKEDITOR.plugins.widget#event-data} is fired so it is common to + * use the `init` method to populate widget data with information loaded from + * the DOM, like for exmaple: + * + * init: function() { + * this.setData( 'width', this.element.getStyle( 'width' ) ); + * + * if ( this.parts.caption.getStyle( 'display' ) != 'none' ) + * this.setData( 'showCaption', true ); + * } + * + * @property {Function} init + */ + +/** + * The function to be used to upcast an element to this widget or a + * comma-separated list of upcast methods from the {@link #upcasts} object. + * + * The upcast function **is not** executed in the widget context (because the widget + * does not exist yet) and two arguments are passed: + * + * * `element` ({@link CKEDITOR.htmlParser.element}) – The element to be checked. + * * `data` (`Object`) – The object which can be extended with data which will then be passed to the widget. + * + * An element will be upcasted if a function returned `true` or an instance of + * a {@link CKEDITOR.htmlParser.element} if upcasting meant DOM structure changes + * (in this case the widget will be initialized on the returned element). + * + * @property {String/Function} upcast + */ + +/** + * The object containing functions which can be used to upcast this widget. + * Only those pointed by the {@link #upcast} property will be used. + * + * In most cases it is appropriate to use {@link #upcast} directly, + * because majority of widgets need just one method. + * However, in some cases the widget author may want to expose more than one variant + * and then this property may be used. + * + * upcasts: { + * // This function may upcast only figure elements. + * figure: function() { + * // ... + * }, + * // This function may upcast only image elements. + * image: function() { + * // ... + * }, + * // More variants... + * } + * + * // Then, widget user may choose which upcast methods will be enabled. + * editor.on( 'widgetDefinition', function( evt ) { + * if ( evt.data.name == 'image' ) + * evt.data.upcast = 'figure,image'; // Use both methods. + * } ); + * + * @property {Object} upcasts + */ + +/** + * The {@link #upcast} method(s) priority. The upcast with a lower priority number will be called before + * the one with a higher number. The default priority is `10`. + * + * @since 4.5 + * @property {Number} [upcastPriority=10] + */ + +/** + * The function to be used to downcast this widget or + * a name of the downcast option from the {@link #downcasts} object. + * + * The downcast funciton will be executed in the {@link CKEDITOR.plugins.widget} context + * and with `widgetElement` ({@link CKEDITOR.htmlParser.element}) argument which is + * the widget's main element. + * + * The function may return an instance of the {@link CKEDITOR.htmlParser.node} class if the widget + * needs to be downcasted to a different node than the widget's main element. + * + * @property {String/Function} downcast + */ + +/** + * The object containing functions which can be used to downcast this widget. + * Only the one pointed by the {@link #downcast} property will be used. + * + * In most cases it is appropriate to use {@link #downcast} directly, + * because majority of widgets have just one variant of downcasting (or none at all). + * However, in some cases the widget author may want to expose more than one variant + * and then this property may be used. + * + * downcasts: { + * // This downcast may transform the widget into the figure element. + * figure: function() { + * // ... + * }, + * // This downcast may transform the widget into the image element with data-* attributes. + * image: function() { + * // ... + * } + * } + * + * // Then, the widget user may choose one of the downcast options when setting up his editor. + * editor.on( 'widgetDefinition', function( evt ) { + * if ( evt.data.name == 'image' ) + * evt.data.downcast = 'figure'; + * } ); + * + * @property downcasts + */ + +/** + * If set, it will be added as the {@link CKEDITOR.plugins.widget#event-edit} event listener. + * This means that it will be executed when a widget is being edited. + * See the {@link CKEDITOR.plugins.widget#method-edit} method. + * + * @property {Function} edit + */ + +/** + * If set, it will be added as the {@link CKEDITOR.plugins.widget#event-data} event listener. + * This means that it will be executed every time the {@link CKEDITOR.plugins.widget#property-data widget data} changes. + * + * @property {Function} data + */ + +/** + * The method to be executed when the widget's command is executed in order to insert a new widget + * (widget of this type is not focused). If not defined, then the default action will be + * performed which means that: + * + * * An instance of the widget will be created in a detached {@link CKEDITOR.dom.documentFragment document fragment}, + * * The {@link CKEDITOR.plugins.widget#method-edit} method will be called to trigger widget editing, + * * The widget element will be inserted into DOM. + * + * @property {Function} insert + */ + +/** + * The name of a dialog window which will be opened on {@link CKEDITOR.plugins.widget#method-edit}. + * If not defined, then the {@link CKEDITOR.plugins.widget#method-edit} method will not perform any action and + * widget's command will insert a new widget without opening a dialog window first. + * + * @property {String} dialog + */ + +/** + * The template which will be used to create a new widget element (when the widget's command is executed). + * This string is populated with {@link #defaults default values} by using the {@link CKEDITOR.template} format. + * Therefore it has to be a valid {@link CKEDITOR.template} argument. + * + * @property {String} template + */ + +/** + * The data object which will be used to populate the data of a newly created widget. + * See {@link CKEDITOR.plugins.widget#property-data}. + * + * defaults: { + * showCaption: true, + * align: 'none' + * } + * + * @property defaults + */ + +/** + * An object containing definitions of widget components (part name => CSS selector). + * + * parts: { + * image: 'img', + * caption: 'div.caption' + * } + * + * @property parts + */ + +/** + * An object containing definitions of nested editables (editable name => {@link CKEDITOR.plugins.widget.nestedEditable.definition}). + * Note that editables *have to* be defined in the same order as they are in DOM / {@link CKEDITOR.plugins.widget.definition#template template}. + * Otherwise errors will occur when nesting widgets inside each other. + * + * editables: { + * header: 'h1', + * content: { + * selector: 'div.content', + * allowedContent: 'p strong em; a[!href]' + * } + * } + * + * @property editables + */ + +/** + * The function used to obtain an accessibility label for the widget. It might be used to make + * the widget labels as precise as possible, since it has access to the widget instance. + * + * If not specified, the default implementation will use the {@link #pathName} or the main + * {@link CKEDITOR.plugins.widget#element element} tag name. + * + * @property {Function} getLabel + */ + +/** + * The widget name displayed in the elements path. + * + * @property {String} pathName + */ + +/** + * If set to `true`, the widget's element will be covered with a transparent mask. + * This will prevent its content from being clickable, which matters in case + * of special elements like embedded Flash or iframes that generate a separate "context". + * + * @property {Boolean} mask + */ + +/** + * If set to `true/false`, it will force the widget to be either an inline or a block widget. + * If not set, the widget type will be determined from the widget element. + * + * Widget type influences whether a block (`div`) or an inline (`span`) element is used + * for the wrapper. + * + * @property {Boolean} inline + */ + +/** + * The label for the widget toolbar button. + * + * editor.widgets.add( 'simplebox', { + * button: 'Create a simple box' + * } ); + * + * editor.widgets.add( 'simplebox', { + * button: editor.lang.simplebox.title + * } ); + * + * @property {String} button + */ + +/** + * Whether widget should be draggable. Defaults to `true`. + * If set to `false` drag handler will not be displayed when hovering widget. + * + * @property {Boolean} draggable + */ + +/** + * Names of element(s) (separated by spaces) for which the {@link CKEDITOR.filter} should allow classes + * defined in the widget styles. For example if your widget is upcasted from a simple `
    ` + * element, then in order to make it styleable you can set: + * + * editor.widgets.add( 'customWidget', { + * upcast: function( element ) { + * return element.name == 'div'; + * }, + * + * // ... + * + * styleableElements: 'div' + * } ); + * + * Then, when the following style is defined: + * + * { + * name: 'Thick border', type: 'widget', widget: 'customWidget', + * attributes: { 'class': 'thickBorder' } + * } + * + * a rule allowing the `thickBorder` class for `div` elements will be registered in the {@link CKEDITOR.filter}. + * + * If you need to have more freedom when transforming widget style to allowed content rules, + * you can use the {@link #styleToAllowedContentRules} callback. + * + * @since 4.4 + * @property {String} styleableElements + */ + +/** + * Function transforming custom widget's {@link CKEDITOR.style} instance into + * {@link CKEDITOR.filter.allowedContentRules}. It may be used when a static + * {@link #styleableElements} property is not enough to inform the {@link CKEDITOR.filter} + * what HTML features should be enabled when allowing the given style. + * + * In most cases, when style's classes just have to be added to element name(s) used by + * the widget element, it is recommended to use simpler {@link #styleableElements} property. + * + * In order to get parsed classes from the style definition you can use + * {@link CKEDITOR.style.customHandlers.widget#getClassesArray}. + * + * For example, if you want to use the [object format of allowed content rules](#!/guide/dev_allowed_content_rules-section-object-format), + * to specify `match` validator, your implementation could look like this: + * + * editor.widgets.add( 'customWidget', { + * // ... + * + * styleToAllowedContentRules: funciton( style ) { + * // Retrieve classes defined in the style. + * var classes = style.getClassesArray(); + * + * // Do something crazy - for example return allowed content rules in object format, + * // with custom match property and propertiesOnly flag. + * return { + * h1: { + * match: isWidgetElement, + * propertiesOnly: true, + * classes: classes + * } + * }; + * } + * } ); + * + * @since 4.4 + * @property {Function} styleToAllowedContentRules + * @param {CKEDITOR.style.customHandlers.widget} style The style to be transformed. + * @returns {CKEDITOR.filter.allowedContentRules} + */ + +/** + * This is an abstract class that describes the definition of a widget's nested editable. + * It is a type of values in the {@link CKEDITOR.plugins.widget.definition#editables} object. + * + * In the simplest case the definition is a string which is a CSS selector used to + * find an element that will become a nested editable inside the widget. Note that + * the widget element can be a nested editable, too. + * + * In the more advanced case a definition is an object with a required `selector` property. + * + * editables: { + * header: 'h1', + * content: { + * selector: 'div.content', + * allowedContent: 'p strong em; a[!href]' + * } + * } + * + * @class CKEDITOR.plugins.widget.nestedEditable.definition + * @abstract + */ + +/** + * The CSS selector used to find an element which will become a nested editable. + * + * @property {String} selector + */ + +/** + * The [Advanced Content Filter](#!/guide/dev_advanced_content_filter) rules + * which will be used to limit the content allowed in this nested editable. + * This option is similar to {@link CKEDITOR.config#allowedContent} and one can + * use it to limit the editor features available in the nested editable. + * + * If no `allowedContent` is specified, the editable will use the editor default + * {@link CKEDITOR.editor#filter}. + * + * @property {CKEDITOR.filter.allowedContentRules} allowedContent + */ + +/** + * The [Advanced Content Filter](#!/guide/dev_advanced_content_filter) rules + * which will be used to blacklist elements within this nested editable. + * This option is similar to {@link CKEDITOR.config#disallowedContent}. + * + * Note that `disallowedContent` work on top of the definition's {@link #allowedContent}. + * + * @since 4.7.3 + * @property {CKEDITOR.filter.disallowedContentRules} disallowedContent + */ + +/** + * Nested editable name displayed in the elements path. + * + * @property {String} pathName + */ diff --git a/sources/plugins/widgetselection/plugin.js b/sources/plugins/widgetselection/plugin.js new file mode 100644 index 0000000..6c788cb --- /dev/null +++ b/sources/plugins/widgetselection/plugin.js @@ -0,0 +1,366 @@ +/** + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview A plugin created to handle ticket http://dev.ckeditor.com/ticket/11064. While the issue is caused by native WebKit/Blink behaviour, + * this plugin can be easily detached or modified when the issue is fixed in the browsers without changing the core. + * When Ctrl/Cmd + A is pressed to select all content it does not work due to a bug in + * Webkit/Blink if a non-editable element is at the beginning or the end of the content. + */ + +( function() { + 'use strict'; + + CKEDITOR.plugins.add( 'widgetselection', { + + init: function( editor ) { + if ( CKEDITOR.env.webkit ) { + var widgetselection = CKEDITOR.plugins.widgetselection; + + editor.on( 'contentDom', function( evt ) { + + var editor = evt.editor, + doc = editor.document, + editable = editor.editable(); + + editable.attachListener( doc, 'keydown', function( evt ) { + var data = evt.data.$; + + // Ctrl/Cmd + A + if ( evt.data.getKey() == 65 && ( CKEDITOR.env.mac && data.metaKey || !CKEDITOR.env.mac && data.ctrlKey ) ) { + + // Defer the call so the selection is already changed by the pressed keys. + CKEDITOR.tools.setTimeout( function() { + + // Manage filler elements on keydown. If there is no need + // to add fillers, we need to check and clean previously used once. + if ( !widgetselection.addFillers( editable ) ) { + widgetselection.removeFillers( editable ); + } + }, 0 ); + } + }, null, null, -1 ); + + // Check and clean previously used fillers. + editor.on( 'selectionCheck', function( evt ) { + widgetselection.removeFillers( evt.editor.editable() ); + } ); + + // Remove fillers on paste before data gets inserted into editor. + editor.on( 'paste', function( evt ) { + evt.data.dataValue = widgetselection.cleanPasteData( evt.data.dataValue ); + } ); + + if ( 'selectall' in editor.plugins ) { + widgetselection.addSelectAllIntegration( editor ); + } + } ); + } + } + } ); + + /** + * A set of helper methods for the Widget Selection plugin. + * + * @property widgetselection + * @member CKEDITOR.plugins + * @since 4.6.1 + */ + CKEDITOR.plugins.widgetselection = { + + /** + * The start filler element reference. + * + * @property {CKEDITOR.dom.element} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + startFiller: null, + + /** + * The end filler element reference. + * + * @property {CKEDITOR.dom.element} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + endFiller: null, + + /** + * An attribute which identifies the filler element. + * + * @property {String} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + fillerAttribute: 'data-cke-filler-webkit', + + /** + * The default content of the filler element. Note: The filler needs to have `visible` content. + * Unprintable elements or empty content do not help as a workaround. + * + * @property {String} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + fillerContent: ' ', + + /** + * Tag name which is used to create fillers. + * + * @property {String} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + fillerTagName: 'div', + + /** + * Adds a filler before or after a non-editable element at the beginning or the end of the `editable`. + * + * @param {CKEDITOR.editable} editable + * @returns {Boolean} + * @member CKEDITOR.plugins.widgetselection + */ + addFillers: function( editable ) { + var editor = editable.editor; + + // Whole content should be selected, if not fix the selection manually. + if ( !this.isWholeContentSelected( editable ) && editable.getChildCount() > 0 ) { + + var firstChild = editable.getFirst( filterTempElements ), + lastChild = editable.getLast( filterTempElements ); + + // Check if first element is editable. If not prepend with filler. + if ( firstChild && firstChild.type == CKEDITOR.NODE_ELEMENT && !firstChild.isEditable() ) { + this.startFiller = this.createFiller(); + editable.append( this.startFiller, 1 ); + } + + // Check if last element is editable. If not append filler. + if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && !lastChild.isEditable() ) { + this.endFiller = this.createFiller( true ); + editable.append( this.endFiller, 0 ); + } + + // Reselect whole content after any filler was added. + if ( this.hasFiller( editable ) ) { + var rangeAll = editor.createRange(); + rangeAll.selectNodeContents( editable ); + rangeAll.select(); + return true; + } + } + return false; + }, + + /** + * Removes filler elements or updates their references. + * + * It will **not remove** filler elements if the whole content is selected, as it would break the + * selection. + * + * @param {CKEDITOR.editable} editable + * @member CKEDITOR.plugins.widgetselection + */ + removeFillers: function( editable ) { + // If startFiller or endFiller exists and not entire content is selected it means the selection + // just changed from selected all. We need to remove fillers and set proper selection/content. + if ( this.hasFiller( editable ) && !this.isWholeContentSelected( editable ) ) { + + var startFillerContent = editable.findOne( this.fillerTagName + '[' + this.fillerAttribute + '=start]' ), + endFillerContent = editable.findOne( this.fillerTagName + '[' + this.fillerAttribute + '=end]' ); + + if ( this.startFiller && startFillerContent && this.startFiller.equals( startFillerContent ) ) { + this.removeFiller( this.startFiller, editable ); + } else { + // The start filler is still present but it is a different element than previous one. It means the + // undo recreating entirely selected content was performed. We need to update filler reference. + this.startFiller = startFillerContent; + } + + if ( this.endFiller && endFillerContent && this.endFiller.equals( endFillerContent ) ) { + this.removeFiller( this.endFiller, editable ); + } else { + // Same as with start filler. + this.endFiller = endFillerContent; + } + } + }, + + /** + * Removes fillers from the paste data. + * + * @param {String} data + * @returns {String} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + cleanPasteData: function( data ) { + if ( data && data.length ) { + data = data + .replace( this.createFillerRegex(), '' ) + .replace( this.createFillerRegex( true ), '' ); + } + return data; + }, + + /** + * Checks if the entire content of the given editable is selected. + * + * @param {CKEDITOR.editable} editable + * @returns {Boolean} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + isWholeContentSelected: function( editable ) { + + var range = editable.editor.getSelection().getRanges()[ 0 ]; + if ( range ) { + + if ( range && range.collapsed ) { + return false; + + } else { + var rangeClone = range.clone(); + rangeClone.enlarge( CKEDITOR.ENLARGE_ELEMENT ); + + return !!( rangeClone && editable && rangeClone.startContainer && rangeClone.endContainer && + rangeClone.startOffset === 0 && rangeClone.endOffset === editable.getChildCount() && + rangeClone.startContainer.equals( editable ) && rangeClone.endContainer.equals( editable ) ); + } + } + return false; + }, + + /** + * Checks if there is any filler element in the given editable. + * + * @param {CKEDITOR.editable} editable + * @returns {Boolean} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + hasFiller: function( editable ) { + return editable.find( this.fillerTagName + '[' + this.fillerAttribute + ']' ).count() > 0; + }, + + /** + * Creates a filler element. + * + * @param {Boolean} [onEnd] If filler will be placed on end or beginning of the content. + * @returns {CKEDITOR.dom.element} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + createFiller: function( onEnd ) { + var filler = new CKEDITOR.dom.element( this.fillerTagName ); + filler.setHtml( this.fillerContent ); + filler.setAttribute( this.fillerAttribute, onEnd ? 'end' : 'start' ); + filler.setAttribute( 'data-cke-temp', 1 ); + filler.setStyles( { + display: 'block', + width: 0, + height: 0, + padding: 0, + border: 0, + margin: 0, + position: 'absolute', + top: 0, + left: '-9999px', + opacity: 0, + overflow: 'hidden' + } ); + + return filler; + }, + + /** + * Removes the specific filler element from the given editable. If the filler contains any content (typed or pasted), + * it replaces the current editable content. If not, the caret is placed before the first or after the last editable + * element (depends if the filler was at the beginning or the end). + * + * @param {CKEDITOR.dom.element} filler + * @param {CKEDITOR.editable} editable + * @member CKEDITOR.plugins.widgetselection + * @private + */ + removeFiller: function( filler, editable ) { + if ( filler ) { + var editor = editable.editor, + currentRange = editable.editor.getSelection().getRanges()[ 0 ], + currentPath = currentRange.startPath(), + range = editor.createRange(), + insertedHtml, + fillerOnStart, + manuallyHandleCaret; + + if ( currentPath.contains( filler ) ) { + insertedHtml = filler.getHtml(); + manuallyHandleCaret = true; + } + + fillerOnStart = filler.getAttribute( this.fillerAttribute ) == 'start'; + filler.remove(); + filler = null; + + if ( insertedHtml && insertedHtml.length > 0 && insertedHtml != this.fillerContent ) { + editable.insertHtmlIntoRange( insertedHtml, editor.getSelection().getRanges()[ 0 ] ); + range.setStartAt( editable.getChild( editable.getChildCount() - 1 ), CKEDITOR.POSITION_BEFORE_END ); + editor.getSelection().selectRanges( [ range ] ); + + } else if ( manuallyHandleCaret ) { + if ( fillerOnStart ) { + range.setStartAt( editable.getFirst().getNext(), CKEDITOR.POSITION_AFTER_START ); + } else { + range.setEndAt( editable.getLast().getPrevious(), CKEDITOR.POSITION_BEFORE_END ); + } + editable.editor.getSelection().selectRanges( [ range ] ); + } + } + }, + + /** + * Creates a regular expression which will match the filler HTML in the text. + * + * @param {Boolean} [onEnd] Whether a regular expression should be created for the filler at the beginning or + * the end of the content. + * @returns {RegExp} + * @member CKEDITOR.plugins.widgetselection + * @private + */ + createFillerRegex: function( onEnd ) { + var matcher = this.createFiller( onEnd ).getOuterHtml() + .replace( /style="[^"]*"/gi, 'style="[^"]*"' ) + .replace( />[^<]*[^<]*<' ); + + return new RegExp( ( !onEnd ? '^' : '' ) + matcher + ( onEnd ? '$' : '' ) ); + }, + + /** + * Adds an integration for the [Select All](http://ckeditor.com/addon/selectall) plugin to the given `editor`. + * + * @private + * @param {CKEDITOR.editor} editor + * @member CKEDITOR.plugins.widgetselection + */ + addSelectAllIntegration: function( editor ) { + var widgetselection = this; + + editor.editable().attachListener( editor, 'beforeCommandExec', function( evt ) { + var editable = editor.editable(); + + if ( evt.data.name == 'selectAll' && editable ) { + widgetselection.addFillers( editable ); + } + }, null, null, 9999 ); + } + }; + + + function filterTempElements( el ) { + return el.getName && !el.hasAttribute( 'data-cke-temp' ); + } + +} )(); diff --git a/sources/plugins/wysiwygarea/plugin.js b/sources/plugins/wysiwygarea/plugin.js index a1ec9e6..1358129 100644 --- a/sources/plugins/wysiwygarea/plugin.js +++ b/sources/plugins/wysiwygarea/plugin.js @@ -1,5 +1,5 @@ /** - * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */ @@ -9,6 +9,8 @@ */ ( function() { + var framedWysiwyg; + CKEDITOR.plugins.add( 'wysiwygarea', { init: function( editor ) { if ( editor.config.fullPage ) { @@ -27,7 +29,7 @@ // With IE, the custom domain has to be taken care at first, // for other browers, the 'src' attribute should be left empty to // trigger iframe's 'load' event. - // Microsoft Edge throws "Permission Denied" if treated like an IE (#13441). + // Microsoft Edge throws "Permission Denied" if treated like an IE (http://dev.ckeditor.com/ticket/13441). if ( CKEDITOR.env.air ) { src = 'javascript:void(0)'; // jshint ignore:line } else if ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) { @@ -137,7 +139,7 @@ body.hideFocus = true; // Disable and re-enable the body to avoid IE from - // taking the editing focus at startup. (#141 / #523) + // taking the editing focus at startup. (http://dev.ckeditor.com/ticket/141 / http://dev.ckeditor.com/ticket/523) body.disabled = true; body.removeAttribute( 'disabled' ); } @@ -154,19 +156,19 @@ var editable = this; - // Without it IE8 has problem with removing selection in nested editable. (#13785) + // Without it IE8 has problem with removing selection in nested editable. (http://dev.ckeditor.com/ticket/13785) if ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) { doc.getDocumentElement().addClass( doc.$.compatMode ); } - // Prevent IE/Edge from leaving a new paragraph/div after deleting all contents in body. (#6966, #13142) + // Prevent IE/Edge from leaving a new paragraph/div after deleting all contents in body. (http://dev.ckeditor.com/ticket/6966, http://dev.ckeditor.com/ticket/13142) if ( CKEDITOR.env.ie && !CKEDITOR.env.edge && editor.enterMode != CKEDITOR.ENTER_P ) { removeSuperfluousElement( 'p' ); } else if ( CKEDITOR.env.edge && editor.enterMode != CKEDITOR.ENTER_DIV ) { removeSuperfluousElement( 'div' ); } - // Fix problem with cursor not appearing in Webkit and IE11+ when clicking below the body (#10945, #10906). + // Fix problem with cursor not appearing in Webkit and IE11+ when clicking below the body (http://dev.ckeditor.com/ticket/10945, http://dev.ckeditor.com/ticket/10906). // Fix for older IEs (8-10 and QM) is placed inside selection.js. if ( CKEDITOR.env.webkit || ( CKEDITOR.env.ie && CKEDITOR.env.version > 10 ) ) { doc.getDocumentElement().on( 'mousedown', function( evt ) { @@ -194,7 +196,7 @@ // PageUp OR PageDown if ( keyCode == 33 || keyCode == 34 ) { // PageUp/PageDown scrolling is broken in document - // with standard doctype, manually fix it. (#4736) + // with standard doctype, manually fix it. (http://dev.ckeditor.com/ticket/4736) if ( CKEDITOR.env.ie ) { setTimeout( function() { editor.getSelection().scrollIntoView(); @@ -203,7 +205,7 @@ // Page up/down cause editor selection to leak // outside of editable thus we try to intercept // the behavior, while it affects only happen - // when editor contents are not overflowed. (#7955) + // when editor contents are not overflowed. (http://dev.ckeditor.com/ticket/7955) else if ( editor.window.$.innerHeight > this.$.offsetHeight ) { var range = editor.createRange(); range[ keyCode == 33 ? 'moveToElementEditStart' : 'moveToElementEditEnd' ]( this ); @@ -219,14 +221,14 @@ // focus is moved onto a non-editing host, e.g. link or button, but // it becomes a problem for the object type selection, since the resizer // handler attached on it will mark other part of the UI, especially - // for the dialog. (#8157) + // for the dialog. (http://dev.ckeditor.com/ticket/8157) // [IE<8 & Opera] Even worse For old IEs, the cursor will not vanish even if - // the selection has been moved to another text input in some cases. (#4716) + // the selection has been moved to another text input in some cases. (http://dev.ckeditor.com/ticket/4716) // // Now the range restore is disabled, so we simply force IE to clean // up the selection before blur. this.attachListener( doc, 'blur', function() { - // Error proof when the editor is not visible. (#6375) + // Error proof when the editor is not visible. (http://dev.ckeditor.com/ticket/6375) try { doc.$.selection.empty(); } catch ( er ) {} @@ -235,14 +237,14 @@ if ( CKEDITOR.env.iOS ) { // [iOS] If touch is bound to any parent of the iframe blur happens on any touch - // event and body becomes the focused element (#10714). + // event and body becomes the focused element (http://dev.ckeditor.com/ticket/10714). this.attachListener( doc, 'touchend', function() { win.focus(); } ); } var title = editor.document.getElementsByTag( 'title' ).getItem( 0 ); - // document.title is malfunctioning on Chrome, so get value from the element (#12402). + // document.title is malfunctioning on Chrome, so get value from the element (http://dev.ckeditor.com/ticket/12402). title.data( 'cke-title', title.getText() ); // [IE] JAWS will not recognize the aria label we used on the iframe @@ -289,10 +291,13 @@ // 2. On keyup remove all elements that were not marked // as non-superfluous (which means they must have had appeared in the meantime). + // Also we should preserve all temporary elements inserted by editor – otherwise we'd likely + // leak fake selection's content into editable due to removing hidden selection container (http://dev.ckeditor.com/ticket/14831). editable.attachListener( editable, 'keyup', function() { var elements = doc.getElementsByTag( tagName ); if ( lockRetain ) { - if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) ) { + if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) && + !elements.getItem( 0 ).hasAttribute( 'data-cke-temp' ) ) { elements.getItem( 0 ).remove( 1 ); } lockRetain = false; @@ -301,13 +306,13 @@ } } - var framedWysiwyg = CKEDITOR.tools.createClass( { + framedWysiwyg = CKEDITOR.tools.createClass( { $: function() { this.base.apply( this, arguments ); this._.frameLoadedHandler = CKEDITOR.tools.addFunction( function( win ) { // Avoid opening design mode in a frame window thread, - // which will cause host page scrolling.(#4397) + // which will cause host page scrolling.(http://dev.ckeditor.com/ticket/4397) CKEDITOR.tools.setTimeout( onDomReady, 0, this, win ); }, this ); @@ -325,7 +330,7 @@ this.fixInitialSelection(); // Fire dataReady for the consistency with inline editors - // and because it makes sense. (#10370) + // and because it makes sense. (http://dev.ckeditor.com/ticket/10370) editor.fire( 'dataReady' ); } else { @@ -415,7 +420,7 @@ } // The script that launches the bootstrap logic on 'domReady', so the document - // is fully editable even before the editing iframe is fully loaded (#4455). + // is fully editable even before the editing iframe is fully loaded (http://dev.ckeditor.com/ticket/4455). var bootstrapCode = '