✨ feat(sitemap/who): Ajoute des villes et routes pour la page "Qui sommes-nous ?"
Ajoute des villes à la sitemap et aux traductions, crée une route
supplémentaire pour la page "Qui sommes-nous ?" et traduit le nom de la
ville affichée.
```
✨ feat(templates/home): Corrige le lien du partenaire et supprime le fallback image.
🗑️ chore(vite.config.js): Supprime le plugin d'obfuscation JavaScript.
```
🎨 style(home.twig): Supprime commentaire inutile sur les dimensions des images.
♻️ refactor(base.twig): Déplace le script Chatwoot dans app.js pour centralisation.
✨ feat(ViteAssetExtension): Corrige le chargement des styles CSS.
🎨 style(app.scss): Supprime l'import de la police dans le fichier SCSS.
🔒 chore(caddy): Ajoute des en-têtes de sécurité manquants.
✨ feat(base.twig): Ajoute la prise en charge des polices Google Fonts.
```
✨ feat(i18n): Ajoute la traduction chinoise et Google API
Ajoute la traduction chinoise, intègre l'API Google Marchand et
corrige des problèmes de gestion des paramètres de langue.
```
✨ feat(SitemapSubscriber): Ajoute génération d'URLs "Qui sommes-nous" par ville
➕ feat(who.twig): Ajoute template pour la page "Qui sommes-nous"
➕ feat(HomeController): Ajoute route et controller pour la page "Qui sommes-nous"
```
✨ feat(assets/app.js): Ajoute gestion bandeau cookies et notifications en français.
Ajoute les messages, la logique et l'affichage des bandeaux de cookies et de notifications.
```
✨ feat(templates): Implémente la structure de base de la boutique avec catégories et produits.
🐛 fix(ErrorListener): Corrige l'affichage des erreurs seulement en prod.
🌐 feat(translations): Ajoute les traductions FR et EN pour la boutique.
✨ feat(dons): Ajoute la fonctionnalité de dons avec Stripe et reçus PDF.
Ajoute une page de dons avec formulaire, intégration Stripe, webhooks,
génération de reçus PDF et envoi de mails de confirmation. Ajoute aussi
gestion des erreurs 404/500.
```
✨ feat(security): Utilise l'email pour l'authentification, crée dashboard admin.
Ajoute le dashboard admin, les membres, les events, et les comptes.
Utilise l'email au lieu du username pour l'authentification.
```
✨ feat(security): Ajoute réinitialisation mot de passe, robots.txt, et traductions.
Ajoute la fonctionnalité de réinitialisation de mot de passe, met à jour le
robots.txt, et ajoute des traductions en français et en anglais.
```
Ajoute la gestion des menus utilisateur (desktop et mobile) avec des fonctions pour basculer la visibilité et ferme les menus au clic extérieur.
Ajoute aussi la gestion de la touche "Echap" pour fermer les menus.
✨ feat(translations/messages.en.yaml): Add security translations for login & password.
Ajoute les traductions anglaises pour la sécurité (connexion, mot de passe oublié).
✨ feat(translations/messages.fr.yaml): Ajoute les traductions pour la sécurité.
Ajoute les traductions françaises pour les formulaires de connexion et mot de passe oublié.
✨ feat(templates/security): Crée les templates pour login et mot de passe oublié.
Crée les templates login.twig, forgot_password.twig et forgot_password_success.twig.
✨ feat(src/Service/ResetPassword): Adapte ResetPasswordSubscriber pour E-Cosplay.
Adapte le service ResetPasswordSubscriber pour le projet E-Cosplay.
✨ feat(src/Controller/SecurityController): Crée le contrôleur de sécurité.
Crée le SecurityController avec les routes pour la connexion et la gestion du mot de passe oublié.
✨ feat(templates/base.twig): Ajoute le menu utilisateur desktop et mobile.
Ajoute le menu utilisateur (desktop et mobile) avec gestion de la connexion/déconnexion.
✨ feat(event): Ajoute la liste des événements et la gestion d'absence d'événements.
Ajoute la liste des événements avec affichage de date, lieu, organisateur et un lien vers les détails. Gère l'absence d'événements.
```