@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 = 'conversor-de-svg-para-jpg';
6
+ const title = 'Converter SVG para JPG Online e Grátis';
7
+ const description =
8
+ 'Converta arquivos vetoriais SVG para JPG no seu navegador. Renderização de alta resolução 2x. Sem upload de arquivos. Gratuito e 100% privado.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Arraste arquivos SVG...',
12
+ convertText: 'Para convertê-los em JPG instantaneamente',
13
+ selectFiles: 'Selecionar arquivos',
14
+ processedFiles: 'Arquivos processados',
15
+ downloadAll: 'Baixar tudo (.zip)',
16
+ pending: 'Pendente',
17
+ bibliographyTitle: 'Referências Bibliográficas',
18
+ faqTitle: 'Perguntas Frequentes',
19
+ };
20
+
21
+ const faq: SvgAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Porquê converter SVG para JPG?',
24
+ answer:
25
+ 'O JPG oferece a máxima compatibilidade em todos os tipos de dispositivos; converter SVG para JPG é a melhor forma de garantir que todos possam visualizar o seu design sem problemas de renderização.',
26
+ },
27
+ {
28
+ question: 'O que acontece à transparência do SVG?',
29
+ answer:
30
+ 'Ao converter para JPG (que não suporta transparência), será automaticamente adicionado um fundo branco opaco à sua composição vetorial.',
31
+ },
32
+ {
33
+ question: 'Qual a resolução que o JPG resultante terá?',
34
+ answer:
35
+ 'A ferramenta renderiza o SVG em escala dupla (2x) para garantir uma alta resolução adequada para ecrãs Retina e uso profissional.',
36
+ },
37
+ ];
38
+
39
+ const howTo: SvgAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Insira os seus arquivos vetoriais',
42
+ text: 'Largue os seus arquivos SVG na área superior para preparar a lista de exportação.',
43
+ },
44
+ {
45
+ name: 'Rasterização para JPG',
46
+ text: 'A ferramenta converterá os vetores em píxeis de alta resolução e gerará o seu JPG instantaneamente.',
47
+ },
48
+ {
49
+ name: 'Baixe os resultados',
50
+ text: 'Obtenha os seus arquivos JPG um a um ou como um pacote ZIP.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: SvgAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Especificação W3C SVG',
57
+ url: 'https://www.w3.org/TR/SVG/',
58
+ },
59
+ {
60
+ name: 'Visão Geral do Padrão JPEG',
61
+ url: 'https://jpeg.org/jpeg/',
62
+ },
63
+ ];
64
+
65
+ const seo: SvgAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Conversor de SVG para JPG: Leve os seus vetores para qualquer plataforma',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'O formato <strong>SVG</strong> é a linguagem nativa da web moderna: leve, escalável, editável. Mas existem plataformas inteiras que simplesmente não compreendem vetores. Redes sociais, clientes de e-mail, documentos Word, aplicações de impressão e a grande maioria do software do mundo real trabalham com imagens rasterizadas. O <strong>JPG</strong> é o denominador comum universal: aceite em todo o lado, sem exceções, sem plugins e sem necessidade de conversões adicionais.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'SVG vs JPG: Quando o vetor precisa de se tornar uma foto',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'O SVG armazena a imagem como instruções matemáticas. Esta natureza vetorial torna-o perfeito para a web, mas invisível para o mundo analógico e software antigo. Um arquivo SVG enviado por e-mail pode aparecer como texto XML incompreensível no cliente do destinatário. Um SVG anexado a um documento Word pode nem sequer ser renderizado em versões mais antigas do Office.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'O JPG converte cada imagem numa matriz de píxeis com informação de cor comprimida pelo algoritmo JPEG. Uma vez que não suporta um canal alfa, o conversor funde automaticamente o fundo com branco sólido. Em troca, obtém um arquivo que abre em <em>qualquer dispositivo no planeta</em>: telemóveis antigos, impressoras, smart TVs, apps de edição de há vinte anos. É o formato do mínimo denominador comum e, em muitos contextos, o mais valioso.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Comparação: Conversão Local vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Conversores Cloud',
98
+ description: 'Ferramentas que carregam os seus arquivos para um servidor remoto.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'O seu código SVG (com dados de design proprietários) viaja para servidores externos',
103
+ 'Renderização inconsistente de tipos de letra e gradientes',
104
+ 'Ligação à Internet necessária para cada conversão',
105
+ 'Qualidade de saída JPG nem sempre configurável',
106
+ ],
107
+ },
108
+ {
109
+ title: 'A Nossa Arquitetura Local',
110
+ description: 'Processamento direto no seu hardware utilizando a tecnologia Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Zero bytes do seu SVG deixam o navegador',
115
+ 'Renderização fiel utilizando o motor nativo do navegador',
116
+ 'JPG de resolução 2x para máxima nitidez',
117
+ 'Fundo branco aplicado automaticamente conforme o padrão JPG',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Como funciona tecnicamente',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'O arquivo SVG é carregado num elemento <strong>Image</strong> do navegador, que utiliza o seu próprio motor de renderização vetorial para interpretar o XML. O resultado visual é desenhado num <strong>HTML5 Canvas</strong> com um preenchimento prévio de fundo branco (necessário porque o JPG não suporta transparência) em escala dupla para maximizar a resolução de saída.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'O método <code>toDataURL(\'image/jpeg\', 0.92)</code> converte os píxeis do canvas num arquivo JPG de alta qualidade. As cores do SVG podem sofrer ligeiras variações devido à conversão do espaço de cor na compressão JPEG. É por isso aconselhável pré-visualizar o resultado antes de o utilizar em trabalhos de impressão profissionais onde a fidelidade cromática é crítica.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Dica para uso em impressão',
138
+ html: 'Fundos e gradientes SVG podem parecer ligeiramente diferentes em JPG devido a diferenças de perfil de cor na compressão JPEG. Pré-visualize sempre o resultado antes de enviar para uma impressora ou utilizá-lo em materiais de marketing impressos onde a precisão exata da cor da marca é importante.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casos de uso e compatibilidade',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Partilhar logótipos e ilustrações SVG no Facebook, Twitter ou LinkedIn.',
150
+ 'Anexar gráficos vetoriais em e-mails via Outlook ou Gmail.',
151
+ 'Inserir designs SVG em documentos Word, Excel ou apresentações.',
152
+ 'Publicar imagens de produtos em lojas online que não suportam SVG.',
153
+ 'Preparar arquivos para serviços de impressão sob demanda.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusão',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'O mundo real ainda fala em píxeis. Esta ferramenta traduz os seus vetores SVG para a linguagem universal do JPG em segundos, com renderização de alta resolução e sem que os seus designs proprietários alguma vez deixem o seu navegador.',
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: 'pt', 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 = 'konverter-svg-v-jpg';
6
+ const title = 'Конвертировать SVG в JPG Онлайн и Бесплатно';
7
+ const description =
8
+ 'Конвертируйте векторные файлы SVG в JPG в вашем браузере. Рендеринг в высоком разрешении 2x. Без загрузки файлов. Бесплатно и 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
+ 'Инструмент отрисовывает SVG в двойном масштабе (2x), чтобы гарантировать высокое разрешение, подходящее для экранов Retina и профессионального использования.',
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 в 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 против JPG: Когда вектору нужно стать фотографией',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'SVG хранит изображение в виде математических инструкций. Эта векторная природа делает его идеальным для веба, но невидимым для аналогового мира и устаревшего программного обеспечения. Файл SVG, отправленный по электронной почте, может отображаться в клиенте получателя как непонятный XML-текст. SVG, прикрепленный к документу Word, может вообще не отображаться в старых версиях Office.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG преобразует каждое изображение в матрицу пикселей с информацией о цвете, сжатой алгоритмом JPEG. Поскольку он не поддерживает альфа-канал, конвертер автоматически объединяет фон со сплошным белым цветом. Взамен вы получаете файл, который открывается на <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
+ 'Ни один байт вашего SVG не покидает браузер',
115
+ 'Точный рендеринг с использованием нативного движка браузера',
116
+ 'JPG в разрешении 2x для максимальной четкости',
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. Визуальный результат отрисовывается на <strong>HTML5 Canvas</strong> с предварительной заливкой белым фоном (требуется, так как JPG не поддерживает прозрачность) в двойном масштабе для максимизации выходного разрешения.',
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 могут выглядеть в JPG немного иначе из-за различий в цветовых профилях при сжатии JPEG. Всегда просматривайте результат перед отправкой на принтер или использованием в печатных маркетинговых материалах, где важна точная передача фирменных цветов.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Варианты использования и совместимость',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Публикация логотипов и иллюстраций SVG в Facebook, Twitter или LinkedIn.',
150
+ 'Прикрепление векторной графики в электронных письмах через Outlook или Gmail.',
151
+ 'Вставка дизайнов SVG в документы Word, Excel или презентации.',
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: 'ru', 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 = 'konvertera-svg-till-jpg';
6
+ const title = 'Konvertera SVG till JPG Online och Gratis';
7
+ const description =
8
+ 'Konvertera SVG-vektorfiler till JPG i din webbläsare. 2x högupplöst rendering. Inga filuppladdningar. Gratis och 100 % privat.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Dra SVG-filer hit...',
12
+ convertText: 'För att konvertera dem till JPG direkt',
13
+ selectFiles: 'Välj filer',
14
+ processedFiles: 'Bearbetade filer',
15
+ downloadAll: 'Ladda ner alla (.zip)',
16
+ pending: 'Väntande',
17
+ bibliographyTitle: 'Bibliografiska Referenser',
18
+ faqTitle: 'Vanliga Frågor',
19
+ };
20
+
21
+ const faq: SvgAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Varför konvertera SVG till JPG?',
24
+ answer:
25
+ 'JPG erbjuder maximal kompatibilitet på alla typer av enheter; att konvertera SVG till JPG är det bästa sättet att säkerställa att alla kan se din design utan renderingsproblem.',
26
+ },
27
+ {
28
+ question: 'Vad händer med SVG-transparensen?',
29
+ answer:
30
+ 'Vid konvertering till JPG (som inte stöder transparens) kommer en ogenomskinlig vit bakgrund automatiskt att läggas till i din vektorkomposition.',
31
+ },
32
+ {
33
+ question: 'Vilken upplösning kommer den resulterande JPG-filen att ha?',
34
+ answer:
35
+ 'Verktyget renderar SVG:n i dubbel skala (2x) för att garantera en hög upplösning som är lämplig för Retina-skärmar och professionell användning.',
36
+ },
37
+ ];
38
+
39
+ const howTo: SvgAJpgLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Lägg till dina vektorfiler',
42
+ text: 'Släpp dina SVG-filer i det övre området för att förbereda exportlistan.',
43
+ },
44
+ {
45
+ name: 'Rastring till JPG',
46
+ text: 'Verktyget kommer att omvandla vektorerna till högupplösta pixlar och generera din JPG-fil direkt.',
47
+ },
48
+ {
49
+ name: 'Ladda ner resultaten',
50
+ text: 'Hämta dina JPG-filer en och en eller som ett ZIP-paket.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: SvgAJpgLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'W3C SVG-specifikation',
57
+ url: 'https://www.w3.org/TR/SVG/',
58
+ },
59
+ {
60
+ name: 'Översikt över JPEG-standarden',
61
+ url: 'https://jpeg.org/jpeg/',
62
+ },
63
+ ];
64
+
65
+ const seo: SvgAJpgLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'SVG till JPG-konverterare: Ta dina vektorer till valfri plattform',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: '<strong>SVG</strong>-formatet är det moderna webbens modersmål: lättviktigt, skalbart, redigerbart. Men det finns hela plattformar som helt enkelt inte förstår vektorer. Sociala medier, e-postklienter, Word-dokument, utskriftsapplikationer och den stora majoriteten av programvara i den verkliga världen arbetar med rastrerade bilder. <strong>JPG</strong> är den universella gemensamma nämnaren: accepterad överallt, utan undantag, inga insticksprogram och inga ytterligare konverteringar behövs.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'SVG vs JPG: När vektorn behöver bli ett foto',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'SVG lagrar bilden som matematiska instruktioner. Denna vektornatur gör den perfekt för webben men osynlig för den analoga världen och äldre programvara. En SVG-fil som skickas via e-post kan visas som obegriplig XML-text i mottagarens klient. En SVG som bifogas till ett Word-dokument kanske inte renderas alls i äldre versioner av Office.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'JPG konverterar varje bild till en pixelmatris med färginformation som komprimerats av JPEG-algoritmen. Eftersom det inte stöder en alfakanal slår konverteraren automatiskt ihop bakgrunden med solid vit färg. I gengäld får du en fil som kan öppnas på <em>vilken enhet som helst på planeten</em>: gamla mobiltelefoner, skrivare, smart-TV-apparater, redigeringsappar från tjugo år sedan. Det är formatet med den minsta gemensamma nämnaren, och i många sammanhang det mest värdefulla.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Jämförelse: Lokal vs Molnkonvertering',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Molnkonverterare',
98
+ description: 'Verktyg som laddar upp dina filer till en fjärrserver.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Din SVG-kod (med skyddad designdata) skickas till externa servrar',
103
+ 'Inkonsekvent rendering av teckensnitt och övertoningar',
104
+ 'Internetanslutning krävs för varje konvertering',
105
+ 'JPG-utdatakvalitet är inte alltid konfigurerbar',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Vår Lokala Arkitektur',
110
+ description: 'Direkt bearbetning på din hårdvara med Vanilla JS-teknik.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Noll byte av din SVG lämnar webbläsaren',
115
+ 'Trogen rendering med den infödda webbläsarmotorn',
116
+ '2x högupplöst JPG för maximal skärpa',
117
+ 'Vit bakgrund tillämpas automatiskt enligt JPG-standard',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Hur det fungerar tekniskt',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'SVG-filen laddas in i ett <strong>Image</strong>-element i webbläsaren, som använder sin egen vektorrenderingsmotor för att tolka XML-filen. Det visuella resultatet ritas på ett <strong>HTML5 Canvas</strong> med en föregående vit bakgrundsfyllning (krävs eftersom JPG inte stöder transparens) i dubbel skala för att maximera utdataupplösningen.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Metoden <code>toDataURL(\'image/jpeg\', 0.92)</code> omvandlar canvaspixlarna till en JPG-fil av hög kvalitet. SVG-färger kan uppleva små variationer på grund av färgrymdskonvertering vid JPEG-komprimering. Det är därför lämpligt att förhandsgranska resultatet innan du använder det i professionella utskriftsjobb där kromatisk trohet är avgörande.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Tips för användning i tryck',
138
+ html: 'SVG-bakgrunder och övertoningar kan se något annorlunda ut i JPG på grund av färgprofilskillnader vid JPEG-komprimering. Förhandsgranska alltid resultatet innan du skickar till en skrivare eller använder det i tryckt marknadsföringsmaterial där exakt färgåtergivning för varumärket är viktigt.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Användningsområden och kompatibilitet',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Dela SVG-logotyper och illustrationer på Facebook, Twitter eller LinkedIn.',
150
+ 'Bifoga vektorgrafik i e-postmeddelanden via Outlook eller Gmail.',
151
+ 'Infoga SVG-design i Word-dokument, Excel eller presentationer.',
152
+ 'Publicera produktbilder i onlinebutiker som inte stöder SVG.',
153
+ 'Förbereda filer för print-on-demand-tjänster.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Slutsats',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Den verkliga världen talar fortfarande i pixlar. Detta verktyg översätter dina SVG-vektorer till det universella språket JPG på några sekunder, med högupplöst rendering och utan att din skyddade design någonsin lämnar din webbläsare.',
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: 'sv', faq, howTo }),
178
+ };