@jjlmoya/utils-converters 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/package.json +60 -59
  2. package/src/shared/logic/schemas.ts +57 -0
  3. package/src/tests/faq_count.test.ts +13 -4
  4. package/src/tests/i18n_coverage.test.ts +36 -0
  5. package/src/tests/locale_completeness.test.ts +42 -0
  6. package/src/tests/no_h1_in_components.test.ts +48 -0
  7. package/src/tests/schemas_fulfillment.test.ts +23 -0
  8. package/src/tests/seo_length.test.ts +1 -1
  9. package/src/tests/title_quality.test.ts +55 -0
  10. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  11. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  12. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  15. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  25. package/src/tool/avifAJpg/index.ts +13 -1
  26. package/src/tool/avifAPng/i18n/de.ts +178 -0
  27. package/src/tool/avifAPng/i18n/en.ts +2 -12
  28. package/src/tool/avifAPng/i18n/es.ts +2 -12
  29. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  30. package/src/tool/avifAPng/i18n/id.ts +178 -0
  31. package/src/tool/avifAPng/i18n/it.ts +178 -0
  32. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  34. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  35. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  37. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  38. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  39. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  40. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  41. package/src/tool/avifAPng/index.ts +13 -1
  42. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  43. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  44. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  47. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  57. package/src/tool/avifAWebp/index.ts +13 -1
  58. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  59. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  60. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  63. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  73. package/src/tool/bmpAJpg/index.ts +13 -1
  74. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  75. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  76. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  79. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  89. package/src/tool/bmpAPng/index.ts +13 -1
  90. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  91. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  92. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  95. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  105. package/src/tool/bmpAWebp/index.ts +13 -1
  106. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  107. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  108. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  111. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  121. package/src/tool/gifAJpg/index.ts +13 -1
  122. package/src/tool/gifAPng/i18n/de.ts +178 -0
  123. package/src/tool/gifAPng/i18n/en.ts +2 -12
  124. package/src/tool/gifAPng/i18n/es.ts +2 -12
  125. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  126. package/src/tool/gifAPng/i18n/id.ts +178 -0
  127. package/src/tool/gifAPng/i18n/it.ts +178 -0
  128. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  130. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  131. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  133. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  134. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  135. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  136. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  137. package/src/tool/gifAPng/index.ts +12 -0
  138. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  139. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  140. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  143. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  153. package/src/tool/gifAWebp/index.ts +12 -0
  154. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  155. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  156. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  159. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  165. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  166. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  169. package/src/tool/imagenBase64/index.ts +12 -0
  170. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  171. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  172. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  173. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  174. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  175. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  185. package/src/tool/jpgAIco/index.ts +12 -0
  186. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  187. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  188. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  191. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  201. package/src/tool/jpgAPng/index.ts +13 -1
  202. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  203. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  204. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  207. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  217. package/src/tool/jpgAWebp/index.ts +12 -0
  218. package/src/tool/pngAIco/i18n/de.ts +183 -0
  219. package/src/tool/pngAIco/i18n/en.ts +8 -13
  220. package/src/tool/pngAIco/i18n/es.ts +19 -24
  221. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  222. package/src/tool/pngAIco/i18n/id.ts +183 -0
  223. package/src/tool/pngAIco/i18n/it.ts +183 -0
  224. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  226. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  227. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  229. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  230. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  231. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  232. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  233. package/src/tool/pngAIco/index.ts +12 -0
  234. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  235. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  236. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  239. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  249. package/src/tool/pngAJpg/index.ts +13 -1
  250. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  251. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  252. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  255. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  265. package/src/tool/pngAWebp/index.ts +12 -0
  266. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  267. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  268. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  270. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  271. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  281. package/src/tool/svgAJpg/index.ts +12 -0
  282. package/src/tool/svgAPng/i18n/de.ts +178 -0
  283. package/src/tool/svgAPng/i18n/en.ts +8 -13
  284. package/src/tool/svgAPng/i18n/es.ts +31 -36
  285. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  286. package/src/tool/svgAPng/i18n/id.ts +178 -0
  287. package/src/tool/svgAPng/i18n/it.ts +178 -0
  288. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  290. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  291. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  293. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  294. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  295. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  296. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  297. package/src/tool/svgAPng/index.ts +12 -0
  298. package/src/tool/webpAIco/i18n/de.ts +183 -0
  299. package/src/tool/webpAIco/i18n/en.ts +8 -13
  300. package/src/tool/webpAIco/i18n/es.ts +9 -14
  301. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  302. package/src/tool/webpAIco/i18n/id.ts +183 -0
  303. package/src/tool/webpAIco/i18n/it.ts +183 -0
  304. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  306. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  307. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  309. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  310. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  311. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  312. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  313. package/src/tool/webpAIco/index.ts +12 -0
  314. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  315. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  316. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  317. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  318. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  319. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  329. package/src/tool/webpAJpg/index.ts +12 -0
  330. package/src/tool/webpAPng/i18n/de.ts +182 -0
  331. package/src/tool/webpAPng/i18n/en.ts +8 -13
  332. package/src/tool/webpAPng/i18n/es.ts +35 -40
  333. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  334. package/src/tool/webpAPng/i18n/id.ts +182 -0
  335. package/src/tool/webpAPng/i18n/it.ts +182 -0
  336. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  338. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  339. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  341. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  342. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  343. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  344. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  345. package/src/tool/webpAPng/index.ts +12 -0
@@ -0,0 +1,183 @@
1
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { JpgAIcoLocaleContent } from '../index';
4
+
5
+ const slug = 'conversor-de-jpg-para-ico';
6
+ const title = 'Conversor de JPG para ICO';
7
+ const description =
8
+ 'Converta fotos JPG para ICO com cabeçalhos binários reais da Microsoft. Recorte quadrado automático. Sem upload de arquivos. Gratuito e privado.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Arraste arquivos JPG...',
12
+ convertText: 'Para convertê-los em ICO instantaneamente',
13
+ selectFiles: 'Selecionar arquivos',
14
+ processedFiles: 'Arquivos processados',
15
+ downloadAll: 'Baixar tudo (.zip)',
16
+ pending: 'Pendente',
17
+ bibliographyTitle: 'Referências Bibliográficas',
18
+ faqTitle: 'Perguntas Frequentes',
19
+ };
20
+
21
+ const faq: JpgAIcoLocaleContent['faq'] = [
22
+ {
23
+ question: 'O arquivo ICO resultante é nativamente compatível para personalizar pastas do Windows?',
24
+ answer:
25
+ 'Sim, criamos um arquivo Microsoft Icon Format 100% autêntico ao inserir um cabeçalho binário padronizado em baixo nível na matriz da imagem.',
26
+ },
27
+ {
28
+ question: 'O que acontece com a proporção se o meu JPG original for uma foto panorâmica horizontal?',
29
+ answer:
30
+ 'O rígido padrão global ICO exige absolutamente uma imagem perfeitamente quadrada. O nosso motor HTML5 JS irá centrar a sua foto e recortar o excesso, garantindo um resultado equilibrado.',
31
+ },
32
+ {
33
+ question: 'É perigoso carregar logotipos JPG corporativos ou pessoais no conversor?',
34
+ answer:
35
+ 'O motor Canvas em JavaScript reside no seu próprio navegador físico. Converter centenas de fotos para ICO não envia um único megabyte para qualquer nuvem em países questionáveis.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAIcoLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Reúna as fotos JPG originais',
42
+ text: 'Encontre e recolha as fotos convencionais e deposite-as arrastando-as para o nosso amigável quadrado.',
43
+ },
44
+ {
45
+ name: 'Assista à purificação hexadecimal',
46
+ text: 'A recodificação irá inserir nativa e rapidamente metadados e cabeçalhos de forma assíncrona, gerando um ícone estritamente puro em memória.',
47
+ },
48
+ {
49
+ name: 'Compile múltiplos designs em ZIP',
50
+ text: 'Termine o trabalho baixando tudo massivamente num pacote compacto em apenas alguns segundos.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Estrutura Iconográfica ICO e Uso do Sistema',
57
+ url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
+ },
59
+ {
60
+ name: 'Padrões JPEG.org',
61
+ url: 'https://jpeg.org/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAIcoLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Conversor de JPG para ICO: Crie Favicons e Ícones do Windows a partir das Suas Fotos',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'O formato <strong>ICO</strong> é o padrão da Microsoft para ícones de aplicações Windows e favicons de websites. Ao contrário de simplesmente renomear um JPG como .ico, un arquivo ICO genuíno requer uma estrutura binária específica com cabeçalhos de 22 bytes e um diretório de imagens incorporado. O <strong>JPG</strong> é o ponto de partida mais comum para a criação destes ícones — um logótipo de empresa, uma foto de perfil ou qualquer imagem que queira transformar no ícone visual da sua aplicação ou website.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG ou ICO? Quando utilizar cada formato',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'O <strong>JPG</strong> é um formato de origem, não um destino para ícones. Perfeito para fotografias e banners, mas incompatível com sistemas que requerem ícones: Explorador de Arquivos do Windows, a barra de favoritos do navegador, atalhos do ambiente de trabalho ou manifestos de aplicações PWA. Um sistema operativo ou navegador que procura um ícone espera o formato ICO — e se não o encontrar, exibirá um ícone genérico ou um quadrado quebrado.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'O formato <strong>ICO</strong> foi concebido para conter múltiplas resoluções num único arquivo: <strong>16×16</strong> para a barra de favoritos, <strong>32×32</strong> para atalhos, <strong>48×48</strong> para o explorador de arquivos e <strong>256×256</strong> para ecrãs de alta densidade. Os navegadores e sistemas operativos selecionam automaticamente a resolução apropriada com base no contexto de exibição — o utilizador não tem de gerir nada.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Comparação: Conversão Local vs Cloud',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Conversores Cloud',
98
+ description: 'Ferramentas que carregam os seus arquivos para um servidor remoto.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Latência de rede no upload e download',
103
+ 'Os seus logótipos corporativos armazenados em servidores de terceiros',
104
+ 'Limites de tamanho de arquivo e quotas de conversão diárias',
105
+ 'Anúncios intrusivos e rastreadores de terceiros',
106
+ ],
107
+ },
108
+ {
109
+ title: 'A Nossa Arquitetura Local',
110
+ description: 'Processamento direto no seu hardware utilizando a tecnologia Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Velocidade instantânea — latência de rede zero',
115
+ 'Privacidade total — 0 bytes enviados externamente',
116
+ 'Sem limites de MB ou restrições no número de arquivos',
117
+ 'Interface limpa, sem anúncios ou rastreamento',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Como funciona tecnicamente',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'O JPG é descodificado e desenhado num <strong>HTML5 Canvas</strong> em memória. Como o formato ICO requer uma imagem quadrada, o motor deteta automaticamente se o JPG é retangular e recorta-o centrando a parte mais relevante. Em seguida, constrói o cabeçalho padrão da Microsoft ICO com o número mágico correto (<code>00 00 01 00</code>), o diretório de imagens und os dados de píxeis codificados. O resultado é um arquivo binário .ico genuíno — não um PNG renomeado.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Como o JPG não tem canal alfa, o ICO resultante também não terá transparência — terá um fundo sólido herdado da fotografia original. Se precisar de um favicon com fundo transparente (por exemplo, para se adaptar a barras de favoritos escuras ou claras), o fluxo recomendado é: remover o fundo num editor, guardar como PNG und utilizar o convertidor de PNG para ICO.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Dica: múltiplas resoluções num único ICO',
138
+ html: 'Os arquivos ICO podem agrupar <strong>múltiplas resoluções</strong> num único arquivo — o navegador ou SO seleciona automaticamente a mais apropriada para cada contexto. Para obter o melhor resultado possível, utilize um JPG quadrado com pelo menos <strong>256×256 píxeis</strong> como fonte: isto dá ao convertidor informações suficientes para gerar tamanhos nítidos de 16×16, 32×32 und 48×48 sem pixelização.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Casos de uso und compatibilidade',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Favicon de website: compatível com todos os navegadores, incluindo Internet Explorer.',
150
+ 'Personalização de ícones de pastas und do ambiente de trabalho no Windows 10/11.',
151
+ 'Ícone de atalho para aplicações desktop ou instaladores.',
152
+ 'Ícone de aplicação para projetos Electron ou aplicações PWA.',
153
+ 'Ícones para sistemas de gestão de arquivos und exploradores corporativos.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusão',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Converter um JPG para ICO é um passo tecnicamente essencial para qualquer projeto web ou desktop que precise de uma identidade visual reconhecível. Esta ferramenta gera ICOs autênticos com a estrutura binária correta, em segundos, sem carregar o seu logótipo para qualquer servidor externo. O resultado funciona em todos os navegadores, no Explorador de Arquivos do Windows und em qualquer sistema que utilize o padrão ICO da Microsoft.',
164
+ },
165
+ ];
166
+
167
+ export const content: JpgAIcoLocaleContent = {
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: 'pt',
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 { JpgAIcoLocaleContent } from '../index';
4
+
5
+ const slug = 'konverter-jpg-v-ico';
6
+ const title = 'Конвертер JPG в ICO';
7
+ const description =
8
+ 'Конвертируйте фотографии JPG в ICO с настоящими бинарными заголовками Microsoft. Автоматическая обрезка под квадрат. Без загрузки файлов на сервер. Бесплатно и приватно.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Перетащите файлы JPG...',
12
+ convertText: 'Чтобы мгновенно конвертировать их в ICO',
13
+ selectFiles: 'Выбрать файлы',
14
+ processedFiles: 'Обработанные файлы',
15
+ downloadAll: 'Скачать всё (.zip)',
16
+ pending: 'В ожидании',
17
+ bibliographyTitle: 'Библиографические ссылки',
18
+ faqTitle: 'Часто задаваемые вопросы',
19
+ };
20
+
21
+ const faq: JpgAIcoLocaleContent['faq'] = [
22
+ {
23
+ question: 'Совместим ли полученный файл ICO с настройкой папок Windows?',
24
+ answer:
25
+ 'Да, мы создаем на 100% аутентичный файл формата Microsoft Icon, вставляя стандартизированный двоичный заголовок на низком уровне в матрицу изображения.',
26
+ },
27
+ {
28
+ question: 'Что произойдет с пропорциями, если мой оригинальный JPG — панорамное фото?',
29
+ answer:
30
+ 'Строгий глобальный стандарт ICO требует идеально квадратного изображения. Наш движок HTML5 JS центрирует ваше фото и обрежет лишнее, гарантируя сбалансированный результат.',
31
+ },
32
+ {
33
+ question: 'Опасно ли загружать в конвертер корпоративные или личные логотипы в формате JPG?',
34
+ answer:
35
+ 'Движок Canvas на JavaScript работает в вашем собственном браузере. Конвертация сотен фотографий в ICO не отправляет ни одного мегабайта в облака сомнительных стран.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAIcoLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Соберите исходные JPG-фото',
42
+ text: 'Найдите и соберите обычные фотографии и поместите их, перетащив в наш удобный квадрат.',
43
+ },
44
+ {
45
+ name: 'Наблюдайте за бинарной очисткой',
46
+ text: 'Перекодирование нативно и быстро вставит метаданные и заголовки асинхронно, создавая в памяти строго чистую иконку.',
47
+ },
48
+ {
49
+ name: 'Соберите несколько дизайнов в ZIP',
50
+ text: 'Завершите работу, массово скачав всё в компактном архиве всего за несколько секунд.',
51
+ },
52
+ ];
53
+
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
+ const seo: JpgAIcoLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Конвертер JPG в ICO: Создавайте фавиконы и иконки Windows из своих фото',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Формат <strong>ICO</strong> — это стандарт Microsoft для иконок приложений Windows и фавиконов веб-сайтов. В отличие от простого переименования JPG в .ico, подлинный файл ICO требует специфической бинарной структуры с 22-байтными заголовками и встроенным каталогом изображений. <strong>JPG</strong> является наиболее распространенной отправной точкой для создания этих иконок — логотипа компании, фотографии профиля или любого изображения, которое вы хотите превратить в визуальный символ вашего приложения или сайта.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG или ICO? Когда использовать каждый формат',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '<strong>JPG</strong> — это исходный формат, а не формат для иконок. Он идеален для фотографий и баннеров, но несовместим с системами, требующими иконки: проводником Windows, панелью закладок браузера, ярлыками на рабочем столе или манифестами PWA-приложений. Операционная система или браузер, ищущие иконку, ожидают формат ICO — и если они его не найдут, отобразят стандартный значок или пустой квадрат.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Формат <strong>ICO</strong> был разработан для хранения нескольких разрешений в одном файле: <strong>16×16</strong> для панели закладок, <strong>32×32</strong> для ярлыков, <strong>48×48</strong> для проводника и <strong>256×256</strong> для экранов с высокой плотностью пикселей. Браузеры и операционные системы автоматически выбирают подходящее разрешение в зависимости от контекста отображения — пользователю не нужно ничем управлять.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Сравнение: локальная vs облачная конвертация',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Облачные конвертеры',
98
+ description: 'Инструменты, которые загружают ваши файлы на удаленный сервер.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Задержка сети при загрузке и скачивании',
103
+ 'Ваши корпоративные логотипы хранятся на сторонних серверах',
104
+ 'Ограничения по размеру файлов и дневные лимиты конвертаций',
105
+ 'Навязчивая реклама и сторонние трекеры',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Наша локальная архитектура',
110
+ description: 'Прямая обработка на вашем оборудовании с использованием технологии Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Мгновенная скорость — нулевая задержка сети',
115
+ 'Полная конфиденциальность — 0 байт отправлено наружу',
116
+ 'Нет лимитов по размеру или количеству файлов',
117
+ 'Чистый интерфейс, без рекламы и отслеживания',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Как это работает технически',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'JPG декодируется и отрисовывается на <strong>HTML5 Canvas</strong> в памяти. Поскольку формат ICO требует квадратного изображения, движок автоматически определяет, является ли JPG прямоугольным, и обрезает его, центрируя наиболее важную часть. Затем он создает стандартный заголовок Microsoft ICO с правильным магическим числом (<code>00 00 01 00</code>), каталогом изображений и закодированными данными пикселей. Результат — настоящий бинарный файл .ico, а не переименованный PNG.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Поскольку у JPG нет альфа-канала, результирующий ICO также не будет иметь прозрачности — у него будет сплошной фон, унаследованный от оригинальной фотографии. Если вам нужен фавикон с прозрачным фоном (например, для адаптации к темным или светлым панелям закладок), рекомендуемый процесс: удалите фон в редакторе, сохраните как PNG и используйте конвертер PNG в ICO.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Совет: несколько разрешений в одном ICO',
138
+ html: 'Файлы ICO могут содержать <strong>несколько разрешений</strong> в одном файле — браузер или ОС автоматически выбирают наиболее подходящее для каждого случая. Для достижения наилучшего результата используйте в качестве источника квадратный JPG размером не менее <strong>256×256 пикселей</strong>: это даст конвертеру достаточно информации для создания четких размеров 16×16, 32×32 и 48×48 без пикселизации.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Варианты использования и совместимость',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Фавикон сайта: совместим со всеми браузерами, включая Internet Explorer.',
150
+ 'Настройка иконок папок и рабочего стола в Windows 10/11.',
151
+ 'Иконка ярлыка для десктопных приложений или установщиков.',
152
+ 'Иконка приложения для проектов Electron или PWA-приложений.',
153
+ 'Иконки для систем управления файлами и корпоративных проводников.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Заключение',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Конвертация JPG в ICO — это технически необходимый шаг для любого веб- или десктоп-проекта, которому нужна узнаваемая визуальная идентичность. Этот инструмент создает подлинные ICO с правильной бинарной структурой за считанные секунды, не загружая ваш логотип на какой-либо внешний сервер. Результат работает во всех браузерах, в проводнике Windows и в любой системе, использующей стандарт ICO от Microsoft.',
164
+ },
165
+ ];
166
+
167
+ export const content: JpgAIcoLocaleContent = {
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: 'ru',
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 { JpgAIcoLocaleContent } from '../index';
4
+
5
+ const slug = 'konvertera-jpg-till-ico';
6
+ const title = 'Konvertera JPG till ICO';
7
+ const description =
8
+ 'Konvertera JPG-foton till ICO med riktiga Microsoft binära headers. Automatisk kvadratisk beskärning. Inga filuppladdningar. Gratis och privat.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Dra JPG-filer hit...',
12
+ convertText: 'För att konvertera dem till ICO direkt',
13
+ selectFiles: 'Välj filer',
14
+ processedFiles: 'Bearbetade filer',
15
+ downloadAll: 'Ladda ner alla (.zip)',
16
+ pending: 'Väntande',
17
+ bibliographyTitle: 'Bibliografiska Referenser',
18
+ faqTitle: 'Vanliga Frågor',
19
+ };
20
+
21
+ const faq: JpgAIcoLocaleContent['faq'] = [
22
+ {
23
+ question: 'Är den resulterande ICO-filen nativt kompatibel för att anpassa Windows-mappar?',
24
+ answer:
25
+ 'Ja, vi skapar en 100 % autentisk Microsoft Icon Format-fil genom att infoga en standardiserad binär header på låg nivå i bildmatrisen.',
26
+ },
27
+ {
28
+ question: 'Vad händer med proportionerna om mitt ursprungliga JPG är ett panoramafoto?',
29
+ answer:
30
+ 'Den rigorösa globala ICO-standarden kräver absolut en perfekt kvadratisk bild. Vår HTML5 JS-motor kommer att centrera ditt foto och beskära överskottet, vilket garanterar ett balanserat resultat.',
31
+ },
32
+ {
33
+ question: 'Är det farligt att ladda upp företagslogotyper eller personliga JPG-filer till konverteraren?',
34
+ answer:
35
+ 'Canvas-motorn i JavaScript körs i din egen webbläsare. Att konvertera hundratals foton till ICO skickar inte en enda megabyte till något moln i tveksamma länder.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAIcoLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Samla de ursprungliga JPG-fotona',
42
+ text: 'Hitta och samla de vanliga fotona och deponera dem genom att släppa dem i vår vänliga kvadrat.',
43
+ },
44
+ {
45
+ name: 'Bevittna den binära purificationen',
46
+ text: 'Omkodningen kommer att nativt och snabbt infoga metadata och headers asynkront och generera en strikt ren ikon i minnet.',
47
+ },
48
+ {
49
+ name: 'Sammanställ flera ZIP-designer',
50
+ text: 'Slutför jobbet genom att ladda ner allt massivt i ett kompakt paket på bara några sekunder.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'ICO Ikonografisk Struktur och Systemanvändning',
57
+ url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
+ },
59
+ {
60
+ name: 'JPEG.org Standarder',
61
+ url: 'https://jpeg.org/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAIcoLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'JPG till ICO-konverterare: Skapa Favicons och Windows-ikoner från dina foton',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: '<strong>ICO</strong>-formatet är Microsofts standard for Windows-applikationsikoner och webbplatsers favicons. Till skillnad från att bara byta namn på en JPG till .ico, kräver en äkta ICO-fil en specifik binär struktur med 22-byte headers och en inbäddad bildkatalog. <strong>JPG</strong> är den vanligaste utgångspunkten for att skapa dessa ikoner — en företagslogotyp, ett profilfoto eller vilken bild som helst som du vill forvandla till din applikations eller webbplats visuella ikon.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG eller ICO? När du ska använda respektive format',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '<strong>JPG</strong> är ett källformat, inte ett målformat for ikoner. Perfekt for fotografier och banners, men inkompatibelt med system som kräver ikoner: Windows Explorer, webbläsarens bokmärkesfält, skrivbordsgenvägar eller PWA-applikationsmanifest. Ett operativsystem eller en webbläsare som letar efter en ikon forväntar sig ICO-formatet — och om den inte hittar det visas en generisk ikon eller en trasig kvadrat.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '<strong>ICO</strong>-formatet designades for att innehålla flera upplösningar i en enda fil: <strong>16×16</strong> for bokmärkesfältet, <strong>32×32</strong> for genvägar, <strong>48×48</strong> for filutforskaren och <strong>256×256</strong> for högupplösta skärmar. Webbläsare och operativsystem väljer automatiskt lämplig upplösning baserat på visningssammanhanget — användaren behöver inte hantera någonting.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Jämförelse: Lokal vs Molnkonvertering',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Molnkonverterare',
98
+ description: 'Verktyg som laddar upp dina filer till en fjärrserver.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Nätverkslatens vid uppladdning och nedladdning',
103
+ 'Dina företagslogotyper lagras på tredjepartsservrar',
104
+ 'Begränsningar i filstorlek och dagliga konverteringstak',
105
+ 'Påträngande annonser och spårare från tredje part',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Vår Lokala Arkitektur',
110
+ description: 'Direkt bearbetning på din hårdvara med Vanilla JS-teknik.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Omedelbar hastighet — noll nätverkslatens',
115
+ 'Komplett integritet — 0 byte skickas externt',
116
+ 'Inga MB-gränser eller begränsningar på antal filer',
117
+ 'Rent gränssnitt, inga annonser eller spårning',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Hur det fungerar tekniskt',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'JPG-filen avkodas och ritas på ett <strong>HTML5 Canvas</strong> i minnet. Eftersom ICO-formatet kräver en kvadratisk bild detekterar motorn automatiskt om JPG-filen är rektangulär och beskär den genom att centrera den mest relevanta delen. Sedan bygger den standarden for Microsoft ICO-header med korrekt magic number (<code>00 00 01 00</code>), bildkatalogen und den kodade pixeldatan. Resultatet är en äkta binär .ico-fil — inte en omdöpt PNG.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Eftersom JPG saknar en alfakanal kommer den resulterande ICO-filen inte heller att ha någon transparens — den kommer att ha en solid bakgrund som ärvts från det ursprungliga fotot. Om du behöver en favicon med transparent bakgrund (till exempel for att anpassa dig till mörka eller ljusa bokmärkesfält) är det rekommenderade arbetsflödet: ta bort bakgrunden i en redigerare, spara som PNG und använd PNG till ICO-konverteraren.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Tips: flera upplösningar i en enda ICO',
138
+ html: 'ICO-filer kan packa <strong>flera upplösningar</strong> i en enda fil — webbläsaren eller OS väljer automatiskt den lämpligaste for varje sammanhang. För bästa möjliga resultat, använd en kvadratisk JPG på minst <strong>256×256 pixlar</strong> som källa: detta ger konverteraren tillräckligt med information for att generera skarpa 16×16, 32×32 und 48×48 storlekar utan pixelering.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Användningsområden und kompatibilitet',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Webbplatsens favicon: kompatibel med alla webbläsare inklusive Internet Explorer.',
150
+ 'Anpassning av mapp- und skrivbordsikoner i Windows 10/11.',
151
+ 'Genvägsikon for skrivbordsapplikationer eller installerare.',
152
+ 'Applikationsikon for Electron-projekt eller PWA-applikationer.',
153
+ 'Ikoner for filhanteringssystem und företagsutforskare.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Slutsats',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Att konvertera en JPG till ICO är ett tekniskt nödvändigt steg for alla webb- eller skrivbordsprojekt som behöver en igenkännbar visuell identitet. Detta verktyg genererar autentiska ICO-filer med korrekt binär struktur på några sekunder, utan att ladda upp din logotyp till någon extern server. Resultatet fungerar i alla webbläsare, i Windows Explorer und i alla system som använder Microsofts ICO-standard.',
164
+ },
165
+ ];
166
+
167
+ export const content: JpgAIcoLocaleContent = {
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: 'sv',
180
+ faq,
181
+ howTo,
182
+ }),
183
+ };