@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 { JpgAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'The W3C PNG Graphics',
57
- url: 'https://www.w3.org/Graphics/PNG/',
58
- },
59
- {
60
- name: 'Understanding Digital Image Compression',
61
- url: 'https://en.wikipedia.org/wiki/Image_compression',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: JpgAPngLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: '<strong>JPG</strong> är oslagbart för kamerafotografier, men har en akilleshäl: varje gång du sparar filen tillämpas dess förlustbringande komprimering igen, vilket gradvis försämrar kanter och gradienter. <strong>PNG</strong> använder förlustfri komprimering när filen väl har sparats är pixlarna oföränderliga. Att konvertera en JPG till PNG är den avgörande operationen när du behöver förbereda en bild för intensiv redigering, lägga till en transparent bakgrund eller integrera den i ett designflöde som kräver flera sparanden.',
63
+ html: '<strong>JPG</strong> är oslagbart för kamerafotografier, men har en akilleshäl: varje gång du sparar filen tillämpas dess förlustbringande komprimering igen, vilket gradvis försämrar kanter och gradienter. <strong>PNG</strong> använder förlustfri komprimering - när filen väl har sparats är pixlarna oföränderliga. Att konvertera en JPG till PNG är den avgörande operationen när du behöver förbereda en bild för intensiv redigering, lägga till en transparent bakgrund eller integrera den i ett designflöde som kräver flera sparanden.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAPngLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Omedelbar hastighet noll nätverkslatens',
115
- 'Total integritet 0 byte skickas externt',
104
+ 'Omedelbar hastighet - noll nätverkslatens',
105
+ 'Total integritet - 0 byte skickas externt',
116
106
  'Inga MB-begränsningar eller begränsningar på antal filer',
117
107
  'Rent gränssnitt, utan annonser eller spårning',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAPngLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'Processen är rent lokal: webbläsaren skapar en <strong>Blob</strong> med den valda JPG-filen och ritar den på en <strong>HTML5 Canvas</strong> i minnet. När den väl har renderats anropas <code>toDataURL(\'image/png\')</code> webbläsarens integrerade PNG-codec kodar om varje pixel utan att tillämpa någon ny förlustbringande komprimering. Resultatet är en PNG som troget bevarar JPG-filens nuvarande tillstånd: varken bättre eller sämre, bara fryst.',
119
+ html: 'Processen är rent lokal: webbläsaren skapar en <strong>Blob</strong> med den valda JPG-filen och ritar den på en <strong>HTML5 Canvas</strong> i minnet. När den väl har renderats anropas <code>toDataURL(\'image/png\')</code> - webbläsarens integrerade PNG-codec kodar om varje pixel utan att tillämpa någon ny förlustbringande komprimering. Resultatet är en PNG som troget bevarar JPG-filens nuvarande tillstånd: varken bättre eller sämre, bara fryst.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Den resulterande PNG-filen kommer att använda förlustfri DEFLATE-komprimering, samma som används av professionella verktyg som Photoshop eller GIMP. Dess storlek kommer att vara större än den ursprungliga JPG-filen vanligtvis mellan 2 och 5 gånger eftersom den lagrar alla pixlar utan att kasta bort information. Det är priset man betalar för trohet och oändlig redigerbarhet.',
123
+ html: 'Den resulterande PNG-filen kommer att använda förlustfri DEFLATE-komprimering, samma som används av professionella verktyg som Photoshop eller GIMP. Dess storlek kommer att vara större än den ursprungliga JPG-filen - vanligtvis mellan 2 och 5 gånger - eftersom den lagrar alla pixlar utan att kasta bort information. Det är priset man betalar för trohet och oändlig redigerbarhet.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Viktigt: PNG återställer inte JPEG kvalitet',
138
- html: 'Att konvertera en JPG till PNG <strong>återställer inte den förlorade kvaliteten</strong> under den ursprungliga JPEG-komprimeringen. Om din JPG redan hade blockeffekter eller färgbrus, kommer PNG att bevara dem intakta det förhindrar helt enkelt att fler läggs till. Tänk på konverteringen som att "frysa" bildens nuvarande tillstånd så att framtida redigeringar inte försämrar den ytterligare.',
128
+ html: 'Att konvertera en JPG till PNG <strong>återställer inte den förlorade kvaliteten</strong> under den ursprungliga JPEG-komprimeringen. Om din JPG redan hade blockeffekter eller färgbrus, kommer PNG att bevara dem intakta - det förhindrar helt enkelt att fler läggs till. Tänk på konverteringen som att "frysa" bildens nuvarande tillstånd så att framtida redigeringar inte försämrar den ytterligare.',
139
129
  },
140
130
  {
141
131
  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 { JpgAPngLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'The W3C PNG Graphics',
57
- url: 'https://www.w3.org/Graphics/PNG/',
58
- },
59
- {
60
- name: 'Understanding Digital Image Compression',
61
- url: 'https://en.wikipedia.org/wiki/Image_compression',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAPngLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Anında hız sıfır ağ gecikmesi',
115
- 'Tam gizlilik dışarıya 0 bayt gönderilir',
104
+ 'Anında hız - sıfır ağ gecikmesi',
105
+ 'Tam gizlilik - dışarıya 0 bayt gönderilir',
116
106
  'MB veya dosya sayısı sınırı yok',
117
107
  'Reklam veya izleme içermeyen temiz arayüz',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAPngLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'Süreç tamamen yereldir: tarayıcı seçilen JPG ile bir <strong>Blob</strong> oluşturur ve bunu bellekteki bir <strong>Canvas HTML5</strong> üzerine çizer. Oluşturulduktan sonra <code>toDataURL(\'image/png\')</code> çağrılır tarayıcıya entegre PNG kodeği, herhangi bir yeni kayıplı sıkıştırma uygulamadan her pikseli yeniden kodlar. Sonuç, JPG\'nin mevcut durumunu sadık bir şekilde koruyan bir PNG\'dir: ne daha iyi ne daha kötü, sadece dondurulmuş halidir.',
119
+ html: 'Süreç tamamen yereldir: tarayıcı seçilen JPG ile bir <strong>Blob</strong> oluşturur ve bunu bellekteki bir <strong>Canvas HTML5</strong> üzerine çizer. Oluşturulduktan sonra <code>toDataURL(\'image/png\')</code> çağrılır - tarayıcıya entegre PNG kodeği, herhangi bir yeni kayıplı sıkıştırma uygulamadan her pikseli yeniden kodlar. Sonuç, JPG\'nin mevcut durumunu sadık bir şekilde koruyan bir PNG\'dir: ne daha iyi ne daha kötü, sadece dondurulmuş halidir.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Elde edilen PNG, Photoshop veya GIMP gibi profesyonel araçlarda kullanılan kayıpsız DEFLATE sıkıştırmasını kullanacaktır. Boyutu, tüm pikselleri bilgi atmadan sakladığı için orijinal JPG\'den genellikle 2 ila 5 kat daha büyük olacaktır. Bu, aslına uygunluk ve sonsuz düzenlenebilirlik için ödenen bedeldir.',
123
+ html: 'Elde edilen PNG, Photoshop veya GIMP gibi profesyonel araçlarda kullanılan kayıpsız DEFLATE sıkıştırmasını kullanacaktır. Boyutu, tüm pikselleri bilgi atmadan sakladığı için orijinal JPG\'den - genellikle 2 ila 5 kat - daha büyük olacaktır. Bu, aslına uygunluk ve sonsuz düzenlenebilirlik için ödenen bedeldir.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Önemli: PNG, JPEG kalitesini geri getirmez',
138
- html: 'Bir JPG görüntüsünü PNG\'ye dönüştürmek, orijinal JPEG sıkıştırması sırasında <strong>kaybedilen kaliteyi geri getirmez</strong>. JPG dosyanızda blok kusurları veya renk paraziti varsa, PNG bunları bozulmadan koruyacaktır sadece daha fazlasının eklenmesini engeller. Dönüşümü, görüntünün mevcut durumunu "dondurmak" olarak düşünün, böylece gelecekteki düzenlemeler görüntüyü daha fazla bozmaz.',
128
+ html: 'Bir JPG görüntüsünü PNG\'ye dönüştürmek, orijinal JPEG sıkıştırması sırasında <strong>kaybedilen kaliteyi geri getirmez</strong>. JPG dosyanızda blok kusurları veya renk paraziti varsa, PNG bunları bozulmadan koruyacaktır - sadece daha fazlasının eklenmesini engeller. Dönüşümü, görüntünün mevcut durumunu "dondurmak" olarak düşünün, böylece gelecekteki düzenlemeler görüntüyü daha fazla bozmaz.',
139
129
  },
140
130
  {
141
131
  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 { JpgAPngLocaleContent } from '../index';
@@ -22,7 +23,7 @@ const faq: JpgAPngLocaleContent['faq'] = [
22
23
  {
23
24
  question: '我什么时候应该将 JPG 转换为 PNG?',
24
25
  answer:
25
- '每当您需要编辑照片中的文字或徽标(logo)时。如果您多次保存 JPG,图像质量会变差。而 PNG 会“冻结”压缩,保持质量不变。',
26
+ '每当您需要编辑照片中的文字或徽标(logo)时。如果您多次保存 JPG,图像质量会变差。而 PNG 会\"冻结\"压缩,保持质量不变。',
26
27
  },
27
28
  {
28
29
  question: 'PNG 文件会立即具有透明背景吗?',
@@ -51,17 +52,6 @@ const howTo: JpgAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'The W3C PNG Graphics',
57
- url: 'https://www.w3.org/Graphics/PNG/',
58
- },
59
- {
60
- name: 'Understanding Digital Image Compression',
61
- url: 'https://en.wikipedia.org/wiki/Image_compression',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAPngLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: JpgAPngLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: '<strong>JPG</strong> 对于相机拍摄的照片来说是无可比拟的,但它有一个致命弱点:每次保存文件时,它都会重新应用有损压缩,导致边缘和渐变逐渐降级。而 <strong>PNG</strong> 使用无损压缩——一旦保存,像素就是不可更改的。当您需要准备图像进行深度编辑、添加透明背景,或将其集成到需要多次保存的设计流程中时,将 JPG 转换为 PNG 就是关键操作。',
63
+ html: '<strong>JPG</strong> 对于相机拍摄的照片来说是无可比拟的,但它有一个致命弱点:每次保存文件时,它都会重新应用有损压缩,导致边缘和渐变逐渐降级。而 <strong>PNG</strong> 使用无损压缩-一旦保存,像素就是不可更改的。当您需要准备图像进行深度编辑、添加透明背景,或将其集成到需要多次保存的设计流程中时,将 JPG 转换为 PNG 就是关键操作。',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAPngLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- '即时处理——零网络延迟',
115
- '完全隐私——0 字节向外传输',
104
+ '即时处理-零网络延迟',
105
+ '完全隐私-0 字节向外传输',
116
106
  '没有 MB 大小或文件数量限制',
117
107
  '界面干净,无广告或追踪',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAPngLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: '处理过程完全是本地的:浏览器根据选定的 JPG 创建一个 <strong>Blob</strong>,并将其绘制在内存中的 <strong>HTML5 Canvas</strong> 上。渲染完成后,调用 <code>toDataURL(\'image/png\')</code>——浏览器内置的 PNG 编解码器会重新编码每个像素,而不应用任何新的有损压缩。结果是一个忠实保留 JPG 当前状态的 PNG:质量既没有变好也没有变坏,只是被“冻结”了。',
119
+ html: '处理过程完全是本地的:浏览器根据选定的 JPG 创建一个 <strong>Blob</strong>,并将其绘制在内存中的 <strong>HTML5 Canvas</strong> 上。渲染完成后,调用 <code>toDataURL(\'image/png\')</code>-浏览器内置的 PNG 编解码器会重新编码每个像素,而不应用任何新的有损压缩。结果是一个忠实保留 JPG 当前状态的 PNG:质量既没有变好也没有变坏,只是被\"冻结\"了。',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: '生成的 PNG 将使用 DEFLATE 无损压缩,这与 Photoshop 或 GIMP 等专业工具所使用的技术相同。由于它存储了所有像素且不丢弃信息,因此其体积将比原始 JPG 更大——通常在 2 到 5 倍之间。这是为了忠实度和无限可编辑性所付出的代价。',
123
+ html: '生成的 PNG 将使用 DEFLATE 无损压缩,这与 Photoshop 或 GIMP 等专业工具所使用的技术相同。由于它存储了所有像素且不丢弃信息,因此其体积将比原始 JPG 更大-通常在 2 到 5 倍之间。这是为了忠实度和无限可编辑性所付出的代价。',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: '重要提示:PNG 不会恢复 JPEG 的质量',
138
- html: '将 JPG 转换为 PNG <strong>不会恢复</strong>在原始 JPEG 压缩过程中损失的质量。如果您的 JPG 已经存在模糊块(block artifacts)或色彩噪点,PNG 会完好地保留它们——它只是防止了进一步压缩带来的损失。您可以将转换视为对图像当前状态的“冻结”,以便未来的编辑不会进一步降低其质量。',
128
+ html: '将 JPG 转换为 PNG <strong>不会恢复</strong>在原始 JPEG 压缩过程中损失的质量。如果您的 JPG 已经存在模糊块(block artifacts)或色彩噪点,PNG 会完好地保留它们-它只是防止了进一步压缩带来的损失。您可以将转换视为对图像当前状态的\"冻结\",以便未来的编辑不会进一步降低其质量。',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await jpgAPng.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: 'Google WebP Kompressionsstudie',
6
+ url: 'https://developers.google.com/speed/webp/docs/webp_study',
7
+ },
8
+ {
9
+ name: 'Web.dev: Bilder in modernen Formaten bereitstellen',
10
+ url: 'https://web.dev/uses-webp-images/',
11
+ },
12
+ ];
@@ -27,3 +27,5 @@ export const jpgAWebp: 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 { JpgAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'Google WebP Kompressionsstudie',
57
- url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
- },
59
- {
60
- name: 'Web.dev: Bilder in modernen Formaten bereitstellen',
61
- url: 'https://web.dev/uses-webp-images/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: JpgAWebpLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'Das <strong>JPG</strong>-Format dominiert seit Jahrzehnten die digitale Fotografie universell kompatibel und weit verbreitet. Doch Google hat <strong>WebP</strong> entwickelt, um JPG in seinem eigenen Bereich zu schlagen: dieselbe visuelle Qualität bei 2535 % geringerer Dateigröße. Für Entwickler und Marketingteams, die gegen langsame Ladezeiten kämpfen, ist die Konvertierung von JPG in WebP die wertvollste Optimierung, die ohne Änderungen am Design vorgenommen werden kann.',
63
+ html: 'Das <strong>JPG</strong>-Format dominiert seit Jahrzehnten die digitale Fotografie - universell kompatibel und weit verbreitet. Doch Google hat <strong>WebP</strong> entwickelt, um JPG in seinem eigenen Bereich zu schlagen: dieselbe visuelle Qualität bei 25-35 % geringerer Dateigröße. Für Entwickler und Marketingteams, die gegen langsame Ladezeiten kämpfen, ist die Konvertierung von JPG in WebP die wertvollste Optimierung, die ohne Änderungen am Design vorgenommen werden kann.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,11 +69,11 @@ const seo: JpgAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: '<strong>JPG</strong> bleibt die richtige Wahl, wenn Sie universelle Kompatibilität benötigen: E-Mails an Kunden, Word-Dokumente, ältere Social-Media-Plattformen oder CMS-Systeme, die WebP noch nicht akzeptieren. Sein dreißigjähriges Ökosystem garantiert, dass jeder Bildschirm, Drucker oder Betrachter es problemlos öffnen kann. Der Hauptnachteil ist die Größe ein 1,5 MB großes JPG im Header kann den LCP-Score Ihrer Seite verschlechtern und die Schwellenwerte für Google Core Web Vitals verfehlen.',
72
+ html: '<strong>JPG</strong> bleibt die richtige Wahl, wenn Sie universelle Kompatibilität benötigen: E-Mails an Kunden, Word-Dokumente, ältere Social-Media-Plattformen oder CMS-Systeme, die WebP noch nicht akzeptieren. Sein dreißigjähriges Ökosystem garantiert, dass jeder Bildschirm, Drucker oder Betrachter es problemlos öffnen kann. Der Hauptnachteil ist die Größe - ein 1,5 MB großes JPG im Header kann den LCP-Score Ihrer Seite verschlechtern und die Schwellenwerte für Google Core Web Vitals verfehlen.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: '<strong>WebP</strong> ist die intelligente Wahl für alle Inhalte auf Ihrer Website. Chrome, Firefox, Safari und Edge unterstützen es seit Jahren nativ. Produktbilder im E-Commerce, Blog-Banner, Video-Thumbnails und alle online veröffentlichten Fotos profitieren direkt: leichtere Seiten, bessere Google PageSpeed Insights Scores und eine flüssigere Benutzererfahrung besonders bei langsamen mobilen Verbindungen.',
76
+ html: '<strong>WebP</strong> ist die intelligente Wahl für alle Inhalte auf Ihrer Website. Chrome, Firefox, Safari und Edge unterstützen es seit Jahren nativ. Produktbilder im E-Commerce, Blog-Banner, Video-Thumbnails und alle online veröffentlichten Fotos profitieren direkt: leichtere Seiten, bessere Google PageSpeed Insights Scores und eine flüssigere Benutzererfahrung - besonders bei langsamen mobilen Verbindungen.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAWebpLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Sofortige Geschwindigkeit keine Netzwerklatenz',
115
- 'Vollständige Privatsphäre 0 Byte werden extern gesendet',
104
+ 'Sofortige Geschwindigkeit - keine Netzwerklatenz',
105
+ 'Vollständige Privatsphäre - 0 Byte werden extern gesendet',
116
106
  'Keine Megabyte-Limits oder Dateianzahlbeschränkungen',
117
107
  'Saubere Benutzeroberfläche, keine Werbung oder Tracking',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAWebpLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'Wenn Sie ein JPG in das Tool ziehen, erstellt der Browser ein <strong>Blob-Objekt</strong>, das nur in Ihrem RAM existiert. Dieser Blob wird dekodiert und auf ein unsichtbares <strong>HTML5 Canvas</strong>-Element gezeichnet. Da JPG kein Alpha-Kanal besitzt, erfolgt die Konvertierung in WebP direkt: Die Engine exportiert das Canvas durch Aufruf von <code>toDataURL(\'image/webp\')</code> und erzeugt einen Byte-Stream, den Ihr Betriebssystem sofort herunterlädt ganz ohne Server.',
119
+ html: 'Wenn Sie ein JPG in das Tool ziehen, erstellt der Browser ein <strong>Blob-Objekt</strong>, das nur in Ihrem RAM existiert. Dieser Blob wird dekodiert und auf ein unsichtbares <strong>HTML5 Canvas</strong>-Element gezeichnet. Da JPG kein Alpha-Kanal besitzt, erfolgt die Konvertierung in WebP direkt: Die Engine exportiert das Canvas durch Aufruf von <code>toDataURL(\'image/webp\')</code> und erzeugt einen Byte-Stream, den Ihr Betriebssystem sofort herunterlädt - ganz ohne Server.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Der WebP-Kompressionsalgorithmus kombiniert Techniken zur Blockvorhersage (ähnlich denen in VP8, Googles Video-Codec) mit Farbumwandlungen und arithmetischer Kodierung. Das Ergebnis ist eine Datei, die dieselben Wahrnehmungsinformationen wie das ursprüngliche JPG enthält, aber weitaus effizienter verpackt ist was bedeutet, dass bei jedem Seitenaufruf weniger Kilobyte übertragen werden.',
123
+ html: 'Der WebP-Kompressionsalgorithmus kombiniert Techniken zur Blockvorhersage (ähnlich denen in VP8, Googles Video-Codec) mit Farbumwandlungen und arithmetischer Kodierung. Das Ergebnis ist eine Datei, die dieselben Wahrnehmungsinformationen wie das ursprüngliche JPG enthält, aber weitaus effizienter verpackt ist - was bedeutet, dass bei jedem Seitenaufruf weniger Kilobyte übertragen werden.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Core Web Vitals Tipp: LCP und Bildgewicht',
138
- html: 'Der <strong>Largest Contentful Paint (LCP)</strong> ist die Google-Metrik, die misst, wie lange es dauert, bis das größte visuelle Element auf Ihrer Seite geladen ist. Ein 1,5 MB großes Header-JPG kann zu einem WebP von nur 900 KB oder sogar 600 KB werden, ohne dass ein sichtbarer Unterschied besteht. Diese <strong>Ersparnis von 2535 %</strong> kann Ihren LCP von "Verbesserungswürdig" auf "Gut" heben und Sie in den Suchergebnissen weiter nach oben bringen.',
128
+ html: 'Der <strong>Largest Contentful Paint (LCP)</strong> ist die Google-Metrik, die misst, wie lange es dauert, bis das größte visuelle Element auf Ihrer Seite geladen ist. Ein 1,5 MB großes Header-JPG kann zu einem WebP von nur 900 KB - oder sogar 600 KB - werden, ohne dass ein sichtbarer Unterschied besteht. Diese <strong>Ersparnis von 25-35 %</strong> kann Ihren LCP von "Verbesserungswürdig" auf "Gut" heben und Sie in den Suchergebnissen weiter nach oben bringen.',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -160,7 +150,7 @@ const seo: JpgAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'Die Konvertierung Ihrer JPGs in WebP ist heute eine der einfachsten und kosteneffizientesten Optimierungen, die Sie für jede Website vornehmen können. Mit diesem Tool erledigen Sie das in Sekunden, kostenlos und ohne dass Ihre Bilder jemals Ihr Gerät verlassen. Weniger Kilobyte, besserer LCP, schnellere Seiten alles bei exakt demselben Erscheinungsbild wie zuvor.',
153
+ html: 'Die Konvertierung Ihrer JPGs in WebP ist heute eine der einfachsten und kosteneffizientesten Optimierungen, die Sie für jede Website vornehmen können. Mit diesem Tool erledigen Sie das in Sekunden, kostenlos und ohne dass Ihre Bilder jemals Ihr Gerät verlassen. Weniger Kilobyte, besserer LCP, schnellere Seiten - alles bei exakt demselben Erscheinungsbild wie zuvor.',
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 { JpgAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'Google WebP Compression Study',
57
- url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
- },
59
- {
60
- name: 'Web.dev: Serve images in modern formats',
61
- url: 'https://web.dev/uses-webp-images/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: JpgAWebpLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'The <strong>JPG</strong> format has dominated digital photography for decades universally compatible and widely supported. But Google engineered <strong>WebP</strong> to beat JPG at its own game: the same visual quality at 2535% less file size. For developers and marketing teams fighting slow page loads, converting JPG to WebP is the single highest-return optimization you can apply without touching your design.',
63
+ html: 'The <strong>JPG</strong> format has dominated digital photography for decades - universally compatible and widely supported. But Google engineered <strong>WebP</strong> to beat JPG at its own game: the same visual quality at 25-35% less file size. For developers and marketing teams fighting slow page loads, converting JPG to WebP is the single highest-return optimization you can apply without touching your design.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,11 +69,11 @@ const seo: JpgAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: '<strong>JPG</strong> remains the right choice when you need universal compatibility: client emails, Word documents, legacy social media platforms, or CMS systems that do not yet accept WebP. Its thirty-year ecosystem guarantees that any screen, printer, or viewer will open it without issues. The main drawback is size a 1.5 MB header JPG can drag down your page\'s LCP score and fail Core Web Vitals thresholds.',
72
+ html: '<strong>JPG</strong> remains the right choice when you need universal compatibility: client emails, Word documents, legacy social media platforms, or CMS systems that do not yet accept WebP. Its thirty-year ecosystem guarantees that any screen, printer, or viewer will open it without issues. The main drawback is size - a 1.5 MB header JPG can drag down your page\'s LCP score and fail Core Web Vitals thresholds.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: '<strong>WebP</strong> is the smart choice for all content that lives on your website. Chrome, Firefox, Safari and Edge have supported it natively for years. Product images in e-commerce, blog banners, video thumbnails, and any photo published online all benefit directly: lighter pages, better Google PageSpeed Insights scores, and a smoother user experience especially on slow mobile connections.',
76
+ html: '<strong>WebP</strong> is the smart choice for all content that lives on your website. Chrome, Firefox, Safari and Edge have supported it natively for years. Product images in e-commerce, blog banners, video thumbnails, and any photo published online all benefit directly: lighter pages, better Google PageSpeed Insights scores, and a smoother user experience - especially on slow mobile connections.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAWebpLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Instant speed zero network latency',
115
- 'Complete privacy 0 bytes sent externally',
104
+ 'Instant speed - zero network latency',
105
+ 'Complete privacy - 0 bytes sent externally',
116
106
  'No MB limits or file count restrictions',
117
107
  'Clean interface, no ads or tracking',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAWebpLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'When you drag a JPG into the tool, the browser creates a <strong>Blob object</strong> that lives only in your RAM. That Blob is decoded and drawn onto an invisible <strong>HTML5 Canvas</strong> element. Since JPG has no alpha channel, the conversion to WebP is direct: the engine exports the canvas by calling <code>toDataURL(\'image/webp\')</code>, generating a byte stream that your OS downloads instantly no server involved.',
119
+ html: 'When you drag a JPG into the tool, the browser creates a <strong>Blob object</strong> that lives only in your RAM. That Blob is decoded and drawn onto an invisible <strong>HTML5 Canvas</strong> element. Since JPG has no alpha channel, the conversion to WebP is direct: the engine exports the canvas by calling <code>toDataURL(\'image/webp\')</code>, generating a byte stream that your OS downloads instantly - no server involved.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'The WebP compression algorithm combines block prediction techniques (similar to those in VP8, Google\'s video codec) with color transforms and arithmetic coding. The result is a file that contains the same perceptual information as the original JPG but packaged far more efficiently meaning fewer kilobytes transferred with every page visit.',
123
+ html: 'The WebP compression algorithm combines block prediction techniques (similar to those in VP8, Google\'s video codec) with color transforms and arithmetic coding. The result is a file that contains the same perceptual information as the original JPG but packaged far more efficiently - meaning fewer kilobytes transferred with every page visit.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Core Web Vitals Tip: LCP and image weight',
138
- html: 'The <strong>Largest Contentful Paint (LCP)</strong> is the Google metric that measures how long it takes to load the largest visual element on your page. A 1.5 MB header JPG can become a WebP of just 900 KB or even 600 KB with no noticeable visual difference. That <strong>2535% saving</strong> can move your LCP from "Needs Improvement" to "Good" and push you up the search rankings.',
128
+ html: 'The <strong>Largest Contentful Paint (LCP)</strong> is the Google metric that measures how long it takes to load the largest visual element on your page. A 1.5 MB header JPG can become a WebP of just 900 KB - or even 600 KB - with no noticeable visual difference. That <strong>25-35% saving</strong> can move your LCP from "Needs Improvement" to "Good" and push you up the search rankings.',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -160,7 +150,7 @@ const seo: JpgAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'Converting your JPGs to WebP is today one of the simplest and most cost-effective optimizations you can apply to any website. With this tool you do it in seconds, for free, and without your images ever leaving your device. Fewer kilobytes, better LCP, faster pages all with the exact same visual appearance you already had.',
153
+ html: 'Converting your JPGs to WebP is today one of the simplest and most cost-effective optimizations you can apply to any website. With this tool you do it in seconds, for free, and without your images ever leaving your device. Fewer kilobytes, better LCP, faster pages - all with the exact same visual appearance you already had.',
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 { JpgAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'Google WebP Compression Study',
57
- url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
- },
59
- {
60
- name: 'Web.dev: Serve images in modern formats',
61
- url: 'https://web.dev/uses-webp-images/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -112,7 +102,7 @@ const seo: JpgAWebpLocaleContent['seo'] = [
112
102
  highlight: true,
113
103
  points: [
114
104
  'Velocidad instantánea: cero latencia de red',
115
- 'Privacidad total 0 bytes enviados al exterior',
105
+ 'Privacidad total - 0 bytes enviados al exterior',
116
106
  'Sin límites de MB ni de número de archivos',
117
107
  'Interfaz limpia, sin anuncios ni rastreos',
118
108
  ],
@@ -135,7 +125,7 @@ const seo: JpgAWebpLocaleContent['seo'] = [
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Consejo Core Web Vitals: LCP y el peso de las imágenes',
138
- html: 'El <strong>Largest Contentful Paint (LCP)</strong> es la métrica de Google que mide cuánto tarda en cargarse el elemento visual más grande de tu página. Un JPG de cabecera de 1,5 MB puede convertirse en un WebP de apenas 900 KB o incluso 600 KB sin diferencia visual apreciable. Ese ahorro del <strong>25-35%</strong> puede mover tu LCP de "Necesita mejorar" a "Bueno" y subir posiciones en los resultados de búsqueda.',
128
+ html: 'El <strong>Largest Contentful Paint (LCP)</strong> es la métrica de Google que mide cuánto tarda en cargarse el elemento visual más grande de tu página. Un JPG de cabecera de 1,5 MB puede convertirse en un WebP de apenas 900 KB - o incluso 600 KB - sin diferencia visual apreciable. Ese ahorro del <strong>25-35%</strong> puede mover tu LCP de "Necesita mejorar" a "Bueno" y subir posiciones en los resultados de búsqueda.',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -160,7 +150,7 @@ const seo: JpgAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'Convertir tus JPG a WebP es hoy una de las optimizaciones más sencillas y rentables que puedes aplicar a cualquier sitio web. Con esta herramienta lo haces en segundos, de forma gratuita y sin que tus imágenes salgan de tu dispositivo. Menos kilobytes, mejor LCP, más velocidad y todo eso con el mismo aspecto visual que ya tenías.',
153
+ html: 'Convertir tus JPG a WebP es hoy una de las optimizaciones más sencillas y rentables que puedes aplicar a cualquier sitio web. Con esta herramienta lo haces en segundos, de forma gratuita y sin que tus imágenes salgan de tu dispositivo. Menos kilobytes, mejor LCP, más velocidad - y todo eso con el mismo aspecto visual que ya tenías.',
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 { JpgAWebpLocaleContent } from '../index';
@@ -51,26 +52,15 @@ const howTo: JpgAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'Étude de compression Google WebP',
57
- url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
- },
59
- {
60
- name: 'Web.dev: Servir des images en formats modernes',
61
- url: 'https://web.dev/uses-webp-images/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
68
- text: 'Convertisseur JPG vers WebP : Accélérez votre site avec le format de Google',
58
+ text: 'Convertisseur JPG vers WebP: Accélérez votre site avec le format de Google',
69
59
  level: 2,
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'Le format <strong>JPG</strong> domine la photographie numérique depuis des décennies universel, compact et compatible avec tous les appareils. Mais Google a conçu <strong>WebP</strong> pour surpasser le JPG sur son propre terrain : la même qualité visuelle avec 25 à 35 % de poids en moins. Pour les développeurs et les équipes marketing qui luttent contre des temps de chargement lents, convertir ses JPG en WebP est l\'optimisation au meilleur retour sur effort.',
63
+ html: 'Le format <strong>JPG</strong> domine la photographie numérique depuis des décennies - universel, compact et compatible avec tous les appareils. Mais Google a conçu <strong>WebP</strong> pour surpasser le JPG sur son propre terrain: la même qualité visuelle avec 25 à 35 % de poids en moins. Pour les développeurs et les équipes marketing qui luttent contre des temps de chargement lents, convertir ses JPG en WebP est l\'optimisation au meilleur retour sur effort.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,15 +69,15 @@ const seo: JpgAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Le <strong>JPG</strong> reste le bon choix lorsque vous avez besoin d\'une compatibilité universelle : e-mails clients, documents Word, réseaux sociaux anciens ou systèmes CMS qui n\'acceptent pas encore le WebP. Son écosystème de trente ans garantit que n\'importe quel écran, imprimante ou visionneuse ouvrira le fichier sans problème. Son principal inconvénient est le poids un JPG d\'en-tête de 1,5 Mo peut faire chuter le score LCP de votre page et échouer aux seuils Core Web Vitals.',
72
+ html: 'Le <strong>JPG</strong> reste le bon choix lorsque vous avez besoin d\'une compatibilité universelle: e-mails clients, documents Word, réseaux sociaux anciens ou systèmes CMS qui n\'acceptent pas encore le WebP. Son écosystème de trente ans garantit que n\'importe quel écran, imprimante ou visionneuse ouvrira le fichier sans problème. Son principal inconvénient est le poids - un JPG d\'en-tête de 1,5 Mo peut faire chuter le score LCP de votre page et échouer aux seuils Core Web Vitals.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'Le <strong>WebP</strong> est le choix intelligent pour tout le contenu hébergé sur votre site web. Chrome, Firefox, Safari et Edge le supportent nativement depuis plusieurs années. Les images de produits en e-commerce, les bannières de blog, les miniatures de vidéo et toute photo publiée en ligne en bénéficient directement : pages plus légères, meilleur score Google PageSpeed Insights et expérience utilisateur plus fluide, notamment sur les connexions mobiles lentes.',
76
+ html: 'Le <strong>WebP</strong> est le choix intelligent pour tout le contenu hébergé sur votre site web. Chrome, Firefox, Safari et Edge le supportent nativement depuis plusieurs années. Les images de produits en e-commerce, les bannières de blog, les miniatures de vidéo et toute photo publiée en ligne en bénéficient directement: pages plus légères, meilleur score Google PageSpeed Insights et expérience utilisateur plus fluide, notamment sur les connexions mobiles lentes.',
87
77
  },
88
78
  {
89
79
  type: 'title',
90
- text: 'Comparatif : Conversion locale vs Cloud',
80
+ text: 'Comparatif: Conversion locale vs Cloud',
91
81
  level: 3,
92
82
  },
93
83
  {
@@ -111,8 +101,8 @@ const seo: JpgAWebpLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Vitesse instantanée zéro latence réseau',
115
- 'Confidentialité totale 0 octet envoyé à l\'extérieur',
104
+ 'Vitesse instantanée - zéro latence réseau',
105
+ 'Confidentialité totale - 0 octet envoyé à l\'extérieur',
116
106
  'Aucune limite de taille ni de nombre de fichiers',
117
107
  'Interface épurée, sans publicités ni traçage',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAWebpLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'Lorsque vous glissez un JPG dans l\'outil, le navigateur crée un objet <strong>Blob</strong> qui n\'existe que dans votre RAM. Ce Blob est décodé et dessiné sur un élément <strong>Canvas HTML5</strong> invisible. Comme le JPG ne possède pas de canal alpha, la conversion en WebP est directe : le moteur exporte le canvas via <code>toDataURL(\'image/webp\')</code>, générant un flux d\'octets que votre système télécharge instantanément sans passer par aucun serveur.',
119
+ html: 'Lorsque vous glissez un JPG dans l\'outil, le navigateur crée un objet <strong>Blob</strong> qui n\'existe que dans votre RAM. Ce Blob est décodé et dessiné sur un élément <strong>Canvas HTML5</strong> invisible. Comme le JPG ne possède pas de canal alpha, la conversion en WebP est directe: le moteur exporte le canvas via <code>toDataURL(\'image/webp\')</code>, générant un flux d\'octets que votre système télécharge instantanément sans passer par aucun serveur.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'L\'algorithme de compression WebP combine des techniques de prédiction de blocs (similaires à celles de VP8, le codec vidéo de Google) avec des transformées de couleur et un codage arithmétique. Le résultat est un fichier contenant les mêmes informations perceptuelles que le JPG original, mais compressées beaucoup plus efficacement ce qui se traduit par moins de kilo-octets transférés à chaque visite de page.',
123
+ html: 'L\'algorithme de compression WebP combine des techniques de prédiction de blocs (similaires à celles de VP8, le codec vidéo de Google) avec des transformées de couleur et un codage arithmétique. Le résultat est un fichier contenant les mêmes informations perceptuelles que le JPG original, mais compressées beaucoup plus efficacement - ce qui se traduit par moins de kilo-octets transférés à chaque visite de page.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
- title: 'Conseil Core Web Vitals : LCP et poids des images',
138
- html: 'Le <strong>Largest Contentful Paint (LCP)</strong> est la métrique Google qui mesure le temps de chargement du plus grand élément visuel de votre page. Un JPG d\'en-tête de 1,5 Mo peut devenir un WebP de seulement 900 Ko voire 600 Ko sans différence visuelle perceptible. Cette économie de <strong>25 à 35 %</strong> peut faire passer votre LCP de « À améliorer » à « Bon » et améliorer votre positionnement dans les résultats de recherche.',
127
+ title: 'Conseil Core Web Vitals: LCP et poids des images',
128
+ html: 'Le <strong>Largest Contentful Paint (LCP)</strong> est la métrique Google qui mesure le temps de chargement du plus grand élément visuel de votre page. Un JPG d\'en-tête de 1,5 Mo peut devenir un WebP de seulement 900 Ko - voire 600 Ko - sans différence visuelle perceptible. Cette économie de <strong>25 à 35 %</strong> peut faire passer votre LCP de \" À améliorer \" à \" Bon \" et améliorer votre positionnement dans les résultats de recherche.',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -146,9 +136,9 @@ const seo: JpgAWebpLocaleContent['seo'] = [
146
136
  type: 'list',
147
137
  icon: 'mdi:check-circle',
148
138
  items: [
149
- 'Images produits sur WooCommerce ou Shopify : moins de poids, plus de conversions.',
150
- 'Photos de blog et articles de contenu : meilleur score PageSpeed sans retoucher le design.',
151
- 'Bannières web et créations publicitaires display : fichiers plus légers, même netteté.',
139
+ 'Images produits sur WooCommerce ou Shopify: moins de poids, plus de conversions.',
140
+ 'Photos de blog et articles de contenu: meilleur score PageSpeed sans retoucher le design.',
141
+ 'Bannières web et créations publicitaires display: fichiers plus légers, même netteté.',
152
142
  'Galeries de portfolio pour l\'architecture, la photographie ou le design.',
153
143
  'Miniatures de vidéo sur les sites de streaming ou plateformes de cours en ligne.',
154
144
  ],
@@ -160,7 +150,7 @@ const seo: JpgAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'Convertir vos JPG en WebP est aujourd\'hui l\'une des optimisations les plus simples et les plus rentables que vous puissiez appliquer à n\'importe quel site web. Avec cet outil, vous le faites en quelques secondes, gratuitement, et sans que vos images ne quittent jamais votre appareil. Moins de kilo-octets, meilleur LCP, pages plus rapides le tout avec exactement le même rendu visuel qu\'avant.',
153
+ html: 'Convertir vos JPG en WebP est aujourd\'hui l\'une des optimisations les plus simples et les plus rentables que vous puissiez appliquer à n\'importe quel site web. Avec cet outil, vous le faites en quelques secondes, gratuitement, et sans que vos images ne quittent jamais votre appareil. Moins de kilo-octets, meilleur LCP, pages plus rapides - le tout avec exactement le même rendu visuel qu\'avant.',
164
154
  },
165
155
  ];
166
156