tiptapify 0.0.35 → 0.1.0
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/README.md +12 -6
- package/package.json +7 -3
- package/src/components/Tiptapify.vue +95 -2
- package/src/components/Toolbar/Index.vue +10 -0
- package/src/components/Toolbar/Items.vue +17 -13
- package/src/components/Toolbar/media.ts +5 -0
- package/src/components/editorExtensions.ts +15 -6
- package/src/components/index.ts +2 -1
- package/src/extensions/PickerEventBus.ts +32 -0
- package/src/extensions/charmap/arrows.ts +1227 -0
- package/src/extensions/charmap/box_drawing.ts +324 -0
- package/src/extensions/charmap/currency.ts +157 -0
- package/src/extensions/charmap/cyrillic.ts +646 -0
- package/src/extensions/charmap/diacritics.ts +107 -0
- package/src/extensions/charmap/extended_letters.ts +1311 -0
- package/src/extensions/charmap/greek.ts +443 -0
- package/src/extensions/charmap/hebrew.ts +177 -0
- package/src/extensions/charmap/index.ts +75 -0
- package/src/extensions/charmap/math.ts +2949 -0
- package/src/extensions/charmap/punctuation.ts +121 -0
- package/src/extensions/charmap/symbols.ts +506 -0
- package/src/extensions/charmap/typography.ts +499 -0
- package/src/extensions/components/media/charmap/Button.vue +27 -0
- package/src/extensions/components/media/charmap/Picker.vue +229 -0
- package/src/extensions/components/media/emoji/Button.vue +6 -147
- package/src/extensions/components/media/emoji/Picker.vue +225 -0
- package/src/extensions/components/media/image/ImageDialog.vue +69 -27
- package/src/extensions/components/slashCommands/CommandsList.vue +65 -22
- package/src/extensions/components/slashCommands/PickerDialog.vue +44 -0
- package/src/extensions/components/slashCommands/suggestion.ts +152 -105
- package/src/extensions/slash-commands.ts +169 -9
- package/src/i18n/locales/ar.json +37 -14
- package/src/i18n/locales/ch.json +37 -14
- package/src/i18n/locales/cz.json +37 -14
- package/src/i18n/locales/de.json +37 -14
- package/src/i18n/locales/en.json +34 -12
- package/src/i18n/locales/es.json +37 -14
- package/src/i18n/locales/fi.json +37 -14
- package/src/i18n/locales/fr.json +37 -14
- package/src/i18n/locales/hu.json +37 -14
- package/src/i18n/locales/it.json +37 -14
- package/src/i18n/locales/ja.json +37 -14
- package/src/i18n/locales/ko.json +37 -14
- package/src/i18n/locales/la.json +37 -14
- package/src/i18n/locales/lt.json +37 -14
- package/src/i18n/locales/nl.json +37 -14
- package/src/i18n/locales/pl.json +37 -14
- package/src/i18n/locales/pt.json +37 -14
- package/src/i18n/locales/ru.json +37 -14
- package/src/i18n/locales/se.json +37 -14
- package/src/i18n/locales/th.json +37 -14
- package/src/i18n/locales/tr.json +37 -14
- package/src/i18n/locales/{ua.json → uk.json} +37 -14
- package/src/i18n/locales/vi.json +37 -14
- package/src/types/slashCommandsTypes.ts +19 -0
- package/src/types/toolbarTypes.ts +1 -1
- package/dist/tiptapify.css +0 -1
- package/dist/tiptapify.mjs +0 -82239
- package/dist/tiptapify.umd.js +0 -202
|
@@ -1,7 +1,42 @@
|
|
|
1
1
|
import { Extension } from '@tiptap/core'
|
|
2
|
+
import { Editor } from '@tiptap/core'
|
|
2
3
|
import Suggestion from '@tiptap/suggestion'
|
|
4
|
+
import { VueRenderer, posToDOMRect } from '@tiptap/vue-3'
|
|
5
|
+
import { computePosition, flip, shift } from '@floating-ui/dom'
|
|
6
|
+
import { useLocale } from '@tiptapify/i18n'
|
|
7
|
+
import CommandsList from '@tiptapify/extensions/components/slashCommands/CommandsList.vue'
|
|
8
|
+
import PickerDialog from '@tiptapify/extensions/components/slashCommands/PickerDialog.vue'
|
|
9
|
+
import { PickerEventBus } from '@tiptapify/extensions/PickerEventBus'
|
|
10
|
+
import { defaultSlashCommandIds, slashCommandMap } from '@tiptapify/extensions/components/slashCommands/suggestion'
|
|
11
|
+
import { SlashCommandId } from '@tiptapify/types/slashCommandsTypes'
|
|
3
12
|
|
|
4
|
-
|
|
13
|
+
const updatePosition = (editor: Editor, element: HTMLElement) => {
|
|
14
|
+
const virtualElement = {
|
|
15
|
+
getBoundingClientRect: () => posToDOMRect(editor.view, editor.state.selection.from, editor.state.selection.to),
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
computePosition(virtualElement, element, {
|
|
19
|
+
placement: 'bottom-start',
|
|
20
|
+
strategy: 'absolute',
|
|
21
|
+
middleware: [shift(), flip()],
|
|
22
|
+
}).then(({ x, y, strategy }) => {
|
|
23
|
+
element.style.width = 'max-content'
|
|
24
|
+
element.style.position = strategy
|
|
25
|
+
element.style.left = `${x}px`
|
|
26
|
+
element.style.top = `${y}px`
|
|
27
|
+
})
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type SlashCommandsExtensionOptions = {
|
|
31
|
+
suggestion?: {
|
|
32
|
+
char?: string
|
|
33
|
+
command?: ({ editor, range, props }: { editor: Editor, range: any, props: any }) => void
|
|
34
|
+
allowedCommands?: SlashCommandId[]
|
|
35
|
+
render?: () => any
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export default Extension.create<SlashCommandsExtensionOptions>(
|
|
5
40
|
{
|
|
6
41
|
name: 'slash-commands',
|
|
7
42
|
|
|
@@ -9,20 +44,145 @@ export default Extension.create(
|
|
|
9
44
|
return {
|
|
10
45
|
suggestion: {
|
|
11
46
|
char: '/',
|
|
12
|
-
|
|
13
|
-
props.command({editor, range})
|
|
14
|
-
},
|
|
47
|
+
allowedCommands: defaultSlashCommandIds,
|
|
15
48
|
},
|
|
16
49
|
}
|
|
17
50
|
},
|
|
18
51
|
|
|
19
52
|
addProseMirrorPlugins() {
|
|
53
|
+
const allowedCommands = this.options.suggestion?.allowedCommands ?? defaultSlashCommandIds
|
|
54
|
+
const customCommand = this.options.suggestion?.command
|
|
55
|
+
const char = this.options.suggestion?.char ?? '/'
|
|
56
|
+
|
|
57
|
+
let component: VueRenderer | null = null
|
|
58
|
+
let pickerComponent: VueRenderer | null = null
|
|
59
|
+
|
|
60
|
+
const items = ({ query }: { query: string }) => {
|
|
61
|
+
const lowerQuery = query.toLowerCase()
|
|
62
|
+
return allowedCommands
|
|
63
|
+
.map(id => {
|
|
64
|
+
const cmd = slashCommandMap[id]
|
|
65
|
+
if (cmd.isPicker) {
|
|
66
|
+
return {
|
|
67
|
+
...cmd,
|
|
68
|
+
id,
|
|
69
|
+
pickerType: id === 'emoji' ? 'emoji' : 'charmap'
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return { ...cmd, id }
|
|
73
|
+
})
|
|
74
|
+
.filter((cmd: any) => {
|
|
75
|
+
if (!query) return true
|
|
76
|
+
return cmd.title.toLowerCase().includes(lowerQuery) || cmd.id.toLowerCase().includes(lowerQuery)
|
|
77
|
+
})
|
|
78
|
+
.slice(0, 20)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const closePicker = () => {
|
|
82
|
+
if (pickerComponent) {
|
|
83
|
+
pickerComponent.element.remove()
|
|
84
|
+
pickerComponent.destroy()
|
|
85
|
+
pickerComponent = null
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
PickerEventBus.on('close', () => {
|
|
90
|
+
closePicker()
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
const command = ({ editor, range, props }: { editor: Editor, range: any, props: any }) => {
|
|
94
|
+
if (customCommand) {
|
|
95
|
+
customCommand({ editor, range, props })
|
|
96
|
+
} else if (props.command) {
|
|
97
|
+
props.command({ editor, range })
|
|
98
|
+
} else if (props.isPicker && props.pickerType) {
|
|
99
|
+
editor.chain().focus().deleteRange(range).run()
|
|
100
|
+
closePicker()
|
|
101
|
+
|
|
102
|
+
const { t } = useLocale()
|
|
103
|
+
|
|
104
|
+
pickerComponent = new VueRenderer(PickerDialog, {
|
|
105
|
+
props: {
|
|
106
|
+
editor,
|
|
107
|
+
t,
|
|
108
|
+
type: props.pickerType,
|
|
109
|
+
},
|
|
110
|
+
editor,
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
const element = pickerComponent.element as HTMLElement
|
|
114
|
+
element.style.position = 'fixed'
|
|
115
|
+
element.style.zIndex = '9999'
|
|
116
|
+
element.style.inset = '0'
|
|
117
|
+
element.style.display = 'flex'
|
|
118
|
+
element.style.alignItems = 'center'
|
|
119
|
+
element.style.justifyContent = 'center'
|
|
120
|
+
|
|
121
|
+
document.body.appendChild(element)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
20
125
|
return [
|
|
21
|
-
Suggestion(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
126
|
+
Suggestion({
|
|
127
|
+
editor: this.editor,
|
|
128
|
+
char,
|
|
129
|
+
command,
|
|
130
|
+
items,
|
|
131
|
+
render: () => ({
|
|
132
|
+
onStart: (props: any) => {
|
|
133
|
+
component = new VueRenderer(CommandsList, {
|
|
134
|
+
props,
|
|
135
|
+
editor: props.editor,
|
|
136
|
+
})
|
|
137
|
+
|
|
138
|
+
if (!props.clientRect) {
|
|
139
|
+
return
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const element = component.element as HTMLElement
|
|
143
|
+
element.style.position = 'absolute'
|
|
144
|
+
|
|
145
|
+
document.body.appendChild(element)
|
|
146
|
+
|
|
147
|
+
updatePosition(props.editor, element)
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
onUpdate: (props: any) => {
|
|
151
|
+
if (component) {
|
|
152
|
+
component.updateProps(props)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (!props.clientRect) {
|
|
156
|
+
return
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const element = component?.element as HTMLElement | undefined
|
|
160
|
+
if (element) {
|
|
161
|
+
updatePosition(props.editor, element)
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
onKeyDown: (props: any) => {
|
|
166
|
+
if (props.event.key === 'Escape') {
|
|
167
|
+
closePicker()
|
|
168
|
+
return true
|
|
169
|
+
}
|
|
170
|
+
return component?.ref?.onKeyDown(props)
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
onExit: () => {
|
|
174
|
+
closePicker()
|
|
175
|
+
if (component) {
|
|
176
|
+
component.destroy()
|
|
177
|
+
const element = component.element as HTMLElement | null
|
|
178
|
+
if (element?.parentNode) {
|
|
179
|
+
element.parentNode.removeChild(element)
|
|
180
|
+
}
|
|
181
|
+
component = null
|
|
182
|
+
}
|
|
183
|
+
},
|
|
25
184
|
}),
|
|
185
|
+
}),
|
|
26
186
|
]
|
|
27
187
|
},
|
|
28
|
-
})
|
|
188
|
+
})
|
package/src/i18n/locales/ar.json
CHANGED
|
@@ -44,16 +44,19 @@
|
|
|
44
44
|
"image": "صورة",
|
|
45
45
|
"emoji": {
|
|
46
46
|
"title": "رموز تعبيرية",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
"search": "البحث عن رموز تعبيرية...",
|
|
48
|
+
"categories": {
|
|
49
|
+
"activities": "أنشطة",
|
|
50
|
+
"animals_and_nature": "حيوانات وطبيعة",
|
|
51
|
+
"component": "مكون",
|
|
52
|
+
"flags": "أعلام",
|
|
53
|
+
"food_and_drink": "طعام وشراب",
|
|
54
|
+
"objects": "أشياء",
|
|
55
|
+
"people_and_body": "أشخاص وجسد",
|
|
56
|
+
"smileys_and_emotion": "ابتسامات ومشاعر",
|
|
57
|
+
"symbols": "رموز",
|
|
58
|
+
"travel_and_places": "سفر وأماكن"
|
|
59
|
+
}
|
|
57
60
|
},
|
|
58
61
|
"tables": {
|
|
59
62
|
"table": "جدول",
|
|
@@ -73,7 +76,26 @@
|
|
|
73
76
|
"mergeCells": "دمج الخلايا",
|
|
74
77
|
"splitCell": "تقسيم الخلية"
|
|
75
78
|
},
|
|
76
|
-
"video": "فيديو"
|
|
79
|
+
"video": "فيديو",
|
|
80
|
+
"charmap": {
|
|
81
|
+
"title": "إدراج حرف خاص",
|
|
82
|
+
"search": "بحث عن أحرف...",
|
|
83
|
+
"noResults": "لم يتم العثور على أحرف مطابقة",
|
|
84
|
+
"categories": {
|
|
85
|
+
"punctuation": "ترقيم",
|
|
86
|
+
"symbols": "رموز",
|
|
87
|
+
"math": "رياضيات",
|
|
88
|
+
"currency": "عملة",
|
|
89
|
+
"greek": "حروف يونانية",
|
|
90
|
+
"extended_letters": "حروف موسعة",
|
|
91
|
+
"diacritics": "علامات تشكيلية",
|
|
92
|
+
"typography": "طباعة",
|
|
93
|
+
"cyrillic": "سيريلية",
|
|
94
|
+
"hebrew": "عبرية",
|
|
95
|
+
"arrows": "أسهم",
|
|
96
|
+
"box_drawing": "رسم صناديق"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
},
|
|
78
100
|
"action": {
|
|
79
101
|
"undo": "تراجع",
|
|
@@ -109,12 +131,13 @@
|
|
|
109
131
|
"src_invalid": "عنوان URL المدخل غير صالح"
|
|
110
132
|
},
|
|
111
133
|
"image": {
|
|
112
|
-
"title": "
|
|
134
|
+
"title": "العنوان",
|
|
113
135
|
"src": "المصدر",
|
|
114
136
|
"keep_ratio": "الحفاظ على نسبة العرض إلى الارتفاع",
|
|
115
137
|
"alt": "نص بديل",
|
|
116
138
|
"width": "العرض",
|
|
117
|
-
"height": "الارتفاع"
|
|
139
|
+
"height": "الارتفاع",
|
|
140
|
+
"dialog_title": "إضافة/تعديل صورة"
|
|
118
141
|
},
|
|
119
142
|
"link": {
|
|
120
143
|
"title": "إضافة/تعديل رابط",
|
|
@@ -150,4 +173,4 @@
|
|
|
150
173
|
"words": "كلمات",
|
|
151
174
|
"chars": "حروف"
|
|
152
175
|
}
|
|
153
|
-
}
|
|
176
|
+
}
|
package/src/i18n/locales/ch.json
CHANGED
|
@@ -44,16 +44,19 @@
|
|
|
44
44
|
"image": "图片",
|
|
45
45
|
"emoji": {
|
|
46
46
|
"title": "表情符号",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
"search": "搜索表情符号...",
|
|
48
|
+
"categories": {
|
|
49
|
+
"activities": "活动",
|
|
50
|
+
"animals_and_nature": "动物与自然",
|
|
51
|
+
"component": "组件",
|
|
52
|
+
"flags": "旗帜",
|
|
53
|
+
"food_and_drink": "食物与饮料",
|
|
54
|
+
"objects": "物品",
|
|
55
|
+
"people_and_body": "人物与身体",
|
|
56
|
+
"smileys_and_emotion": "笑脸与情感",
|
|
57
|
+
"symbols": "符号",
|
|
58
|
+
"travel_and_places": "旅行与地点"
|
|
59
|
+
}
|
|
57
60
|
},
|
|
58
61
|
"tables": {
|
|
59
62
|
"table": "表格",
|
|
@@ -73,7 +76,26 @@
|
|
|
73
76
|
"mergeCells": "合并单元格",
|
|
74
77
|
"splitCell": "拆分单元格"
|
|
75
78
|
},
|
|
76
|
-
"video": "视频"
|
|
79
|
+
"video": "视频",
|
|
80
|
+
"charmap": {
|
|
81
|
+
"title": "插入特殊字符",
|
|
82
|
+
"search": "搜索字符...",
|
|
83
|
+
"noResults": "未找到匹配的字符",
|
|
84
|
+
"categories": {
|
|
85
|
+
"punctuation": "标点符号",
|
|
86
|
+
"symbols": "符号",
|
|
87
|
+
"math": "数学",
|
|
88
|
+
"currency": "货币",
|
|
89
|
+
"greek": "希腊字母",
|
|
90
|
+
"extended_letters": "扩展字母",
|
|
91
|
+
"diacritics": "变音符号",
|
|
92
|
+
"typography": "印刷符号",
|
|
93
|
+
"cyrillic": "西里尔字母",
|
|
94
|
+
"hebrew": "希伯来字母",
|
|
95
|
+
"arrows": "箭头",
|
|
96
|
+
"box_drawing": "制图符号"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
},
|
|
78
100
|
"action": {
|
|
79
101
|
"undo": "撤销",
|
|
@@ -109,12 +131,13 @@
|
|
|
109
131
|
"src_invalid": "输入的URL无效"
|
|
110
132
|
},
|
|
111
133
|
"image": {
|
|
112
|
-
"title": "
|
|
134
|
+
"title": "标题",
|
|
113
135
|
"src": "源",
|
|
114
136
|
"keep_ratio": "保持比例",
|
|
115
137
|
"alt": "替代文本",
|
|
116
138
|
"width": "宽度",
|
|
117
|
-
"height": "高度"
|
|
139
|
+
"height": "高度",
|
|
140
|
+
"dialog_title": "添加/修改图片"
|
|
118
141
|
},
|
|
119
142
|
"link": {
|
|
120
143
|
"title": "添加/修改链接",
|
|
@@ -150,4 +173,4 @@
|
|
|
150
173
|
"words": "单词",
|
|
151
174
|
"chars": "字符"
|
|
152
175
|
}
|
|
153
|
-
}
|
|
176
|
+
}
|
package/src/i18n/locales/cz.json
CHANGED
|
@@ -44,16 +44,19 @@
|
|
|
44
44
|
"image": "Obrázek",
|
|
45
45
|
"emoji": {
|
|
46
46
|
"title": "Emoji",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
"search": "Hledat emoji...",
|
|
48
|
+
"categories": {
|
|
49
|
+
"activities": "Aktivity",
|
|
50
|
+
"animals_and_nature": "Zvířata a příroda",
|
|
51
|
+
"component": "Komponenta",
|
|
52
|
+
"flags": "Vlajky",
|
|
53
|
+
"food_and_drink": "Jídlo a nápoje",
|
|
54
|
+
"objects": "Objekty",
|
|
55
|
+
"people_and_body": "Lidé a tělo",
|
|
56
|
+
"smileys_and_emotion": "Úsměvy a emoce",
|
|
57
|
+
"symbols": "Symboly",
|
|
58
|
+
"travel_and_places": "Cestování a místa"
|
|
59
|
+
}
|
|
57
60
|
},
|
|
58
61
|
"tables": {
|
|
59
62
|
"table": "Tabulka",
|
|
@@ -73,7 +76,26 @@
|
|
|
73
76
|
"mergeCells": "Sloučit buňky",
|
|
74
77
|
"splitCell": "Rozdělit buňku"
|
|
75
78
|
},
|
|
76
|
-
"video": "Video"
|
|
79
|
+
"video": "Video",
|
|
80
|
+
"charmap": {
|
|
81
|
+
"title": "Vložit speciální znak",
|
|
82
|
+
"search": "Hledat znaky...",
|
|
83
|
+
"noResults": "Nebyly nalezeny žádné odpovídající znaky",
|
|
84
|
+
"categories": {
|
|
85
|
+
"punctuation": "Interpunkce",
|
|
86
|
+
"symbols": "Symboly",
|
|
87
|
+
"math": "Matematika",
|
|
88
|
+
"currency": "Měna",
|
|
89
|
+
"greek": "Řecká písmena",
|
|
90
|
+
"extended_letters": "Rozšířená písmena",
|
|
91
|
+
"diacritics": "Diakritika",
|
|
92
|
+
"typography": "Typografie",
|
|
93
|
+
"cyrillic": "Azbuky",
|
|
94
|
+
"hebrew": "Hebrejština",
|
|
95
|
+
"arrows": "Šipky",
|
|
96
|
+
"box_drawing": "Kreslení rámečků"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
},
|
|
78
100
|
"action": {
|
|
79
101
|
"undo": "Zpět",
|
|
@@ -109,12 +131,13 @@
|
|
|
109
131
|
"src_invalid": "Zadaná URL adresa je neplatná"
|
|
110
132
|
},
|
|
111
133
|
"image": {
|
|
112
|
-
"title": "
|
|
134
|
+
"title": "Název",
|
|
113
135
|
"src": "Zdroj",
|
|
114
136
|
"keep_ratio": "Udržet poměr stran",
|
|
115
137
|
"alt": "alt",
|
|
116
138
|
"width": "Šířka",
|
|
117
|
-
"height": "Výška"
|
|
139
|
+
"height": "Výška",
|
|
140
|
+
"dialog_title": "Přidání/úprava obrázku"
|
|
118
141
|
},
|
|
119
142
|
"link": {
|
|
120
143
|
"title": "Přidání/úprava odkazu",
|
|
@@ -150,4 +173,4 @@
|
|
|
150
173
|
"words": "slova",
|
|
151
174
|
"chars": "znaky"
|
|
152
175
|
}
|
|
153
|
-
}
|
|
176
|
+
}
|
package/src/i18n/locales/de.json
CHANGED
|
@@ -44,16 +44,19 @@
|
|
|
44
44
|
"image": "Bild",
|
|
45
45
|
"emoji": {
|
|
46
46
|
"title": "Emoji",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
"search": "Emoji suchen...",
|
|
48
|
+
"categories": {
|
|
49
|
+
"activities": "Aktivitäten",
|
|
50
|
+
"animals_and_nature": "Tiere & Natur",
|
|
51
|
+
"component": "Komponente",
|
|
52
|
+
"flags": "Flaggen",
|
|
53
|
+
"food_and_drink": "Essen und Trinken",
|
|
54
|
+
"objects": "Objekte",
|
|
55
|
+
"people_and_body": "Menschen & Körper",
|
|
56
|
+
"smileys_and_emotion": "Smileys und Emotionen",
|
|
57
|
+
"symbols": "Symbole",
|
|
58
|
+
"travel_and_places": "Reisen und Orte"
|
|
59
|
+
}
|
|
57
60
|
},
|
|
58
61
|
"tables": {
|
|
59
62
|
"table": "Tabelle",
|
|
@@ -73,7 +76,26 @@
|
|
|
73
76
|
"mergeCells": "Zellen zusammenführen",
|
|
74
77
|
"splitCell": "Zelle teilen"
|
|
75
78
|
},
|
|
76
|
-
"video": "Video"
|
|
79
|
+
"video": "Video",
|
|
80
|
+
"charmap": {
|
|
81
|
+
"title": "Sonderzeichen einfügen",
|
|
82
|
+
"search": "Zeichen suchen...",
|
|
83
|
+
"noResults": "Keine passenden Zeichen gefunden",
|
|
84
|
+
"categories": {
|
|
85
|
+
"punctuation": "Zeichensetzung",
|
|
86
|
+
"symbols": "Symbole",
|
|
87
|
+
"math": "Mathematik",
|
|
88
|
+
"currency": "Währung",
|
|
89
|
+
"greek": "Griechische Buchstaben",
|
|
90
|
+
"extended_letters": "Erweiterte Buchstaben",
|
|
91
|
+
"diacritics": "Diakritika",
|
|
92
|
+
"typography": "Typografie",
|
|
93
|
+
"cyrillic": "Kyrillisch",
|
|
94
|
+
"hebrew": "Hebräisch",
|
|
95
|
+
"arrows": "Pfeile",
|
|
96
|
+
"box_drawing": "Rahmenzeichen"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
},
|
|
78
100
|
"action": {
|
|
79
101
|
"undo": "Rückgängig",
|
|
@@ -109,12 +131,13 @@
|
|
|
109
131
|
"src_invalid": "Die eingegebene URL ist ungültig"
|
|
110
132
|
},
|
|
111
133
|
"image": {
|
|
112
|
-
"title": "
|
|
134
|
+
"title": "Titel",
|
|
113
135
|
"src": "Quelle",
|
|
114
136
|
"keep_ratio": "Seitenverhältnis beibehalten",
|
|
115
137
|
"alt": "alt",
|
|
116
138
|
"width": "Breite",
|
|
117
|
-
"height": "Höhe"
|
|
139
|
+
"height": "Höhe",
|
|
140
|
+
"dialog_title": "Bild hinzufügen/ändern"
|
|
118
141
|
},
|
|
119
142
|
"link": {
|
|
120
143
|
"title": "Link hinzufügen/ändern",
|
|
@@ -150,4 +173,4 @@
|
|
|
150
173
|
"words": "Wörter",
|
|
151
174
|
"chars": "Zeichen"
|
|
152
175
|
}
|
|
153
|
-
}
|
|
176
|
+
}
|
package/src/i18n/locales/en.json
CHANGED
|
@@ -44,16 +44,19 @@
|
|
|
44
44
|
"image": "Image",
|
|
45
45
|
"emoji": {
|
|
46
46
|
"title": "Emoji",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
"search": "Search emoji...",
|
|
48
|
+
"categories": {
|
|
49
|
+
"activities": "Activities",
|
|
50
|
+
"animals_and_nature": "Animals & nature",
|
|
51
|
+
"component": "Component",
|
|
52
|
+
"flags": "Flags",
|
|
53
|
+
"food_and_drink": "Food and drink",
|
|
54
|
+
"objects": "Objects",
|
|
55
|
+
"people_and_body": "People & body",
|
|
56
|
+
"smileys_and_emotion": "Smileys and emotion",
|
|
57
|
+
"symbols": "Symbols",
|
|
58
|
+
"travel_and_places": "Travel and places"
|
|
59
|
+
}
|
|
57
60
|
},
|
|
58
61
|
"tables": {
|
|
59
62
|
"table": "Table",
|
|
@@ -73,7 +76,26 @@
|
|
|
73
76
|
"mergeCells": "Merge cells",
|
|
74
77
|
"splitCell": "Split cell"
|
|
75
78
|
},
|
|
76
|
-
"video": "Video"
|
|
79
|
+
"video": "Video",
|
|
80
|
+
"charmap": {
|
|
81
|
+
"title": "Special characters",
|
|
82
|
+
"search": "Search characters...",
|
|
83
|
+
"noResults": "No matching characters found",
|
|
84
|
+
"categories": {
|
|
85
|
+
"punctuation": "Punctuation",
|
|
86
|
+
"symbols": "Symbols",
|
|
87
|
+
"math": "Math",
|
|
88
|
+
"currency": "Currency",
|
|
89
|
+
"greek": "Greek letters",
|
|
90
|
+
"extended_letters": "Extended letters",
|
|
91
|
+
"diacritics": "Diacritics",
|
|
92
|
+
"typography": "Typography",
|
|
93
|
+
"cyrillic": "Cyrillic",
|
|
94
|
+
"hebrew": "Hebrew",
|
|
95
|
+
"arrows": "Arrows",
|
|
96
|
+
"box_drawing": "Box drawing"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
},
|
|
78
100
|
"action": {
|
|
79
101
|
"undo": "Undo",
|
|
@@ -150,4 +172,4 @@
|
|
|
150
172
|
"words": "words",
|
|
151
173
|
"chars": "characters"
|
|
152
174
|
}
|
|
153
|
-
}
|
|
175
|
+
}
|
package/src/i18n/locales/es.json
CHANGED
|
@@ -44,16 +44,19 @@
|
|
|
44
44
|
"image": "Imagen",
|
|
45
45
|
"emoji": {
|
|
46
46
|
"title": "Emoji",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
"search": "Buscar emoji...",
|
|
48
|
+
"categories": {
|
|
49
|
+
"activities": "Actividades",
|
|
50
|
+
"animals_and_nature": "Animales y naturaleza",
|
|
51
|
+
"component": "Componente",
|
|
52
|
+
"flags": "Banderas",
|
|
53
|
+
"food_and_drink": "Comida y bebida",
|
|
54
|
+
"objects": "Objetos",
|
|
55
|
+
"people_and_body": "Personas y cuerpo",
|
|
56
|
+
"smileys_and_emotion": "Caritas y emociones",
|
|
57
|
+
"symbols": "Símbolos",
|
|
58
|
+
"travel_and_places": "Viajes y lugares"
|
|
59
|
+
}
|
|
57
60
|
},
|
|
58
61
|
"tables": {
|
|
59
62
|
"table": "Tabla",
|
|
@@ -73,7 +76,26 @@
|
|
|
73
76
|
"mergeCells": "Fusionar celdas",
|
|
74
77
|
"splitCell": "Dividir celda"
|
|
75
78
|
},
|
|
76
|
-
"video": "Video"
|
|
79
|
+
"video": "Video",
|
|
80
|
+
"charmap": {
|
|
81
|
+
"title": "Insertar carácter especial",
|
|
82
|
+
"search": "Buscar caracteres...",
|
|
83
|
+
"noResults": "No se encontraron caracteres coincidentes",
|
|
84
|
+
"categories": {
|
|
85
|
+
"punctuation": "Puntuación",
|
|
86
|
+
"symbols": "Símbolos",
|
|
87
|
+
"math": "Matemáticas",
|
|
88
|
+
"currency": "Divisa",
|
|
89
|
+
"greek": "Letras griegas",
|
|
90
|
+
"extended_letters": "Letras extendidas",
|
|
91
|
+
"diacritics": "Diacríticos",
|
|
92
|
+
"typography": "Tipografía",
|
|
93
|
+
"cyrillic": "Cirílico",
|
|
94
|
+
"hebrew": "Hebreo",
|
|
95
|
+
"arrows": "Flechas",
|
|
96
|
+
"box_drawing": "Dibujo de cajas"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
},
|
|
78
100
|
"action": {
|
|
79
101
|
"undo": "Deshacer",
|
|
@@ -109,12 +131,13 @@
|
|
|
109
131
|
"src_invalid": "La URL ingresada es inválida"
|
|
110
132
|
},
|
|
111
133
|
"image": {
|
|
112
|
-
"title": "
|
|
134
|
+
"title": "Título",
|
|
113
135
|
"src": "Fuente",
|
|
114
136
|
"keep_ratio": "Mantener proporción",
|
|
115
137
|
"alt": "alt",
|
|
116
138
|
"width": "Ancho",
|
|
117
|
-
"height": "Alto"
|
|
139
|
+
"height": "Alto",
|
|
140
|
+
"dialog_title": "Agregar/modificar imagen"
|
|
118
141
|
},
|
|
119
142
|
"link": {
|
|
120
143
|
"title": "Agregar/modificar enlace",
|
|
@@ -150,4 +173,4 @@
|
|
|
150
173
|
"words": "palabras",
|
|
151
174
|
"chars": "caracteres"
|
|
152
175
|
}
|
|
153
|
-
}
|
|
176
|
+
}
|