@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 { SvgAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-svg-ke-jpg';
6
+ const title = 'Konversi SVG ke JPG Online dan Gratis';
7
+ const description =
8
+ 'Konversi file vektor SVG ke JPG di browser Anda. Render resolusi tinggi 2x. Tanpa pengunggahan file. Gratis dan 100% pribadi.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Tarik file SVG...',
12
+ convertText: 'Untuk mengkonversinya ke JPG 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: SvgAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Mengapa mengonversi SVG ke JPG?',
24
+ answer:
25
+ 'JPG menawarkan kompatibilitas maksimum di semua jenis perangkat; mengonversi SVG ke JPG adalah cara terbaik untuk memastikan semua orang dapat melihat desain Anda tanpa masalah rendering.',
26
+ },
27
+ {
28
+ question: 'Apa yang terjadi dengan transparansi SVG?',
29
+ answer:
30
+ 'Saat mengonversi ke JPG (yang tidak mendukung transparansi), latar belakang putih buram akan secara otomatis ditambahkan ke komposisi vektor Anda.',
31
+ },
32
+ {
33
+ question: 'Berapa resolusi JPG yang dihasilkan?',
34
+ answer:
35
+ 'Alat ini merender SVG pada skala ganda (2x) untuk menjamin resolusi tinggi yang sesuai untuk layar Retina dan penggunaan profesional.',
36
+ },
37
+ ];
38
+
39
+ const howTo: SvgAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Masukkan file vektor Anda',
42
+ text: 'Letakkan file SVG Anda di area atas untuk menyiapkan daftar ekspor.',
43
+ },
44
+ {
45
+ name: 'Rasterisasi ke JPG',
46
+ text: 'Alat ini akan mengonversi vektor menjadi piksel beresolusi tinggi dan menghasilkan JPG Anda secara instan.',
47
+ },
48
+ {
49
+ name: 'Unduh hasilnya',
50
+ text: 'Dapatkan file JPG Anda satu per satu atau sebagai paket ZIP.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: SvgAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Spesifikasi W3C SVG',
57
+ url: 'https://www.w3.org/TR/SVG/',
58
+ },
59
+ {
60
+ name: 'Ikhtisar Standar JPEG',
61
+ url: 'https://jpeg.org/jpeg/',
62
+ },
63
+ ];
64
+
65
+ const seo: SvgAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konverter SVG ke JPG: Bawa Vektor Anda ke Platform Apa Pun',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Format <strong>SVG</strong> adalah bahasa asli web modern: ringan, terukur, dapat diedit. Namun ada seluruh platform yang tidak memahami vektor. Media sosial, klien email, dokumen Word, aplikasi cetak, dan sebagian besar perangkat lunak dunia nyata bekerja dengan gambar raster. <strong>JPG</strong> adalah penyebut umum universal: diterima di mana-mana, tanpa pengecualian, tanpa plugin, dan tanpa perlu konversi tambahan.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'SVG vs JPG: Saat Vektor Harus Menjadi Foto',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'SVG menyimpan gambar sebagai instruksi matematis. Sifat vektor ini membuatnya sempurna untuk web tetapi tidak terlihat oleh dunia analog dan perangkat lunak lama. File SVG yang dikirim melalui email dapat muncul sebagai teks XML yang tidak dapat dipahami di klien penerima. SVG yang dilampirkan ke dokumen Word mungkin tidak merender sama sekali di versi Office yang lebih lama.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG mengonversi setiap gambar menjadi matriks piksel dengan informasi warna yang dikompresi oleh algoritma JPEG. Karena tidak mendukung saluran alfa, konverter secara otomatis menggabungkan latar belakang dengan warna putih solid. Sebagai imbalannya, Anda mendapatkan file yang terbuka di <em>perangkat apa pun di planet ini</em>: ponsel lama, printer, smart TV, aplikasi pengeditan dari dua puluh tahun yang lalu. Ini adalah format penyebut umum terendah, dan dalam banyak konteks, yang paling berharga.',
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
+ 'Kode SVG Anda (dengan data desain kepemilikan) dikirim ke server eksternal',
103
+ 'Rendering font dan gradien yang tidak konsisten',
104
+ 'Koneksi internet diperlukan untuk setiap konversi',
105
+ 'Kualitas output JPG tidak selalu dapat dikonfigurasi',
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
+ 'Nol byte SVG Anda keluar dari browser',
115
+ 'Rendering yang setia menggunakan mesin browser native',
116
+ 'JPG resolusi 2x untuk ketajaman maksimum',
117
+ 'Latar belakang putih diterapkan secara otomatis sesuai standar JPG',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Cara Kerjanya Secara Teknis',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'File SVG dimuat ke dalam elemen <strong>Image</strong> browser, yang menggunakan mesin rendering vektornya sendiri untuk menafsirkan XML. Hasil visual digambar ke atas <strong>HTML5 Canvas</strong> dengan pengisian latar belakang putih sebelumnya (diperlukan karena JPG tidak mendukung transparansi) pada skala ganda untuk memaksimalkan resolusi output.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Metode <code>toDataURL(\'image/jpeg\', 0.92)</code> mengonversi piksel kanvas menjadi file JPG berkualitas tinggi. Warna SVG mungkin mengalami sedikit variasi karena konversi ruang warna dalam kompresi JPEG. Oleh karena itu, disarankan untuk melihat pratinjau hasil sebelum menggunakannya dalam pekerjaan cetak profesional di mana kesetiaan kromatik sangat penting.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Tip untuk penggunaan cetak',
138
+ html: 'Latar belakang dan gradien SVG dapat terlihat sedikit berbeda di JPG karena perbedaan profil warna dalam kompresi JPEG. Selalu lihat pratinjau hasil sebelum mengirim ke printer atau menggunakannya dalam materi pemasaran cetak di mana akurasi warna merek yang tepat sangat penting.',
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
+ 'Berbagi logo dan ilustrasi SVG di Facebook, Twitter, atau LinkedIn.',
150
+ 'Melampirkan grafik vektor di email melalui Outlook atau Gmail.',
151
+ 'Memasukkan desain SVG ke dalam dokumen Word, Excel, atau presentasi.',
152
+ 'Menerbitkan gambar produk di toko online yang tidak mendukung SVG.',
153
+ 'Menyiapkan file untuk layanan cetak sesuai permintaan.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Kesimpulan',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Dunia nyata masih berbicara dalam piksel. Alat ini menerjemahkan vektor SVG Anda ke dalam bahasa universal JPG dalam hitungan detik, dengan render resolusi tinggi dan tanpa desain kepemilikan Anda meninggalkan browser Anda.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: SvgAJpgLocaleContent = {
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 { SvgAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'convertitore-svg-in-jpg';
6
+ const title = 'Converti SVG in JPG Online e Gratis';
7
+ const description =
8
+ 'Converti file vettoriali SVG in JPG nel tuo browser. Rendering ad alta risoluzione 2x. Nessun caricamento di file. Gratuito e privato al 100%.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Trascina i file SVG...',
12
+ convertText: 'Per convertirli in JPG istantaneamente',
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: SvgAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Perché convertire SVG in JPG?',
24
+ answer:
25
+ 'Il formato JPG offre la massima compatibilità su tutti i tipi di dispositivi; convertire SVG in JPG è il modo migliore per assicurarsi che chiunque possa visualizzare il tuo design senza problemi di rendering.',
26
+ },
27
+ {
28
+ question: 'Cosa succede alla trasparenza dell\'SVG?',
29
+ answer:
30
+ 'Durante la conversione in JPG (che non supporta la trasparenza), uno sfondo bianco opaco verrà aggiunto automaticamente alla tua composizione vettoriale.',
31
+ },
32
+ {
33
+ question: 'Quale risoluzione avrà il JPG risultante?',
34
+ answer:
35
+ 'Lo strumento esegue il rendering dell\'SVG in scala doppia (2x) per garantire un\'alta risoluzione adatta agli schermi Retina e all\'uso professionale.',
36
+ },
37
+ ];
38
+
39
+ const howTo: SvgAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Inserisci i tuoi file vettoriali',
42
+ text: 'Trascina i tuoi file SVG nell\'area superiore per preparare l\'elenco di esportazione.',
43
+ },
44
+ {
45
+ name: 'Rasterizzazione in JPG',
46
+ text: 'Lo strumento convertirà i vettori in pixel ad alta risoluzione e genererà il tuo JPG istantaneamente.',
47
+ },
48
+ {
49
+ name: 'Scarica i risultati',
50
+ text: 'Ottieni i tuoi file JPG singolarmente o come pacchetto ZIP.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: SvgAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Specifica W3C SVG',
57
+ url: 'https://www.w3.org/TR/SVG/',
58
+ },
59
+ {
60
+ name: 'Panoramica dello Standard JPEG',
61
+ url: 'https://jpeg.org/jpeg/',
62
+ },
63
+ ];
64
+
65
+ const seoArray: SvgAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Convertitore da SVG a JPG: Porta i tuoi vettori su qualsiasi piattaforma',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Il formato <strong>SVG</strong> è il linguaggio nativo del web moderno: leggero, scalabile, modificabile. Ma ci sono intere piattaforme che semplicemente non comprendono i vettori. Social media, client di posta elettronica, documenti Word, applicazioni di stampa e la stragrande maggioranza del software del mondo reale lavorano con immagini rasterizzate. Il <strong>JPG</strong> è il minimo comune denominatore universale: accettato ovunque, senza eccezioni, senza plugin e senza necessità di ulteriori conversioni.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'SVG vs JPG: Quando il vettore deve diventare una foto',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'L\'SVG memorizza l\'immagine come istruzioni matematiche. Questa natura vettoriale lo rende perfetto per il web ma invisibile al mondo analogico e ai software legacy. Un file SVG inviato via e-mail può apparire come un testo XML incomprensibile nel client del destinatario. Un SVG allegato a un documento Word potrebbe non essere renderizzato affatto nelle versioni più vecchie di Office.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Il JPG converte ogni immagine in una matrice di pixel con informazioni sul colore compresse dall\'algoritmo JPEG. Poiché non supporta un canale alfa, il convertitore unisce automaticamente lo sfondo con un bianco solido. In cambio, ottieni un file che si apre su <em>qualsiasi dispositivo del pianeta</em>: vecchi telefoni cellulari, stampanti, smart TV, app di editing di vent\'anni fa. È il formato del minimo comune denominatore e, in molti contesti, il più prezioso.',
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
+ 'Il tuo codice SVG (con dati di design proprietari) viaggia verso server esterni',
103
+ 'Rendering incoerente di font e sfumature',
104
+ 'Connessione Internet necessaria per ogni conversione',
105
+ 'Qualità dell\'output JPG non sempre configurabile',
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
+ 'Zero byte del tuo SVG lasciano il browser',
115
+ 'Rendering fedele utilizzando il motore nativo del browser',
116
+ 'JPG a risoluzione 2x per la massima nitidezza',
117
+ 'Sfondo bianco applicato automaticamente come da standard JPG',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Come funziona tecnicamente',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Il file SVG viene caricato in un elemento <strong>Image</strong> del browser, che utilizza il proprio motore di rendering vettoriale per interpretare l\'XML. Il risultato visivo viene disegnato su un <strong>HTML5 Canvas</strong> con un preventivo riempimento di sfondo bianco (richiesto perché il formato JPG non supporta la trasparenza) in scala doppia per massimizzare la risoluzione dell\'output.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Il metodo <code>toDataURL(\'image/jpeg\', 0.92)</code> converte i pixel del canvas in un file JPG di alta qualità. I colori dell\'SVG possono subire leggere variazioni a causa della conversione dello spazio colore nella compressione JPEG. È quindi consigliabile visualizzare in anteprima il risultato prima di utilizzarlo in lavori di stampa professionali dove la fedeltà cromatica è fondamentale.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Suggerimento per l\'uso in stampa',
138
+ html: 'Gli sfondi e le sfumature SVG possono apparire leggermente diversi in JPG a causa delle differenze dei profili colore nella compressione JPEG. Visualizza sempre l\'anteprima del risultato prima di inviarlo a una stampante o utilizzarlo in materiali di marketing stampati dove la precisione del colore del marchio è importante.',
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
+ 'Condividere loghi e illustrazioni SVG su Facebook, Twitter o LinkedIn.',
150
+ 'Allegare grafiche vettoriali nelle e-mail tramite Outlook o Gmail.',
151
+ 'Inserire design SVG in documenti Word, Excel o presentazioni.',
152
+ 'Pubblicare immagini prodotto su negozi online che non supportano SVG.',
153
+ 'Preparare file per servizi di stampa su richiesta.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusione',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Il mondo reale parla ancora in pixel. Questo strumento traduce i tuoi vettori SVG nel linguaggio universale del JPG in pochi secondi, con un rendering ad alta risoluzione e senza che i tuoi design proprietari lascino mai il tuo browser.',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: SvgAJpgLocaleContent = {
169
+ slug,
170
+ title,
171
+ description,
172
+ ui,
173
+ seo: seoArray,
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 { SvgAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'svg-to-jpg-converter';
6
+ const title = 'SVGをJPGにオンラインで無料で変換しましょう';
7
+ const description =
8
+ 'ブラウザでSVGベクトルファイルをJPGに変換します。2倍の高解像度レンダリング。ファイルのアップロード不要。無料かつ100%プライベート。';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'SVGファイルをドラッグ...',
12
+ convertText: '即座にJPGに変換します',
13
+ selectFiles: 'ファイルを選択',
14
+ processedFiles: '処理済みファイル',
15
+ downloadAll: 'すべてダウンロード (.zip)',
16
+ pending: '保留中',
17
+ bibliographyTitle: '参考文献',
18
+ faqTitle: 'よくある質問',
19
+ };
20
+
21
+ const faq: SvgAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'なぜSVGをJPGに変換する必要があるのですか?',
24
+ answer:
25
+ 'JPGはあらゆる種類のデバイスで最大限の互換性を提供します。SVGをJPGに変換することは、レンダリングの問題なしに誰もがデザインを閲覧できるようにする最良の方法です。',
26
+ },
27
+ {
28
+ question: 'SVGの透明度はどうなりますか?',
29
+ answer:
30
+ '透明度をサポートしていないJPGに変換する際、ベクトル構成に不透明な白い背景が自動的に追加されます。',
31
+ },
32
+ {
33
+ question: '結果のJPGの解像度はどのくらいですか?',
34
+ answer:
35
+ 'このツールは、Retina画面やプロ用途に適した高解像度を保証するために、SVGを2倍(2x)のスケールでレンダリングします。',
36
+ },
37
+ ];
38
+
39
+ const howTo: SvgAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'ベクトルファイルを挿入',
42
+ text: 'エクスポートリストを準備するために、上部のエリアにSVGファイルをドラッグ&ドロップしてください。',
43
+ },
44
+ {
45
+ name: 'JPGへのラスタライズ',
46
+ text: 'ツールがベクトルを高解像度のピクセルに変換し、即座にJPGを生成します。',
47
+ },
48
+ {
49
+ name: '結果をダウンロード',
50
+ text: 'JPGファイルを個別に、またはZIPパッケージとして取得してください。',
51
+ },
52
+ ];
53
+
54
+ const bibliography: SvgAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'W3C SVG仕様',
57
+ url: 'https://www.w3.org/TR/SVG/',
58
+ },
59
+ {
60
+ name: 'JPEG標準の概要',
61
+ url: 'https://jpeg.org/jpeg/',
62
+ },
63
+ ];
64
+
65
+ const seo: SvgAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'SVG to JPG 変換機:ベクトルをあらゆるプラットフォームへ',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: '<strong>SVG</strong>形式は、軽量、スケーラブル、編集可能という現代のウェブの母国語のような存在です。しかし、ベクトルを全く理解しないプラットフォームも存在します。ソーシャルメディア、メールクライアント、Word文書、印刷アプリケーション、そして現実世界の大多数のソフトウェアはラスタライズされた画像で動作します。<strong>JPG</strong>は、例外なくどこでも受け入れられ、プラグインも追加の変換も不要な、普遍的な共通項です。',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'SVG vs JPG:ベクトルを写真にする必要があるとき',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'SVGは画像を数学的な命令として保存します。このベクトルの性質はウェブには最適ですが、アナログの世界やレガシーソフトウェアには見えない場合があります。メールで送信されたSVGファイルは、受信者のクライアントで理解不能なXMLテキストとして表示されることがあります。Word文書に添付されたSVGは、古いバージョンのOfficeでは全くレンダリングされないこともあります。',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPGは、各画像をJPEGアルゴリズムによって圧縮された色情報を持つピクセルマトリックスに変換します。アルファチャネルをサポートしていないため、変換機は背景を白で自動的にマージします。代わりに、古い携帯電話、プリンター、スマートTV、20年前の編集アプリなど、 <em>地球上のあらゆるデバイス</em> で開くことができるファイルが得られます。これは最も広く使われている形式であり、多くの文脈において最も価値のある形式でもあります。',
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
+ 'ユーザーのSVGコード(独自のデザインデータを含む)が外部サーバーへ送信される',
103
+ 'フォントやグラデーションのレンダリングが一貫しない',
104
+ '変換ごとにインターネット接続が必要',
105
+ 'JPGの出力品質を常に構成できるとは限らない',
106
+ ],
107
+ },
108
+ {
109
+ title: 'ローカルアーキテクチャ',
110
+ description: 'Vanilla JS技術を使用し、ユーザーのハードウェア上で直接処理します。',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'ブラウザを離れるデータは0バイト',
115
+ 'ブラウザのネイティブエンジンを使用した忠実なレンデリング',
116
+ '最大の鮮明度を実現する2倍解像度のJPG',
117
+ 'JPG標準に従い、白い背景が自動的に適用される',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: '技術的な仕組み',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'SVGファイルがブラウザの <strong>Image</strong> 要素に読み込まれ、この要素はXMLを解釈するために独自のベクトルレンダリングエンジンを使用します。視覚的な結果は、出力解像度を最適化するために2倍のスケールで、あらかじめ白い背景を塗りつぶした(JPGが透明度をサポートしていないために必要) <strong>HTML5 Canvas</strong> 上に描画されます。',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: ' <code>toDataURL(\'image/jpeg\', 0.92)</code> メソッドが、キャンバスのピクセルを高画質なJPGファイルに変換します。SVGの色は、JPEG圧縮の色空間変換により、わずかな変化が生じることがあります。そのため、色再現が重要なプロフェッショナルな印刷作業に使用する前には、結果をプレビューすることをお勧めします。',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: '印刷用途へのヒント',
138
+ html: 'SVGの背景やグラデーションは、JPEG圧縮時のカラープロファイルの違いにより、JPGではわずかに異なって見えることがあります。正確なブランドカラーの精度が重要な印刷所へ送る前や、印刷用マーケティング資料に使用する前には、常に結果をプレビューしてください。',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: '活用事例と互換性',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Facebook、Twitter、LinkedInでのSVGロゴやイラストの共有。',
150
+ 'OutlookやGmailを介したメールへのベクトルグラフィックスの添付。',
151
+ 'Word文書、Excel、プレゼン資料へのSVGデザインの挿入。',
152
+ 'SVGをサポートしていないオンラインショップへの商品画像の掲載。',
153
+ 'オンデマンド印刷サービス用のファイル準備。',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: '結論',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: '現実の世界は依然としてピクセルで会話をしています。このツールは、ユーザー独自のデザインをブラウザの外に出すことなく、数秒のうちに高解像度レンダリングによってSVGベクトルを普遍的なJPG言語へと翻訳します。',
164
+ },
165
+ ];
166
+
167
+
168
+ export const content: SvgAJpgLocaleContent = {
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
+ };