@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 { AvifAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'avif-till-webp-konverterare';
6
+ const title = 'Konvertera AVIF till WebP Online';
7
+ const description =
8
+ 'Konvertera AVIF-bilder till WebP för bättre kompatibilitet. Lokal bearbetning utan servrar. Gratis, privat och obegränsat.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Dra AVIF-filer hit...',
12
+ convertText: 'För att konvertera dem till WebP direkt',
13
+ selectFiles: 'Välj filer',
14
+ processedFiles: 'Bearbetade filer',
15
+ downloadAll: 'Ladda ner alla (.zip)',
16
+ pending: 'Väntande',
17
+ bibliographyTitle: 'Bibliografiska Referenser',
18
+ faqTitle: 'Vanliga Frågor',
19
+ };
20
+
21
+ const faq: AvifAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Vad är den faktiska skillnaden mellan att konvertera till WebP och andra format?',
24
+ answer:
25
+ 'WebP erbjuder det bästa av två världar: kompressioner som är lika fantastiska som JPG, men med möjligheten att innehålla rena transparensen som en PNG. Genom att ändra din AVIF till WebP maximerar du dess kompatibilitet för webben och bevarar samtidigt alla dess fördelar.',
26
+ },
27
+ {
28
+ question: 'Hur lyckas ni ändra detta utan server och så snabbt?',
29
+ answer:
30
+ 'Vi utnyttjar de inbyggda avkodningsmodulerna och JavaScript HTML5 Image-objektet, vilket gör det möjligt att läsa din AVIF i lokalt minne och extrahera en optimerad WebP-fil på rekordtid.',
31
+ },
32
+ {
33
+ question: 'Är WebP-formatet helt kompatibelt idag?',
34
+ answer:
35
+ 'Till skillnad från det begynnande AVIF-formatet har WebP-formatet ett mycket brett stöd bland webbläsare som Chrome, Firefox och Safari.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Infoga dina fotofiler',
42
+ text: 'Flytta och släpp alla AVIF-filval till vår arbetsyta.',
43
+ },
44
+ {
45
+ name: 'Algoritmisk byte-översättning',
46
+ text: 'Vår motor bearbetar algoritmerna utan att ladda upp något och skapar exakta iterationer baserade på komprimerad WebP.',
47
+ },
48
+ {
49
+ name: 'Hämta dina färdiga nedladdningar',
50
+ text: 'Klicka på panelen och få dina filer i ZIP-arkiv eller enskilt för att publicera dem direkt.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'AV1 Image File Format',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'Google WebP Format Overview',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'AVIF till WebP-konverterare: Det moderna och säkra alternativet för webben',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF är det mest avancerade bildformatet som finns tillgängligt idag: mindre än WebP, mindre än JPG, med överlägsen visuell kvalitet. Adoptionen har dock varit ojämn – Safari stödde det inte förrän 2024, och många äldre mobila enheter känner inte till det. WebP däremot har varit etablerat i åratal som den moderna webbstandarden med över 95 % globalt stöd. Att konvertera AVIF till WebP är det pragmatiska beslutet när du behöver modernitet utan att riskera kompatibiliteten.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs WebP: Det nyaste vs Det säkraste',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF erbjuder den mest avancerade kompressionen som finns tillgänglig – vanligtvis 20–30 % mindre än WebP vid samma kvalitet. Dess teknologi baserad på AV1 är den modernaste i branschen. AVIF-stödet har dock fortfarande blinda fläckar: äldre Safari-versioner, vissa webbläsare på äldre Android-enheter och vissa bildvisare för skrivbordet känner inte igen det. För webbproduktion med bred och varierad publik innebär detta en risk.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP har en mycket mer solid supporthistorik. Chrome antog det 2010, Firefox och Edge följde efter, och Safari införlivade det 2020. Med över 95 % global täckning i webbläsare är WebP det säkra valet för alla webbplatser som inte vill leverera fallback-format. Det stöder transparens, förlustbehaftad och förlustfri kompression, och ger mycket mindre filer än JPG eller PNG.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Jämförelse: Molnkonverterare vs Vår lokala arkitektur',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Molnkonverterare',
98
+ description: 'Verktyg som laddar upp dina AVIF-filer till en fjärrserver för att bearbeta dem.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Dina privata bilder skickas via externa servrar',
103
+ 'Nätverksfördröjning som saktar ner arbetsflödet',
104
+ 'Filbegränsningar per gratis konvertering',
105
+ 'Beroende av tredjepartstjänster som kan ändras',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Vår lokala arkitektur',
110
+ description: 'Direkt bearbetning i din webbläsare via Vanilla JS-teknik och Canvas API.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Total integritet – 0 byte lämnar din enhet',
115
+ 'Omedelbar hastighet utan nätverksberoende',
116
+ 'Inga begränsningar för storlek eller antal filer',
117
+ 'Fungerar utan internetanslutning',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Hur den tekniska konverteringen i webbläsaren fungerar',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Chrome, Firefox och Edge inkluderar inbyggda AVIF-avkodare. Vid laddning av filen avkodar webbläsarens bildmotor den i RAM och bevarar informationen från alfakanalen. Bilden ritas på ett osynligt HTML5 <code>Canvas</code> med hjälp av 2D-kontexten, vilket bevarar transparens korrekt.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Exporten görs med <code>toBlob(\'image/webp\', quality)</code>. Webbläsaren tillämpar WebP-komprimeringsalgoritmen internt och genererar en Blob som inkluderar alfakanalen om originalbilden hade en. Denna Blob omvandlas till en direkt nedladdningslänk. Hela processen sker på mikrosekunder utan någon kommunikation med externa servrar.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'WebP: den moderna utvecklarens pragmatiska val',
138
+ html: 'WebP har över 95 % stöd i webbläsare – AVIF växer men når ännu inte den siffran. För produktionssajter utan adaptiv formatdetektering är WebP det säkra valet som täcker nästan alla målgrupper. Konvertera dina AVIF till WebP och leverera moderna bilder med förtroende.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Användningsområden: när du ska välja WebP framför AVIF',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Webbplatser som behöver stöd i webbläsare från 2020 utan polyfills.',
150
+ 'CDN:er och bildleveranssystem som accepterar WebP men inte AVIF.',
151
+ 'Hybrida mobilappar med WebViews som eventuellt inte stöder AVIF.',
152
+ 'Moderna HTML-e-postmeddelanden där WebP har större stöd än AVIF.',
153
+ 'CMS-plattformar och e-handel med etablerat WebP-bildstöd.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Slutsats: Modernitet med garanterad kompatibilitet',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF är framkanten av bildkompression, men WebP är det pålitliga och universella valet för det moderna webbechosystemet. Med vårt verktyg konverterar du från det senaste till det mest stödda på ett ögonblick – utan att ladda upp något till någon server, med total integritet och utan storleksbegränsningar.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'sv', 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 { AvifAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'avif-webp-donusturucu';
6
+ const title = 'AVIF\'i Online WebP\'ye Dönüştür';
7
+ const description =
8
+ 'Daha iyi uyumluluk için AVIF görüntülerini WebP\'ye dönüştürün. Sunucu olmadan yerel işleme. Ücretsiz, özel ve sınırsız.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'AVIF dosyalarını buraya sürükleyin...',
12
+ convertText: 'Anında WebP\'ye dönüştürmek için',
13
+ selectFiles: 'Dosyaları seçin',
14
+ processedFiles: 'İşlenen dosyalar',
15
+ downloadAll: 'Tümünü İndir (.zip)',
16
+ pending: 'Bekliyor',
17
+ bibliographyTitle: 'Bibliyografik Referanslar',
18
+ faqTitle: 'Sıkça Sorulan Sorular',
19
+ };
20
+
21
+ const faq: AvifAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'WebP\'ye dönüştürmek ile diğer formatlar arasındaki gerçek fark nedir?',
24
+ answer:
25
+ 'WebP her iki dünyanın da en iyisini sunar: JPG kadar şaşırtıcı sıkıştırmalar yaparken PNG gibi temiz şeffaflıkları barındırma yeteneğini korur. AVIF\'inizi WebP\'ye dönüştürmek, tüm avantajlarını korurken web için uyumluluğunu maksimize eder.',
26
+ },
27
+ {
28
+ question: 'Bunu sunucu olmadan ve bu kadar hızlı değiştirmeyi nasıl başarıyorsunuz?',
29
+ answer:
30
+ 'AVIF\'inizi yerel bellekte okumaya ve rekor sürede optimize edilmiş bir WebP dosyası çıkarmaya olanak tanıyan yerleşik kod çözme modüllerinden ve JavaScript HTML5 Image nesnesinden yararlanıyoruz.',
31
+ },
32
+ {
33
+ question: 'WebP formatı günümüzde tamamen uyumlu mu?',
34
+ answer:
35
+ 'Yeni doğan AVIF\'in aksine, WebP formatı Chrome, Firefox ve Safari gibi tarayıcılar arasında çok geniş bir desteğe sahiptir.',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Fotoğraf dosyalarınızı ekleyin',
42
+ text: 'Tüm AVIF formatı seçimlerini sürükleyip tuvalimize bırakın.',
43
+ },
44
+ {
45
+ name: 'Algoritmik Bayt Dönüşümü',
46
+ text: 'Motorumuz, hiçbir şey yüklemeden algoritmaları işler ve sıkıştırılmış WebP tabanlı tam iterasyonlar oluşturur.',
47
+ },
48
+ {
49
+ name: 'Hazır İndirmelerinizi Biriktirin',
50
+ text: 'Panele basın ve toplu dosyaları ZIP kutularında veya tek tek alarak doğrudan yayınlayın.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'AV1 Image File Format',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'Google WebP Format Overview',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'AVIF\'ten WebP\'ye Dönüştürücü: Web İçin Modern ve Güvenli Alternatif',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF, günümüzde mevcut olan en gelişmiş görüntü formatıdır: WebP\'den daha küçük, JPG\'den daha küçük, üstün görsel kaliteye sahip. Ancak benimsenmesi düzensiz oldu - Safari bunu 2024\'e kadar desteklemedi ve birçok eski mobil cihaz bunu tanımıyor. WebP ise %95\'ten fazla küresel desteğiyle yıllardır modern web standardı olarak yerleşmiş durumda. AVIF\'i WebP\'ye dönüştürmek, uyumluluğu riske atmadan modernliğe ihtiyaç duyduğunuzda pragmatik bir karardır.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs WebP: En Yeni vs En Güvenli',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF, mevcut en gelişmiş sıkıştırmayı sunar - tipik olarak aynı kalitede WebP\'den %20-30 daha küçüktür. AV1 tabanlı teknolojisi sektördeki en modern olanıdır. Ancak AVIF desteği hala kör noktalara sahiptir: Safari\'nin eski sürümleri, eski Android\'deki bazı tarayıcılar ve bazı masaüstü resim oynatıcıları bunu tanımaz. Geniş ve çeşitli kitlelere sahip web üretimi için bu bir risk oluşturur.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP çok daha sağlam bir destek geçmişine sahiptir. Chrome bunu 2010\'da benimsedi, Firefox ve Edge takip etti ve Safari 2020\'de bünyesine kattı. Tarayıcılarda %95\'ten fazla küresel kapsamla WebP, yedek formatlar sunmak istemeyen herhangi bir web sitesi için güvenli seçimdir. Şeffaflıkları, kayıplı ve kayıpsız sıkıştırmayı destekler ve JPG veya PNG\'den çok daha küçük dosyalar elde eder.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Karşılaştırma: Bulut Dönüştürücüler ve Yerel Mimarimiz',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Bulut Dönüştürücüler',
98
+ description: 'AVIF dosyalarınızı işlemek için uzak bir sunucuya yükleyen araçlar.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Özel resimleriniz harici sunuculardan geçer',
103
+ 'İş akışını yavaşlatan ağ gecikmesi',
104
+ 'Ücretsiz dönüşüm başına dosya sınırları',
105
+ 'Değişebilecek üçüncü taraf hizmetlerine bağımlılık',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Yerel Mimarimiz',
110
+ description: 'Vanilla JS teknolojisi ve Canvas API aracılığıyla doğrudan tarayıcınızda işleme.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Tam gizlilik — 0 bayt cihazınızdan çıkar',
115
+ 'Ağ bağımlılığı olmadan anında hız',
116
+ 'Boyut veya dosya sayısı sınırı yok',
117
+ 'İnternet bağlantısı olmadan çalışır',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Tarayıcıda teknik dönüşüm nasıl çalışır?',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Chrome, Firefox ve Edge yerel AVIF kod çözücüleri içerir. Dosya yüklendiğinde, tarayıcının görüntü motoru bunu RAM\'de kodunu çözerken alfa kanalı bilgisini korur. Görüntü, şeffaflıkları doğru bir şekilde koruyan 2D bağlamı kullanılarak görünmez bir HTML5 <code>Canvas</code> üzerine çizilir.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Dışa aktarma <code>toBlob(\'image/webp\', quality)</code> ile gerçekleştirilir. Tarayıcı, WebP sıkıştırma algoritmasını dahili olarak uygular ve orijinal görüntüde varsa alfa kanalını içeren bir Blob oluşturur. Bu Blob doğrudan indirme bağlantısına dönüştürülür. Tüm süreç, harici sunucularla herhangi bir iletişim olmadan mikrosaniyeler içinde gerçekleşir.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'WebP: modern geliştiricinin pragmatik seçimi',
138
+ html: 'WebP tarayıcılarda %95\'ten fazla desteğe sahiptir - AVIF büyüyor ancak henüz bu rakama ulaşmış değil. Uyarlanabilir format algılaması olmayan yayınlanan siteler için WebP, neredeyse her kitleyi kapsayan güvenli seçimdir. AVIF\'lerinizi WebP\'ye dönüştürün ve modern resimleri güvenle sunun.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Kullanım durumları: WebP\'yi AVIF\'e ne zaman tercih etmeli?',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ '2020\'den beri polyfill olmadan tarayıcı desteğine ihtiyaç duyan web siteleri.',
150
+ 'WebP\'yi kabul eden ancak AVIF\'i etmeyen CDN\'ler ve görüntü teslim sistemleri.',
151
+ 'AVIF\'i destekleyemeyebilecek WebView\'lara sahip hibrit mobil uygulamalar.',
152
+ 'WebP\'nin AVIF\'ten daha yüksek desteğe sahip olduğu modern HTML e-postaları.',
153
+ 'Yerleşik WebP görüntü desteğine sahip CMS platformları ve e-ticaret siteleri.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Sonuç: Garantili uyumlulukla modernlik',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF görüntü sıkıştırmanın ön saflarıdır, ancak WebP modern web ekosisteminin güvenilir ve evrensel seçimidir. Aracımızla, en yeniden en çok desteklenene anında geçiş yaparsınız - hiçbir şeyi sunucuya yüklemeden, tam gizlilikle ve boyut sınırı olmadan.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'tr', 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 { AvifAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'avif-to-webp-converter';
6
+ const title = '在线将 AVIF 转换为 WebP';
7
+ const description =
8
+ '为了获得更好的兼容性,将 AVIF 图像转换为 WebP 格式。无需服务器,本地完成处理。免费、私密且无限制。';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: '拖拽 AVIF 文件...',
12
+ convertText: '立即将其转换为 WebP',
13
+ selectFiles: '选择文件',
14
+ processedFiles: '已处理文件',
15
+ downloadAll: '下载全部 (.zip)',
16
+ pending: '等待中',
17
+ bibliographyTitle: '参考文献',
18
+ faqTitle: '常见问题',
19
+ };
20
+
21
+ const faq: AvifAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: '转换为 WebP 格式与其他格式的实际区别是什么?',
24
+ answer:
25
+ 'WebP 结合了两者的优点:它能像 JPG 一样提供惊人的压缩率,同时保留像 PNG 一样处理干净透明度的能力。将 AVIF 转换为 WebP 可以在保留所有优势的同时,最大化网页兼容性。',
26
+ },
27
+ {
28
+ question: '如何在没有服务器的情况下实现如此快速的处理?',
29
+ answer:
30
+ '我们利用了内置的解码模块和 JavaScript HTML5 的 Image 对象,这使得可以在本地内存中读取 AVIF,并在创纪录的时间内提取出优化的 WebP 文件。',
31
+ },
32
+ {
33
+ question: 'WebP 格式目前是否完全兼容?',
34
+ answer:
35
+ '与尚在起步阶段的 AVIF 不同,WebP 格式在 Chrome、Firefox 和 Safari 等浏览器中获得了极广泛的支持。',
36
+ },
37
+ ];
38
+
39
+ const howTo: AvifAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: '插入您的照片文件',
42
+ text: '将所有选定的 AVIF 格式文件拖放到我们的画布中。',
43
+ },
44
+ {
45
+ name: '字节算法转换',
46
+ text: '我们的引擎在不上传任何内容的情况下处理算法,并创建基于 WebP 压缩的精确副本。',
47
+ },
48
+ {
49
+ name: '收集您的下载成果',
50
+ text: '点击面板,接收 ZIP 压缩包或单个文件,以便直接发布。',
51
+ },
52
+ ];
53
+
54
+ const bibliography: AvifAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'AV1 Image File Format',
57
+ url: 'https://aomediacodec.github.io/av1-avif/',
58
+ },
59
+ {
60
+ name: 'Google WebP Format Overview',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: AvifAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'AVIF 转 WebP 转换器:现代且安全的网页替代方案',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'AVIF 是目前最先进的图像格式:比 WebP 小,比 JPG 小,视觉质量更高。然而,它的采用情况参差不齐——Safari 直到 2024 年才支持它,许多旧的移动设备也无法识别它。相比之下,WebP 多年来作为现代网页标准已被确立,拥有超过 95% 的全球支持。当您需要现代性而又不愿承担兼容性风险时,将 AVIF 转换为 WebP 是务实的决策。',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'AVIF vs WebP:最新技术 vs 最安全选择',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'AVIF 提供了目前最先进的压缩技术——在相同质量下,通常比 WebP 小 20-30%。其基于 AV1 的技术是行业内最先进的。然而,AVIF 的支持仍存在盲点:旧版本的 Safari、旧版 Android 上的某些浏览器以及某些桌面图像播放器无法识别它。对于拥有广泛且多样化受众的网页生产来说,这构成了风险。',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'WebP 拥有更稳固的支持历史。Chrome 在 2010 年采用了它,Firefox 和 Edge 随后跟进,Safari 在 2020 年加入了支持。凭借在浏览器中超过 95% 的全球覆盖率,对于任何不想提供回退(fallback)格式的网站来说,WebP 都是安全的选择。它支持透明度、有损和无损压缩,且生成的文件远小于 JPG 或 PNG。',
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
+ '依赖于可能发生变化的第三方服务',
106
+ ],
107
+ },
108
+ {
109
+ title: '我们的本地架构',
110
+ description: '通过 Vanilla JS 技术和 Canvas API 在浏览器中直接处理。',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ '完全隐私——0 字节离开您的设备',
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 都包含原生的 AVIF 解码器。加载文件时,浏览器的图像引擎会在内存中对其进行解码,并保留 Alpha 通道信息。图像会使用 2D 上下文绘制在不可见的 HTML5 <code>Canvas</code> 上,从而正确保留透明度。',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: '导出过程通过 <code>toBlob(\'image/webp\', quality)</code> 完成。浏览器在内部应用 WebP 压缩算法,如果原始图像包含 Alpha 通道,则生成的 Blob 也会包含。此 Blob 会转换为直接下载链接。整个过程在微秒内完成,不与外部服务器进行任何通信。',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'WebP:现代开发者的务实选择',
138
+ html: 'WebP 拥有超过 95% 的浏览器支持——AVIF 正在增长,但尚未达到这个数字。对于不具备自适应格式检测的生产站点,WebP 是覆盖几乎所有受众的安全选择。将您的 AVIF 转换为 WebP,放心地提供现代图像。',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: '使用场景:何时选择 WebP 而非 AVIF',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ '自 2020 年起需要在浏览器中提供支持且无需 polyfill 的网站。',
150
+ '接受 WebP 但不支持 AVIF 的 CDN 和图像分发系统。',
151
+ '可能不支持 AVIF 的混合移动应用中的 WebView。',
152
+ 'WebP 支持程度高于 AVIF 的现代 HTML 电子邮件。',
153
+ '已建立 WebP 图像支持的 CMS 平台和电子商务系统。',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: '结论:拥有保障兼容性的现代感',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'AVIF 是图像压缩的前沿,但 WebP 是现代网页生态系统中可靠且通用的选择。使用我们的工具,您可以瞬间从最新格式转换为支持最广的格式——无需向服务器上传任何内容,拥有完全隐私且无大小限制。',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: AvifAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'zh', faq, howTo }),
178
+ };
@@ -13,9 +13,21 @@ export const avifAWebp: ConvertersToolEntry<ImageConverterUI> = {
13
13
  fg: 'mdi:file-export',
14
14
  },
15
15
  i18n: {
16
- es: () => import('./i18n/es').then((m) => m.content),
16
+ de: () => import('./i18n/de').then((m) => m.content),
17
17
  en: () => import('./i18n/en').then((m) => m.content),
18
+ es: () => import('./i18n/es').then((m) => m.content),
18
19
  fr: () => import('./i18n/fr').then((m) => m.content),
20
+ id: () => import('./i18n/id').then((m) => m.content),
21
+ it: () => import('./i18n/it').then((m) => m.content),
22
+ ja: () => import('./i18n/ja').then((m) => m.content),
23
+ ko: () => import('./i18n/ko').then((m) => m.content),
24
+ nl: () => import('./i18n/nl').then((m) => m.content),
25
+ pl: () => import('./i18n/pl').then((m) => m.content),
26
+ pt: () => import('./i18n/pt').then((m) => m.content),
27
+ ru: () => import('./i18n/ru').then((m) => m.content),
28
+ sv: () => import('./i18n/sv').then((m) => m.content),
29
+ tr: () => import('./i18n/tr').then((m) => m.content),
30
+ zh: () => import('./i18n/zh').then((m) => m.content),
19
31
  },
20
32
  };
21
33