@jjlmoya/utils-converters 1.25.0 → 1.26.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/package.json +2 -2
- package/src/category/i18n/de.ts +1 -1
- package/src/category/i18n/en.ts +1 -1
- package/src/category/i18n/fr.ts +1 -1
- package/src/category/i18n/id.ts +1 -1
- package/src/category/i18n/it.ts +1 -1
- package/src/category/i18n/nl.ts +1 -1
- package/src/category/i18n/pl.ts +1 -1
- package/src/category/i18n/pt.ts +1 -1
- package/src/category/i18n/sv.ts +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +2 -2
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +15 -15
- package/src/tool/avifAJpg/i18n/en.ts +164 -164
- package/src/tool/avifAJpg/i18n/es.ts +164 -164
- package/src/tool/avifAJpg/i18n/fr.ts +164 -164
- package/src/tool/avifAJpg/i18n/ja.ts +166 -166
- package/src/tool/avifAJpg/i18n/ko.ts +166 -166
- package/src/tool/avifAJpg/i18n/zh.ts +166 -166
- package/src/tool/avifAJpg/seo.astro +15 -15
- package/src/tool/avifAPng/i18n/en.ts +164 -164
- package/src/tool/avifAPng/i18n/es.ts +164 -164
- package/src/tool/avifAPng/i18n/fr.ts +164 -164
- package/src/tool/avifAPng/i18n/ja.ts +166 -166
- package/src/tool/avifAPng/i18n/ko.ts +166 -166
- package/src/tool/avifAPng/i18n/zh.ts +166 -166
- package/src/tool/avifAPng/seo.astro +15 -15
- package/src/tool/avifAWebp/i18n/en.ts +164 -164
- package/src/tool/avifAWebp/i18n/es.ts +164 -164
- package/src/tool/avifAWebp/i18n/fr.ts +164 -164
- package/src/tool/avifAWebp/i18n/ja.ts +166 -166
- package/src/tool/avifAWebp/i18n/ko.ts +166 -166
- package/src/tool/avifAWebp/i18n/zh.ts +166 -166
- package/src/tool/avifAWebp/seo.astro +15 -15
- package/src/tool/bmpAJpg/i18n/en.ts +164 -164
- package/src/tool/bmpAJpg/i18n/es.ts +164 -164
- package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
- package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
- package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
- package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
- package/src/tool/bmpAJpg/seo.astro +15 -15
- package/src/tool/bmpAPng/i18n/en.ts +164 -164
- package/src/tool/bmpAPng/i18n/es.ts +164 -164
- package/src/tool/bmpAPng/i18n/fr.ts +164 -164
- package/src/tool/bmpAPng/i18n/ja.ts +165 -165
- package/src/tool/bmpAPng/i18n/ko.ts +165 -165
- package/src/tool/bmpAPng/i18n/zh.ts +165 -165
- package/src/tool/bmpAPng/seo.astro +15 -15
- package/src/tool/bmpAWebp/i18n/en.ts +164 -164
- package/src/tool/bmpAWebp/i18n/es.ts +164 -164
- package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
- package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
- package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
- package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
- package/src/tool/bmpAWebp/seo.astro +15 -15
- package/src/tool/gifAJpg/i18n/en.ts +164 -164
- package/src/tool/gifAJpg/i18n/es.ts +164 -164
- package/src/tool/gifAJpg/i18n/fr.ts +164 -164
- package/src/tool/gifAJpg/i18n/ja.ts +166 -166
- package/src/tool/gifAJpg/i18n/ko.ts +166 -166
- package/src/tool/gifAJpg/i18n/zh.ts +166 -166
- package/src/tool/gifAJpg/seo.astro +15 -15
- package/src/tool/gifAPng/i18n/en.ts +164 -164
- package/src/tool/gifAPng/i18n/es.ts +164 -164
- package/src/tool/gifAPng/i18n/fr.ts +164 -164
- package/src/tool/gifAPng/i18n/ja.ts +166 -166
- package/src/tool/gifAPng/i18n/ko.ts +166 -166
- package/src/tool/gifAPng/i18n/zh.ts +166 -166
- package/src/tool/gifAPng/seo.astro +15 -15
- package/src/tool/gifAWebp/i18n/en.ts +164 -164
- package/src/tool/gifAWebp/i18n/es.ts +164 -164
- package/src/tool/gifAWebp/i18n/fr.ts +164 -164
- package/src/tool/gifAWebp/i18n/ja.ts +166 -166
- package/src/tool/gifAWebp/i18n/ko.ts +166 -166
- package/src/tool/gifAWebp/i18n/zh.ts +166 -166
- package/src/tool/gifAWebp/seo.astro +15 -15
- package/src/tool/imagenBase64/i18n/en.ts +154 -154
- package/src/tool/imagenBase64/i18n/es.ts +154 -154
- package/src/tool/imagenBase64/i18n/fr.ts +154 -154
- package/src/tool/imagenBase64/seo.astro +15 -15
- package/src/tool/jpgAIco/seo.astro +15 -15
- package/src/tool/jpgAPng/i18n/en.ts +164 -164
- package/src/tool/jpgAPng/i18n/es.ts +164 -164
- package/src/tool/jpgAPng/i18n/fr.ts +164 -164
- package/src/tool/jpgAPng/i18n/ja.ts +166 -166
- package/src/tool/jpgAPng/i18n/ko.ts +166 -166
- package/src/tool/jpgAPng/i18n/zh.ts +166 -166
- package/src/tool/jpgAPng/seo.astro +15 -15
- package/src/tool/jpgAWebp/i18n/en.ts +164 -164
- package/src/tool/jpgAWebp/i18n/es.ts +164 -164
- package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
- package/src/tool/jpgAWebp/seo.astro +15 -15
- package/src/tool/pngAIco/seo.astro +15 -15
- package/src/tool/pngAJpg/i18n/de.ts +21 -21
- package/src/tool/pngAJpg/i18n/es.ts +177 -177
- package/src/tool/pngAJpg/i18n/fr.ts +137 -137
- package/src/tool/pngAJpg/i18n/id.ts +89 -89
- package/src/tool/pngAJpg/i18n/it.ts +89 -89
- package/src/tool/pngAJpg/i18n/ko.ts +177 -177
- package/src/tool/pngAJpg/i18n/nl.ts +20 -20
- package/src/tool/pngAJpg/i18n/pl.ts +89 -89
- package/src/tool/pngAJpg/i18n/pt.ts +89 -89
- package/src/tool/pngAJpg/i18n/ru.ts +177 -177
- package/src/tool/pngAJpg/i18n/sv.ts +89 -89
- package/src/tool/pngAJpg/i18n/tr.ts +89 -89
- package/src/tool/pngAJpg/seo.astro +15 -15
- package/src/tool/pngAWebp/i18n/en.ts +164 -164
- package/src/tool/pngAWebp/i18n/es.ts +164 -164
- package/src/tool/pngAWebp/i18n/fr.ts +164 -164
- package/src/tool/pngAWebp/seo.astro +15 -15
- package/src/tool/svgAJpg/i18n/fr.ts +164 -164
- package/src/tool/svgAJpg/seo.astro +15 -15
- package/src/tool/svgAPng/i18n/fr.ts +164 -164
- package/src/tool/svgAPng/seo.astro +15 -15
- package/src/tool/webpAIco/seo.astro +15 -15
- package/src/tool/webpAJpg/seo.astro +15 -15
- package/src/tool/webpAPng/bibliography.ts +13 -13
- package/src/tool/webpAPng/i18n/de.ts +166 -166
- package/src/tool/webpAPng/i18n/es.ts +171 -171
- package/src/tool/webpAPng/i18n/fr.ts +166 -166
- package/src/tool/webpAPng/i18n/id.ts +166 -166
- package/src/tool/webpAPng/i18n/it.ts +166 -166
- package/src/tool/webpAPng/i18n/nl.ts +166 -166
- package/src/tool/webpAPng/i18n/pl.ts +166 -166
- package/src/tool/webpAPng/i18n/pt.ts +166 -166
- package/src/tool/webpAPng/i18n/ru.ts +166 -166
- package/src/tool/webpAPng/i18n/sv.ts +166 -166
- package/src/tool/webpAPng/i18n/tr.ts +167 -167
- package/src/tool/webpAPng/seo.astro +15 -15
|
@@ -1,168 +1,168 @@
|
|
|
1
1
|
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
3
|
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
4
|
-
import type { GifAWebpLocaleContent } from '../index';
|
|
5
|
-
|
|
6
|
-
const slug = 'convertidor-gif-a-webp';
|
|
7
|
-
const title = 'Convertir GIF a WebP estático';
|
|
8
|
-
const description =
|
|
9
|
-
'Convierte GIF animados a WebP estático. Conserva transparencias. Sin servidor. Procesado local en tu navegador. Gratis.';
|
|
10
|
-
|
|
11
|
-
const ui: ImageConverterUI = {
|
|
12
|
-
dragText: 'Arrastra archivos GIF...',
|
|
13
|
-
convertText: 'Para convertirlos a WebP al instante',
|
|
14
|
-
selectFiles: 'Seleccionar archivos',
|
|
15
|
-
processedFiles: 'Archivos procesados',
|
|
16
|
-
downloadAll: 'Descargar Todo (.zip)',
|
|
4
|
+
import type { GifAWebpLocaleContent } from '../index';
|
|
5
|
+
|
|
6
|
+
const slug = 'convertidor-gif-a-webp';
|
|
7
|
+
const title = 'Convertir GIF a WebP estático';
|
|
8
|
+
const description =
|
|
9
|
+
'Convierte GIF animados a WebP estático. Conserva transparencias. Sin servidor. Procesado local en tu navegador. Gratis.';
|
|
10
|
+
|
|
11
|
+
const ui: ImageConverterUI = {
|
|
12
|
+
dragText: 'Arrastra archivos GIF...',
|
|
13
|
+
convertText: 'Para convertirlos a WebP al instante',
|
|
14
|
+
selectFiles: 'Seleccionar archivos',
|
|
15
|
+
processedFiles: 'Archivos procesados',
|
|
16
|
+
downloadAll: 'Descargar Todo (.zip)',
|
|
17
17
|
pending: 'Pendiente',
|
|
18
|
-
bibliographyTitle: 'Referencias Bibliográficas',
|
|
19
|
-
faqTitle: 'Preguntas Frecuentes',
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const faq: GifAWebpLocaleContent['faq'] = [
|
|
23
|
-
{
|
|
24
|
-
question: '¿Por qué congelar un archivo movible al formato estático moderno WebP?',
|
|
25
|
-
answer:
|
|
26
|
-
'El formato WebP es el estándar de compresión de Google; es asombrosamente ligero y retiene transparencias limpiamente. Pasar de GIF a WebP elimina la pesada animación y logra una ganancia abismal en velocidad web.',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
question: '¿Seguirá siendo transparente el avatar originario?',
|
|
30
|
-
answer:
|
|
31
|
-
'Sí, frente al JPEG, el contenedor WebP respeta el complejo canal Alpha. Todas sus siluetas quedarán perfectas tal como procedían de forma nativa.',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
question: '¿A dónde subirán los archivos?',
|
|
35
|
-
answer:
|
|
36
|
-
'No hay subida. El procesamiento lo realiza íntegramente el Javascript del navegador en tu PC, en cero envío remoto.',
|
|
37
|
-
},
|
|
38
|
-
];
|
|
39
|
-
|
|
40
|
-
const howTo: GifAWebpLocaleContent['howTo'] = [
|
|
41
|
-
{
|
|
42
|
-
name: 'Lanza Un Aluvión Animado',
|
|
43
|
-
text: 'Mueve y suelta decenas de memes a la zona pautada demarcadora sin conexión remota.',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: 'Contempla El Magno Cambio Invisible',
|
|
47
|
-
text: 'Percibe una placa progresiva que cambia al milisegundo al generar el decodificador local de lienzo.',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
name: 'Comprime O Guarda Tu Arsenal Resultante Limpio',
|
|
51
|
-
text: 'Llévate individualmente los archivos extraídos o presiona Descargar Zip empaquetando todo.',
|
|
52
|
-
},
|
|
53
|
-
];
|
|
54
|
-
|
|
55
|
-
const seo: GifAWebpLocaleContent['seo'] = [
|
|
56
|
-
{
|
|
57
|
-
type: 'title',
|
|
58
|
-
text: 'Convertidor de GIF a WebP: El Reemplazo Moderno para las Animaciones Pesadas',
|
|
59
|
-
level: 2,
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
type: 'paragraph',
|
|
63
|
-
html: 'Los GIFs animados son los dinosaurios del contenido web moderno: consumen un ancho de banda desproporcionado, degradan el PageSpeed de cualquier página y son responsables de un porcentaje significativo del peso total en miles de sitios web. Un GIF animado típico de 5 MB puede convertirse a WebP animado con menos de 1 MB manteniendo la misma calidad visual. WebP es el sucesor moderno que Google diseñó específicamente para reemplazar al GIF en la web.',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
type: 'title',
|
|
67
|
-
text: 'GIF vs WebP: la diferencia entre el pasado y el presente de la web',
|
|
68
|
-
level: 3,
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
type: 'paragraph',
|
|
72
|
-
html: 'El GIF es un formato de 1987 que no fue diseñado para animaciones: esa característica llegó como un hack posterior. Su paleta de 256 colores, su falta de compresión eficiente y su incapacidad para audio lo convierten en un formato obsoleto. WebP, desarrollado por Google en 2010, ofrece compresión superior tanto con pérdida como sin pérdida, soporte de animación nativo y canal alfa completo.',
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
type: 'paragraph',
|
|
76
|
-
html: 'Para un desarrollador web, reemplazar GIFs por WebP en las páginas puede suponer una mejora de 10-30 puntos en el score de PageSpeed de Google. Menos peso de página significa mejor Core Web Vitals, mejor posicionamiento SEO y menor coste de ancho de banda en servidores. No es solo una mejora estética: es una decisión de arquitectura técnica.',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
type: 'title',
|
|
80
|
-
text: 'Comparativa de Arquitectura: Local vs Nube',
|
|
81
|
-
level: 3,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: 'comparative',
|
|
85
|
-
items: [
|
|
86
|
-
{
|
|
87
|
-
title: 'Convertidores Cloud',
|
|
88
|
-
description: 'Plataformas que procesan tus GIFs en servidores remotos.',
|
|
89
|
-
icon: 'mdi:cloud-upload',
|
|
90
|
-
pointIcon: 'mdi:close-circle-outline',
|
|
91
|
-
points: [
|
|
92
|
-
'Tus animaciones viajan por internet a servidores de terceros',
|
|
93
|
-
'Espera por latencia de red en subida y bajada',
|
|
94
|
-
'Límites de tamaño (los GIFs grandes suelen rechazarse)',
|
|
95
|
-
'Riesgo de retención y análisis de tus archivos',
|
|
96
|
-
],
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
title: 'Nuestra Arquitectura Local',
|
|
100
|
-
description: 'Procesamiento directo en tu hardware mediante tecnología Vanilla JS.',
|
|
101
|
-
icon: 'mdi:laptop-mac',
|
|
102
|
-
highlight: true,
|
|
103
|
-
points: [
|
|
104
|
-
'El GIF nunca sale de tu dispositivo',
|
|
105
|
-
'Conversión instantánea sin espera de red',
|
|
106
|
-
'Sin límites de tamaño: procesa GIFs de cualquier peso',
|
|
107
|
-
'Privacidad total: 0 bytes enviados al exterior',
|
|
108
|
-
],
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
type: 'title',
|
|
114
|
-
text: 'Cómo funciona la conversión local GIF a WebP',
|
|
115
|
-
level: 3,
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
type: 'paragraph',
|
|
119
|
-
html: 'La conversión local utiliza el Canvas API de HTML5. El GIF se carga como un elemento Image nativo del navegador. Al dibujarlo sobre un canvas, el motor gráfico captura el primer fotograma de la animación con toda su información de transparencia. El método <code>toDataURL(\'image/webp\')</code> exporta el fotograma como WebP directamente en la RAM.',
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
type: 'paragraph',
|
|
123
|
-
html: 'El formato WebP soporta canal alfa completo, por lo que las transparencias del GIF se preservan en el WebP resultante sin necesidad de añadir fondo. Los algoritmos de compresión WebP son significativamente más eficientes que los del GIF o PNG, lo que explica la drástica reducción de tamaño del archivo final.',
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'tip',
|
|
127
|
-
title: 'Ganancia de PageSpeed garantizada',
|
|
128
|
-
html: 'Un GIF animado de 5 MB puede convertirse en un WebP de menos de 1 MB. Si tienes GIFs en las páginas de tu sitio web, reemplazarlos por WebP puede mejorar tu Largest Contentful Paint (LCP) y tu Total Blocking Time (TBT) de forma inmediata, impactando directamente en el posicionamiento SEO.',
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
type: 'title',
|
|
132
|
-
text: 'Casos de uso y compatibilidad del WebP resultante',
|
|
133
|
-
level: 3,
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
type: 'list',
|
|
137
|
-
icon: 'mdi:check-circle',
|
|
138
|
-
items: [
|
|
139
|
-
'Sustitución de GIFs en páginas web para mejorar PageSpeed.',
|
|
140
|
-
'Avatares y stickers optimizados para Discord, Slack y plataformas modernas.',
|
|
141
|
-
'Banners y elementos visuales para campañas de marketing digital.',
|
|
142
|
-
'Animaciones en aplicaciones web progresivas (PWA).',
|
|
143
|
-
'Compatible con Chrome, Edge, Firefox, Safari 14+ y todos los navegadores modernos.',
|
|
144
|
-
],
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
type: 'title',
|
|
148
|
-
text: 'Conclusión: migra tus GIFs al siglo XXI',
|
|
149
|
-
level: 3,
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
type: 'paragraph',
|
|
153
|
-
html: 'Cada GIF en tu sitio web es una oportunidad de optimización perdida. Nuestra herramienta convierte GIFs a WebP de forma instantánea, privada y sin límites, directamente en tu navegador. El resultado: archivos hasta 5 veces más pequeños, transparencias perfectas y compatibilidad con todos los navegadores modernos.',
|
|
154
|
-
},
|
|
155
|
-
];
|
|
156
|
-
|
|
18
|
+
bibliographyTitle: 'Referencias Bibliográficas',
|
|
19
|
+
faqTitle: 'Preguntas Frecuentes',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const faq: GifAWebpLocaleContent['faq'] = [
|
|
23
|
+
{
|
|
24
|
+
question: '¿Por qué congelar un archivo movible al formato estático moderno WebP?',
|
|
25
|
+
answer:
|
|
26
|
+
'El formato WebP es el estándar de compresión de Google; es asombrosamente ligero y retiene transparencias limpiamente. Pasar de GIF a WebP elimina la pesada animación y logra una ganancia abismal en velocidad web.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: '¿Seguirá siendo transparente el avatar originario?',
|
|
30
|
+
answer:
|
|
31
|
+
'Sí, frente al JPEG, el contenedor WebP respeta el complejo canal Alpha. Todas sus siluetas quedarán perfectas tal como procedían de forma nativa.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: '¿A dónde subirán los archivos?',
|
|
35
|
+
answer:
|
|
36
|
+
'No hay subida. El procesamiento lo realiza íntegramente el Javascript del navegador en tu PC, en cero envío remoto.',
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
const howTo: GifAWebpLocaleContent['howTo'] = [
|
|
41
|
+
{
|
|
42
|
+
name: 'Lanza Un Aluvión Animado',
|
|
43
|
+
text: 'Mueve y suelta decenas de memes a la zona pautada demarcadora sin conexión remota.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'Contempla El Magno Cambio Invisible',
|
|
47
|
+
text: 'Percibe una placa progresiva que cambia al milisegundo al generar el decodificador local de lienzo.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Comprime O Guarda Tu Arsenal Resultante Limpio',
|
|
51
|
+
text: 'Llévate individualmente los archivos extraídos o presiona Descargar Zip empaquetando todo.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const seo: GifAWebpLocaleContent['seo'] = [
|
|
56
|
+
{
|
|
57
|
+
type: 'title',
|
|
58
|
+
text: 'Convertidor de GIF a WebP: El Reemplazo Moderno para las Animaciones Pesadas',
|
|
59
|
+
level: 2,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: 'paragraph',
|
|
63
|
+
html: 'Los GIFs animados son los dinosaurios del contenido web moderno: consumen un ancho de banda desproporcionado, degradan el PageSpeed de cualquier página y son responsables de un porcentaje significativo del peso total en miles de sitios web. Un GIF animado típico de 5 MB puede convertirse a WebP animado con menos de 1 MB manteniendo la misma calidad visual. WebP es el sucesor moderno que Google diseñó específicamente para reemplazar al GIF en la web.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
type: 'title',
|
|
67
|
+
text: 'GIF vs WebP: la diferencia entre el pasado y el presente de la web',
|
|
68
|
+
level: 3,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html: 'El GIF es un formato de 1987 que no fue diseñado para animaciones: esa característica llegó como un hack posterior. Su paleta de 256 colores, su falta de compresión eficiente y su incapacidad para audio lo convierten en un formato obsoleto. WebP, desarrollado por Google en 2010, ofrece compresión superior tanto con pérdida como sin pérdida, soporte de animación nativo y canal alfa completo.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
html: 'Para un desarrollador web, reemplazar GIFs por WebP en las páginas puede suponer una mejora de 10-30 puntos en el score de PageSpeed de Google. Menos peso de página significa mejor Core Web Vitals, mejor posicionamiento SEO y menor coste de ancho de banda en servidores. No es solo una mejora estética: es una decisión de arquitectura técnica.',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: 'title',
|
|
80
|
+
text: 'Comparativa de Arquitectura: Local vs Nube',
|
|
81
|
+
level: 3,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: 'comparative',
|
|
85
|
+
items: [
|
|
86
|
+
{
|
|
87
|
+
title: 'Convertidores Cloud',
|
|
88
|
+
description: 'Plataformas que procesan tus GIFs en servidores remotos.',
|
|
89
|
+
icon: 'mdi:cloud-upload',
|
|
90
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
91
|
+
points: [
|
|
92
|
+
'Tus animaciones viajan por internet a servidores de terceros',
|
|
93
|
+
'Espera por latencia de red en subida y bajada',
|
|
94
|
+
'Límites de tamaño (los GIFs grandes suelen rechazarse)',
|
|
95
|
+
'Riesgo de retención y análisis de tus archivos',
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
title: 'Nuestra Arquitectura Local',
|
|
100
|
+
description: 'Procesamiento directo en tu hardware mediante tecnología Vanilla JS.',
|
|
101
|
+
icon: 'mdi:laptop-mac',
|
|
102
|
+
highlight: true,
|
|
103
|
+
points: [
|
|
104
|
+
'El GIF nunca sale de tu dispositivo',
|
|
105
|
+
'Conversión instantánea sin espera de red',
|
|
106
|
+
'Sin límites de tamaño: procesa GIFs de cualquier peso',
|
|
107
|
+
'Privacidad total: 0 bytes enviados al exterior',
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'title',
|
|
114
|
+
text: 'Cómo funciona la conversión local GIF a WebP',
|
|
115
|
+
level: 3,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: 'La conversión local utiliza el Canvas API de HTML5. El GIF se carga como un elemento Image nativo del navegador. Al dibujarlo sobre un canvas, el motor gráfico captura el primer fotograma de la animación con toda su información de transparencia. El método <code>toDataURL(\'image/webp\')</code> exporta el fotograma como WebP directamente en la RAM.',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'paragraph',
|
|
123
|
+
html: 'El formato WebP soporta canal alfa completo, por lo que las transparencias del GIF se preservan en el WebP resultante sin necesidad de añadir fondo. Los algoritmos de compresión WebP son significativamente más eficientes que los del GIF o PNG, lo que explica la drástica reducción de tamaño del archivo final.',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'tip',
|
|
127
|
+
title: 'Ganancia de PageSpeed garantizada',
|
|
128
|
+
html: 'Un GIF animado de 5 MB puede convertirse en un WebP de menos de 1 MB. Si tienes GIFs en las páginas de tu sitio web, reemplazarlos por WebP puede mejorar tu Largest Contentful Paint (LCP) y tu Total Blocking Time (TBT) de forma inmediata, impactando directamente en el posicionamiento SEO.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Casos de uso y compatibilidad del WebP resultante',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
icon: 'mdi:check-circle',
|
|
138
|
+
items: [
|
|
139
|
+
'Sustitución de GIFs en páginas web para mejorar PageSpeed.',
|
|
140
|
+
'Avatares y stickers optimizados para Discord, Slack y plataformas modernas.',
|
|
141
|
+
'Banners y elementos visuales para campañas de marketing digital.',
|
|
142
|
+
'Animaciones en aplicaciones web progresivas (PWA).',
|
|
143
|
+
'Compatible con Chrome, Edge, Firefox, Safari 14+ y todos los navegadores modernos.',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Conclusión: migra tus GIFs al siglo XXI',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'paragraph',
|
|
153
|
+
html: 'Cada GIF en tu sitio web es una oportunidad de optimización perdida. Nuestra herramienta convierte GIFs a WebP de forma instantánea, privada y sin límites, directamente en tu navegador. El resultado: archivos hasta 5 veces más pequeños, transparencias perfectas y compatibilidad con todos los navegadores modernos.',
|
|
154
|
+
},
|
|
155
|
+
];
|
|
157
156
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
157
|
+
|
|
158
|
+
export const content: GifAWebpLocaleContent = {
|
|
159
|
+
slug,
|
|
160
|
+
title,
|
|
161
|
+
description,
|
|
162
|
+
ui,
|
|
163
|
+
seo,
|
|
164
|
+
faq,
|
|
165
|
+
bibliography,
|
|
166
|
+
howTo,
|
|
167
|
+
schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
|
|
168
|
+
};
|