@jjlmoya/utils-converters 1.7.0 → 1.9.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 (346) hide show
  1. package/package.json +60 -59
  2. package/src/shared/logic/schemas.ts +57 -0
  3. package/src/tests/faq_count.test.ts +13 -4
  4. package/src/tests/i18n_coverage.test.ts +36 -0
  5. package/src/tests/locale_completeness.test.ts +42 -0
  6. package/src/tests/no_h1_in_components.test.ts +48 -0
  7. package/src/tests/schemas_fulfillment.test.ts +23 -0
  8. package/src/tests/seo_length.test.ts +1 -1
  9. package/src/tests/slug_uniqueness.test.ts +81 -0
  10. package/src/tests/title_quality.test.ts +55 -0
  11. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  12. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  15. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  25. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  26. package/src/tool/avifAJpg/index.ts +13 -1
  27. package/src/tool/avifAPng/i18n/de.ts +178 -0
  28. package/src/tool/avifAPng/i18n/en.ts +2 -12
  29. package/src/tool/avifAPng/i18n/es.ts +2 -12
  30. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  31. package/src/tool/avifAPng/i18n/id.ts +178 -0
  32. package/src/tool/avifAPng/i18n/it.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  34. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  35. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  37. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  38. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  39. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  40. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  41. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  42. package/src/tool/avifAPng/index.ts +13 -1
  43. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  44. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  47. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  57. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  58. package/src/tool/avifAWebp/index.ts +13 -1
  59. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  60. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  63. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  73. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  74. package/src/tool/bmpAJpg/index.ts +13 -1
  75. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  76. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  79. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  89. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  90. package/src/tool/bmpAPng/index.ts +13 -1
  91. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  92. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  95. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  105. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  106. package/src/tool/bmpAWebp/index.ts +13 -1
  107. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  108. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  111. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  121. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  122. package/src/tool/gifAJpg/index.ts +13 -1
  123. package/src/tool/gifAPng/i18n/de.ts +178 -0
  124. package/src/tool/gifAPng/i18n/en.ts +2 -12
  125. package/src/tool/gifAPng/i18n/es.ts +2 -12
  126. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  127. package/src/tool/gifAPng/i18n/id.ts +178 -0
  128. package/src/tool/gifAPng/i18n/it.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  130. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  131. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  133. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  134. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  135. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  136. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  137. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  138. package/src/tool/gifAPng/index.ts +12 -0
  139. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  140. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  143. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  153. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  154. package/src/tool/gifAWebp/index.ts +12 -0
  155. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  156. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  159. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  165. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  166. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  169. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  170. package/src/tool/imagenBase64/index.ts +12 -0
  171. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  172. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  173. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  174. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  175. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  185. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  186. package/src/tool/jpgAIco/index.ts +12 -0
  187. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  188. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  191. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  201. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  202. package/src/tool/jpgAPng/index.ts +13 -1
  203. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  204. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  207. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  217. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  218. package/src/tool/jpgAWebp/index.ts +12 -0
  219. package/src/tool/pngAIco/i18n/de.ts +183 -0
  220. package/src/tool/pngAIco/i18n/en.ts +8 -13
  221. package/src/tool/pngAIco/i18n/es.ts +19 -24
  222. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  223. package/src/tool/pngAIco/i18n/id.ts +183 -0
  224. package/src/tool/pngAIco/i18n/it.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  226. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  227. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  229. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  230. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  231. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  232. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  233. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  234. package/src/tool/pngAIco/index.ts +12 -0
  235. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  236. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  239. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  249. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  250. package/src/tool/pngAJpg/index.ts +13 -1
  251. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  252. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  255. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  265. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  266. package/src/tool/pngAWebp/index.ts +12 -0
  267. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  268. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  270. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  271. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  281. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  282. package/src/tool/svgAJpg/index.ts +12 -0
  283. package/src/tool/svgAPng/i18n/de.ts +178 -0
  284. package/src/tool/svgAPng/i18n/en.ts +8 -13
  285. package/src/tool/svgAPng/i18n/es.ts +31 -36
  286. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  287. package/src/tool/svgAPng/i18n/id.ts +178 -0
  288. package/src/tool/svgAPng/i18n/it.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  290. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  291. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  293. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  294. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  295. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  296. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  297. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  298. package/src/tool/svgAPng/index.ts +12 -0
  299. package/src/tool/webpAIco/i18n/de.ts +183 -0
  300. package/src/tool/webpAIco/i18n/en.ts +8 -13
  301. package/src/tool/webpAIco/i18n/es.ts +9 -14
  302. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  303. package/src/tool/webpAIco/i18n/id.ts +183 -0
  304. package/src/tool/webpAIco/i18n/it.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  306. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  307. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  309. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  310. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  311. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  312. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  313. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  314. package/src/tool/webpAIco/index.ts +12 -0
  315. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  316. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  317. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  318. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  319. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  329. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  330. package/src/tool/webpAJpg/index.ts +12 -0
  331. package/src/tool/webpAPng/i18n/de.ts +182 -0
  332. package/src/tool/webpAPng/i18n/en.ts +8 -13
  333. package/src/tool/webpAPng/i18n/es.ts +35 -40
  334. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  335. package/src/tool/webpAPng/i18n/id.ts +182 -0
  336. package/src/tool/webpAPng/i18n/it.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  338. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  339. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  341. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  342. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  343. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  344. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  345. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  346. package/src/tool/webpAPng/index.ts +12 -0
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { BmpAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'bmp-to-webp-converter';
6
+ const title = 'BMPをWebPに無料で変換';
7
+ const description =
8
+ 'BMP画像をオフラインでWebPに変換します。巨大なファイルをキロバイト単位に削減。ファイルのアップロードは不要。無料でオフライン、完全にプライベートに使用できます。';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'BMPファイルをドラッグ...',
12
+ convertText: '即座にWebPに変換します',
13
+ selectFiles: 'ファイルを選択',
14
+ processedFiles: '処理済みファイル',
15
+ downloadAll: 'すべてダウンロード (.zip)',
16
+ pending: '待機中',
17
+ bibliographyTitle: '参考文献',
18
+ faqTitle: 'よくある質問',
19
+ };
20
+
21
+ const faq: BmpAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'なぜBMPファイルは10倍も重いのですか?WebPにするとどのようなメリットがありますか?',
24
+ answer:
25
+ 'BMPは非圧縮のピクセルマップを保存します。WebPは数学的な圧縮を使用して、巨大なBMPを1メガバイト未満にまで縮小しながら、画像を極めて鮮明に保つことができます。',
26
+ },
27
+ {
28
+ question: 'アカウントの登録は必要ですか?',
29
+ answer:
30
+ 'メールアドレスは不要です。処理はお使いのPCにインストールされたブラウザのJavaScriptによって行われ、外部への送信は行われないため、素材は隔離された状態で保たれます。',
31
+ },
32
+ {
33
+ question: '同時に多くのファイルをドラッグできますか?',
34
+ answer:
35
+ 'はい。お使いのハードウェアが処理に耐えられるなら、50個や100個のファイルをドラッグして一括処理することが可能です。',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: '生ファイルを特定する',
42
+ text: 'ビットマップのコレクションを、転送準備ができたウィンドウに配置してください。',
43
+ },
44
+ {
45
+ name: 'ネイティブバッチ起動',
46
+ text: 'すべてのファイルをデジタルの作業台に投影またはドラッグしてください。',
47
+ },
48
+ {
49
+ name: 'WebPバッチの書き出し',
50
+ text: '結果をクリックすると、マイクロ重量の画像が個別に、または一括ZIPパッケージとして取得されます。',
51
+ },
52
+ ];
53
+
54
+ const bibliography: BmpAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'BMP File Format',
57
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
+ },
59
+ {
60
+ name: 'Google WebP Documentation',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: BmpAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'BMPからWebPへのコンバーター:可能な限り最も極端なサイズ削減',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMPをWebPに変換することは、間違いなく画像に対して行える最も劇的な変化です。BMP(ビットマップ)はデジタルエコシステムの中で最も古く、最も重い形式です。各ピクセルを一切圧縮せずに保存するため、最新の形式に比べてファイルサイズが20倍、50倍、あるいは100倍にもなることがあります。Googleによって開発されたWebPは、最新世代の圧縮アルゴリズムを適用し、優れた視覚的品質を維持しながら、サイズを可能な限り最小限に抑えます。',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'なぜBMPは重く、WebPは効率的なのか?',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'BMP形式は、ディスクスペースが広大で圧縮が優先事項ではなかった80年代のWindows向けに誕生しました。各ピクセルは、削減アルゴリズムなしでそのまま保存されます。1920x1080ピクセルの画像は、内容に関わらずBMPでちょうど5.93 MBになります。これは内部的なスクリーンショットやロスレス編集には理想的ですが、ウェブや現代的なストレージには全く適していません。',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebPは、ブロックベースの予測圧縮とDCT変換(デジタルビデオの基盤となるのと同じ技術)を使用して、同じ1920x1080の画像サイズを80 KBから300 KBの間に収めます。これは、元のBMPと比較して95%から99%の削減に相当します。さらに、WebPは透明度のためのアルファチャンネルをサポートし、非可逆圧縮と可逆圧縮の両方を提供、あらゆる用途に対応します。',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: '比較:クラウドコンバーター vs 当サイトのローカルアーキテクチャ',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'クラウドコンバーター',
98
+ description: '処理のためにBMPファイルをリモートサーバーにアップロードするツール。',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ '低速な接続では20 MBのBMPのアップロードに数分かかる',
103
+ '画像は他人のサーバーに保存されたままになる',
104
+ '巨大なBMPファイルを排除するサイズ制限がある',
105
+ '押し付けがましい広告とデータトラッカー',
106
+ ],
107
+ },
108
+ {
109
+ title: '当サイトのローカルアーキテクチャ',
110
+ description: 'Vanilla JSテクノロジーを使用してブラウザ上で直接処理。',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'ネットワーク転送なしでの即時変換',
115
+ '完全なプライバシー — 0バイトが外部に送信される',
116
+ 'ファイルごとのサイズ制限なし',
117
+ 'インターネット接続なしでも動作',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'ブラウザでの技術的な変換の仕組み',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'BMPファイルをドラッグすると、ブラウザはそれをバイナリBlobとしてRAMメモリに読み込みます。このBlobはJavaScriptの<code>Image</code>要素に読み込まれ、ネイティブの画像エンジンを使用してデコードされます。次に、画像は不可視のHTML5 <code>Canvas</code>要素に描画されます。キャンバスは、画像がピクセル単位で存在する仮想のキャンバスとして機能します。',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'キャンバスに描画された後、MIMEタイプ<code>image/webp</code>と希望する品質レベルを指定して<code>toBlob()</code>メソッドを実行します。ブラウザは内部的にWebP圧縮アルゴリズムを適用し、結果のファイルを含む新しいBlobを生成します。このBlobは、ブラウザがディスクに保存する直接ダウンロードURLに変わります。ネットワーク接続が行われることは一切ありません。',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: '可能な限り最大の圧縮率の飛躍',
138
+ html: 'BMPからWebPへの変換は、ファイルサイズを99%削減することができます。20 MBのBMPは、視覚的にほとんど遜色のない品質で、わずか200 KB程度のWebPに変換可能です。これは、標準的な画像形式の間で利用可能な最も効率的な変換です。',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'WebPの使用例と互換性',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'ウェブ公開 — Chrome, Firefox, Safari, Edgeおよびすべての最新ブラウザ。',
150
+ 'ソーシャルネットワーク — Instagram, Twitter, FacebookはWebPをネイティブにサポート。',
151
+ 'ウェブアプリとPWA — 即座に読み込むための最小サイズ。',
152
+ '効率的なアーカイブ — 旧来のBMPコレクションを置き換えてギガバイト単位で節約。',
153
+ 'メールマーケティング — 最新のメールクライアントで高速に読み込める軽量画像。',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: '結論:ワンクリックで最もインパクトのある変換',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Windowsから引き継いだ古いBMPファイル、非圧縮のスクリーンショット、または古いツールの画像などがある場合、それらをWebPに変換することは、ストレージとウェブパフォーマンスを最適化するために行える最も効果的なアクションです。当ツールを使用すれば、変換は瞬時に、プライベートに、無制限に行われます。',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: BmpAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'ja', faq, howTo }),
178
+ };
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { BmpAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'bmp-to-webp-converter';
6
+ const title = 'BMP WebP 무료 변환기';
7
+ const description =
8
+ 'BMP 이미지를 오프라인에서 WebP로 변환하세요. 방대한 파일을 킬로바이트 단위로 대폭 압축합니다. 파일 업로드 없음. 무료, 오프라인, 100% 안전한 로컬 처리.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'BMP 파일을 여기로 드래그하세요...',
12
+ convertText: '즉시 WebP로 변환하기',
13
+ selectFiles: '파일 선택',
14
+ processedFiles: '처리된 파일',
15
+ downloadAll: '모두 다운로드 (.zip)',
16
+ pending: '대기 중',
17
+ bibliographyTitle: '참고 문헌',
18
+ faqTitle: '자주 묻는 질문',
19
+ };
20
+
21
+ const faq: BmpAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: '왜 BMP 파일은 10배 이상 용량이 크며, WebP로 변환하면 어떤 이점이 있나요?',
24
+ answer:
25
+ 'BMP는 압축되지 않은 픽셀 맵을 저장하여 용량이 큽니다. WebP는 고도의 수학적 압축 알고리즘을 사용하여 이미지 품질을 시각적으로 유지하면서도 용량을 메가바이트 단위에서 킬로바이트 단위로 획기적으로 줄여줍니다.',
26
+ },
27
+ {
28
+ question: '계정을 등록해야 하나요?',
29
+ answer:
30
+ '이메일이나 계정 등록이 필요 없습니다. 모든 작업은 사용자의 브라우저 내 JavaScript에 의해 로컬에서 처리되므로 외부 서버로 파일이 전송되지 않아 보안이 완벽합니다.',
31
+ },
32
+ {
33
+ question: '여러 파일을 동시에 드래그하여 변환할 수 있나요?',
34
+ answer:
35
+ '네, 사용자의 기기 성능이 허용하는 한 50개 또는 100개의 파일을 한꺼번에 처리할 수 있습니다.',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: '파일 준비',
42
+ text: '변환하려는 BMP 비트맵 파일들을 한곳에 모아두세요.',
43
+ },
44
+ {
45
+ name: '즉각적인 일괄 처리',
46
+ text: '준비된 모든 파일을 당사 웹 페이지의 작업 영역으로 드래그 앤 드롭하세요.',
47
+ },
48
+ {
49
+ name: '최적화된 WebP 결과물 확인',
50
+ text: '변환된 결과물을 개별적으로 다운로드하거나 즉시 생성된 ZIP 패키지로 한번에 받으세요.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: BmpAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'BMP File Format',
57
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
+ },
59
+ {
60
+ name: 'Google WebP Documentation',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: BmpAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'BMP to WebP 변환기: 혁신적인 저장 공간 확보 솔루션',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMP를 WebP로 변환하는 것은 이미지 관리 측면에서 가장 효과적인 혁신 중 하나입니다. BMP(비트맵) 형식은 디지털 환경에서 가장 오래되고 용량이 큰 형식 중 하나로, 압축 없이 모든 픽셀을 그대로 저장합니다. 반면 구글에서 개발한 WebP는 원본과 구분하기 어려운 시각적 품질을 유지하면서도 최신 압축 알고리즘을 통해 용량을 원본 대비 최대 1/100까지 줄일 수 있습니다.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP와 WebP의 효율성 차이는 어디서 발생하나요?',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'BMP 형식은 1980년대 윈도우 환경을 위해 설계되었으며, 당시에는 저장 공간보다는 처리 속도를 위해 비압축 방식을 선택했습니다. 따라서 1920x1080 이미지라면 내용에 관계없이 약 6MB의 고정 용량을 가집니다. 이는 전문 편집에는 유리할 수 있지만 웹 환경이나 대용량 저장에는 매우 비효율적입니다.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP는 디지털 비디오 기술에 기초한 블록 기반 예측 압축 및 DCT 변환 기술을 사용하여 원본의 화질 저하를 최소화하면서 80KB~300KB 수준으로 용량을 최적화합니다. 또한 투명도를 지원하는 알파 채널 기능까지 갖추고 있어 다용도로 활용하기에 최적의 형식입니다.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: '인프라 비교: 클라우드 방식 vs 당사의 로컬 아키텍처',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: '클라우드 변환기',
98
+ description: '원본 BMP 파일을 외부 서버로 업로드하여 처리하는 방식입니다.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ '네트워크 속도에 따라 대용량 BMP 업로드 시 지연 시간 발생',
103
+ '사용자의 이미지가 외부 서버에 남을 수 있는 보안 리스크',
104
+ '무료 서비스의 경우 파일 크기 및 개수 제한 존재',
105
+ '불필요한 광고와 데이터 추적기 포함 가능성',
106
+ ],
107
+ },
108
+ {
109
+ title: '당사의 로컬 아키텍처',
110
+ description: '사용자의 브라우저 내에서 직접 구동되어 기기를 벗어나지 않는 안전한 처리 방식입니다.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ '네트워크 전송 없이 실시간 즉시 변환 수행',
115
+ '철저한 개인정보 보호 — 외부로 0바이트 전송',
116
+ '파일당 용량이나 개수에 대한 인위적인 제한 없음',
117
+ '인터넷 연결 없이도 오프라인에서도 작동',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: '브라우저 기반 로컬 변환 기술의 작동 원리',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: '변환 과정은 순수하게 사용자의 기기에서만 이루어집니다. 드래그한 BMP 파일은 브라우저의 <code>FileReader</code> API를 통해 메모리에 Blob 데이터로 읽혀지며, 보이지 않는 캔버스 위에 그려집니다. 그 후 브라우저 고유의 WebP 압축 알고리즘이 적용되어 원본과 시각적으로 동일하지만 용량은 훨씬 최적화된 결과물이 생성됩니다.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: '결과물은 즉시 다운로드 가능한 URL로 생성되어 사용자의 디스크에 저장되며, 전 과정에서 네트워크 연결은 전혀 발생하지 않습니다. 따라서 매우 빠르고 안전합니다.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: '압도적인 효율성: 99% 용량 절감',
138
+ html: 'BMP에서 WebP로의 변환은 파일 크기를 최대 99%까지 줄일 수 있습니다. 원본 20MB 파일이 시각적으로 거의 동일한 품질의 200KB 파일로 변환됩니다. 이는 표준 이미지 형식 간에 가능한 가장 효율적인 용량 혁신입니다.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'WebP의 활용성과 호환성',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ '웹 기반 서비스 — 크롬, 사파리, 엣지 등 모든 현대적 브라우저 지원.',
150
+ '소셜 네트워크 — 인스타그램, X(트위터), 페이스북 등에서의 네이티브 지원.',
151
+ '앱 개발 및 PWA — 빠른 로딩을 위한 최소 용량 이미지 구축.',
152
+ '효율적인 아카이브 — 대용량 BMP 컬렉션을 기가바이트 단위로 절약하며 보관.',
153
+ '이메일 마케팅 — 모든 메일 클라이언트에서 빠르게 로딩되는 고화질 이미지.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: '결론: 클릭 한 번으로 경험하는 압도적인 저장 효율',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: '오래된 소프트웨어의 결과물이나 비압축 스크린샷과 같이 용량만 차지하는 BMP 파일들을 관리하고 있다면 WebP로의 변환은 최고의 선택입니다. 당사의 도구는 별도의 제한 없이 즉각적이고 안전하게 사용자의 이미지를 현대화해 드립니다.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: BmpAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
178
+ };
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { BmpAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'bmp-naar-webp-converter';
6
+ const title = 'Gratis BMP naar WebP Converteren';
7
+ const description =
8
+ 'Converteer BMP-afbeeldingen naar WebP zonder verbinding. Reduceer enorme bestanden naar kilobytes. Zonder bestanden te uploaden. Gratis, offline en volledig privé.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Sleep BMP-bestanden hierheen...',
12
+ convertText: 'Om ze direct naar WebP te converteren',
13
+ selectFiles: 'Bestanden selecteren',
14
+ processedFiles: 'Verwerkte bestanden',
15
+ downloadAll: 'Alles downloaden (.zip)',
16
+ pending: 'In afwachting',
17
+ bibliographyTitle: 'Bibliografische Referenties',
18
+ faqTitle: 'Veelgestelde Vragen',
19
+ };
20
+
21
+ const faq: BmpAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Waarom nemen mijn BMP-bestanden 10 keer meer ruimte in en wat win ik met WebP?',
24
+ answer:
25
+ 'BMP slaat ongecomprimeerde pixelkaarten op. WebP gebruikt wiskundige compressie om enorme BMP\'s te verkleinen tot minder dan een megabyte, terwijl de afbeelding zeer herkenbaar blijft.',
26
+ },
27
+ {
28
+ question: 'Moet ik een account registreren?',
29
+ answer:
30
+ 'We vragen niet om een e-mailadres en je materiaal blijft geïsoleerd, aangezien de verwerking wordt uitgevoerd door de JavaScript van de browser op je eigen pc, zonder verzending op afstand.',
31
+ },
32
+ {
33
+ question: 'Kan ik veel bestanden tegelijkertijd slepen?',
34
+ answer:
35
+ 'Ja, je kunt 50 of 100 bestanden slepen als je hardware de verwerking van alles aankan zonder wachtrijen te creëren.',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Ruwe Bestanden Identificeren',
42
+ text: 'Plaats je bitmap-collecties in vensters die klaar zijn voor de overdracht.',
43
+ },
44
+ {
45
+ name: 'Natieve Batch-activering',
46
+ text: 'Projecteer of sleep alle bestanden naar onze digitale tafel.',
47
+ },
48
+ {
49
+ name: 'WebP Batch-evacuatie',
50
+ text: 'Klik op de resultaten en je krijgt afzonderlijk de afbeeldingen met micro-gewichten of als directe gecomprimeerde pakketten.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: BmpAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'BMP File Format',
57
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
+ },
59
+ {
60
+ name: 'Google WebP Documentation',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: BmpAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'BMP naar WebP Converter: De Meest Extreme Formaatverkleining Mogelijk',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMP naar WebP converteren is ongetwijfeld de meest spectaculaire transformatie die je met een afbeelding kunt doen. Het BMP-formaat (Bitmap) is een van de oudste en zwaarste formaten in het digitale ecosysteem: het slaat elke pixel op zonder enige vorm van compressie, wat resulteert in bestanden die 20, 50 of zelfs 100 keer zwaarder kunnen zijn dan hun moderne equivalent. WebP, ontwikkeld door Google, past geavanceerde compressie-algoritmen toe die de grootte tot het kleinst mogelijke minimum beperken met behoud van een uitstekende visuele kwaliteit.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'Waarom is BMP zo zwaar en WebP zo efficiënt?',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Het BMP-formaat werd in de jaren 80 geboren voor Windows, toen schijfruimte groot was en compressie geen prioriteit had. Elke pixel wordt opgeslagen zoals hij is, zonder enig reductie-algoritme: een afbeelding van 1920x1080 pixels in BMP neemt precies 5,93 MB in beslag, ongeacht de inhoud. Dit maakt het ideaal voor interne screenshots of bewerking zonder verlies, maar totaal ongeschikt voor het web of moderne opslag.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP gebruikt voorspellende compressie gebaseerd op blokken en DCT-getransformeerden (dezelfde technologie die ten grondslag ligt aan digitale video), waardoor dezelfde afbeelding van 1920x1080 tussen de 80 KB eb 300 KB in beslag neemt. Dat betekent een vermindering van 95 tot 99% ten opzichte van de originele BMP. Bovendien ondersteunt WebP het alfakanaal voor transparantie en zowel verlieslatende als verliesvrije compressie, wat totale veelzijdigheid biedt.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Vergelijking: Cloud Converters vs Onze Lokale Architectuur',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Cloud Converters',
98
+ description: 'Tools die je BMP-bestanden naar een externe server uploaden om ze te verwerken.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Het uploaden van een BMP van 20 MB duurt minuten bij een trage verbinding',
103
+ 'Je afbeeldingen blijven op externe servers staan',
104
+ 'Groottebeperkingen die grote BMP-bestanden uitsluiten',
105
+ 'Invasieve advertenties en datatrackers',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Onze Lokale Architectuur',
110
+ description: 'Directe verwerking in je browser via Vanilla JS-technologie und Canvas API.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Directe conversie zonder netwerkoverdracht',
115
+ 'Absolute privacy — 0 bytes verlaten je apparaat',
116
+ 'Zonder groottebeperkingen per bestand',
117
+ 'Werkt zonder internetverbinding',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Hoe de technische conversie in de browser werkt',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Bij het slepen van een BMP-bestand leest de browser dit als een binair Blob in het RAM-geheugen. Dit Blob wordt geladen in een <code>Image</code> element van JavaScript, dat het decodeert met de eigen afbeeldingsengine. Vervolgens wordt de afbeelding op een onzichtbaar HTML5 <code>Canvas</code> element getekend. Het Canvas fungeert als een virtueel doek waarop de afbeelding pixel voor pixel bestaat.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Eenmaal op het Canvas getekend, voeren we de methode <code>toBlob()</code> uit met het MIME-type <code>image/webp</code> en het gewenste kwaliteitsniveau. De browser past intern het WebP-compressiealgoritme toe en genereert een nieuw Blob met het resulterende bestand. Dit Blob wordt omgezet naar een directe download-URL die je browser op de schijf opslaat. Er wordt op geen enkel moment een netwerkverbinding tot stand gebracht.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'De grootste compressiesprong mogelijk',
138
+ html: 'De conversie van BMP naar WebP kan een vermindering van 99% in bestandsgrootte bereiken. Een BMP van 20 MB kan worden omgezet in een WebP van slechts ongeveer 200 KB met een vrijwel identieke visuele kwaliteit. Het is de meest efficiënte transformatie die beschikbaar is tussen standaard afbeeldingsformaten.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Gebruiksscenario\'s en compatibiliteit van WebP',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Webpublicatie — Chrome, Firefox, Safari, Edge en alle moderne browsers.',
150
+ 'Sociale netwerken — Instagram, Twitter, Facebook accepteren WebP op eigen wijze.',
151
+ 'Web-apps en PWA — minimale groottes voor direct laden.',
152
+ 'Efficiënte archivering — vervangt collecties van oude BMP\'s en bespaart gigabytes.',
153
+ 'E-mailmarketing — lichte afbeeldingen die snel laden in elke moderne e-mailclient.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusie: De meest impactvolle conversie met één klik',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Als je oude BMP-bestanden van Windows, ongecomprimeerde screenshots of afbeeldingen van oude tools hebt, is het converteren naar WebP de meest impactvolle actie die je kunt ondernemen om je opslag en webprestaties te optimaliseren. Met onze tool is de conversie direct, privé en zonder beperkingen — precies zoals het zou moeten zijn.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: BmpAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'nl', faq, howTo }),
178
+ };