App.js

import React from 'react';
import {Route, Routes} from 'react-router-dom';
import Home from './pages/Home';
import Experience from './pages/Experience';
import Projects from './pages/Projects';
import Header from './components/ui/Header';
import Footer from './components/ui/Footer';
import translationEN from "./locales/en/translation.json";
import translationIT from "./locales/it/translation.json";
import {initReactI18next} from "react-i18next";
import i18n from "i18next";
import CookieBanner from "./pages/CookieBanner";
import Privacy from "./pages/Privacy";
import CookiePolicy from "./pages/CookiePolicy";
import Courses from "./pages/Courses";
import Trading from "./pages/Trading";
import Testimonials from "./pages/Testimonials";

const resources = {
    en: {
        translation: translationEN,
    },
    it: {
        translation: translationIT,
    }
};

i18n.use(initReactI18next).init({
    resources,
    lng: "en",
    fallbackLng: "en",
    interpolation: {
        escapeValue: false,
    }
}).catch(error => {
    console.error('Failed to init i18n:', error);
});

/**
 * @file Entry point of the application.
 * @description This file initializes the React application and mounts it to the DOM.
 */
export default function App() {
    return (
        <div
            className="min-h-screen flex flex-col bg-gray-100 text-gray-900 dark:bg-gray-900 dark:text-white transition-colors duration-300">
            <Header/>
            <main className="flex-grow">
                <Routes>
                    <Route path="/" element={<Home/>}/>
                    <Route path="/experience" element={<Experience/>}/>
                    <Route path="/projects" element={<Projects/>}/>
                    <Route path="/courses" element={<Courses/>}/>
                    <Route path="/trading" element={<Trading/>}/>
                    <Route path="/testimonials" element={<Testimonials/>}/>
                    <Route path="/privacy" element={<Privacy/>}/>
                    <Route path="/cookie-policy" element={<CookiePolicy/>}/>
                </Routes>
            </main>
            <Footer/>
            <CookieBanner/>
        </div>
    );
}