@jjlmoya/utils-converters 1.16.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/package.json +5 -3
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/fr.ts +9 -9
  4. package/src/category/i18n/ru.ts +1 -1
  5. package/src/category/i18n/sv.ts +1 -1
  6. package/src/data.ts +0 -21
  7. package/src/layouts/PreviewLayout.astro +2 -1
  8. package/src/pages/[locale]/[slug].astro +28 -12
  9. package/src/tests/diacritics_density.test.ts +118 -0
  10. package/src/tests/inverted_punctuation.test.ts +84 -0
  11. package/src/tests/no_en_dash.test.ts +70 -0
  12. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  13. package/src/tests/script_density.test.ts +94 -0
  14. package/src/tests/seo_parity.test.ts +60 -0
  15. package/src/tests/shared-test-helpers.ts +56 -0
  16. package/src/tests/tool_exports.test.ts +34 -0
  17. package/src/tool/avifAJpg/bibliography.ts +12 -0
  18. package/src/tool/avifAJpg/entry.ts +2 -0
  19. package/src/tool/avifAJpg/i18n/de.ts +2 -12
  20. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  21. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  22. package/src/tool/avifAJpg/i18n/fr.ts +11 -21
  23. package/src/tool/avifAJpg/i18n/id.ts +2 -12
  24. package/src/tool/avifAJpg/i18n/it.ts +2 -12
  25. package/src/tool/avifAJpg/i18n/ja.ts +1 -11
  26. package/src/tool/avifAJpg/i18n/ko.ts +1 -11
  27. package/src/tool/avifAJpg/i18n/nl.ts +2 -12
  28. package/src/tool/avifAJpg/i18n/pl.ts +2 -12
  29. package/src/tool/avifAJpg/i18n/pt.ts +2 -12
  30. package/src/tool/avifAJpg/i18n/ru.ts +7 -17
  31. package/src/tool/avifAJpg/i18n/sv.ts +2 -12
  32. package/src/tool/avifAJpg/i18n/tr.ts +1 -11
  33. package/src/tool/avifAJpg/i18n/zh.ts +4 -14
  34. package/src/tool/avifAJpg/seo.astro +2 -1
  35. package/src/tool/avifAPng/bibliography.ts +12 -0
  36. package/src/tool/avifAPng/entry.ts +2 -0
  37. package/src/tool/avifAPng/i18n/de.ts +4 -14
  38. package/src/tool/avifAPng/i18n/en.ts +4 -14
  39. package/src/tool/avifAPng/i18n/es.ts +4 -14
  40. package/src/tool/avifAPng/i18n/fr.ts +10 -20
  41. package/src/tool/avifAPng/i18n/id.ts +4 -14
  42. package/src/tool/avifAPng/i18n/it.ts +1 -11
  43. package/src/tool/avifAPng/i18n/ja.ts +1 -11
  44. package/src/tool/avifAPng/i18n/ko.ts +1 -11
  45. package/src/tool/avifAPng/i18n/nl.ts +4 -14
  46. package/src/tool/avifAPng/i18n/pl.ts +4 -14
  47. package/src/tool/avifAPng/i18n/pt.ts +4 -14
  48. package/src/tool/avifAPng/i18n/ru.ts +5 -15
  49. package/src/tool/avifAPng/i18n/sv.ts +4 -14
  50. package/src/tool/avifAPng/i18n/tr.ts +1 -11
  51. package/src/tool/avifAPng/i18n/zh.ts +3 -13
  52. package/src/tool/avifAPng/seo.astro +2 -1
  53. package/src/tool/avifAWebp/bibliography.ts +12 -0
  54. package/src/tool/avifAWebp/entry.ts +2 -0
  55. package/src/tool/avifAWebp/i18n/de.ts +6 -16
  56. package/src/tool/avifAWebp/i18n/en.ts +6 -16
  57. package/src/tool/avifAWebp/i18n/es.ts +6 -16
  58. package/src/tool/avifAWebp/i18n/fr.ts +13 -23
  59. package/src/tool/avifAWebp/i18n/id.ts +6 -16
  60. package/src/tool/avifAWebp/i18n/it.ts +1 -11
  61. package/src/tool/avifAWebp/i18n/ja.ts +1 -11
  62. package/src/tool/avifAWebp/i18n/ko.ts +2 -12
  63. package/src/tool/avifAWebp/i18n/nl.ts +6 -16
  64. package/src/tool/avifAWebp/i18n/pl.ts +6 -16
  65. package/src/tool/avifAWebp/i18n/pt.ts +6 -16
  66. package/src/tool/avifAWebp/i18n/ru.ts +7 -17
  67. package/src/tool/avifAWebp/i18n/sv.ts +6 -16
  68. package/src/tool/avifAWebp/i18n/tr.ts +2 -12
  69. package/src/tool/avifAWebp/i18n/zh.ts +6 -16
  70. package/src/tool/avifAWebp/seo.astro +2 -1
  71. package/src/tool/bmpAJpg/bibliography.ts +12 -0
  72. package/src/tool/bmpAJpg/entry.ts +2 -0
  73. package/src/tool/bmpAJpg/i18n/de.ts +1 -11
  74. package/src/tool/bmpAJpg/i18n/en.ts +1 -11
  75. package/src/tool/bmpAJpg/i18n/es.ts +1 -11
  76. package/src/tool/bmpAJpg/i18n/fr.ts +9 -19
  77. package/src/tool/bmpAJpg/i18n/id.ts +1 -11
  78. package/src/tool/bmpAJpg/i18n/it.ts +1 -11
  79. package/src/tool/bmpAJpg/i18n/ja.ts +1 -11
  80. package/src/tool/bmpAJpg/i18n/ko.ts +1 -11
  81. package/src/tool/bmpAJpg/i18n/nl.ts +1 -11
  82. package/src/tool/bmpAJpg/i18n/pl.ts +1 -11
  83. package/src/tool/bmpAJpg/i18n/pt.ts +1 -11
  84. package/src/tool/bmpAJpg/i18n/ru.ts +5 -15
  85. package/src/tool/bmpAJpg/i18n/sv.ts +1 -11
  86. package/src/tool/bmpAJpg/i18n/tr.ts +1 -11
  87. package/src/tool/bmpAJpg/i18n/zh.ts +1 -11
  88. package/src/tool/bmpAJpg/seo.astro +2 -1
  89. package/src/tool/bmpAPng/bibliography.ts +12 -0
  90. package/src/tool/bmpAPng/entry.ts +2 -0
  91. package/src/tool/bmpAPng/i18n/de.ts +2 -12
  92. package/src/tool/bmpAPng/i18n/en.ts +3 -13
  93. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  94. package/src/tool/bmpAPng/i18n/fr.ts +12 -22
  95. package/src/tool/bmpAPng/i18n/id.ts +2 -12
  96. package/src/tool/bmpAPng/i18n/it.ts +2 -12
  97. package/src/tool/bmpAPng/i18n/ja.ts +1 -11
  98. package/src/tool/bmpAPng/i18n/ko.ts +1 -11
  99. package/src/tool/bmpAPng/i18n/nl.ts +2 -12
  100. package/src/tool/bmpAPng/i18n/pl.ts +2 -12
  101. package/src/tool/bmpAPng/i18n/pt.ts +2 -12
  102. package/src/tool/bmpAPng/i18n/ru.ts +9 -19
  103. package/src/tool/bmpAPng/i18n/sv.ts +2 -12
  104. package/src/tool/bmpAPng/i18n/tr.ts +1 -11
  105. package/src/tool/bmpAPng/i18n/zh.ts +1 -11
  106. package/src/tool/bmpAPng/seo.astro +2 -1
  107. package/src/tool/bmpAWebp/bibliography.ts +12 -0
  108. package/src/tool/bmpAWebp/entry.ts +2 -0
  109. package/src/tool/bmpAWebp/i18n/de.ts +8 -18
  110. package/src/tool/bmpAWebp/i18n/en.ts +8 -18
  111. package/src/tool/bmpAWebp/i18n/es.ts +8 -18
  112. package/src/tool/bmpAWebp/i18n/fr.ts +13 -23
  113. package/src/tool/bmpAWebp/i18n/id.ts +8 -18
  114. package/src/tool/bmpAWebp/i18n/it.ts +8 -18
  115. package/src/tool/bmpAWebp/i18n/ja.ts +7 -17
  116. package/src/tool/bmpAWebp/i18n/ko.ts +7 -17
  117. package/src/tool/bmpAWebp/i18n/nl.ts +8 -18
  118. package/src/tool/bmpAWebp/i18n/pl.ts +8 -18
  119. package/src/tool/bmpAWebp/i18n/pt.ts +8 -18
  120. package/src/tool/bmpAWebp/i18n/ru.ts +10 -20
  121. package/src/tool/bmpAWebp/i18n/sv.ts +8 -18
  122. package/src/tool/bmpAWebp/i18n/tr.ts +8 -18
  123. package/src/tool/bmpAWebp/i18n/zh.ts +8 -18
  124. package/src/tool/bmpAWebp/seo.astro +2 -1
  125. package/src/tool/gifAJpg/bibliography.ts +12 -0
  126. package/src/tool/gifAJpg/entry.ts +2 -0
  127. package/src/tool/gifAJpg/i18n/de.ts +1 -11
  128. package/src/tool/gifAJpg/i18n/en.ts +1 -11
  129. package/src/tool/gifAJpg/i18n/es.ts +1 -11
  130. package/src/tool/gifAJpg/i18n/fr.ts +9 -19
  131. package/src/tool/gifAJpg/i18n/id.ts +1 -11
  132. package/src/tool/gifAJpg/i18n/it.ts +1 -11
  133. package/src/tool/gifAJpg/i18n/ja.ts +1 -11
  134. package/src/tool/gifAJpg/i18n/ko.ts +1 -11
  135. package/src/tool/gifAJpg/i18n/nl.ts +1 -11
  136. package/src/tool/gifAJpg/i18n/pl.ts +1 -11
  137. package/src/tool/gifAJpg/i18n/pt.ts +1 -11
  138. package/src/tool/gifAJpg/i18n/ru.ts +2 -12
  139. package/src/tool/gifAJpg/i18n/sv.ts +1 -11
  140. package/src/tool/gifAJpg/i18n/tr.ts +1 -11
  141. package/src/tool/gifAJpg/i18n/zh.ts +1 -11
  142. package/src/tool/gifAJpg/seo.astro +2 -1
  143. package/src/tool/gifAPng/bibliography.ts +12 -0
  144. package/src/tool/gifAPng/entry.ts +2 -0
  145. package/src/tool/gifAPng/i18n/de.ts +2 -12
  146. package/src/tool/gifAPng/i18n/en.ts +3 -13
  147. package/src/tool/gifAPng/i18n/es.ts +2 -12
  148. package/src/tool/gifAPng/i18n/fr.ts +11 -21
  149. package/src/tool/gifAPng/i18n/id.ts +2 -12
  150. package/src/tool/gifAPng/i18n/it.ts +2 -12
  151. package/src/tool/gifAPng/i18n/ja.ts +1 -11
  152. package/src/tool/gifAPng/i18n/ko.ts +1 -11
  153. package/src/tool/gifAPng/i18n/nl.ts +2 -12
  154. package/src/tool/gifAPng/i18n/pl.ts +3 -13
  155. package/src/tool/gifAPng/i18n/pt.ts +2 -12
  156. package/src/tool/gifAPng/i18n/ru.ts +3 -13
  157. package/src/tool/gifAPng/i18n/sv.ts +3 -13
  158. package/src/tool/gifAPng/i18n/tr.ts +1 -11
  159. package/src/tool/gifAPng/i18n/zh.ts +2 -12
  160. package/src/tool/gifAPng/seo.astro +2 -1
  161. package/src/tool/gifAWebp/bibliography.ts +12 -0
  162. package/src/tool/gifAWebp/entry.ts +2 -0
  163. package/src/tool/gifAWebp/i18n/de.ts +3 -13
  164. package/src/tool/gifAWebp/i18n/en.ts +3 -13
  165. package/src/tool/gifAWebp/i18n/es.ts +1 -11
  166. package/src/tool/gifAWebp/i18n/fr.ts +11 -21
  167. package/src/tool/gifAWebp/i18n/id.ts +3 -13
  168. package/src/tool/gifAWebp/i18n/it.ts +1 -11
  169. package/src/tool/gifAWebp/i18n/ja.ts +1 -11
  170. package/src/tool/gifAWebp/i18n/ko.ts +1 -11
  171. package/src/tool/gifAWebp/i18n/nl.ts +3 -13
  172. package/src/tool/gifAWebp/i18n/pl.ts +3 -13
  173. package/src/tool/gifAWebp/i18n/pt.ts +3 -13
  174. package/src/tool/gifAWebp/i18n/ru.ts +7 -17
  175. package/src/tool/gifAWebp/i18n/sv.ts +3 -13
  176. package/src/tool/gifAWebp/i18n/tr.ts +1 -11
  177. package/src/tool/gifAWebp/i18n/zh.ts +4 -14
  178. package/src/tool/gifAWebp/seo.astro +2 -1
  179. package/src/tool/imagenBase64/bibliography.ts +12 -0
  180. package/src/tool/imagenBase64/entry.ts +2 -0
  181. package/src/tool/imagenBase64/i18n/de.ts +7 -17
  182. package/src/tool/imagenBase64/i18n/en.ts +7 -17
  183. package/src/tool/imagenBase64/i18n/es.ts +7 -17
  184. package/src/tool/imagenBase64/i18n/fr.ts +17 -27
  185. package/src/tool/imagenBase64/i18n/id.ts +7 -17
  186. package/src/tool/imagenBase64/i18n/it.ts +6 -16
  187. package/src/tool/imagenBase64/i18n/ja.ts +1 -11
  188. package/src/tool/imagenBase64/i18n/ko.ts +1 -11
  189. package/src/tool/imagenBase64/i18n/nl.ts +7 -17
  190. package/src/tool/imagenBase64/i18n/pl.ts +7 -17
  191. package/src/tool/imagenBase64/i18n/pt.ts +7 -17
  192. package/src/tool/imagenBase64/i18n/ru.ts +9 -19
  193. package/src/tool/imagenBase64/i18n/sv.ts +7 -17
  194. package/src/tool/imagenBase64/i18n/tr.ts +2 -12
  195. package/src/tool/imagenBase64/i18n/zh.ts +7 -17
  196. package/src/tool/imagenBase64/seo.astro +2 -1
  197. package/src/tool/jpgAIco/bibliography.ts +12 -0
  198. package/src/tool/jpgAIco/entry.ts +2 -0
  199. package/src/tool/jpgAIco/i18n/de.ts +9 -19
  200. package/src/tool/jpgAIco/i18n/en.ts +9 -19
  201. package/src/tool/jpgAIco/i18n/es.ts +7 -17
  202. package/src/tool/jpgAIco/i18n/fr.ts +13 -23
  203. package/src/tool/jpgAIco/i18n/id.ts +9 -19
  204. package/src/tool/jpgAIco/i18n/it.ts +3 -13
  205. package/src/tool/jpgAIco/i18n/ja.ts +2 -12
  206. package/src/tool/jpgAIco/i18n/ko.ts +2 -12
  207. package/src/tool/jpgAIco/i18n/nl.ts +9 -19
  208. package/src/tool/jpgAIco/i18n/pl.ts +9 -19
  209. package/src/tool/jpgAIco/i18n/pt.ts +9 -19
  210. package/src/tool/jpgAIco/i18n/ru.ts +11 -21
  211. package/src/tool/jpgAIco/i18n/sv.ts +9 -19
  212. package/src/tool/jpgAIco/i18n/tr.ts +3 -13
  213. package/src/tool/jpgAIco/i18n/zh.ts +9 -19
  214. package/src/tool/jpgAIco/seo.astro +2 -1
  215. package/src/tool/jpgAPng/bibliography.ts +12 -0
  216. package/src/tool/jpgAPng/entry.ts +2 -0
  217. package/src/tool/jpgAPng/i18n/de.ts +7 -17
  218. package/src/tool/jpgAPng/i18n/en.ts +9 -19
  219. package/src/tool/jpgAPng/i18n/es.ts +7 -17
  220. package/src/tool/jpgAPng/i18n/fr.ts +13 -23
  221. package/src/tool/jpgAPng/i18n/id.ts +7 -17
  222. package/src/tool/jpgAPng/i18n/it.ts +5 -15
  223. package/src/tool/jpgAPng/i18n/ja.ts +3 -13
  224. package/src/tool/jpgAPng/i18n/ko.ts +3 -13
  225. package/src/tool/jpgAPng/i18n/nl.ts +7 -17
  226. package/src/tool/jpgAPng/i18n/pl.ts +7 -17
  227. package/src/tool/jpgAPng/i18n/pt.ts +7 -17
  228. package/src/tool/jpgAPng/i18n/ru.ts +10 -20
  229. package/src/tool/jpgAPng/i18n/sv.ts +7 -17
  230. package/src/tool/jpgAPng/i18n/tr.ts +6 -16
  231. package/src/tool/jpgAPng/i18n/zh.ts +8 -18
  232. package/src/tool/jpgAPng/seo.astro +2 -1
  233. package/src/tool/jpgAWebp/bibliography.ts +12 -0
  234. package/src/tool/jpgAWebp/entry.ts +2 -0
  235. package/src/tool/jpgAWebp/i18n/de.ts +10 -20
  236. package/src/tool/jpgAWebp/i18n/en.ts +10 -20
  237. package/src/tool/jpgAWebp/i18n/es.ts +4 -14
  238. package/src/tool/jpgAWebp/i18n/fr.ts +16 -26
  239. package/src/tool/jpgAWebp/i18n/id.ts +10 -20
  240. package/src/tool/jpgAWebp/i18n/it.ts +6 -16
  241. package/src/tool/jpgAWebp/i18n/ja.ts +2 -12
  242. package/src/tool/jpgAWebp/i18n/ko.ts +3 -13
  243. package/src/tool/jpgAWebp/i18n/nl.ts +10 -20
  244. package/src/tool/jpgAWebp/i18n/pl.ts +10 -20
  245. package/src/tool/jpgAWebp/i18n/pt.ts +10 -20
  246. package/src/tool/jpgAWebp/i18n/ru.ts +10 -20
  247. package/src/tool/jpgAWebp/i18n/sv.ts +10 -20
  248. package/src/tool/jpgAWebp/i18n/tr.ts +5 -15
  249. package/src/tool/jpgAWebp/i18n/zh.ts +9 -19
  250. package/src/tool/jpgAWebp/seo.astro +2 -1
  251. package/src/tool/pngAIco/bibliography.ts +12 -0
  252. package/src/tool/pngAIco/entry.ts +2 -0
  253. package/src/tool/pngAIco/i18n/de.ts +8 -18
  254. package/src/tool/pngAIco/i18n/en.ts +8 -18
  255. package/src/tool/pngAIco/i18n/es.ts +8 -18
  256. package/src/tool/pngAIco/i18n/fr.ts +14 -24
  257. package/src/tool/pngAIco/i18n/id.ts +8 -18
  258. package/src/tool/pngAIco/i18n/it.ts +4 -14
  259. package/src/tool/pngAIco/i18n/ja.ts +2 -12
  260. package/src/tool/pngAIco/i18n/ko.ts +2 -12
  261. package/src/tool/pngAIco/i18n/nl.ts +8 -18
  262. package/src/tool/pngAIco/i18n/pl.ts +8 -18
  263. package/src/tool/pngAIco/i18n/pt.ts +8 -18
  264. package/src/tool/pngAIco/i18n/ru.ts +11 -21
  265. package/src/tool/pngAIco/i18n/sv.ts +8 -18
  266. package/src/tool/pngAIco/i18n/tr.ts +7 -17
  267. package/src/tool/pngAIco/i18n/zh.ts +8 -18
  268. package/src/tool/pngAIco/seo.astro +2 -1
  269. package/src/tool/pngAJpg/bibliography.ts +12 -0
  270. package/src/tool/pngAJpg/entry.ts +2 -0
  271. package/src/tool/pngAJpg/i18n/de.ts +41 -51
  272. package/src/tool/pngAJpg/i18n/en.ts +98 -41
  273. package/src/tool/pngAJpg/i18n/es.ts +1 -11
  274. package/src/tool/pngAJpg/i18n/fr.ts +93 -30
  275. package/src/tool/pngAJpg/i18n/id.ts +41 -51
  276. package/src/tool/pngAJpg/i18n/it.ts +41 -51
  277. package/src/tool/pngAJpg/i18n/ja.ts +81 -95
  278. package/src/tool/pngAJpg/i18n/ko.ts +81 -95
  279. package/src/tool/pngAJpg/i18n/nl.ts +41 -51
  280. package/src/tool/pngAJpg/i18n/pl.ts +43 -53
  281. package/src/tool/pngAJpg/i18n/pt.ts +41 -51
  282. package/src/tool/pngAJpg/i18n/ru.ts +83 -97
  283. package/src/tool/pngAJpg/i18n/sv.ts +41 -51
  284. package/src/tool/pngAJpg/i18n/tr.ts +41 -51
  285. package/src/tool/pngAJpg/i18n/zh.ts +83 -97
  286. package/src/tool/pngAJpg/seo.astro +2 -1
  287. package/src/tool/pngAWebp/bibliography.ts +16 -0
  288. package/src/tool/pngAWebp/entry.ts +2 -0
  289. package/src/tool/pngAWebp/i18n/de.ts +7 -21
  290. package/src/tool/pngAWebp/i18n/en.ts +7 -21
  291. package/src/tool/pngAWebp/i18n/es.ts +6 -20
  292. package/src/tool/pngAWebp/i18n/fr.ts +13 -27
  293. package/src/tool/pngAWebp/i18n/id.ts +7 -21
  294. package/src/tool/pngAWebp/i18n/it.ts +3 -17
  295. package/src/tool/pngAWebp/i18n/ja.ts +2 -16
  296. package/src/tool/pngAWebp/i18n/ko.ts +2 -16
  297. package/src/tool/pngAWebp/i18n/nl.ts +7 -21
  298. package/src/tool/pngAWebp/i18n/pl.ts +7 -21
  299. package/src/tool/pngAWebp/i18n/pt.ts +6 -20
  300. package/src/tool/pngAWebp/i18n/ru.ts +8 -22
  301. package/src/tool/pngAWebp/i18n/sv.ts +7 -21
  302. package/src/tool/pngAWebp/i18n/tr.ts +6 -20
  303. package/src/tool/pngAWebp/i18n/zh.ts +6 -20
  304. package/src/tool/pngAWebp/seo.astro +2 -1
  305. package/src/tool/svgAJpg/bibliography.ts +12 -0
  306. package/src/tool/svgAJpg/entry.ts +2 -0
  307. package/src/tool/svgAJpg/i18n/de.ts +2 -12
  308. package/src/tool/svgAJpg/i18n/en.ts +1 -11
  309. package/src/tool/svgAJpg/i18n/es.ts +1 -11
  310. package/src/tool/svgAJpg/i18n/fr.ts +6 -16
  311. package/src/tool/svgAJpg/i18n/id.ts +1 -11
  312. package/src/tool/svgAJpg/i18n/it.ts +1 -11
  313. package/src/tool/svgAJpg/i18n/ja.ts +1 -11
  314. package/src/tool/svgAJpg/i18n/ko.ts +1 -11
  315. package/src/tool/svgAJpg/i18n/nl.ts +1 -11
  316. package/src/tool/svgAJpg/i18n/pl.ts +1 -11
  317. package/src/tool/svgAJpg/i18n/pt.ts +1 -11
  318. package/src/tool/svgAJpg/i18n/ru.ts +3 -13
  319. package/src/tool/svgAJpg/i18n/sv.ts +1 -11
  320. package/src/tool/svgAJpg/i18n/tr.ts +1 -11
  321. package/src/tool/svgAJpg/i18n/zh.ts +1 -11
  322. package/src/tool/svgAJpg/seo.astro +2 -1
  323. package/src/tool/svgAPng/bibliography.ts +12 -0
  324. package/src/tool/svgAPng/entry.ts +2 -0
  325. package/src/tool/svgAPng/i18n/de.ts +3 -13
  326. package/src/tool/svgAPng/i18n/en.ts +3 -13
  327. package/src/tool/svgAPng/i18n/es.ts +1 -11
  328. package/src/tool/svgAPng/i18n/fr.ts +9 -19
  329. package/src/tool/svgAPng/i18n/id.ts +3 -13
  330. package/src/tool/svgAPng/i18n/it.ts +3 -13
  331. package/src/tool/svgAPng/i18n/ja.ts +1 -11
  332. package/src/tool/svgAPng/i18n/ko.ts +1 -11
  333. package/src/tool/svgAPng/i18n/nl.ts +3 -13
  334. package/src/tool/svgAPng/i18n/pl.ts +3 -13
  335. package/src/tool/svgAPng/i18n/pt.ts +3 -13
  336. package/src/tool/svgAPng/i18n/ru.ts +5 -15
  337. package/src/tool/svgAPng/i18n/sv.ts +3 -13
  338. package/src/tool/svgAPng/i18n/tr.ts +3 -13
  339. package/src/tool/svgAPng/i18n/zh.ts +3 -13
  340. package/src/tool/svgAPng/seo.astro +2 -1
  341. package/src/tool/webpAIco/bibliography.ts +12 -0
  342. package/src/tool/webpAIco/entry.ts +2 -0
  343. package/src/tool/webpAIco/i18n/de.ts +1 -11
  344. package/src/tool/webpAIco/i18n/en.ts +1 -11
  345. package/src/tool/webpAIco/i18n/es.ts +1 -11
  346. package/src/tool/webpAIco/i18n/fr.ts +5 -15
  347. package/src/tool/webpAIco/i18n/id.ts +1 -11
  348. package/src/tool/webpAIco/i18n/it.ts +1 -11
  349. package/src/tool/webpAIco/i18n/ja.ts +1 -11
  350. package/src/tool/webpAIco/i18n/ko.ts +1 -11
  351. package/src/tool/webpAIco/i18n/nl.ts +1 -11
  352. package/src/tool/webpAIco/i18n/pl.ts +1 -11
  353. package/src/tool/webpAIco/i18n/pt.ts +1 -11
  354. package/src/tool/webpAIco/i18n/ru.ts +3 -13
  355. package/src/tool/webpAIco/i18n/sv.ts +1 -11
  356. package/src/tool/webpAIco/i18n/tr.ts +1 -11
  357. package/src/tool/webpAIco/i18n/zh.ts +1 -12
  358. package/src/tool/webpAIco/seo.astro +2 -1
  359. package/src/tool/webpAJpg/bibliography.ts +16 -0
  360. package/src/tool/webpAJpg/entry.ts +2 -0
  361. package/src/tool/webpAJpg/i18n/de.ts +3 -17
  362. package/src/tool/webpAJpg/i18n/en.ts +3 -17
  363. package/src/tool/webpAJpg/i18n/es.ts +1 -15
  364. package/src/tool/webpAJpg/i18n/fr.ts +10 -24
  365. package/src/tool/webpAJpg/i18n/id.ts +3 -17
  366. package/src/tool/webpAJpg/i18n/it.ts +2 -16
  367. package/src/tool/webpAJpg/i18n/ja.ts +1 -15
  368. package/src/tool/webpAJpg/i18n/ko.ts +1 -15
  369. package/src/tool/webpAJpg/i18n/nl.ts +2 -16
  370. package/src/tool/webpAJpg/i18n/pl.ts +3 -17
  371. package/src/tool/webpAJpg/i18n/pt.ts +3 -17
  372. package/src/tool/webpAJpg/i18n/ru.ts +7 -21
  373. package/src/tool/webpAJpg/i18n/sv.ts +3 -17
  374. package/src/tool/webpAJpg/i18n/tr.ts +2 -16
  375. package/src/tool/webpAJpg/i18n/zh.ts +2 -16
  376. package/src/tool/webpAJpg/seo.astro +2 -1
  377. package/src/tool/webpAPng/bibliography.ts +16 -0
  378. package/src/tool/webpAPng/entry.ts +2 -0
  379. package/src/tool/webpAPng/i18n/de.ts +3 -17
  380. package/src/tool/webpAPng/i18n/en.ts +3 -17
  381. package/src/tool/webpAPng/i18n/es.ts +1 -15
  382. package/src/tool/webpAPng/i18n/fr.ts +9 -23
  383. package/src/tool/webpAPng/i18n/id.ts +3 -17
  384. package/src/tool/webpAPng/i18n/it.ts +3 -17
  385. package/src/tool/webpAPng/i18n/ja.ts +1 -15
  386. package/src/tool/webpAPng/i18n/ko.ts +1 -15
  387. package/src/tool/webpAPng/i18n/nl.ts +3 -17
  388. package/src/tool/webpAPng/i18n/pl.ts +3 -17
  389. package/src/tool/webpAPng/i18n/pt.ts +3 -17
  390. package/src/tool/webpAPng/i18n/ru.ts +4 -18
  391. package/src/tool/webpAPng/i18n/sv.ts +3 -17
  392. package/src/tool/webpAPng/i18n/tr.ts +2 -17
  393. package/src/tool/webpAPng/i18n/zh.ts +3 -17
  394. package/src/tool/webpAPng/seo.astro +2 -1
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { GifAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: GifAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'Specyfikacja GIF89a',
57
- url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
- },
59
- {
60
- name: 'Dokumentacja Google WebP',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: GifAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,11 +69,11 @@ const seo: GifAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'GIF to format z 1987 roku, który pierwotnie nie był projektowany z myślą o animacjach — ta funkcja pojawiła się później jako rozwiązanie tymczasowe. Paleta 256 kolorów, niewydajna kompresja i brak obsługi dźwięku sprawiają, że jest to format przestarzały. WebP, opracowany przez Google w 2010 roku, oferuje doskonałą kompresję zarówno stratną, jak i bezstratną, natywną obsługę animacji oraz pełny kanał alfa.',
72
+ html: 'GIF to format z 1987 roku, który pierwotnie nie był projektowany z myślą o animacjach - ta funkcja pojawiła się później jako rozwiązanie tymczasowe. Paleta 256 kolorów, niewydajna kompresja i brak obsługi dźwięku sprawiają, że jest to format przestarzały. WebP, opracowany przez Google w 2010 roku, oferuje doskonałą kompresję zarówno stratną, jak i bezstratną, natywną obsługę animacji oraz pełny kanał alfa.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'Dla web developera zastąpienie plików GIF formatem WebP na stronach może oznaczać poprawę wyniku Google PageSpeed o 10 do 30 punktów. Mniejsza waga strony oznacza lepsze wskaźniki Core Web Vitals, wyższe pozycje w SEO i niższe koszty transferu na serwerach. To nie tylko poprawa estetyczna — to decyzja dotycząca architektury technicznej.',
76
+ html: 'Dla web developera zastąpienie plików GIF formatem WebP na stronach może oznaczać poprawę wyniku Google PageSpeed o 10 do 30 punktów. Mniejsza waga strony oznacza lepsze wskaźniki Core Web Vitals, wyższe pozycje w SEO i niższe koszty transferu na serwerach. To nie tylko poprawa estetyczna - to decyzja dotycząca architektury technicznej.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { GifAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: GifAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'Especificação GIF89a',
57
- url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
- },
59
- {
60
- name: 'Documentação do Google WebP',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: GifAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,11 +69,11 @@ const seo: GifAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'O GIF é um formato de 1987 não projetado originalmente para animações — essa funcionalidade surgiu como um "hack" posterior. A sua paleta de 256 cores, a compressão ineficiente e a incapacidade de lidar com áudio tornam-no um formato obsoleto. O WebP, desenvolvido pela Google em 2010, oferece compressão superior, tanto com perdas como sem perdas, suporte nativo para animações e canal alpha completo.',
72
+ html: 'O GIF é um formato de 1987 não projetado originalmente para animações - essa funcionalidade surgiu como um "hack" posterior. A sua paleta de 256 cores, a compressão ineficiente e a incapacidade de lidar com áudio tornam-no um formato obsoleto. O WebP, desenvolvido pela Google em 2010, oferece compressão superior, tanto com perdas como sem perdas, suporte nativo para animações e canal alpha completo.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'Para um desenvolvedor web, substituir GIFs por WebP nas páginas pode significar uma melhoria na pontuação do Google PageSpeed de 10 a 30 pontos. Menos peso de página significa melhores Core Web Vitals, melhor posicionamento SEO e menores custos de largura de banda nos servidores. Não é apenas uma melhoria estética — é uma decisão de arquitetura técnica.',
76
+ html: 'Para um desenvolvedor web, substituir GIFs por WebP nas páginas pode significar uma melhoria na pontuação do Google PageSpeed de 10 a 30 pontos. Menos peso de página significa melhores Core Web Vitals, melhor posicionamento SEO e menores custos de largura de banda nos servidores. Não é apenas uma melhoria estética - é uma decisão de arquitetura técnica.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { GifAWebpLocaleContent } from '../index';
@@ -22,7 +23,7 @@ const faq: GifAWebpLocaleContent['faq'] = [
22
23
  {
23
24
  question: 'Зачем преобразовывать анимированный файл в современный статический формат WebP?',
24
25
  answer:
25
- 'WebP — это стандарт сжатия Google; он невероятно легкий и чисто сохраняет прозрачность. Переход от GIF к WebP устраняет тяжелую анимацию и дает колоссальный выигрыш в скорости веб-загрузки.',
26
+ 'WebP - это стандарт сжатия Google; он невероятно легкий и чисто сохраняет прозрачность. Переход от GIF к WebP устраняет тяжелую анимацию и дает колоссальный выигрыш в скорости веб-загрузки.',
26
27
  },
27
28
  {
28
29
  question: 'Останется ли оригинальный аватар прозрачным?',
@@ -47,18 +48,7 @@ const howTo: GifAWebpLocaleContent['howTo'] = [
47
48
  },
48
49
  {
49
50
  name: 'Сохраните ваш чистый арсенал результатов',
50
- text: 'Забирайте извлеченные файлы по отдельности или нажмите «Скачать ZIP», чтобы упаковать всё сразу.',
51
- },
52
- ];
53
-
54
- const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'Спецификация GIF89a',
57
- url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
- },
59
- {
60
- name: 'Документация Google WebP',
61
- url: 'https://developers.google.com/speed/webp',
51
+ text: 'Забирайте извлеченные файлы по отдельности или нажмите \"Скачать ZIP\", чтобы упаковать всё сразу.',
62
52
  },
63
53
  ];
64
54
 
@@ -70,7 +60,7 @@ const seo: GifAWebpLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'Анимированные GIF — это динозавры современного веб-контента: они потребляют непропорционально большую полосу пропускания, ухудшают PageSpeed любой страницы и отвечают за значительный процент общего веса на тысячах сайтов. Типичный анимированный GIF размером 5 МБ может превратиться в WebP-анимацию весом менее 1 МБ при том же визуальном качестве. WebP — это современный преемник, разработанный Google специально для замены GIF в Интернете.',
63
+ html: 'Анимированные GIF - это динозавры современного веб-контента: они потребляют непропорционально большую полосу пропускания, ухудшают PageSpeed любой страницы и отвечают за значительный процент общего веса на тысячах сайтов. Типичный анимированный GIF размером 5 МБ может превратиться в WebP-анимацию весом менее 1 МБ при том же визуальном качестве. WebP - это современный преемник, разработанный Google специально для замены GIF в Интернете.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,11 +69,11 @@ const seo: GifAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'GIF — это формат 1987 года, изначально не предназначенный для анимаций — эта функция появилась позже как «хакерское» решение. Его 256-цветная палитра, неэффективное сжатие и невозможность работы со звуком делают его устаревшим форматом. WebP, разработанный Google в 2010 году, предлагает превосходное сжатие как с потерями, так и без потерь, нативную поддержку анимации и полный альфа-канал.',
72
+ html: 'GIF - это формат 1987 года, изначально не предназначенный для анимаций - эта функция появилась позже как \"хакерское\" решение. Его 256-цветная палитра, неэффективное сжатие и невозможность работы со звуком делают его устаревшим форматом. WebP, разработанный Google в 2010 году, предлагает превосходное сжатие как с потерями, так и без потерь, нативную поддержку анимации и полный альфа-канал.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'Для веб-разработчика замена GIF на WebP на страницах может означать улучшение показателей Google PageSpeed на 10–30 пунктов. Меньший вес страницы означает лучшие показатели Core Web Vitals, более высокие позиции в SEO и более низкие затраты на полосу пропускания серверов. Это не просто эстетическое улучшение — это техническое архитектурное решение.',
76
+ html: 'Для веб-разработчика замена GIF на WebP на страницах может означать улучшение показателей Google PageSpeed на 10-30 пунктов. Меньший вес страницы означает лучшие показатели Core Web Vitals, более высокие позиции в SEO и более низкие затраты на полосу пропускания серверов. Это не просто эстетическое улучшение - это техническое архитектурное решение.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -160,7 +150,7 @@ const seo: GifAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'Каждый GIF на вашем сайте — это упущенная возможность оптимизации. Наш инструмент конвертирует GIF в WebP мгновенно, приватно и без ограничений прямо в вашем браузере. Результат: файлы до 5 раз меньше, идеальная прозрачность и совместимость со всеми современными браузерами.',
153
+ html: 'Каждый GIF на вашем сайте - это упущенная возможность оптимизации. Наш инструмент конвертирует GIF в WebP мгновенно, приватно и без ограничений прямо в вашем браузере. Результат: файлы до 5 раз меньше, идеальная прозрачность и совместимость со всеми современными браузерами.',
164
154
  },
165
155
  ];
166
156
 
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { GifAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: GifAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'GIF89a Specifikation',
57
- url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
- },
59
- {
60
- name: 'Google WebP Dokumentation',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: GifAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -79,11 +69,11 @@ const seo: GifAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'GIF är ett format från 1987 som ursprungligen inte var designat för animationer – den funktionen kom till som ett senare hack. Dess 256-färgers palett, ineffektiva komprimering och oförmåga att hantera ljud gör det till ett föråldrat format. WebP, utvecklat av Google 2010, erbjuder överlägsen komprimering (både förlustfri och med förlust), inbyggt stöd för animationer och full alfakanal.',
72
+ html: 'GIF är ett format från 1987 som ursprungligen inte var designat för animationer - den funktionen kom till som ett senare hack. Dess 256-färgers palett, ineffektiva komprimering och oförmåga att hantera ljud gör det till ett föråldrat format. WebP, utvecklat av Google 2010, erbjuder överlägsen komprimering (både förlustfri och med förlust), inbyggt stöd för animationer och full alfakanal.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'För en webbutvecklare kan byte av GIF-filer mot WebP på sidor innebära en förbättring av Google PageSpeed-poängen med 10 till 30 punkter. Mindre sidvikt innebär bättre Core Web Vitals, bättre SEO-rankning och lägre bandbreddskostnader på servrar. Det är inte bara en estetisk förbättring – det är ett tekniskt arkitekturbeslut.',
76
+ html: 'För en webbutvecklare kan byte av GIF-filer mot WebP på sidor innebära en förbättring av Google PageSpeed-poängen med 10 till 30 punkter. Mindre sidvikt innebär bättre Core Web Vitals, bättre SEO-rankning och lägre bandbreddskostnader på servrar. Det är inte bara en estetisk förbättring - det är ett tekniskt arkitekturbeslut.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { GifAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: GifAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'GIF89a Spesifikasyonu',
57
- url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
- },
59
- {
60
- name: 'Google WebP Dokümantasyonu',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: GifAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { GifAWebpLocaleContent } from '../index';
@@ -47,18 +48,7 @@ const howTo: GifAWebpLocaleContent['howTo'] = [
47
48
  },
48
49
  {
49
50
  name: '保存您干净的结果集',
50
- text: '单独获取提取的文件,或按“下载 Zip”打包所有内容。',
51
- },
52
- ];
53
-
54
- const bibliography: GifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'GIF89a 规范',
57
- url: 'https://www.w3.org/Graphics/GIF/spec-gif89a.txt',
58
- },
59
- {
60
- name: 'Google WebP 文档',
61
- url: 'https://developers.google.com/speed/webp',
51
+ text: '单独获取提取的文件,或按\"下载 Zip\"打包所有内容。',
62
52
  },
63
53
  ];
64
54
 
@@ -79,11 +69,11 @@ const seo: GifAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'GIF 是一种 1987 年的格式,最初并非为动画设计——该功能是后来作为一种“黑客”手段加入的。它的 256 色调色板、低效率的压缩以及无法处理音频,使其成为一种过时的格式。WebP 由 Google 在 2010 年开发,提供卓越的有损和无损压缩、原生动画支持以及完整的 Alpha 通道。',
72
+ html: 'GIF 是一种 1987 年的格式,最初并非为动画设计-该功能是后来作为一种\"黑客\"手段加入的。它的 256 色调色板、低效率的压缩以及无法处理音频,使其成为一种过时的格式。WebP 由 Google 在 2010 年开发,提供卓越的有损和无损压缩、原生动画支持以及完整的 Alpha 通道。',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: '对于 Web 开发人员来说,在页面上用 WebP 取代 GIF 可能意味着 Google PageSpeed 分数提高 10 到 30 分。更轻的页面重量意味着更好的 Core Web Vitals、更好的 SEO 排名以及更低的服务器带宽成本。这不仅仅是美学上的提升——它是一项技术架构决策。',
76
+ html: '对于 Web 开发人员来说,在页面上用 WebP 取代 GIF 可能意味着 Google PageSpeed 分数提高 10 到 30 分。更轻的页面重量意味着更好的 Core Web Vitals、更好的 SEO 排名以及更低的服务器带宽成本。这不仅仅是美学上的提升-它是一项技术架构决策。',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await gifAWebp.i18n[locale]?.();
12
+ if (!content) return null;
12
13
  ---
13
14
 
14
- {content && <SEORenderer content={{ locale, sections: content.seo }} />}
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -0,0 +1,12 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'MDN Web Docs: Data URIs',
6
+ url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
7
+ },
8
+ {
9
+ name: 'Base64 Kodierung RFC 4648',
10
+ url: 'https://datatracker.ietf.org/doc/html/rfc4648',
11
+ },
12
+ ];
@@ -41,3 +41,5 @@ export const imagenBase64: ConvertersToolEntry<ImageToBase64UI> = {
41
41
  zh: () => import('./i18n/zh').then((m) => m.content),
42
42
  },
43
43
  };
44
+
45
+ export { bibliography } from './bibliography';
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImagenBase64LocaleContent } from '../index';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { ImageToBase64UI } from '../index';
@@ -60,17 +61,6 @@ const howTo: ImagenBase64LocaleContent['howTo'] = [
60
61
  },
61
62
  ];
62
63
 
63
- const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
- {
65
- name: 'MDN Web Docs: Data URIs',
66
- url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
- },
68
- {
69
- name: 'Base64 Kodierung RFC 4648',
70
- url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
- },
72
- ];
73
-
74
64
  const seo: ImagenBase64LocaleContent['seo'] = [
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Base64 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.',
72
+ 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
73
  },
84
74
  {
85
75
  type: 'title',
@@ -88,7 +78,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
91
- html: '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.',
81
+ 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
82
  },
93
83
  {
94
84
  type: 'paragraph',
@@ -117,12 +107,12 @@ const seo: ImagenBase64LocaleContent['seo'] = [
117
107
  },
118
108
  {
119
109
  type: 'paragraph',
120
- html: '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.',
110
+ 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
111
  },
122
112
  {
123
113
  type: 'tip',
124
114
  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.',
115
+ 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
116
  },
127
117
  {
128
118
  type: 'title',
@@ -131,7 +121,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
131
121
  },
132
122
  {
133
123
  type: 'tip',
134
- title: 'Vermeiden Sie Base64 für große Bilder – nutzen Sie ein CDN',
124
+ title: 'Vermeiden Sie Base64 für große Bilder: nutzen Sie ein CDN',
135
125
  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
126
  },
137
127
  {
@@ -141,7 +131,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
141
131
  },
142
132
  {
143
133
  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.',
134
+ 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
135
  },
146
136
  {
147
137
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImagenBase64LocaleContent } from '../index';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { ImageToBase64UI } from '../index';
@@ -60,17 +61,6 @@ const howTo: ImagenBase64LocaleContent['howTo'] = [
60
61
  },
61
62
  ];
62
63
 
63
- const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
- {
65
- name: 'MDN Web Docs: Data URIs',
66
- url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
- },
68
- {
69
- name: 'Base64 Encoding RFC 4648',
70
- url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
- },
72
- ];
73
-
74
64
  const seo: ImagenBase64LocaleContent['seo'] = [
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Base64 is an encoding technique that transforms binary data — like an image — into a pure ASCII text string. The result is a Data URI: a self-contained URL that starts with <code>data:image/png;base64,...</code> and contains the entire encoded image. By embedding this code directly in your HTML, CSS or JSON, the image loads without any additional HTTP request to the server — zero network latency, instant loading.',
72
+ html: 'Base64 is an encoding technique that transforms binary data - like an image - into a pure ASCII text string. The result is a Data URI: a self-contained URL that starts with <code>data:image/png;base64,...</code> and contains the entire encoded image. By embedding this code directly in your HTML, CSS or JSON, the image loads without any additional HTTP request to the server - zero network latency, instant loading.',
83
73
  },
84
74
  {
85
75
  type: 'title',
@@ -88,7 +78,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
91
- html: 'The main argument for Base64 is the elimination of network requests. Every image on a web page means an HTTP request with its overhead of connection, DNS, TLS handshake and latency. For very small critical images — the main application logo, favicon, a UI icon — embedding them in Base64 in the CSS or HTML eliminates that cost and guarantees they display instantly even before the browser has cached anything.',
81
+ html: 'The main argument for Base64 is the elimination of network requests. Every image on a web page means an HTTP request with its overhead of connection, DNS, TLS handshake and latency. For very small critical images - the main application logo, favicon, a UI icon - embedding them in Base64 in the CSS or HTML eliminates that cost and guarantees they display instantly even before the browser has cached anything.',
92
82
  },
93
83
  {
94
84
  type: 'paragraph',
@@ -117,12 +107,12 @@ const seo: ImagenBase64LocaleContent['seo'] = [
117
107
  },
118
108
  {
119
109
  type: 'paragraph',
120
- html: 'When you select or drag an image, the browser\'s <code>FileReader</code> API reads it directly from disk as binary data in RAM. The <code>readAsDataURL()</code> method converts those binary bytes to their Base64 representation using the RFC 4648 algorithm — every 3 bytes of original data are represented as 4 ASCII characters from the Base64 alphabet. The result includes the automatically detected correct MIME type.',
110
+ html: 'When you select or drag an image, the browser\'s <code>FileReader</code> API reads it directly from disk as binary data in RAM. The <code>readAsDataURL()</code> method converts those binary bytes to their Base64 representation using the RFC 4648 algorithm - every 3 bytes of original data are represented as 4 ASCII characters from the Base64 alphabet. The result includes the automatically detected correct MIME type.',
121
111
  },
122
112
  {
123
113
  type: 'tip',
124
114
  title: 'Use it only for small images (under 10 KB)',
125
- html: 'Base64 increases file size by approximately 33%: a 10 KB image becomes ~13.3 KB of text. For small icons and logos this cost is minimal and the elimination of the HTTP request compensates for it. For photographs or large images, the size overhead is significant — always use a CDN for large images.',
115
+ html: 'Base64 increases file size by approximately 33%: a 10 KB image becomes ~13.3 KB of text. For small icons and logos this cost is minimal and the elimination of the HTTP request compensates for it. For photographs or large images, the size overhead is significant - always use a CDN for large images.',
126
116
  },
127
117
  {
128
118
  type: 'title',
@@ -131,7 +121,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
131
121
  },
132
122
  {
133
123
  type: 'tip',
134
- title: 'Avoid Base64 for large images — use a CDN instead',
124
+ title: 'Avoid Base64 for large images: use a CDN instead',
135
125
  html: 'If you have images larger than 10-20 KB, Base64 hurts performance: it inflates HTML/CSS size, prevents the browser from caching the image independently, and blocks rendering while the parser processes the giant string. For large images, always serve from a CDN with appropriate cache headers.',
136
126
  },
137
127
  {
@@ -141,7 +131,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
141
131
  },
142
132
  {
143
133
  type: 'paragraph',
144
- html: 'Data URIs are compatible with 100% of modern browsers and most email clients. Our tool processes everything locally via the FileReader API — your images never leave your device. This makes it suitable for corporate images, private screenshots or any confidential visual content that you need to convert to Base64.',
134
+ html: 'Data URIs are compatible with 100% of modern browsers and most email clients. Our tool processes everything locally via the FileReader API - your images never leave your device. This makes it suitable for corporate images, private screenshots or any confidential visual content that you need to convert to Base64.',
145
135
  },
146
136
  {
147
137
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImagenBase64LocaleContent } from '../index';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { ImageToBase64UI } from '../index';
@@ -60,17 +61,6 @@ const howTo: ImagenBase64LocaleContent['howTo'] = [
60
61
  },
61
62
  ];
62
63
 
63
- const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
- {
65
- name: 'MDN Web Docs: Data URIs',
66
- url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
- },
68
- {
69
- name: 'Base64 Encoding RFC 4648',
70
- url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
- },
72
- ];
73
-
74
64
  const seo: ImagenBase64LocaleContent['seo'] = [
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Base64 es una técnica de codificación que transforma datos binarios — como una imagen — en una cadena de texto ASCII puro. El resultado es un Data URI: una URL auto-contenida que empieza por <code>data:image/png;base64,...</code> y contiene toda la imagen codificada. Al incrustar este código directamente en tu HTML, CSS o JSON, la imagen se carga sin ninguna petición HTTP adicional al servidor — cero latencia de red, carga instantánea.',
72
+ html: 'Base64 es una técnica de codificación que transforma datos binarios - como una imagen - en una cadena de texto ASCII puro. El resultado es un Data URI: una URL auto-contenida que empieza por <code>data:image/png;base64,...</code> y contiene toda la imagen codificada. Al incrustar este código directamente en tu HTML, CSS o JSON, la imagen se carga sin ninguna petición HTTP adicional al servidor - cero latencia de red, carga instantánea.',
83
73
  },
84
74
  {
85
75
  type: 'title',
@@ -88,7 +78,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
91
- html: 'El principal argumento a favor de Base64 es la eliminación de peticiones de red. Cada imagen en una página web supone una petición HTTP con su overhead de conexión, DNS, handshake TLS y latencia. Para imágenes críticas muy pequeñas — el logo principal de la aplicación, el favicon, un icono de UI — incrustarlas en Base64 en el CSS o HTML elimina ese coste y garantiza que se muestren de forma instantánea incluso antes de que el navegador haya cacheado nada.',
81
+ html: 'El principal argumento a favor de Base64 es la eliminación de peticiones de red. Cada imagen en una página web supone una petición HTTP con su overhead de conexión, DNS, handshake TLS y latencia. Para imágenes críticas muy pequeñas - el logo principal de la aplicación, el favicon, un icono de UI - incrustarlas en Base64 en el CSS o HTML elimina ese coste y garantiza que se muestren de forma instantánea incluso antes de que el navegador haya cacheado nada.',
92
82
  },
93
83
  {
94
84
  type: 'paragraph',
@@ -117,12 +107,12 @@ const seo: ImagenBase64LocaleContent['seo'] = [
117
107
  },
118
108
  {
119
109
  type: 'paragraph',
120
- html: 'Cuando seleccionas o arrastras una imagen, la API <code>FileReader</code> del navegador la lee directamente desde el disco como datos binarios en memoria RAM. El método <code>readAsDataURL()</code> convierte esos bytes binarios a su representación Base64 usando el algoritmo de RFC 4648 — cada 3 bytes de datos originales se representan como 4 caracteres ASCII del alfabeto Base64. El resultado incluye el tipo MIME correcto detectado automáticamente.',
110
+ html: 'Cuando seleccionas o arrastras una imagen, la API <code>FileReader</code> del navegador la lee directamente desde el disco como datos binarios en memoria RAM. El método <code>readAsDataURL()</code> convierte esos bytes binarios a su representación Base64 usando el algoritmo de RFC 4648 - cada 3 bytes de datos originales se representan como 4 caracteres ASCII del alfabeto Base64. El resultado incluye el tipo MIME correcto detectado automáticamente.',
121
111
  },
122
112
  {
123
113
  type: 'tip',
124
114
  title: 'Úsalo solo para imágenes pequeñas (menos de 10 KB)',
125
- html: 'Base64 aumenta el tamaño del archivo en aproximadamente un 33%: una imagen de 10 KB se convierte en ~13.3 KB de texto. Para iconos y logos pequeños este coste es mínimo y la eliminación de la petición HTTP lo compensa. Para fotografías o imágenes grandes, el overhead de tamaño es significativo — usa siempre un CDN para imágenes grandes.',
115
+ html: 'Base64 aumenta el tamaño del archivo en aproximadamente un 33%: una imagen de 10 KB se convierte en ~13.3 KB de texto. Para iconos y logos pequeños este coste es mínimo y la eliminación de la petición HTTP lo compensa. Para fotografías o imágenes grandes, el overhead de tamaño es significativo - usa siempre un CDN para imágenes grandes.',
126
116
  },
127
117
  {
128
118
  type: 'title',
@@ -131,7 +121,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
131
121
  },
132
122
  {
133
123
  type: 'tip',
134
- title: 'Evita Base64 para imágenes grandes — usa un CDN',
124
+ title: 'Evita Base64 para imágenes grandes: usa un CDN',
135
125
  html: 'Si tienes imágenes de más de 10-20 KB, Base64 perjudica el rendimiento: infla el tamaño del HTML/CSS, impide que el navegador cachee la imagen de forma independiente, y bloquea el render mientras el parser procesa el string gigante. Para imágenes grandes, sirve siempre desde un CDN con headers de caché apropiados.',
136
126
  },
137
127
  {
@@ -141,7 +131,7 @@ const seo: ImagenBase64LocaleContent['seo'] = [
141
131
  },
142
132
  {
143
133
  type: 'paragraph',
144
- html: 'Los Data URIs son compatibles con el 100% de los navegadores modernos y la mayoría de clientes de email. Nuestra herramienta procesa todo localmente mediante la API FileReader — tus imágenes nunca salen de tu dispositivo. Esto la hace adecuada para imágenes corporativas, capturas de pantalla privadas o cualquier contenido visual confidencial que necesites convertir a Base64.',
134
+ html: 'Los Data URIs son compatibles con el 100% de los navegadores modernos y la mayoría de clientes de email. Nuestra herramienta procesa todo localmente mediante la API FileReader - tus imágenes nunca salen de tu dispositivo. Esto la hace adecuada para imágenes corporativas, capturas de pantalla privadas o cualquier contenido visual confidencial que necesites convertir a Base64.',
145
135
  },
146
136
  {
147
137
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ImagenBase64LocaleContent } from '../index';
2
3
  import { generateSchemas } from '../../../shared/logic/schemas';
3
4
  import type { ImageToBase64UI } from '../index';
@@ -52,7 +53,7 @@ const howTo: ImagenBase64LocaleContent['howTo'] = [
52
53
  },
53
54
  {
54
55
  name: 'Copiez le code généré',
55
- text: 'Vous verrez deux zones de texte : le Data URI complet (prêt à utiliser dans src="" ou CSS) et le Base64 pur pour d\'autres utilisations.',
56
+ text: 'Vous verrez deux zones de texte: le Data URI complet (prêt à utiliser dans src="" ou CSS) et le Base64 pur pour d\'autres utilisations.',
56
57
  },
57
58
  {
58
59
  name: 'Utilisez le code dans votre projet',
@@ -60,26 +61,15 @@ const howTo: ImagenBase64LocaleContent['howTo'] = [
60
61
  },
61
62
  ];
62
63
 
63
- const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
- {
65
- name: 'MDN Web Docs: Data URIs',
66
- url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
- },
68
- {
69
- name: 'Base64 Encoding RFC 4648',
70
- url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
- },
72
- ];
73
-
74
64
  const seo: ImagenBase64LocaleContent['seo'] = [
75
65
  {
76
66
  type: 'title',
77
- text: 'Convertisseur Image vers Base64 : Intégrez des Images Sans Requêtes HTTP',
67
+ text: 'Convertisseur Image vers Base64: Intégrez des Images Sans Requêtes HTTP',
78
68
  level: 2,
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Base64 est une technique d\'encodage qui transforme des données binaires — comme une image — en une chaîne de texte ASCII pur. Le résultat est un Data URI : une URL auto-contenue qui commence par <code>data:image/png;base64,...</code> et contient l\'image entière encodée. En intégrant ce code directement dans votre HTML, CSS ou JSON, l\'image se charge sans aucune requête HTTP supplémentaire au serveur — zéro latence réseau, chargement instantané.',
72
+ html: 'Base64 est une technique d\'encodage qui transforme des données binaires - comme une image - en une chaîne de texte ASCII pur. Le résultat est un Data URI: une URL auto-contenue qui commence par <code>data:image/png;base64,...</code> et contient l\'image entière encodée. En intégrant ce code directement dans votre HTML, CSS ou JSON, l\'image se charge sans aucune requête HTTP supplémentaire au serveur - zéro latence réseau, chargement instantané.',
83
73
  },
84
74
  {
85
75
  type: 'title',
@@ -88,11 +78,11 @@ const seo: ImagenBase64LocaleContent['seo'] = [
88
78
  },
89
79
  {
90
80
  type: 'paragraph',
91
- html: 'Le principal argument en faveur de Base64 est l\'élimination des requêtes réseau. Chaque image sur une page web représente une requête HTTP avec son overhead de connexion, DNS, handshake TLS et latence. Pour les très petites images critiques — le logo principal de l\'application, le favicon, une icône d\'interface — les intégrer en Base64 dans le CSS ou HTML élimine ce coût et garantit leur affichage instantané même avant que le navigateur n\'ait rien mis en cache.',
81
+ html: 'Le principal argument en faveur de Base64 est l\'élimination des requêtes réseau. Chaque image sur une page web représente une requête HTTP avec son overhead de connexion, DNS, handshake TLS et latence. Pour les très petites images critiques - le logo principal de l\'application, le favicon, une icône d\'interface - les intégrer en Base64 dans le CSS ou HTML élimine ce coût et garantit leur affichage instantané même avant que le navigateur n\'ait rien mis en cache.',
92
82
  },
93
83
  {
94
84
  type: 'paragraph',
95
- html: 'Cette technique est particulièrement puissante dans les applications SPA (Single Page Applications) où le bundle JavaScript et CSS est généré au moment de la compilation : intégrer de petites images dans le bundle garantit qu\'elles se chargent avec le code sans requêtes supplémentaires. Elle est aussi indispensable pour les emails HTML, où les clients de messagerie bloquent les images externes mais affichent toujours les Data URIs intégrés.',
85
+ html: 'Cette technique est particulièrement puissante dans les applications SPA (Single Page Applications) où le bundle JavaScript et CSS est généré au moment de la compilation: intégrer de petites images dans le bundle garantit qu\'elles se chargent avec le code sans requêtes supplémentaires. Elle est aussi indispensable pour les emails HTML, où les clients de messagerie bloquent les images externes mais affichent toujours les Data URIs intégrés.',
96
86
  },
97
87
  {
98
88
  type: 'title',
@@ -103,11 +93,11 @@ const seo: ImagenBase64LocaleContent['seo'] = [
103
93
  type: 'list',
104
94
  icon: 'mdi:check-circle',
105
95
  items: [
106
- 'HTML inline : <code>&lt;img src="data:image/png;base64,..."&gt;</code> pour les icônes critiques.',
107
- 'CSS background : <code>background-image: url("data:image/svg+xml;base64,...")</code> pour les SVGs d\'interface.',
108
- 'JSON et APIs REST : envoi d\'images comme données texte dans les payloads JSON.',
109
- 'Emails HTML : images intégrées qui s\'affichent même quand le client bloque les URLs externes.',
110
- 'Intégration SVG : intégrer des images raster dans des fichiers SVG comme données inline.',
96
+ 'HTML inline: <code>&lt;img src="data:image/png;base64,..."&gt;</code> pour les icônes critiques.',
97
+ 'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> pour les SVGs d\'interface.',
98
+ 'JSON et APIs REST: envoi d\'images comme données texte dans les payloads JSON.',
99
+ 'Emails HTML: images intégrées qui s\'affichent même quand le client bloque les URLs externes.',
100
+ 'Intégration SVG: intégrer des images raster dans des fichiers SVG comme données inline.',
111
101
  ],
112
102
  },
113
103
  {
@@ -117,12 +107,12 @@ const seo: ImagenBase64LocaleContent['seo'] = [
117
107
  },
118
108
  {
119
109
  type: 'paragraph',
120
- html: 'Lorsque vous sélectionnez ou faites glisser une image, l\'API <code>FileReader</code> du navigateur la lit directement depuis le disque comme données binaires en RAM. La méthode <code>readAsDataURL()</code> convertit ces octets binaires en leur représentation Base64 selon l\'algorithme RFC 4648 — chaque 3 octets de données originales sont représentés par 4 caractères ASCII de l\'alphabet Base64. Le résultat inclut le type MIME correct détecté automatiquement.',
110
+ html: 'Lorsque vous sélectionnez ou faites glisser une image, l\'API <code>FileReader</code> du navigateur la lit directement depuis le disque comme données binaires en RAM. La méthode <code>readAsDataURL()</code> convertit ces octets binaires en leur représentation Base64 selon l\'algorithme RFC 4648 - chaque 3 octets de données originales sont représentés par 4 caractères ASCII de l\'alphabet Base64. Le résultat inclut le type MIME correct détecté automatiquement.',
121
111
  },
122
112
  {
123
113
  type: 'tip',
124
114
  title: 'Utilisez',
125
- html: 'Base64 augmente la taille du fichier d\'environ 33% : une image de 10 Ko devient ~13,3 Ko de texte. Pour les petites icônes et logos, ce coût est minimal et l\'élimination de la requête HTTP le compense. Pour les photographies ou grandes images, le surcoût de taille est significatif — utilisez toujours un CDN pour les grandes images.',
115
+ html: 'Base64 augmente la taille du fichier d\'environ 33%: une image de 10 Ko devient ~13,3 Ko de texte. Pour les petites icônes et logos, ce coût est minimal et l\'élimination de la requête HTTP le compense. Pour les photographies ou grandes images, le surcoût de taille est significatif - utilisez toujours un CDN pour les grandes images.',
126
116
  },
127
117
  {
128
118
  type: 'title',
@@ -131,8 +121,8 @@ const seo: ImagenBase64LocaleContent['seo'] = [
131
121
  },
132
122
  {
133
123
  type: 'tip',
134
- title: 'Évitez Base64 pour les grandes images — utilisez un CDN',
135
- html: 'Si vous avez des images de plus de 10-20 Ko, Base64 nuit aux performances : il gonfle la taille du HTML/CSS, empêche le navigateur de mettre l\'image en cache de façon indépendante, et bloque le rendu pendant que le parseur traite la chaîne géante. Pour les grandes images, servez toujours depuis un CDN avec des en-têtes de cache appropriés.',
124
+ title: 'Évitez Base64 pour les grandes images: utilisez un CDN',
125
+ html: 'Si vous avez des images de plus de 10-20 Ko, Base64 nuit aux performances: il gonfle la taille du HTML/CSS, empêche le navigateur de mettre l\'image en cache de façon indépendante, et bloque le rendu pendant que le parseur traite la chaîne géante. Pour les grandes images, servez toujours depuis un CDN avec des en-têtes de cache appropriés.',
136
126
  },
137
127
  {
138
128
  type: 'title',
@@ -141,11 +131,11 @@ const seo: ImagenBase64LocaleContent['seo'] = [
141
131
  },
142
132
  {
143
133
  type: 'paragraph',
144
- html: 'Les Data URIs sont compatibles avec 100% des navigateurs modernes et la plupart des clients de messagerie. Notre outil traite tout localement via l\'API FileReader — vos images ne quittent jamais votre appareil. Cela le rend adapté aux images d\'entreprise, aux captures d\'écran privées ou à tout contenu visuel confidentiel que vous devez convertir en Base64.',
134
+ html: 'Les Data URIs sont compatibles avec 100% des navigateurs modernes et la plupart des clients de messagerie. Notre outil traite tout localement via l\'API FileReader - vos images ne quittent jamais votre appareil. Cela le rend adapté aux images d\'entreprise, aux captures d\'écran privées ou à tout contenu visuel confidentiel que vous devez convertir en Base64.',
145
135
  },
146
136
  {
147
137
  type: 'title',
148
- text: 'Conclusion : L\'outil d\'intégration le plus rapide et le plus privé',
138
+ text: 'Conclusion: L\'outil d\'intégration le plus rapide et le plus privé',
149
139
  level: 3,
150
140
  },
151
141
  {