@jjlmoya/utils-converters 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) 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/title_quality.test.ts +55 -0
  10. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  11. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  12. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  15. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  25. package/src/tool/avifAJpg/index.ts +13 -1
  26. package/src/tool/avifAPng/i18n/de.ts +178 -0
  27. package/src/tool/avifAPng/i18n/en.ts +2 -12
  28. package/src/tool/avifAPng/i18n/es.ts +2 -12
  29. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  30. package/src/tool/avifAPng/i18n/id.ts +178 -0
  31. package/src/tool/avifAPng/i18n/it.ts +178 -0
  32. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  34. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  35. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  37. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  38. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  39. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  40. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  41. package/src/tool/avifAPng/index.ts +13 -1
  42. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  43. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  44. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  47. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  57. package/src/tool/avifAWebp/index.ts +13 -1
  58. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  59. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  60. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  63. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  73. package/src/tool/bmpAJpg/index.ts +13 -1
  74. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  75. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  76. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  79. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  89. package/src/tool/bmpAPng/index.ts +13 -1
  90. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  91. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  92. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  95. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  105. package/src/tool/bmpAWebp/index.ts +13 -1
  106. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  107. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  108. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  111. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  121. package/src/tool/gifAJpg/index.ts +13 -1
  122. package/src/tool/gifAPng/i18n/de.ts +178 -0
  123. package/src/tool/gifAPng/i18n/en.ts +2 -12
  124. package/src/tool/gifAPng/i18n/es.ts +2 -12
  125. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  126. package/src/tool/gifAPng/i18n/id.ts +178 -0
  127. package/src/tool/gifAPng/i18n/it.ts +178 -0
  128. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  130. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  131. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  133. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  134. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  135. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  136. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  137. package/src/tool/gifAPng/index.ts +12 -0
  138. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  139. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  140. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  143. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  153. package/src/tool/gifAWebp/index.ts +12 -0
  154. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  155. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  156. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  159. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  165. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  166. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  169. package/src/tool/imagenBase64/index.ts +12 -0
  170. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  171. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  172. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  173. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  174. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  175. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  185. package/src/tool/jpgAIco/index.ts +12 -0
  186. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  187. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  188. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  191. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  201. package/src/tool/jpgAPng/index.ts +13 -1
  202. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  203. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  204. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  207. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  217. package/src/tool/jpgAWebp/index.ts +12 -0
  218. package/src/tool/pngAIco/i18n/de.ts +183 -0
  219. package/src/tool/pngAIco/i18n/en.ts +8 -13
  220. package/src/tool/pngAIco/i18n/es.ts +19 -24
  221. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  222. package/src/tool/pngAIco/i18n/id.ts +183 -0
  223. package/src/tool/pngAIco/i18n/it.ts +183 -0
  224. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  226. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  227. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  229. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  230. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  231. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  232. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  233. package/src/tool/pngAIco/index.ts +12 -0
  234. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  235. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  236. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  239. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  249. package/src/tool/pngAJpg/index.ts +13 -1
  250. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  251. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  252. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  255. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  265. package/src/tool/pngAWebp/index.ts +12 -0
  266. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  267. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  268. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  270. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  271. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  281. package/src/tool/svgAJpg/index.ts +12 -0
  282. package/src/tool/svgAPng/i18n/de.ts +178 -0
  283. package/src/tool/svgAPng/i18n/en.ts +8 -13
  284. package/src/tool/svgAPng/i18n/es.ts +31 -36
  285. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  286. package/src/tool/svgAPng/i18n/id.ts +178 -0
  287. package/src/tool/svgAPng/i18n/it.ts +178 -0
  288. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  290. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  291. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  293. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  294. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  295. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  296. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  297. package/src/tool/svgAPng/index.ts +12 -0
  298. package/src/tool/webpAIco/i18n/de.ts +183 -0
  299. package/src/tool/webpAIco/i18n/en.ts +8 -13
  300. package/src/tool/webpAIco/i18n/es.ts +9 -14
  301. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  302. package/src/tool/webpAIco/i18n/id.ts +183 -0
  303. package/src/tool/webpAIco/i18n/it.ts +183 -0
  304. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  306. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  307. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  309. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  310. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  311. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  312. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  313. package/src/tool/webpAIco/index.ts +12 -0
  314. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  315. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  316. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  317. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  318. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  319. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  329. package/src/tool/webpAJpg/index.ts +12 -0
  330. package/src/tool/webpAPng/i18n/de.ts +182 -0
  331. package/src/tool/webpAPng/i18n/en.ts +8 -13
  332. package/src/tool/webpAPng/i18n/es.ts +35 -40
  333. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  334. package/src/tool/webpAPng/i18n/id.ts +182 -0
  335. package/src/tool/webpAPng/i18n/it.ts +182 -0
  336. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  338. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  339. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  341. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  342. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  343. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  344. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  345. package/src/tool/webpAPng/index.ts +12 -0
@@ -0,0 +1,191 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { PngAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'konwerter-png-na-jpg';
6
+ const title = 'Konwertuj PNG na JPG Online';
7
+ const description =
8
+ 'Błyskawicznie konwertuj swoje obrazy PNG do formatu JPG z szybką kompresją na własnym komputerze. Bez przesyłania zdjęć do Internetu. Optymalizacja wsadowa.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Przeciągnij pliki PNG...',
12
+ convertText: 'Aby błyskawicznie konwertować je na JPG',
13
+ selectFiles: 'Wybierz pliki',
14
+ processedFiles: 'Przetworzone pliki',
15
+ downloadAll: 'Pobierz wszystko (.zip)',
16
+ pending: 'Oczekiwanie',
17
+ bibliographyTitle: 'Bibliografia',
18
+ faqTitle: 'Często zadawane pytania',
19
+ };
20
+
21
+ const faq: PngAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Dlaczego warto wybrać nasz lokalny konwerter PNG na JPG?',
24
+ answer:
25
+ 'W przeciwieństwie do konwencjonalnych narzędzi, nasz program przetwarza pliki w całości w Twojej przeglądarce. Twoje obrazy nigdy nie trafiają na obcy dysk twardy, co gwarantuje pełną suwerenność i prywatność Twoich danych.',
26
+ },
27
+ {
28
+ question: 'JPG czy PNG? Co jest lepsze w moim przypadku?',
29
+ answer:
30
+ 'PNG jest idealny do logotypów i elementów z przezroczystością. Jednak JPG jest złotym standardem dla fotografii i banerów internetowych, ponieważ osiąga znacznie mniejszą wagę, co drastycznie poprawia prędkość ładowania strony.',
31
+ },
32
+ {
33
+ question: 'Jak działa techniczna konwersja bez przesyłania czegokolwiek?',
34
+ answer:
35
+ 'Wykorzystujemy moc Canvas HTML5. Przeglądarka odtwarza obraz na niewidocznym wirtualnym płótnie, wypełnia przezroczystości kolorem białym i generuje strumień bajtów, który pobierasz bezpośrednio w mgnieniu oka.',
36
+ },
37
+ {
38
+ question: 'Czy jest to bezpieczne dla dokumentów poufnych?',
39
+ answer:
40
+ 'Tak, to najbezpieczniejsza opcja dla profesjonalistów z branży bankowej, służby zdrowia czy prawa. Będąc „czarną skrzynką”, która używa tylko Twojej pamięci RAM, to, co dzieje się wewnątrz, znika wraz z zamknięciem karty, co zapobiega wyciekom w chmurach zewnętrznych.',
41
+ },
42
+ ];
43
+
44
+ const howTo: PngAJpgLocaleContent['howTo'] = [
45
+ {
46
+ name: 'Wybór plików',
47
+ text: 'Przygotuj swoje pliki PNG w folderze i przeciągnij je wszystkie razem do obszaru przetwarzania lub wyszukaj je za pomocą eksploratora.',
48
+ },
49
+ {
50
+ name: 'Błyskawiczne przetwarzanie',
51
+ text: 'Sprawdź, czy status zmieni się na „Gotowe” dla każdego pliku, podczas gdy przeglądarka optymalizuje wagę lokalnie.',
52
+ },
53
+ {
54
+ name: 'Zoptymalizowane pobieranie',
55
+ text: 'Zapisz swoje nowe pliki JPG jeden po drugim lub użyj przycisku „Pobierz wszystko”, aby uzyskać skompresowany plik ZIP ze wszystkimi obrazami.',
56
+ },
57
+ ];
58
+
59
+ const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
+ {
61
+ name: 'Specyfikacje PNG Consortium',
62
+ url: 'http://www.libpng.org/pub/png/',
63
+ },
64
+ {
65
+ name: 'Komitet JPEG',
66
+ url: 'https://jpeg.org/',
67
+ },
68
+ ];
69
+
70
+ const seo: PngAJpgLocaleContent['seo'] = [
71
+ {
72
+ type: 'title',
73
+ text: 'Konwerter PNG na JPG: Ostateczny Przewodnik po Optymalizacji Obrazów',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'W świecie cyfrowego projektowania i tworzenia stron internetowych wydajność jest wszystkim. Format PNG (Portable Network Graphics) jest ceniony za zdolność zachowania przezroczystości i kompresję bezstratną, ale ma jednego wielkiego wroga: wagę pliku. Gdy chcesz, aby Twoja strona internetowa „latała” lub Twoje e-maile ładowały się błyskawicznie, przejście z PNG na JPG jest najmądrzejszą decyzją techniczną.',
79
+ },
80
+ {
81
+ type: 'title',
82
+ text: 'JPG czy PNG?',
83
+ level: 3,
84
+ },
85
+ {
86
+ type: 'paragraph',
87
+ html: 'Nie ma formatu lepszego od innego, istnieje tylko narzędzie do konkretnej potrzeby. PNG to format bezstratny, idealny do makiet interfejsów, logotypów z małym tekstem i elementów wizualnych wymagających przezroczystego tła. Jednak ta wierność ma swoją cenę: pliki mogą być 5 lub 10 razy cięższe niż ich skompresowane odpowiedniki.',
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'Z drugiej strony JPG (Joint Photographic Experts Group) używa algorytmów dyskretyzacji, aby usunąć informacje, których oko ludzkie prawie nie zauważa, osiągając wagę piórkową. Jest to złoty standard dla fotografii, banerów reklamowych i mediów społecznościowych. Konwertując swoje PNG na JPG, wymieniasz wierność geometryczną na prędkość sieci.',
92
+ },
93
+ {
94
+ type: 'title',
95
+ text: 'Porównanie architektury: Lokalna vs Chmura',
96
+ level: 3,
97
+ },
98
+ {
99
+ type: 'comparative',
100
+ items: [
101
+ {
102
+ title: 'Konwertery w chmurze',
103
+ description: 'Tradycyjne narzędzia, które przesyłają Twoje zdjęcia na zdalny serwer.',
104
+ icon: 'mdi:cloud-upload',
105
+ pointIcon: 'mdi:close-circle-outline',
106
+ points: [
107
+ 'Opóźnienie sieci (Upload/Download)',
108
+ 'Ryzyko wycieku prywatnych danych',
109
+ 'Limity rozmiaru pliku',
110
+ 'Reklamy i trackery',
111
+ ],
112
+ },
113
+ {
114
+ title: 'Nasza lokalna architektura',
115
+ description: 'Bezpośrednie przetwarzanie na Twoim sprzęcie za pomocą technologii Vanilla JS.',
116
+ icon: 'mdi:laptop-mac',
117
+ highlight: true,
118
+ points: [
119
+ 'Natychmiastowa prędkość bez sieci',
120
+ 'Gwarantowana prywatność (0 bajtów przesłanych)',
121
+ 'Brak limitów MB na plik',
122
+ 'Profesjonalny i czysty interfejs',
123
+ ],
124
+ },
125
+ ],
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Jak działa techniczna konwersja',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'Pewnie zastanawiasz się, jak to możliwe, aby konwertować obraz bez wysyłania go na serwer. Magia tkwi w mocy nowoczesnych przeglądarek. Gdy wybierasz plik, generujemy Blob, który istnieje tylko w Twojej pamięci RAM. Ten Blob jest rysowany na niewidocznym elemencie HTML5 Canvas.',
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: 'Ponieważ JPG nie obsługuje przezroczystości, nasz algorytm wypełnia tło jednolitym białym kolorem przed „namalowaniem” na nim obrazu PNG. Po skomponowaniu obrazu uruchamiamy natywną metodę eksportu, generując strumień bajtów, który Twój komputer pobiera bezpośrednio.',
139
+ },
140
+ {
141
+ type: 'tip',
142
+ title: 'Wskazówka SEO: Idealna waga',
143
+ html: 'Google aktywnie karze wolne witryny internetowe. Jeśli Twój Largest Contentful Paint (LCP) jest wysoki z powodu nagłówka PNG o rozmiarze 2MB, konwersja na JPG o rozmiarze 200KB może natychmiast poprawić Twoje wskaźniki PageSpeed bez różnic wizualnych.',
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Bezpieczeństwo dla firm i profesjonalistów',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Jeśli pracujesz w sektorach wrażliwych, takich jak bankowość, służba zdrowia czy prawo, przesyłanie plików do konwerterów online jest naruszeniem bezpieczeństwa. Nasze narzędzie działa jak „czarna skrzynka”: to, co dzieje się wewnątrz, pozostaje w Twojej pamięci RAM. To jedyny bezpieczny sposób pracy z poufnymi dokumentami.',
153
+ },
154
+ {
155
+ type: 'title',
156
+ text: 'Kompatybilność wyniku',
157
+ level: 3,
158
+ },
159
+ {
160
+ type: 'list',
161
+ icon: 'mdi:check-circle',
162
+ items: [
163
+ 'Przeglądarki w Windows, macOS i urządzeniach mobilnych.',
164
+ 'Media społecznościowe (Instagram, LinkedIn itp.).',
165
+ 'Narzędzia biurowe (Word, PowerPoint).',
166
+ 'Systemy zarządzania treścią (WordPress, Shopify).',
167
+ ],
168
+ },
169
+ {
170
+ type: 'title',
171
+ text: 'Podsumowanie: Optymalizuj jak profesjonalista',
172
+ level: 3,
173
+ },
174
+ {
175
+ type: 'paragraph',
176
+ html: 'Ten konwerter to nie tylko kolejna strona; to dzieło inżynierii zaprojektowane, aby ułatwić Ci życie. Niezależnie od tego, czy jesteś programistą, czy użytkownikiem domowym, masz tutaj ostateczne rozwiązanie pozwalające zaoszczędzić megabajty i zachować bezpieczeństwo swoich danych.',
177
+ },
178
+ ];
179
+
180
+
181
+ export const content: PngAJpgLocaleContent = {
182
+ slug,
183
+ title,
184
+ description,
185
+ ui,
186
+ seo,
187
+ faq,
188
+ bibliography,
189
+ howTo,
190
+ schemas: generateSchemas({ title, description, inLanguage: 'pl', faq, howTo }),
191
+ };
@@ -0,0 +1,191 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { PngAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'conversor-png-para-jpg';
6
+ const title = 'Converter PNG para JPG Online';
7
+ const description =
8
+ 'Converta instantaneamente as suas imagens PNG para o formato JPG com compressão rápida no seu próprio computador. Sem enviar fotos para a Internet. Optimização em lote.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Arraste os ficheiros PNG...',
12
+ convertText: 'Para convertê-los para JPG instantaneamente',
13
+ selectFiles: 'Selecionar ficheiros',
14
+ processedFiles: 'Ficheiros processados',
15
+ downloadAll: 'Descarregar Tudo (.zip)',
16
+ pending: 'Pendente',
17
+ bibliographyTitle: 'Referências Bibliográficas',
18
+ faqTitle: 'Perguntas Frequentes',
19
+ };
20
+
21
+ const faq: PngAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Porquê escolher o nosso conversor local de PNG para JPG?',
24
+ answer:
25
+ 'Ao contrário das ferramentas convencionais, o nosso utilitário processa os ficheiros inteiramente no seu navegador. As suas imagens nunca tocam num disco rígido de terceiros, garantindo a total soberania e privacidade dos seus dados.',
26
+ },
27
+ {
28
+ question: 'JPG ou PNG? Qual é o melhor para o meu caso?',
29
+ answer:
30
+ 'O PNG é ideal para logótipos e elementos com transparência. No entanto, o JPG é o padrão de excelência para fotografias e banners web, uma vez que atinge pesos muito mais reduzidos, melhorando drasticamente a velocidade de carregamento de um sítio.',
31
+ },
32
+ {
33
+ question: 'Como funciona a conversão técnica sem enviar nada?',
34
+ answer:
35
+ 'Utilizamos o poder do Canvas do HTML5. O navegador recria a imagem numa tela virtual invisível, preenche as transparências com branco e gera um fluxo de bytes que o utilizador descarrega diretamente no instante.',
36
+ },
37
+ {
38
+ question: 'É seguro para documentos confidenciais?',
39
+ answer:
40
+ 'Sim, é a opção mais segura para profissionais da banca, saúde ou direito. Sendo uma "caixa negra" que utiliza apenas a sua memória RAM, o que acontece lá dentro morre ao fechar o separador, evitando fugas em nuvens de terceiros.',
41
+ },
42
+ ];
43
+
44
+ const howTo: PngAJpgLocaleContent['howTo'] = [
45
+ {
46
+ name: 'Seleção de ficheiros',
47
+ text: 'Prepare os seus ficheiros PNG numa pasta e arraste-os todos juntos para a área de processamento ou procure-os com o explorador.',
48
+ },
49
+ {
50
+ name: 'Processamento instantâneo',
51
+ text: 'Verifique se o estado muda para "Pronto" para cada ficheiro enquanto o navegador otimiza o peso localmente.',
52
+ },
53
+ {
54
+ name: 'Descarregamento otimizado',
55
+ text: 'Guarde os seus novos JPG um a um ou utilize o botão "Descarregar Tudo" para obter um ficheiro ZIP comprimido com todas as imagens.',
56
+ },
57
+ ];
58
+
59
+ const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
+ {
61
+ name: 'Especificações PNG Consortium',
62
+ url: 'http://www.libpng.org/pub/png/',
63
+ },
64
+ {
65
+ name: 'O comité JPEG',
66
+ url: 'https://jpeg.org/',
67
+ },
68
+ ];
69
+
70
+ const seo: PngAJpgLocaleContent['seo'] = [
71
+ {
72
+ type: 'title',
73
+ text: 'Conversor de PNG para JPG: O Guia Definitivo para a Optimização de Imagens',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'No mundo do design digital e do desenvolvimento web, a eficiência é tudo. O formato PNG (Portable Network Graphics) é amado pela sua capacidade de manter transparências e pela sua compressão sem perda, mas tem um grande inimigo: o peso do ficheiro. Quando precisa que o seu sítio web voe ou que os seus emails carreguem instantaneamente, a mudança de PNG para JPG é a decisão técnica mais inteligente.',
79
+ },
80
+ {
81
+ type: 'title',
82
+ text: 'JPG ou PNG?',
83
+ level: 3,
84
+ },
85
+ {
86
+ type: 'paragraph',
87
+ html: 'Não existe um formato melhor do que o outro, mas sim uma ferramenta para cada necessidade. O PNG é um formato sem perda, ideal para maquetes de interfaces, logótipos com texto pequeno e elementos visuais que requerem um fundo transparente. No entanto, esta fidelidade tem um custo: ficheiros que podem ser 5 ou 10 vezes mais pesados do que o seu equivalente comprimido.',
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'O JPG (Joint Photographic Experts Group), por outro lado, utiliza algoritmos de discretização para remover informação que o olho humano mal percebe, conseguindo pesos pluma. É o padrão de excelência para fotografias, banners publicitários e redes sociais. Ao converter os seus PNG para JPG, está a trocar fidelidade geométrica por velocidade de rede.',
92
+ },
93
+ {
94
+ type: 'title',
95
+ text: 'Comparação de Arquitetura: Local vs Nuvem',
96
+ level: 3,
97
+ },
98
+ {
99
+ type: 'comparative',
100
+ items: [
101
+ {
102
+ title: 'Conversores Cloud',
103
+ description: 'Ferramentas tradicionais que enviam as suas fotos para um servidor remoto.',
104
+ icon: 'mdi:cloud-upload',
105
+ pointIcon: 'mdi:close-circle-outline',
106
+ points: [
107
+ 'Latência de rede (Upload/Download)',
108
+ 'Risco de fuga de dados privados',
109
+ 'Limites de tamanho por ficheiro',
110
+ 'Publicidade e rastreadores',
111
+ ],
112
+ },
113
+ {
114
+ title: 'A Nossa Arquitetura Local',
115
+ description: 'Processamento direto no seu hardware através de tecnologia Vanilla JS.',
116
+ icon: 'mdi:laptop-mac',
117
+ highlight: true,
118
+ points: [
119
+ 'Velocidade instantânea sem rede',
120
+ 'Privacidade garantida (0 bytes enviados)',
121
+ 'Sem limites de MB por ficheiro',
122
+ 'Interface profissional e limpa',
123
+ ],
124
+ },
125
+ ],
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Como funciona a conversão técnica',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'Provavelmente pergunta-se como é possível converter uma imagem sem a enviar para um servidor. A magia reside no poder dos navegadores modernos. Quando seleciona um ficheiro, geramos um Blob que apenas existe na sua memória RAM. Esse Blob é desenhado num elemento HTML5 Canvas invisível.',
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: 'Dado que o JPG não suporta transparências, o nosso algoritmo preenche o fundo com uma cor branca sólida antes de "pintar" o PNG por cima. Uma vez composta a imagem, executamos o método de exportação nativo, gerando um fluxo de bytes que o seu computador descarrega diretamente.',
139
+ },
140
+ {
141
+ type: 'tip',
142
+ title: 'Conselho SEO: O Peso Ideal',
143
+ html: 'A Google penaliza ativamente os sítios web lentos. Se o seu Largest Contentful Paint (LCP) é elevado por culpa de um PNG de cabeçalho de 2MB, convertê-lo para um JPG de 200KB pode melhorar as suas métricas de PageSpeed instantaneamente, sem diferenças visuais.',
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Segurança para Empresas e Profissionais',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Se trabalha em setores sensíveis como a banca, a saúde ou o direito, enviar ficheiros para conversores online é uma violação de segurança. A nossa ferramenta funciona como uma "caixa negra": o que acontece lá dentro fica na sua RAM. É a única forma segura de trabalhar com documentos confidenciais.',
153
+ },
154
+ {
155
+ type: 'title',
156
+ text: 'Compatibilidade do Resultado',
157
+ level: 3,
158
+ },
159
+ {
160
+ type: 'list',
161
+ icon: 'mdi:check-circle',
162
+ items: [
163
+ 'Visualizadores do Windows, macOS e dispositivos móveis.',
164
+ 'Redes sociais (Instagram, LinkedIn, etc).',
165
+ 'Ferramentas de escritório (Word, PowerPoint).',
166
+ 'Gestores de conteúdo (WordPress, Shopify).',
167
+ ],
168
+ },
169
+ {
170
+ type: 'title',
171
+ text: 'Conclusão: Otimize como um Profissional',
172
+ level: 3,
173
+ },
174
+ {
175
+ type: 'paragraph',
176
+ html: 'Este conversor não é apenas mais uma página; é uma peça de engenharia desenhada para lhe facilitar a vida. Quer seja um programador ou um utilizador doméstico, aqui tem a solução definitiva para poupar megabytes e manter os seus dados a salvo.',
177
+ },
178
+ ];
179
+
180
+
181
+ export const content: PngAJpgLocaleContent = {
182
+ slug,
183
+ title,
184
+ description,
185
+ ui,
186
+ seo,
187
+ faq,
188
+ bibliography,
189
+ howTo,
190
+ schemas: generateSchemas({ title, description, inLanguage: 'pt', faq, howTo }),
191
+ };
@@ -0,0 +1,191 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { PngAJpgLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-png-v-jpg';
6
+ const title = 'Конвертировать PNG в JPG Онлайн';
7
+ const description =
8
+ 'Мгновенно конвертируйте ваши PNG-изображения в быстро сжимаемый формат JPG прямо на вашем компьютере. Без загрузки фотографий в интернет. Пакетная оптимизация.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Перетащите файлы PNG...',
12
+ convertText: 'Чтобы мгновенно конвертировать их в JPG',
13
+ selectFiles: 'Выбрать файлы',
14
+ processedFiles: 'Обработанные файлы',
15
+ downloadAll: 'Скачать всё (.zip)',
16
+ pending: 'В ожидании',
17
+ bibliographyTitle: 'Библиографические ссылки',
18
+ faqTitle: 'Часто задаваемые вопросы',
19
+ };
20
+
21
+ const faq: PngAJpgLocaleContent['faq'] = [
22
+ {
23
+ question: 'Почему стоит выбрать наш локальный конвертер PNG в JPG?',
24
+ answer:
25
+ 'В отличие от традиционных инструментов, наша утилита обрабатывает файлы полностью в вашем браузере. Ваши изображения никогда не попадают на чужой жесткий диск, гарантируя полный суверенитет и конфиденциальность ваших данных.',
26
+ },
27
+ {
28
+ question: 'JPG или PNG? Что лучше в моем случае?',
29
+ answer:
30
+ 'PNG идеально подходит для логотипов и элементов с прозрачностью. Однако JPG является золотым стандартом для фотографий и веб-баннеров, так как он обеспечивает гораздо меньший размер файлов, что значительно повышает скорость загрузки сайта.',
31
+ },
32
+ {
33
+ question: 'Как работает техническая конвертация без загрузки на сервер?',
34
+ answer:
35
+ 'Мы используем мощь HTML5 Canvas. Браузер воссоздает изображение на невидимом виртуальном холсте, заполняет прозрачные области белым цветом и генерирует поток байтов, который вы мгновенно скачиваете напрямую.',
36
+ },
37
+ {
38
+ question: 'Безопасно ли это для конфиденциальных документов?',
39
+ answer:
40
+ 'Да, это самый безопасный вариант для специалистов в области банковского дела, здравоохранения или права. Поскольку утилита представляет собой «черный ящик», использующий только вашу оперативную память, всё, что происходит внутри, исчезает при закрытии вкладки, что исключает утечки в сторонние облачные хранилища.',
41
+ },
42
+ ];
43
+
44
+ const howTo: PngAJpgLocaleContent['howTo'] = [
45
+ {
46
+ name: 'Выбор файлов',
47
+ text: 'Подготовьте файлы PNG в папке и перетащите их все вместе в область обработки или найдите их с помощью проводника.',
48
+ },
49
+ {
50
+ name: 'Мгновенная обработка',
51
+ text: 'Убедитесь, что статус изменится на «Готово» для каждого файла, пока браузер оптимизирует размер локально.',
52
+ },
53
+ {
54
+ name: 'Оптимизированное скачивание',
55
+ text: 'Сохраняйте новые JPG по одному или используйте кнопку «Скачать всё», чтобы получить сжатый ZIP-архив со всеми изображениями.',
56
+ },
57
+ ];
58
+
59
+ const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
+ {
61
+ name: 'Спецификации PNG Consortium',
62
+ url: 'http://www.libpng.org/pub/png/',
63
+ },
64
+ {
65
+ name: 'Комитет JPEG',
66
+ url: 'https://jpeg.org/',
67
+ },
68
+ ];
69
+
70
+ const seo: PngAJpgLocaleContent['seo'] = [
71
+ {
72
+ type: 'title',
73
+ text: 'Конвертер PNG в JPG: Полное руководство по оптимизации изображений',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'В мире цифрового дизайна и веб-разработки эффективность — это всё. Формат PNG (Portable Network Graphics) ценят за способность сохранять прозрачность и сжатие без потерь, но у него есть один большой враг: вес файла. Если вы хотите, чтобы ваш сайт летал, а электронные письма загружались мгновенно, переход с PNG на JPG — самое разумное техническое решение.',
79
+ },
80
+ {
81
+ type: 'title',
82
+ text: 'JPG или PNG?',
83
+ level: 3,
84
+ },
85
+ {
86
+ type: 'paragraph',
87
+ html: 'Не существует формата лучше другого, есть инструмент для конкретной задачи. PNG — это формат без потерь, идеально подходящий для макетов интерфейсов, логотипов с мелким текстом и визуальных элементов, требующих прозрачного фона. Однако эта точность имеет свою цену: файлы могут быть в 5 или 10 раз тяжелее, чем их сжатые аналоги.',
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'С другой стороны, JPG (Joint Photographic Experts Group) использует алгоритмы дискретизации для удаления информации, которую человеческий глаз почти не воспринимает, достигая минимального веса. Это золотой стандарт для фотографий, рекламных баннеров и социальных сетей. Конвертируя PNG в JPG, вы обмениваете геометрическую точность на скорость сети.',
92
+ },
93
+ {
94
+ type: 'title',
95
+ text: 'Сравнение архитектур: Локальная vs Облачная',
96
+ level: 3,
97
+ },
98
+ {
99
+ type: 'comparative',
100
+ items: [
101
+ {
102
+ title: 'Облачные конвертеры',
103
+ description: 'Традиционные инструменты, которые загружают ваши фото на удаленный сервер.',
104
+ icon: 'mdi:cloud-upload',
105
+ pointIcon: 'mdi:close-circle-outline',
106
+ points: [
107
+ 'Сетевая задержка (загрузка/скачивание)',
108
+ 'Риск утечки личных данных',
109
+ 'Ограничения на размер файла',
110
+ 'Реклама и трекеры',
111
+ ],
112
+ },
113
+ {
114
+ title: 'Наша локальная архитектура',
115
+ description: 'Прямая обработка на вашем оборудовании с помощью технологии Vanilla JS.',
116
+ icon: 'mdi:laptop-mac',
117
+ highlight: true,
118
+ points: [
119
+ 'Мгновенная скорость без сети',
120
+ 'Гарантированная конфиденциальность (0 переданных байт)',
121
+ 'Без ограничений по весу файла',
122
+ 'Профессиональный и чистый интерфейс',
123
+ ],
124
+ },
125
+ ],
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Как работает техническая конвертация',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'Возможно, вы задаетесь вопросом, как можно конвертировать изображение, не отправляя его на сервер. Магия заключается в мощности современных браузеров. Когда вы выбираете файл, мы создаем Blob, который существует только в вашей оперативной памяти. Этот Blob отрисовывается на невидимом элементе HTML5 Canvas.',
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: 'Поскольку JPG не поддерживает прозрачность, наш алгоритм заполняет фон сплошным белым цветом перед тем, как «нарисовать» на нем PNG. После компоновки изображения мы запускаем нативный метод экспорта, создавая поток байтов, который ваш компьютер скачивает напрямую.',
139
+ },
140
+ {
141
+ type: 'tip',
142
+ title: 'SEO совет: Идеальный вес',
143
+ html: 'Google активно штрафует медленные сайты. Если ваш показатель Largest Contentful Paint (LCP) завышен из-за заглавного PNG весом 2 МБ, конвертация его в JPG весом 200 КБ может мгновенно улучшить показатели PageSpeed без видимых визуальных потерь.',
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Безопасность для компаний и профессионалов',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Если вы работаете в таких чувствительных секторах, как банковское дело, медицина или право, загрузка файлов в онлайн-конвертеры является нарушением безопасности. Наш инструмент работает как «черный ящик»: всё, что происходит внутри, остается в вашей оперативной памяти. Это единственный безопасный способ работы с конфиденциальными документами.',
153
+ },
154
+ {
155
+ type: 'title',
156
+ text: 'Совместимость результата',
157
+ level: 3,
158
+ },
159
+ {
160
+ type: 'list',
161
+ icon: 'mdi:check-circle',
162
+ items: [
163
+ 'Средства просмотра Windows, macOS и мобильных устройств.',
164
+ 'Социальные сети (Instagram, LinkedIn и др.).',
165
+ 'Офисные инструменты (Word, PowerPoint).',
166
+ 'Системы управления контентом (WordPress, Shopify).',
167
+ ],
168
+ },
169
+ {
170
+ type: 'title',
171
+ text: 'Заключение: Оптимизируйте как профи',
172
+ level: 3,
173
+ },
174
+ {
175
+ type: 'paragraph',
176
+ html: 'Этот конвертер — не просто еще одна страница; это произведение инженерной мысли, созданное для того, чтобы облегчить вам жизнь. Будь вы разработчиком или обычным пользователем, здесь вы найдете идеальное решение, чтобы сэкономить мегабайты и сохранить данные в безопасности.',
177
+ },
178
+ ];
179
+
180
+
181
+ export const content: PngAJpgLocaleContent = {
182
+ slug,
183
+ title,
184
+ description,
185
+ ui,
186
+ seo,
187
+ faq,
188
+ bibliography,
189
+ howTo,
190
+ schemas: generateSchemas({ title, description, inLanguage: 'ru', faq, howTo }),
191
+ };