@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 { AvifAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'avif-zu-jpg-konvertieren';
6
+ const title = 'AVIF in JPG Online Konvertieren';
7
+ const description =
8
+ 'Konvertieren Sie AVIF-Bilder in Ihrem Browser in JPG. Ohne Server. 100 % private lokale Verarbeitung. Kostenlos und unbegrenzt.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'AVIF-Dateien hierher ziehen...',
12
+ convertText: 'Um sie sofort in JPG 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: AvifAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Warum AVIF in JPG konvertieren?',
24
+ answer:
25
+ 'Das AVIF-Format bietet eine überlegene Kompression, aber nicht alle Programme oder Viewer unterstützen es. Die Konvertierung in JPG stellt sicher, dass das Bild auf 100 % der Geräte weltweit angezeigt werden kann.',
26
+ },
27
+ {
28
+ question: 'Wie schützen wir Ihre AVIF-Bilder?',
29
+ answer:
30
+ 'Ihre Fotos verlassen niemals Ihr Handy oder Ihren PC. Der gesamte Prozess des Zeichnens und Kodierens in JPEG wird in der JavaScript-Umgebung Ihres Browsers ausgeführt.',
31
+ },
32
+ {
33
+ question: 'Verliere ich bei der Umwandlung von AVIF zu JPG an Qualität?',
34
+ answer:
35
+ 'Unser Tool verarbeitet die Pixel mit einer Standard-Canvas-Qualität (0,9 bis 0,95), sodass die Änderungen kaum wahrnehmbar sind.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Dateien ziehen oder klicken',
42
+ text: 'Verschieben Sie alle AVIF-Fotos, die Sie konvertieren möchten, in den markierten Verarbeitungsbereich.',
43
+ },
44
+ {
45
+ name: 'Sofortige Transformation',
46
+ text: 'Beobachten Sie in weniger als einer Sekunde, wie das AVIF in JPG neu kodiert wird, wobei mögliche Alphakanäle durch einen soliden Hintergrund ersetzt werden.',
47
+ },
48
+ {
49
+ name: 'Speichern oder ZIP herunterladen',
50
+ text: 'Laden Sie Ihre neuen JPG-Bilder einzeln herunter oder drücken Sie auf "Alles herunterladen", wenn Sie in Stapeln verarbeitet haben.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'AV1 Image File Format (AVIF)',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'Allgemeine Informationen zu JPG',
61
+ url: 'https://en.wikipedia.org/wiki/JPEG',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'AVIF-zu-JPG-Konverter: Universelle Kompatibilität für Ihre modernen Bilder',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF (AV1 Image File Format) ist das effizienteste Bildformat, das heute verfügbar ist. Es wurde von der Alliance for Open Media entwickelt und basiert auf dem AV1-Videocodec. Es bietet eine um 50 % höhere Kompression als JPG bei gleicher visueller Qualität. Dieser technische Vorteil hat jedoch seinen Preis: AVIF wird von Photoshop, Lightroom, dem Windows Photo Viewer und den meisten herkömmlichen Bearbeitungs- und Anzeigetools nicht unterstützt. Das Konvertieren in JPG löst dieses Problem an der Wurzel.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs. JPG: Effizienz gegenüber universeller Kompatibilität',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF komprimiert außergewöhnlich gut: Ein hochauflösendes Foto, das in JPG 4 MB einnimmt, kann in AVIF bei gleicher wahrgenommener Qualität nur 2 MB wiegen. Dies macht es perfekt für die Web-Bereitstellung, bei der die Ladeleistung kritisch ist. Außerhalb des Browsers ist AVIF jedoch praktisch unsichtbar: Weder der Windows Explorer zeigt eine Vorschau an, noch exportieren Kameras es, noch nehmen Designer es gerne in ihre Arbeitsabläufe auf.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG ist seit über 30 Jahren der universelle Standard der digitalen Fotografie. Es wird von 100 % der Geräte, Betriebssysteme, Büroanwendungen, sozialen Netzwerke, Drucker und jeder Software unterstützt, die jemals ein Bild gesehen hat. Wenn Sie Bilder teilen, drucken, bearbeiten oder per E-Mail versenden müssen, ist JPG die Garantie dafür, dass alles reibungslos funktioniert.',
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 privaten Fotos reisen über das Internet zu externen Servern',
103
+ 'Wartezeiten durch Hoch- und Herunterladen der Datei',
104
+ 'Größenbeschränkungen und Anzahl der kostenlosen Konvertierungen',
105
+ 'Risiko der Aufbewahrung von Bildern auf Servern von Drittanbietern',
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
+ 'Ihre Bilder verlassen niemals Ihr Gerät',
115
+ 'Sofortige Konvertierung ohne Netzwerklatenz',
116
+ 'Keine Beschränkungen für Dateien oder Größe',
117
+ 'Geeignet für medizinische, rechtliche oder vertrauliche Bilder',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Wie die technische Konvertierung im Browser funktioniert',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Moderne Browser wie Chrome, Firefox und Edge bieten dank ihrer integrierten AV1-Decoder native Unterstützung für AVIF. Wenn Sie eine AVIF-Datei laden, dekodiert der Browser sie im Speicher und wandelt sie in eine Bitmap-Darstellung im RAM um. Diese Darstellung wird auf ein unsichtbares HTML5-<code>Canvas</code>-Element gezeichnet.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Anschließend exportiert das Canvas das Bild mit <code>toBlob(\'image/jpeg\', quality)</code> unter Anwendung der Standard-JPG-Kompression. Da JPG keine Transparenzen unterstützt, wird jeder im AVIF vorhandene Alphakanal vor dem Export mit einem weißen Hintergrund gefüllt. Das Ergebnis ist eine qualitativ hochwertige JPG-Datei, die zum direkten Download bereitsteht, ohne dass ein Byte Ihren Browser verlassen hat.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Das perfekte Gleichgewicht zwischen Kompression und Kompatibilität',
138
+ html: 'AVIF ist bei gleicher Qualität um 50 % kleiner als JPG – aber JPG bietet 100 % Kompatibilität mit jeder Software. Wenn Sie AVIF-Bilder vom Server erhalten und diese bearbeiten, per E-Mail versenden oder in Desktop-Tools öffnen müssen, konvertieren Sie sie zuerst in JPG.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Anwendungsfälle: Wann man AVIF in JPG konvertieren sollte',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Bearbeiten in Photoshop, Lightroom, GIMP oder anderer Desktop-Software.',
150
+ 'Teilen von Bildern mit Benutzern auf alten Geräten oder Betriebssystemen.',
151
+ 'Anhängen an E-Mails, um die Anzeige in jedem E-Mail-Client zu garantieren.',
152
+ 'Veröffentlichen auf Plattformen, die AVIF nicht als Upload-Format akzeptieren.',
153
+ 'Drucken: Professionelle Druckdienste arbeiten nativ mit JPG.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Fazit: Universelle Kompatibilität in einem Schritt',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF ist die Zukunft der Bildkompression, aber die Gegenwart verlangt Kompatibilität. Unser Konverter ermöglicht es Ihnen, das Beste aus beiden Welten zu erhalten: Empfangen und speichern Sie Bilder in AVIF für maximale Effizienz, und konvertieren Sie sie sofort in JPG, wenn sie in einem beliebigen Kontext funktionieren müssen. Alles privat, kostenlos und unbegrenzt.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAJpgLocaleContent = {
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 { AvifAJpgLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'avif-to-jpg-converter';
@@ -164,16 +164,6 @@ const seo: AvifAJpgLocaleContent['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: AvifAJpgLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: AvifAJpgLocaleContent = {
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 { AvifAJpgLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'convertidor-avif-a-jpg';
@@ -164,16 +164,6 @@ const seo: AvifAJpgLocaleContent['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: AvifAJpgLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: AvifAJpgLocaleContent = {
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 { AvifAJpgLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'convertisseur-avif-en-jpg';
@@ -164,16 +164,6 @@ const seo: AvifAJpgLocaleContent['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: AvifAJpgLocaleContent = {
179
169
  slug,
@@ -184,5 +174,5 @@ export const content: AvifAJpgLocaleContent = {
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 { AvifAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-avif-ke-jpg';
6
+ const title = 'Ubah AVIF ke JPG Online';
7
+ const description =
8
+ 'Ubah gambar AVIF ke JPG di browser Anda. Tanpa server. Pemrosesan lokal 100% pribadi. Gratis dan tidak terbatas.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Seret file AVIF...',
12
+ convertText: 'Untuk mengubahnya ke JPG 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: AvifAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Mengapa mengubah AVIF ke JPG?',
24
+ answer:
25
+ 'Format AVIF menawarkan kompresi yang unggul, tetapi tidak semua program atau penampil mendukungnya. Mengubahnya ke JPG memastikan bahwa gambar tersebut dapat dilihat di 100% perangkat di seluruh dunia.',
26
+ },
27
+ {
28
+ question: 'Bagaimana kami melindungi gambar AVIF Anda?',
29
+ answer:
30
+ 'Foto-foto Anda tidak pernah keluar dari ponsel atau PC Anda. Seluruh proses penggambaran dan pengkodean ke JPEG dijalankan di lingkungan Javascript browser Anda.',
31
+ },
32
+ {
33
+ question: 'Apakah saya akan kehilangan kualitas saat beralih dari AVIF ke JPG?',
34
+ answer:
35
+ 'Alat kami memproses piksel dengan kualitas standar Canvas (0,9 hingga 0,95), membuat perubahan hampir tidak terlihat.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Seret file atau klik',
42
+ text: 'Pindahkan semua foto AVIF yang ingin Anda ubah ke area pemrosesan yang ditentukan.',
43
+ },
44
+ {
45
+ name: 'Transformasi Instan',
46
+ text: 'Lihat dalam waktu kurang dari satu detik bagaimana AVIF dikodekan ulang ke JPG, mengganti saluran alfa yang mungkin ada dengan latar belakang solid.',
47
+ },
48
+ {
49
+ name: 'Simpan atau Unduh ZIP',
50
+ text: 'Unduh gambar JPG baru Anda secara individual atau dengan menekan Unduh Semua jika Anda memproses secara massal.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'AV1 Image File Format (AVIF)',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'Informasi Umum JPG',
61
+ url: 'https://en.wikipedia.org/wiki/JPEG',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konverter AVIF ke JPG: Kompatibilitas Universal untuk Gambar Modern Anda',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF (AV1 Image File Format) adalah format gambar paling efisien yang tersedia saat ini. Dikembangkan oleh Alliance for Open Media dan didasarkan pada codec video AV1, format ini menawarkan kompresi 50% lebih baik daripada JPG pada kualitas visual yang sama. Namun, keunggulan teknis ini ada harganya: AVIF tidak didukung oleh Photoshop, Lightroom, Penampil Foto Windows, atau sebagian besar alat pengeditan dan tampilan tradisional. Mengubahnya ke JPG menyelesaikan masalah ini secara tuntas.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs JPG: Efisiensi vs Kompatibilitas Universal',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF mengompresi secara luar biasa: foto beresolusi tinggi yang di JPG berukuran 4 MB bisa berukuran hanya 2 MB di AVIF dengan tetap menjaga kualitas yang sama. Ini menjadikannya sempurna untuk pengiriman web di mana kinerja pemuatan sangat kritis. Namun, di luar browser, AVIF praktis tidak terlihat: Windows Explorer tidak menampilkan pratinjaunya, kamera tidak mengekspornya, dan desainer tidak menerimanya dengan senang hati dalam alur kerja mereka.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG telah menjadi standar universal fotografi digital selama lebih dari 30 tahun. Format ini didukung oleh 100% perangkat, sistem operasi, aplikasi kantor, jejaring sosial, printer, dan perangkat lunak apa pun yang pernah menampilkan gambar. Saat Anda perlu membagikan, mencetak, mengedit, atau mengirim melalui email, JPG adalah jaminan bahwa semuanya akan berjalan lancar.',
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
+ 'Foto pribadi Anda dikirim melalui internet ke server eksternal',
103
+ 'Waktu tunggu untuk mengunggah dan mengunduh file',
104
+ 'Batasan ukuran dan jumlah konversi gratis',
105
+ 'Risiko penyimpanan gambar di server pihak ketiga',
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
+ 'Gambar Anda tidak pernah keluar dari perangkat Anda',
115
+ 'Konversi instan tanpa latensi jaringan',
116
+ 'Tanpa batasan jumlah file maupun ukuran',
117
+ 'Cocok untuk gambar medis, hukum, atau rahasia',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Cara kerja konversi teknis di browser',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Browser modern seperti Chrome, Firefox, dan Edge menyertakan dukungan asli untuk AVIF berkat decoder AV1 terintegrasi mereka. Saat Anda memuat file AVIF, browser mendekodenya dalam memori dan mengubahnya menjadi representasi bitmap di RAM. Representasi ini digambar di atas elemen <code>Canvas</code> HTML5 yang tidak terlihat.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Selanjutnya, Canvas mengekspor gambar menggunakan <code>toBlob(\'image/jpeg\', quality)</code>, menerapkan kompresi JPG standar. Karena JPG tidak mendukung transparansi, semua saluran alfa yang ada di AVIF akan diisi dengan latar belakang putih sebelum diekspor. Hasilnya adalah file JPG berkualitas tinggi yang siap untuk diunduh langsung, tanpa ada byte yang keluar dari browser Anda.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Keseimbangan sempurna antara kompresi dan kompatibilitas',
138
+ html: 'AVIF 50% lebih kecil dari JPG untuk kualitas yang sama — tetapi JPG memiliki kompatibilitas 100% dengan perangkat lunak apa pun. Jika Anda menerima gambar AVIF dari server dan perlu mengeditnya, mengirimnya melalui email, atau membukanya di alat desktop, ubah ke JPG terlebih dahulu.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Kasus penggunaan: kapan mengubah AVIF ke JPG',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Edit di Photoshop, Lightroom, GIMP, atau perangkat lunak desktop lainnya.',
150
+ 'Bagikan gambar dengan pengguna di perangkat atau sistem operasi lama.',
151
+ 'Lampirkan dalam email untuk menjamin tampilan di klien email mana pun.',
152
+ 'Publikasikan di platform yang tidak menerima AVIF sebagai format unggahan.',
153
+ 'Cetak: layanan pencetakan profesional bekerja secara asli dengan JPG.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Kesimpulan: Kompatibilitas universal dalam satu langkah',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF adalah masa depan kompresi gambar, tetapi saat ini menuntut kompatibilitas. Konverter kami memungkinkan Anda mendapatkan yang terbaik dari kedua dunia: terima dan simpan gambar dalam AVIF untuk efisiensi maksimum, dan ubah ke JPG secara instan saat Anda membutuhkannya untuk berfungsi dalam konteks apa pun. Semuanya secara pribadi, gratis, dan tanpa batas.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAJpgLocaleContent = {
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 { AvifAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'convertitore-avif-a-jpg';
6
+ const title = 'Convertire AVIF in JPG Online';
7
+ const description =
8
+ 'Converti le tue immagini AVIF in JPG nel tuo browser. Senza server. Elaborazione locale al 100% privata. Gratuito e illimitato.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Trascina i file AVIF...',
12
+ convertText: 'Per convertirli in JPG 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: AvifAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Perché convertire AVIF in JPG?',
24
+ answer:
25
+ 'Il formato AVIF offre una compressione superiore, ma non tutti i programmi o visualizzatori lo supportano. Convertirlo in JPG assicura che l\'immagine possa essere vista sul 100% dei dispositivi nel mondo.',
26
+ },
27
+ {
28
+ question: 'Come proteggiamo le tue immagini AVIF?',
29
+ answer:
30
+ 'Le tue foto non lasciano mai il tuo cellulare o PC. Tutto il processo di disegno e codifica in JPEG viene eseguito nell\'ambiente Javascript del tuo browser.',
31
+ },
32
+ {
33
+ question: 'Perderò qualità passando da AVIF a JPG?',
34
+ answer:
35
+ 'Il nostro strumento elabora i pixel con una qualità standard di Canvas (da 0,9 a 0,95), facendo sì che i cambiamenti siano appena percettibili.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Trascina i file o clicca',
42
+ text: 'Sposta tutte le fotografie AVIF che desideri convertire nell\'area di elaborazione delimitata.',
43
+ },
44
+ {
45
+ name: 'Trasformazione Istantanea',
46
+ text: 'Osserva in meno di un secondo come l\'AVIF viene ricodificato in JPG eliminando eventuali canali alfa con uno sfondo solido.',
47
+ },
48
+ {
49
+ name: 'Salva o Scarica lo ZIP',
50
+ text: 'Scarica le tue nuove immagini JPG individualmente o premendo "Scarica tutto" se hai elaborato in batch.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'AV1 Image File Format (AVIF)',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'Informazioni Generali sul JPG',
61
+ url: 'https://en.wikipedia.org/wiki/JPEG',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Convertitore AVIF a JPG: Compatibilità Universale per le Tue Immagini Moderne',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'L\'AVIF (AV1 Image File Format) è il formato immagine più efficiente disponibile oggi. Sviluppato da Alliance for Open Media e basato sul codec video AV1, offre una compressione superiore del 50% rispetto al JPG a parità di qualità visiva. Tuttavia, questo vantaggio tecnico ha un prezzo: l\'AVIF non è supportato da Photoshop, Lightroom, Visualizzatore foto di Windows, né dalla maggior parte degli strumenti di editing e visualizzazione tradizionali. Convertire in JPG risolve questo problema alla radice.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs JPG: Efficienza contro Compatibilità Universale',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'L\'AVIF comprime in modo straordinario: una foto ad alta risoluzione che in JPG occupa 4 MB può pesare appena 2 MB in AVIF mantenendo la stessa qualità percepita. Questo lo rende perfetto per la distribuzione web dove le prestazioni di caricamento sono critiche. Tuttavia, al di fuori del browser, l\'AVIF è praticamente invisibile: né Esplora file di Windows lo visualizza in anteprima, né le fotocamere lo esportano, né i designer lo ricevono con favore nei loro flussi di lavoro.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Il JPG è da oltre 30 anni lo standard universale della fotografia digitale. È supportato dal 100% dei dispositivi, sistemi operativi, applicazioni per ufficio, social network, stampanti e qualsiasi software che abbia mai visualizzato un\'immagine. Quando hai bisogno di condividere, stampare, modificare o inviare via email, il JPG è la garanzia che tutto funzionerà senza problemi.',
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 foto private viaggiano su Internet verso server esterni',
103
+ 'Tempi di attesa per il caricamento e lo scaricamento del file',
104
+ 'Limiti di dimensione e numero di conversioni gratuite',
105
+ 'Rischio di conservazione delle immagini su server di terze parti',
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
+ 'Le tue immagini non lasciano mai il tuo dispositivo',
115
+ 'Conversione istantanea senza latenza di rete',
116
+ 'Senza limiti di file né di dimensioni',
117
+ 'Adatto per immagini mediche, legali o riservate',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Come funziona la conversione tecnica nel browser',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'I browser moderni come Chrome, Firefox ed Edge includono il supporto nativo per l\'AVIF grazie ai loro decodificatori AV1 integrati. Quando carichi un file AVIF, il browser lo decodifica in memoria e lo converte in una rappresentazione bitmap nella RAM. Questa rappresentazione viene disegnata su un elemento <code>Canvas</code> HTML5 invisibile.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Successivamente, il Canvas esporta l\'immagine usando <code>toBlob(\'image/jpeg\', quality)</code>, applicando la compressione JPG standard. Dato che il JPG non supporta le trasparenze, qualsiasi canale alfa presente nell\'AVIF viene riempito con uno sfondo bianco prima dell\'esportazione. Il risultato è un file JPG di alta qualità pronto per il download diretto, senza che alcun byte abbia lasciato il tuo browser.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'L\'equilibrio perfetto tra compressione e compatibilità',
138
+ html: 'L\'AVIF è più piccolo del 50% rispetto al JPG a parità di qualità — ma il JPG ha una compatibilità del 100% con qualsiasi software. Se ricevi immagini AVIF dal server e hai bisogno di modificarle, inviarle via email o aprirle in strumenti desktop, convertile prima in JPG.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casi d\'uso: quando convertire AVIF a JPG',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Modificare in Photoshop, Lightroom, GIMP o altro software desktop.',
150
+ 'Condividere immagini con utenti su dispositivi o sistemi operativi vecchi.',
151
+ 'Allegare nelle email per garantire la visualizzazione in qualsiasi client di posta.',
152
+ 'Pubblicare su piattaforme che non accettano l\'AVIF come formato di caricamento.',
153
+ 'Stampare: i servizi di stampa professionale lavorano con il JPG in modo nativo.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusione: La compatibilità universale in un solo passaggio',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'L\'AVIF è il futuro della compressione delle immagini, ma il presente esige compatibilità. Il nostro convertitore ti permette di ottenere il meglio da entrambi i mondi: ricevi e memorizza immagini in AVIF per la massima efficienza, e convertile in JPG istantaneamente quando hai bisogno che funzionino in qualsiasi contesto. Tutto in modo privato, gratuito e senza limiti.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAJpgLocaleContent = {
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
+ };