@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 { 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
+ };
@@ -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는 이미 수년 전부터 이를 기본적으로 지원하고 있습니다. 전자상거래의 제품 이미지, 블로그 배너, 비디오 썸네일 및 온라인에 게시된 모든 사진은 페이지 무게 감소, 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
+ '파일 크기 제한 및 일일 변환 횟수 제한',
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>을 호출하여 캔버스를 내보내고, 서버를 통하지 않고 운영 체제가 즉시 다운로드하는 바이트 스트림을 생성합니다.',
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: 'ko', faq, howTo }),
178
+ };