@seliseblocks/mailcraft 0.1.0 → 0.2.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/DOCS.md +240 -12
- package/README.md +11 -3
- package/README.md.txt +134 -0
- package/dist/mailcraft-editor.bundle.js +51 -39
- package/dist/mailcraft-editor.bundle.js.map +3 -3
- package/examples/templates/order-confirmed.html +80 -80
- package/examples/vanilla.html +242 -23
- package/package.json +7 -2
- package/src/core/assets.js +10 -15
- package/src/core/binder.js +120 -118
- package/src/core/blocks.js +14 -1
- package/src/core/css-cascade.js +117 -117
- package/src/core/editor-core.js +1530 -1492
- package/src/core/export.js +142 -55
- package/src/core/i18n/ar.js +219 -177
- package/src/core/i18n/bg.js +196 -152
- package/src/core/i18n/bn.js +218 -176
- package/src/core/i18n/ca.js +196 -152
- package/src/core/i18n/cs.js +196 -152
- package/src/core/i18n/da.js +196 -152
- package/src/core/i18n/de-CH.js +196 -152
- package/src/core/i18n/de.js +196 -152
- package/src/core/i18n/dz.js +221 -179
- package/src/core/i18n/el.js +196 -152
- package/src/core/i18n/en.js +3 -10
- package/src/core/i18n/es.js +196 -152
- package/src/core/i18n/et.js +196 -152
- package/src/core/i18n/fi.js +196 -152
- package/src/core/i18n/fr.js +196 -152
- package/src/core/i18n/hr.js +196 -152
- package/src/core/i18n/hu.js +196 -152
- package/src/core/i18n/index.js +83 -83
- package/src/core/i18n/it.js +196 -152
- package/src/core/i18n/lt.js +196 -152
- package/src/core/i18n/lv.js +196 -152
- package/src/core/i18n/nb.js +196 -152
- package/src/core/i18n/nl.js +196 -152
- package/src/core/i18n/pl.js +196 -152
- package/src/core/i18n/pt.js +196 -152
- package/src/core/i18n/ro.js +196 -152
- package/src/core/i18n/ru.js +196 -152
- package/src/core/i18n/sk.js +196 -152
- package/src/core/i18n/sl.js +196 -152
- package/src/core/i18n/sv.js +196 -152
- package/src/core/i18n/tables.js +50 -50
- package/src/core/i18n/tr.js +196 -152
- package/src/core/i18n/uk.js +196 -152
- package/src/core/icons.js +237 -235
- package/src/core/ids.js +1 -1
- package/src/core/import-html.js +1025 -959
- package/src/core/layout-style.js +100 -100
- package/src/core/parse.js +10 -10
- package/src/core/placeholder.js +15 -15
- package/src/core/sanitize.js +141 -141
- package/src/core/storage-limits.js +184 -184
- package/src/core/storage.js +85 -85
- package/src/core/theme.js +1 -1
- package/src/core/variables.js +11 -11
- package/src/index.js +9 -9
- package/src/mailcraft-editor.js +26 -14
- package/src/render/block-body.js +49 -6
- package/src/render/canvas.js +31 -2
- package/src/render/fields.js +602 -588
- package/src/render/focus-preserve.js +158 -158
- package/src/render/rte.js +241 -212
- package/src/render/screenshot.js +132 -132
- package/src/render/story.js +415 -415
- package/src/render/style.js +8 -0
- package/types/index.d.ts +419 -0
package/src/core/i18n/es.js
CHANGED
|
@@ -1,152 +1,196 @@
|
|
|
1
|
-
/** Spanish (Español) — `es`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
-
export const ES = {
|
|
3
|
-
'action.undoHint': 'Deshacer — ⌘Z',
|
|
4
|
-
'action.redoHint': 'Rehacer — ⌘⇧Z',
|
|
5
|
-
'action.chromeToDark': 'Oscuro',
|
|
6
|
-
'action.chromeToLight': 'Claro',
|
|
7
|
-
'action.chromeHint': 'Tema del editor claro / oscuro',
|
|
8
|
-
'action.
|
|
9
|
-
'action.
|
|
10
|
-
'action.
|
|
11
|
-
'action.
|
|
12
|
-
'action.
|
|
13
|
-
'action.
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
'device.
|
|
19
|
-
'device.
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'status.
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'tab.
|
|
27
|
-
'tab.
|
|
28
|
-
'tab.
|
|
29
|
-
'tab.
|
|
30
|
-
'tab.
|
|
31
|
-
'tab.
|
|
32
|
-
'tab.
|
|
33
|
-
'tab.
|
|
34
|
-
'tab.
|
|
35
|
-
'tab.
|
|
36
|
-
'tab.
|
|
37
|
-
'tab.
|
|
38
|
-
'
|
|
39
|
-
'
|
|
40
|
-
'inspector.
|
|
41
|
-
'inspector.
|
|
42
|
-
'inspector.
|
|
43
|
-
'
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
|
|
47
|
-
'inspector.
|
|
48
|
-
|
|
49
|
-
'
|
|
50
|
-
'shortcut.
|
|
51
|
-
'shortcut.
|
|
52
|
-
'shortcut.
|
|
53
|
-
'
|
|
54
|
-
'
|
|
55
|
-
'
|
|
56
|
-
'
|
|
57
|
-
'rows.
|
|
58
|
-
'rows.
|
|
59
|
-
'rows.
|
|
60
|
-
'rows.
|
|
61
|
-
'rows.
|
|
62
|
-
'rows.
|
|
63
|
-
'rows.
|
|
64
|
-
|
|
65
|
-
'rows.
|
|
66
|
-
|
|
67
|
-
'
|
|
68
|
-
'files.
|
|
69
|
-
'
|
|
70
|
-
'
|
|
71
|
-
'layers.
|
|
72
|
-
'layers.
|
|
73
|
-
'
|
|
74
|
-
'
|
|
75
|
-
'
|
|
76
|
-
'vars.
|
|
77
|
-
'vars.
|
|
78
|
-
'vars.
|
|
79
|
-
'vars.
|
|
80
|
-
'vars.
|
|
81
|
-
'vars.
|
|
82
|
-
'vars.
|
|
83
|
-
'
|
|
84
|
-
'
|
|
85
|
-
'modal.
|
|
86
|
-
'
|
|
87
|
-
'
|
|
88
|
-
'library.
|
|
89
|
-
'
|
|
90
|
-
'library.
|
|
91
|
-
'library.
|
|
92
|
-
'library.
|
|
93
|
-
'library.
|
|
94
|
-
'library.
|
|
95
|
-
'
|
|
96
|
-
'
|
|
97
|
-
'
|
|
98
|
-
'
|
|
99
|
-
'
|
|
100
|
-
'
|
|
101
|
-
'
|
|
102
|
-
'
|
|
103
|
-
'
|
|
104
|
-
'
|
|
105
|
-
'
|
|
106
|
-
'
|
|
107
|
-
'
|
|
108
|
-
'
|
|
109
|
-
'
|
|
110
|
-
'
|
|
111
|
-
'
|
|
112
|
-
'
|
|
113
|
-
'
|
|
114
|
-
|
|
115
|
-
'
|
|
116
|
-
'
|
|
117
|
-
'
|
|
118
|
-
'
|
|
119
|
-
'
|
|
120
|
-
'
|
|
121
|
-
'modal.
|
|
122
|
-
'
|
|
123
|
-
'
|
|
124
|
-
'
|
|
125
|
-
'
|
|
126
|
-
'
|
|
127
|
-
'
|
|
128
|
-
'
|
|
129
|
-
'
|
|
130
|
-
'
|
|
131
|
-
'
|
|
132
|
-
'
|
|
133
|
-
|
|
134
|
-
'
|
|
135
|
-
'toast.
|
|
136
|
-
'toast.
|
|
137
|
-
'
|
|
138
|
-
'
|
|
139
|
-
'
|
|
140
|
-
'
|
|
141
|
-
'
|
|
142
|
-
'
|
|
143
|
-
'
|
|
144
|
-
'
|
|
145
|
-
'
|
|
146
|
-
'
|
|
147
|
-
'
|
|
148
|
-
'
|
|
149
|
-
'
|
|
150
|
-
'
|
|
151
|
-
|
|
152
|
-
|
|
1
|
+
/** Spanish (Español) — `es`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const ES = {
|
|
3
|
+
'action.undoHint': 'Deshacer — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Rehacer — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Oscuro',
|
|
6
|
+
'action.chromeToLight': 'Claro',
|
|
7
|
+
'action.chromeHint': 'Tema del editor claro / oscuro',
|
|
8
|
+
'action.chromeHintToDark': 'Modo oscuro',
|
|
9
|
+
'action.chromeHintToLight': 'Modo claro',
|
|
10
|
+
'action.aiDraft': 'Borrador',
|
|
11
|
+
'action.aiDraftHint': 'Redactar el contenido del correo con IA',
|
|
12
|
+
'action.code': 'Código',
|
|
13
|
+
'action.codeHint': 'Editar el HTML sin procesar con vista previa en vivo',
|
|
14
|
+
'action.preview': 'Vista previa',
|
|
15
|
+
'action.previewHint': 'Previsualizar el correo',
|
|
16
|
+
'action.export': 'Exportar',
|
|
17
|
+
'action.exportHint': 'Exportar tu correo',
|
|
18
|
+
'device.desktop': 'Escritorio',
|
|
19
|
+
'device.desktopHint': 'Ancho de escritorio',
|
|
20
|
+
'device.mobile': 'Móvil',
|
|
21
|
+
'device.mobileHint': 'Ancho móvil',
|
|
22
|
+
'status.autosaveOn': 'guardado automático activado',
|
|
23
|
+
'status.saved': 'guardado {time}',
|
|
24
|
+
'status.saveFailed': 'no guardado — almacenamiento lleno',
|
|
25
|
+
'canvas.meta': '{rows} filas · {blocks} bloques · {width}px',
|
|
26
|
+
'tab.design': 'Estilo',
|
|
27
|
+
'tab.designHint': 'Aplicar estilo a la selección',
|
|
28
|
+
'tab.blocks': 'Bloques',
|
|
29
|
+
'tab.blocksHint': 'Bloques de contenido y variables',
|
|
30
|
+
'tab.rows': 'Secc.',
|
|
31
|
+
'tab.rowsHint': 'Diseños de sección y modelo de lienzo',
|
|
32
|
+
'tab.files': 'Archivos',
|
|
33
|
+
'tab.filesHint': 'Biblioteca de recursos',
|
|
34
|
+
'tab.layers': 'Estruct.',
|
|
35
|
+
'tab.layersHint': 'Estructura del documento',
|
|
36
|
+
'tab.settings': 'Ajustes',
|
|
37
|
+
'tab.settingsHint': 'Ajustes del correo',
|
|
38
|
+
'tab.data': 'Var.',
|
|
39
|
+
'tab.dataHint': 'Variables proporcionadas por tu código',
|
|
40
|
+
'inspector.blockProperties': 'Propiedades del bloque',
|
|
41
|
+
'inspector.sectionProperties': 'Propiedades de la sección',
|
|
42
|
+
'inspector.title': 'Inspector',
|
|
43
|
+
'inspector.sectionLabel': 'Sección',
|
|
44
|
+
'inspector.nothingSelected': 'Nada seleccionado',
|
|
45
|
+
'action.duplicateHint': 'Duplicar — ⌘D',
|
|
46
|
+
'action.deleteHint': 'Eliminar — ⌫',
|
|
47
|
+
'inspector.emptyBody':
|
|
48
|
+
'Selecciona una fila o un bloque en el lienzo para darle estilo aquí. Arrastra bloques desde la pestaña <strong style="color: var(--ed-text); font-weight: 600;">Bloques</strong>; haz doble clic en cualquier texto para editarlo directamente.',
|
|
49
|
+
'inspector.shortcuts': 'Atajos',
|
|
50
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — deshacer, rehacer',
|
|
51
|
+
'shortcut.duplicate': '⌘D — duplicar selección',
|
|
52
|
+
'shortcut.delete': '⌫ — eliminar selección',
|
|
53
|
+
'shortcut.export': '⌘E — exportar HTML',
|
|
54
|
+
'shortcut.escape': 'ESC — deseleccionar, cerrar',
|
|
55
|
+
'blocks.dragHint': 'Arrastra al lienzo',
|
|
56
|
+
'blocks.count': '{count} bloques',
|
|
57
|
+
'rows.sectionLayouts': 'Diseños de sección',
|
|
58
|
+
'rows.customMarkup': 'Marcado personalizado',
|
|
59
|
+
'rows.htmlRowHint': 'Arrastra para insertar, o haz clic para añadir — una fila a sangre completa que rellenas con HTML sin procesar',
|
|
60
|
+
'rows.rawHtmlSection': 'Sección de HTML sin procesar',
|
|
61
|
+
'rows.rawHtmlDesc': 'Sección a sangre completa, tu propio marcado, sigue siendo arrastrable',
|
|
62
|
+
'rows.canvasModel': 'Modelo de lienzo',
|
|
63
|
+
'rows.modeRowBased': 'Basado en filas',
|
|
64
|
+
'rows.modeFreeStack': 'Pila libre',
|
|
65
|
+
'rows.hintRows':
|
|
66
|
+
'Basado en secciones: primero suelta un diseño, luego suelta bloques en sus columnas — cada sección tiene su propio fondo, borde, ajustes flex o de cuadrícula.',
|
|
67
|
+
'rows.hintStack': 'Pila libre: sin diseños — cada bloque que sueltas se convierte en su propia sección de ancho completo, apilada en orden.',
|
|
68
|
+
'files.libraryCount': 'Biblioteca — {count} archivos',
|
|
69
|
+
'files.openManager': 'Abrir gestor de archivos',
|
|
70
|
+
'files.dragToCanvas': 'Arrastra cualquier archivo directamente al lienzo para colocarlo como bloque de imagen.',
|
|
71
|
+
'layers.structure': 'Estructura',
|
|
72
|
+
'layers.sectionSingle': 'Sección',
|
|
73
|
+
'layers.sectionMulti': 'Sección · {count} col.',
|
|
74
|
+
'layers.column': 'Columna {index}',
|
|
75
|
+
'layers.blockCount': '{count} bloq.',
|
|
76
|
+
'vars.title': 'Variables',
|
|
77
|
+
'vars.fromCode': '{count} de tu código',
|
|
78
|
+
'vars.declaredNote': 'Declaradas por tu aplicación — el lienzo siempre muestra el token, nunca un valor.',
|
|
79
|
+
'vars.filterPlaceholder': 'Filtrar variables…',
|
|
80
|
+
'vars.insertHint': 'Haz clic para insertar en el texto, título o botón seleccionado',
|
|
81
|
+
'vars.insert': 'insertar',
|
|
82
|
+
'vars.noMatch': 'Ninguna variable coincide con ese filtro.',
|
|
83
|
+
'vars.noneDeclared': 'Tu aplicación aún no ha declarado ninguna variable.',
|
|
84
|
+
'vars.rteHint': 'Al editar texto también puedes elegir una variable directamente desde el menú de la barra de herramientas en línea.',
|
|
85
|
+
'modal.fileManager': 'Gestor de archivos',
|
|
86
|
+
'modal.assetsTitle': 'Recursos',
|
|
87
|
+
'modal.replaceImage': 'Reemplazar imagen',
|
|
88
|
+
'library.searchPlaceholder': 'Buscar archivos…',
|
|
89
|
+
'action.upload': 'Subir',
|
|
90
|
+
'library.clickToPlace': 'Haz clic en un archivo para colocarlo · o arrastra un archivo al lienzo',
|
|
91
|
+
'library.clickToReplace': 'Haz clic en un archivo para reemplazar la imagen seleccionada',
|
|
92
|
+
'library.storageLabel': '{count} archivos · {size}',
|
|
93
|
+
'library.folders': 'Carpetas',
|
|
94
|
+
'library.dropHint': 'Suelta archivos de imagen aquí para subirlos — o usa el botón Subir.',
|
|
95
|
+
'library.deleteFileHint': 'Eliminar archivo',
|
|
96
|
+
'library.del': 'BORR',
|
|
97
|
+
'toast.assetDeleted': '{name} eliminado',
|
|
98
|
+
'library.allFiles': 'Todos los archivos',
|
|
99
|
+
'library.loadMore': 'Cargar más',
|
|
100
|
+
'library.empty': 'Aquí todavía no hay archivos.',
|
|
101
|
+
'storage.loading': 'Cargando archivos…',
|
|
102
|
+
'storage.uploading': 'Subiendo {count}…',
|
|
103
|
+
'storage.errLoadFailed': 'No se pudo cargar la biblioteca de archivos — {reason}',
|
|
104
|
+
'storage.errNoLimits': 'Las subidas están desactivadas: esta aplicación no ha definido ningún límite de subida.',
|
|
105
|
+
'storage.errNoAccept': 'Las subidas están desactivadas: no se ha permitido ningún formato de archivo.',
|
|
106
|
+
'storage.errNoMaxBytes': 'Las subidas están desactivadas: no se ha definido un tamaño máximo de archivo.',
|
|
107
|
+
'storage.errTooLarge': '{name} pesa {size} — el límite es {max}.',
|
|
108
|
+
'storage.errFormat': '{name} es un archivo {type}, que no se permite aquí.',
|
|
109
|
+
'storage.errSvg': '{name} es un SVG, y esta aplicación no lo acepta.',
|
|
110
|
+
'storage.errDimensions': '{name} mide {w}×{ht}px — el límite es {maxW}×{maxH}px.',
|
|
111
|
+
'storage.errTooMany': 'Solo se pueden subir {max} archivos a la vez.',
|
|
112
|
+
'storage.errUnreadable': '{name} no es una imagen legible.',
|
|
113
|
+
'storage.errUploadFailed': 'No se pudo subir {name} — {reason}',
|
|
114
|
+
'storage.errDeleteFailed': 'No se pudo eliminar {name} — {reason}',
|
|
115
|
+
'modal.export': 'Exportar',
|
|
116
|
+
'modal.exportTitle': 'HTML de correo basado en tablas',
|
|
117
|
+
'export.copy': 'Copiar',
|
|
118
|
+
'export.copied': 'Copiado',
|
|
119
|
+
'action.download': 'Descargar',
|
|
120
|
+
'export.meta': '{kb} KB · tablas + estilos en línea · anchos seguros para Outlook',
|
|
121
|
+
'modal.rawHtmlTitle': 'HTML sin procesar, vista previa en vivo',
|
|
122
|
+
'code.statusEdited': 'Vista de código — editado — vista previa en vivo, aún no aplicado',
|
|
123
|
+
'code.statusSynced': 'Vista de código — sincronizado con el lienzo',
|
|
124
|
+
'action.reload': 'Recargar',
|
|
125
|
+
'action.reloadHint': 'Recargar el origen desde el lienzo',
|
|
126
|
+
'action.applyToCanvas': 'Aplicar al lienzo',
|
|
127
|
+
'action.applyToCanvasHint': 'Analizar el origen de nuevo en filas editables',
|
|
128
|
+
'action.closeWithoutApplyingHint': 'Cerrar sin aplicar',
|
|
129
|
+
'code.source': 'Origen',
|
|
130
|
+
'code.livePreview': 'Vista previa en vivo',
|
|
131
|
+
'code.liveHtmlPreviewTitle': 'Vista previa de HTML en vivo',
|
|
132
|
+
'code.applyNote':
|
|
133
|
+
'Aplicar analiza cada fila de tabla de nivel superior en una fila de lienzo que aún puedes seleccionar, reordenar y eliminar — el marcado escrito a mano sobrevive el proceso.',
|
|
134
|
+
'code.meta': '{kb} KB · {lines} líneas',
|
|
135
|
+
'toast.sourceReloaded': 'Origen recargado desde el lienzo',
|
|
136
|
+
'toast.sourceAppliedOne': 'Origen aplicado — 1 fila en el lienzo',
|
|
137
|
+
'toast.sourceAppliedMany': 'Origen aplicado — {rows} filas en el lienzo',
|
|
138
|
+
'toast.parseError': 'No se pudo analizar ese HTML',
|
|
139
|
+
'modal.aiDraft': 'Asistente de redacción con IA',
|
|
140
|
+
'modal.aiDraftTitle': 'Redacta tu correo con IA',
|
|
141
|
+
'ai.disclosure': 'La IA crea sugerencias a partir de tu resumen. Revisa y edita el resultado antes de enviarlo.',
|
|
142
|
+
'ai.goal': 'Objetivo',
|
|
143
|
+
'ai.tone': 'Tono',
|
|
144
|
+
'ai.briefLabel': '¿De qué trata este correo?',
|
|
145
|
+
'ai.briefPlaceholder': 'p. ej. Colección de otoño, 15% para suscriptores, envío gratis desde $150',
|
|
146
|
+
'ai.generate': 'Generar texto',
|
|
147
|
+
'ai.writing': 'Escribiendo…',
|
|
148
|
+
'ai.kindHeadline': 'Titular',
|
|
149
|
+
'ai.kindBody': 'Cuerpo del texto',
|
|
150
|
+
'ai.kindButton': 'Texto del botón',
|
|
151
|
+
'ai.actionInsertHeading': 'Insertar como encabezado',
|
|
152
|
+
'ai.actionInsertText': 'Insertar como bloque de texto',
|
|
153
|
+
'ai.actionInsertButton': 'Insertar como botón',
|
|
154
|
+
'toast.headingAdded': 'Encabezado añadido',
|
|
155
|
+
'toast.textBlockAdded': 'Bloque de texto añadido',
|
|
156
|
+
'toast.buttonAdded': 'Botón añadido',
|
|
157
|
+
'preview.kickerMobile': 'Vista previa — móvil 375px',
|
|
158
|
+
'preview.kickerDesktop': 'Vista previa — escritorio {width}px',
|
|
159
|
+
'action.close': 'Cerrar',
|
|
160
|
+
'toast.duplicated': 'Duplicado',
|
|
161
|
+
'toast.fileUploadedOne': '1 archivo subido',
|
|
162
|
+
'toast.fileUploadedMany': '{count} archivos subidos',
|
|
163
|
+
'toast.imageReplaced': 'Imagen reemplazada',
|
|
164
|
+
'toast.imageAdded': 'Imagen añadida al lienzo',
|
|
165
|
+
'toast.htmlCopied': 'HTML copiado al portapapeles',
|
|
166
|
+
'toast.templateLoaded': '{name} cargado',
|
|
167
|
+
'toast.snippetDefaultLabel': 'Fragmento',
|
|
168
|
+
'toast.snippetInserted': '{name} insertado',
|
|
169
|
+
'toast.snippetCopied': '{name} copiado — selecciona un bloque de texto para insertarlo',
|
|
170
|
+
'rte.textStyle': 'Estilo de texto',
|
|
171
|
+
'rte.mergeTags': 'Campos de combinación',
|
|
172
|
+
'rte.noMergeTags': 'No hay campos de combinación disponibles',
|
|
173
|
+
'rte.textColor': 'Color del texto',
|
|
174
|
+
'rte.highlightColor': 'Color de resaltado',
|
|
175
|
+
'rte.removeHighlight': 'Quitar resaltado',
|
|
176
|
+
'rte.clearFormatting': 'Borrar formato',
|
|
177
|
+
'action.downloadPng': 'Descargar PNG',
|
|
178
|
+
'action.screenshot': 'Captura',
|
|
179
|
+
'action.screenshotHint': 'Ver toda la plantilla como imagen y descargarla',
|
|
180
|
+
'toast.pngSaved': 'Captura descargada',
|
|
181
|
+
'toast.pngFailed': 'La captura falló — no se pudo cargar una imagen externa',
|
|
182
|
+
'toast.pngCopied': 'Captura copiada al portapapeles',
|
|
183
|
+
'toast.pngCopyFailed': 'Este navegador no aceptó una imagen en el portapapeles',
|
|
184
|
+
'story.kicker': 'Captura',
|
|
185
|
+
'story.rendering': 'Generando la captura',
|
|
186
|
+
'story.renderingHint': 'Se dibuja cada bloque a 2× — en una plantilla larga tarda un momento.',
|
|
187
|
+
'story.failed': 'La captura falló',
|
|
188
|
+
'story.failedHint': 'No se pudo cargar una imagen de la plantilla para capturarla.',
|
|
189
|
+
'story.retry': 'Inténtalo de nuevo',
|
|
190
|
+
'story.play': 'Reproducir',
|
|
191
|
+
'story.pause': 'Pausar',
|
|
192
|
+
'story.replay': 'Repetir',
|
|
193
|
+
'story.copy': 'Copiar',
|
|
194
|
+
'story.meta': '{w}×{h} · pantalla {i} de {n}',
|
|
195
|
+
'footer.poweredBy': 'Con la tecnología de SELISE Blocks © 2026',
|
|
196
|
+
};
|