@jjlmoya/utils-converters 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/package.json +60 -59
  2. package/src/shared/ImageConverter.astro +2 -1
  3. package/src/shared/logic/schemas.ts +57 -0
  4. package/src/tests/faq_count.test.ts +13 -4
  5. package/src/tests/i18n_coverage.test.ts +36 -0
  6. package/src/tests/locale_completeness.test.ts +42 -0
  7. package/src/tests/no_h1_in_components.test.ts +48 -0
  8. package/src/tests/schemas_fulfillment.test.ts +23 -0
  9. package/src/tests/seo_length.test.ts +1 -1
  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 = 'convert-avif-to-jpg';
6
+ const title = 'AVIF를 JPG로 온라인 변환';
7
+ const description =
8
+ '브라우저에서 AVIF 이미지를 JPG로 변환하세요. 서버를 거치지 않는 100% 개인 로컬 처리 방식입니다. 무료이며 무제한으로 사용할 수 있습니다.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'AVIF 파일을 끌어다 놓으세요...',
12
+ convertText: '즉시 JPG로 변환합니다',
13
+ selectFiles: '파일 선택',
14
+ processedFiles: '처리된 파일',
15
+ downloadAll: '모두 다운로드 (.zip)',
16
+ pending: '대기 중',
17
+ bibliographyTitle: '참고 문헌',
18
+ faqTitle: '자주 묻는 질문',
19
+ };
20
+
21
+ const faq: AvifAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: '왜 AVIF를 JPG로 변환해야 하나요?',
24
+ answer:
25
+ 'AVIF 형식은 뛰어난 압축률을 제공하지만, 모든 프로그램이나 뷰어가 이를 지원하는 것은 아닙니다. JPG로 변환하면 전 세계 장치의 100%에서 이미지를 볼 수 있습니다.',
26
+ },
27
+ {
28
+ question: '사용자의 AVIF 이미지는 어떻게 보호되나요?',
29
+ answer:
30
+ '사용자의 사진은 절대 휴대폰이나 PC 외부로 전송되지 않습니다. JPEG로의 투영 및 인코딩의 모든 프로세스는 브라우저의 Javascript 환경 내에서 실행됩니다.',
31
+ },
32
+ {
33
+ question: 'AVIF에서 JPG로 변환할 때 품질이 저하되나요?',
34
+ answer:
35
+ '우리의 도구는 픽셀을 표준 Canvas 품질(0.9~0.95)로 처리하므로 품질 변화는 거의 느껴지지 않습니다.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: '파일을 끌어다 놓거나 클릭',
42
+ text: '변환하고 싶은 모든 AVIF 사진을 지정된 처리 영역으로 옮기세요.',
43
+ },
44
+ {
45
+ name: '즉시 변환',
46
+ text: '알파 채널이 있는 경우 흰색 배경으로 대체하며, AVIF가 1초 이내에 JPG로 다시 인코딩되는 것을 확인하세요.',
47
+ },
48
+ {
49
+ name: '저장 또는 ZIP 다운로드',
50
+ text: '새로운 JPG 이미지를 개별적으로 다운로드하거나, 일괄 처리를 한 경우 "모두 다운로드"를 눌러 저장하세요.',
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: 'JPG 일반 정보',
61
+ url: 'https://en.wikipedia.org/wiki/JPEG',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'AVIF to JPG 변환기: 최신 이미지를 위한 범용 호환성 확보',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF(AV1 Image File Format)는 현재 사용 가능한 가장 효율적인 이미지 형식입니다. Alliance for Open Media가 개발하고 AV1 비디오 코덱을 기반으로 한 이 형식은 같은 시각적 품질에서 JPG보다 50% 향상된 압축률을 보여줍니다. 하지만 이러한 기술적 이점에는 대가가 따릅니다. AVIF는 Photoshop, Lightroom, Windows 사진 뷰어 및 대부분의 전통적인 편집 및 보기 도구에서 지원되지 않습니다. JPG로 변환함으로써 이 문제를 근본적으로 해결할 수 있습니다.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs JPG: 효율성과 범용 호환성의 비교',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF의 압축 능력은 매우 뛰어납니다. JPG에서 4MB를 차지하는 고해상도 사진도 동일한 품질을 유지하면서 AVIF에서는 단 2MB에 불과할 수 있습니다. 이는 로딩 성능이 중요한 웹 배포에 완벽한 선택입니다. 하지만 브라우저 외부에서 AVIF는 거의 인식되지 않습니다. Windows 탐색기에서 미리보기가 되지 않으며, 카메라에서 직접 내보내지도 않고, 디자이너들도 워크플로우에 이 형식을 받아들이는 것을 꺼리는 것이 현실입니다.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG는 30년 넘게 디지털 사진의 표준으로 자리 잡아 왔습니다. 전 세계 장치, OS, 오피스 애플리케이션, SNS, 프린터 및 모든 이미지 보기 소프트웨어의 100%에서 지원됩니다. 공유, 인쇄, 편집 또는 이메일 전송이 필요한 경우, JPG는 모든 것이 문제없이 작동할 것임을 보장하는 가장 확실한 방법입니다.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: '비교: 클라우드 변환기 vs 우리의 로컬 아키텍처',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: '클라우드 변환기',
98
+ description: 'AVIF 파일을 원격 서버로 업로드하여 처리하는 기존 도구입니다.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ '개인적인 사진이 인터넷을 통해 외부 서버로 전송됨',
103
+ '파일 업로드 및 다운로드를 위한 대기 시간 발생',
104
+ '파일 크기 제한 및 무료 변환 횟수 제한',
105
+ '제3자 서버에 이미지가 저장될 위험성',
106
+ ],
107
+ },
108
+ {
109
+ title: '우리의 로컬 아키텍처',
110
+ description: 'Vanilla JS 기술과 Canvas API를 사용하여 브라우저에서 직접 처리합니다.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ '이미지가 장치 외부로 나가지 않습니다',
115
+ '네트워크 지연 없는 즉각적인 변환',
116
+ '파일 수나 크기 제한 없음',
117
+ '의료용, 법률적 또는 기밀 이미지를 다루기에 적합',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: '브라우저에서의 기술적인 변환 원리',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Chrome, Firefox, Edge와 같은 최신 브라우저는 내부 AV1 디코더 덕분에 AVIF를 기본으로 지원합니다. AVIF 파일을 불러오면 브라우저가 메모리에서 이를 디코드하여 RAM 상의 비트맵 데이터로 변환합니다. 이 데이터는 보이지 않는 HTML5 <code>Canvas</code> 요소 위에 그려집니다.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: '그다음, Canvas는 표준 JPG 압축을 적용하여 <code>toBlob(\'image/jpeg\', quality)</code>를 사용해 이미지를 내보냅니다. JPG는 투명도를 지원하지 않으므로 AVIF에 포함된 알파 채널은 내보내기 전 흰색 배경으로 채워집니다. 결과적으로 단 1바이트도 외부로 유출되지 않은 채 고품질 JPG 파일로 직접 다운로드할 수 있게 됩니다.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: '압축과 호환성의 완벽한 균형',
138
+ html: 'AVIF는 동일한 품질의 JPG보다 50% 작지만, JPG는 모든 소프트웨어와 100% 호환됩니다. 서버에서 AVIF 이미지를 받았는데 이를 편집하거나 이메일로 보내고 싶다면 먼저 JPG로 변환하세요.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: '사용 사례: AVIF를 JPG로 변환해야 하는 경우',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Photoshop, Lightroom, GIMP 등 데스크톱 소프트웨어에서 편집할 때.',
150
+ '오래된 장치나 OS를 사용하는 사람과 이미지를 공유할 때.',
151
+ '이메일에 첨부하여 모든 메일 클라이언트에서 올바르게 보임을 보장하고 싶을 때.',
152
+ '업로드 형식으로 AVIF를 허용하지 않는 플랫폼에 게시할 때.',
153
+ '인쇄할 때: 전문 인쇄 서비스는 기본적으로 JPG를 사용합니다.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: '결론: 원스텝으로 범용 호환성 확보',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF는 이미지 압축의 미래이지만, 현재는 호환성이 가장 중요합니다. 우리의 변환기는 사용자가 데이터 효율을 위해 AVIF를 사용하면서도, 필요할 땐 즉시 JPG로 변환하여 모든 상황에 완벽히 대응할 수 있게 해줍니다. 모든 것이 개인적이며 무료이며 제한이 없습니다.',
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: 'ko', 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 = 'avif-naar-jpg-converter';
6
+ const title = 'AVIF naar JPG Online Converteren';
7
+ const description =
8
+ 'Converteer AVIF-afbeeldingen naar JPG in je browser. Zonder server. 100% privé lokale verwerking. Gratis en onbeperkt.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Sleep AVIF-bestanden hierheen...',
12
+ convertText: 'Om ze direct naar JPG te converteren',
13
+ selectFiles: 'Bestanden selecteren',
14
+ processedFiles: 'Verwerkte bestanden',
15
+ downloadAll: 'Alles downloaden (.zip)',
16
+ pending: 'In afwachting',
17
+ bibliographyTitle: 'Bibliografische Referenties',
18
+ faqTitle: 'Veelgestelde Vragen',
19
+ };
20
+
21
+ const faq: AvifAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Waarom AVIF naar JPG converteren?',
24
+ answer:
25
+ 'Het AVIF-formaat biedt superieure compressie, maar niet alle programma\'s of viewers ondersteunen het. Converteren naar JPG zorgt ervoor dat de afbeelding op 100% van de apparaten ter wereld kan worden bekeken.',
26
+ },
27
+ {
28
+ question: 'Hoe beschermen we je AVIF-afbeeldingen?',
29
+ answer:
30
+ 'Je foto\'s verlaten nooit je mobiel of pc. Het hele proces van tekenen en coderen naar JPEG wordt uitgevoerd in de Javascript-omgeving van je browser.',
31
+ },
32
+ {
33
+ question: 'Verlies ik kwaliteit bij de overstap van AVIF naar JPG?',
34
+ answer:
35
+ 'Onze tool verwerkt de pixels met een standaard Canvas-kwaliteit (0,9 tot 0,95), waardoor de veranderingen nauwelijks merkbaar zijn.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Sleep bestanden of klik',
42
+ text: 'Verplaats alle AVIF-foto\'s die je wilt converteren naar het begrensde verwerkingsgebied.',
43
+ },
44
+ {
45
+ name: 'Directe Transformatie',
46
+ text: 'Zie in minder dan een seconde hoe de AVIF wordt gehercodeerd naar JPG, waarbij mogelijke alfakanalen worden vervangen door een effen achtergrond.',
47
+ },
48
+ {
49
+ name: 'Opslaan of ZIP downloaden',
50
+ text: 'Sla je nieuwe JPG-afbeeldingen afzonderlijk op of druk op Alles downloaden als je in batch hebt verwerkt.',
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: 'Algemene Informatie over JPG',
61
+ url: 'https://en.wikipedia.org/wiki/JPEG',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'AVIF naar JPG Converter: Universele Compatibiliteit voor Je Moderne Afbeeldingen',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF (AV1 Image File Format) is het meest efficiënte beeldformaat dat momenteel beschikbaar is. Ontwikkeld door de Alliance for Open Media en gebaseerd op de AV1-videocodec, biedt het een 50% betere compressie dan JPG bij dezelfde visuele kwaliteit. Dit technische voordeel heeft echter een prijs: AVIF wordt niet ondersteund door Photoshop, Lightroom, Windows Photo Viewer, noch door de meeste traditionele bewerkings- en weergavetools. Converteren naar JPG lost dit probleem bij de wortel op.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs JPG: Efficiëntie versus Universele Compatibiliteit',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF comprimeert buitengewoon goed: een foto met hoge resolutie die in JPG 4 MB in beslag neemt, kan in AVIF slechts 2 MB wegen met behoud van dezelfde waargenomen kwaliteit. Dit maakt het perfect voor webdistributie waarbij de laadprestaties kritiek zijn. Buiten de browser is AVIF echter vrijwel onzichtbaar: noch Windows Verkenner toont een voorbeeld, noch camera\'s exporteren het, noch ontvangen ontwerpers het graag in hun workflows.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG is al meer dan 30 jaar de universele standaard voor digitale fotografie. Het wordt ondersteund door 100% van de apparaten, besturingssystemen, kantoortoepassingen, sociale netwerken, printers en alle software die ooit een afbeelding heeft gezien. Wanneer je moet delen, afdrukken, bewerken of e-mailen, is JPG de garantie dat alles zonder wrijving werkt.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Vergelijking: Cloud Converters vs Onze Lokale Architectuur',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Cloud Converters',
98
+ description: 'Tools die je AVIF-bestanden naar een externe server uploaden om ze te verwerken.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Je privéfoto\'s reizen over het internet naar externe servers',
103
+ 'Wachttijden voor het uploaden en downloaden van het bestand',
104
+ 'Limieten voor bestandsgrootte en aantal gratis conversies',
105
+ 'Risico op het bewaren van afbeeldingen op servers van derden',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Onze Lokale Architectuur',
110
+ description: 'Directe verwerking in je browser via Vanilla JS-technologie en Canvas API.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Je afbeeldingen verlaten nooit je apparaat',
115
+ 'Directe conversie zonder netwerklatentie',
116
+ 'Zonder limieten voor bestanden of grootte',
117
+ 'Geschikt voor medische, juridische of vertrouwelijke afbeeldingen',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Hoe de technische conversie in de browser werkt',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Moderne browsers zoals Chrome, Firefox en Edge bevatten native ondersteuning voor AVIF dankzij hun geïntegreerde AV1-decoders. Wanneer je een AVIF-bestand laadt, decodeert de browser het in het geheugen en converteert het naar een bitmapweergave in het RAM. Deze weergave wordt getekend op een onzichtbaar HTML5 <code>Canvas</code>-element.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Vervolgens exporteert het Canvas de afbeelding met <code>toBlob(\'image/jpeg\', quality)</code>, waarbij de standaard JPG-compressie wordt toegepast. Omdat JPG geen transparantie ondersteunt, wordt elk alfakanaal in de AVIF gevuld met een witte achtergrond vóór de export. Het resultaat is een JPG-bestand van hoge kwaliteit dat klaar is voor directe download, zonder dat er een byte je browser heeft verlaten.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Het perfecte evenwicht tussen compressie en compatibiliteit',
138
+ html: 'AVIF is 50% kleiner dan JPG bij gelijke kwaliteit — maar JPG heeft 100% compatibiliteit met alle software. Als je AVIF-afbeeldingen van de server ontvangt en ze moet bewerken, e-mailen of openen in desktoptools, converteer ze dan eerst naar JPG.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casussen: wanneer AVIF naar JPG converteren',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Bewerken in Photoshop, Lightroom, GIMP of andere desktopsoftware.',
150
+ 'Afbeeldingen delen met gebruikers op oude apparaten of besturingssystemen.',
151
+ 'Bijvoegen in e-mails om weergave in elke e-mailclient te garanderen.',
152
+ 'Publiceren op platforms die AVIF niet accepteren als uploadformaat.',
153
+ 'Afdrukken: professionele afdrukservices werken standaard met JPG.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusie: De universele compatibiliteit in één stap',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF is de toekomst van beeldcompressie, maar het heden vereist compatibiliteit. Onze converter stelt je in staat om het beste van twee werelden te krijgen: ontvang en bewaar afbeeldingen in AVIF voor maximale efficiëntie, en converteer ze direct naar JPG wanneer je ze in elke context nodig hebt. Alles privé, gratis en zonder limieten.',
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: 'nl', 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 = 'konwerter-avif-na-jpg';
6
+ const title = 'Konwertuj AVIF na JPG Online';
7
+ const description =
8
+ 'Konwertuj obrazy AVIF na JPG w swojej przeglądarce. Bez serwera. W 100% prywatne przetwarzanie lokalne. Darmowe i nielimitowane.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Przeciągnij pliki AVIF...',
12
+ convertText: 'Aby błyskawicznie konwertować je na JPG',
13
+ selectFiles: 'Wybierz pliki',
14
+ processedFiles: 'Przetworzone pliki',
15
+ downloadAll: 'Pobierz wszystko (.zip)',
16
+ pending: 'Oczekiwanie',
17
+ bibliographyTitle: 'Bibliografia',
18
+ faqTitle: 'Często zadawane pytania',
19
+ };
20
+
21
+ const faq: AvifAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Dlaczego warto konwertować AVIF na JPG?',
24
+ answer:
25
+ 'Format AVIF zapewnia lepszą kompresję, ale nie wszystkie programy i przeglądarki go obsługują. Konwersja na JPG gwarantuje, że obraz będzie można wyświetlić na 100% urządzeń na całym świecie.',
26
+ },
27
+ {
28
+ question: 'Jak chronimy Twoje obrazy AVIF?',
29
+ answer:
30
+ 'Twoje zdjęcia nigdy nie opuszczają Twojego telefonu ani komputera. Cały proces rysowania i kodowania do formatu JPEG odbywa się w środowisku JavaScript Twojej przeglądarki.',
31
+ },
32
+ {
33
+ question: 'Czy stracę jakość przechodząc z AVIF na JPG?',
34
+ answer:
35
+ 'Nasze narzędzie przetwarza piksele ze standardową jakością Canvas (od 0,9 do 0,95), dzięki czemu zmiany są niemal niedostrzegalne.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Przeciągnij pliki lub kliknij',
42
+ text: 'Przenieś wszystkie zdjęcia AVIF, które chcesz konwertować, do wyznaczonego obszaru przetwarzania.',
43
+ },
44
+ {
45
+ name: 'Błyskawiczna Transformacja',
46
+ text: 'Zobacz, jak w mniej niż sekundę obraz AVIF jest rekodowany do formatu JPG, zastępując ewentualne kanały alfa jednolitym tłem.',
47
+ },
48
+ {
49
+ name: 'Zapisz lub Pobierz ZIP',
50
+ text: 'Pobierz nowe obrazy JPG pojedynczynio lub użyj przycisku Pobierz wszystko, jeśli przetwarzałeś je zbiorczo.',
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: 'Ogólne informacje o JPG',
61
+ url: 'https://en.wikipedia.org/wiki/JPEG',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konwerter AVIF na JPG: Uniwersalna Kompatybilność Twoich Nowoczesnych Obrazów',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF (AV1 Image File Format) to najbardziej wydajny format obrazu dostępny obecnie. Opracowany przez Alliance for Open Media i oparty na kodeku wideo AV1, oferuje kompresję o 50% lepszą niż JPG przy zachowaniu tej samej jakości wizualnej. Ta techniczna przewaga ma jednak swoją cenę: AVIF nie jest obsługiwany przez Photoshop, Lightroom, Przeglądarkę fotografii systemu Windows, ani większość tradycyjnych narzędzi do edycji i wyświetlania obrazów. Konwersja na JPG rozwiązuje ten problem u podstaw.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs JPG: Wydajność kontra Uniwersalna Kompatybilność',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Format AVIF kompresuje w sposób nadzwyczajny: zdjęcie o wysokiej rozdzielczości, które w formacie JPG zajmuje 4 MB, w formacie AVIF może ważyć zaledwie 2 MB przy zachowaniu tej samej jakości. To sprawia, że jest idealny do udostępniania w sieci, gdzie czas ładowania jest krytyczny. Poza przeglądarką AVIF jest jednak niemal niewidoczny: Eksplorator Windows go nie wyświetla, aparaty go nie eksportują, a projektanci go nie akceptują w swoich procesach roboczych.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG od ponad 30 lat pozostaje uniwersalnym standardem fotografii cyfrowej. Jest obsługiwany przez 100% urządzeń, systemów operacyjnych, aplikacji biurowych, mediów społecznościowych, drukarek i każdego oprogramowania, które kiedykolwiek wyświetliło obraz. Gdy musisz udostępnić, wydrukować, edytować lub wysłać obraz e-mailem, JPG gwarantuje, że wszystko zadziała bez problemu.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Porównanie: Konwertery w chmurze vs nasza lokalna architektura',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Konwertery w chmurze',
98
+ description: 'Narzędzia przesyłające Twoje pliki AVIF na zdalny serwer w celu ich przetworzenia.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Twoje prywatne zdjęcia wędrują przez internet na zewnętrzne serwery',
103
+ 'Czas oczekiwania na przesłanie i pobranie pliku',
104
+ 'Limity rozmiaru i liczby darmowych konwersji',
105
+ 'Ryzyko przechowywania obrazów na serwerach zewnętrznych',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Nasza lokalna architektura',
110
+ description: 'Przetwarzanie bezpośrednio w przeglądarce za pomocą technologii Vanilla JS i Canvas API.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Twoje zdjęcia nigdy nie opuszczają Twojego urządzenia',
115
+ 'Błyskawiczna konwersja bez opóźnień sieciowych',
116
+ 'Brak limitów liczby i rozmiaru plików',
117
+ 'Bezpieczne dla zdjęć medycznych, prawnych lub poufnych',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Jak działa techniczna konwersja w przeglądarce',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Nowoczesne przeglądarki, takie jak Chrome, Firefox i Edge, posiadają natywną obsługę formatu AVIF dzięki wbudowanym dekoderom AV1. Po załadowaniu pliku AVIF przeglądarka dekoduje go w pamięci i konwertuje na mapę bitową w pamięci RAM. Ta reprezentacja jest rysowana na niewidocznym elemencie HTML5 <code>Canvas</code>.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Następnie Canvas eksportuje obraz za pomocą <code>toBlob(\'image/jpeg\', quality)</code>, stosując standardową kompresję JPG. Ponieważ JPG nie obsługuje przezroczystości, wszelkie kanały alfa w pliku AVIF są wypełniane białym tłem przed eksportem. Rezultatem jest wysokiej jakości plik JPG gotowy do bezpośredniego pobrania, bez przesyłania ani jednego bajta do internetu.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Idealna równowaga między kompresją a kompatybilnością',
138
+ html: 'AVIF jest o 50% mniejszy niż JPG przy tej samej jakości — jednak JPG oferuje 100% kompatybilności z każdym oprogramowaniem. Jeśli otrzymasz obrazy AVIF i chcesz je edytować, wysłać e-mailem lub otworzyć w programach komputerowych, najpierw skonwertuj je do formatu JPG.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Przypadki użycia: kiedy konwertować AVIF na JPG',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Edycja w Photoshop, Lightroom, GIMP lub innym oprogramowaniu komputerowym.',
150
+ 'Udostępnianie obrazów użytkownikom na starszych urządzeniach lub systemach.',
151
+ 'Dołączanie do e-maili w celu zagwarantowania poprawnego wyświetlania.',
152
+ 'Publikowanie na platformach nieakceptujących formatu AVIF.',
153
+ 'Druk: profesjonalne usługi poligraficzne pracują natywnie z JPG.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Podsumowanie: Uniwersalna kompatybilność w jednym kroku',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF to przyszłość kompresji obrazów, jednak obecne realia wymagają kompatybilności. Nasz konwerter pozwala Ci czerpać to, co najlepsze z obu światów: otrzymuj i przechowuj obrazy w formacie AVIF dla maksymalnej wydajności i błyskawicznie konwertuj je na JPG, gdy muszą zadziałać w dowolnym kontekście. Wszystko prywatnie, za darmo i bez limitów.',
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: 'pl', faq, howTo }),
178
+ };