@jjlmoya/utils-converters 1.15.0 → 1.18.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 (397) hide show
  1. package/package.json +8 -4
  2. package/scripts/clean_titles.py +95 -0
  3. package/scripts/postinstall.mjs +27 -0
  4. package/src/category/i18n/de.ts +1 -1
  5. package/src/category/i18n/fr.ts +9 -9
  6. package/src/category/i18n/ru.ts +1 -1
  7. package/src/category/i18n/sv.ts +1 -1
  8. package/src/data.ts +0 -21
  9. package/src/layouts/PreviewLayout.astro +2 -1
  10. package/src/pages/[locale]/[slug].astro +28 -12
  11. package/src/tests/diacritics_density.test.ts +118 -0
  12. package/src/tests/inverted_punctuation.test.ts +84 -0
  13. package/src/tests/no_en_dash.test.ts +70 -0
  14. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  15. package/src/tests/script_density.test.ts +94 -0
  16. package/src/tests/shared-test-helpers.ts +56 -0
  17. package/src/tests/tool_exports.test.ts +34 -0
  18. package/src/tool/avifAJpg/bibliography.ts +12 -0
  19. package/src/tool/avifAJpg/entry.ts +2 -0
  20. package/src/tool/avifAJpg/i18n/de.ts +2 -12
  21. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  22. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  23. package/src/tool/avifAJpg/i18n/fr.ts +11 -21
  24. package/src/tool/avifAJpg/i18n/id.ts +2 -12
  25. package/src/tool/avifAJpg/i18n/it.ts +2 -12
  26. package/src/tool/avifAJpg/i18n/ja.ts +1 -11
  27. package/src/tool/avifAJpg/i18n/ko.ts +1 -11
  28. package/src/tool/avifAJpg/i18n/nl.ts +2 -12
  29. package/src/tool/avifAJpg/i18n/pl.ts +2 -12
  30. package/src/tool/avifAJpg/i18n/pt.ts +2 -12
  31. package/src/tool/avifAJpg/i18n/ru.ts +7 -17
  32. package/src/tool/avifAJpg/i18n/sv.ts +2 -12
  33. package/src/tool/avifAJpg/i18n/tr.ts +1 -11
  34. package/src/tool/avifAJpg/i18n/zh.ts +4 -14
  35. package/src/tool/avifAJpg/seo.astro +2 -1
  36. package/src/tool/avifAPng/bibliography.ts +12 -0
  37. package/src/tool/avifAPng/entry.ts +2 -0
  38. package/src/tool/avifAPng/i18n/de.ts +4 -14
  39. package/src/tool/avifAPng/i18n/en.ts +4 -14
  40. package/src/tool/avifAPng/i18n/es.ts +4 -14
  41. package/src/tool/avifAPng/i18n/fr.ts +10 -20
  42. package/src/tool/avifAPng/i18n/id.ts +4 -14
  43. package/src/tool/avifAPng/i18n/it.ts +1 -11
  44. package/src/tool/avifAPng/i18n/ja.ts +1 -11
  45. package/src/tool/avifAPng/i18n/ko.ts +1 -11
  46. package/src/tool/avifAPng/i18n/nl.ts +4 -14
  47. package/src/tool/avifAPng/i18n/pl.ts +4 -14
  48. package/src/tool/avifAPng/i18n/pt.ts +4 -14
  49. package/src/tool/avifAPng/i18n/ru.ts +5 -15
  50. package/src/tool/avifAPng/i18n/sv.ts +4 -14
  51. package/src/tool/avifAPng/i18n/tr.ts +1 -11
  52. package/src/tool/avifAPng/i18n/zh.ts +3 -13
  53. package/src/tool/avifAPng/seo.astro +2 -1
  54. package/src/tool/avifAWebp/bibliography.ts +12 -0
  55. package/src/tool/avifAWebp/entry.ts +2 -0
  56. package/src/tool/avifAWebp/i18n/de.ts +6 -16
  57. package/src/tool/avifAWebp/i18n/en.ts +6 -16
  58. package/src/tool/avifAWebp/i18n/es.ts +6 -16
  59. package/src/tool/avifAWebp/i18n/fr.ts +13 -23
  60. package/src/tool/avifAWebp/i18n/id.ts +6 -16
  61. package/src/tool/avifAWebp/i18n/it.ts +1 -11
  62. package/src/tool/avifAWebp/i18n/ja.ts +1 -11
  63. package/src/tool/avifAWebp/i18n/ko.ts +2 -12
  64. package/src/tool/avifAWebp/i18n/nl.ts +6 -16
  65. package/src/tool/avifAWebp/i18n/pl.ts +6 -16
  66. package/src/tool/avifAWebp/i18n/pt.ts +6 -16
  67. package/src/tool/avifAWebp/i18n/ru.ts +7 -17
  68. package/src/tool/avifAWebp/i18n/sv.ts +6 -16
  69. package/src/tool/avifAWebp/i18n/tr.ts +2 -12
  70. package/src/tool/avifAWebp/i18n/zh.ts +6 -16
  71. package/src/tool/avifAWebp/seo.astro +2 -1
  72. package/src/tool/bmpAJpg/bibliography.ts +12 -0
  73. package/src/tool/bmpAJpg/entry.ts +2 -0
  74. package/src/tool/bmpAJpg/i18n/de.ts +1 -11
  75. package/src/tool/bmpAJpg/i18n/en.ts +1 -11
  76. package/src/tool/bmpAJpg/i18n/es.ts +1 -11
  77. package/src/tool/bmpAJpg/i18n/fr.ts +9 -19
  78. package/src/tool/bmpAJpg/i18n/id.ts +1 -11
  79. package/src/tool/bmpAJpg/i18n/it.ts +1 -11
  80. package/src/tool/bmpAJpg/i18n/ja.ts +1 -11
  81. package/src/tool/bmpAJpg/i18n/ko.ts +1 -11
  82. package/src/tool/bmpAJpg/i18n/nl.ts +1 -11
  83. package/src/tool/bmpAJpg/i18n/pl.ts +1 -11
  84. package/src/tool/bmpAJpg/i18n/pt.ts +1 -11
  85. package/src/tool/bmpAJpg/i18n/ru.ts +5 -15
  86. package/src/tool/bmpAJpg/i18n/sv.ts +1 -11
  87. package/src/tool/bmpAJpg/i18n/tr.ts +1 -11
  88. package/src/tool/bmpAJpg/i18n/zh.ts +1 -11
  89. package/src/tool/bmpAJpg/seo.astro +2 -1
  90. package/src/tool/bmpAPng/bibliography.ts +12 -0
  91. package/src/tool/bmpAPng/entry.ts +2 -0
  92. package/src/tool/bmpAPng/i18n/de.ts +2 -12
  93. package/src/tool/bmpAPng/i18n/en.ts +3 -13
  94. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  95. package/src/tool/bmpAPng/i18n/fr.ts +12 -22
  96. package/src/tool/bmpAPng/i18n/id.ts +2 -12
  97. package/src/tool/bmpAPng/i18n/it.ts +2 -12
  98. package/src/tool/bmpAPng/i18n/ja.ts +1 -11
  99. package/src/tool/bmpAPng/i18n/ko.ts +1 -11
  100. package/src/tool/bmpAPng/i18n/nl.ts +2 -12
  101. package/src/tool/bmpAPng/i18n/pl.ts +2 -12
  102. package/src/tool/bmpAPng/i18n/pt.ts +2 -12
  103. package/src/tool/bmpAPng/i18n/ru.ts +9 -19
  104. package/src/tool/bmpAPng/i18n/sv.ts +2 -12
  105. package/src/tool/bmpAPng/i18n/tr.ts +1 -11
  106. package/src/tool/bmpAPng/i18n/zh.ts +1 -11
  107. package/src/tool/bmpAPng/seo.astro +2 -1
  108. package/src/tool/bmpAWebp/bibliography.ts +12 -0
  109. package/src/tool/bmpAWebp/entry.ts +2 -0
  110. package/src/tool/bmpAWebp/i18n/de.ts +8 -18
  111. package/src/tool/bmpAWebp/i18n/en.ts +8 -18
  112. package/src/tool/bmpAWebp/i18n/es.ts +8 -18
  113. package/src/tool/bmpAWebp/i18n/fr.ts +13 -23
  114. package/src/tool/bmpAWebp/i18n/id.ts +8 -18
  115. package/src/tool/bmpAWebp/i18n/it.ts +8 -18
  116. package/src/tool/bmpAWebp/i18n/ja.ts +7 -17
  117. package/src/tool/bmpAWebp/i18n/ko.ts +7 -17
  118. package/src/tool/bmpAWebp/i18n/nl.ts +8 -18
  119. package/src/tool/bmpAWebp/i18n/pl.ts +8 -18
  120. package/src/tool/bmpAWebp/i18n/pt.ts +8 -18
  121. package/src/tool/bmpAWebp/i18n/ru.ts +10 -20
  122. package/src/tool/bmpAWebp/i18n/sv.ts +8 -18
  123. package/src/tool/bmpAWebp/i18n/tr.ts +8 -18
  124. package/src/tool/bmpAWebp/i18n/zh.ts +8 -18
  125. package/src/tool/bmpAWebp/seo.astro +2 -1
  126. package/src/tool/gifAJpg/bibliography.ts +12 -0
  127. package/src/tool/gifAJpg/entry.ts +2 -0
  128. package/src/tool/gifAJpg/i18n/de.ts +1 -11
  129. package/src/tool/gifAJpg/i18n/en.ts +1 -11
  130. package/src/tool/gifAJpg/i18n/es.ts +1 -11
  131. package/src/tool/gifAJpg/i18n/fr.ts +9 -19
  132. package/src/tool/gifAJpg/i18n/id.ts +1 -11
  133. package/src/tool/gifAJpg/i18n/it.ts +1 -11
  134. package/src/tool/gifAJpg/i18n/ja.ts +1 -11
  135. package/src/tool/gifAJpg/i18n/ko.ts +1 -11
  136. package/src/tool/gifAJpg/i18n/nl.ts +1 -11
  137. package/src/tool/gifAJpg/i18n/pl.ts +1 -11
  138. package/src/tool/gifAJpg/i18n/pt.ts +1 -11
  139. package/src/tool/gifAJpg/i18n/ru.ts +2 -12
  140. package/src/tool/gifAJpg/i18n/sv.ts +1 -11
  141. package/src/tool/gifAJpg/i18n/tr.ts +1 -11
  142. package/src/tool/gifAJpg/i18n/zh.ts +1 -11
  143. package/src/tool/gifAJpg/seo.astro +2 -1
  144. package/src/tool/gifAPng/bibliography.ts +12 -0
  145. package/src/tool/gifAPng/entry.ts +2 -0
  146. package/src/tool/gifAPng/i18n/de.ts +2 -12
  147. package/src/tool/gifAPng/i18n/en.ts +3 -13
  148. package/src/tool/gifAPng/i18n/es.ts +2 -12
  149. package/src/tool/gifAPng/i18n/fr.ts +11 -21
  150. package/src/tool/gifAPng/i18n/id.ts +2 -12
  151. package/src/tool/gifAPng/i18n/it.ts +2 -12
  152. package/src/tool/gifAPng/i18n/ja.ts +1 -11
  153. package/src/tool/gifAPng/i18n/ko.ts +1 -11
  154. package/src/tool/gifAPng/i18n/nl.ts +2 -12
  155. package/src/tool/gifAPng/i18n/pl.ts +3 -13
  156. package/src/tool/gifAPng/i18n/pt.ts +2 -12
  157. package/src/tool/gifAPng/i18n/ru.ts +3 -13
  158. package/src/tool/gifAPng/i18n/sv.ts +3 -13
  159. package/src/tool/gifAPng/i18n/tr.ts +1 -11
  160. package/src/tool/gifAPng/i18n/zh.ts +2 -12
  161. package/src/tool/gifAPng/seo.astro +2 -1
  162. package/src/tool/gifAWebp/bibliography.ts +12 -0
  163. package/src/tool/gifAWebp/entry.ts +2 -0
  164. package/src/tool/gifAWebp/i18n/de.ts +3 -13
  165. package/src/tool/gifAWebp/i18n/en.ts +3 -13
  166. package/src/tool/gifAWebp/i18n/es.ts +1 -11
  167. package/src/tool/gifAWebp/i18n/fr.ts +11 -21
  168. package/src/tool/gifAWebp/i18n/id.ts +3 -13
  169. package/src/tool/gifAWebp/i18n/it.ts +1 -11
  170. package/src/tool/gifAWebp/i18n/ja.ts +1 -11
  171. package/src/tool/gifAWebp/i18n/ko.ts +1 -11
  172. package/src/tool/gifAWebp/i18n/nl.ts +3 -13
  173. package/src/tool/gifAWebp/i18n/pl.ts +3 -13
  174. package/src/tool/gifAWebp/i18n/pt.ts +3 -13
  175. package/src/tool/gifAWebp/i18n/ru.ts +7 -17
  176. package/src/tool/gifAWebp/i18n/sv.ts +3 -13
  177. package/src/tool/gifAWebp/i18n/tr.ts +1 -11
  178. package/src/tool/gifAWebp/i18n/zh.ts +4 -14
  179. package/src/tool/gifAWebp/seo.astro +2 -1
  180. package/src/tool/imagenBase64/bibliography.ts +12 -0
  181. package/src/tool/imagenBase64/component.astro +0 -301
  182. package/src/tool/imagenBase64/entry.ts +2 -0
  183. package/src/tool/imagenBase64/i18n/de.ts +7 -17
  184. package/src/tool/imagenBase64/i18n/en.ts +7 -17
  185. package/src/tool/imagenBase64/i18n/es.ts +7 -17
  186. package/src/tool/imagenBase64/i18n/fr.ts +17 -27
  187. package/src/tool/imagenBase64/i18n/id.ts +7 -17
  188. package/src/tool/imagenBase64/i18n/it.ts +6 -16
  189. package/src/tool/imagenBase64/i18n/ja.ts +1 -11
  190. package/src/tool/imagenBase64/i18n/ko.ts +1 -11
  191. package/src/tool/imagenBase64/i18n/nl.ts +7 -17
  192. package/src/tool/imagenBase64/i18n/pl.ts +7 -17
  193. package/src/tool/imagenBase64/i18n/pt.ts +7 -17
  194. package/src/tool/imagenBase64/i18n/ru.ts +9 -19
  195. package/src/tool/imagenBase64/i18n/sv.ts +7 -17
  196. package/src/tool/imagenBase64/i18n/tr.ts +2 -12
  197. package/src/tool/imagenBase64/i18n/zh.ts +7 -17
  198. package/src/tool/imagenBase64/image-to-base64-converter.css +299 -0
  199. package/src/tool/imagenBase64/seo.astro +2 -1
  200. package/src/tool/jpgAIco/bibliography.ts +12 -0
  201. package/src/tool/jpgAIco/entry.ts +2 -0
  202. package/src/tool/jpgAIco/i18n/de.ts +9 -19
  203. package/src/tool/jpgAIco/i18n/en.ts +9 -19
  204. package/src/tool/jpgAIco/i18n/es.ts +7 -17
  205. package/src/tool/jpgAIco/i18n/fr.ts +13 -23
  206. package/src/tool/jpgAIco/i18n/id.ts +9 -19
  207. package/src/tool/jpgAIco/i18n/it.ts +3 -13
  208. package/src/tool/jpgAIco/i18n/ja.ts +2 -12
  209. package/src/tool/jpgAIco/i18n/ko.ts +2 -12
  210. package/src/tool/jpgAIco/i18n/nl.ts +9 -19
  211. package/src/tool/jpgAIco/i18n/pl.ts +9 -19
  212. package/src/tool/jpgAIco/i18n/pt.ts +9 -19
  213. package/src/tool/jpgAIco/i18n/ru.ts +11 -21
  214. package/src/tool/jpgAIco/i18n/sv.ts +9 -19
  215. package/src/tool/jpgAIco/i18n/tr.ts +3 -13
  216. package/src/tool/jpgAIco/i18n/zh.ts +9 -19
  217. package/src/tool/jpgAIco/seo.astro +2 -1
  218. package/src/tool/jpgAPng/bibliography.ts +12 -0
  219. package/src/tool/jpgAPng/entry.ts +2 -0
  220. package/src/tool/jpgAPng/i18n/de.ts +7 -17
  221. package/src/tool/jpgAPng/i18n/en.ts +9 -19
  222. package/src/tool/jpgAPng/i18n/es.ts +7 -17
  223. package/src/tool/jpgAPng/i18n/fr.ts +13 -23
  224. package/src/tool/jpgAPng/i18n/id.ts +7 -17
  225. package/src/tool/jpgAPng/i18n/it.ts +5 -15
  226. package/src/tool/jpgAPng/i18n/ja.ts +3 -13
  227. package/src/tool/jpgAPng/i18n/ko.ts +3 -13
  228. package/src/tool/jpgAPng/i18n/nl.ts +7 -17
  229. package/src/tool/jpgAPng/i18n/pl.ts +7 -17
  230. package/src/tool/jpgAPng/i18n/pt.ts +7 -17
  231. package/src/tool/jpgAPng/i18n/ru.ts +10 -20
  232. package/src/tool/jpgAPng/i18n/sv.ts +7 -17
  233. package/src/tool/jpgAPng/i18n/tr.ts +6 -16
  234. package/src/tool/jpgAPng/i18n/zh.ts +8 -18
  235. package/src/tool/jpgAPng/seo.astro +2 -1
  236. package/src/tool/jpgAWebp/bibliography.ts +12 -0
  237. package/src/tool/jpgAWebp/entry.ts +2 -0
  238. package/src/tool/jpgAWebp/i18n/de.ts +10 -20
  239. package/src/tool/jpgAWebp/i18n/en.ts +10 -20
  240. package/src/tool/jpgAWebp/i18n/es.ts +4 -14
  241. package/src/tool/jpgAWebp/i18n/fr.ts +16 -26
  242. package/src/tool/jpgAWebp/i18n/id.ts +10 -20
  243. package/src/tool/jpgAWebp/i18n/it.ts +6 -16
  244. package/src/tool/jpgAWebp/i18n/ja.ts +2 -12
  245. package/src/tool/jpgAWebp/i18n/ko.ts +3 -13
  246. package/src/tool/jpgAWebp/i18n/nl.ts +10 -20
  247. package/src/tool/jpgAWebp/i18n/pl.ts +10 -20
  248. package/src/tool/jpgAWebp/i18n/pt.ts +10 -20
  249. package/src/tool/jpgAWebp/i18n/ru.ts +10 -20
  250. package/src/tool/jpgAWebp/i18n/sv.ts +10 -20
  251. package/src/tool/jpgAWebp/i18n/tr.ts +5 -15
  252. package/src/tool/jpgAWebp/i18n/zh.ts +9 -19
  253. package/src/tool/jpgAWebp/seo.astro +2 -1
  254. package/src/tool/pngAIco/bibliography.ts +12 -0
  255. package/src/tool/pngAIco/entry.ts +2 -0
  256. package/src/tool/pngAIco/i18n/de.ts +8 -18
  257. package/src/tool/pngAIco/i18n/en.ts +8 -18
  258. package/src/tool/pngAIco/i18n/es.ts +8 -18
  259. package/src/tool/pngAIco/i18n/fr.ts +14 -24
  260. package/src/tool/pngAIco/i18n/id.ts +8 -18
  261. package/src/tool/pngAIco/i18n/it.ts +4 -14
  262. package/src/tool/pngAIco/i18n/ja.ts +2 -12
  263. package/src/tool/pngAIco/i18n/ko.ts +2 -12
  264. package/src/tool/pngAIco/i18n/nl.ts +8 -18
  265. package/src/tool/pngAIco/i18n/pl.ts +8 -18
  266. package/src/tool/pngAIco/i18n/pt.ts +8 -18
  267. package/src/tool/pngAIco/i18n/ru.ts +11 -21
  268. package/src/tool/pngAIco/i18n/sv.ts +8 -18
  269. package/src/tool/pngAIco/i18n/tr.ts +7 -17
  270. package/src/tool/pngAIco/i18n/zh.ts +8 -18
  271. package/src/tool/pngAIco/seo.astro +2 -1
  272. package/src/tool/pngAJpg/bibliography.ts +12 -0
  273. package/src/tool/pngAJpg/entry.ts +2 -0
  274. package/src/tool/pngAJpg/i18n/de.ts +1 -11
  275. package/src/tool/pngAJpg/i18n/en.ts +1 -11
  276. package/src/tool/pngAJpg/i18n/es.ts +1 -11
  277. package/src/tool/pngAJpg/i18n/fr.ts +3 -13
  278. package/src/tool/pngAJpg/i18n/id.ts +1 -11
  279. package/src/tool/pngAJpg/i18n/it.ts +1 -11
  280. package/src/tool/pngAJpg/i18n/ja.ts +1 -11
  281. package/src/tool/pngAJpg/i18n/ko.ts +1 -11
  282. package/src/tool/pngAJpg/i18n/nl.ts +1 -11
  283. package/src/tool/pngAJpg/i18n/pl.ts +7 -17
  284. package/src/tool/pngAJpg/i18n/pt.ts +1 -11
  285. package/src/tool/pngAJpg/i18n/ru.ts +9 -19
  286. package/src/tool/pngAJpg/i18n/sv.ts +1 -11
  287. package/src/tool/pngAJpg/i18n/tr.ts +1 -11
  288. package/src/tool/pngAJpg/i18n/zh.ts +6 -16
  289. package/src/tool/pngAJpg/seo.astro +2 -1
  290. package/src/tool/pngAWebp/bibliography.ts +16 -0
  291. package/src/tool/pngAWebp/entry.ts +2 -0
  292. package/src/tool/pngAWebp/i18n/de.ts +7 -21
  293. package/src/tool/pngAWebp/i18n/en.ts +7 -21
  294. package/src/tool/pngAWebp/i18n/es.ts +6 -20
  295. package/src/tool/pngAWebp/i18n/fr.ts +13 -27
  296. package/src/tool/pngAWebp/i18n/id.ts +7 -21
  297. package/src/tool/pngAWebp/i18n/it.ts +3 -17
  298. package/src/tool/pngAWebp/i18n/ja.ts +2 -16
  299. package/src/tool/pngAWebp/i18n/ko.ts +2 -16
  300. package/src/tool/pngAWebp/i18n/nl.ts +7 -21
  301. package/src/tool/pngAWebp/i18n/pl.ts +7 -21
  302. package/src/tool/pngAWebp/i18n/pt.ts +6 -20
  303. package/src/tool/pngAWebp/i18n/ru.ts +8 -22
  304. package/src/tool/pngAWebp/i18n/sv.ts +7 -21
  305. package/src/tool/pngAWebp/i18n/tr.ts +6 -20
  306. package/src/tool/pngAWebp/i18n/zh.ts +6 -20
  307. package/src/tool/pngAWebp/seo.astro +2 -1
  308. package/src/tool/svgAJpg/bibliography.ts +12 -0
  309. package/src/tool/svgAJpg/entry.ts +2 -0
  310. package/src/tool/svgAJpg/i18n/de.ts +2 -12
  311. package/src/tool/svgAJpg/i18n/en.ts +1 -11
  312. package/src/tool/svgAJpg/i18n/es.ts +1 -11
  313. package/src/tool/svgAJpg/i18n/fr.ts +6 -16
  314. package/src/tool/svgAJpg/i18n/id.ts +1 -11
  315. package/src/tool/svgAJpg/i18n/it.ts +1 -11
  316. package/src/tool/svgAJpg/i18n/ja.ts +1 -11
  317. package/src/tool/svgAJpg/i18n/ko.ts +1 -11
  318. package/src/tool/svgAJpg/i18n/nl.ts +1 -11
  319. package/src/tool/svgAJpg/i18n/pl.ts +1 -11
  320. package/src/tool/svgAJpg/i18n/pt.ts +1 -11
  321. package/src/tool/svgAJpg/i18n/ru.ts +3 -13
  322. package/src/tool/svgAJpg/i18n/sv.ts +1 -11
  323. package/src/tool/svgAJpg/i18n/tr.ts +1 -11
  324. package/src/tool/svgAJpg/i18n/zh.ts +1 -11
  325. package/src/tool/svgAJpg/seo.astro +2 -1
  326. package/src/tool/svgAPng/bibliography.ts +12 -0
  327. package/src/tool/svgAPng/entry.ts +2 -0
  328. package/src/tool/svgAPng/i18n/de.ts +3 -13
  329. package/src/tool/svgAPng/i18n/en.ts +3 -13
  330. package/src/tool/svgAPng/i18n/es.ts +1 -11
  331. package/src/tool/svgAPng/i18n/fr.ts +9 -19
  332. package/src/tool/svgAPng/i18n/id.ts +3 -13
  333. package/src/tool/svgAPng/i18n/it.ts +3 -13
  334. package/src/tool/svgAPng/i18n/ja.ts +1 -11
  335. package/src/tool/svgAPng/i18n/ko.ts +1 -11
  336. package/src/tool/svgAPng/i18n/nl.ts +3 -13
  337. package/src/tool/svgAPng/i18n/pl.ts +3 -13
  338. package/src/tool/svgAPng/i18n/pt.ts +3 -13
  339. package/src/tool/svgAPng/i18n/ru.ts +5 -15
  340. package/src/tool/svgAPng/i18n/sv.ts +3 -13
  341. package/src/tool/svgAPng/i18n/tr.ts +3 -13
  342. package/src/tool/svgAPng/i18n/zh.ts +3 -13
  343. package/src/tool/svgAPng/seo.astro +2 -1
  344. package/src/tool/webpAIco/bibliography.ts +12 -0
  345. package/src/tool/webpAIco/entry.ts +2 -0
  346. package/src/tool/webpAIco/i18n/de.ts +1 -11
  347. package/src/tool/webpAIco/i18n/en.ts +1 -11
  348. package/src/tool/webpAIco/i18n/es.ts +1 -11
  349. package/src/tool/webpAIco/i18n/fr.ts +5 -15
  350. package/src/tool/webpAIco/i18n/id.ts +1 -11
  351. package/src/tool/webpAIco/i18n/it.ts +1 -11
  352. package/src/tool/webpAIco/i18n/ja.ts +1 -11
  353. package/src/tool/webpAIco/i18n/ko.ts +1 -11
  354. package/src/tool/webpAIco/i18n/nl.ts +1 -11
  355. package/src/tool/webpAIco/i18n/pl.ts +1 -11
  356. package/src/tool/webpAIco/i18n/pt.ts +1 -11
  357. package/src/tool/webpAIco/i18n/ru.ts +3 -13
  358. package/src/tool/webpAIco/i18n/sv.ts +1 -11
  359. package/src/tool/webpAIco/i18n/tr.ts +1 -11
  360. package/src/tool/webpAIco/i18n/zh.ts +1 -12
  361. package/src/tool/webpAIco/seo.astro +2 -1
  362. package/src/tool/webpAJpg/bibliography.ts +16 -0
  363. package/src/tool/webpAJpg/entry.ts +2 -0
  364. package/src/tool/webpAJpg/i18n/de.ts +3 -17
  365. package/src/tool/webpAJpg/i18n/en.ts +3 -17
  366. package/src/tool/webpAJpg/i18n/es.ts +1 -15
  367. package/src/tool/webpAJpg/i18n/fr.ts +10 -24
  368. package/src/tool/webpAJpg/i18n/id.ts +3 -17
  369. package/src/tool/webpAJpg/i18n/it.ts +2 -16
  370. package/src/tool/webpAJpg/i18n/ja.ts +1 -15
  371. package/src/tool/webpAJpg/i18n/ko.ts +1 -15
  372. package/src/tool/webpAJpg/i18n/nl.ts +2 -16
  373. package/src/tool/webpAJpg/i18n/pl.ts +3 -17
  374. package/src/tool/webpAJpg/i18n/pt.ts +3 -17
  375. package/src/tool/webpAJpg/i18n/ru.ts +7 -21
  376. package/src/tool/webpAJpg/i18n/sv.ts +3 -17
  377. package/src/tool/webpAJpg/i18n/tr.ts +2 -16
  378. package/src/tool/webpAJpg/i18n/zh.ts +2 -16
  379. package/src/tool/webpAJpg/seo.astro +2 -1
  380. package/src/tool/webpAPng/bibliography.ts +16 -0
  381. package/src/tool/webpAPng/entry.ts +2 -0
  382. package/src/tool/webpAPng/i18n/de.ts +3 -17
  383. package/src/tool/webpAPng/i18n/en.ts +3 -17
  384. package/src/tool/webpAPng/i18n/es.ts +1 -15
  385. package/src/tool/webpAPng/i18n/fr.ts +9 -23
  386. package/src/tool/webpAPng/i18n/id.ts +3 -17
  387. package/src/tool/webpAPng/i18n/it.ts +3 -17
  388. package/src/tool/webpAPng/i18n/ja.ts +1 -15
  389. package/src/tool/webpAPng/i18n/ko.ts +1 -15
  390. package/src/tool/webpAPng/i18n/nl.ts +3 -17
  391. package/src/tool/webpAPng/i18n/pl.ts +3 -17
  392. package/src/tool/webpAPng/i18n/pt.ts +3 -17
  393. package/src/tool/webpAPng/i18n/ru.ts +4 -18
  394. package/src/tool/webpAPng/i18n/sv.ts +3 -17
  395. package/src/tool/webpAPng/i18n/tr.ts +2 -17
  396. package/src/tool/webpAPng/i18n/zh.ts +3 -17
  397. package/src/tool/webpAPng/seo.astro +2 -1
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,7 +69,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'La diferencia fundamental entre BMP y PNG no está en la calidad de imagen ambos son sin pérdida sino en la eficiencia de almacenamiento. El BMP almacena píxeles en bruto: sin compresión, sin optimización, sin consideración por el espacio. El PNG analiza los patrones de píxeles repetidos y los codifica de forma compacta mediante Deflate, el mismo algoritmo que usa ZIP.',
72
+ html: 'La diferencia fundamental entre BMP y PNG no está en la calidad de imagen - ambos son sin pérdida - sino en la eficiencia de almacenamiento. El BMP almacena píxeles en bruto: sin compresión, sin optimización, sin consideración por el espacio. El PNG analiza los patrones de píxeles repetidos y los codifica de forma compacta mediante Deflate, el mismo algoritmo que usa ZIP.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -22,7 +23,7 @@ const faq: BmpAPngLocaleContent['faq'] = [
22
23
  {
23
24
  question: 'Quelle est la principale différence entre BMP et PNG ?',
24
25
  answer:
25
- 'BMP et PNG sont tous deux des formats sans perte. La différence réside dans l\'optimisation : PNG utilise des algorithmes de compression modernes pour stocker la même image en occupant 5 à 10 fois moins de mémoire que le BMP.',
26
+ 'BMP et PNG sont tous deux des formats sans perte. La différence réside dans l\'optimisation: PNG utilise des algorithmes de compression modernes pour stocker la même image en occupant 5 à 10 fois moins de mémoire que le BMP.',
26
27
  },
27
28
  {
28
29
  question: 'La conversion est-elle vraiment privée ?',
@@ -51,43 +52,32 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'Format de fichier BMP',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'Spécification PNG W3C',
61
- url: 'https://www.w3.org/TR/png/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
68
- text: 'Convertisseur BMP vers PNG : Le Remplacement Sans Perte du Format BMP',
58
+ text: 'Convertisseur BMP vers PNG: Le Remplacement Sans Perte du Format BMP',
69
59
  level: 2,
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'Le BMP est un format non compressé qui occupe d\'énormes quantités d\'espace sans aucun avantage technique par rapport au PNG. Les deux sont des formats sans perte : ils stockent chaque pixel avec une précision absolue. Mais le PNG ajoute une compression sans perte via l\'algorithme Deflate, réduisant la taille du fichier de 3 à 5 fois sans sacrifier un seul bit d\'information visuelle. Le PNG est, en substance, ce que le BMP a toujours voulu être.',
63
+ html: 'Le BMP est un format non compressé qui occupe d\'énormes quantités d\'espace sans aucun avantage technique par rapport au PNG. Les deux sont des formats sans perte: ils stockent chaque pixel avec une précision absolue. Mais le PNG ajoute une compression sans perte via l\'algorithme Deflate, réduisant la taille du fichier de 3 à 5 fois sans sacrifier un seul bit d\'information visuelle. Le PNG est, en substance, ce que le BMP a toujours voulu être.',
74
64
  },
75
65
  {
76
66
  type: 'title',
77
- text: 'BMP vs PNG : même qualité, taille de fichier radicalement différente',
67
+ text: 'BMP vs PNG: même qualité, taille de fichier radicalement différente',
78
68
  level: 3,
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'La différence fondamentale entre BMP et PNG ne réside pas dans la qualité de l\'image les deux sont sans perte mais dans l\'efficacité de stockage. Le BMP stocke les pixels bruts : sans compression, sans optimisation, sans considération pour l\'espace. Le PNG analyse les motifs de pixels répétés et les code de manière compacte grâce à Deflate, le même algorithme utilisé par ZIP.',
72
+ html: 'La différence fondamentale entre BMP et PNG ne réside pas dans la qualité de l\'image - les deux sont sans perte - mais dans l\'efficacité de stockage. Le BMP stocke les pixels bruts: sans compression, sans optimisation, sans considération pour l\'espace. Le PNG analyse les motifs de pixels répétés et les code de manière compacte grâce à Deflate, le même algorithme utilisé par ZIP.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'En plus d\'une compression supérieure, le PNG ajoute une fonctionnalité que le BMP n\'a jamais eue : le canal alpha complet pour la transparence. Captures d\'écran, graphiques d\'interface, logos, diagrammes techniques tous ces types d\'images bénéficient énormément de la conversion en PNG, qui préserve chaque valeur de couleur exacte tout en réduisant le poids du fichier à une fraction de l\'original.',
76
+ html: 'En plus d\'une compression supérieure, le PNG ajoute une fonctionnalité que le BMP n\'a jamais eue: le canal alpha complet pour la transparence. Captures d\'écran, graphiques d\'interface, logos, diagrammes techniques - tous ces types d\'images bénéficient énormément de la conversion en PNG, qui préserve chaque valeur de couleur exacte tout en réduisant le poids du fichier à une fraction de l\'original.',
87
77
  },
88
78
  {
89
79
  type: 'title',
90
- text: 'Comparaison d\'Architecture : Local vs Cloud',
80
+ text: 'Comparaison d\'Architecture: Local vs Cloud',
91
81
  level: 3,
92
82
  },
93
83
  {
@@ -114,7 +104,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
114
104
  'Le BMP est traité localement, ne quitte jamais votre appareil',
115
105
  'Conversion instantanée en quelques millisecondes',
116
106
  'Aucune limite de taille ni de nombre de fichiers',
117
- 'Confidentialité totale : 0 octet envoyé à l\'extérieur',
107
+ 'Confidentialité totale: 0 octet envoyé à l\'extérieur',
118
108
  ],
119
109
  },
120
110
  ],
@@ -130,7 +120,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Contrairement à la conversion JPG, la conversion PNG est complètement sans perte : chaque valeur de couleur du BMP original est préservée exactement dans le PNG résultant. Aucun artefact, aucun lissage des bords, aucune perte d\'information. Le fichier final est visuellement identique au BMP mais occupe 3 à 5 fois moins d\'espace disque.',
123
+ html: 'Contrairement à la conversion JPG, la conversion PNG est complètement sans perte: chaque valeur de couleur du BMP original est préservée exactement dans le PNG résultant. Aucun artefact, aucun lissage des bords, aucune perte d\'information. Le fichier final est visuellement identique au BMP mais occupe 3 à 5 fois moins d\'espace disque.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
@@ -155,12 +145,12 @@ const seo: BmpAPngLocaleContent['seo'] = [
155
145
  },
156
146
  {
157
147
  type: 'title',
158
- text: 'Conclusion : le PNG est ce que le BMP aurait toujours dû être',
148
+ text: 'Conclusion: le PNG est ce que le BMP aurait toujours dû être',
159
149
  level: 3,
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'Convertir BMP en PNG est la modernisation la plus naturelle d\'un fichier image : même qualité sans perte, plus grande compatibilité, support de transparence et 3 à 5 fois moins de poids. Notre outil effectue cette conversion en millisecondes, directement dans votre navigateur, sans envoyer aucun fichier vers aucun serveur.',
153
+ html: 'Convertir BMP en PNG est la modernisation la plus naturelle d\'un fichier image: même qualité sans perte, plus grande compatibilité, support de transparence et 3 à 5 fois moins de poids. Notre outil effectue cette conversion en millisecondes, directement dans votre navigateur, sans envoyer aucun fichier vers aucun serveur.',
164
154
  },
165
155
  ];
166
156
 
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,7 +69,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  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.',
72
+ 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
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,7 +69,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  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.',
72
+ 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
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,7 +69,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Het fundamentele verschil tussen BMP en PNG zit niet in de beeldkwaliteit beide zijn lossless maar in de opslagefficiëntie. BMP slaat pixels ruw op: zonder compressie, zonder optimalisatie, zonder rekening te houden met de ruimte. PNG analyseert herhalende pixelpatronen en codeert ze compact via Deflate, hetzelfde algoritme dat ZIP gebruikt.',
72
+ html: 'Het fundamentele verschil tussen BMP en PNG zit niet in de beeldkwaliteit - beide zijn lossless - maar in de opslagefficiëntie. BMP slaat pixels ruw op: zonder compressie, zonder optimalisatie, zonder rekening te houden met de ruimte. PNG analyseert herhalende pixelpatronen en codeert ze compact via Deflate, hetzelfde algoritme dat ZIP gebruikt.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,7 +69,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  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.',
72
+ 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
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,7 +69,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  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.',
72
+ 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
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -22,7 +23,7 @@ const faq: BmpAPngLocaleContent['faq'] = [
22
23
  {
23
24
  question: 'В чем основная разница между BMP и PNG?',
24
25
  answer:
25
- 'И BMP, и PNG это форматы без потерь. Разница заключается в оптимизации: PNG поддерживает современные алгоритмы сжатия, позволяя сохранять то же изображение, занимая в 510 раз меньше памяти, чем BMP.',
26
+ 'И BMP, и PNG - это форматы без потерь. Разница заключается в оптимизации: PNG поддерживает современные алгоритмы сжатия, позволяя сохранять то же изображение, занимая в 5-10 раз меньше памяти, чем BMP.',
26
27
  },
27
28
  {
28
29
  question: 'Действительно ли конвертация конфиденциальна?',
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'BMP это несжатый формат, который занимает огромное количество места без каких-либо технических преимуществ перед PNG. Оба формата являются беспотерьными: они сохраняют каждый пиксель с абсолютной точностью. Однако PNG добавляет сжатие без потерь с помощью алгоритма Deflate, что уменьшает размер файла в 35 раз без ущерба для визуальной информации. PNG это, по сути, то, чем всегда должен был быть BMP.',
63
+ html: 'BMP - это несжатый формат, который занимает огромное количество места без каких-либо технических преимуществ перед PNG. Оба формата являются беспотерьными: они сохраняют каждый пиксель с абсолютной точностью. Однако PNG добавляет сжатие без потерь с помощью алгоритма Deflate, что уменьшает размер файла в 3-5 раз без ущерба для визуальной информации. PNG - это, по сути, то, чем всегда должен был быть BMP.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,11 +69,11 @@ const seo: BmpAPngLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Фундаментальная разница между BMP и PNG заключается не в качестве изображения (оба формата беспотерьные), а в эффективности хранения. BMP хранит пиксели в необработанном виде: без сжатия, без оптимизации, без учета занимаемого пространства. PNG анализирует повторяющиеся шаблоны пикселей и компактно кодирует их с помощью Deflate того же алгоритма, который используется в ZIP.',
72
+ html: 'Фундаментальная разница между BMP и PNG заключается не в качестве изображения (оба формата беспотерьные), а в эффективности хранения. BMP хранит пиксели в необработанном виде: без сжатия, без оптимизации, без учета занимаемого пространства. PNG анализирует повторяющиеся шаблоны пикселей и компактно кодирует их с помощью Deflate - того же алгоритма, который используется в ZIP.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'Помимо превосходного сжатия, PNG добавляет функцию, которой никогда не было у BMP: полноценный альфа-канал для прозрачности. Скриншоты, интерфейсная графика, логотипы, технические диаграммы все эти типы изображений значительно выигрывают от конвертации в PNG, который сохраняет точные значения цветов, уменьшая при этом вес файла до доли от оригинала.',
76
+ html: 'Помимо превосходного сжатия, PNG добавляет функцию, которой никогда не было у BMP: полноценный альфа-канал для прозрачности. Скриншоты, интерфейсная графика, логотипы, технические диаграммы - все эти типы изображений значительно выигрывают от конвертации в PNG, который сохраняет точные значения цветов, уменьшая при этом вес файла до доли от оригинала.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -130,11 +120,11 @@ const seo: BmpAPngLocaleContent['seo'] = [
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'В отличие от конвертации в JPG, переход в PNG полностью беспотерьный: каждое значение цвета оригинального BMP в точности сохраняется в итоговом PNG. Нет артефактов, нет размытия краев, нет потери информации. Финальный файл визуально идентичен BMP, но занимает в 35 раз меньше места на диске.',
123
+ html: 'В отличие от конвертации в JPG, переход в PNG полностью беспотерьный: каждое значение цвета оригинального BMP в точности сохраняется в итоговом PNG. Нет артефактов, нет размытия краев, нет потери информации. Финальный файл визуально идентичен BMP, но занимает в 3-5 раз меньше места на диске.',
134
124
  },
135
125
  {
136
126
  type: 'paragraph',
137
- html: 'Если вы работаете с устаревшим ПО, экспортирующим BMP (промышленное оборудование, системы управления, медицинский софт), конвертация в PNG лучшее решение. PNG совместим со всеми современными программами, сохраняет безупречную цветопередачу и занимает до 5 раз меньше места. Это самая простая и безопасная миграция из возможных.',
127
+ html: 'Если вы работаете с устаревшим ПО, экспортирующим BMP (промышленное оборудование, системы управления, медицинский софт), конвертация в PNG - лучшее решение. PNG совместим со всеми современными программами, сохраняет безупречную цветопередачу и занимает до 5 раз меньше места. Это самая простая и безопасная миграция из возможных.',
138
128
  },
139
129
  {
140
130
  type: 'title',
@@ -154,12 +144,12 @@ const seo: BmpAPngLocaleContent['seo'] = [
154
144
  },
155
145
  {
156
146
  type: 'title',
157
- text: 'Заключение: PNG это то, чем BMP всегда должен был быть',
147
+ text: 'Заключение: PNG - это то, чем BMP всегда должен был быть',
158
148
  level: 3,
159
149
  },
160
150
  {
161
151
  type: 'paragraph',
162
- html: 'Конвертация BMP в PNG самая естественная модернизация графического файла: то же качество без потерь, лучшая совместимость, поддержка прозрачности и в 35 раз меньший вес. Наш инструмент выполняет эту конвертацию за миллисекунды прямо в вашем браузере, не загружая файлы на сервер.',
152
+ html: 'Конвертация BMP в PNG - самая естественная модернизация графического файла: то же качество без потерь, лучшая совместимость, поддержка прозрачности и в 3-5 раз меньший вес. Наш инструмент выполняет эту конвертацию за миллисекунды прямо в вашем браузере, не загружая файлы на сервер.',
163
153
  },
164
154
  ];
165
155
 
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,7 +69,7 @@ const seo: BmpAPngLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Den grundläggande skillnaden mellan BMP och PNG ligger inte i bildkvaliteten båda är förlustfria utan i lagringseffektiviteten. BMP lagrar pixlar rått: utan komprimering, utan optimering, utan hänsyn till utrymme. PNG analyserar återkommande pixelmönster och kodar dem kompakt genom Deflate, samma algoritm som ZIP använder.',
72
+ html: 'Den grundläggande skillnaden mellan BMP och PNG ligger inte i bildkvaliteten - båda är förlustfria - utan i lagringseffektiviteten. BMP lagrar pixlar rått: utan komprimering, utan optimering, utan hänsyn till utrymme. PNG analyserar återkommande pixelmönster och kodar dem kompakt genom Deflate, samma algoritm som ZIP använder.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
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
55
  const seo: BmpAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await bmpAPng.i18n[locale]?.();
12
+ if (!content) return null;
12
13
  ---
13
14
 
14
- {content && <SEORenderer content={{ locale, sections: content.seo }} />}
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -0,0 +1,12 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'BMP File Format',
6
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
7
+ },
8
+ {
9
+ name: 'Google WebP Documentation',
10
+ url: 'https://developers.google.com/speed/webp',
11
+ },
12
+ ];
@@ -27,3 +27,5 @@ export const bmpAWebp: ConvertersToolEntry<ImageConverterUI> = {
27
27
  zh: () => import('./i18n/zh').then((m) => m.content),
28
28
  },
29
29
  };
30
+
31
+ export { bibliography } from './bibliography';
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { BmpAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'Google WebP Documentation',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -112,7 +102,7 @@ const seo: BmpAWebpLocaleContent['seo'] = [
112
102
  highlight: true,
113
103
  points: [
114
104
  'Sofortige Konvertierung ohne Netzwerktransfer',
115
- 'Absolute Privatsphäre 0 Bytes verlassen Ihr Gerät',
105
+ 'Absolute Privatsphäre - 0 Bytes verlassen Ihr Gerät',
116
106
  'Keine Größenlimits pro Datei',
117
107
  'Funktioniert ohne Internetverbindung',
118
108
  ],
@@ -146,11 +136,11 @@ const seo: BmpAWebpLocaleContent['seo'] = [
146
136
  type: 'list',
147
137
  icon: 'mdi:check-circle',
148
138
  items: [
149
- 'Web-Veröffentlichung Chrome, Firefox, Safari, Edge und alle modernen Browser.',
150
- 'Soziale Netzwerke Instagram, Twitter, Facebook akzeptieren WebP nativ.',
151
- 'Web-Apps und PWAs minimale Größen für sofortiges Laden.',
152
- 'Effiziente Archivierung ersetzt Sammlungen alter BMPs und spart Gigabytes.',
153
- 'E-Mail-Marketing leichte Bilder, die in jedem modernen E-Mail-Client schnell laden.',
139
+ 'Web-Veröffentlichung - Chrome, Firefox, Safari, Edge und alle modernen Browser.',
140
+ 'Soziale Netzwerke - Instagram, Twitter, Facebook akzeptieren WebP nativ.',
141
+ 'Web-Apps und PWAs - minimale Größen für sofortiges Laden.',
142
+ 'Effiziente Archivierung - ersetzt Sammlungen alter BMPs und spart Gigabytes.',
143
+ 'E-Mail-Marketing - leichte Bilder, die in jedem modernen E-Mail-Client schnell laden.',
154
144
  ],
155
145
  },
156
146
  {
@@ -160,7 +150,7 @@ const seo: BmpAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'Wenn Sie alte BMP-Dateien von Windows, unkomprimierte Screenshots oder Bilder von alten Tools haben, ist die Konvertierung in WebP der wirkungsvollste Schritt, den Sie zur Optimierung Ihres Speichers und Ihrer Web-Performance unternehmen können. Mit unserem Tool erfolgt die Konvertierung sofort, privat und ohne Limits genau so, wie es sein sollte.',
153
+ html: 'Wenn Sie alte BMP-Dateien von Windows, unkomprimierte Screenshots oder Bilder von alten Tools haben, ist die Konvertierung in WebP der wirkungsvollste Schritt, den Sie zur Optimierung Ihres Speichers und Ihrer Web-Performance unternehmen können. Mit unserem Tool erfolgt die Konvertierung sofort, privat und ohne Limits - genau so, wie es sein sollte.',
164
154
  },
165
155
  ];
166
156