@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 { AvifAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: AvifAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: AvifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'AV1 Image File Format',
57
- url: 'https://aomediacodec.github.io/av1-avif/',
58
- },
59
- {
60
- name: 'Google WebP Format Overview',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: AvifAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'AVIF — самый продвинутый формат изображений, доступный сегодня: меньше, чем WebP, меньше, чем JPG, с превосходным визуальным качеством. Однако его принятие было неравномерным — Safari не поддерживал его до 2024 года, и многие старые мобильные устройства его не узнают. WebP, напротив, уже многие годы является современным веб-стандартом с глобальной поддержкой более 95%. Конвертация AVIF в WebP — это прагматичное решение, когда вам нужна современность без риска совместимости.',
63
+ html: 'AVIF - самый продвинутый формат изображений, доступный сегодня: меньше, чем WebP, меньше, чем JPG, с превосходным визуальным качеством. Однако его принятие было неравномерным - Safari не поддерживал его до 2024 года, и многие старые мобильные устройства его не узнают. WebP, напротив, уже многие годы является современным веб-стандартом с глобальной поддержкой более 95%. Конвертация AVIF в WebP - это прагматичное решение, когда вам нужна современность без риска совместимости.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,11 +69,11 @@ const seo: AvifAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'AVIF предлагает самое продвинутое сжатие — обычно на 20-30% меньше, чем WebP при том же качестве. Его технология на основе AV1 является самой современной в отрасли. Однако в поддержке AVIF все еще есть слепые пятна: старые версии Safari, некоторые браузеры на устаревшем Android и определенные настольные проигрыватели изображений его не распознают. Для веб-продакшна с широкой и разнообразной аудиторией это представляет риск.',
72
+ html: 'AVIF предлагает самое продвинутое сжатие - обычно на 20-30% меньше, чем WebP при том же качестве. Его технология на основе AV1 является самой современной в отрасли. Однако в поддержке AVIF все еще есть слепые пятна: старые версии Safari, некоторые браузеры на устаревшем Android и определенные настольные проигрыватели изображений его не распознают. Для веб-продакшна с широкой и разнообразной аудиторией это представляет риск.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
86
- html: 'WebP имеет гораздо более солидную историю поддержки. Chrome принял его в 2010 году, Firefox и Edge последовали его примеру, а Safari включил его в 2020 году. С глобальным охватом более 95% в браузерах, WebP — это безопасный выбор для любого веб-сайта, который не хочет предоставлять резервные форматы. Он поддерживает прозрачность, сжатие с потерями и без потерь, и позволяет получать файлы гораздо меньшего размера, чем JPG или PNG.',
76
+ html: 'WebP имеет гораздо более солидную историю поддержки. Chrome принял его в 2010 году, Firefox и Edge последовали его примеру, а Safari включил его в 2020 году. С глобальным охватом более 95% в браузерах, WebP - это безопасный выбор для любого веб-сайта, который не хочет предоставлять резервные форматы. Он поддерживает прозрачность, сжатие с потерями и без потерь, и позволяет получать файлы гораздо меньшего размера, чем JPG или PNG.',
87
77
  },
88
78
  {
89
79
  type: 'title',
@@ -111,7 +101,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Полная конфиденциальность — 0 байт покидает ваше устройство',
104
+ 'Полная конфиденциальность - 0 байт покидает ваше устройство',
115
105
  'Мгновенная скорость без зависимости от сети',
116
106
  'Без ограничений по весу или количеству файлов',
117
107
  'Работает без подключения к Интернету',
@@ -135,7 +125,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'WebP: прагматичный выбор современного разработчика',
138
- html: 'WebP имеет более 95% поддержки в браузерах — AVIF растет, но еще не достиг этого числа. Для сайтов в продакшне без адаптивного определения формата WebP — это безопасный выбор, охватывающий почти любую аудиторию. Конвертируйте ваши AVIF в WebP и уверенно предоставляйте современные изображения.',
128
+ html: 'WebP имеет более 95% поддержки в браузерах - AVIF растет, но еще не достиг этого числа. Для сайтов в продакшне без адаптивного определения формата WebP - это безопасный выбор, охватывающий почти любую аудиторию. Конвертируйте ваши AVIF в WebP и уверенно предоставляйте современные изображения.',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -160,7 +150,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'AVIF — это авангард сжатия изображений, но WebP — это надежный и универсальный выбор современной веб-экосистемы. С нашим инструментом вы мгновенно переходите от самого нового формата к наиболее поддерживаемому — без загрузки чего-либо на сервер, с полной конфиденциальностью и без ограничений по размеру.',
153
+ html: 'AVIF - это авангард сжатия изображений, но WebP - это надежный и универсальный выбор современной веб-экосистемы. С нашим инструментом вы мгновенно переходите от самого нового формата к наиболее поддерживаемому - без загрузки чего-либо на сервер, с полной конфиденциальностью и без ограничений по размеру.',
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 { AvifAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: AvifAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: AvifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'AV1 Image File Format',
57
- url: 'https://aomediacodec.github.io/av1-avif/',
58
- },
59
- {
60
- name: 'Google WebP Format Overview',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: AvifAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'AVIF är det mest avancerade bildformatet som finns tillgängligt idag: mindre än WebP, mindre än JPG, med överlägsen visuell kvalitet. Adoptionen har dock varit ojämn – Safari stödde det inte förrän 2024, och många äldre mobila enheter känner inte till det. WebP däremot har varit etablerat i åratal som den moderna webbstandarden med över 95 % globalt stöd. Att konvertera AVIF till WebP är det pragmatiska beslutet när du behöver modernitet utan att riskera kompatibiliteten.',
63
+ html: 'AVIF är det mest avancerade bildformatet som finns tillgängligt idag: mindre än WebP, mindre än JPG, med överlägsen visuell kvalitet. Adoptionen har dock varit ojämn - Safari stödde det inte förrän 2024, och många äldre mobila enheter känner inte till det. WebP däremot har varit etablerat i åratal som den moderna webbstandarden med över 95 % globalt stöd. Att konvertera AVIF till WebP är det pragmatiska beslutet när du behöver modernitet utan att riskera kompatibiliteten.',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'AVIF erbjuder den mest avancerade kompressionen som finns tillgänglig – vanligtvis 20–30 % mindre än WebP vid samma kvalitet. Dess teknologi baserad på AV1 är den modernaste i branschen. AVIF-stödet har dock fortfarande blinda fläckar: äldre Safari-versioner, vissa webbläsare på äldre Android-enheter och vissa bildvisare för skrivbordet känner inte igen det. För webbproduktion med bred och varierad publik innebär detta en risk.',
72
+ html: 'AVIF erbjuder den mest avancerade kompressionen som finns tillgänglig - vanligtvis 20-30 % mindre än WebP vid samma kvalitet. Dess teknologi baserad på AV1 är den modernaste i branschen. AVIF-stödet har dock fortfarande blinda fläckar: äldre Safari-versioner, vissa webbläsare på äldre Android-enheter och vissa bildvisare för skrivbordet känner inte igen det. För webbproduktion med bred och varierad publik innebär detta en risk.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -111,7 +101,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Total integritet – 0 byte lämnar din enhet',
104
+ 'Total integritet - 0 byte lämnar din enhet',
115
105
  'Omedelbar hastighet utan nätverksberoende',
116
106
  'Inga begränsningar för storlek eller antal filer',
117
107
  'Fungerar utan internetanslutning',
@@ -135,7 +125,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'WebP: den moderna utvecklarens pragmatiska val',
138
- html: 'WebP har över 95 % stöd i webbläsare – AVIF växer men når ännu inte den siffran. För produktionssajter utan adaptiv formatdetektering är WebP det säkra valet som täcker nästan alla målgrupper. Konvertera dina AVIF till WebP och leverera moderna bilder med förtroende.',
128
+ html: 'WebP har över 95 % stöd i webbläsare - AVIF växer men når ännu inte den siffran. För produktionssajter utan adaptiv formatdetektering är WebP det säkra valet som täcker nästan alla målgrupper. Konvertera dina AVIF till WebP och leverera moderna bilder med förtroende.',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -160,7 +150,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'AVIF är framkanten av bildkompression, men WebP är det pålitliga och universella valet för det moderna webbechosystemet. Med vårt verktyg konverterar du från det senaste till det mest stödda på ett ögonblick – utan att ladda upp något till någon server, med total integritet och utan storleksbegränsningar.',
153
+ html: 'AVIF är framkanten av bildkompression, men WebP är det pålitliga och universella valet för det moderna webbechosystemet. Med vårt verktyg konverterar du från det senaste till det mest stödda på ett ögonblick - utan att ladda upp något till någon server, med total integritet och utan storleksbegränsningar.',
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 { AvifAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: AvifAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: AvifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'AV1 Image File Format',
57
- url: 'https://aomediacodec.github.io/av1-avif/',
58
- },
59
- {
60
- name: 'Google WebP Format Overview',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: AvifAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -111,7 +101,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- 'Tam gizlilik — 0 bayt cihazınızdan çıkar',
104
+ 'Tam gizlilik - 0 bayt cihazınızdan çıkar',
115
105
  'Ağ bağımlılığı olmadan anında hız',
116
106
  'Boyut veya dosya sayısı sınırı yok',
117
107
  'İnternet bağlantısı olmadan çalışır',
@@ -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 { AvifAWebpLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: AvifAWebpLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: AvifAWebpLocaleContent['bibliography'] = [
55
- {
56
- name: 'AV1 Image File Format',
57
- url: 'https://aomediacodec.github.io/av1-avif/',
58
- },
59
- {
60
- name: 'Google WebP Format Overview',
61
- url: 'https://developers.google.com/speed/webp',
62
- },
63
- ];
64
-
65
55
  const seo: AvifAWebpLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
@@ -70,7 +60,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'AVIF 是目前最先进的图像格式:比 WebP 小,比 JPG 小,视觉质量更高。然而,它的采用情况参差不齐——Safari 直到 2024 年才支持它,许多旧的移动设备也无法识别它。相比之下,WebP 多年来作为现代网页标准已被确立,拥有超过 95% 的全球支持。当您需要现代性而又不愿承担兼容性风险时,将 AVIF 转换为 WebP 是务实的决策。',
63
+ html: 'AVIF 是目前最先进的图像格式:比 WebP 小,比 JPG 小,视觉质量更高。然而,它的采用情况参差不齐-Safari 直到 2024 年才支持它,许多旧的移动设备也无法识别它。相比之下,WebP 多年来作为现代网页标准已被确立,拥有超过 95% 的全球支持。当您需要现代性而又不愿承担兼容性风险时,将 AVIF 转换为 WebP 是务实的决策。',
74
64
  },
75
65
  {
76
66
  type: 'title',
@@ -79,7 +69,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'AVIF 提供了目前最先进的压缩技术——在相同质量下,通常比 WebP 小 20-30%。其基于 AV1 的技术是行业内最先进的。然而,AVIF 的支持仍存在盲点:旧版本的 Safari、旧版 Android 上的某些浏览器以及某些桌面图像播放器无法识别它。对于拥有广泛且多样化受众的网页生产来说,这构成了风险。',
72
+ html: 'AVIF 提供了目前最先进的压缩技术-在相同质量下,通常比 WebP 小 20-30%。其基于 AV1 的技术是行业内最先进的。然而,AVIF 的支持仍存在盲点:旧版本的 Safari、旧版 Android 上的某些浏览器以及某些桌面图像播放器无法识别它。对于拥有广泛且多样化受众的网页生产来说,这构成了风险。',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -111,7 +101,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
111
101
  icon: 'mdi:laptop-mac',
112
102
  highlight: true,
113
103
  points: [
114
- '完全隐私——0 字节离开您的设备',
104
+ '完全隐私-0 字节离开您的设备',
115
105
  '即时处理,不依赖网络',
116
106
  '没有大小或文件数量限制',
117
107
  '可在无网络连接的情况下工作',
@@ -135,7 +125,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
135
125
  {
136
126
  type: 'tip',
137
127
  title: 'WebP:现代开发者的务实选择',
138
- html: 'WebP 拥有超过 95% 的浏览器支持——AVIF 正在增长,但尚未达到这个数字。对于不具备自适应格式检测的生产站点,WebP 是覆盖几乎所有受众的安全选择。将您的 AVIF 转换为 WebP,放心地提供现代图像。',
128
+ html: 'WebP 拥有超过 95% 的浏览器支持-AVIF 正在增长,但尚未达到这个数字。对于不具备自适应格式检测的生产站点,WebP 是覆盖几乎所有受众的安全选择。将您的 AVIF 转换为 WebP,放心地提供现代图像。',
139
129
  },
140
130
  {
141
131
  type: 'title',
@@ -160,7 +150,7 @@ const seo: AvifAWebpLocaleContent['seo'] = [
160
150
  },
161
151
  {
162
152
  type: 'paragraph',
163
- html: 'AVIF 是图像压缩的前沿,但 WebP 是现代网页生态系统中可靠且通用的选择。使用我们的工具,您可以瞬间从最新格式转换为支持最广的格式——无需向服务器上传任何内容,拥有完全隐私且无大小限制。',
153
+ html: 'AVIF 是图像压缩的前沿,但 WebP 是现代网页生态系统中可靠且通用的选择。使用我们的工具,您可以瞬间从最新格式转换为支持最广的格式-无需向服务器上传任何内容,拥有完全隐私且无大小限制。',
164
154
  },
165
155
  ];
166
156
 
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await avifAWebp.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: 'BMP File Format Specification',
6
+ url: 'https://en.wikipedia.org/wiki/BMP_file_format',
7
+ },
8
+ {
9
+ name: 'JPEG.org',
10
+ url: 'https://jpeg.org/',
11
+ },
12
+ ];
@@ -27,3 +27,5 @@ export const bmpAJpg: ConvertersToolEntry<ImageConverterUI> = {
27
27
  zh: () => import('./i18n/zh').then((m) => m.content),
28
28
  },
29
29
  };
30
+
31
+ export { bibliography } from './bibliography';
@@ -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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,35 +52,24 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'Spécification du format de fichier BMP',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',
68
- text: 'Convertisseur BMP vers JPG : Réduisez un Fichier Géant en Quelques Secondes',
58
+ text: 'Convertisseur BMP vers JPG: Réduisez un Fichier Géant en Quelques Secondes',
69
59
  level: 2,
70
60
  },
71
61
  {
72
62
  type: 'paragraph',
73
- html: 'Le BMP (Bitmap) est le format d\'image le plus naïf de l\'informatique : il stocke chaque pixel tel quel, sans aucune compression. Une capture d\'écran 1920x1080 en BMP pèse environ 6 Mo. Cette même image en JPG occupe entre 200 et 400 Ko avec une qualité visuellement indiscernable. La différence est abyssale, et notre outil vous permet d\'effectuer cette conversion en quelques secondes, directement dans votre navigateur, sans envoyer quoi que ce soit à un serveur.',
63
+ html: 'Le BMP (Bitmap) est le format d\'image le plus naïf de l\'informatique: il stocke chaque pixel tel quel, sans aucune compression. Une capture d\'écran 1920x1080 en BMP pèse environ 6 Mo. Cette même image en JPG occupe entre 200 et 400 Ko avec une qualité visuellement indiscernable. La différence est abyssale, et notre outil vous permet d\'effectuer cette conversion en quelques secondes, directement dans votre navigateur, sans envoyer quoi que ce soit à un serveur.',
74
64
  },
75
65
  {
76
66
  type: 'title',
77
- text: 'BMP vs JPG : données brutes contre compression intelligente',
67
+ text: 'BMP vs JPG: données brutes contre compression intelligente',
78
68
  level: 3,
79
69
  },
80
70
  {
81
71
  type: 'paragraph',
82
- html: 'Le BMP a été créé par Microsoft à l\'ère de Windows 3.1. Sa philosophie est la plus simple possible : chaque pixel occupe 3 octets (rouge, vert, bleu), et les pixels sont stockés ligne par ligne sans aucun traitement supplémentaire. Cette absence totale de compression rend les fichiers BMP entre 50 et 100 fois plus grands que leur équivalent JPG pour les photographies et captures d\'écran réelles.',
72
+ html: 'Le BMP a été créé par Microsoft à l\'ère de Windows 3.1. Sa philosophie est la plus simple possible: chaque pixel occupe 3 octets (rouge, vert, bleu), et les pixels sont stockés ligne par ligne sans aucun traitement supplémentaire. Cette absence totale de compression rend les fichiers BMP entre 50 et 100 fois plus grands que leur équivalent JPG pour les photographies et captures d\'écran réelles.',
83
73
  },
84
74
  {
85
75
  type: 'paragraph',
@@ -87,7 +77,7 @@ const seo: BmpAJpgLocaleContent['seo'] = [
87
77
  },
88
78
  {
89
79
  type: 'title',
90
- text: 'Comparaison d\'Architecture : Local vs Cloud',
80
+ text: 'Comparaison d\'Architecture: Local vs Cloud',
91
81
  level: 3,
92
82
  },
93
83
  {
@@ -102,7 +92,7 @@ const seo: BmpAJpgLocaleContent['seo'] = [
102
92
  'Envoyer un BMP de 10 Mo prend du temps sur des connexions lentes',
103
93
  'Vos captures d\'écran et images confidentielles transitent sur internet',
104
94
  'Limites de taille fréquentes dans les plans gratuits',
105
- 'Double latence : envoi et téléchargement du fichier converti',
95
+ 'Double latence: envoi et téléchargement du fichier converti',
106
96
  ],
107
97
  },
108
98
  {
@@ -114,7 +104,7 @@ const seo: BmpAJpgLocaleContent['seo'] = [
114
104
  'Le BMP est traité dans votre RAM, ne voyage vers aucun serveur',
115
105
  'Conversion instantanée sans attente',
116
106
  'Aucune limite de taille de fichier',
117
- 'Confidentialité totale : 0 octet envoyé à l\'extérieur',
107
+ 'Confidentialité totale: 0 octet envoyé à l\'extérieur',
118
108
  ],
119
109
  },
120
110
  ],
@@ -155,7 +145,7 @@ const seo: BmpAJpgLocaleContent['seo'] = [
155
145
  },
156
146
  {
157
147
  type: 'title',
158
- text: 'Conclusion : 10 Mo de BMP, 500 Ko de JPG, même image',
148
+ text: 'Conclusion: 10 Mo de BMP, 500 Ko de JPG, même image',
159
149
  level: 3,
160
150
  },
161
151
  {
@@ -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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['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 { BmpAJpgLocaleContent } from '../index';
@@ -51,17 +52,6 @@ const howTo: BmpAJpgLocaleContent['howTo'] = [
51
52
  },
52
53
  ];
53
54
 
54
- const bibliography: BmpAJpgLocaleContent['bibliography'] = [
55
- {
56
- name: 'BMP File Format Specification',
57
- url: 'https://en.wikipedia.org/wiki/BMP_file_format',
58
- },
59
- {
60
- name: 'JPEG.org',
61
- url: 'https://jpeg.org/',
62
- },
63
- ];
64
-
65
55
  const seo: BmpAJpgLocaleContent['seo'] = [
66
56
  {
67
57
  type: 'title',