@jjlmoya/utils-converters 1.16.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/package.json +5 -3
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/fr.ts +9 -9
  4. package/src/category/i18n/ru.ts +1 -1
  5. package/src/category/i18n/sv.ts +1 -1
  6. package/src/data.ts +0 -21
  7. package/src/layouts/PreviewLayout.astro +2 -1
  8. package/src/pages/[locale]/[slug].astro +28 -12
  9. package/src/tests/diacritics_density.test.ts +118 -0
  10. package/src/tests/inverted_punctuation.test.ts +84 -0
  11. package/src/tests/no_en_dash.test.ts +70 -0
  12. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  13. package/src/tests/script_density.test.ts +94 -0
  14. package/src/tests/seo_parity.test.ts +60 -0
  15. package/src/tests/shared-test-helpers.ts +56 -0
  16. package/src/tests/tool_exports.test.ts +34 -0
  17. package/src/tool/avifAJpg/bibliography.ts +12 -0
  18. package/src/tool/avifAJpg/entry.ts +2 -0
  19. package/src/tool/avifAJpg/i18n/de.ts +2 -12
  20. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  21. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  22. package/src/tool/avifAJpg/i18n/fr.ts +11 -21
  23. package/src/tool/avifAJpg/i18n/id.ts +2 -12
  24. package/src/tool/avifAJpg/i18n/it.ts +2 -12
  25. package/src/tool/avifAJpg/i18n/ja.ts +1 -11
  26. package/src/tool/avifAJpg/i18n/ko.ts +1 -11
  27. package/src/tool/avifAJpg/i18n/nl.ts +2 -12
  28. package/src/tool/avifAJpg/i18n/pl.ts +2 -12
  29. package/src/tool/avifAJpg/i18n/pt.ts +2 -12
  30. package/src/tool/avifAJpg/i18n/ru.ts +7 -17
  31. package/src/tool/avifAJpg/i18n/sv.ts +2 -12
  32. package/src/tool/avifAJpg/i18n/tr.ts +1 -11
  33. package/src/tool/avifAJpg/i18n/zh.ts +4 -14
  34. package/src/tool/avifAJpg/seo.astro +2 -1
  35. package/src/tool/avifAPng/bibliography.ts +12 -0
  36. package/src/tool/avifAPng/entry.ts +2 -0
  37. package/src/tool/avifAPng/i18n/de.ts +4 -14
  38. package/src/tool/avifAPng/i18n/en.ts +4 -14
  39. package/src/tool/avifAPng/i18n/es.ts +4 -14
  40. package/src/tool/avifAPng/i18n/fr.ts +10 -20
  41. package/src/tool/avifAPng/i18n/id.ts +4 -14
  42. package/src/tool/avifAPng/i18n/it.ts +1 -11
  43. package/src/tool/avifAPng/i18n/ja.ts +1 -11
  44. package/src/tool/avifAPng/i18n/ko.ts +1 -11
  45. package/src/tool/avifAPng/i18n/nl.ts +4 -14
  46. package/src/tool/avifAPng/i18n/pl.ts +4 -14
  47. package/src/tool/avifAPng/i18n/pt.ts +4 -14
  48. package/src/tool/avifAPng/i18n/ru.ts +5 -15
  49. package/src/tool/avifAPng/i18n/sv.ts +4 -14
  50. package/src/tool/avifAPng/i18n/tr.ts +1 -11
  51. package/src/tool/avifAPng/i18n/zh.ts +3 -13
  52. package/src/tool/avifAPng/seo.astro +2 -1
  53. package/src/tool/avifAWebp/bibliography.ts +12 -0
  54. package/src/tool/avifAWebp/entry.ts +2 -0
  55. package/src/tool/avifAWebp/i18n/de.ts +6 -16
  56. package/src/tool/avifAWebp/i18n/en.ts +6 -16
  57. package/src/tool/avifAWebp/i18n/es.ts +6 -16
  58. package/src/tool/avifAWebp/i18n/fr.ts +13 -23
  59. package/src/tool/avifAWebp/i18n/id.ts +6 -16
  60. package/src/tool/avifAWebp/i18n/it.ts +1 -11
  61. package/src/tool/avifAWebp/i18n/ja.ts +1 -11
  62. package/src/tool/avifAWebp/i18n/ko.ts +2 -12
  63. package/src/tool/avifAWebp/i18n/nl.ts +6 -16
  64. package/src/tool/avifAWebp/i18n/pl.ts +6 -16
  65. package/src/tool/avifAWebp/i18n/pt.ts +6 -16
  66. package/src/tool/avifAWebp/i18n/ru.ts +7 -17
  67. package/src/tool/avifAWebp/i18n/sv.ts +6 -16
  68. package/src/tool/avifAWebp/i18n/tr.ts +2 -12
  69. package/src/tool/avifAWebp/i18n/zh.ts +6 -16
  70. package/src/tool/avifAWebp/seo.astro +2 -1
  71. package/src/tool/bmpAJpg/bibliography.ts +12 -0
  72. package/src/tool/bmpAJpg/entry.ts +2 -0
  73. package/src/tool/bmpAJpg/i18n/de.ts +1 -11
  74. package/src/tool/bmpAJpg/i18n/en.ts +1 -11
  75. package/src/tool/bmpAJpg/i18n/es.ts +1 -11
  76. package/src/tool/bmpAJpg/i18n/fr.ts +9 -19
  77. package/src/tool/bmpAJpg/i18n/id.ts +1 -11
  78. package/src/tool/bmpAJpg/i18n/it.ts +1 -11
  79. package/src/tool/bmpAJpg/i18n/ja.ts +1 -11
  80. package/src/tool/bmpAJpg/i18n/ko.ts +1 -11
  81. package/src/tool/bmpAJpg/i18n/nl.ts +1 -11
  82. package/src/tool/bmpAJpg/i18n/pl.ts +1 -11
  83. package/src/tool/bmpAJpg/i18n/pt.ts +1 -11
  84. package/src/tool/bmpAJpg/i18n/ru.ts +5 -15
  85. package/src/tool/bmpAJpg/i18n/sv.ts +1 -11
  86. package/src/tool/bmpAJpg/i18n/tr.ts +1 -11
  87. package/src/tool/bmpAJpg/i18n/zh.ts +1 -11
  88. package/src/tool/bmpAJpg/seo.astro +2 -1
  89. package/src/tool/bmpAPng/bibliography.ts +12 -0
  90. package/src/tool/bmpAPng/entry.ts +2 -0
  91. package/src/tool/bmpAPng/i18n/de.ts +2 -12
  92. package/src/tool/bmpAPng/i18n/en.ts +3 -13
  93. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  94. package/src/tool/bmpAPng/i18n/fr.ts +12 -22
  95. package/src/tool/bmpAPng/i18n/id.ts +2 -12
  96. package/src/tool/bmpAPng/i18n/it.ts +2 -12
  97. package/src/tool/bmpAPng/i18n/ja.ts +1 -11
  98. package/src/tool/bmpAPng/i18n/ko.ts +1 -11
  99. package/src/tool/bmpAPng/i18n/nl.ts +2 -12
  100. package/src/tool/bmpAPng/i18n/pl.ts +2 -12
  101. package/src/tool/bmpAPng/i18n/pt.ts +2 -12
  102. package/src/tool/bmpAPng/i18n/ru.ts +9 -19
  103. package/src/tool/bmpAPng/i18n/sv.ts +2 -12
  104. package/src/tool/bmpAPng/i18n/tr.ts +1 -11
  105. package/src/tool/bmpAPng/i18n/zh.ts +1 -11
  106. package/src/tool/bmpAPng/seo.astro +2 -1
  107. package/src/tool/bmpAWebp/bibliography.ts +12 -0
  108. package/src/tool/bmpAWebp/entry.ts +2 -0
  109. package/src/tool/bmpAWebp/i18n/de.ts +8 -18
  110. package/src/tool/bmpAWebp/i18n/en.ts +8 -18
  111. package/src/tool/bmpAWebp/i18n/es.ts +8 -18
  112. package/src/tool/bmpAWebp/i18n/fr.ts +13 -23
  113. package/src/tool/bmpAWebp/i18n/id.ts +8 -18
  114. package/src/tool/bmpAWebp/i18n/it.ts +8 -18
  115. package/src/tool/bmpAWebp/i18n/ja.ts +7 -17
  116. package/src/tool/bmpAWebp/i18n/ko.ts +7 -17
  117. package/src/tool/bmpAWebp/i18n/nl.ts +8 -18
  118. package/src/tool/bmpAWebp/i18n/pl.ts +8 -18
  119. package/src/tool/bmpAWebp/i18n/pt.ts +8 -18
  120. package/src/tool/bmpAWebp/i18n/ru.ts +10 -20
  121. package/src/tool/bmpAWebp/i18n/sv.ts +8 -18
  122. package/src/tool/bmpAWebp/i18n/tr.ts +8 -18
  123. package/src/tool/bmpAWebp/i18n/zh.ts +8 -18
  124. package/src/tool/bmpAWebp/seo.astro +2 -1
  125. package/src/tool/gifAJpg/bibliography.ts +12 -0
  126. package/src/tool/gifAJpg/entry.ts +2 -0
  127. package/src/tool/gifAJpg/i18n/de.ts +1 -11
  128. package/src/tool/gifAJpg/i18n/en.ts +1 -11
  129. package/src/tool/gifAJpg/i18n/es.ts +1 -11
  130. package/src/tool/gifAJpg/i18n/fr.ts +9 -19
  131. package/src/tool/gifAJpg/i18n/id.ts +1 -11
  132. package/src/tool/gifAJpg/i18n/it.ts +1 -11
  133. package/src/tool/gifAJpg/i18n/ja.ts +1 -11
  134. package/src/tool/gifAJpg/i18n/ko.ts +1 -11
  135. package/src/tool/gifAJpg/i18n/nl.ts +1 -11
  136. package/src/tool/gifAJpg/i18n/pl.ts +1 -11
  137. package/src/tool/gifAJpg/i18n/pt.ts +1 -11
  138. package/src/tool/gifAJpg/i18n/ru.ts +2 -12
  139. package/src/tool/gifAJpg/i18n/sv.ts +1 -11
  140. package/src/tool/gifAJpg/i18n/tr.ts +1 -11
  141. package/src/tool/gifAJpg/i18n/zh.ts +1 -11
  142. package/src/tool/gifAJpg/seo.astro +2 -1
  143. package/src/tool/gifAPng/bibliography.ts +12 -0
  144. package/src/tool/gifAPng/entry.ts +2 -0
  145. package/src/tool/gifAPng/i18n/de.ts +2 -12
  146. package/src/tool/gifAPng/i18n/en.ts +3 -13
  147. package/src/tool/gifAPng/i18n/es.ts +2 -12
  148. package/src/tool/gifAPng/i18n/fr.ts +11 -21
  149. package/src/tool/gifAPng/i18n/id.ts +2 -12
  150. package/src/tool/gifAPng/i18n/it.ts +2 -12
  151. package/src/tool/gifAPng/i18n/ja.ts +1 -11
  152. package/src/tool/gifAPng/i18n/ko.ts +1 -11
  153. package/src/tool/gifAPng/i18n/nl.ts +2 -12
  154. package/src/tool/gifAPng/i18n/pl.ts +3 -13
  155. package/src/tool/gifAPng/i18n/pt.ts +2 -12
  156. package/src/tool/gifAPng/i18n/ru.ts +3 -13
  157. package/src/tool/gifAPng/i18n/sv.ts +3 -13
  158. package/src/tool/gifAPng/i18n/tr.ts +1 -11
  159. package/src/tool/gifAPng/i18n/zh.ts +2 -12
  160. package/src/tool/gifAPng/seo.astro +2 -1
  161. package/src/tool/gifAWebp/bibliography.ts +12 -0
  162. package/src/tool/gifAWebp/entry.ts +2 -0
  163. package/src/tool/gifAWebp/i18n/de.ts +3 -13
  164. package/src/tool/gifAWebp/i18n/en.ts +3 -13
  165. package/src/tool/gifAWebp/i18n/es.ts +1 -11
  166. package/src/tool/gifAWebp/i18n/fr.ts +11 -21
  167. package/src/tool/gifAWebp/i18n/id.ts +3 -13
  168. package/src/tool/gifAWebp/i18n/it.ts +1 -11
  169. package/src/tool/gifAWebp/i18n/ja.ts +1 -11
  170. package/src/tool/gifAWebp/i18n/ko.ts +1 -11
  171. package/src/tool/gifAWebp/i18n/nl.ts +3 -13
  172. package/src/tool/gifAWebp/i18n/pl.ts +3 -13
  173. package/src/tool/gifAWebp/i18n/pt.ts +3 -13
  174. package/src/tool/gifAWebp/i18n/ru.ts +7 -17
  175. package/src/tool/gifAWebp/i18n/sv.ts +3 -13
  176. package/src/tool/gifAWebp/i18n/tr.ts +1 -11
  177. package/src/tool/gifAWebp/i18n/zh.ts +4 -14
  178. package/src/tool/gifAWebp/seo.astro +2 -1
  179. package/src/tool/imagenBase64/bibliography.ts +12 -0
  180. package/src/tool/imagenBase64/entry.ts +2 -0
  181. package/src/tool/imagenBase64/i18n/de.ts +7 -17
  182. package/src/tool/imagenBase64/i18n/en.ts +7 -17
  183. package/src/tool/imagenBase64/i18n/es.ts +7 -17
  184. package/src/tool/imagenBase64/i18n/fr.ts +17 -27
  185. package/src/tool/imagenBase64/i18n/id.ts +7 -17
  186. package/src/tool/imagenBase64/i18n/it.ts +6 -16
  187. package/src/tool/imagenBase64/i18n/ja.ts +1 -11
  188. package/src/tool/imagenBase64/i18n/ko.ts +1 -11
  189. package/src/tool/imagenBase64/i18n/nl.ts +7 -17
  190. package/src/tool/imagenBase64/i18n/pl.ts +7 -17
  191. package/src/tool/imagenBase64/i18n/pt.ts +7 -17
  192. package/src/tool/imagenBase64/i18n/ru.ts +9 -19
  193. package/src/tool/imagenBase64/i18n/sv.ts +7 -17
  194. package/src/tool/imagenBase64/i18n/tr.ts +2 -12
  195. package/src/tool/imagenBase64/i18n/zh.ts +7 -17
  196. package/src/tool/imagenBase64/seo.astro +2 -1
  197. package/src/tool/jpgAIco/bibliography.ts +12 -0
  198. package/src/tool/jpgAIco/entry.ts +2 -0
  199. package/src/tool/jpgAIco/i18n/de.ts +9 -19
  200. package/src/tool/jpgAIco/i18n/en.ts +9 -19
  201. package/src/tool/jpgAIco/i18n/es.ts +7 -17
  202. package/src/tool/jpgAIco/i18n/fr.ts +13 -23
  203. package/src/tool/jpgAIco/i18n/id.ts +9 -19
  204. package/src/tool/jpgAIco/i18n/it.ts +3 -13
  205. package/src/tool/jpgAIco/i18n/ja.ts +2 -12
  206. package/src/tool/jpgAIco/i18n/ko.ts +2 -12
  207. package/src/tool/jpgAIco/i18n/nl.ts +9 -19
  208. package/src/tool/jpgAIco/i18n/pl.ts +9 -19
  209. package/src/tool/jpgAIco/i18n/pt.ts +9 -19
  210. package/src/tool/jpgAIco/i18n/ru.ts +11 -21
  211. package/src/tool/jpgAIco/i18n/sv.ts +9 -19
  212. package/src/tool/jpgAIco/i18n/tr.ts +3 -13
  213. package/src/tool/jpgAIco/i18n/zh.ts +9 -19
  214. package/src/tool/jpgAIco/seo.astro +2 -1
  215. package/src/tool/jpgAPng/bibliography.ts +12 -0
  216. package/src/tool/jpgAPng/entry.ts +2 -0
  217. package/src/tool/jpgAPng/i18n/de.ts +7 -17
  218. package/src/tool/jpgAPng/i18n/en.ts +9 -19
  219. package/src/tool/jpgAPng/i18n/es.ts +7 -17
  220. package/src/tool/jpgAPng/i18n/fr.ts +13 -23
  221. package/src/tool/jpgAPng/i18n/id.ts +7 -17
  222. package/src/tool/jpgAPng/i18n/it.ts +5 -15
  223. package/src/tool/jpgAPng/i18n/ja.ts +3 -13
  224. package/src/tool/jpgAPng/i18n/ko.ts +3 -13
  225. package/src/tool/jpgAPng/i18n/nl.ts +7 -17
  226. package/src/tool/jpgAPng/i18n/pl.ts +7 -17
  227. package/src/tool/jpgAPng/i18n/pt.ts +7 -17
  228. package/src/tool/jpgAPng/i18n/ru.ts +10 -20
  229. package/src/tool/jpgAPng/i18n/sv.ts +7 -17
  230. package/src/tool/jpgAPng/i18n/tr.ts +6 -16
  231. package/src/tool/jpgAPng/i18n/zh.ts +8 -18
  232. package/src/tool/jpgAPng/seo.astro +2 -1
  233. package/src/tool/jpgAWebp/bibliography.ts +12 -0
  234. package/src/tool/jpgAWebp/entry.ts +2 -0
  235. package/src/tool/jpgAWebp/i18n/de.ts +10 -20
  236. package/src/tool/jpgAWebp/i18n/en.ts +10 -20
  237. package/src/tool/jpgAWebp/i18n/es.ts +4 -14
  238. package/src/tool/jpgAWebp/i18n/fr.ts +16 -26
  239. package/src/tool/jpgAWebp/i18n/id.ts +10 -20
  240. package/src/tool/jpgAWebp/i18n/it.ts +6 -16
  241. package/src/tool/jpgAWebp/i18n/ja.ts +2 -12
  242. package/src/tool/jpgAWebp/i18n/ko.ts +3 -13
  243. package/src/tool/jpgAWebp/i18n/nl.ts +10 -20
  244. package/src/tool/jpgAWebp/i18n/pl.ts +10 -20
  245. package/src/tool/jpgAWebp/i18n/pt.ts +10 -20
  246. package/src/tool/jpgAWebp/i18n/ru.ts +10 -20
  247. package/src/tool/jpgAWebp/i18n/sv.ts +10 -20
  248. package/src/tool/jpgAWebp/i18n/tr.ts +5 -15
  249. package/src/tool/jpgAWebp/i18n/zh.ts +9 -19
  250. package/src/tool/jpgAWebp/seo.astro +2 -1
  251. package/src/tool/pngAIco/bibliography.ts +12 -0
  252. package/src/tool/pngAIco/entry.ts +2 -0
  253. package/src/tool/pngAIco/i18n/de.ts +8 -18
  254. package/src/tool/pngAIco/i18n/en.ts +8 -18
  255. package/src/tool/pngAIco/i18n/es.ts +8 -18
  256. package/src/tool/pngAIco/i18n/fr.ts +14 -24
  257. package/src/tool/pngAIco/i18n/id.ts +8 -18
  258. package/src/tool/pngAIco/i18n/it.ts +4 -14
  259. package/src/tool/pngAIco/i18n/ja.ts +2 -12
  260. package/src/tool/pngAIco/i18n/ko.ts +2 -12
  261. package/src/tool/pngAIco/i18n/nl.ts +8 -18
  262. package/src/tool/pngAIco/i18n/pl.ts +8 -18
  263. package/src/tool/pngAIco/i18n/pt.ts +8 -18
  264. package/src/tool/pngAIco/i18n/ru.ts +11 -21
  265. package/src/tool/pngAIco/i18n/sv.ts +8 -18
  266. package/src/tool/pngAIco/i18n/tr.ts +7 -17
  267. package/src/tool/pngAIco/i18n/zh.ts +8 -18
  268. package/src/tool/pngAIco/seo.astro +2 -1
  269. package/src/tool/pngAJpg/bibliography.ts +12 -0
  270. package/src/tool/pngAJpg/entry.ts +2 -0
  271. package/src/tool/pngAJpg/i18n/de.ts +41 -51
  272. package/src/tool/pngAJpg/i18n/en.ts +98 -41
  273. package/src/tool/pngAJpg/i18n/es.ts +1 -11
  274. package/src/tool/pngAJpg/i18n/fr.ts +93 -30
  275. package/src/tool/pngAJpg/i18n/id.ts +41 -51
  276. package/src/tool/pngAJpg/i18n/it.ts +41 -51
  277. package/src/tool/pngAJpg/i18n/ja.ts +81 -95
  278. package/src/tool/pngAJpg/i18n/ko.ts +81 -95
  279. package/src/tool/pngAJpg/i18n/nl.ts +41 -51
  280. package/src/tool/pngAJpg/i18n/pl.ts +43 -53
  281. package/src/tool/pngAJpg/i18n/pt.ts +41 -51
  282. package/src/tool/pngAJpg/i18n/ru.ts +83 -97
  283. package/src/tool/pngAJpg/i18n/sv.ts +41 -51
  284. package/src/tool/pngAJpg/i18n/tr.ts +41 -51
  285. package/src/tool/pngAJpg/i18n/zh.ts +83 -97
  286. package/src/tool/pngAJpg/seo.astro +2 -1
  287. package/src/tool/pngAWebp/bibliography.ts +16 -0
  288. package/src/tool/pngAWebp/entry.ts +2 -0
  289. package/src/tool/pngAWebp/i18n/de.ts +7 -21
  290. package/src/tool/pngAWebp/i18n/en.ts +7 -21
  291. package/src/tool/pngAWebp/i18n/es.ts +6 -20
  292. package/src/tool/pngAWebp/i18n/fr.ts +13 -27
  293. package/src/tool/pngAWebp/i18n/id.ts +7 -21
  294. package/src/tool/pngAWebp/i18n/it.ts +3 -17
  295. package/src/tool/pngAWebp/i18n/ja.ts +2 -16
  296. package/src/tool/pngAWebp/i18n/ko.ts +2 -16
  297. package/src/tool/pngAWebp/i18n/nl.ts +7 -21
  298. package/src/tool/pngAWebp/i18n/pl.ts +7 -21
  299. package/src/tool/pngAWebp/i18n/pt.ts +6 -20
  300. package/src/tool/pngAWebp/i18n/ru.ts +8 -22
  301. package/src/tool/pngAWebp/i18n/sv.ts +7 -21
  302. package/src/tool/pngAWebp/i18n/tr.ts +6 -20
  303. package/src/tool/pngAWebp/i18n/zh.ts +6 -20
  304. package/src/tool/pngAWebp/seo.astro +2 -1
  305. package/src/tool/svgAJpg/bibliography.ts +12 -0
  306. package/src/tool/svgAJpg/entry.ts +2 -0
  307. package/src/tool/svgAJpg/i18n/de.ts +2 -12
  308. package/src/tool/svgAJpg/i18n/en.ts +1 -11
  309. package/src/tool/svgAJpg/i18n/es.ts +1 -11
  310. package/src/tool/svgAJpg/i18n/fr.ts +6 -16
  311. package/src/tool/svgAJpg/i18n/id.ts +1 -11
  312. package/src/tool/svgAJpg/i18n/it.ts +1 -11
  313. package/src/tool/svgAJpg/i18n/ja.ts +1 -11
  314. package/src/tool/svgAJpg/i18n/ko.ts +1 -11
  315. package/src/tool/svgAJpg/i18n/nl.ts +1 -11
  316. package/src/tool/svgAJpg/i18n/pl.ts +1 -11
  317. package/src/tool/svgAJpg/i18n/pt.ts +1 -11
  318. package/src/tool/svgAJpg/i18n/ru.ts +3 -13
  319. package/src/tool/svgAJpg/i18n/sv.ts +1 -11
  320. package/src/tool/svgAJpg/i18n/tr.ts +1 -11
  321. package/src/tool/svgAJpg/i18n/zh.ts +1 -11
  322. package/src/tool/svgAJpg/seo.astro +2 -1
  323. package/src/tool/svgAPng/bibliography.ts +12 -0
  324. package/src/tool/svgAPng/entry.ts +2 -0
  325. package/src/tool/svgAPng/i18n/de.ts +3 -13
  326. package/src/tool/svgAPng/i18n/en.ts +3 -13
  327. package/src/tool/svgAPng/i18n/es.ts +1 -11
  328. package/src/tool/svgAPng/i18n/fr.ts +9 -19
  329. package/src/tool/svgAPng/i18n/id.ts +3 -13
  330. package/src/tool/svgAPng/i18n/it.ts +3 -13
  331. package/src/tool/svgAPng/i18n/ja.ts +1 -11
  332. package/src/tool/svgAPng/i18n/ko.ts +1 -11
  333. package/src/tool/svgAPng/i18n/nl.ts +3 -13
  334. package/src/tool/svgAPng/i18n/pl.ts +3 -13
  335. package/src/tool/svgAPng/i18n/pt.ts +3 -13
  336. package/src/tool/svgAPng/i18n/ru.ts +5 -15
  337. package/src/tool/svgAPng/i18n/sv.ts +3 -13
  338. package/src/tool/svgAPng/i18n/tr.ts +3 -13
  339. package/src/tool/svgAPng/i18n/zh.ts +3 -13
  340. package/src/tool/svgAPng/seo.astro +2 -1
  341. package/src/tool/webpAIco/bibliography.ts +12 -0
  342. package/src/tool/webpAIco/entry.ts +2 -0
  343. package/src/tool/webpAIco/i18n/de.ts +1 -11
  344. package/src/tool/webpAIco/i18n/en.ts +1 -11
  345. package/src/tool/webpAIco/i18n/es.ts +1 -11
  346. package/src/tool/webpAIco/i18n/fr.ts +5 -15
  347. package/src/tool/webpAIco/i18n/id.ts +1 -11
  348. package/src/tool/webpAIco/i18n/it.ts +1 -11
  349. package/src/tool/webpAIco/i18n/ja.ts +1 -11
  350. package/src/tool/webpAIco/i18n/ko.ts +1 -11
  351. package/src/tool/webpAIco/i18n/nl.ts +1 -11
  352. package/src/tool/webpAIco/i18n/pl.ts +1 -11
  353. package/src/tool/webpAIco/i18n/pt.ts +1 -11
  354. package/src/tool/webpAIco/i18n/ru.ts +3 -13
  355. package/src/tool/webpAIco/i18n/sv.ts +1 -11
  356. package/src/tool/webpAIco/i18n/tr.ts +1 -11
  357. package/src/tool/webpAIco/i18n/zh.ts +1 -12
  358. package/src/tool/webpAIco/seo.astro +2 -1
  359. package/src/tool/webpAJpg/bibliography.ts +16 -0
  360. package/src/tool/webpAJpg/entry.ts +2 -0
  361. package/src/tool/webpAJpg/i18n/de.ts +3 -17
  362. package/src/tool/webpAJpg/i18n/en.ts +3 -17
  363. package/src/tool/webpAJpg/i18n/es.ts +1 -15
  364. package/src/tool/webpAJpg/i18n/fr.ts +10 -24
  365. package/src/tool/webpAJpg/i18n/id.ts +3 -17
  366. package/src/tool/webpAJpg/i18n/it.ts +2 -16
  367. package/src/tool/webpAJpg/i18n/ja.ts +1 -15
  368. package/src/tool/webpAJpg/i18n/ko.ts +1 -15
  369. package/src/tool/webpAJpg/i18n/nl.ts +2 -16
  370. package/src/tool/webpAJpg/i18n/pl.ts +3 -17
  371. package/src/tool/webpAJpg/i18n/pt.ts +3 -17
  372. package/src/tool/webpAJpg/i18n/ru.ts +7 -21
  373. package/src/tool/webpAJpg/i18n/sv.ts +3 -17
  374. package/src/tool/webpAJpg/i18n/tr.ts +2 -16
  375. package/src/tool/webpAJpg/i18n/zh.ts +2 -16
  376. package/src/tool/webpAJpg/seo.astro +2 -1
  377. package/src/tool/webpAPng/bibliography.ts +16 -0
  378. package/src/tool/webpAPng/entry.ts +2 -0
  379. package/src/tool/webpAPng/i18n/de.ts +3 -17
  380. package/src/tool/webpAPng/i18n/en.ts +3 -17
  381. package/src/tool/webpAPng/i18n/es.ts +1 -15
  382. package/src/tool/webpAPng/i18n/fr.ts +9 -23
  383. package/src/tool/webpAPng/i18n/id.ts +3 -17
  384. package/src/tool/webpAPng/i18n/it.ts +3 -17
  385. package/src/tool/webpAPng/i18n/ja.ts +1 -15
  386. package/src/tool/webpAPng/i18n/ko.ts +1 -15
  387. package/src/tool/webpAPng/i18n/nl.ts +3 -17
  388. package/src/tool/webpAPng/i18n/pl.ts +3 -17
  389. package/src/tool/webpAPng/i18n/pt.ts +3 -17
  390. package/src/tool/webpAPng/i18n/ru.ts +4 -18
  391. package/src/tool/webpAPng/i18n/sv.ts +3 -17
  392. package/src/tool/webpAPng/i18n/tr.ts +2 -17
  393. package/src/tool/webpAPng/i18n/zh.ts +3 -17
  394. package/src/tool/webpAPng/seo.astro +2 -1
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { 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 Teknisk Struktur',
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>PNG med transparens</strong> är det ideala utgångsmaterialet för att skapa professionella ICO-ikoner. Till skillnad från JPG (som inte har någon alfakanal) eller format med dataförlust, ger PNG dig exakt vad ICO-formatet behöver: skarpa pixlar, rena kanter och en 32-bitars alfakanal som gör att ikonen kan integreras perfekt över vilken bakgrund som helst — oavsett om det är Safaris vita bokmärkesfält, Firefox mörka fält eller Windows 11-skrivbordet.',
63
+ html: '<strong>PNG med transparens</strong> är det ideala utgångsmaterialet för att skapa professionella ICO-ikoner. Till skillnad från JPG (som inte har någon alfakanal) eller format med dataförlust, ger PNG dig exakt vad ICO-formatet behöver: skarpa pixlar, rena kanter och en 32-bitars alfakanal som gör att ikonen kan integreras perfekt över vilken bakgrund som helst - oavsett om det är Safaris vita bokmärkesfält, Firefox mörka fält eller Windows 11-skrivbordet.',
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> är arbetsformatet: det är där du designar din logotyp, exporterar från Figma eller Illustrator och sparar dina redigerbara versioner. Dess transparens, pixelprecision och förlustfria komprimering gör det oslagbart för designprocessen. Men webbläsare, operativsystem und Windows-applikationer som letar efter en favicon eller appikon accepterar inte PNG direkt — de behöver ICO.',
72
+ html: '<strong>PNG</strong> är arbetsformatet: det är där du designar din logotyp, exporterar från Figma eller Illustrator och sparar dina redigerbara versioner. Dess transparens, pixelprecision och förlustfria komprimering gör det oslagbart för designprocessen. Men webbläsare, operativsystem und Windows-applikationer som letar efter en favicon eller appikon accepterar inte PNG direkt - de behöver 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
- 'Omedelbar hastighet — noll nätverkslatens',
115
- 'Komplett integritet — 0 byte skickas externt',
104
+ 'Omedelbar hastighet - noll nätverkslatens',
105
+ 'Komplett integritet - 0 byte skickas externt',
116
106
  'Inga MB-gränser eller begränsningar på antal filer',
117
107
  'Rent gränssnitt, inga annonser eller spårning',
118
108
  ],
@@ -130,12 +120,12 @@ const seo: PngAIcoLocaleContent['seo'] = [
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Transparensen i PNG-filen bevaras helt i den resulterande ICO-filen — transparenta pixlar förblir transparenta, halvtransparenta pixlar behåller sitt exakta alfavärde und opaka pixlar behåller sin ursprungliga färg. Detta är avgörande för logotyper på varierande bakgrunder: din favicon kommer att se korrekt ut i ljust läge, mörkt läge und alla kombinationer av webbläsargränssnittets färger.',
123
+ html: 'Transparensen i PNG-filen bevaras helt i den resulterande ICO-filen - transparenta pixlar förblir transparenta, halvtransparenta pixlar behåller sitt exakta alfavärde und opaka pixlar behåller sin ursprungliga färg. Detta är avgörande för logotyper på varierande bakgrunder: din favicon kommer att se korrekt ut i ljust läge, mörkt läge und alla kombinationer av webbläsargränssnittets färger.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Tips: använd en 512×512 PNG som källa',
138
- html: 'För bästa möjliga resultat, använd en <strong>kvadratisk 512×512 PNG</strong> som källbild. Denna upplösning ger konverteraren tillräckligt med information för att generera alla standard ICO-storlekar med skärpa — från 16×16 favicon upp till 256×256 för högupplösta skärmar — utan pixelering eller förlust av kantdetaljer. Ju större käll-PNG, desto bättre kommer de små ikonstorlekarna att se ut.',
128
+ html: 'För bästa möjliga resultat, använd en <strong>kvadratisk 512×512 PNG</strong> som källbild. Denna upplösning ger konverteraren tillräckligt med information för att generera alla standard ICO-storlekar med skärpa - från 16×16 favicon upp till 256×256 för högupplösta skärmar - utan pixelering eller förlust av kantdetaljer. Ju större käll-PNG, desto bättre kommer de små ikonstorlekarna att se ut.',
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 med transparens är utan tvekan den bästa utgångspunkten för att skapa ICO-ikoner av professionell kvalitet. Med detta verktyg sker konverteringen omedelbart, alfakanaler bevaras fullt ut und den resulterande filen är en äkta ICO met korrekt binär struktur. Ingen uppladdning av din logotyp till någon server, inga vattenstämplar, inga gränser — und perfekt transparens i alla storlekar.',
153
+ html: 'PNG med transparens är utan tvekan den bästa utgångspunkten för att skapa ICO-ikoner av professionell kvalitet. Med detta verktyg sker konverteringen omedelbart, alfakanaler bevaras fullt ut und den resulterande filen är en äkta ICO met korrekt binär struktur. Ingen uppladdning av din logotyp till någon server, inga vattenstämplar, inga gränser - und perfekt transparens i alla storlekar.',
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 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';
@@ -20,24 +21,24 @@ const ui: ImageConverterUI = {
20
21
 
21
22
  const faq: PngAJpgLocaleContent['faq'] = [
22
23
  {
23
- question: 'Warum sollten Sie unseren lokalen PNG-zu-JPG-Konverter wählen?',
24
+ question: '¿Por qué elegir nuestro convertidor local de PNG a JPG?',
24
25
  answer:
25
- 'Im Gegensatz zu herkömmlichen Tools verarbeitet unser Tool die Dateien vollständig in Ihrem Browser. Ihre Bilder berühren nie eine fremde Festplatte, was die totale Souveränität und Privatsphäre Ihrer Daten garantiert.',
26
+ 'A diferencia de las herramientas convencionales, nuestra utilidad procesa los archivos íntegramente en tu navegador. Tus imágenes nunca tocan un disco duro ajeno, garantizando la total soberanía y privacidad de tus datos.',
26
27
  },
27
28
  {
28
- question: 'JPG oder PNG? Was ist besser für meinen Fall?',
29
+ question: '¿JPG o PNG? ¿Cuál es mejor para mi caso?',
29
30
  answer:
30
- 'PNG ist ideal für Logos und Elemente mit Transparenz. JPG hingegen ist der Goldstandard für Fotos und Web-Banner, da es viel geringere Dateigrößen erreicht und so die Ladegeschwindigkeit einer Website drastisch verbessert.',
31
+ 'El PNG es ideal para logotipos y elementos con transparencia. Sin embargo, el JPG es el estándar de oro para fotografías y banners web, ya que logra pesos mucho más reducidos, mejorando drásticamente la velocidad de carga de un sitio.',
31
32
  },
32
33
  {
33
- question: 'Wie funktioniert die technische Konvertierung ohne Upload?',
34
+ question: '¿Cómo funciona la conversión técnica sin subir nada?',
34
35
  answer:
35
- 'Wir nutzen die Leistung des HTML5-Canvas. Der Browser stellt das Bild auf einer unsichtbaren virtuellen Leinwand dar, füllt Transparenzen mit Weiß und erzeugt einen Byte-Stream, den Sie sofort direkt herunterladen.',
36
+ 'Utilizamos la potencia del Canvas de HTML5. El navegador recrea la imagen en un lienzo virtual invisible, rellena las transparencias con blanco y genera un flujo de bytes que descargas directamente al instante.',
36
37
  },
37
38
  {
38
- question: 'Ist es sicher für vertrauliche Dokumente?',
39
+ question: '¿Es seguro para documentos confidenciales?',
39
40
  answer:
40
- 'Ja, es ist die sicherste Option für Fachleute aus den Bereichen Banken, Gesundheit oder Recht. Da es sich um eine "Black Box" handelt, die nur Ihren RAM nutzt, werden alle Daten beim Schließen des Tabs gelöscht, wodurch Lecks in Drittanbieter-Clouds vermieden werden.',
41
+ 'Sí, es la opción más segura para profesionales de la banca, salud o derecho. Al ser una "caja negra" que solo usa tu RAM, lo que pasa dentro muere al cerrar la pestaña, evitando filtraciones en nubes de terceros.',
41
42
  },
42
43
  ];
43
44
 
@@ -56,124 +57,113 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
56
57
  },
57
58
  ];
58
59
 
59
- const bibliography: PngAJpgLocaleContent['bibliography'] = [
60
- {
61
- name: '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',
73
- text: 'PNG-zu-JPG-Konverter: Der ultimative Leitfaden zur Bildoptimierung',
63
+ text: 'Convertidor de PNG a JPG: La Guía Definitiva para la Optimización de Imágenes',
74
64
  level: 2,
75
65
  },
76
66
  {
77
67
  type: 'paragraph',
78
- html: 'In der Welt des digitalen Designs und der Webentwicklung ist Effizienz alles. Das PNG-Format (Portable Network Graphics) wird für seine Fähigkeit geliebt, Transparenzen beizubehalten und eine verlustfreie Kompression zu bieten, hat aber einen großen Feind: das Dateigewicht. Wenn Sie möchten, dass Ihre Website fliegt oder Ihre E-Mails sofort geladen werden, ist der Wechsel von PNG zu JPG die intelligenteste technische Entscheidung.',
68
+ html: 'En el mundo del diseño digital y el desarrollo web, la eficiencia lo es todo. El formato PNG (Portable Network Graphics) es amado por su capacidad de mantener transparencias y su compresión sin pérdida, pero tiene un gran enemigo: el peso del archivo. Cuando necesitas que tu sitio web vuele o que tus emails carguen instantáneamente, el paso de PNG a JPG es la decisión técnica más inteligente.',
79
69
  },
80
70
  {
81
71
  type: 'title',
82
- text: 'JPG oder PNG?',
72
+ text: '¿JPG o PNG?',
83
73
  level: 3,
84
74
  },
85
75
  {
86
76
  type: 'paragraph',
87
- html: 'Es gibt kein Format, das besser als das andere ist, sondern ein Werkzeug für jeden Bedarf. PNG ist ein verlustfreies Format, ideal für Interface-Mockups, Logos mit kleinem Text und visuelle Elemente, die einen transparenten Hintergrund erfordern. Diese Treue hat jedoch ihren Preis: Dateien, die 5- oder 10-mal schwerer sein können als ihr komprimiertes Äquivalent.',
77
+ html: 'No existe un formato mejor que otro, sino una herramienta para cada necesidad. El PNG es un formato sin pérdida, ideal para maquetas de interfaces, logotipos con texto pequeño y elementos visuales que requieren un fondo transparente. Sin embargo, esta fidelidad tiene un coste: archivos que pueden ser 5 o 10 veces más pesados que su equivalente comprimido.',
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
91
- html: 'JPG (Joint Photographic Experts Group) hingegen verwendet Diskretisierungsalgorithmen, um Informationen zu entfernen, die das menschliche Auge kaum wahrnimmt, und erreicht so Federgewicht. Es ist der Goldstandard für Fotos, Werbebanner und soziale Netzwerke. Indem Sie Ihre PNGs in JPGs konvertieren, tauschen Sie geometrische Treue gegen Netzwerkgeschwindigkeit ein.',
81
+ html: 'El JPG (Joint Photographic Experts Group), por otro lado, utiliza algoritmos de discretización para eliminar información que el ojo humano apenas percibe, logrando pesos pluma. Es el estándar de oro para fotografías, banners publicitarios y redes sociales. Al convertir tus PNG a JPG, estás traduciendo fidelidad geométrica por velocidad de red.',
92
82
  },
93
83
  {
94
84
  type: 'title',
95
- text: 'Architekturvergleich: Lokal vs. Cloud',
85
+ text: 'Comparativa de Arquitectura: Local vs Nube',
96
86
  level: 3,
97
87
  },
98
88
  {
99
89
  type: 'comparative',
100
90
  items: [
101
91
  {
102
- title: 'Cloud Konverter',
103
- description: 'Herkömmliche Tools, die Ihre Fotos auf einen Remote-Server hochladen.',
92
+ title: 'Convertidores Cloud',
93
+ description: 'Herramientas tradicionales que suben tus fotos a un servidor remoto.',
104
94
  icon: 'mdi:cloud-upload',
105
95
  pointIcon: 'mdi:close-circle-outline',
106
96
  points: [
107
- 'Netzwerklatenz (Upload/Download)',
108
- 'Risiko von Datenlecks privater Daten',
109
- 'Dateigrößenbeschränkungen pro Datei',
110
- 'Werbung und Tracker',
97
+ 'Latencia de red (Upload/Download)',
98
+ 'Riesgo de filtración de datos privados',
99
+ 'Límites de tamaño por archivo',
100
+ 'Publicidad y rastreadores',
111
101
  ],
112
102
  },
113
103
  {
114
- title: 'Unsere lokale Architektur',
115
- description: 'Direkte Verarbeitung auf Ihrer Hardware mittels Vanilla JS-Technologie.',
104
+ title: 'Nuestra Arquitectura Local',
105
+ description: 'Procesamiento directo en tu hardware mediante tecnología Vanilla JS.',
116
106
  icon: 'mdi:laptop-mac',
117
107
  highlight: true,
118
108
  points: [
119
- 'Sofortige Geschwindigkeit ohne Netzwerk',
120
- 'Garantierte Privatsphäre (0 Bytes gesendet)',
121
- 'Keine MB-Limits pro Datei',
122
- 'Professionelle und saubere Schnittstelle',
109
+ 'Velocidad instantánea sin red',
110
+ 'Privacidad garantizada (0 bytes enviados)',
111
+ 'Sin límites de MB por archivo',
112
+ 'Interfaz profesional y limpia',
123
113
  ],
124
114
  },
125
115
  ],
126
116
  },
127
117
  {
128
118
  type: 'title',
129
- text: 'Wie die technische Konvertierung funktioniert',
119
+ text: 'Cómo funciona la conversión técnica',
130
120
  level: 3,
131
121
  },
132
122
  {
133
123
  type: 'paragraph',
134
- html: 'Sie fragen sich wahrscheinlich, wie es möglich ist, ein Bild zu konvertieren, ohne es an einen Server zu senden. Die Magie liegt in der Leistung moderner Browser. Wenn Sie eine Datei auswählen, erzeugen wir einen Blob, der nur in Ihrem RAM existiert. Dieser Blob wird auf ein unsichtbares HTML5-Canvas-Element gezeichnet.',
124
+ html: 'Probablemente te preguntes cómo es posible convertir una imagen sin enviarla a un servidor. La magia reside en la potencia de los navegadores modernos. Cuando seleccionas un archivo, generamos un Blob que solo existe en tu RAM. Ese Blob se dibuja en un elemento HTML5 Canvas invisible.',
135
125
  },
136
126
  {
137
127
  type: 'paragraph',
138
- html: 'Da JPG keine Transparenzen unterstützt, füllt unser Algorithmus den Hintergrund mit einer soliden weißen Farbe, bevor das PNG darauf "gemalt" wird. Sobald das Bild komponiert ist, führen wir die native Exportmethode aus und erzeugen einen Byte-Stream, den Ihr Computer direkt herunterlädt.',
128
+ html: 'Dado que el JPG no soporta transparencias, nuestro algoritmo rellena el fondo con un color blanco sólido antes de "pintar" el PNG encima. Una vez compuesta la imagen, ejecutamos el método de exportación nativo, generando un flujo de bytes que tu ordenador descarga directamente.',
139
129
  },
140
130
  {
141
131
  type: 'tip',
142
- title: 'SEO Tipp: Das ideale Gewicht',
143
- html: 'Google bestraft aktiv langsame Websites. Wenn Ihr Largest Contentful Paint (LCP) aufgrund eines 2MB großen Header-PNGs hoch ist, kann die Konvertierung in ein 200KB großes JPG Ihre PageSpeed-Metriken sofort verbessern, ohne visuelle Unterschiede.',
132
+ title: 'Consejo SEO: El Peso Ideal',
133
+ html: 'Google penaliza activamente los sitios web lentos. Si tu Largest Contentful Paint (LCP) es alto por culpa de un PNG de cabecera de 2MB, convertirlo a un JPG de 200KB puede mejorar tus métricas de PageSpeed instantáneamente sin diferencias visuales.',
144
134
  },
145
135
  {
146
136
  type: 'title',
147
- text: 'Sicherheit für Unternehmen und Fachleute',
137
+ text: 'Seguridad para Empresas y Profesionales',
148
138
  level: 3,
149
139
  },
150
140
  {
151
141
  type: 'paragraph',
152
- html: 'Wenn Sie in sensiblen Bereichen wie Banken, Gesundheit oder Recht arbeiten, ist das Hochladen von Dateien zu Online-Konvertern eine Sicherheitsverletzung. Unser Tool funktioniert wie eine "Black Box": Was drinnen passiert, bleibt in Ihrem RAM. Es ist der einzige sichere Weg, mit vertraulichen Dokumenten zu arbeiten.',
142
+ html: 'Si trabajas en sectores sensibles como la banca, la salud o el derecho, subir archivos a conversores online es una violación de seguridad. Nuestra herramienta funciona como una "caja negra": lo que pasa dentro se queda en tu RAM. Es la única forma segura de trabajar con documentos confidenciales.',
153
143
  },
154
144
  {
155
145
  type: 'title',
156
- text: 'Kompatibilität des Ergebnisses',
146
+ text: 'Compatibilidad del Resultado',
157
147
  level: 3,
158
148
  },
159
149
  {
160
150
  type: 'list',
161
151
  icon: 'mdi:check-circle',
162
152
  items: [
163
- 'Anzeige auf Windows, macOS und mobilen Geräten.',
164
- 'Soziale Netzwerke (Instagram, LinkedIn usw.).',
165
- 'Office-Tools (Word, PowerPoint).',
166
- 'Content-Management-Systeme (WordPress, Shopify).',
153
+ 'Visores de Windows, macOS y dispositivos móviles.',
154
+ 'Redes sociales (Instagram, LinkedIn, etc).',
155
+ 'Herramientas de ofimática (Word, PowerPoint).',
156
+ 'Gestores de contenido (WordPress, Shopify).',
167
157
  ],
168
158
  },
169
159
  {
170
160
  type: 'title',
171
- text: 'Fazit: Optimieren wie ein Profi',
161
+ text: 'Conclusión: Optimiza como un Pro',
172
162
  level: 3,
173
163
  },
174
164
  {
175
165
  type: 'paragraph',
176
- html: 'Dieser Konverter ist nicht nur eine weitere Seite; er ist ein Stück Ingenieurskunst, das Ihnen das Leben erleichtern soll. Egal, ob Sie Entwickler oder Privatanwender sind, hier ist die ultimative Lösung, um Megabytes zu sparen und Ihre Daten sicher aufzubewahren.',
166
+ html: 'Este convertidor no es solo una página más; es una pieza de ingeniería diseñada para facilitarte la vida. Ya seas un desarrollador o un usuario doméstico, aquí tienes la solución definitiva para ahorrar megabytes y mantener tus datos a salvo.',
177
167
  },
178
168
  ];
179
169