tiptapify 0.3.5 → 0.4.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.
Files changed (137) hide show
  1. package/dist/content.css +28 -0
  2. package/dist/tiptapify.css +1 -1
  3. package/dist/tiptapify.mjs +110770 -65623
  4. package/dist/tiptapify.umd.js +106 -89
  5. package/index.d.ts +37 -0
  6. package/package.json +3 -2
  7. package/src/components/ImageBubbleMenu.vue +5 -33
  8. package/src/components/MenuBubble.test.ts +120 -0
  9. package/src/components/MenuBubble.vue +124 -134
  10. package/src/components/MenuFloating.vue +48 -45
  11. package/src/components/Tiptapify.upload.test.ts +10 -0
  12. package/src/components/Tiptapify.vue +85 -45
  13. package/src/components/Toolbar/Index.vue +10 -0
  14. package/src/components/UI/BubbleRow.vue +41 -0
  15. package/src/components/UI/TiptapifyDialog.test.ts +37 -3
  16. package/src/components/UI/TiptapifyDialog.vue +15 -4
  17. package/src/components/editorExtensions.test.ts +9 -0
  18. package/src/components/editorExtensions.ts +21 -1
  19. package/src/composables/fakeUploadEndpoint.ts +65 -0
  20. package/src/composables/useTiptapifyConfig.ts +19 -0
  21. package/src/composables/useTiptapifyLinkPreview.test.ts +51 -0
  22. package/src/composables/useTiptapifyLinkPreview.ts +60 -0
  23. package/src/composables/useTiptapifyUpload.test.ts +96 -0
  24. package/src/composables/useTiptapifyUpload.ts +126 -0
  25. package/src/extensions/components/ai/Dialog.test.ts +335 -0
  26. package/src/extensions/components/ai/Dialog.vue +607 -310
  27. package/src/extensions/components/ai/backend.test.ts +1 -0
  28. package/src/extensions/components/ai/backend.ts +2 -1
  29. package/src/extensions/components/ai/context.test.ts +149 -0
  30. package/src/extensions/components/ai/context.ts +145 -0
  31. package/src/extensions/components/ai/diff.test.ts +65 -0
  32. package/src/extensions/components/ai/diff.ts +120 -0
  33. package/src/extensions/components/ai/errors.test.ts +45 -0
  34. package/src/extensions/components/ai/errors.ts +67 -0
  35. package/src/extensions/components/ai/result.test.ts +144 -0
  36. package/src/extensions/components/ai/result.ts +101 -0
  37. package/src/extensions/components/ai/thinking.test.ts +45 -0
  38. package/src/extensions/components/ai/thinking.ts +58 -0
  39. package/src/extensions/components/formatExtra/sub/Button.vue +1 -1
  40. package/src/extensions/components/formatExtra/sup/Button.vue +1 -1
  41. package/src/extensions/components/media/iframe/Button.vue +6 -7
  42. package/src/extensions/components/media/iframe/IframeDialog.test.ts +177 -0
  43. package/src/extensions/components/media/iframe/IframeDialog.vue +477 -105
  44. package/src/extensions/components/media/iframe/embed.test.ts +123 -0
  45. package/src/extensions/components/media/iframe/embed.ts +236 -0
  46. package/src/extensions/components/media/iframe/index.test.ts +123 -0
  47. package/src/extensions/components/media/iframe/index.ts +92 -10
  48. package/src/extensions/components/media/image/ImageDialog.vue +430 -132
  49. package/src/extensions/components/media/image/caption.test.ts +66 -1
  50. package/src/extensions/components/media/image/caption.ts +27 -1
  51. package/src/extensions/components/media/image/imageDialog.test.ts +210 -0
  52. package/src/extensions/components/media/image/imageDialog.ts +117 -0
  53. package/src/extensions/components/media/image/index.ts +2 -1
  54. package/src/extensions/components/media/link/Button.test.ts +96 -0
  55. package/src/extensions/components/media/link/Button.vue +6 -2
  56. package/src/extensions/components/media/link/LinkDialog.display.test.ts +363 -0
  57. package/src/extensions/components/media/link/LinkDialog.vue +687 -61
  58. package/src/extensions/components/media/link/index.ts +111 -6
  59. package/src/extensions/components/media/link/link.marks.test.ts +89 -0
  60. package/src/extensions/components/media/link/linkDialog.test.ts +296 -0
  61. package/src/extensions/components/media/link/linkDialog.ts +154 -0
  62. package/src/extensions/components/media/linkCard/PasteCardMenu.test.ts +133 -0
  63. package/src/extensions/components/media/linkCard/PasteCardMenu.vue +168 -0
  64. package/src/extensions/components/media/linkCard/index.test.ts +146 -0
  65. package/src/extensions/components/media/linkCard/index.ts +177 -0
  66. package/src/extensions/components/media/linkCard/linkCardDialog.test.ts +87 -0
  67. package/src/extensions/components/media/linkCard/linkCardDialog.ts +62 -0
  68. package/src/extensions/components/media/linkCard/linkPreview.test.ts +102 -0
  69. package/src/extensions/components/media/linkCard/linkPreview.ts +84 -0
  70. package/src/extensions/components/media/linkCard/makeLinkCard.test.ts +59 -0
  71. package/src/extensions/components/media/linkCard/makeLinkCard.ts +58 -0
  72. package/src/extensions/components/media/linkCard/pasteCard.test.ts +190 -0
  73. package/src/extensions/components/media/linkCard/pasteCard.ts +153 -0
  74. package/src/extensions/components/media/video/Button.vue +2 -1
  75. package/src/extensions/components/media/video/VideoDialog.test.ts +233 -0
  76. package/src/extensions/components/media/video/VideoDialog.vue +748 -59
  77. package/src/extensions/components/media/video/index.test.ts +154 -0
  78. package/src/extensions/components/media/video/index.ts +70 -5
  79. package/src/extensions/components/media/video/providers.test.ts +148 -0
  80. package/src/extensions/components/media/video/providers.ts +241 -0
  81. package/src/extensions/components/media/video/videoFile.test.ts +98 -0
  82. package/src/extensions/components/media/video/videoFile.ts +142 -0
  83. package/src/extensions/components/misc/fullscreen/Button.test.ts +55 -0
  84. package/src/extensions/components/misc/fullscreen/Button.vue +2 -2
  85. package/src/extensions/components/style/StyleColor.test.ts +255 -0
  86. package/src/extensions/components/style/StyleColor.vue +358 -208
  87. package/src/extensions/components/style/color/Button.vue +1 -3
  88. package/src/extensions/components/style/color/colors.test.ts +191 -0
  89. package/src/extensions/components/style/color/colors.ts +168 -0
  90. package/src/extensions/components/style/highlight/Button.vue +1 -3
  91. package/src/i18n/locales/ar.json +226 -23
  92. package/src/i18n/locales/bg.json +225 -22
  93. package/src/i18n/locales/ch.json +226 -23
  94. package/src/i18n/locales/cz.json +226 -23
  95. package/src/i18n/locales/de.json +226 -23
  96. package/src/i18n/locales/el.json +225 -22
  97. package/src/i18n/locales/en.json +225 -22
  98. package/src/i18n/locales/es.json +226 -23
  99. package/src/i18n/locales/et.json +225 -22
  100. package/src/i18n/locales/fi.json +226 -23
  101. package/src/i18n/locales/fr.json +226 -23
  102. package/src/i18n/locales/he.json +225 -22
  103. package/src/i18n/locales/hi.json +225 -22
  104. package/src/i18n/locales/hr.json +225 -22
  105. package/src/i18n/locales/hu.json +226 -23
  106. package/src/i18n/locales/id.json +225 -22
  107. package/src/i18n/locales/it.json +226 -23
  108. package/src/i18n/locales/ja.json +226 -23
  109. package/src/i18n/locales/ko.json +226 -23
  110. package/src/i18n/locales/la.json +226 -23
  111. package/src/i18n/locales/lt.json +226 -23
  112. package/src/i18n/locales/nl.json +226 -23
  113. package/src/i18n/locales/no.json +227 -24
  114. package/src/i18n/locales/pl.json +226 -23
  115. package/src/i18n/locales/pt-BR.json +225 -22
  116. package/src/i18n/locales/pt.json +226 -23
  117. package/src/i18n/locales/ro.json +225 -22
  118. package/src/i18n/locales/ru.json +227 -24
  119. package/src/i18n/locales/se.json +226 -23
  120. package/src/i18n/locales/sk.json +225 -22
  121. package/src/i18n/locales/sl.json +225 -22
  122. package/src/i18n/locales/sr.json +225 -22
  123. package/src/i18n/locales/th.json +226 -23
  124. package/src/i18n/locales/tr.json +226 -23
  125. package/src/i18n/locales/uk.json +227 -24
  126. package/src/i18n/locales/vi.json +226 -23
  127. package/src/index.ts +10 -0
  128. package/src/skins/registry.test.ts +1 -1
  129. package/src/skins/tokens.reachability.test.ts +1 -0
  130. package/src/skins/tokens.ts +3 -3
  131. package/src/types/editor.ts +40 -1
  132. package/src/utils/contentStyles.test.ts +116 -0
  133. package/src/utils/contentStyles.ts +175 -0
  134. package/src/utils/mediaSize.test.ts +22 -0
  135. package/src/utils/mediaSize.ts +27 -0
  136. package/src/utils/validateHref.test.ts +47 -2
  137. package/src/utils/validateHref.ts +47 -7
@@ -4,7 +4,20 @@
4
4
  "undo": "Atšaukti"
5
5
  },
6
6
  "ai": {
7
+ "another_version": "Kitas variantas",
7
8
  "append": "Pridėti pabaigoje",
9
+ "change_vs_original": "{percent}, palyginti su originalu",
10
+ "changes": "Pakeitimai",
11
+ "context": {
12
+ "characters": "{n} simb.",
13
+ "cursor": "Žymeklio vietoje",
14
+ "document": "Visas tekstas",
15
+ "excerpt": "„{text}“",
16
+ "paragraphs": "{n} pastr.",
17
+ "selection": "Pažymėta: {paragraphs}, {characters}"
18
+ },
19
+ "copied": "Nukopijuota",
20
+ "copy": "Kopijuoti",
8
21
  "defaultExamples": {
9
22
  "expand": {
10
23
  "prompt": "Išplėskite šį tekstą į detalesnę versiją.",
@@ -23,19 +36,58 @@
23
36
  "title": "Sutrumpinti"
24
37
  }
25
38
  },
39
+ "effort_label": {
40
+ "default": "Lygis: numatytasis",
41
+ "high": "Lygis: aukštas",
42
+ "low": "Lygis: žemas",
43
+ "max": "Lygis: didžiausias",
44
+ "medium": "Lygis: vidutinis",
45
+ "xhigh": "Lygis: labai aukštas"
46
+ },
47
+ "effort_levels": {
48
+ "default": "Numatytasis",
49
+ "high": "Aukštas",
50
+ "low": "Žemas",
51
+ "max": "Didžiausias",
52
+ "medium": "Vidutinis",
53
+ "xhigh": "Labai aukštas"
54
+ },
26
55
  "error": "DI generavimas nepavyko",
56
+ "errors": {
57
+ "auth": "DI paslauga atmetė užklausą: patikrinkite API raktą arba prieigos teises.",
58
+ "network": "Nepavyko susisiekti su DI paslauga. Patikrinkite, ar ji veikia ir leidžia užklausas iš šio puslapio (CORS): priežastį rodo naršyklės konsolė.",
59
+ "not_found": "DI paslaugos adresas nerastas: patikrinkite galinio taško kelią.",
60
+ "rate_limit": "Per daug užklausų DI paslaugai. Palaukite ir bandykite dar kartą.",
61
+ "request": "DI paslauga negalėjo apdoroti užklausos.",
62
+ "service_says": "Paslaugos atsakymas:",
63
+ "timeout": "DI paslauga neatsakė laiku. Bandykite dar kartą.",
64
+ "unavailable": "DI paslauga nepasiekiama: galbūt ji įkelia modelį arba yra užimta. Bandykite vėliau."
65
+ },
27
66
  "generate": "Generuoti",
28
67
  "insert": "Įterpimas",
29
- "limit_exceeded": "Rezultatas viršija redaktoriaus simbolių limitą. Trumpinkite tekstą ir taikykite iš naujo.",
68
+ "insert_below": "Įterpti žemiau",
69
+ "limit_exceeded": "Rezultatas viršija redaktoriaus simbolių limitą. Paprašykite trumpesnio varianto.",
30
70
  "loading": "Generuojama...",
31
71
  "prompt": "Užklausa",
72
+ "prompt_placeholder": "Paprašykite parašyti arba redaguoti tekstą",
32
73
  "quick_prompts": "Greitos užklausos",
33
74
  "reasoning_effort": "Mąstymo lygis",
34
- "replace": "Pakeisti",
75
+ "replace_selection": "Pakeisti pažymėtą tekstą",
35
76
  "result": "Rezultatas",
77
+ "send_hint": "Enter — siųsti",
36
78
  "stop": "Sustabdyti",
37
79
  "thinking": "Mąstymas",
38
- "title": "AI rašymas",
80
+ "thinking_label": {
81
+ "off": "Mąstymas: išjungtas",
82
+ "on": "Mąstymas: įjungtas"
83
+ },
84
+ "thinking_now": "Mąsto…",
85
+ "thinking_states": {
86
+ "off": "Išjungtas",
87
+ "on": "Įjungtas"
88
+ },
89
+ "thought_for": "Mąstė {seconds} s",
90
+ "title": "Asistentas",
39
91
  "unavailable": "Norėdami naudoti šį veiksmą, sukonfigūruokite DI tiekėją"
40
92
  },
41
93
  "alignment": "Lygiavimas",
@@ -51,50 +103,163 @@
51
103
  "defaultValue": "Numatytoji reikšmė",
52
104
  "dialog": {
53
105
  "apply": "Taikyti",
106
+ "cancel": "Atšaukti",
54
107
  "clear": "Išvalyti",
55
108
  "close": "Uždaryti",
56
109
  "iframe": {
57
- "dialog_title": "Pridėti/redaguoti iframe",
58
- "frameborder": "Rėmo kraštas",
110
+ "advanced": "Išplėstiniai",
111
+ "allow": "Leidimai (allow)",
112
+ "allow_hint": "Pavyzdžiui: autoplay; fullscreen; clipboard-write",
113
+ "apply_failed": "Įterpto turinio čia įterpti negalima.",
114
+ "border": "Rodyti rėmelį",
115
+ "code_invalid": "Įklijuokite vieno iframe su adresu kodą. Kodai su scenarijais ar kitomis žymėmis nepalaikomi.",
116
+ "code_parsed": "Kodas atpažintas: {fields}.",
59
117
  "height": "Aukštis",
118
+ "input": "Nuoroda arba įterpimo kodas",
119
+ "input_hint": "Įklijuokite adresą arba iframe kodą iš svetainės meniu „Bendrinti“ arba „Įterpti“.",
120
+ "keep_ratio": "Išlaikyti proporciją",
121
+ "lazy": "Įkelti slenkant iki jo",
60
122
  "name": "Pavadinimas",
61
- "src": "Šaltinis",
62
- "src_invalid": "Įvestas URL netinkamas",
63
- "title": "Antraštė",
123
+ "parsed_allow": "leidimai",
124
+ "parsed_fullscreen": "visas ekranas",
125
+ "parsed_loading": "atidėtas įkėlimas",
126
+ "parsed_name": "pavadinimas",
127
+ "parsed_sandbox": "sandbox",
128
+ "parsed_size": "dydis {width} × {height}",
129
+ "parsed_src": "adresas",
130
+ "parsed_title": "antraštė",
131
+ "preview": "Įterpto turinio peržiūra",
132
+ "preview_empty": "Peržiūra parodoma, kai adresas tinkamas.",
133
+ "sandbox": "Smėlio dėžė (sandbox)",
134
+ "sandbox_hint": "Tuščia: be apribojimų. Pavyzdžiui: allow-scripts allow-same-origin",
135
+ "size": "Dydis",
136
+ "size_custom": "Pasirinktinis",
137
+ "size_invalid": "Nurodykite dydį pikseliais.",
138
+ "size_responsive": "Prisitaikantis",
139
+ "size_responsive_hint": "Užpildo teksto plotį {ratio} proporcijomis.",
140
+ "src_invalid": "Įterptam turiniui reikia žiniatinklio adreso, prasidedančio https:// arba http://.",
141
+ "src_protocol": "Pridėkite prie adreso protokolą: https:// arba http://.",
142
+ "src_required": "Įklijuokite nuorodą arba įterpimo kodą.",
143
+ "title_edit": "Redaguoti įterptą turinį",
144
+ "title_insert": "Įterpti turinį",
145
+ "title_missing": "Ekrano skaitytuvai įterptą turinį pristato pagal antraštę. Aprašykite, ką jis rodo.",
146
+ "title_text": "Antraštė ekrano skaitytuvams",
64
147
  "width": "Plotis"
65
148
  },
66
149
  "image": {
67
- "alt": "alt",
150
+ "alt_missing": "Ekrano skaitytuvai ir paieškos sistemos negali perskaityti paveikslo be alternatyviojo teksto.",
151
+ "alt_text": "Alternatyvusis tekstas ekrano skaitytuvams",
152
+ "apply_error": "Nepavyko čia išsaugoti paveikslo.",
68
153
  "caption": "Paveikslėlio aprašas",
69
154
  "caption_placeholder": "Pridėkite aprašą…",
70
- "dialog_title": "Pridėti/keisti paveikslą",
71
155
  "height": "Aukštis",
72
156
  "keep_ratio": "Išlaikyti proporciją",
157
+ "original_size": "Originalas {width} × {height}",
158
+ "position": "Padėtis",
159
+ "position_center": "Centre",
160
+ "position_left": "Kairėje",
161
+ "position_right": "Dešinėje",
162
+ "remove_error": "Nepavyko pašalinti paveikslo.",
163
+ "size": "Dydis",
164
+ "size_custom": "Pasirinktinis",
165
+ "size_original": "Originalus",
166
+ "size_text": "Pagal teksto plotį",
167
+ "source_upload": "Įkelti",
168
+ "source_url": "Iš URL",
73
169
  "src": "Šaltinis",
74
- "title": "Pavadinimas",
170
+ "title_edit": "Redaguoti paveikslą",
171
+ "title_insert": "Įterpti paveikslą",
172
+ "upload_cancel": "Atšaukti įkėlimą",
173
+ "upload_error": "Nepavyko įkelti paveikslo.",
174
+ "upload_file": "Paveikslo failas",
75
175
  "width": "Plotis"
76
176
  },
177
+ "insert": "Įterpti",
77
178
  "link": {
179
+ "advanced": "Išplėstiniai",
180
+ "apply_error": "Nepavyko pritaikyti nuorodos.",
78
181
  "class": "CSS klasė",
79
182
  "href": "Nuorodos adresas",
80
- "href_error": "Neteisingas nuorodos adresas",
81
- "rel": "rel",
82
- "target": "Atidaryti...",
83
- "target_blank": "Naujame lange",
84
- "target_self": "Dabartiniame lange",
85
- "title": "Pridėti/keisti nuorodą"
183
+ "href_invalid": "Įveskite nuorodos adresą, pavyzdžiui, https://example.com, #inkaras arba /puslapis.",
184
+ "new_tab": "Atidaryti naujame skirtuke",
185
+ "protocol_missing": "Nėra protokolo. Pridėti:",
186
+ "rel": "rel atributai",
187
+ "rel_hint": "Bet kokia reikšmė: ją prideda Enter, tarpas arba kablelis.",
188
+ "rel_new_tab_hint": "Nuoroda, atidaroma naujame skirtuke, taip pat gauna noopener ir noreferrer.",
189
+ "remove": "Pašalinti nuorodą",
190
+ "text": "Tekstas",
191
+ "text_hint": "Palikite tuščią, kad tekstu būtų naudojamas adresas.",
192
+ "title_edit": "Redaguoti nuorodą",
193
+ "title_insert": "Įterpti nuorodą"
194
+ },
195
+ "linkCard": {
196
+ "apply_failed": "Čia negalima įterpti kortelės.",
197
+ "description": "Aprašas",
198
+ "display": "Rodyti kaip",
199
+ "display_card": "Kortelė",
200
+ "display_link": "Nuoroda",
201
+ "fetch_failed": "Nepavyko įkelti puslapio duomenų: {error}. Laukus galite užpildyti rankiniu būdu.",
202
+ "href_invalid": "Įveskite visą puslapio adresą, pavyzdžiui, https://example.com/page.",
203
+ "image": "Paveikslas",
204
+ "image_choose": "Pasirinkti paveikslą",
205
+ "image_failed": "Nepavyko įkelti paveikslo. Bandykite dar kartą.",
206
+ "image_remove": "Pašalinti paveikslą",
207
+ "image_replace": "Pakeisti",
208
+ "layout": "Rodymas",
209
+ "layout_compact": "Kompaktiška",
210
+ "layout_large": "Didelė",
211
+ "layout_text": "Be paveikslo",
212
+ "loading": "Įkeliami puslapio duomenys…",
213
+ "page_title": "Pavadinimas",
214
+ "paste_dismiss": "Palikti nuorodą",
215
+ "paste_error": "Šis puslapis neturi peržiūros.",
216
+ "protocol_missing": "Adresą pradėkite https:// arba http://.",
217
+ "refresh": "Atnaujinti duomenis",
218
+ "site_name": "Svetainės pavadinimas",
219
+ "title_edit": "Redaguoti nuorodos kortelę",
220
+ "title_insert": "Įterpti nuorodos kortelę"
86
221
  },
87
222
  "preview": {
88
223
  "title": "Peržiūra"
89
224
  },
225
+ "remove": "Pašalinti",
226
+ "save": "Išsaugoti",
90
227
  "source": {
91
228
  "prettify": "prettify",
92
229
  "title": "Žiūrėti išeities kodą"
93
230
  },
94
231
  "video": {
232
+ "apply_failed": "Čia negalima įterpti vaizdo įrašo.",
233
+ "autoplay": "Automatiškai paleisti be garso",
234
+ "controls": "Rodyti valdiklius",
95
235
  "height": "Aukštis",
96
- "src": "Šaltinis",
97
- "title": "Pridėti/redaguoti vaizdo įrašą",
236
+ "keep_ratio": "Išlaikyti proporciją",
237
+ "loop": "Kartoti",
238
+ "poster": "Viršelis",
239
+ "poster_choose": "Pasirinkti paveikslą",
240
+ "poster_hint": "Neprivaloma. Rodomas, kol prasideda vaizdo įrašas.",
241
+ "poster_url": "Viršelio paveikslo URL",
242
+ "preview": "Vaizdo įrašo peržiūra",
243
+ "preview_empty": "Peržiūra atsiras, kai nuoroda bus atpažinta.",
244
+ "size": "Dydis",
245
+ "size_custom": "Pasirinktinis",
246
+ "size_invalid": "Įveskite dydį pikseliais.",
247
+ "size_responsive": "Prisitaikantis",
248
+ "size_responsive_embed": "Prisitaikantis 16:9",
249
+ "source_upload": "Įkelti",
250
+ "source_url": "Iš URL",
251
+ "start": "Pradėti nuo",
252
+ "start_invalid": "Įveskite laiką formatu m:ss arba h:mm:ss.",
253
+ "title_edit": "Redaguoti vaizdo įrašą",
254
+ "title_insert": "Įterpti vaizdo įrašą",
255
+ "upload_choose": "Pasirinkite vaizdo įrašo failą",
256
+ "upload_failed": "Nepavyko įkelti failo. Bandykite dar kartą.",
257
+ "upload_progress": "{loaded} iš {total} MB",
258
+ "upload_replace": "Pakeisti",
259
+ "url": "Vaizdo įrašo nuoroda",
260
+ "url_file_protocol": "Pridėkite protokolą prie failo nuorodos: https:// arba http://.",
261
+ "url_required": "Įklijuokite YouTube, Vimeo arba vaizdo įrašo failo nuorodą.",
262
+ "url_unsupported": "Naudokite YouTube arba Vimeo nuorodą arba nuorodą į vaizdo įrašo failą (.mp4, .webm, .ogg, .mov). Kitoms svetainėms naudokite įterpimo kodą.",
98
263
  "width": "Plotis"
99
264
  }
100
265
  },
@@ -171,7 +336,7 @@
171
336
  "search": "Ieškoti emoji...",
172
337
  "title": "Emoji"
173
338
  },
174
- "iframe": "iframe",
339
+ "iframe": "Įterptas turinys",
175
340
  "image": "Paveikslas",
176
341
  "image_toolbar": {
177
342
  "align_left": "Align left",
@@ -212,10 +377,48 @@
212
377
  },
213
378
  "style": {
214
379
  "color": {
215
- "custom": "Savo pasirinkimas",
380
+ "custom": "Savo spalva",
381
+ "default": "Numatytoji",
382
+ "eyedropper": "Paimti spalvą iš ekrano",
383
+ "hex": "Šešioliktainė spalva",
384
+ "hex_invalid": "Įveskite spalvą formatu #rgb arba #rrggbb.",
216
385
  "highlight": "Paryškinimo spalva",
217
- "text": "Teksto spalva",
218
- "unset": "Išvalyti spalvą"
386
+ "names": {
387
+ "amber": "Gintarinė",
388
+ "black": "Juoda",
389
+ "blue": "Mėlyna",
390
+ "dark_amber": "Tamsiai gintarinė",
391
+ "dark_blue": "Tamsiai mėlyna",
392
+ "dark_green": "Tamsiai žalia",
393
+ "dark_grey": "Tamsiai pilka",
394
+ "dark_orange": "Tamsiai oranžinė",
395
+ "dark_pink": "Tamsiai rožinė",
396
+ "dark_purple": "Tamsiai violetinė",
397
+ "dark_red": "Tamsiai raudona",
398
+ "dark_teal": "Tamsi žalsvai mėlyna",
399
+ "green": "Žalia",
400
+ "grey": "Pilka",
401
+ "light_amber": "Šviesiai gintarinė",
402
+ "light_blue": "Šviesiai mėlyna",
403
+ "light_green": "Šviesiai žalia",
404
+ "light_grey": "Šviesiai pilka",
405
+ "light_orange": "Šviesiai oranžinė",
406
+ "light_pink": "Šviesiai rožinė",
407
+ "light_purple": "Šviesiai violetinė",
408
+ "light_red": "Šviesiai raudona",
409
+ "light_teal": "Šviesi žalsvai mėlyna",
410
+ "medium_grey": "Vidutiniškai pilka",
411
+ "orange": "Oranžinė",
412
+ "pale_grey": "Blyškiai pilka",
413
+ "pink": "Rožinė",
414
+ "purple": "Violetinė",
415
+ "red": "Raudona",
416
+ "teal": "Žalsvai mėlyna",
417
+ "white": "Balta"
418
+ },
419
+ "no_highlight": "Be paryškinimo",
420
+ "recent": "Naujausios",
421
+ "text": "Teksto spalva"
219
422
  },
220
423
  "fontFamily": "Šriftas",
221
424
  "fontSize": "Dydis",
@@ -4,7 +4,20 @@
4
4
  "undo": "Ongedaan maken"
5
5
  },
6
6
  "ai": {
7
+ "another_version": "Andere versie",
7
8
  "append": "Aan het einde toevoegen",
9
+ "change_vs_original": "{percent} t.o.v. het origineel",
10
+ "changes": "Wijzigingen",
11
+ "context": {
12
+ "characters": "{n} teken | {n} tekens",
13
+ "cursor": "Bij de cursor",
14
+ "document": "Hele tekst",
15
+ "excerpt": "“{text}”",
16
+ "paragraphs": "{n} alinea | {n} alinea's",
17
+ "selection": "Geselecteerd: {paragraphs}, {characters}"
18
+ },
19
+ "copied": "Gekopieerd",
20
+ "copy": "Kopiëren",
8
21
  "defaultExamples": {
9
22
  "expand": {
10
23
  "prompt": "Breid deze tekst uit tot een gedetailleerdere versie.",
@@ -23,19 +36,58 @@
23
36
  "title": "Samenvatten"
24
37
  }
25
38
  },
39
+ "effort_label": {
40
+ "default": "Inspanning: standaard",
41
+ "high": "Inspanning: hoog",
42
+ "low": "Inspanning: laag",
43
+ "max": "Inspanning: maximaal",
44
+ "medium": "Inspanning: gemiddeld",
45
+ "xhigh": "Inspanning: zeer hoog"
46
+ },
47
+ "effort_levels": {
48
+ "default": "Standaard",
49
+ "high": "Hoog",
50
+ "low": "Laag",
51
+ "max": "Maximaal",
52
+ "medium": "Gemiddeld",
53
+ "xhigh": "Zeer hoog"
54
+ },
26
55
  "error": "AI-genereren mislukt",
56
+ "errors": {
57
+ "auth": "De AI-dienst heeft het verzoek geweigerd: controleer de API-sleutel of de toegangsrechten.",
58
+ "network": "De AI-dienst is niet bereikbaar. Controleer of hij draait en verzoeken van deze pagina toestaat (CORS): de browserconsole toont de oorzaak.",
59
+ "not_found": "Het adres van de AI-dienst is niet gevonden: controleer het pad van het endpoint.",
60
+ "rate_limit": "Te veel verzoeken aan de AI-dienst. Wacht even en probeer het opnieuw.",
61
+ "request": "De AI-dienst kon het verzoek niet verwerken.",
62
+ "service_says": "Antwoord van de dienst:",
63
+ "timeout": "De AI-dienst antwoordde niet op tijd. Probeer het opnieuw.",
64
+ "unavailable": "De AI-dienst is niet beschikbaar: misschien laadt hij een model of is hij bezet. Probeer het later."
65
+ },
27
66
  "generate": "Genereren",
28
67
  "insert": "Invoegen",
29
- "limit_exceeded": "Het resultaat gaat voorbij aan het tekenslimiet van de editor. Verkort de tekst en pas deze opnieuw toe.",
68
+ "insert_below": "Hieronder invoegen",
69
+ "limit_exceeded": "Het resultaat is langer dan de tekenlimiet van de editor toestaat. Vraag om een kortere versie.",
30
70
  "loading": "Bezig met genereren...",
31
71
  "prompt": "Verzoek",
72
+ "prompt_placeholder": "Vraag om de tekst te schrijven of te bewerken",
32
73
  "quick_prompts": "Snelle verzoeken",
33
74
  "reasoning_effort": "Denk-inspanning",
34
- "replace": "Vervangen",
75
+ "replace_selection": "Selectie vervangen",
35
76
  "result": "Resultaat",
77
+ "send_hint": "Enter — verzenden",
36
78
  "stop": "Stoppen",
37
79
  "thinking": "Nadenken",
38
- "title": "Schrijven met AI",
80
+ "thinking_label": {
81
+ "off": "Nadenken: uit",
82
+ "on": "Nadenken: aan"
83
+ },
84
+ "thinking_now": "Denkt na…",
85
+ "thinking_states": {
86
+ "off": "Uit",
87
+ "on": "Aan"
88
+ },
89
+ "thought_for": "{seconds} s nagedacht",
90
+ "title": "Assistent",
39
91
  "unavailable": "Configureer een AI-aanbieder om deze actie te gebruiken"
40
92
  },
41
93
  "alignment": "Uitlijning",
@@ -51,50 +103,163 @@
51
103
  "defaultValue": "Standaardwaarde",
52
104
  "dialog": {
53
105
  "apply": "Toepassen",
106
+ "cancel": "Annuleren",
54
107
  "clear": "Wissen",
55
108
  "close": "Sluiten",
56
109
  "iframe": {
57
- "dialog_title": "Iframe toevoegen/bewerken",
58
- "frameborder": "Framrand",
110
+ "advanced": "Geavanceerd",
111
+ "allow": "Machtigingen (allow)",
112
+ "allow_hint": "Bijvoorbeeld: autoplay; fullscreen; clipboard-write",
113
+ "apply_failed": "De insluiting kan hier niet worden ingevoegd.",
114
+ "border": "Rand tonen",
115
+ "code_invalid": "Plak de code van één iframe met een adres. Codes met scripts of andere tags worden niet ondersteund.",
116
+ "code_parsed": "Code herkend: {fields}.",
59
117
  "height": "Hoogte",
118
+ "input": "Link of insluitcode",
119
+ "input_hint": "Plak het adres of de iframe-code uit het menu Delen of Insluiten van de website.",
120
+ "keep_ratio": "Verhouding behouden",
121
+ "lazy": "Laden bij scrollen in beeld",
60
122
  "name": "Naam",
61
- "src": "Bron",
62
- "src_invalid": "De ingevoerde URL is ongeldig",
63
- "title": "Titel",
123
+ "parsed_allow": "machtigingen",
124
+ "parsed_fullscreen": "volledig scherm",
125
+ "parsed_loading": "uitgesteld laden",
126
+ "parsed_name": "naam",
127
+ "parsed_sandbox": "sandbox",
128
+ "parsed_size": "grootte {width} × {height}",
129
+ "parsed_src": "adres",
130
+ "parsed_title": "titel",
131
+ "preview": "Voorbeeld van insluiting",
132
+ "preview_empty": "Het voorbeeld verschijnt zodra het adres geldig is.",
133
+ "sandbox": "Sandbox",
134
+ "sandbox_hint": "Leeg: geen beperkingen. Bijvoorbeeld: allow-scripts allow-same-origin",
135
+ "size": "Grootte",
136
+ "size_custom": "Aangepast",
137
+ "size_invalid": "Voer de grootte in pixels in.",
138
+ "size_responsive": "Responsief",
139
+ "size_responsive_hint": "Vult de tekstbreedte in de verhouding {ratio}.",
140
+ "src_invalid": "Voor een insluiting is een webadres nodig dat begint met https:// of http://.",
141
+ "src_protocol": "Voeg het protocol toe aan het adres: https:// of http://.",
142
+ "src_required": "Plak een link of een insluitcode.",
143
+ "title_edit": "Insluiting bewerken",
144
+ "title_insert": "Inhoud insluiten",
145
+ "title_missing": "Schermlezers kondigen de insluiting aan met de titel. Beschrijf wat erin te zien is.",
146
+ "title_text": "Titel voor schermlezers",
64
147
  "width": "Breedte"
65
148
  },
66
149
  "image": {
67
- "alt": "alt",
150
+ "alt_missing": "Schermlezers en zoekmachines kunnen een afbeelding zonder alt-tekst niet lezen.",
151
+ "alt_text": "Alt-tekst voor schermlezers",
152
+ "apply_error": "De afbeelding kan hier niet worden opgeslagen.",
68
153
  "caption": "Bijschrift",
69
154
  "caption_placeholder": "Voeg een bijschrift toe…",
70
- "dialog_title": "Afbeelding toevoegen/wijzigen",
71
155
  "height": "Hoogte",
72
156
  "keep_ratio": "Verhouding behouden",
157
+ "original_size": "Origineel {width} × {height}",
158
+ "position": "Positie",
159
+ "position_center": "Midden",
160
+ "position_left": "Links",
161
+ "position_right": "Rechts",
162
+ "remove_error": "De afbeelding kan niet worden verwijderd.",
163
+ "size": "Grootte",
164
+ "size_custom": "Aangepast",
165
+ "size_original": "Origineel",
166
+ "size_text": "Tekstbreedte",
167
+ "source_upload": "Uploaden",
168
+ "source_url": "Via URL",
73
169
  "src": "Bron",
74
- "title": "Titel",
170
+ "title_edit": "Afbeelding bewerken",
171
+ "title_insert": "Afbeelding invoegen",
172
+ "upload_cancel": "Upload annuleren",
173
+ "upload_error": "De afbeelding kan niet worden geüpload.",
174
+ "upload_file": "Afbeeldingsbestand",
75
175
  "width": "Breedte"
76
176
  },
177
+ "insert": "Invoegen",
77
178
  "link": {
179
+ "advanced": "Geavanceerd",
180
+ "apply_error": "De link kan niet worden toegepast.",
78
181
  "class": "CSS klasse",
79
182
  "href": "Linkadres",
80
- "href_error": "Ongeldig linkadres",
81
- "rel": "rel",
82
- "target": "Openen in...",
83
- "target_blank": "Nieuw venster",
84
- "target_self": "Huidig venster",
85
- "title": "Link toevoegen/wijzigen"
183
+ "href_invalid": "Voer een linkadres in, bijvoorbeeld https://example.com, #anker of /pagina.",
184
+ "new_tab": "Openen in een nieuw tabblad",
185
+ "protocol_missing": "Geen protocol. Toevoegen:",
186
+ "rel": "Rel-attributen",
187
+ "rel_hint": "Elke waarde: Enter, spatie of komma voegt hem toe.",
188
+ "rel_new_tab_hint": "Een link die in een nieuw tabblad opent, krijgt ook noopener en noreferrer.",
189
+ "remove": "Link verwijderen",
190
+ "text": "Tekst",
191
+ "text_hint": "Laat leeg om het adres als tekst te gebruiken.",
192
+ "title_edit": "Link bewerken",
193
+ "title_insert": "Link invoegen"
194
+ },
195
+ "linkCard": {
196
+ "apply_failed": "De kaart kan hier niet worden ingevoegd.",
197
+ "description": "Beschrijving",
198
+ "display": "Weergeven als",
199
+ "display_card": "Kaart",
200
+ "display_link": "Link",
201
+ "fetch_failed": "De paginagegevens kunnen niet worden geladen: {error}. De velden kunnen handmatig worden ingevuld.",
202
+ "href_invalid": "Voer het volledige adres van een pagina in, bijvoorbeeld https://example.com/page.",
203
+ "image": "Afbeelding",
204
+ "image_choose": "Afbeelding kiezen",
205
+ "image_failed": "De afbeelding kan niet worden geüpload. Probeer het opnieuw.",
206
+ "image_remove": "Afbeelding verwijderen",
207
+ "image_replace": "Vervangen",
208
+ "layout": "Weergave",
209
+ "layout_compact": "Compact",
210
+ "layout_large": "Groot",
211
+ "layout_text": "Zonder afbeelding",
212
+ "loading": "Paginagegevens worden geladen…",
213
+ "page_title": "Titel",
214
+ "paste_dismiss": "Link behouden",
215
+ "paste_error": "Geen voorbeeld voor deze pagina.",
216
+ "protocol_missing": "Begin het adres met https:// of http://.",
217
+ "refresh": "Gegevens vernieuwen",
218
+ "site_name": "Sitenaam",
219
+ "title_edit": "Linkkaart bewerken",
220
+ "title_insert": "Linkkaart invoegen"
86
221
  },
87
222
  "preview": {
88
223
  "title": "Voorvertoning"
89
224
  },
225
+ "remove": "Verwijderen",
226
+ "save": "Opslaan",
90
227
  "source": {
91
228
  "prettify": "prettify",
92
229
  "title": "Broncode bekijken"
93
230
  },
94
231
  "video": {
232
+ "apply_failed": "De video kan hier niet worden ingevoegd.",
233
+ "autoplay": "Automatisch afspelen zonder geluid",
234
+ "controls": "Bedieningselementen tonen",
95
235
  "height": "Hoogte",
96
- "src": "Bron",
97
- "title": "Video toevoegen/bewerken",
236
+ "keep_ratio": "Verhouding behouden",
237
+ "loop": "Herhalen",
238
+ "poster": "Poster",
239
+ "poster_choose": "Afbeelding kiezen",
240
+ "poster_hint": "Optioneel. Wordt getoond tot de video start.",
241
+ "poster_url": "URL van de posterafbeelding",
242
+ "preview": "Videovoorbeeld",
243
+ "preview_empty": "Het voorbeeld verschijnt zodra de link is herkend.",
244
+ "size": "Grootte",
245
+ "size_custom": "Aangepast",
246
+ "size_invalid": "Voer de grootte in pixels in.",
247
+ "size_responsive": "Responsief",
248
+ "size_responsive_embed": "Responsief 16:9",
249
+ "source_upload": "Uploaden",
250
+ "source_url": "Via URL",
251
+ "start": "Starten bij",
252
+ "start_invalid": "Voer de tijd in als m:ss of h:mm:ss.",
253
+ "title_edit": "Video bewerken",
254
+ "title_insert": "Video invoegen",
255
+ "upload_choose": "Kies een videobestand",
256
+ "upload_failed": "Het bestand kan niet worden geüpload. Probeer het opnieuw.",
257
+ "upload_progress": "{loaded} van {total} MB",
258
+ "upload_replace": "Vervangen",
259
+ "url": "Videolink",
260
+ "url_file_protocol": "Voeg het protocol toe aan de bestandslink: https:// of http://.",
261
+ "url_required": "Plak een YouTube-, Vimeo- of videobestandslink.",
262
+ "url_unsupported": "Gebruik een YouTube- of Vimeo-link, of een link naar een videobestand (.mp4, .webm, .ogg, .mov). Gebruik voor andere sites de insluitcode.",
98
263
  "width": "Breedte"
99
264
  }
100
265
  },
@@ -171,7 +336,7 @@
171
336
  "search": "Zoeken naar emoji...",
172
337
  "title": "Emoji"
173
338
  },
174
- "iframe": "iframe",
339
+ "iframe": "Insluiting",
175
340
  "image": "Afbeelding",
176
341
  "image_toolbar": {
177
342
  "align_left": "Align left",
@@ -212,10 +377,48 @@
212
377
  },
213
378
  "style": {
214
379
  "color": {
215
- "custom": "Eigen keuze",
380
+ "custom": "Eigen kleur",
381
+ "default": "Standaard",
382
+ "eyedropper": "Kleur van het scherm kiezen",
383
+ "hex": "Hex-kleur",
384
+ "hex_invalid": "Voer een kleur in als #rgb of #rrggbb.",
216
385
  "highlight": "Markeringskleur",
217
- "text": "Tekstkleur",
218
- "unset": "Kleur wissen"
386
+ "names": {
387
+ "amber": "Amber",
388
+ "black": "Zwart",
389
+ "blue": "Blauw",
390
+ "dark_amber": "Donkeramber",
391
+ "dark_blue": "Donkerblauw",
392
+ "dark_green": "Donkergroen",
393
+ "dark_grey": "Donkergrijs",
394
+ "dark_orange": "Donkeroranje",
395
+ "dark_pink": "Donkerroze",
396
+ "dark_purple": "Donkerpaars",
397
+ "dark_red": "Donkerrood",
398
+ "dark_teal": "Donkerblauwgroen",
399
+ "green": "Groen",
400
+ "grey": "Grijs",
401
+ "light_amber": "Lichtamber",
402
+ "light_blue": "Lichtblauw",
403
+ "light_green": "Lichtgroen",
404
+ "light_grey": "Lichtgrijs",
405
+ "light_orange": "Lichtoranje",
406
+ "light_pink": "Lichtroze",
407
+ "light_purple": "Lichtpaars",
408
+ "light_red": "Lichtrood",
409
+ "light_teal": "Lichtblauwgroen",
410
+ "medium_grey": "Middengrijs",
411
+ "orange": "Oranje",
412
+ "pale_grey": "Bleekgrijs",
413
+ "pink": "Roze",
414
+ "purple": "Paars",
415
+ "red": "Rood",
416
+ "teal": "Blauwgroen",
417
+ "white": "Wit"
418
+ },
419
+ "no_highlight": "Geen markering",
420
+ "recent": "Recent",
421
+ "text": "Tekstkleur"
219
422
  },
220
423
  "fontFamily": "Lettertype",
221
424
  "fontSize": "Grootte",