@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,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { AvifAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'avif-zu-png-konvertieren';
6
+ const title = 'AVIF in PNG Online Konvertieren';
7
+ const description =
8
+ 'Konvertieren Sie AVIF-Bilder in PNG und behalten Sie dabei die Transparenz bei. Ohne Dateien hochzuladen. Lokale Verarbeitung in Ihrem Browser. Kostenlos und unbegrenzt.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'AVIF-Dateien hierher ziehen...',
12
+ convertText: 'Um sie sofort in PNG zu konvertieren',
13
+ selectFiles: 'Dateien auswählen',
14
+ processedFiles: 'Verarbeitete Dateien',
15
+ downloadAll: 'Alles herunterladen (.zip)',
16
+ pending: 'Ausstehend',
17
+ bibliographyTitle: 'Literaturhinweise',
18
+ faqTitle: 'Häufig gestellte Fragen',
19
+ };
20
+
21
+ const faq: AvifAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Warum sollte ich AVIF in PNG konvertieren?',
24
+ answer:
25
+ 'AVIF ist großartig für die Kompression, aber die Kompatibilität in alten Browsern und klassischen Editoren ist eingeschränkt. Durch die Konvertierung von AVIF in PNG stellen Sie sicher, dass Ihre Datei die ursprüngliche Transparenz behält und von allen Anwendungen geöffnet werden kann.',
26
+ },
27
+ {
28
+ question: 'Bleiben die Transparenzen der ursprünglichen AVIF-Datei erhalten?',
29
+ answer:
30
+ 'Ja. Im Gegensatz zu JPG, das den transparenten Hintergrund entfernt, behält unser Konverter beim Export in PNG den Alphakanal intakt.',
31
+ },
32
+ {
33
+ question: 'Werden meine Bilder wirklich nicht ins Internet hochgeladen?',
34
+ answer:
35
+ 'Absolut richtig. Unser Konverter wird zu 100 % lokal auf Ihrem Gerät mit der internen JavaScript-Engine ausgeführt.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Fügen Sie Ihre AVIF-Dateien hinzu',
42
+ text: 'Sie können sie direkt in den markierten Bereich ziehen oder die Schaltfläche verwenden, um die Ordner auf Ihrem Gerät zu durchsuchen.',
43
+ },
44
+ {
45
+ name: 'Sofortige Verarbeitung',
46
+ text: 'Lassen Sie den HTML5-Prozessor das Bild rendern; das Format wird in Mikrosekunden automatisch in PNG geändert.',
47
+ },
48
+ {
49
+ name: 'Holen Sie sich Ihre PNGs',
50
+ text: 'Laden Sie die konvertierten Bilder einzeln herunter oder laden Sie einen kompletten Block über die ZIP-Schaltfläche herunter.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Alliance for Open Media: AVIF-Format',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'W3C - Portable Network Graphics (PNG) Spezifikation',
61
+ url: 'https://www.w3.org/TR/png/',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAPngLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'AVIF-zu-PNG-Konverter: Von der Web-Bereitstellung zur professionellen Bearbeitung',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF ist das ideale Format für die Bereitstellung von Bildern im Web – klein, effizient und von hoher Qualität. Aber wenn es an der Zeit ist, diese Bilder in Design-Tools zu bearbeiten oder zu retuschieren, wird AVIF zu einem Hindernis. Figma, Photoshop, Illustrator, Sketch und praktisch jedes professionelle Design-Tool erwarten PNG für die Arbeit mit Transparenzen und verlustfreier Bearbeitung. Das Konvertieren von AVIF in PNG ist die Brücke zwischen der Welt der Web-Bereitstellung und der kreativen Bearbeitung.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs. PNG: Bereitstellung vs. Bearbeitung',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF glänzt als Bereitstellungsformat: kleine Dateien, schnelles Laden, Unterstützung von Alphakanälen und außergewöhnliche visuelle Qualität. Sein Ökosystem an Tools ist jedoch begrenzt. Die meiste Design-Software kann AVIF nicht direkt importieren, was kreative Arbeitsabläufe unterbricht. Der Versuch, ein AVIF in Figma zu öffnen oder es als Ebene in Photoshop zu importieren, funktioniert einfach nicht.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'PNG ist das native Format des digitalen Designs. Mit verlustfreier Kompression, vollständiger Unterstützung von Alphakanälen und universeller Kompatibilität mit allen kreativen Tools ist PNG das Arbeitsformat schlechthin. Wenn Sie Bilder skalieren, retuschieren, in mehrere Formate exportieren oder in Ebenen arbeiten müssen, garantiert PNG, dass Sie dabei keine Details oder Pixel verlieren.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Vergleich: Cloud-Konverter vs. Unsere lokale Architektur',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Cloud Konverter',
98
+ description: 'Tools, die Ihre AVIF-Dateien zur Verarbeitung auf einen Remote-Server hochladen.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Ihre Design-Bilder wandern zu Servern von Drittanbietern',
103
+ 'Wartezeit durch Netzwerklatenz',
104
+ 'Möglicher Verlust oder Änderung des Alphakanals',
105
+ 'Größenbeschränkungen, die die Stapelkonvertierung erschweren',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Unsere lokale Architektur',
110
+ description: 'Direkte Verarbeitung in Ihrem Browser mittels Vanilla JS-Technologie und Canvas API.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Alphakanal mit perfekter Treue erhalten',
115
+ 'Sofortige Konvertierung ohne Datentransfer',
116
+ 'Keine Beschränkungen für Dateien, Größe oder Stapel',
117
+ 'Vollständige Privatsphäre für proprietäre Design-Assets',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Wie die technische Konvertierung mit Transparenzen funktioniert',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Moderne Browser dekodieren AVIF dank ihrer integrierten AV1-Engines nativ. Beim Laden der Datei dekodiert der Browser sie im Speicher und behält dabei alle Informationen des Alphakanals bei. Das dekodierte Bild – einschließlich seiner Transparenzen – wird auf ein HTML5-<code>Canvas</code>-Element mit dem richtigen Kompositionsmodus gezeichnet, um den Alphakanal zu erhalten.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Im Gegensatz zum Export in JPG (der Transparenzen durch Ausfüllen mit Weiß zerstört), bleibt beim Export in PNG mittels <code>toBlob(\'image/png\')</code> der Alphakanal vollständig erhalten. Das Ergebnis ist ein PNG mit verlustfreier Kompression, das jeden Pixel, jede Semitransparenz und jedes Detail des ursprünglichen AVIF beibehält.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Der obligatorische Vorab Schritt für jedes Design Tool',
138
+ html: 'Konvertieren Sie Ihre AVIFs in PNG, bevor Sie sie in Figma, Photoshop, Illustrator oder ein anderes Design-Tool importieren. Diese Anwendungen lesen AVIF nicht direkt, aber PNG funktioniert in allen nativ und behält Transparenzen und Qualität perfekt bei.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Anwendungsfälle: Wann Sie AVIF in PNG konvertieren müssen',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Importieren in Figma, Sketch, Adobe XD oder andere UI-Design-Tools.',
150
+ 'Bearbeiten als Ebene in Photoshop, Affinity Photo oder GIMP unter Beibehaltung der Transparenz.',
151
+ 'Verwendung als Quelle für die Erstellung von Icons oder Sprites.',
152
+ 'Senden an Kunden oder Mitarbeiter, die mit Standard-Design-Software arbeiten.',
153
+ 'Archivieren von Bildern mit Transparenzen im verlustfreien Bearbeitungsformat.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Fazit: Die Brücke zwischen Web und Design',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF und PNG sind perfekte Begleiter in einem modernen Arbeitsablauf: AVIF für die effiziente Bereitstellung im Web, PNG für die Bearbeitung und Zusammenarbeit in Design-Tools. Mit unserem Konverter ist der Übergang von einem zum anderen sofortig, privat und bewahrt jedes Detail – genau das, was Sie brauchen, wenn es auf Ihre visuellen Assets ankommt.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAPngLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'de', faq, howTo }),
178
+ };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { AvifAPngLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'avif-to-png-converter';
@@ -164,16 +164,6 @@ const seo: AvifAPngLocaleContent['seo'] = [
164
164
  },
165
165
  ];
166
166
 
167
- const appSchema: WithContext<SoftwareApplication> = {
168
- '@context': 'https://schema.org',
169
- '@type': 'SoftwareApplication',
170
- name: title,
171
- description,
172
- applicationCategory: 'UtilitiesApplication',
173
- operatingSystem: 'Web',
174
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
- inLanguage: 'en',
176
- };
177
167
 
178
168
  export const content: AvifAPngLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: AvifAPngLocaleContent = {
184
174
  faq,
185
175
  bibliography,
186
176
  howTo,
187
- schemas: [appSchema as any],
177
+ schemas: generateSchemas({ title, description, inLanguage: 'en', faq, howTo }),
188
178
  };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { AvifAPngLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'convertidor-avif-a-png';
@@ -164,16 +164,6 @@ const seo: AvifAPngLocaleContent['seo'] = [
164
164
  },
165
165
  ];
166
166
 
167
- const appSchema: WithContext<SoftwareApplication> = {
168
- '@context': 'https://schema.org',
169
- '@type': 'SoftwareApplication',
170
- name: title,
171
- description,
172
- applicationCategory: 'UtilitiesApplication',
173
- operatingSystem: 'Web',
174
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
- inLanguage: 'es',
176
- };
177
167
 
178
168
  export const content: AvifAPngLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: AvifAPngLocaleContent = {
184
174
  faq,
185
175
  bibliography,
186
176
  howTo,
187
- schemas: [appSchema as any],
177
+ schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
188
178
  };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { AvifAPngLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'convertisseur-avif-en-png';
@@ -164,16 +164,6 @@ const seo: AvifAPngLocaleContent['seo'] = [
164
164
  },
165
165
  ];
166
166
 
167
- const appSchema: WithContext<SoftwareApplication> = {
168
- '@context': 'https://schema.org',
169
- '@type': 'SoftwareApplication',
170
- name: title,
171
- description,
172
- applicationCategory: 'UtilitiesApplication',
173
- operatingSystem: 'Web',
174
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
- inLanguage: 'fr',
176
- };
177
167
 
178
168
  export const content: AvifAPngLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: AvifAPngLocaleContent = {
184
174
  faq,
185
175
  bibliography,
186
176
  howTo,
187
- schemas: [appSchema as any],
177
+ schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
188
178
  };
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { AvifAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-avif-ke-png';
6
+ const title = 'Ubah AVIF ke PNG Online';
7
+ const description =
8
+ 'Ubah gambar AVIF ke PNG dengan tetap mempertahankan transparansi. Tanpa mengunggah file. Pemrosesan lokal di browser Anda. Gratis dan tidak terbatas.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Seret file AVIF...',
12
+ convertText: 'Untuk mengubahnya ke PNG secara instan',
13
+ selectFiles: 'Pilih file',
14
+ processedFiles: 'File yang diproses',
15
+ downloadAll: 'Unduh Semua (.zip)',
16
+ pending: 'Tertunda',
17
+ bibliographyTitle: 'Referensi Bibliografi',
18
+ faqTitle: 'Pertanyaan Umum',
19
+ };
20
+
21
+ const faq: AvifAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Mengapa saya harus mengubah AVIF ke PNG?',
24
+ answer:
25
+ 'AVIF sangat bagus untuk kompresi, tetapi kompatibilitasnya terbatas pada browser lama dan editor klasik. Dengan mengubah dari AVIF ke PNG, Anda memastikan bahwa file Anda akan mempertahankan transparansi asli dan semua aplikasi dapat membukanya.',
26
+ },
27
+ {
28
+ question: 'Apakah transparansi file AVIF asli tetap dipertahankan?',
29
+ answer:
30
+ 'Ya. Berbeda dengan JPG yang menghapus latar belakang transparan, saat mengekspor ke PNG, konverter kami menjaga saluran alfa tetap utuh.',
31
+ },
32
+ {
33
+ question: 'Apakah benar gambar saya tidak diunggah ke internet?',
34
+ answer:
35
+ 'Benar sekali. Konverter kami berjalan 100% secara lokal di perangkat Anda menggunakan mesin JavaScript internal.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Tambahkan file AVIF Anda',
42
+ text: 'Anda dapat menyeretnya langsung ke area yang ditentukan atau menggunakan tombol untuk menjelajahi folder di komputer Anda.',
43
+ },
44
+ {
45
+ name: 'Pemrosesan segera',
46
+ text: 'Biarkan prosesor HTML5 merender gambar; format akan berubah menjadi PNG secara otomatis dalam hitungan mikrodetik.',
47
+ },
48
+ {
49
+ name: 'Dapatkan file PNG Anda',
50
+ text: 'Unduh gambar yang dikonversi satu per satu atau unduh seluruh blok melalui tombol ZIP.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Alliance for Open Media: Format AVIF',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'W3C - Spesifikasi Portable Network Graphics (PNG)',
61
+ url: 'https://www.w3.org/TR/png/',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAPngLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konverter AVIF ke PNG: Dari Pengiriman Web ke Pengeditan Profesional',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF adalah format ideal untuk menyajikan gambar di web — kecil, efisien, dan berkualitas tinggi. Namun saat tiba waktunya untuk mengedit, merekayasa ulang, atau mengerjakan gambar tersebut di alat desain, AVIF menjadi penghalang. Figma, Photoshop, Illustrator, Sketch, dan hampir semua alat desain profesional mengharapkan PNG untuk pengerjaan transparansi dan pengeditan tanpa kehilangan. Mengubah AVIF ke PNG adalah jembatan antara dunia pengiriman web dan dunia pengeditan kreatif.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs PNG: Pengiriman vs Pengeditan',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF menonjol sebagai format pengiriman: file kecil, pemuatan cepat, dukungan saluran alfa, dan kualitas visual yang luar biasa. Namun, ekosistem alatnya terbatas. Sebagian besar perangkat lunak desain tidak dapat mengimpor AVIF secara langsung, yang mengganggu alur kerja kreatif. Mencoba membuka AVIF di Figma atau mengimpornya sebagai lapisan di Photoshop tidak akan berhasil.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'PNG adalah format asli dari desain digital. Dengan kompresi tanpa kehilangan, dukungan saluran alfa penuh, dan kompatibilitas universal dengan semua alat kreatif, PNG adalah format kerja par excellence. Saat Anda perlu menskalakan, merekayasa ulang, mengekspor ke berbagai format, atau bekerja dalam lapisan, PNG menjamin bahwa Anda tidak akan kehilangan detail atau piksel apa pun dalam prosesnya.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Perbandingan: Konverter Cloud vs Arsitektur Lokal Kami',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Konverter Cloud',
98
+ description: 'Alat yang mengunggah file AVIF Anda ke server jarak jauh untuk memprosesnya.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Gambar desain Anda dikirim ke server pihak ketiga',
103
+ 'Waktu tunggu karena latensi jaringan',
104
+ 'Kemungkinan kehilangan atau perubahan saluran alfa',
105
+ 'Batasan ukuran yang mempersulit konversi massal',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Arsitektur Lokal Kami',
110
+ description: 'Pemrosesan langsung di browser Anda menggunakan teknologi Vanilla JS dan Canvas API.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Saluran alfa dipertahankan dengan ketepatan sempurna',
115
+ 'Konversi instan tanpa transfer data',
116
+ 'Tanpa batasan file, ukuran, maupun batch',
117
+ 'Privasi total untuk aset desain milik sendiri',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Cara kerja konversi teknis dengan transparansi',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Browser modern mendekode AVIF secara asli berkat mesin AV1 terintegrasi mereka. Saat memuat file, browser mendekodenya dalam memori dengan tetap mempertahankan semua informasi saluran alfa. Gambar yang didekodekan — termasuk transparansinya — digambar di atas elemen <code>Canvas</code> HTML5 dengan mode komposisi yang tepat untuk mempertahankan saluran alfa.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Berbeda dengan ekspor ke JPG (yang merusak transparansi dengan mengisinya dengan warna putih), ekspor ke PNG menggunakan <code>toBlob(\'image/png\')</code> mempertahankan saluran alfa secara utuh. Hasilnya adalah PNG dengan kompresi tanpa kehilangan yang menjaga setiap piksel, setiap semi-transparansi, dan setiap detail dari AVIF asli.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Langkah awal wajib untuk alat desain apa pun',
138
+ html: 'Ubah AVIF Anda ke PNG sebelum mengimpornya ke Figma, Photoshop, Illustrator, atau alat desain apa pun. Aplikasi ini tidak membaca AVIF secara langsung, tetapi PNG berfungsi secara asli di semuanya, mempertahankan transparansi dan kualitas dengan sempurna.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Kasus penggunaan: kapan Anda membutuhkan AVIF dikonversi ke PNG',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Impor ke Figma, Sketch, Adobe XD, atau alat desain UI lainnya.',
150
+ 'Edit sebagai lapisan di Photoshop, Affinity Photo, atau GIMP dengan tetap mempertahankan transparansi.',
151
+ 'Gunakan sebagai sumber untuk pembuatan ikon atau sprite.',
152
+ 'Kirim ke klien atau kolaborator yang bekerja dengan perangkat lunak desain standar.',
153
+ 'Arsipkan gambar dengan transparansi dalam format pengeditan tanpa kehilangan.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Kesimpulan: Jembatan antara web dan desain',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF dan PNG adalah mitra sempurna dalam alur kerja modern: AVIF untuk pengiriman web yang efisien, PNG untuk pengeditan dan kolaborasi dalam alat desain. Dengan konverter kami, peralihan dari satu ke yang lain bersifat instan, pribadi, dan mempertahankan setiap detail — tepat seperti yang Anda butuhkan saat aset visual Anda sangat penting.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAPngLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'id', 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 { AvifAPngLocaleContent } from '../index';
4
+
5
+ const slug = 'convertitore-avif-a-png';
6
+ const title = 'Convertire AVIF in PNG Online';
7
+ const description =
8
+ 'Converti le tue immagini AVIF in PNG preservando le trasparenze. Senza caricare file. Elaborazione locale nel tuo browser. Gratuito e illimitato.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Trascina i file AVIF...',
12
+ convertText: 'Per convertirli in PNG istantaneamente',
13
+ selectFiles: 'Seleziona i file',
14
+ processedFiles: 'File elaborati',
15
+ downloadAll: 'Scarica tutto (.zip)',
16
+ pending: 'In attesa',
17
+ bibliographyTitle: 'Riferimenti Bibliografici',
18
+ faqTitle: 'Domande Frequenti',
19
+ };
20
+
21
+ const faq: AvifAPngLocaleContent['faq'] = [
22
+ {
23
+ question: 'Perché dovrei convertire AVIF in PNG?',
24
+ answer:
25
+ 'L\'AVIF è ottimo per la compressione, ma la sua compatibilità è limitata nei browser meno recenti e negli editor classici. Convertendo l\'AVIF in PNG, ti assicuri che il tuo file manterrà la trasparenza originale e tutte le applicazioni potranno aprirlo.',
26
+ },
27
+ {
28
+ question: 'Le trasparenze del file AVIF originale vengono mantenute?',
29
+ answer:
30
+ 'Sì. A differenza del JPG che elimina lo sfondo trasparente, esportando in PNG il nostro convertitore mantiene intatto il canale alfa.',
31
+ },
32
+ {
33
+ question: 'È vero che le mie immagini non vengono caricate su Internet?',
34
+ answer:
35
+ 'Assolutamente vero. Il nostro convertitore viene eseguito al 100% localmente sul tuo dispositivo utilizzando il motore JavaScript interno.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAPngLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Aggiungi i tuoi file AVIF',
42
+ text: 'Puoi trascinarli direttamente nell\'area delimitata o utilizzare il pulsante per esplorare le cartelle del tuo computer.',
43
+ },
44
+ {
45
+ name: 'Elaborazione immediata',
46
+ text: 'Lascia che il processore HTML5 esegua il rendering dell\'immagine; il formato cambierà automaticamente in PNG in pochi microsecondi.',
47
+ },
48
+ {
49
+ name: 'Ottieni i tuoi PNG',
50
+ text: 'Scarica le immagini convertite una ad una o scarica un blocco completo tramite il pulsante ZIP.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAPngLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Alliance for Open Media: Formato AVIF',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'W3C - Specifiche Portable Network Graphics (PNG)',
61
+ url: 'https://www.w3.org/TR/png/',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAPngLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Convertitore AVIF a PNG: Dal Web Editing alla Progettazione Professionale',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'L\'AVIF è il formato ideale per servire immagini sul web: piccolo, efficiente e di alta qualità. Ma quando arriva il momento di modificare, ritoccare o lavorare con quelle immagini in strumenti di progettazione, l\'AVIF diventa un ostacolo. Figma, Photoshop, Illustrator, Sketch e praticamente qualsiasi strumento di progettazione professionale si aspettano di ricevere PNG per il lavoro con trasparenze e l\'editing senza perdita. Convertire l\'AVIF in PNG è il ponte tra il mondo della distribuzione web e quello dell\'editing creativo.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs PNG: Distribuzione vs Editing',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'L\'AVIF eccelle come formato di distribuzione: file piccoli, caricamento rapido, supporto del canale alfa e qualità visiva eccezionale. Tuttavia, il suo ecosistema di strumenti è limitato. La maggior parte dei software di progettazione non può importare l\'AVIF direttamente, interrompendo i flussi di lavoro creativi. Provare ad aprire un AVIF in Figma o importarlo come livello in Photoshop semplicemente non funziona.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Il PNG è il formato nativo della progettazione digitale. Con compressione senza perdita, supporto completo del canale alfa e compatibilità universale con tutti gli strumenti creativi, il PNG è il formato di lavoro per eccellenza. Quando hai bisogno di scalare, ritoccare, esportare in più formati o lavorare a livelli, il PNG garantisce che non perderai alcun dettaglio o pixel nel processo.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Confronto: Convertitori Cloud vs La Nostra Architettura Locale',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Convertitori Cloud',
98
+ description: 'Strumenti che caricano i tuoi file AVIF su un server remoto per elaborarli.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Le tue immagini di progettazione viaggiano verso server di terze parti',
103
+ 'Tempi di attesa dovuti alla latenza di rete',
104
+ 'Possibile perdita o alterazione del canale alfa',
105
+ 'Limiti di dimensione che complicano la conversione in batch',
106
+ ],
107
+ },
108
+ {
109
+ title: 'La Nostra Architettura Locale',
110
+ description: 'Elaborazione diretta nel tuo browser tramite tecnologia Vanilla JS e Canvas API.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Canale alfa preservato con fedeltà perfetta',
115
+ 'Conversione istantanea senza trasferimento di dati',
116
+ 'Senza limiti di file, dimensioni o batch',
117
+ 'Privacy totale per asset di progettazione proprietari',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Come funziona la conversione tecnica con le trasparenze',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'I browser moderni decodificano l\'AVIF in modo nativo grazie ai loro motori AV1 integrati. Caricando il file, il browser lo decodifica in memoria preservando tutte le informazioni del canale alfa. L\'immagine decodificata, incluse le sue trasparenze, viene disegnata su un elemento <code>Canvas</code> HTML5 con la modalità di composizione corretta per preservare il canale alfa.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'A differenza dell\'esportazione in JPG (che distrugge le trasparenze riempiendo con il bianco), l\'esportazione in PNG tramite <code>toBlob(\'image/png\')</code> preserva integralmente il canale alfa. Il risultato è un PNG con compressione senza perdita che mantiene ogni pixel, ogni semitrasparenza e ogni dettaglio dell\'AVIF originale.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Il passaggio obbligatorio per qualsiasi strumento di progettazione',
138
+ html: 'Converti i tuoi AVIF in PNG prima di importarli in Figma, Photoshop, Illustrator o qualsiasi strumento di progettazione. Queste applicazioni non leggono l\'AVIF direttamente, ma il PNG funziona in modo nativo in tutte, preservando perfettamente trasparenze e qualità.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casi d\'uso: quando hai bisogno dell\'AVIF convertito in PNG',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Importazione in Figma, Sketch, Adobe XD o altri strumenti di progettazione UI.',
150
+ 'Editing come livello in Photoshop, Affinity Photo o GIMP preservando le trasparenze.',
151
+ 'Utilizzo come sorgente per la generazione di icone o sprite.',
152
+ 'Invio a clienti o collaboratori che lavorano con software di progettazione standard.',
153
+ 'Archiviazione di immagini con trasparenze in formato di editing senza perdita.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusione: Il ponte tra il web e la progettazione',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF e PNG sono compagni perfetti in un flusso di lavoro moderno: AVIF per la distribuzione efficiente sul web, PNG per l\'editing e la collaborazione negli strumenti di progettazione. Con il nostro convertitore, il passaggio dall\'uno all\'altro è istantaneo, privato e preserva ogni dettaglio: esattamente ciò di cui hai bisogno quando i tuoi asset visivi sono importanti.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAPngLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'it', faq, howTo }),
178
+ };