@jjlmoya/utils-converters 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/package.json +60 -59
  2. package/src/shared/logic/schemas.ts +57 -0
  3. package/src/tests/faq_count.test.ts +13 -4
  4. package/src/tests/i18n_coverage.test.ts +36 -0
  5. package/src/tests/locale_completeness.test.ts +42 -0
  6. package/src/tests/no_h1_in_components.test.ts +48 -0
  7. package/src/tests/schemas_fulfillment.test.ts +23 -0
  8. package/src/tests/seo_length.test.ts +1 -1
  9. package/src/tests/title_quality.test.ts +55 -0
  10. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  11. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  12. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  15. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  25. package/src/tool/avifAJpg/index.ts +13 -1
  26. package/src/tool/avifAPng/i18n/de.ts +178 -0
  27. package/src/tool/avifAPng/i18n/en.ts +2 -12
  28. package/src/tool/avifAPng/i18n/es.ts +2 -12
  29. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  30. package/src/tool/avifAPng/i18n/id.ts +178 -0
  31. package/src/tool/avifAPng/i18n/it.ts +178 -0
  32. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  34. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  35. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  37. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  38. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  39. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  40. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  41. package/src/tool/avifAPng/index.ts +13 -1
  42. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  43. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  44. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  47. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  57. package/src/tool/avifAWebp/index.ts +13 -1
  58. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  59. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  60. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  63. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  73. package/src/tool/bmpAJpg/index.ts +13 -1
  74. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  75. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  76. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  79. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  89. package/src/tool/bmpAPng/index.ts +13 -1
  90. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  91. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  92. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  95. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  105. package/src/tool/bmpAWebp/index.ts +13 -1
  106. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  107. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  108. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  111. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  121. package/src/tool/gifAJpg/index.ts +13 -1
  122. package/src/tool/gifAPng/i18n/de.ts +178 -0
  123. package/src/tool/gifAPng/i18n/en.ts +2 -12
  124. package/src/tool/gifAPng/i18n/es.ts +2 -12
  125. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  126. package/src/tool/gifAPng/i18n/id.ts +178 -0
  127. package/src/tool/gifAPng/i18n/it.ts +178 -0
  128. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  130. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  131. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  133. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  134. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  135. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  136. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  137. package/src/tool/gifAPng/index.ts +12 -0
  138. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  139. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  140. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  143. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  153. package/src/tool/gifAWebp/index.ts +12 -0
  154. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  155. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  156. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  159. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  165. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  166. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  169. package/src/tool/imagenBase64/index.ts +12 -0
  170. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  171. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  172. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  173. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  174. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  175. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  185. package/src/tool/jpgAIco/index.ts +12 -0
  186. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  187. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  188. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  191. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  201. package/src/tool/jpgAPng/index.ts +13 -1
  202. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  203. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  204. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  207. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  217. package/src/tool/jpgAWebp/index.ts +12 -0
  218. package/src/tool/pngAIco/i18n/de.ts +183 -0
  219. package/src/tool/pngAIco/i18n/en.ts +8 -13
  220. package/src/tool/pngAIco/i18n/es.ts +19 -24
  221. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  222. package/src/tool/pngAIco/i18n/id.ts +183 -0
  223. package/src/tool/pngAIco/i18n/it.ts +183 -0
  224. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  226. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  227. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  229. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  230. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  231. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  232. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  233. package/src/tool/pngAIco/index.ts +12 -0
  234. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  235. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  236. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  239. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  249. package/src/tool/pngAJpg/index.ts +13 -1
  250. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  251. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  252. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  255. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  265. package/src/tool/pngAWebp/index.ts +12 -0
  266. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  267. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  268. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  270. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  271. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  281. package/src/tool/svgAJpg/index.ts +12 -0
  282. package/src/tool/svgAPng/i18n/de.ts +178 -0
  283. package/src/tool/svgAPng/i18n/en.ts +8 -13
  284. package/src/tool/svgAPng/i18n/es.ts +31 -36
  285. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  286. package/src/tool/svgAPng/i18n/id.ts +178 -0
  287. package/src/tool/svgAPng/i18n/it.ts +178 -0
  288. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  290. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  291. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  293. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  294. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  295. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  296. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  297. package/src/tool/svgAPng/index.ts +12 -0
  298. package/src/tool/webpAIco/i18n/de.ts +183 -0
  299. package/src/tool/webpAIco/i18n/en.ts +8 -13
  300. package/src/tool/webpAIco/i18n/es.ts +9 -14
  301. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  302. package/src/tool/webpAIco/i18n/id.ts +183 -0
  303. package/src/tool/webpAIco/i18n/it.ts +183 -0
  304. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  306. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  307. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  309. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  310. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  311. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  312. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  313. package/src/tool/webpAIco/index.ts +12 -0
  314. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  315. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  316. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  317. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  318. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  319. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  329. package/src/tool/webpAJpg/index.ts +12 -0
  330. package/src/tool/webpAPng/i18n/de.ts +182 -0
  331. package/src/tool/webpAPng/i18n/en.ts +8 -13
  332. package/src/tool/webpAPng/i18n/es.ts +35 -40
  333. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  334. package/src/tool/webpAPng/i18n/id.ts +182 -0
  335. package/src/tool/webpAPng/i18n/it.ts +182 -0
  336. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  338. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  339. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  341. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  342. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  343. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  344. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  345. package/src/tool/webpAPng/index.ts +12 -0
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { PngAIcoLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'convertidor-png-a-ico';
@@ -14,7 +14,7 @@ const ui: ImageConverterUI = {
14
14
  processedFiles: 'Archivos procesados',
15
15
  downloadAll: 'Descargar Todo (.zip)',
16
16
  pending: 'Pendiente',
17
- bibliographyTitle: 'Referencias Bibliográficas',
17
+ bibliographyTitle: 'Referencias Bibliográfica',
18
18
  faqTitle: 'Preguntas Frecuentes',
19
19
  };
20
20
 
@@ -83,7 +83,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
83
83
  },
84
84
  {
85
85
  type: 'paragraph',
86
- html: 'El <strong>ICO</strong> es el formato de distribución para iconos en entornos Microsoft y web. Contiene una estructura binaria específica que permite empaquetar múltiples resoluciones en un solo archivo: el navegador lee el directorio interno del ICO y selecciona automáticamente <strong>16×16</strong> para la pestaña del navegador, <strong>32×32</strong> para accesos directos, <strong>48×48</strong> para el explorador de archivos y <strong>256×256</strong> para pantallas Retina y 4K. Partir de un PNG con transparencia garantiza que todas esas resoluciones tendrán bordes perfectos sin fleco blanco.',
86
+ html: 'El <strong>ICO</strong> es el formato de distribución para iconos en entornos Microsoft y web. Contiene una estructura binaria específica que permite empaquetar múltiples resoluciones en un solo archivo: el navegador lee el directorio interno del ICO und selecciona automáticamente <strong>16×16</strong> para la pestaña del navegador, <strong>32×32</strong> para accesos directos, <strong>48×48</strong> para el explorador de archivos und <strong>256×256</strong> para pantallas Retina und 4K. Partir de un PNG con transparencia garantiza que todas esas resoluciones tendrán bordes perfectos sin fleco blanco.',
87
87
  },
88
88
  {
89
89
  type: 'title',
@@ -99,10 +99,10 @@ const seo: PngAIcoLocaleContent['seo'] = [
99
99
  icon: 'mdi:cloud-upload',
100
100
  pointIcon: 'mdi:close-circle-outline',
101
101
  points: [
102
- 'Latencia de red en upload y download',
102
+ 'Latencia de red en upload und download',
103
103
  'Tu logo corporativo queda en servidores ajenos',
104
- 'Límites de tamaño y conversiones diarias',
105
- 'Publicidad intrusiva y rastreadores de terceros',
104
+ 'Límites de tamaño und conversiones diarias',
105
+ 'Publicidad intrusiva und rastreadores de terceros',
106
106
  ],
107
107
  },
108
108
  {
@@ -126,11 +126,11 @@ const seo: PngAIcoLocaleContent['seo'] = [
126
126
  },
127
127
  {
128
128
  type: 'paragraph',
129
- html: 'El PNG se decodifica en un <strong>Canvas HTML5</strong> en memoria con soporte completo del canal alfa de 32 bits. El motor construye la cabecera ICO estándar de Microsoft con el número mágico correcto (<code>00 00 01 00</code>), el directorio de imágenes con las dimensiones y el offset de datos, y los píxeles codificados manteniendo la información de transparencia. El resultado es un archivo .ico binario genuino que Windows, macOS y todos los navegadores reconocen de forma nativa.',
129
+ html: 'El PNG se decodifica en un <strong>Canvas HTML5</strong> en memoria con soporte completo del canal alfa de 32 bits. El motor construye la cabecera ICO estándar de Microsoft con el número mágico correcto (<code>00 00 01 00</code>), el directorio de imágenes con las dimensiones und el offset de datos, und los píxeles codificados manteniendo la información de transparencia. El resultado es un archivo .ico binario genuino que Windows, macOS und todos los navegadores reconocen de forma nativa.',
130
130
  },
131
131
  {
132
132
  type: 'paragraph',
133
- html: 'La transparencia del PNG se preserva de forma completa en el ICO resultante — los píxeles transparentes siguen siendo transparentes, los semitransparentes mantienen su valor alfa exacto y los opacos conservan su color original. Esto es crítico para logos sobre fondos variables: tu favicon se verá correctamente en modo claro, modo oscuro y cualquier combinación de colores de la interfaz del navegador.',
133
+ html: 'La transparencia del PNG se preserva de forma completa en el ICO resultante — los píxeles transparentes siguen siendo transparentes, los semitransparentes mantienen su valor alfa exacto und los opacos conservan su color original. Esto es crítico para logos sobre fondos variables: tu favicon se verá correctamente en modo claro, modo oscuro und cualquier combinación de colores de la interfaz del navegador.',
134
134
  },
135
135
  {
136
136
  type: 'tip',
@@ -139,7 +139,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
139
139
  },
140
140
  {
141
141
  type: 'title',
142
- text: 'Casos de uso y compatibilidad',
142
+ text: 'Casos de uso und compatibilidad',
143
143
  level: 3,
144
144
  },
145
145
  {
@@ -149,8 +149,8 @@ const seo: PngAIcoLocaleContent['seo'] = [
149
149
  'Favicon con transparencia para sitios web: funciona en Chrome, Firefox, Safari, Edge e Internet Explorer.',
150
150
  'Icono de aplicación PWA: el manifest.json referencia el ICO para la instalación en escritorio.',
151
151
  'Personalización de carpetas en Windows 10/11 con logo corporativo sin fondo blanco.',
152
- 'Icono de acceso directo para aplicaciones de escritorio, instaladores y ejecutables.',
153
- 'Icono de extensiones de navegador Chrome y Firefox.',
152
+ 'Icono de acceso directo para aplicaciones de escritorio, instaladores und ejecutables.',
153
+ 'Icono de extensiones de navegador Chrome und Firefox.',
154
154
  ],
155
155
  },
156
156
  {
@@ -160,21 +160,10 @@ const seo: PngAIcoLocaleContent['seo'] = [
160
160
  },
161
161
  {
162
162
  type: 'paragraph',
163
- html: 'El PNG con transparencia es, sin duda, el mejor punto de partida para crear iconos ICO de calidad profesional. Con esta herramienta, la conversión es instantánea, los canales alfa se preservan íntegramente y el archivo resultante es un ICO genuino con la estructura binaria correcta. Sin subir tu logo a ningún servidor, sin marcas de agua, sin límites — y con transparencia perfecta en todos los tamaños.',
163
+ html: 'El PNG con transparencia es, sin duda, el mejor punto de partida para crear iconos ICO de calidad profesional. Con esta herramienta, la conversión es instantánea, los canales alfa se preservan íntegramente und el archivo resultante es un ICO genuino con la estructura binaria correcta. Sin subir tu logo a ningún servidor, sin marcas de agua, sin límites — und con transparencia perfecta en todos los tamaños.',
164
164
  },
165
165
  ];
166
166
 
167
- const appSchema: WithContext<SoftwareApplication> = {
168
- '@context': 'https://schema.org',
169
- '@type': 'SoftwareApplication',
170
- name: title,
171
- description,
172
- applicationCategory: 'UtilitiesApplication',
173
- operatingSystem: 'Web',
174
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
- inLanguage: 'es',
176
- };
177
-
178
167
  export const content: PngAIcoLocaleContent = {
179
168
  slug,
180
169
  title,
@@ -184,5 +173,11 @@ export const content: PngAIcoLocaleContent = {
184
173
  faq,
185
174
  bibliography,
186
175
  howTo,
187
- schemas: [appSchema as any],
176
+ schemas: generateSchemas({
177
+ title,
178
+ description,
179
+ inLanguage: 'es',
180
+ faq,
181
+ howTo,
182
+ }),
188
183
  };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { PngAIcoLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'convertisseur-png-en-ico';
@@ -14,7 +14,7 @@ const ui: ImageConverterUI = {
14
14
  processedFiles: 'Fichiers traités',
15
15
  downloadAll: 'Tout télécharger (.zip)',
16
16
  pending: 'En attente',
17
- bibliographyTitle: 'Références Bibliographiques',
17
+ bibliographyTitle: 'Références Bibliographique',
18
18
  faqTitle: 'Questions Fréquentes',
19
19
  };
20
20
 
@@ -83,7 +83,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
83
83
  },
84
84
  {
85
85
  type: 'paragraph',
86
- html: 'L\'<strong>ICO</strong> est le format de distribution pour les icônes dans les environnements Microsoft et le web. Il contient une structure binaire spécifique permettant de regrouper plusieurs résolutions dans un seul fichier : le navigateur lit le répertoire interne du fichier ICO et sélectionne automatiquement <strong>16×16</strong> pour l\'onglet du navigateur, <strong>32×32</strong> pour les raccourcis, <strong>48×48</strong> pour l\'explorateur de fichiers et <strong>256×256</strong> pour les écrans Retina et 4K. Partir d\'un PNG transparent garantit que toutes ces résolutions auront des bords parfaits sans liseré blanc.',
86
+ html: 'L\'<strong>ICO</strong> est le format de distribution pour les icônes dans les environnements Microsoft und le web. Il contient une structure binaire spécifique permettant de regrouper plusieurs résolutions dans un seul fichier : le navigateur lit le répertoire interne du fichier ICO und sélectionne automatiquement <strong>16×16</strong> pour l\'onglet du navigateur, <strong>32×32</strong> pour les raccourcis, <strong>48×48</strong> pour l\'explorateur de fichiers und <strong>256×256</strong> pour les écrans Retina und 4K. Partir d\'un PNG transparent garantit que toutes ces résolutions auront des bords parfaits sans liseré blanc.',
87
87
  },
88
88
  {
89
89
  type: 'title',
@@ -99,10 +99,10 @@ const seo: PngAIcoLocaleContent['seo'] = [
99
99
  icon: 'mdi:cloud-upload',
100
100
  pointIcon: 'mdi:close-circle-outline',
101
101
  points: [
102
- 'Latence réseau à l\'envoi et au téléchargement',
102
+ 'Latence réseau à l\'envoi und au téléchargement',
103
103
  'Votre logo d\'entreprise stocké sur des serveurs tiers',
104
- 'Limites de taille et quota quotidien de conversions',
105
- 'Publicités intrusives et traceurs tiers',
104
+ 'Limites de taille und quota quotidien de conversions',
105
+ 'Publicités intrusives und traceurs tiers',
106
106
  ],
107
107
  },
108
108
  {
@@ -126,11 +126,11 @@ const seo: PngAIcoLocaleContent['seo'] = [
126
126
  },
127
127
  {
128
128
  type: 'paragraph',
129
- html: 'Le PNG est décodé dans un <strong>Canvas HTML5</strong> en mémoire avec une prise en charge complète du canal alpha 32 bits. Le moteur construit l\'en-tête ICO standard de Microsoft avec le bon nombre magique (<code>00 00 01 00</code>), le répertoire d\'images avec les dimensions et le décalage des données, et les données de pixels tout en maintenant les informations de transparence. Le résultat est un vrai fichier binaire .ico reconnu nativement par Windows, macOS et tous les navigateurs.',
129
+ html: 'Le PNG est décodé dans un <strong>Canvas HTML5</strong> en mémoire avec une prise en charge complète du canal alpha 32 bits. Le moteur construit l\'en-tête ICO standard de Microsoft avec le bon nombre magique (<code>00 00 01 00</code>), le répertoire d\'images avec les dimensions und le décalage des données, und les données de pixels tout en maintenant les informations de transparence. Le résultat est un vrai fichier binaire .ico reconnu nativement par Windows, macOS und tous les navigateurs.',
130
130
  },
131
131
  {
132
132
  type: 'paragraph',
133
- html: 'La transparence du PNG est entièrement préservée dans l\'ICO résultant — les pixels transparents restent transparents, les pixels semi-transparents conservent leur valeur alpha exacte et les pixels opaques gardent leur couleur d\'origine. C\'est crucial pour les logos sur des fonds variables : votre favicon s\'affichera correctement en mode clair, mode sombre et dans toute combinaison de couleurs de l\'interface du navigateur.',
133
+ html: 'La transparence du PNG est entièrement préservée dans l\'ICO résultant — les pixels transparents restent transparents, les pixels semi-transparents conservent leur valeur alpha exacte und les pixels opaques gardent leur couleur d\'origine. C\'est crucial pour les logos sur des fonds variables : votre favicon s\'affichera correctement en mode clair, mode sombre und dans toute combinaison de couleurs de l\'interface du navigateur.',
134
134
  },
135
135
  {
136
136
  type: 'tip',
@@ -139,18 +139,18 @@ const seo: PngAIcoLocaleContent['seo'] = [
139
139
  },
140
140
  {
141
141
  type: 'title',
142
- text: 'Cas d\'usage et compatibilité',
142
+ text: 'Cas d\'usage und compatibilité',
143
143
  level: 3,
144
144
  },
145
145
  {
146
146
  type: 'list',
147
147
  icon: 'mdi:check-circle',
148
148
  items: [
149
- 'Favicon transparent pour sites web : fonctionne dans Chrome, Firefox, Safari, Edge et Internet Explorer.',
149
+ 'Favicon transparent pour sites web : fonctionne dans Chrome, Firefox, Safari, Edge e Internet Explorer.',
150
150
  'Icône d\'application PWA : le manifest.json référence l\'ICO pour l\'installation sur bureau.',
151
151
  'Personnalisation de dossiers Windows 10/11 avec logo d\'entreprise sans fond blanc.',
152
- 'Icône de raccourci pour applications de bureau, installateurs et exécutables.',
153
- 'Icône d\'extension navigateur pour les extensions Chrome et Firefox.',
152
+ 'Icône de raccourci pour applications de bureau, installateurs und exécutables.',
153
+ 'Icône d\'extension navigateur pour les extensions Chrome und Firefox.',
154
154
  ],
155
155
  },
156
156
  {
@@ -160,21 +160,10 @@ const seo: PngAIcoLocaleContent['seo'] = [
160
160
  },
161
161
  {
162
162
  type: 'paragraph',
163
- html: 'Le PNG avec transparence est sans conteste le meilleur point de départ pour créer des icônes ICO de qualité professionnelle. Avec cet outil, la conversion est instantanée, les canaux alpha sont entièrement préservés et le fichier résultant est un vrai ICO avec la structure binaire correcte. Sans envoyer votre logo sur aucun serveur, sans filigrane, sans limites — et avec une transparence parfaite à toutes les tailles.',
163
+ html: 'Le PNG avec transparence est sans conteste le meilleur point de départ pour créer des icônes ICO de qualité professionnelle. Avec cet outil, la conversion est instantanée, les canaux alpha sont entièrement préservés und le fichier résultant est un vrai ICO avec la structure binaire correcte. Sans envoyer votre logo sur aucun serveur, sans filigrane, sans limites — und avec une transparence parfaite à toutes les tailles.',
164
164
  },
165
165
  ];
166
166
 
167
- const appSchema: WithContext<SoftwareApplication> = {
168
- '@context': 'https://schema.org',
169
- '@type': 'SoftwareApplication',
170
- name: title,
171
- description,
172
- applicationCategory: 'UtilitiesApplication',
173
- operatingSystem: 'Web',
174
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
- inLanguage: 'fr',
176
- };
177
-
178
167
  export const content: PngAIcoLocaleContent = {
179
168
  slug,
180
169
  title,
@@ -184,5 +173,11 @@ export const content: PngAIcoLocaleContent = {
184
173
  faq,
185
174
  bibliography,
186
175
  howTo,
187
- schemas: [appSchema as any],
176
+ schemas: generateSchemas({
177
+ title,
178
+ description,
179
+ inLanguage: 'fr',
180
+ faq,
181
+ howTo,
182
+ }),
188
183
  };
@@ -0,0 +1,183 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { PngAIcoLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-png-ke-ico';
6
+ const title = 'Konversi PNG ke ICO Online';
7
+ const description =
8
+ 'Konversi PNG ke ICO dengan header biner asli. Transparansi dipertahankan. Tanpa pengunggahan file. Gratis dan 100% pribadi.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Tarik file PNG...',
12
+ convertText: 'Untuk mengkonversinya ke ICO secara instan',
13
+ selectFiles: 'Pilih file',
14
+ processedFiles: 'File yang diproses',
15
+ downloadAll: 'Unduh Semua (.zip)',
16
+ pending: 'Menunggu',
17
+ bibliographyTitle: 'Referensi Bibliografi',
18
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
19
+ };
20
+
21
+ const faq: PngAIcoLocaleContent['faq'] = [
22
+ {
23
+ question: 'Apakah konverter Anda pembuat file PNG sederhana yang menyamar atau ICO asli?',
24
+ answer:
25
+ 'Kami membuat ICO asli. Kami mengekstrak data dari PNG Anda, membuat header heksadesimal Microsoft yang terstandarisasi (Header + Direktori 22 byte), mengubah ukuran ke format persegi yang ideal secara lokal dan menyusun file akhir yang divalidasi sebagai native.',
26
+ },
27
+ {
28
+ question: 'Apakah transparansi dipertahankan saat logo saya dimasukkan ke dalam ikon?',
29
+ answer:
30
+ 'Tentu saja ya. Mesin kami membaca PNG Anda pada 32 bit, menambatkannya sambil mempertahankan dengan tepat setiap lubang tembus transparan sehingga menonjol di bilah alamat web universal (Favicon).',
31
+ },
32
+ {
33
+ question: 'Apakah logo perusahaan saya disimpan di server Anda?',
34
+ answer:
35
+ 'Layanan ini menjamin nol kontak jaringan eksternal. Konverter bekerja tertambat di HTML5 Canvas internal Anda; pembuatan ikon Anda terjadi seratus persen di dalam mesin Anda di memori lokal yang murni rahasia.',
36
+ },
37
+ ];
38
+
39
+ const howTo: PngAIcoLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Tarik file untuk mentransfer',
42
+ text: 'Letakkan matriks foto Anda (PNG persegi 512x512 sangat ideal) pada bingkai lokal interaktif.',
43
+ },
44
+ {
45
+ name: 'Kompilasi bytecode otomatis',
46
+ text: 'Anda akan melihat bilah berjalan secara internal memuat dan memproduksi matriks lokal dari header heksadesimal ICO yang dimurnikan.',
47
+ },
48
+ {
49
+ name: 'Akumulasi atau keluar dengan ZIP Anda',
50
+ text: 'Unduh dengan mengeklik kompilasi mega untuk situs web Anda (tombol ZIP global) atau unduh thumbnail untuk executable Windows.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: PngAIcoLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Struktur Teknis Format ICO Microsoft',
57
+ url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
+ },
59
+ {
60
+ name: 'Standar Favicon - W3C',
61
+ url: 'https://www.w3.org/2005/10/howto-favicon',
62
+ },
63
+ ];
64
+
65
+ const seo: PngAIcoLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konverter PNG ke ICO: Sumber Terbaik untuk Favicon dengan Transparansi Sempurna',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: '<strong>PNG dengan transparansi</strong> adalah bahan awal yang ideal untuk membuat ikon ICO profesional. Tidak seperti JPG (yang tidak memiliki saluran alfa) atau format lossy, PNG memberikan apa yang dibutuhkan format ICO: piksel yang tajam, tepi yang bersih, und saluran alfa 32-bit yang memungkinkan ikon berintegrasi sempurna di latar belakang apa pun — baik bilah bookmark putih Safari, bilah gelap Firefox, atau desktop Windows 11.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'PNG atau ICO? Kapan menggunakan masing-masing format',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '<strong>PNG</strong> adalah format kerja: di sinilah Anda mendesain logo, mengekspor dari Figma atau Illustrator, und menyimpan versi yang dapat diedit. Transparansi, presisi piksel, und kompresi lossless menjadikannya tak terkalahkan untuk proses desain. Namun browser, sistem operasi, und aplikasi Windows yang mencari favicon atau ikon aplikasi tidak menerima PNG secara langsung — mereka membutuhkan ICO.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '<strong>ICO</strong> adalah format distribusi untuk ikon di lingkungan Microsoft und web. Ini berisi struktur biner khusus yang memungkinkan beberapa resolusi dikemas ke dalam satu file: browser membaca direktori internal ICO und secara otomatis memilih <strong>16×16</strong> untuk tab browser, <strong>32×32</strong> untuk pintasan, <strong>48×48</strong> untuk file explorer, und <strong>256×256</strong> untuk layar Retina und 4K. Memulai dari PNG transparan menjamin bahwa semua resolusi tersebut akan memiliki tepi yang sempurna tanpa pinggiran putih.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Perbandingan: Konversi Lokal vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Konverter Cloud',
98
+ description: 'Alat yang mengunggah file Anda ke server jarak jauh.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Latensi jaringan saat mengunggah und mengunduh',
103
+ 'Logo perusahaan Anda disimpan di server pihak ketiga',
104
+ 'Batas ukuran file und batasan konversi harian',
105
+ 'Iklan yang mengganggu und pelacak pihak ketiga',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Arsitektur Lokal Kami',
110
+ description: 'Pemrosesan langsung pada perangkat keras Anda menggunakan teknologi Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Kecepatan instan — nol latensi jaringan',
115
+ 'Privasi lengkap — 0 byte dikirim secara eksternal',
116
+ 'Tanpa batas MB atau batasan jumlah file',
117
+ 'Antarmuka bersih, tanpa iklan atau pelacakan',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Cara kerjanya secara teknis',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'PNG didekodekan ke dalam <strong>HTML5 Canvas</strong> dalam memori dengan dukungan saluran alfa 32-bit penuh. Mesin membangun header Microsoft ICO standar dengan magic number yang benar (<code>00 00 01 00</code>), direktori gambar dengan dimensi und offset data, und data piksel sambil mempertahankan informasi transparansi. Hasilnya adalah file biner .ico asli yang dikenali secara native oleh Windows, macOS, und semua browser.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Transparansi PNG dipertahankan sepenuhnya dalam ICO yang dihasilkan — piksel transparan tetap transparan, piksel semi-transparan mempertahankan nilai alfa yang tepat, und piksel opak mempertahankan warna aslinya. Ini sangat penting untuk logo pada latar belakang variabel: favicon Anda akan terlihat benar dalam mode terang, mode gelap, und kombinasi warna antarmuka browser apa pun.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Tip: gunakan PNG 512×512 sebagai sumber Anda',
138
+ html: 'Untuk hasil terbaik, gunakan <strong>PNG persegi 512×512</strong> sebagai gambar sumber Anda. Resolusi ini memberikan informasi yang cukup kepada konverter untuk menghasilkan semua ukuran ICO standar dengan tajam — dari favicon 16×16 hingga 256×256 untuk layar dengan kepadatan tinggi — tanpa pikselasi atau kehilangan detail tepi. Semakin besar sumber PNG, semakin baik tampilan ukuran ikon kecil.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Kasus penggunaan und kompatibilitas',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Favicon transparan untuk situs web: berfungsi di Chrome, Firefox, Safari, Edge, e Internet Explorer.',
150
+ 'Ikon aplikasi PWA: manifest.json mereferensikan ICO untuk instalasi desktop.',
151
+ 'Kustomisasi folder Windows 10/11 dengan logo perusahaan und tanpa latar belakang putih.',
152
+ 'Ikon pintasan untuk aplikasi desktop, penginstal, und executable.',
153
+ 'Ikon ekstensi browser untuk ekstensi Chrome und Firefox.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Kesimpulan',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'PNG dengan transparansi tidak diragukan lagi merupakan titik awal terbaik untuk membuat ikon ICO berkualitas profesional. Dengan alat ini, konversi dilakukan secara instan, saluran alfa dipertahankan sepenuhnya, und file yang dihasilkan adalah ICO asli dengan struktur biner yang benar. Tidak perlu mengunggah logo ke server mana pun, tanpa watermark, tanpa batas — und transparansi sempurna di semua ukuran.',
164
+ },
165
+ ];
166
+
167
+ export const content: PngAIcoLocaleContent = {
168
+ slug,
169
+ title,
170
+ description,
171
+ ui,
172
+ seo,
173
+ faq,
174
+ bibliography,
175
+ howTo,
176
+ schemas: generateSchemas({
177
+ title,
178
+ description,
179
+ inLanguage: 'id',
180
+ faq,
181
+ howTo,
182
+ }),
183
+ };
@@ -0,0 +1,183 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { PngAIcoLocaleContent } from '../index';
4
+
5
+ const slug = 'convertitore-png-in-ico';
6
+ const title = 'Converti PNG in ICO Online';
7
+ const description =
8
+ 'Converti PNG in ICO con veri header binari. Trasparenze preservate. Nessun caricamento di file. Gratuito e privato al 100%.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Trascina i file PNG...',
12
+ convertText: 'Per convertirli in ICO istantaneamente',
13
+ selectFiles: 'Seleziona file',
14
+ processedFiles: 'File elaborati',
15
+ downloadAll: 'Scarica tutto (.zip)',
16
+ pending: 'In attesa',
17
+ bibliographyTitle: 'Riferimenti Bibliografici',
18
+ faqTitle: 'Domande Frequenti',
19
+ };
20
+
21
+ const faq: PngAIcoLocaleContent['faq'] = [
22
+ {
23
+ question: 'Il vostro convertitore crea semplici file PNG mascherati o un vero ICO?',
24
+ answer:
25
+ 'Creiamo un vero ICO. Estraiamo i dati dal tuo PNG, creiamo l\'header esadecimale standard di Microsoft (Header + Directory di 22 byte), ridimensioniamo localmente nel formato quadrato ideale e assembliamo un file finale convalidato come nativo.',
26
+ },
27
+ {
28
+ question: 'Le trasparenze vengono preservate quando il mio logo viene inserito nell\'icona?',
29
+ answer:
30
+ 'Assolutamente sì. Il nostro motore legge il tuo PNG a 32 bit, ancorandolo e preservando con precisione tutti i fori trasparenti in modo che risaltino nella barra degli indirizzi web universale (Favicon).',
31
+ },
32
+ {
33
+ question: 'Il logo della mia azienda viene memorizzato sui vostri server?',
34
+ answer:
35
+ 'Questo servizio garantisce zero contatti con la rete esterna. Il convertitore lavora ancorato nel tuo HTML5 Canvas interno; la produzione della tua icona avviene al cento per cento all\'interno della tua macchina in una memoria locale puramente segreta.',
36
+ },
37
+ ];
38
+
39
+ const howTo: PngAIcoLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Trascina i file da trasferire',
42
+ text: 'Posiziona le tue matrici fotografiche (un PNG quadrato 512x512 è l\'ideale) sulla cornice locale interattiva.',
43
+ },
44
+ {
45
+ name: 'Compilazione automatica del bytecode',
46
+ text: 'Vedrai la barra scorrere internamente mentre viene caricata e prodotta la matrice locale degli header esadecimali ICO purificati.',
47
+ },
48
+ {
49
+ name: 'Accumula o scarica il tuo ZIP',
50
+ text: 'Scaricali cliccando su una mega compilation per i tuoi siti web (pulsanti ZIP globali) o scarica la miniatura per l\'eseguibile Windows.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: PngAIcoLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Struttura Tecnica del Formato ICO Microsoft',
57
+ url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
+ },
59
+ {
60
+ name: 'Standard Favicon - W3C',
61
+ url: 'https://www.w3.org/2005/10/howto-favicon',
62
+ },
63
+ ];
64
+
65
+ const seo: PngAIcoLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Convertitore da PNG a ICO: La Migliore Fonte di Favicon con Trasparenza Perfetta',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Il <strong>PNG con trasparenza</strong> è il materiale di partenza ideale per la creazione di icone ICO professionali. A differenza del JPG (che non ha canale alfa) o dei formati con perdita, il PNG ti dà esattamente ciò di cui il formato ICO ha bisogno: pixel nitidi, bordi puliti e un canale alfa a 32 bit che permette all\'icona di integrarsi perfettamente su qualsiasi sfondo, che sia la barra dei preferiti bianca di Safari, la barra scura di Firefox o il desktop di Windows 11.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'PNG o ICO? Quando utilizzare ciascun formato',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Il <strong>PNG</strong> è il formato di lavoro: è dove progetti il tuo logo, esporti da Figma o Illustrator e salvi le tue versioni modificabili. La sua trasparenza, la precisione dei pixel e la compressione senza perdita lo rendono imbattibile per il processo di progettazione. Ma i browser, i sistemi operativi e le applicazioni Windows che cercano una favicon o un\'icona dell\'app non accettano direttamente il PNG: hanno bisogno dell\'ICO.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'L\'<strong>ICO</strong> è il formato di distribuzione per le icone negli ambienti Microsoft und sul web. Contiene una specifica struttura binaria che permette di racchiudere più risoluzioni in un unico file: il browser legge la directory interna dell\'ICO und seleziona automaticamente <strong>16×16</strong> per la scheda del browser, <strong>32×32</strong> per i collegamenti, <strong>48×48</strong> per l\'esplora file und <strong>256×256</strong> per gli schermi Retina und 4K. Partire da un PNG trasparente garantisce che tutte quelle risoluzioni avranno bordi perfetti senza alcun alone bianco.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Confronto: Conversione Locale vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Convertitori Cloud',
98
+ description: 'Strumenti che caricano i tuoi file su un server remoto.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Latenza di rete durante il caricamento und il download',
103
+ 'Il tuo logo aziendale memorizzato su server di terze parti',
104
+ 'Limiti di dimensione dei file und tetti di conversione giornalieri',
105
+ 'Annunci intrusivi und tracker di terze parti',
106
+ ],
107
+ },
108
+ {
109
+ title: 'La Nostra Architettura Locale',
110
+ description: 'Elaborazione diretta sul tuo hardware utilizzando la tecnologia Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Velocità istantanea — latenza di rete zero',
115
+ 'Privacy completa — 0 byte inviati esternamente',
116
+ 'Nessun limite di MB o restrizioni sul numero di file',
117
+ 'Interfaccia pulita, senza pubblicità o tracciamento',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Come funziona tecnicamente',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Il PNG viene decodificato in un <strong>HTML5 Canvas</strong> in memoria con pieno supporto al canale alfa a 32 bit. Il motore costruisce l\'header ICO standard di Microsoft con il numero magico corretto (<code>00 00 01 00</code>), la directory delle immagini con dimensioni und offset dei dati, und i dati dei pixel mantenendo le informazioni sulla trasparenza. Il risultato è un autentico file binario .ico riconosciuto nativamente da Windows, macOS und tutti i browser.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'La trasparenza del PNG viene interamente preservata nell\'ICO risultante: i pixel trasparenti rimangono tali, quelli semitrasparenti mantengono il loro valore alfa esatto und quelli opachi conservano il colore originale. Questo è fondamentale per i loghi su sfondi variabili: la tua favicon apparirà corretta in modalità chiara, modalità scura und qualsiasi combinazione di colori dell\'interfaccia del browser.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Suggerimento: usa un PNG 512×512 come sorgente',
138
+ html: 'Per il miglior risultato possibile, usa un <strong>PNG quadrato 512×512</strong> come immagine sorgente. Questa risoluzione fornisce al convertitore informazioni sufficienti per generare tutte le dimensioni ICO standard con nitidezza, dalla favicon 16×16 fino all\'icona 256×256 per schermi ad alta densità, senza sgranature o perdita di dettagli sui bordi. Più grande è il PNG sorgente, migliore sarà l\'aspetto delle icone di piccole dimensioni.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casi d\'uso und compatibilità',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Favicon trasparente per siti web: funziona in Chrome, Firefox, Safari, Edge e Internet Explorer.',
150
+ 'Icona applicazione PWA: manifest.json fa riferimento all\'ICO per l\'installazione desktop.',
151
+ 'Personalizzazione cartelle Windows 10/11 con logo aziendale senza sfondo bianco.',
152
+ 'Icona di collegamento per applicazioni desktop, installer ed eseguibili.',
153
+ 'Icona estensione browser per estensioni Chrome und Firefox.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusione',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Il PNG con trasparenza è senza dubbio il miglior punto di partenza per la creazione di icone ICO di qualità professionale. Con questo strumento, la conversione è istantanea, i canali alfa sono pienamente preservati und il file risultante è un vero ICO con la corretta struttura binaria. Nessun caricamento del logo su server esterni, niente filigrane, niente limiti — e trasparenza perfetta in tutte le dimensioni.',
164
+ },
165
+ ];
166
+
167
+ export const content: PngAIcoLocaleContent = {
168
+ slug,
169
+ title,
170
+ description,
171
+ ui,
172
+ seo,
173
+ faq,
174
+ bibliography,
175
+ howTo,
176
+ schemas: generateSchemas({
177
+ title,
178
+ description,
179
+ inLanguage: 'it',
180
+ faq,
181
+ howTo,
182
+ }),
183
+ };