@jjlmoya/utils-converters 1.7.0 → 1.8.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 (345) 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/title_quality.test.ts +55 -0
  10. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  11. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  12. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  15. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  25. package/src/tool/avifAJpg/index.ts +13 -1
  26. package/src/tool/avifAPng/i18n/de.ts +178 -0
  27. package/src/tool/avifAPng/i18n/en.ts +2 -12
  28. package/src/tool/avifAPng/i18n/es.ts +2 -12
  29. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  30. package/src/tool/avifAPng/i18n/id.ts +178 -0
  31. package/src/tool/avifAPng/i18n/it.ts +178 -0
  32. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  34. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  35. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  37. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  38. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  39. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  40. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  41. package/src/tool/avifAPng/index.ts +13 -1
  42. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  43. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  44. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  47. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  57. package/src/tool/avifAWebp/index.ts +13 -1
  58. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  59. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  60. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  63. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  73. package/src/tool/bmpAJpg/index.ts +13 -1
  74. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  75. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  76. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  79. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  89. package/src/tool/bmpAPng/index.ts +13 -1
  90. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  91. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  92. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  95. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  105. package/src/tool/bmpAWebp/index.ts +13 -1
  106. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  107. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  108. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  111. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  121. package/src/tool/gifAJpg/index.ts +13 -1
  122. package/src/tool/gifAPng/i18n/de.ts +178 -0
  123. package/src/tool/gifAPng/i18n/en.ts +2 -12
  124. package/src/tool/gifAPng/i18n/es.ts +2 -12
  125. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  126. package/src/tool/gifAPng/i18n/id.ts +178 -0
  127. package/src/tool/gifAPng/i18n/it.ts +178 -0
  128. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  130. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  131. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  133. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  134. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  135. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  136. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  137. package/src/tool/gifAPng/index.ts +12 -0
  138. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  139. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  140. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  143. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  153. package/src/tool/gifAWebp/index.ts +12 -0
  154. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  155. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  156. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  159. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  165. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  166. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  169. package/src/tool/imagenBase64/index.ts +12 -0
  170. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  171. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  172. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  173. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  174. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  175. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  185. package/src/tool/jpgAIco/index.ts +12 -0
  186. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  187. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  188. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  191. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  201. package/src/tool/jpgAPng/index.ts +13 -1
  202. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  203. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  204. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  207. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  217. package/src/tool/jpgAWebp/index.ts +12 -0
  218. package/src/tool/pngAIco/i18n/de.ts +183 -0
  219. package/src/tool/pngAIco/i18n/en.ts +8 -13
  220. package/src/tool/pngAIco/i18n/es.ts +19 -24
  221. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  222. package/src/tool/pngAIco/i18n/id.ts +183 -0
  223. package/src/tool/pngAIco/i18n/it.ts +183 -0
  224. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  226. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  227. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  229. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  230. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  231. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  232. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  233. package/src/tool/pngAIco/index.ts +12 -0
  234. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  235. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  236. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  239. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  249. package/src/tool/pngAJpg/index.ts +13 -1
  250. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  251. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  252. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  255. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  265. package/src/tool/pngAWebp/index.ts +12 -0
  266. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  267. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  268. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  270. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  271. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  281. package/src/tool/svgAJpg/index.ts +12 -0
  282. package/src/tool/svgAPng/i18n/de.ts +178 -0
  283. package/src/tool/svgAPng/i18n/en.ts +8 -13
  284. package/src/tool/svgAPng/i18n/es.ts +31 -36
  285. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  286. package/src/tool/svgAPng/i18n/id.ts +178 -0
  287. package/src/tool/svgAPng/i18n/it.ts +178 -0
  288. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  290. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  291. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  293. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  294. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  295. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  296. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  297. package/src/tool/svgAPng/index.ts +12 -0
  298. package/src/tool/webpAIco/i18n/de.ts +183 -0
  299. package/src/tool/webpAIco/i18n/en.ts +8 -13
  300. package/src/tool/webpAIco/i18n/es.ts +9 -14
  301. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  302. package/src/tool/webpAIco/i18n/id.ts +183 -0
  303. package/src/tool/webpAIco/i18n/it.ts +183 -0
  304. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  306. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  307. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  309. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  310. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  311. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  312. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  313. package/src/tool/webpAIco/index.ts +12 -0
  314. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  315. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  316. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  317. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  318. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  319. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  329. package/src/tool/webpAJpg/index.ts +12 -0
  330. package/src/tool/webpAPng/i18n/de.ts +182 -0
  331. package/src/tool/webpAPng/i18n/en.ts +8 -13
  332. package/src/tool/webpAPng/i18n/es.ts +35 -40
  333. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  334. package/src/tool/webpAPng/i18n/id.ts +182 -0
  335. package/src/tool/webpAPng/i18n/it.ts +182 -0
  336. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  338. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  339. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  341. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  342. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  343. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  344. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  345. package/src/tool/webpAPng/index.ts +12 -0
@@ -0,0 +1,177 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { BmpAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-bmp-ke-png';
6
+ const title = 'Konverter BMP ke PNG';
7
+ const description =
8
+ 'Ubah gambar BMP ke PNG tanpa kehilangan kualitas. Kompresi modern tanpa artefak. Tanpa mengunggah file. Gratis dan 100% pribadi.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Seret file BMP...',
12
+ convertText: 'Untuk mengubahnya ke PNG secara instan',
13
+ selectFiles: 'Pilih file',
14
+ processedFiles: 'File yang diproses',
15
+ downloadAll: 'Unduh Semua (.zip)',
16
+ pending: 'Tertunda',
17
+ bibliographyTitle: 'Referensi Bibliografi',
18
+ faqTitle: 'Pertanyaan Umum',
19
+ };
20
+
21
+ const faq: BmpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Apa perbedaan utama antara BMP dan PNG?',
24
+ answer:
25
+ 'Baik BMP maupun PNG adalah format tanpa kehilangan kualitas (lossless). Perbedaannya terletak pada optimalisasi: PNG memahami algoritma kompresi modern untuk menyimpan gambar yang sama dengan memori yang 5 atau 10 kali lebih kecil daripada BMP.',
26
+ },
27
+ {
28
+ question: 'Apakah konversi ini benar-benar pribadi?',
29
+ answer:
30
+ 'Ya. Seluruh pemrosesan foto dilakukan oleh komputer Anda. Sama sekali tidak ada yang mengakses file Anda dalam transit lokal.',
31
+ },
32
+ {
33
+ question: 'Mengapa memilih PNG daripada JPEG dalam kasus ini?',
34
+ answer:
35
+ 'Jika Anda memiliki file BMP, itu karena gambar tersebut memiliki warna yang presisi. Mengubah BMP ke standar JPG yang merusak akan merusak warna murni Anda. PNG melindungi kesetiaan tersebut.',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Masukkan Foto Anda',
42
+ text: 'Pindahkan file sumber BMP dengan tenang ke area kami untuk melepaskan elemen web.',
43
+ },
44
+ {
45
+ name: 'Konversi Tanpa Transmisi Jaringan',
46
+ text: 'Saksikan hanya dalam satu detik pemrosesan bersih yang dilakukan secara lokal oleh JS HTML5 Anda.',
47
+ },
48
+ {
49
+ name: 'Dapatkan PNG Murni',
50
+ text: 'Unduh replika dalam format PNG satu per satu atau melalui paket terkompresi.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: BmpAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'BMP File Format',
57
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
+ },
59
+ {
60
+ name: 'PNG Specification W3C',
61
+ url: 'https://www.w3.org/TR/png/',
62
+ },
63
+ ];
64
+
65
+ const seo: BmpAPngLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konverter BMP ke PNG: Pengganti Tanpa Kehilangan untuk Format BMP',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMP adalah format tanpa kompresi yang memakan banyak ruang tanpa manfaat teknis apa pun dibandingkan dengan PNG. Keduanya adalah format tanpa kehilangan: mereka menyimpan setiap piksel dengan ketepatan absolut. Namun PNG menambahkan kompresi lossless melalui algoritma Deflate, yang mengurangi ukuran file antara 3 dan 5 kali lipat tanpa mengorbankan satu bit pun informasi visual. PNG, pada dasarnya, adalah apa yang selalu dicita-citakan oleh BMP.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP vs PNG: kualitas sama, ukuran sangat berbeda',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Perbedaan mendasar antara BMP dan PNG bukan pada kualitas gambar — keduanya tanpa kehilangan — tetapi pada efisiensi penyimpanan. BMP menyimpan piksel mentah: tanpa kompresi, tanpa optimalisasi, tanpa mempertimbangkan ruang. PNG menganalisis pola piksel yang berulang dan mengodekannya secara ringkas melalui Deflate, algoritma yang sama yang digunakan oleh ZIP.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Selain kompresi yang unggul, PNG menambahkan fitur yang tidak pernah dimiliki BMP: saluran alfa lengkap untuk transparansi. Tangkapan layar, grafik antarmuka, logo, diagram teknis: semua jenis gambar ini sangat diuntungkan dari konversi ke PNG, yang mempertahankan setiap nilai warna yang tepat sambil mengurangi bobot file menjadi sebagian kecil saja dari aslinya.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Perbandingan Arsitektur: Lokal vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Konverter Cloud',
98
+ description: 'Layanan yang memproses file BMP Anda di server pihak ketiga.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Gambar kerja Anda menjelajahi internet',
103
+ 'Waktu tunggu proporsional dengan ukuran BMP',
104
+ 'Batasan ukuran pada paket gratis',
105
+ 'Risiko analisis atau penyimpanan file Anda',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Arsitektur Lokal Kami',
110
+ description: 'Pemrosesan langsung di perangkat keras Anda melalui teknologi Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'BMP diproses secara lokal, tidak pernah meninggalkan perangkat Anda',
115
+ 'Konversi instan dalam hitungan milidetik',
116
+ 'Tanpa batasan ukuran atau jumlah file',
117
+ 'Privasi total: 0 byte dikirim ke luar',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Cara kerja konversi lokal dari BMP ke PNG',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Proses ini menggunakan Canvas API dari HTML5. File BMP dibaca dengan API <code>FileReader</code> browser dan didercode sebagai Blob di memori. Blob tersebut digambar di atas kanvas HTML5 yang tidak terlihat. Selanjutnya, metode <code>toDataURL(\'image/png\')</code> menerapkan algoritma kompresi PNG asli browser dan menghasilkan file yang dihasilkan.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Berbeda dengan konversi ke JPG, konversi ke PNG sepenuhnya tanpa kehilangan: setiap nilai warna dari BMP asli dipertahankan secara tepat dalam PNG yang dihasilkan. Tidak ada artefak, tidak ada penghalusan tepi, tidak ada kehilangan informasi. File akhir secara visual identik dengan BMP tetapi memakan ruang disk 3 hingga 5 kali lebih sedikit.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Jika Anda bekerja dengan perangkat lunak lama yang mengekspor BMP (mesin industri, sistem kontrol, perangkat lunak diagnostik medis), mengonversi ke PNG adalah keputusan terbaik. PNG kompatibel dengan hampir semua program modern, mempertahankan kesetiaan warna yang sempurna, dan memakan ruang hingga 5 kali lebih sedikit. Ini adalah migrasi yang paling sederhana dan paling aman.',
138
+ },
139
+ {
140
+ type: 'title',
141
+ text: 'Kasus penggunaan dan kompatibilitas PNG yang dihasilkan',
142
+ level: 3,
143
+ },
144
+ {
145
+ type: 'list',
146
+ icon: 'mdi:check-circle',
147
+ items: [
148
+ 'Tangkapan layar dan grafik antarmuka dengan warna yang tepat dipertahankan.',
149
+ 'Gambar dokumentasi teknis dan diagram perangkat lunak.',
150
+ 'Ekspor dari CAD, sistem industri, dan perangkat lunak lama.',
151
+ 'Logo dan elemen identitas visual dengan transparansi tambahan.',
152
+ 'Kompatibel dengan Adobe Photoshop, GIMP, Figma, dan semua editor modern.',
153
+ ],
154
+ },
155
+ {
156
+ type: 'title',
157
+ text: 'Kesimpulan: PNG adalah wujud ideal yang selalu diinginkan BMP',
158
+ level: 3,
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'Mengonversi BMP ke PNG adalah modernisasi paling alami dari sebuah file gambar: kualitas tanpa kehilangan yang sama, kompatibilitas yang lebih besar, dukungan transparansi, dan bobot 3 hingga 5 kali lebih kecil. Alat kami melakukan konversi ini dalam hitungan milidetik, langsung di browser Anda, tanpa mengunggah file apa pun ke server mana pun.',
163
+ },
164
+ ];
165
+
166
+
167
+ export const content: BmpAPngLocaleContent = {
168
+ slug,
169
+ title,
170
+ description,
171
+ ui,
172
+ seo,
173
+ faq,
174
+ bibliography,
175
+ howTo,
176
+ schemas: generateSchemas({ title, description, inLanguage: 'id', faq, howTo }),
177
+ };
@@ -0,0 +1,177 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { BmpAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'convertitore-bmp-a-png';
6
+ const title = 'Convertitore da BMP a PNG';
7
+ const description =
8
+ 'Converti le immagini BMP in PNG senza perdita di qualità. Compressione moderna senza artefatti. Senza caricare file su server. Gratuito e privato al 100%.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Trascina i file BMP...',
12
+ convertText: 'Per convertirli in PNG istantaneamente',
13
+ selectFiles: 'Seleziona i file',
14
+ processedFiles: 'File elaborati',
15
+ downloadAll: 'Scarica tutto (.zip)',
16
+ pending: 'In attesa',
17
+ bibliographyTitle: 'Riferimenti Bibliografici',
18
+ faqTitle: 'Domande Frequenti',
19
+ };
20
+
21
+ const faq: BmpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Qual è la principale differenza tra BMP e PNG?',
24
+ answer:
25
+ 'Sia BMP che PNG sono formati senza perdita di dati. La differenza risiede nell\'ottimizzazione: il PNG supporta moderni algoritmi di compressione per salvare la stessa immagine occupando 5 o 10 volte meno memoria rispetto al BMP.',
26
+ },
27
+ {
28
+ question: 'La conversione è davvero privata?',
29
+ answer:
30
+ 'Sì. Tutta l\'elaborazione fotografica viene eseguita dal tuo computer. Assolutamente nessuno accede ai tuoi file durante il trasferimento locale.',
31
+ },
32
+ {
33
+ question: 'Perché scegliere il PNG rispetto al JPEG in questo caso?',
34
+ answer:
35
+ 'Se possiedi un file BMP, è perché l\'immagine ha colori precisi. Passare un BMP allo standard distruttivo JPG degraderebbe i tuoi colori netti. Il PNG preserva tale fedeltà.',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Inserisci la tua Fotografia',
42
+ text: 'Trascina tranquillamente i file BMP di origine nella nostra area dedicata al rilascio di elementi web.',
43
+ },
44
+ {
45
+ name: 'Conversione senza Trasmissione di Rete',
46
+ text: 'Visualizza in appena un secondo l\'elaborazione pulita eseguita localmente tramite JS HTML5.',
47
+ },
48
+ {
49
+ name: 'Ottieni PNG Puri',
50
+ text: 'Scarica le repliche in PNG singolarmente o tramite un pacchetto compresso.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: BmpAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'BMP File Format',
57
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
+ },
59
+ {
60
+ name: 'PNG Specification W3C',
61
+ url: 'https://www.w3.org/TR/png/',
62
+ },
63
+ ];
64
+
65
+ const seo: BmpAPngLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Convertitore da BMP a PNG: La Sostituzione Senza Perdita del Formato BMP',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Il BMP è un formato senza compressione che occupa enormi quantità di spazio senza alcun vantaggio tecnico rispetto al PNG. Entrambi sono formati lossless: salvano ogni pixel con assoluta esattezza. Tuttavia, il PNG aggiunge la compressione senza perdita tramite l\'algoritmo Deflate, riducendo le dimensioni del file da 3 a 5 volte senza sacrificare un singolo bit di informazioni visive. Il PNG è, in sostanza, ciò che il BMP ha sempre desiderato essere.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP vs PNG: stessa qualità, dimensioni radicalmente diverse',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'La differenza fondamentale tra BMP e PNG non risiede nella qualità dell\'immagine — entrambi sono senza perdita — ma nell\'efficienza di archiviazione. Il BMP memorizza i pixel grezzi: senza compressione, senza ottimizzazione, senza considerare lo spazio. Il PNG analizza i pattern di pixel ripetuti e li codifica in modo compatto tramite Deflate, lo stesso algoritmo utilizzato dallo ZIP.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Oltre alla compressione superiore, il PNG aggiunge una caratteristica che il BMP non ha mai avuto: il canale alfa completo per le trasparenze. Screenshot, grafica d\'interfaccia, loghi, diagrammi tecnici: tutti questi tipi di immagini traggono enorme vantaggio dalla conversione in PNG, che mantiene ogni valore di colore esatto riducendo al contempo il peso del file a una frazione dell\'originale.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Confronto di Architettura: Locale vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Convertitori Cloud',
98
+ description: 'Servizi che elaborano i tuoi file BMP su server di terze parti.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Le tue immagini di lavoro viaggiano su Internet',
103
+ 'Tempo di attesa proporzionale alle dimensioni del BMP',
104
+ 'Limiti di dimensione nei piani gratuiti',
105
+ 'Rischio di analisi o conservazione dei tuoi file',
106
+ ],
107
+ },
108
+ {
109
+ title: 'La Nostra Architettura Locale',
110
+ description: 'Elaborazione diretta sul tuo hardware tramite tecnologia Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Il BMP viene elaborato localmente, non lascia mai il tuo dispositivo',
115
+ 'Conversione istantanea in millisecondi',
116
+ 'Senza limiti di dimensioni o numero di file',
117
+ 'Privacy totale: 0 byte inviati all\'esterno',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Come funziona la conversione locale da BMP a PNG',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Il processo utilizza l\'API Canvas di HTML5. Il file BMP viene letto tramite l\'API <code>FileReader</code> del browser e decodificato come Blob in memoria. Tale Blob viene disegnato su un canvas HTML5 invisibile. Successivamente, il metodo <code>toDataURL(\'image/png\')</code> applica l\'algoritmo di compressione PNG nativo del browser e genera il file risultante.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'A differenza della conversione in JPG, la conversione in PNG è completamente lossless: ogni valore di colore del BMP originale viene preservato esattamente nel PNG risultante. Non ci sono artefatti, non c\'è ammorbidimento dei bordi, nessuna perdita di informazioni. Il file finale è visivamente identico al BMP ma occupa da 3 a 5 volte meno spazio su disco.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Se lavori con software datati che esportano in BMP (macchinari industriali, sistemi di controllo, software di diagnostica medica), convertire in PNG è la scelta migliore. Il PNG è compatibile con assolutamente tutti i programmi moderni, mantiene la perfetta fedeltà cromatica e occupa fino a 5 volte meno spazio. È la migrazione più semplice e sicura possibile.',
138
+ },
139
+ {
140
+ type: 'title',
141
+ text: 'Casi d\'uso e compatibilità del PNG risultante',
142
+ level: 3,
143
+ },
144
+ {
145
+ type: 'list',
146
+ icon: 'mdi:check-circle',
147
+ items: [
148
+ 'Screenshot e grafica d\'interfaccia con colori esatti preservati.',
149
+ 'Immagini di documentazione tecnica e diagrammi software.',
150
+ 'Esportazioni da CAD, sistemi industriali e software legacy.',
151
+ 'Loghi ed elementi di identità visiva con trasparenza aggiunta.',
152
+ 'Compatibile con Adobe Photoshop, GIMP, Figma e tutti i moderni editor.',
153
+ ],
154
+ },
155
+ {
156
+ type: 'title',
157
+ text: 'Conclusione: il PNG è ciò che il BMP avrebbe sempre dovuto essere',
158
+ level: 3,
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'Convertire BMP in PNG è la modernizzazione più naturale di un file immagine: stessa qualità lossless, maggiore compatibilità, supporto della trasparenza e peso da 3 a 5 volte inferiore. Il nostro strumento esegue questa conversione in millisecondi, direttamente nel tuo browser, senza caricare alcun file su alcun server.',
163
+ },
164
+ ];
165
+
166
+
167
+ export const content: BmpAPngLocaleContent = {
168
+ slug,
169
+ title,
170
+ description,
171
+ ui,
172
+ seo,
173
+ faq,
174
+ bibliography,
175
+ howTo,
176
+ schemas: generateSchemas({ title, description, inLanguage: 'it', faq, howTo }),
177
+ };
@@ -0,0 +1,177 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { BmpAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'convert-bmp-to-png';
6
+ const title = 'BMPからPNGへのコンバーター';
7
+ const description =
8
+ 'BMP画像を品質を損なうことなくPNGに変換します。ノイズのないモダンな圧縮。ファイルのアップロードは不要。無料で100%プライベートに使用できます。';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'BMPファイルをドラッグ...',
12
+ convertText: '即座にPNGに変換します',
13
+ selectFiles: 'ファイルを選択',
14
+ processedFiles: '処理済みファイル',
15
+ downloadAll: 'すべてダウンロード (.zip)',
16
+ pending: '待機中',
17
+ bibliographyTitle: '参考文献',
18
+ faqTitle: 'よくある質問',
19
+ };
20
+
21
+ const faq: BmpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'BMPとPNGの主な違いは何ですか?',
24
+ answer:
25
+ 'BMPもPNGもロスレス(無損失)形式です。違いは最適化にあります。PNGは現代的な圧縮アルゴリズムを使用して、BMPよりも5倍から10倍少ないメモリ容量で同じ画像を保存できます。',
26
+ },
27
+ {
28
+ question: '変換は本当にプライベートですか?',
29
+ answer:
30
+ 'はい。すべての画像処理はお使いのコンピュータで行われます。ローカルでの転送中にファイルにアクセスできる人は誰もいません。',
31
+ },
32
+ {
33
+ question: 'この場合、なぜJPEGではなくPNGなのですか?',
34
+ answer:
35
+ 'BMPファイルをお持ちの場合、その画像には正確な色が含まれているからです。BMPを非可逆標準のJPGに変換すると、鮮明な色が損なわれてしまいます。PNGはその忠実度を保護します。',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: '写真を読み込む',
42
+ text: 'BMPソースファイルを、ウェブ要素のドロップゾーンへ安心して移動させてください。',
43
+ },
44
+ {
45
+ name: 'ネットワーク送信なしで変換',
46
+ text: 'HTML5のJavaScriptによってローカルで行われるクリーンな処理を、わずか1秒で実感してください。',
47
+ },
48
+ {
49
+ name: '純粋なPNGを入手',
50
+ text: 'PNG形式の複製を個別に、または圧縮パッケージとしてダウンロードしてください。',
51
+ },
52
+ ];
53
+
54
+ const bibliography: BmpAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'BMP File Format',
57
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
+ },
59
+ {
60
+ name: 'PNG Specification W3C',
61
+ url: 'https://www.w3.org/TR/png/',
62
+ },
63
+ ];
64
+
65
+ const seo: BmpAPngLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'BMPからPNGへのコンバーター:BMP形式のロスレスな置き換え',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMPは非圧縮形式であり、PNGと比較して技術的な利点がないまま、膨大なスペースを占有します。どちらもロスレス形式であり、各ピクセルを絶対的な正確さで保存します。しかし、PNGはDeflateアルゴリズムによるロスレス圧縮を追加し、視覚情報を1ビットも犠牲にすることなく、ファイルサイズを3分の1から5分の1に削減します。PNGは、本質的にBMPが常に目指していた姿と言えます。',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP vs PNG:同じ品質、劇的に異なるサイズ',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'BMPとPNGの根本的な違いは画像品質ではなく(どちらもロスレスです)、ストレージの効率にあります。BMPはピクセルを生のまま保存します。圧縮なし、最適化なし、スペースへの配慮なしです。対照的に、PNGは繰り返されるピクセルパターンを分析し、ZIPで使用されているのと同じアルゴリズムであるDeflateを使用してコンパクトにエンコードします。',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '優れた圧縮性能に加えて、PNGはBMPにはなかった機能を備えています。それは、透明度のための完全なアルファチャンネルです。スクリーンショット、インターフェイスグラフィックス、ロゴ、技術図面など、これらすべての種類の画像は、色値を正確に維持しながらファイルサイズを元の何分の一かに削減できる、PNGへの変換から大きな恩恵を受けます。',
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
+ '作業画像がインターネット上を移動する',
103
+ '待機時間はBMPのサイズに比例する',
104
+ '無料プランでのサイズ制限',
105
+ 'ファイルの分析や保持のリスク',
106
+ ],
107
+ },
108
+ {
109
+ title: '当サイトのローカルアーキテクチャ',
110
+ description: 'Vanilla JSテクノロジーを使用してハードウェア上で直接処理。',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'BMPはローカルで処理され、デバイスの外に出ることはない',
115
+ 'ミリ秒単位の即時変換',
116
+ 'サイズ制限やファイル数の制限なし',
117
+ '完全なプライバシー:0バイトが外部に送信される',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: '技術的なBMPからPNGへのローカル変換の仕組み',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'プロセスにはHTML5のCanvas APIが使用されます。BMPファイルはブラウザの<code>FileReader</code> APIで読み取られ、メモリ内でBlobとしてデコードされます。そのBlobは、不可視のHTML5キャンバス上に描画されます。次に、<code>toDataURL(\'image/png\')</code>メソッドがブラウザ固有のPNG圧縮アルゴリズムを適用し、結果のファイルを生成します。',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'JPGへの変換とは異なり、PNGへの変換は完全にロスレスです。元のBMPの各色値は、生成されるPNGで正確に保持されます。ノイズの発生、エッジのぼやけ、情報の損失はありません。最終的なファイルは視覚的にBMPと同一ですが、ディスク上の占有スペースは3分の1から5分の1になります。',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'BMPを書き出す古いソフトウェア(産業機械、制御システム、医療診断ソフトウェアなど)を使用している場合、PNGへの変換は最善の決断です。PNGは、すべての最新プログラムと完全に互換性があり、完璧な色の正確さを維持し、最大5倍少ないスペースしか占有しません。これは、最もシンプルで安全な移行方法です。',
138
+ },
139
+ {
140
+ type: 'title',
141
+ text: '使用例と変換後のPNGの互換性',
142
+ level: 3,
143
+ },
144
+ {
145
+ type: 'list',
146
+ icon: 'mdi:check-circle',
147
+ items: [
148
+ '正確な色が保持されたスクリーンショットやインターフェイスグラフィックス。',
149
+ '技術文書の画像やソフトウェアの図表。',
150
+ 'CAD、産業システム、およびレガシーソフトウェアからのエクスポート。',
151
+ '透明度が追加されたロゴやビジュアルアイデンティティ要素。',
152
+ 'Adobe Photoshop、GIMP、Figma、およびすべての最新エディタと互換性があります。',
153
+ ],
154
+ },
155
+ {
156
+ type: 'title',
157
+ text: '結論:PNGはBMPが常にそうあるべきだった姿です',
158
+ level: 3,
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'BMPからPNGへの変換は、画像ファイルの最も自然な近代化です。同じロスレス品質、高い互換性、透明度のサポート、そして3分の1から5分の1の軽量化。当ツールは、サーバーにファイルを一切アップロードすることなく、ブラウザ上で直接数ミリ秒でこの変換を実行します。',
163
+ },
164
+ ];
165
+
166
+
167
+ export const content: BmpAPngLocaleContent = {
168
+ slug,
169
+ title,
170
+ description,
171
+ ui,
172
+ seo,
173
+ faq,
174
+ bibliography,
175
+ howTo,
176
+ schemas: generateSchemas({ title, description, inLanguage: 'ja', faq, howTo }),
177
+ };