@jjlmoya/utils-converters 1.24.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 (134) 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/entries.ts +6 -0
  12. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  13. package/src/tests/category_seo_quality.test.ts +74 -0
  14. package/src/tests/faq_count.test.ts +1 -1
  15. package/src/tests/no_h1_in_components.test.ts +1 -1
  16. package/src/tests/seo_parity.test.ts +2 -2
  17. package/src/tests/seo_wellformed_export.test.ts +65 -0
  18. package/src/tests/tool_validation.test.ts +15 -15
  19. package/src/tool/avifAJpg/i18n/en.ts +164 -164
  20. package/src/tool/avifAJpg/i18n/es.ts +164 -164
  21. package/src/tool/avifAJpg/i18n/fr.ts +164 -164
  22. package/src/tool/avifAJpg/i18n/ja.ts +166 -166
  23. package/src/tool/avifAJpg/i18n/ko.ts +166 -166
  24. package/src/tool/avifAJpg/i18n/zh.ts +166 -166
  25. package/src/tool/avifAJpg/seo.astro +15 -15
  26. package/src/tool/avifAPng/i18n/en.ts +164 -164
  27. package/src/tool/avifAPng/i18n/es.ts +164 -164
  28. package/src/tool/avifAPng/i18n/fr.ts +164 -164
  29. package/src/tool/avifAPng/i18n/ja.ts +166 -166
  30. package/src/tool/avifAPng/i18n/ko.ts +166 -166
  31. package/src/tool/avifAPng/i18n/zh.ts +166 -166
  32. package/src/tool/avifAPng/seo.astro +15 -15
  33. package/src/tool/avifAWebp/i18n/en.ts +164 -164
  34. package/src/tool/avifAWebp/i18n/es.ts +164 -164
  35. package/src/tool/avifAWebp/i18n/fr.ts +164 -164
  36. package/src/tool/avifAWebp/i18n/ja.ts +166 -166
  37. package/src/tool/avifAWebp/i18n/ko.ts +166 -166
  38. package/src/tool/avifAWebp/i18n/zh.ts +166 -166
  39. package/src/tool/avifAWebp/seo.astro +15 -15
  40. package/src/tool/bmpAJpg/i18n/en.ts +164 -164
  41. package/src/tool/bmpAJpg/i18n/es.ts +164 -164
  42. package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
  43. package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
  44. package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
  45. package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
  46. package/src/tool/bmpAJpg/seo.astro +15 -15
  47. package/src/tool/bmpAPng/i18n/en.ts +164 -164
  48. package/src/tool/bmpAPng/i18n/es.ts +164 -164
  49. package/src/tool/bmpAPng/i18n/fr.ts +164 -164
  50. package/src/tool/bmpAPng/i18n/ja.ts +165 -165
  51. package/src/tool/bmpAPng/i18n/ko.ts +165 -165
  52. package/src/tool/bmpAPng/i18n/zh.ts +165 -165
  53. package/src/tool/bmpAPng/seo.astro +15 -15
  54. package/src/tool/bmpAWebp/i18n/en.ts +164 -164
  55. package/src/tool/bmpAWebp/i18n/es.ts +164 -164
  56. package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
  57. package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
  58. package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
  59. package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
  60. package/src/tool/bmpAWebp/seo.astro +15 -15
  61. package/src/tool/gifAJpg/i18n/en.ts +164 -164
  62. package/src/tool/gifAJpg/i18n/es.ts +164 -164
  63. package/src/tool/gifAJpg/i18n/fr.ts +164 -164
  64. package/src/tool/gifAJpg/i18n/ja.ts +166 -166
  65. package/src/tool/gifAJpg/i18n/ko.ts +166 -166
  66. package/src/tool/gifAJpg/i18n/zh.ts +166 -166
  67. package/src/tool/gifAJpg/seo.astro +15 -15
  68. package/src/tool/gifAPng/i18n/en.ts +164 -164
  69. package/src/tool/gifAPng/i18n/es.ts +164 -164
  70. package/src/tool/gifAPng/i18n/fr.ts +164 -164
  71. package/src/tool/gifAPng/i18n/ja.ts +166 -166
  72. package/src/tool/gifAPng/i18n/ko.ts +166 -166
  73. package/src/tool/gifAPng/i18n/zh.ts +166 -166
  74. package/src/tool/gifAPng/seo.astro +15 -15
  75. package/src/tool/gifAWebp/i18n/en.ts +164 -164
  76. package/src/tool/gifAWebp/i18n/es.ts +164 -164
  77. package/src/tool/gifAWebp/i18n/fr.ts +164 -164
  78. package/src/tool/gifAWebp/i18n/ja.ts +166 -166
  79. package/src/tool/gifAWebp/i18n/ko.ts +166 -166
  80. package/src/tool/gifAWebp/i18n/zh.ts +166 -166
  81. package/src/tool/gifAWebp/seo.astro +15 -15
  82. package/src/tool/imagenBase64/i18n/en.ts +154 -154
  83. package/src/tool/imagenBase64/i18n/es.ts +154 -154
  84. package/src/tool/imagenBase64/i18n/fr.ts +154 -154
  85. package/src/tool/imagenBase64/seo.astro +15 -15
  86. package/src/tool/jpgAIco/seo.astro +15 -15
  87. package/src/tool/jpgAPng/i18n/en.ts +164 -164
  88. package/src/tool/jpgAPng/i18n/es.ts +164 -164
  89. package/src/tool/jpgAPng/i18n/fr.ts +164 -164
  90. package/src/tool/jpgAPng/i18n/ja.ts +166 -166
  91. package/src/tool/jpgAPng/i18n/ko.ts +166 -166
  92. package/src/tool/jpgAPng/i18n/zh.ts +166 -166
  93. package/src/tool/jpgAPng/seo.astro +15 -15
  94. package/src/tool/jpgAWebp/i18n/en.ts +164 -164
  95. package/src/tool/jpgAWebp/i18n/es.ts +164 -164
  96. package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
  97. package/src/tool/jpgAWebp/seo.astro +15 -15
  98. package/src/tool/pngAIco/seo.astro +15 -15
  99. package/src/tool/pngAJpg/i18n/de.ts +21 -21
  100. package/src/tool/pngAJpg/i18n/es.ts +177 -177
  101. package/src/tool/pngAJpg/i18n/fr.ts +137 -137
  102. package/src/tool/pngAJpg/i18n/id.ts +89 -89
  103. package/src/tool/pngAJpg/i18n/it.ts +89 -89
  104. package/src/tool/pngAJpg/i18n/ko.ts +177 -177
  105. package/src/tool/pngAJpg/i18n/nl.ts +20 -20
  106. package/src/tool/pngAJpg/i18n/pl.ts +89 -89
  107. package/src/tool/pngAJpg/i18n/pt.ts +89 -89
  108. package/src/tool/pngAJpg/i18n/ru.ts +177 -177
  109. package/src/tool/pngAJpg/i18n/sv.ts +89 -89
  110. package/src/tool/pngAJpg/i18n/tr.ts +89 -89
  111. package/src/tool/pngAJpg/seo.astro +15 -15
  112. package/src/tool/pngAWebp/i18n/en.ts +164 -164
  113. package/src/tool/pngAWebp/i18n/es.ts +164 -164
  114. package/src/tool/pngAWebp/i18n/fr.ts +164 -164
  115. package/src/tool/pngAWebp/seo.astro +15 -15
  116. package/src/tool/svgAJpg/i18n/fr.ts +164 -164
  117. package/src/tool/svgAJpg/seo.astro +15 -15
  118. package/src/tool/svgAPng/i18n/fr.ts +164 -164
  119. package/src/tool/svgAPng/seo.astro +15 -15
  120. package/src/tool/webpAIco/seo.astro +15 -15
  121. package/src/tool/webpAJpg/seo.astro +15 -15
  122. package/src/tool/webpAPng/bibliography.ts +13 -13
  123. package/src/tool/webpAPng/i18n/de.ts +166 -166
  124. package/src/tool/webpAPng/i18n/es.ts +171 -171
  125. package/src/tool/webpAPng/i18n/fr.ts +166 -166
  126. package/src/tool/webpAPng/i18n/id.ts +166 -166
  127. package/src/tool/webpAPng/i18n/it.ts +166 -166
  128. package/src/tool/webpAPng/i18n/nl.ts +166 -166
  129. package/src/tool/webpAPng/i18n/pl.ts +166 -166
  130. package/src/tool/webpAPng/i18n/pt.ts +166 -166
  131. package/src/tool/webpAPng/i18n/ru.ts +166 -166
  132. package/src/tool/webpAPng/i18n/sv.ts +166 -166
  133. package/src/tool/webpAPng/i18n/tr.ts +167 -167
  134. 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 { PngAWebpLocaleContent } from '../index';
5
-
6
- const slug = 'convertidor-png-a-webp';
7
- const title = 'Convertir PNG a WebP Online y Gratis';
8
- const description =
9
- 'Convierte imágenes PNG a WebP en tu navegador. Hasta 40% menos peso. Conserva transparencias. Sin subir archivos. Gratis y privado.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'Arrastra archivos PNG...',
13
- convertText: 'Para convertirlos a WebP al instante',
14
- selectFiles: 'Seleccionar archivos',
15
- processedFiles: 'Archivos procesados',
16
- downloadAll: 'Descargar Todo (.zip)',
4
+ import type { PngAWebpLocaleContent } from '../index';
5
+
6
+ const slug = 'convertidor-png-a-webp';
7
+ const title = 'Convertir PNG a WebP Online y Gratis';
8
+ const description =
9
+ 'Convierte imágenes PNG a WebP en tu navegador. Hasta 40% menos peso. Conserva transparencias. Sin subir archivos. Gratis y privado.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'Arrastra archivos PNG...',
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: PngAWebpLocaleContent['faq'] = [
23
- {
24
- question: '¿Por qué convertir PNG a WebP?',
25
- answer:
26
- 'WebP ofrece una compresión hasta un 40% superior a PNG a igual calidad, soportando también transparencias Alpha. Es el formato recomendado por Google PageSpeed Insights.',
27
- },
28
- {
29
- question: '¿Se pierde la transparencia en el proceso?',
30
- answer:
31
- 'No. La implementación técnica de WebP soporta el canal alfa. Las transparencias del PNG original se conservarán en el nuevo archivo WebP.',
32
- },
33
- {
34
- question: '¿Mis imágenes van a algún servidor?',
35
- answer:
36
- 'No. El código se ejecuta únicamente en tu navegador (Client-Side). Nunca vemos, registramos ni guardamos las imágenes que conviertes.',
37
- },
38
- ];
39
-
40
- const howTo: PngAWebpLocaleContent['howTo'] = [
41
- {
42
- name: 'Inserta tus PNG',
43
- text: 'Arroja tus pesados archivos PNG al área de carga o utiliza el selector tradicional interactivo.',
44
- },
45
- {
46
- name: 'Detección de canales',
47
- text: 'El motor de renderizado local detectará y exportará la composición de píxeles al formato WebP optimizado.',
48
- },
49
- {
50
- name: 'Descarga Directa',
51
- text: 'Descarga individualmente tus WebP hiper-comprimidos o llévalos juntos usando el conversor a paquete ZIP.',
52
- },
53
- ];
54
-
55
- const seo: PngAWebpLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'Convertidor de PNG a WebP: Transparencia y Compresión Moderna para la Web',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'El <strong>PNG</strong> ha sido el formato de referencia para imágenes web con transparencia durante décadas - logos, iconos, elementos de UI, imágenes de producto sobre fondo recortado. Su problema es el peso: la compresión sin pérdida que garantiza su calidad también genera archivos notablemente grandes. El <strong>WebP</strong> de Google resuelve esta contradicción: soporta canal alfa (transparencias) <em>y</em> comprime mucho mejor que PNG, haciendo que cambiar PNG por WebP en tu web sea la optimización perfecta que no sacrifica nada.',
64
- },
65
- {
66
- type: 'title',
67
- text: '¿PNG o WebP? Cuándo usar cada formato',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'El <strong>PNG</strong> sigue siendo el formato correcto cuando la compatibilidad es crítica: herramientas de diseño como Photoshop o Figma, sistemas de impresión, aplicaciones de escritorio antiguas o cualquier contexto donde no se garantice soporte de WebP. También es el formato ideal para guardar capas de trabajo en flujos de edición, ya que su compresión sin pérdida preserva cada píxel. El coste: archivos que pueden pesar 3-8 veces más que su equivalente WebP.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: '<strong>WebP</strong> es el reemplazo natural del PNG para todo el contenido web moderno. Chrome, Firefox, Safari y Edge lo soportan de forma nativa. Una imagen WebP en modo sin pérdida es un 26% más pequeña que el PNG equivalente; en modo con pérdida puede ser hasta un 40% más pequeña, con una calidad visual prácticamente indistinguible. Y lo más importante para el diseño web: <strong>WebP conserva las transparencias alfa</strong> igual que PNG, sin ningún compromiso visual.',
77
- },
78
- {
79
- type: 'title',
80
- text: 'Comparativa: Conversión Local vs Nube',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: 'Convertidores Cloud',
88
- description: 'Herramientas que suben tus archivos a un servidor remoto.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- 'Latencia de red en upload y download',
93
- 'Tus logos e imágenes en servidores ajenos',
94
- 'Límites de tamaño y conversiones diarias',
95
- 'Publicidad intrusiva y rastreadores de terceros',
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
- 'Velocidad instantánea - cero latencia de red',
105
- 'Privacidad total - 0 bytes enviados al exterior',
106
- 'Sin límites de MB ni de número de archivos',
107
- 'Interfaz limpia, sin anuncios ni rastreos',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'Cómo funciona técnicamente',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'El PNG se carga localmente y se decodifica en un <strong>Canvas HTML5</strong> en memoria. El Canvas API preserva el canal alfa del PNG original - todos los píxeles transparentes y semitransparentes se mantienen intactos en el buffer de píxeles RGBA. A continuación se exporta llamando a <code>toDataURL(\'image/webp\')</code>, que aplica el codec WebP del navegador (basado en libwebp de Google) para generar un archivo más compacto sin alterar la información de transparencia.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: 'WebP utiliza dos modos de compresión: el modo sin pérdida (<em>lossless</em>) para imágenes donde cada píxel debe ser exactamente fiel al original, y el modo con pérdida (<em>lossy</em>) para fotografías y elementos donde pequeñas diferencias son imperceptibles. El modo sin pérdida produce archivos un 26% más pequeños que PNG; el modo con pérdida puede lograr reducciones de hasta un 40% respecto a PNG manteniendo una calidad visual excelente.',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'Consejo: WebP supera a PNG y a JPG en la web',
128
- html: 'WebP en modo sin pérdida es más pequeño que PNG. WebP en modo con pérdida es más pequeño que JPG. Esto convierte a WebP en el <strong>único formato que reemplaza a ambos</strong> en el contexto web. Convierte tus PNGs con transparencia a WebP antes de subirlos: Google PageSpeed Insights lo detecta y lo puntúa positivamente en las auditorías de "Serve images in modern formats".',
129
- },
130
- {
131
- type: 'title',
132
- text: 'Casos de uso y compatibilidad',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- 'Logos e iconos con fondo transparente para sitios web y aplicaciones.',
140
- 'Imágenes de producto con fondo recortado en tiendas e-commerce.',
141
- 'Sprites CSS y elementos de interfaz de usuario con transparencia alfa.',
142
- 'Ilustraciones y gráficos vectoriales rasterizados para landing pages.',
143
- 'Miniaturas de artículo con fondo transparente en blogs y portales de noticias.',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: 'Conclusión',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'El paso de PNG a WebP es la optimización de imágenes web más completa disponible: consigues archivos más ligeros, preservas las transparencias y mejoras las métricas Core Web Vitals sin cambiar nada del diseño visual. Esta herramienta lo hace de forma instantánea, gratuita y completamente privada - tus imágenes se procesan en tu navegador y no viajan a ningún servidor externo.',
154
- },
155
- ];
156
-
18
+ bibliographyTitle: 'Referencias Bibliográficas',
19
+ faqTitle: 'Preguntas Frecuentes',
20
+ };
21
+
22
+ const faq: PngAWebpLocaleContent['faq'] = [
23
+ {
24
+ question: '¿Por qué convertir PNG a WebP?',
25
+ answer:
26
+ 'WebP ofrece una compresión hasta un 40% superior a PNG a igual calidad, soportando también transparencias Alpha. Es el formato recomendado por Google PageSpeed Insights.',
27
+ },
28
+ {
29
+ question: '¿Se pierde la transparencia en el proceso?',
30
+ answer:
31
+ 'No. La implementación técnica de WebP soporta el canal alfa. Las transparencias del PNG original se conservarán en el nuevo archivo WebP.',
32
+ },
33
+ {
34
+ question: '¿Mis imágenes van a algún servidor?',
35
+ answer:
36
+ 'No. El código se ejecuta únicamente en tu navegador (Client-Side). Nunca vemos, registramos ni guardamos las imágenes que conviertes.',
37
+ },
38
+ ];
39
+
40
+ const howTo: PngAWebpLocaleContent['howTo'] = [
41
+ {
42
+ name: 'Inserta tus PNG',
43
+ text: 'Arroja tus pesados archivos PNG al área de carga o utiliza el selector tradicional interactivo.',
44
+ },
45
+ {
46
+ name: 'Detección de canales',
47
+ text: 'El motor de renderizado local detectará y exportará la composición de píxeles al formato WebP optimizado.',
48
+ },
49
+ {
50
+ name: 'Descarga Directa',
51
+ text: 'Descarga individualmente tus WebP hiper-comprimidos o llévalos juntos usando el conversor a paquete ZIP.',
52
+ },
53
+ ];
54
+
55
+ const seo: PngAWebpLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'Convertidor de PNG a WebP: Transparencia y Compresión Moderna para la Web',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'El <strong>PNG</strong> ha sido el formato de referencia para imágenes web con transparencia durante décadas - logos, iconos, elementos de UI, imágenes de producto sobre fondo recortado. Su problema es el peso: la compresión sin pérdida que garantiza su calidad también genera archivos notablemente grandes. El <strong>WebP</strong> de Google resuelve esta contradicción: soporta canal alfa (transparencias) <em>y</em> comprime mucho mejor que PNG, haciendo que cambiar PNG por WebP en tu web sea la optimización perfecta que no sacrifica nada.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: '¿PNG o WebP? Cuándo usar cada formato',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'El <strong>PNG</strong> sigue siendo el formato correcto cuando la compatibilidad es crítica: herramientas de diseño como Photoshop o Figma, sistemas de impresión, aplicaciones de escritorio antiguas o cualquier contexto donde no se garantice soporte de WebP. También es el formato ideal para guardar capas de trabajo en flujos de edición, ya que su compresión sin pérdida preserva cada píxel. El coste: archivos que pueden pesar 3-8 veces más que su equivalente WebP.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: '<strong>WebP</strong> es el reemplazo natural del PNG para todo el contenido web moderno. Chrome, Firefox, Safari y Edge lo soportan de forma nativa. Una imagen WebP en modo sin pérdida es un 26% más pequeña que el PNG equivalente; en modo con pérdida puede ser hasta un 40% más pequeña, con una calidad visual prácticamente indistinguible. Y lo más importante para el diseño web: <strong>WebP conserva las transparencias alfa</strong> igual que PNG, sin ningún compromiso visual.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: 'Comparativa: Conversión Local vs Nube',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: 'Convertidores Cloud',
88
+ description: 'Herramientas que suben tus archivos a un servidor remoto.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ 'Latencia de red en upload y download',
93
+ 'Tus logos e imágenes en servidores ajenos',
94
+ 'Límites de tamaño y conversiones diarias',
95
+ 'Publicidad intrusiva y rastreadores de terceros',
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
+ 'Velocidad instantánea - cero latencia de red',
105
+ 'Privacidad total - 0 bytes enviados al exterior',
106
+ 'Sin límites de MB ni de número de archivos',
107
+ 'Interfaz limpia, sin anuncios ni rastreos',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Cómo funciona técnicamente',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'El PNG se carga localmente y se decodifica en un <strong>Canvas HTML5</strong> en memoria. El Canvas API preserva el canal alfa del PNG original - todos los píxeles transparentes y semitransparentes se mantienen intactos en el buffer de píxeles RGBA. A continuación se exporta llamando a <code>toDataURL(\'image/webp\')</code>, que aplica el codec WebP del navegador (basado en libwebp de Google) para generar un archivo más compacto sin alterar la información de transparencia.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'WebP utiliza dos modos de compresión: el modo sin pérdida (<em>lossless</em>) para imágenes donde cada píxel debe ser exactamente fiel al original, y el modo con pérdida (<em>lossy</em>) para fotografías y elementos donde pequeñas diferencias son imperceptibles. El modo sin pérdida produce archivos un 26% más pequeños que PNG; el modo con pérdida puede lograr reducciones de hasta un 40% respecto a PNG manteniendo una calidad visual excelente.',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'Consejo: WebP supera a PNG y a JPG en la web',
128
+ html: 'WebP en modo sin pérdida es más pequeño que PNG. WebP en modo con pérdida es más pequeño que JPG. Esto convierte a WebP en el <strong>único formato que reemplaza a ambos</strong> en el contexto web. Convierte tus PNGs con transparencia a WebP antes de subirlos: Google PageSpeed Insights lo detecta y lo puntúa positivamente en las auditorías de "Serve images in modern formats".',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Casos de uso y compatibilidad',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ 'Logos e iconos con fondo transparente para sitios web y aplicaciones.',
140
+ 'Imágenes de producto con fondo recortado en tiendas e-commerce.',
141
+ 'Sprites CSS y elementos de interfaz de usuario con transparencia alfa.',
142
+ 'Ilustraciones y gráficos vectoriales rasterizados para landing pages.',
143
+ 'Miniaturas de artículo con fondo transparente en blogs y portales de noticias.',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusión',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'El paso de PNG a WebP es la optimización de imágenes web más completa disponible: consigues archivos más ligeros, preservas las transparencias y mejoras las métricas Core Web Vitals sin cambiar nada del diseño visual. Esta herramienta lo hace de forma instantánea, gratuita y completamente privada - tus imágenes se procesan en tu navegador y no viajan a ningún servidor externo.',
154
+ },
155
+ ];
157
156
 
158
- export const content: PngAWebpLocaleContent = {
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: PngAWebpLocaleContent = {
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
+ };