@jjlmoya/utils-converters 1.15.0 → 1.18.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 (397) hide show
  1. package/package.json +8 -4
  2. package/scripts/clean_titles.py +95 -0
  3. package/scripts/postinstall.mjs +27 -0
  4. package/src/category/i18n/de.ts +1 -1
  5. package/src/category/i18n/fr.ts +9 -9
  6. package/src/category/i18n/ru.ts +1 -1
  7. package/src/category/i18n/sv.ts +1 -1
  8. package/src/data.ts +0 -21
  9. package/src/layouts/PreviewLayout.astro +2 -1
  10. package/src/pages/[locale]/[slug].astro +28 -12
  11. package/src/tests/diacritics_density.test.ts +118 -0
  12. package/src/tests/inverted_punctuation.test.ts +84 -0
  13. package/src/tests/no_en_dash.test.ts +70 -0
  14. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  15. package/src/tests/script_density.test.ts +94 -0
  16. package/src/tests/shared-test-helpers.ts +56 -0
  17. package/src/tests/tool_exports.test.ts +34 -0
  18. package/src/tool/avifAJpg/bibliography.ts +12 -0
  19. package/src/tool/avifAJpg/entry.ts +2 -0
  20. package/src/tool/avifAJpg/i18n/de.ts +2 -12
  21. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  22. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  23. package/src/tool/avifAJpg/i18n/fr.ts +11 -21
  24. package/src/tool/avifAJpg/i18n/id.ts +2 -12
  25. package/src/tool/avifAJpg/i18n/it.ts +2 -12
  26. package/src/tool/avifAJpg/i18n/ja.ts +1 -11
  27. package/src/tool/avifAJpg/i18n/ko.ts +1 -11
  28. package/src/tool/avifAJpg/i18n/nl.ts +2 -12
  29. package/src/tool/avifAJpg/i18n/pl.ts +2 -12
  30. package/src/tool/avifAJpg/i18n/pt.ts +2 -12
  31. package/src/tool/avifAJpg/i18n/ru.ts +7 -17
  32. package/src/tool/avifAJpg/i18n/sv.ts +2 -12
  33. package/src/tool/avifAJpg/i18n/tr.ts +1 -11
  34. package/src/tool/avifAJpg/i18n/zh.ts +4 -14
  35. package/src/tool/avifAJpg/seo.astro +2 -1
  36. package/src/tool/avifAPng/bibliography.ts +12 -0
  37. package/src/tool/avifAPng/entry.ts +2 -0
  38. package/src/tool/avifAPng/i18n/de.ts +4 -14
  39. package/src/tool/avifAPng/i18n/en.ts +4 -14
  40. package/src/tool/avifAPng/i18n/es.ts +4 -14
  41. package/src/tool/avifAPng/i18n/fr.ts +10 -20
  42. package/src/tool/avifAPng/i18n/id.ts +4 -14
  43. package/src/tool/avifAPng/i18n/it.ts +1 -11
  44. package/src/tool/avifAPng/i18n/ja.ts +1 -11
  45. package/src/tool/avifAPng/i18n/ko.ts +1 -11
  46. package/src/tool/avifAPng/i18n/nl.ts +4 -14
  47. package/src/tool/avifAPng/i18n/pl.ts +4 -14
  48. package/src/tool/avifAPng/i18n/pt.ts +4 -14
  49. package/src/tool/avifAPng/i18n/ru.ts +5 -15
  50. package/src/tool/avifAPng/i18n/sv.ts +4 -14
  51. package/src/tool/avifAPng/i18n/tr.ts +1 -11
  52. package/src/tool/avifAPng/i18n/zh.ts +3 -13
  53. package/src/tool/avifAPng/seo.astro +2 -1
  54. package/src/tool/avifAWebp/bibliography.ts +12 -0
  55. package/src/tool/avifAWebp/entry.ts +2 -0
  56. package/src/tool/avifAWebp/i18n/de.ts +6 -16
  57. package/src/tool/avifAWebp/i18n/en.ts +6 -16
  58. package/src/tool/avifAWebp/i18n/es.ts +6 -16
  59. package/src/tool/avifAWebp/i18n/fr.ts +13 -23
  60. package/src/tool/avifAWebp/i18n/id.ts +6 -16
  61. package/src/tool/avifAWebp/i18n/it.ts +1 -11
  62. package/src/tool/avifAWebp/i18n/ja.ts +1 -11
  63. package/src/tool/avifAWebp/i18n/ko.ts +2 -12
  64. package/src/tool/avifAWebp/i18n/nl.ts +6 -16
  65. package/src/tool/avifAWebp/i18n/pl.ts +6 -16
  66. package/src/tool/avifAWebp/i18n/pt.ts +6 -16
  67. package/src/tool/avifAWebp/i18n/ru.ts +7 -17
  68. package/src/tool/avifAWebp/i18n/sv.ts +6 -16
  69. package/src/tool/avifAWebp/i18n/tr.ts +2 -12
  70. package/src/tool/avifAWebp/i18n/zh.ts +6 -16
  71. package/src/tool/avifAWebp/seo.astro +2 -1
  72. package/src/tool/bmpAJpg/bibliography.ts +12 -0
  73. package/src/tool/bmpAJpg/entry.ts +2 -0
  74. package/src/tool/bmpAJpg/i18n/de.ts +1 -11
  75. package/src/tool/bmpAJpg/i18n/en.ts +1 -11
  76. package/src/tool/bmpAJpg/i18n/es.ts +1 -11
  77. package/src/tool/bmpAJpg/i18n/fr.ts +9 -19
  78. package/src/tool/bmpAJpg/i18n/id.ts +1 -11
  79. package/src/tool/bmpAJpg/i18n/it.ts +1 -11
  80. package/src/tool/bmpAJpg/i18n/ja.ts +1 -11
  81. package/src/tool/bmpAJpg/i18n/ko.ts +1 -11
  82. package/src/tool/bmpAJpg/i18n/nl.ts +1 -11
  83. package/src/tool/bmpAJpg/i18n/pl.ts +1 -11
  84. package/src/tool/bmpAJpg/i18n/pt.ts +1 -11
  85. package/src/tool/bmpAJpg/i18n/ru.ts +5 -15
  86. package/src/tool/bmpAJpg/i18n/sv.ts +1 -11
  87. package/src/tool/bmpAJpg/i18n/tr.ts +1 -11
  88. package/src/tool/bmpAJpg/i18n/zh.ts +1 -11
  89. package/src/tool/bmpAJpg/seo.astro +2 -1
  90. package/src/tool/bmpAPng/bibliography.ts +12 -0
  91. package/src/tool/bmpAPng/entry.ts +2 -0
  92. package/src/tool/bmpAPng/i18n/de.ts +2 -12
  93. package/src/tool/bmpAPng/i18n/en.ts +3 -13
  94. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  95. package/src/tool/bmpAPng/i18n/fr.ts +12 -22
  96. package/src/tool/bmpAPng/i18n/id.ts +2 -12
  97. package/src/tool/bmpAPng/i18n/it.ts +2 -12
  98. package/src/tool/bmpAPng/i18n/ja.ts +1 -11
  99. package/src/tool/bmpAPng/i18n/ko.ts +1 -11
  100. package/src/tool/bmpAPng/i18n/nl.ts +2 -12
  101. package/src/tool/bmpAPng/i18n/pl.ts +2 -12
  102. package/src/tool/bmpAPng/i18n/pt.ts +2 -12
  103. package/src/tool/bmpAPng/i18n/ru.ts +9 -19
  104. package/src/tool/bmpAPng/i18n/sv.ts +2 -12
  105. package/src/tool/bmpAPng/i18n/tr.ts +1 -11
  106. package/src/tool/bmpAPng/i18n/zh.ts +1 -11
  107. package/src/tool/bmpAPng/seo.astro +2 -1
  108. package/src/tool/bmpAWebp/bibliography.ts +12 -0
  109. package/src/tool/bmpAWebp/entry.ts +2 -0
  110. package/src/tool/bmpAWebp/i18n/de.ts +8 -18
  111. package/src/tool/bmpAWebp/i18n/en.ts +8 -18
  112. package/src/tool/bmpAWebp/i18n/es.ts +8 -18
  113. package/src/tool/bmpAWebp/i18n/fr.ts +13 -23
  114. package/src/tool/bmpAWebp/i18n/id.ts +8 -18
  115. package/src/tool/bmpAWebp/i18n/it.ts +8 -18
  116. package/src/tool/bmpAWebp/i18n/ja.ts +7 -17
  117. package/src/tool/bmpAWebp/i18n/ko.ts +7 -17
  118. package/src/tool/bmpAWebp/i18n/nl.ts +8 -18
  119. package/src/tool/bmpAWebp/i18n/pl.ts +8 -18
  120. package/src/tool/bmpAWebp/i18n/pt.ts +8 -18
  121. package/src/tool/bmpAWebp/i18n/ru.ts +10 -20
  122. package/src/tool/bmpAWebp/i18n/sv.ts +8 -18
  123. package/src/tool/bmpAWebp/i18n/tr.ts +8 -18
  124. package/src/tool/bmpAWebp/i18n/zh.ts +8 -18
  125. package/src/tool/bmpAWebp/seo.astro +2 -1
  126. package/src/tool/gifAJpg/bibliography.ts +12 -0
  127. package/src/tool/gifAJpg/entry.ts +2 -0
  128. package/src/tool/gifAJpg/i18n/de.ts +1 -11
  129. package/src/tool/gifAJpg/i18n/en.ts +1 -11
  130. package/src/tool/gifAJpg/i18n/es.ts +1 -11
  131. package/src/tool/gifAJpg/i18n/fr.ts +9 -19
  132. package/src/tool/gifAJpg/i18n/id.ts +1 -11
  133. package/src/tool/gifAJpg/i18n/it.ts +1 -11
  134. package/src/tool/gifAJpg/i18n/ja.ts +1 -11
  135. package/src/tool/gifAJpg/i18n/ko.ts +1 -11
  136. package/src/tool/gifAJpg/i18n/nl.ts +1 -11
  137. package/src/tool/gifAJpg/i18n/pl.ts +1 -11
  138. package/src/tool/gifAJpg/i18n/pt.ts +1 -11
  139. package/src/tool/gifAJpg/i18n/ru.ts +2 -12
  140. package/src/tool/gifAJpg/i18n/sv.ts +1 -11
  141. package/src/tool/gifAJpg/i18n/tr.ts +1 -11
  142. package/src/tool/gifAJpg/i18n/zh.ts +1 -11
  143. package/src/tool/gifAJpg/seo.astro +2 -1
  144. package/src/tool/gifAPng/bibliography.ts +12 -0
  145. package/src/tool/gifAPng/entry.ts +2 -0
  146. package/src/tool/gifAPng/i18n/de.ts +2 -12
  147. package/src/tool/gifAPng/i18n/en.ts +3 -13
  148. package/src/tool/gifAPng/i18n/es.ts +2 -12
  149. package/src/tool/gifAPng/i18n/fr.ts +11 -21
  150. package/src/tool/gifAPng/i18n/id.ts +2 -12
  151. package/src/tool/gifAPng/i18n/it.ts +2 -12
  152. package/src/tool/gifAPng/i18n/ja.ts +1 -11
  153. package/src/tool/gifAPng/i18n/ko.ts +1 -11
  154. package/src/tool/gifAPng/i18n/nl.ts +2 -12
  155. package/src/tool/gifAPng/i18n/pl.ts +3 -13
  156. package/src/tool/gifAPng/i18n/pt.ts +2 -12
  157. package/src/tool/gifAPng/i18n/ru.ts +3 -13
  158. package/src/tool/gifAPng/i18n/sv.ts +3 -13
  159. package/src/tool/gifAPng/i18n/tr.ts +1 -11
  160. package/src/tool/gifAPng/i18n/zh.ts +2 -12
  161. package/src/tool/gifAPng/seo.astro +2 -1
  162. package/src/tool/gifAWebp/bibliography.ts +12 -0
  163. package/src/tool/gifAWebp/entry.ts +2 -0
  164. package/src/tool/gifAWebp/i18n/de.ts +3 -13
  165. package/src/tool/gifAWebp/i18n/en.ts +3 -13
  166. package/src/tool/gifAWebp/i18n/es.ts +1 -11
  167. package/src/tool/gifAWebp/i18n/fr.ts +11 -21
  168. package/src/tool/gifAWebp/i18n/id.ts +3 -13
  169. package/src/tool/gifAWebp/i18n/it.ts +1 -11
  170. package/src/tool/gifAWebp/i18n/ja.ts +1 -11
  171. package/src/tool/gifAWebp/i18n/ko.ts +1 -11
  172. package/src/tool/gifAWebp/i18n/nl.ts +3 -13
  173. package/src/tool/gifAWebp/i18n/pl.ts +3 -13
  174. package/src/tool/gifAWebp/i18n/pt.ts +3 -13
  175. package/src/tool/gifAWebp/i18n/ru.ts +7 -17
  176. package/src/tool/gifAWebp/i18n/sv.ts +3 -13
  177. package/src/tool/gifAWebp/i18n/tr.ts +1 -11
  178. package/src/tool/gifAWebp/i18n/zh.ts +4 -14
  179. package/src/tool/gifAWebp/seo.astro +2 -1
  180. package/src/tool/imagenBase64/bibliography.ts +12 -0
  181. package/src/tool/imagenBase64/component.astro +0 -301
  182. package/src/tool/imagenBase64/entry.ts +2 -0
  183. package/src/tool/imagenBase64/i18n/de.ts +7 -17
  184. package/src/tool/imagenBase64/i18n/en.ts +7 -17
  185. package/src/tool/imagenBase64/i18n/es.ts +7 -17
  186. package/src/tool/imagenBase64/i18n/fr.ts +17 -27
  187. package/src/tool/imagenBase64/i18n/id.ts +7 -17
  188. package/src/tool/imagenBase64/i18n/it.ts +6 -16
  189. package/src/tool/imagenBase64/i18n/ja.ts +1 -11
  190. package/src/tool/imagenBase64/i18n/ko.ts +1 -11
  191. package/src/tool/imagenBase64/i18n/nl.ts +7 -17
  192. package/src/tool/imagenBase64/i18n/pl.ts +7 -17
  193. package/src/tool/imagenBase64/i18n/pt.ts +7 -17
  194. package/src/tool/imagenBase64/i18n/ru.ts +9 -19
  195. package/src/tool/imagenBase64/i18n/sv.ts +7 -17
  196. package/src/tool/imagenBase64/i18n/tr.ts +2 -12
  197. package/src/tool/imagenBase64/i18n/zh.ts +7 -17
  198. package/src/tool/imagenBase64/image-to-base64-converter.css +299 -0
  199. package/src/tool/imagenBase64/seo.astro +2 -1
  200. package/src/tool/jpgAIco/bibliography.ts +12 -0
  201. package/src/tool/jpgAIco/entry.ts +2 -0
  202. package/src/tool/jpgAIco/i18n/de.ts +9 -19
  203. package/src/tool/jpgAIco/i18n/en.ts +9 -19
  204. package/src/tool/jpgAIco/i18n/es.ts +7 -17
  205. package/src/tool/jpgAIco/i18n/fr.ts +13 -23
  206. package/src/tool/jpgAIco/i18n/id.ts +9 -19
  207. package/src/tool/jpgAIco/i18n/it.ts +3 -13
  208. package/src/tool/jpgAIco/i18n/ja.ts +2 -12
  209. package/src/tool/jpgAIco/i18n/ko.ts +2 -12
  210. package/src/tool/jpgAIco/i18n/nl.ts +9 -19
  211. package/src/tool/jpgAIco/i18n/pl.ts +9 -19
  212. package/src/tool/jpgAIco/i18n/pt.ts +9 -19
  213. package/src/tool/jpgAIco/i18n/ru.ts +11 -21
  214. package/src/tool/jpgAIco/i18n/sv.ts +9 -19
  215. package/src/tool/jpgAIco/i18n/tr.ts +3 -13
  216. package/src/tool/jpgAIco/i18n/zh.ts +9 -19
  217. package/src/tool/jpgAIco/seo.astro +2 -1
  218. package/src/tool/jpgAPng/bibliography.ts +12 -0
  219. package/src/tool/jpgAPng/entry.ts +2 -0
  220. package/src/tool/jpgAPng/i18n/de.ts +7 -17
  221. package/src/tool/jpgAPng/i18n/en.ts +9 -19
  222. package/src/tool/jpgAPng/i18n/es.ts +7 -17
  223. package/src/tool/jpgAPng/i18n/fr.ts +13 -23
  224. package/src/tool/jpgAPng/i18n/id.ts +7 -17
  225. package/src/tool/jpgAPng/i18n/it.ts +5 -15
  226. package/src/tool/jpgAPng/i18n/ja.ts +3 -13
  227. package/src/tool/jpgAPng/i18n/ko.ts +3 -13
  228. package/src/tool/jpgAPng/i18n/nl.ts +7 -17
  229. package/src/tool/jpgAPng/i18n/pl.ts +7 -17
  230. package/src/tool/jpgAPng/i18n/pt.ts +7 -17
  231. package/src/tool/jpgAPng/i18n/ru.ts +10 -20
  232. package/src/tool/jpgAPng/i18n/sv.ts +7 -17
  233. package/src/tool/jpgAPng/i18n/tr.ts +6 -16
  234. package/src/tool/jpgAPng/i18n/zh.ts +8 -18
  235. package/src/tool/jpgAPng/seo.astro +2 -1
  236. package/src/tool/jpgAWebp/bibliography.ts +12 -0
  237. package/src/tool/jpgAWebp/entry.ts +2 -0
  238. package/src/tool/jpgAWebp/i18n/de.ts +10 -20
  239. package/src/tool/jpgAWebp/i18n/en.ts +10 -20
  240. package/src/tool/jpgAWebp/i18n/es.ts +4 -14
  241. package/src/tool/jpgAWebp/i18n/fr.ts +16 -26
  242. package/src/tool/jpgAWebp/i18n/id.ts +10 -20
  243. package/src/tool/jpgAWebp/i18n/it.ts +6 -16
  244. package/src/tool/jpgAWebp/i18n/ja.ts +2 -12
  245. package/src/tool/jpgAWebp/i18n/ko.ts +3 -13
  246. package/src/tool/jpgAWebp/i18n/nl.ts +10 -20
  247. package/src/tool/jpgAWebp/i18n/pl.ts +10 -20
  248. package/src/tool/jpgAWebp/i18n/pt.ts +10 -20
  249. package/src/tool/jpgAWebp/i18n/ru.ts +10 -20
  250. package/src/tool/jpgAWebp/i18n/sv.ts +10 -20
  251. package/src/tool/jpgAWebp/i18n/tr.ts +5 -15
  252. package/src/tool/jpgAWebp/i18n/zh.ts +9 -19
  253. package/src/tool/jpgAWebp/seo.astro +2 -1
  254. package/src/tool/pngAIco/bibliography.ts +12 -0
  255. package/src/tool/pngAIco/entry.ts +2 -0
  256. package/src/tool/pngAIco/i18n/de.ts +8 -18
  257. package/src/tool/pngAIco/i18n/en.ts +8 -18
  258. package/src/tool/pngAIco/i18n/es.ts +8 -18
  259. package/src/tool/pngAIco/i18n/fr.ts +14 -24
  260. package/src/tool/pngAIco/i18n/id.ts +8 -18
  261. package/src/tool/pngAIco/i18n/it.ts +4 -14
  262. package/src/tool/pngAIco/i18n/ja.ts +2 -12
  263. package/src/tool/pngAIco/i18n/ko.ts +2 -12
  264. package/src/tool/pngAIco/i18n/nl.ts +8 -18
  265. package/src/tool/pngAIco/i18n/pl.ts +8 -18
  266. package/src/tool/pngAIco/i18n/pt.ts +8 -18
  267. package/src/tool/pngAIco/i18n/ru.ts +11 -21
  268. package/src/tool/pngAIco/i18n/sv.ts +8 -18
  269. package/src/tool/pngAIco/i18n/tr.ts +7 -17
  270. package/src/tool/pngAIco/i18n/zh.ts +8 -18
  271. package/src/tool/pngAIco/seo.astro +2 -1
  272. package/src/tool/pngAJpg/bibliography.ts +12 -0
  273. package/src/tool/pngAJpg/entry.ts +2 -0
  274. package/src/tool/pngAJpg/i18n/de.ts +1 -11
  275. package/src/tool/pngAJpg/i18n/en.ts +1 -11
  276. package/src/tool/pngAJpg/i18n/es.ts +1 -11
  277. package/src/tool/pngAJpg/i18n/fr.ts +3 -13
  278. package/src/tool/pngAJpg/i18n/id.ts +1 -11
  279. package/src/tool/pngAJpg/i18n/it.ts +1 -11
  280. package/src/tool/pngAJpg/i18n/ja.ts +1 -11
  281. package/src/tool/pngAJpg/i18n/ko.ts +1 -11
  282. package/src/tool/pngAJpg/i18n/nl.ts +1 -11
  283. package/src/tool/pngAJpg/i18n/pl.ts +7 -17
  284. package/src/tool/pngAJpg/i18n/pt.ts +1 -11
  285. package/src/tool/pngAJpg/i18n/ru.ts +9 -19
  286. package/src/tool/pngAJpg/i18n/sv.ts +1 -11
  287. package/src/tool/pngAJpg/i18n/tr.ts +1 -11
  288. package/src/tool/pngAJpg/i18n/zh.ts +6 -16
  289. package/src/tool/pngAJpg/seo.astro +2 -1
  290. package/src/tool/pngAWebp/bibliography.ts +16 -0
  291. package/src/tool/pngAWebp/entry.ts +2 -0
  292. package/src/tool/pngAWebp/i18n/de.ts +7 -21
  293. package/src/tool/pngAWebp/i18n/en.ts +7 -21
  294. package/src/tool/pngAWebp/i18n/es.ts +6 -20
  295. package/src/tool/pngAWebp/i18n/fr.ts +13 -27
  296. package/src/tool/pngAWebp/i18n/id.ts +7 -21
  297. package/src/tool/pngAWebp/i18n/it.ts +3 -17
  298. package/src/tool/pngAWebp/i18n/ja.ts +2 -16
  299. package/src/tool/pngAWebp/i18n/ko.ts +2 -16
  300. package/src/tool/pngAWebp/i18n/nl.ts +7 -21
  301. package/src/tool/pngAWebp/i18n/pl.ts +7 -21
  302. package/src/tool/pngAWebp/i18n/pt.ts +6 -20
  303. package/src/tool/pngAWebp/i18n/ru.ts +8 -22
  304. package/src/tool/pngAWebp/i18n/sv.ts +7 -21
  305. package/src/tool/pngAWebp/i18n/tr.ts +6 -20
  306. package/src/tool/pngAWebp/i18n/zh.ts +6 -20
  307. package/src/tool/pngAWebp/seo.astro +2 -1
  308. package/src/tool/svgAJpg/bibliography.ts +12 -0
  309. package/src/tool/svgAJpg/entry.ts +2 -0
  310. package/src/tool/svgAJpg/i18n/de.ts +2 -12
  311. package/src/tool/svgAJpg/i18n/en.ts +1 -11
  312. package/src/tool/svgAJpg/i18n/es.ts +1 -11
  313. package/src/tool/svgAJpg/i18n/fr.ts +6 -16
  314. package/src/tool/svgAJpg/i18n/id.ts +1 -11
  315. package/src/tool/svgAJpg/i18n/it.ts +1 -11
  316. package/src/tool/svgAJpg/i18n/ja.ts +1 -11
  317. package/src/tool/svgAJpg/i18n/ko.ts +1 -11
  318. package/src/tool/svgAJpg/i18n/nl.ts +1 -11
  319. package/src/tool/svgAJpg/i18n/pl.ts +1 -11
  320. package/src/tool/svgAJpg/i18n/pt.ts +1 -11
  321. package/src/tool/svgAJpg/i18n/ru.ts +3 -13
  322. package/src/tool/svgAJpg/i18n/sv.ts +1 -11
  323. package/src/tool/svgAJpg/i18n/tr.ts +1 -11
  324. package/src/tool/svgAJpg/i18n/zh.ts +1 -11
  325. package/src/tool/svgAJpg/seo.astro +2 -1
  326. package/src/tool/svgAPng/bibliography.ts +12 -0
  327. package/src/tool/svgAPng/entry.ts +2 -0
  328. package/src/tool/svgAPng/i18n/de.ts +3 -13
  329. package/src/tool/svgAPng/i18n/en.ts +3 -13
  330. package/src/tool/svgAPng/i18n/es.ts +1 -11
  331. package/src/tool/svgAPng/i18n/fr.ts +9 -19
  332. package/src/tool/svgAPng/i18n/id.ts +3 -13
  333. package/src/tool/svgAPng/i18n/it.ts +3 -13
  334. package/src/tool/svgAPng/i18n/ja.ts +1 -11
  335. package/src/tool/svgAPng/i18n/ko.ts +1 -11
  336. package/src/tool/svgAPng/i18n/nl.ts +3 -13
  337. package/src/tool/svgAPng/i18n/pl.ts +3 -13
  338. package/src/tool/svgAPng/i18n/pt.ts +3 -13
  339. package/src/tool/svgAPng/i18n/ru.ts +5 -15
  340. package/src/tool/svgAPng/i18n/sv.ts +3 -13
  341. package/src/tool/svgAPng/i18n/tr.ts +3 -13
  342. package/src/tool/svgAPng/i18n/zh.ts +3 -13
  343. package/src/tool/svgAPng/seo.astro +2 -1
  344. package/src/tool/webpAIco/bibliography.ts +12 -0
  345. package/src/tool/webpAIco/entry.ts +2 -0
  346. package/src/tool/webpAIco/i18n/de.ts +1 -11
  347. package/src/tool/webpAIco/i18n/en.ts +1 -11
  348. package/src/tool/webpAIco/i18n/es.ts +1 -11
  349. package/src/tool/webpAIco/i18n/fr.ts +5 -15
  350. package/src/tool/webpAIco/i18n/id.ts +1 -11
  351. package/src/tool/webpAIco/i18n/it.ts +1 -11
  352. package/src/tool/webpAIco/i18n/ja.ts +1 -11
  353. package/src/tool/webpAIco/i18n/ko.ts +1 -11
  354. package/src/tool/webpAIco/i18n/nl.ts +1 -11
  355. package/src/tool/webpAIco/i18n/pl.ts +1 -11
  356. package/src/tool/webpAIco/i18n/pt.ts +1 -11
  357. package/src/tool/webpAIco/i18n/ru.ts +3 -13
  358. package/src/tool/webpAIco/i18n/sv.ts +1 -11
  359. package/src/tool/webpAIco/i18n/tr.ts +1 -11
  360. package/src/tool/webpAIco/i18n/zh.ts +1 -12
  361. package/src/tool/webpAIco/seo.astro +2 -1
  362. package/src/tool/webpAJpg/bibliography.ts +16 -0
  363. package/src/tool/webpAJpg/entry.ts +2 -0
  364. package/src/tool/webpAJpg/i18n/de.ts +3 -17
  365. package/src/tool/webpAJpg/i18n/en.ts +3 -17
  366. package/src/tool/webpAJpg/i18n/es.ts +1 -15
  367. package/src/tool/webpAJpg/i18n/fr.ts +10 -24
  368. package/src/tool/webpAJpg/i18n/id.ts +3 -17
  369. package/src/tool/webpAJpg/i18n/it.ts +2 -16
  370. package/src/tool/webpAJpg/i18n/ja.ts +1 -15
  371. package/src/tool/webpAJpg/i18n/ko.ts +1 -15
  372. package/src/tool/webpAJpg/i18n/nl.ts +2 -16
  373. package/src/tool/webpAJpg/i18n/pl.ts +3 -17
  374. package/src/tool/webpAJpg/i18n/pt.ts +3 -17
  375. package/src/tool/webpAJpg/i18n/ru.ts +7 -21
  376. package/src/tool/webpAJpg/i18n/sv.ts +3 -17
  377. package/src/tool/webpAJpg/i18n/tr.ts +2 -16
  378. package/src/tool/webpAJpg/i18n/zh.ts +2 -16
  379. package/src/tool/webpAJpg/seo.astro +2 -1
  380. package/src/tool/webpAPng/bibliography.ts +16 -0
  381. package/src/tool/webpAPng/entry.ts +2 -0
  382. package/src/tool/webpAPng/i18n/de.ts +3 -17
  383. package/src/tool/webpAPng/i18n/en.ts +3 -17
  384. package/src/tool/webpAPng/i18n/es.ts +1 -15
  385. package/src/tool/webpAPng/i18n/fr.ts +9 -23
  386. package/src/tool/webpAPng/i18n/id.ts +3 -17
  387. package/src/tool/webpAPng/i18n/it.ts +3 -17
  388. package/src/tool/webpAPng/i18n/ja.ts +1 -15
  389. package/src/tool/webpAPng/i18n/ko.ts +1 -15
  390. package/src/tool/webpAPng/i18n/nl.ts +3 -17
  391. package/src/tool/webpAPng/i18n/pl.ts +3 -17
  392. package/src/tool/webpAPng/i18n/pt.ts +3 -17
  393. package/src/tool/webpAPng/i18n/ru.ts +4 -18
  394. package/src/tool/webpAPng/i18n/sv.ts +3 -17
  395. package/src/tool/webpAPng/i18n/tr.ts +2 -17
  396. package/src/tool/webpAPng/i18n/zh.ts +3 -17
  397. package/src/tool/webpAPng/seo.astro +2 -1
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: PngAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: PngAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'Microsoft ICO Formatı Teknik Yapısı',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'Favicon Standardı - W3C',
61
- url: 'https://www.w3.org/2005/10/howto-favicon',
62
- },
63
- ];
64
-
65
55
  const seo: PngAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: '<strong>Şeffaf PNG</strong>, profesyonel ICO simgeleri oluşturmak için ideal başlangıç malzemesidir. JPG (alfa kanalı olmayan) veya kayıplı formatların aksine, PNG size tam olarak ICO formatının ihtiyaç duyduğu şeyi sunar: keskin pikseller, temiz kenarlar ve simgenin her türlü arka plan üzerinde mükemmel bir şekilde bütünleşmesini sağlayan 32 bitlik bir alfa kanalı ister Safari\'nin beyaz yer imi çubuğu, ister Firefox\'un koyu çubuğu veya Windows 11 masaüstü olsun.',
63
+ html: '<strong>Şeffaf PNG</strong>, profesyonel ICO simgeleri oluşturmak için ideal başlangıç malzemesidir. JPG (alfa kanalı olmayan) veya kayıplı formatların aksine, PNG size tam olarak ICO formatının ihtiyaç duyduğu şeyi sunar: keskin pikseller, temiz kenarlar ve simgenin her türlü arka plan üzerinde mükemmel bir şekilde bütünleşmesini sağlayan 32 bitlik bir alfa kanalı - ister Safari\'nin beyaz yer imi çubuğu, ister Firefox\'un koyu çubuğu veya Windows 11 masaüstü olsun.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: '<strong>PNG</strong> çalışma formatıdır: logonuzu tasarladığınız, Figma veya Illustrator\'dan dışa aktardığınız ve düzenlenebilir sürümlerinizi kaydettiğiniz yerdir. Şeffaflığı, piksel hassasiyeti ve kayıpsız sıkıştırması onu tasarım süreci için rakipsiz kılar. Ancak favicon veya uygulama simgesi arayan tarayıcılar, işletim sistemleri ve Windows uygulamaları PNG\'yi doğrudan kabul etmez ICO\'ya ihtiyaç duyarlar.',
72
+ html: '<strong>PNG</strong> çalışma formatıdır: logonuzu tasarladığınız, Figma veya Illustrator\'dan dışa aktardığınız ve düzenlenebilir sürümlerinizi kaydettiğiniz yerdir. Şeffaflığı, piksel hassasiyeti ve kayıpsız sıkıştırması onu tasarım süreci için rakipsiz kılar. Ancak favicon veya uygulama simgesi arayan tarayıcılar, işletim sistemleri ve Windows uygulamaları PNG\'yi doğrudan kabul etmez - ICO\'ya ihtiyaç duyarlar.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -111,8 +101,8 @@ const seo: PngAIcoLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Anında hız sıfır ağ gecikmesi',
115
- 'Tam gizlilik harici olarak gönderilen 0 bayt',
104
+ 'Anında hız - sıfır ağ gecikmesi',
105
+ 'Tam gizlilik - harici olarak gönderilen 0 bayt',
116
106
  'MB sınırı veya dosya sayısı kısıtlaması yok',
117
107
  'Temiz arayüz, reklam veya izleme yok',
118
108
  ],
@@ -130,7 +120,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'PNG\'nin şeffaflığı ortaya çıkan ICO\'da tamamen korunur şeffaf pikseller şeffaf kalır, yarı şeffaf pikseller tam alfa değerlerini korur und opak pikseller orijinal renklerini korur. Bu, değişken arka planlardaki logolar için kritik öneme sahiptir: favicon\'unuz açık modda, koyu modda und tarayıcı arayüz renklerinin any kombinasyonunda doğru görünecektir.',
123
+ html: 'PNG\'nin şeffaflığı ortaya çıkan ICO\'da tamamen korunur - şeffaf pikseller şeffaf kalır, yarı şeffaf pikseller tam alfa değerlerini korur und opak pikseller orijinal renklerini korur. Bu, değişken arka planlardaki logolar için kritik öneme sahiptir: favicon\'unuz açık modda, koyu modda und tarayıcı arayüz renklerinin any kombinasyonunda doğru görünecektir.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
@@ -160,7 +150,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'Şeffaf PNG, hiç şüphesiz profesyonel kalitede ICO simgeleri oluşturmak için en iyi başlangıç noktasıdır. Bu araçla dönüştürme anlıktır, alfa kanalları tamamen korunur und elde edilen dosya doğru ikili yapıya sahip orijinal bir ICO\'dur. Logonuzun any sunucuya yüklenmesi yok, filigran yok, sınır yok und her boyutta mükemmel şeffaflık.',
153
+ html: 'Şeffaf PNG, hiç şüphesiz profesyonel kalitede ICO simgeleri oluşturmak için en iyi başlangıç noktasıdır. Bu araçla dönüştürme anlıktır, alfa kanalları tamamen korunur und elde edilen dosya doğru ikili yapıya sahip orijinal bir ICO\'dur. Logonuzun any sunucuya yüklenmesi yok, filigran yok, sınır yok - und her boyutta mükemmel şeffaflık.',
164
154
  },
165
155
  ];
166
156
 
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: PngAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: PngAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'Microsoft ICO 格式技术结构',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'Favicon 标准 - W3C',
61
- url: 'https://www.w3.org/2005/10/howto-favicon',
62
- },
63
- ];
64
-
65
55
  const seo: PngAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: '<strong>带透明度的 PNG</strong> 是制作专业 ICO 图标的理想原始素材。与不含 Alpha 通道的 JPG 或有损格式不同, PNG 能提供 ICO 格式所需的精准要素: 清晰的像素、干净的边缘以及 32 位 Alpha 通道。这使得图标能完美融入任何背景——无论是 Safari 的白色书签栏、Firefox 的深色栏, 还是 Windows 11 的桌面。',
63
+ html: '<strong>带透明度的 PNG</strong> 是制作专业 ICO 图标的理想原始素材。与不含 Alpha 通道的 JPG 或有损格式不同, PNG 能提供 ICO 格式所需的精准要素: 清晰的像素、干净的边缘以及 32 位 Alpha 通道。这使得图标能完美融入任何背景-无论是 Safari 的白色书签栏、Firefox 的深色栏, 还是 Windows 11 的桌面。',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: '<strong>PNG</strong> 是工作格式: 您可以在其中设计徽标、从 Figma 或 Illustrator 导出并保存可编辑版本。它的透明度、像素精确度和无损压缩特性使其在设计过程中无可替代。但浏览器、操作系统和 Windows 应用程序在寻找 Favicon 或应用图标时并不直接接受 PNG——它们需要 ICO。',
72
+ html: '<strong>PNG</strong> 是工作格式: 您可以在其中设计徽标、从 Figma 或 Illustrator 导出并保存可编辑版本。它的透明度、像素精确度和无损压缩特性使其在设计过程中无可替代。但浏览器、操作系统和 Windows 应用程序在寻找 Favicon 或应用图标时并不直接接受 PNG-它们需要 ICO。',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -111,8 +101,8 @@ const seo: PngAIcoLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- '即时处理——零网络延迟',
115
- '完全私密——数据向外发送量为 0 字节',
104
+ '即时处理-零网络延迟',
105
+ '完全私密-数据向外发送量为 0 字节',
116
106
  '无 MB 限制或文件数量限制',
117
107
  '界面简洁, 无广告或追踪',
118
108
  ],
@@ -130,12 +120,12 @@ const seo: PngAIcoLocaleContent['seo'] = [
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'PNG 的透明度在生成的 ICO 中得到完整保留——透明像素保持透明, 半透明像素保留其精确的 Alpha 值, 而不透明像素保留其原始颜色。这对于在多变背景下展示徽标至关重要: 您的 Favicon 在浅色模式、深色模式以及浏览器界面的任何颜色组合下都能正确显示。',
123
+ html: 'PNG 的透明度在生成的 ICO 中得到完整保留-透明像素保持透明, 半透明像素保留其精确的 Alpha 值, 而不透明像素保留其原始颜色。这对于在多变背景下展示徽标至关重要: 您的 Favicon 在浅色模式、深色模式以及浏览器界面的任何颜色组合下都能正确显示。',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: '提示: 使用 512×512 的 PNG 作为源文件',
138
- html: '为了获得最佳效果, 请使用 <strong>512×512 的正方形 PNG</strong> 作为源图像。此分辨率为转换器提供了足够的信息, 从而能够清晰地生成所有标准的 ICO 尺寸——从 16×16 的 Favicon 到 256×256 的高清屏幕图标——而不会出现像素化或边缘细节丢失。源 PNG 越大, 小尺寸图标的效果就越好。',
128
+ html: '为了获得最佳效果, 请使用 <strong>512×512 的正方形 PNG</strong> 作为源图像。此分辨率为转换器提供了足够的信息, 从而能够清晰地生成所有标准的 ICO 尺寸-从 16×16 的 Favicon 到 256×256 的高清屏幕图标-而不会出现像素化或边缘细节丢失。源 PNG 越大, 小尺寸图标的效果就越好。',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -160,7 +150,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: '带透明度的 PNG 无疑是制作专业品质 ICO 图标的最佳起点。使用此工具, 转换是即时的, Alpha 通道得到完整保留, 生成的文件是具有正确二进制结构的真实 ICO。无需将徽标上传到任何服务器, 无水印, 无限制——并在所有尺寸下拥有完美的透明效果。',
153
+ html: '带透明度的 PNG 无疑是制作专业品质 ICO 图标的最佳起点。使用此工具, 转换是即时的, Alpha 通道得到完整保留, 生成的文件是具有正确二进制结构的真实 ICO。无需将徽标上传到任何服务器, 无水印, 无限制-并在所有尺寸下拥有完美的透明效果。',
164
154
  },
165
155
  ];
166
156
 
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await pngAIco.i18n[locale]?.();
12
+ if (!content) return null;
12
13
  ---
13
14
 
14
- {content && <SEORenderer content={{ locale, sections: content.seo }} />}
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -0,0 +1,12 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'PNG Consortium Spezifikationen',
6
+ url: 'http://www.libpng.org/pub/png/',
7
+ },
8
+ {
9
+ name: 'Das JPEG-Komitee',
10
+ url: 'https://jpeg.org/',
11
+ },
12
+ ];
@@ -27,3 +27,5 @@ export const pngAJpg: ConvertersToolEntry<ImageConverterUI> = {
27
27
  zh: () => import('./i18n/zh').then((m) => m.content),
28
28
  },
29
29
  };
30
+
31
+ export { bibliography } from './bibliography';
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'PNG Consortium Spezifikationen',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'Das JPEG-Komitee',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'PNG Consortium Specifications',
57
- url: 'http://www.libpng.org/pub/png/',
58
- },
59
- {
60
- name: 'The JPEG committee',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: PngAJpgLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'Especificaciones PNG Consortium',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'The JPEG committee',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'Spécifications du PNG Consortium',
57
- url: 'http://www.libpng.org/pub/png/',
58
- },
59
- {
60
- name: 'Le comité JPEG',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: PngAJpgLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
70
60
  {
71
61
  type: 'paragraph',
72
62
  html:
73
- 'Le format PNG (Portable Network Graphics) est largement utilisé pour sa qualité sans perte et son support de la transparence (canal alpha). Cependant, cette fidélité a un coût : les fichiers PNG sont considérablement plus grands que leurs équivalents JPG, notamment pour les photographies ou les images avec des dégradés complexes.',
63
+ 'Le format PNG (Portable Network Graphics) est largement utilisé pour sa qualité sans perte et son support de la transparence (canal alpha). Cependant, cette fidélité a un coût: les fichiers PNG sont considérablement plus grands que leurs équivalents JPG, notamment pour les photographies ou les images avec des dégradés complexes.',
74
64
  },
75
65
  {
76
66
  type: 'paragraph',
@@ -95,7 +85,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
95
85
  {
96
86
  type: 'paragraph',
97
87
  html:
98
- 'Les cas d\'utilisation typiques pour la conversion PNG vers JPG comprennent : préparer des images pour l\'e-mail, optimiser les photos de produits pour les boutiques en ligne, réduire le poids des captures d\'écran avant de les partager, et compresser les images pour un chargement plus rapide des pages web.',
88
+ 'Les cas d\'utilisation typiques pour la conversion PNG vers JPG comprennent: préparer des images pour l\'e-mail, optimiser les photos de produits pour les boutiques en ligne, réduire le poids des captures d\'écran avant de les partager, et compresser les images pour un chargement plus rapide des pages web.',
99
89
  },
100
90
  {
101
91
  type: 'paragraph',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'Spesifikasi PNG Consortium',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'Komite JPEG',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'Specifiche PNG Consortium',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'Il comitato JPEG',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'PNGコンソーシアム仕様書',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'JPEG委員会',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'PNG 컨소시엄 사양',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'JPEG 위원회',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'PNG Consortium Specificaties',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'Het JPEG-comité',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -37,7 +38,7 @@ const faq: PngAJpgLocaleContent['faq'] = [
37
38
  {
38
39
  question: 'Czy jest to bezpieczne dla dokumentów poufnych?',
39
40
  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
+ '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
  },
42
43
  ];
43
44
 
@@ -48,22 +49,11 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
48
49
  },
49
50
  {
50
51
  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
+ text: 'Sprawdź, czy status zmieni się na \"Gotowe\" dla każdego pliku, podczas gdy przeglądarka optymalizuje wagę lokalnie.',
52
53
  },
53
54
  {
54
55
  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/',
56
+ text: 'Zapisz swoje nowe pliki JPG jeden po drugim lub użyj przycisku \"Pobierz wszystko\", aby uzyskać skompresowany plik ZIP ze wszystkimi obrazami.',
67
57
  },
68
58
  ];
69
59
 
@@ -75,7 +65,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
75
65
  },
76
66
  {
77
67
  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ą.',
68
+ 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
69
  },
80
70
  {
81
71
  type: 'title',
@@ -135,7 +125,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
135
125
  },
136
126
  {
137
127
  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.',
128
+ 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
129
  },
140
130
  {
141
131
  type: 'tip',
@@ -149,7 +139,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
149
139
  },
150
140
  {
151
141
  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.',
142
+ 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
143
  },
154
144
  {
155
145
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
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
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -37,7 +38,7 @@ const faq: PngAJpgLocaleContent['faq'] = [
37
38
  {
38
39
  question: 'Безопасно ли это для конфиденциальных документов?',
39
40
  answer:
40
- 'Да, это самый безопасный вариант для специалистов в области банковского дела, здравоохранения или права. Поскольку утилита представляет собой «черный ящик», использующий только вашу оперативную память, всё, что происходит внутри, исчезает при закрытии вкладки, что исключает утечки в сторонние облачные хранилища.',
41
+ 'Да, это самый безопасный вариант для специалистов в области банковского дела, здравоохранения или права. Поскольку утилита представляет собой \"черный ящик\", использующий только вашу оперативную память, всё, что происходит внутри, исчезает при закрытии вкладки, что исключает утечки в сторонние облачные хранилища.',
41
42
  },
42
43
  ];
43
44
 
@@ -48,22 +49,11 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
48
49
  },
49
50
  {
50
51
  name: 'Мгновенная обработка',
51
- text: 'Убедитесь, что статус изменится на «Готово» для каждого файла, пока браузер оптимизирует размер локально.',
52
+ text: 'Убедитесь, что статус изменится на \"Готово\" для каждого файла, пока браузер оптимизирует размер локально.',
52
53
  },
53
54
  {
54
55
  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/',
56
+ text: 'Сохраняйте новые JPG по одному или используйте кнопку \"Скачать всё\", чтобы получить сжатый ZIP-архив со всеми изображениями.',
67
57
  },
68
58
  ];
69
59
 
@@ -75,7 +65,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
75
65
  },
76
66
  {
77
67
  type: 'paragraph',
78
- html: 'В мире цифрового дизайна и веб-разработки эффективность это всё. Формат PNG (Portable Network Graphics) ценят за способность сохранять прозрачность и сжатие без потерь, но у него есть один большой враг: вес файла. Если вы хотите, чтобы ваш сайт летал, а электронные письма загружались мгновенно, переход с PNG на JPG самое разумное техническое решение.',
68
+ html: 'В мире цифрового дизайна и веб-разработки эффективность - это всё. Формат PNG (Portable Network Graphics) ценят за способность сохранять прозрачность и сжатие без потерь, но у него есть один большой враг: вес файла. Если вы хотите, чтобы ваш сайт летал, а электронные письма загружались мгновенно, переход с PNG на JPG - самое разумное техническое решение.',
79
69
  },
80
70
  {
81
71
  type: 'title',
@@ -84,7 +74,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
84
74
  },
85
75
  {
86
76
  type: 'paragraph',
87
- html: 'Не существует формата лучше другого, есть инструмент для конкретной задачи. PNG это формат без потерь, идеально подходящий для макетов интерфейсов, логотипов с мелким текстом и визуальных элементов, требующих прозрачного фона. Однако эта точность имеет свою цену: файлы могут быть в 5 или 10 раз тяжелее, чем их сжатые аналоги.',
77
+ html: 'Не существует формата лучше другого, есть инструмент для конкретной задачи. PNG - это формат без потерь, идеально подходящий для макетов интерфейсов, логотипов с мелким текстом и визуальных элементов, требующих прозрачного фона. Однако эта точность имеет свою цену: файлы могут быть в 5 или 10 раз тяжелее, чем их сжатые аналоги.',
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
@@ -135,7 +125,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
135
125
  },
136
126
  {
137
127
  type: 'paragraph',
138
- html: 'Поскольку JPG не поддерживает прозрачность, наш алгоритм заполняет фон сплошным белым цветом перед тем, как «нарисовать» на нем PNG. После компоновки изображения мы запускаем нативный метод экспорта, создавая поток байтов, который ваш компьютер скачивает напрямую.',
128
+ html: 'Поскольку JPG не поддерживает прозрачность, наш алгоритм заполняет фон сплошным белым цветом перед тем, как \"нарисовать\" на нем PNG. После компоновки изображения мы запускаем нативный метод экспорта, создавая поток байтов, который ваш компьютер скачивает напрямую.',
139
129
  },
140
130
  {
141
131
  type: 'tip',
@@ -149,7 +139,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
149
139
  },
150
140
  {
151
141
  type: 'paragraph',
152
- html: 'Если вы работаете в таких чувствительных секторах, как банковское дело, медицина или право, загрузка файлов в онлайн-конвертеры является нарушением безопасности. Наш инструмент работает как «черный ящик»: всё, что происходит внутри, остается в вашей оперативной памяти. Это единственный безопасный способ работы с конфиденциальными документами.',
142
+ html: 'Если вы работаете в таких чувствительных секторах, как банковское дело, медицина или право, загрузка файлов в онлайн-конвертеры является нарушением безопасности. Наш инструмент работает как \"черный ящик\": всё, что происходит внутри, остается в вашей оперативной памяти. Это единственный безопасный способ работы с конфиденциальными документами.',
153
143
  },
154
144
  {
155
145
  type: 'title',
@@ -173,7 +163,7 @@ const seo: PngAJpgLocaleContent['seo'] = [
173
163
  },
174
164
  {
175
165
  type: 'paragraph',
176
- html: 'Этот конвертер не просто еще одна страница; это произведение инженерной мысли, созданное для того, чтобы облегчить вам жизнь. Будь вы разработчиком или обычным пользователем, здесь вы найдете идеальное решение, чтобы сэкономить мегабайты и сохранить данные в безопасности.',
166
+ html: 'Этот конвертер - не просто еще одна страница; это произведение инженерной мысли, созданное для того, чтобы облегчить вам жизнь. Будь вы разработчиком или обычным пользователем, здесь вы найдете идеальное решение, чтобы сэкономить мегабайты и сохранить данные в безопасности.',
177
167
  },
178
168
  ];
179
169
 
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'PNG Consortium Specifikationer',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'JPEG-kommittén',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { PngAJpgLocaleContent } from '../index';
@@ -56,17 +57,6 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: 'PNG Konsorsiyumu Özellikleri',
62
- url: 'http://www.libpng.org/pub/png/',
63
- },
64
- {
65
- name: 'JPEG Komitesi',
66
- url: 'https://jpeg.org/',
67
- },
68
- ];
69
-
70
60
  const seo: PngAJpgLocaleContent['seo'] = [
71
61
  {
72
62
  type: 'title',