@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,168 @@
1
+ import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { ImageToBase64UI } from '../index';
4
+
5
+ const slug = 'bild-zu-base64-konverter';
6
+ const title = 'Bild zu Base64 Konverter Online';
7
+ const description =
8
+ 'Konvertieren Sie jedes Bild direkt in Ihrem Browser in Base64-Code und Data URI. Keine Dateiuploads. Kostenlos, privat und sofort.';
9
+
10
+ const ui: ImageToBase64UI = {
11
+ dragTitle: 'Ziehen Sie Ihr Bild hierher',
12
+ dragSubtext: 'oder klicken Sie, um Ihre Dateien zu durchsuchen',
13
+ formatBadge: 'Unterstützt JPG, PNG, WEBP, SVG, GIF',
14
+ dataUriLabel: 'Data URI (Bereit für CSS / HTML src="")',
15
+ base64Label: 'Nur Base64 (Reiner kodierter Text)',
16
+ copyBtn: 'Kopieren',
17
+ dataUriPlaceholder: 'Laden Sie ein Bild hoch, um den Data-URI-Code zu sehen...',
18
+ base64Placeholder: 'Laden Sie ein Bild hoch, um den reinen Base64-Code zu sehen...',
19
+ toastMessage: 'Code in die Zwischenablage kopiert!',
20
+ invalidImageAlert: 'Bitte laden Sie eine gültige Bilddatei hoch.',
21
+ bibliographyTitle: 'Literaturhinweise',
22
+ faqTitle: 'Häufig gestellte Fragen',
23
+ };
24
+
25
+ const faq: ImagenBase64LocaleContent['faq'] = [
26
+ {
27
+ question: 'Was ist Base64 und wofür wird es in der Webentwicklung verwendet?',
28
+ answer:
29
+ 'Base64 ist ein Kodierungssystem, das Binärdaten in eine ASCII-Textzeichenfolge umwandelt. In der Webentwicklung wird es verwendet, um Bilder über Data URIs direkt in HTML- oder CSS-Dateien einzubetten, wodurch die Anzahl der HTTP-Anfragen an den Server reduziert wird.',
30
+ },
31
+ {
32
+ question: 'Ist es sicher, meine Bilder hier in Base64 zu konvertieren?',
33
+ answer:
34
+ 'Absolut sicher und privat. Unser Tool arbeitet zu 100 % lokal in Ihrem Browser. Ihre Bilder werden niemals auf einen externen Server hochgeladen oder dort verarbeitet.',
35
+ },
36
+ {
37
+ question: 'Welche Bildformate unterstützt der Base64-Konverter?',
38
+ answer:
39
+ 'Das Tool ist kompatibel mit JPG, PNG, GIF, WebP und sogar SVG-Vektordateien. Beim Laden des Bildes wird automatisch der MIME-Typ erkannt, um den exakten Data-URI-Code zu generieren.',
40
+ },
41
+ {
42
+ question: 'Wann sollte ich Base64-Bilder NICHT verwenden?',
43
+ answer:
44
+ 'Sie sollten Base64-Bilder nicht für große Fotos oder hochauflösende Bilder verwenden. Base64-Code beansprucht etwa 33 % mehr Speicherplatz als die ursprüngliche Binärdatei, was Ihre CSS-Stylesheets oder HTML-Dokumente übermäßig aufblähen kann.',
45
+ },
46
+ ];
47
+
48
+ const howTo: ImagenBase64LocaleContent['howTo'] = [
49
+ {
50
+ name: 'Bild ziehen oder auswählen',
51
+ text: 'Verschieben Sie ein beliebiges Bild (JPG, PNG, WebP, SVG, GIF) in den Upload-Bereich, um die Konvertierung zu starten.',
52
+ },
53
+ {
54
+ name: 'Generierten Code kopieren',
55
+ text: 'Sie sehen zwei Textfelder: die vollständige Data URI (bereit zur Verwendung in src="" oder CSS) und das reine Base64 für andere Zwecke.',
56
+ },
57
+ {
58
+ name: 'Code in Ihrem Projekt verwenden',
59
+ text: 'Fügen Sie die Data URI direkt in den src-Attribut eines img-Tags oder in Ihr CSS als background-image ein, ohne externe Dateien zu benötigen.',
60
+ },
61
+ ];
62
+
63
+ const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
+ {
65
+ name: 'MDN Web Docs: Data URIs',
66
+ url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
+ },
68
+ {
69
+ name: 'Base64 Kodierung RFC 4648',
70
+ url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
+ },
72
+ ];
73
+
74
+ const seo: ImagenBase64LocaleContent['seo'] = [
75
+ {
76
+ type: 'title',
77
+ text: 'Bild-zu-Base64-Konverter: Bilder ohne HTTP-Anfragen einbetten',
78
+ level: 2,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Base64 ist eine Kodierungstechnik, die Binärdaten – wie ein Bild – in eine reine ASCII-Textzeichenfolge transformiert. Das Ergebnis ist eine Data URI: eine in sich geschlossene URL, die mit <code>data:image/png;base64,...</code> beginnt und das gesamte kodierte Bild enthält. Durch das direkte Einbetten dieses Codes in Ihr HTML, CSS oder JSON wird das Bild ohne zusätzliche HTTP-Anfrage an den Server geladen – null Netzwerklatenz, sofortiges Laden.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Wann man Base64-Bilder verwendet',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'Das Hauptargument für Base64 ist die Eliminierung von Netzwerkanfragen. Jedes Bild auf einer Webseite bedeutet eine HTTP-Anfrage mit dem entsprechenden Overhead für Verbindung, DNS, TLS-Handshake und Latenz. Bei sehr kleinen, kritischen Bildern – dem Hauptlogo der Anwendung, dem Favicon oder einem UI-Icon – eliminiert das Einbetten in Base64 in CSS oder HTML diese Kosten und garantiert eine sofortige Anzeige, noch bevor der Browser etwas zwischengespeichert hat.',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Diese Technik ist besonders leistungsfähig in SPA-Anwendungen (Single Page Application), bei denen das JavaScript- und CSS-Bundle zur Build-Zeit generiert wird: Das Einbetten kleiner Bilder im Bundle garantiert, dass sie zusammen mit dem Code ohne zusätzliche Anfragen geladen werden. Es ist auch unverzichtbar für HTML-E-Mails, bei denen E-Mail-Clients externe Bilder blockieren, aber eingebettete Data URIs fast immer anzeigen.',
96
+ },
97
+ {
98
+ type: 'title',
99
+ text: 'Anwendungsfälle für Base64-Bilder',
100
+ level: 3,
101
+ },
102
+ {
103
+ type: 'list',
104
+ icon: 'mdi:check-circle',
105
+ items: [
106
+ 'HTML-Inline: <code>&lt;img src="data:image/png;base64,..."&gt;</code> für kritische Icons.',
107
+ 'CSS-Hintergrund: <code>background-image: url("data:image/svg+xml;base64,...")</code> für UI-SVGs.',
108
+ 'JSON und REST-APIs: Senden von Bildern als Textdaten in JSON-Payloads.',
109
+ 'HTML-E-Mails: Eingebettete Bilder, die auch dann angezeigt werden, wenn der Client externe URLs blockiert.',
110
+ 'SVG-Einbettung: Einbetten von Rasterbildern in SVG-Dateien als Inline-Daten.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Wie die Konvertierung im Browser funktioniert',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Wenn Sie ein Bild auswählen oder ziehen, liest die <code>FileReader</code>-API des Browsers es direkt von der Festplatte als Binärdaten in den RAM. Die Methode <code>readAsDataURL()</code> konvertiert diese Binärbytes mithilfe des RFC 4648-Algorithmus in ihre Base64-Darstellung – alle 3 Bytes der Originaldaten werden als 4 ASCII-Zeichen aus dem Base64-Alphabet dargestellt. Das Ergebnis enthält den automatisch erkannten korrekten MIME-Typ.',
121
+ },
122
+ {
123
+ type: 'tip',
124
+ title: 'Nur für kleine Bilder verwenden (unter 10 KB)',
125
+ html: 'Base64 erhöht die Dateigröße um etwa 33 %: Ein 10 KB großes Bild wird zu ca. 13,3 KB Text. Bei kleinen Icons und Logos ist dieser Aufwand minimal, und die Eliminierung der HTTP-Anfrage gleicht dies aus. Bei Fotos oder großen Bildern ist der Größen-Overhead signifikant – verwenden Sie für große Bilder immer ein CDN.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Wann Base64 NICHT verwendet werden sollte',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'tip',
134
+ title: 'Vermeiden Sie Base64 für große Bilder – nutzen Sie ein CDN',
135
+ html: 'Wenn Sie Bilder haben, die größer als 10-20 KB sind, schadet Base64 der Performance: Es bläht die HTML/CSS-Größe auf, verhindert, dass der Browser das Bild unabhängig zwischenspeichert, und blockiert das Rendering, während der Parser den riesigen String verarbeitet. Für große Bilder sollten Sie immer ein CDN mit entsprechenden Cache-Headern verwenden.',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: 'Kompatibilität und Datenschutz',
140
+ level: 3,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'Data URIs sind mit 100 % der modernen Browser und den meisten E-Mail-Clients kompatibel. Unser Tool verarbeitet alles lokal über die FileReader-API – Ihre Bilder verlassen niemals Ihr Gerät. Damit eignet es sich für Unternehmensbilder, private Screenshots oder alle vertraulichen visuellen Inhalte, die Sie in Base64 konvertieren müssen.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Fazit: Das schnellste und privateste Einbettungs-Tool',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Das Konvertieren von Bildern in Base64 ist eine gezielte, aber sehr leistungsfähige Technik, wenn sie richtig angewendet wird. Verwenden Sie sie für kleine, kritische Bilder, bei denen null HTTP-Anfragen einen Unterschied machen, und vermeiden Sie sie für große Bilder, bei denen ein CDN immer gewinnt. Mit unserem Tool erhalten Sie die Data URI im Handumdrehen, ohne etwas auf einen Server hochzuladen.',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: ImagenBase64LocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'de', faq, howTo }),
168
+ };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { ImageToBase64UI } from '../index';
4
4
 
5
5
  const slug = 'image-to-base64-converter';
@@ -154,16 +154,6 @@ const seo: ImagenBase64LocaleContent['seo'] = [
154
154
  },
155
155
  ];
156
156
 
157
- const appSchema: WithContext<SoftwareApplication> = {
158
- '@context': 'https://schema.org',
159
- '@type': 'SoftwareApplication',
160
- name: title,
161
- description,
162
- applicationCategory: 'UtilitiesApplication',
163
- operatingSystem: 'Web',
164
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
165
- inLanguage: 'en',
166
- };
167
157
 
168
158
  export const content: ImagenBase64LocaleContent = {
169
159
  slug,
@@ -174,5 +164,5 @@ export const content: ImagenBase64LocaleContent = {
174
164
  faq,
175
165
  bibliography,
176
166
  howTo,
177
- schemas: [appSchema as any],
167
+ schemas: generateSchemas({ title, description, inLanguage: 'en', faq, howTo }),
178
168
  };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { ImageToBase64UI } from '../index';
4
4
 
5
5
  const slug = 'convertidor-imagen-base64';
@@ -154,16 +154,6 @@ const seo: ImagenBase64LocaleContent['seo'] = [
154
154
  },
155
155
  ];
156
156
 
157
- const appSchema: WithContext<SoftwareApplication> = {
158
- '@context': 'https://schema.org',
159
- '@type': 'SoftwareApplication',
160
- name: title,
161
- description,
162
- applicationCategory: 'UtilitiesApplication',
163
- operatingSystem: 'Web',
164
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
165
- inLanguage: 'es',
166
- };
167
157
 
168
158
  export const content: ImagenBase64LocaleContent = {
169
159
  slug,
@@ -174,5 +164,5 @@ export const content: ImagenBase64LocaleContent = {
174
164
  faq,
175
165
  bibliography,
176
166
  howTo,
177
- schemas: [appSchema as any],
167
+ schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
178
168
  };
@@ -1,5 +1,5 @@
1
- import type { WithContext, SoftwareApplication } from 'schema-dts';
2
1
  import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
3
  import type { ImageToBase64UI } from '../index';
4
4
 
5
5
  const slug = 'convertisseur-image-base64';
@@ -154,16 +154,6 @@ const seo: ImagenBase64LocaleContent['seo'] = [
154
154
  },
155
155
  ];
156
156
 
157
- const appSchema: WithContext<SoftwareApplication> = {
158
- '@context': 'https://schema.org',
159
- '@type': 'SoftwareApplication',
160
- name: title,
161
- description,
162
- applicationCategory: 'UtilitiesApplication',
163
- operatingSystem: 'Web',
164
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
165
- inLanguage: 'fr',
166
- };
167
157
 
168
158
  export const content: ImagenBase64LocaleContent = {
169
159
  slug,
@@ -174,5 +164,5 @@ export const content: ImagenBase64LocaleContent = {
174
164
  faq,
175
165
  bibliography,
176
166
  howTo,
177
- schemas: [appSchema as any],
167
+ schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
178
168
  };
@@ -0,0 +1,168 @@
1
+ import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { ImageToBase64UI } from '../index';
4
+
5
+ const slug = 'konverter-gambar-ke-base64';
6
+ const title = 'Konverter Gambar ke Base64 Online';
7
+ const description =
8
+ 'Konversi gambar apa pun ke kode Base64 dan Data URI langsung di browser Anda. Tanpa pengunggahan file. Gratis, privat, dan instan.';
9
+
10
+ const ui: ImageToBase64UI = {
11
+ dragTitle: 'Tarik gambar Anda ke sini',
12
+ dragSubtext: 'atau klik untuk menelusuri file Anda',
13
+ formatBadge: 'Mendukung JPG, PNG, WEBP, SVG, GIF',
14
+ dataUriLabel: 'Data URI (Siap untuk CSS / HTML src="")',
15
+ base64Label: 'Hanya Base64 (Teks terenkripsi biasa)',
16
+ copyBtn: 'Salin',
17
+ dataUriPlaceholder: 'Unggah gambar untuk melihat kode Data URI...',
18
+ base64Placeholder: 'Unggah gambar untuk melihat kode Base64 murni...',
19
+ toastMessage: 'Kode disalin ke papan klip!',
20
+ invalidImageAlert: 'Silakan unggah file gambar yang valid.',
21
+ bibliographyTitle: 'Referensi Bibliografi',
22
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
23
+ };
24
+
25
+ const faq: ImagenBase64LocaleContent['faq'] = [
26
+ {
27
+ question: 'Apa itu Base64 dan apa kegunaannya dalam pengembangan web?',
28
+ answer:
29
+ 'Base64 adalah sistem pengkodean yang mengubah data biner menjadi string teks ASCII. Dalam pengembangan web, ini digunakan untuk menyematkan gambar langsung di dalam file HTML atau CSS melalui Data URI, sehingga mengurangi jumlah permintaan HTTP ke server.',
30
+ },
31
+ {
32
+ question: 'Apakah aman mengonversi gambar saya ke Base64 di sini?',
33
+ answer:
34
+ 'Sangat aman dan privat. Alat kami bekerja 100% secara lokal di browser Anda. Gambar Anda tidak pernah diunggah atau diproses di server eksternal mana pun.',
35
+ },
36
+ {
37
+ question: 'Format gambar apa saja yang didukung oleh konverter Base64?',
38
+ answer:
39
+ 'Alat ini kompatibel dengan file JPG, PNG, GIF, WebP, dan bahkan file vektor SVG. Saat memuat gambar, alat ini akan secara otomatis mendeteksi tipe MIME-nya untuk menghasilkan kode Data URI yang tepat.',
40
+ },
41
+ {
42
+ question: 'Kapan saya sebaiknya TIDAK menggunakan gambar Base64?',
43
+ answer:
44
+ 'Anda harus menghindari penggunaan gambar Base64 untuk foto besar atau gambar beresolusi tinggi. Kode Base64 memakan ruang sekitar 33% lebih banyak daripada file biner aslinya, yang dapat membuat stylesheet CSS atau dokumen HTML Anda membengkak secara berlebihan.',
45
+ },
46
+ ];
47
+
48
+ const howTo: ImagenBase64LocaleContent['howTo'] = [
49
+ {
50
+ name: 'Tarik atau Pilih Gambar Anda',
51
+ text: 'Pindahkan gambar apa pun (JPG, PNG, WebP, SVG, GIF) ke area unggah untuk memulai konversi.',
52
+ },
53
+ {
54
+ name: 'Salin Kode yang Dihasilkan',
55
+ text: 'Anda akan melihat dua area teks: Data URI lengkap (siap digunakan di src="" atau CSS) dan Base64 murni untuk kegunaan lain.',
56
+ },
57
+ {
58
+ name: 'Gunakan Kode dalam Proyek Anda',
59
+ text: 'Tempelkan Data URI secara langsung ke src dari tag img atau di CSS Anda sebagai background-image tanpa memerlukan file eksternal.',
60
+ },
61
+ ];
62
+
63
+ const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
+ {
65
+ name: 'MDN Web Docs: Data URIs',
66
+ url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
+ },
68
+ {
69
+ name: 'Base64 Encoding RFC 4648',
70
+ url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
+ },
72
+ ];
73
+
74
+ const seo: ImagenBase64LocaleContent['seo'] = [
75
+ {
76
+ type: 'title',
77
+ text: 'Konverter Gambar ke Base64: Sematkan Gambar Tanpa Permintaan HTTP',
78
+ level: 2,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Base64 adalah teknik pengkodean yang mengubah data biner — seperti gambar — menjadi string teks ASCII murni. Hasilnya adalah Data URI: URL mandiri yang dimulai dengan <code>data:image/png;base64,...</code> dan berisi seluruh gambar yang dikodekan. Dengan menyematkan kode ini langsung di HTML, CSS, atau JSON Anda, gambar akan dimuat tanpa permintaan HTTP tambahan ke server — nol latensi jaringan, pemuatan instan.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Kapan menggunakan gambar Base64',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'Argumen utama untuk Base64 adalah penghapusan permintaan jaringan. Setiap gambar pada halaman web berarti permintaan HTTP dengan overhead koneksi, DNS, jabat tangan TLS, dan latensi. Untuk gambar kritis yang sangat kecil — logo aplikasi utama, favicon, ikon UI — menyematkannya dalam Base64 di CSS atau HTML akan menghapus biaya tersebut dan menjamin gambar ditampilkan secara instan bahkan sebelum browser menyimpan apa pun di cache.',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Teknik ini sangat ampuh dalam aplikasi SPA (Single Page Application) di mana bundle JavaScript dan CSS dibuat pada saat build: menyematkan gambar kecil dalam bundle menjamin gambar dimuat bersama dengan kode tanpa permintaan tambahan. Ini juga sangat penting untuk email HTML, di mana klien email memblokir gambar eksternal tetapi hampir selalu menampilkan Data URI yang disematkan.',
96
+ },
97
+ {
98
+ type: 'title',
99
+ text: 'Kasus penggunaan untuk gambar Base64',
100
+ level: 3,
101
+ },
102
+ {
103
+ type: 'list',
104
+ icon: 'mdi:check-circle',
105
+ items: [
106
+ 'HTML inline: <code>&lt;img src="data:image/png;base64,..."&gt;</code> untuk ikon kritis.',
107
+ 'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> untuk SVG UI.',
108
+ 'JSON dan API REST: kirim gambar sebagai data teks dalam payload JSON.',
109
+ 'Email HTML: gambar yang disematkan yang ditampilkan bahkan ketika klien memblokir URL eksternal.',
110
+ 'Penyematan SVG: sematkan gambar raster di dalam file SVG sebagai data inline.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Cara kerja konversi di browser',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Saat Anda memilih atau menarik gambar, API <code>FileReader</code> browser membacanya langsung dari disk sebagai data biner di RAM. Metode <code>readAsDataURL()</code> mengubah byte biner tersebut menjadi representasi Base64 menggunakan algoritme RFC 4648 — setiap 3 byte data asli direpresentasikan sebagai 4 karakter ASCII dari alfabet Base64. Hasilnya mencakup tipe MIME yang benar yang dideteksi secara otomatis.',
121
+ },
122
+ {
123
+ type: 'tip',
124
+ title: 'Gunakan hanya untuk gambar kecil (di bawah 10 KB)',
125
+ html: 'Base64 meningkatkan ukuran file sekitar 33%: gambar 10 KB menjadi teks ~13,3 KB. Untuk ikon dan logo kecil, biaya ini minimal dan penghapusan permintaan HTTP mengimbanginya. Untuk foto atau gambar besar, overhead ukurannya signifikan — selalu gunakan CDN untuk gambar besar.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Kapan TIDAK menggunakan Base64',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'tip',
134
+ title: 'Hindari Base64 untuk gambar besar — gunakan CDN sebagai gantinya',
135
+ html: 'Jika Anda memiliki gambar yang lebih besar dari 10-20 KB, Base64 merusak kinerja: ia membengkakkan ukuran HTML/CSS, mencegah browser menyimpan gambar secara independen di cache, dan memblokir rendering saat parser memproses string raksasa tersebut. Untuk gambar besar, selalu sajikan dari CDN dengan header cache yang sesuai.',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: 'Kompatibilitas dan privasi',
140
+ level: 3,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'Data URI kompatibel dengan 100% browser modern dan sebagian besar klien email. Alat kami memproses semuanya secara lokal melalui API FileReader — gambar Anda tidak pernah meninggalkan perangkat Anda. Hal ini membuatnya cocok untuk gambar perusahaan, tangkapan layar pribadi, atau konten visual rahasia apa pun yang perlu Anda konversi ke Base64.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Kesimpulan: Alat penyematan tercepat dan paling privat',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Mengonversi gambar ke Base64 adalah teknik yang ditargetkan namun sangat ampuh jika diterapkan dengan benar. Gunakan untuk gambar kecil dan kritis di mana nol permintaan HTTP membuat perbedaan, dan hindari untuk gambar besar di mana CDN selalu menang. Dengan alat kami, Anda mendapatkan Data URI dalam sekejap, tanpa mengunggah apa pun ke server mana pun.',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: ImagenBase64LocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'id', faq, howTo }),
168
+ };
@@ -0,0 +1,168 @@
1
+ import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { ImageToBase64UI } from '../index';
4
+
5
+ const slug = 'convertitore-immagine-in-base64';
6
+ const title = 'Convertitore da Immagine a Base64 Online';
7
+ const description =
8
+ 'Converti qualsiasi immagine in codice Base64 e Data URI direttamente nel tuo browser. Nessun caricamento di file. Gratuito, privato e istantaneo.';
9
+
10
+ const ui: ImageToBase64UI = {
11
+ dragTitle: 'Trascina qui la tua immagine',
12
+ dragSubtext: 'o clicca per sfogliare i tuoi file',
13
+ formatBadge: 'Supporta JPG, PNG, WEBP, SVG, GIF',
14
+ dataUriLabel: 'Data URI (Pronto per CSS / HTML src="")',
15
+ base64Label: 'Solo Base64 (Testo codificato semplice)',
16
+ copyBtn: 'Copia',
17
+ dataUriPlaceholder: 'Carica un\'immagine per vedere il codice Data URI...',
18
+ base64Placeholder: 'Carica un\'immagine per vedere il codice Base64 puro...',
19
+ toastMessage: 'Codice copiato negli appunti!',
20
+ invalidImageAlert: 'Per favore carica un file immagine valido.',
21
+ bibliographyTitle: 'Riferimenti Bibliografici',
22
+ faqTitle: 'Domande Frequenti',
23
+ };
24
+
25
+ const faq: ImagenBase64LocaleContent['faq'] = [
26
+ {
27
+ question: 'Cos\'è Base64 e a cosa serve nello sviluppo web?',
28
+ answer:
29
+ 'Base64 è un sistema di codifica che converte i dati binari in una stringa di testo ASCII. Nello sviluppo web, viene utilizzato per incorporare le immagini direttamente all\'interno di file HTML o CSS tramite Data URI, riducendo il numero di richieste HTTP al server.',
30
+ },
31
+ {
32
+ question: 'È sicuro convertire le mie immagini in Base64 qui?',
33
+ answer:
34
+ 'Assolutamente sicuro e privato. Il nostro strumento funziona al 100% localmente nel tuo browser. Le tue immagini non vengono mai caricate o elaborate su alcun server esterno.',
35
+ },
36
+ {
37
+ question: 'Quali formati di immagine supporta il convertitore Base64?',
38
+ answer:
39
+ 'Lo strumento è compatibile con file JPG, PNG, GIF, WebP e persino file vettoriali SVG. Al caricamento dell\'immagine, rileverà automaticamente il suo tipo MIME per generare l\'esatto codice Data URI.',
40
+ },
41
+ {
42
+ question: 'Quando NON dovrei usare immagini Base64?',
43
+ answer:
44
+ 'Dovresti evitare di usare immagini Base64 per fotografie di grandi dimensioni o immagini ad alta risoluzione. Il codice Base64 occupa circa il 33% di spazio in più rispetto al file binario originale, il che può gonfiare eccessivamente i tuoi fogli di stile CSS o documenti HTML.',
45
+ },
46
+ ];
47
+
48
+ const howTo: ImagenBase64LocaleContent['howTo'] = [
49
+ {
50
+ name: 'Trascina o Seleziona la tua Immagine',
51
+ text: 'Sposta qualsiasi immagine (JPG, PNG, WebP, SVG, GIF) nell\'area di caricamento per avviare la conversione.',
52
+ },
53
+ {
54
+ name: 'Copia il Codice Generato',
55
+ text: 'Vedrai due aree di testo: il Data URI completo (pronto per l\'uso in src="" o CSS) e il Base64 puro per altri usi.',
56
+ },
57
+ {
58
+ name: 'Usa il Codice nel tuo Progetto',
59
+ text: 'Incolla il Data URI direttamente nel src di un tag img o nel tuo CSS come background-image senza bisogno di file esterni.',
60
+ },
61
+ ];
62
+
63
+ const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
+ {
65
+ name: 'MDN Web Docs: Data URIs',
66
+ url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
+ },
68
+ {
69
+ name: 'Base64 Encoding RFC 4648',
70
+ url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
+ },
72
+ ];
73
+
74
+ const seo: ImagenBase64LocaleContent['seo'] = [
75
+ {
76
+ type: 'title',
77
+ text: 'Convertitore da Immagine a Base64: Incorpora Immagini Senza Richieste HTTP',
78
+ level: 2,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Base64 è una tecnica di codifica che trasforma i dati binari — come un\'immagine — in una stringa di testo ASCII pura. Il risultato è un Data URI: un URL autonomo che inizia con <code>data:image/png;base64,...</code> e contiene l\'intera immagine codificata. Incorporando questo codice direttamente nel tuo HTML, CSS o JSON, l\'immagine viene caricata senza alcuna richiesta HTTP aggiuntiva al server — latenza di rete zero, caricamento istantaneo.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Quando usare immagini Base64',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'L\'argomento principale a favore di Base64 è l\'eliminazione delle richieste di rete. Ogni immagine su una pagina web significa una richiesta HTTP con il suo overhead di connessione, DNS, handshake TLS e latenza. Per immagini critiche molto piccole — il logo principale dell\'applicazione, la favicon, un\'icona dell\'interfaccia utente — incorporarle in Base64 nel CSS o nell\'HTML elimina quel costo e garantisce che vengano visualizzate istantaneamente anche prima che il browser abbia memorizzato qualcosa in cache.',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Questa tecnica è particolarmente potente nelle app SPA (Single Page Application) in cui il bundle JavaScript e CSS viene generato al momento della build: incorporare piccole immagini nel bundle garantisce che vengano caricate insieme al codice senza richieste aggiuntive. È anche indispensabile per le e-mail HTML, dove i client di posta bloccano le immagini esterne ma visualizzano quasi sempre i Data URI incorporati.',
96
+ },
97
+ {
98
+ type: 'title',
99
+ text: 'Casi d\'uso per le immagini Base64',
100
+ level: 3,
101
+ },
102
+ {
103
+ type: 'list',
104
+ icon: 'mdi:check-circle',
105
+ items: [
106
+ 'HTML inline: <code>&lt;img src="data:image/png;base64,..."&gt;</code> per icone critiche.',
107
+ 'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> per SVG della UI.',
108
+ 'JSON e API REST: invia immagini come dati di testo nei payload JSON.',
109
+ 'Email HTML: immagini incorporate che vengono visualizzate anche quando il client blocca gli URL esterni.',
110
+ 'Incorporamento SVG: incorpora immagini raster all\'interno di file SVG come dati inline.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Come funziona la conversione nel browser',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Quando selezioni o trascini un\'immagine, l\'API <code>FileReader</code> del browser la legge direttamente dal disco come dati binari nella RAM. Il metodo <code>readAsDataURL()</code> converte quei byte binari nella loro rappresentazione Base64 utilizzando l\'algoritmo RFC 4648 — ogni 3 byte di dati originali sono rappresentati come 4 caratteri ASCII dall\'alfabeto Base64. Il risultato include il tipo MIME corretto rilevato automaticamente.',
121
+ },
122
+ {
123
+ type: 'tip',
124
+ title: 'Usalo solo per immagini piccole (sotto i 10 KB)',
125
+ html: 'Base64 aumenta la dimensione del file di circa il 33%: un\'immagine da 10 KB diventa circa 13,3 KB di testo. Per icone e logo piccoli questo costo è minimo e l\'eliminazione della richiesta HTTP lo compensa. Per fotografie o immagini di grandi dimensioni, il sovrapprezzo dimensionale è significativo — usa sempre una CDN per le immagini grandi.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Quando NON usare Base64',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'tip',
134
+ title: 'Evita Base64 per immagini grandi — usa invece una CDN',
135
+ html: 'Se hai immagini più grandi di 10-20 KB, Base64 danneggia le prestazioni: gonfia la dimensione di HTML/CSS, impedisce al browser di memorizzare l\'immagine in cache in modo indipendente e blocca il rendering mentre il parser elabora la stringa gigante. Per le immagini grandi, servi sempre da una CDN con intestazioni di cache appropriate.',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: 'Compatibilità e privacy',
140
+ level: 3,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'I Data URI sono compatibili con il 100% dei browser moderni e la maggior parte dei client di posta elettronica. Il nostro strumento elabora tutto localmente tramite l\'API FileReader: le tue immagini non lasciano mai il tuo dispositivo. Questo lo rende adatto per immagini aziendali, screenshot privati o qualsiasi contenuto visivo riservato che hai bisogno di convertire in Base64.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusione: Lo strumento di incorporamento più rapido e privato',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Convertire le immagini in Base64 è una tecnica mirata ma molto potente se applicata correttamente. Usala per immagini piccole e critiche dove l\'assenza di richieste HTTP fa la differenza, ed evitala per immagini grandi dove una CDN vince sempre. Con il nostro strumento, ottieni il Data URI in un istante, senza caricare nulla su alcun server.',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: ImagenBase64LocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'it', faq, howTo }),
168
+ };