@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 { BmpAPngLocaleContent } from '../index';
5
-
6
- const slug = 'bmp-to-png-converter';
7
- const title = 'BMP to PNG Converter';
8
- const description =
9
- 'Convert BMP images to PNG without quality loss. Modern compression without artifacts. No file uploads. Free and 100% private.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'Drag BMP files...',
13
- convertText: 'To convert them to PNG instantly',
14
- selectFiles: 'Select files',
15
- processedFiles: 'Processed files',
16
- downloadAll: 'Download All (.zip)',
4
+ import type { BmpAPngLocaleContent } from '../index';
5
+
6
+ const slug = 'bmp-to-png-converter';
7
+ const title = 'BMP to PNG Converter';
8
+ const description =
9
+ 'Convert BMP images to PNG without quality loss. Modern compression without artifacts. No file uploads. Free and 100% private.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'Drag BMP files...',
13
+ convertText: 'To convert them to PNG instantly',
14
+ selectFiles: 'Select files',
15
+ processedFiles: 'Processed files',
16
+ downloadAll: 'Download All (.zip)',
17
17
  pending: 'Pending',
18
- bibliographyTitle: 'Bibliographic References',
19
- faqTitle: 'Frequently Asked Questions',
20
- };
21
-
22
- const faq: BmpAPngLocaleContent['faq'] = [
23
- {
24
- question: 'What is the main difference between BMP and PNG?',
25
- answer:
26
- 'Both BMP and PNG are lossless formats. The difference lies in optimization: PNG uses modern compression algorithms to store the same image taking up 5 to 10 times less memory than BMP.',
27
- },
28
- {
29
- question: 'Is the conversion truly private?',
30
- answer:
31
- 'Yes. Your computer handles all the photographic processing. Absolutely nobody accesses your files during local processing.',
32
- },
33
- {
34
- question: 'Why PNG over JPEG in this case?',
35
- answer:
36
- 'If you have a BMP file, it is because the image has precise colors. Converting a BMP to the destructive JPG standard would dirty your clean colors. PNG protects that fidelity.',
37
- },
38
- ];
39
-
40
- const howTo: BmpAPngLocaleContent['howTo'] = [
41
- {
42
- name: 'Load your photo',
43
- text: 'Calmly move the BMP source files to our web element drop zone.',
44
- },
45
- {
46
- name: 'Translate without network transmission',
47
- text: 'Experience in just one second the clean processing done locally by your HTML5 JS.',
48
- },
49
- {
50
- name: 'Get pure PNGs',
51
- text: 'Download the PNG replicas individually or via a compressed package.',
52
- },
53
- ];
54
-
55
- const seo: BmpAPngLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'BMP to PNG Converter: The Lossless Replacement for BMP Files',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'BMP is an uncompressed format that occupies enormous amounts of space with no technical benefit over PNG. Both are lossless formats: they store every pixel with absolute precision. But PNG adds lossless compression via the Deflate algorithm, reducing file size by 3 to 5 times without sacrificing a single bit of visual information. PNG is, in essence, what BMP always wanted to be.',
64
- },
65
- {
66
- type: 'title',
67
- text: 'BMP vs PNG: same quality, radically different file size',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'The fundamental difference between BMP and PNG is not image quality - both are lossless - but storage efficiency. BMP stores pixels raw: no compression, no optimization, no consideration for space. PNG analyzes repeated pixel patterns and encodes them compactly using Deflate, the same algorithm used by ZIP.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'Beyond superior compression, PNG adds a feature BMP never had: full alpha channel for transparency. Screenshots, UI graphics, logos, technical diagrams - all these image types benefit enormously from conversion to PNG, which preserves every exact color value while reducing file weight to a fraction of the original.',
77
- },
78
- {
79
- type: 'title',
80
- text: 'Architecture Comparison: Local vs Cloud',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: 'Cloud Converters',
88
- description: 'Services that process your BMP files on third-party servers.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- 'Your work images travel over the internet',
93
- 'Waiting time proportional to the BMP size',
94
- 'Size limits in free plans',
95
- 'Risk of analysis or retention of your files',
96
- ],
97
- },
98
- {
99
- title: 'Our Local Architecture',
100
- description: 'Direct processing on your hardware using Vanilla JS technology.',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- 'BMP is processed locally, never leaves your device',
105
- 'Instant conversion in milliseconds',
106
- 'No size or file count limits',
107
- 'Total privacy: 0 bytes sent externally',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'How the local BMP to PNG conversion works',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'The process uses the HTML5 Canvas API. The BMP file is read with the browser\'s <code>FileReader</code> API and decoded as a Blob in memory. That Blob is drawn onto an invisible HTML5 canvas. Then the <code>toDataURL(\'image/png\')</code> method applies the browser\'s native PNG compression algorithm and generates the resulting file.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: 'Unlike JPG conversion, PNG conversion is completely lossless: every color value from the original BMP is preserved exactly in the resulting PNG. No artifacts, no edge smoothing, no information loss. The final file is visually identical to the BMP but takes 3 to 5 times less disk space.',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'PNG is the modern standard for everywhere BMP was used',
128
- html: 'If you work with legacy software that exports BMP (industrial machinery, control systems, medical diagnostic software), converting to PNG is the best decision. PNG is compatible with every modern application, maintains perfect color fidelity, and takes up to 5 times less space. It is the simplest and safest migration possible.',
129
- },
130
- {
131
- type: 'title',
132
- text: 'Use cases and compatibility of the resulting PNG',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- 'Screenshots and UI graphics with exact colors preserved.',
140
- 'Technical documentation images and software diagrams.',
141
- 'Exports from CAD, industrial systems and legacy software.',
142
- 'Logos and brand identity elements with added transparency support.',
143
- 'Compatible with Adobe Photoshop, GIMP, Figma and all modern editors.',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: 'Conclusion: PNG is what BMP always should have been',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'Converting BMP to PNG is the most natural modernization of an image file: same lossless quality, greater compatibility, transparency support, and 3 to 5 times less weight. Our tool performs this conversion in milliseconds, directly in your browser, without uploading any file to any server.',
154
- },
155
- ];
156
-
18
+ bibliographyTitle: 'Bibliographic References',
19
+ faqTitle: 'Frequently Asked Questions',
20
+ };
21
+
22
+ const faq: BmpAPngLocaleContent['faq'] = [
23
+ {
24
+ question: 'What is the main difference between BMP and PNG?',
25
+ answer:
26
+ 'Both BMP and PNG are lossless formats. The difference lies in optimization: PNG uses modern compression algorithms to store the same image taking up 5 to 10 times less memory than BMP.',
27
+ },
28
+ {
29
+ question: 'Is the conversion truly private?',
30
+ answer:
31
+ 'Yes. Your computer handles all the photographic processing. Absolutely nobody accesses your files during local processing.',
32
+ },
33
+ {
34
+ question: 'Why PNG over JPEG in this case?',
35
+ answer:
36
+ 'If you have a BMP file, it is because the image has precise colors. Converting a BMP to the destructive JPG standard would dirty your clean colors. PNG protects that fidelity.',
37
+ },
38
+ ];
39
+
40
+ const howTo: BmpAPngLocaleContent['howTo'] = [
41
+ {
42
+ name: 'Load your photo',
43
+ text: 'Calmly move the BMP source files to our web element drop zone.',
44
+ },
45
+ {
46
+ name: 'Translate without network transmission',
47
+ text: 'Experience in just one second the clean processing done locally by your HTML5 JS.',
48
+ },
49
+ {
50
+ name: 'Get pure PNGs',
51
+ text: 'Download the PNG replicas individually or via a compressed package.',
52
+ },
53
+ ];
54
+
55
+ const seo: BmpAPngLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'BMP to PNG Converter: The Lossless Replacement for BMP Files',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'BMP is an uncompressed format that occupies enormous amounts of space with no technical benefit over PNG. Both are lossless formats: they store every pixel with absolute precision. But PNG adds lossless compression via the Deflate algorithm, reducing file size by 3 to 5 times without sacrificing a single bit of visual information. PNG is, in essence, what BMP always wanted to be.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'BMP vs PNG: same quality, radically different file size',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'The fundamental difference between BMP and PNG is not image quality - both are lossless - but storage efficiency. BMP stores pixels raw: no compression, no optimization, no consideration for space. PNG analyzes repeated pixel patterns and encodes them compactly using Deflate, the same algorithm used by ZIP.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'Beyond superior compression, PNG adds a feature BMP never had: full alpha channel for transparency. Screenshots, UI graphics, logos, technical diagrams - all these image types benefit enormously from conversion to PNG, which preserves every exact color value while reducing file weight to a fraction of the original.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: 'Architecture Comparison: Local vs Cloud',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: 'Cloud Converters',
88
+ description: 'Services that process your BMP files on third-party servers.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ 'Your work images travel over the internet',
93
+ 'Waiting time proportional to the BMP size',
94
+ 'Size limits in free plans',
95
+ 'Risk of analysis or retention of your files',
96
+ ],
97
+ },
98
+ {
99
+ title: 'Our Local Architecture',
100
+ description: 'Direct processing on your hardware using Vanilla JS technology.',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ 'BMP is processed locally, never leaves your device',
105
+ 'Instant conversion in milliseconds',
106
+ 'No size or file count limits',
107
+ 'Total privacy: 0 bytes sent externally',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'How the local BMP to PNG conversion works',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'The process uses the HTML5 Canvas API. The BMP file is read with the browser\'s <code>FileReader</code> API and decoded as a Blob in memory. That Blob is drawn onto an invisible HTML5 canvas. Then the <code>toDataURL(\'image/png\')</code> method applies the browser\'s native PNG compression algorithm and generates the resulting file.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'Unlike JPG conversion, PNG conversion is completely lossless: every color value from the original BMP is preserved exactly in the resulting PNG. No artifacts, no edge smoothing, no information loss. The final file is visually identical to the BMP but takes 3 to 5 times less disk space.',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'PNG is the modern standard for everywhere BMP was used',
128
+ html: 'If you work with legacy software that exports BMP (industrial machinery, control systems, medical diagnostic software), converting to PNG is the best decision. PNG is compatible with every modern application, maintains perfect color fidelity, and takes up to 5 times less space. It is the simplest and safest migration possible.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Use cases and compatibility of the resulting PNG',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ 'Screenshots and UI graphics with exact colors preserved.',
140
+ 'Technical documentation images and software diagrams.',
141
+ 'Exports from CAD, industrial systems and legacy software.',
142
+ 'Logos and brand identity elements with added transparency support.',
143
+ 'Compatible with Adobe Photoshop, GIMP, Figma and all modern editors.',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusion: PNG is what BMP always should have been',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Converting BMP to PNG is the most natural modernization of an image file: same lossless quality, greater compatibility, transparency support, and 3 to 5 times less weight. Our tool performs this conversion in milliseconds, directly in your browser, without uploading any file to any server.',
154
+ },
155
+ ];
157
156
 
158
- export const content: BmpAPngLocaleContent = {
159
- slug,
160
- title,
161
- description,
162
- ui,
163
- seo,
164
- faq,
165
- bibliography,
166
- howTo,
167
- schemas: generateSchemas({ title, description, inLanguage: 'en', faq, howTo }),
168
- };
157
+
158
+ export const content: BmpAPngLocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'en', faq, howTo }),
168
+ };