@jjlmoya/utils-converters 1.16.0 → 1.19.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 (394) hide show
  1. package/package.json +5 -3
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/fr.ts +9 -9
  4. package/src/category/i18n/ru.ts +1 -1
  5. package/src/category/i18n/sv.ts +1 -1
  6. package/src/data.ts +0 -21
  7. package/src/layouts/PreviewLayout.astro +2 -1
  8. package/src/pages/[locale]/[slug].astro +28 -12
  9. package/src/tests/diacritics_density.test.ts +118 -0
  10. package/src/tests/inverted_punctuation.test.ts +84 -0
  11. package/src/tests/no_en_dash.test.ts +70 -0
  12. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  13. package/src/tests/script_density.test.ts +94 -0
  14. package/src/tests/seo_parity.test.ts +60 -0
  15. package/src/tests/shared-test-helpers.ts +56 -0
  16. package/src/tests/tool_exports.test.ts +34 -0
  17. package/src/tool/avifAJpg/bibliography.ts +12 -0
  18. package/src/tool/avifAJpg/entry.ts +2 -0
  19. package/src/tool/avifAJpg/i18n/de.ts +2 -12
  20. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  21. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  22. package/src/tool/avifAJpg/i18n/fr.ts +11 -21
  23. package/src/tool/avifAJpg/i18n/id.ts +2 -12
  24. package/src/tool/avifAJpg/i18n/it.ts +2 -12
  25. package/src/tool/avifAJpg/i18n/ja.ts +1 -11
  26. package/src/tool/avifAJpg/i18n/ko.ts +1 -11
  27. package/src/tool/avifAJpg/i18n/nl.ts +2 -12
  28. package/src/tool/avifAJpg/i18n/pl.ts +2 -12
  29. package/src/tool/avifAJpg/i18n/pt.ts +2 -12
  30. package/src/tool/avifAJpg/i18n/ru.ts +7 -17
  31. package/src/tool/avifAJpg/i18n/sv.ts +2 -12
  32. package/src/tool/avifAJpg/i18n/tr.ts +1 -11
  33. package/src/tool/avifAJpg/i18n/zh.ts +4 -14
  34. package/src/tool/avifAJpg/seo.astro +2 -1
  35. package/src/tool/avifAPng/bibliography.ts +12 -0
  36. package/src/tool/avifAPng/entry.ts +2 -0
  37. package/src/tool/avifAPng/i18n/de.ts +4 -14
  38. package/src/tool/avifAPng/i18n/en.ts +4 -14
  39. package/src/tool/avifAPng/i18n/es.ts +4 -14
  40. package/src/tool/avifAPng/i18n/fr.ts +10 -20
  41. package/src/tool/avifAPng/i18n/id.ts +4 -14
  42. package/src/tool/avifAPng/i18n/it.ts +1 -11
  43. package/src/tool/avifAPng/i18n/ja.ts +1 -11
  44. package/src/tool/avifAPng/i18n/ko.ts +1 -11
  45. package/src/tool/avifAPng/i18n/nl.ts +4 -14
  46. package/src/tool/avifAPng/i18n/pl.ts +4 -14
  47. package/src/tool/avifAPng/i18n/pt.ts +4 -14
  48. package/src/tool/avifAPng/i18n/ru.ts +5 -15
  49. package/src/tool/avifAPng/i18n/sv.ts +4 -14
  50. package/src/tool/avifAPng/i18n/tr.ts +1 -11
  51. package/src/tool/avifAPng/i18n/zh.ts +3 -13
  52. package/src/tool/avifAPng/seo.astro +2 -1
  53. package/src/tool/avifAWebp/bibliography.ts +12 -0
  54. package/src/tool/avifAWebp/entry.ts +2 -0
  55. package/src/tool/avifAWebp/i18n/de.ts +6 -16
  56. package/src/tool/avifAWebp/i18n/en.ts +6 -16
  57. package/src/tool/avifAWebp/i18n/es.ts +6 -16
  58. package/src/tool/avifAWebp/i18n/fr.ts +13 -23
  59. package/src/tool/avifAWebp/i18n/id.ts +6 -16
  60. package/src/tool/avifAWebp/i18n/it.ts +1 -11
  61. package/src/tool/avifAWebp/i18n/ja.ts +1 -11
  62. package/src/tool/avifAWebp/i18n/ko.ts +2 -12
  63. package/src/tool/avifAWebp/i18n/nl.ts +6 -16
  64. package/src/tool/avifAWebp/i18n/pl.ts +6 -16
  65. package/src/tool/avifAWebp/i18n/pt.ts +6 -16
  66. package/src/tool/avifAWebp/i18n/ru.ts +7 -17
  67. package/src/tool/avifAWebp/i18n/sv.ts +6 -16
  68. package/src/tool/avifAWebp/i18n/tr.ts +2 -12
  69. package/src/tool/avifAWebp/i18n/zh.ts +6 -16
  70. package/src/tool/avifAWebp/seo.astro +2 -1
  71. package/src/tool/bmpAJpg/bibliography.ts +12 -0
  72. package/src/tool/bmpAJpg/entry.ts +2 -0
  73. package/src/tool/bmpAJpg/i18n/de.ts +1 -11
  74. package/src/tool/bmpAJpg/i18n/en.ts +1 -11
  75. package/src/tool/bmpAJpg/i18n/es.ts +1 -11
  76. package/src/tool/bmpAJpg/i18n/fr.ts +9 -19
  77. package/src/tool/bmpAJpg/i18n/id.ts +1 -11
  78. package/src/tool/bmpAJpg/i18n/it.ts +1 -11
  79. package/src/tool/bmpAJpg/i18n/ja.ts +1 -11
  80. package/src/tool/bmpAJpg/i18n/ko.ts +1 -11
  81. package/src/tool/bmpAJpg/i18n/nl.ts +1 -11
  82. package/src/tool/bmpAJpg/i18n/pl.ts +1 -11
  83. package/src/tool/bmpAJpg/i18n/pt.ts +1 -11
  84. package/src/tool/bmpAJpg/i18n/ru.ts +5 -15
  85. package/src/tool/bmpAJpg/i18n/sv.ts +1 -11
  86. package/src/tool/bmpAJpg/i18n/tr.ts +1 -11
  87. package/src/tool/bmpAJpg/i18n/zh.ts +1 -11
  88. package/src/tool/bmpAJpg/seo.astro +2 -1
  89. package/src/tool/bmpAPng/bibliography.ts +12 -0
  90. package/src/tool/bmpAPng/entry.ts +2 -0
  91. package/src/tool/bmpAPng/i18n/de.ts +2 -12
  92. package/src/tool/bmpAPng/i18n/en.ts +3 -13
  93. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  94. package/src/tool/bmpAPng/i18n/fr.ts +12 -22
  95. package/src/tool/bmpAPng/i18n/id.ts +2 -12
  96. package/src/tool/bmpAPng/i18n/it.ts +2 -12
  97. package/src/tool/bmpAPng/i18n/ja.ts +1 -11
  98. package/src/tool/bmpAPng/i18n/ko.ts +1 -11
  99. package/src/tool/bmpAPng/i18n/nl.ts +2 -12
  100. package/src/tool/bmpAPng/i18n/pl.ts +2 -12
  101. package/src/tool/bmpAPng/i18n/pt.ts +2 -12
  102. package/src/tool/bmpAPng/i18n/ru.ts +9 -19
  103. package/src/tool/bmpAPng/i18n/sv.ts +2 -12
  104. package/src/tool/bmpAPng/i18n/tr.ts +1 -11
  105. package/src/tool/bmpAPng/i18n/zh.ts +1 -11
  106. package/src/tool/bmpAPng/seo.astro +2 -1
  107. package/src/tool/bmpAWebp/bibliography.ts +12 -0
  108. package/src/tool/bmpAWebp/entry.ts +2 -0
  109. package/src/tool/bmpAWebp/i18n/de.ts +8 -18
  110. package/src/tool/bmpAWebp/i18n/en.ts +8 -18
  111. package/src/tool/bmpAWebp/i18n/es.ts +8 -18
  112. package/src/tool/bmpAWebp/i18n/fr.ts +13 -23
  113. package/src/tool/bmpAWebp/i18n/id.ts +8 -18
  114. package/src/tool/bmpAWebp/i18n/it.ts +8 -18
  115. package/src/tool/bmpAWebp/i18n/ja.ts +7 -17
  116. package/src/tool/bmpAWebp/i18n/ko.ts +7 -17
  117. package/src/tool/bmpAWebp/i18n/nl.ts +8 -18
  118. package/src/tool/bmpAWebp/i18n/pl.ts +8 -18
  119. package/src/tool/bmpAWebp/i18n/pt.ts +8 -18
  120. package/src/tool/bmpAWebp/i18n/ru.ts +10 -20
  121. package/src/tool/bmpAWebp/i18n/sv.ts +8 -18
  122. package/src/tool/bmpAWebp/i18n/tr.ts +8 -18
  123. package/src/tool/bmpAWebp/i18n/zh.ts +8 -18
  124. package/src/tool/bmpAWebp/seo.astro +2 -1
  125. package/src/tool/gifAJpg/bibliography.ts +12 -0
  126. package/src/tool/gifAJpg/entry.ts +2 -0
  127. package/src/tool/gifAJpg/i18n/de.ts +1 -11
  128. package/src/tool/gifAJpg/i18n/en.ts +1 -11
  129. package/src/tool/gifAJpg/i18n/es.ts +1 -11
  130. package/src/tool/gifAJpg/i18n/fr.ts +9 -19
  131. package/src/tool/gifAJpg/i18n/id.ts +1 -11
  132. package/src/tool/gifAJpg/i18n/it.ts +1 -11
  133. package/src/tool/gifAJpg/i18n/ja.ts +1 -11
  134. package/src/tool/gifAJpg/i18n/ko.ts +1 -11
  135. package/src/tool/gifAJpg/i18n/nl.ts +1 -11
  136. package/src/tool/gifAJpg/i18n/pl.ts +1 -11
  137. package/src/tool/gifAJpg/i18n/pt.ts +1 -11
  138. package/src/tool/gifAJpg/i18n/ru.ts +2 -12
  139. package/src/tool/gifAJpg/i18n/sv.ts +1 -11
  140. package/src/tool/gifAJpg/i18n/tr.ts +1 -11
  141. package/src/tool/gifAJpg/i18n/zh.ts +1 -11
  142. package/src/tool/gifAJpg/seo.astro +2 -1
  143. package/src/tool/gifAPng/bibliography.ts +12 -0
  144. package/src/tool/gifAPng/entry.ts +2 -0
  145. package/src/tool/gifAPng/i18n/de.ts +2 -12
  146. package/src/tool/gifAPng/i18n/en.ts +3 -13
  147. package/src/tool/gifAPng/i18n/es.ts +2 -12
  148. package/src/tool/gifAPng/i18n/fr.ts +11 -21
  149. package/src/tool/gifAPng/i18n/id.ts +2 -12
  150. package/src/tool/gifAPng/i18n/it.ts +2 -12
  151. package/src/tool/gifAPng/i18n/ja.ts +1 -11
  152. package/src/tool/gifAPng/i18n/ko.ts +1 -11
  153. package/src/tool/gifAPng/i18n/nl.ts +2 -12
  154. package/src/tool/gifAPng/i18n/pl.ts +3 -13
  155. package/src/tool/gifAPng/i18n/pt.ts +2 -12
  156. package/src/tool/gifAPng/i18n/ru.ts +3 -13
  157. package/src/tool/gifAPng/i18n/sv.ts +3 -13
  158. package/src/tool/gifAPng/i18n/tr.ts +1 -11
  159. package/src/tool/gifAPng/i18n/zh.ts +2 -12
  160. package/src/tool/gifAPng/seo.astro +2 -1
  161. package/src/tool/gifAWebp/bibliography.ts +12 -0
  162. package/src/tool/gifAWebp/entry.ts +2 -0
  163. package/src/tool/gifAWebp/i18n/de.ts +3 -13
  164. package/src/tool/gifAWebp/i18n/en.ts +3 -13
  165. package/src/tool/gifAWebp/i18n/es.ts +1 -11
  166. package/src/tool/gifAWebp/i18n/fr.ts +11 -21
  167. package/src/tool/gifAWebp/i18n/id.ts +3 -13
  168. package/src/tool/gifAWebp/i18n/it.ts +1 -11
  169. package/src/tool/gifAWebp/i18n/ja.ts +1 -11
  170. package/src/tool/gifAWebp/i18n/ko.ts +1 -11
  171. package/src/tool/gifAWebp/i18n/nl.ts +3 -13
  172. package/src/tool/gifAWebp/i18n/pl.ts +3 -13
  173. package/src/tool/gifAWebp/i18n/pt.ts +3 -13
  174. package/src/tool/gifAWebp/i18n/ru.ts +7 -17
  175. package/src/tool/gifAWebp/i18n/sv.ts +3 -13
  176. package/src/tool/gifAWebp/i18n/tr.ts +1 -11
  177. package/src/tool/gifAWebp/i18n/zh.ts +4 -14
  178. package/src/tool/gifAWebp/seo.astro +2 -1
  179. package/src/tool/imagenBase64/bibliography.ts +12 -0
  180. package/src/tool/imagenBase64/entry.ts +2 -0
  181. package/src/tool/imagenBase64/i18n/de.ts +7 -17
  182. package/src/tool/imagenBase64/i18n/en.ts +7 -17
  183. package/src/tool/imagenBase64/i18n/es.ts +7 -17
  184. package/src/tool/imagenBase64/i18n/fr.ts +17 -27
  185. package/src/tool/imagenBase64/i18n/id.ts +7 -17
  186. package/src/tool/imagenBase64/i18n/it.ts +6 -16
  187. package/src/tool/imagenBase64/i18n/ja.ts +1 -11
  188. package/src/tool/imagenBase64/i18n/ko.ts +1 -11
  189. package/src/tool/imagenBase64/i18n/nl.ts +7 -17
  190. package/src/tool/imagenBase64/i18n/pl.ts +7 -17
  191. package/src/tool/imagenBase64/i18n/pt.ts +7 -17
  192. package/src/tool/imagenBase64/i18n/ru.ts +9 -19
  193. package/src/tool/imagenBase64/i18n/sv.ts +7 -17
  194. package/src/tool/imagenBase64/i18n/tr.ts +2 -12
  195. package/src/tool/imagenBase64/i18n/zh.ts +7 -17
  196. package/src/tool/imagenBase64/seo.astro +2 -1
  197. package/src/tool/jpgAIco/bibliography.ts +12 -0
  198. package/src/tool/jpgAIco/entry.ts +2 -0
  199. package/src/tool/jpgAIco/i18n/de.ts +9 -19
  200. package/src/tool/jpgAIco/i18n/en.ts +9 -19
  201. package/src/tool/jpgAIco/i18n/es.ts +7 -17
  202. package/src/tool/jpgAIco/i18n/fr.ts +13 -23
  203. package/src/tool/jpgAIco/i18n/id.ts +9 -19
  204. package/src/tool/jpgAIco/i18n/it.ts +3 -13
  205. package/src/tool/jpgAIco/i18n/ja.ts +2 -12
  206. package/src/tool/jpgAIco/i18n/ko.ts +2 -12
  207. package/src/tool/jpgAIco/i18n/nl.ts +9 -19
  208. package/src/tool/jpgAIco/i18n/pl.ts +9 -19
  209. package/src/tool/jpgAIco/i18n/pt.ts +9 -19
  210. package/src/tool/jpgAIco/i18n/ru.ts +11 -21
  211. package/src/tool/jpgAIco/i18n/sv.ts +9 -19
  212. package/src/tool/jpgAIco/i18n/tr.ts +3 -13
  213. package/src/tool/jpgAIco/i18n/zh.ts +9 -19
  214. package/src/tool/jpgAIco/seo.astro +2 -1
  215. package/src/tool/jpgAPng/bibliography.ts +12 -0
  216. package/src/tool/jpgAPng/entry.ts +2 -0
  217. package/src/tool/jpgAPng/i18n/de.ts +7 -17
  218. package/src/tool/jpgAPng/i18n/en.ts +9 -19
  219. package/src/tool/jpgAPng/i18n/es.ts +7 -17
  220. package/src/tool/jpgAPng/i18n/fr.ts +13 -23
  221. package/src/tool/jpgAPng/i18n/id.ts +7 -17
  222. package/src/tool/jpgAPng/i18n/it.ts +5 -15
  223. package/src/tool/jpgAPng/i18n/ja.ts +3 -13
  224. package/src/tool/jpgAPng/i18n/ko.ts +3 -13
  225. package/src/tool/jpgAPng/i18n/nl.ts +7 -17
  226. package/src/tool/jpgAPng/i18n/pl.ts +7 -17
  227. package/src/tool/jpgAPng/i18n/pt.ts +7 -17
  228. package/src/tool/jpgAPng/i18n/ru.ts +10 -20
  229. package/src/tool/jpgAPng/i18n/sv.ts +7 -17
  230. package/src/tool/jpgAPng/i18n/tr.ts +6 -16
  231. package/src/tool/jpgAPng/i18n/zh.ts +8 -18
  232. package/src/tool/jpgAPng/seo.astro +2 -1
  233. package/src/tool/jpgAWebp/bibliography.ts +12 -0
  234. package/src/tool/jpgAWebp/entry.ts +2 -0
  235. package/src/tool/jpgAWebp/i18n/de.ts +10 -20
  236. package/src/tool/jpgAWebp/i18n/en.ts +10 -20
  237. package/src/tool/jpgAWebp/i18n/es.ts +4 -14
  238. package/src/tool/jpgAWebp/i18n/fr.ts +16 -26
  239. package/src/tool/jpgAWebp/i18n/id.ts +10 -20
  240. package/src/tool/jpgAWebp/i18n/it.ts +6 -16
  241. package/src/tool/jpgAWebp/i18n/ja.ts +2 -12
  242. package/src/tool/jpgAWebp/i18n/ko.ts +3 -13
  243. package/src/tool/jpgAWebp/i18n/nl.ts +10 -20
  244. package/src/tool/jpgAWebp/i18n/pl.ts +10 -20
  245. package/src/tool/jpgAWebp/i18n/pt.ts +10 -20
  246. package/src/tool/jpgAWebp/i18n/ru.ts +10 -20
  247. package/src/tool/jpgAWebp/i18n/sv.ts +10 -20
  248. package/src/tool/jpgAWebp/i18n/tr.ts +5 -15
  249. package/src/tool/jpgAWebp/i18n/zh.ts +9 -19
  250. package/src/tool/jpgAWebp/seo.astro +2 -1
  251. package/src/tool/pngAIco/bibliography.ts +12 -0
  252. package/src/tool/pngAIco/entry.ts +2 -0
  253. package/src/tool/pngAIco/i18n/de.ts +8 -18
  254. package/src/tool/pngAIco/i18n/en.ts +8 -18
  255. package/src/tool/pngAIco/i18n/es.ts +8 -18
  256. package/src/tool/pngAIco/i18n/fr.ts +14 -24
  257. package/src/tool/pngAIco/i18n/id.ts +8 -18
  258. package/src/tool/pngAIco/i18n/it.ts +4 -14
  259. package/src/tool/pngAIco/i18n/ja.ts +2 -12
  260. package/src/tool/pngAIco/i18n/ko.ts +2 -12
  261. package/src/tool/pngAIco/i18n/nl.ts +8 -18
  262. package/src/tool/pngAIco/i18n/pl.ts +8 -18
  263. package/src/tool/pngAIco/i18n/pt.ts +8 -18
  264. package/src/tool/pngAIco/i18n/ru.ts +11 -21
  265. package/src/tool/pngAIco/i18n/sv.ts +8 -18
  266. package/src/tool/pngAIco/i18n/tr.ts +7 -17
  267. package/src/tool/pngAIco/i18n/zh.ts +8 -18
  268. package/src/tool/pngAIco/seo.astro +2 -1
  269. package/src/tool/pngAJpg/bibliography.ts +12 -0
  270. package/src/tool/pngAJpg/entry.ts +2 -0
  271. package/src/tool/pngAJpg/i18n/de.ts +41 -51
  272. package/src/tool/pngAJpg/i18n/en.ts +98 -41
  273. package/src/tool/pngAJpg/i18n/es.ts +1 -11
  274. package/src/tool/pngAJpg/i18n/fr.ts +93 -30
  275. package/src/tool/pngAJpg/i18n/id.ts +41 -51
  276. package/src/tool/pngAJpg/i18n/it.ts +41 -51
  277. package/src/tool/pngAJpg/i18n/ja.ts +81 -95
  278. package/src/tool/pngAJpg/i18n/ko.ts +81 -95
  279. package/src/tool/pngAJpg/i18n/nl.ts +41 -51
  280. package/src/tool/pngAJpg/i18n/pl.ts +43 -53
  281. package/src/tool/pngAJpg/i18n/pt.ts +41 -51
  282. package/src/tool/pngAJpg/i18n/ru.ts +83 -97
  283. package/src/tool/pngAJpg/i18n/sv.ts +41 -51
  284. package/src/tool/pngAJpg/i18n/tr.ts +41 -51
  285. package/src/tool/pngAJpg/i18n/zh.ts +83 -97
  286. package/src/tool/pngAJpg/seo.astro +2 -1
  287. package/src/tool/pngAWebp/bibliography.ts +16 -0
  288. package/src/tool/pngAWebp/entry.ts +2 -0
  289. package/src/tool/pngAWebp/i18n/de.ts +7 -21
  290. package/src/tool/pngAWebp/i18n/en.ts +7 -21
  291. package/src/tool/pngAWebp/i18n/es.ts +6 -20
  292. package/src/tool/pngAWebp/i18n/fr.ts +13 -27
  293. package/src/tool/pngAWebp/i18n/id.ts +7 -21
  294. package/src/tool/pngAWebp/i18n/it.ts +3 -17
  295. package/src/tool/pngAWebp/i18n/ja.ts +2 -16
  296. package/src/tool/pngAWebp/i18n/ko.ts +2 -16
  297. package/src/tool/pngAWebp/i18n/nl.ts +7 -21
  298. package/src/tool/pngAWebp/i18n/pl.ts +7 -21
  299. package/src/tool/pngAWebp/i18n/pt.ts +6 -20
  300. package/src/tool/pngAWebp/i18n/ru.ts +8 -22
  301. package/src/tool/pngAWebp/i18n/sv.ts +7 -21
  302. package/src/tool/pngAWebp/i18n/tr.ts +6 -20
  303. package/src/tool/pngAWebp/i18n/zh.ts +6 -20
  304. package/src/tool/pngAWebp/seo.astro +2 -1
  305. package/src/tool/svgAJpg/bibliography.ts +12 -0
  306. package/src/tool/svgAJpg/entry.ts +2 -0
  307. package/src/tool/svgAJpg/i18n/de.ts +2 -12
  308. package/src/tool/svgAJpg/i18n/en.ts +1 -11
  309. package/src/tool/svgAJpg/i18n/es.ts +1 -11
  310. package/src/tool/svgAJpg/i18n/fr.ts +6 -16
  311. package/src/tool/svgAJpg/i18n/id.ts +1 -11
  312. package/src/tool/svgAJpg/i18n/it.ts +1 -11
  313. package/src/tool/svgAJpg/i18n/ja.ts +1 -11
  314. package/src/tool/svgAJpg/i18n/ko.ts +1 -11
  315. package/src/tool/svgAJpg/i18n/nl.ts +1 -11
  316. package/src/tool/svgAJpg/i18n/pl.ts +1 -11
  317. package/src/tool/svgAJpg/i18n/pt.ts +1 -11
  318. package/src/tool/svgAJpg/i18n/ru.ts +3 -13
  319. package/src/tool/svgAJpg/i18n/sv.ts +1 -11
  320. package/src/tool/svgAJpg/i18n/tr.ts +1 -11
  321. package/src/tool/svgAJpg/i18n/zh.ts +1 -11
  322. package/src/tool/svgAJpg/seo.astro +2 -1
  323. package/src/tool/svgAPng/bibliography.ts +12 -0
  324. package/src/tool/svgAPng/entry.ts +2 -0
  325. package/src/tool/svgAPng/i18n/de.ts +3 -13
  326. package/src/tool/svgAPng/i18n/en.ts +3 -13
  327. package/src/tool/svgAPng/i18n/es.ts +1 -11
  328. package/src/tool/svgAPng/i18n/fr.ts +9 -19
  329. package/src/tool/svgAPng/i18n/id.ts +3 -13
  330. package/src/tool/svgAPng/i18n/it.ts +3 -13
  331. package/src/tool/svgAPng/i18n/ja.ts +1 -11
  332. package/src/tool/svgAPng/i18n/ko.ts +1 -11
  333. package/src/tool/svgAPng/i18n/nl.ts +3 -13
  334. package/src/tool/svgAPng/i18n/pl.ts +3 -13
  335. package/src/tool/svgAPng/i18n/pt.ts +3 -13
  336. package/src/tool/svgAPng/i18n/ru.ts +5 -15
  337. package/src/tool/svgAPng/i18n/sv.ts +3 -13
  338. package/src/tool/svgAPng/i18n/tr.ts +3 -13
  339. package/src/tool/svgAPng/i18n/zh.ts +3 -13
  340. package/src/tool/svgAPng/seo.astro +2 -1
  341. package/src/tool/webpAIco/bibliography.ts +12 -0
  342. package/src/tool/webpAIco/entry.ts +2 -0
  343. package/src/tool/webpAIco/i18n/de.ts +1 -11
  344. package/src/tool/webpAIco/i18n/en.ts +1 -11
  345. package/src/tool/webpAIco/i18n/es.ts +1 -11
  346. package/src/tool/webpAIco/i18n/fr.ts +5 -15
  347. package/src/tool/webpAIco/i18n/id.ts +1 -11
  348. package/src/tool/webpAIco/i18n/it.ts +1 -11
  349. package/src/tool/webpAIco/i18n/ja.ts +1 -11
  350. package/src/tool/webpAIco/i18n/ko.ts +1 -11
  351. package/src/tool/webpAIco/i18n/nl.ts +1 -11
  352. package/src/tool/webpAIco/i18n/pl.ts +1 -11
  353. package/src/tool/webpAIco/i18n/pt.ts +1 -11
  354. package/src/tool/webpAIco/i18n/ru.ts +3 -13
  355. package/src/tool/webpAIco/i18n/sv.ts +1 -11
  356. package/src/tool/webpAIco/i18n/tr.ts +1 -11
  357. package/src/tool/webpAIco/i18n/zh.ts +1 -12
  358. package/src/tool/webpAIco/seo.astro +2 -1
  359. package/src/tool/webpAJpg/bibliography.ts +16 -0
  360. package/src/tool/webpAJpg/entry.ts +2 -0
  361. package/src/tool/webpAJpg/i18n/de.ts +3 -17
  362. package/src/tool/webpAJpg/i18n/en.ts +3 -17
  363. package/src/tool/webpAJpg/i18n/es.ts +1 -15
  364. package/src/tool/webpAJpg/i18n/fr.ts +10 -24
  365. package/src/tool/webpAJpg/i18n/id.ts +3 -17
  366. package/src/tool/webpAJpg/i18n/it.ts +2 -16
  367. package/src/tool/webpAJpg/i18n/ja.ts +1 -15
  368. package/src/tool/webpAJpg/i18n/ko.ts +1 -15
  369. package/src/tool/webpAJpg/i18n/nl.ts +2 -16
  370. package/src/tool/webpAJpg/i18n/pl.ts +3 -17
  371. package/src/tool/webpAJpg/i18n/pt.ts +3 -17
  372. package/src/tool/webpAJpg/i18n/ru.ts +7 -21
  373. package/src/tool/webpAJpg/i18n/sv.ts +3 -17
  374. package/src/tool/webpAJpg/i18n/tr.ts +2 -16
  375. package/src/tool/webpAJpg/i18n/zh.ts +2 -16
  376. package/src/tool/webpAJpg/seo.astro +2 -1
  377. package/src/tool/webpAPng/bibliography.ts +16 -0
  378. package/src/tool/webpAPng/entry.ts +2 -0
  379. package/src/tool/webpAPng/i18n/de.ts +3 -17
  380. package/src/tool/webpAPng/i18n/en.ts +3 -17
  381. package/src/tool/webpAPng/i18n/es.ts +1 -15
  382. package/src/tool/webpAPng/i18n/fr.ts +9 -23
  383. package/src/tool/webpAPng/i18n/id.ts +3 -17
  384. package/src/tool/webpAPng/i18n/it.ts +3 -17
  385. package/src/tool/webpAPng/i18n/ja.ts +1 -15
  386. package/src/tool/webpAPng/i18n/ko.ts +1 -15
  387. package/src/tool/webpAPng/i18n/nl.ts +3 -17
  388. package/src/tool/webpAPng/i18n/pl.ts +3 -17
  389. package/src/tool/webpAPng/i18n/pt.ts +3 -17
  390. package/src/tool/webpAPng/i18n/ru.ts +4 -18
  391. package/src/tool/webpAPng/i18n/sv.ts +3 -17
  392. package/src/tool/webpAPng/i18n/tr.ts +2 -17
  393. package/src/tool/webpAPng/i18n/zh.ts +3 -17
  394. package/src/tool/webpAPng/seo.astro +2 -1
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -20,24 +21,24 @@ const ui: ImageConverterUI = {
20
21
 
21
22
  const faq: PngAJpgLocaleContent['faq'] = [
22
23
  {
23
- question: 'Perché scegliere il nostro convertitore locale da PNG a JPG?',
24
+ question: '¿Por qué elegir nuestro convertidor local de PNG a JPG?',
24
25
  answer:
25
- 'A differenza degli strumenti convenzionali, la nostra utility elabora i file interamente nel tuo browser. Le tue immagini non toccano mai un disco rigido altrui, garantendo la totale sovranità e privacy dei tuoi dati.',
26
+ 'A diferencia de las herramientas convencionales, nuestra utilidad procesa los archivos íntegramente en tu navegador. Tus imágenes nunca tocan un disco duro ajeno, garantizando la total soberanía y privacidad de tus datos.',
26
27
  },
27
28
  {
28
- question: 'JPG o PNG? Qual è il migliore per il mio caso?',
29
+ question: '¿JPG o PNG? ¿Cuál es mejor para mi caso?',
29
30
  answer:
30
- 'Il PNG è ideale per loghi ed elementi con trasparenza. Tuttavia, il JPG è lo standard di riferimento per fotografie e banner web, poiché raggiunge pesi molto più ridotti, migliorando drasticamente la velocità di caricamento di un sito.',
31
+ 'El PNG es ideal para logotipos y elementos con transparencia. Sin embargo, el JPG es el estándar de oro para fotografías y banners web, ya que logra pesos mucho más reducidos, mejorando drásticamente la velocidad de carga de un sitio.',
31
32
  },
32
33
  {
33
- question: 'Come funziona la conversione tecnica senza caricare nulla?',
34
+ question: '¿Cómo funciona la conversión técnica sin subir nada?',
34
35
  answer:
35
- 'Utilizziamo la potenza dell\'HTML5 Canvas. Il browser ricrea l\'immagine su una tela virtuale invisibile, riempie le trasparenze con il bianco e genera un flusso di byte che scarichi direttamente all\'istante.',
36
+ 'Utilizamos la potencia del Canvas de HTML5. El navegador recrea la imagen en un lienzo virtual invisible, rellena las transparencias con blanco y genera un flujo de bytes que descargas directamente al instante.',
36
37
  },
37
38
  {
38
- question: 'È sicuro per documenti riservati?',
39
+ question: '¿Es seguro para documentos confidenciales?',
39
40
  answer:
40
- 'Sì, è l\'opzione più sicura per professionisti del settore bancario, sanitario o legale. Essendo una "scatola nera" che utilizza solo la tua RAM, ciò che accade all\'interno muore al momento della chiusura della scheda, evitando fughe di dati su cloud di terze parti.',
41
+ 'Sí, es la opción más segura para profesionales de la banca, salud o derecho. Al ser una "caja negra" que solo usa tu RAM, lo que pasa dentro muere al cerrar la pestaña, evitando filtraciones en nubes de terceros.',
41
42
  },
42
43
  ];
43
44
 
@@ -56,124 +57,113 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'Specifiche PNG Consortium',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'Il comitato JPEG',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
73
- text: 'Convertitore da PNG a JPG: La Guida Definitiva per l\'Ottimizzazione delle Immagini',
63
+ text: 'Convertidor de PNG a JPG: La Guía Definitiva para la Optimización de Imágenes',
74
64
  level: 2,
75
65
  },
76
66
  {
77
67
  type: 'paragraph',
78
- html: 'Nel mondo del design digitale e dello sviluppo web, l\'efficienza è tutto. Il formato PNG (Portable Network Graphics) è amato per la sua capacità di mantenere le trasparenze e la sua compressione senza perdita, ma ha un grande nemico: il peso del file. Quando hai bisogno che il tuo sito web voli o che le tue email si carichino istantaneamente, il passaggio da PNG a JPG è la decisione tecnica più intelligente.',
68
+ html: 'En el mundo del diseño digital y el desarrollo web, la eficiencia lo es todo. El formato PNG (Portable Network Graphics) es amado por su capacidad de mantener transparencias y su compresión sin pérdida, pero tiene un gran enemigo: el peso del archivo. Cuando necesitas que tu sitio web vuele o que tus emails carguen instantáneamente, el paso de PNG a JPG es la decisión técnica más inteligente.',
79
69
  },
80
70
  {
81
71
  type: 'title',
82
- text: 'JPG o PNG?',
72
+ text: '¿JPG o PNG?',
83
73
  level: 3,
84
74
  },
85
75
  {
86
76
  type: 'paragraph',
87
- html: 'Non esiste un formato migliore di un altro, ma uno strumento per ogni esigenza. Il PNG è un formato senza perdita, ideale per mockup di interfacce, loghi con testo piccolo ed elementi visivi che richiedono uno sfondo trasparente. Tuttavia, questa fedeltà ha un costo: file che possono essere 5 o 10 volte più pesanti del loro equivalente compresso.',
77
+ html: 'No existe un formato mejor que otro, sino una herramienta para cada necesidad. El PNG es un formato sin pérdida, ideal para maquetas de interfaces, logotipos con texto pequeño y elementos visuales que requieren un fondo transparente. Sin embargo, esta fidelidad tiene un coste: archivos que pueden ser 5 o 10 veces más pesados que su equivalente comprimido.',
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
91
- html: 'Il JPG (Joint Photographic Experts Group), d\'altra parte, utilizza algoritmi di discretizzazione per rimuovere informazioni che l\'occhio umano percepisce a malapena, raggiungendo pesi piuma. È lo standard di riferimento per fotografie, banner pubblicitari e social network. Convertendo i tuoi PNG in JPG, stai scambiando la fedeltà geometrica con la velocità di rete.',
81
+ html: 'El JPG (Joint Photographic Experts Group), por otro lado, utiliza algoritmos de discretización para eliminar información que el ojo humano apenas percibe, logrando pesos pluma. Es el estándar de oro para fotografías, banners publicitarios y redes sociales. Al convertir tus PNG a JPG, estás traduciendo fidelidad geométrica por velocidad de red.',
92
82
  },
93
83
  {
94
84
  type: 'title',
95
- text: 'Confronto Architetturale: Locale vs Cloud',
85
+ text: 'Comparativa de Arquitectura: Local vs Nube',
96
86
  level: 3,
97
87
  },
98
88
  {
99
89
  type: 'comparative',
100
90
  items: [
101
91
  {
102
- title: 'Convertitori Cloud',
103
- description: 'Strumenti tradizionali che caricano le tue foto su un server remoto.',
92
+ title: 'Convertidores Cloud',
93
+ description: 'Herramientas tradicionales que suben tus fotos a un servidor remoto.',
104
94
  icon: 'mdi:cloud-upload',
105
95
  pointIcon: 'mdi:close-circle-outline',
106
96
  points: [
107
- 'Latenza di rete (Upload/Download)',
108
- 'Rischio di fuga di dati privati',
109
- 'Limiti di dimensione per file',
110
- 'Pubblicità e tracciatori',
97
+ 'Latencia de red (Upload/Download)',
98
+ 'Riesgo de filtración de datos privados',
99
+ 'Límites de tamaño por archivo',
100
+ 'Publicidad y rastreadores',
111
101
  ],
112
102
  },
113
103
  {
114
- title: 'La Nostra Architettura Locale',
115
- description: 'Elaborazione diretta sul tuo hardware tramite tecnologia Vanilla JS.',
104
+ title: 'Nuestra Arquitectura Local',
105
+ description: 'Procesamiento directo en tu hardware mediante tecnología Vanilla JS.',
116
106
  icon: 'mdi:laptop-mac',
117
107
  highlight: true,
118
108
  points: [
119
- 'Velocità istantanea senza rete',
120
- 'Privacy garantita (0 byte inviati)',
121
- 'Senza limiti di MB per file',
122
- 'Interfaccia professionale e pulita',
109
+ 'Velocidad instantánea sin red',
110
+ 'Privacidad garantizada (0 bytes enviados)',
111
+ 'Sin límites de MB por archivo',
112
+ 'Interfaz profesional y limpia',
123
113
  ],
124
114
  },
125
115
  ],
126
116
  },
127
117
  {
128
118
  type: 'title',
129
- text: 'Come funziona la conversione tecnica',
119
+ text: 'Cómo funciona la conversión técnica',
130
120
  level: 3,
131
121
  },
132
122
  {
133
123
  type: 'paragraph',
134
- html: 'Probabilmente ti starai chiedendo come sia possibile convertire un\'immagine senza inviarla a un server. La magia risiede nella potenza dei browser moderni. Quando selezioni un file, generiamo un Blob che esiste solo nella tua RAM. Quel Blob viene disegnato su un elemento HTML5 Canvas invisibile.',
124
+ html: 'Probablemente te preguntes cómo es posible convertir una imagen sin enviarla a un servidor. La magia reside en la potencia de los navegadores modernos. Cuando seleccionas un archivo, generamos un Blob que solo existe en tu RAM. Ese Blob se dibuja en un elemento HTML5 Canvas invisible.',
135
125
  },
136
126
  {
137
127
  type: 'paragraph',
138
- html: 'Dato che il JPG non supporta le trasparenze, il nostro algoritmo riempie lo sfondo con un colore bianco solido prima di "dipingere" il PNG sopra. Una volta composta l\'immagine, eseguiamo il metodo di esportazione nativo, generando un flusso di byte che il tuo computer scarica direttamente.',
128
+ html: 'Dado que el JPG no soporta transparencias, nuestro algoritmo rellena el fondo con un color blanco sólido antes de "pintar" el PNG encima. Una vez compuesta la imagen, ejecutamos el método de exportación nativo, generando un flujo de bytes que tu ordenador descarga directamente.',
139
129
  },
140
130
  {
141
131
  type: 'tip',
142
- title: 'Consiglio SEO: Il Peso Ideale',
143
- html: 'Google penalizza attivamente i siti web lenti. Se il tuo Largest Contentful Paint (LCP) è alto a causa di un PNG di intestazione da 2MB, convertirlo in un JPG da 200KB può migliorare istantaneamente le tue metriche PageSpeed senza differenze visive.',
132
+ title: 'Consejo SEO: El Peso Ideal',
133
+ html: 'Google penaliza activamente los sitios web lentos. Si tu Largest Contentful Paint (LCP) es alto por culpa de un PNG de cabecera de 2MB, convertirlo a un JPG de 200KB puede mejorar tus métricas de PageSpeed instantáneamente sin diferencias visuales.',
144
134
  },
145
135
  {
146
136
  type: 'title',
147
- text: 'Sicurezza per Aziende e Professionisti',
137
+ text: 'Seguridad para Empresas y Profesionales',
148
138
  level: 3,
149
139
  },
150
140
  {
151
141
  type: 'paragraph',
152
- html: 'Se lavori in settori sensibili come il bancario, il sanitario o il legale, caricare file su convertitori online è una violazione della sicurezza. Il nostro strumento funziona come una "scatola nera": ciò che accade all\'interno rimane nella tua RAM. È l\'unico modo sicuro per lavorare con documenti riservati.',
142
+ html: 'Si trabajas en sectores sensibles como la banca, la salud o el derecho, subir archivos a conversores online es una violación de seguridad. Nuestra herramienta funciona como una "caja negra": lo que pasa dentro se queda en tu RAM. Es la única forma segura de trabajar con documentos confidenciales.',
153
143
  },
154
144
  {
155
145
  type: 'title',
156
- text: 'Compatibilità del Risultato',
146
+ text: 'Compatibilidad del Resultado',
157
147
  level: 3,
158
148
  },
159
149
  {
160
150
  type: 'list',
161
151
  icon: 'mdi:check-circle',
162
152
  items: [
163
- 'Visualizzatori di Windows, macOS e dispositivi mobili.',
164
- 'Social network (Instagram, LinkedIn, ecc.).',
165
- 'Strumenti da ufficio (Word, PowerPoint).',
166
- 'Gestori di contenuti (WordPress, Shopify).',
153
+ 'Visores de Windows, macOS y dispositivos móviles.',
154
+ 'Redes sociales (Instagram, LinkedIn, etc).',
155
+ 'Herramientas de ofimática (Word, PowerPoint).',
156
+ 'Gestores de contenido (WordPress, Shopify).',
167
157
  ],
168
158
  },
169
159
  {
170
160
  type: 'title',
171
- text: 'Conclusione: Ottimizza come un professionista',
161
+ text: 'Conclusión: Optimiza como un Pro',
172
162
  level: 3,
173
163
  },
174
164
  {
175
165
  type: 'paragraph',
176
- html: 'Questo convertitore non è solo l\'ennesima pagina; è un pezzo di ingegneria progettato per semplificarti la vita. Che tu sia uno sviluppatore o un utente domestico, ecco la soluzione definitiva per risparmiare megabyte e tenere i tuoi dati al sicuro.',
166
+ html: 'Este convertidor no es solo una página más; es una pieza de ingeniería diseñada para facilitarte la vida. Ya seas un desarrollador o un usuario doméstico, aquí tienes la solución definitiva para ahorrar megabytes y mantener tus datos a salvo.',
177
167
  },
178
168
  ];
179
169
 
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -20,25 +21,21 @@ const ui: ImageConverterUI = {
20
21
 
21
22
  const faq: PngAJpgLocaleContent['faq'] = [
22
23
  {
23
- question: 'なぜ当サイトのローカルPNG-JPGコンバーターを選ぶべきなのですか?',
24
- answer:
25
- '従来のツールとは異なり、当社のユーティリティはファイルを完全にブラウザ内で処理します。画像が他人のハードドライブに触れることはありません。データの完全な支配権とプライバシーを保証します。',
24
+ "question": "なぜローカルのPNG-JPG変換器を選ぶべきですか?",
25
+ "answer": "一般的なオンラインツールと異なり、当サービスは画像処理をすべてブラウザ内で行います。外部サーバーにファイルが送信されないため、データプライバシーが完全に保護されます。"
26
26
  },
27
27
  {
28
- question: 'JPGとPNG、どちらが私のケースに適していますか?',
29
- answer:
30
- 'PNGは、ロゴや透明度を必要とする要素に理想的です。一方、JPGは写真やウェブバナーのゴールドスタンダードであり、ファイルサイズを大幅に削減できるため、サイトの読み込み速度を劇的に向上させます。',
28
+ "question": "JPGとPNG、どちらのフォーマットが最適ですか?",
29
+ "answer": "PNGは透明背景やロゴに最適です。一方、JPGは圧縮率が高くファイルサイズが大幅に小さくなるため、写真やWebバナー、SNS投稿に最適です。"
31
30
  },
32
31
  {
33
- question: 'アップロードせずにどのように技術的な変換を行っているのですか?',
34
- answer:
35
- 'HTML5のCanvas機能を活用しています。ブラウザが不可視の仮想キャンバス上に画像を再現し、透明部分を白で塗りつぶしてから、即座にダウンロード可能なバイトストリームを生成します。',
32
+ "question": "サーバーなしでの技術的変換の仕組みは?",
33
+ "answer": "HTML5 Canvas技術を使用しています。ブラウザが非表示の仮想キャンバスにPNGを描画し、透明部分を白で塗りつぶした上でJPEGバイトストリームを出力します。"
36
34
  },
37
35
  {
38
- question: '機密文書に使用しても安全ですか?',
39
- answer:
40
- 'はい、銀行、医療、法律などの機密性を要する分野のプロフェッショナルにとって最も安全な選択肢です。RAMのみを使用する「ブラックボックス」として動作するため、処理内容はタブを閉じると同時に消去され、サードパーティのクラウドへの流出を防ぎます。',
41
- },
36
+ "question": "機密文書や企業データの変換は安全ですか?",
37
+ "answer": "はい、非常に安全です。処理はすべてブラウザのRAM内で行われ、タブを閉じるとデータは完全に消去されます。"
38
+ }
42
39
  ];
43
40
 
44
41
  const howTo: PngAJpgLocaleContent['howTo'] = [
@@ -56,125 +53,114 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
53
  },
57
54
  ];
58
55
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'PNGコンソーシアム仕様書',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'JPEG委員会',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
56
  const seo: PngAJpgLocaleContent['seo'] = [
71
57
  {
72
- type: 'title',
73
- text: 'PNG-JPGコンバーター:画像最適化のための決定版ガイド',
74
- level: 2,
58
+ "type": "title",
59
+ "text": "PNGからJPGへの変換コンバーター:画像最適化ガイド",
60
+ "level": 2
75
61
  },
76
62
  {
77
- type: 'paragraph',
78
- html: 'デジタルデザインとウェブ開発の世界では、効率こそがすべてです。PNG(Portable Network Graphics)形式は、透明度を維持できることや可逆圧縮であることから愛されていますが、大きな弱点があります。それはファイルサイズです。ウェブサイトの表示を高速化したい場合や、メールを即座に送信したい場合、PNGからJPGへの変更は最も賢明な技術的判断です。',
63
+ "type": "paragraph",
64
+ "html": "デジタルデザインとWeb開発において効率性は非常に重要です。PNG形式は透過機能と無劣化圧縮が特徴ですが、ファイルサイズが大きくなりがちです。Webサイトの表示速度を高速化するにはPNGからJPGへの変換が最適です。"
79
65
  },
80
66
  {
81
- type: 'title',
82
- text: 'JPGかPNGか?',
83
- level: 3,
67
+ "type": "title",
68
+ "text": "JPGとPNGの比較",
69
+ "level": 3
84
70
  },
85
71
  {
86
- type: 'paragraph',
87
- html: 'どちらの形式が優れているということはありません。ニーズに合わせた使い分けが重要です。PNGは可逆形式であり、インターフェースのモックアップや小さなテキストを含むロゴ、透明背景が必要なビジュアル要素に最適です。しかし、この忠実さには代償が伴います。圧縮されたJPGに比べて、ファイルサイズが5倍から10倍重くなることもあります。',
72
+ "type": "paragraph",
73
+ "html": "用途に応じて最適なフォーマットを選択しましょう。PNGはロゴやテキストを含むグラフィック向けですが、ファイル容量は大きくなります。"
88
74
  },
89
75
  {
90
- type: 'paragraph',
91
- html: '一方、JPG(Joint Photographic Experts Group)は、人間の目にはほとんど認識できない情報を削除する離散化アルゴリズムを使用しており、極めて軽量なファイルサイズを実現します。写真、広告バナー、SNSにとってのゴールドスタンダードです。PNGをJPGに変換することは、幾何学的な忠実さをネットワーク速度と交換することを意味します。',
76
+ "type": "paragraph",
77
+ "html": "JPGは写真やWebバナーに最適な形式で、人間が認識しにくい視覚情報を圧縮して軽量化を実現します。"
92
78
  },
93
79
  {
94
- type: 'title',
95
- text: 'アーキテクチャの比較:ローカル対クラウド',
96
- level: 3,
80
+ "type": "title",
81
+ "text": "ローカル変換とクラウド変換の比較",
82
+ "level": 3
97
83
  },
98
84
  {
99
- type: 'comparative',
100
- items: [
85
+ "type": "comparative",
86
+ "items": [
101
87
  {
102
- title: 'クラウドコンバーター',
103
- description: '写真をリモートサーバーにアップロードする従来のツール。',
104
- icon: 'mdi:cloud-upload',
105
- pointIcon: 'mdi:close-circle-outline',
106
- points: [
107
- 'ネットワーク遅延(アップロード/ダウンロード)',
108
- '個人データ流出のリスク',
109
- 'ファイルごとのサイズ制限',
110
- '広告とトラッカー',
111
- ],
88
+ "title": "クラウド型コンバーター",
89
+ "description": "外部サーバーに画像をアップロードして処理する一般的なツール。",
90
+ "icon": "mdi:cloud-upload",
91
+ "pointIcon": "mdi:close-circle-outline",
92
+ "points": [
93
+ "通信レイテンシの発生",
94
+ "プライバシー流出のリスク",
95
+ "ファイル容量制限",
96
+ "広告や追跡スクリプト"
97
+ ]
112
98
  },
113
99
  {
114
- title: '当サイトのローカルアーキテクチャ',
115
- description: 'Vanilla JSテクノロジーにより、デバイス上で直接処理。',
116
- icon: 'mdi:laptop-mac',
117
- highlight: true,
118
- points: [
119
- 'ネットワークを介さない即時処理速度',
120
- 'プライバシーの保証(送信データ0バイト)',
121
- 'ファイルあたりの容量制限なし',
122
- 'プロフェッショナルでクリーンなインターフェース',
123
- ],
124
- },
125
- ],
100
+ "title": "当ツールのローカル構造",
101
+ "description": "ブラウザのHTML5 Canvas技術を利用した直接処理。",
102
+ "icon": "mdi:laptop-mac",
103
+ "highlight": true,
104
+ "points": [
105
+ "通信なしの超高速処理",
106
+ "完全なプライバシー(送信0バイト)",
107
+ "ファイル容量制限なし",
108
+ "クリーンなインターフェース"
109
+ ]
110
+ }
111
+ ]
126
112
  },
127
113
  {
128
- type: 'title',
129
- text: '技術的な変換の仕組み',
130
- level: 3,
114
+ "type": "title",
115
+ "text": "ローカル技術変換の仕組み",
116
+ "level": 3
131
117
  },
132
118
  {
133
- type: 'paragraph',
134
- html: 'サーバーに送信せずに画像を変換できる理由を不思議に思うかもしれません。その魔法は、現代のブラウザの能力にあります。ファイルを選択すると、RAM内のみに存在するBlobを生成します。そのBlobが、不可視のHTML5 Canvas要素上に描画されます。',
119
+ "type": "paragraph",
120
+ "html": "画像をサーバーに送信せずに変換できる理由は、最新のブラウザ機能にあります。ファイルを選択すると、メモリ上のBlobデータが作成され、非表示のHTML5 Canvasに描画されます。"
135
121
  },
136
122
  {
137
- type: 'paragraph',
138
- html: 'JPGは透明度をサポートしていないため、アルゴリズムがPNGを「描画」する前に背景を白の塗りつぶしで埋めます。画像が合成されると、ネイティブのエクスポートメソッドを実行し、コンピュータが直接ダウンロードするバイトストリームを生成します。',
123
+ "type": "paragraph",
124
+ "html": "JPGは透過度(アルファチャンネル)をサポートしていないため、背景を白色で合成してからJPEGのバイトストリームを生成し、ローカルに直接保存します。"
139
125
  },
140
126
  {
141
- type: 'tip',
142
- title: 'SEOのヒント:理想的なファイルサイズ',
143
- html: 'Googleは表示の遅いウェブサイトに厳しい評価を与えます。2MBのヘッダー画像(PNG)のせいでLargest Contentful Paint(LCP)が高くなっている場合、それを200KBのJPGに変換することで、見た目を変えずにPageSpeedの評価を即座に改善できます。',
127
+ "type": "tip",
128
+ "title": "SEOパフォーマンス向上",
129
+ "html": "大きなPNG画像を軽量なJPGに変換することで、WebサイトのLCP指標やPageSpeedスコアを瞬時に改善できます。"
144
130
  },
145
131
  {
146
- type: 'title',
147
- text: '企業・プロフェッショナルのためのセキュリティ',
148
- level: 3,
132
+ "type": "title",
133
+ "text": "企業・機密データのセキュリティ",
134
+ "level": 3
149
135
  },
150
136
  {
151
- type: 'paragraph',
152
- html: '金融、医療、法律などの機密性の高い分野で仕事をしている場合、ファイルをオンラインコンバーターにアップロードすることはセキュリティ違反となります。当ツールは「ブラックボックス」として機能し、内部で起こることはすべてお客様のRAMに留まります。機密文書を扱う唯一の安全な方法です。',
137
+ "type": "paragraph",
138
+ "html": "金融や医療、法律の専門家にとって外部サイトへの画像アップロードはリスクを伴います。当ツールはタブを閉じると全データが消失するため安心です。"
153
139
  },
154
140
  {
155
- type: 'title',
156
- text: '結果の互換性',
157
- level: 3,
141
+ "type": "title",
142
+ "text": "出力フォーマットの互換性",
143
+ "level": 3
158
144
  },
159
145
  {
160
- type: 'list',
161
- icon: 'mdi:check-circle',
162
- items: [
163
- 'Windows、macOS、モバイルデバイスの画像ビューア。',
164
- 'ソーシャルネットワーク(Instagram、LinkedInなど)。',
165
- 'オフィスツール(Word、PowerPoint)。',
166
- 'コンテンツ管理システム(WordPress、Shopify)。',
167
- ],
146
+ "type": "list",
147
+ "icon": "mdi:check-circle",
148
+ "items": [
149
+ "Windows, macOS, iOS, Androidの標準ビューア",
150
+ "SNSプラットフォーム(Instagram, X, Facebook)",
151
+ "オフィスソフト(Word, PowerPoint)",
152
+ "CMS(WordPress, Shopify)"
153
+ ]
168
154
  },
169
155
  {
170
- type: 'title',
171
- text: '結論:プロのように最適化する',
172
- level: 3,
156
+ "type": "title",
157
+ "text": "まとめ",
158
+ "level": 3
173
159
  },
174
160
  {
175
- type: 'paragraph',
176
- html: 'このコンバーターは、単なる一つのページではありません。あなたの生活をより快適にするために設計されたエンジニアリングの粋です。開発者であれ一般ユーザーであれ、容量を節約しデータを安全に保つための決定的な解決策がここにあります。',
177
- },
161
+ "type": "paragraph",
162
+ "html": "このコンバーターは高速性とセキュリティを両立した技術的ソリューションです。"
163
+ }
178
164
  ];
179
165
 
180
166