@jjlmoya/utils-converters 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/package.json +60 -59
  2. package/src/shared/ImageConverter.astro +2 -1
  3. package/src/shared/logic/schemas.ts +57 -0
  4. package/src/tests/faq_count.test.ts +13 -4
  5. package/src/tests/i18n_coverage.test.ts +36 -0
  6. package/src/tests/locale_completeness.test.ts +42 -0
  7. package/src/tests/no_h1_in_components.test.ts +48 -0
  8. package/src/tests/schemas_fulfillment.test.ts +23 -0
  9. package/src/tests/seo_length.test.ts +1 -1
  10. package/src/tests/title_quality.test.ts +55 -0
  11. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  12. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  15. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  25. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  26. package/src/tool/avifAJpg/index.ts +13 -1
  27. package/src/tool/avifAPng/i18n/de.ts +178 -0
  28. package/src/tool/avifAPng/i18n/en.ts +2 -12
  29. package/src/tool/avifAPng/i18n/es.ts +2 -12
  30. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  31. package/src/tool/avifAPng/i18n/id.ts +178 -0
  32. package/src/tool/avifAPng/i18n/it.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  34. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  35. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  37. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  38. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  39. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  40. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  41. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  42. package/src/tool/avifAPng/index.ts +13 -1
  43. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  44. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  47. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  57. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  58. package/src/tool/avifAWebp/index.ts +13 -1
  59. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  60. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  63. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  73. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  74. package/src/tool/bmpAJpg/index.ts +13 -1
  75. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  76. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  79. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  89. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  90. package/src/tool/bmpAPng/index.ts +13 -1
  91. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  92. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  95. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  105. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  106. package/src/tool/bmpAWebp/index.ts +13 -1
  107. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  108. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  111. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  121. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  122. package/src/tool/gifAJpg/index.ts +13 -1
  123. package/src/tool/gifAPng/i18n/de.ts +178 -0
  124. package/src/tool/gifAPng/i18n/en.ts +2 -12
  125. package/src/tool/gifAPng/i18n/es.ts +2 -12
  126. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  127. package/src/tool/gifAPng/i18n/id.ts +178 -0
  128. package/src/tool/gifAPng/i18n/it.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  130. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  131. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  133. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  134. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  135. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  136. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  137. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  138. package/src/tool/gifAPng/index.ts +12 -0
  139. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  140. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  143. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  153. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  154. package/src/tool/gifAWebp/index.ts +12 -0
  155. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  156. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  159. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  165. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  166. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  169. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  170. package/src/tool/imagenBase64/index.ts +12 -0
  171. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  172. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  173. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  174. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  175. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  185. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  186. package/src/tool/jpgAIco/index.ts +12 -0
  187. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  188. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  191. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  201. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  202. package/src/tool/jpgAPng/index.ts +13 -1
  203. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  204. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  207. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  217. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  218. package/src/tool/jpgAWebp/index.ts +12 -0
  219. package/src/tool/pngAIco/i18n/de.ts +183 -0
  220. package/src/tool/pngAIco/i18n/en.ts +8 -13
  221. package/src/tool/pngAIco/i18n/es.ts +19 -24
  222. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  223. package/src/tool/pngAIco/i18n/id.ts +183 -0
  224. package/src/tool/pngAIco/i18n/it.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  226. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  227. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  229. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  230. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  231. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  232. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  233. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  234. package/src/tool/pngAIco/index.ts +12 -0
  235. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  236. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  239. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  249. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  250. package/src/tool/pngAJpg/index.ts +13 -1
  251. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  252. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  255. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  265. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  266. package/src/tool/pngAWebp/index.ts +12 -0
  267. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  268. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  270. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  271. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  281. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  282. package/src/tool/svgAJpg/index.ts +12 -0
  283. package/src/tool/svgAPng/i18n/de.ts +178 -0
  284. package/src/tool/svgAPng/i18n/en.ts +8 -13
  285. package/src/tool/svgAPng/i18n/es.ts +31 -36
  286. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  287. package/src/tool/svgAPng/i18n/id.ts +178 -0
  288. package/src/tool/svgAPng/i18n/it.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  290. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  291. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  293. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  294. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  295. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  296. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  297. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  298. package/src/tool/svgAPng/index.ts +12 -0
  299. package/src/tool/webpAIco/i18n/de.ts +183 -0
  300. package/src/tool/webpAIco/i18n/en.ts +8 -13
  301. package/src/tool/webpAIco/i18n/es.ts +9 -14
  302. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  303. package/src/tool/webpAIco/i18n/id.ts +183 -0
  304. package/src/tool/webpAIco/i18n/it.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  306. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  307. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  309. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  310. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  311. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  312. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  313. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  314. package/src/tool/webpAIco/index.ts +12 -0
  315. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  316. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  317. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  318. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  319. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  329. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  330. package/src/tool/webpAJpg/index.ts +12 -0
  331. package/src/tool/webpAPng/i18n/de.ts +182 -0
  332. package/src/tool/webpAPng/i18n/en.ts +8 -13
  333. package/src/tool/webpAPng/i18n/es.ts +35 -40
  334. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  335. package/src/tool/webpAPng/i18n/id.ts +182 -0
  336. package/src/tool/webpAPng/i18n/it.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  338. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  339. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  341. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  342. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  343. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  344. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  345. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  346. package/src/tool/webpAPng/index.ts +12 -0
@@ -0,0 +1,178 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { JpgAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-jpg-ke-webp';
6
+ const title = 'Konversi JPG ke WebP Online dan Gratis';
7
+ const description =
8
+ 'Konversi gambar JPG ke WebP di browser Anda. Kompresi unggul tanpa kehilangan kualitas visual. Tanpa pengunggahan file. Gratis, tidak terbatas, dan privat.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Tarik file JPG...',
12
+ convertText: 'Untuk mengonversinya ke WebP secara instan',
13
+ selectFiles: 'Pilih file',
14
+ processedFiles: 'File yang diproses',
15
+ downloadAll: 'Unduh Semua (.zip)',
16
+ pending: 'Menunggu',
17
+ bibliographyTitle: 'Referensi Bibliografi',
18
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
19
+ };
20
+
21
+ const faq: JpgAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Mengapa mengonversi foto JPG ke WebP?',
24
+ answer:
25
+ 'WebP memungkinkan kompresi yang jauh lebih baik daripada file JPG tradisional tanpa mata manusia menyadari perbedaannya, menghasilkan situs web yang lebih cepat dan modern.',
26
+ },
27
+ {
28
+ question: 'Apakah saya harus membayar per gambar?',
29
+ answer:
30
+ 'Tidak, alat ini gratis dan semuanya diproses langsung di komputer Anda. Tidak terbatas untuk penggunaan rumah tangga atau profesional.',
31
+ },
32
+ {
33
+ question: 'Apakah konversinya aman?',
34
+ answer:
35
+ 'Ya, sepenuhnya. Semua pemrosesan terjadi di HTML5 Canvas browser lokal Anda tanpa mengirimkan data apa pun ke server eksternal.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Masukkan foto JPG Anda',
42
+ text: 'Letakkan file JPG Anda atau tarik langsung ke area atas. Deteksi dilakukan secara instan.',
43
+ },
44
+ {
45
+ name: 'Pemrosesan ke WebP',
46
+ text: 'Mesin rendering lokal akan mengonversi setiap file gambar menjadi WebP yang sangat optimal dan siap untuk web.',
47
+ },
48
+ {
49
+ name: 'Unduh hasilnya',
50
+ text: 'Simpan setiap WebP satu per satu atau unduh ZIP dengan semua file yang telah dikonversi.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Studi Kompresi Google WebP',
57
+ url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
+ },
59
+ {
60
+ name: 'Web.dev: Sajikan gambar dalam format modern',
61
+ url: 'https://web.dev/uses-webp-images/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konverter JPG ke WebP: Percepat Situs Anda dengan Format Modern Google',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Format <strong>JPG</strong> telah mendominasi fotografi digital selama beberapa dekade — kompatibel secara universal dan didukung secara luas. Namun Google merancang <strong>WebP</strong> untuk mengalahkan JPG di areanya sendiri: kualitas visual yang sama dengan ukuran file 25–35% lebih kecil. Bagi pengembang dan tim pemasaran yang berjuang melawan pemuatan halaman yang lambat, mengonversi JPG ke WebP adalah satu-satunya optimasi dengan hasil tertinggi yang dapat Anda terapkan tanpa menyentuh desain Anda.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG atau WebP? Kapan menggunakan masing-masing format',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '<strong>JPG</strong> tetap menjadi pilihan yang tepat ketika Anda membutuhkan kompatibilitas universal: email klien, dokumen Word, platform media sosial lama, atau sistem CMS yang belum menerima WebP. Ekosistem tiga puluh tahunnya menjamin bahwa layar, printer, atau viewer mana pun akan membukanya tanpa masalah. Kelemahan utamanya adalah ukuran — JPG header 1,5 MB dapat menurunkan skor LCP halaman Anda dan gagal dalam ambang batas Core Web Vitals.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '<strong>WebP</strong> adalah pilihan cerdas untuk semua konten yang ada di situs web Anda. Chrome, Firefox, Safari, dan Edge telah mendukungnya secara native selama bertahun-tahun. Gambar produk di e-commerce, banner blog, thumbnail video, dan foto apa pun yang dipublikasikan secara online semuanya mendapat manfaat langsung: halaman yang lebih ringan, skor Google PageSpeed Insights yang lebih baik, dan pengalaman pengguna yang lebih lancar — terutama pada koneksi seluler yang lambat.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Perbandingan: Konversi Lokal vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Konverter Cloud',
98
+ description: 'Alat yang mengunggah file Anda ke server jarak jauh.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Latensi jaringan saat mengunggah dan mengunduh',
103
+ 'Foto Anda disimpan di server pihak ketiga',
104
+ 'Batas ukuran file dan batasan konversi harian',
105
+ 'Iklan yang mengganggu dan pelacak pihak ketiga',
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
+ 'Kecepatan instan — nol latensi jaringan',
115
+ 'Privasi lengkap — 0 byte dikirim secara eksternal',
116
+ 'Tanpa batas MB atau batasan jumlah file',
117
+ 'Antarmuka bersih, tanpa iklan atau pelacakan',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Cara kerjanya secara teknis',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Saat Anda menarik JPG ke dalam alat ini, browser membuat <strong>objek Blob</strong> yang hanya ada di RAM Anda. Blob tersebut didekodekan dan digambar ke elemen <strong>HTML5 Canvas</strong> yang tidak terlihat. Karena JPG tidak memiliki saluran alfa, konversi ke WebP dilakukan secara langsung: mesin mengekspor kanvas dengan memanggil <code>toDataURL(\'image/webp\')</code>, menghasilkan aliran byte yang diunduh secara instan oleh OS Anda — tanpa melibatkan server.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Algoritma kompresi WebP menggabungkan teknik prediksi blok (mirip dengan teknik pada VP8, codec video Google) dengan transformasi warna dan pengkodean aritmatika. Hasilnya adalah file yang berisi informasi persepsi yang sama dengan JPG asli tetapi dikemas jauh lebih efisien — yang berarti lebih sedikit kilobita yang ditransfer setiap kali halaman dikunjungi.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Tip Core Web Vitals: LCP dan berat gambar',
138
+ html: '<strong>Largest Contentful Paint (LCP)</strong> adalah metrik Google yang mengukur berapa lama waktu yang dibutuhkan untuk memuat elemen visual terbesar di halaman Anda. JPG header 1,5 MB dapat menjadi WebP hanya 900 KB — atau bahkan 600 KB — tanpa perbedaan visual yang nyata. Penghematan <strong>25–35%</strong> tersebut dapat memindahkan LCP Anda dari "Perlu Perbaikan" ke "Baik" dan mendorong Anda naik di peringkat pencarian.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Kasus penggunaan dan kompatibilitas',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Gambar produk di toko WooCommerce atau Shopify: lebih ringan, lebih banyak konversi.',
150
+ 'Fotografi blog dan artikel: skor PageSpeed yang lebih baik tanpa mendesain ulang apa pun.',
151
+ 'Banner web dan materi iklan display: file yang lebih ringan dengan ketajaman yang sama.',
152
+ 'Galeri portofolio untuk arsitektur, fotografi, atau studio desain.',
153
+ 'Thumbnail video di situs streaming atau platform kursus online.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Kesimpulan',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Mengonversi gambar JPG Anda ke WebP adalah salah satu optimasi paling sederhana dan hemat biaya yang dapat Anda terapkan pada situs web apa pun saat ini. Dengan alat ini Anda melakukannya dalam hitungan detik, gratis, dan tanpa gambar Anda meninggalkan perangkat Anda. Lebih sedikit kilobita, LCP lebih baik, halaman lebih cepat — semuanya dengan tampilan visual yang sama persis seperti sebelumnya.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: JpgAWebpLocaleContent = {
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 { JpgAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'convertitore-jpg-in-webp';
6
+ const title = 'Converti JPG in WebP Online e Gratis';
7
+ const description =
8
+ 'Converti immagini JPG in WebP nel tuo browser. Compressione superiore senza perdita visibile. Nessun caricamento di file. Gratuito, illimitato e privato.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Trascina i file JPG...',
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: JpgAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'Perché convertire le foto JPG in WebP?',
24
+ answer:
25
+ 'WebP consente una compressione significativamente migliore dei tradizionali file JPG senza che l\'occhio umano noti la differenza, garantendo siti web più veloci e moderni.',
26
+ },
27
+ {
28
+ question: 'Devo pagare per ogni immagine?',
29
+ answer:
30
+ 'No, lo strumento è gratuito e tutto viene elaborato direttamente sul tuo computer. È illimitato sia per uso domestico che professionale.',
31
+ },
32
+ {
33
+ question: 'La conversione è sicura?',
34
+ answer:
35
+ 'Sì, assolutamente. Tutta l\'elaborazione avviene nell\'HTML5 Canvas del tuo browser locale senza inviare dati a server esterni.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Inserisci le tue foto JPG',
42
+ text: 'Rilascia i tuoi file JPG o trascinali direttamente nell\'area superiore. Il rilevamento è istantaneo.',
43
+ },
44
+ {
45
+ name: 'Elaborazione in WebP',
46
+ text: 'Il motore di rendering locale convertirà ogni file immagine in un WebP ultra-ottimizzato pronto per il web.',
47
+ },
48
+ {
49
+ name: 'Scarica i risultati',
50
+ text: 'Salva ogni WebP individualmente o scarica lo ZIP con tutti i file convertiti.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Studio sulla compressione Google WebP',
57
+ url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
+ },
59
+ {
60
+ name: 'Web.dev: Fornisci immagini in formati moderni',
61
+ url: 'https://web.dev/uses-webp-images/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Convertitore da JPG a WebP: Velocizza il tuo sito con il formato moderno di Google',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Il formato <strong>JPG</strong> ha dominato la fotografia digitale per decenni: universalmente compatibile e ampiamente supportato. Ma Google ha progettato <strong>WebP</strong> per battere il JPG sul suo stesso terreno: stessa qualità visiva con dimensioni del file ridotte del 25-35%. Per gli sviluppatori e i team di marketing che lottano contro i caricamenti lenti delle pagine, convertire JPG in WebP è la singola ottimizzazione a più alto rendimento che si possa applicare senza toccare il design.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG o WebP? Quando utilizzare ciascun formato',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Il <strong>JPG</strong> rimane la scelta giusta quando serve una compatibilità universale: e-mail ai clienti, documenti Word, piattaforme di social media legacy o sistemi CMS che non accettano ancora WebP. Il suo ecosistema trentennale garantisce che qualsiasi schermo, stampante o visualizzatore lo aprirà senza problemi. Il limite principale è la dimensione: un JPG header da 1,5 MB può penalizzare il punteggio LCP della tua pagina e non superare le soglie dei Core Web Vitals.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '<strong>WebP</strong> è la scelta intelligente per tutti i contenuti del tuo sito web. Chrome, Firefox, Safari ed Edge lo supportano nativamente da anni. Le immagini dei prodotti nell\'e-commerce, i banner dei blog, le miniature dei video e qualsiasi foto pubblicata online ne beneficiano direttamente: pagine più leggere, migliori punteggi di Google PageSpeed Insights e un\'esperienza utente più fluida, specialmente su connessioni mobili lente.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Confronto: Conversione Locale vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Convertitori Cloud',
98
+ description: 'Strumenti che caricano i tuoi file su un server remoto.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Latenza di rete durante il caricamento e il download',
103
+ 'Le tue foto vengono memorizzate su server di terze parti',
104
+ 'Limiti di dimensione dei file e tetti di conversione giornalieri',
105
+ 'Annunci intrusivi e tracker di terze parti',
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
+ 'Velocità istantanea — latenza di rete zero',
115
+ 'Privacy completa — 0 byte inviati esternamente',
116
+ 'Nessun limite di MB o restrizioni sul numero di file',
117
+ 'Interfaccia pulita, senza pubblicità o tracciamento',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Come funziona tecnicamente',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Quando trascini un JPG nello strumento, il browser crea un <strong>oggetto Blob</strong> che risiede solo nella tua RAM. Quel Blob viene decodificato e disegnato su un elemento <strong>HTML5 Canvas</strong> invisibile. Poiché il JPG non ha un canale alfa, la conversione in WebP è diretta: il motore esporta il canvas chiamando <code>toDataURL(\'image/webp\')</code>, generando un flusso di byte che il tuo sistema operativo scarica istantaneamente — senza coinvolgere alcun server.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'L\'algoritmo di compressione WebP combina tecniche di predizione a blocchi (simili a quelle di VP8, il codec video di Google) con trasformazioni di colore e codifica aritmetica. Il risultato è un file che contiene le stesse informazioni percettive del JPG originale ma impacchettate in modo molto più efficiente, il che significa meno kilobyte trasferiti ad ogni visita della pagina.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Suggerimento Core Web Vitals: LCP e peso dell\'immagine',
138
+ html: 'Il <strong>Largest Contentful Paint (LCP)</strong> è la metrica di Google che misura quanto tempo occorre per caricare l\'elemento visivo più grande della tua pagina. Un JPG header da 1,5 MB può diventare un WebP di soli 900 KB — o addirittura 600 KB — senza differenze visive evidenti. Quel <strong>risparmio del 25-35%</strong> può spostare il tuo LCP da "Necessita miglioramento" a "Buono" e spingerti in alto nelle classifiche di ricerca.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casi d\'uso e compatibilità',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Immagini prodotto su negozi WooCommerce o Shopify: meno peso, più conversioni.',
150
+ 'Fotografia per blog e articoli: miglior punteggio PageSpeed senza riprogettare nulla.',
151
+ 'Banner web e creatività pubblicitarie display: file più leggeri con la stessa nitidezza.',
152
+ 'Gallerie di portfolio per studi di architettura, fotografia o design.',
153
+ 'Miniature video su siti di streaming o piattaforme di corsi online.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusione',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Convertire i tuoi JPG in WebP è oggi una delle ottimizzazioni più semplici ed efficaci che si possano applicare a qualsiasi sito web. Con questo strumento lo fai in pochi secondi, gratuitamente e senza che le tue immagini lascino mai il tuo dispositivo. Meno kilobyte, miglior LCP, pagine più veloci — tutto con l\'esatto aspetto visivo che avevi già.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: JpgAWebpLocaleContent = {
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 { JpgAWebpLocaleContent } from '../index';
4
+
5
+ const slug = 'jpg-to-webp-converter';
6
+ const title = 'JPGをWebPにオンラインで無料で変換しましょう';
7
+ const description =
8
+ 'ブラウザでJPG画像をWebPに変換します。目に見える劣化のない優れた圧縮率。ファイルのアップロード不要。無料、無制限、かつプライベート。';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'JPGファイルをドラッグ...',
12
+ convertText: '即座にWebPに変換します',
13
+ selectFiles: 'ファイルを選択',
14
+ processedFiles: '処理済みファイル',
15
+ downloadAll: 'すべてダウンロード (.zip)',
16
+ pending: '保留中',
17
+ bibliographyTitle: '参考文献',
18
+ faqTitle: 'よくある質問',
19
+ };
20
+
21
+ const faq: JpgAWebpLocaleContent['faq'] = [
22
+ {
23
+ question: 'なぜJPG写真をWebPに変換する必要があるのですか?',
24
+ answer:
25
+ 'WebPは、人間の目に違いを感じさせずに従来のJPGファイルよりも大幅に優れた圧縮を可能にし、その結果、より高速でモダンなウェブサイトを実現します。',
26
+ },
27
+ {
28
+ question: '画像ごとに料金を支払う必要がありますか?',
29
+ answer:
30
+ 'いいえ、このツールは無料であり、すべての処理はコンピューター上で直接行われます。家庭用またはプロ用として無制限に使用できます。',
31
+ },
32
+ {
33
+ question: '変換は安全ですか?',
34
+ answer:
35
+ 'はい、完全に安全です。すべての処理は、外部サーバーにデータを送信することなく、ローカルブラウザのHTML5 Canvas内で行われます。',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAWebpLocaleContent['howTo'] = [
40
+ {
41
+ name: 'JPG写真を挿入',
42
+ text: 'JPGファイルをドロップするか、上部のエリアに直接ドラッグしてください。即座に検出されます。',
43
+ },
44
+ {
45
+ name: 'WebP変換処理',
46
+ text: 'ローカルレンダリングエンジンが、各画像ファイルをウェブに最適化された超軽量なWebPに変換します。',
47
+ },
48
+ {
49
+ name: '結果をダウンロード',
50
+ text: '各WebPを個別に保存するか、変換されたすべてのファイルを含むZIPファイルをダウンロードしてください。',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAWebpLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Google WebP圧縮研究',
57
+ url: 'https://developers.google.com/speed/webp/docs/webp_study',
58
+ },
59
+ {
60
+ name: 'Web.dev: 現代的な形式で画像を提供する',
61
+ url: 'https://web.dev/uses-webp-images/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAWebpLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'JPG to WebP 変換機:Googleの最新形式でサイトを高速化',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: '<strong>JPG</strong>形式は数十年にわたりデジタル写真を支配してきました。普遍的な互換性と幅広いサポートを誇ります。しかしGoogleは、同等の視覚品質を維持しながらファイルサイズを25〜35%削減することで、JPGを凌駕する <strong>WebP</strong> を設計しました。遅いページ読み込みに苦しむ開発者やマーケティングチームにとって、JPGをWebPに変換することは、デザインを修正することなく適用できる最も投資対効果の高い最適化です。',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPGとWebPの使い分け',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '顧客へのメール、Word文書、古いソーシャルメディアプラットフォーム、あるいはまだWebPをサポートしていないCMSシステムなど、普遍的な互換性が必要な場合には、依然として <strong>JPG</strong> が正しい選択です。30年にわたり構築されたエコシステムにより、あらゆる画面、プリンター、またはビューアーで問題なく開くことが保証されています。主な欠点はサイズです。1.5MBのヘッダーJPGはページのLCPスコアを下げ、Core Web Vitalsのしきい値を下回る原因となります。',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'ウェブサイト上のすべてのコンテンツには <strong>WebP</strong> がスマートな選択です。Chrome、Firefox、Safari、およびEdgeはすでに数年前からネイティブにサポートしています。ECサイトの商品画像、ブログのバナー、動画のサムネイル、およびオンラインで公開されるあらゆる写真は、ページの軽量化、Google PageSpeed Insightsスコアの向上、およびモバイル環境でのスムーズなユーザーエクスペリエンスなど、直接的な恩恵を受けることができます。',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: '比較:ローカル変換 vs クラウド変換',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'クラウド変換器',
98
+ description: 'リモートサーバーにファイルをアップロードするツールです。',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'アップロードおよびダウンロード時にネットワーク遅延が発生',
103
+ '写真がサードパーティのサーバーに保存される',
104
+ 'ファイルサイズ制限や1日の変換回数制限がある',
105
+ '強制的な広告やサードパーティのトラッカーが含まれる',
106
+ ],
107
+ },
108
+ {
109
+ title: 'ローカルアーキテクチャ',
110
+ description: 'Vanilla JS技術を使用し、ユーザーのハードウェア上で直接処理します。',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'ネットワーク遅延のない即座の処理速度',
115
+ '完全なプライバシー — 外部送信データ0バイト',
116
+ '容量制限やファイル数の制限なし',
117
+ '広告や追跡のないクリーンなインターフェース',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: '技術的な仕組み',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'JPGファイルをツールにドラッグすると、ブラウザはRAMにのみ存在する <strong>Blobオブジェクト</strong> を作成します。そのBlobはデコードされ、非表示の <strong>HTML5 Canvas</strong> 要素に描画されます。JPGにはアルファチャネルがないため、WebPへの変換は直接行われます。エンジンは <code>toDataURL(\'image/webp\')</code> を呼び出してキャンバスをエクスポートし、サーバーを介さずOSが即座にダウンロードするバイトストリームを生成します。',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'WebP圧縮アルゴリズムは、ブロック予測技術(Googleの動画コーデックであるVP8と同様)を色変換や算術符号化と組み合わせています。その結果、元のJPGと同じ知覚情報を保持しながら、はるかに効率的にパッケージ化されたファイルが作成されます。これは、ページ訪問ごとに転送されるキロバイト数が削減されることを意味します。',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Core Web Vitals ヒント:LCPと画像の重さ',
138
+ html: '<strong>Largest Contentful Paint (LCP)</strong> は、ページで最も大きな視覚要素をロードするのにかかる時間を測定するGoogleの指標です。1.5MBのヘッダーJPGを、視覚的な差を出すことなくわずか900KBまたは600KBのWebPにすることができます。この <strong>25〜35%の削減</strong> により、LCPを「改善が必要」から「良好」に移動させ、検索順位を上げることができます。',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: '活用事例と互換性',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'WooCommerceやShopify店舗の商品画像:軽量化によるコンバージョン率向上。',
150
+ 'ブログや記事の写真:デザイン変更なしでPageSpeedスコアを改善。',
151
+ 'ウェブバナーや広告クリエイティブ:鮮明さを維持したままファイル容量を削減。',
152
+ '建築、写真、またはデザインスタジオのポートフォリオギャラリー。',
153
+ '動画配信サイトやオンライン講座プラットフォームの動画サムネイル。',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: '結論',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'JPGをWebPに変換することは、現在ウェブサイトに適用できる最もシンプルで費用対効果の高い最適化の一つです。このツールを使用すれば、画像がデバイスを離れることなく、数秒で無料で変換できます。より少ないキロバイト、より良いLCP、より速い読み込み速度。これらすべてを、以前と全く同じ見た目で実現できます。',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: JpgAWebpLocaleContent = {
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
+ };