@jjlmoya/utils-converters 1.24.0 → 1.26.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 (134) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/fr.ts +1 -1
  5. package/src/category/i18n/id.ts +1 -1
  6. package/src/category/i18n/it.ts +1 -1
  7. package/src/category/i18n/nl.ts +1 -1
  8. package/src/category/i18n/pl.ts +1 -1
  9. package/src/category/i18n/pt.ts +1 -1
  10. package/src/category/i18n/sv.ts +1 -1
  11. package/src/entries.ts +6 -0
  12. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  13. package/src/tests/category_seo_quality.test.ts +74 -0
  14. package/src/tests/faq_count.test.ts +1 -1
  15. package/src/tests/no_h1_in_components.test.ts +1 -1
  16. package/src/tests/seo_parity.test.ts +2 -2
  17. package/src/tests/seo_wellformed_export.test.ts +65 -0
  18. package/src/tests/tool_validation.test.ts +15 -15
  19. package/src/tool/avifAJpg/i18n/en.ts +164 -164
  20. package/src/tool/avifAJpg/i18n/es.ts +164 -164
  21. package/src/tool/avifAJpg/i18n/fr.ts +164 -164
  22. package/src/tool/avifAJpg/i18n/ja.ts +166 -166
  23. package/src/tool/avifAJpg/i18n/ko.ts +166 -166
  24. package/src/tool/avifAJpg/i18n/zh.ts +166 -166
  25. package/src/tool/avifAJpg/seo.astro +15 -15
  26. package/src/tool/avifAPng/i18n/en.ts +164 -164
  27. package/src/tool/avifAPng/i18n/es.ts +164 -164
  28. package/src/tool/avifAPng/i18n/fr.ts +164 -164
  29. package/src/tool/avifAPng/i18n/ja.ts +166 -166
  30. package/src/tool/avifAPng/i18n/ko.ts +166 -166
  31. package/src/tool/avifAPng/i18n/zh.ts +166 -166
  32. package/src/tool/avifAPng/seo.astro +15 -15
  33. package/src/tool/avifAWebp/i18n/en.ts +164 -164
  34. package/src/tool/avifAWebp/i18n/es.ts +164 -164
  35. package/src/tool/avifAWebp/i18n/fr.ts +164 -164
  36. package/src/tool/avifAWebp/i18n/ja.ts +166 -166
  37. package/src/tool/avifAWebp/i18n/ko.ts +166 -166
  38. package/src/tool/avifAWebp/i18n/zh.ts +166 -166
  39. package/src/tool/avifAWebp/seo.astro +15 -15
  40. package/src/tool/bmpAJpg/i18n/en.ts +164 -164
  41. package/src/tool/bmpAJpg/i18n/es.ts +164 -164
  42. package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
  43. package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
  44. package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
  45. package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
  46. package/src/tool/bmpAJpg/seo.astro +15 -15
  47. package/src/tool/bmpAPng/i18n/en.ts +164 -164
  48. package/src/tool/bmpAPng/i18n/es.ts +164 -164
  49. package/src/tool/bmpAPng/i18n/fr.ts +164 -164
  50. package/src/tool/bmpAPng/i18n/ja.ts +165 -165
  51. package/src/tool/bmpAPng/i18n/ko.ts +165 -165
  52. package/src/tool/bmpAPng/i18n/zh.ts +165 -165
  53. package/src/tool/bmpAPng/seo.astro +15 -15
  54. package/src/tool/bmpAWebp/i18n/en.ts +164 -164
  55. package/src/tool/bmpAWebp/i18n/es.ts +164 -164
  56. package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
  57. package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
  58. package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
  59. package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
  60. package/src/tool/bmpAWebp/seo.astro +15 -15
  61. package/src/tool/gifAJpg/i18n/en.ts +164 -164
  62. package/src/tool/gifAJpg/i18n/es.ts +164 -164
  63. package/src/tool/gifAJpg/i18n/fr.ts +164 -164
  64. package/src/tool/gifAJpg/i18n/ja.ts +166 -166
  65. package/src/tool/gifAJpg/i18n/ko.ts +166 -166
  66. package/src/tool/gifAJpg/i18n/zh.ts +166 -166
  67. package/src/tool/gifAJpg/seo.astro +15 -15
  68. package/src/tool/gifAPng/i18n/en.ts +164 -164
  69. package/src/tool/gifAPng/i18n/es.ts +164 -164
  70. package/src/tool/gifAPng/i18n/fr.ts +164 -164
  71. package/src/tool/gifAPng/i18n/ja.ts +166 -166
  72. package/src/tool/gifAPng/i18n/ko.ts +166 -166
  73. package/src/tool/gifAPng/i18n/zh.ts +166 -166
  74. package/src/tool/gifAPng/seo.astro +15 -15
  75. package/src/tool/gifAWebp/i18n/en.ts +164 -164
  76. package/src/tool/gifAWebp/i18n/es.ts +164 -164
  77. package/src/tool/gifAWebp/i18n/fr.ts +164 -164
  78. package/src/tool/gifAWebp/i18n/ja.ts +166 -166
  79. package/src/tool/gifAWebp/i18n/ko.ts +166 -166
  80. package/src/tool/gifAWebp/i18n/zh.ts +166 -166
  81. package/src/tool/gifAWebp/seo.astro +15 -15
  82. package/src/tool/imagenBase64/i18n/en.ts +154 -154
  83. package/src/tool/imagenBase64/i18n/es.ts +154 -154
  84. package/src/tool/imagenBase64/i18n/fr.ts +154 -154
  85. package/src/tool/imagenBase64/seo.astro +15 -15
  86. package/src/tool/jpgAIco/seo.astro +15 -15
  87. package/src/tool/jpgAPng/i18n/en.ts +164 -164
  88. package/src/tool/jpgAPng/i18n/es.ts +164 -164
  89. package/src/tool/jpgAPng/i18n/fr.ts +164 -164
  90. package/src/tool/jpgAPng/i18n/ja.ts +166 -166
  91. package/src/tool/jpgAPng/i18n/ko.ts +166 -166
  92. package/src/tool/jpgAPng/i18n/zh.ts +166 -166
  93. package/src/tool/jpgAPng/seo.astro +15 -15
  94. package/src/tool/jpgAWebp/i18n/en.ts +164 -164
  95. package/src/tool/jpgAWebp/i18n/es.ts +164 -164
  96. package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
  97. package/src/tool/jpgAWebp/seo.astro +15 -15
  98. package/src/tool/pngAIco/seo.astro +15 -15
  99. package/src/tool/pngAJpg/i18n/de.ts +21 -21
  100. package/src/tool/pngAJpg/i18n/es.ts +177 -177
  101. package/src/tool/pngAJpg/i18n/fr.ts +137 -137
  102. package/src/tool/pngAJpg/i18n/id.ts +89 -89
  103. package/src/tool/pngAJpg/i18n/it.ts +89 -89
  104. package/src/tool/pngAJpg/i18n/ko.ts +177 -177
  105. package/src/tool/pngAJpg/i18n/nl.ts +20 -20
  106. package/src/tool/pngAJpg/i18n/pl.ts +89 -89
  107. package/src/tool/pngAJpg/i18n/pt.ts +89 -89
  108. package/src/tool/pngAJpg/i18n/ru.ts +177 -177
  109. package/src/tool/pngAJpg/i18n/sv.ts +89 -89
  110. package/src/tool/pngAJpg/i18n/tr.ts +89 -89
  111. package/src/tool/pngAJpg/seo.astro +15 -15
  112. package/src/tool/pngAWebp/i18n/en.ts +164 -164
  113. package/src/tool/pngAWebp/i18n/es.ts +164 -164
  114. package/src/tool/pngAWebp/i18n/fr.ts +164 -164
  115. package/src/tool/pngAWebp/seo.astro +15 -15
  116. package/src/tool/svgAJpg/i18n/fr.ts +164 -164
  117. package/src/tool/svgAJpg/seo.astro +15 -15
  118. package/src/tool/svgAPng/i18n/fr.ts +164 -164
  119. package/src/tool/svgAPng/seo.astro +15 -15
  120. package/src/tool/webpAIco/seo.astro +15 -15
  121. package/src/tool/webpAJpg/seo.astro +15 -15
  122. package/src/tool/webpAPng/bibliography.ts +13 -13
  123. package/src/tool/webpAPng/i18n/de.ts +166 -166
  124. package/src/tool/webpAPng/i18n/es.ts +171 -171
  125. package/src/tool/webpAPng/i18n/fr.ts +166 -166
  126. package/src/tool/webpAPng/i18n/id.ts +166 -166
  127. package/src/tool/webpAPng/i18n/it.ts +166 -166
  128. package/src/tool/webpAPng/i18n/nl.ts +166 -166
  129. package/src/tool/webpAPng/i18n/pl.ts +166 -166
  130. package/src/tool/webpAPng/i18n/pt.ts +166 -166
  131. package/src/tool/webpAPng/i18n/ru.ts +166 -166
  132. package/src/tool/webpAPng/i18n/sv.ts +166 -166
  133. package/src/tool/webpAPng/i18n/tr.ts +167 -167
  134. package/src/tool/webpAPng/seo.astro +15 -15
@@ -1,168 +1,168 @@
1
1
  import { bibliography } from '../bibliography';
2
- import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
2
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
3
  import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { JpgAWebpLocaleContent } from '../index';
5
-
6
- const slug = 'convertisseur-jpg-en-webp';
7
- const title = 'Convertir JPG en WebP en Ligne et Gratuitement';
8
- const description =
9
- 'Convertissez des images JPG en WebP dans votre navigateur. Compression supérieure sans perte visible. Sans téléchargement. Gratuit, illimité et privé.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'Faites glisser des fichiers JPG...',
13
- convertText: 'Pour les convertir en WebP instantanément',
14
- selectFiles: 'Sélectionner des fichiers',
15
- processedFiles: 'Fichiers traités',
16
- downloadAll: 'Tout télécharger (.zip)',
4
+ import type { JpgAWebpLocaleContent } from '../index';
5
+
6
+ const slug = 'convertisseur-jpg-en-webp';
7
+ const title = 'Convertir JPG en WebP en Ligne et Gratuitement';
8
+ const description =
9
+ 'Convertissez des images JPG en WebP dans votre navigateur. Compression supérieure sans perte visible. Sans téléchargement. Gratuit, illimité et privé.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'Faites glisser des fichiers JPG...',
13
+ convertText: 'Pour les convertir en WebP instantanément',
14
+ selectFiles: 'Sélectionner des fichiers',
15
+ processedFiles: 'Fichiers traités',
16
+ downloadAll: 'Tout télécharger (.zip)',
17
17
  pending: 'En attente',
18
- bibliographyTitle: 'Références Bibliographiques',
19
- faqTitle: 'Questions Fréquentes',
20
- };
21
-
22
- const faq: JpgAWebpLocaleContent['faq'] = [
23
- {
24
- question: 'Pourquoi convertir des photos JPG en WebP ?',
25
- answer:
26
- 'WebP permet une compression significativement meilleure des fichiers JPG traditionnels sans que l\'œil humain ne remarque la différence, résultant en des sites web plus rapides et modernes.',
27
- },
28
- {
29
- question: 'Dois-je payer par image ?',
30
- answer:
31
- 'Non, l\'outil est gratuit et tout est traité directement sur votre ordinateur. Il est illimité pour usage domestique ou professionnel.',
32
- },
33
- {
34
- question: 'La conversion est-elle sécurisée ?',
35
- answer:
36
- 'Oui, totalement. Tout le traitement se fait dans le Canvas HTML5 de votre navigateur local sans envoyer aucune donnée vers des serveurs externes.',
37
- },
38
- ];
39
-
40
- const howTo: JpgAWebpLocaleContent['howTo'] = [
41
- {
42
- name: 'Insérez vos photos JPG',
43
- text: 'Déposez vos fichiers JPG ou faites-les glisser directement dans la zone supérieure. La détection est instantanée.',
44
- },
45
- {
46
- name: 'Traitement en WebP',
47
- text: 'Le moteur de rendu local convertira chaque fichier image en un WebP ultra-optimisé prêt pour le web.',
48
- },
49
- {
50
- name: 'Téléchargez les résultats',
51
- text: 'Sauvegardez chaque WebP individuellement ou téléchargez le ZIP avec tous les fichiers convertis.',
52
- },
53
- ];
54
-
55
- const seo: JpgAWebpLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'Convertisseur JPG vers WebP: Accélérez votre site avec le format de Google',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'Le format <strong>JPG</strong> domine la photographie numérique depuis des décennies - universel, compact et compatible avec tous les appareils. Mais Google a conçu <strong>WebP</strong> pour surpasser le JPG sur son propre terrain: la même qualité visuelle avec 25 à 35 % de poids en moins. Pour les développeurs et les équipes marketing qui luttent contre des temps de chargement lents, convertir ses JPG en WebP est l\'optimisation au meilleur retour sur effort.',
64
- },
65
- {
66
- type: 'title',
67
- text: 'JPG ou WebP ? Quand utiliser chaque format',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'Le <strong>JPG</strong> reste le bon choix lorsque vous avez besoin d\'une compatibilité universelle: e-mails clients, documents Word, réseaux sociaux anciens ou systèmes CMS qui n\'acceptent pas encore le WebP. Son écosystème de trente ans garantit que n\'importe quel écran, imprimante ou visionneuse ouvrira le fichier sans problème. Son principal inconvénient est le poids - un JPG d\'en-tête de 1,5 Mo peut faire chuter le score LCP de votre page et échouer aux seuils Core Web Vitals.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'Le <strong>WebP</strong> est le choix intelligent pour tout le contenu hébergé sur votre site web. Chrome, Firefox, Safari et Edge le supportent nativement depuis plusieurs années. Les images de produits en e-commerce, les bannières de blog, les miniatures de vidéo et toute photo publiée en ligne en bénéficient directement: pages plus légères, meilleur score Google PageSpeed Insights et expérience utilisateur plus fluide, notamment sur les connexions mobiles lentes.',
77
- },
78
- {
79
- type: 'title',
80
- text: 'Comparatif: Conversion locale vs Cloud',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: 'Convertisseurs Cloud',
88
- description: 'Outils qui envoient vos fichiers vers un serveur distant.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- 'Latence réseau à l\'envoi et au téléchargement',
93
- 'Vos photos sont stockées sur des serveurs tiers',
94
- 'Limites de taille et quota quotidien de conversions',
95
- 'Publicités intrusives et traceurs tiers',
96
- ],
97
- },
98
- {
99
- title: 'Notre Architecture Locale',
100
- description: 'Traitement direct sur votre matériel via la technologie Vanilla JS.',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- 'Vitesse instantanée - zéro latence réseau',
105
- 'Confidentialité totale - 0 octet envoyé à l\'extérieur',
106
- 'Aucune limite de taille ni de nombre de fichiers',
107
- 'Interface épurée, sans publicités ni traçage',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'Comment ça fonctionne techniquement',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'Lorsque vous glissez un JPG dans l\'outil, le navigateur crée un objet <strong>Blob</strong> qui n\'existe que dans votre RAM. Ce Blob est décodé et dessiné sur un élément <strong>Canvas HTML5</strong> invisible. Comme le JPG ne possède pas de canal alpha, la conversion en WebP est directe: le moteur exporte le canvas via <code>toDataURL(\'image/webp\')</code>, générant un flux d\'octets que votre système télécharge instantanément sans passer par aucun serveur.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: 'L\'algorithme de compression WebP combine des techniques de prédiction de blocs (similaires à celles de VP8, le codec vidéo de Google) avec des transformées de couleur et un codage arithmétique. Le résultat est un fichier contenant les mêmes informations perceptuelles que le JPG original, mais compressées beaucoup plus efficacement - ce qui se traduit par moins de kilo-octets transférés à chaque visite de page.',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'Conseil Core Web Vitals: LCP et poids des images',
128
- html: 'Le <strong>Largest Contentful Paint (LCP)</strong> est la métrique Google qui mesure le temps de chargement du plus grand élément visuel de votre page. Un JPG d\'en-tête de 1,5 Mo peut devenir un WebP de seulement 900 Ko - voire 600 Ko - sans différence visuelle perceptible. Cette économie de <strong>25 à 35 %</strong> peut faire passer votre LCP de \" À améliorer \" à \" Bon \" et améliorer votre positionnement dans les résultats de recherche.',
129
- },
130
- {
131
- type: 'title',
132
- text: 'Cas d\'usage et compatibilité',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- 'Images produits sur WooCommerce ou Shopify: moins de poids, plus de conversions.',
140
- 'Photos de blog et articles de contenu: meilleur score PageSpeed sans retoucher le design.',
141
- 'Bannières web et créations publicitaires display: fichiers plus légers, même netteté.',
142
- 'Galeries de portfolio pour l\'architecture, la photographie ou le design.',
143
- 'Miniatures de vidéo sur les sites de streaming ou plateformes de cours en ligne.',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: 'Conclusion',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'Convertir vos JPG en WebP est aujourd\'hui l\'une des optimisations les plus simples et les plus rentables que vous puissiez appliquer à n\'importe quel site web. Avec cet outil, vous le faites en quelques secondes, gratuitement, et sans que vos images ne quittent jamais votre appareil. Moins de kilo-octets, meilleur LCP, pages plus rapides - le tout avec exactement le même rendu visuel qu\'avant.',
154
- },
155
- ];
156
-
18
+ bibliographyTitle: 'Références Bibliographiques',
19
+ faqTitle: 'Questions Fréquentes',
20
+ };
21
+
22
+ const faq: JpgAWebpLocaleContent['faq'] = [
23
+ {
24
+ question: 'Pourquoi convertir des photos JPG en WebP ?',
25
+ answer:
26
+ 'WebP permet une compression significativement meilleure des fichiers JPG traditionnels sans que l\'œil humain ne remarque la différence, résultant en des sites web plus rapides et modernes.',
27
+ },
28
+ {
29
+ question: 'Dois-je payer par image ?',
30
+ answer:
31
+ 'Non, l\'outil est gratuit et tout est traité directement sur votre ordinateur. Il est illimité pour usage domestique ou professionnel.',
32
+ },
33
+ {
34
+ question: 'La conversion est-elle sécurisée ?',
35
+ answer:
36
+ 'Oui, totalement. Tout le traitement se fait dans le Canvas HTML5 de votre navigateur local sans envoyer aucune donnée vers des serveurs externes.',
37
+ },
38
+ ];
39
+
40
+ const howTo: JpgAWebpLocaleContent['howTo'] = [
41
+ {
42
+ name: 'Insérez vos photos JPG',
43
+ text: 'Déposez vos fichiers JPG ou faites-les glisser directement dans la zone supérieure. La détection est instantanée.',
44
+ },
45
+ {
46
+ name: 'Traitement en WebP',
47
+ text: 'Le moteur de rendu local convertira chaque fichier image en un WebP ultra-optimisé prêt pour le web.',
48
+ },
49
+ {
50
+ name: 'Téléchargez les résultats',
51
+ text: 'Sauvegardez chaque WebP individuellement ou téléchargez le ZIP avec tous les fichiers convertis.',
52
+ },
53
+ ];
54
+
55
+ const seo: JpgAWebpLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'Convertisseur JPG vers WebP: Accélérez votre site avec le format de Google',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'Le format <strong>JPG</strong> domine la photographie numérique depuis des décennies - universel, compact et compatible avec tous les appareils. Mais Google a conçu <strong>WebP</strong> pour surpasser le JPG sur son propre terrain: la même qualité visuelle avec 25 à 35 % de poids en moins. Pour les développeurs et les équipes marketing qui luttent contre des temps de chargement lents, convertir ses JPG en WebP est l\'optimisation au meilleur retour sur effort.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'JPG ou WebP ? Quand utiliser chaque format',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'Le <strong>JPG</strong> reste le bon choix lorsque vous avez besoin d\'une compatibilité universelle: e-mails clients, documents Word, réseaux sociaux anciens ou systèmes CMS qui n\'acceptent pas encore le WebP. Son écosystème de trente ans garantit que n\'importe quel écran, imprimante ou visionneuse ouvrira le fichier sans problème. Son principal inconvénient est le poids - un JPG d\'en-tête de 1,5 Mo peut faire chuter le score LCP de votre page et échouer aux seuils Core Web Vitals.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'Le <strong>WebP</strong> est le choix intelligent pour tout le contenu hébergé sur votre site web. Chrome, Firefox, Safari et Edge le supportent nativement depuis plusieurs années. Les images de produits en e-commerce, les bannières de blog, les miniatures de vidéo et toute photo publiée en ligne en bénéficient directement: pages plus légères, meilleur score Google PageSpeed Insights et expérience utilisateur plus fluide, notamment sur les connexions mobiles lentes.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: 'Comparatif: Conversion locale vs Cloud',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: 'Convertisseurs Cloud',
88
+ description: 'Outils qui envoient vos fichiers vers un serveur distant.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ 'Latence réseau à l\'envoi et au téléchargement',
93
+ 'Vos photos sont stockées sur des serveurs tiers',
94
+ 'Limites de taille et quota quotidien de conversions',
95
+ 'Publicités intrusives et traceurs tiers',
96
+ ],
97
+ },
98
+ {
99
+ title: 'Notre Architecture Locale',
100
+ description: 'Traitement direct sur votre matériel via la technologie Vanilla JS.',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ 'Vitesse instantanée - zéro latence réseau',
105
+ 'Confidentialité totale - 0 octet envoyé à l\'extérieur',
106
+ 'Aucune limite de taille ni de nombre de fichiers',
107
+ 'Interface épurée, sans publicités ni traçage',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Comment ça fonctionne techniquement',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'Lorsque vous glissez un JPG dans l\'outil, le navigateur crée un objet <strong>Blob</strong> qui n\'existe que dans votre RAM. Ce Blob est décodé et dessiné sur un élément <strong>Canvas HTML5</strong> invisible. Comme le JPG ne possède pas de canal alpha, la conversion en WebP est directe: le moteur exporte le canvas via <code>toDataURL(\'image/webp\')</code>, générant un flux d\'octets que votre système télécharge instantanément sans passer par aucun serveur.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'L\'algorithme de compression WebP combine des techniques de prédiction de blocs (similaires à celles de VP8, le codec vidéo de Google) avec des transformées de couleur et un codage arithmétique. Le résultat est un fichier contenant les mêmes informations perceptuelles que le JPG original, mais compressées beaucoup plus efficacement - ce qui se traduit par moins de kilo-octets transférés à chaque visite de page.',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'Conseil Core Web Vitals: LCP et poids des images',
128
+ html: 'Le <strong>Largest Contentful Paint (LCP)</strong> est la métrique Google qui mesure le temps de chargement du plus grand élément visuel de votre page. Un JPG d\'en-tête de 1,5 Mo peut devenir un WebP de seulement 900 Ko - voire 600 Ko - sans différence visuelle perceptible. Cette économie de <strong>25 à 35 %</strong> peut faire passer votre LCP de \" À améliorer \" à \" Bon \" et améliorer votre positionnement dans les résultats de recherche.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Cas d\'usage et compatibilité',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ 'Images produits sur WooCommerce ou Shopify: moins de poids, plus de conversions.',
140
+ 'Photos de blog et articles de contenu: meilleur score PageSpeed sans retoucher le design.',
141
+ 'Bannières web et créations publicitaires display: fichiers plus légers, même netteté.',
142
+ 'Galeries de portfolio pour l\'architecture, la photographie ou le design.',
143
+ 'Miniatures de vidéo sur les sites de streaming ou plateformes de cours en ligne.',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusion',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Convertir vos JPG en WebP est aujourd\'hui l\'une des optimisations les plus simples et les plus rentables que vous puissiez appliquer à n\'importe quel site web. Avec cet outil, vous le faites en quelques secondes, gratuitement, et sans que vos images ne quittent jamais votre appareil. Moins de kilo-octets, meilleur LCP, pages plus rapides - le tout avec exactement le même rendu visuel qu\'avant.',
154
+ },
155
+ ];
157
156
 
158
- export const content: JpgAWebpLocaleContent = {
159
- slug,
160
- title,
161
- description,
162
- ui,
163
- seo,
164
- faq,
165
- bibliography,
166
- howTo,
167
- schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
168
- };
157
+
158
+ export const content: JpgAWebpLocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
168
+ };
@@ -1,15 +1,15 @@
1
- ---
2
- import { SEORenderer } from '@jjlmoya/utils-shared';
3
- import { jpgAWebp } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await jpgAWebp.i18n[locale]?.();
12
- if (!content) return null;
13
- ---
14
-
15
- {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { jpgAWebp } from './index';
4
+ import type { KnownLocale } from '../../types';
5
+
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'es' } = Astro.props;
11
+ const content = await jpgAWebp.i18n[locale]?.();
12
+ if (!content) return null;
13
+ ---
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,15 +1,15 @@
1
- ---
2
- import { SEORenderer } from '@jjlmoya/utils-shared';
3
- import { pngAIco } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await pngAIco.i18n[locale]?.();
12
- if (!content) return null;
13
- ---
14
-
15
- {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { pngAIco } from './index';
4
+ import type { KnownLocale } from '../../types';
5
+
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'es' } = Astro.props;
11
+ const content = await pngAIco.i18n[locale]?.();
12
+ if (!content) return null;
13
+ ---
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -20,27 +20,27 @@ const ui: ImageConverterUI = {
20
20
  faqTitle: 'Häufig gestellte Fragen',
21
21
  };
22
22
 
23
- const faq: PngAJpgLocaleContent['faq'] = [
24
- {
25
- question: 'Warum unseren lokalen PNG-zu-JPG-Konverter wählen?',
26
- answer:
27
- 'Im Gegensatz zu herkömmlichen Tools verarbeitet diese Anwendung Dateien vollständig in Ihrem Browser. Ihre Bilder verlassen Ihr Gerät nie und bleiben unter Ihrer Kontrolle.',
28
- },
29
- {
30
- question: 'JPG oder PNG: Welches Format ist besser?',
31
- answer:
32
- 'PNG eignet sich für Logos und Transparenz. JPG ist dagegen ideal für Fotos und Webbanner, weil die Dateien deutlich kleiner werden und Webseiten schneller laden.',
33
- },
34
- {
35
- question: 'Wie funktioniert die Konvertierung ohne Upload?',
36
- answer:
37
- 'Die Anwendung nutzt HTML5 Canvas. Der Browser zeichnet das Bild in einem unsichtbaren Arbeitsbereich, ersetzt Transparenz durch Weiß und erzeugt die JPG-Datei direkt auf Ihrem Gerät.',
38
- },
39
- {
40
- question: 'Ist der Konverter für vertrauliche Dokumente sicher?',
41
- answer:
42
- 'Ja. Die Verarbeitung findet ausschließlich im Arbeitsspeicher Ihres Geräts statt. Beim Schließen des Tabs bleiben keine Dateien auf einem fremden Server zurück.',
43
- },
23
+ const faq: PngAJpgLocaleContent['faq'] = [
24
+ {
25
+ question: 'Warum unseren lokalen PNG-zu-JPG-Konverter wählen?',
26
+ answer:
27
+ 'Im Gegensatz zu herkömmlichen Tools verarbeitet diese Anwendung Dateien vollständig in Ihrem Browser. Ihre Bilder verlassen Ihr Gerät nie und bleiben unter Ihrer Kontrolle.',
28
+ },
29
+ {
30
+ question: 'JPG oder PNG: Welches Format ist besser?',
31
+ answer:
32
+ 'PNG eignet sich für Logos und Transparenz. JPG ist dagegen ideal für Fotos und Webbanner, weil die Dateien deutlich kleiner werden und Webseiten schneller laden.',
33
+ },
34
+ {
35
+ question: 'Wie funktioniert die Konvertierung ohne Upload?',
36
+ answer:
37
+ 'Die Anwendung nutzt HTML5 Canvas. Der Browser zeichnet das Bild in einem unsichtbaren Arbeitsbereich, ersetzt Transparenz durch Weiß und erzeugt die JPG-Datei direkt auf Ihrem Gerät.',
38
+ },
39
+ {
40
+ question: 'Ist der Konverter für vertrauliche Dokumente sicher?',
41
+ answer:
42
+ 'Ja. Die Verarbeitung findet ausschließlich im Arbeitsspeicher Ihres Geräts statt. Beim Schließen des Tabs bleiben keine Dateien auf einem fremden Server zurück.',
43
+ },
44
44
  ];
45
45
 
46
46
  const howTo: PngAJpgLocaleContent['howTo'] = [