From 8b374cf8c4ab44a7f63a3c91be38334e5fe120de Mon Sep 17 00:00:00 2001 From: Sacha VAUDEY Date: Sun, 14 Sep 2025 12:27:19 +0200 Subject: [PATCH] update CI --- banquise-website/app/page.tsx | 2 +- banquise-website/components/layout/Footer.tsx | 29 +++++++++++-------- .../components/layout/MobileMenu.tsx | 14 +++++---- .../components/sections/HeroSection.tsx | 5 ++-- .../components/sections/ServicesSection.tsx | 21 +++++++++----- .../components/ui/ScrollToTopButton.tsx | 4 ++- banquise-website/lib/data/translations/en.ts | 25 +++++++++++++++- banquise-website/lib/data/translations/fr.ts | 25 +++++++++++++++- banquise-website/types/i18n.ts | 23 +++++++++++++++ 9 files changed, 116 insertions(+), 32 deletions(-) diff --git a/banquise-website/app/page.tsx b/banquise-website/app/page.tsx index 5cd8143..cc4f8b9 100644 --- a/banquise-website/app/page.tsx +++ b/banquise-website/app/page.tsx @@ -42,7 +42,7 @@ export default function HomePage() { backgroundSize: '30px 30px' }} > - + {/* Services Section avec transition subtile */} diff --git a/banquise-website/components/layout/Footer.tsx b/banquise-website/components/layout/Footer.tsx index af59883..2a13984 100644 --- a/banquise-website/components/layout/Footer.tsx +++ b/banquise-website/components/layout/Footer.tsx @@ -1,8 +1,12 @@ import React from 'react'; import { URLS, SITE_CONFIG } from '@/lib/config/constants'; import { BookOpen, GitBranch, Gamepad2, Cloud, Rocket, Heart } from 'lucide-react'; +import { useTranslation } from '@/lib/hooks/useTranslation'; -export const Footer: React.FC = () => ( +export const Footer: React.FC = () => { + const { t } = useTranslation(); + + return ( -); + ); +}; diff --git a/banquise-website/components/layout/MobileMenu.tsx b/banquise-website/components/layout/MobileMenu.tsx index 1de8554..4281e1f 100644 --- a/banquise-website/components/layout/MobileMenu.tsx +++ b/banquise-website/components/layout/MobileMenu.tsx @@ -2,6 +2,7 @@ import React, { useEffect } from 'react'; import { Button } from '@/components/common/Button'; import { Logo } from './navbar/Logo'; import { URLS } from '@/lib/config/constants'; +import { useTranslation } from '@/lib/hooks/useTranslation'; import type { Translation } from '@/types/i18n'; // Fonction utilitaire simple pour combiner les classes @@ -87,6 +88,7 @@ const MobileNavItem: React.FC = ({ }; export const MobileMenu: React.FC = ({ isOpen, onClose, translations }) => { + const { t } = useTranslation(); // Gérer le scroll du body useEffect(() => { if (isOpen) { @@ -181,7 +183,7 @@ export const MobileMenu: React.FC = ({ isOpen, onClose, transla } title={translations.home} - description="Retour à l'accueil" + description={t.common.backToHome} href="#home" onClick={() => handleNavClick('home')} /> @@ -193,7 +195,7 @@ export const MobileMenu: React.FC = ({ isOpen, onClose, transla } title={translations.services} - description="Découvrir notre offre" + description={t.common.discoverOffer} href="#services" onClick={() => handleNavClick('services')} /> @@ -205,7 +207,7 @@ export const MobileMenu: React.FC = ({ isOpen, onClose, transla } title={translations.about} - description="En savoir plus sur nous" + description={t.common.learnMoreAboutUs} href="#about" onClick={() => handleNavClick('about')} /> @@ -217,7 +219,7 @@ export const MobileMenu: React.FC = ({ isOpen, onClose, transla } title={translations.contact} - description="Nous envoyer un email" + description={t.common.sendEmail} href="mailto:contact@la-banquise.fr" onClick={() => handleNavClick('contact')} /> @@ -235,7 +237,7 @@ export const MobileMenu: React.FC = ({ isOpen, onClose, transla } title="Discord" - description="Rejoindre la communauté" + description={t.common.joinCommunity} href={URLS.social.discord} isExternal={true} /> @@ -257,7 +259,7 @@ export const MobileMenu: React.FC = ({ isOpen, onClose, transla }} className="w-full shadow-xl" > - Se connecter + {t.common.login} diff --git a/banquise-website/components/sections/HeroSection.tsx b/banquise-website/components/sections/HeroSection.tsx index 04ff667..fc93aaa 100644 --- a/banquise-website/components/sections/HeroSection.tsx +++ b/banquise-website/components/sections/HeroSection.tsx @@ -5,9 +5,10 @@ import type { Translation } from '@/types/i18n'; interface HeroSectionProps { translations: Translation['hero']; + commonTranslations: Translation['common']; } -export const HeroSection: React.FC = ({ translations }) => ( +export const HeroSection: React.FC = ({ translations, commonTranslations }) => (
= ({ translations }) => ( }} className="inline-flex items-center justify-center px-8 py-4 text-lg font-semibold text-blue-700 bg-white border-2 border-blue-600 rounded-xl shadow-lg hover:shadow-xl hover:bg-blue-50 hover:scale-105 transition-all duration-300 active:scale-95" > - En savoir plus + {commonTranslations.learnMore} diff --git a/banquise-website/components/sections/ServicesSection.tsx b/banquise-website/components/sections/ServicesSection.tsx index e33861c..b95f51d 100644 --- a/banquise-website/components/sections/ServicesSection.tsx +++ b/banquise-website/components/sections/ServicesSection.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { ServiceCard } from '@/components/common/ServiceCard'; +import { useTranslation } from '@/lib/hooks/useTranslation'; import type { Service } from '@/types/service'; interface ServicesSectionProps { @@ -14,11 +15,14 @@ export const ServicesSection: React.FC = ({ services, onServiceClick, translations -}) => ( -
+}) => { + const { t } = useTranslation(); + + return ( +
{/* Header de section moderne avec forte hiérarchie */}
@@ -27,7 +31,7 @@ export const ServicesSection: React.FC = ({ {/* Titre principal avec contraste fort */}

- Nos Services + {t.sections.ourServices}

{/* Sous-titre avec bon contraste */} @@ -47,5 +51,6 @@ export const ServicesSection: React.FC = ({ ))}
-
-); +
+ ); +}; diff --git a/banquise-website/components/ui/ScrollToTopButton.tsx b/banquise-website/components/ui/ScrollToTopButton.tsx index 0d34d74..9d7f907 100644 --- a/banquise-website/components/ui/ScrollToTopButton.tsx +++ b/banquise-website/components/ui/ScrollToTopButton.tsx @@ -1,9 +1,11 @@ import React from 'react'; import { useScrollEffects } from '@/lib/hooks/useScrollEffects'; +import { useTranslation } from '@/lib/hooks/useTranslation'; import { ArrowUp } from 'lucide-react'; export const ScrollToTopButton: React.FC = () => { const { isVisible, scrollToTop } = useScrollEffects(); + const { t } = useTranslation(); return (