tiptapify 0.0.10 → 0.0.11

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.
Files changed (46) hide show
  1. package/README.md +1 -1
  2. package/dist/tiptapify.css +1 -1
  3. package/dist/tiptapify.mjs +17514 -17174
  4. package/dist/tiptapify.umd.js +37 -38
  5. package/package.json +40 -40
  6. package/src/components/Tiptapify.vue +2 -2
  7. package/src/components/Toolbar/GroupBtn.vue +2 -2
  8. package/src/components/Toolbar/GroupDropdown.vue +4 -4
  9. package/src/components/Toolbar/Index.vue +3 -2
  10. package/src/components/Toolbar/Items.vue +2 -2
  11. package/src/components/Toolbar/Toggle.vue +2 -2
  12. package/src/components/Toolbar/items.ts +20 -20
  13. package/src/components/editorExtensions.ts +1 -1
  14. package/src/{components/Toolbar/items/actions.ts → composables/Toolbar/useActionsItems.ts} +6 -3
  15. package/src/{components/Toolbar/items/alignment.ts → composables/Toolbar/useAlignmentItems.ts} +12 -9
  16. package/src/{components/Toolbar/items/formatExtra.ts → composables/Toolbar/useFormatExtraItems.ts} +9 -6
  17. package/src/{components/Toolbar/items/format.ts → composables/Toolbar/useFormatItems.ts} +8 -5
  18. package/src/{components/Toolbar/items/list.ts → composables/Toolbar/useListItems.ts} +14 -11
  19. package/src/{components/Toolbar/items/media.ts → composables/Toolbar/useMediaItems.ts} +22 -20
  20. package/src/{components/Toolbar/items/misc.ts → composables/Toolbar/useMiscItems.ts} +9 -6
  21. package/src/{components/Toolbar/items/style.ts → composables/Toolbar/useStyleItems.ts} +106 -79
  22. package/src/{components/Toolbar/fonts.ts → constants/style.ts} +21 -0
  23. package/src/extensions/components/FontFamily.vue +82 -0
  24. package/src/extensions/components/FontSize.vue +83 -0
  25. package/src/extensions/components/LineHeight.vue +82 -0
  26. package/src/extensions/components/LinkDialog.vue +20 -4
  27. package/src/extensions/components/ShowSourceDialog.vue +3 -2
  28. package/src/extensions/link.ts +8 -0
  29. package/src/extensions/slash-commands.ts +1 -1
  30. package/src/i18n/index.ts +0 -1
  31. package/src/i18n/locales/ch.json +83 -82
  32. package/src/i18n/locales/cz.json +30 -29
  33. package/src/i18n/locales/de.json +26 -25
  34. package/src/i18n/locales/en.json +1 -0
  35. package/src/i18n/locales/es.json +28 -27
  36. package/src/i18n/locales/fr.json +28 -27
  37. package/src/i18n/locales/it.json +30 -29
  38. package/src/i18n/locales/la.json +60 -59
  39. package/src/i18n/locales/lt.json +36 -35
  40. package/src/i18n/locales/nl.json +29 -28
  41. package/src/i18n/locales/pl.json +30 -29
  42. package/src/i18n/locales/pt.json +28 -27
  43. package/src/i18n/locales/ru.json +1 -0
  44. package/src/i18n/locales/se.json +29 -28
  45. package/src/i18n/locales/ua.json +1 -0
  46. /package/src/{components → extensions/components}/CodeBlockComponent.vue +0 -0
@@ -0,0 +1,82 @@
1
+ <script setup lang="ts">
2
+
3
+ import { Editor } from "@tiptap/vue-3";
4
+
5
+ import { computed, inject, Ref, ref } from 'vue'
6
+ import { useI18n } from "vue-i18n";
7
+
8
+ const props = defineProps({
9
+ lineHeights: { type: Array<number>, default () { return [] } },
10
+ lineHeight: { type: Number, default () { return null } },
11
+ })
12
+
13
+ const { t } = useI18n();
14
+
15
+ const emit = defineEmits(['close'])
16
+
17
+ const editor = inject('tiptapifyEditor') as Ref<Editor>
18
+
19
+ const initialLineHeight = ref(computed(() => props.lineHeight).value)
20
+
21
+ const lineHeightSelected = ref<boolean>(false)
22
+
23
+ function hoverLineHeight(lineHeight: number) {
24
+ lineHeightSelected.value = false
25
+
26
+ editor.value.chain().focus().setLineHeight(lineHeight.toString()).run()
27
+ }
28
+
29
+ function resetLineHeight() {
30
+ if (lineHeightSelected.value) {
31
+ return
32
+ }
33
+
34
+ initialLineHeight.value
35
+ ? editor.value.chain().focus().setLineHeight(initialLineHeight.value.toString()).run()
36
+ : editor.value.chain().focus().unsetLineHeight().run()
37
+ }
38
+
39
+ function clearLineHeight() {
40
+ editor.value.chain().focus().unsetLineHeight().run()
41
+ emit('close')
42
+ }
43
+
44
+ function setLineHeight() {
45
+ lineHeightSelected.value = true
46
+
47
+ emit('close')
48
+ }
49
+
50
+ function isLineHeightActive(lineHeight: number): boolean {
51
+ return editor.value.isActive('textStyle', { lineHeight }) || lineHeight === initialLineHeight.value
52
+ }
53
+ </script>
54
+
55
+ <template>
56
+ <VList class="tiptapify-line-height-list">
57
+ <VListItem :disabled="lineHeight === null" density="compact" @click="clearLineHeight">
58
+ <VListItemTitle class="font-italic text-grey-darken-1">
59
+ {{ t('defaultValue') }}
60
+ </VListItemTitle>
61
+ </VListItem>
62
+ <VListItem
63
+ v-for="lineHeight in lineHeights"
64
+ :active="isLineHeightActive(lineHeight)"
65
+ :color="lineHeight === initialLineHeight ? 'primary' : ''"
66
+ density="compact"
67
+ @click="setLineHeight"
68
+ @mouseover="hoverLineHeight(lineHeight)"
69
+ @mouseleave="resetLineHeight"
70
+ >
71
+ <VListItemTitle>
72
+ {{ lineHeight }}
73
+ </VListItemTitle>
74
+ </VListItem>
75
+ </VList>
76
+ </template>
77
+
78
+ <style lang="scss" scoped>
79
+ .tiptapify-line-height-list {
80
+ max-height: 390px;
81
+ }
82
+ </style>
@@ -63,7 +63,7 @@ function close() {
63
63
  }
64
64
 
65
65
  const showLink = (event: CustomEvent) => {
66
- attrs.value.href = event.detail.link?.href
66
+ attrs.value.href = event.detail.link?.href ?? ''
67
67
  attrs.value.target = targetAttrs.value.find(item => item.value === event.detail.link?.target) ?? targetAttrs[0]
68
68
  attrs.value.rel = event.detail.link?.rel?.split(' ')
69
69
  attrs.value.cssClass = event.detail.link?.class
@@ -80,9 +80,25 @@ onUnmounted(() => {
80
80
  })
81
81
 
82
82
  watch(() => attrs.value.href, () => {
83
- const regex = new RegExp(/^((https?|ftps?|sftp):\/\/[a-z0-9]+(\.[a-z0-9]+)+|mailto:\w+@[a-z]+(\.[a-z]+)*|tel:\+?\d+)$/, 'igu')
83
+ const azAZ09 = 'a-zA-Z0-9'
84
84
 
85
- hrefInvalid.value = !regex.test(attrs.value.href)
85
+ const regexHrefProto = 'https?:\\/\\/'
86
+ const regexHrefAuth = `([${azAZ09}]+(:[${azAZ09}]+)?@)?`
87
+ const regexHrefDomain = `[${azAZ09}]+(\\.[${azAZ09}]+(-?[${azAZ09}]+)?)+`
88
+ const regexHrefPath = `(\\/[${azAZ09}\\-]+)*`
89
+ const regexHrefFragment = '(#[^\\s]*)?'
90
+ const regexHrefQueryParam = `(\\?[${azAZ09}\\-_]+((\\[[${azAZ09}]+\\])?=[${azAZ09}\\-_%]+)?)?`
91
+ const regexHrefQueryParamExtra = `(&[${azAZ09}\\-_]+((\\[[${azAZ09}]+\\])?=[${azAZ09}\\-_%]+)?)*`
92
+ const regexHref = `${regexHrefProto}${regexHrefAuth}${regexHrefDomain}${regexHrefPath}${regexHrefFragment}${regexHrefQueryParam}${regexHrefQueryParamExtra}`
93
+
94
+ const regexMailto = `mailto:\\w+@[${azAZ09}]+(\\.[${azAZ09}]+)*`
95
+ const regexTel = 'tel:\\+?[0-9]+'
96
+
97
+ const regexAll = [regexHref, regexMailto, regexTel].join('|')
98
+
99
+ const regex = new RegExp(`^(${regexAll})$`, 'i')
100
+
101
+ hrefInvalid.value = attrs.value.href !== '' && !regex.test(attrs.value.href)
86
102
  })
87
103
  </script>
88
104
 
@@ -146,7 +162,7 @@ watch(() => attrs.value.href, () => {
146
162
  <VBtn :variant="variantBtn" @click="close" class="mr-2">
147
163
  {{ t('dialog.close') }}
148
164
  </VBtn>
149
- <VBtn color="primary" :variant="variantBtn" :disabled="isDisabled" @click="apply">
165
+ <VBtn color="primary" :variant="variantBtn" :disabled="isDisabled || hrefInvalid" @click="apply">
150
166
  {{ t('dialog.apply') }}
151
167
  </VBtn>
152
168
  </VCol>
@@ -19,9 +19,9 @@ const formatted = ref(false)
19
19
  const sourceCode = ref('')
20
20
 
21
21
  const formatHtml = (html: string): string => {
22
+ const singleTags = ['img', 'hr', 'br', 'input']
22
23
  let formatted = html.replace(/>/g, '>\n');
23
24
 
24
- formatted = formatted.replace(/\n</g, '\n<');
25
25
  formatted = formatted.replace(/([^>\n])</g, '$1\n<');
26
26
 
27
27
  const lines = formatted.split('\n');
@@ -35,7 +35,8 @@ const formatHtml = (html: string): string => {
35
35
 
36
36
  const indentedLine = ' '.repeat(indentLevel * props.indent) + line;
37
37
 
38
- if (line.match(/<[^\/][^>]*>/) && !line.match(/<.*\/>/)) {
38
+ const tag = line.match(/<\/?(\S+).*>/) ?? []
39
+ if (!singleTags.includes(tag[1] ?? '') && line.match(/<[^\/][^>]*>/) && !line.match(/<.*\/>/)) {
39
40
  indentLevel++;
40
41
  }
41
42
 
@@ -2,6 +2,14 @@ import Link from "@tiptap/extension-link";
2
2
 
3
3
  const name: string = 'link'
4
4
 
5
+ declare module '@tiptap/core' {
6
+ interface Commands<ReturnType> {
7
+ link: {
8
+ showLink: () => ReturnType
9
+ }
10
+ }
11
+ }
12
+
5
13
  export const TiptapifyLink = Link.extend({
6
14
  name,
7
15
 
@@ -9,7 +9,7 @@ export default Extension.create(
9
9
  return {
10
10
  suggestion: {
11
11
  char: '/',
12
- command: ({editor, range, props}) => {
12
+ command: ({ editor, range, props }) => {
13
13
  props.command({editor, range})
14
14
  },
15
15
  },
package/src/i18n/index.ts CHANGED
@@ -11,7 +11,6 @@ let _i18n: any = null
11
11
  export const getI18n = (locale: string) => {
12
12
  if (_i18n === null) {
13
13
  _i18n = createI18n({
14
- legacy: false,
15
14
  locale: locale,
16
15
  fallbackLocale: 'en',
17
16
  messages
@@ -1,118 +1,119 @@
1
1
  {
2
+ "defaultValue": "默认值",
2
3
  "content": {
3
- "placeholder": "Schriibä Sie öppis da..."
4
+ "placeholder": "写点什么..."
4
5
  },
5
6
  "style": {
6
- "paragraph": "Absatz",
7
- "heading": "Überschrift",
7
+ "paragraph": "段落",
8
+ "heading": "标题",
8
9
  "headings": {
9
- "h1": "Überschrift Stufe 1",
10
- "h2": "Überschrift Stufe 2",
11
- "h3": "Überschrift Stufe 3",
12
- "h4": "Überschrift Stufe 4",
13
- "h5": "Überschrift Stufe 5",
14
- "h6": "Überschrift Stufe 6"
10
+ "h1": "1级标题",
11
+ "h2": "2级标题",
12
+ "h3": "3级标题",
13
+ "h4": "4级标题",
14
+ "h5": "5级标题",
15
+ "h6": "6级标题"
15
16
  },
16
- "fontFamily": "Schriftart",
17
- "fontSize": "Schriftgrösse",
18
- "lineHeight": "Zylähöchi",
17
+ "fontFamily": "字体",
18
+ "fontSize": "大小",
19
+ "lineHeight": "行高",
19
20
  "color": {
20
- "highlight": "Markierigsfäru",
21
- "text": "Täxtfäru",
22
- "unset": "Färu entfärnä",
23
- "custom": "Benutzerdefinierti Färu"
21
+ "highlight": "高亮颜色",
22
+ "text": "文本颜色",
23
+ "unset": "清除颜色",
24
+ "custom": "自定义选择"
24
25
  }
25
26
  },
26
27
  "format": {
27
- "bold": "Fett",
28
- "italic": "Kursiv",
29
- "strike": "Durchgstrichä",
30
- "underline": "Unterstrichä",
31
- "sup": "Hochgstellt",
32
- "sub": "Tiefgstellt",
33
- "break": "Hartä Umbruch",
34
- "line": "Horizontali Linie",
35
- "blockquote": "Zitat",
36
- "code": "Code",
37
- "codeblock": "Code-Block",
38
- "formatClear": "Formatierig löschä"
28
+ "bold": "粗体",
29
+ "italic": "斜体",
30
+ "strike": "删除线",
31
+ "underline": "下划线",
32
+ "sup": "上标",
33
+ "sub": "下标",
34
+ "break": "换行",
35
+ "line": "水平线",
36
+ "blockquote": "引用",
37
+ "code": "代码",
38
+ "codeblock": "代码块",
39
+ "formatClear": "清除格式"
39
40
  },
40
41
  "media": {
41
- "link": "Äxtärnä Link",
42
- "image": "Bild",
42
+ "link": "外部链接",
43
+ "image": "图片",
43
44
  "tables": {
44
- "table": "Tabälle",
45
- "insertTable": "Tabälle yfügä",
46
- "deleteTable": "Tabälle löschä",
47
- "insertWithHeaderRow": "Tabälle mit Chopfzyle yfügä",
48
- "rows": "Zylä",
49
- "row": "Zyle",
50
- "insertRowBefore": "Zyle dervor yfügä",
51
- "insertRowAfter": "Zyle dernah yfügä",
52
- "deleteRow": "Zyle löschä",
53
- "cols": "Spaltä",
54
- "col": "Spalte",
55
- "insertColBefore": "Spalte dervor yfügä",
56
- "insertColAfter": "Spalte dernah yfügä",
57
- "deleteCol": "Spalte löschä",
58
- "mergeCells": "Zällä zämmäfüärä",
59
- "splitCell": "Zälle teilä"
45
+ "table": "表格",
46
+ "insertTable": "插入表格",
47
+ "deleteTable": "删除表格",
48
+ "insertWithHeaderRow": "插入带标题的表格",
49
+ "rows": "",
50
+ "row": "",
51
+ "insertRowBefore": "在前面插入行",
52
+ "insertRowAfter": "在后面插入行",
53
+ "deleteRow": "删除行",
54
+ "cols": "",
55
+ "col": "",
56
+ "insertColBefore": "在前面插入列",
57
+ "insertColAfter": "在后面插入列",
58
+ "deleteCol": "删除列",
59
+ "mergeCells": "合并单元格",
60
+ "splitCell": "拆分单元格"
60
61
  }
61
62
  },
62
63
  "action": {
63
- "undo": "Rückgängig",
64
- "redo": "Wiederholä"
64
+ "undo": "撤销",
65
+ "redo": "重做"
65
66
  },
66
- "alignment": "Usrichtig",
67
+ "alignment": "对齐",
67
68
  "alignments": {
68
- "left": "Links usrichtä",
69
- "center": "Zentriert usrichtä",
70
- "right": "Rächts usrichtä",
71
- "justify": "Blocksatz"
69
+ "left": "左对齐",
70
+ "center": "居中对齐",
71
+ "right": "右对齐",
72
+ "justify": "两端对齐"
72
73
  },
73
- "list": "Lischtä",
74
+ "list": "列表",
74
75
  "lists": {
75
- "bullet": "Ungordneti Lischtä",
76
- "numbered": "Nummerierti Lischtä",
77
- "task": "Uufgabälischtä",
78
- "indent": "Lischtäelemänt yrückä",
79
- "outdent": "Lischtäelemänt usrückä"
76
+ "bullet": "无序列表",
77
+ "numbered": "有序列表",
78
+ "task": "任务列表",
79
+ "indent": "增加列表项缩进",
80
+ "outdent": "减少列表项缩进"
80
81
  },
81
82
  "dialog": {
82
- "apply": "Awändä",
83
- "clear": "Löschä",
84
- "close": "Schliässä",
83
+ "apply": "应用",
84
+ "clear": "清除",
85
+ "close": "关闭",
85
86
  "image": {
86
- "title": "Bild hinzuefügä/bearbyitä",
87
- "src": "Quälle",
88
- "alt": "Alt-Täxt",
89
- "width": "Bryti",
90
- "height": "Höchi"
87
+ "title": "添加/修改图片",
88
+ "src": "",
89
+ "alt": "替代文本",
90
+ "width": "宽度",
91
+ "height": "高度"
91
92
  },
92
93
  "link": {
93
- "title": "Link hinzuefügä/bearbyitä",
94
- "href": "Link-Adrässe",
95
- "href_error": "Ungültigi Link-Adrässe",
96
- "target": "Öffnä i...",
97
- "target_blank": "Neus Fänschter",
98
- "target_self": "Aktuells Fänschter",
99
- "rel": "Rel",
100
- "class": "CSS-Klasse"
94
+ "title": "添加/修改链接",
95
+ "href": "链接地址",
96
+ "href_error": "无效的链接地址",
97
+ "target": "打开方式...",
98
+ "target_blank": "新窗口",
99
+ "target_self": "当前窗口",
100
+ "rel": "rel",
101
+ "class": "CSS"
101
102
  },
102
103
  "preview": {
103
- "title": "Vorschau"
104
+ "title": "预览"
104
105
  },
105
106
  "source": {
106
- "title": "Quellcode azygä",
107
- "prettify": "Verschönärä"
107
+ "title": "查看源代码",
108
+ "prettify": "美化"
108
109
  }
109
110
  },
110
111
  "misc": {
111
- "source": "Quellcode azygä",
112
- "preview": "Vorschau"
112
+ "source": "查看源代码",
113
+ "preview": "预览"
113
114
  },
114
115
  "footer": {
115
- "words": "Wörter",
116
- "chars": "Zeichä"
116
+ "words": "单词",
117
+ "chars": "字符"
117
118
  }
118
119
  }
@@ -1,26 +1,27 @@
1
1
  {
2
+ "defaultValue": "Výchozí hodnota",
2
3
  "content": {
3
- "placeholder": "Napište něco zde..."
4
+ "placeholder": "Napište něco..."
4
5
  },
5
6
  "style": {
6
- "paragraph": "Odstavec",
7
+ "paragraph": "odstavec",
7
8
  "heading": "Nadpis",
8
9
  "headings": {
9
- "h1": "Nadpis úroveň 1",
10
- "h2": "Nadpis úroveň 2",
11
- "h3": "Nadpis úroveň 3",
12
- "h4": "Nadpis úroveň 4",
13
- "h5": "Nadpis úroveň 5",
14
- "h6": "Nadpis úroveň 6"
10
+ "h1": "Nadpis 1. úrovně",
11
+ "h2": "Nadpis 2. úrovně",
12
+ "h3": "Nadpis 3. úrovně",
13
+ "h4": "Nadpis 4. úrovně",
14
+ "h5": "Nadpis 5. úrovně",
15
+ "h6": "Nadpis 6. úrovně"
15
16
  },
16
- "fontFamily": "Rodina písma",
17
- "fontSize": "Velikost písma",
17
+ "fontFamily": "Písmo",
18
+ "fontSize": "Velikost",
18
19
  "lineHeight": "Výška řádku",
19
20
  "color": {
20
21
  "highlight": "Barva zvýraznění",
21
22
  "text": "Barva textu",
22
- "unset": "Zrušit barvu",
23
- "custom": "Vlastní barva"
23
+ "unset": "Vymazat barvu",
24
+ "custom": "Vlastní výběr"
24
25
  }
25
26
  },
26
27
  "format": {
@@ -30,9 +31,9 @@
30
31
  "underline": "Podtržené",
31
32
  "sup": "Horní index",
32
33
  "sub": "Dolní index",
33
- "break": "Tvrdé zalomení",
34
- "line": "Vodorovná čára",
35
- "blockquote": "Citace",
34
+ "break": "Zalomení řádku",
35
+ "line": "Horizontální čára",
36
+ "blockquote": "Citát",
36
37
  "code": "Kód",
37
38
  "codeblock": "Blok kódu",
38
39
  "formatClear": "Vymazat formátování"
@@ -65,38 +66,38 @@
65
66
  },
66
67
  "alignment": "Zarovnání",
67
68
  "alignments": {
68
- "left": "Zarovnat vlevo",
69
- "center": "Zarovnat na střed",
70
- "right": "Zarovnat vpravo",
71
- "justify": "Zarovnat do bloku"
69
+ "left": "Zarovnání vlevo",
70
+ "center": "Zarovnání na střed",
71
+ "right": "Zarovnání vpravo",
72
+ "justify": "Zarovnání do bloku"
72
73
  },
73
74
  "list": "Seznam",
74
75
  "lists": {
75
- "bullet": "Neuspořádaný seznam",
76
+ "bullet": "Odrážkový seznam",
76
77
  "numbered": "Číslovaný seznam",
77
78
  "task": "Seznam úkolů",
78
- "indent": "Odsadit položku",
79
- "outdent": "Zrušit odsazení"
79
+ "indent": "Zvětšit odsazení položky seznamu",
80
+ "outdent": "Zmenšit odsazení položky seznamu"
80
81
  },
81
82
  "dialog": {
82
83
  "apply": "Použít",
83
84
  "clear": "Vymazat",
84
85
  "close": "Zavřít",
85
86
  "image": {
86
- "title": "Přidat/upravit obrázek",
87
+ "title": "Přidání/úprava obrázku",
87
88
  "src": "Zdroj",
88
- "alt": "Alternativní text",
89
+ "alt": "alt",
89
90
  "width": "Šířka",
90
91
  "height": "Výška"
91
92
  },
92
93
  "link": {
93
- "title": "Přidat/upravit odkaz",
94
+ "title": "Přidání/úprava odkazu",
94
95
  "href": "Adresa odkazu",
95
96
  "href_error": "Neplatná adresa odkazu",
96
97
  "target": "Otevřít v...",
97
- "target_blank": "Nové okno",
98
- "target_self": "Aktuální okno",
99
- "rel": "Rel",
98
+ "target_blank": "Novém okně",
99
+ "target_self": "Aktuálním okně",
100
+ "rel": "rel",
100
101
  "class": "CSS třída"
101
102
  },
102
103
  "preview": {
@@ -104,7 +105,7 @@
104
105
  },
105
106
  "source": {
106
107
  "title": "Zobrazit zdrojový kód",
107
- "prettify": "Formátovat"
108
+ "prettify": "prettify"
108
109
  }
109
110
  },
110
111
  "misc": {
@@ -1,26 +1,27 @@
1
1
  {
2
+ "defaultValue": "Standardwert",
2
3
  "content": {
3
- "placeholder": "Schreiben Sie hier etwas..."
4
+ "placeholder": "Schreiben Sie etwas..."
4
5
  },
5
6
  "style": {
6
7
  "paragraph": "Absatz",
7
8
  "heading": "Überschrift",
8
9
  "headings": {
9
- "h1": "Überschrift Ebene 1",
10
- "h2": "Überschrift Ebene 2",
11
- "h3": "Überschrift Ebene 3",
12
- "h4": "Überschrift Ebene 4",
13
- "h5": "Überschrift Ebene 5",
14
- "h6": "Überschrift Ebene 6"
10
+ "h1": "Überschrift 1. Ebene",
11
+ "h2": "Überschrift 2. Ebene",
12
+ "h3": "Überschrift 3. Ebene",
13
+ "h4": "Überschrift 4. Ebene",
14
+ "h5": "Überschrift 5. Ebene",
15
+ "h6": "Überschrift 6. Ebene"
15
16
  },
16
17
  "fontFamily": "Schriftart",
17
- "fontSize": "Schriftgröße",
18
+ "fontSize": "Größe",
18
19
  "lineHeight": "Zeilenhöhe",
19
20
  "color": {
20
- "highlight": "Markierungsfarbe",
21
+ "highlight": "Hervorhebungsfarbe",
21
22
  "text": "Textfarbe",
22
- "unset": "Farbe zurücksetzen",
23
- "custom": "Benutzerdefinierte Farbe"
23
+ "unset": "Farbe löschen",
24
+ "custom": "Eigene Auswahl"
24
25
  }
25
26
  },
26
27
  "format": {
@@ -30,7 +31,7 @@
30
31
  "underline": "Unterstrichen",
31
32
  "sup": "Hochgestellt",
32
33
  "sub": "Tiefgestellt",
33
- "break": "Harter Umbruch",
34
+ "break": "Zeilenumbruch",
34
35
  "line": "Horizontale Linie",
35
36
  "blockquote": "Zitat",
36
37
  "code": "Code",
@@ -65,38 +66,38 @@
65
66
  },
66
67
  "alignment": "Ausrichtung",
67
68
  "alignments": {
68
- "left": "Links ausrichten",
69
- "center": "Zentriert ausrichten",
70
- "right": "Rechts ausrichten",
69
+ "left": "Linksbündig",
70
+ "center": "Zentriert",
71
+ "right": "Rechtsbündig",
71
72
  "justify": "Blocksatz"
72
73
  },
73
74
  "list": "Liste",
74
75
  "lists": {
75
- "bullet": "Ungeordnete Liste",
76
+ "bullet": "Aufzählung",
76
77
  "numbered": "Nummerierte Liste",
77
78
  "task": "Aufgabenliste",
78
- "indent": "Listenelement einrücken",
79
- "outdent": "Listenelement ausrücken"
79
+ "indent": "Einzug vergrößern",
80
+ "outdent": "Einzug verkleinern"
80
81
  },
81
82
  "dialog": {
82
83
  "apply": "Anwenden",
83
84
  "clear": "Löschen",
84
85
  "close": "Schließen",
85
86
  "image": {
86
- "title": "Bild hinzufügen/bearbeiten",
87
+ "title": "Bild hinzufügen/ändern",
87
88
  "src": "Quelle",
88
- "alt": "Alt-Text",
89
+ "alt": "alt",
89
90
  "width": "Breite",
90
91
  "height": "Höhe"
91
92
  },
92
93
  "link": {
93
- "title": "Link hinzufügen/bearbeiten",
94
+ "title": "Link hinzufügen/ändern",
94
95
  "href": "Link-Adresse",
95
96
  "href_error": "Ungültige Link-Adresse",
96
97
  "target": "Öffnen in...",
97
- "target_blank": "Neues Fenster",
98
- "target_self": "Aktuelles Fenster",
99
- "rel": "Rel",
98
+ "target_blank": "Neuem Fenster",
99
+ "target_self": "Aktuellem Fenster",
100
+ "rel": "rel",
100
101
  "class": "CSS-Klasse"
101
102
  },
102
103
  "preview": {
@@ -104,7 +105,7 @@
104
105
  },
105
106
  "source": {
106
107
  "title": "Quellcode anzeigen",
107
- "prettify": "Verschönern"
108
+ "prettify": "prettify"
108
109
  }
109
110
  },
110
111
  "misc": {
@@ -1,4 +1,5 @@
1
1
  {
2
+ "defaultValue": "Default value",
2
3
  "content": {
3
4
  "placeholder": "Write something here..."
4
5
  },