@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.
Files changed (133) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/fr.ts +1 -1
  5. package/src/category/i18n/id.ts +1 -1
  6. package/src/category/i18n/it.ts +1 -1
  7. package/src/category/i18n/nl.ts +1 -1
  8. package/src/category/i18n/pl.ts +1 -1
  9. package/src/category/i18n/pt.ts +1 -1
  10. package/src/category/i18n/sv.ts +1 -1
  11. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  12. package/src/tests/category_seo_quality.test.ts +74 -0
  13. package/src/tests/faq_count.test.ts +1 -1
  14. package/src/tests/no_h1_in_components.test.ts +1 -1
  15. package/src/tests/seo_parity.test.ts +2 -2
  16. package/src/tests/seo_wellformed_export.test.ts +65 -0
  17. package/src/tests/tool_validation.test.ts +15 -15
  18. package/src/tool/avifAJpg/i18n/en.ts +164 -164
  19. package/src/tool/avifAJpg/i18n/es.ts +164 -164
  20. package/src/tool/avifAJpg/i18n/fr.ts +164 -164
  21. package/src/tool/avifAJpg/i18n/ja.ts +166 -166
  22. package/src/tool/avifAJpg/i18n/ko.ts +166 -166
  23. package/src/tool/avifAJpg/i18n/zh.ts +166 -166
  24. package/src/tool/avifAJpg/seo.astro +15 -15
  25. package/src/tool/avifAPng/i18n/en.ts +164 -164
  26. package/src/tool/avifAPng/i18n/es.ts +164 -164
  27. package/src/tool/avifAPng/i18n/fr.ts +164 -164
  28. package/src/tool/avifAPng/i18n/ja.ts +166 -166
  29. package/src/tool/avifAPng/i18n/ko.ts +166 -166
  30. package/src/tool/avifAPng/i18n/zh.ts +166 -166
  31. package/src/tool/avifAPng/seo.astro +15 -15
  32. package/src/tool/avifAWebp/i18n/en.ts +164 -164
  33. package/src/tool/avifAWebp/i18n/es.ts +164 -164
  34. package/src/tool/avifAWebp/i18n/fr.ts +164 -164
  35. package/src/tool/avifAWebp/i18n/ja.ts +166 -166
  36. package/src/tool/avifAWebp/i18n/ko.ts +166 -166
  37. package/src/tool/avifAWebp/i18n/zh.ts +166 -166
  38. package/src/tool/avifAWebp/seo.astro +15 -15
  39. package/src/tool/bmpAJpg/i18n/en.ts +164 -164
  40. package/src/tool/bmpAJpg/i18n/es.ts +164 -164
  41. package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
  42. package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
  43. package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
  44. package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
  45. package/src/tool/bmpAJpg/seo.astro +15 -15
  46. package/src/tool/bmpAPng/i18n/en.ts +164 -164
  47. package/src/tool/bmpAPng/i18n/es.ts +164 -164
  48. package/src/tool/bmpAPng/i18n/fr.ts +164 -164
  49. package/src/tool/bmpAPng/i18n/ja.ts +165 -165
  50. package/src/tool/bmpAPng/i18n/ko.ts +165 -165
  51. package/src/tool/bmpAPng/i18n/zh.ts +165 -165
  52. package/src/tool/bmpAPng/seo.astro +15 -15
  53. package/src/tool/bmpAWebp/i18n/en.ts +164 -164
  54. package/src/tool/bmpAWebp/i18n/es.ts +164 -164
  55. package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
  56. package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
  57. package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
  58. package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
  59. package/src/tool/bmpAWebp/seo.astro +15 -15
  60. package/src/tool/gifAJpg/i18n/en.ts +164 -164
  61. package/src/tool/gifAJpg/i18n/es.ts +164 -164
  62. package/src/tool/gifAJpg/i18n/fr.ts +164 -164
  63. package/src/tool/gifAJpg/i18n/ja.ts +166 -166
  64. package/src/tool/gifAJpg/i18n/ko.ts +166 -166
  65. package/src/tool/gifAJpg/i18n/zh.ts +166 -166
  66. package/src/tool/gifAJpg/seo.astro +15 -15
  67. package/src/tool/gifAPng/i18n/en.ts +164 -164
  68. package/src/tool/gifAPng/i18n/es.ts +164 -164
  69. package/src/tool/gifAPng/i18n/fr.ts +164 -164
  70. package/src/tool/gifAPng/i18n/ja.ts +166 -166
  71. package/src/tool/gifAPng/i18n/ko.ts +166 -166
  72. package/src/tool/gifAPng/i18n/zh.ts +166 -166
  73. package/src/tool/gifAPng/seo.astro +15 -15
  74. package/src/tool/gifAWebp/i18n/en.ts +164 -164
  75. package/src/tool/gifAWebp/i18n/es.ts +164 -164
  76. package/src/tool/gifAWebp/i18n/fr.ts +164 -164
  77. package/src/tool/gifAWebp/i18n/ja.ts +166 -166
  78. package/src/tool/gifAWebp/i18n/ko.ts +166 -166
  79. package/src/tool/gifAWebp/i18n/zh.ts +166 -166
  80. package/src/tool/gifAWebp/seo.astro +15 -15
  81. package/src/tool/imagenBase64/i18n/en.ts +154 -154
  82. package/src/tool/imagenBase64/i18n/es.ts +154 -154
  83. package/src/tool/imagenBase64/i18n/fr.ts +154 -154
  84. package/src/tool/imagenBase64/seo.astro +15 -15
  85. package/src/tool/jpgAIco/seo.astro +15 -15
  86. package/src/tool/jpgAPng/i18n/en.ts +164 -164
  87. package/src/tool/jpgAPng/i18n/es.ts +164 -164
  88. package/src/tool/jpgAPng/i18n/fr.ts +164 -164
  89. package/src/tool/jpgAPng/i18n/ja.ts +166 -166
  90. package/src/tool/jpgAPng/i18n/ko.ts +166 -166
  91. package/src/tool/jpgAPng/i18n/zh.ts +166 -166
  92. package/src/tool/jpgAPng/seo.astro +15 -15
  93. package/src/tool/jpgAWebp/i18n/en.ts +164 -164
  94. package/src/tool/jpgAWebp/i18n/es.ts +164 -164
  95. package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
  96. package/src/tool/jpgAWebp/seo.astro +15 -15
  97. package/src/tool/pngAIco/seo.astro +15 -15
  98. package/src/tool/pngAJpg/i18n/de.ts +21 -21
  99. package/src/tool/pngAJpg/i18n/es.ts +177 -177
  100. package/src/tool/pngAJpg/i18n/fr.ts +137 -137
  101. package/src/tool/pngAJpg/i18n/id.ts +89 -89
  102. package/src/tool/pngAJpg/i18n/it.ts +89 -89
  103. package/src/tool/pngAJpg/i18n/ko.ts +177 -177
  104. package/src/tool/pngAJpg/i18n/nl.ts +20 -20
  105. package/src/tool/pngAJpg/i18n/pl.ts +89 -89
  106. package/src/tool/pngAJpg/i18n/pt.ts +89 -89
  107. package/src/tool/pngAJpg/i18n/ru.ts +177 -177
  108. package/src/tool/pngAJpg/i18n/sv.ts +89 -89
  109. package/src/tool/pngAJpg/i18n/tr.ts +89 -89
  110. package/src/tool/pngAJpg/seo.astro +15 -15
  111. package/src/tool/pngAWebp/i18n/en.ts +164 -164
  112. package/src/tool/pngAWebp/i18n/es.ts +164 -164
  113. package/src/tool/pngAWebp/i18n/fr.ts +164 -164
  114. package/src/tool/pngAWebp/seo.astro +15 -15
  115. package/src/tool/svgAJpg/i18n/fr.ts +164 -164
  116. package/src/tool/svgAJpg/seo.astro +15 -15
  117. package/src/tool/svgAPng/i18n/fr.ts +164 -164
  118. package/src/tool/svgAPng/seo.astro +15 -15
  119. package/src/tool/webpAIco/seo.astro +15 -15
  120. package/src/tool/webpAJpg/seo.astro +15 -15
  121. package/src/tool/webpAPng/bibliography.ts +13 -13
  122. package/src/tool/webpAPng/i18n/de.ts +166 -166
  123. package/src/tool/webpAPng/i18n/es.ts +171 -171
  124. package/src/tool/webpAPng/i18n/fr.ts +166 -166
  125. package/src/tool/webpAPng/i18n/id.ts +166 -166
  126. package/src/tool/webpAPng/i18n/it.ts +166 -166
  127. package/src/tool/webpAPng/i18n/nl.ts +166 -166
  128. package/src/tool/webpAPng/i18n/pl.ts +166 -166
  129. package/src/tool/webpAPng/i18n/pt.ts +166 -166
  130. package/src/tool/webpAPng/i18n/ru.ts +166 -166
  131. package/src/tool/webpAPng/i18n/sv.ts +166 -166
  132. package/src/tool/webpAPng/i18n/tr.ts +167 -167
  133. 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
- 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
- };
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
+ };