@ckeditor/ckeditor5-image 34.1.0 → 35.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +423 -0
- package/LICENSE.md +4 -0
- package/build/image.js +2 -2
- package/build/translations/ar.js +1 -1
- package/build/translations/ast.js +1 -1
- package/build/translations/az.js +1 -1
- package/build/translations/bg.js +1 -1
- package/build/translations/bn.js +1 -0
- package/build/translations/bs.js +1 -1
- package/build/translations/ca.js +1 -0
- package/build/translations/cs.js +1 -1
- package/build/translations/da.js +1 -1
- package/build/translations/de-ch.js +1 -1
- package/build/translations/de.js +1 -1
- package/build/translations/el.js +1 -1
- package/build/translations/en-au.js +1 -1
- package/build/translations/en-gb.js +1 -1
- package/build/translations/eo.js +1 -1
- package/build/translations/es.js +1 -1
- package/build/translations/et.js +1 -1
- package/build/translations/eu.js +1 -1
- package/build/translations/fa.js +1 -1
- package/build/translations/fi.js +1 -1
- package/build/translations/fr.js +1 -1
- package/build/translations/gl.js +1 -1
- package/build/translations/he.js +1 -1
- package/build/translations/hi.js +1 -1
- package/build/translations/hr.js +1 -1
- package/build/translations/hu.js +1 -1
- package/build/translations/id.js +1 -1
- package/build/translations/it.js +1 -1
- package/build/translations/ja.js +1 -1
- package/build/translations/jv.js +1 -1
- package/build/translations/km.js +1 -1
- package/build/translations/kn.js +1 -1
- package/build/translations/ko.js +1 -1
- package/build/translations/ku.js +1 -1
- package/build/translations/lt.js +1 -1
- package/build/translations/lv.js +1 -1
- package/build/translations/ms.js +1 -0
- package/build/translations/nb.js +1 -1
- package/build/translations/ne.js +1 -1
- package/build/translations/nl.js +1 -1
- package/build/translations/no.js +1 -1
- package/build/translations/pl.js +1 -1
- package/build/translations/pt-br.js +1 -1
- package/build/translations/pt.js +1 -1
- package/build/translations/ro.js +1 -1
- package/build/translations/ru.js +1 -1
- package/build/translations/si.js +1 -1
- package/build/translations/sk.js +1 -1
- package/build/translations/sq.js +1 -1
- package/build/translations/sr-latn.js +1 -1
- package/build/translations/sr.js +1 -1
- package/build/translations/sv.js +1 -1
- package/build/translations/th.js +1 -1
- package/build/translations/tk.js +1 -1
- package/build/translations/tr.js +1 -1
- package/build/translations/ug.js +1 -1
- package/build/translations/uk.js +1 -1
- package/build/translations/ur.js +1 -1
- package/build/translations/uz.js +1 -1
- package/build/translations/vi.js +1 -1
- package/build/translations/zh-cn.js +1 -1
- package/build/translations/zh.js +1 -1
- package/lang/contexts.json +3 -1
- package/lang/translations/ar.po +21 -13
- package/lang/translations/ast.po +8 -0
- package/lang/translations/az.po +8 -0
- package/lang/translations/bg.po +30 -22
- package/lang/translations/bn.po +121 -0
- package/lang/translations/bs.po +8 -0
- package/lang/translations/ca.po +121 -0
- package/lang/translations/cs.po +8 -0
- package/lang/translations/da.po +20 -12
- package/lang/translations/de-ch.po +8 -0
- package/lang/translations/de.po +8 -0
- package/lang/translations/el.po +8 -0
- package/lang/translations/en-au.po +8 -0
- package/lang/translations/en-gb.po +8 -0
- package/lang/translations/en.po +8 -0
- package/lang/translations/eo.po +8 -0
- package/lang/translations/es.po +9 -1
- package/lang/translations/et.po +20 -12
- package/lang/translations/eu.po +8 -0
- package/lang/translations/fa.po +8 -0
- package/lang/translations/fi.po +21 -13
- package/lang/translations/fr.po +12 -4
- package/lang/translations/gl.po +8 -0
- package/lang/translations/he.po +20 -12
- package/lang/translations/hi.po +11 -3
- package/lang/translations/hr.po +8 -0
- package/lang/translations/hu.po +8 -0
- package/lang/translations/id.po +8 -0
- package/lang/translations/it.po +9 -1
- package/lang/translations/ja.po +11 -3
- package/lang/translations/jv.po +8 -0
- package/lang/translations/km.po +8 -0
- package/lang/translations/kn.po +8 -0
- package/lang/translations/ko.po +15 -7
- package/lang/translations/ku.po +8 -0
- package/lang/translations/lt.po +21 -13
- package/lang/translations/lv.po +8 -0
- package/lang/translations/ms.po +121 -0
- package/lang/translations/nb.po +8 -0
- package/lang/translations/ne.po +8 -0
- package/lang/translations/nl.po +18 -10
- package/lang/translations/no.po +20 -12
- package/lang/translations/pl.po +12 -4
- package/lang/translations/pt-br.po +9 -1
- package/lang/translations/pt.po +25 -17
- package/lang/translations/ro.po +11 -3
- package/lang/translations/ru.po +8 -0
- package/lang/translations/si.po +8 -0
- package/lang/translations/sk.po +8 -0
- package/lang/translations/sq.po +8 -0
- package/lang/translations/sr-latn.po +8 -0
- package/lang/translations/sr.po +8 -0
- package/lang/translations/sv.po +21 -13
- package/lang/translations/th.po +20 -12
- package/lang/translations/tk.po +8 -0
- package/lang/translations/tr.po +15 -7
- package/lang/translations/ug.po +8 -0
- package/lang/translations/uk.po +11 -3
- package/lang/translations/ur.po +8 -0
- package/lang/translations/uz.po +8 -0
- package/lang/translations/vi.po +11 -3
- package/lang/translations/zh-cn.po +13 -5
- package/lang/translations/zh.po +11 -3
- package/package.json +33 -32
- package/src/image/ui/utils.js +1 -1
- package/src/imagecaption/imagecaptionediting.js +40 -1
- package/src/imageinsert/imageinsertui.js +45 -21
- package/src/imageinsert/ui/imageinsertpanelview.js +1 -37
- package/src/imageinsert.js +2 -1
- package/src/imageinsertviaurl.js +40 -0
- package/src/imageresize/imageresizehandles.js +1 -1
- package/src/imagestyle/imagestyleui.js +13 -1
- package/src/imageutils.js +7 -1
package/lang/translations/th.po
CHANGED
|
@@ -22,15 +22,15 @@ msgstr "วิดเจ็ตรูปภาพ"
|
|
|
22
22
|
|
|
23
23
|
msgctxt "The label for the image style button that wraps text around the image."
|
|
24
24
|
msgid "Wrap text"
|
|
25
|
-
msgstr ""
|
|
25
|
+
msgstr "ตัดคำข้อความ"
|
|
26
26
|
|
|
27
27
|
msgctxt "The label for the image style button that breaks the text around the image."
|
|
28
28
|
msgid "Break text"
|
|
29
|
-
msgstr ""
|
|
29
|
+
msgstr "แบ่งข้อความ"
|
|
30
30
|
|
|
31
31
|
msgctxt "The label for the image style button that places the image inside the line of text."
|
|
32
32
|
msgid "In line"
|
|
33
|
-
msgstr ""
|
|
33
|
+
msgstr "ในบรรทัด"
|
|
34
34
|
|
|
35
35
|
msgctxt "The label for the Side image option."
|
|
36
36
|
msgid "Side image"
|
|
@@ -78,36 +78,44 @@ msgstr "เครื่องมือรูปภาพ"
|
|
|
78
78
|
|
|
79
79
|
msgctxt "The label used for the dropdown in the image toolbar containing defined resize options."
|
|
80
80
|
msgid "Resize image"
|
|
81
|
-
msgstr ""
|
|
81
|
+
msgstr "ปรับขนาดภาพ"
|
|
82
82
|
|
|
83
83
|
msgctxt "The label used for the standalone resize options buttons in the image toolbar."
|
|
84
84
|
msgid "Resize image to %0"
|
|
85
|
-
msgstr ""
|
|
85
|
+
msgstr "ปรับขนาดภาพเป็น %0"
|
|
86
86
|
|
|
87
87
|
msgctxt "The accessibility label of the standalone image resize reset option button in the image toolbar for screen readers."
|
|
88
88
|
msgid "Resize image to the original size"
|
|
89
|
-
msgstr ""
|
|
89
|
+
msgstr "ปรับขนาดภาพเป็นขนาดเดิม"
|
|
90
90
|
|
|
91
91
|
msgctxt "The default label for the resize option that resets the size of the image."
|
|
92
92
|
msgid "Original"
|
|
93
|
-
msgstr ""
|
|
93
|
+
msgstr "ดั้งเดิม"
|
|
94
94
|
|
|
95
95
|
msgctxt "The accessibility label of the image resize dropdown for screen readers."
|
|
96
96
|
msgid "Image resize list"
|
|
97
|
-
msgstr ""
|
|
97
|
+
msgstr "รายการปรับขนาดภาพ"
|
|
98
98
|
|
|
99
99
|
msgctxt "The label of the form submit button if the image source URL input has no value."
|
|
100
100
|
msgid "Insert"
|
|
101
|
-
msgstr ""
|
|
101
|
+
msgstr "แทรก"
|
|
102
102
|
|
|
103
103
|
msgctxt "The label of the form submit button if the image source URL input has a value."
|
|
104
104
|
msgid "Update"
|
|
105
|
-
msgstr ""
|
|
105
|
+
msgstr "อัปเดต"
|
|
106
106
|
|
|
107
107
|
msgctxt "The input label for the Insert image via URL form."
|
|
108
108
|
msgid "Insert image via URL"
|
|
109
|
-
msgstr ""
|
|
109
|
+
msgstr "แทรกภาพผ่าน URL"
|
|
110
110
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
|
-
msgstr ""
|
|
113
|
+
msgstr "อัปเดต URL ภาพ"
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr "คำบรรยายภาพ"
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr "คำบรรยายภาพ: %0"
|
package/lang/translations/tk.po
CHANGED
|
@@ -111,3 +111,11 @@ msgstr ""
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
113
|
msgstr ""
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr ""
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr ""
|
package/lang/translations/tr.po
CHANGED
|
@@ -22,15 +22,15 @@ msgstr "resim aracı"
|
|
|
22
22
|
|
|
23
23
|
msgctxt "The label for the image style button that wraps text around the image."
|
|
24
24
|
msgid "Wrap text"
|
|
25
|
-
msgstr ""
|
|
25
|
+
msgstr "Metni kaydır"
|
|
26
26
|
|
|
27
27
|
msgctxt "The label for the image style button that breaks the text around the image."
|
|
28
28
|
msgid "Break text"
|
|
29
|
-
msgstr ""
|
|
29
|
+
msgstr "Metni böl"
|
|
30
30
|
|
|
31
31
|
msgctxt "The label for the image style button that places the image inside the line of text."
|
|
32
32
|
msgid "In line"
|
|
33
|
-
msgstr ""
|
|
33
|
+
msgstr "Aynı hizada"
|
|
34
34
|
|
|
35
35
|
msgctxt "The label for the Side image option."
|
|
36
36
|
msgid "Side image"
|
|
@@ -94,11 +94,11 @@ msgstr "Orijinal"
|
|
|
94
94
|
|
|
95
95
|
msgctxt "The accessibility label of the image resize dropdown for screen readers."
|
|
96
96
|
msgid "Image resize list"
|
|
97
|
-
msgstr ""
|
|
97
|
+
msgstr "Resim yeniden boyutlandırma listesi"
|
|
98
98
|
|
|
99
99
|
msgctxt "The label of the form submit button if the image source URL input has no value."
|
|
100
100
|
msgid "Insert"
|
|
101
|
-
msgstr ""
|
|
101
|
+
msgstr "Ekle"
|
|
102
102
|
|
|
103
103
|
msgctxt "The label of the form submit button if the image source URL input has a value."
|
|
104
104
|
msgid "Update"
|
|
@@ -106,8 +106,16 @@ msgstr "Güncelle"
|
|
|
106
106
|
|
|
107
107
|
msgctxt "The input label for the Insert image via URL form."
|
|
108
108
|
msgid "Insert image via URL"
|
|
109
|
-
msgstr ""
|
|
109
|
+
msgstr "URL ile görüntü ekle"
|
|
110
110
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
|
-
msgstr ""
|
|
113
|
+
msgstr "Görüntü URL'sini güncelle"
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr "Resim için başlık"
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr "Resim için başlık: %0"
|
package/lang/translations/ug.po
CHANGED
|
@@ -111,3 +111,11 @@ msgstr ""
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
113
|
msgstr ""
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr ""
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr ""
|
package/lang/translations/uk.po
CHANGED
|
@@ -22,15 +22,15 @@ msgstr "Віджет зображення"
|
|
|
22
22
|
|
|
23
23
|
msgctxt "The label for the image style button that wraps text around the image."
|
|
24
24
|
msgid "Wrap text"
|
|
25
|
-
msgstr ""
|
|
25
|
+
msgstr "Обернути текст"
|
|
26
26
|
|
|
27
27
|
msgctxt "The label for the image style button that breaks the text around the image."
|
|
28
28
|
msgid "Break text"
|
|
29
|
-
msgstr ""
|
|
29
|
+
msgstr "Розірвати тексту"
|
|
30
30
|
|
|
31
31
|
msgctxt "The label for the image style button that places the image inside the line of text."
|
|
32
32
|
msgid "In line"
|
|
33
|
-
msgstr ""
|
|
33
|
+
msgstr "В тексті"
|
|
34
34
|
|
|
35
35
|
msgctxt "The label for the Side image option."
|
|
36
36
|
msgid "Side image"
|
|
@@ -111,3 +111,11 @@ msgstr "Вставити зображення через посилання"
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
113
|
msgstr "Оновити посилання на зображення"
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr "Підпис до зображення"
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr "Підпис до зображення: %0"
|
package/lang/translations/ur.po
CHANGED
|
@@ -111,3 +111,11 @@ msgstr ""
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
113
|
msgstr ""
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr ""
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr ""
|
package/lang/translations/uz.po
CHANGED
|
@@ -111,3 +111,11 @@ msgstr "Rasmni URL orqali kiritish"
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
113
|
msgstr "Rasm URL manzilini o'zgartirish"
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr ""
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr ""
|
package/lang/translations/vi.po
CHANGED
|
@@ -22,15 +22,15 @@ msgstr "tiện ích ảnh"
|
|
|
22
22
|
|
|
23
23
|
msgctxt "The label for the image style button that wraps text around the image."
|
|
24
24
|
msgid "Wrap text"
|
|
25
|
-
msgstr ""
|
|
25
|
+
msgstr "Bọc văn bản"
|
|
26
26
|
|
|
27
27
|
msgctxt "The label for the image style button that breaks the text around the image."
|
|
28
28
|
msgid "Break text"
|
|
29
|
-
msgstr ""
|
|
29
|
+
msgstr "Ngắt văn bản"
|
|
30
30
|
|
|
31
31
|
msgctxt "The label for the image style button that places the image inside the line of text."
|
|
32
32
|
msgid "In line"
|
|
33
|
-
msgstr ""
|
|
33
|
+
msgstr "Nội dòng"
|
|
34
34
|
|
|
35
35
|
msgctxt "The label for the Side image option."
|
|
36
36
|
msgid "Side image"
|
|
@@ -111,3 +111,11 @@ msgstr "Chèn ảnh từ URL"
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
113
|
msgstr "Cập nhật ảnh từ URL"
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr "Chú thích cho hình ảnh"
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr "Chú thích cho hình ảnh: %0"
|
|
@@ -18,19 +18,19 @@ msgstr ""
|
|
|
18
18
|
|
|
19
19
|
msgctxt "The label for the image widget."
|
|
20
20
|
msgid "image widget"
|
|
21
|
-
msgstr "
|
|
21
|
+
msgstr "图片组件"
|
|
22
22
|
|
|
23
23
|
msgctxt "The label for the image style button that wraps text around the image."
|
|
24
24
|
msgid "Wrap text"
|
|
25
|
-
msgstr ""
|
|
25
|
+
msgstr "文字环绕"
|
|
26
26
|
|
|
27
27
|
msgctxt "The label for the image style button that breaks the text around the image."
|
|
28
28
|
msgid "Break text"
|
|
29
|
-
msgstr ""
|
|
29
|
+
msgstr "文字断行"
|
|
30
30
|
|
|
31
31
|
msgctxt "The label for the image style button that places the image inside the line of text."
|
|
32
32
|
msgid "In line"
|
|
33
|
-
msgstr ""
|
|
33
|
+
msgstr "行内"
|
|
34
34
|
|
|
35
35
|
msgctxt "The label for the Side image option."
|
|
36
36
|
msgid "Side image"
|
|
@@ -38,7 +38,7 @@ msgstr "图片侧边显示"
|
|
|
38
38
|
|
|
39
39
|
msgctxt "The label for the Full size image option."
|
|
40
40
|
msgid "Full size image"
|
|
41
|
-
msgstr "
|
|
41
|
+
msgstr "全尺寸图片"
|
|
42
42
|
|
|
43
43
|
msgctxt "The label for the Left aligned image option."
|
|
44
44
|
msgid "Left aligned image"
|
|
@@ -111,3 +111,11 @@ msgstr "通过URL地址插入图片"
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
113
|
msgstr "更新图片URL地址"
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr "图片说明:"
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr "图片说明:%0"
|
package/lang/translations/zh.po
CHANGED
|
@@ -22,15 +22,15 @@ msgstr "圖片小工具"
|
|
|
22
22
|
|
|
23
23
|
msgctxt "The label for the image style button that wraps text around the image."
|
|
24
24
|
msgid "Wrap text"
|
|
25
|
-
msgstr ""
|
|
25
|
+
msgstr "文繞圖"
|
|
26
26
|
|
|
27
27
|
msgctxt "The label for the image style button that breaks the text around the image."
|
|
28
28
|
msgid "Break text"
|
|
29
|
-
msgstr ""
|
|
29
|
+
msgstr "上及下"
|
|
30
30
|
|
|
31
31
|
msgctxt "The label for the image style button that places the image inside the line of text."
|
|
32
32
|
msgid "In line"
|
|
33
|
-
msgstr ""
|
|
33
|
+
msgstr "行中"
|
|
34
34
|
|
|
35
35
|
msgctxt "The label for the Side image option."
|
|
36
36
|
msgid "Side image"
|
|
@@ -111,3 +111,11 @@ msgstr "使用連結插入圖片"
|
|
|
111
111
|
msgctxt "The input label for the Insert image via URL form for a pre-existing image."
|
|
112
112
|
msgid "Update image URL"
|
|
113
113
|
msgstr "更新圖片連結"
|
|
114
|
+
|
|
115
|
+
msgctxt "Text used by screen readers do describe an image when the image has no text alternative."
|
|
116
|
+
msgid "Caption for the image"
|
|
117
|
+
msgstr "影像的標題"
|
|
118
|
+
|
|
119
|
+
msgctxt "Text used by screen readers do describe an image when there is a text alternative available, e.g. 'Caption for image: this is a description of the image.'"
|
|
120
|
+
msgid "Caption for image: %0"
|
|
121
|
+
msgstr "影像標題:%0"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-image",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "35.0.1",
|
|
4
4
|
"description": "Image feature for CKEditor 5.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ckeditor",
|
|
@@ -12,40 +12,40 @@
|
|
|
12
12
|
],
|
|
13
13
|
"main": "src/index.js",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@ckeditor/ckeditor5-ui": "^
|
|
16
|
-
"ckeditor5": "^
|
|
15
|
+
"@ckeditor/ckeditor5-ui": "^35.0.1",
|
|
16
|
+
"ckeditor5": "^35.0.1",
|
|
17
17
|
"lodash-es": "^4.17.15"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@ckeditor/ckeditor5-adapter-ckfinder": "^
|
|
21
|
-
"@ckeditor/ckeditor5-autoformat": "^
|
|
22
|
-
"@ckeditor/ckeditor5-basic-styles": "^
|
|
23
|
-
"@ckeditor/ckeditor5-block-quote": "^
|
|
24
|
-
"@ckeditor/ckeditor5-ckfinder": "^
|
|
25
|
-
"@ckeditor/ckeditor5-clipboard": "^
|
|
26
|
-
"@ckeditor/ckeditor5-cloud-services": "^
|
|
27
|
-
"@ckeditor/ckeditor5-core": "^
|
|
20
|
+
"@ckeditor/ckeditor5-adapter-ckfinder": "^35.0.1",
|
|
21
|
+
"@ckeditor/ckeditor5-autoformat": "^35.0.1",
|
|
22
|
+
"@ckeditor/ckeditor5-basic-styles": "^35.0.1",
|
|
23
|
+
"@ckeditor/ckeditor5-block-quote": "^35.0.1",
|
|
24
|
+
"@ckeditor/ckeditor5-ckfinder": "^35.0.1",
|
|
25
|
+
"@ckeditor/ckeditor5-clipboard": "^35.0.1",
|
|
26
|
+
"@ckeditor/ckeditor5-cloud-services": "^35.0.1",
|
|
27
|
+
"@ckeditor/ckeditor5-core": "^35.0.1",
|
|
28
28
|
"@ckeditor/ckeditor5-dev-utils": "^30.0.0",
|
|
29
|
-
"@ckeditor/ckeditor5-easy-image": "^
|
|
30
|
-
"@ckeditor/ckeditor5-editor-classic": "^
|
|
31
|
-
"@ckeditor/ckeditor5-engine": "^
|
|
32
|
-
"@ckeditor/ckeditor5-enter": "^
|
|
33
|
-
"@ckeditor/ckeditor5-essentials": "^
|
|
34
|
-
"@ckeditor/ckeditor5-heading": "^
|
|
35
|
-
"@ckeditor/ckeditor5-html-embed": "^
|
|
36
|
-
"@ckeditor/ckeditor5-indent": "^
|
|
37
|
-
"@ckeditor/ckeditor5-link": "^
|
|
38
|
-
"@ckeditor/ckeditor5-list": "^
|
|
39
|
-
"@ckeditor/ckeditor5-media-embed": "^
|
|
40
|
-
"@ckeditor/ckeditor5-paragraph": "^
|
|
41
|
-
"@ckeditor/ckeditor5-table": "^
|
|
42
|
-
"@ckeditor/ckeditor5-theme-lark": "^
|
|
43
|
-
"@ckeditor/ckeditor5-typing": "^
|
|
44
|
-
"@ckeditor/ckeditor5-undo": "^
|
|
45
|
-
"@ckeditor/ckeditor5-upload": "^
|
|
46
|
-
"@ckeditor/ckeditor5-utils": "^
|
|
47
|
-
"@ckeditor/ckeditor5-watchdog": "^
|
|
48
|
-
"@ckeditor/ckeditor5-widget": "^
|
|
29
|
+
"@ckeditor/ckeditor5-easy-image": "^35.0.1",
|
|
30
|
+
"@ckeditor/ckeditor5-editor-classic": "^35.0.1",
|
|
31
|
+
"@ckeditor/ckeditor5-engine": "^35.0.1",
|
|
32
|
+
"@ckeditor/ckeditor5-enter": "^35.0.1",
|
|
33
|
+
"@ckeditor/ckeditor5-essentials": "^35.0.1",
|
|
34
|
+
"@ckeditor/ckeditor5-heading": "^35.0.1",
|
|
35
|
+
"@ckeditor/ckeditor5-html-embed": "^35.0.1",
|
|
36
|
+
"@ckeditor/ckeditor5-indent": "^35.0.1",
|
|
37
|
+
"@ckeditor/ckeditor5-link": "^35.0.1",
|
|
38
|
+
"@ckeditor/ckeditor5-list": "^35.0.1",
|
|
39
|
+
"@ckeditor/ckeditor5-media-embed": "^35.0.1",
|
|
40
|
+
"@ckeditor/ckeditor5-paragraph": "^35.0.1",
|
|
41
|
+
"@ckeditor/ckeditor5-table": "^35.0.1",
|
|
42
|
+
"@ckeditor/ckeditor5-theme-lark": "^35.0.1",
|
|
43
|
+
"@ckeditor/ckeditor5-typing": "^35.0.1",
|
|
44
|
+
"@ckeditor/ckeditor5-undo": "^35.0.1",
|
|
45
|
+
"@ckeditor/ckeditor5-upload": "^35.0.1",
|
|
46
|
+
"@ckeditor/ckeditor5-utils": "^35.0.1",
|
|
47
|
+
"@ckeditor/ckeditor5-watchdog": "^35.0.1",
|
|
48
|
+
"@ckeditor/ckeditor5-widget": "^35.0.1",
|
|
49
49
|
"webpack": "^5.58.1",
|
|
50
50
|
"webpack-cli": "^4.9.0"
|
|
51
51
|
},
|
|
@@ -67,7 +67,8 @@
|
|
|
67
67
|
"src",
|
|
68
68
|
"theme",
|
|
69
69
|
"build",
|
|
70
|
-
"ckeditor5-metadata.json"
|
|
70
|
+
"ckeditor5-metadata.json",
|
|
71
|
+
"CHANGELOG.md"
|
|
71
72
|
],
|
|
72
73
|
"scripts": {
|
|
73
74
|
"dll:build": "webpack"
|
package/src/image/ui/utils.js
CHANGED
|
@@ -40,7 +40,7 @@ export function getBalloonPositionData( editor ) {
|
|
|
40
40
|
const imageUtils = editor.plugins.get( 'ImageUtils' );
|
|
41
41
|
|
|
42
42
|
return {
|
|
43
|
-
target: editingView.domConverter.
|
|
43
|
+
target: editingView.domConverter.mapViewToDom( imageUtils.getClosestSelectedImageWidget( editingView.document.selection ) ),
|
|
44
44
|
positions: [
|
|
45
45
|
defaultPositions.northArrowSouth,
|
|
46
46
|
defaultPositions.northArrowSouthWest,
|
|
@@ -81,6 +81,7 @@ export default class ImageCaptionEditing extends Plugin {
|
|
|
81
81
|
|
|
82
82
|
this._setupConversion();
|
|
83
83
|
this._setupImageTypeCommandsIntegration();
|
|
84
|
+
this._registerCaptionReconversion();
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
/**
|
|
@@ -132,7 +133,10 @@ export default class ImageCaptionEditing extends Plugin {
|
|
|
132
133
|
keepOnFocus: true
|
|
133
134
|
} );
|
|
134
135
|
|
|
135
|
-
|
|
136
|
+
const imageAlt = modelElement.parent.getAttribute( 'alt' );
|
|
137
|
+
const label = imageAlt ? t( 'Caption for image: %0', [ imageAlt ] ) : t( 'Caption for the image' );
|
|
138
|
+
|
|
139
|
+
return toWidgetEditable( figcaptionElement, writer, { label } );
|
|
136
140
|
}
|
|
137
141
|
} );
|
|
138
142
|
}
|
|
@@ -242,4 +246,39 @@ export default class ImageCaptionEditing extends Plugin {
|
|
|
242
246
|
_saveCaption( imageModelElement, caption ) {
|
|
243
247
|
this._savedCaptionsMap.set( imageModelElement, caption.toJSON() );
|
|
244
248
|
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Reconverts image caption when image alt attribute changes.
|
|
252
|
+
* The change of alt attribute is reflected in caption's aria-label attribute.
|
|
253
|
+
*
|
|
254
|
+
* @private
|
|
255
|
+
*/
|
|
256
|
+
_registerCaptionReconversion() {
|
|
257
|
+
const editor = this.editor;
|
|
258
|
+
const model = editor.model;
|
|
259
|
+
const imageUtils = editor.plugins.get( 'ImageUtils' );
|
|
260
|
+
const imageCaptionUtils = editor.plugins.get( 'ImageCaptionUtils' );
|
|
261
|
+
|
|
262
|
+
model.document.on( 'change:data', () => {
|
|
263
|
+
const changes = model.document.differ.getChanges();
|
|
264
|
+
|
|
265
|
+
for ( const change of changes ) {
|
|
266
|
+
if ( change.attributeKey !== 'alt' ) {
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
const image = change.range.start.nodeAfter;
|
|
271
|
+
|
|
272
|
+
if ( imageUtils.isBlockImage( image ) ) {
|
|
273
|
+
const caption = imageCaptionUtils.getCaptionFromImageModelElement( image );
|
|
274
|
+
|
|
275
|
+
if ( !caption ) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
editor.editing.reconvertItem( caption );
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
} );
|
|
283
|
+
}
|
|
245
284
|
}
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
* @module image/imageinsert/imageinsertui
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { Plugin } from 'ckeditor5/src/core';
|
|
10
|
+
import { Plugin, icons } from 'ckeditor5/src/core';
|
|
11
11
|
import ImageInsertPanelView from './ui/imageinsertpanelview';
|
|
12
|
+
import { SplitButtonView, createDropdown } from 'ckeditor5/src/ui';
|
|
12
13
|
import { prepareIntegrations } from './utils';
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -54,41 +55,66 @@ export default class ImageInsertUI extends Plugin {
|
|
|
54
55
|
*/
|
|
55
56
|
_createDropdownView( locale ) {
|
|
56
57
|
const editor = this.editor;
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
58
|
+
const t = locale.t;
|
|
59
|
+
|
|
60
|
+
const uploadImageCommand = editor.commands.get( 'uploadImage' );
|
|
61
|
+
const insertImageCommand = editor.commands.get( 'insertImage' );
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The dropdown view responsible for displaying the image insert UI.
|
|
65
|
+
*
|
|
66
|
+
* @member {module:ui/dropdown/dropdownview~DropdownView}
|
|
67
|
+
*/
|
|
68
|
+
this.dropdownView = createDropdown( locale, uploadImageCommand ? SplitButtonView : undefined );
|
|
69
|
+
|
|
70
|
+
const buttonView = this.dropdownView.buttonView;
|
|
71
|
+
const panelView = this.dropdownView.panelView;
|
|
72
|
+
|
|
73
|
+
buttonView.set( {
|
|
74
|
+
label: t( 'Insert image' ),
|
|
75
|
+
icon: icons.image,
|
|
76
|
+
tooltip: true
|
|
77
|
+
} );
|
|
78
|
+
|
|
79
|
+
panelView.extendTemplate( {
|
|
69
80
|
attributes: {
|
|
70
|
-
class: 'ck
|
|
81
|
+
class: 'ck-image-insert__panel'
|
|
71
82
|
}
|
|
72
83
|
} );
|
|
73
84
|
|
|
74
|
-
|
|
85
|
+
if ( uploadImageCommand ) {
|
|
86
|
+
const splitButtonView = this.dropdownView.buttonView;
|
|
87
|
+
|
|
88
|
+
splitButtonView.actionView = editor.ui.componentFactory.create( 'uploadImage' );
|
|
89
|
+
// After we replaced action button with `uploadImage` component,
|
|
90
|
+
// we have lost a proper styling and some minor visual quirks have appeared.
|
|
91
|
+
// Brining back original split button classes helps fix the button styling
|
|
92
|
+
// See https://github.com/ckeditor/ckeditor5/issues/7986.
|
|
93
|
+
splitButtonView.actionView.extendTemplate( {
|
|
94
|
+
attributes: {
|
|
95
|
+
class: 'ck ck-button ck-splitbutton__action'
|
|
96
|
+
}
|
|
97
|
+
} );
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return this._setUpDropdown( uploadImageCommand || insertImageCommand );
|
|
75
101
|
}
|
|
76
102
|
|
|
77
103
|
/**
|
|
78
104
|
* Sets up the dropdown view.
|
|
79
105
|
*
|
|
80
|
-
* @param {module:
|
|
81
|
-
* @param {module:image/imageinsert/ui/imageinsertpanelview~ImageInsertPanelView} imageInsertView An imageInsertView.
|
|
82
|
-
* @param {module:core/command~Command} command An insertImage command
|
|
106
|
+
* @param {module:core/command~Command} command An uploadImage or insertImage command.
|
|
83
107
|
*
|
|
84
108
|
* @private
|
|
85
109
|
* @returns {module:ui/dropdown/dropdownview~DropdownView}
|
|
86
110
|
*/
|
|
87
|
-
_setUpDropdown(
|
|
111
|
+
_setUpDropdown( command ) {
|
|
88
112
|
const editor = this.editor;
|
|
89
113
|
const t = editor.t;
|
|
114
|
+
const imageInsertView = new ImageInsertPanelView( editor.locale, prepareIntegrations( editor ) );
|
|
90
115
|
const insertButtonView = imageInsertView.insertButtonView;
|
|
91
116
|
const insertImageViaUrlForm = imageInsertView.getIntegration( 'insertImageViaUrl' );
|
|
117
|
+
const dropdownView = this.dropdownView;
|
|
92
118
|
const panelView = dropdownView.panelView;
|
|
93
119
|
const imageUtils = this.editor.plugins.get( 'ImageUtils' );
|
|
94
120
|
|
|
@@ -104,8 +130,6 @@ export default class ImageInsertUI extends Plugin {
|
|
|
104
130
|
const selectedElement = editor.model.document.selection.getSelectedElement();
|
|
105
131
|
|
|
106
132
|
if ( dropdownView.isOpen ) {
|
|
107
|
-
imageInsertView.focus();
|
|
108
|
-
|
|
109
133
|
if ( imageUtils.isImage( selectedElement ) ) {
|
|
110
134
|
imageInsertView.imageURLInputValue = selectedElement.getAttribute( 'src' );
|
|
111
135
|
insertButtonView.label = t( 'Update' );
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { icons } from 'ckeditor5/src/core';
|
|
11
|
-
import { ButtonView, View,
|
|
11
|
+
import { ButtonView, View, ViewCollection, submitHandler, FocusCycler } from 'ckeditor5/src/ui';
|
|
12
12
|
import { Collection, FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils';
|
|
13
13
|
|
|
14
14
|
import ImageInsertFormRowView from './imageinsertformrowview';
|
|
@@ -49,13 +49,6 @@ export default class ImageInsertPanelView extends View {
|
|
|
49
49
|
*/
|
|
50
50
|
this.cancelButtonView = cancelButtonView;
|
|
51
51
|
|
|
52
|
-
/**
|
|
53
|
-
* The dropdown view.
|
|
54
|
-
*
|
|
55
|
-
* @member {module:ui/dropdown/dropdownview~DropdownView}
|
|
56
|
-
*/
|
|
57
|
-
this.dropdownView = this._createDropdownView( locale );
|
|
58
|
-
|
|
59
52
|
/**
|
|
60
53
|
* The value of the URL input.
|
|
61
54
|
*
|
|
@@ -223,35 +216,6 @@ export default class ImageInsertPanelView extends View {
|
|
|
223
216
|
return this._integrations.find( integration => integration.name === name );
|
|
224
217
|
}
|
|
225
218
|
|
|
226
|
-
/**
|
|
227
|
-
* Creates the dropdown view.
|
|
228
|
-
*
|
|
229
|
-
* @param {module:utils/locale~Locale} locale The localization services instance.
|
|
230
|
-
*
|
|
231
|
-
* @private
|
|
232
|
-
* @returns {module:ui/dropdown/dropdownview~DropdownView}
|
|
233
|
-
*/
|
|
234
|
-
_createDropdownView( locale ) {
|
|
235
|
-
const t = locale.t;
|
|
236
|
-
const dropdownView = createDropdown( locale, SplitButtonView );
|
|
237
|
-
const splitButtonView = dropdownView.buttonView;
|
|
238
|
-
const panelView = dropdownView.panelView;
|
|
239
|
-
|
|
240
|
-
splitButtonView.set( {
|
|
241
|
-
label: t( 'Insert image' ),
|
|
242
|
-
icon: icons.image,
|
|
243
|
-
tooltip: true
|
|
244
|
-
} );
|
|
245
|
-
|
|
246
|
-
panelView.extendTemplate( {
|
|
247
|
-
attributes: {
|
|
248
|
-
class: 'ck-image-insert__panel'
|
|
249
|
-
}
|
|
250
|
-
} );
|
|
251
|
-
|
|
252
|
-
return dropdownView;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
219
|
/**
|
|
256
220
|
* Creates the following form controls:
|
|
257
221
|
*
|
package/src/imageinsert.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import { Plugin } from 'ckeditor5/src/core';
|
|
11
11
|
import ImageUpload from './imageupload';
|
|
12
|
+
import ImageInsertViaUrl from './imageinsertviaurl';
|
|
12
13
|
import ImageInsertUI from './imageinsert/imageinsertui';
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -37,7 +38,7 @@ export default class ImageInsert extends Plugin {
|
|
|
37
38
|
* @inheritDoc
|
|
38
39
|
*/
|
|
39
40
|
static get requires() {
|
|
40
|
-
return [ ImageUpload, ImageInsertUI ];
|
|
41
|
+
return [ ImageUpload, ImageInsertViaUrl, ImageInsertUI ];
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
|