@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 { ImagenBase64LocaleContent } from '../index';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { ImageToBase64UI } from '../index';
@@ -60,17 +61,6 @@ const howTo: ImagenBase64LocaleContent['howTo'] = [
60
61
  },
61
62
  ];
62
63
 
63
- const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
- {
65
- name: 'MDN Web Docs: Data URIs',
66
- url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
- },
68
- {
69
- name: 'Base64 Encoding RFC 4648',
70
- url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
- },
72
- ];
73
-
74
64
  const seo: ImagenBase64LocaleContent['seo'] = [
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Base64 是一种编码技术, 它将二进制数据 (如图片) 转换为纯 ASCII 文本字符串。结果是一个 Data URI: 一个以 <code>data:image/png;base64,...</code> 开头的自包含 URL, 包含整个编码后的图片。通过将此代码直接嵌入 HTML、CSS 或 JSON, 图片无需任何额外的服务器 HTTP 请求即可加载——零网络延迟, 即时加载。',
72
+ html: 'Base64 是一种编码技术, 它将二进制数据 (如图片) 转换为纯 ASCII 文本字符串。结果是一个 Data URI: 一个以 <code>data:image/png;base64,...</code> 开头的自包含 URL, 包含整个编码后的图片。通过将此代码直接嵌入 HTML、CSS 或 JSON, 图片无需任何额外的服务器 HTTP 请求即可加载-零网络延迟, 即时加载。',
83
73
  },
84
74
  {
85
75
  type: 'title',
@@ -88,7 +78,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
91
- html: '支持 Base64 的主要理由是消除网络请求。网页上的每张图片都意味着一次 HTTP 请求, 带有连接、DNS、TLS 握手和延迟的开销。对于非常小的关键图片——主应用程序图标、favicon、UI 图标——在 CSS 或 HTML 中以 Base64 嵌入可以消除该成本, 并保证它们即使在浏览器缓存任何内容之前也能立即显示。',
81
+ html: '支持 Base64 的主要理由是消除网络请求。网页上的每张图片都意味着一次 HTTP 请求, 带有连接、DNS、TLS 握手和延迟的开销。对于非常小的关键图片-主应用程序图标、favicon、UI 图标-在 CSS 或 HTML 中以 Base64 嵌入可以消除该成本, 并保证它们即使在浏览器缓存任何内容之前也能立即显示。',
92
82
  },
93
83
  {
94
84
  type: 'paragraph',
@@ -117,12 +107,12 @@ const seo: ImagenBase64LocaleContent['seo'] = [
117
107
  },
118
108
  {
119
109
  type: 'paragraph',
120
- html: '当您选择或拖动图片时, 浏览器的 <code>FileReader</code> API 直接从磁盘读取图片作为 RAM 中的二进制数据。 <code>readAsDataURL()</code> 方法使用 RFC 4648 算法将这些二进制字节转换为其 Base64 表示形式——原始数据的每 3 个字节表示为 Base64 字母表中的 4 个 ASCII 字符。结果包含自动检测到的正确 MIME 类型。',
110
+ html: '当您选择或拖动图片时, 浏览器的 <code>FileReader</code> API 直接从磁盘读取图片作为 RAM 中的二进制数据。 <code>readAsDataURL()</code> 方法使用 RFC 4648 算法将这些二进制字节转换为其 Base64 表示形式-原始数据的每 3 个字节表示为 Base64 字母表中的 4 个 ASCII 字符。结果包含自动检测到的正确 MIME 类型。',
121
111
  },
122
112
  {
123
113
  type: 'tip',
124
114
  title: '仅对小图片使用 (10 KB 以下)',
125
- html: 'Base64 会使文件大小增加约 33%: 10 KB 的图片变成约 13.3 KB 的文本。对于小图标和徽标, 此成本很小, 而消除 HTTP 请求可以弥补这一点。对于照片或大图片, 大小开销非常大——对于大图片, 请务必使用 CDN。',
115
+ html: 'Base64 会使文件大小增加约 33%: 10 KB 的图片变成约 13.3 KB 的文本。对于小图标和徽标, 此成本很小, 而消除 HTTP 请求可以弥补这一点。对于照片或大图片, 大小开销非常大-对于大图片, 请务必使用 CDN。',
126
116
  },
127
117
  {
128
118
  type: 'title',
@@ -131,7 +121,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
131
121
  },
132
122
  {
133
123
  type: 'tip',
134
- title: '大图片请避免使用 Base64——请改用 CDN',
124
+ title: '大图片请避免使用 Base64: 请改用 CDN',
135
125
  html: '如果图片大于 10-20 KB, Base64 会损害性能: 它会使 HTML/CSS 大小膨胀, 阻止浏览器独立缓存图片, 并在解析器处理巨型字符串时阻塞渲染。对于大图片, 请务必使用带有适当缓存头的 CDN 服务。',
136
126
  },
137
127
  {
@@ -141,7 +131,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
141
131
  },
142
132
  {
143
133
  type: 'paragraph',
144
- html: 'Data URI 兼容 100% 的现代浏览器和大多数电子邮件客户端。我们的工具通过 FileReader API 在本地处理所有内容——您的图片绝不会离开您的设备。这使其适用于公司内部图片、私人截图或您需要转换为 Base64 的任何机密视觉内容。',
134
+ html: 'Data URI 兼容 100% 的现代浏览器和大多数电子邮件客户端。我们的工具通过 FileReader API 在本地处理所有内容-您的图片绝不会离开您的设备。这使其适用于公司内部图片、私人截图或您需要转换为 Base64 的任何机密视觉内容。',
145
135
  },
146
136
  {
147
137
  type: 'title',
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await imagenBase64.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: 'ICO Ikonografische Struktur und Systemnutzung',
6
+ url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
7
+ },
8
+ {
9
+ name: 'JPEG.org Standards',
10
+ url: 'https://jpeg.org/',
11
+ },
12
+ ];
@@ -27,3 +27,5 @@ export const jpgAIco: 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 { JpgAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'ICO Ikonografische Struktur und Systemnutzung',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'JPEG.org Standards',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: JpgAIcoLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'Das <strong>ICO</strong>-Format ist der Microsoft-Standard für Symbole in Windows-Anwendungen und Favicons von Websites. Im Gegensatz zum einfachen Umbenennen eines JPG in .ico erfordert eine echte ICO-Datei eine spezifische binäre Struktur mit 22-Byte-Headern und einem eingebetteten Bildverzeichnis. <strong>JPG</strong> ist der am häufigsten gewählte Ausgangspunkt für die Erstellung dieser Icons – ein Firmenlogo, ein Profilfoto oder jedes Bild, das Sie zum visuellen Erkennungsmerkmal Ihrer Anwendung oder Website machen möchten.',
63
+ html: 'Das <strong>ICO</strong>-Format ist der Microsoft-Standard für Symbole in Windows-Anwendungen und Favicons von Websites. Im Gegensatz zum einfachen Umbenennen eines JPG in .ico erfordert eine echte ICO-Datei eine spezifische binäre Struktur mit 22-Byte-Headern und einem eingebetteten Bildverzeichnis. <strong>JPG</strong> ist der am häufigsten gewählte Ausgangspunkt für die Erstellung dieser Icons - ein Firmenlogo, ein Profilfoto oder jedes Bild, das Sie zum visuellen Erkennungsmerkmal Ihrer Anwendung oder Website machen möchten.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,11 +69,11 @@ const seo: JpgAIcoLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: '<strong>JPG</strong> ist ein Quellformat, kein Zielformat für Symbole. Es eignet sich hervorragend für Fotografien und Banner, ist jedoch inkompatibel mit Systemen, die Icons erfordern: Windows Explorer, die Lesezeichenleiste des Browsers, Desktop-Verknüpfungen oder PWA-Anwendungsmanifeste. Ein Betriebssystem oder Browser, der nach einem Icon sucht, erwartet das ICO-Format – und wenn es dieses nicht findet, wird ein generisches Symbol oder ein fehlerhaftes Quadrat angezeigt.',
72
+ html: '<strong>JPG</strong> ist ein Quellformat, kein Zielformat für Symbole. Es eignet sich hervorragend für Fotografien und Banner, ist jedoch inkompatibel mit Systemen, die Icons erfordern: Windows Explorer, die Lesezeichenleiste des Browsers, Desktop-Verknüpfungen oder PWA-Anwendungsmanifeste. Ein Betriebssystem oder Browser, der nach einem Icon sucht, erwartet das ICO-Format - und wenn es dieses nicht findet, wird ein generisches Symbol oder ein fehlerhaftes Quadrat angezeigt.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'Das <strong>ICO</strong>-Format wurde entwickelt, um mehrere Auflösungen in einer einzigen Datei zu speichern: <strong>16×16</strong> für die Lesezeichenleiste, <strong>32×32</strong> für Verknüpfungen, <strong>48×48</strong> für den Datei-Explorer und <strong>256×256</strong> für hochauflösende Displays. Browser und Betriebssysteme wählen automatisch die passende Auflösung basierend auf dem Anzeigekontext aus – der Benutzer muss nichts weiter tun.',
76
+ html: 'Das <strong>ICO</strong>-Format wurde entwickelt, um mehrere Auflösungen in einer einzigen Datei zu speichern: <strong>16×16</strong> für die Lesezeichenleiste, <strong>32×32</strong> für Verknüpfungen, <strong>48×48</strong> für den Datei-Explorer und <strong>256×256</strong> für hochauflösende Displays. Browser und Betriebssysteme wählen automatisch die passende Auflösung basierend auf dem Anzeigekontext aus - der Benutzer muss nichts weiter tun.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAIcoLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Sofortige Geschwindigkeit – keine Netzwerklatenz',
115
- 'Vollständige Privatsphäre – 0 Byte werden extern gesendet',
104
+ 'Sofortige Geschwindigkeit - keine Netzwerklatenz',
105
+ 'Vollständige Privatsphäre - 0 Byte werden extern gesendet',
116
106
  'Keine Megabyte-Limits oder Dateianzahlbeschränkungen',
117
107
  'Saubere Benutzeroberfläche, keine Werbung oder Tracking',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAIcoLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'Das JPG wird dekodiert und auf ein im Speicher befindliches <strong>HTML5 Canvas</strong> gezeichnet. Da das ICO-Format ein quadratisches Bild erfordert, erkennt die Engine automatisch, ob das JPG rechteckig ist, und schneidet es zu, indem sie den relevantesten Teil zentriert. Anschließend wird der Standard-Microsoft-ICO-Header mit der korrekten Magic Number (<code>00 00 01 00</code>), dem Bildverzeichnis und den kodierten Pixeldaten erstellt. Das Ergebnis ist eine echte binäre .ico-Datei – kein umbenanntes PNG.',
119
+ html: 'Das JPG wird dekodiert und auf ein im Speicher befindliches <strong>HTML5 Canvas</strong> gezeichnet. Da das ICO-Format ein quadratisches Bild erfordert, erkennt die Engine automatisch, ob das JPG rechteckig ist, und schneidet es zu, indem sie den relevantesten Teil zentriert. Anschließend wird der Standard-Microsoft-ICO-Header mit der korrekten Magic Number (<code>00 00 01 00</code>), dem Bildverzeichnis und den kodierten Pixeldaten erstellt. Das Ergebnis ist eine echte binäre .ico-Datei - kein umbenanntes PNG.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Da JPG kein Alpha-Kanal besitzt, wird das resultierende ICO ebenfalls keine Transparenz aufweisen – es wird einen soliden Hintergrund haben, der vom Originalfoto übernommen wurde. Wenn Sie ein Favicon mit transparentem Hintergrund benötigen (zum Beispiel zur Anpassung an dunkle oder helle Lesezeichenleisten), ist der empfohlene Arbeitsablauf: Hintergrund in einem Editor entfernen, als PNG speichern und den PNG zu ICO Konverter verwenden.',
123
+ html: 'Da JPG kein Alpha-Kanal besitzt, wird das resultierende ICO ebenfalls keine Transparenz aufweisen - es wird einen soliden Hintergrund haben, der vom Originalfoto übernommen wurde. Wenn Sie ein Favicon mit transparentem Hintergrund benötigen (zum Beispiel zur Anpassung an dunkle oder helle Lesezeichenleisten), ist der empfohlene Arbeitsablauf: Hintergrund in einem Editor entfernen, als PNG speichern und den PNG zu ICO Konverter verwenden.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Tipp: Mehrere Auflösungen in einer einzigen ICO Datei',
138
- html: 'ICO-Dateien können <strong>mehrere Auflösungen</strong> in einer einzigen Datei packen – der Browser oder das Betriebssystem wählt automatisch die passendste für den jeweiligen Kontext aus. Für das bestmögliche Ergebnis verwenden Sie ein quadratisches JPG mit mindestens <strong>256×256 Pixeln</strong> als Quelle: Dies gibt dem Konverter genügend Informationen, um scharfe 16×16, 32×32 und 48×48 Größen ohne Verpixelung zu generieren.',
128
+ html: 'ICO-Dateien können <strong>mehrere Auflösungen</strong> in einer einzigen Datei packen - der Browser oder das Betriebssystem wählt automatisch die passendste für den jeweiligen Kontext aus. Für das bestmögliche Ergebnis verwenden Sie ein quadratisches JPG mit mindestens <strong>256×256 Pixeln</strong> als Quelle: Dies gibt dem Konverter genügend Informationen, um scharfe 16×16, 32×32 und 48×48 Größen ohne Verpixelung zu generieren.',
139
129
  },
140
130
  {
141
131
  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 { JpgAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'ICO Iconographic Structure and System Usage',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'JPEG.org Standards',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: JpgAIcoLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'The <strong>ICO</strong> format is Microsoft\'s standard for Windows application icons and website favicons. Unlike simply renaming a JPG as .ico, a genuine ICO file requires a specific binary structure with 22-byte headers and an embedded image directory. <strong>JPG</strong> is the most common starting point for creating these icons — a company logo, a profile photo, or any image you want to turn into the visual icon of your application or website.',
63
+ html: 'The <strong>ICO</strong> format is Microsoft\'s standard for Windows application icons and website favicons. Unlike simply renaming a JPG as .ico, a genuine ICO file requires a specific binary structure with 22-byte headers and an embedded image directory. <strong>JPG</strong> is the most common starting point for creating these icons - a company logo, a profile photo, or any image you want to turn into the visual icon of your application or website.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,11 +69,11 @@ const seo: JpgAIcoLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: '<strong>JPG</strong> is a source format, not a destination for icons. Perfect for photographs and banners, but incompatible with systems that require icons: Windows Explorer, the browser\'s bookmark bar, desktop shortcuts, or PWA application manifests. An operating system or browser looking for an icon expects the ICO format — and if it doesn\'t find it, it will display a generic icon or a broken square.',
72
+ html: '<strong>JPG</strong> is a source format, not a destination for icons. Perfect for photographs and banners, but incompatible with systems that require icons: Windows Explorer, the browser\'s bookmark bar, desktop shortcuts, or PWA application manifests. An operating system or browser looking for an icon expects the ICO format - and if it doesn\'t find it, it will display a generic icon or a broken square.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'The <strong>ICO</strong> format was designed to contain multiple resolutions in a single file: <strong>16×16</strong> for the bookmark bar, <strong>32×32</strong> for shortcuts, <strong>48×48</strong> for the file explorer, and <strong>256×256</strong> for high-density displays. Browsers and operating systems automatically select the appropriate resolution based on the display context — the user doesn\'t have to manage anything.',
76
+ html: 'The <strong>ICO</strong> format was designed to contain multiple resolutions in a single file: <strong>16×16</strong> for the bookmark bar, <strong>32×32</strong> for shortcuts, <strong>48×48</strong> for the file explorer, and <strong>256×256</strong> for high-density displays. Browsers and operating systems automatically select the appropriate resolution based on the display context - the user doesn\'t have to manage anything.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAIcoLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Instant speed — zero network latency',
115
- 'Complete privacy — 0 bytes sent externally',
104
+ 'Instant speed - zero network latency',
105
+ 'Complete privacy - 0 bytes sent externally',
116
106
  'No MB limits or file count restrictions',
117
107
  'Clean interface, no ads or tracking',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAIcoLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'The JPG is decoded and drawn onto an in-memory <strong>HTML5 Canvas</strong>. Since the ICO format requires a square image, the engine automatically detects if the JPG is rectangular and crops it by centering the most relevant part. It then builds the standard Microsoft ICO header with the correct magic number (<code>00 00 01 00</code>), the image directory, and the encoded pixel data. The result is a genuine binary .ico file — not a renamed PNG.',
119
+ html: 'The JPG is decoded and drawn onto an in-memory <strong>HTML5 Canvas</strong>. Since the ICO format requires a square image, the engine automatically detects if the JPG is rectangular and crops it by centering the most relevant part. It then builds the standard Microsoft ICO header with the correct magic number (<code>00 00 01 00</code>), the image directory, and the encoded pixel data. The result is a genuine binary .ico file - not a renamed PNG.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Since JPG lacks an alpha channel, the resulting ICO will also have no transparency — it will have a solid background inherited from the original photograph. If you need a favicon with a transparent background (for example, to adapt to dark or light bookmark bars), the recommended workflow is: remove the background in an editor, save as PNG, and use the PNG to ICO converter.',
123
+ html: 'Since JPG lacks an alpha channel, the resulting ICO will also have no transparency - it will have a solid background inherited from the original photograph. If you need a favicon with a transparent background (for example, to adapt to dark or light bookmark bars), the recommended workflow is: remove the background in an editor, save as PNG, and use the PNG to ICO converter.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Tip: multiple resolutions in a single ICO',
138
- html: 'ICO files can pack <strong>multiple resolutions</strong> into a single file — the browser or OS automatically picks the most appropriate one for each context. For the best possible result, use a square JPG of at least <strong>256×256 pixels</strong> as your source: this gives the converter enough information to generate sharp 16×16, 32×32, and 48×48 sizes without pixelation.',
128
+ html: 'ICO files can pack <strong>multiple resolutions</strong> into a single file - the browser or OS automatically picks the most appropriate one for each context. For the best possible result, use a square JPG of at least <strong>256×256 pixels</strong> as your source: this gives the converter enough information to generate sharp 16×16, 32×32, and 48×48 sizes without pixelation.',
139
129
  },
140
130
  {
141
131
  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 { JpgAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'Estructura Iconográfica y Uso en Sistemas ICO',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'JPEG.org Standards',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: JpgAIcoLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'El formato <strong>ICO</strong> es el estándar de Microsoft para iconos de Windows y favicons de páginas web. A diferencia de simplemente renombrar un JPG como .ico, un archivo ICO genuino requiere una estructura binaria específica con cabeceras de 22 bytes y un directorio de imágenes embebido. El <strong>JPG</strong> es el punto de partida más común para crear estos iconos — un logotipo de empresa, una fotografía de perfil o cualquier imagen que quieras convertir en el icono visual de tu aplicación o sitio web.',
63
+ html: 'El formato <strong>ICO</strong> es el estándar de Microsoft para iconos de Windows y favicons de páginas web. A diferencia de simplemente renombrar un JPG como .ico, un archivo ICO genuino requiere una estructura binaria específica con cabeceras de 22 bytes y un directorio de imágenes embebido. El <strong>JPG</strong> es el punto de partida más común para crear estos iconos - un logotipo de empresa, una fotografía de perfil o cualquier imagen que quieras convertir en el icono visual de tu aplicación o sitio web.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: JpgAIcoLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'El <strong>JPG</strong> es el formato de origen, no el destino. Perfectamente adecuado para fotografías y banners, pero incompatible con los sistemas que exigen iconos: Windows Explorer, la barra de favoritos del navegador, los accesos directos del escritorio o los manifest de aplicaciones PWA. Un sistema operativo o navegador que busca un icono espera el formato ICO — y si no lo encuentra, mostrará un icono genérico o un cuadrado roto.',
72
+ html: 'El <strong>JPG</strong> es el formato de origen, no el destino. Perfectamente adecuado para fotografías y banners, pero incompatible con los sistemas que exigen iconos: Windows Explorer, la barra de favoritos del navegador, los accesos directos del escritorio o los manifest de aplicaciones PWA. Un sistema operativo o navegador que busca un icono espera el formato ICO - y si no lo encuentra, mostrará un icono genérico o un cuadrado roto.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -111,8 +101,8 @@ const seo: JpgAIcoLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Velocidad instantánea — cero latencia de red',
115
- 'Privacidad total — 0 bytes enviados al exterior',
104
+ 'Velocidad instantánea - cero latencia de red',
105
+ 'Privacidad total - 0 bytes enviados al exterior',
116
106
  'Sin límites de MB ni de número de archivos',
117
107
  'Interfaz limpia, sin anuncios ni rastreos',
118
108
  ],
@@ -130,12 +120,12 @@ const seo: JpgAIcoLocaleContent['seo'] = [
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Dado que el JPG carece de canal alfa, el ICO resultante tampoco tendrá transparencia — tendrá un fondo sólido heredado de la fotografía original. Si necesitas un favicon con fondo transparente (por ejemplo, para que se adapte a barras de favoritos oscuras o claras), el flujo recomendado es: elimina el fondo en un editor, guarda como PNG und usa el convertidor de PNG a ICO.',
123
+ html: 'Dado que el JPG carece de canal alfa, el ICO resultante tampoco tendrá transparencia - tendrá un fondo sólido heredado de la fotografía original. Si necesitas un favicon con fondo transparente (por ejemplo, para que se adapte a barras de favoritos oscuras o claras), el flujo recomendado es: elimina el fondo en un editor, guarda como PNG und usa el convertidor de PNG a ICO.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Consejo: resoluciones múltiples en un solo ICO',
138
- html: 'Los archivos ICO pueden empaquetar <strong>varias resoluciones</strong> en un único fichero — el navegador o el sistema operativo elige automáticamente la más adecuada según el contexto. Para el mejor resultado posible, usa como fuente un JPG cuadrado de al menos <strong>256×256 píxeles</strong>: así el convertidor tendrá suficiente información para generar con nitidez los tamaños 16×16, 32×32 und 48×48 sin pixelado.',
128
+ html: 'Los archivos ICO pueden empaquetar <strong>varias resoluciones</strong> en un único fichero - el navegador o el sistema operativo elige automáticamente la más adecuada según el contexto. Para el mejor resultado posible, usa como fuente un JPG cuadrado de al menos <strong>256×256 píxeles</strong>: así el convertidor tendrá suficiente información para generar con nitidez los tamaños 16×16, 32×32 und 48×48 sin pixelado.',
139
129
  },
140
130
  {
141
131
  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 { JpgAIcoLocaleContent } from '../index';
@@ -51,26 +52,15 @@ const howTo: JpgAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'Structure Iconographique ICO et Utilisation Système',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'Standards JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
68
- text: 'Convertisseur JPG vers ICO : Créez des Favicons et Icônes Windows depuis vos Photos',
58
+ text: 'Convertisseur JPG vers ICO: Créez des Favicons et Icônes Windows depuis vos Photos',
69
59
  level: 2,
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'Le format <strong>ICO</strong> est le standard de Microsoft pour les icônes d\'applications Windows et les favicons de sites web. Contrairement à un simple renommage d\'un JPG en .ico, un vrai fichier ICO nécessite une structure binaire spécifique avec des en-têtes de 22 octets et un répertoire d\'images intégré. Le <strong>JPG</strong> est le point de départ le plus courant pour créer ces icônes — un logo d\'entreprise, une photo de profil ou toute image que vous souhaitez transformer en identité visuelle de votre application ou site web.',
63
+ html: 'Le format <strong>ICO</strong> est le standard de Microsoft pour les icônes d\'applications Windows et les favicons de sites web. Contrairement à un simple renommage d\'un JPG en .ico, un vrai fichier ICO nécessite une structure binaire spécifique avec des en-têtes de 22 octets et un répertoire d\'images intégré. Le <strong>JPG</strong> est le point de départ le plus courant pour créer ces icônes - un logo d\'entreprise, une photo de profil ou toute image que vous souhaitez transformer en identité visuelle de votre application ou site web.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,15 +69,15 @@ const seo: JpgAIcoLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Le <strong>JPG</strong> est un format source, pas une destination pour les icônes. Parfait pour les photos et les bannières, mais incompatible avec les systèmes qui exigent des icônes : l\'Explorateur Windows, la barre de favoris du navigateur, les raccourcis bureau ou les manifestes d\'applications PWA. Un système d\'exploitation ou un navigateur cherchant une icône attend le format ICO — et s\'il ne le trouve pas, il affichera une icône générique ou un carré cassé.',
72
+ html: 'Le <strong>JPG</strong> est un format source, pas une destination pour les icônes. Parfait pour les photos et les bannières, mais incompatible avec les systèmes qui exigent des icônes: l\'Explorateur Windows, la barre de favoris du navigateur, les raccourcis bureau ou les manifestes d\'applications PWA. Un système d\'exploitation ou un navigateur cherchant une icône attend le format ICO - et s\'il ne le trouve pas, il affichera une icône générique ou un carré cassé.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'Le format <strong>ICO</strong> a été conçu pour contenir plusieurs résolutions dans un seul fichier : <strong>16×16</strong> pour la barre de favoris, <strong>32×32</strong> pour les raccourcis, <strong>48×48</strong> pour l\'explorateur de fichiers et <strong>256×256</strong> pour les écrans haute densité. Les navigateurs et systèmes d\'exploitation sélectionnent automatiquement la résolution appropriée selon le contexte d\'affichage — l\'utilisateur n\'a rien à gérer.',
76
+ html: 'Le format <strong>ICO</strong> a été conçu pour contenir plusieurs résolutions dans un seul fichier: <strong>16×16</strong> pour la barre de favoris, <strong>32×32</strong> pour les raccourcis, <strong>48×48</strong> pour l\'explorateur de fichiers et <strong>256×256</strong> pour les écrans haute densité. Les navigateurs et systèmes d\'exploitation sélectionnent automatiquement la résolution appropriée selon le contexte d\'affichage - l\'utilisateur n\'a rien à gérer.',
87
77
  },
88
78
  {
89
79
  type: 'title',
90
- text: 'Comparatif : Conversion locale vs Cloud',
80
+ text: 'Comparatif: Conversion locale vs Cloud',
91
81
  level: 3,
92
82
  },
93
83
  {
@@ -111,8 +101,8 @@ const seo: JpgAIcoLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Vitesse instantanée — zéro latence réseau',
115
- 'Confidentialité totale — 0 octet envoyé à l\'extérieur',
104
+ 'Vitesse instantanée - zéro latence réseau',
105
+ 'Confidentialité totale - 0 octet envoyé à l\'extérieur',
116
106
  'Aucune limite de taille ni de nombre de fichiers',
117
107
  'Interface épurée, sans publicités ni traçage',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAIcoLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'Le JPG est décodé et dessiné sur un <strong>Canvas HTML5</strong> en mémoire. Comme le format ICO exige une image carrée, le moteur détecte automatiquement si le JPG est rectangulaire et le recadre en centrant la partie la plus pertinente. Il construit ensuite l\'en-tête ICO standard de Microsoft avec le bon nombre magique (<code>00 00 01 00</code>), le répertoire d\'images et les données de pixels encodées. Le résultat est un vrai fichier binaire .ico — pas un PNG renommé.',
119
+ html: 'Le JPG est décodé et dessiné sur un <strong>Canvas HTML5</strong> en mémoire. Comme le format ICO exige une image carrée, le moteur détecte automatiquement si le JPG est rectangulaire et le recadre en centrant la partie la plus pertinente. Il construit ensuite l\'en-tête ICO standard de Microsoft avec le bon nombre magique (<code>00 00 01 00</code>), le répertoire d\'images et les données de pixels encodées. Le résultat est un vrai fichier binaire .ico - pas un PNG renommé.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Comme le JPG ne possède pas de canal alfa, l\'ICO résultant n\'aura pas non plus de transparence — il aura un fond solide hérité de la photographie originale. Si vous avez besoin d\'un favicon avec fond transparent (par exemple pour s\'adapter aux barres de favoris sombres ou claires), le flux recommandé est : supprimez le fond dans un éditeur, sauvegardez en PNG, puis utilisez le convertisseur PNG vers ICO.',
123
+ html: 'Comme le JPG ne possède pas de canal alfa, l\'ICO résultant n\'aura pas non plus de transparence - il aura un fond solide hérité de la photographie originale. Si vous avez besoin d\'un favicon avec fond transparent (par exemple pour s\'adapter aux barres de favoris sombres ou claires), le flux recommandé est: supprimez le fond dans un éditeur, sauvegardez en PNG, puis utilisez le convertisseur PNG vers ICO.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
- title: 'Conseil : plusieurs résolutions dans un seul ICO',
138
- html: 'Les fichiers ICO peuvent regrouper <strong>plusieurs résolutions</strong> dans un seul fichier — le navigateur ou le système d\'exploitation choisit automatiquement la plus appropriée selon le contexte. Pour le meilleur résultat possible, utilisez un JPG carré d\'au moins <strong>256×256 pixels</strong> comme source : le convertisseur disposera ainsi de suffisamment d\'informations pour générer des tailles 16×16, 32×32 et 48×48 nettes, sans pixelisation.',
127
+ title: 'Conseil: plusieurs résolutions dans un seul ICO',
128
+ html: 'Les fichiers ICO peuvent regrouper <strong>plusieurs résolutions</strong> dans un seul fichier - le navigateur ou le système d\'exploitation choisit automatiquement la plus appropriée selon le contexte. Pour le meilleur résultat possible, utilisez un JPG carré d\'au moins <strong>256×256 pixels</strong> comme source: le convertisseur disposera ainsi de suffisamment d\'informations pour générer des tailles 16×16, 32×32 et 48×48 nettes, sans pixelisation.',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -146,7 +136,7 @@ const seo: JpgAIcoLocaleContent['seo'] = [
146
136
  type: 'list',
147
137
  icon: 'mdi:check-circle',
148
138
  items: [
149
- 'Favicon de site web : compatible avec tous les navigateurs y compris Internet Explorer.',
139
+ 'Favicon de site web: compatible avec tous les navigateurs y compris Internet Explorer.',
150
140
  'Personnalisation de dossiers et d\'icônes de bureau sous Windows 10/11.',
151
141
  'Icône de raccourci pour applications de bureau ou installateurs.',
152
142
  'Icône d\'application pour projets Electron ou applications PWA.',
@@ -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 { JpgAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'Struktur Ikonografi ICO und Penggunaan Sistem',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'Standar JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: JpgAIcoLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'Format <strong>ICO</strong> adalah standar Microsoft untuk ikon aplikasi Windows und favicon situs web. Berbeda dengan sekadar mengganti nama JPG menjadi .ico, file ICO asli memerlukan struktur biner khusus dengan header 22-byte und direktori gambar yang disematkan. <strong>JPG</strong> adalah titik awal yang paling umum untuk membuat ikon-ikon ini — logo perusahaan, foto profil, atau gambar apa pun yang ingin Anda ubah menjadi ikon visual aplikasi atau situs web Anda.',
63
+ html: 'Format <strong>ICO</strong> adalah standar Microsoft untuk ikon aplikasi Windows und favicon situs web. Berbeda dengan sekadar mengganti nama JPG menjadi .ico, file ICO asli memerlukan struktur biner khusus dengan header 22-byte und direktori gambar yang disematkan. <strong>JPG</strong> adalah titik awal yang paling umum untuk membuat ikon-ikon ini - logo perusahaan, foto profil, atau gambar apa pun yang ingin Anda ubah menjadi ikon visual aplikasi atau situs web Anda.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,11 +69,11 @@ const seo: JpgAIcoLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: '<strong>JPG</strong> adalah format sumber, bukan tujuan untuk ikon. Sempurna untuk foto und banner, tetapi tidak kompatibel dengan sistem yang memerlukan ikon: Windows Explorer, bilah bookmark browser, pintasan desktop, atau manifes aplikasi PWA. Sistem operasi atau browser yang mencari ikon mengharapkan format ICO — und jika tidak menemukannya, ia akan menampilkan ikon generik atau kotak rusak.',
72
+ html: '<strong>JPG</strong> adalah format sumber, bukan tujuan untuk ikon. Sempurna untuk foto und banner, tetapi tidak kompatibel dengan sistem yang memerlukan ikon: Windows Explorer, bilah bookmark browser, pintasan desktop, atau manifes aplikasi PWA. Sistem operasi atau browser yang mencari ikon mengharapkan format ICO - und jika tidak menemukannya, ia akan menampilkan ikon generik atau kotak rusak.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'Format <strong>ICO</strong> dirancang untuk menampung beberapa resolusi dalam satu file: <strong>16×16</strong> untuk bilah bookmark, <strong>32×32</strong> untuk pintasan, <strong>48×48</strong> untuk file explorer, und <strong>256×256</strong> untuk layar dengan kepadatan tinggi. Browser und sistem operasi secara otomatis memilih resolusi yang sesuai berdasarkan konteks tampilan — pengguna tidak perlu mengelola apa pun.',
76
+ html: 'Format <strong>ICO</strong> dirancang untuk menampung beberapa resolusi dalam satu file: <strong>16×16</strong> untuk bilah bookmark, <strong>32×32</strong> untuk pintasan, <strong>48×48</strong> untuk file explorer, und <strong>256×256</strong> untuk layar dengan kepadatan tinggi. Browser und sistem operasi secara otomatis memilih resolusi yang sesuai berdasarkan konteks tampilan - pengguna tidak perlu mengelola apa pun.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAIcoLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Kecepatan instan — nol latensi jaringan',
115
- 'Privasi lengkap — 0 byte dikirim secara eksternal',
104
+ 'Kecepatan instan - nol latensi jaringan',
105
+ 'Privasi lengkap - 0 byte dikirim secara eksternal',
116
106
  'Tanpa batas MB atau batasan jumlah file',
117
107
  'Antarmuka bersih, tanpa iklan atau pelacakan',
118
108
  ],
@@ -126,16 +116,16 @@ const seo: JpgAIcoLocaleContent['seo'] = [
126
116
  },
127
117
  {
128
118
  type: 'paragraph',
129
- html: 'JPG didekodekan und digambar ke dalam <strong>HTML5 Canvas</strong> di memori. Karena format ICO memerlukan gambar persegi, mesin secara otomatis mendeteksi jika JPG berbentuk persegi panjang und memotongnya dengan memusatkan bagian yang paling relevan. Kemudian ia membangun header Microsoft ICO standar dengan magic number yang benar (<code>00 00 01 00</code>), direktori gambar, und data piksel yang dikodekan. Hasilnya adalah file biner .ico asli — bukan PNG yang diganti namanya.',
119
+ html: 'JPG didekodekan und digambar ke dalam <strong>HTML5 Canvas</strong> di memori. Karena format ICO memerlukan gambar persegi, mesin secara otomatis mendeteksi jika JPG berbentuk persegi panjang und memotongnya dengan memusatkan bagian yang paling relevan. Kemudian ia membangun header Microsoft ICO standar dengan magic number yang benar (<code>00 00 01 00</code>), direktori gambar, und data piksel yang dikodekan. Hasilnya adalah file biner .ico asli - bukan PNG yang diganti namanya.',
130
120
  },
131
121
  {
132
122
  type: 'paragraph',
133
- html: 'Karena JPG tidak memiliki saluran alfa, ICO yang dihasilkan juga tidak akan memiliki transparansi — ia akan memiliki latar belakang padat yang diwarisi dari foto asli. Jika Anda memerlukan favicon dengan latar belakang transparan (misalnya, untuk beradaptasi dengan bilah bookmark gelap atau terang), alur kerja yang disarankan adalah: hapus latar belakang di editor, simpan sebagai PNG, und gunakan konverter PNG ke ICO.',
123
+ html: 'Karena JPG tidak memiliki saluran alfa, ICO yang dihasilkan juga tidak akan memiliki transparansi - ia akan memiliki latar belakang padat yang diwarisi dari foto asli. Jika Anda memerlukan favicon dengan latar belakang transparan (misalnya, untuk beradaptasi dengan bilah bookmark gelap atau terang), alur kerja yang disarankan adalah: hapus latar belakang di editor, simpan sebagai PNG, und gunakan konverter PNG ke ICO.',
134
124
  },
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'Tip: beberapa resolusi dalam satu ICO',
138
- html: 'File ICO dapat mengemas <strong>beberapa resolusi</strong> ke dalam satu file — browser atau OS secara otomatis memilih yang paling sesuai untuk setiap konteks. Untuk hasil terbaik, gunakan JPG persegi minimal <strong>256×256 piksel</strong> sebagai sumber Anda: ini memberi konverter informasi yang cukup untuk menghasilkan ukuran 16×16, 32×32, und 48×48 yang tajam tanpa pikselasi.',
128
+ html: 'File ICO dapat mengemas <strong>beberapa resolusi</strong> ke dalam satu file - browser atau OS secara otomatis memilih yang paling sesuai untuk setiap konteks. Untuk hasil terbaik, gunakan JPG persegi minimal <strong>256×256 piksel</strong> sebagai sumber Anda: ini memberi konverter informasi yang cukup untuk menghasilkan ukuran 16×16, 32×32, und 48×48 yang tajam tanpa pikselasi.',
139
129
  },
140
130
  {
141
131
  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 { JpgAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'Struttura Iconografica ICO e Utilizzo del Sistema',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'Standard JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -111,8 +101,8 @@ const seo: JpgAIcoLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Velocità istantanea — latenza di rete zero',
115
- 'Privacy completa — 0 byte inviati esternamente',
104
+ 'Velocità istantanea - latenza di rete zero',
105
+ 'Privacy completa - 0 byte inviati esternamente',
116
106
  'Nessun limite di MB o restrizioni sul numero di file',
117
107
  'Interfaccia pulita, senza pubblicità o tracciamento',
118
108
  ],
@@ -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 { JpgAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'ICOの図像的構造とシステムの使用法',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'JPEG.org 標準',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -112,7 +102,7 @@ const seo: JpgAIcoLocaleContent['seo'] = [
112
102
  highlight: true,
113
103
  points: [
114
104
  'ネットワーク遅延のない即座の処理速度',
115
- '完全なプライバシー — 外部に送信されるデータは0バイト',
105
+ '完全なプライバシー - 外部に送信されるデータは0バイト',
116
106
  '容量制限やファイル数の制限なし',
117
107
  '広告や追跡のないクリーンなインターフェース',
118
108
  ],
@@ -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 { JpgAIcoLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: JpgAIcoLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
- {
56
- name: 'ICO 도상학적 구조 및 시스템 사용법',
57
- url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
- },
59
- {
60
- name: 'JPEG.org 표준',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: JpgAIcoLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -112,7 +102,7 @@ const seo: JpgAIcoLocaleContent['seo'] = [
112
102
  highlight: true,
113
103
  points: [
114
104
  '네트워크 지연 없는 즉각적인 속도',
115
- '완벽한 개인 정보 보호 — 외부로 전송되는 데이터 0바이트',
105
+ '완벽한 개인 정보 보호 - 외부로 전송되는 데이터 0바이트',
116
106
  '용량 제한이나 파일 개수 제한 없음',
117
107
  '광고나 추적 없는 깨끗한 인터페이스',
118
108
  ],