@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,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { BmpAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'bmp-jpg-donusturucu';
6
+ const title = 'Online BMP\'den JPG\'ye Dönüştür';
7
+ const description =
8
+ 'BMP görüntülerini tarayıcınızda JPG\'ye dönüştürün. Dosya boyutunu büyük ölçüde azaltın. Dosyaları sunuculara yüklemeden. Ücretsiz ve %100 özel.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'BMP dosyalarını buraya sürükleyin...',
12
+ convertText: 'Anında JPG\'ye dönüştürmek için',
13
+ selectFiles: 'Dosyaları seçin',
14
+ processedFiles: 'İşlenen dosyalar',
15
+ downloadAll: 'Tümünü İndir (.zip)',
16
+ pending: 'Bekliyor',
17
+ bibliographyTitle: 'Bibliyografik Referanslar',
18
+ faqTitle: 'Sıkça Sorulan Sorular',
19
+ };
20
+
21
+ const faq: BmpAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Neden BMP\'den JPG\'ye dönüştürmeli?',
24
+ answer:
25
+ 'BMP formatı verileri sıkıştırmaz, bu da aşırı derecede büyük dosyalara yol açar. JPG formatı, web ve dağıtım için mükemmel görsel kaliteyi koruyarak görüntüyü büyük ölçüde sıkıştırır.',
26
+ },
27
+ {
28
+ question: 'Görüntülerimi burada dönüştürmek güvenli mi?',
29
+ answer:
30
+ '%100 güvenli. İşleme tamamen kendi web tarayıcınızın motoru kullanılarak yerel olarak gerçekleştirildiğinden gizliliğiniz garantilidir.',
31
+ },
32
+ {
33
+ question: 'Araç nasıl çalışıyor?',
34
+ answer:
35
+ 'BMP dosyalarınızı buraya sürüklemeniz yeterlidir; JavaScript betiğimiz pikselleri okuyarak bunları bir HTML tuvali üzerine yeniden çizer ve anında JPEG kodlamasında dışa aktarır.',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'BMP dosyalarınızı ekleyin',
42
+ text: 'Belirlenen alana BMP formatındaki resimlerinizi sürükleyip bırakın veya seçin.',
43
+ },
44
+ {
45
+ name: 'Otomatik İşleme',
46
+ text: 'Araç görüntüyü rasterleştirir ve milisaniyeler içinde JPG formatında en uygun sıkıştırma seviyesini uygular.',
47
+ },
48
+ {
49
+ name: 'Tekli veya Toplu İndirme',
50
+ text: 'Yeni web optimize edilmiş resimlerinizi tek tek veya bir ZIP dosyası olarak indirin.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'BMP File Format Specification',
57
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
+ },
59
+ {
60
+ name: 'JPEG.org',
61
+ url: 'https://jpeg.org/',
62
+ },
63
+ ];
64
+
65
+ const seo: BmpAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'BMP\'den JPG\'ye Dönüştürücü: Dev Dosyaları Saniyeler İçinde Küçültün',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMP (Bitmap), bilgisayar dünyasındaki en basit formattır: her pikseli hiçbir sıkıştırma olmadan olduğu gibi saklar. 1920x1080 çözünürlüğünde bir BMP ekran görüntüsü yaklaşık 6 MB boyutundadır. Aynı görüntü, görsel olarak ayırt edilemez bir kalitede JPG formatında 200 ile 400 KB arasında yer kaplar. Aradaki fark muazzamdır ve aracımız bu dönüşümü hiçbir sunucuya bir şey yüklemeden doğrudan tarayıcınızda saniyeler içinde gerçekleştirmenize olanak tanır.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP vs JPG: ham veriler ve akıllı sıkıştırma',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'BMP formatı, Microsoft tarafından Windows 3.1 döneminde oluşturuldu. Felsefesi olabildiğince basittir: her piksel 3 bayt (kırmızı, yeşil, mavi) kaplar ve pikseller herhangi bir ek işlem yapılmadan sırayla saklanır. Hiçbir sıkıştırmanın olmaması, gerçek fotoğraflar ve ekran görüntüleri için BMP dosyalarının JPG karşılıklarından 50 ila 100 kat daha büyük olmasına neden olur.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG ise tam tersine, her 8x8 piksellik bloğu analiz etmek ve insan gözünün zar zor algıladığı yüksek frekanslı bilgileri ortadan kaldırmak için Ayrık Kosinüs Dönüşümü\'nü (DCT) kullanır. Sonuç, orijinalinin sadece küçük bir kısmı ağırlığında olan, ancak özdeş görünen bir görüntüdür. Ekran görüntülerinden, tarayıcılardan veya eski Windows uygulamalarından gelen BMP dosyaları için JPG\'ye dönüşüm, yapılabilecek en etkili optimizasyon işlemidir.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Mimari Karşılaştırması: Yerel vs Bulut',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Bulut Dönüştürücüler',
98
+ description: 'BMP dosyalarınızı işlemek için uzak sunuculara yükleyen hizmetler.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Yavaş bağlantılarda 10 MB\'lık bir BMP\'yi yüklemek zaman alır',
103
+ 'Ekran görüntüleriniz ve gizli resimleriniz internette dolaşır',
104
+ 'Ücretsiz planlarda sıkça görülen boyut sınırları',
105
+ 'Çift gecikme: dönüştürülen dosyanın yüklenmesi ve indirilmesi',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Yerel Mimarimiz',
110
+ description: 'Vanilla JS teknolojisi sayesinde doğrudan donanımınızda işleme.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'BMP, RAM\'inizde işlenir ve bir sunucuya gitmez',
115
+ 'Bekleme olmadan anında dönüşüm',
116
+ 'Dosya başına boyut sınırı yok',
117
+ 'Tam gizlilik: dışarıya 0 bayt gönderilir',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Teknik Olarak BMP\'den JPG\'ye Dönüşüm Nasıl Çalışır?',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Dönüştürmek istediğiniz BMP dosyasını araca sürüklediğinizde tarayıcı bunu <code>FileReader</code> API\'si ile okur ve bellekte bir Blob nesnesi olarak kodu çözer. Bu Blob, görünmez bir HTML5 tuvali üzerine çizilir. Ardından, <code>toDataURL(\'image/jpeg\')</code> yöntemi tuval verileri üzerinde JPEG sıkıştırma algoritmasını uygular ve sonuç JPG dosyasını oluşturur.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'BMP\'nin alfa kanalı olmadığından (şeffaflıkları desteklemez), JPG\'ye dönüşüm beyaz bir arka planla birleştirilmeye gerek kalmadan doğrudan gerçekleşir. Tüm süreç, ağ üzerinden herhangi bir veri iletimi olmadan, birkaç megabaytlık dosyalar için bile milisaniyeler içinde bilgisayarınızın RAM belleğinde gerçekleşir.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Windows BMP dosyaları devasa boyutlarda olabilir',
138
+ html: 'Ekran görüntülerinden (Windows\'taki Print Screen tuşu) veya Paint gibi eski uygulamalardan oluşturulan BMP dosyaları, eşdeğer bir JPG\'den 50 ila 100 kat daha ağır olabilir. Tek bir Full HD çözünürlüklü BMP 6 MB\'ı aşabilir. Bunları e-postayla göndermeden veya herhangi bir platforma yüklemeden önce JPG\'ye dönüştürmek temel bir uygulamadır.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Kullanım Durumları ve Ortaya Çıkan JPG\'nin Uyumluluğu',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'E-postayla göndermek için Windows ekran görüntülerinin optimizasyonu.',
150
+ 'Eski yazılımlar (CAD, eski tarayıcılar) tarafından dışa aktarılan görüntülerin dönüşümü.',
151
+ 'Web platformlarına ve sosyal ağlara resim yüklemek için dosya boyutunun küçültülmesi.',
152
+ 'Dosyaların Word, PowerPoint veya PDF belgelerine yerleştirilmek üzere hazırlanması.',
153
+ 'Tüm modern görüntüleyiciler ve tarayıcılarla evrensel uyumluluk.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Sonuç: 10 MB BMP, 500 KB JPG, aynı resim',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'BMP\'den JPG\'ye dönüşüm, görüntü dosyası yönetimindeki en karlı optimizasyon işlemlerinden biridir. Aracımız bu dönüşümü hiçbir dosya yüklemeden, hesap oluşturmadan doğrudan tarayıcınızda saniyeler içinde gerçekleştirir. Sonuç, evrensel olarak uyumlu, yüksek kaliteli ve orijinal BMP\'den %97\'ye kadar daha hafif bir JPG dosyasıdır.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: BmpAJpgLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'tr', 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 { BmpAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'convert-bmp-to-jpg';
6
+ const title = '在线将 BMP 转换为 JPG';
7
+ const description =
8
+ '在您的浏览器中将 BMP 图像转换为 JPG。大幅减小文件大小。无需将文件上传到服务器。免费且 100% 私密。';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: '拖拽 BMP 文件...',
12
+ convertText: '立即将其转换为 JPG',
13
+ selectFiles: '选择文件',
14
+ processedFiles: '已处理文件',
15
+ downloadAll: '下载全部 (.zip)',
16
+ pending: '等待中',
17
+ bibliographyTitle: '参考文献',
18
+ faqTitle: '常见问题',
19
+ };
20
+
21
+ const faq: BmpAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: '为什么要将 BMP 转换为 JPG?',
24
+ answer:
25
+ 'BMP 格式不压缩数据,导致文件极其庞大。JPG 格式可以在大幅压缩图像的同时,为网页和分发保留出色的视觉质量。',
26
+ },
27
+ {
28
+ question: '在这里转换我的图像安全吗?',
29
+ answer:
30
+ '100% 安全。由于处理完全是在您自己的浏览器引擎本地完成的,因此您的隐私得到了保证。',
31
+ },
32
+ {
33
+ question: '这个工具是如何运作的?',
34
+ answer:
35
+ '只需拖入您的 BMP 文件,我们的 JavaScript 脚本就会读取其像素,在 HTML 画布上重新绘制,并立即导出为 JPEG 编码格式。',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: '上传您的 BMP 文件',
42
+ text: '将您的 BMP 格式图像拖放到指定区域或手动选择。',
43
+ },
44
+ {
45
+ name: '自动处理',
46
+ text: '工具会在毫秒内对图像进行光栅化,并应用 JPG 格式的最佳压缩级别。',
47
+ },
48
+ {
49
+ name: '单个或批量下载',
50
+ text: '逐个获取您为网页优化的新图像,或通过下载 ZIP 文件一次性获取。',
51
+ },
52
+ ];
53
+
54
+ const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'BMP File Format Specification',
57
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
+ },
59
+ {
60
+ name: 'JPEG.org',
61
+ url: 'https://jpeg.org/',
62
+ },
63
+ ];
64
+
65
+ const seo: BmpAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'BMP 转 JPG 转换器:在几秒钟内缩减巨大的文件',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMP(Bitmap)是计算机科学领域最原始的格式:它按原样存储每个像素,没有任何形式的压缩。一张 1920x1080 分辨率的 BMP 截图重约 6 MB。同一张 JPG 图像在视觉质量难辨的情况下,仅占用 200 到 400 KB。这种差异是巨大的,我们的工具允许您在浏览器中直接完成转换,无需向任何服务器上传任何内容。',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP vs JPG:原始数据 vs 智能压缩',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'BMP 格式由微软在 Windows 3.1 时代创建。其理念尽可能简单:每个像素占用 3 字节(红、绿、蓝),像素按行存储,不进行任何额外处理。对于真实的图片和截图,这种完全缺乏压缩的情况导致 BMP 文件比同等的 JPG 文件大 50 到 100 倍。',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '相比之下,JPG 使用离散余弦变换(DCT)来分析每个 8x8 像素块,并消除人类肉眼几乎察觉不到的高频信息。结果是图像看起来完全相同,但体积却只有原图的一小部分。对于来自截图、扫描仪或旧版 Windows 应用程序的 BMP 文件,转换为 JPG 是最有效的优化手段。',
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
+ '在慢速连接下上传 10 MB 的 BMP 需要较长时间',
103
+ '您的机密截图和图像在互联网上传播',
104
+ '免费计划中常见的尺寸限制',
105
+ '双重延迟:转换后文件的上传和下载',
106
+ ],
107
+ },
108
+ {
109
+ title: '我们的本地架构',
110
+ description: '通过 Vanilla JS 技术在您的硬件上直接完成处理。',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'BMP 在您的 RAM 中处理,不传输到服务器',
115
+ '即时转换,无需等待',
116
+ '没有单个文件的大小限制',
117
+ '完全隐私:0 字节向外传输',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'BMP 转 JPG 的技术转换原理',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: '当您将 BMP 文件拖入工具时,浏览器会通过 <code>FileReader</code> API 读取该文件,并在内存中将其解码为 Blob 对象。该 Blob 会渲染到不可见的 HTML5 画布上。接着,<code>toDataURL(\'image/jpeg\')</code> 方法会对画布数据应用 JPEG 压缩算法,并生成结果 JPG 文件。',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: '由于 BMP 没有 Alpha 通道(不支持透明度),因此转 JPG 的过程是直接完成的,无需与白色背景进行合成。整个过程在您计算机的 RAM 内存中进行,无需任何网络数据传输,即使对于数兆字节的文件,也能在毫秒内完成。',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Windows BMP 文件可能非常庞大',
138
+ html: '通过截图(Windows 中的 Print Screen 键)或 Paint 等旧版应用生成的 BMP 文件可能比同等的 JPG 重 50 到 100 倍。单张全高清分辨率的 BMP 可能超过 6 MB。在通过电子邮件发送或上传到任何平台之前,将其转换为 JPG 是一项至关重要的操作。',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: '使用场景和结果 JPG 的兼容性',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ '优化用于电子邮件发送的 Windows 截图。',
150
+ '转换旧版软件(CAD、旧扫描仪)导出的图像。',
151
+ '在上传图像到网页平台和社交网络前减小体积。',
152
+ '为插入 Word、PowerPoint 或 PDF 文档准备文件。',
153
+ '与所有现代查看器和浏览器通用兼容。',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: '结论:10 MB 的 BMP,500 KB 的 JPG,相同的画面',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'BMP 转 JPG 是图像文件管理中最划算的优化操作之一。我们的工具在几秒钟内完成转换,不上传文件,不创建账户,直接在您的浏览器中进行。结果是高质量的 JPG 图像,通用兼容,且体积比原始 BMP 减少达 97%。',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: BmpAJpgLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'zh', faq, howTo }),
178
+ };
@@ -13,9 +13,21 @@ export const bmpAJpg: ConvertersToolEntry<ImageConverterUI> = {
13
13
  fg: 'mdi:file-export',
14
14
  },
15
15
  i18n: {
16
- es: () => import('./i18n/es').then((m) => m.content),
16
+ de: () => import('./i18n/de').then((m) => m.content),
17
17
  en: () => import('./i18n/en').then((m) => m.content),
18
+ es: () => import('./i18n/es').then((m) => m.content),
18
19
  fr: () => import('./i18n/fr').then((m) => m.content),
20
+ id: () => import('./i18n/id').then((m) => m.content),
21
+ it: () => import('./i18n/it').then((m) => m.content),
22
+ ja: () => import('./i18n/ja').then((m) => m.content),
23
+ ko: () => import('./i18n/ko').then((m) => m.content),
24
+ nl: () => import('./i18n/nl').then((m) => m.content),
25
+ pl: () => import('./i18n/pl').then((m) => m.content),
26
+ pt: () => import('./i18n/pt').then((m) => m.content),
27
+ ru: () => import('./i18n/ru').then((m) => m.content),
28
+ sv: () => import('./i18n/sv').then((m) => m.content),
29
+ tr: () => import('./i18n/tr').then((m) => m.content),
30
+ zh: () => import('./i18n/zh').then((m) => m.content),
19
31
  },
20
32
  };
21
33
 
@@ -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 = 'bmp-zu-png-konvertieren';
6
+ const title = 'BMP zu PNG Konverter';
7
+ const description =
8
+ 'Konvertieren Sie BMP-Bilder ohne Qualitätsverlust in PNG. Moderne Kompression ohne Artefakte. Ohne Hochladen von Dateien. Kostenlos und 100 % privat.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'BMP-Dateien hierher ziehen...',
12
+ convertText: 'Um sie sofort in PNG zu konvertieren',
13
+ selectFiles: 'Dateien auswählen',
14
+ processedFiles: 'Verarbeitete Dateien',
15
+ downloadAll: 'Alles herunterladen (.zip)',
16
+ pending: 'Ausstehend',
17
+ bibliographyTitle: 'Literaturhinweise',
18
+ faqTitle: 'Häufig gestellte Fragen',
19
+ };
20
+
21
+ const faq: BmpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Was ist der Hauptunterschied zwischen BMP und PNG?',
24
+ answer:
25
+ 'Sowohl BMP als auch PNG sind verlustfreie Formate. Der Unterschied liegt in der Optimierung: PNG versteht moderne Kompressionsalgorithmen, um dasselbe Bild mit 5- bis 10-mal weniger Speicherplatz als BMP zu speichern.',
26
+ },
27
+ {
28
+ question: 'Ist die Konvertierung wirklich privat?',
29
+ answer:
30
+ 'Ja. Die gesamte Bildverarbeitung erfolgt auf Ihrem Computer. Absolut niemand greift auf Ihre Dateien im lokalen Transfer zu.',
31
+ },
32
+ {
33
+ question: 'Warum PNG statt JPEG in diesem Fall?',
34
+ answer:
35
+ 'Wenn Sie eine BMP-Datei haben, liegt das daran, dass das Bild präzise Farben hat. Die Umwandlung eines BMP in den verlustbehafteten JPG-Standard würde Ihre reinen Farben verschmutzen. PNG schützt diese Originaltreue.',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Fügen Sie Ihr Foto hinzu',
42
+ text: 'Ziehen Sie die BMP-Quelldateien einfach in unseren Bereich für Web-Elemente.',
43
+ },
44
+ {
45
+ name: 'Übersetzung ohne Netzwerkübertragung',
46
+ text: 'Erleben Sie in nur einer Sekunde die saubere, lokal von Ihrem HTML5-JS durchgeführte Verarbeitung.',
47
+ },
48
+ {
49
+ name: 'Erhalten Sie reine PNGs',
50
+ text: 'Laden Sie die PNG-Kopien einzeln oder als komprimiertes Paket herunter.',
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 zu PNG Konverter: Der verlustfreie Ersatz für das BMP-Format',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMP ist ein unkomprimiertes Format, das riesige Mengen an Platz einnimmt, ohne einen technischen Vorteil gegenüber PNG zu bieten. Beide sind verlustfreie Formate: Sie speichern jedes Pixel mit absoluter Genauigkeit. Aber PNG fügt eine verlustfreie Kompression mittels Deflate-Algorithmus hinzu, was die Dateigröße um das 3- bis 5-Fache reduziert, ohne ein einziges Bit an visueller Information zu opfern. PNG ist im Wesentlichen das, was BMP immer sein wollte.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP vs. PNG: gleiche Qualität, radikal unterschiedliche Größe',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Der fundamentale Unterschied zwischen BMP und PNG liegt nicht in der Bildqualität — beide sind verlustfrei —, sondern in der Speichereffizienz. BMP speichert Pixel im Rohzustand: ohne Kompression, ohne Optimierung, ohne Berücksichtigung des Platzbedarfs. PNG analysiert wiederkehrende Pixelmuster und kodiert sie kompakt mittels Deflate, demselben Algorithmus, den auch ZIP verwendet.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Zusätzlich zur überlegenen Kompression fügt PNG eine Eigenschaft hinzu, die BMP nie hatte: einen vollständigen Alphakanal für Transparenzen. Screenshots, Interface-Grafiken, Logos, technische Diagramme: All diese Bildtypen profitieren enorm von der Konvertierung in PNG, die jeden exakten Farbwert beibehält, während sie das Dateigewicht auf einen Bruchteil des Originals reduziert.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Architekturvergleich: Lokal vs. Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Cloud Konverter',
98
+ description: 'Dienste, die Ihre BMP-Dateien auf Servern von Drittanbietern verarbeiten.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Ihre Arbeitsbilder wandern über das Internet',
103
+ 'Wartezeit proportional zur Größe des BMP',
104
+ 'Größenbeschränkungen in kostenlosen Tarifen',
105
+ 'Risiko der Analyse oder Speicherung Ihrer Dateien',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Unsere lokale Architektur',
110
+ description: 'Direkte Verarbeitung auf Ihrer Hardware mittels Vanilla JS-Technologie.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Das BMP wird lokal verarbeitet und verlässt niemals Ihr Gerät',
115
+ 'Sofortige Konvertierung in Millisekunden',
116
+ 'Keine Größenbeschränkungen oder Begrenzung der Dateianzahl',
117
+ 'Vollständige Privatsphäre: 0 Bytes nach außen gesendet',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Wie die lokale Konvertierung von BMP in PNG funktioniert',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Der Prozess nutzt die Canvas API von HTML5. Die BMP-Datei wird mit der <code>FileReader</code>-API des Browsers gelesen und als Blob im Speicher dekodiert. Dieser Blob wird auf einem unsichtbaren HTML5-Canvas gezeichnet. Anschließend wendet die Methode <code>toDataURL(\'image/png\')</code> den nativen PNG-Kompressionsalgorithmus des Browsers an und generiert die Ergebnisdatei.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Im Gegensatz zur Konvertierung in JPG ist die Konvertierung in PNG vollständig verlustfrei: Jeder Farbwert des ursprünglichen BMP bleibt im resultierenden PNG exakt erhalten. Es gibt keine Artefakte, keine Kantenglättung, keinen Informationsverlust. Die endgültige Datei ist visuell identisch mit dem BMP, belegt aber 3- bis 5-mal weniger Platz auf der Festplatte.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Wenn Sie mit alter Software arbeiten, die BMP exportiert (Industrieanlagen, Steuerungssysteme, medizinische Diagnosesoftware), ist die Konvertierung in PNG die beste Entscheidung. PNG ist mit absolut allen modernen Programmen kompatibel, behält die perfekte Farbtreue bei und nimmt bis zu 5-mal weniger Platz ein. Es ist die einfachste und sicherste Migration, die möglich ist.',
138
+ },
139
+ {
140
+ type: 'title',
141
+ text: 'Anwendungsfälle und Kompatibilität des resultierenden PNG',
142
+ level: 3,
143
+ },
144
+ {
145
+ type: 'list',
146
+ icon: 'mdi:check-circle',
147
+ items: [
148
+ 'Screenshots und Interface-Grafiken mit exakt erhaltenen Farben.',
149
+ 'Bilder technischer Dokumentationen und Software-Diagramme.',
150
+ 'Exporte aus CAD, Industriesystemen und Legacy-Software.',
151
+ 'Logos und Elemente der visuellen Identität mit hinzugefügter Transparenz.',
152
+ 'Kompatibel mit Adobe Photoshop, GIMP, Figma und allen modernen Editoren.',
153
+ ],
154
+ },
155
+ {
156
+ type: 'title',
157
+ text: 'Fazit: PNG ist das, was BMP immer hätte sein sollen',
158
+ level: 3,
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'Die Konvertierung von BMP in PNG ist die natürlichste Modernisierung einer Bilddatei: gleiche verlustfreie Qualität, höhere Kompatibilität, Unterstützung von Transparenz und 3- bis 5-mal weniger Gewicht. Unser Tool führt diese Konvertierung in Millisekunden direkt in Ihrem Browser durch, ohne eine Datei auf einen Server hochzuladen.',
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: 'de', faq, howTo }),
177
+ };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { BmpAPngLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'bmp-to-png-converter';
@@ -164,16 +164,6 @@ const seo: BmpAPngLocaleContent['seo'] = [
164
164
  },
165
165
  ];
166
166
 
167
- const appSchema: WithContext<SoftwareApplication> = {
168
- '@context': 'https://schema.org',
169
- '@type': 'SoftwareApplication',
170
- name: title,
171
- description,
172
- applicationCategory: 'UtilitiesApplication',
173
- operatingSystem: 'Web',
174
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
- inLanguage: 'en',
176
- };
177
167
 
178
168
  export const content: BmpAPngLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: BmpAPngLocaleContent = {
184
174
  faq,
185
175
  bibliography,
186
176
  howTo,
187
- schemas: [appSchema as any],
177
+ schemas: generateSchemas({ title, description, inLanguage: 'en', faq, howTo }),
188
178
  };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { BmpAPngLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'convertidor-bmp-a-png';
@@ -164,16 +164,6 @@ const seo: BmpAPngLocaleContent['seo'] = [
164
164
  },
165
165
  ];
166
166
 
167
- const appSchema: WithContext<SoftwareApplication> = {
168
- '@context': 'https://schema.org',
169
- '@type': 'SoftwareApplication',
170
- name: title,
171
- description,
172
- applicationCategory: 'UtilitiesApplication',
173
- operatingSystem: 'Web',
174
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
- inLanguage: 'es',
176
- };
177
167
 
178
168
  export const content: BmpAPngLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: BmpAPngLocaleContent = {
184
174
  faq,
185
175
  bibliography,
186
176
  howTo,
187
- schemas: [appSchema as any],
177
+ schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
188
178
  };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { BmpAPngLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'convertisseur-bmp-en-png';
@@ -164,16 +164,6 @@ const seo: BmpAPngLocaleContent['seo'] = [
164
164
  },
165
165
  ];
166
166
 
167
- const appSchema: WithContext<SoftwareApplication> = {
168
- '@context': 'https://schema.org',
169
- '@type': 'SoftwareApplication',
170
- name: title,
171
- description,
172
- applicationCategory: 'UtilitiesApplication',
173
- operatingSystem: 'Web',
174
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
- inLanguage: 'fr',
176
- };
177
167
 
178
168
  export const content: BmpAPngLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: BmpAPngLocaleContent = {
184
174
  faq,
185
175
  bibliography,
186
176
  howTo,
187
- schemas: [appSchema as any],
177
+ schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
188
178
  };