@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,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 = 'konwerter-bmp-na-png';
6
+ const title = 'Konwerter BMP na PNG';
7
+ const description =
8
+ 'Konwertuj obrazy BMP na PNG bez utraty jakości. Nowoczesna kompresja bez artefaktów. Bez przesyłania plików. Darmowy i w 100% prywatny.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Przeciągnij pliki BMP...',
12
+ convertText: 'Aby błyskawicznie konwertować je na PNG',
13
+ selectFiles: 'Wybierz pliki',
14
+ processedFiles: 'Przetworzone pliki',
15
+ downloadAll: 'Pobierz wszystko (.zip)',
16
+ pending: 'Oczekiwanie',
17
+ bibliographyTitle: 'Bibliografia',
18
+ faqTitle: 'Często zadawane pytania',
19
+ };
20
+
21
+ const faq: BmpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Jaka jest główna różnica między BMP a PNG?',
24
+ answer:
25
+ 'Zarówno BMP, jak i PNG to formaty bezstratne. Różnica polega na optymalizacji: PNG wykorzystuje nowoczesne algorytmy kompresji, aby zapisać ten sam obraz, zajmując 5 lub 10 razy mniej pamięci niż BMP.',
26
+ },
27
+ {
28
+ question: 'Czy konwersja jest naprawdę prywatna?',
29
+ answer:
30
+ 'Tak. Całe przetwarzanie obrazu jest wykonywane przez Twój komputer. Absolutnie nikt nie ma dostępu do Twoich plików podczas lokalnego transferu.',
31
+ },
32
+ {
33
+ question: 'Dlaczego warto wybrać PNG zamiast JPEG w tym przypadku?',
34
+ answer:
35
+ 'Jeśli posiadasz plik BMP, to dlatego, że obraz ma precyzyjne kolory. Przekonwertowanie BMP na stratny standard JPG zniekształciłoby te czyste kolory. PNG chroni tę wierność.',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Wstaw zdjęcie',
42
+ text: 'Przesuń spokojnie pliki źródłowe BMP do naszej strefy upuszczania elementów internetowych.',
43
+ },
44
+ {
45
+ name: 'Konwersja bez transmisji sieciowej',
46
+ text: 'Zobacz w zaledwie sekundę czyste przetwarzanie wykonane lokalnie przez silnik JS Twojej przeglądarki.',
47
+ },
48
+ {
49
+ name: 'Uzyskaj czyste pliki PNG',
50
+ text: 'Pobierz kopie w formacie PNG pojedynczo lub w skompresowanym pakiecie.',
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: 'Konwerter BMP na PNG: Bezstratny zamiennik formatu BMP',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'BMP to format bez kompresji, który zajmuje ogromną ilość miejsca bez żadnych korzyści technicznych w porównaniu do PNG. Oba te formaty są bezstratne: przechowują każdy piksel z absolutną precyzją. PNG dodaje jednak bezstratną kompresję za pomocą algorytmu Deflate, co zmniejsza rozmiar pliku od 3 do 5 razy bez poświęcania ani jednego bitu informacji wizualnej. PNG to w gruncie rzeczy to, czym BMP zawsze chciał być.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP vs PNG: ta sama jakość, radykalnie inna waga',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Podstawowa różnica między BMP a PNG nie polega na jakości obrazu — oba formaty są bezstratne — ale na efektywności przechowywania. BMP przechowuje surowe piksele: bez kompresji, bez optymalizacji, bez zważania na miejsce. PNG analizuje powtarzające się wzorce pikseli i koduje je w sposób kompaktowy za pomocą Deflate, tego samego algorytmu, którego używa ZIP.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Oprócz doskonałej kompresji PNG dodaje cechę, której BMP nigdy nie posiadał: pełny kanał alfa dla przezroczystości. Zrzuty ekranu, grafika interfejsu, logo, diagramy techniczne: wszystkie te typy obrazów zyskują ogromnie na konwersji do PNG, która zachowuje każdą dokładną wartość koloru, redukując jednocześnie wagę pliku do ułamka oryginału.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Porównanie architektury: lokalna kontra chmurowa',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Konwertery w chmurze',
98
+ description: 'Usługi przetwarzające pliki BMP na serwerach zewnętrznych.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Twoje obrazy robocze wędrują przez internet',
103
+ 'Czas oczekiwania proporcjonalny do rozmiaru BMP',
104
+ 'Limity rozmiaru w planach darmowych',
105
+ 'Ryzyko analizy lub zatrzymania Twoich plików',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Nasza lokalna architektura',
110
+ description: 'Przetwarzanie bezpośrednio na Twoim sprzęcie za pomocą technologii Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'BMP jest przetwarzany lokalnie, nigdy nie opuszcza Twojego urządzenia',
115
+ 'Natychmiastowa konwersja w milisekundach',
116
+ 'Brak limitów rozmiaru i liczby plików',
117
+ 'Całkowita prywatność: 0 bajtów wysłanych na zewnątrz',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Jak działa lokalna konwersja z BMP na PNG',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Proces wykorzystuje interfejs API Canvas języka HTML5. Plik BMP jest odczytywany za pomocą interfejsu API <code>FileReader</code> przeglądarki i dekodowany jako obiekt Blob w pamięci. Ten Blob jest rysowany na niewidocznym płótnie HTML5. Następnie metoda <code>toDataURL(\'image/png\')</code> stosuje natywny algorytm kompresji PNG przeglądarki i generuje wynikowy plik.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'W przeciwieństwie do konwersji na JPG, konwersja na PNG jest całkowicie bezstratna: każda wartość koloru oryginalnego BMP jest dokładnie zachowana w wynikowym pliku PNG. Nie ma artefaktów, nie ma wygładzania krawędzi, nie ma utraty informacji. Plik końcowy jest wizualnie identyczny z BMP, ale zajmuje od 3 do 5 razy mniej miejsca na dysku.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Jeśli pracujesz ze starszym oprogramowaniem eksportującym BMP (maszyny przemysłowe, systemy sterowania, oprogramowanie do diagnostyki medycznej), konwersja na PNG jest najlepszą decyzją. PNG jest kompatybilny z absolutnie wszystkimi nowoczesnymi programami, zachowuje idealną wierność kolorów i zajmuje do 5 razy mniej miejsca. To najprostsza i najbezpieczniejsza możliwa migracja.',
138
+ },
139
+ {
140
+ type: 'title',
141
+ text: 'Przypadki użycia i kompatybilność wynikowego pliku PNG',
142
+ level: 3,
143
+ },
144
+ {
145
+ type: 'list',
146
+ icon: 'mdi:check-circle',
147
+ items: [
148
+ 'Zrzuty ekranu i grafiki interfejsu z zachowaniem dokładnych kolorów.',
149
+ 'Obrazy dokumentacji technicznej i diagramy oprogramowania.',
150
+ 'Eksporty z programów CAD, systemów przemysłowych i starszego oprogramowania.',
151
+ 'Logo i elementy identyfikacji wizualnej z dodaną przezroczystością.',
152
+ 'Kompatybilność z programami Adobe Photoshop, GIMP, Figma i wszystkimi nowoczesnymi edytorami.',
153
+ ],
154
+ },
155
+ {
156
+ type: 'title',
157
+ text: 'Podsumowanie: PNG jest tym, czym BMP zawsze powinien był być',
158
+ level: 3,
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'Konwersja z BMP na PNG to najbardziej naturalna modernizacja pliku graficznego: ta sama bezstratna jakość, większa kompatybilność, obsługa przezroczystości i od 3 do 5 razy mniejsza waga. Nasze narzędzie wykonuje tę konwersję w milisekundach, bezpośrednio w przeglądarce, bez przesyłania plików na serwer.',
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: 'pl', 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 = 'conversor-bmp-para-png';
6
+ const title = 'Conversor de BMP para PNG';
7
+ const description =
8
+ 'Converta imagens BMP para PNG sem perda de qualidade. Compressão moderna sem artefactos. Sem carregar ficheiros. Grátis e 100% privado.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Arraste os ficheiros BMP...',
12
+ convertText: 'Para convertê-los para PNG instantaneamente',
13
+ selectFiles: 'Selecionar ficheiros',
14
+ processedFiles: 'Ficheiros processados',
15
+ downloadAll: 'Descarregar Tudo (.zip)',
16
+ pending: 'Pendente',
17
+ bibliographyTitle: 'Referências Bibliográficas',
18
+ faqTitle: 'Perguntas Frequentes',
19
+ };
20
+
21
+ const faq: BmpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Qual é a principal diferença entre BMP e PNG?',
24
+ answer:
25
+ 'Tanto o BMP como o PNG são formatos sem perdas. A diferença reside na otimização: o PNG compreende algoritmos de compressão modernos para guardar a mesma imagem ocupando 5 ou 10 vezes menos memória do que o BMP.',
26
+ },
27
+ {
28
+ question: 'A conversão é realmente privada?',
29
+ answer:
30
+ 'Sim. Todo o processamento fotográfico é feito pelo seu computador. Absolutamente ninguém acede aos seus ficheiros em trânsito local.',
31
+ },
32
+ {
33
+ question: 'Porquê PNG em vez de JPEG neste caso?',
34
+ answer:
35
+ 'Se tem um ficheiro BMP, é porque a imagem tem cores precisas. Passar um BMP para o padrão destrutivo JPG degradaria as suas cores puras. O PNG protege essa fidelidade.',
36
+ },
37
+ ];
38
+
39
+ const howTo: BmpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Coloque a sua Fotografia',
42
+ text: 'Mova tranquilamente os ficheiros de origem BMP para a nossa zona de processamento de elementos web.',
43
+ },
44
+ {
45
+ name: 'Conversão sem Transmissão de Rede',
46
+ text: 'Sinta em apenas um segundo o processamento limpo feito localmente pelo seu JS de HTML5.',
47
+ },
48
+ {
49
+ name: 'Obtenha PNGs Puros',
50
+ text: 'Descarregue as réplicas em PNG individualmente ou através de um pacote comprimido.',
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: 'Conversor de BMP para PNG: A Substituição Sem Perdas do Formato BMP',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'O BMP é um formato sem compressão que ocupa enormes quantidades de espaço sem qualquer benefício técnico em comparação com o PNG. Ambos são formatos sem perdas: guardam cada píxel com exatidão absoluta. Mas o PNG adiciona compressão lossless através do algoritmo Deflate, o que reduz o tamanho do ficheiro entre 3 e 5 vezes sem sacrificar um único bit de informação visual. O PNG é, em essência, o que o BMP sempre quis ser.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP vs PNG: mesma qualidade, tamanho radicalmente diferente',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'A diferença fundamental entre BMP e PNG não está na qualidade da imagem — ambos são sem perdas — mas na eficiência de armazenamento. O BMP armazena píxeis em bruto: sem compressão, sem otimização, sem consideração pelo espaço. O PNG analisa os padrões de píxeis repetidos e codifica-os de forma compacta através de Deflate, o mesmo algoritmo que o ZIP utiliza.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Além da compressão superior, o PNG adiciona uma característica que o BMP nunca teve: canal alfa completo para transparências. Capturas de ecrã, gráficos de interface, logótipos, diagramas técnicos: todos estes tipos de imagens beneficiam enormemente da conversão para PNG, que mantém cada valor de cor exato enquanto reduz o peso do ficheiro a uma fração do original.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Comparativo de Arquitetura: Local vs Nuvem',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Conversores Cloud',
98
+ description: 'Serviços que processam os seus ficheiros BMP em servidores de terceiros.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'As suas imagens de trabalho viajam pela internet',
103
+ 'Tempo de espera proporcional ao tamanho do BMP',
104
+ 'Limites de tamanho em planos gratuitos',
105
+ 'Risco de análise ou retenção dos seus ficheiros',
106
+ ],
107
+ },
108
+ {
109
+ title: 'A Nossa Arquitetura Local',
110
+ description: 'Processamento direto no seu hardware através de tecnologia Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'O BMP é processado localmente, nunca sai do seu dispositivo',
115
+ 'Conversão instantânea em milissegundos',
116
+ 'Sem limites de tamanho nem de número de ficheiros',
117
+ 'Privacidade total: 0 bytes enviados para o exterior',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Como funciona a conversão local de BMP para PNG',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'O processo utiliza a API Canvas do HTML5. O ficheiro BMP é lido com a API <code>FileReader</code> do navegador e é descodificado como um Blob em memória. Esse Blob é desenhado sobre um canvas HTML5 invisível. A seguir, o método <code>toDataURL(\'image/png\')</code> aplica o algoritmo de compressão PNG nativo do navegador e gera o ficheiro resultante.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Ao contrário da conversão para JPG, a conversão para PNG é completamente lossless: cada valor de cor do BMP original é preservado exatamente no PNG resultante. Não existem artefactos, não existe suavização de bordos, não existe perda de informação. O ficheiro final é visualmente idêntico ao BMP mas ocupa entre 3 e 5 vezes menos espaço em disco.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Se trabalha com software antigo que exporta BMP (maquinaria industrial, sistemas de controlo, software de diagnóstico médico), converter para PNG é a melhor decisão. O PNG é compatível com absolutamente todos os programas modernos, mantém a fidelidade de cor perfeita e ocupa até 5 vezes menos espaço. É a migração mais simples e segura possível.',
138
+ },
139
+ {
140
+ type: 'title',
141
+ text: 'Casos de uso e compatibilidade do PNG resultante',
142
+ level: 3,
143
+ },
144
+ {
145
+ type: 'list',
146
+ icon: 'mdi:check-circle',
147
+ items: [
148
+ 'Capturas de ecrã e gráficos de interface com cores exatas preservadas.',
149
+ 'Imagens de documentação técnica e diagramas de software.',
150
+ 'Exportações de CAD, sistemas industriais e software legacy.',
151
+ 'Logótipos e elementos de identidade visual com transparência adicionada.',
152
+ 'Compatível com Adobe Photoshop, GIMP, Figma e todos os editores modernos.',
153
+ ],
154
+ },
155
+ {
156
+ type: 'title',
157
+ text: 'Conclusão: o PNG é o que o BMP sempre deveria ter sido',
158
+ level: 3,
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'Converter BMP para PNG é a modernização mais natural de um ficheiro de imagem: mesma qualidade sem perdas, maior compatibilidade, suporte de transparência e entre 3 e 5 vezes menos peso. A nossa ferramenta realiza esta conversão em milissegundos, diretamente no seu navegador, sem carregar qualquer ficheiro para nenhum servidor.',
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: 'pt', 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 = 'konverter-bmp-v-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 поддерживает современные алгоритмы сжатия, позволяя сохранять то же изображение, занимая в 5–10 раз меньше памяти, чем BMP.',
26
+ },
27
+ {
28
+ question: 'Действительно ли конвертация конфиденциальна?',
29
+ answer:
30
+ 'Да. Вся обработка фотографий выполняется вашим компьютером. Абсолютно никто не имеет доступа к вашим файлам во время локальной передачи.',
31
+ },
32
+ {
33
+ question: 'Почему в данном случае стоит выбрать PNG вместо JPEG?',
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 JS всего за секунду.',
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, что уменьшает размер файла в 3–5 раз без ущерба для визуальной информации. PNG — это, по сути, то, чем всегда должен был быть BMP.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'BMP против PNG: одинаковое качество, принципиально разный размер',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Фундаментальная разница между BMP и PNG заключается не в качестве изображения (оба формата беспотерьные), а в эффективности хранения. BMP хранит пиксели в необработанном виде: без сжатия, без оптимизации, без учета занимаемого пространства. PNG анализирует повторяющиеся шаблоны пикселей и компактно кодирует их с помощью Deflate — того же алгоритма, который используется в ZIP.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Помимо превосходного сжатия, PNG добавляет функцию, которой никогда не было у BMP: полноценный альфа-канал для прозрачности. Скриншоты, интерфейсная графика, логотипы, технические диаграммы — все эти типы изображений значительно выигрывают от конвертации в PNG, который сохраняет точные значения цветов, уменьшая при этом вес файла до доли от оригинала.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Сравнение архитектур: Локальная против Облачной',
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: 'Процесс использует Canvas API стандарта HTML5. Файл 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–5 раз меньше места на диске.',
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–5 раз меньший вес. Наш инструмент выполняет эту конвертацию за миллисекунды прямо в вашем браузере, не загружая файлы на сервер.',
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: 'ru', faq, howTo }),
177
+ };