@jjlmoya/utils-converters 1.7.0 → 1.9.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 (346) 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/slug_uniqueness.test.ts +81 -0
  10. package/src/tests/title_quality.test.ts +55 -0
  11. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  12. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  15. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  25. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  26. package/src/tool/avifAJpg/index.ts +13 -1
  27. package/src/tool/avifAPng/i18n/de.ts +178 -0
  28. package/src/tool/avifAPng/i18n/en.ts +2 -12
  29. package/src/tool/avifAPng/i18n/es.ts +2 -12
  30. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  31. package/src/tool/avifAPng/i18n/id.ts +178 -0
  32. package/src/tool/avifAPng/i18n/it.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  34. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  35. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  37. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  38. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  39. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  40. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  41. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  42. package/src/tool/avifAPng/index.ts +13 -1
  43. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  44. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  47. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  57. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  58. package/src/tool/avifAWebp/index.ts +13 -1
  59. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  60. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  63. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  73. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  74. package/src/tool/bmpAJpg/index.ts +13 -1
  75. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  76. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  79. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  89. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  90. package/src/tool/bmpAPng/index.ts +13 -1
  91. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  92. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  95. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  105. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  106. package/src/tool/bmpAWebp/index.ts +13 -1
  107. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  108. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  111. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  121. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  122. package/src/tool/gifAJpg/index.ts +13 -1
  123. package/src/tool/gifAPng/i18n/de.ts +178 -0
  124. package/src/tool/gifAPng/i18n/en.ts +2 -12
  125. package/src/tool/gifAPng/i18n/es.ts +2 -12
  126. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  127. package/src/tool/gifAPng/i18n/id.ts +178 -0
  128. package/src/tool/gifAPng/i18n/it.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  130. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  131. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  133. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  134. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  135. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  136. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  137. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  138. package/src/tool/gifAPng/index.ts +12 -0
  139. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  140. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  143. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  153. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  154. package/src/tool/gifAWebp/index.ts +12 -0
  155. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  156. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  159. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  165. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  166. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  169. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  170. package/src/tool/imagenBase64/index.ts +12 -0
  171. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  172. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  173. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  174. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  175. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  185. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  186. package/src/tool/jpgAIco/index.ts +12 -0
  187. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  188. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  191. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  201. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  202. package/src/tool/jpgAPng/index.ts +13 -1
  203. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  204. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  207. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  217. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  218. package/src/tool/jpgAWebp/index.ts +12 -0
  219. package/src/tool/pngAIco/i18n/de.ts +183 -0
  220. package/src/tool/pngAIco/i18n/en.ts +8 -13
  221. package/src/tool/pngAIco/i18n/es.ts +19 -24
  222. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  223. package/src/tool/pngAIco/i18n/id.ts +183 -0
  224. package/src/tool/pngAIco/i18n/it.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  226. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  227. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  229. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  230. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  231. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  232. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  233. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  234. package/src/tool/pngAIco/index.ts +12 -0
  235. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  236. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  239. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  249. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  250. package/src/tool/pngAJpg/index.ts +13 -1
  251. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  252. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  255. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  265. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  266. package/src/tool/pngAWebp/index.ts +12 -0
  267. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  268. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  270. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  271. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  281. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  282. package/src/tool/svgAJpg/index.ts +12 -0
  283. package/src/tool/svgAPng/i18n/de.ts +178 -0
  284. package/src/tool/svgAPng/i18n/en.ts +8 -13
  285. package/src/tool/svgAPng/i18n/es.ts +31 -36
  286. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  287. package/src/tool/svgAPng/i18n/id.ts +178 -0
  288. package/src/tool/svgAPng/i18n/it.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  290. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  291. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  293. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  294. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  295. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  296. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  297. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  298. package/src/tool/svgAPng/index.ts +12 -0
  299. package/src/tool/webpAIco/i18n/de.ts +183 -0
  300. package/src/tool/webpAIco/i18n/en.ts +8 -13
  301. package/src/tool/webpAIco/i18n/es.ts +9 -14
  302. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  303. package/src/tool/webpAIco/i18n/id.ts +183 -0
  304. package/src/tool/webpAIco/i18n/it.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  306. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  307. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  309. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  310. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  311. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  312. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  313. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  314. package/src/tool/webpAIco/index.ts +12 -0
  315. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  316. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  317. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  318. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  319. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  329. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  330. package/src/tool/webpAJpg/index.ts +12 -0
  331. package/src/tool/webpAPng/i18n/de.ts +182 -0
  332. package/src/tool/webpAPng/i18n/en.ts +8 -13
  333. package/src/tool/webpAPng/i18n/es.ts +35 -40
  334. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  335. package/src/tool/webpAPng/i18n/id.ts +182 -0
  336. package/src/tool/webpAPng/i18n/it.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  338. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  339. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  341. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  342. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  343. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  344. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  345. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  346. 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 = 'webp-naar-png-converter';
6
+ const title = 'Converteer WebP naar PNG Online en Gratis';
7
+ const description =
8
+ 'Converteer WebP-afbeeldingen naar PNG in je browser. Behoudt transparantie. Geen bestandsuploads naar servers. Gratis en 100% privé.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Sleep WebP-bestanden...',
12
+ convertText: 'Om ze direct naar PNG te converteren',
13
+ selectFiles: 'Bestanden selecteren',
14
+ processedFiles: 'Verwerkte bestanden',
15
+ downloadAll: 'Alles downloaden (.zip)',
16
+ pending: 'In afwachting',
17
+ bibliographyTitle: 'Bibliografische Referenties',
18
+ faqTitle: 'Veelgestelde Vragen',
19
+ };
20
+
21
+ const faq: WebpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Waarom moet ik mijn WebP-bestanden converteren naar PNG?',
24
+ answer:
25
+ 'Ondanks dat ze lichter zijn, kunnen WebP-bestanden compatibiliteitsproblemen veroorzaken in bewerkingsprogramma\'s zoals oudere Photoshop-versies. PNG garandeert 100% universele compatibiliteit.',
26
+ },
27
+ {
28
+ question: 'Gaan transparanties verloren bij het converteren van WebP naar PNG?',
29
+ answer:
30
+ 'Helemaal niet. In tegenstelling tot conversie naar JPG, ondersteunt PNG het alfakanaal. Onze tool behoudt elk transparant gebied van het originele bestand.',
31
+ },
32
+ {
33
+ question: 'Kan ik vertrouwelijke bedrijfsbestanden uploaden?',
34
+ answer:
35
+ 'Dat kan en dat moet je ook doen. Omdat alles lokaal via JavaScript draait, verlaten je bedrijfsafbeeldingen nooit je computer en worden ze niet op externe servers opgeslagen.',
36
+ },
37
+ ];
38
+
39
+ const howTo: WebpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Sleep je WebP-bestanden',
42
+ text: 'Sleep je WebP-bestanden naar het hoofdpaneel of selecteer de afbeeldingen op de traditionele manier.',
43
+ },
44
+ {
45
+ name: 'High Fidelity Conversie',
46
+ text: 'Je browser tekent de afbeelding pixel voor pixel opnieuw en genereert een exacte kopie in PNG-formaat, waarbij het originele kleurengamma behouden blijft.',
47
+ },
48
+ {
49
+ name: 'Individuele of Bulk Download',
50
+ text: 'Sla elk bestand afzonderlijk op of, als je een batch hebt verwerkt, klik op de ZIP-knop om ze allemaal gebundeld te downloaden.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'WebP API en Bibliotheek Documentatie',
57
+ url: 'https://developers.google.com/speed/webp/docs/api',
58
+ },
59
+ {
60
+ name: 'HTML Canvas 2D Context Specificatie',
61
+ url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
+ },
63
+ {
64
+ name: 'Can I use: WebP-afbeeldingsformaat',
65
+ url: 'https://caniuse.com/webp',
66
+ },
67
+ ];
68
+
69
+ const seo: WebpAPngLocaleContent['seo'] = [
70
+ {
71
+ type: 'title',
72
+ text: 'WebP naar PNG Converter: de professionele keuze voor bewerking en ontwerp',
73
+ level: 2,
74
+ },
75
+ {
76
+ type: 'paragraph',
77
+ html: 'Wanneer een ontwerper een grafisch asset in <strong>WebP</strong>-formaat downloadt en probeert te openen in Photoshop, Figma of Illustrator, kan het resultaat frustrerend zijn: het bestand kan niet worden geladen of verliest kwaliteit. Het <strong>PNG</strong>-formaat is de onbetwiste standaard voor professionele bewerking: verliesvrije compressie, volledig alfakanaal en gegarandeerde compatibiliteit in de hele creatieve productieketen.',
78
+ },
79
+ {
80
+ type: 'title',
81
+ text: 'WebP voor het web, PNG voor de studio',
82
+ level: 3,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP is een formaat voor webproductie: de compressie-algoritmen zijn geoptimaliseerd om het overdrachtsgewicht te verminderen, niet om maximale getrouwheid te behouden tijdens iteratieve bewerkingsworkflows. Elke keer dat je een bewerkt WebP-bestand opslaat, past de codec opnieuw compressie toe. Voor projecten waarbij een bestand vaak wordt gewijzigd, betekent dit een cumulatieve kwaliteitsvermindering.',
87
+ },
88
+ {
89
+ type: 'paragraph',
90
+ html: 'PNG gebruikt <strong>verliesvrije compressie</strong>: de gegevens van elke pixel blijven volledig behouden, ongeacht hoe vaak je het bestand opslaat. Het is het formaat bij uitstek voor UI/UX-ontwerpers, digitale illustratoren en brandingteams die de visuele integriteit over tientallen revisies heen moeten handhaven. Tools zoals Photoshop, Figma, Sketch en Illustrator behandelen PNG als hun primaire exportformaat.',
91
+ },
92
+ {
93
+ type: 'title',
94
+ text: 'Vergelijking: Lokale vs Cloud-conversie',
95
+ level: 3,
96
+ },
97
+ {
98
+ type: 'comparative',
99
+ items: [
100
+ {
101
+ title: 'Cloud Converters',
102
+ description: 'Tools die je bestanden uploaden naar een externe server.',
103
+ icon: 'mdi:cloud-upload',
104
+ pointIcon: 'mdi:close-circle-outline',
105
+ points: [
106
+ 'Je ontwerpassets worden opgeslagen op servers van derden',
107
+ 'Trage externe verwerking voor grote bestanden',
108
+ 'Risico op lekken voor vertrouwelijke klantprojecten',
109
+ 'Batchconversie beperkt of achter een betaalmuur',
110
+ ],
111
+ },
112
+ {
113
+ title: 'Onze Lokale Architectuur',
114
+ description: 'Directe verwerking op je eigen hardware met Vanilla JS-technologie.',
115
+ icon: 'mdi:laptop-mac',
116
+ highlight: true,
117
+ points: [
118
+ 'Je ontwerpen verlaten nooit je machine',
119
+ 'Converteer tientallen bestanden direct in batch',
120
+ 'Volledig behoud van alfakanaal en kleurengamma',
121
+ 'Absolute privacy voor klantprojecten',
122
+ ],
123
+ },
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Hoe het technisch werkt',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Moderne browsers kunnen WebP native decoderen. Onze tool maakt gebruik van deze eigenschap om het bestand in een JavaScript-<strong>Image</strong>-element te laden en tekent het vervolgens op een HTML5-canvas met dezelfde afmetingen als het origineel. In tegenstelling tot conversie naar JPG is hier geen achtergrondvulling nodig: het canvas behoudt het volledige alfakanaal.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'De uiteindelijke export maakt gebruik van de <code>toDataURL(\'image/png\')</code> methode, die een verliesvrije PNG genereert die trouw is aan het origineel. Het resultaat is een bestand dat direct in elke professionele ontwerpsoftware kan worden geïmporteerd zonder tussenstappen, kleurverlies of verlies van transparantie.',
138
+ },
139
+ {
140
+ type: 'tip',
141
+ title: 'Tip voor bewerkers',
142
+ html: 'Gebruik PNG wanneer je de afbeelding verder moet bewerken. Verliesvrije compressie garandeert dat er geen kwaliteitsverlies optreedt door herhaaldelijk opslaan — cruciaal bij het werken met lagen, maskers of kleuraanpassingen in Photoshop of Figma.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Toepassingen en compatibiliteit',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'list',
151
+ icon: 'mdi:check-circle',
152
+ items: [
153
+ 'WebP-assets importeren in Photoshop, Figma, Sketch of Illustrator.',
154
+ 'Transparantie behouden in logo\'s en iconen voor gebruik op meerdere achtergronden.',
155
+ 'Masterkopieën van graphics maken voor langlopende projecten.',
156
+ 'Assets exporteren voor mobiele apps die PNG met alfakanaal vereisen.',
157
+ 'Afbeeldingen gebruiken in ontwerpmock-ups en presentaties met variabele achtergronden.',
158
+ ],
159
+ },
160
+ {
161
+ type: 'title',
162
+ text: 'Conclusie',
163
+ level: 3,
164
+ },
165
+ {
166
+ type: 'paragraph',
167
+ html: 'Als WebP het formaat voor webservers is, dan is PNG het formaat voor de ontwerpstudio. Deze tool converteert je WebP-assets naar productieklare PNG\'s, met behoud van transparantie en maximale kwaliteit — allemaal in je browser en zonder dat je bestanden je machine ooit verlaten.',
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: 'nl', 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 = 'konwerter-webp-na-png';
6
+ const title = 'Konwertuj WebP na PNG Online i Za Darmo';
7
+ const description =
8
+ 'Konwertuj obrazy WebP na PNG w przeglądarce. Zachowuje przezroczystość. Brak przesyłania plików na serwery. Darmowe i w 100% prywatne.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Przeciągnij pliki WebP...',
12
+ convertText: 'Aby błyskawicznie przekonwertować je na PNG',
13
+ selectFiles: 'Wybierz pliki',
14
+ processedFiles: 'Przetworzone pliki',
15
+ downloadAll: 'Pobierz wszystko (.zip)',
16
+ pending: 'Oczekujące',
17
+ bibliographyTitle: 'Bibliografia',
18
+ faqTitle: 'Często Zadawane Pytania',
19
+ };
20
+
21
+ const faq: WebpAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Dlaczego muszę konwertować pliki WebP na PNG?',
24
+ answer:
25
+ 'Mimo że są lżejsze, pliki WebP mogą powodować niekompatybilność w programach do edycji, takich jak starsze wersje Photoshop. Format PNG zapewnia 100% uniwersalną kompatybilność.',
26
+ },
27
+ {
28
+ question: 'Czy przezroczystość zostanie utracona podczas konwersji z WebP na PNG?',
29
+ answer:
30
+ 'Zdecydowanie nie. W przeciwieństwie do konwersji na JPG, format PNG obsługuje kanał alfa. Nasze narzędzie zachowa każdy przezroczysty obszar z oryginalnego pliku.',
31
+ },
32
+ {
33
+ question: 'Czy mogę bezpiecznie przesyłać poufne pliki firmowe?',
34
+ answer:
35
+ 'Możesz i powinieneś. Ponieważ wszystko działa lokalnie za pośrednictwem JavaScript, obrazy Twojej firmy nigdy nie opuszczą Twojego komputera ani nie będą przechowywane na zewnętrznych serwerach.',
36
+ },
37
+ ];
38
+
39
+ const howTo: WebpAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Przeciągnij pliki WebP',
42
+ text: 'Przenieś i upuść pliki WebP na panel główny lub wybierz obrazy w tradycyjny sposób.',
43
+ },
44
+ {
45
+ name: 'Konwersja wysokiej wierności',
46
+ text: 'Twoja przeglądarka przerysuje obraz piksel po pikselu i wygeneruje dokładną kopię w formacie PNG, zachowując oryginalną gamę kolorów.',
47
+ },
48
+ {
49
+ name: 'Pobieranie pojedyncze lub zbiorcze',
50
+ text: 'Zapisz każdy plik z osobna lub, jeśli przetworzyłeś partię, kliknij przycisk ZIP, aby pobrać je wszystkie spakowane razem.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: WebpAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Dokumentacja API i biblioteki WebP',
57
+ url: 'https://developers.google.com/speed/webp/docs/api',
58
+ },
59
+ {
60
+ name: 'Specyfikacja HTML Canvas 2D Context',
61
+ url: 'https://html.spec.whatwg.org/multipage/canvas.html',
62
+ },
63
+ {
64
+ name: 'Can I use: format obrazu WebP',
65
+ url: 'https://caniuse.com/webp',
66
+ },
67
+ ];
68
+
69
+ const seo: WebpAPngLocaleContent['seo'] = [
70
+ {
71
+ type: 'title',
72
+ text: 'Konwerter WebP na PNG: Profesjonalny wybór do edycji i projektowania',
73
+ level: 2,
74
+ },
75
+ {
76
+ type: 'paragraph',
77
+ html: 'Gdy projektant pobiera zasób graficzny w formacie <strong>WebP</strong> i próbuje otworzyć go w programie Photoshop, Figma lub Illustrator, wynik może być frustrujący: plik nie ładuje się lub traci na jakości. Format <strong>PNG</strong> jest niekwestionowanym standardem profesjonalnej edycji: bezstratna kompresja, pełny kanał alfa i gwarantowana kompatybilność w całym łańcuchu produkcji kreatywnej.',
78
+ },
79
+ {
80
+ type: 'title',
81
+ text: 'WebP do sieci, PNG do studia',
82
+ level: 3,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP to format do produkcji internetowej: jego algorytmy kompresji są zoptymalizowane pod kątem zmniejszenia wagi transferu, a nie zachowania maksymalnej wierności podczas iteracyjnych przepływów pracy związanych z edycją. Za każdym razem, gdy zapisujesz edytowany plik WebP, kodek ponownie stosuje kompresję. W przypadku projektów, w których plik będzie modyfikowany wiele razy, oznacza to skumulowaną utratę jakości.',
87
+ },
88
+ {
89
+ type: 'paragraph',
90
+ html: 'PNG wykorzystuje <strong>bezstratną kompresję</strong>: dane każdego piksela są zachowywane w całości bez względu na to, ile razy zapisujesz plik. Jest to format wybierany przez projektantów UI/UX, ilustratorów cyfrowych i zespoły brandingowe, które muszą zachować spójność wizualną podczas dziesiątek poprawek. Narzędzia takie jak Photoshop, Figma, Sketch i Illustrator traktują PNG jako swój podstawowy format eksportu.',
91
+ },
92
+ {
93
+ type: 'title',
94
+ text: 'Porównanie: Konwersja lokalna vs w chmurze',
95
+ level: 3,
96
+ },
97
+ {
98
+ type: 'comparative',
99
+ items: [
100
+ {
101
+ title: 'Konwertery w chmurze',
102
+ description: 'Narzędzia, które przesyłają Twoje pliki na zdalny serwer.',
103
+ icon: 'mdi:cloud-upload',
104
+ pointIcon: 'mdi:close-circle-outline',
105
+ points: [
106
+ 'Twoje zasoby projektowe są przechowywane na serwerach osób trzecich',
107
+ 'Powolne przetwarzanie zdalne dużych plików',
108
+ 'Ryzyko wycieku poufnych projektów klientów',
109
+ 'Konwersja wsadowa ograniczona lub płatna',
110
+ ],
111
+ },
112
+ {
113
+ title: 'Nasza lokalna architektura',
114
+ description: 'Bezpośrednie przetwarzanie na Twoim sprzęcie przy użyciu technologii Vanilla JS.',
115
+ icon: 'mdi:laptop-mac',
116
+ highlight: true,
117
+ points: [
118
+ 'Twoje projekty nigdy nie opuszczają Twojej maszyny',
119
+ 'Błyskawiczna konwersja wsadowa dziesiątek plików',
120
+ 'Pełne zachowanie kanału alfa i gamy kolorów',
121
+ 'Absolutna prywatność dla projektów klientów',
122
+ ],
123
+ },
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Jak to działa technicznie',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Nowoczesne przeglądarki potrafią dekodować format WebP natywnie. Nasze narzędzie wykorzystuje tę możliwość do załadowania pliku do elementu JavaScript <strong>Image</strong>, a następnie rysuje go na płótnie HTML5 o tych samych wymiarach co oryginał. W przeciwieństwie do konwersji na JPG, tutaj nie jest potrzebne wypełnianie tła: płótno zachowuje pełny kanał alfa.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Ostateczny eksport wykorzystuje metodę <code>toDataURL(\'image/png\')</code>, która generuje bezstratny plik PNG wierny oryginałowi. Rezultatem jest plik gotowy do bezpośredniego importu do dowolnego profesjonalnego oprogramowania do projektowania bez etapów pośrednich, degradacji kolorów czy utraty przezroczystości.',
138
+ },
139
+ {
140
+ type: 'tip',
141
+ title: 'Wskazówka dla edytorów',
142
+ html: 'Używaj formatu PNG, gdy chcesz kontynuować edycję obrazu. Bezstratna kompresja gwarantuje brak utraty jakości przy wielokrotnym zapisie — co jest kluczowe podczas pracy z warstwami, maskami lub korekcją kolorów w programie Photoshop lub Figma.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Zastosowania i kompatybilność',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'list',
151
+ icon: 'mdi:check-circle',
152
+ items: [
153
+ 'Importowanie zasobów WebP do programów Photoshop, Figma, Sketch lub Illustrator.',
154
+ 'Zachowanie przezroczystości w logo i ikonach do użytku na wielu tłach.',
155
+ 'Tworzenie kopii wzorcowych grafik na potrzeby długotrwałych projektów.',
156
+ 'Eksportowanie zasobów dla aplikacji mobilnych wymagających formatu PNG z kanałem alfa.',
157
+ 'Używanie obrazów w makietach projektowych i prezentacjach ze zmiennym tłem.',
158
+ ],
159
+ },
160
+ {
161
+ type: 'title',
162
+ text: 'Podsumowanie',
163
+ level: 3,
164
+ },
165
+ {
166
+ type: 'paragraph',
167
+ html: 'Jeśli WebP jest formatem serwera WWW, to PNG jest formatem studia projektowego. To narzędzie konwertuje Twoje zasoby WebP na gotowe do produkcji pliki PNG, z nienaruszoną przezroczystością i maksymalną jakością — wszystko w Twojej przeglądarce i bez opuszczania maszyny przez Twoje pliki.',
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: 'pl', 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 = '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
+ };