@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 { BmpAWebpLocaleContent } from '../index';
5
-
6
- const slug = 'convertidor-bmp-a-webp';
7
- const title = 'Convertir BMP a WebP Gratis';
8
- const description =
9
- 'Convierte imágenes BMP a WebP sin conexión. Reduce archivos enormes a kilobytes. Sin subir archivos. Gratis, offline y completamente privado.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'Arrastra archivos BMP...',
13
- convertText: 'Para convertirlos a WebP al instante',
14
- selectFiles: 'Seleccionar archivos',
15
- processedFiles: 'Archivos procesados',
16
- downloadAll: 'Descargar Todo (.zip)',
4
+ import type { BmpAWebpLocaleContent } from '../index';
5
+
6
+ const slug = 'convertidor-bmp-a-webp';
7
+ const title = 'Convertir BMP a WebP Gratis';
8
+ const description =
9
+ 'Convierte imágenes BMP a WebP sin conexión. Reduce archivos enormes a kilobytes. Sin subir archivos. Gratis, offline y completamente privado.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'Arrastra archivos BMP...',
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: BmpAWebpLocaleContent['faq'] = [
23
- {
24
- question: '¿Por qué mis archivos BMP ocupan 10 veces más y qué gano al tenerlos en WebP?',
25
- answer:
26
- 'El BMP guarda mapas de píxeles sin comprimir. WebP usa compresión matemática para bajar enormes BMPs a menos de un megabyte manteniendo la imagen sumamente reconocible.',
27
- },
28
- {
29
- question: '¿Tengo que registrar una cuenta?',
30
- answer:
31
- 'No exigimos correo y tu material permanecerá aislado, puesto que el procesamiento lo realiza el Javascript del navegador instalado en tu PC, sin envío remoto.',
32
- },
33
- {
34
- question: '¿Puedo arrastrar muchos archivos simultáneamente?',
35
- answer:
36
- 'Sí, puedes arrastrar 50 o 100 archivos si tu hardware aguanta procesar todos sin hacer colas.',
37
- },
38
- ];
39
-
40
- const howTo: BmpAWebpLocaleContent['howTo'] = [
41
- {
42
- name: 'Identificar Archivos Brutos',
43
- text: 'Sitúa tus colecciones de mapa de bit en ventanas listas al traslado.',
44
- },
45
- {
46
- name: 'Activación Nativa del Lote',
47
- text: 'Proyecta o arrastra todos los archivos a nuestra mesa digital.',
48
- },
49
- {
50
- name: 'Evacuación del Lote WebP',
51
- text: 'Pulsa los resultados y obtendrás por separado la imagen en disco de micro-pesos o como comprimidos inmediatos.',
52
- },
53
- ];
54
-
55
- const seo: BmpAWebpLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'Convertidor BMP a WebP: La Reducción de Tamaño Más Extrema Posible',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'Convertir BMP a WebP es, sin duda, la transformación más espectacular que puedes hacer con una imagen. El formato BMP (Bitmap) es el formato más antiguo y pesado del ecosistema digital: almacena cada píxel sin ningún tipo de compresión, resultando en archivos que pueden pesar 20, 50 o incluso 100 veces más que su equivalente moderno. WebP, desarrollado por Google, aplica algoritmos de compresión de última generación que reducen el tamaño al mínimo posible manteniendo una calidad visual excelente.',
64
- },
65
- {
66
- type: 'title',
67
- text: '¿Por qué BMP es tan pesado y WebP tan eficiente?',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'El formato BMP nació en los años 80 para Windows, cuando el espacio en disco era enorme y la compresión no era una prioridad. Cada píxel se guarda tal cual, sin ningún algoritmo de reducción: una imagen de 1920x1080 píxeles en BMP ocupa exactamente 5,93 MB, independientemente de su contenido. Esto lo hace ideal para capturas de pantalla internas o edición sin pérdidas, pero completamente inapropiado para la web o el almacenamiento moderno.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'WebP utiliza compresión predictiva basada en bloques y transformadas DCT (la misma tecnología que subyace al video digital), logrando que la misma imagen de 1920x1080 ocupe entre 80 KB y 300 KB. Eso supone una reducción del 95 al 99% respecto al BMP original. Además, WebP soporta canal alfa para transparencias y compresión tanto con pérdida como sin pérdida, ofreciendo versatilidad total.',
77
- },
78
- {
79
- type: 'title',
80
- text: 'Comparativa: Convertidores Cloud vs Nuestra Arquitectura Local',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: 'Convertidores Cloud',
88
- description: 'Herramientas que suben tus archivos BMP a un servidor remoto para procesarlos.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- 'Subir un BMP de 20 MB lleva minutos con conexión lenta',
93
- 'Tus imágenes quedan almacenadas en servidores ajenos',
94
- 'Límites de tamaño que excluyen archivos BMP grandes',
95
- 'Publicidad invasiva y rastreadores de datos',
96
- ],
97
- },
98
- {
99
- title: 'Nuestra Arquitectura Local',
100
- description: 'Procesamiento directo en tu navegador mediante tecnología Vanilla JS y Canvas API.',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- 'Conversión instantánea sin transferencia de red',
105
- 'Privacidad absoluta - 0 bytes salen de tu dispositivo',
106
- 'Sin límites de tamaño por archivo',
107
- 'Funciona sin conexión a internet',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'Cómo funciona la conversión técnica en el navegador',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'Al arrastrar un archivo BMP, el navegador lo lee como un Blob binario en memoria RAM. Este Blob se carga en un elemento <code>Image</code> de JavaScript, que lo decodifica usando el motor de imágenes nativo. A continuación, la imagen se pinta sobre un elemento <code>Canvas</code> HTML5 invisible. El Canvas actúa como lienzo virtual donde la imagen existe en su forma píxel a píxel.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: 'Una vez pintada en el Canvas, ejecutamos el método <code>toBlob()</code> con el tipo MIME <code>image/webp</code> y el nivel de calidad deseado. El navegador aplica internamente el algoritmo de compresión WebP y genera un nuevo Blob con el archivo resultante. Este Blob se convierte en una URL de descarga directa que tu navegador guarda en disco. En ningún momento se establece ninguna conexión de red.',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'El mayor salto de compresión posible',
128
- html: 'La conversión de BMP a WebP puede lograr una reducción del 99% en el tamaño del archivo. Un BMP de 20 MB puede convertirse en un WebP de apenas 200 KB con calidad visual prácticamente idéntica. Es la transformación más eficiente disponible entre formatos de imagen estándar.',
129
- },
130
- {
131
- type: 'title',
132
- text: 'Casos de uso y compatibilidad de WebP',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- 'Publicación web - Chrome, Firefox, Safari, Edge y todos los navegadores modernos.',
140
- 'Redes sociales - Instagram, Twitter, Facebook aceptan WebP de forma nativa.',
141
- 'Aplicaciones web y PWA - tamaños mínimos para carga instantánea.',
142
- 'Archivado eficiente - sustituye colecciones de BMPs heredados ahorrando gigabytes.',
143
- 'Email marketing - imágenes ligeras que cargan rápido en cualquier cliente de correo moderno.',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: 'Conclusión: La conversión más impactante en un solo clic',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'Si tienes archivos BMP heredados de Windows, capturas de pantalla sin comprimir o imágenes de herramientas antiguas, convertirlos a WebP es la acción más impactante que puedes tomar para optimizar tu almacenamiento y rendimiento web. Con nuestra herramienta, la conversión es instantánea, privada y sin límites - exactamente como debería ser.',
154
- },
155
- ];
156
-
18
+ bibliographyTitle: 'Referencias Bibliográficas',
19
+ faqTitle: 'Preguntas Frecuentes',
20
+ };
21
+
22
+ const faq: BmpAWebpLocaleContent['faq'] = [
23
+ {
24
+ question: '¿Por qué mis archivos BMP ocupan 10 veces más y qué gano al tenerlos en WebP?',
25
+ answer:
26
+ 'El BMP guarda mapas de píxeles sin comprimir. WebP usa compresión matemática para bajar enormes BMPs a menos de un megabyte manteniendo la imagen sumamente reconocible.',
27
+ },
28
+ {
29
+ question: '¿Tengo que registrar una cuenta?',
30
+ answer:
31
+ 'No exigimos correo y tu material permanecerá aislado, puesto que el procesamiento lo realiza el Javascript del navegador instalado en tu PC, sin envío remoto.',
32
+ },
33
+ {
34
+ question: '¿Puedo arrastrar muchos archivos simultáneamente?',
35
+ answer:
36
+ 'Sí, puedes arrastrar 50 o 100 archivos si tu hardware aguanta procesar todos sin hacer colas.',
37
+ },
38
+ ];
39
+
40
+ const howTo: BmpAWebpLocaleContent['howTo'] = [
41
+ {
42
+ name: 'Identificar Archivos Brutos',
43
+ text: 'Sitúa tus colecciones de mapa de bit en ventanas listas al traslado.',
44
+ },
45
+ {
46
+ name: 'Activación Nativa del Lote',
47
+ text: 'Proyecta o arrastra todos los archivos a nuestra mesa digital.',
48
+ },
49
+ {
50
+ name: 'Evacuación del Lote WebP',
51
+ text: 'Pulsa los resultados y obtendrás por separado la imagen en disco de micro-pesos o como comprimidos inmediatos.',
52
+ },
53
+ ];
54
+
55
+ const seo: BmpAWebpLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'Convertidor BMP a WebP: La Reducción de Tamaño Más Extrema Posible',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'Convertir BMP a WebP es, sin duda, la transformación más espectacular que puedes hacer con una imagen. El formato BMP (Bitmap) es el formato más antiguo y pesado del ecosistema digital: almacena cada píxel sin ningún tipo de compresión, resultando en archivos que pueden pesar 20, 50 o incluso 100 veces más que su equivalente moderno. WebP, desarrollado por Google, aplica algoritmos de compresión de última generación que reducen el tamaño al mínimo posible manteniendo una calidad visual excelente.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: '¿Por qué BMP es tan pesado y WebP tan eficiente?',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'El formato BMP nació en los años 80 para Windows, cuando el espacio en disco era enorme y la compresión no era una prioridad. Cada píxel se guarda tal cual, sin ningún algoritmo de reducción: una imagen de 1920x1080 píxeles en BMP ocupa exactamente 5,93 MB, independientemente de su contenido. Esto lo hace ideal para capturas de pantalla internas o edición sin pérdidas, pero completamente inapropiado para la web o el almacenamiento moderno.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'WebP utiliza compresión predictiva basada en bloques y transformadas DCT (la misma tecnología que subyace al video digital), logrando que la misma imagen de 1920x1080 ocupe entre 80 KB y 300 KB. Eso supone una reducción del 95 al 99% respecto al BMP original. Además, WebP soporta canal alfa para transparencias y compresión tanto con pérdida como sin pérdida, ofreciendo versatilidad total.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: 'Comparativa: Convertidores Cloud vs Nuestra Arquitectura Local',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: 'Convertidores Cloud',
88
+ description: 'Herramientas que suben tus archivos BMP a un servidor remoto para procesarlos.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ 'Subir un BMP de 20 MB lleva minutos con conexión lenta',
93
+ 'Tus imágenes quedan almacenadas en servidores ajenos',
94
+ 'Límites de tamaño que excluyen archivos BMP grandes',
95
+ 'Publicidad invasiva y rastreadores de datos',
96
+ ],
97
+ },
98
+ {
99
+ title: 'Nuestra Arquitectura Local',
100
+ description: 'Procesamiento directo en tu navegador mediante tecnología Vanilla JS y Canvas API.',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ 'Conversión instantánea sin transferencia de red',
105
+ 'Privacidad absoluta - 0 bytes salen de tu dispositivo',
106
+ 'Sin límites de tamaño por archivo',
107
+ 'Funciona sin conexión a internet',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Cómo funciona la conversión técnica en el navegador',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'Al arrastrar un archivo BMP, el navegador lo lee como un Blob binario en memoria RAM. Este Blob se carga en un elemento <code>Image</code> de JavaScript, que lo decodifica usando el motor de imágenes nativo. A continuación, la imagen se pinta sobre un elemento <code>Canvas</code> HTML5 invisible. El Canvas actúa como lienzo virtual donde la imagen existe en su forma píxel a píxel.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'Una vez pintada en el Canvas, ejecutamos el método <code>toBlob()</code> con el tipo MIME <code>image/webp</code> y el nivel de calidad deseado. El navegador aplica internamente el algoritmo de compresión WebP y genera un nuevo Blob con el archivo resultante. Este Blob se convierte en una URL de descarga directa que tu navegador guarda en disco. En ningún momento se establece ninguna conexión de red.',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'El mayor salto de compresión posible',
128
+ html: 'La conversión de BMP a WebP puede lograr una reducción del 99% en el tamaño del archivo. Un BMP de 20 MB puede convertirse en un WebP de apenas 200 KB con calidad visual prácticamente idéntica. Es la transformación más eficiente disponible entre formatos de imagen estándar.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Casos de uso y compatibilidad de WebP',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ 'Publicación web - Chrome, Firefox, Safari, Edge y todos los navegadores modernos.',
140
+ 'Redes sociales - Instagram, Twitter, Facebook aceptan WebP de forma nativa.',
141
+ 'Aplicaciones web y PWA - tamaños mínimos para carga instantánea.',
142
+ 'Archivado eficiente - sustituye colecciones de BMPs heredados ahorrando gigabytes.',
143
+ 'Email marketing - imágenes ligeras que cargan rápido en cualquier cliente de correo moderno.',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusión: La conversión más impactante en un solo clic',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Si tienes archivos BMP heredados de Windows, capturas de pantalla sin comprimir o imágenes de herramientas antiguas, convertirlos a WebP es la acción más impactante que puedes tomar para optimizar tu almacenamiento y rendimiento web. Con nuestra herramienta, la conversión es instantánea, privada y sin límites - exactamente como debería ser.',
154
+ },
155
+ ];
157
156
 
158
- export const content: BmpAWebpLocaleContent = {
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: BmpAWebpLocaleContent = {
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
+ };