@jjlmoya/utils-converters 1.7.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 (345) 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/title_quality.test.ts +55 -0
  10. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  11. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  12. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  15. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  25. package/src/tool/avifAJpg/index.ts +13 -1
  26. package/src/tool/avifAPng/i18n/de.ts +178 -0
  27. package/src/tool/avifAPng/i18n/en.ts +2 -12
  28. package/src/tool/avifAPng/i18n/es.ts +2 -12
  29. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  30. package/src/tool/avifAPng/i18n/id.ts +178 -0
  31. package/src/tool/avifAPng/i18n/it.ts +178 -0
  32. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  34. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  35. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  37. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  38. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  39. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  40. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  41. package/src/tool/avifAPng/index.ts +13 -1
  42. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  43. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  44. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  47. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  57. package/src/tool/avifAWebp/index.ts +13 -1
  58. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  59. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  60. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  63. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  73. package/src/tool/bmpAJpg/index.ts +13 -1
  74. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  75. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  76. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  79. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  89. package/src/tool/bmpAPng/index.ts +13 -1
  90. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  91. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  92. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  95. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  105. package/src/tool/bmpAWebp/index.ts +13 -1
  106. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  107. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  108. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  111. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  121. package/src/tool/gifAJpg/index.ts +13 -1
  122. package/src/tool/gifAPng/i18n/de.ts +178 -0
  123. package/src/tool/gifAPng/i18n/en.ts +2 -12
  124. package/src/tool/gifAPng/i18n/es.ts +2 -12
  125. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  126. package/src/tool/gifAPng/i18n/id.ts +178 -0
  127. package/src/tool/gifAPng/i18n/it.ts +178 -0
  128. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  130. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  131. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  133. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  134. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  135. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  136. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  137. package/src/tool/gifAPng/index.ts +12 -0
  138. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  139. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  140. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  143. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  153. package/src/tool/gifAWebp/index.ts +12 -0
  154. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  155. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  156. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  159. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  165. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  166. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  169. package/src/tool/imagenBase64/index.ts +12 -0
  170. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  171. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  172. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  173. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  174. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  175. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  185. package/src/tool/jpgAIco/index.ts +12 -0
  186. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  187. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  188. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  191. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  201. package/src/tool/jpgAPng/index.ts +13 -1
  202. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  203. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  204. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  207. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  217. package/src/tool/jpgAWebp/index.ts +12 -0
  218. package/src/tool/pngAIco/i18n/de.ts +183 -0
  219. package/src/tool/pngAIco/i18n/en.ts +8 -13
  220. package/src/tool/pngAIco/i18n/es.ts +19 -24
  221. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  222. package/src/tool/pngAIco/i18n/id.ts +183 -0
  223. package/src/tool/pngAIco/i18n/it.ts +183 -0
  224. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  226. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  227. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  229. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  230. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  231. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  232. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  233. package/src/tool/pngAIco/index.ts +12 -0
  234. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  235. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  236. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  239. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  249. package/src/tool/pngAJpg/index.ts +13 -1
  250. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  251. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  252. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  255. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  265. package/src/tool/pngAWebp/index.ts +12 -0
  266. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  267. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  268. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  270. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  271. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  281. package/src/tool/svgAJpg/index.ts +12 -0
  282. package/src/tool/svgAPng/i18n/de.ts +178 -0
  283. package/src/tool/svgAPng/i18n/en.ts +8 -13
  284. package/src/tool/svgAPng/i18n/es.ts +31 -36
  285. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  286. package/src/tool/svgAPng/i18n/id.ts +178 -0
  287. package/src/tool/svgAPng/i18n/it.ts +178 -0
  288. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  290. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  291. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  293. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  294. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  295. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  296. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  297. package/src/tool/svgAPng/index.ts +12 -0
  298. package/src/tool/webpAIco/i18n/de.ts +183 -0
  299. package/src/tool/webpAIco/i18n/en.ts +8 -13
  300. package/src/tool/webpAIco/i18n/es.ts +9 -14
  301. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  302. package/src/tool/webpAIco/i18n/id.ts +183 -0
  303. package/src/tool/webpAIco/i18n/it.ts +183 -0
  304. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  306. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  307. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  309. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  310. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  311. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  312. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  313. package/src/tool/webpAIco/index.ts +12 -0
  314. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  315. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  316. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  317. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  318. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  319. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  329. package/src/tool/webpAJpg/index.ts +12 -0
  330. package/src/tool/webpAPng/i18n/de.ts +182 -0
  331. package/src/tool/webpAPng/i18n/en.ts +8 -13
  332. package/src/tool/webpAPng/i18n/es.ts +35 -40
  333. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  334. package/src/tool/webpAPng/i18n/id.ts +182 -0
  335. package/src/tool/webpAPng/i18n/it.ts +182 -0
  336. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  338. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  339. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  341. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  342. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  343. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  344. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  345. 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 { GifAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-gif-ke-webp';
6
+ const title = 'Konversi GIF ke WebP statis Online';
7
+ const description =
8
+ 'Konversi GIF animasi ke WebP statis. Mempertahankan transparansi. Tanpa server. Diproses secara lokal di browser Anda. Gratis.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Tarik file GIF...',
12
+ convertText: 'Untuk mengonversinya ke WebP secara instan',
13
+ selectFiles: 'Pilih file',
14
+ processedFiles: 'File yang diproses',
15
+ downloadAll: 'Unduh Semua (.zip)',
16
+ pending: 'Tertunda',
17
+ bibliographyTitle: 'Referensi Bibliografi',
18
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
19
+ };
20
+
21
+ const faq: GifAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Mengapa membekukan file animasi ke format WebP statis modern?',
24
+ answer:
25
+ 'WebP adalah standar kompresi Google; ini sangat ringan dan mempertahankan transparansi dengan bersih. Beralih dari GIF ke WebP menghilangkan animasi yang berat dan menghasilkan peningkatan kecepatan web yang luar biasa.',
26
+ },
27
+ {
28
+ question: 'Apakah avatar asli akan tetap transparan?',
29
+ answer:
30
+ 'Ya, tidak seperti JPEG, kontainer WebP menghormati saluran Alpha yang kompleks. Semua siluetnya akan tetap sempurna seperti aslinya.',
31
+ },
32
+ {
33
+ question: 'Ke mana file akan diunggah?',
34
+ answer:
35
+ 'Tidak ada pengunggahan. Pemrosesan dilakukan sepenuhnya oleh Javascript browser di PC Anda, dengan nol pengiriman jarak jauh.',
36
+ },
37
+ ];
38
+
39
+ const howTo: GifAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Luncurkan longsoran animasi',
42
+ text: 'Pindahkan dan letakkan puluhan meme ke zona yang ditentukan tanpa koneksi jarak jauh.',
43
+ },
44
+ {
45
+ name: 'Saksikan perubahan besar yang tak terlihat',
46
+ text: 'Lihat indikator progresif berubah setiap milidetik saat dekoder canvas lokal menghasilkan output.',
47
+ },
48
+ {
49
+ name: 'Simpan gudang hasil bersih Anda',
50
+ text: 'Ambil file yang diekstrak satu per satu atau tekan Unduh Zip untuk mengemas semuanya.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Spesifikasi GIF89a',
57
+ url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
+ },
59
+ {
60
+ name: 'Dokumentasi Google WebP',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: GifAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konverter GIF ke WebP: Pengganti Modern untuk Animasi Berat',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'GIF animasi adalah dinosaurus konten web modern: mereka mengonsumsi bandwidth yang tidak proporsional, memperburuk PageSpeed halaman mana pun, dan bertanggung jawab atas persentase berat total yang signifikan di ribuan situs web. GIF animasi 5 MB yang khas dapat menjadi animasi WebP di bawah 1 MB dengan kualitas visual yang sama. WebP adalah penerus modern yang dirancang khusus oleh Google untuk menggantikan GIF di web.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'GIF vs WebP: kesenjangan antara masa lalu dan masa kini web',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'GIF adalah format dari tahun 1987 yang awalnya tidak dirancang untuk animasi — fitur tersebut datang sebagai "hack" kemudian. Palet 256 warnanya, kompresi yang tidak efisien, dan ketidakmampuan untuk menangani audio menjadikannya format yang usang. WebP, yang dikembangkan oleh Google pada tahun 2010, menawarkan kompresi superior baik lossy maupun lossless, dukungan animasi asli, dan saluran alpha penuh.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Bagi pengembang web, mengganti GIF dengan WebP pada halaman dapat berarti peningkatan skor Google PageSpeed sebesar 10 hingga 30 poin. Berat halaman yang lebih sedikit berarti Core Web Vitals yang lebih baik, peringkat SEO yang lebih baik, dan biaya bandwidth yang lebih rendah di server. Ini bukan sekadar peningkatan estetika — ini adalah keputusan arsitektur teknis.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Perbandingan Arsitektur: Lokal vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Konverter Cloud',
98
+ description: 'Platform yang memproses GIF Anda di server jarak jauh.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Animasi Anda dikirim melalui internet ke server pihak ketiga',
103
+ 'Waktu tunggu karena latensi jaringan saat pengunggahan dan pengunduhan',
104
+ 'Batasan ukuran (GIF besar sering ditolak)',
105
+ 'Risiko retensi dan analisis file',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Arsitektur Lokal Kami',
110
+ description: 'Pemrosesan langsung pada perangkat keras Anda menggunakan teknologi Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'GIF tidak pernah meninggalkan perangkat Anda',
115
+ 'Konversi instan tanpa menunggu jaringan',
116
+ 'Tidak ada batasan ukuran: proses GIF dengan berat apa pun',
117
+ 'Privasi total: 0 byte dikirim secara eksternal',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Bagaimana cara kerja konversi GIF ke WebP lokal',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Konversi lokal menggunakan HTML5 Canvas API. GIF dimuat sebagai elemen Gambar browser asli. Dengan menggambarnya ke kanvas, mesin grafis menangkap bingkai animasi pertama dengan semua informasi transparansinya. Metode <code>toDataURL(\'image/webp\')</code> mengekspor bingkai sebagai WebP langsung di RAM.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'WebP mendukung saluran alpha penuh, sehingga transparansi GIF dipertahankan dalam WebP yang dihasilkan tanpa perlu menambahkan latar belakang. Algoritme kompresi WebP jauh lebih efisien daripada GIF atau PNG, yang menjelaskan pengurangan ukuran file yang drastis dari output akhir.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Peningkatan PageSpeed yang dijamin',
138
+ html: 'GIF animasi 5 MB bisa menjadi WebP di bawah 1 MB. Jika Anda memiliki GIF di halaman situs web Anda, menggantinya dengan WebP dapat segera meningkatkan Largest Contentful Paint (LCP) dan Total Blocking Time (TBT) Anda, yang berdampak langsung pada peringkat SEO.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Kasus penggunaan dan kompatibilitas WebP yang dihasilkan',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Mengganti GIF di halaman web untuk meningkatkan skor PageSpeed.',
150
+ 'Avatar dan stiker yang dioptimalkan untuk Discord, Slack, dan platform modern.',
151
+ 'Banner dan visual untuk kampanye pemasaran digital.',
152
+ 'Animasi dalam aplikasi web progresif (PWA).',
153
+ 'Kompatibel dengan Chrome, Edge, Firefox, Safari 14+ dan semua browser modern.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Kesimpulan: migrasikan GIF Anda ke abad ke-21',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Setiap GIF di situs web Anda adalah peluang optimasi yang terlewatkan. Alat kami mengonversi GIF ke WebP secara instan, privat, dan tanpa batasan, langsung di browser Anda. Hasilnya: file hingga 5 kali lebih kecil, transparansi sempurna, dan kompatibilitas dengan semua browser modern.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: GifAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'id', faq, howTo }),
178
+ };
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { GifAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'convertitore-gif-in-webp';
6
+ const title = 'Converti GIF in WebP statico Online';
7
+ const description =
8
+ 'Converti GIF animate in WebP statico. Preserva la trasparenza. Nessun server necessario. Elaborazione locale nel tuo browser. Gratuito.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Trascina i file GIF...',
12
+ convertText: 'Per convertirli istantaneamente in WebP',
13
+ selectFiles: 'Seleziona file',
14
+ processedFiles: 'File elaborati',
15
+ downloadAll: 'Scarica tutto (.zip)',
16
+ pending: 'In attesa',
17
+ bibliographyTitle: 'Riferimenti Bibliografici',
18
+ faqTitle: 'Domande Frequenti',
19
+ };
20
+
21
+ const faq: GifAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Perché congelare un file animato nel moderno formato statico WebP?',
24
+ answer:
25
+ 'WebP è lo standard di compressione di Google; è incredibilmente leggero e mantiene la trasparenza in modo pulito. Passare da GIF a WebP elimina l\'animazione pesante e ottiene un guadagno abissale nella velocità del web.',
26
+ },
27
+ {
28
+ question: 'L\'avatar originale rimarrà trasparente?',
29
+ answer:
30
+ 'Sì, a differenza del JPEG, il contenitore WebP rispetta il complesso canale Alpha. Tutte le sue sagome rimarranno perfette come erano nativamente.',
31
+ },
32
+ {
33
+ question: 'Dove verranno caricati i file?',
34
+ answer:
35
+ 'Non c\'è alcun caricamento. L\'elaborazione è eseguita interamente dal Javascript del browser sul tuo PC, con zero invio remoto.',
36
+ },
37
+ ];
38
+
39
+ const howTo: GifAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Lancia una valanga animata',
42
+ text: 'Sposta e rilascia decine di meme nella zona delimitata senza connessione remota.',
43
+ },
44
+ {
45
+ name: 'Assisti al grande cambiamento invisibile',
46
+ text: 'Guarda un indicatore progressivo cambiare ogni millisecondo mentre il decoder canvas locale genera l\'output.',
47
+ },
48
+ {
49
+ name: 'Salva il tuo arsenale di risultati puliti',
50
+ text: 'Prendi i file estratti singolarmente o premi Scarica Zip per pacchettizzare tutto.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Specifica GIF89a',
57
+ url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
+ },
59
+ {
60
+ name: 'Documentazione Google WebP',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: GifAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Convertitore da GIF a WebP: Il sostituto moderno per animazioni pesanti',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Le GIF animate sono i dinosauri dei moderni contenuti web: consumano una larghezza di banda sproporzionata, peggiorano il PageSpeed di qualsiasi pagina e sono responsabili di una percentuale significativa del peso totale su migliaia di siti web. Una tipica GIF animata da 5 MB può diventare un\'animazione WebP sotto 1 MB con la stessa qualità visiva. WebP è il successore moderno che Google ha progettato specificamente per sostituire le GIF sul web.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'GIF vs WebP: il divario tra il passato e il presente del web',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'La GIF è un formato del 1987 non originariamente progettato per le animazioni: tale caratteristica è arrivata come un successivo "hack". La sua tavolozza di 256 colori, la compressione inefficiente e l\'incapacità di gestire l\'audio lo rendono un formato obsoleto. WebP, sviluppato da Google nel 2010, offre una compressione superiore sia lossy che lossless, supporto nativo per le animazioni e canale alpha completo.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Per uno sviluppatore web, sostituire le GIF con WebP sulle pagine può significare un miglioramento del punteggio Google PageSpeed da 10 a 30 punti. Meno peso della pagina significa migliori Core Web Vitals, migliori posizionamenti SEO e minori costi di larghezza di banda sui server. Non è solo un miglioramento estetico: è una decisione di architettura tecnica.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Confronto Architettura: Locale vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Convertitori Cloud',
98
+ description: 'Piattaforme che elaborano le tue GIF su server remoti.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Le tue animazioni viaggiano su Internet verso server di terze parti',
103
+ 'Tempo di attesa dovuto alla latenza di rete durante il caricamento e lo scaricamento',
104
+ 'Limiti di dimensione (le GIF di grandi dimensioni vengono spesso rifiutate)',
105
+ 'Rischio di conservazione e analisi dei file',
106
+ ],
107
+ },
108
+ {
109
+ title: 'La nostra Architettura Locale',
110
+ description: 'Elaborazione diretta sul tuo hardware utilizzando la tecnologia Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'La GIF non lascia mai il tuo dispositivo',
115
+ 'Conversione istantanea senza attese di rete',
116
+ 'Nessun limite di dimensione: elabora GIF di qualsiasi peso',
117
+ 'Privacy totale: 0 byte inviati esternamente',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Come funziona la conversione locale da GIF a WebP',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'La conversione locale utilizza l\'API HTML5 Canvas. La GIF viene caricata come un elemento Image nativo del browser. Disegnandola su un canvas, il motore grafico cattura il primo fotogramma dell\'animazione con tutte le sue informazioni sulla trasparenza. Il metodo <code>toDataURL(\'image/webp\')</code> esporta il fotogramma come WebP direttamente nella RAM.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'WebP supporta il canale alpha completo, quindi le trasparenze GIF vengono preservate nel WebP risultante senza necessità di aggiungere uno sfondo. Gli algoritmi di compressione WebP sono significativamente più efficienti di quelli GIF o PNG, il che spiega la drastica riduzione della dimensione del file finale.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Miglioramento PageSpeed garantito',
138
+ html: 'Una GIF animata da 5 MB può diventare un WebP sotto 1 MB. Se hai delle GIF sulle pagine del tuo sito web, sostituirle con WebP può migliorare immediatamente il tuo Largest Contentful Paint (LCP) e il Total Blocking Time (TBT), influenzando direttamente i posizionamenti SEO.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casi d\'uso e compatibilità del WebP risultante',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Sostituzione delle GIF sulle pagine web per migliorare i punteggi PageSpeed.',
150
+ 'Avatar e sticker ottimizzati per Discord, Slack e piattaforme moderne.',
151
+ 'Banner e visual per campagne di digital marketing.',
152
+ 'Animazioni in applicazioni web progressive (PWA).',
153
+ 'Compatibile con Chrome, Edge, Firefox, Safari 14+ e tutti i browser moderni.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusione: migra le tue GIF nel 21° secolo',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Ogni GIF sul tuo sito web è un\'opportunità di ottimizzazione persa. Il nostro strumento converte le GIF in WebP all\'istante, in modo privato e senza limiti, direttamente nel tuo browser. Il risultato: file fino a 5 volte più piccoli, trasparenza perfetta e compatibilità con tutti i browser moderni.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: GifAWebpLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo,
174
+ faq,
175
+ bibliography,
176
+ howTo,
177
+ schemas: generateSchemas({ title, description, inLanguage: 'it', faq, howTo }),
178
+ };
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { GifAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'convert-gif-to-webp';
6
+ const title = 'GIFを静的WebPにオンライン変換';
7
+ const description =
8
+ 'アニメーションGIFを静的WebPに変換します。透明度を維持。サーバー不要。ブラウザ内でローカルに処理。無料。';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'GIFファイルをドラッグ...',
12
+ convertText: '即座にWebPに変換する',
13
+ selectFiles: 'ファイルを選択',
14
+ processedFiles: '処理済みファイル',
15
+ downloadAll: 'すべてダウンロード (.zip)',
16
+ pending: '待機中',
17
+ bibliographyTitle: '参考文献',
18
+ faqTitle: 'よくある質問',
19
+ };
20
+
21
+ const faq: GifAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'なぜアニメーションファイルを現代的な静的WebP形式に変換するのですか?',
24
+ answer:
25
+ 'WebPはGoogleの圧縮標準です。驚くほど軽量で、透明度をきれいに維持します。GIFからWebPに移行することで、重いアニメーションが排除され、Webスピードが飛躍的に向上します。',
26
+ },
27
+ {
28
+ question: '元の画像は透明のままですか?',
29
+ answer:
30
+ 'はい。JPEGとは異なり、WebPコンテナは複雑なアルファチャンネルを尊重します。すべてのシルエットは元のまま完璧に保たれます。',
31
+ },
32
+ {
33
+ question: 'ファイルはどこにアップロードされますか?',
34
+ answer:
35
+ 'アップロードは行われません。処理はブラウザのJavascriptによってPC上で完全に行われ、外部への送信は一切ありません。',
36
+ },
37
+ ];
38
+
39
+ const howTo: GifAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'アニメーションを開始',
42
+ text: '外部接続なしで、数十のGIFをデリミタゾーンに移動してドロップします。',
43
+ },
44
+ {
45
+ name: '見えない大きな変化を目撃',
46
+ text: 'ローカルキャンバスデコーダーが出力を生成する間、ミリ秒単位で変化するプログレスインジケーターを確認してください。',
47
+ },
48
+ {
49
+ name: '変換された結果を保存',
50
+ text: '抽出されたファイルを個別に取得するか、「Zipダウンロード」を押してすべてをパッケージ化します。',
51
+ },
52
+ ];
53
+
54
+ const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'GIF89a 仕様',
57
+ url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
+ },
59
+ {
60
+ name: 'Google WebP ドキュメント',
61
+ url: 'https://developers.google.com/speed/webp',
62
+ },
63
+ ];
64
+
65
+ const seo: GifAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'GIF to WebP コンバーター:重いアニメーションに代わる現代的な選択肢',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'アニメーションGIFは現代のWebコンテンツにおける恐竜のようなものです。不釣り合いな帯域幅を消費し、あらゆるページのPageSpeedを低下させ、数千のWebサイトにおける総重量の大部分を占めています。典型的な5MBのアニメーションGIFは、同じ視覚的品質を維持しながら1MB未満のWebPアニメーションに変換できます。WebPは、Web上のGIFを置き換えるためにGoogleが特別に設計した後継形式です。',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'GIF vs WebP:Webの過去と現在のギャップ',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'GIFはもともとアニメーション用に設計されていない1987年の形式です。アニメーション機能は後からの「ハック」として追加されました。256色のパレット、非効率な圧縮、オーディオ処理の不可などは、これがもはや旧式の形式であることを示しています。2010年にGoogleによって開発されたWebPは、損失あり・なしの両方で優れた圧縮を提供し、ネイティブのアニメーションサポートと完全なアルファチャンネルを備えています。',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Web開発者にとって、ページ上のGIFをWebPに置き換えることは、Google PageSpeedスコアを10〜30ポイント向上させることを意味します。ページの軽量化は、Core Web Vitalsの改善、SEOランキングの向上、およびサーバーの帯域幅コストの削減につながります。これは単なる見た目の改善ではなく、技術的なアーキテクチャの決定です。',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'インフラ比較:ローカル vs クラウド',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'クラウドコンバーター',
98
+ description: 'リモートサーバーでGIFを処理するプラットフォーム。',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'アニメーションがインターネット経由でサードパーティのサーバーに送信される',
103
+ 'アップロードとダウンロードの際のネットワーク遅延による待機時間',
104
+ 'サイズ制限(重いGIFは拒否されることが多い)',
105
+ 'ファイルの保持や分析に関するリスク',
106
+ ],
107
+ },
108
+ {
109
+ title: '当サイトのローカルアーキテクチャ',
110
+ description: 'Vanilla JSテクノロジーを使用して、ハードウェア上で直接処理。',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'GIFがデバイスから離れることはありません',
115
+ 'ネットワークの待機時間なしで瞬時に変換',
116
+ 'サイズ制限なし:あらゆる重量のGIFを処理可能',
117
+ '完全なプライバシー:外部送信は0バイト',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'ローカルでのGIF to WebP変換の仕組み',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'ローカル変換にはHTML5 Canvas APIを使用します。GIFはブラウザのネイティブなImage要素として読み込まれます。キャンバスに描画することで、グラフィックエンジンはすべての透明度情報とともに最初のアニメーションフレームをキャプチャします。<code>toDataURL(\'image/webp\')</code>メソッドは、フレームをRAMから直接WebPとしてエクスポートします。',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'WebPは完全なアルファチャンネルをサポートしているため、背景を追加することなく、生成されたWebPでGIFの透明度が維持されます。WebPの圧縮アルゴリズムはGIFやPNGよりも大幅に効率的であり、これが最終的な出力のファイルサイズが劇的に減少する理由です。',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: '確実なPageSpeed改善',
138
+ html: '5MBのアニメーションGIFは、1MB未満のWebPになる可能性があります。WebサイトのページにGIFがある場合、それらをWebPに置き換えることで、Largest Contentful Paint (LCP)やTotal Blocking Time (TBT)を直ちに改善し、SEOランキングに直接影響を与えることができます。',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: '変換されたWebPの活用事例と互換性',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'PageSpeedスコアを改善するためにWebページ上のGIFを置き換える。',
150
+ 'Discord、Slack、現代的なプラットフォーム用に最適化されたアバターやステッカー。',
151
+ 'デジタルマーケティングキャンペーン用のバナーやビジュアル。',
152
+ 'プログレッシブWebアプリケーション(PWA)でのアニメーション。',
153
+ 'Chrome、Edge、Firefox、Safari 14以降、およびすべての現代的なブラウザに対応。',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: '結論:GIFを21世紀仕様に移行しましょう',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'WebサイトのすべてのGIFは、最適化の機会を逃しています。当サイトのツールは、ブラウザで直接、即座に、安全に、制限なくGIFをWebPに変換します。その結果、ファイルサイズは最大5倍削減され、完璧な透明度とすべての現代的なブラウザとの互換性が保証されます。',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: GifAWebpLocaleContent = {
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
+ };