@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 { WebpAJpgLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'JPEG.org: стандарты JPEG',
57
- url: 'https://jpeg.org/jpeg/',
58
- },
59
- {
60
- name: 'Mozilla Developer Network - image/jpeg',
61
- url: 'https://developer.mozilla.org/ru/docs/Web/Media/Formats/Image_types#jpeg',
62
- },
63
- {
64
- name: 'Совместимость WebP и JPEG',
65
- url: 'https://developers.google.com/speed/webp/faq',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAJpgLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -74,7 +60,7 @@ const seo: WebpAJpgLocaleContent['seo'] = [
74
60
  },
75
61
  {
76
62
  type: 'paragraph',
77
- html: '<strong>WebP</strong> это ставка Google на эффективность: более легкие изображения при качестве, сопоставимом с традиционным JPG. Однако совместимость остается проблемой в реальном мире. Почтовые клиенты, такие как Outlook, устаревшее ПО для дизайна, мессенджеры и корпоративные рабочие процессы по-прежнему зависят от вездесущего <strong>JPG</strong>. Конвертирование WebP в JPG это мост между современным вебом и реальностью.',
63
+ html: '<strong>WebP</strong> - это ставка Google на эффективность: более легкие изображения при качестве, сопоставимом с традиционным JPG. Однако совместимость остается проблемой в реальном мире. Почтовые клиенты, такие как Outlook, устаревшее ПО для дизайна, мессенджеры и корпоративные рабочие процессы по-прежнему зависят от вездесущего <strong>JPG</strong>. Конвертирование WebP в JPG - это мост между современным вебом и реальностью.',
78
64
  },
79
65
  {
80
66
  type: 'title',
@@ -83,11 +69,11 @@ const seo: WebpAJpgLocaleContent['seo'] = [
83
69
  },
84
70
  {
85
71
  type: 'paragraph',
86
- html: 'WebP превосходен в контролируемых средах: современные веб-сайты в Chrome, Edge или Firefox, где совместимость браузеров гарантирована. Его превосходное сжатие уменьшает размер файла на 2535% по сравнению с эквивалентным JPG, улучшая время загрузки и показатели Core Web Vitals. Это идеальный формат, когда вы контролируете среду просмотра.',
72
+ html: 'WebP превосходен в контролируемых средах: современные веб-сайты в Chrome, Edge или Firefox, где совместимость браузеров гарантирована. Его превосходное сжатие уменьшает размер файла на 25-35% по сравнению с эквивалентным JPG, улучшая время загрузки и показатели Core Web Vitals. Это идеальный формат, когда вы контролируете среду просмотра.',
87
73
  },
88
74
  {
89
75
  type: 'paragraph',
90
- html: 'JPG, с другой стороны, работает в <em>абсолютно любом контексте</em>: вложения в электронную почту, презентации PowerPoint, документы Word, домашние принтеры, старые приложения для редактирования и социальные сети без исключения. Если вам нужно, чтобы кто-то открыл ваше изображение без технических сложностей, JPG правильный ответ.',
76
+ html: 'JPG, с другой стороны, работает в <em>абсолютно любом контексте</em>: вложения в электронную почту, презентации PowerPoint, документы Word, домашние принтеры, старые приложения для редактирования и социальные сети без исключения. Если вам нужно, чтобы кто-то открыл ваше изображение без технических сложностей, JPG - правильный ответ.',
91
77
  },
92
78
  {
93
79
  type: 'title',
@@ -134,12 +120,12 @@ const seo: WebpAJpgLocaleContent['seo'] = [
134
120
  },
135
121
  {
136
122
  type: 'paragraph',
137
- html: 'Заключительный этап экспорт: метод Canvas <code>toDataURL(\'image/jpeg\')</code> преобразует пиксели холста в высококачественный поток байтов сжатого JPG. Этот поток доставляется непосредственно в систему загрузки браузера без какой-либо сетевой активности. Весь процесс занимает миллисекунды даже для многомегапиксельных изображений.',
123
+ html: 'Заключительный этап - экспорт: метод Canvas <code>toDataURL(\'image/jpeg\')</code> преобразует пиксели холста в высококачественный поток байтов сжатого JPG. Этот поток доставляется непосредственно в систему загрузки браузера без какой-либо сетевой активности. Весь процесс занимает миллисекунды даже для многомегапиксельных изображений.',
138
124
  },
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Совет по совместимости',
142
- html: 'При обмене фотографиями с обычными пользователями или отправке по почте всегда используйте JPG никаких проблем с совместимостью в любых почтовых клиентах, ОС или устройствах, без исключений и неприятных сюрпризов.',
128
+ html: 'При обмене фотографиями с обычными пользователями или отправке по почте всегда используйте JPG - никаких проблем с совместимостью в любых почтовых клиентах, ОС или устройствах, без исключений и неприятных сюрпризов.',
143
129
  },
144
130
  {
145
131
  type: 'title',
@@ -164,7 +150,7 @@ const seo: WebpAJpgLocaleContent['seo'] = [
164
150
  },
165
151
  {
166
152
  type: 'paragraph',
167
- html: 'WebP это будущее изображений в вебе, но JPG остается королем универсальной совместимости. Этот инструмент позволяет преодолеть этот разрыв за считанные секунды, полностью приватно и без установки программ. Ваше изображение никогда не покидает ваше устройство.',
153
+ html: 'WebP - это будущее изображений в вебе, но JPG остается королем универсальной совместимости. Этот инструмент позволяет преодолеть этот разрыв за считанные секунды, полностью приватно и без установки программ. Ваше изображение никогда не покидает ваше устройство.',
168
154
  },
169
155
  ];
170
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 { WebpAJpgLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'JPEG.org: JPEG-standarderna',
57
- url: 'https://jpeg.org/jpeg/',
58
- },
59
- {
60
- name: 'Mozilla Developer Network - image/jpeg',
61
- url: 'https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types#jpeg',
62
- },
63
- {
64
- name: 'Kompatibilitet mellan WebP och JPEG',
65
- url: 'https://developers.google.com/speed/webp/faq',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAJpgLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -83,7 +69,7 @@ const seo: WebpAJpgLocaleContent['seo'] = [
83
69
  },
84
70
  {
85
71
  type: 'paragraph',
86
- html: 'WebP briljerar i kontrollerade miljöer: moderna webbplatser i Chrome, Edge eller Firefox där webbläsarkompatibilitet kan garanteras. Dess överlägsna komprimering minskar filstorleken med 2535 % jämfört med motsvarande JPG, vilket förbättrar laddningstider och mätvärden för Core Web Vitals. Det är det ideala formatet när du kontrollerar visningsmiljön.',
72
+ html: 'WebP briljerar i kontrollerade miljöer: moderna webbplatser i Chrome, Edge eller Firefox där webbläsarkompatibilitet kan garanteras. Dess överlägsna komprimering minskar filstorleken med 25-35 % jämfört med motsvarande JPG, vilket förbättrar laddningstider och mätvärden för Core Web Vitals. Det är det ideala formatet när du kontrollerar visningsmiljön.',
87
73
  },
88
74
  {
89
75
  type: 'paragraph',
@@ -139,7 +125,7 @@ const seo: WebpAJpgLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Tips för kompatibilitet',
142
- html: 'När du delar foton med icke-tekniska användare eller skickar dem via e-post, använd alltid JPG noll kompatibilitetsproblem i alla e-postklienter, operativsystem eller enheter, inga undantag och inga obehagliga överraskningar.',
128
+ html: 'När du delar foton med icke-tekniska användare eller skickar dem via e-post, använd alltid JPG - noll kompatibilitetsproblem i alla e-postklienter, operativsystem eller enheter, inga undantag och inga obehagliga överraskningar.',
143
129
  },
144
130
  {
145
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 { WebpAJpgLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'JPEG.org: JPEG standartları',
57
- url: 'https://jpeg.org/jpeg/',
58
- },
59
- {
60
- name: 'Mozilla Developer Network - image/jpeg',
61
- url: 'https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types#jpeg',
62
- },
63
- {
64
- name: 'WebP\'den JPEG\'e uyumluluk',
65
- url: 'https://developers.google.com/speed/webp/faq',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAJpgLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -139,7 +125,7 @@ const seo: WebpAJpgLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Uyumluluk ipucu',
142
- html: 'Fotoğrafları teknik olmayan kullanıcılarla paylaşırken veya e-posta yoluyla gönderirken daima JPG kullanın herhangi bir e-posta istemcisi, işletim sistemi veya cihazda sıfır uyumluluk sorunu, istisna yok ve hoş olmayan sürprizler yok.',
128
+ html: 'Fotoğrafları teknik olmayan kullanıcılarla paylaşırken veya e-posta yoluyla gönderirken daima JPG kullanın - herhangi bir e-posta istemcisi, işletim sistemi veya cihazda sıfır uyumluluk sorunu, istisna yok ve hoş olmayan sürprizler yok.',
143
129
  },
144
130
  {
145
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 { WebpAJpgLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'JPEG.org: JPEG 标准',
57
- url: 'https://jpeg.org/jpeg/',
58
- },
59
- {
60
- name: 'Mozilla Developer Network - image/jpeg',
61
- url: 'https://developer.mozilla.org/zh-CN/docs/Web/Media/Formats/Image_types#jpeg',
62
- },
63
- {
64
- name: 'WebP 到 JPEG 的兼容性',
65
- url: 'https://developers.google.com/speed/webp/faq',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAJpgLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -139,7 +125,7 @@ const seo: WebpAJpgLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: '兼容性建议',
142
- html: '与非技术用户分享照片或通过邮件发送时, 请始终使用 JPG——在任何邮件客户端、操作系统或设备上都没有任何兼容性问题, 没有例外, 也没有令人不快的意外。',
128
+ html: '与非技术用户分享照片或通过邮件发送时, 请始终使用 JPG-在任何邮件客户端、操作系统或设备上都没有任何兼容性问题, 没有例外, 也没有令人不快的意外。',
143
129
  },
144
130
  {
145
131
  type: 'title',
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await webpAJpg.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,16 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'Dokumentation der WebP-API und -Bibliothek',
6
+ url: 'https://developers.google.com/speed/webp/docs/api',
7
+ },
8
+ {
9
+ name: 'HTML Canvas 2D Kontext Spezifikation',
10
+ url: 'https://html.spec.whatwg.org/multipage/canvas.html',
11
+ },
12
+ {
13
+ name: 'Can I use: WebP-Bildformat',
14
+ url: 'https://caniuse.com/webp',
15
+ },
16
+ ];
@@ -27,3 +27,5 @@ export const webpAPng: 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 { WebpAPngLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'Dokumentation der WebP-API und -Bibliothek',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'HTML Canvas 2D Kontext Spezifikation',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: WebP-Bildformat',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -139,7 +125,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Tipp für Editoren',
142
- html: 'Verwenden Sie PNG, wenn Sie das Bild weiter bearbeiten müssen. Die verlustfreie Kompression garantiert, dass durch wiederholtes Speichern keine Qualitätsverluste entstehen entscheidend bei der Arbeit mit Ebenen, Masken oder Farbanpassungen in Photoshop oder Figma.',
128
+ html: 'Verwenden Sie PNG, wenn Sie das Bild weiter bearbeiten müssen. Die verlustfreie Kompression garantiert, dass durch wiederholtes Speichern keine Qualitätsverluste entstehen - entscheidend bei der Arbeit mit Ebenen, Masken oder Farbanpassungen in Photoshop oder Figma.',
143
129
  },
144
130
  {
145
131
  type: 'title',
@@ -164,7 +150,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
164
150
  },
165
151
  {
166
152
  type: 'paragraph',
167
- html: 'Wenn WebP das Format für Webserver ist, dann ist PNG das Format für das Designstudio. Dieses Tool konvertiert Ihre WebP-Assets in produktionsbereite PNGs mit intakter Transparenz und maximaler Qualität alles in Ihrem Browser und ohne dass Ihre Dateien jemals Ihren Rechner verlassen.',
153
+ html: 'Wenn WebP das Format für Webserver ist, dann ist PNG das Format für das Designstudio. Dieses Tool konvertiert Ihre WebP-Assets in produktionsbereite PNGs mit intakter Transparenz und maximaler Qualität - alles in Ihrem Browser und ohne dass Ihre Dateien jemals Ihren Rechner verlassen.',
168
154
  },
169
155
  ];
170
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 { WebpAPngLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'WebP API and Library Documentation',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'HTML Canvas 2D Context Specification',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: WebP image format',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -139,7 +125,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Tip for editors',
142
- html: 'Use PNG when you need to continue editing the image. Lossless compression guarantees no quality degradation from repeated saves critical when working with layers, masks or colour adjustments in Photoshop or Figma.',
128
+ html: 'Use PNG when you need to continue editing the image. Lossless compression guarantees no quality degradation from repeated saves - critical when working with layers, masks or colour adjustments in Photoshop or Figma.',
143
129
  },
144
130
  {
145
131
  type: 'title',
@@ -164,7 +150,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
164
150
  },
165
151
  {
166
152
  type: 'paragraph',
167
- html: 'If WebP is the web server format, PNG is the design studio format. This tool converts your WebP assets into production-ready PNGs, with transparency intact and maximum quality all in your browser and without your files ever leaving your machine.',
153
+ html: 'If WebP is the web server format, PNG is the design studio format. This tool converts your WebP assets into production-ready PNGs, with transparency intact and maximum quality - all in your browser and without your files ever leaving your machine.',
168
154
  },
169
155
  ];
170
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 { WebpAPngLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'WebP API and Library Documentation',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'HTML Canvas 2D Context Specification',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: WebP image format',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
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 { WebpAPngLocaleContent } from '../index';
@@ -51,30 +52,15 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'Documentation WebP API et bibliothèque',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'Spécification HTML Canvas 2D Context',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: format d\'image WebP',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
72
- text: 'Convertisseur WebP vers PNG : Le Choix Professionnel pour l\'Édition et le Design',
58
+ text: 'Convertisseur WebP vers PNG: Le Choix Professionnel pour l\'Édition et le Design',
73
59
  level: 2,
74
60
  },
75
61
  {
76
62
  type: 'paragraph',
77
- html: 'Lorsqu\'un designer télécharge une ressource graphique au format <strong>WebP</strong> et tente de l\'ouvrir dans Photoshop, Figma ou Illustrator, le résultat peut être frustrant : le fichier ne se charge pas ou perd en qualité. Le format <strong>PNG</strong> est le standard incontesté de l\'édition professionnelle : compression sans perte, canal alpha complet et compatibilité garantie avec toute la chaîne de production créative.',
63
+ html: 'Lorsqu\'un designer télécharge une ressource graphique au format <strong>WebP</strong> et tente de l\'ouvrir dans Photoshop, Figma ou Illustrator, le résultat peut être frustrant: le fichier ne se charge pas ou perd en qualité. Le format <strong>PNG</strong> est le standard incontesté de l\'édition professionnelle: compression sans perte, canal alpha complet et compatibilité garantie avec toute la chaîne de production créative.',
78
64
  },
79
65
  {
80
66
  type: 'title',
@@ -83,15 +69,15 @@ const seo: WebpAPngLocaleContent['seo'] = [
83
69
  },
84
70
  {
85
71
  type: 'paragraph',
86
- html: 'WebP est un format de production web : ses algorithmes de compression sont optimisés pour réduire le poids de transfert, pas pour préserver une fidélité maximale dans les flux d\'édition itératifs. Chaque fois que vous sauvegardez un WebP modifié, le codec applique à nouveau la compression. Pour les projets où un fichier sera modifié de nombreuses fois, cela représente une dégradation cumulative de la qualité.',
72
+ html: 'WebP est un format de production web: ses algorithmes de compression sont optimisés pour réduire le poids de transfert, pas pour préserver une fidélité maximale dans les flux d\'édition itératifs. Chaque fois que vous sauvegardez un WebP modifié, le codec applique à nouveau la compression. Pour les projets où un fichier sera modifié de nombreuses fois, cela représente une dégradation cumulative de la qualité.',
87
73
  },
88
74
  {
89
75
  type: 'paragraph',
90
- html: 'Le PNG utilise une compression <strong>sans perte</strong> : les données de chaque pixel sont préservées intégralement, quel que soit le nombre de fois où vous sauvegardez. C\'est le format choisi par les designers UI/UX, les illustrateurs numériques et les équipes de branding qui ont besoin de maintenir l\'intégrité visuelle sur des dizaines de révisions. Des outils comme Photoshop, Figma, Sketch et Illustrator traitent le PNG comme leur principal format d\'exportation.',
76
+ html: 'Le PNG utilise une compression <strong>sans perte</strong>: les données de chaque pixel sont préservées intégralement, quel que soit le nombre de fois où vous sauvegardez. C\'est le format choisi par les designers UI/UX, les illustrateurs numériques et les équipes de branding qui ont besoin de maintenir l\'intégrité visuelle sur des dizaines de révisions. Des outils comme Photoshop, Figma, Sketch et Illustrator traitent le PNG comme leur principal format d\'exportation.',
91
77
  },
92
78
  {
93
79
  type: 'title',
94
- text: 'Comparatif : Conversion Locale vs Cloud',
80
+ text: 'Comparatif: Conversion Locale vs Cloud',
95
81
  level: 3,
96
82
  },
97
83
  {
@@ -130,7 +116,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
130
116
  },
131
117
  {
132
118
  type: 'paragraph',
133
- html: 'Les navigateurs modernes peuvent décoder le WebP nativement. Notre outil exploite cette capacité pour charger le fichier dans un élément JavaScript <strong>Image</strong>, puis le dessine sur un canvas HTML5 aux mêmes dimensions que l\'original. Contrairement à la conversion en JPG, aucun remplissage de fond n\'est nécessaire ici : le canvas conserve le canal alpha complet.',
119
+ html: 'Les navigateurs modernes peuvent décoder le WebP nativement. Notre outil exploite cette capacité pour charger le fichier dans un élément JavaScript <strong>Image</strong>, puis le dessine sur un canvas HTML5 aux mêmes dimensions que l\'original. Contrairement à la conversion en JPG, aucun remplissage de fond n\'est nécessaire ici: le canvas conserve le canal alpha complet.',
134
120
  },
135
121
  {
136
122
  type: 'paragraph',
@@ -139,7 +125,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Conseil pour les éditeurs',
142
- html: 'Utilisez le PNG lorsque vous devez continuer à éditer l\'image. La compression sans perte garantit qu\'il n\'y aura aucune dégradation de qualité lors des sauvegardes répétées essentiel quand vous travaillez avec des calques, des masques ou des ajustements de couleur dans Photoshop ou Figma.',
128
+ html: 'Utilisez le PNG lorsque vous devez continuer à éditer l\'image. La compression sans perte garantit qu\'il n\'y aura aucune dégradation de qualité lors des sauvegardes répétées - essentiel quand vous travaillez avec des calques, des masques ou des ajustements de couleur dans Photoshop ou Figma.',
143
129
  },
144
130
  {
145
131
  type: 'title',
@@ -164,7 +150,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
164
150
  },
165
151
  {
166
152
  type: 'paragraph',
167
- html: 'Si le WebP est le format du serveur web, le PNG est le format du studio de design. Cet outil convertit vos ressources WebP en PNG prêts à la production, avec les transparences intactes et une qualité maximale le tout dans votre navigateur, sans que vos fichiers ne quittent jamais votre machine.',
153
+ html: 'Si le WebP est le format du serveur web, le PNG est le format du studio de design. Cet outil convertit vos ressources WebP en PNG prêts à la production, avec les transparences intactes et une qualité maximale - le tout dans votre navigateur, sans que vos fichiers ne quittent jamais votre machine.',
168
154
  },
169
155
  ];
170
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 { WebpAPngLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'Dokumentasi API dan Perpustakaan WebP',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'Spesifikasi Konteks 2D HTML Canvas',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: format gambar WebP',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -139,7 +125,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Tip untuk editor',
142
- html: 'Gunakan PNG saat Anda perlu terus mengedit gambar. Kompresi lossless menjamin tidak ada penurunan kualitas akibat penyimpanan berulang kali sangat penting saat bekerja dengan lapisan, masker, atau penyesuaian warna di Photoshop atau Figma.',
128
+ html: 'Gunakan PNG saat Anda perlu terus mengedit gambar. Kompresi lossless menjamin tidak ada penurunan kualitas akibat penyimpanan berulang kali - sangat penting saat bekerja dengan lapisan, masker, atau penyesuaian warna di Photoshop atau Figma.',
143
129
  },
144
130
  {
145
131
  type: 'title',
@@ -164,7 +150,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
164
150
  },
165
151
  {
166
152
  type: 'paragraph',
167
- html: 'Jika WebP adalah format server web, maka PNG adalah format studio desain. Alat ini mengonversi aset WebP Anda menjadi PNG siap produksi, dengan transparansi yang utuh dan kualitas maksimal semuanya di browser Anda dan tanpa file Anda pernah meninggalkan mesin Anda.',
153
+ html: 'Jika WebP adalah format server web, maka PNG adalah format studio desain. Alat ini mengonversi aset WebP Anda menjadi PNG siap produksi, dengan transparansi yang utuh dan kualitas maksimal - semuanya di browser Anda dan tanpa file Anda pernah meninggalkan mesin Anda.',
168
154
  },
169
155
  ];
170
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 { WebpAPngLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'Documentazione API e Libreria WebP',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'Specifica HTML Canvas 2D Context',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: formato immagine WebP',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -139,7 +125,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Suggerimento per editor',
142
- html: 'Usa il PNG quando hai bisogno di continuare a modificare l\'immagine. La compressione lossless garantisce che non ci siano degradazioni della qualità dovute a salvataggi ripetuti fondamentale quando si lavora con livelli, maschere o regolazioni del colore in Photoshop o Figma.',
128
+ html: 'Usa il PNG quando hai bisogno di continuare a modificare l\'immagine. La compressione lossless garantisce che non ci siano degradazioni della qualità dovute a salvataggi ripetuti - fondamentale quando si lavora con livelli, maschere o regolazioni del colore in Photoshop o Figma.',
143
129
  },
144
130
  {
145
131
  type: 'title',
@@ -164,7 +150,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
164
150
  },
165
151
  {
166
152
  type: 'paragraph',
167
- html: 'Se il WebP è il formato del server web, il PNG è il formato dello studio di design. Questo strumento converte i tuoi asset WebP in PNG pronti per la produzione, con trasparenza intatta e massima qualità tutto nel tuo browser e senza che i tuoi file lascino mai la tua macchina.',
153
+ html: 'Se il WebP è il formato del server web, il PNG è il formato dello studio di design. Questo strumento converte i tuoi asset WebP in PNG pronti per la produzione, con trasparenza intatta e massima qualità - tutto nel tuo browser e senza che i tuoi file lascino mai la tua macchina.',
168
154
  },
169
155
  ];
170
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 { WebpAPngLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'WebP APIおよびライブラリドキュメント',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'HTML Canvas 2Dコンテキスト仕様',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: WebP画像形式',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
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 { WebpAPngLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'WebP API 및 라이브러리 문서',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'HTML Canvas 2D 컨텍스트 사양',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: WebP 이미지 형식',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
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 { WebpAPngLocaleContent } from '../index';
@@ -51,21 +52,6 @@ const howTo: WebpAPngLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
- {
56
- name: 'WebP API en Bibliotheek Documentatie',
57
- url: 'https://developers.google.com/speed/webp/docs/api',
58
- },
59
- {
60
- name: 'HTML Canvas 2D Context Specificatie',
61
- url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
- },
63
- {
64
- name: 'Can I use: WebP-afbeeldingsformaat',
65
- url: 'https://caniuse.com/webp',
66
- },
67
- ];
68
-
69
55
  const seo: WebpAPngLocaleContent['seo'] = [
70
56
  {
71
57
  type: 'title',
@@ -139,7 +125,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
139
125
  {
140
126
  type: 'tip',
141
127
  title: 'Tip voor bewerkers',
142
- html: 'Gebruik PNG wanneer je de afbeelding verder moet bewerken. Verliesvrije compressie garandeert dat er geen kwaliteitsverlies optreedt door herhaaldelijk opslaan cruciaal bij het werken met lagen, maskers of kleuraanpassingen in Photoshop of Figma.',
128
+ html: 'Gebruik PNG wanneer je de afbeelding verder moet bewerken. Verliesvrije compressie garandeert dat er geen kwaliteitsverlies optreedt door herhaaldelijk opslaan - cruciaal bij het werken met lagen, maskers of kleuraanpassingen in Photoshop of Figma.',
143
129
  },
144
130
  {
145
131
  type: 'title',
@@ -164,7 +150,7 @@ const seo: WebpAPngLocaleContent['seo'] = [
164
150
  },
165
151
  {
166
152
  type: 'paragraph',
167
- html: 'Als WebP het formaat voor webservers is, dan is PNG het formaat voor de ontwerpstudio. Deze tool converteert je WebP-assets naar productieklare PNG\'s, met behoud van transparantie en maximale kwaliteit allemaal in je browser en zonder dat je bestanden je machine ooit verlaten.',
153
+ html: 'Als WebP het formaat voor webservers is, dan is PNG het formaat voor de ontwerpstudio. Deze tool converteert je WebP-assets naar productieklare PNG\'s, met behoud van transparantie en maximale kwaliteit - allemaal in je browser en zonder dat je bestanden je machine ooit verlaten.',
168
154
  },
169
155
  ];
170
156