@jjlmoya/utils-converters 1.7.0 → 1.8.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 (345) hide show
  1. package/package.json +60 -59
  2. package/src/shared/logic/schemas.ts +57 -0
  3. package/src/tests/faq_count.test.ts +13 -4
  4. package/src/tests/i18n_coverage.test.ts +36 -0
  5. package/src/tests/locale_completeness.test.ts +42 -0
  6. package/src/tests/no_h1_in_components.test.ts +48 -0
  7. package/src/tests/schemas_fulfillment.test.ts +23 -0
  8. package/src/tests/seo_length.test.ts +1 -1
  9. package/src/tests/title_quality.test.ts +55 -0
  10. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  11. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  12. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  15. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  25. package/src/tool/avifAJpg/index.ts +13 -1
  26. package/src/tool/avifAPng/i18n/de.ts +178 -0
  27. package/src/tool/avifAPng/i18n/en.ts +2 -12
  28. package/src/tool/avifAPng/i18n/es.ts +2 -12
  29. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  30. package/src/tool/avifAPng/i18n/id.ts +178 -0
  31. package/src/tool/avifAPng/i18n/it.ts +178 -0
  32. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  34. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  35. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  37. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  38. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  39. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  40. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  41. package/src/tool/avifAPng/index.ts +13 -1
  42. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  43. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  44. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  47. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  57. package/src/tool/avifAWebp/index.ts +13 -1
  58. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  59. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  60. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  63. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  73. package/src/tool/bmpAJpg/index.ts +13 -1
  74. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  75. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  76. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  79. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  89. package/src/tool/bmpAPng/index.ts +13 -1
  90. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  91. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  92. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  95. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  105. package/src/tool/bmpAWebp/index.ts +13 -1
  106. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  107. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  108. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  111. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  121. package/src/tool/gifAJpg/index.ts +13 -1
  122. package/src/tool/gifAPng/i18n/de.ts +178 -0
  123. package/src/tool/gifAPng/i18n/en.ts +2 -12
  124. package/src/tool/gifAPng/i18n/es.ts +2 -12
  125. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  126. package/src/tool/gifAPng/i18n/id.ts +178 -0
  127. package/src/tool/gifAPng/i18n/it.ts +178 -0
  128. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  130. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  131. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  133. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  134. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  135. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  136. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  137. package/src/tool/gifAPng/index.ts +12 -0
  138. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  139. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  140. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  143. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  153. package/src/tool/gifAWebp/index.ts +12 -0
  154. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  155. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  156. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  159. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  165. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  166. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  169. package/src/tool/imagenBase64/index.ts +12 -0
  170. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  171. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  172. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  173. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  174. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  175. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  185. package/src/tool/jpgAIco/index.ts +12 -0
  186. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  187. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  188. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  191. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  201. package/src/tool/jpgAPng/index.ts +13 -1
  202. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  203. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  204. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  207. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  217. package/src/tool/jpgAWebp/index.ts +12 -0
  218. package/src/tool/pngAIco/i18n/de.ts +183 -0
  219. package/src/tool/pngAIco/i18n/en.ts +8 -13
  220. package/src/tool/pngAIco/i18n/es.ts +19 -24
  221. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  222. package/src/tool/pngAIco/i18n/id.ts +183 -0
  223. package/src/tool/pngAIco/i18n/it.ts +183 -0
  224. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  226. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  227. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  229. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  230. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  231. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  232. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  233. package/src/tool/pngAIco/index.ts +12 -0
  234. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  235. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  236. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  239. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  249. package/src/tool/pngAJpg/index.ts +13 -1
  250. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  251. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  252. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  255. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  265. package/src/tool/pngAWebp/index.ts +12 -0
  266. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  267. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  268. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  270. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  271. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  281. package/src/tool/svgAJpg/index.ts +12 -0
  282. package/src/tool/svgAPng/i18n/de.ts +178 -0
  283. package/src/tool/svgAPng/i18n/en.ts +8 -13
  284. package/src/tool/svgAPng/i18n/es.ts +31 -36
  285. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  286. package/src/tool/svgAPng/i18n/id.ts +178 -0
  287. package/src/tool/svgAPng/i18n/it.ts +178 -0
  288. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  290. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  291. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  293. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  294. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  295. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  296. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  297. package/src/tool/svgAPng/index.ts +12 -0
  298. package/src/tool/webpAIco/i18n/de.ts +183 -0
  299. package/src/tool/webpAIco/i18n/en.ts +8 -13
  300. package/src/tool/webpAIco/i18n/es.ts +9 -14
  301. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  302. package/src/tool/webpAIco/i18n/id.ts +183 -0
  303. package/src/tool/webpAIco/i18n/it.ts +183 -0
  304. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  306. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  307. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  309. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  310. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  311. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  312. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  313. package/src/tool/webpAIco/index.ts +12 -0
  314. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  315. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  316. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  317. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  318. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  319. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  329. package/src/tool/webpAJpg/index.ts +12 -0
  330. package/src/tool/webpAPng/i18n/de.ts +182 -0
  331. package/src/tool/webpAPng/i18n/en.ts +8 -13
  332. package/src/tool/webpAPng/i18n/es.ts +35 -40
  333. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  334. package/src/tool/webpAPng/i18n/id.ts +182 -0
  335. package/src/tool/webpAPng/i18n/it.ts +182 -0
  336. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  338. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  339. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  341. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  342. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  343. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  344. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  345. package/src/tool/webpAPng/index.ts +12 -0
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { JpgAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'conversor-de-jpg-para-webp';
6
+ const title = 'Converter JPG para WebP Online e Grátis';
7
+ const description =
8
+ 'Converta imagens JPG para WebP no seu navegador. Compressão superior sem perda visível. Sem upload de arquivos. Gratuito, ilimitado e privado.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Arraste arquivos JPG...',
12
+ convertText: 'Para convertê-los em WebP instantaneamente',
13
+ selectFiles: 'Selecionar arquivos',
14
+ processedFiles: 'Arquivos processados',
15
+ downloadAll: 'Baixar tudo (.zip)',
16
+ pending: 'Pendente',
17
+ bibliographyTitle: 'Referências Bibliográficas',
18
+ faqTitle: 'Perguntas Frequentes',
19
+ };
20
+
21
+ const faq: JpgAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Porquê converter fotos JPG para WebP?',
24
+ answer:
25
+ 'O WebP permite uma compressão significativamente melhor dos arquivos JPG tradicionais sem que o olho humano note a diferença, resultando em sites mais rápidos e modernos.',
26
+ },
27
+ {
28
+ question: 'Tenho de pagar por imagem?',
29
+ answer:
30
+ 'Não, a ferramenta é gratuita e tudo é processado diretamente no seu computador. É ilimitado para uso doméstico ou profissional.',
31
+ },
32
+ {
33
+ question: 'A conversão é segura?',
34
+ answer:
35
+ 'Sim, totalmente. Todo o processamento ocorre no HTML5 Canvas do seu navegador local, sem enviar quaisquer dados para servidores externos.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Insira as suas fotos JPG',
42
+ text: 'Solte os seus arquivos JPG ou arraste-os diretamente para a área superior. A deteção é instantânea.',
43
+ },
44
+ {
45
+ name: 'Processamento para WebP',
46
+ text: 'O motor de renderização local converterá cada arquivo de imagem num WebP ultra-otimizado pronto para a web.',
47
+ },
48
+ {
49
+ name: 'Baixe os resultados',
50
+ text: 'Guarde cada WebP individualmente ou baixe o ZIP com todos os arquivos convertidos.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Estudo de Compressão Google WebP',
57
+ url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
+ },
59
+ {
60
+ name: 'Web.dev: Sirva imagens em formatos modernos',
61
+ url: 'https://web.dev/uses-webp-images/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Conversor de JPG para WebP: Acelere o seu site com o formato moderno do Google',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'O formato <strong>JPG</strong> dominou a fotografia digital durante décadas — universalmente compatível e amplamente suportado. Mas a Google desenvolveu o <strong>WebP</strong> para bater o JPG no seu próprio terreno: a mesma qualidade visual com menos 25–35% de tamanho de arquivo. Para programadores e equipas de marketing que lutam contra carregamentos lentos de páginas, converter JPG para WebP é a otimização com maior retorno que pode aplicar sem tocar no design.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG ou WebP? Quando utilizar cada formato',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'O <strong>JPG</strong> continua a ser a escolha certa quando precisa de compatibilidade universal: e-mails a clientes, documentos Word, plataformas de redes sociais antigas ou sistemas CMS que ainda não aceitam WebP. O seu ecossistema de trinta anos garante que qualquer ecrã, impressora ou visualizador o abrirá sem problemas. A principal desvantagem é o tamanho — um JPG de cabeçalho de 1,5 MB pode penalizar a pontuação LCP da sua página e falhar os limiares dos Core Web Vitals.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'O <strong>WebP</strong> é a escolha inteligente para todo o conteúdo que vive no seu website. Chrome, Firefox, Safari e Edge suportam-no nativamente há anos. Imagens de produtos em e-commerce, banners de blogs, miniaturas de vídeo e qualquer foto publicada online beneficiam diretamente: páginas mais leves, melhores pontuações no Google PageSpeed Insights e uma experiência de utilizador mais fluida — especialmente em ligações móveis lentas.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Comparação: Conversão Local vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Conversores Cloud',
98
+ description: 'Ferramentas que carregam os seus arquivos para um servidor remoto.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Latência de rede no upload e download',
103
+ 'As suas fotos são armazenadas em servidores de terceiros',
104
+ 'Limites de tamanho de arquivo e quotas de conversão diárias',
105
+ 'Anúncios intrusivos e rastreadores de terceiros',
106
+ ],
107
+ },
108
+ {
109
+ title: 'A Nossa Arquitetura Local',
110
+ description: 'Processamento direto no seu hardware utilizando a tecnologia Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Velocidade instantânea — latência de rede zero',
115
+ 'Privacidade total — 0 bytes enviados externamente',
116
+ 'Sem limites de MB ou restrições no número de arquivos',
117
+ 'Interface limpa, sem anúncios ou rastreamento',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Como funciona tecnicamente',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Quando arrasta um JPG para a ferramenta, o navegador cria um <strong>objeto Blob</strong> que reside apenas na sua RAM. Esse Blob é descodificado e desenhado num elemento <strong>HTML5 Canvas</strong> invisível. Como o JPG não tem canal alfa, a conversão para WebP é direta: o motor exporta o canvas chamando <code>toDataURL(\'image/webp\')</code>, gerando um fluxo de bytes que o seu sistema operativo baixa instantaneamente — sem envolvimento de servidor.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'O algoritmo de compressão WebP combina técnicas de previsão de blocos (semelhantes às do VP8, o codec de vídeo da Google) com transformações de cor e codificação aritmética. O resultado é um arquivo que contém a mesma informação percetual que o JPG original, mas empacotado de forma muito mais eficiente — o que significa menos kilobytes transferidos a cada visita de página.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Dica Core Web Vitals: LCP e peso da imagem',
138
+ html: 'O <strong>Largest Contentful Paint (LCP)</strong> é a métrica da Google que mede quanto tempo demora a carregar o maior elemento visual da sua página. Um JPG de cabeçalho de 1,5 MB pode tornar-se num WebP de apenas 900 KB — ou mesmo 600 KB — sem diferença visual percetível. Essa <strong>poupança de 25–35%</strong> pode mover o seu LCP de "Precisa de melhorias" para "Bom" e subir o seu posicionamento nos resultados de pesquisa.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casos de uso e compatibilidade',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Imagens de produtos em lojas WooCommerce ou Shopify: menos peso, mais conversões.',
150
+ 'Fotografia para blogs e artigos: melhor pontuação no PageSpeed sem redesenhar nada.',
151
+ 'Banners web e criativos de publicidade display: arquivos mais leves com a mesma nitidez.',
152
+ 'Galerias de portfólio para estúdios de arquitetura, fotografia ou design.',
153
+ 'Miniaturas de vídeo em sites de streaming ou plataformas de cursos online.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusão',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Converter os seus JPGs para WebP é hoje uma das otimizações mais simples e económicas que pode aplicar a qualquer website. Com esta ferramenta faz isso em segundos, gratuitamente e sem que as suas imagens saiam do seu dispositivo. Menos kilobytes, melhor LCP, páginas mais rápidas — tudo com a exata aparência visual que já tinha.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: JpgAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'pt', faq, howTo }),
178
+ };
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { JpgAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-jpg-v-webp';
6
+ const title = 'Конвертировать JPG в WebP Онлайн и Бесплатно';
7
+ const description =
8
+ 'Конвертируйте изображения JPG в WebP в вашем браузере. Превосходное сжатие без видимых потерь. Без загрузки файлов. Бесплатно, безлимитно и приватно.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Перетащите файлы JPG...',
12
+ convertText: 'Чтобы мгновенно конвертировать их в WebP',
13
+ selectFiles: 'Выбрать файлы',
14
+ processedFiles: 'Обработанные файлы',
15
+ downloadAll: 'Скачать всё (.zip)',
16
+ pending: 'В ожидании',
17
+ bibliographyTitle: 'Библиографические ссылки',
18
+ faqTitle: 'Часто задаваемые вопросы',
19
+ };
20
+
21
+ const faq: JpgAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Зачем конвертировать фотографии JPG в WebP?',
24
+ answer:
25
+ 'WebP обеспечивает значительно лучшее сжатие традиционных файлов JPG без заметной для человеческого глаза разницы, что приводит к созданию более быстрых и современных веб-сайтов.',
26
+ },
27
+ {
28
+ question: 'Нужно ли мне платить за каждое изображение?',
29
+ answer:
30
+ 'Нет, инструмент бесплатен, и все обрабатывается прямо на вашем компьютере. Он безлимитен как для домашнего, так и для профессионального использования.',
31
+ },
32
+ {
33
+ question: 'Безопасна ли конвертация?',
34
+ answer:
35
+ 'Да, абсолютно. Вся обработка происходит в HTML5 Canvas вашего локального браузера без отправки каких-либо данных на внешние серверы.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Добавьте ваши фотографии JPG',
42
+ text: 'Перетащите ваши файлы JPG непосредственно в верхнюю область. Обнаружение происходит мгновенно.',
43
+ },
44
+ {
45
+ name: 'Обработка в WebP',
46
+ text: 'Локальный движок рендеринга конвертирует каждый файл изображения в ультра-оптимизированный WebP, готовый для веб-публикации.',
47
+ },
48
+ {
49
+ name: 'Скачайте результаты',
50
+ text: 'Сохраняйте каждый файл WebP по отдельности или скачайте архив ZIP со всеми конвертированными файлами.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Исследование сжатия Google WebP',
57
+ url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
+ },
59
+ {
60
+ name: 'Web.dev: Используйте изображения в современных форматах',
61
+ url: 'https://web.dev/uses-webp-images/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Конвертер JPG в WebP: Ускорьте ваш сайт с помощью современного формата от Google',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Формат <strong>JPG</strong> десятилетиями доминировал в цифровой фотографии — универсально совместимый и широко поддерживаемый. Но Google разработала <strong>WebP</strong>, чтобы превзойти JPG на его собственном поле: то же визуальное качество при уменьшении размера файла на 25–35%. Для разработчиков и маркетинговых команд, борющихся с медленной загрузкой страниц, конвертация JPG в WebP — это самая эффективная оптимизация, которую вы можете применить, не меняя дизайн.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG или WebP? Когда использовать каждый формат',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '<strong>JPG</strong> остается правильным выбором, когда вам нужна универсальная совместимость: электронные письма клиентам, документы Word, устаревшие платформы социальных сетей или системы CMS, которые еще не принимают WebP. Его тридцатилетняя экосистема гарантирует, что любой экран, принтер или программа для просмотра откроют его без проблем. Основной недостаток — размер: JPG в шапке сайта размером 1,5 МБ может ухудшить показатель LCP вашей страницы и не пройти пороги Core Web Vitals.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '<strong>WebP</strong> — разумный выбор для всего контента, который живет на вашем сайте. Chrome, Firefox, Safari и Edge поддерживают его нативно уже много лет. Изображения товаров в интернет-магазинах, баннеры в блогах, миниатюры видео и любые фотографии, опубликованные онлайн, получают прямую выгоду: более легкие страницы, лучшие показатели Google PageSpeed Insights и более плавный пользовательский опыт — особенно при медленном мобильном соединении.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Сравнение: локальная vs облачная конвертация',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Облачные конвертеры',
98
+ description: 'Инструменты, которые загружают ваши файлы на удаленный сервер.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Задержка сети при загрузке и скачивании',
103
+ 'Ваши фотографии хранятся на сторонних серверах',
104
+ 'Ограничения по размеру файлов и дневные лимиты конвертаций',
105
+ 'Навязчивая реклама и сторонние трекеры',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Наша локальная архитектура',
110
+ description: 'Прямая обработка на вашем оборудовании с использованием технологии Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Мгновенная скорость — нулевая задержка сети',
115
+ 'Полная конфиденциальность — 0 байт отправлено наружу',
116
+ 'Нет лимитов по размеру или количеству файлов',
117
+ 'Чистый интерфейс, без рекламы и отслеживания',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Как это работает технически',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Когда вы перетаскиваете JPG в инструмент, браузер создает <strong>объект Blob</strong>, который живет только в вашей оперативной памяти. Этот Blob декодируется и отрисовывается на невидимом элементе <strong>HTML5 Canvas</strong>. Поскольку у JPG нет альфа-канала, конвертация в WebP происходит напрямую: движок экспортирует холст, вызывая <code>toDataURL(\'image/webp\')</code>, создавая поток байтов, который ваша ОС мгновенно скачивает — без участия сервера.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Алгоритм сжатия WebP сочетает методы предсказания блоков (аналогичные тем, что используются в VP8, видеокодеке Google) с преобразованием цветов и арифметическим кодированием. Результатом является файл, содержащий ту же перцептивную информацию, что и исходный JPG, но упакованный гораздо более эффективно — что означает передачу меньшего количества килобайт при каждом посещении страницы.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Совет Core Web Vitals: LCP и вес изображения',
138
+ html: '<strong>Largest Contentful Paint (LCP)</strong> — это метрика Google, которая измеряет время загрузки самого крупного визуального элемента на вашей странице. JPG в шапке сайта размером 1,5 МБ может стать WebP размером всего 900 КБ или даже 600 КБ без заметной визуальной разницы. Эта <strong>экономия в 25–35%</strong> может перевести ваш LCP из категории "Требует улучшения" в "Хорошо" и поднять вас в результатах поиска.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Варианты использования и совместимость',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Изображения товаров в магазинах WooCommerce или Shopify: меньше вес, больше конверсий.',
150
+ 'Фотографии для блогов и статей: лучшие показатели PageSpeed без редизайна.',
151
+ 'Веб-баннеры и рекламные креативы: более легкие файлы при той же четкости.',
152
+ 'Портфолио для архитектурных, фото- или дизайн-студий.',
153
+ 'Миниатюры видео на стриминговых сайтах или платформах онлайн-курсов.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Заключение',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Конвертация ваших JPG в WebP сегодня является одной из самых простых и экономически выгодных оптимизаций, которые вы можете применить к любому веб-сайту. С помощью этого инструмента вы сделаете это за считанные секунды, бесплатно и без того, чтобы ваши изображения когда-либо покидали ваше устройство. Меньше килобайт, лучший LCP, более быстрые страницы — и все это при том же визуальном виде, который у вас уже был.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: JpgAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'ru', faq, howTo }),
178
+ };
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { JpgAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'konvertera-jpg-till-webp';
6
+ const title = 'Konvertera JPG till WebP Online och Gratis';
7
+ const description =
8
+ 'Konvertera JPG-bilder till WebP i din webbläsare. Överlägsen komprimering utan synlig förlust. Inga filuppladdningar. Gratis, obegränsat och privat.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Dra JPG-filer hit...',
12
+ convertText: 'För att konvertera dem till WebP direkt',
13
+ selectFiles: 'Välj filer',
14
+ processedFiles: 'Bearbetade filer',
15
+ downloadAll: 'Ladda ner alla (.zip)',
16
+ pending: 'Väntande',
17
+ bibliographyTitle: 'Bibliografiska Referenser',
18
+ faqTitle: 'Vanliga Frågor',
19
+ };
20
+
21
+ const faq: JpgAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Varför konvertera JPG-foton till WebP?',
24
+ answer:
25
+ 'WebP möjliggör betydligt bättre komprimering av traditionella JPG-filer utan att det mänskliga ögat märker skillnaden, vilket resulterar i snabbare och modernare webbplatser.',
26
+ },
27
+ {
28
+ question: 'Måste jag betala per bild?',
29
+ answer:
30
+ 'Nej, verktyget är gratis och allt bearbetas direkt på din dator. Det är obegränsat för både hem- och professionellt bruk.',
31
+ },
32
+ {
33
+ question: 'Är konverteringen säker?',
34
+ answer:
35
+ 'Ja, absolut. All bearbetning sker i HTML5 Canvas i din lokala webbläsare utan att skicka någon data till externa servrar.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Lägg till dina JPG-foton',
42
+ text: 'Släpp dina JPG-filer eller dra dem direkt till det övre området. Detekteringen sker omedelbart.',
43
+ },
44
+ {
45
+ name: 'Bearbetning till WebP',
46
+ text: 'Den lokala renderingsmotorn kommer att konvertera varje bildfil till en ultraoptimerad WebP redo för webben.',
47
+ },
48
+ {
49
+ name: 'Ladda ner resultaten',
50
+ text: 'Spara varje WebP individuellt eller ladda ner ZIP-filen med alla konverterade filer.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Google WebP komprimeringsstudie',
57
+ url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
+ },
59
+ {
60
+ name: 'Web.dev: Leverera bilder i moderna format',
61
+ url: 'https://web.dev/uses-webp-images/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'JPG till WebP-konverterare: Snabba upp din webbplats med Googles moderna format',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: '<strong>JPG</strong>-formatet har dominerat digital fotografering i årtionden — universellt kompatibelt och brett stöttat. Men Google utvecklade <strong>WebP</strong> för att slå JPG på dess egen hemmaplan: samma visuella kvalitet vid 25–35 % mindre filstorlek. För utvecklare och marknadsföringsteam som kämpar mot långsamma sidladdningar är konvertering av JPG till WebP den enskilt mest effektiva optimeringen du kan tillämpa utan att röra din design.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG eller WebP? När du ska använda respektive format',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '<strong>JPG</strong> förblir det rätta valet när du behöver universell kompatibilitet: e-post till kunder, Word-dokument, äldre sociala medieplattformar eller CMS-system som ännu inte accepterar WebP. Dess trettioåriga ekosystem garanterar att alla skärmar, skrivare eller bildvisare kommer att öppna det utan problem. Den största nackdelen är storleken — en header-JPG på 1,5 MB kan sänka din sidas LCP-poäng och missa tröskelvärdena för Core Web Vitals.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '<strong>WebP</strong> är det smarta valet för allt innehåll som lever på din webbplats. Chrome, Firefox, Safari och Edge har stött det nativt i åratal. Produktbilder i e-handel, bloggbanners, videominiatyrer och alla foton som publiceras online drar direkt nytta: lättare sidor, bättre Google PageSpeed Insights-poäng och en smidigare användarupplevelse — särskilt på långsamma mobilanslutningar.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Jämförelse: Lokal vs Molnkonvertering',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Molnkonverterare',
98
+ description: 'Verktyg som laddar upp dina filer till en fjärrserver.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Nätverkslatens vid uppladdning och nedladdning',
103
+ 'Dina foton lagras på tredjepartsservrar',
104
+ 'Begränsningar i filstorlek och dagliga konverteringstak',
105
+ 'Påträngande annonser och spårare från tredje part',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Vår Lokala Arkitektur',
110
+ description: 'Direkt bearbetning på din hårdvara med Vanilla JS-teknik.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Omedelbar hastighet — noll nätverkslatens',
115
+ 'Komplett integritet — 0 byte skickas externt',
116
+ 'Inga MB-gränser eller begränsningar på antal filer',
117
+ 'Rent gränssnitt, inga annonser eller spårning',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Hur det fungerar tekniskt',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'När du drar en JPG till verktyget skapar webbläsaren ett <strong>Blob-objekt</strong> som bara lever i ditt RAM-minne. Denna Blob avkodas och ritas på ett osynligt <strong>HTML5 Canvas</strong>-element. Eftersom JPG saknar en alfakanal är konverteringen till WebP direkt: motorn exporterar canvasen genom att anropa <code>toDataURL(\'image/webp\')</code>, vilket genererar en byteström som ditt operativsystem laddar ner omedelbart — ingen server inblandad.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'WebP-komprimeringsalgoritmen kombinerar tekniker för blockförutsägelse (liknande de i VP8, Googles videocodec) med färgtransformationer och aritmetisk kodning. Resultatet är en fil som innehåller samma perceptuella information som den ursprungliga JPG-filen men förpackad mycket mer effektivt — vilket innebär färre kilobyte överförda vid varje sidbesök.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Core Web Vitals Tips: LCP och bildvikt',
138
+ html: '<strong>Largest Contentful Paint (LCP)</strong> är det Google-mått som mäter hur lång tid det tar att ladda det största visuella elementet på din sida. En header-JPG på 1,5 MB kan bli en WebP på bara 900 KB — eller till och med 600 KB — utan märkbar visuell skillnad. Denna <strong>besparing på 25–35 %</strong> kan flytta din LCP från "Behöver förbättras" till "Bra" och förbättra din sökrankning.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Användningsområden och kompatibilitet',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Produktbilder i WooCommerce- eller Shopify-butiker: mindre vikt, mer konvertering.',
150
+ 'Fotografi för bloggar och artiklar: bättre PageSpeed-poäng utan att behöva designa om.',
151
+ 'Webbbanners och reklammaterial: lättare filer med samma skärpa.',
152
+ 'Portfoliogallerier för arkitektur-, fotografi- eller designstudior.',
153
+ 'Videominiatyrer på streamingsajter eller onlinekursplattformar.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Slutsats',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Att konvertera dina JPG-filer till WebP är idag en av de enklaste och mest kostnadseffektiva optimeringarna du kan tillämpa på vilken webbplats som helst. Med detta verktyg gör du det på några sekunder, gratis, och utan att dina bilder någonsin lämnar din enhet. Färre kilobyte, bättre LCP, snabbare sidor — allt med exakt samma visuella utseende som du redan hade.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: JpgAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'sv', faq, howTo }),
178
+ };