@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-to-jpg-converter';
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
+ '当ツールは標準的なキャンバスクオリティ(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-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年以上にわたり、デジタル写真のユニバーサルな標準であり続けています。100%のデバイス、OS、オフィスアプリケーション、SNS、プリンター、そして画像表示ソフトウェアのすべてでサポートされています。共有、印刷、編集、またはメール送信が必要な場合、JPGはすべてが問題なく動作することを保証するものです。',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: '比較:クラウドコンバーターと当サイトのローカルアーキテクチャ',
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
+ '第三者のサーバーに画像が残存するリスクがある',
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: 'ja', 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-to-jpg-converter';
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
+ };