@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,182 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { WebpAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'conversor-de-webp-para-png';
6
+ const title = 'Converter WebP para PNG Online e Grátis';
7
+ const description =
8
+ 'Converta imagens WebP para PNG no seu navegador. Preserva a transparência. Sem carregamento de arquivos para servidores. Gratuito e 100% privado.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Arraste arquivos WebP...',
12
+ convertText: 'Para convertê-los em PNG 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: WebpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Por que preciso converter meus arquivos WebP para PNG?',
24
+ answer:
25
+ 'Apesar de serem mais leves, os arquivos WebP podem causar incompatibilidades em programas de edição como o Photoshop antigo. O PNG garante 100% de compatibilidade universal.',
26
+ },
27
+ {
28
+ question: 'As transparências são perdidas ao converter de WebP para PNG?',
29
+ answer:
30
+ 'De modo algum. Ao contrário da conversão para JPG, o PNG suporta o canal alfa. Nossa utilidade preservará qualquer área transparente do arquivo original.',
31
+ },
32
+ {
33
+ question: 'Posso carregar arquivos confidenciais da empresa?',
34
+ answer:
35
+ 'Pode e deve. Como tudo roda localmente via JavaScript, as imagens da sua empresa nunca sairão do seu computador nem serão armazenadas em servidores externos.',
36
+ },
37
+ ];
38
+
39
+ const howTo: WebpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Arraste seus arquivos WebP',
42
+ text: 'Mova e solte seus arquivos WebP no painel principal ou selecione as imagens tradicionalmente.',
43
+ },
44
+ {
45
+ name: 'Conversão de Alta Fidelidade',
46
+ text: 'Seu navegador redesenhará a imagem píxel por píxel e gerará uma cópia exata em formato PNG, mantendo a gama de cores original.',
47
+ },
48
+ {
49
+ name: 'Download Individual ou em Lote',
50
+ text: 'Salve cada arquivo individualmente ou, se processou um lote, clique no botão ZIP para baixá-los todos juntos compactados.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Documentação da API e Biblioteca WebP',
57
+ url: 'https://developers.google.com/speed/webp/docs/api',
58
+ },
59
+ {
60
+ name: 'Especificação do Contexto HTML Canvas 2D',
61
+ url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
+ },
63
+ {
64
+ name: 'Can I use: formato de imagem WebP',
65
+ url: 'https://caniuse.com/webp',
66
+ },
67
+ ];
68
+
69
+ const seo: WebpAPngLocaleContent['seo'] = [
70
+ {
71
+ type: 'title',
72
+ text: 'Conversor de WebP para PNG: A Escolha Profissional para Edição e Design',
73
+ level: 2,
74
+ },
75
+ {
76
+ type: 'paragraph',
77
+ html: 'Quando um designer baixa um asset gráfico em formato <strong>WebP</strong> e tenta abri-lo no Photoshop, Figma ou Illustrator, o resultado pode ser frustrante: o arquivo falha ao carregar ou perde qualidade. O formato <strong>PNG</strong> é o padrão indiscutível da edição profissional: compressão sem perdas (lossless), canal alfa completo e compatibilidade garantida em toda a cadeia de produção criativa.',
78
+ },
79
+ {
80
+ type: 'title',
81
+ text: 'WebP para a Web, PNG para o Estúdio',
82
+ level: 3,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'O WebP é um formato de produção web: seus algoritmos de compressão são otimizados para reduzir o peso da transferência, não para preservar a fidelidade máxima através de fluxos de trabalho de edição iterativos. Cada vez que você salva um WebP editado, o codec aplica a compressão novamente. Para projetos onde um arquivo será modificado muitas vezes, isso significa uma degradação de qualidade cumulativa.',
87
+ },
88
+ {
89
+ type: 'paragraph',
90
+ html: 'O PNG usa <strong>compressão lossless</strong>: os dados de cada píxel são preservados inteiramente, não importa quantas vezes você salve o arquivo. É o formato escolhido por designers de UI/UX, ilustradores digitais e equipas de branding que precisam de manter a integridade visual através de dezenas de revisões. Ferramentas como Photoshop, Figma, Sketch e Illustrator tratam o PNG como o seu formato de exportação principal.',
91
+ },
92
+ {
93
+ type: 'title',
94
+ text: 'Comparação: Conversão Local vs Cloud',
95
+ level: 3,
96
+ },
97
+ {
98
+ type: 'comparative',
99
+ items: [
100
+ {
101
+ title: 'Conversores Cloud',
102
+ description: 'Ferramentas que carregam os seus arquivos para um servidor remoto.',
103
+ icon: 'mdi:cloud-upload',
104
+ pointIcon: 'mdi:close-circle-outline',
105
+ points: [
106
+ 'Seus assets de design são armazenados em servidores de terceiros',
107
+ 'Processamento remoto lento para arquivos grandes',
108
+ 'Risco de fugas para projetos confidenciais de clientes',
109
+ 'Conversão em lote limitada ou paga',
110
+ ],
111
+ },
112
+ {
113
+ title: 'A Nossa Arquitetura Local',
114
+ description: 'Processamento direto no seu hardware utilizando a tecnologia Vanilla JS.',
115
+ icon: 'mdi:laptop-mac',
116
+ highlight: true,
117
+ points: [
118
+ 'Seus designs nunca deixam a sua máquina',
119
+ 'Converta instantaneamente dezenas de arquivos em lote',
120
+ 'Preservação total do canal alfa e gama de cores',
121
+ 'Privacidade absoluta para projetos de clientes',
122
+ ],
123
+ },
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Como funciona tecnicamente',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Os navegadores modernos podem descodificar WebP nativamente. Nossa ferramenta aproveita essa capacidade para carregar o arquivo num elemento <strong>Image</strong> de JavaScript, e depois desenha-o num canvas HTML5 com as mesmas dimensões do original. Ao contrário da conversão para JPG, aqui não é necessário nenhum preenchimento de fundo: o canvas mantém o canal alfa completo.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'A exportação final usa o método <code>toDataURL(\'image/png\')</code>, que gera um PNG lossless fiel ao original. O resultado é um arquivo pronto para importar diretamente em qualquer software de design profissional sem passos intermédios, degradação de cor ou perda de transparência.',
138
+ },
139
+ {
140
+ type: 'tip',
141
+ title: 'Dica para editores',
142
+ html: 'Use PNG quando precisar de continuar a editar a imagem. A compressão lossless garante que não haja degradação da qualidade devido a salvamentos repetidos — crítico ao trabalhar com camadas, máscaras ou ajustes de cor no Photoshop ou Figma.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Casos de uso e compatibilidade',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'list',
151
+ icon: 'mdi:check-circle',
152
+ items: [
153
+ 'Importar assets WebP para Photoshop, Figma, Sketch ou Illustrator.',
154
+ 'Preservar a transparência em logótipos e ícones para uso em múltiplos fundos.',
155
+ 'Criar cópias mestras de gráficos para projetos de longo prazo.',
156
+ 'Exportar assets para apps móveis que requerem PNG com canal alfa.',
157
+ 'Usar imagens em mockups de design e apresentações com fundos variáveis.',
158
+ ],
159
+ },
160
+ {
161
+ type: 'title',
162
+ text: 'Conclusão',
163
+ level: 3,
164
+ },
165
+ {
166
+ type: 'paragraph',
167
+ html: 'Se o WebP é o formato do servidor web, o PNG é o formato do estúdio de design. Esta ferramenta converte os seus assets WebP em PNGs prontos para produção, com transparência intacta e qualidade máxima — tudo no seu navegador e sem que os seus arquivos saiam da sua máquina.',
168
+ },
169
+ ];
170
+
171
+
172
+ export const content: WebpAPngLocaleContent = {
173
+ slug,
174
+ title,
175
+ description,
176
+ ui,
177
+ seo,
178
+ faq,
179
+ bibliography,
180
+ howTo,
181
+ schemas: generateSchemas({ title, description, inLanguage: 'pt', faq, howTo }),
182
+ };
@@ -0,0 +1,182 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { WebpAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-webp-v-png';
6
+ const title = 'Конвертировать WebP в PNG Онлайн и Бесплатно';
7
+ const description =
8
+ 'Конвертируйте изображения WebP в PNG прямо в браузере. Сохраняет прозрачность. Без загрузки файлов на сервер. Бесплатно и 100% приватно.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Перетащите файлы WebP...',
12
+ convertText: 'Чтобы мгновенно конвертировать их в PNG',
13
+ selectFiles: 'Выбрать файлы',
14
+ processedFiles: 'Обработанные файлы',
15
+ downloadAll: 'Скачать всё (.zip)',
16
+ pending: 'В ожидании',
17
+ bibliographyTitle: 'Библиографические ссылки',
18
+ faqTitle: 'Часто задаваемые вопросы',
19
+ };
20
+
21
+ const faq: WebpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Зачем мне конвертировать файлы WebP в PNG?',
24
+ answer:
25
+ 'Несмотря на меньший вес, файлы WebP могут вызывать несовместимость в программах редактирования, таких как старые версии Photoshop. PNG гарантирует 100% универсальную совместимость.',
26
+ },
27
+ {
28
+ question: 'Теряется ли прозрачность при конвертации из WebP в PNG?',
29
+ answer:
30
+ 'Вовсе нет. В отличие от конвертации в JPG, формат PNG поддерживает альфа-канал. Наша утилита сохранит все прозрачные области исходного файла.',
31
+ },
32
+ {
33
+ question: 'Могу ли я загружать конфиденциальные корпоративные файлы?',
34
+ answer:
35
+ 'Вы можете и должны это делать. Поскольку всё запускается локально через JavaScript, изображения вашей компании никогда не покинут ваш компьютер и не будут храниться на внешних серверах.',
36
+ },
37
+ ];
38
+
39
+ const howTo: WebpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Перетащите файлы WebP',
42
+ text: 'Переместите и отпустите файлы WebP на главную панель или выберите изображения традиционным способом.',
43
+ },
44
+ {
45
+ name: 'Конвертация высокой точности',
46
+ text: 'Ваш браузер перерисует изображение пиксель за пикселем и создаст точную копию в формате PNG, сохраняя исходную цветовую гамму.',
47
+ },
48
+ {
49
+ name: 'Индивидуальная или пакетная загрузка',
50
+ text: 'Сохраняйте каждый файл по отдельности или, если вы обработали пакет, нажмите кнопку ZIP, чтобы скачать их все вместе.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Документация API и библиотеки WebP',
57
+ url: 'https://developers.google.com/speed/webp/docs/api',
58
+ },
59
+ {
60
+ name: 'Спецификация HTML Canvas 2D Context',
61
+ url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
+ },
63
+ {
64
+ name: 'Can I use: формат изображений WebP',
65
+ url: 'https://caniuse.com/webp',
66
+ },
67
+ ];
68
+
69
+ const seo: WebpAPngLocaleContent['seo'] = [
70
+ {
71
+ type: 'title',
72
+ text: 'Конвертер WebP в PNG: профессиональный выбор для редактирования и дизайна',
73
+ level: 2,
74
+ },
75
+ {
76
+ type: 'paragraph',
77
+ html: 'Когда дизайнер скачивает графический ассет в формате <strong>WebP</strong> и пытается открыть его в Photoshop, Figma или Illustrator, результат может быть разочаровывающим: файл не загружается или теряет качество. Формат <strong>PNG</strong> является бесспорным стандартом профессионального редактирования: сжатие без потерь, полный альфа-канал и гарантированная совместимость во всей цепочке творческого производства.',
78
+ },
79
+ {
80
+ type: 'title',
81
+ text: 'WebP для веба, PNG для студии',
82
+ level: 3,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP — это формат для веба: его алгоритмы сжатия оптимизированы для уменьшения веса при передаче, а не для сохранения максимальной точности в итерационных процессах редактирования. Каждый раз, когда вы сохраняете отредактированный WebP, кодек снова применяет сжатие. Для проектов, где файл будет изменяться многократно, это означает постепенное ухудшение качества.',
87
+ },
88
+ {
89
+ type: 'paragraph',
90
+ html: 'PNG использует <strong>сжатие без потерь</strong>: данные каждого пикселя полностью сохраняются независимо от того, сколько раз вы сохраняете файл. Это формат, выбранный UI/UX-дизайнерами, цифровыми иллюстраторами и брендинг-командами, которым необходимо поддерживать визуальную целостность на протяжении десятков правок. Инструменты, такие как Photoshop, Figma, Sketch и Illustrator, рассматривают PNG как основной формат экспорта.',
91
+ },
92
+ {
93
+ type: 'title',
94
+ text: 'Сравнение: локальная vs облачная конвертация',
95
+ level: 3,
96
+ },
97
+ {
98
+ type: 'comparative',
99
+ items: [
100
+ {
101
+ title: 'Облачные конвертеры',
102
+ description: 'Инструменты, которые загружают ваши файлы на удаленный сервер.',
103
+ icon: 'mdi:cloud-upload',
104
+ pointIcon: 'mdi:close-circle-outline',
105
+ points: [
106
+ 'Ваши ассеты хранятся на сторонних серверах',
107
+ 'Медленная удаленная обработка больших файлов',
108
+ 'Риск утечки конфиденциальных клиентских проектов',
109
+ 'Пакетная конвертация ограничена или платная',
110
+ ],
111
+ },
112
+ {
113
+ title: 'Наша локальная архитектура',
114
+ description: 'Прямая обработка на вашем оборудовании с использованием технологии Vanilla JS.',
115
+ icon: 'mdi:laptop-mac',
116
+ highlight: true,
117
+ points: [
118
+ 'Ваши дизайны никогда не покидают ваш компьютер',
119
+ 'Мгновенная пакетная конвертация десятков файлов',
120
+ 'Полное сохранение альфа-канала и цветовой гаммы',
121
+ 'Абсолютная приватность для клиентских проектов',
122
+ ],
123
+ },
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Как это работает технически',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Современные браузеры могут декодировать WebP нативно. Наш инструмент использует эту возможность для загрузки файла в элемент JavaScript <strong>Image</strong>, а затем отрисовывает его на холсте HTML5 с теми же размерами, что и оригинал. В отличие от конвертации в JPG, здесь не требуется заполнение фона: холст сохраняет полный альфа-канал.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Конечный экспорт использует метод <code>toDataURL(\'image/png\')</code>, который генерирует PNG без потерь, верный оригиналу. Результатом является файл, готовый к импорту непосредственно в любое профессиональное программное обеспечение для дизайна без промежуточных этапов, ухудшения цвета или потери прозрачности.',
138
+ },
139
+ {
140
+ type: 'tip',
141
+ title: 'Совет для редакторов',
142
+ html: 'Используйте PNG, когда вам нужно продолжить редактирование изображения. Сжатие без потерь гарантирует отсутствие ухудшения качества при повторных сохранениях — это критически важно при работе со слоями, масками или цветокоррекцией в Photoshop или Figma.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Варианты использования и совместимость',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'list',
151
+ icon: 'mdi:check-circle',
152
+ items: [
153
+ 'Импорт ассетов WebP в Photoshop, Figma, Sketch или Illustrator.',
154
+ 'Сохранение прозрачности в логотипах и иконках для использования на различных фонах.',
155
+ 'Создание мастер-копий графики для долгосрочных проектов.',
156
+ 'Экспорт ассетов для мобильных приложений, требующих PNG с альфа-каналом.',
157
+ 'Использование изображений в макетах дизайна и презентациях с переменным фоном.',
158
+ ],
159
+ },
160
+ {
161
+ type: 'title',
162
+ text: 'Заключение',
163
+ level: 3,
164
+ },
165
+ {
166
+ type: 'paragraph',
167
+ html: 'Если WebP — это формат для веб-сервера, то PNG — это формат для студии дизайна. Этот инструмент конвертирует ваши ассеты WebP в готовые к производству PNG-файлы с сохранением прозрачности и максимальным качеством — и всё это в вашем браузере, без того чтобы ваши файлы когда-либо покидали ваш компьютер.',
168
+ },
169
+ ];
170
+
171
+
172
+ export const content: WebpAPngLocaleContent = {
173
+ slug,
174
+ title,
175
+ description,
176
+ ui,
177
+ seo,
178
+ faq,
179
+ bibliography,
180
+ howTo,
181
+ schemas: generateSchemas({ title, description, inLanguage: 'ru', faq, howTo }),
182
+ };
@@ -0,0 +1,182 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { WebpAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'webp-till-png-konverterare';
6
+ const title = 'Konvertera WebP till PNG Online och Gratis';
7
+ const description =
8
+ 'Konvertera WebP-bilder till PNG i din webbläsare. Bevarar transparens. Inga filuppladdningar till servrar. Gratis och 100 % privat.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Dra WebP-files hit...',
12
+ convertText: 'För att konvertera dem till PNG 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: WebpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Varför behöver jag konvertera mina WebP-filer till PNG?',
24
+ answer:
25
+ 'Trots att de är lättare kan WebP-filer orsaka inkompatibilitet i redigeringsprogram som äldre Photoshop. PNG säkerställer 100 % universell kompatibilitet.',
26
+ },
27
+ {
28
+ question: 'Går transparensen förlorad vid konvertering från WebP till PNG?',
29
+ answer:
30
+ 'Inte alls. Till skillnad från konvertering till JPG så stöder PNG alfakanalen. Vårt verktyg kommer att bevara alla transparenta områden från originalfilen.',
31
+ },
32
+ {
33
+ question: 'Kan jag ladda upp konfidentiella företagsfiler?',
34
+ answer:
35
+ 'Du kan och bör göra det. Eftersom allt körs lokalt via JavaScript kommer dina företagsbilder aldrig att lämna din dator eller lagras på externa servrar.',
36
+ },
37
+ ];
38
+
39
+ const howTo: WebpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Dra dina WebP-filer',
42
+ text: 'Flytta och släpp dina WebP-filer på huvudpanelen eller välj bilderna på traditionellt sätt.',
43
+ },
44
+ {
45
+ name: 'High Fidelity Konvertering',
46
+ text: 'Din webbläsare kommer att rita om bilden pixel för pixel och generera en exakt kopia i PNG-format, vilket bibehåller det ursprungliga färgomfånget.',
47
+ },
48
+ {
49
+ name: 'Individuell nedladdning eller Batch-nedladdning',
50
+ text: 'Spara varje fil individuellt eller, om du har bearbetat ett parti, klicka på ZIP-knappen för att ladda ner dem alla paketerade tillsammans.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'WebP API och Biblioteksdokumentation',
57
+ url: 'https://developers.google.com/speed/webp/docs/api',
58
+ },
59
+ {
60
+ name: 'HTML Canvas 2D Context-specifikation',
61
+ url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
+ },
63
+ {
64
+ name: 'Can I use: WebP-bildformat',
65
+ url: 'https://caniuse.com/webp',
66
+ },
67
+ ];
68
+
69
+ const seo: WebpAPngLocaleContent['seo'] = [
70
+ {
71
+ type: 'title',
72
+ text: 'WebP till PNG-konverterare: Det professionella valet för redigering och design',
73
+ level: 2,
74
+ },
75
+ {
76
+ type: 'paragraph',
77
+ html: 'När en designer laddar ner en grafisk resurs i <strong>WebP</strong>-format och försöker öppna den i Photoshop, Figma eller Illustrator kan resultatet bli frustrerande: filen går inte att ladda eller förlorar i kvalitet. <strong>PNG</strong>-formatet är den obestridda standarden för professionell redigering: förlustfri komprimering, full alfakanal och garanterad kompatibilitet genom hela den kreativa produktionskedjan.',
78
+ },
79
+ {
80
+ type: 'title',
81
+ text: 'WebP för webben, PNG för studion',
82
+ level: 3,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP är ett format för webbproduktion: dess komprimeringsalgoritmer är optimerade för att minska överföringsvikten, inte för att bevara maximal trohet genom iterativa redigeringsarbetsflöden. Varje gång du sparar en redigerad WebP tillämpar codec-enheten komprimering igen. För projekt där en fil kommer att ändras många gånger innebär detta en kumulativ kvalitetsförsämring.',
87
+ },
88
+ {
89
+ type: 'paragraph',
90
+ html: 'PNG använder <strong>förlustfri komprimering</strong>: alla pixeldata bevaras helt oavsett hur många gånger du sparar filen. Det är det format som valts av UI/UX-designers, digitala illustratörer och varumärkesteam som behöver bibehålla visuell integritet genom dussintals revisioner. Verktyg som Photoshop, Figma, Sketch och Illustrator behandlar PNG som sitt primära exportformat.',
91
+ },
92
+ {
93
+ type: 'title',
94
+ text: 'Jämförelse: Lokal vs Molnkonvertering',
95
+ level: 3,
96
+ },
97
+ {
98
+ type: 'comparative',
99
+ items: [
100
+ {
101
+ title: 'Molnkonverterare',
102
+ description: 'Verktyg som laddar upp dina filer till en fjärrserver.',
103
+ icon: 'mdi:cloud-upload',
104
+ pointIcon: 'mdi:close-circle-outline',
105
+ points: [
106
+ 'Dina designresurser lagras på servrar från tredje part',
107
+ 'Långsam fjärrbearbetning för stora filer',
108
+ 'Risk för läckor i konfidentiella kundprojekt',
109
+ 'Batch-konvertering begränsad eller betalväggstörd',
110
+ ],
111
+ },
112
+ {
113
+ title: 'Vår Lokala Arkitektur',
114
+ description: 'Direkt bearbetning på din hårdvara med Vanilla JS-teknik.',
115
+ icon: 'mdi:laptop-mac',
116
+ highlight: true,
117
+ points: [
118
+ 'Dina designer lämnar aldrig din maskin',
119
+ 'Batch-konvertera dussintals filer omedelbart',
120
+ 'Full alfakanal och bevarande av färgomfång',
121
+ 'Absolut integritet för kundprojekt',
122
+ ],
123
+ },
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Hur det fungerar tekniskt',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Moderna webbläsare kan avkoda WebP nativt. Vårt verktyg utnyttjar denna förmåga för att ladda filen till ett JavaScript-<strong>Image</strong>-element och ritar sedan den på en HTML5 canvas med samma dimensioner som originalet. Till skillnad från konvertering till JPG behövs ingen bakgrundsfyllning här: canvasen behåller den fulla alfakanalen.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Den slutliga exporten använder metoden <code>toDataURL(\'image/png\')</code>, vilket genererar en förlustfri PNG trogen originalet. Resultatet är en fil redo att importeras direkt till vilket professionellt designprogram som helst utan mellanliggande steg, färgförsämring eller transparensförlust.',
138
+ },
139
+ {
140
+ type: 'tip',
141
+ title: 'Tips för redaktörer',
142
+ html: 'Använd PNG när du behöver fortsätta redigera bilden. Förlustfri komprimering garanterar ingen kvalitetsförsämring vid upprepade sparanden — avgörande vid arbete med lager, masker eller färgjusteringar i Photoshop eller Figma.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Användningsområden och kompatibilitet',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'list',
151
+ icon: 'mdi:check-circle',
152
+ items: [
153
+ 'Importera WebP-resurser till Photoshop, Figma, Sketch eller Illustrator.',
154
+ 'Bevara transparens i logotyper och ikoner för användning på flera bakgrunder.',
155
+ 'Skapa masterkopior av grafik för långvariga projekt.',
156
+ 'Exportera resurser för mobilappar som kräver PNG med alfakanal.',
157
+ 'Använda bilder i design-mockups och presentationer med variabla bakgrunder.',
158
+ ],
159
+ },
160
+ {
161
+ type: 'title',
162
+ text: 'Slutsats',
163
+ level: 3,
164
+ },
165
+ {
166
+ type: 'paragraph',
167
+ html: 'Om WebP är formatet för webbservern är PNG formatet för designstudion. Detta verktyg konverterar dina WebP-resurser till produktionsklara PNG:er, med intakt transparens och maximal kvalitet — allt i din webbläsare och utan att dina filer någonsin lämnar din maskin.',
168
+ },
169
+ ];
170
+
171
+
172
+ export const content: WebpAPngLocaleContent = {
173
+ slug,
174
+ title,
175
+ description,
176
+ ui,
177
+ seo,
178
+ faq,
179
+ bibliography,
180
+ howTo,
181
+ schemas: generateSchemas({ title, description, inLanguage: 'sv', faq, howTo }),
182
+ };