@jjlmoya/utils-converters 1.7.0 → 1.9.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 (346) 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/slug_uniqueness.test.ts +81 -0
  10. package/src/tests/title_quality.test.ts +55 -0
  11. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  12. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  15. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  25. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  26. package/src/tool/avifAJpg/index.ts +13 -1
  27. package/src/tool/avifAPng/i18n/de.ts +178 -0
  28. package/src/tool/avifAPng/i18n/en.ts +2 -12
  29. package/src/tool/avifAPng/i18n/es.ts +2 -12
  30. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  31. package/src/tool/avifAPng/i18n/id.ts +178 -0
  32. package/src/tool/avifAPng/i18n/it.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  34. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  35. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  37. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  38. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  39. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  40. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  41. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  42. package/src/tool/avifAPng/index.ts +13 -1
  43. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  44. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  47. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  57. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  58. package/src/tool/avifAWebp/index.ts +13 -1
  59. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  60. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  63. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  73. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  74. package/src/tool/bmpAJpg/index.ts +13 -1
  75. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  76. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  79. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  89. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  90. package/src/tool/bmpAPng/index.ts +13 -1
  91. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  92. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  95. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  105. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  106. package/src/tool/bmpAWebp/index.ts +13 -1
  107. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  108. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  111. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  121. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  122. package/src/tool/gifAJpg/index.ts +13 -1
  123. package/src/tool/gifAPng/i18n/de.ts +178 -0
  124. package/src/tool/gifAPng/i18n/en.ts +2 -12
  125. package/src/tool/gifAPng/i18n/es.ts +2 -12
  126. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  127. package/src/tool/gifAPng/i18n/id.ts +178 -0
  128. package/src/tool/gifAPng/i18n/it.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  130. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  131. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  133. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  134. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  135. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  136. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  137. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  138. package/src/tool/gifAPng/index.ts +12 -0
  139. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  140. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  143. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  153. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  154. package/src/tool/gifAWebp/index.ts +12 -0
  155. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  156. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  159. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  165. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  166. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  169. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  170. package/src/tool/imagenBase64/index.ts +12 -0
  171. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  172. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  173. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  174. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  175. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  185. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  186. package/src/tool/jpgAIco/index.ts +12 -0
  187. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  188. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  191. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  201. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  202. package/src/tool/jpgAPng/index.ts +13 -1
  203. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  204. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  207. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  217. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  218. package/src/tool/jpgAWebp/index.ts +12 -0
  219. package/src/tool/pngAIco/i18n/de.ts +183 -0
  220. package/src/tool/pngAIco/i18n/en.ts +8 -13
  221. package/src/tool/pngAIco/i18n/es.ts +19 -24
  222. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  223. package/src/tool/pngAIco/i18n/id.ts +183 -0
  224. package/src/tool/pngAIco/i18n/it.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  226. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  227. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  229. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  230. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  231. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  232. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  233. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  234. package/src/tool/pngAIco/index.ts +12 -0
  235. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  236. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  239. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  249. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  250. package/src/tool/pngAJpg/index.ts +13 -1
  251. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  252. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  255. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  265. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  266. package/src/tool/pngAWebp/index.ts +12 -0
  267. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  268. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  270. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  271. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  281. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  282. package/src/tool/svgAJpg/index.ts +12 -0
  283. package/src/tool/svgAPng/i18n/de.ts +178 -0
  284. package/src/tool/svgAPng/i18n/en.ts +8 -13
  285. package/src/tool/svgAPng/i18n/es.ts +31 -36
  286. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  287. package/src/tool/svgAPng/i18n/id.ts +178 -0
  288. package/src/tool/svgAPng/i18n/it.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  290. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  291. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  293. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  294. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  295. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  296. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  297. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  298. package/src/tool/svgAPng/index.ts +12 -0
  299. package/src/tool/webpAIco/i18n/de.ts +183 -0
  300. package/src/tool/webpAIco/i18n/en.ts +8 -13
  301. package/src/tool/webpAIco/i18n/es.ts +9 -14
  302. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  303. package/src/tool/webpAIco/i18n/id.ts +183 -0
  304. package/src/tool/webpAIco/i18n/it.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  306. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  307. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  309. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  310. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  311. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  312. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  313. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  314. package/src/tool/webpAIco/index.ts +12 -0
  315. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  316. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  317. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  318. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  319. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  329. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  330. package/src/tool/webpAJpg/index.ts +12 -0
  331. package/src/tool/webpAPng/i18n/de.ts +182 -0
  332. package/src/tool/webpAPng/i18n/en.ts +8 -13
  333. package/src/tool/webpAPng/i18n/es.ts +35 -40
  334. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  335. package/src/tool/webpAPng/i18n/id.ts +182 -0
  336. package/src/tool/webpAPng/i18n/it.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  338. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  339. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  341. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  342. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  343. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  344. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  345. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  346. 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 = 'jpg-naar-ico-converter';
6
+ const title = 'JPG naar ICO Converter';
7
+ const description =
8
+ 'Converteer JPG-foto\'s naar ICO met echte Microsoft binaire headers. Automatische vierkante uitsnede. Geen bestandsuploads. Gratis en privé.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Sleep JPG-bestanden...',
12
+ convertText: 'Om ze direct naar ICO te converteren',
13
+ selectFiles: 'Bestanden selecteren',
14
+ processedFiles: 'Verwerkte bestanden',
15
+ downloadAll: 'Alles downloaden (.zip)',
16
+ pending: 'In afwachting',
17
+ bibliographyTitle: 'Bibliografische Referenties',
18
+ faqTitle: 'Veelgestelde Vragen',
19
+ };
20
+
21
+ const faq: JpgAIcoLocaleContent['faq'] = [
22
+ {
23
+ question: 'Is het resulterende ICO-bestand standaard compatibel om Windows-mappen aan te passen?',
24
+ answer:
25
+ 'Ja, we maken een 100% authentiek Microsoft Icon Format-bestand door op een laag niveau een gestandaardiseerde binaire header in de beeldmatrix in te voegen.',
26
+ },
27
+ {
28
+ question: 'Wat gebeurt er met de verhouding als mijn originele JPG een panoramische horizontale foto is?',
29
+ answer:
30
+ 'De strikte wereldwijde ICO-standaard vereist absoluut een perfect vierkante afbeelding. Onze HTML5 JS-engine zal je foto centreren en het overtollige wegsnijden, waardoor een gebalanceerd resultaat wordt gegarandeerd.',
31
+ },
32
+ {
33
+ question: 'Is het gevaarlijk om zakelijke of persoonlijke JPG-logo\'s naar de converter te uploaden?',
34
+ answer:
35
+ 'De Canvas-engine in JavaScript draait in je eigen browser. Het converteren van honderden foto\'s naar ICO stuurt geen enkele megabyte naar een cloud in twijfelachtige landen.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAIcoLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Verzamel de originele JPG-foto\'s',
42
+ text: 'Zoek en verzamel de conventionele foto\'s en plaats ze door ze in ons vriendelijke vierkant te laten vallen.',
43
+ },
44
+ {
45
+ name: 'Ervaar de binaire transformatie',
46
+ text: 'De hercodering zal op een natuurlijke en snelle manier asynchroon metadata en headers invoegen, waardoor in het geheugen een strikt zuiver pictogram wordt gegenereerd.',
47
+ },
48
+ {
49
+ name: 'Stel meerdere ZIP-ontwerpen samen',
50
+ text: 'Rond de klus af door in slechts enkele seconden alles massaal in een compact pakket te downloaden.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'ICO Iconografische Structuur en Systeemgebruik',
57
+ url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
+ },
59
+ {
60
+ name: 'JPEG.org Standaarden',
61
+ url: 'https://jpeg.org/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAIcoLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'JPG naar ICO Converter: Maak Favicons en Windows Pictogrammen van je Foto\'s',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Het <strong>ICO</strong>-formaat is de standaard van Microsoft voor pictogrammen van Windows-applicaties en favicons van websites. In tegenstelling tot het simpelweg hernoemen van een JPG naar .ico, vereist een echt ICO-bestand een specifieke binaire structuur met 22-byte headers en een ingesloten afbeeldingsoverzicht. <strong>JPG</strong> is het meest voorkomende startpunt voor het maken van deze pictogrammen — een bedrijfslogo, een profielfoto of een afbeelding die je wilt veranderen in het visuele icoon van je applicatie of website.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG of ICO? Wanneer elk formaat te gebruiken',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '<strong>JPG</strong> is een bronformaat, geen doel voor pictogrammen. Perfect voor foto\'s en banners, maar incompatibel met systemen die pictogrammen vereisen: Windows Verkenner, de favorietenbalk van de browser, snelkoppelingen op het bureaublad of PWA-applicatiedocumenten. Een besturingssysteem of browser die op zoek is naar een pictogram verwacht het ICO-formaat — und als het dat niet vindt, wordt een generiek pictogram of een gebroken vierkant weergegeven.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Het <strong>ICO</strong>-formaat is ontworpen om meerdere resoluties in één bestand te bevatten: <strong>16×16</strong> voor de favorietenbalk, <strong>32×32</strong> voor snelkoppelingen, <strong>48×48</strong> voor de Verkenner und <strong>256×256</strong> voor displays met hoge densiteit. Browsers und besturingssystemen selecteren automatisch de juiste resolutie op basis van de weergavecontext — de gebruiker hoeft niets te beheren.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Vergelijking: Lokale vs Cloud Conversie',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Cloud Converters',
98
+ description: 'Tools die je bestanden uploaden naar een externe server.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Netwerklatentie bij uploaden und downloaden',
103
+ 'Je bedrijfslogo\'s opgeslagen op servers van derden',
104
+ 'Limieten voor bestandsgrootte und dagelijkse conversiequota',
105
+ 'Opdringerige advertenties und trackers van derden',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Onze Lokale Architectuur',
110
+ description: 'Directe verwerking op je eigen hardware met Vanilla JS-technologie.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Onmiddellijke snelheid — geen netwerklatentie',
115
+ 'Volledige privacy — 0 bytes extern verzonden',
116
+ 'Geen MB-limieten of beperkingen op aantal bestanden',
117
+ 'Schone interface, geen advertenties of tracking',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Hoe het technisch werkt',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'De JPG wordt gedecodeerd und getekend op een in-memory <strong>HTML5 Canvas</strong>. Omdat het ICO-formaat een vierkante afbeelding vereist, detecteert de engine automatisch of de JPG rechthoekig is und snijdt deze bij door het meest relevante deel te centreren. Vervolgens bouwt het de standaard Microsoft ICO-header met het juiste magische getal (<code>00 00 01 00</code>), het afbeeldingsoverzicht und de gecodeerde pixelgegevens. Het resultaat is een authentiek binair .ico-bestand — geen hernoemd PNG.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Omdat JPG geen alfakanaal heeft, zal het resulterende ICO-bestand ook geen transparantie hebben — het zal een effen achtergrond hebben die is overgenomen van de originele foto. Als je een favicon met een transparante achtergrond nodig hebt (bijvoorbeeld om je aan te passen aan donkere of lichte favorietenbalken), is de aanbevolen werkwijze: de achtergrond verwijderen in een editor, opslaan als PNG und de PNG naar ICO converter gebruiken.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Tip: meerdere resoluties in een enkele ICO',
138
+ html: 'ICO-bestanden kunnen <strong>meerdere resoluties</strong> in één bestand bevatten — de browser of het OS kiest automatisch de meest geschikte voor elke context. Gebruik voor het best mogelijke resultaat een vierkante JPG van minimaal <strong>256×256 pixels</strong> als bron: dit geeft de converter genoeg informatie om scherpe 16×16, 32×32 und 48×48 formaten te genereren zonder pixelvorming.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Toepassingen und compatibiliteit',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Website favicon: compatibel met alle browsers, inclusief Internet Explorer.',
150
+ 'Aanpassing van map- und bureaubladpictogrammen in Windows 10/11.',
151
+ 'Snelkoppelingspictogram voor desktopapplicaties of installatieprogramma\'s.',
152
+ 'Applicatiepictogram voor Electron-projecten of PWA-applicaties.',
153
+ 'Pictogrammen voor bestandsbeheersystemen und zakelijke verkenners.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Conclusie',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Het converteren van een JPG naar ICO is een technisch essentiële stap voor elk web- of desktopproject dat een herkenbare visuele identiteit nodig heeft. Deze tool genereert authentieke ICO\'s met de juiste binaire structuur, in seconden, zonder je logo naar een externe server te uploaden. Het resultaat werkt in alle browsers, in de Windows Verkenner und in elk systeem dat de ICO-standaard van Microsoft gebruikt.',
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: 'nl',
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 = 'konwerter-jpg-na-ico';
6
+ const title = 'Konwerter JPG na ICO';
7
+ const description =
8
+ 'Konwertuj zdjęcia JPG na ICO z prawdziwymi nagłówkami binarnymi Microsoft. Automatyczne przycinanie do kwadratu. Bez przesyłania plików. Za darmo i prywatnie.';
9
+
10
+ const ui: ImageConverterUI = {
11
+ dragText: 'Przeciągnij pliki JPG...',
12
+ convertText: 'Aby błyskawicznie przekonwertować je na ICO',
13
+ selectFiles: 'Wybierz pliki',
14
+ processedFiles: 'Przetworzone pliki',
15
+ downloadAll: 'Pobierz wszystko (.zip)',
16
+ pending: 'Oczekujące',
17
+ bibliographyTitle: 'Bibliografia',
18
+ faqTitle: 'Często Zadawane Pytania',
19
+ };
20
+
21
+ const faq: JpgAIcoLocaleContent['faq'] = [
22
+ {
23
+ question: 'Czy wynikowy plik ICO jest natywnie kompatybilny z dostosowywaniem folderów Windows?',
24
+ answer:
25
+ 'Tak, tworzymy w 100% autentyczny plik w formacie Microsoft Icon, wstawiając ustandaryzowany nagłówek binarny na niskim poziomie do macierzy obrazu.',
26
+ },
27
+ {
28
+ question: 'Co dzieje się z proporcjami, jeśli mój oryginalny plik JPG jest panoramicznym zdjęciem poziomym?',
29
+ answer:
30
+ 'Rygorystyczny globalny standard ICO bezwzględnie wymaga idealnie kwadratowego obrazu. Nasz silnik HTML5 JS wycentruje zdjęcie i przytnie nadmiar, gwarantując zrównoważony wynik.',
31
+ },
32
+ {
33
+ question: 'Czy przesyłanie korporacyjnych lub osobistych logo JPG do konwertera jest bezpieczne?',
34
+ answer:
35
+ 'Silnik Canvas w JavaScript znajduje się w Twojej własnej przeglądarce. Konwertowanie setek zdjęć na ICO nie wysyła ani jednego megabajta do żadnej chmury w wątpliwych krajach.',
36
+ },
37
+ ];
38
+
39
+ const howTo: JpgAIcoLocaleContent['howTo'] = [
40
+ {
41
+ name: 'Zbierz oryginalne zdjęcia JPG',
42
+ text: 'Znajdź i zbierz konwencjonalne zdjęcia, a następnie umieść je, przeciągając do naszego przyjaznego kwadratu.',
43
+ },
44
+ {
45
+ name: 'Obserwuj binarną puryfikację',
46
+ text: 'Rekodowanie natywnie i szybko wstawi metadane i nagłówki asynchronicznie, generując w pamięci ściśle czystą ikonę.',
47
+ },
48
+ {
49
+ name: 'Skompiluj wiele projektów ZIP',
50
+ text: 'Zakończ pracę, pobierając wszystko masowo w kompaktowym pakiecie w zaledwie kilka sekund.',
51
+ },
52
+ ];
53
+
54
+ const bibliography: JpgAIcoLocaleContent['bibliography'] = [
55
+ {
56
+ name: 'Struktura ikonograficzna ICO i użycie w systemie',
57
+ url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
58
+ },
59
+ {
60
+ name: 'Standardy JPEG.org',
61
+ url: 'https://jpeg.org/',
62
+ },
63
+ ];
64
+
65
+ const seo: JpgAIcoLocaleContent['seo'] = [
66
+ {
67
+ type: 'title',
68
+ text: 'Konwerter JPG na ICO: Twórz favikony i ikony Windows ze swoich zdjęć',
69
+ level: 2,
70
+ },
71
+ {
72
+ type: 'paragraph',
73
+ html: 'Format <strong>ICO</strong> to standard firmy Microsoft dla ikon aplikacji Windows i favikon stron internetowych. W przeciwieństwie do zwykłej zmiany nazwy pliku JPG na .ico, autentyczny plik ICO wymaga specyficznej struktury binarnej z 22-bajtowymi nagłówkami i wbudowanym katalogiem obrazów. <strong>JPG</strong> jest najczęstszym punktem wyjścia do tworzenia tych ikon — logo firmy, zdjęcia profilowego lub dowolnego obrazu, który chcesz zamienić w wizualny symbol swojej aplikacji lub strony internetowej.',
74
+ },
75
+ {
76
+ type: 'title',
77
+ text: 'JPG czy ICO? Kiedy używać każdego formatu',
78
+ level: 3,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: '<strong>JPG</strong> to format źródłowy, a nie docelowy dla ikon. Idealny do zdjęć i banerów, ale niekompatybilny z systemami wymagającymi ikon: Eksploratorem plików Windows, paskiem zakładek przeglądarki, skrótami na pulpicie czy manifestami aplikacji PWA. System operacyjny lub przeglądarka szukająca ikony oczekuje formatu ICO — a jeśli go nie znajdzie, wyświetli ikonę ogólną lub uszkodzony kwadrat.',
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Format <strong>ICO</strong> został zaprojektowany tak, aby zawierał wiele rozdzielczości w jednym pliku: <strong>16×16</strong> dla paska zakładek, <strong>32×32</strong> dla skrótów, <strong>48×48</strong> dla eksploratora plików i <strong>256×256</strong> dla wyświetlaczy o wysokiej gęstości. Przeglądarki i systemy operacyjne automatycznie wybierają odpowiednią rozdzielczość w zależności od kontekstu wyświetlania — użytkownik nie musi niczym zarządzać.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Porównanie: Konwersja lokalna vs w chmurze',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Konwertery w chmurze',
98
+ description: 'Narzędzia, które przesyłają pliki na zdalny serwer.',
99
+ icon: 'mdi:cloud-upload',
100
+ pointIcon: 'mdi:close-circle-outline',
101
+ points: [
102
+ 'Opóźnienia sieciowe podczas przesyłania i pobierania',
103
+ 'Twoje logotypy korporacyjne przechowywane na serwerach osób trzecich',
104
+ 'Limiti rozmiaru plików i dzienne limity konwersji',
105
+ 'Intruzywne reklamy i skrypty śledzące osób trzecich',
106
+ ],
107
+ },
108
+ {
109
+ title: 'Nasza lokalna architektura',
110
+ description: 'Bezpośrednie przetwarzanie na Twoim sprzęcie przy użyciu technologii Vanilla JS.',
111
+ icon: 'mdi:laptop-mac',
112
+ highlight: true,
113
+ points: [
114
+ 'Błyskawiczna prędkość — zero opóźnień sieciowych',
115
+ 'Pełna prywatność — 0 bajtów wysłanych na zewnątrz',
116
+ 'Brak limitów MB lub ograniczeń liczby plików',
117
+ 'Czysty interfejs, bez reklam i śledzenia',
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Jak to działa technicznie',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Plik JPG jest dekodowany i rysowany na <strong>HTML5 Canvas</strong> w pamięci. Ponieważ format ICO wymaga kwadratowego obrazu, silnik automatycznie wykrywa, czy plik JPG jest prostokątny i przycina go, centrując najważniejszą część. Następnie buduje standardowy nagłówek Microsoft ICO z poprawną sygnaturą (<code>00 00 01 00</code>), katalogiem obrazów i zakodowanymi danymi pikseli. Wynikiem jest autentyczny binarny plik .ico — a nie zmieniony format PNG.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Ponieważ w formacie JPG brakuje kanału alfa, wynikowy plik ICO również nie będzie miał przezroczystości — będzie miał jednolite tło odziedziczone po oryginalnym zdjęciu. Jeśli potrzebujesz favikony z przezroczystym tłem (na przykład, aby dostosować ją do ciemnych lub jasnych pasków zakładek), zalecanym sposobem pracy jest: usunięcie tła w edytorze, zapisanie jako PNG und użycie konwertera PNG na ICO.',
134
+ },
135
+ {
136
+ type: 'tip',
137
+ title: 'Wskazówka: wiele rozdzielczości w jednym pliku ICO',
138
+ html: 'Pliki ICO mogą zawierać <strong>wiele rozdzielczości</strong> w jednym pliku — przeglądarka lub system operacyjny automatycznie wybierają najbardziej odpowiednią dla każdego kontekstu. Aby uzyskać najlepszy możliwy wynik, użyj jako źródła kwadratowego zdjęcia JPG o rozdzielczości co najmniej <strong>256×256 pikseli</strong>: daje to konwerterowi wystarczającą ilość informacji do wygenerowania ostrych rozmiarów 16×16, 32×32 und 48×48 bez pikselozy.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Zastosowania und kompatybilność',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ icon: 'mdi:check-circle',
148
+ items: [
149
+ 'Favikona strony internetowej: kompatybilna ze wszystkimi przeglądarkami, w tym Internet Explorer.',
150
+ 'Dostosowywanie ikon folderów und pulpitu w systemie Windows 10/11.',
151
+ 'Ikona skrótu dla aplikacji desktopowych lub instalatorów.',
152
+ 'Ikona aplikacji dla projektów Electron lub aplikacji PWA.',
153
+ 'Ikony dla systemów zarządzania plikami und eksploratorów korporacyjnych.',
154
+ ],
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Podsumowanie',
159
+ level: 3,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Konwersja JPG na ICO to technicznie niezbędny krok dla każdego projektu internetowego lub desktopowego, który potrzebuje rozpoznawalnej tożsamości wizualnej. To narzędzie generuje autentyczne pliki ICO z poprawną strukturą binarną w kilka sekund, bez przesyłania Twojego logo na żaden zewnętrzny serwer. Wynik działa we wszystkich przeglądarkach, w Eksploratorze plików Windows und w każdym systemie korzystającym ze standardu ICO firmy 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: 'pl',
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 = '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
+ };