@jjlmoya/utils-converters 1.16.0 → 1.19.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 (394) hide show
  1. package/package.json +5 -3
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/fr.ts +9 -9
  4. package/src/category/i18n/ru.ts +1 -1
  5. package/src/category/i18n/sv.ts +1 -1
  6. package/src/data.ts +0 -21
  7. package/src/layouts/PreviewLayout.astro +2 -1
  8. package/src/pages/[locale]/[slug].astro +28 -12
  9. package/src/tests/diacritics_density.test.ts +118 -0
  10. package/src/tests/inverted_punctuation.test.ts +84 -0
  11. package/src/tests/no_en_dash.test.ts +70 -0
  12. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  13. package/src/tests/script_density.test.ts +94 -0
  14. package/src/tests/seo_parity.test.ts +60 -0
  15. package/src/tests/shared-test-helpers.ts +56 -0
  16. package/src/tests/tool_exports.test.ts +34 -0
  17. package/src/tool/avifAJpg/bibliography.ts +12 -0
  18. package/src/tool/avifAJpg/entry.ts +2 -0
  19. package/src/tool/avifAJpg/i18n/de.ts +2 -12
  20. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  21. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  22. package/src/tool/avifAJpg/i18n/fr.ts +11 -21
  23. package/src/tool/avifAJpg/i18n/id.ts +2 -12
  24. package/src/tool/avifAJpg/i18n/it.ts +2 -12
  25. package/src/tool/avifAJpg/i18n/ja.ts +1 -11
  26. package/src/tool/avifAJpg/i18n/ko.ts +1 -11
  27. package/src/tool/avifAJpg/i18n/nl.ts +2 -12
  28. package/src/tool/avifAJpg/i18n/pl.ts +2 -12
  29. package/src/tool/avifAJpg/i18n/pt.ts +2 -12
  30. package/src/tool/avifAJpg/i18n/ru.ts +7 -17
  31. package/src/tool/avifAJpg/i18n/sv.ts +2 -12
  32. package/src/tool/avifAJpg/i18n/tr.ts +1 -11
  33. package/src/tool/avifAJpg/i18n/zh.ts +4 -14
  34. package/src/tool/avifAJpg/seo.astro +2 -1
  35. package/src/tool/avifAPng/bibliography.ts +12 -0
  36. package/src/tool/avifAPng/entry.ts +2 -0
  37. package/src/tool/avifAPng/i18n/de.ts +4 -14
  38. package/src/tool/avifAPng/i18n/en.ts +4 -14
  39. package/src/tool/avifAPng/i18n/es.ts +4 -14
  40. package/src/tool/avifAPng/i18n/fr.ts +10 -20
  41. package/src/tool/avifAPng/i18n/id.ts +4 -14
  42. package/src/tool/avifAPng/i18n/it.ts +1 -11
  43. package/src/tool/avifAPng/i18n/ja.ts +1 -11
  44. package/src/tool/avifAPng/i18n/ko.ts +1 -11
  45. package/src/tool/avifAPng/i18n/nl.ts +4 -14
  46. package/src/tool/avifAPng/i18n/pl.ts +4 -14
  47. package/src/tool/avifAPng/i18n/pt.ts +4 -14
  48. package/src/tool/avifAPng/i18n/ru.ts +5 -15
  49. package/src/tool/avifAPng/i18n/sv.ts +4 -14
  50. package/src/tool/avifAPng/i18n/tr.ts +1 -11
  51. package/src/tool/avifAPng/i18n/zh.ts +3 -13
  52. package/src/tool/avifAPng/seo.astro +2 -1
  53. package/src/tool/avifAWebp/bibliography.ts +12 -0
  54. package/src/tool/avifAWebp/entry.ts +2 -0
  55. package/src/tool/avifAWebp/i18n/de.ts +6 -16
  56. package/src/tool/avifAWebp/i18n/en.ts +6 -16
  57. package/src/tool/avifAWebp/i18n/es.ts +6 -16
  58. package/src/tool/avifAWebp/i18n/fr.ts +13 -23
  59. package/src/tool/avifAWebp/i18n/id.ts +6 -16
  60. package/src/tool/avifAWebp/i18n/it.ts +1 -11
  61. package/src/tool/avifAWebp/i18n/ja.ts +1 -11
  62. package/src/tool/avifAWebp/i18n/ko.ts +2 -12
  63. package/src/tool/avifAWebp/i18n/nl.ts +6 -16
  64. package/src/tool/avifAWebp/i18n/pl.ts +6 -16
  65. package/src/tool/avifAWebp/i18n/pt.ts +6 -16
  66. package/src/tool/avifAWebp/i18n/ru.ts +7 -17
  67. package/src/tool/avifAWebp/i18n/sv.ts +6 -16
  68. package/src/tool/avifAWebp/i18n/tr.ts +2 -12
  69. package/src/tool/avifAWebp/i18n/zh.ts +6 -16
  70. package/src/tool/avifAWebp/seo.astro +2 -1
  71. package/src/tool/bmpAJpg/bibliography.ts +12 -0
  72. package/src/tool/bmpAJpg/entry.ts +2 -0
  73. package/src/tool/bmpAJpg/i18n/de.ts +1 -11
  74. package/src/tool/bmpAJpg/i18n/en.ts +1 -11
  75. package/src/tool/bmpAJpg/i18n/es.ts +1 -11
  76. package/src/tool/bmpAJpg/i18n/fr.ts +9 -19
  77. package/src/tool/bmpAJpg/i18n/id.ts +1 -11
  78. package/src/tool/bmpAJpg/i18n/it.ts +1 -11
  79. package/src/tool/bmpAJpg/i18n/ja.ts +1 -11
  80. package/src/tool/bmpAJpg/i18n/ko.ts +1 -11
  81. package/src/tool/bmpAJpg/i18n/nl.ts +1 -11
  82. package/src/tool/bmpAJpg/i18n/pl.ts +1 -11
  83. package/src/tool/bmpAJpg/i18n/pt.ts +1 -11
  84. package/src/tool/bmpAJpg/i18n/ru.ts +5 -15
  85. package/src/tool/bmpAJpg/i18n/sv.ts +1 -11
  86. package/src/tool/bmpAJpg/i18n/tr.ts +1 -11
  87. package/src/tool/bmpAJpg/i18n/zh.ts +1 -11
  88. package/src/tool/bmpAJpg/seo.astro +2 -1
  89. package/src/tool/bmpAPng/bibliography.ts +12 -0
  90. package/src/tool/bmpAPng/entry.ts +2 -0
  91. package/src/tool/bmpAPng/i18n/de.ts +2 -12
  92. package/src/tool/bmpAPng/i18n/en.ts +3 -13
  93. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  94. package/src/tool/bmpAPng/i18n/fr.ts +12 -22
  95. package/src/tool/bmpAPng/i18n/id.ts +2 -12
  96. package/src/tool/bmpAPng/i18n/it.ts +2 -12
  97. package/src/tool/bmpAPng/i18n/ja.ts +1 -11
  98. package/src/tool/bmpAPng/i18n/ko.ts +1 -11
  99. package/src/tool/bmpAPng/i18n/nl.ts +2 -12
  100. package/src/tool/bmpAPng/i18n/pl.ts +2 -12
  101. package/src/tool/bmpAPng/i18n/pt.ts +2 -12
  102. package/src/tool/bmpAPng/i18n/ru.ts +9 -19
  103. package/src/tool/bmpAPng/i18n/sv.ts +2 -12
  104. package/src/tool/bmpAPng/i18n/tr.ts +1 -11
  105. package/src/tool/bmpAPng/i18n/zh.ts +1 -11
  106. package/src/tool/bmpAPng/seo.astro +2 -1
  107. package/src/tool/bmpAWebp/bibliography.ts +12 -0
  108. package/src/tool/bmpAWebp/entry.ts +2 -0
  109. package/src/tool/bmpAWebp/i18n/de.ts +8 -18
  110. package/src/tool/bmpAWebp/i18n/en.ts +8 -18
  111. package/src/tool/bmpAWebp/i18n/es.ts +8 -18
  112. package/src/tool/bmpAWebp/i18n/fr.ts +13 -23
  113. package/src/tool/bmpAWebp/i18n/id.ts +8 -18
  114. package/src/tool/bmpAWebp/i18n/it.ts +8 -18
  115. package/src/tool/bmpAWebp/i18n/ja.ts +7 -17
  116. package/src/tool/bmpAWebp/i18n/ko.ts +7 -17
  117. package/src/tool/bmpAWebp/i18n/nl.ts +8 -18
  118. package/src/tool/bmpAWebp/i18n/pl.ts +8 -18
  119. package/src/tool/bmpAWebp/i18n/pt.ts +8 -18
  120. package/src/tool/bmpAWebp/i18n/ru.ts +10 -20
  121. package/src/tool/bmpAWebp/i18n/sv.ts +8 -18
  122. package/src/tool/bmpAWebp/i18n/tr.ts +8 -18
  123. package/src/tool/bmpAWebp/i18n/zh.ts +8 -18
  124. package/src/tool/bmpAWebp/seo.astro +2 -1
  125. package/src/tool/gifAJpg/bibliography.ts +12 -0
  126. package/src/tool/gifAJpg/entry.ts +2 -0
  127. package/src/tool/gifAJpg/i18n/de.ts +1 -11
  128. package/src/tool/gifAJpg/i18n/en.ts +1 -11
  129. package/src/tool/gifAJpg/i18n/es.ts +1 -11
  130. package/src/tool/gifAJpg/i18n/fr.ts +9 -19
  131. package/src/tool/gifAJpg/i18n/id.ts +1 -11
  132. package/src/tool/gifAJpg/i18n/it.ts +1 -11
  133. package/src/tool/gifAJpg/i18n/ja.ts +1 -11
  134. package/src/tool/gifAJpg/i18n/ko.ts +1 -11
  135. package/src/tool/gifAJpg/i18n/nl.ts +1 -11
  136. package/src/tool/gifAJpg/i18n/pl.ts +1 -11
  137. package/src/tool/gifAJpg/i18n/pt.ts +1 -11
  138. package/src/tool/gifAJpg/i18n/ru.ts +2 -12
  139. package/src/tool/gifAJpg/i18n/sv.ts +1 -11
  140. package/src/tool/gifAJpg/i18n/tr.ts +1 -11
  141. package/src/tool/gifAJpg/i18n/zh.ts +1 -11
  142. package/src/tool/gifAJpg/seo.astro +2 -1
  143. package/src/tool/gifAPng/bibliography.ts +12 -0
  144. package/src/tool/gifAPng/entry.ts +2 -0
  145. package/src/tool/gifAPng/i18n/de.ts +2 -12
  146. package/src/tool/gifAPng/i18n/en.ts +3 -13
  147. package/src/tool/gifAPng/i18n/es.ts +2 -12
  148. package/src/tool/gifAPng/i18n/fr.ts +11 -21
  149. package/src/tool/gifAPng/i18n/id.ts +2 -12
  150. package/src/tool/gifAPng/i18n/it.ts +2 -12
  151. package/src/tool/gifAPng/i18n/ja.ts +1 -11
  152. package/src/tool/gifAPng/i18n/ko.ts +1 -11
  153. package/src/tool/gifAPng/i18n/nl.ts +2 -12
  154. package/src/tool/gifAPng/i18n/pl.ts +3 -13
  155. package/src/tool/gifAPng/i18n/pt.ts +2 -12
  156. package/src/tool/gifAPng/i18n/ru.ts +3 -13
  157. package/src/tool/gifAPng/i18n/sv.ts +3 -13
  158. package/src/tool/gifAPng/i18n/tr.ts +1 -11
  159. package/src/tool/gifAPng/i18n/zh.ts +2 -12
  160. package/src/tool/gifAPng/seo.astro +2 -1
  161. package/src/tool/gifAWebp/bibliography.ts +12 -0
  162. package/src/tool/gifAWebp/entry.ts +2 -0
  163. package/src/tool/gifAWebp/i18n/de.ts +3 -13
  164. package/src/tool/gifAWebp/i18n/en.ts +3 -13
  165. package/src/tool/gifAWebp/i18n/es.ts +1 -11
  166. package/src/tool/gifAWebp/i18n/fr.ts +11 -21
  167. package/src/tool/gifAWebp/i18n/id.ts +3 -13
  168. package/src/tool/gifAWebp/i18n/it.ts +1 -11
  169. package/src/tool/gifAWebp/i18n/ja.ts +1 -11
  170. package/src/tool/gifAWebp/i18n/ko.ts +1 -11
  171. package/src/tool/gifAWebp/i18n/nl.ts +3 -13
  172. package/src/tool/gifAWebp/i18n/pl.ts +3 -13
  173. package/src/tool/gifAWebp/i18n/pt.ts +3 -13
  174. package/src/tool/gifAWebp/i18n/ru.ts +7 -17
  175. package/src/tool/gifAWebp/i18n/sv.ts +3 -13
  176. package/src/tool/gifAWebp/i18n/tr.ts +1 -11
  177. package/src/tool/gifAWebp/i18n/zh.ts +4 -14
  178. package/src/tool/gifAWebp/seo.astro +2 -1
  179. package/src/tool/imagenBase64/bibliography.ts +12 -0
  180. package/src/tool/imagenBase64/entry.ts +2 -0
  181. package/src/tool/imagenBase64/i18n/de.ts +7 -17
  182. package/src/tool/imagenBase64/i18n/en.ts +7 -17
  183. package/src/tool/imagenBase64/i18n/es.ts +7 -17
  184. package/src/tool/imagenBase64/i18n/fr.ts +17 -27
  185. package/src/tool/imagenBase64/i18n/id.ts +7 -17
  186. package/src/tool/imagenBase64/i18n/it.ts +6 -16
  187. package/src/tool/imagenBase64/i18n/ja.ts +1 -11
  188. package/src/tool/imagenBase64/i18n/ko.ts +1 -11
  189. package/src/tool/imagenBase64/i18n/nl.ts +7 -17
  190. package/src/tool/imagenBase64/i18n/pl.ts +7 -17
  191. package/src/tool/imagenBase64/i18n/pt.ts +7 -17
  192. package/src/tool/imagenBase64/i18n/ru.ts +9 -19
  193. package/src/tool/imagenBase64/i18n/sv.ts +7 -17
  194. package/src/tool/imagenBase64/i18n/tr.ts +2 -12
  195. package/src/tool/imagenBase64/i18n/zh.ts +7 -17
  196. package/src/tool/imagenBase64/seo.astro +2 -1
  197. package/src/tool/jpgAIco/bibliography.ts +12 -0
  198. package/src/tool/jpgAIco/entry.ts +2 -0
  199. package/src/tool/jpgAIco/i18n/de.ts +9 -19
  200. package/src/tool/jpgAIco/i18n/en.ts +9 -19
  201. package/src/tool/jpgAIco/i18n/es.ts +7 -17
  202. package/src/tool/jpgAIco/i18n/fr.ts +13 -23
  203. package/src/tool/jpgAIco/i18n/id.ts +9 -19
  204. package/src/tool/jpgAIco/i18n/it.ts +3 -13
  205. package/src/tool/jpgAIco/i18n/ja.ts +2 -12
  206. package/src/tool/jpgAIco/i18n/ko.ts +2 -12
  207. package/src/tool/jpgAIco/i18n/nl.ts +9 -19
  208. package/src/tool/jpgAIco/i18n/pl.ts +9 -19
  209. package/src/tool/jpgAIco/i18n/pt.ts +9 -19
  210. package/src/tool/jpgAIco/i18n/ru.ts +11 -21
  211. package/src/tool/jpgAIco/i18n/sv.ts +9 -19
  212. package/src/tool/jpgAIco/i18n/tr.ts +3 -13
  213. package/src/tool/jpgAIco/i18n/zh.ts +9 -19
  214. package/src/tool/jpgAIco/seo.astro +2 -1
  215. package/src/tool/jpgAPng/bibliography.ts +12 -0
  216. package/src/tool/jpgAPng/entry.ts +2 -0
  217. package/src/tool/jpgAPng/i18n/de.ts +7 -17
  218. package/src/tool/jpgAPng/i18n/en.ts +9 -19
  219. package/src/tool/jpgAPng/i18n/es.ts +7 -17
  220. package/src/tool/jpgAPng/i18n/fr.ts +13 -23
  221. package/src/tool/jpgAPng/i18n/id.ts +7 -17
  222. package/src/tool/jpgAPng/i18n/it.ts +5 -15
  223. package/src/tool/jpgAPng/i18n/ja.ts +3 -13
  224. package/src/tool/jpgAPng/i18n/ko.ts +3 -13
  225. package/src/tool/jpgAPng/i18n/nl.ts +7 -17
  226. package/src/tool/jpgAPng/i18n/pl.ts +7 -17
  227. package/src/tool/jpgAPng/i18n/pt.ts +7 -17
  228. package/src/tool/jpgAPng/i18n/ru.ts +10 -20
  229. package/src/tool/jpgAPng/i18n/sv.ts +7 -17
  230. package/src/tool/jpgAPng/i18n/tr.ts +6 -16
  231. package/src/tool/jpgAPng/i18n/zh.ts +8 -18
  232. package/src/tool/jpgAPng/seo.astro +2 -1
  233. package/src/tool/jpgAWebp/bibliography.ts +12 -0
  234. package/src/tool/jpgAWebp/entry.ts +2 -0
  235. package/src/tool/jpgAWebp/i18n/de.ts +10 -20
  236. package/src/tool/jpgAWebp/i18n/en.ts +10 -20
  237. package/src/tool/jpgAWebp/i18n/es.ts +4 -14
  238. package/src/tool/jpgAWebp/i18n/fr.ts +16 -26
  239. package/src/tool/jpgAWebp/i18n/id.ts +10 -20
  240. package/src/tool/jpgAWebp/i18n/it.ts +6 -16
  241. package/src/tool/jpgAWebp/i18n/ja.ts +2 -12
  242. package/src/tool/jpgAWebp/i18n/ko.ts +3 -13
  243. package/src/tool/jpgAWebp/i18n/nl.ts +10 -20
  244. package/src/tool/jpgAWebp/i18n/pl.ts +10 -20
  245. package/src/tool/jpgAWebp/i18n/pt.ts +10 -20
  246. package/src/tool/jpgAWebp/i18n/ru.ts +10 -20
  247. package/src/tool/jpgAWebp/i18n/sv.ts +10 -20
  248. package/src/tool/jpgAWebp/i18n/tr.ts +5 -15
  249. package/src/tool/jpgAWebp/i18n/zh.ts +9 -19
  250. package/src/tool/jpgAWebp/seo.astro +2 -1
  251. package/src/tool/pngAIco/bibliography.ts +12 -0
  252. package/src/tool/pngAIco/entry.ts +2 -0
  253. package/src/tool/pngAIco/i18n/de.ts +8 -18
  254. package/src/tool/pngAIco/i18n/en.ts +8 -18
  255. package/src/tool/pngAIco/i18n/es.ts +8 -18
  256. package/src/tool/pngAIco/i18n/fr.ts +14 -24
  257. package/src/tool/pngAIco/i18n/id.ts +8 -18
  258. package/src/tool/pngAIco/i18n/it.ts +4 -14
  259. package/src/tool/pngAIco/i18n/ja.ts +2 -12
  260. package/src/tool/pngAIco/i18n/ko.ts +2 -12
  261. package/src/tool/pngAIco/i18n/nl.ts +8 -18
  262. package/src/tool/pngAIco/i18n/pl.ts +8 -18
  263. package/src/tool/pngAIco/i18n/pt.ts +8 -18
  264. package/src/tool/pngAIco/i18n/ru.ts +11 -21
  265. package/src/tool/pngAIco/i18n/sv.ts +8 -18
  266. package/src/tool/pngAIco/i18n/tr.ts +7 -17
  267. package/src/tool/pngAIco/i18n/zh.ts +8 -18
  268. package/src/tool/pngAIco/seo.astro +2 -1
  269. package/src/tool/pngAJpg/bibliography.ts +12 -0
  270. package/src/tool/pngAJpg/entry.ts +2 -0
  271. package/src/tool/pngAJpg/i18n/de.ts +41 -51
  272. package/src/tool/pngAJpg/i18n/en.ts +98 -41
  273. package/src/tool/pngAJpg/i18n/es.ts +1 -11
  274. package/src/tool/pngAJpg/i18n/fr.ts +93 -30
  275. package/src/tool/pngAJpg/i18n/id.ts +41 -51
  276. package/src/tool/pngAJpg/i18n/it.ts +41 -51
  277. package/src/tool/pngAJpg/i18n/ja.ts +81 -95
  278. package/src/tool/pngAJpg/i18n/ko.ts +81 -95
  279. package/src/tool/pngAJpg/i18n/nl.ts +41 -51
  280. package/src/tool/pngAJpg/i18n/pl.ts +43 -53
  281. package/src/tool/pngAJpg/i18n/pt.ts +41 -51
  282. package/src/tool/pngAJpg/i18n/ru.ts +83 -97
  283. package/src/tool/pngAJpg/i18n/sv.ts +41 -51
  284. package/src/tool/pngAJpg/i18n/tr.ts +41 -51
  285. package/src/tool/pngAJpg/i18n/zh.ts +83 -97
  286. package/src/tool/pngAJpg/seo.astro +2 -1
  287. package/src/tool/pngAWebp/bibliography.ts +16 -0
  288. package/src/tool/pngAWebp/entry.ts +2 -0
  289. package/src/tool/pngAWebp/i18n/de.ts +7 -21
  290. package/src/tool/pngAWebp/i18n/en.ts +7 -21
  291. package/src/tool/pngAWebp/i18n/es.ts +6 -20
  292. package/src/tool/pngAWebp/i18n/fr.ts +13 -27
  293. package/src/tool/pngAWebp/i18n/id.ts +7 -21
  294. package/src/tool/pngAWebp/i18n/it.ts +3 -17
  295. package/src/tool/pngAWebp/i18n/ja.ts +2 -16
  296. package/src/tool/pngAWebp/i18n/ko.ts +2 -16
  297. package/src/tool/pngAWebp/i18n/nl.ts +7 -21
  298. package/src/tool/pngAWebp/i18n/pl.ts +7 -21
  299. package/src/tool/pngAWebp/i18n/pt.ts +6 -20
  300. package/src/tool/pngAWebp/i18n/ru.ts +8 -22
  301. package/src/tool/pngAWebp/i18n/sv.ts +7 -21
  302. package/src/tool/pngAWebp/i18n/tr.ts +6 -20
  303. package/src/tool/pngAWebp/i18n/zh.ts +6 -20
  304. package/src/tool/pngAWebp/seo.astro +2 -1
  305. package/src/tool/svgAJpg/bibliography.ts +12 -0
  306. package/src/tool/svgAJpg/entry.ts +2 -0
  307. package/src/tool/svgAJpg/i18n/de.ts +2 -12
  308. package/src/tool/svgAJpg/i18n/en.ts +1 -11
  309. package/src/tool/svgAJpg/i18n/es.ts +1 -11
  310. package/src/tool/svgAJpg/i18n/fr.ts +6 -16
  311. package/src/tool/svgAJpg/i18n/id.ts +1 -11
  312. package/src/tool/svgAJpg/i18n/it.ts +1 -11
  313. package/src/tool/svgAJpg/i18n/ja.ts +1 -11
  314. package/src/tool/svgAJpg/i18n/ko.ts +1 -11
  315. package/src/tool/svgAJpg/i18n/nl.ts +1 -11
  316. package/src/tool/svgAJpg/i18n/pl.ts +1 -11
  317. package/src/tool/svgAJpg/i18n/pt.ts +1 -11
  318. package/src/tool/svgAJpg/i18n/ru.ts +3 -13
  319. package/src/tool/svgAJpg/i18n/sv.ts +1 -11
  320. package/src/tool/svgAJpg/i18n/tr.ts +1 -11
  321. package/src/tool/svgAJpg/i18n/zh.ts +1 -11
  322. package/src/tool/svgAJpg/seo.astro +2 -1
  323. package/src/tool/svgAPng/bibliography.ts +12 -0
  324. package/src/tool/svgAPng/entry.ts +2 -0
  325. package/src/tool/svgAPng/i18n/de.ts +3 -13
  326. package/src/tool/svgAPng/i18n/en.ts +3 -13
  327. package/src/tool/svgAPng/i18n/es.ts +1 -11
  328. package/src/tool/svgAPng/i18n/fr.ts +9 -19
  329. package/src/tool/svgAPng/i18n/id.ts +3 -13
  330. package/src/tool/svgAPng/i18n/it.ts +3 -13
  331. package/src/tool/svgAPng/i18n/ja.ts +1 -11
  332. package/src/tool/svgAPng/i18n/ko.ts +1 -11
  333. package/src/tool/svgAPng/i18n/nl.ts +3 -13
  334. package/src/tool/svgAPng/i18n/pl.ts +3 -13
  335. package/src/tool/svgAPng/i18n/pt.ts +3 -13
  336. package/src/tool/svgAPng/i18n/ru.ts +5 -15
  337. package/src/tool/svgAPng/i18n/sv.ts +3 -13
  338. package/src/tool/svgAPng/i18n/tr.ts +3 -13
  339. package/src/tool/svgAPng/i18n/zh.ts +3 -13
  340. package/src/tool/svgAPng/seo.astro +2 -1
  341. package/src/tool/webpAIco/bibliography.ts +12 -0
  342. package/src/tool/webpAIco/entry.ts +2 -0
  343. package/src/tool/webpAIco/i18n/de.ts +1 -11
  344. package/src/tool/webpAIco/i18n/en.ts +1 -11
  345. package/src/tool/webpAIco/i18n/es.ts +1 -11
  346. package/src/tool/webpAIco/i18n/fr.ts +5 -15
  347. package/src/tool/webpAIco/i18n/id.ts +1 -11
  348. package/src/tool/webpAIco/i18n/it.ts +1 -11
  349. package/src/tool/webpAIco/i18n/ja.ts +1 -11
  350. package/src/tool/webpAIco/i18n/ko.ts +1 -11
  351. package/src/tool/webpAIco/i18n/nl.ts +1 -11
  352. package/src/tool/webpAIco/i18n/pl.ts +1 -11
  353. package/src/tool/webpAIco/i18n/pt.ts +1 -11
  354. package/src/tool/webpAIco/i18n/ru.ts +3 -13
  355. package/src/tool/webpAIco/i18n/sv.ts +1 -11
  356. package/src/tool/webpAIco/i18n/tr.ts +1 -11
  357. package/src/tool/webpAIco/i18n/zh.ts +1 -12
  358. package/src/tool/webpAIco/seo.astro +2 -1
  359. package/src/tool/webpAJpg/bibliography.ts +16 -0
  360. package/src/tool/webpAJpg/entry.ts +2 -0
  361. package/src/tool/webpAJpg/i18n/de.ts +3 -17
  362. package/src/tool/webpAJpg/i18n/en.ts +3 -17
  363. package/src/tool/webpAJpg/i18n/es.ts +1 -15
  364. package/src/tool/webpAJpg/i18n/fr.ts +10 -24
  365. package/src/tool/webpAJpg/i18n/id.ts +3 -17
  366. package/src/tool/webpAJpg/i18n/it.ts +2 -16
  367. package/src/tool/webpAJpg/i18n/ja.ts +1 -15
  368. package/src/tool/webpAJpg/i18n/ko.ts +1 -15
  369. package/src/tool/webpAJpg/i18n/nl.ts +2 -16
  370. package/src/tool/webpAJpg/i18n/pl.ts +3 -17
  371. package/src/tool/webpAJpg/i18n/pt.ts +3 -17
  372. package/src/tool/webpAJpg/i18n/ru.ts +7 -21
  373. package/src/tool/webpAJpg/i18n/sv.ts +3 -17
  374. package/src/tool/webpAJpg/i18n/tr.ts +2 -16
  375. package/src/tool/webpAJpg/i18n/zh.ts +2 -16
  376. package/src/tool/webpAJpg/seo.astro +2 -1
  377. package/src/tool/webpAPng/bibliography.ts +16 -0
  378. package/src/tool/webpAPng/entry.ts +2 -0
  379. package/src/tool/webpAPng/i18n/de.ts +3 -17
  380. package/src/tool/webpAPng/i18n/en.ts +3 -17
  381. package/src/tool/webpAPng/i18n/es.ts +1 -15
  382. package/src/tool/webpAPng/i18n/fr.ts +9 -23
  383. package/src/tool/webpAPng/i18n/id.ts +3 -17
  384. package/src/tool/webpAPng/i18n/it.ts +3 -17
  385. package/src/tool/webpAPng/i18n/ja.ts +1 -15
  386. package/src/tool/webpAPng/i18n/ko.ts +1 -15
  387. package/src/tool/webpAPng/i18n/nl.ts +3 -17
  388. package/src/tool/webpAPng/i18n/pl.ts +3 -17
  389. package/src/tool/webpAPng/i18n/pt.ts +3 -17
  390. package/src/tool/webpAPng/i18n/ru.ts +4 -18
  391. package/src/tool/webpAPng/i18n/sv.ts +3 -17
  392. package/src/tool/webpAPng/i18n/tr.ts +2 -17
  393. package/src/tool/webpAPng/i18n/zh.ts +3 -17
  394. 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 { PngAJpgLocaleContent } from '../index';
@@ -5,7 +6,7 @@ import type { PngAJpgLocaleContent } from '../index';
5
6
  const slug = 'png-to-jpg-converter';
6
7
  const title = 'Convert PNG to JPG Online';
7
8
  const description =
8
- 'Convert PNG images to JPG directly in your browser. No file uploads to servers. Fast, free and completely private.';
9
+ 'Convert PNG images to JPG format directly in your browser. No server uploads. Fast batch image optimization and guaranteed privacy.';
9
10
 
10
11
  const ui: ImageConverterUI = {
11
12
  dragText: 'Drag PNG files...',
@@ -20,96 +21,152 @@ const ui: ImageConverterUI = {
20
21
 
21
22
  const faq: PngAJpgLocaleContent['faq'] = [
22
23
  {
23
- question: 'Why convert PNG to JPG?',
24
+ question: 'Why choose our local PNG to JPG converter?',
24
25
  answer:
25
- 'PNG maintains high quality and transparency but results in large files. Converting to JPG is perfect when you need lightweight photos for emails or fast websites and a solid background is acceptable.',
26
+ 'Unlike conventional online converters, our tool processes all images locally inside your web browser. Your files never touch external servers, guaranteeing total data sovereignty and security.',
26
27
  },
27
28
  {
28
- question: 'Will I lose details during the conversion?',
29
+ question: 'JPG vs PNG: Which format is best for your use case?',
29
30
  answer:
30
- 'We apply a balanced high-quality compression ratio, so differences in photographs and gradients will be almost imperceptible to the eye, but you will notice the savings in the final file size.',
31
+ 'PNG is ideal for logos, icons, and graphics requiring transparent backgrounds. JPG is the gold standard for photos and web banners because of its higher compression ratio and significantly smaller file sizes.',
31
32
  },
32
33
  {
33
- question: 'Are my photos processed securely?',
34
+ question: 'How does client-side technical conversion work?',
34
35
  answer:
35
- 'Absolutely yes. We do not use cloud servers; the conversion algorithm runs through the HTML5 Canvas of your own web browser in an isolated environment.',
36
+ 'We utilize HTML5 Canvas element technology. The browser draws the PNG onto an invisible virtual canvas, fills transparent pixels with solid white, and exports a clean JPEG byte stream directly to your memory.',
37
+ },
38
+ {
39
+ question: 'Is it safe for confidential documents and enterprise data?',
40
+ answer:
41
+ 'Yes, it is the safest choice for banking, legal, and healthcare professionals. Since processing stays entirely within browser RAM, data vanishes completely when the browser tab is closed.',
36
42
  },
37
43
  ];
38
44
 
39
45
  const howTo: PngAJpgLocaleContent['howTo'] = [
40
46
  {
41
- name: 'Drag PNG Files',
42
- text: 'Send your static PNG images to the local processing box by dropping them there.',
47
+ name: 'File Selection',
48
+ text: 'Drag your PNG files into the processing box or click to select them from your file explorer.',
43
49
  },
44
50
  {
45
- name: 'White Re-Rendering',
46
- text: 'Each photo automatically adapts its transparency with an underlying white layer to make it compatible with the JPG environment.',
51
+ name: 'Instant Local Conversion',
52
+ text: 'Observe as each file turns to "Ready" status while your browser converts the images locally.',
47
53
  },
48
54
  {
49
- name: 'Direct Export',
50
- text: 'Click the green download icons and save your new JPG files.',
55
+ name: 'Optimized Download',
56
+ text: 'Download your newly generated JPG files individually or click "Download All (.zip)" to save everything at once.',
51
57
  },
52
58
  ];
53
59
 
54
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
+ const seo: PngAJpgLocaleContent['seo'] = [
55
61
  {
56
- name: 'PNG Consortium Specifications',
57
- url: 'http://www.libpng.org/pub/png/',
62
+ type: 'title',
63
+ text: 'PNG to JPG Converter: The Definitive Image Optimization Guide',
64
+ level: 2,
58
65
  },
59
66
  {
60
- name: 'The JPEG committee',
61
- url: 'https://jpeg.org/',
67
+ type: 'paragraph',
68
+ html: 'In digital design and web development, efficiency is everything. The PNG (Portable Network Graphics) format is loved for transparency and lossless compression, but its main drawback is file size. When you need fast websites or instant email attachments, converting PNG to JPG is the smartest choice.',
62
69
  },
63
- ];
64
-
65
- const seo: PngAJpgLocaleContent['seo'] = [
66
70
  {
67
71
  type: 'title',
68
- text: 'Free Online PNG to JPG Converter',
72
+ text: 'JPG or PNG?',
73
+ level: 3,
69
74
  },
70
75
  {
71
76
  type: 'paragraph',
72
- html:
73
- 'PNG (Portable Network Graphics) is widely used for its lossless quality and transparency (alpha channel) support. However, this fidelity comes at a cost: PNG files are considerably larger than their JPG equivalents, especially for photographs or images with complex gradients.',
77
+ html: 'There is no universally superior format, only the right tool for each job. PNG is lossless and ideal for UI mockups, logos with small text, and graphics requiring transparent backgrounds. However, this fidelity results in files 5 to 10 times larger than compressed equivalents.',
74
78
  },
75
79
  {
76
80
  type: 'paragraph',
77
- html:
78
- 'JPG (or JPEG) uses a lossy compression algorithm that drastically reduces file size. For photographs and images where a small loss of detail is acceptable, JPG is the standard choice. A 2 MB PNG can become a 200 KB JPG with virtually identical visual quality.',
81
+ html: 'JPG (Joint Photographic Experts Group) uses lossy compression algorithms to remove details barely noticeable to the human eye, delivering lightweight files. It is the gold standard for photos, web banners, and social media. Converting PNG to JPG trades micro-fidelity for network speed.',
79
82
  },
80
83
  {
81
- type: 'paragraph',
82
- html:
83
- 'Our PNG to JPG converter works entirely in your web browser using the HTML5 Canvas API. The process is simple: the PNG image is loaded into memory, drawn on a virtual canvas, and exported as JPG at optimal quality. Transparent areas in the PNG are replaced with a solid white background, as the JPG format does not support the alpha channel.',
84
+ type: 'title',
85
+ text: 'Architecture Comparison: Local vs Cloud',
86
+ level: 3,
87
+ },
88
+ {
89
+ type: 'comparative',
90
+ items: [
91
+ {
92
+ title: 'Cloud Converters',
93
+ description: 'Traditional tools that upload your files to remote servers.',
94
+ icon: 'mdi:cloud-upload',
95
+ pointIcon: 'mdi:close-circle-outline',
96
+ points: [
97
+ 'Network latency (Upload/Download)',
98
+ 'Privacy leak risks',
99
+ 'File size upload limits',
100
+ 'Ads and tracking scripts',
101
+ ],
102
+ },
103
+ {
104
+ title: 'Our Local Architecture',
105
+ description: 'Direct browser hardware processing via Vanilla JS.',
106
+ icon: 'mdi:laptop-mac',
107
+ highlight: true,
108
+ points: [
109
+ 'Instant speed without network delays',
110
+ 'Guaranteed privacy (0 bytes uploaded)',
111
+ 'No file size limits',
112
+ 'Clean, ad-free interface',
113
+ ],
114
+ },
115
+ ],
84
116
  },
85
117
  {
86
- type: 'tip',
87
- html:
88
- 'For images with text or logos requiring transparent backgrounds, consider using WebP instead of JPG. WebP offers similar compression but retains transparency support.',
118
+ type: 'title',
119
+ text: 'How Local Technical Conversion Works',
120
+ level: 3,
89
121
  },
90
122
  {
91
123
  type: 'paragraph',
92
- html:
93
- 'JPG can reduce the size of a photographic image by 70% to 90% compared to PNG, depending on image complexity and the quality settings applied.',
124
+ html: 'You might wonder how images are converted without a server. The process leverages modern browser APIs. When you select a file, a local Blob is instantiated in your RAM and drawn onto an invisible HTML5 Canvas element.',
94
125
  },
95
126
  {
96
127
  type: 'paragraph',
97
- html:
98
- 'Typical use cases for converting PNG to JPG include: preparing images for email where size matters, optimizing product photos for online stores, reducing screenshot weight before sharing, and compressing images for faster web page loading.',
128
+ html: 'Since JPG does not support alpha channels, our algorithm fills transparent areas with a solid white background before rendering. The canvas exports a native JPEG byte stream directly to your device storage.',
129
+ },
130
+ {
131
+ type: 'tip',
132
+ title: 'SEO Performance Tip',
133
+ html: 'Search engines penalize slow websites. Converting a 2MB hero PNG into a 200KB JPG significantly improves Largest Contentful Paint (LCP) and PageSpeed metrics without noticeable visual loss.',
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Security for Enterprise & Sensitive Data',
138
+ level: 3,
99
139
  },
100
140
  {
101
141
  type: 'paragraph',
102
- html:
103
- 'Privacy is a priority in our tool. Unlike online converters that upload your files to remote servers, our converter processes everything locally on your device. Your images never leave your computer, which is especially important for corporate documents, personal photos, or any sensitive material.',
142
+ html: 'For financial, medical, or legal professionals, uploading files to third-party conversion sites is a compliance risk. Our local web worker model operates in an isolated environment where data vanishes when the tab closes.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Output Format Compatibility',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'list',
151
+ icon: 'mdi:check-circle',
152
+ items: [
153
+ 'Built-in image viewers on Windows, macOS, iOS and Android.',
154
+ 'Social platforms (Instagram, LinkedIn, X, Facebook).',
155
+ 'Office productivity suites (Microsoft Office, Google Workspace).',
156
+ 'Content Management Systems (WordPress, Shopify, Webflow).',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Conclusion: Optimize Like a Pro',
162
+ level: 3,
104
163
  },
105
164
  {
106
165
  type: 'paragraph',
107
- html:
108
- 'Convert PNG to JPG instantly, for free, and privately directly in your browser. No registration, no limits, and without compromising the security of your files.',
166
+ html: 'This converter is an engineering solution built for speed and privacy. Whether you are a web developer or home user, it provides the ultimate way to save bandwidth while keeping data safe.',
109
167
  },
110
168
  ];
111
169
 
112
-
113
170
  export const content: PngAJpgLocaleContent = {
114
171
  slug,
115
172
  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 { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'Especificaciones PNG Consortium',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'The JPEG committee',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  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 { PngAJpgLocaleContent } from '../index';
@@ -20,19 +21,24 @@ const ui: ImageConverterUI = {
20
21
 
21
22
  const faq: PngAJpgLocaleContent['faq'] = [
22
23
  {
23
- question: 'Pourquoi convertir PNG en JPG ?',
24
+ question: '¿Por qué elegir nuestro convertidor local de PNG a JPG?',
24
25
  answer:
25
- 'Le format PNG maintient une haute qualité et la transparence, mais produit de gros fichiers. La conversion en JPG est idéale pour les photos légères dans les e-mails ou les sites web rapides lorsqu\'un fond solide est acceptable.',
26
+ 'A diferencia de las herramientas convencionales, nuestra utilidad procesa los archivos íntegramente en tu navegador. Tus imágenes nunca tocan un disco duro ajeno, garantizando la total soberanía y privacidad de tus datos.',
26
27
  },
27
28
  {
28
- question: 'Vais-je perdre des détails pendant la conversion ?',
29
+ question: '¿JPG o PNG? ¿Cuál es mejor para mi caso?',
29
30
  answer:
30
- 'Nous appliquons un taux de compression équilibré de haute qualité, de sorte que les différences dans les photographies et les dégradés seront presque imperceptibles à l\'œil, mais vous remarquerez l\'économie dans la taille finale du fichier.',
31
+ 'El PNG es ideal para logotipos y elementos con transparencia. Sin embargo, el JPG es el estándar de oro para fotografías y banners web, ya que logra pesos mucho más reducidos, mejorando drásticamente la velocidad de carga de un sitio.',
31
32
  },
32
33
  {
33
- question: 'Mes photos sont-elles traitées en toute sécurité ?',
34
+ question: '¿Cómo funciona la conversión técnica sin subir nada?',
34
35
  answer:
35
- 'Absolument oui. Nous n\'utilisons pas de serveurs cloud ; l\'algorithme de conversion s\'exécute via le Canvas HTML5 de votre propre navigateur web de manière isolée.',
36
+ 'Utilizamos la potencia del Canvas de HTML5. El navegador recrea la imagen en un lienzo virtual invisible, rellena las transparencias con blanco y genera un flujo de bytes que descargas directamente al instante.',
37
+ },
38
+ {
39
+ question: '¿Es seguro para documentos confidenciales?',
40
+ answer:
41
+ 'Sí, es la opción más segura para profesionales de la banca, salud o derecho. Al ser una "caja negra" que solo usa tu RAM, lo que pasa dentro muere al cerrar la pestaña, evitando filtraciones en nubes de terceros.',
36
42
  },
37
43
  ];
38
44
 
@@ -51,56 +57,113 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
51
57
  },
52
58
  ];
53
59
 
54
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
+ const seo: PngAJpgLocaleContent['seo'] = [
55
61
  {
56
- name: 'Spécifications du PNG Consortium',
57
- url: 'http://www.libpng.org/pub/png/',
62
+ type: 'title',
63
+ text: 'Convertidor de PNG a JPG: La Guía Definitiva para la Optimización de Imágenes',
64
+ level: 2,
58
65
  },
59
66
  {
60
- name: 'Le comité JPEG',
61
- url: 'https://jpeg.org/',
67
+ type: 'paragraph',
68
+ html: 'En el mundo del diseño digital y el desarrollo web, la eficiencia lo es todo. El formato PNG (Portable Network Graphics) es amado por su capacidad de mantener transparencias y su compresión sin pérdida, pero tiene un gran enemigo: el peso del archivo. Cuando necesitas que tu sitio web vuele o que tus emails carguen instantáneamente, el paso de PNG a JPG es la decisión técnica más inteligente.',
62
69
  },
63
- ];
64
-
65
- const seo: PngAJpgLocaleContent['seo'] = [
66
70
  {
67
71
  type: 'title',
68
- text: 'Convertisseur PNG vers JPG en Ligne Gratuit',
72
+ text: '¿JPG o PNG?',
73
+ level: 3,
69
74
  },
70
75
  {
71
76
  type: 'paragraph',
72
- html:
73
- 'Le format PNG (Portable Network Graphics) est largement utilisé pour sa qualité sans perte et son support de la transparence (canal alpha). Cependant, cette fidélité a un coût : les fichiers PNG sont considérablement plus grands que leurs équivalents JPG, notamment pour les photographies ou les images avec des dégradés complexes.',
77
+ html: 'No existe un formato mejor que otro, sino una herramienta para cada necesidad. El PNG es un formato sin pérdida, ideal para maquetas de interfaces, logotipos con texto pequeño y elementos visuales que requieren un fondo transparente. Sin embargo, esta fidelidad tiene un coste: archivos que pueden ser 5 o 10 veces más pesados que su equivalente comprimido.',
78
+ },
79
+ {
80
+ type: 'paragraph',
81
+ html: 'El JPG (Joint Photographic Experts Group), por otro lado, utiliza algoritmos de discretización para eliminar información que el ojo humano apenas percibe, logrando pesos pluma. Es el estándar de oro para fotografías, banners publicitarios y redes sociales. Al convertir tus PNG a JPG, estás traduciendo fidelidad geométrica por velocidad de red.',
82
+ },
83
+ {
84
+ type: 'title',
85
+ text: 'Comparativa de Arquitectura: Local vs Nube',
86
+ level: 3,
87
+ },
88
+ {
89
+ type: 'comparative',
90
+ items: [
91
+ {
92
+ title: 'Convertidores Cloud',
93
+ description: 'Herramientas tradicionales que suben tus fotos a un servidor remoto.',
94
+ icon: 'mdi:cloud-upload',
95
+ pointIcon: 'mdi:close-circle-outline',
96
+ points: [
97
+ 'Latencia de red (Upload/Download)',
98
+ 'Riesgo de filtración de datos privados',
99
+ 'Límites de tamaño por archivo',
100
+ 'Publicidad y rastreadores',
101
+ ],
102
+ },
103
+ {
104
+ title: 'Nuestra Arquitectura Local',
105
+ description: 'Procesamiento directo en tu hardware mediante tecnología Vanilla JS.',
106
+ icon: 'mdi:laptop-mac',
107
+ highlight: true,
108
+ points: [
109
+ 'Velocidad instantánea sin red',
110
+ 'Privacidad garantizada (0 bytes enviados)',
111
+ 'Sin límites de MB por archivo',
112
+ 'Interfaz profesional y limpia',
113
+ ],
114
+ },
115
+ ],
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Cómo funciona la conversión técnica',
120
+ level: 3,
74
121
  },
75
122
  {
76
123
  type: 'paragraph',
77
- html:
78
- 'Le JPG (ou JPEG) utilise un algorithme de compression avec perte qui réduit considérablement la taille du fichier. Pour les photographies et les images où une légère perte de détail est acceptable, JPG est le choix standard. Un PNG de 2 Mo peut devenir un JPG de 200 Ko avec une qualité visuelle pratiquement identique.',
124
+ html: 'Probablemente te preguntes cómo es posible convertir una imagen sin enviarla a un servidor. La magia reside en la potencia de los navegadores modernos. Cuando seleccionas un archivo, generamos un Blob que solo existe en tu RAM. Ese Blob se dibuja en un elemento HTML5 Canvas invisible.',
79
125
  },
80
126
  {
81
127
  type: 'paragraph',
82
- html:
83
- 'Notre convertisseur PNG vers JPG fonctionne entièrement dans votre navigateur via l\'API Canvas HTML5. Les zones transparentes du PNG original sont remplacées par un fond blanc solide, car le format JPG ne supporte pas le canal alpha.',
128
+ html: 'Dado que el JPG no soporta transparencias, nuestro algoritmo rellena el fondo con un color blanco sólido antes de "pintar" el PNG encima. Una vez compuesta la imagen, ejecutamos el método de exportación nativo, generando un flujo de bytes que tu ordenador descarga directamente.',
84
129
  },
85
130
  {
86
131
  type: 'tip',
87
- html:
88
- 'Pour les images avec du texte ou des logos nécessitant des fonds transparents, envisagez d\'utiliser WebP plutôt que JPG. WebP offre une compression similaire mais conserve la transparence.',
132
+ title: 'Consejo SEO: El Peso Ideal',
133
+ html: 'Google penaliza activamente los sitios web lentos. Si tu Largest Contentful Paint (LCP) es alto por culpa de un PNG de cabecera de 2MB, convertirlo a un JPG de 200KB puede mejorar tus métricas de PageSpeed instantáneamente sin diferencias visuales.',
89
134
  },
90
135
  {
91
- type: 'paragraph',
92
- html:
93
- 'Le JPG peut réduire la taille d\'une image photographique de 70 % à 90 % par rapport au PNG, selon la complexité de l\'image et les paramètres de qualité appliqués.',
136
+ type: 'title',
137
+ text: 'Seguridad para Empresas y Profesionales',
138
+ level: 3,
94
139
  },
95
140
  {
96
141
  type: 'paragraph',
97
- html:
98
- 'Les cas d\'utilisation typiques pour la conversion PNG vers JPG comprennent : préparer des images pour l\'e-mail, optimiser les photos de produits pour les boutiques en ligne, réduire le poids des captures d\'écran avant de les partager, et compresser les images pour un chargement plus rapide des pages web.',
142
+ html: 'Si trabajas en sectores sensibles como la banca, la salud o el derecho, subir archivos a conversores online es una violación de seguridad. Nuestra herramienta funciona como una "caja negra": lo que pasa dentro se queda en tu RAM. Es la única forma segura de trabajar con documentos confidenciales.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Compatibilidad del Resultado',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'list',
151
+ icon: 'mdi:check-circle',
152
+ items: [
153
+ 'Visores de Windows, macOS y dispositivos móviles.',
154
+ 'Redes sociales (Instagram, LinkedIn, etc).',
155
+ 'Herramientas de ofimática (Word, PowerPoint).',
156
+ 'Gestores de contenido (WordPress, Shopify).',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Conclusión: Optimiza como un Pro',
162
+ level: 3,
99
163
  },
100
164
  {
101
165
  type: 'paragraph',
102
- html:
103
- 'Convertissez PNG en JPG instantanément, gratuitement et en toute confidentialité directement dans votre navigateur. Sans inscription, sans limites et sans compromettre la sécurité de vos fichiers.',
166
+ html: 'Este convertidor no es solo una página más; es una pieza de ingeniería diseñada para facilitarte la vida. Ya seas un desarrollador o un usuario doméstico, aquí tienes la solución definitiva para ahorrar megabytes y mantener tus datos a salvo.',
104
167
  },
105
168
  ];
106
169
 
@@ -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 { PngAJpgLocaleContent } from '../index';
@@ -20,24 +21,24 @@ const ui: ImageConverterUI = {
20
21
 
21
22
  const faq: PngAJpgLocaleContent['faq'] = [
22
23
  {
23
- question: 'Mengapa memilih konverter lokal PNG ke JPG kami?',
24
+ question: '¿Por qué elegir nuestro convertidor local de PNG a JPG?',
24
25
  answer:
25
- 'Berbeda dengan alat konvensional, utilitas kami memproses file sepenuhnya di browser Anda. Gambar Anda tidak pernah menyentuh hard drive orang lain, menjamin kedaulatan total dan privasi data Anda.',
26
+ 'A diferencia de las herramientas convencionales, nuestra utilidad procesa los archivos íntegramente en tu navegador. Tus imágenes nunca tocan un disco duro ajeno, garantizando la total soberanía y privacidad de tus datos.',
26
27
  },
27
28
  {
28
- question: 'JPG atau PNG? Mana yang lebih baik untuk kasus saya?',
29
+ question: '¿JPG o PNG? ¿Cuál es mejor para mi caso?',
29
30
  answer:
30
- 'PNG ideal untuk logo dan elemen dengan transparansi. Namun, JPG adalah standar emas untuk fotografi dan banner web, karena mencapai ukuran yang jauh lebih kecil, secara drastis meningkatkan kecepatan pemuatan situs.',
31
+ 'El PNG es ideal para logotipos y elementos con transparencia. Sin embargo, el JPG es el estándar de oro para fotografías y banners web, ya que logra pesos mucho más reducidos, mejorando drásticamente la velocidad de carga de un sitio.',
31
32
  },
32
33
  {
33
- question: 'Bagaimana cara kerja konversi teknis tanpa mengunggah apa pun?',
34
+ question: '¿Cómo funciona la conversión técnica sin subir nada?',
34
35
  answer:
35
- 'Kami menggunakan kekuatan HTML5 Canvas. Browser membuat ulang gambar pada kanvas virtual yang tidak terlihat, mengisi transparansi dengan warna putih dan menghasilkan aliran byte yang Anda unduh langsung secara instan.',
36
+ 'Utilizamos la potencia del Canvas de HTML5. El navegador recrea la imagen en un lienzo virtual invisible, rellena las transparencias con blanco y genera un flujo de bytes que descargas directamente al instante.',
36
37
  },
37
38
  {
38
- question: 'Apakah aman untuk dokumen rahasia?',
39
+ question: '¿Es seguro para documentos confidenciales?',
39
40
  answer:
40
- 'Ya, ini adalah pilihan teraman bagi para profesional di bidang perbankan, kesehatan, atau hukum. Karena ini adalah "kotak hitam" yang hanya menggunakan RAM Anda, apa pun yang terjadi di dalamnya akan hilang saat Anda menutup tab, menghindari kebocoran di cloud pihak ketiga.',
41
+ 'Sí, es la opción más segura para profesionales de la banca, salud o derecho. Al ser una "caja negra" que solo usa tu RAM, lo que pasa dentro muere al cerrar la pestaña, evitando filtraciones en nubes de terceros.',
41
42
  },
42
43
  ];
43
44
 
@@ -56,124 +57,113 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'Spesifikasi PNG Consortium',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'Komite JPEG',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
73
- text: 'Konverter PNG ke JPG: Panduan Definitif untuk Optimalisasi Gambar',
63
+ text: 'Convertidor de PNG a JPG: La Guía Definitiva para la Optimización de Imágenes',
74
64
  level: 2,
75
65
  },
76
66
  {
77
67
  type: 'paragraph',
78
- html: 'Dalam dunia desain digital dan pengembangan web, efisiensi adalah segalanya. Format PNG (Portable Network Graphics) dicintai karena kemampuannya mempertahankan transparansi dan kompresi tanpa kehilangan, tetapi memiliki satu musuh besar: ukuran file. Ketika Anda ingin situs web Anda terbang atau email Anda dimuat secara instan, peralihan dari PNG ke JPG adalah keputusan teknis yang paling cerdas.',
68
+ html: 'En el mundo del diseño digital y el desarrollo web, la eficiencia lo es todo. El formato PNG (Portable Network Graphics) es amado por su capacidad de mantener transparencias y su compresión sin pérdida, pero tiene un gran enemigo: el peso del archivo. Cuando necesitas que tu sitio web vuele o que tus emails carguen instantáneamente, el paso de PNG a JPG es la decisión técnica más inteligente.',
79
69
  },
80
70
  {
81
71
  type: 'title',
82
- text: 'JPG atau PNG?',
72
+ text: '¿JPG o PNG?',
83
73
  level: 3,
84
74
  },
85
75
  {
86
76
  type: 'paragraph',
87
- html: 'Tidak ada format yang lebih baik dari yang lain, melainkan alat untuk setiap kebutuhan. PNG adalah format tanpa kehilangan, ideal untuk maket antarmuka, logo dengan teks kecil, dan elemen visual yang membutuhkan latar belakang transparan. Namun, kesetiaan ini ada harganya: file yang bisa 5 atau 10 kali lebih berat daripada padanannya yang dikompresi.',
77
+ html: 'No existe un formato mejor que otro, sino una herramienta para cada necesidad. El PNG es un formato sin pérdida, ideal para maquetas de interfaces, logotipos con texto pequeño y elementos visuales que requieren un fondo transparente. Sin embargo, esta fidelidad tiene un coste: archivos que pueden ser 5 o 10 veces más pesados que su equivalente comprimido.',
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
91
- html: 'JPG (Joint Photographic Experts Group), di sisi lain, menggunakan algoritma diskritisasi untuk menghapus informasi yang hampir tidak dirasakan oleh mata manusia, mencapai ukuran yang sangat ringan. Ini adalah standar emas untuk fotografi, banner iklan, dan media sosial. Dengan mengubah PNG Anda ke JPG, Anda menukar kesetiaan geometris dengan kecepatan jaringan.',
81
+ html: 'El JPG (Joint Photographic Experts Group), por otro lado, utiliza algoritmos de discretización para eliminar información que el ojo humano apenas percibe, logrando pesos pluma. Es el estándar de oro para fotografías, banners publicitarios y redes sociales. Al convertir tus PNG a JPG, estás traduciendo fidelidad geométrica por velocidad de red.',
92
82
  },
93
83
  {
94
84
  type: 'title',
95
- text: 'Perbandingan Arsitektur: Lokal vs Cloud',
85
+ text: 'Comparativa de Arquitectura: Local vs Nube',
96
86
  level: 3,
97
87
  },
98
88
  {
99
89
  type: 'comparative',
100
90
  items: [
101
91
  {
102
- title: 'Konverter Cloud',
103
- description: 'Alat tradisional yang mengunggah foto Anda ke server jarak jauh.',
92
+ title: 'Convertidores Cloud',
93
+ description: 'Herramientas tradicionales que suben tus fotos a un servidor remoto.',
104
94
  icon: 'mdi:cloud-upload',
105
95
  pointIcon: 'mdi:close-circle-outline',
106
96
  points: [
107
- 'Latensi jaringan (Unggah/Unduh)',
108
- 'Risiko kebocoran data pribadi',
109
- 'Batasan ukuran per file',
110
- 'Iklan dan pelacak',
97
+ 'Latencia de red (Upload/Download)',
98
+ 'Riesgo de filtración de datos privados',
99
+ 'Límites de tamaño por archivo',
100
+ 'Publicidad y rastreadores',
111
101
  ],
112
102
  },
113
103
  {
114
- title: 'Arsitektur Lokal Kami',
115
- description: 'Pemrosesan langsung pada perangkat keras Anda melalui teknologi Vanilla JS.',
104
+ title: 'Nuestra Arquitectura Local',
105
+ description: 'Procesamiento directo en tu hardware mediante tecnología Vanilla JS.',
116
106
  icon: 'mdi:laptop-mac',
117
107
  highlight: true,
118
108
  points: [
119
- 'Kecepatan instan tanpa jaringan',
120
- 'Privasi terjamin (0 byte dikirim)',
121
- 'Tanpa batasan MB per file',
122
- 'Antarmuka profesional dan bersih',
109
+ 'Velocidad instantánea sin red',
110
+ 'Privacidad garantizada (0 bytes enviados)',
111
+ 'Sin límites de MB por archivo',
112
+ 'Interfaz profesional y limpia',
123
113
  ],
124
114
  },
125
115
  ],
126
116
  },
127
117
  {
128
118
  type: 'title',
129
- text: 'Cara kerja konversi teknis',
119
+ text: 'Cómo funciona la conversión técnica',
130
120
  level: 3,
131
121
  },
132
122
  {
133
123
  type: 'paragraph',
134
- html: 'Anda mungkin bertanya-tanya bagaimana mungkin mengubah gambar tanpa mengirimkannya ke server. Keajaibannya ada pada kekuatan browser modern. Saat Anda memilih file, kami menghasilkan Blob yang hanya ada di RAM Anda. Blob itu digambar pada elemen HTML5 Canvas yang tidak terlihat.',
124
+ html: 'Probablemente te preguntes cómo es posible convertir una imagen sin enviarla a un servidor. La magia reside en la potencia de los navegadores modernos. Cuando seleccionas un archivo, generamos un Blob que solo existe en tu RAM. Ese Blob se dibuja en un elemento HTML5 Canvas invisible.',
135
125
  },
136
126
  {
137
127
  type: 'paragraph',
138
- html: 'Karena JPG tidak mendukung transparansi, algoritma kami mengisi latar belakang dengan warna putih solid sebelum "melukis" PNG di atasnya. Setelah gambar disusun, kami menjalankan metode ekspor asli, menghasilkan aliran byte yang diunduh komputer Anda secara langsung.',
128
+ html: 'Dado que el JPG no soporta transparencias, nuestro algoritmo rellena el fondo con un color blanco sólido antes de "pintar" el PNG encima. Una vez compuesta la imagen, ejecutamos el método de exportación nativo, generando un flujo de bytes que tu ordenador descarga directamente.',
139
129
  },
140
130
  {
141
131
  type: 'tip',
142
- title: 'Tips SEO: Ukuran Ideal',
143
- html: 'Google secara aktif menghukum situs web yang lambat. Jika Largest Contentful Paint (LCP) Anda tinggi karena header PNG sebesar 2MB, mengubahnya menjadi JPG sebesar 200KB dapat segera meningkatkan metrik PageSpeed Anda tanpa perbedaan visual.',
132
+ title: 'Consejo SEO: El Peso Ideal',
133
+ html: 'Google penaliza activamente los sitios web lentos. Si tu Largest Contentful Paint (LCP) es alto por culpa de un PNG de cabecera de 2MB, convertirlo a un JPG de 200KB puede mejorar tus métricas de PageSpeed instantáneamente sin diferencias visuales.',
144
134
  },
145
135
  {
146
136
  type: 'title',
147
- text: 'Keamanan untuk Perusahaan dan Profesional',
137
+ text: 'Seguridad para Empresas y Profesionales',
148
138
  level: 3,
149
139
  },
150
140
  {
151
141
  type: 'paragraph',
152
- html: 'Jika Anda bekerja di sektor sensitif seperti perbankan, kesehatan, atau hukum, mengunggah file ke konverter online adalah pelanggaran keamanan. Alat kami bekerja seperti "kotak hitam": apa yang terjadi di dalamnya tetap ada di RAM Anda. Ini satu-satunya cara aman untuk bekerja dengan dokumen rahasia.',
142
+ html: 'Si trabajas en sectores sensibles como la banca, la salud o el derecho, subir archivos a conversores online es una violación de seguridad. Nuestra herramienta funciona como una "caja negra": lo que pasa dentro se queda en tu RAM. Es la única forma segura de trabajar con documentos confidenciales.',
153
143
  },
154
144
  {
155
145
  type: 'title',
156
- text: 'Kompatibilitas Hasil',
146
+ text: 'Compatibilidad del Resultado',
157
147
  level: 3,
158
148
  },
159
149
  {
160
150
  type: 'list',
161
151
  icon: 'mdi:check-circle',
162
152
  items: [
163
- 'Penampil gambar Windows, macOS, dan perangkat seluler.',
164
- 'Jejaring sosial (Instagram, LinkedIn, dll).',
165
- 'Alat kantor (Word, PowerPoint).',
166
- 'Manajer konten (WordPress, Shopify).',
153
+ 'Visores de Windows, macOS y dispositivos móviles.',
154
+ 'Redes sociales (Instagram, LinkedIn, etc).',
155
+ 'Herramientas de ofimática (Word, PowerPoint).',
156
+ 'Gestores de contenido (WordPress, Shopify).',
167
157
  ],
168
158
  },
169
159
  {
170
160
  type: 'title',
171
- text: 'Kesimpulan: Optimalkan seperti Profesional',
161
+ text: 'Conclusión: Optimiza como un Pro',
172
162
  level: 3,
173
163
  },
174
164
  {
175
165
  type: 'paragraph',
176
- html: 'Konverter ini bukan sekadar halaman biasa; ini adalah bagian dari teknik yang dirancang untuk memudahkan hidup Anda. Baik Anda seorang pengembang atau pengguna rumahan, di sini Anda memiliki solusi definitif untuk menghemat megabyte dan menjaga keamanan data Anda.',
166
+ html: 'Este convertidor no es solo una página más; es una pieza de ingeniería diseñada para facilitarte la vida. Ya seas un desarrollador o un usuario doméstico, aquí tienes la solución definitiva para ahorrar megabytes y mantener tus datos a salvo.',
177
167
  },
178
168
  ];
179
169