diff --git a/src/App.tsx b/src/App.tsx index 21d14a1..151cb9b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,5 @@ import { useState, useEffect } from 'react'; +import { LanguageProvider } from './contexts/LanguageContext'; import Header from './components/Header'; import Hero from './components/Hero'; import About from './components/About'; @@ -31,17 +32,19 @@ function App() { }; return ( -
-
-
- - - - - - -
-
+ +
+
+
+ + + + + + +
+
+
); } diff --git a/src/components/About.tsx b/src/components/About.tsx index 35448ef..6276928 100644 --- a/src/components/About.tsx +++ b/src/components/About.tsx @@ -1,12 +1,15 @@ import { motion } from 'framer-motion'; import { User, Heart, Target, Coffee } from 'lucide-react'; +import { useLanguage } from '../contexts/LanguageContext'; const About = () => { + const { t } = useLanguage(); + const stats = [ - { icon: , value: "3ème", label: "Année d'études" }, - { icon: , value: "100%", label: "Passion" }, - { icon: , value: "∞", label: "Objectifs" }, - { icon: , value: "☕", label: "Fuel quotidien" } + { icon: , value: t('about.stats.year'), label: t('about.stats.yearLabel') }, + { icon: , value: t('about.stats.passion'), label: t('about.stats.passionLabel') }, + { icon: , value: t('about.stats.goals'), label: t('about.stats.goalsLabel') }, + { icon: , value: t('about.stats.fuel'), label: t('about.stats.fuelLabel') } ]; const containerVariants = { @@ -42,9 +45,9 @@ const About = () => { transition={{ duration: 0.8 }} viewport={{ once: true }} > -

À propos de moi

+

{t('about.title')}

- Découvrez qui je suis et ce qui me passionne + {t('about.subtitle')}

@@ -57,32 +60,23 @@ const About = () => { viewport={{ once: true }} > -

Mon parcours

+

{t('about.journey.title')}

- Actuellement en 3ème année de Technologies de l'Informatique à la - HELHa de Tournai, je me passionne pour le développement d'applications et les - nouvelles technologies. Mon parcours m'a permis d'acquérir une solide base - technique et une approche méthodique du développement. + {t('about.journey.content')}

-

Ma passion

+

{t('about.passion.title')}

- Ce qui m'anime le plus, c'est la création de solutions innovantes qui résolvent - des problèmes réels. J'aime particulièrement le développement mobile avec - Flutter et le développement web moderne avec - React et TypeScript. + {t('about.passion.content')}

-

Mes objectifs

+

{t('about.goals.title')}

- Je cherche constamment à améliorer mes compétences et à rester à jour avec - les dernières tendances technologiques. Mon objectif est de devenir un - développeur full-stack polyvalent et de contribuer à des projets qui ont - un impact positif. + {t('about.goals.content')}

@@ -123,13 +117,11 @@ const About = () => { viewport={{ once: true }} >
-

En quelques mots

+

{t('about.quote.title')}

- "La technologie n'est rien. Ce qui est important, c'est d'avoir la foi en les gens, - qu'ils soient fondamentalement bons et intelligents, et si vous leur donnez des outils, - ils feront des choses merveilleuses avec." + "{t('about.quote.content')}"

- - Steve Jobs + - {t('about.quote.author')}
diff --git a/src/components/Contact.tsx b/src/components/Contact.tsx index 0e5102c..237dc83 100644 --- a/src/components/Contact.tsx +++ b/src/components/Contact.tsx @@ -3,8 +3,10 @@ import { motion } from 'framer-motion'; import { Mail, Phone, MapPin, Send, Github, Linkedin, MessageCircle, CheckCircle, AlertCircle } from 'lucide-react'; import { sendContactEmail } from '../services/emailService'; import type { ContactFormData } from '../services/emailService'; +import { useLanguage } from '../contexts/LanguageContext'; const Contact = () => { + const { t } = useLanguage(); const [formData, setFormData] = useState({ name: '', email: '', @@ -93,7 +95,7 @@ const Contact = () => { { icon: , name: "LinkedIn", - url: "https://linkedin.com/in/dayronvanleemput", // Remplacez par votre profil + url: "https://www.linkedin.com/in/dayron-van-leemput-992a94398", // Remplacez par votre profil color: "#0077B5" } ]; @@ -131,9 +133,9 @@ const Contact = () => { transition={{ duration: 0.8 }} viewport={{ once: true }} > -

Contactez-moi

+

{t('contact.title')}

- Une question, un projet ou simplement envie d'échanger ? N'hésitez pas à me contacter ! + {t('contact.subtitle')}

@@ -149,12 +151,10 @@ const Contact = () => {

- Restons en contact + {t('contact.stayInTouch')}

- Je suis toujours intéressé par de nouveaux projets, des collaborations - ou simplement des discussions autour de la technologie. N'hésitez pas - à me contacter ! + {t('contact.intro')}

@@ -189,7 +189,7 @@ const Contact = () => {
-

Retrouvez-moi aussi sur :

+

{t('contact.findMeOn')}

{socialLinks.map((social, index) => ( { {/* Formulaire de contact */} -

Envoyez-moi un message

+

{t('contact.sendMessage')}

{isSubmitted && ( { exit={{ opacity: 0, scale: 0.8 }} > - Message envoyé avec succès ! Je vous répondrai bientôt. + {t('contact.success')} )} @@ -258,7 +258,7 @@ const Contact = () => { transition={{ duration: 0.5, delay: 0.1 }} viewport={{ once: true }} > - + { value={formData.name} onChange={handleChange} required - placeholder="Votre nom" + placeholder={t('contact.form.name')} />
@@ -277,7 +277,7 @@ const Contact = () => { transition={{ duration: 0.5, delay: 0.2 }} viewport={{ once: true }} > - + { transition={{ duration: 0.5, delay: 0.3 }} viewport={{ once: true }} > - + { value={formData.subject} onChange={handleChange} required - placeholder="Objet de votre message" + placeholder={t('contact.form.subject')} /> @@ -316,7 +316,7 @@ const Contact = () => { transition={{ duration: 0.5, delay: 0.4 }} viewport={{ once: true }} > - +