tiptapify 0.0.9 → 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 (52) hide show
  1. package/README.md +1 -1
  2. package/dist/tiptapify.css +1 -1
  3. package/dist/tiptapify.mjs +21133 -19765
  4. package/dist/tiptapify.umd.js +37 -38
  5. package/package.json +43 -43
  6. package/src/components/Tiptapify.vue +2 -2
  7. package/src/components/Toolbar/GroupBtn.vue +2 -6
  8. package/src/components/Toolbar/GroupDropdown.vue +4 -8
  9. package/src/components/Toolbar/Index.vue +5 -4
  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/UI/Dialog.vue +141 -0
  14. package/src/components/editorExtensions.ts +1 -1
  15. package/src/{components/Toolbar/items/actions.ts → composables/Toolbar/useActionsItems.ts} +6 -3
  16. package/src/{components/Toolbar/items/alignment.ts → composables/Toolbar/useAlignmentItems.ts} +12 -9
  17. package/src/{components/Toolbar/items/formatExtra.ts → composables/Toolbar/useFormatExtraItems.ts} +10 -7
  18. package/src/{components/Toolbar/items/format.ts → composables/Toolbar/useFormatItems.ts} +20 -17
  19. package/src/{components/Toolbar/items/list.ts → composables/Toolbar/useListItems.ts} +14 -11
  20. package/src/{components/Toolbar/items/media.ts → composables/Toolbar/useMediaItems.ts} +22 -20
  21. package/src/{components/Toolbar/items/misc.ts → composables/Toolbar/useMiscItems.ts} +9 -6
  22. package/src/composables/Toolbar/useStyleItems.ts +231 -0
  23. package/src/{components/Toolbar/fonts.ts → constants/style.ts} +21 -0
  24. package/src/extensions/components/FontFamily.vue +82 -0
  25. package/src/extensions/components/FontSize.vue +83 -0
  26. package/src/extensions/components/ImageDialog.vue +17 -29
  27. package/src/extensions/components/LineHeight.vue +82 -0
  28. package/src/extensions/components/LinkDialog.vue +75 -44
  29. package/src/extensions/components/PreviewDialog.vue +8 -16
  30. package/src/extensions/components/ShowSourceDialog.vue +17 -18
  31. package/src/extensions/components/StyleColor.vue +68 -15
  32. package/src/extensions/components/TableBuilder.vue +3 -6
  33. package/src/extensions/link.ts +8 -0
  34. package/src/extensions/slash-commands.ts +1 -1
  35. package/src/i18n/index.ts +0 -1
  36. package/src/i18n/locales/ch.json +119 -0
  37. package/src/i18n/locales/cz.json +119 -0
  38. package/src/i18n/locales/de.json +83 -76
  39. package/src/i18n/locales/en.json +82 -75
  40. package/src/i18n/locales/es.json +80 -73
  41. package/src/i18n/locales/fr.json +81 -73
  42. package/src/i18n/locales/it.json +80 -73
  43. package/src/i18n/locales/la.json +119 -0
  44. package/src/i18n/locales/lt.json +119 -0
  45. package/src/i18n/locales/nl.json +119 -0
  46. package/src/i18n/locales/pl.json +80 -74
  47. package/src/i18n/locales/pt.json +119 -0
  48. package/src/i18n/locales/ru.json +78 -71
  49. package/src/i18n/locales/se.json +119 -0
  50. package/src/i18n/locales/ua.json +79 -72
  51. package/src/components/Toolbar/items/style.ts +0 -187
  52. /package/src/{components → extensions/components}/CodeBlockComponent.vue +0 -0
@@ -7,7 +7,7 @@ import { computed, inject, Ref, ref } from 'vue'
7
7
 
8
8
  const { t } = useI18n()
9
9
 
10
- defineExpose({ open })
10
+ defineExpose({ open, close })
11
11
 
12
12
  const props = defineProps({
13
13
  show: { type: Boolean, default: true },
@@ -21,25 +21,52 @@ const emit = defineEmits(['close'])
21
21
  const editor = inject('tiptapifyEditor') as Ref<Editor>
22
22
 
23
23
  const colorPicker = ref(false)
24
+ const initialColor = ref(computed(() => props.color).value)
24
25
  const customColor = ref(computed(() => props.color).value)
25
26
 
26
- const colors = {
27
+ const colorSelected = ref<boolean>(false)
28
+
29
+ const greyShades = {
27
30
  black: '#000',
31
+ '#222': '#222',
28
32
  darkgray: '#444',
29
33
  gray: '#888',
30
34
  lightgray: '#ccc',
31
35
  white: '#fff',
32
- cyan: '#00FFFF',
33
- light: '#0088ff',
36
+ }
37
+ const blueShades = {
38
+ '#000044': '#000044',
39
+ '#00006e': '#00006e',
40
+ '#0000bb': '#0000bb',
34
41
  blue: '#0000ff',
35
- indigo: '#4b0082',
36
- purple: '#800080',
37
- pink: '#ff00ff',
42
+ lightblue: '#0088ff',
43
+ cyan: '#00FFFF',
44
+ }
45
+ const greenShades = {
46
+ '#003100': '#003100',
47
+ '#005200': '#005200',
48
+ '#007000': '#007000',
49
+ '#00b700': '#00b700',
50
+ green: '#00ff00',
51
+ '#70ff70': '#70ff70',
52
+ }
53
+ const redShades = {
54
+ '#520000': '#520000',
55
+ '#810000': '#810000',
56
+ '#b20000': '#b20000',
38
57
  red: '#ff0000',
58
+ '#ff2323': '#ff2323',
59
+ '#ff5c5c': '#ff5c5c',
60
+ }
61
+ const otherShades = {
62
+ brown: '#964B00',
39
63
  orange: '#ff9900',
40
64
  yellow: '#ffff00',
41
- green: '#00ff00',
65
+ pink: '#ff00ff',
66
+ purple: '#800080',
67
+ indigo: '#4b0082',
42
68
  }
69
+ const colors = { ...greyShades, ...blueShades, ...greenShades, ...redShades, ...otherShades }
43
70
 
44
71
  type Color = { r: number, g: number, b: number, a?: number }
45
72
 
@@ -67,14 +94,38 @@ function hexToRgb(hex: string): Color {
67
94
  };
68
95
  }
69
96
 
70
- function setColor(color: string) {
97
+ function hoverColor(color: string) {
98
+ colorSelected.value = false
99
+
71
100
  if (props.fontColor) {
72
101
  editor.value.chain().focus().setColor(color).run()
73
102
  }
74
103
 
75
104
  if (props.backgroundColor) {
76
- editor.value.chain().focus().setHighlight({ color }).run()
105
+ editor.value.chain().focus().setHighlight({ color: color }).run()
106
+ }
107
+ }
108
+
109
+ function close() {
110
+ resetColor()
111
+ }
112
+
113
+ function resetColor() {
114
+ if (colorSelected.value) {
115
+ return
116
+ }
117
+
118
+ if (props.fontColor) {
119
+ editor.value.chain().focus().setColor(initialColor.value).run()
120
+ }
121
+
122
+ if (props.backgroundColor) {
123
+ editor.value.chain().focus().setHighlight({ color: initialColor.value }).run()
77
124
  }
125
+ }
126
+
127
+ function setColor() {
128
+ colorSelected.value = true
78
129
 
79
130
  emit('close')
80
131
  }
@@ -103,7 +154,9 @@ function isColorActive(color: string): boolean {
103
154
  <div
104
155
  class="tiptapify-style-color-item"
105
156
  :class="isColorActive(colorCode) ? 'tiptapify-style-color-item-active' : ''"
106
- @click="setColor(colorCode)"
157
+ @mouseenter="hoverColor(colorCode)"
158
+ @mouseleave="resetColor()"
159
+ @click="setColor"
107
160
  >
108
161
  <div
109
162
  class="tiptapify-style-color-picker"
@@ -133,12 +186,12 @@ function isColorActive(color: string): boolean {
133
186
 
134
187
  <VCard>
135
188
  <VCardItem>
136
- <VColorPicker v-model="customColor" elevated elevation="24" hide-inputs />
189
+ <VColorPicker v-model="customColor" elevated elevation="24" hide-inputs @update:model-value="hoverColor($event)" />
137
190
  </VCardItem>
138
191
 
139
192
  <VCardActions>
140
- <VBtn variant="flat" color="primary" @click="setColor(customColor)">OK</VBtn>
141
- <VBtn variant="flat" color="grey-400" @click="colorPicker = !colorPicker; customColor = color">Cancel</VBtn>
193
+ <VBtn variant="flat" color="primary" @click="setColor">OK</VBtn>
194
+ <VBtn variant="flat" color="grey-400" @click="colorPicker = !colorPicker; customColor = initialColor; resetColor()">Cancel</VBtn>
142
195
  </VCardActions>
143
196
  </VCard>
144
197
  </VMenu>
@@ -154,7 +207,7 @@ function isColorActive(color: string): boolean {
154
207
  <style lang="scss" scoped>
155
208
  .tiptapify-style-color-container {
156
209
  display: grid;
157
- grid-template-columns: repeat(5, 1fr);
210
+ grid-template-columns: repeat(6, 1fr);
158
211
  }
159
212
 
160
213
  .tiptapify-style-color-item {
@@ -1,15 +1,12 @@
1
1
  <script setup lang="ts">
2
2
 
3
3
  import { Editor } from "@tiptap/vue-3";
4
- import helpers from '@tiptapify/utils/helpers'
5
4
  import { useI18n } from 'vue-i18n'
6
5
 
7
6
  import { inject, Ref, ref } from 'vue'
8
7
 
9
8
  const { t } = useI18n()
10
9
 
11
- const { ucFirst } = helpers
12
-
13
10
  defineExpose({ open })
14
11
 
15
12
  defineProps({
@@ -55,7 +52,7 @@ function printSelection() {
55
52
  v-model="withHeaderRow"
56
53
  density="compact"
57
54
  color="primary"
58
- :label="ucFirst(t('media.tables.insertWithHeaderRow'))" hide-details
55
+ :label="t('media.tables.insertWithHeaderRow')" hide-details
59
56
  />
60
57
 
61
58
  <div v-for="rowNum in maxRows" :key="`row-${rowNum}`" class="tiptapify-insert-table-row">
@@ -73,8 +70,8 @@ function printSelection() {
73
70
 
74
71
  <div class="tiptapify-table-builder-info">
75
72
  <span>
76
- {{ ucFirst(t('media.tables.rows')) }}: {{ rowHover }}
77
- {{ ucFirst(t('media.tables.cols')) }}: {{ colHover }}
73
+ {{ t('media.tables.rows') }}: {{ rowHover }}
74
+ {{ t('media.tables.cols') }}: {{ colHover }}
78
75
  </span>
79
76
  <span>
80
77
  {{ printSelection() }}
@@ -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
@@ -0,0 +1,119 @@
1
+ {
2
+ "defaultValue": "默认值",
3
+ "content": {
4
+ "placeholder": "写点什么..."
5
+ },
6
+ "style": {
7
+ "paragraph": "段落",
8
+ "heading": "标题",
9
+ "headings": {
10
+ "h1": "1级标题",
11
+ "h2": "2级标题",
12
+ "h3": "3级标题",
13
+ "h4": "4级标题",
14
+ "h5": "5级标题",
15
+ "h6": "6级标题"
16
+ },
17
+ "fontFamily": "字体",
18
+ "fontSize": "大小",
19
+ "lineHeight": "行高",
20
+ "color": {
21
+ "highlight": "高亮颜色",
22
+ "text": "文本颜色",
23
+ "unset": "清除颜色",
24
+ "custom": "自定义选择"
25
+ }
26
+ },
27
+ "format": {
28
+ "bold": "粗体",
29
+ "italic": "斜体",
30
+ "strike": "删除线",
31
+ "underline": "下划线",
32
+ "sup": "上标",
33
+ "sub": "下标",
34
+ "break": "换行",
35
+ "line": "水平线",
36
+ "blockquote": "引用",
37
+ "code": "代码",
38
+ "codeblock": "代码块",
39
+ "formatClear": "清除格式"
40
+ },
41
+ "media": {
42
+ "link": "外部链接",
43
+ "image": "图片",
44
+ "tables": {
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": "拆分单元格"
61
+ }
62
+ },
63
+ "action": {
64
+ "undo": "撤销",
65
+ "redo": "重做"
66
+ },
67
+ "alignment": "对齐",
68
+ "alignments": {
69
+ "left": "左对齐",
70
+ "center": "居中对齐",
71
+ "right": "右对齐",
72
+ "justify": "两端对齐"
73
+ },
74
+ "list": "列表",
75
+ "lists": {
76
+ "bullet": "无序列表",
77
+ "numbered": "有序列表",
78
+ "task": "任务列表",
79
+ "indent": "增加列表项缩进",
80
+ "outdent": "减少列表项缩进"
81
+ },
82
+ "dialog": {
83
+ "apply": "应用",
84
+ "clear": "清除",
85
+ "close": "关闭",
86
+ "image": {
87
+ "title": "添加/修改图片",
88
+ "src": "源",
89
+ "alt": "替代文本",
90
+ "width": "宽度",
91
+ "height": "高度"
92
+ },
93
+ "link": {
94
+ "title": "添加/修改链接",
95
+ "href": "链接地址",
96
+ "href_error": "无效的链接地址",
97
+ "target": "打开方式...",
98
+ "target_blank": "新窗口",
99
+ "target_self": "当前窗口",
100
+ "rel": "rel",
101
+ "class": "CSS类"
102
+ },
103
+ "preview": {
104
+ "title": "预览"
105
+ },
106
+ "source": {
107
+ "title": "查看源代码",
108
+ "prettify": "美化"
109
+ }
110
+ },
111
+ "misc": {
112
+ "source": "查看源代码",
113
+ "preview": "预览"
114
+ },
115
+ "footer": {
116
+ "words": "单词",
117
+ "chars": "字符"
118
+ }
119
+ }
@@ -0,0 +1,119 @@
1
+ {
2
+ "defaultValue": "Výchozí hodnota",
3
+ "content": {
4
+ "placeholder": "Napište něco..."
5
+ },
6
+ "style": {
7
+ "paragraph": "odstavec",
8
+ "heading": "Nadpis",
9
+ "headings": {
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ě"
16
+ },
17
+ "fontFamily": "Písmo",
18
+ "fontSize": "Velikost",
19
+ "lineHeight": "Výška řádku",
20
+ "color": {
21
+ "highlight": "Barva zvýraznění",
22
+ "text": "Barva textu",
23
+ "unset": "Vymazat barvu",
24
+ "custom": "Vlastní výběr"
25
+ }
26
+ },
27
+ "format": {
28
+ "bold": "Tučné",
29
+ "italic": "Kurzíva",
30
+ "strike": "Přeškrtnuté",
31
+ "underline": "Podtržené",
32
+ "sup": "Horní index",
33
+ "sub": "Dolní index",
34
+ "break": "Zalomení řádku",
35
+ "line": "Horizontální čára",
36
+ "blockquote": "Citát",
37
+ "code": "Kód",
38
+ "codeblock": "Blok kódu",
39
+ "formatClear": "Vymazat formátování"
40
+ },
41
+ "media": {
42
+ "link": "Externí odkaz",
43
+ "image": "Obrázek",
44
+ "tables": {
45
+ "table": "Tabulka",
46
+ "insertTable": "Vložit tabulku",
47
+ "deleteTable": "Smazat tabulku",
48
+ "insertWithHeaderRow": "Vložit tabulku s hlavičkou",
49
+ "rows": "Řádky",
50
+ "row": "Řádek",
51
+ "insertRowBefore": "Vložit řádek před",
52
+ "insertRowAfter": "Vložit řádek za",
53
+ "deleteRow": "Smazat řádek",
54
+ "cols": "Sloupce",
55
+ "col": "Sloupec",
56
+ "insertColBefore": "Vložit sloupec před",
57
+ "insertColAfter": "Vložit sloupec za",
58
+ "deleteCol": "Smazat sloupec",
59
+ "mergeCells": "Sloučit buňky",
60
+ "splitCell": "Rozdělit buňku"
61
+ }
62
+ },
63
+ "action": {
64
+ "undo": "Zpět",
65
+ "redo": "Znovu"
66
+ },
67
+ "alignment": "Zarovnání",
68
+ "alignments": {
69
+ "left": "Zarovnání vlevo",
70
+ "center": "Zarovnání na střed",
71
+ "right": "Zarovnání vpravo",
72
+ "justify": "Zarovnání do bloku"
73
+ },
74
+ "list": "Seznam",
75
+ "lists": {
76
+ "bullet": "Odrážkový seznam",
77
+ "numbered": "Číslovaný seznam",
78
+ "task": "Seznam úkolů",
79
+ "indent": "Zvětšit odsazení položky seznamu",
80
+ "outdent": "Zmenšit odsazení položky seznamu"
81
+ },
82
+ "dialog": {
83
+ "apply": "Použít",
84
+ "clear": "Vymazat",
85
+ "close": "Zavřít",
86
+ "image": {
87
+ "title": "Přidání/úprava obrázku",
88
+ "src": "Zdroj",
89
+ "alt": "alt",
90
+ "width": "Šířka",
91
+ "height": "Výška"
92
+ },
93
+ "link": {
94
+ "title": "Přidání/úprava odkazu",
95
+ "href": "Adresa odkazu",
96
+ "href_error": "Neplatná adresa odkazu",
97
+ "target": "Otevřít v...",
98
+ "target_blank": "Novém okně",
99
+ "target_self": "Aktuálním okně",
100
+ "rel": "rel",
101
+ "class": "CSS třída"
102
+ },
103
+ "preview": {
104
+ "title": "Náhled"
105
+ },
106
+ "source": {
107
+ "title": "Zobrazit zdrojový kód",
108
+ "prettify": "prettify"
109
+ }
110
+ },
111
+ "misc": {
112
+ "source": "Zobrazit zdrojový kód",
113
+ "preview": "Náhled"
114
+ },
115
+ "footer": {
116
+ "words": "slova",
117
+ "chars": "znaky"
118
+ }
119
+ }
@@ -1,112 +1,119 @@
1
1
  {
2
+ "defaultValue": "Standardwert",
2
3
  "content": {
3
- "placeholder": "schreib hier etwas..."
4
+ "placeholder": "Schreiben Sie etwas..."
4
5
  },
5
6
  "style": {
6
- "paragraph": "absatz",
7
- "heading": "überschrift",
7
+ "paragraph": "Absatz",
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
- "fontFamily": "schriftart",
17
- "fontSize": "schriftgröße",
18
- "lineHeight": "zeilenhöhe",
17
+ "fontFamily": "Schriftart",
18
+ "fontSize": "Größe",
19
+ "lineHeight": "Zeilenhöhe",
19
20
  "color": {
20
- "highlight": "hervorhebungsfarbe",
21
- "text": "textfarbe",
22
- "unset": "farbe zurücksetzen",
23
- "custom": "benutzerdefinierte farbe"
21
+ "highlight": "Hervorhebungsfarbe",
22
+ "text": "Textfarbe",
23
+ "unset": "Farbe löschen",
24
+ "custom": "Eigene Auswahl"
24
25
  }
25
26
  },
26
27
  "format": {
27
- "bold": "fett",
28
- "italic": "kursiv",
29
- "strike": "durchgestrichen",
30
- "underline": "unterstrichen",
31
- "sup": "hochgestellt",
32
- "sub": "tiefgestellt",
33
- "break": "harter umbruch",
34
- "line": "horizontale linie",
35
- "blockquote": "zitat",
36
- "code": "code",
37
- "codeblock": "code block",
38
- "formatClear": "formatierung löschen"
28
+ "bold": "Fett",
29
+ "italic": "Kursiv",
30
+ "strike": "Durchgestrichen",
31
+ "underline": "Unterstrichen",
32
+ "sup": "Hochgestellt",
33
+ "sub": "Tiefgestellt",
34
+ "break": "Zeilenumbruch",
35
+ "line": "Horizontale Linie",
36
+ "blockquote": "Zitat",
37
+ "code": "Code",
38
+ "codeblock": "Code-Block",
39
+ "formatClear": "Formatierung löschen"
39
40
  },
40
41
  "media": {
41
- "link": "externer link",
42
- "image": "bild",
42
+ "link": "Externer Link",
43
+ "image": "Bild",
43
44
  "tables": {
44
- "table": "tabelle",
45
- "insertTable": "tabelle einfügen",
46
- "deleteTable": "tabelle löschen",
47
- "insertWithHeaderRow": "tabelle mit kopfzeile einfügen",
48
- "rows": "zeilen",
49
- "row": "zeile",
50
- "insertRowBefore": "zeile davor einfügen",
51
- "insertRowAfter": "zeile danach einfügen",
52
- "deleteRow": "zeile löschen",
53
- "cols": "spalten",
54
- "col": "spalte",
55
- "insertColBefore": "spalte davor einfügen",
56
- "insertColAfter": "spalte danach einfügen",
57
- "deleteCol": "spalte löschen",
58
- "mergeCells": "zellen verbinden",
59
- "splitCell": "zelle teilen"
45
+ "table": "Tabelle",
46
+ "insertTable": "Tabelle einfügen",
47
+ "deleteTable": "Tabelle löschen",
48
+ "insertWithHeaderRow": "Tabelle mit Kopfzeile einfügen",
49
+ "rows": "Zeilen",
50
+ "row": "Zeile",
51
+ "insertRowBefore": "Zeile davor einfügen",
52
+ "insertRowAfter": "Zeile danach einfügen",
53
+ "deleteRow": "Zeile löschen",
54
+ "cols": "Spalten",
55
+ "col": "Spalte",
56
+ "insertColBefore": "Spalte davor einfügen",
57
+ "insertColAfter": "Spalte danach einfügen",
58
+ "deleteCol": "Spalte löschen",
59
+ "mergeCells": "Zellen zusammenführen",
60
+ "splitCell": "Zelle teilen"
60
61
  }
61
62
  },
62
63
  "action": {
63
- "undo": "rückgängig",
64
- "redo": "wiederholen"
64
+ "undo": "Rückgängig",
65
+ "redo": "Wiederholen"
65
66
  },
66
- "alignment": "ausrichtung",
67
+ "alignment": "Ausrichtung",
67
68
  "alignments": {
68
- "left": "links ausrichten",
69
- "center": "zentriert ausrichten",
70
- "right": "rechts ausrichten",
71
- "justify": "blocksatz"
69
+ "left": "Linksbündig",
70
+ "center": "Zentriert",
71
+ "right": "Rechtsbündig",
72
+ "justify": "Blocksatz"
72
73
  },
73
- "list": "liste",
74
+ "list": "Liste",
74
75
  "lists": {
75
- "bullet": "ungeordnete liste",
76
- "numbered": "geordnete liste",
77
- "task": "aufgabenliste",
78
- "indent": "listenelement einrücken",
79
- "outdent": "listenelement ausrücken"
76
+ "bullet": "Aufzählung",
77
+ "numbered": "Nummerierte Liste",
78
+ "task": "Aufgabenliste",
79
+ "indent": "Einzug vergrößern",
80
+ "outdent": "Einzug verkleinern"
80
81
  },
81
82
  "dialog": {
82
- "apply": "anwenden",
83
- "clear": "löschen",
84
- "close": "schließen",
83
+ "apply": "Anwenden",
84
+ "clear": "Löschen",
85
+ "close": "Schließen",
85
86
  "image": {
86
- "title": "bild hinzufügen/bearbeiten",
87
- "src": "quelle",
87
+ "title": "Bild hinzufügen/ändern",
88
+ "src": "Quelle",
88
89
  "alt": "alt",
89
- "width": "breite",
90
- "height": "höhe"
90
+ "width": "Breite",
91
+ "height": "Höhe"
91
92
  },
92
93
  "link": {
93
- "title": "link hinzufügen/bearbeiten",
94
- "href": "link-adresse",
95
- "target": "in neuem fenster öffnen",
94
+ "title": "Link hinzufügen/ändern",
95
+ "href": "Link-Adresse",
96
+ "href_error": "Ungültige Link-Adresse",
97
+ "target": "Öffnen in...",
98
+ "target_blank": "Neuem Fenster",
99
+ "target_self": "Aktuellem Fenster",
96
100
  "rel": "rel",
97
- "class": "css-klasse"
101
+ "class": "CSS-Klasse"
102
+ },
103
+ "preview": {
104
+ "title": "Vorschau"
98
105
  },
99
106
  "source": {
100
- "title": "quellcode anzeigen",
101
- "prettify": "verschönern"
107
+ "title": "Quellcode anzeigen",
108
+ "prettify": "prettify"
102
109
  }
103
110
  },
104
111
  "misc": {
105
- "source": "quellcode anzeigen",
106
- "preview": "vorschau"
112
+ "source": "Quellcode anzeigen",
113
+ "preview": "Vorschau"
107
114
  },
108
115
  "footer": {
109
- "words": "wörter",
110
- "chars": "zeichen"
116
+ "words": "Wörter",
117
+ "chars": "Zeichen"
111
118
  }
112
119
  }