{
  "common": {
    "brand": "Xpeditis",
    "save": "Enregistrer",
    "cancel": "Annuler",
    "confirm": "Confirmer",
    "close": "Fermer",
    "delete": "Supprimer",
    "edit": "Modifier",
    "create": "Créer",
    "search": "Rechercher",
    "filter": "Filtrer",
    "loading": "Chargement…",
    "submitting": "Envoi…",
    "next": "Suivant",
    "previous": "Précédent",
    "back": "Retour",
    "yes": "Oui",
    "no": "Non",
    "optional": "(optionnel)",
    "required": "*",
    "view": "Voir",
    "viewAll": "Voir tout",
    "seeMore": "Voir plus",
    "discover": "Découvrir",
    "tryNow": "Essayer maintenant",
    "continue": "Continuer",
    "submit": "Envoyer"
  },
  "language": {
    "label": "Langue",
    "fr": "Français",
    "en": "English",
    "switchTo": "Passer en {lang}"
  },
  "metadata": {
    "home": {
      "title": "Xpeditis — Réservation de fret maritime",
      "description": "Recherchez, comparez et réservez votre fret maritime en temps réel."
    }
  },
  "navigation": {
    "home": "Accueil",
    "dashboard": "Tableau de bord",
    "bookings": "Réservations",
    "rates": "Tarifs",
    "settings": "Paramètres",
    "login": "Connexion",
    "register": "S'inscrire",
    "logout": "Déconnexion",
    "about": "À propos",
    "pricing": "Tarifs",
    "contact": "Contact",
    "features": "Fonctionnalités",
    "blog": "Blog",
    "company": "Entreprise",
    "docsApi": "Docs API"
  },
  "validation": {
    "required": "Ce champ est obligatoire",
    "email": "Adresse email invalide",
    "minLength": "Doit contenir au moins {min} caractères",
    "maxLength": "Doit contenir au plus {max} caractères",
    "pattern": "Format invalide",
    "passwordComplexity": "Le mot de passe doit contenir majuscule, minuscule, chiffre et caractère spécial",
    "passwordsDoNotMatch": "Les mots de passe ne correspondent pas",
    "siren": "Le SIREN doit contenir 9 chiffres",
    "siret": "Le SIRET doit contenir 14 chiffres"
  },
  "errors": {
    "generic": "Une erreur s'est produite. Veuillez réessayer.",
    "network": "Problème de connexion. Vérifiez votre réseau.",
    "unauthorized": "Vous devez être connecté pour accéder à cette page.",
    "forbidden": "Vous n'avez pas les permissions requises.",
    "notFound": "Page non trouvée.",
    "serverError": "Erreur serveur. Notre équipe a été notifiée."
  },
  "header": {
    "mobileMenu": {
      "open": "Ouvrir le menu",
      "close": "Fermer le menu"
    },
    "company": {
      "aboutDescription": "Notre histoire et mission",
      "blogDescription": "Actualités et insights"
    },
    "cta": {
      "signIn": "Connexion",
      "startFree": "Commencer Gratuitement",
      "dashboard": "Tableau de bord"
    }
  },
  "footer": {
    "tagline": "Xpeditis est la plateforme B2B leader pour le fret maritime en Europe. Nous connectons les transitaires avec les plus grandes compagnies maritimes mondiales.",
    "products": {
      "title": "Produits",
      "features": "Fonctionnalités",
      "tools": "Outils & Calculateurs",
      "pricing": "Tarifs"
    },
    "company": {
      "title": "Entreprise",
      "about": "À propos",
      "contact": "Contact",
      "blog": "Blog"
    },
    "legal": {
      "title": "Légal",
      "privacy": "Politique de confidentialité",
      "terms": "Conditions générales",
      "cookies": "Politique de cookies",
      "compliance": "Conformité RGPD"
    },
    "copyright": "© {year} Xpeditis SAS. Tous droits réservés.",
    "location": "Paris, France",
    "countries": "50+ Pays",
    "social": {
      "linkedin": "LinkedIn",
      "twitter": "Twitter"
    }
  },
  "landing": {
    "hero": {
      "badge": "Plateforme B2B de Fret Maritime #1 en Europe",
      "titleLine1": "Réservez votre fret",
      "titleLine2": "en quelques clics",
      "subtitle": "Comparez les tarifs de 50+ compagnies maritimes, réservez en ligne et suivez vos envois en temps réel.",
      "ctaAuthenticated": "Accéder au tableau de bord",
      "ctaRegister": "Créer un compte gratuit",
      "ctaDemo": "Voir la démo"
    },
    "stats": {
      "carriers": "Compagnies Maritimes",
      "ports": "Ports Mondiaux",
      "responseTime": "Temps de Réponse",
      "availability": "Disponibilité"
    },
    "features": {
      "title": "Pourquoi choisir Xpeditis ?",
      "subtitle": "Une plateforme complète pour gérer tous vos besoins en fret maritime",
      "dashboard": {
        "title": "Tableau de bord",
        "description": "Suivez tous vos KPIs en temps réel : bookings, volumes, revenus et alertes personnalisées."
      },
      "bookings": {
        "title": "Gestion des Réservations",
        "description": "Créez, gérez et suivez vos réservations maritimes LCL/FCL avec un historique complet."
      },
      "documents": {
        "title": "Documents Maritimes",
        "description": "Centralisez tous vos documents : B/L, factures, certificats et documents douaniers."
      },
      "tracking": {
        "title": "Suivi des expéditions",
        "description": "Suivez vos conteneurs en temps réel auprès de 10+ transporteurs majeurs (Maersk, MSC, CMA CGM...)."
      },
      "wiki": {
        "title": "Wiki Maritime",
        "description": "Base de connaissances complète : Incoterms, documents, procédures douanières et plus encore."
      },
      "notifications": {
        "title": "Notifications Temps Réel",
        "description": "Restez informé avec des alertes instantanées sur vos bookings, documents et mises à jour."
      }
    },
    "partners": {
      "title": "En partenariat avec les plus grandes compagnies maritimes",
      "subtitle": "Accédez aux tarifs de 50+ transporteurs mondiaux"
    },
    "pricing": {
      "badge": "Tarifs",
      "title": "Des plans adaptés à votre activité",
      "subtitle": "De l'accès découverte au partenariat sur mesure — évoluez à tout moment.",
      "monthly": "Mensuel",
      "yearly": "Annuel",
      "yearlySaving": "1 mois offert",
      "custom": "Sur mesure",
      "customSubtitle": "Tarification personnalisée",
      "free": "Gratuit",
      "freeSubtitle": "Pour toujours",
      "perMonth": "/mois",
      "billedYearly": "Facturé {price}€/an",
      "saveWithYearly": "Économisez 1 mois avec l'annuel",
      "commission": "Commission {rate}",
      "noCommitment": "Sans engagement · Résiliable à tout moment",
      "questions": "Des questions ?",
      "contactSales": "Contactez notre équipe commerciale",
      "popularBadge": "Populaire",
      "customBadge": "Sur mesure",
      "plans": {
        "bronze": {
          "name": "Bronze",
          "description": "Pour découvrir la plateforme",
          "users": "1 utilisateur",
          "shipments": "12 expéditions / an",
          "support": "Aucun support",
          "cta": "Commencer gratuitement"
        },
        "silver": {
          "name": "Silver",
          "description": "Pour les transitaires en croissance",
          "users": "Jusqu'à 5 utilisateurs",
          "shipments": "Expéditions illimitées",
          "support": "Support par email",
          "cta": "Commencer"
        },
        "gold": {
          "name": "Gold",
          "description": "Pour les équipes exigeantes",
          "users": "Jusqu'à 20 utilisateurs",
          "shipments": "Expéditions illimitées",
          "support": "Assistance commerciale directe",
          "cta": "Commencer"
        },
        "platinium": {
          "name": "Platinium",
          "description": "Pour les grandes entreprises",
          "users": "Utilisateurs illimités",
          "shipments": "Expéditions illimitées",
          "support": "Key Account Manager dédié",
          "cta": "Nous contacter"
        }
      },
      "features": {
        "lclBooking": "Réservations maritimes LCL",
        "tracking": "Track & Trace conteneurs",
        "dashboard": "Tableau de bord",
        "dashboardAdvanced": "Tableau de bord avancé",
        "wiki": "Wiki maritime",
        "wikiFull": "Wiki maritime complet",
        "userManagement": "Gestion des utilisateurs",
        "csvExport": "Export CSV",
        "apiAccess": "Accès API",
        "apiFull": "Accès API complet",
        "kam": "KAM dédié",
        "kamCustom": "KAM dédié + Interface personnalisée"
      }
    },
    "howItWorks": {
      "title": "Comment ça marche ?",
      "subtitle": "Réservez votre fret maritime en 4 étapes simples",
      "step1": {
        "title": "Recherchez",
        "description": "Entrez vos ports de départ et d'arrivée"
      },
      "step2": {
        "title": "Comparez",
        "description": "Analysez les tarifs de 50+ compagnies"
      },
      "step3": {
        "title": "Réservez",
        "description": "Confirmez votre réservation en un clic"
      },
      "step4": {
        "title": "Suivez",
        "description": "Suivez votre envoi en temps réel"
      },
      "ctaHint": "Inscription gratuite · Aucune carte bancaire requise"
    },
    "testimonials": {
      "title": "Ils nous font confiance",
      "subtitle": "Découvrez les témoignages de nos clients satisfaits",
      "items": [
        {
          "quote": "Xpeditis a révolutionné notre façon de gérer le fret maritime. Les tarifs sont compétitifs et la plateforme est intuitive.",
          "author": "Marie Dubois",
          "role": "Directrice Logistique",
          "company": "LogiFrance"
        },
        {
          "quote": "Le gain de temps est considérable. Ce qui nous prenait des heures se fait maintenant en quelques minutes.",
          "author": "Thomas Martin",
          "role": "Responsable Transport",
          "company": "EuroShipping"
        },
        {
          "quote": "L'interface est claire, les données sont précises et le support client est réactif. Un vrai partenaire de confiance.",
          "author": "Sophie Bernard",
          "role": "CEO",
          "company": "MariTime Solutions"
        }
      ]
    },
    "cta": {
      "title": "Prêt à simplifier votre fret maritime ?",
      "subtitle": "Rejoignez des centaines de transitaires qui font confiance à Xpeditis pour leurs expéditions maritimes.",
      "ctaAuthenticated": "Accéder au tableau de bord",
      "ctaRegister": "Créer un compte gratuit",
      "ctaLogin": "Se connecter",
      "features": {
        "noCard": "Sans carte bancaire",
        "quickSetup": "Configuration en 2 min",
        "secure": "Données sécurisées"
      }
    }
  },
  "dashboard": {
    "nav": {
      "dashboard": "Tableau de bord",
      "bookings": "Réservations",
      "documents": "Documents",
      "tracking": "Suivi",
      "wiki": "Wiki Maritime",
      "organization": "Organisation",
      "apiKeys": "Clés API",
      "users": "Utilisateurs"
    },
    "topbar": {
      "defaultTitle": "Tableau de bord"
    },
    "logout": "Déconnexion",
    "bottomNav": {
      "home": "Accueil",
      "bookings": "Réservations",
      "documents": "Documents",
      "tracking": "Suivi",
      "profile": "Profil"
    },
    "home": {
      "title": "Tableau de Bord",
      "subtitle": "Vue d'ensemble de vos réservations et performances",
      "newBooking": "Nouvelle Réservation",
      "exportFilename": "tableau-de-bord-transporteurs",
      "kpi": {
        "accepted": "Acceptés",
        "rejected": "Refusés",
        "pending": "En Attente",
        "totalWeight": "Poids Total",
        "thisMonth": "+{count} ce mois",
        "acceptanceRate": "{rate}% acceptés"
      },
      "charts": {
        "distribution": {
          "title": "Distribution des Réservations",
          "description": "Répartition par statut",
          "accepted": "Acceptés",
          "rejected": "Refusés",
          "pending": "En Attente"
        },
        "weightByCarrier": {
          "title": "Poids par Transporteur",
          "description": "Top 5 transporteurs par poids (KG)",
          "weight": "Poids"
        }
      },
      "performance": {
        "acceptanceRate": "Taux d'Acceptation",
        "totalBookings": "Total Réservations",
        "totalVolume": "Volume Total"
      },
      "topCarriers": {
        "title": "Top Transporteurs",
        "description": "Classement des meilleures compagnies",
        "viewAll": "Voir tout",
        "bookingsCount": "{count} réservations",
        "empty": {
          "title": "Aucune réservation",
          "description": "Créez votre première réservation pour voir vos statistiques",
          "cta": "Créer une réservation"
        }
      },
      "export": {
        "carrier": "Transporteur",
        "totalBookings": "Total Réservations",
        "accepted": "Acceptées",
        "rejected": "Refusées",
        "totalWeight": "Poids Total (KG)",
        "totalVolume": "Volume Total (CBM)",
        "acceptanceRate": "Taux d'acceptation (%)",
        "avgPrice": "Prix moyen ($)"
      }
    },
    "bookingsList": {
      "title": "Réservations",
      "description": "Gérez et suivez vos envois",
      "new": "Nouvelle Réservation",
      "transferBanner": {
        "title": "Virement déclaré",
        "message": "Votre virement a été enregistré. Un administrateur va vérifier la réception et activer votre booking. Vous serez notifié dès la validation."
      },
      "exportFilename": "reservations",
      "export": {
        "id": "ID",
        "pallets": "Palettes",
        "weight": "Poids (kg)",
        "volume": "Volume (CBM)",
        "origin": "Origine",
        "destination": "Destination",
        "carrier": "Transporteur",
        "status": "Statut",
        "createdAt": "Date de création"
      },
      "searchType": {
        "label": "Type de recherche",
        "route": "Route (Origine/Destination)",
        "pallets": "Palettes/Colis",
        "weight": "Poids (kg)",
        "status": "Statut",
        "date": "Date",
        "quote": "N° Devis"
      },
      "searchPlaceholder": {
        "route": "Rechercher par ville (origine ou destination)...",
        "pallets": "Rechercher par nombre de palettes...",
        "weight": "Rechercher par poids en kg...",
        "status": "Rechercher par statut...",
        "date": "Rechercher par date (JJ/MM/AAAA)...",
        "quote": "Rechercher par numéro de devis...",
        "default": "Rechercher..."
      },
      "statusFilter": {
        "label": "Statut",
        "all": "Tous les statuts"
      },
      "status": {
        "pending": "En attente",
        "accepted": "Accepté",
        "rejected": "Refusé"
      },
      "loading": "Chargement des réservations...",
      "search": "Rechercher",
      "columns": {
        "palletsPackages": "Palettes/Colis",
        "weight": "Poids",
        "route": "Route",
        "status": "Statut",
        "date": "Date",
        "quoteNumber": "N° Devis",
        "bookingNumber": "N° Booking",
        "actions": "Actions"
      },
      "actions": {
        "view": "Voir",
        "pay": "Payer"
      },
      "detail": {
        "title": "Réservation",
        "route": "Route",
        "date": "Date de création",
        "cargo": "Marchandise",
        "weight": "Poids / Volume",
        "pickupDate": "Date d'enlèvement souhaitée",
        "price": "Prix",
        "pendingPaymentNotice": "Cette réservation est en attente du paiement de la commission. Cliquez ci-dessous pour finaliser le paiement.",
        "payNow": "Finaliser le paiement",
        "newBooking": "Nouvelle réservation",
        "close": "Fermer"
      },
      "mobile": {
        "pallets": "Palettes",
        "weight": "Poids",
        "date": "Date",
        "ref": "Réf: #{id}",
        "booking": "Booking: {number}"
      },
      "units": {
        "palletsCount": "{count, plural, one {# palette} other {# palettes}}",
        "containersCount": "{count, plural, one {# conteneur} other {# conteneurs}}",
        "palletsShort": "{count} pal.",
        "containersShort": "{count} cont.",
        "kg": "{value} kg",
        "cbm": "{value} CBM"
      },
      "empty": {
        "title": "Aucune réservation trouvée",
        "hasFilters": "Essayez d'ajuster vos filtres",
        "noBookings": "Commencez par créer votre première réservation"
      },
      "pagination": {
        "previous": "Précédent",
        "next": "Suivant",
        "showing": "Affichage de <b>{start}</b> à <b>{end}</b> sur <b>{total}</b> {total, plural, one {résultat} other {résultats}}"
      }
    },
    "rateSearch": {
      "title": "Recherche Avancée de Tarifs",
      "subtitle": "Formulaire complet avec toutes les options de transport",
      "mapLoading": "Chargement de la carte...",
      "step1": {
        "title": "1. Informations Générales",
        "originLabel": "Port d'origine *",
        "destinationLabel": "Port de destination *",
        "selected": "✓ Sélectionné",
        "originPlaceholder": "Rechercher un port d'origine...",
        "destinationPlaceholder": "Rechercher une destination...",
        "destinationDisabled": "Sélectionnez d'abord un port d'origine",
        "availableDestinations": "{count, plural, one {# destination disponible} other {# destinations disponibles}} depuis {port}",
        "moreResults": "+{count} autres résultats. Affinez votre recherche.",
        "noOrigin": "Aucun port d'origine trouvé pour « {query} »",
        "noDestination": "Aucune destination trouvée pour « {query} »",
        "routeTitle": "Route maritime : {origin} → {destination}",
        "routeDescription": "Distance approximative et visualisation de la route"
      },
      "step2": {
        "title": "2. Conditionnement",
        "addPackage": "+ Ajouter un colis",
        "packageNumber": "Colis #{number}",
        "remove": "Supprimer",
        "type": "Type",
        "quantity": "Quantité",
        "length": "L (cm)",
        "width": "l (cm)",
        "height": "H (cm)",
        "weight": "Poids (kg)",
        "stackable": "Gerbable",
        "packageTypes": {
          "caisse": "Caisse",
          "colis": "Colis",
          "palette": "Palette",
          "autre": "Autre"
        },
        "summary": {
          "title": "Récapitulatif",
          "volume": "Volume total : {value} m³",
          "weight": "Poids total : {value} kg",
          "pallets": "Palettes : {value}"
        }
      },
      "step3": {
        "title": "3. Options & Services",
        "customs": {
          "title": "Douane Import / Export",
          "eurDocument": "EUR 1",
          "t1Document": "T1",
          "customsStop": "Stop douane",
          "exportAssistance": "Assistance export"
        },
        "goods": {
          "title": "Marchandise",
          "dangerous": "Marchandise Dangereuse",
          "regulated": "Produits règlementés"
        },
        "handling": {
          "title": "Manutention particulière",
          "special": "Manutention spéciale",
          "tailgate": "Hayon",
          "straps": "Sangles",
          "thermalCover": "Couverture thermique"
        },
        "other": {
          "title": "Autres options",
          "appointment": "Rendez-vous livraison",
          "insurance": "Assurance"
        }
      },
      "navigation": {
        "previous": "Précédent",
        "next": "Suivant",
        "search": "Rechercher les tarifs"
      },
      "results": {
        "loadingTitle": "Recherche des meilleurs tarifs en cours...",
        "backToSearch": "← Retour à la recherche",
        "errorTitle": "Erreur",
        "errorGeneric": "Une erreur est survenue lors de la recherche",
        "noResultsTitle": "Aucun résultat trouvé",
        "noResultsMessage": "Aucun tarif ne correspond à votre recherche pour le trajet {origin} → {destination}",
        "suggestions": "Suggestions :",
        "suggestionPorts": "• Ports disponibles : NLRTM, DEHAM, FRLEH, BEGNE (origine) → USNYC, USLAX, CNSHG, SGSIN (destination)",
        "suggestionVolume": "• Volume : Essayez entre 1 et 200 CBM",
        "suggestionWeight": "• Poids : Essayez entre 100 et 30000 kg",
        "modifySearch": "Modifier la recherche",
        "resultsTitle": "Résultats de recherche",
        "summary": "{volume} CBM • {weight} kg",
        "summaryWithPallets": "{volume} CBM • {weight} kg • {count, plural, one {# palette} other {# palettes}}",
        "ratesFound": "Tarifs trouvés",
        "bestChoices": "Meilleurs choix pour votre recherche",
        "options": {
          "economic": "Économique",
          "standard": "Standard",
          "fast": "Rapide",
          "badgeCheapest": "Le moins cher",
          "badgeBalanced": "Équilibré",
          "badgeFastest": "Le plus rapide"
        },
        "totalPrice": "Prix total",
        "carrier": "Transporteur :",
        "transit": "Transit :",
        "transitDays": "{days} jours",
        "type": "Type :",
        "select": "Sélectionner cette option",
        "allResults": "Tous les tarifs disponibles ({count})",
        "priceBreakdown": {
          "base": "Prix de base",
          "volume": "Frais volume",
          "weight": "Frais poids",
          "transit": "Délai transit"
        },
        "validUntil": "✓ Valide jusqu'au {date}",
        "surcharges": "Surcharges applicables",
        "selectShort": "Sélectionner"
      }
    },
    "notificationsPage": {
      "title": "Notifications",
      "totalLabel": "{count, plural, one {# notification au total} other {# notifications au total}}",
      "unreadSuffix": " • {count, plural, one {# non lue} other {# non lues}}",
      "markAllRead": "Tout marquer comme lu",
      "filter": {
        "label": "Filtrer :",
        "all": "Toutes",
        "unread": "Non lues",
        "read": "Lues"
      },
      "loading": "Chargement des notifications...",
      "empty": {
        "title": "Aucune notification",
        "upToDate": "Vous êtes à jour !",
        "none": "Aucune notification à afficher"
      },
      "new": "NOUVEAU",
      "deleteTitle": "Supprimer la notification",
      "deleteConfirm": "Êtes-vous sûr de vouloir supprimer cette notification ?",
      "viewDetails": "Voir les détails",
      "priority": {
        "urgent": "URGENT",
        "high": "ÉLEVÉE",
        "medium": "MOYENNE",
        "low": "FAIBLE"
      },
      "time": {
        "now": "À l'instant",
        "minutes": "Il y a {count}min",
        "hours": "Il y a {count}h",
        "days": "Il y a {count}j"
      },
      "pagination": {
        "info": "Page <b>{current}</b> sur <b>{total}</b> • <b>{items}</b> {items, plural, one {notification} other {notifications}} au total",
        "previous": "Précédent",
        "next": "Suivant"
      }
    },
    "bookingDetail": {
      "back": "← Retour aux réservations",
      "notFound": "Réservation introuvable",
      "createdOn": "Créée le {date}",
      "downloadPdf": "Télécharger le PDF",
      "pdfNotImplemented": "Le téléchargement PDF n'est pas encore disponible",
      "status": {
        "draft": "Brouillon",
        "pending": "En attente",
        "confirmed": "Confirmée",
        "in_transit": "En transit",
        "delivered": "Livrée",
        "cancelled": "Annulée"
      },
      "cargo": {
        "title": "Détails de la cargaison",
        "description": "Description",
        "specialInstructions": "Instructions spéciales"
      },
      "containers": {
        "title": "Conteneurs ({count})",
        "type": "Type",
        "number": "Numéro du conteneur",
        "seal": "Numéro de plomb",
        "vgm": "VGM (kg)"
      },
      "shipper": {
        "title": "Expéditeur",
        "name": "Nom",
        "contact": "Contact",
        "email": "Email",
        "phone": "Téléphone"
      },
      "consignee": {
        "title": "Destinataire",
        "name": "Nom",
        "contact": "Contact",
        "email": "Email",
        "phone": "Téléphone"
      },
      "timeline": {
        "title": "Chronologie",
        "created": "Réservation créée"
      },
      "info": {
        "title": "Informations",
        "bookingId": "ID de réservation",
        "lastUpdated": "Dernière mise à jour"
      }
    },
    "profile": {
      "loading": "Chargement du profil...",
      "loadError": "Impossible de charger le profil",
      "retry": "Réessayer",
      "header": {
        "title": "Mon Profil",
        "subtitle": "Gérez vos paramètres de compte et préférences"
      },
      "active": "Actif",
      "tabs": {
        "profile": "Informations personnelles",
        "password": "Modifier le mot de passe"
      },
      "profileForm": {
        "firstName": "Prénom",
        "lastName": "Nom",
        "email": "Adresse email",
        "emailHelp": "L'adresse email ne peut pas être modifiée",
        "save": "Enregistrer",
        "saving": "Enregistrement...",
        "successUpdate": "Profil mis à jour avec succès !",
        "errorUpdate": "Échec de la mise à jour du profil"
      },
      "passwordForm": {
        "current": "Mot de passe actuel",
        "new": "Nouveau mot de passe",
        "confirm": "Confirmer le nouveau mot de passe",
        "newHint": "Au moins 12 caractères avec majuscule, minuscule, chiffre et caractère spécial",
        "submit": "Mettre à jour",
        "submitting": "Mise à jour...",
        "successUpdate": "Mot de passe mis à jour avec succès !",
        "errorUpdate": "Échec de la mise à jour du mot de passe",
        "errors": {
          "currentRequired": "Le mot de passe actuel est requis",
          "newMin": "Le mot de passe doit contenir au moins 12 caractères",
          "newComplexity": "Le mot de passe doit contenir une majuscule, une minuscule, un chiffre et un caractère spécial",
          "confirmRequired": "Veuillez confirmer votre mot de passe",
          "mismatch": "Les mots de passe ne correspondent pas"
        },
        "fieldErrors": {
          "firstNameMin": "Le prénom doit contenir au moins 2 caractères",
          "lastNameMin": "Le nom doit contenir au moins 2 caractères",
          "emailInvalid": "Adresse email invalide"
        }
      }
    },
    "organizationSettings": {
      "loading": "Chargement...",
      "loadError": "Impossible de charger l'organisation",
      "errorTitle": "Erreur",
      "header": {
        "title": "Paramètres de l'organisation",
        "subtitle": "Gérez les informations de votre organisation"
      },
      "saveSuccess": "Informations sauvegardées avec succès",
      "loadFailed": "Erreur lors du chargement",
      "saveFailed": "Erreur lors de la sauvegarde",
      "readOnlyWarning": "Mode lecture seule - Seuls les administrateurs et managers peuvent modifier l'organisation",
      "tabs": {
        "information": "Informations",
        "address": "Adresse",
        "subscription": "Abonnement",
        "licenses": "Licences"
      },
      "information": {
        "name": "Nom de la société",
        "namePlaceholder": "Xpeditis",
        "siren": "SIREN",
        "sirenHint": "Système d'Identification du Répertoire des Entreprises",
        "sirenDigits": "9 chiffres",
        "sirenPlaceholder": "123 456 789",
        "eori": "Numéro EORI",
        "eoriHint": "Economic Operators Registration and Identification",
        "eoriHelp": "Code pays (2 lettres) + numéro unique (max 15 caractères)",
        "eoriPlaceholder": "FR123456789",
        "phone": "Téléphone",
        "phonePlaceholder": "+33 6 80 18 28 12",
        "email": "Email",
        "emailPlaceholder": "contact@xpeditis.com"
      },
      "address": {
        "street": "Rue",
        "streetPlaceholder": "123 Rue de la Paix",
        "postalCode": "Code postal",
        "postalCodePlaceholder": "75001",
        "city": "Ville",
        "cityPlaceholder": "Paris",
        "country": "Pays",
        "countries": {
          "FR": "France",
          "BE": "Belgique",
          "DE": "Allemagne",
          "ES": "Espagne",
          "IT": "Italie",
          "NL": "Pays-Bas",
          "GB": "Royaume-Uni",
          "US": "États-Unis",
          "CN": "Chine"
        }
      },
      "actions": {
        "cancel": "Annuler",
        "save": "Enregistrer",
        "saving": "Enregistrement..."
      }
    },
    "apiKeys": {
      "title": "Clés API",
      "description": "Gérez les clés d'accès programmatique à l'API Xpeditis.",
      "newKey": "Nouvelle clé",
      "infoTitle": "Comment utiliser vos clés API",
      "infoBody": "Ajoutez l'en-tête {code} à chaque requête HTTP. {link}",
      "viewDocs": "Voir la documentation",
      "loading": "Chargement...",
      "noKeys": "Aucune clé API pour le moment.",
      "createFirst": "Créer votre première clé",
      "table": {
        "name": "Nom / Préfixe",
        "lastUsed": "Dernière utilisation",
        "expiry": "Expiration",
        "status": "Statut"
      },
      "status": {
        "revoked": "Révoquée",
        "expired": "Expirée",
        "active": "Active"
      },
      "revoke": "Révoquer cette clé",
      "quota": "{active} / {max} clés actives utilisées",
      "copy": {
        "copied": "Copié",
        "copy": "Copier"
      },
      "createModal": {
        "title": "Nouvelle clé API",
        "name": "Nom de la clé",
        "namePlaceholder": "ex: Intégration ERP Production",
        "nameCount": "{count}/100 caractères",
        "expiry": "Date d'expiration",
        "optional": "(optionnel)",
        "expiryHint": "Si vide, la clé n'expire jamais.",
        "errorGeneric": "Une erreur est survenue. Veuillez réessayer.",
        "cancel": "Annuler",
        "create": "Créer la clé",
        "creating": "Création..."
      },
      "createdModal": {
        "title": "Clé API créée",
        "warning": "Copiez cette clé maintenant.",
        "warningRest": "Elle ne sera plus jamais affichée après la fermeture de cette fenêtre.",
        "fullKey": "Clé API complète",
        "storeHint": "Stockez-la dans vos variables d'environnement ou un gestionnaire de secrets.",
        "close": "J'ai copié ma clé, fermer"
      },
      "revokeModal": {
        "title": "Révoquer cette clé ?",
        "description": "Cette action est",
        "descriptionEmphasis": "immédiate et irréversible",
        "descriptionRest": ". Toute requête utilisant cette clé sera refusée.",
        "cancel": "Annuler",
        "confirm": "Révoquer"
      },
      "noAccess": {
        "title": "Accès API",
        "description": "L'accès programmatique à l'API Xpeditis est disponible sur les plans {gold} et {platinium} uniquement.",
        "gold": "Gold",
        "platinium": "Platinium",
        "viewPlans": "Voir les plans"
      }
    },
    "usersManagement": {
      "loading": "Chargement des utilisateurs...",
      "header": {
        "title": "Gestion des Utilisateurs",
        "subtitle": "Gérez les membres de l'équipe et leurs permissions"
      },
      "license": {
        "limitTitle": "Limite de licences atteinte",
        "limitMessage": "Votre organisation a utilisé toutes les licences disponibles ({used}/{max}). Mettez à niveau votre abonnement pour inviter plus d'utilisateurs.",
        "upgradeLink": "Mettre à niveau l'abonnement",
        "remaining": "{count, plural, one {# licence restante} other {# licences restantes}} ({used}/{max} utilisées)",
        "manageLink": "Gérer l'abonnement"
      },
      "actions": {
        "invite": "Inviter un utilisateur",
        "inviteShort": "Inviter",
        "upgrade": "Mettre à niveau",
        "upgradeShort": "Upgrade"
      },
      "exportFilename": "utilisateurs",
      "export": {
        "firstName": "Prénom",
        "lastName": "Nom",
        "email": "Email",
        "role": "Rôle",
        "status": "Statut",
        "createdAt": "Date de création"
      },
      "messages": {
        "inviteSuccess": "Invitation envoyée avec succès ! L'utilisateur recevra un email avec un lien d'inscription.",
        "inviteError": "Échec de l'envoi de l'invitation",
        "roleSuccess": "Rôle mis à jour avec succès",
        "roleError": "Échec de la mise à jour du rôle",
        "statusSuccess": "Statut de l'utilisateur mis à jour avec succès",
        "statusError": "Échec de la mise à jour du statut",
        "deleteSuccess": "Utilisateur supprimé avec succès",
        "deleteError": "Échec de la suppression de l'utilisateur",
        "cancelInviteSuccess": "Invitation annulée avec succès",
        "cancelInviteError": "Échec de l'annulation de l'invitation"
      },
      "confirms": {
        "toggleActive": "Êtes-vous sûr de vouloir {action} cet utilisateur ?",
        "toggleActivate": "activer",
        "toggleDeactivate": "désactiver",
        "delete": "Êtes-vous sûr de vouloir supprimer cet utilisateur ? Cette action est irréversible.",
        "cancelInvite": "Annuler l'invitation envoyée à {name} ?"
      },
      "users": {
        "title": "Utilisateurs",
        "membersCount": "{count, plural, one {# membre} other {# membres}}",
        "table": {
          "user": "Utilisateur",
          "email": "Email",
          "role": "Rôle",
          "status": "Statut",
          "createdAt": "Date de création",
          "actions": "Actions"
        },
        "active": "Actif",
        "inactive": "Inactif",
        "empty": {
          "title": "Aucun utilisateur",
          "description": "Commencez par inviter un membre de l'équipe"
        },
        "actions": {
          "activate": "Activer",
          "deactivate": "Désactiver",
          "delete": "Supprimer"
        }
      },
      "invitations": {
        "title": "Invitations en attente",
        "subtitle": "Utilisateurs invités mais n'ayant pas encore créé leur compte — {count, plural, one {# invitation} other {# invitations}}",
        "table": {
          "user": "Utilisateur",
          "email": "Email",
          "role": "Rôle",
          "expires": "Expire le",
          "status": "Statut",
          "actions": "Actions"
        },
        "expired": "Expirée",
        "pending": "En attente",
        "cancel": "Annuler"
      },
      "modal": {
        "title": "Inviter un utilisateur",
        "firstName": "Prénom",
        "lastName": "Nom",
        "email": "Adresse email",
        "role": "Rôle",
        "roles": {
          "USER": "Utilisateur",
          "MANAGER": "Manager",
          "VIEWER": "Lecteur",
          "ADMIN": "Admin"
        },
        "rolesExport": {
          "ADMIN": "Administrateur",
          "MANAGER": "Manager",
          "USER": "Utilisateur",
          "VIEWER": "Lecteur"
        },
        "submit": "Envoyer l'invitation",
        "submitting": "Envoi en cours...",
        "cancel": "Annuler"
      },
      "pagination": {
        "info": "{from}–{to} sur {total}"
      }
    },
    "subscriptionRedirect": {
      "loading": "Redirection..."
    },
    "admin": {
      "bookings": {
        "loading": "Chargement des réservations...",
        "loadError": "Impossible de charger les réservations",
        "deleteError": "Erreur lors de la suppression",
        "validateError": "Erreur lors de la validation du virement",
        "confirmDelete": "Supprimer définitivement cette réservation ?",
        "confirmValidate": "Confirmer la réception du virement et activer ce booking ?",
        "title": "Gestion des réservations",
        "subtitle": "Toutes les réservations de la plateforme",
        "stats": {
          "total": "Total",
          "pendingBankTransfer": "Virements à valider",
          "pendingCarrier": "En attente transporteur",
          "accepted": "Acceptées",
          "rejected": "Rejetées"
        },
        "search": {
          "label": "Recherche",
          "placeholder": "N° booking, transporteur, route, palettes, poids, CBM..."
        },
        "filter": {
          "label": "Statut",
          "all": "Tous les statuts"
        },
        "status": {
          "PENDING_PAYMENT": "Paiement en attente",
          "PENDING_BANK_TRANSFER": "Virement à valider",
          "PENDING": "En attente transporteur",
          "ACCEPTED": "Accepté",
          "REJECTED": "Rejeté",
          "CANCELLED": "Annulé"
        },
        "table": {
          "bookingNumber": "N° Booking",
          "route": "Route",
          "cargo": "Cargo",
          "carrier": "Transporteur",
          "status": "Statut",
          "date": "Date",
          "actions": "Actions",
          "empty": "Aucune réservation trouvée",
          "pallets": "pal."
        },
        "menu": {
          "viewDetails": "Voir les détails",
          "validateTransfer": "Valider virement",
          "delete": "Supprimer"
        },
        "modal": {
          "title": "Détails de la réservation",
          "bookingNumber": "N° Booking",
          "status": "Statut",
          "routeSection": "Route",
          "origin": "Origine",
          "destination": "Destination",
          "cargoSection": "Cargo & Transporteur",
          "carrier": "Transporteur",
          "containerType": "Type conteneur",
          "pallets": "Palettes",
          "weight": "Poids",
          "volume": "Volume",
          "priceSection": "Prix",
          "datesSection": "Dates",
          "createdAt": "Créée le",
          "updatedAt": "Mise à jour",
          "validateButton": "✓ Valider le virement",
          "validating": "Validation...",
          "close": "Fermer",
          "none": "—"
        }
      },
      "csvRates": {
        "title": "Gestion des tarifs CSV",
        "subtitle": "Interface d'administration pour gérer les fichiers CSV de tarifs maritimes",
        "adminBadge": "ADMIN SEULEMENT",
        "cardTitle": "Configurations CSV actives",
        "cardDescription": "Liste de toutes les compagnies avec fichiers CSV configurés",
        "loadError": "Erreur lors du chargement des fichiers",
        "confirmDelete": "Êtes-vous sûr de vouloir supprimer le fichier {filename} ?",
        "deleteSuccess": "Fichier supprimé: {filename}",
        "deleteError": "Erreur: {message}",
        "deleteFailedFallback": "Impossible de supprimer le fichier",
        "empty": "Aucun fichier trouvé. Uploadez un fichier CSV pour commencer.",
        "table": {
          "filename": "Fichier",
          "size": "Taille",
          "rows": "Lignes",
          "uploadedAt": "Date d'upload",
          "email": "Email",
          "actions": "Actions",
          "rowCount": "{count} lignes"
        },
        "infoTitle": "Informations",
        "info": {
          "formatLabel": "Format CSV requis :",
          "formatBody": "Consultez la documentation pour la liste complète des colonnes obligatoires.",
          "sizeLabel": "Taille maximale :",
          "sizeBody": "10 MB par fichier",
          "updateLabel": "Mise à jour :",
          "updateBody": "Uploader un nouveau fichier pour une compagnie existante écrasera l'ancien fichier.",
          "validationLabel": "Validation :",
          "validationBody": "Le système valide automatiquement la structure du CSV lors de l'upload."
        }
      },
      "documents": {
        "title": "Gestion des Documents",
        "subtitle": "Liste de tous les documents des devis CSV",
        "loading": "Chargement des documents...",
        "loadError": "Impossible de charger les documents",
        "deleteError": "Erreur lors de la suppression",
        "confirmDelete": "Supprimer définitivement ce document ?",
        "downloadError": "Erreur lors du téléchargement du document: {message}",
        "unknownError": "Erreur inconnue",
        "stats": {
          "totalDocs": "Total Documents",
          "bookingsWithDocs": "Devis avec Documents",
          "filtered": "Documents Filtrés"
        },
        "filters": {
          "search": "Recherche",
          "searchPlaceholder": "Nom, type, route...",
          "quoteNumber": "Numéro de Devis",
          "quoteNumberPlaceholder": "Ex: #F2CAD5E1",
          "user": "Utilisateur",
          "allUsers": "Tous les utilisateurs"
        },
        "table": {
          "name": "Nom du Document",
          "type": "Type",
          "quoteNumber": "Numéro de Devis",
          "route": "Route",
          "status": "Statut",
          "user": "Utilisateur",
          "actions": "Actions",
          "empty": "Aucun document trouvé"
        },
        "menu": {
          "download": "Télécharger",
          "delete": "Supprimer"
        },
        "pagination": {
          "previous": "Précédent",
          "next": "Suivant",
          "showing": "Affichage de",
          "to": "à",
          "on": "sur",
          "results": "résultats",
          "perPage": "Par page:"
        }
      },
      "logs": {
        "title": "Logs système",
        "subtitle": "Visualisation et export des logs applicatifs en temps réel",
        "refresh": "Actualiser",
        "export": "Exporter",
        "exporting": "Export...",
        "downloadCsv": "Télécharger CSV",
        "downloadJson": "Télécharger JSON",
        "stats": {
          "total": "Total logs",
          "errors": "Erreurs",
          "warnings": "Warnings",
          "info": "Info"
        },
        "filters": {
          "title": "Filtres",
          "service": "Service",
          "level": "Niveau",
          "search": "Recherche",
          "searchPlaceholder": "Texte libre...",
          "start": "Début",
          "end": "Fin",
          "limit": "Limite",
          "apply": "Filtrer",
          "all": "Tous"
        },
        "errorBanner": "Impossible de contacter le log-exporter :",
        "errorHint": "Vérifiez que le backend et le log-exporter sont démarrés.",
        "loading": "Chargement...",
        "entries": "{count, plural, one {# entrée} other {# entrées}}",
        "clickHint": "Cliquer sur une ligne pour les détails",
        "empty": "Aucun log trouvé pour ces filtres",
        "table": {
          "timestamp": "Timestamp",
          "service": "Service",
          "level": "Niveau",
          "context": "Contexte",
          "message": "Message",
          "req": "Req / Status"
        },
        "detail": {
          "timestamp": "Timestamp",
          "requestId": "Request ID",
          "duration": "Durée",
          "fullMessage": "Message complet"
        }
      },
      "organizations": {
        "loading": "Chargement des organisations...",
        "loadError": "Impossible de charger les organisations",
        "createError": "Échec de la création de l'organisation",
        "updateError": "Échec de la mise à jour de l'organisation",
        "siretError": "Erreur lors de la vérification du SIRET",
        "siretApproveError": "Erreur lors de l'approbation",
        "siretRejectError": "Erreur lors du refus",
        "siretInvalid": "SIRET invalide ou introuvable.",
        "siretVerified": "SIRET vérifié avec succès !\nEntreprise: {companyName}\nAdresse: {address}",
        "confirmApprove": "Confirmer l'approbation manuelle du SIRET/SIREN de cette organisation ?",
        "confirmReject": "Confirmer le refus du SIRET/SIREN ? L'organisation ne pourra plus effectuer d'achats.",
        "title": "Gestion des organisations",
        "subtitle": "Gérer toutes les organisations du système",
        "create": "+ Créer une organisation",
        "types": {
          "FREIGHT_FORWARDER": "Commissionnaire de transport",
          "CARRIER": "Transporteur",
          "SHIPPER": "Chargeur"
        },
        "active": "Active",
        "inactive": "Inactive",
        "scac": "SCAC",
        "siren": "SIREN",
        "siret": "SIRET",
        "verified": "Vérifié",
        "notVerified": "Non vérifié",
        "notProvided": "Non renseigné",
        "email": "Email",
        "location": "Localisation",
        "edit": "Modifier",
        "verifying": "...",
        "verifyApi": "Vérifier API",
        "approveSiret": "Approuver SIRET",
        "rejectSiret": "Rejeter SIRET",
        "modal": {
          "createTitle": "Créer une nouvelle organisation",
          "editTitle": "Modifier l'organisation",
          "sectionGeneral": "Informations générales",
          "sectionLegal": "Identifiants légaux",
          "sectionContact": "Contact",
          "sectionAddress": "Adresse",
          "sectionOther": "Autres",
          "name": "Nom de l'organisation",
          "type": "Type",
          "typeReadOnly": "Non modifiable après création",
          "scacLabel": "Code SCAC",
          "scacHint": "4 lettres majuscules (ex. MAEU). Obligatoire pour les transporteurs.",
          "sirenLabel": "SIREN",
          "sirenHint": "9 chiffres — facultatif",
          "siretLabel": "SIRET",
          "siretHint": "14 chiffres — facultatif",
          "siretPlaceholder": "12345678901234",
          "eoriLabel": "EORI",
          "eoriHint": "Numéro EORI européen (ex. FR123456789) — facultatif",
          "contactEmail": "Email de contact",
          "contactPhone": "Téléphone de contact",
          "street": "Rue",
          "city": "Ville",
          "postalCode": "Code postal",
          "state": "État / Région",
          "country": "Pays",
          "countryHint": "Code ISO 2 lettres majuscules (ex. FR, DE, US)",
          "logoUrl": "URL du logo",
          "isActive": "Organisation active",
          "cancel": "Annuler",
          "create": "Créer",
          "update": "Mettre à jour",
          "saving": "Enregistrement..."
        },
        "validation": {
          "required": "Ce champ est obligatoire",
          "nameTooShort": "Le nom doit comporter au moins 2 caractères",
          "scacRequired": "Le code SCAC est obligatoire pour les transporteurs",
          "scacFormat": "Le code SCAC doit comporter exactement 4 lettres majuscules (ex. MAEU)",
          "sirenFormat": "Le SIREN doit comporter exactement 9 chiffres",
          "siretFormat": "Le SIRET doit comporter exactement 14 chiffres",
          "countryFormat": "Le pays doit être un code ISO à 2 lettres majuscules (ex. FR)"
        }
      },
      "users": {
        "loading": "Chargement des utilisateurs...",
        "loadError": "Impossible de charger les données",
        "createError": "Échec de la création de l'utilisateur",
        "updateError": "Échec de la mise à jour de l'utilisateur",
        "deleteError": "Échec de la suppression de l'utilisateur",
        "title": "Gestion des utilisateurs",
        "subtitle": "Gérer tous les utilisateurs du système",
        "create": "+ Créer un utilisateur",
        "table": {
          "user": "Utilisateur",
          "email": "Email",
          "role": "Rôle",
          "organization": "Organisation",
          "status": "Statut",
          "actions": "Actions"
        },
        "active": "Actif",
        "inactive": "Inactif",
        "edit": "Modifier",
        "delete": "Supprimer",
        "roles": {
          "USER": "Utilisateur",
          "MANAGER": "Manager",
          "ADMIN": "Admin",
          "VIEWER": "Lecteur"
        },
        "modal": {
          "createTitle": "Créer un nouvel utilisateur",
          "editTitle": "Modifier l'utilisateur",
          "email": "Email",
          "emailReadOnly": "Email (lecture seule)",
          "firstName": "Prénom",
          "lastName": "Nom",
          "role": "Rôle",
          "organization": "Organisation",
          "selectOrganization": "Sélectionner une organisation",
          "password": "Mot de passe (laisser vide pour génération automatique)",
          "cancel": "Annuler",
          "create": "Créer",
          "update": "Mettre à jour"
        },
        "deleteConfirm": {
          "title": "Confirmer la suppression",
          "message": "Êtes-vous sûr de vouloir supprimer l'utilisateur {firstName} {lastName} ? Cette action est irréversible.",
          "cancel": "Annuler",
          "confirm": "Supprimer"
        }
      }
    },
    "subscription": {
      "currentPlan": "Plan actuel",
      "refresh": "Actualiser",
      "refreshing": "Actualisation...",
      "statusActive": "Actif",
      "cancelAtPeriodEnd": "Annulation prévue",
      "manageBilling": "Gérer la facturation",
      "manageBillingLoading": "Chargement...",
      "licenseUsage": "Utilisation des licences",
      "unlimited": "Illimité",
      "currentPeriod": "Période actuelle : jusqu'au",
      "availablePlans": "Plans disponibles",
      "billingMonthly": "Mensuel",
      "billingYearly": "Annuel",
      "yearlySaving": "-1 mois",
      "perYear": "/an",
      "perMonth": "/mois",
      "customQuote": "Sur devis",
      "maxUsers": "Jusqu'à {count} utilisateurs",
      "unlimitedUsers": "Utilisateurs illimités",
      "currentPlanButton": "Plan actuel",
      "contactUs": "Nous contacter",
      "upgradeButton": "Passer à ce plan",
      "upgradeLoading": "Chargement...",
      "downgrade": "Rétrograder via Facturation",
      "successMessage": "Votre abonnement a été mis à jour avec succès !",
      "updatingMessage": "Mise à jour...",
      "canceledMessage": "Le paiement a été annulé. Votre abonnement n'a pas été modifié.",
      "checkoutError": "Erreur lors de la création de la session de paiement",
      "portalError": "Erreur lors de l'ouverture du portail de facturation",
      "noLicenses": "Aucune licence disponible. Passez à un plan supérieur pour ajouter des utilisateurs.",
      "licensesRemaining": "Plus que {count} licence(s) disponible(s)."
    },
    "wiki": {
      "title": "Wiki Maritime",
      "description": "Base de connaissances sur l'import/export maritime. Cliquez sur un sujet pour en savoir plus.",
      "helpText": "Ces guides sont régulièrement mis à jour avec les dernières réglementations et bonnes pratiques du secteur maritime.",
      "needHelp": "Besoin d'aide ?",
      "topics": {
        "incoterms": {
          "title": "Incoterms 2020",
          "description": "Les règles internationales pour l'interprétation des termes commerciaux"
        },
        "documents": {
          "title": "Documents de Transport",
          "description": "Les documents essentiels pour le transport maritime"
        },
        "containers": {
          "title": "Conteneurs et Types de Cargo",
          "description": "Guide complet des types de conteneurs maritimes"
        },
        "lclFcl": {
          "title": "LCL vs FCL",
          "description": "Différences entre groupage et conteneur complet"
        },
        "customs": {
          "title": "Procédures Douanières",
          "description": "Guide des formalités douanières import/export"
        },
        "insurance": {
          "title": "Assurance Maritime",
          "description": "Protection des marchandises en transit"
        },
        "freight": {
          "title": "Calcul du Fret Maritime",
          "description": "Comment sont calculés les coûts de transport"
        },
        "ports": {
          "title": "Ports et Routes Maritimes",
          "description": "Les principales routes commerciales mondiales"
        },
        "vgm": {
          "title": "VGM (Verified Gross Mass)",
          "description": "Obligation de pesée des conteneurs (SOLAS)"
        },
        "imdg": {
          "title": "Marchandises Dangereuses (IMDG)",
          "description": "Transport de matières dangereuses par mer"
        },
        "letterOfCredit": {
          "title": "Lettre de Crédit (L/C)",
          "description": "Instrument de paiement international sécurisé"
        },
        "transitTime": {
          "title": "Transit Time et Délais",
          "description": "Comprendre les délais en transport maritime"
        }
      }
    },
    "trackTrace": {
      "title": "Suivi des expéditions",
      "description": "Suivez vos expéditions en temps réel. Entrez votre numéro de tracking et sélectionnez le transporteur.",
      "searchCard": {
        "title": "Rechercher une expédition",
        "description": "Entrez votre numéro de conteneur, connaissement (B/L) ou référence de réservation",
        "selectCarrier": "Sélectionnez le transporteur",
        "trackingNumber": "Numéro de tracking",
        "searchButton": "Rechercher",
        "showMap": "Afficher la carte maritime",
        "hideMap": "Masquer la carte maritime"
      },
      "errors": {
        "noTrackingNumber": "Veuillez entrer un numéro de tracking",
        "noCarrier": "Veuillez sélectionner un transporteur"
      },
      "map": {
        "title": "Carte Maritime Mondiale",
        "subtitle": "Position des navires en temps réel",
        "minimize": "Réduire",
        "fullscreen": "Plein écran",
        "loading": "Chargement de la carte...",
        "connecting": "Connexion à MarineTraffic",
        "legend": "Légende",
        "cargo": "Cargos",
        "tankers": "Tankers",
        "passengers": "Passagers",
        "activeVessels": "Navires actifs",
        "worldPorts": "Ports mondiaux",
        "dataSource": "Données fournies par MarineTraffic - Mise à jour en temps réel",
        "openOnSite": "Ouvrir sur MarineTraffic",
        "iframeTitle": "Carte maritime en temps réel"
      },
      "history": {
        "title": "Historique des recherches",
        "clearAll": "Effacer tout",
        "empty": "Aucune recherche récente",
        "emptyHint": "Vos recherches apparaîtront ici"
      },
      "help": {
        "containerNumber": {
          "title": "Numéro de conteneur",
          "description": "Format standard: 4 lettres + 7 chiffres (ex: MSKU1234567). Le préfixe indique généralement le propriétaire du conteneur."
        },
        "billOfLading": {
          "title": "Connaissement (B/L)",
          "description": "Le numéro de connaissement (Bill of Lading) est fourni par le transporteur lors de la confirmation de réservation. Le format varie selon le transporteur."
        },
        "bookingRef": {
          "title": "Référence de réservation",
          "description": "Numéro de réservation attribué par le transporteur lors de la réservation initiale de l'espace sur le navire."
        }
      },
      "infoBox": {
        "title": "Comment fonctionne le suivi ?",
        "description": "Cette fonctionnalité vous redirige vers le site officiel du transporteur pour obtenir les informations de suivi les plus récentes. Les données affichées proviennent directement du système du transporteur."
      },
      "timeAgo": {
        "justNow": "À l'instant",
        "minutesAgo": "Il y a {count}min",
        "hoursAgo": "Il y a {count}h",
        "daysAgo": "Il y a {count}j"
      },
      "carriers": {
        "containerOrBl": "N° conteneur ou B/L",
        "containerBlOrBooking": "N° conteneur, B/L ou réservation",
        "containerOnly": "N° conteneur"
      }
    },
    "userDocuments": {
      "title": "Mes Documents",
      "description": "Gérez tous les documents de vos réservations",
      "loading": "Chargement des documents...",
      "error": "Erreur lors du chargement des documents",
      "stats": {
        "total": "Total Documents",
        "withDocuments": "Réservations avec Documents",
        "filtered": "Documents Filtrés"
      },
      "filters": {
        "search": "Recherche",
        "searchPlaceholder": "Nom, type, route, transporteur...",
        "quoteNumber": "Numéro de Devis",
        "status": "Statut",
        "allStatuses": "Tous les statuts"
      },
      "table": {
        "documentName": "Nom du Document",
        "type": "Type",
        "quoteNumber": "N° de Devis",
        "route": "Route",
        "carrier": "Transporteur",
        "status": "Statut",
        "actions": "Actions"
      },
      "statuses": {
        "PENDING_PAYMENT": "Paiement en attente",
        "PENDING_BANK_TRANSFER": "Virement en attente",
        "PENDING": "En attente",
        "ACCEPTED": "Accepté",
        "REJECTED": "Refusé",
        "CANCELLED": "Annulé"
      },
      "empty": {
        "noDocuments": "Aucun document trouvé. Ajoutez des documents à vos réservations.",
        "noMatch": "Aucun document ne correspond aux filtres sélectionnés."
      },
      "pagination": {
        "previous": "Précédent",
        "next": "Suivant",
        "perPage": "Par page :",
        "showing": "Affichage de {from} à {to} sur {total} résultats"
      },
      "actions": {
        "download": "Télécharger",
        "replace": "Remplacer"
      },
      "export": {
        "fileName": "Nom du fichier",
        "type": "Type",
        "quoteNumber": "N° de Devis",
        "route": "Route",
        "carrier": "Transporteur",
        "status": "Statut",
        "uploadedAt": "Date d'ajout"
      },
      "addDocument": {
        "buttonLabel": "Ajouter un document",
        "modalTitle": "Ajouter un document",
        "selectBooking": "Sélectionner une réservation",
        "selectBookingPlaceholder": "-- Choisir une réservation --",
        "filesToAdd": "Fichiers à ajouter",
        "acceptedFormats": "Formats acceptés: PDF, Word, Excel, Images (max 10 fichiers)",
        "dragOrClick": "Glissez-déposez vos fichiers ici ou cliquez pour sélectionner",
        "dropHere": "Déposez vos fichiers ici",
        "uploading": "Envoi en cours...",
        "add": "Ajouter",
        "cancel": "Annuler",
        "successMessage": "Documents ajoutés avec succès!",
        "errorMessage": "Erreur lors de l'ajout des documents",
        "noBookingError": "Veuillez sélectionner une réservation et au moins un fichier"
      },
      "replaceDocument": {
        "modalTitle": "Remplacer le document",
        "currentDocument": "Document actuel :",
        "booking": "Réservation",
        "newFile": "Nouveau fichier",
        "acceptedFormats": "Formats acceptés: PDF, Word, Excel, Images",
        "dragOrClick": "Glissez-déposez votre fichier ici ou cliquez pour sélectionner",
        "dropHere": "Déposez votre fichier ici",
        "replacing": "Remplacement en cours...",
        "replace": "Remplacer",
        "cancel": "Annuler",
        "successMessage": "Document remplacé avec succès!",
        "errorMessage": "Erreur lors du remplacement du document",
        "noFileError": "Veuillez sélectionner un fichier de remplacement"
      },
      "downloadError": "Erreur lors du téléchargement du document"
    },
    "wikiPages": {
      "backToWiki": "Retour au Wiki",
      "responsibleLabel": "Responsable",
      "includesLabel": "Couvert",
      "excludesLabel": "Exclu",
      "mandatoryLabel": "Obligatoire",
      "optionalLabel": "Conditionnel",
      "incoterms": {
        "title": "Incoterms 2020",
        "description": "Les Incoterms (International Commercial Terms) sont des règles publiées par la Chambre de Commerce Internationale (ICC) qui définissent les responsabilités des vendeurs et acheteurs dans les transactions internationales. La version 2020 est entrée en vigueur le 1er janvier 2020.",
        "keyPointsTitle": "Points Clés",
        "keyPoints": [
          "11 incoterms dans la version 2020",
          "Applicables à tous les modes de transport (7 règles) ou maritime uniquement (4 règles)",
          "Définissent le transfert de risque, les coûts, et les obligations documentaires",
          "Ne déterminent pas le transfert de propriété ni les conditions de paiement",
          "Inclusion obligatoire dans le contrat de vente"
        ],
        "categoriesTitle": "Catégories",
        "categorySections": [
          {
            "name": "Départ",
            "description": "Obligations minimales pour le vendeur",
            "terms": ["EXW"]
          },
          {
            "name": "Arrivée",
            "description": "Obligations maximales pour le vendeur",
            "terms": ["DDP"]
          },
          {
            "name": "Maritime uniquement",
            "description": "Pour le transport maritime et voies navigables intérieures",
            "terms": ["FAS", "FOB", "CFR", "CIF"]
          }
        ],
        "tableTitle": "Incoterms 2020 — Récapitulatif",
        "colCode": "Code",
        "colName": "Nom",
        "colDescription": "Description",
        "colRisk": "Transfert de risque",
        "colTransport": "Transport",
        "list": [
          {
            "code": "EXW",
            "name": "Ex Works",
            "description": "Le vendeur met les marchandises à disposition dans ses locaux. Obligations minimales pour le vendeur.",
            "risk": "Locaux du vendeur",
            "transport": "Tous modes"
          },
          {
            "code": "FCA",
            "name": "Free Carrier",
            "description": "Le vendeur livre les marchandises à un transporteur désigné ou à une autre personne nommée par l'acheteur.",
            "risk": "Remise au transporteur",
            "transport": "Tous modes"
          },
          {
            "code": "CPT",
            "name": "Carriage Paid To",
            "description": "Le vendeur paie le fret jusqu'à la destination, mais le risque se transfère au premier transporteur.",
            "risk": "Premier transporteur",
            "transport": "Tous modes"
          },
          {
            "code": "CIP",
            "name": "Carriage and Insurance Paid To",
            "description": "Identique à CPT avec assurance. Exige une couverture ICC-A (améliorée par rapport à 2010).",
            "risk": "Premier transporteur",
            "transport": "Tous modes"
          },
          {
            "code": "DAP",
            "name": "Delivered at Place",
            "description": "Le vendeur livre lorsque les marchandises sont mises à disposition de l'acheteur à la destination nommée.",
            "risk": "À destination",
            "transport": "Tous modes"
          },
          {
            "code": "DPU",
            "name": "Delivered at Place Unloaded",
            "description": "Nouveau en 2020 : remplace DAT. Le vendeur décharge à l'endroit nommé.",
            "risk": "Après déchargement",
            "transport": "Tous modes"
          },
          {
            "code": "DDP",
            "name": "Delivered Duty Paid",
            "description": "Obligation maximale pour le vendeur : livré, droits payés. Risque jusqu'à destination finale.",
            "risk": "Destination finale",
            "transport": "Tous modes"
          },
          {
            "code": "FAS",
            "name": "Free Alongside Ship",
            "description": "Le vendeur livre les marchandises le long du navire nommé. Maritime uniquement.",
            "risk": "Le long du navire",
            "transport": "Maritime uniquement"
          },
          {
            "code": "FOB",
            "name": "Free on Board",
            "description": "Le vendeur livre les marchandises à bord du navire. Le plus courant pour les vracs.",
            "risk": "À bord du navire",
            "transport": "Maritime uniquement"
          },
          {
            "code": "CFR",
            "name": "Cost and Freight",
            "description": "Le vendeur paie le fret jusqu'au port de destination, mais le risque se transfère à bord à l'origine.",
            "risk": "À bord à l'origine",
            "transport": "Maritime uniquement"
          },
          {
            "code": "CIF",
            "name": "Cost Insurance and Freight",
            "description": "Identique à CFR mais avec assurance minimale (ICC-C). Courant dans le commerce international.",
            "risk": "À bord à l'origine",
            "transport": "Maritime uniquement"
          }
        ],
        "diagramTitle": "Diagramme de Transfert de Risque",
        "sellerResponsibility": "Responsabilité du vendeur",
        "buyerResponsibility": "Responsabilité de l'acheteur",
        "tipsTitle": "Conseils Pratiques",
        "tips": [
          "Pour les expéditions FCL maritimes, préférer FCA ou FOB plutôt que EXW",
          "Pour le fret aérien, éviter FOB — utiliser FCA à la place",
          "DDP oblige le vendeur à gérer les douanes dans le pays de l'acheteur — complexe",
          "CIP exige désormais une couverture ICC-A (vs. ICC-C pour CIF)",
          "Toujours préciser le lieu nommé exact après le code incoterm"
        ]
      },
      "assurance": {
        "title": "Assurance Maritime",
        "description": "L'assurance maritime protège les marchandises pendant le transport international. Elle est indispensable pour le commerce international et souvent exigée par les banques pour les lettres de crédit.",
        "iccTitle": "Clauses ICC (Institute Cargo Clauses)",
        "clauses": [
          {
            "name": "ICC A",
            "level": "Tous risques",
            "includes": [
              "Toutes causes accidentelles",
              "Calamités naturelles",
              "Avarie commune",
              "Jet à la mer",
              "Vol",
              "Contamination"
            ],
            "excludes": [
              "Faute intentionnelle",
              "Usure normale",
              "Retard",
              "Guerre (extension nécessaire)",
              "Grèves (extension nécessaire)"
            ]
          },
          {
            "name": "ICC B",
            "level": "Intermédiaire",
            "includes": [
              "Incendie / explosion",
              "Échouement / naufrage",
              "Collision / chavirement",
              "Avarie commune",
              "Séisme / raz-de-marée"
            ],
            "excludes": ["Vol", "Contamination", "Humidité", "Guerre (extension nécessaire)"]
          },
          {
            "name": "ICC C",
            "level": "Basique",
            "includes": [
              "Incendie / explosion",
              "Échouement / naufrage du navire",
              "Collision",
              "Avarie commune"
            ],
            "excludes": [
              "Vol",
              "Avaries particulières",
              "Humidité",
              "Contamination",
              "Guerre (extension nécessaire)"
            ]
          }
        ],
        "extensionsTitle": "Extensions de Garantie",
        "extensions": [
          {
            "name": "Clause guerre",
            "description": "Couvre les pertes dues à la guerre, terrorisme, piraterie"
          },
          {
            "name": "Clause grèves",
            "description": "Couvre les pertes dues aux grèves, émeutes, troubles civils"
          },
          {
            "name": "Clause reefer",
            "description": "Couverture spécifique pour les marchandises sous température contrôlée"
          },
          {
            "name": "Clause pont",
            "description": "Couverture pour marchandises arrimées sur le pont (souvent exclues)"
          },
          {
            "name": "Clause groupage",
            "description": "Spécifique aux expéditions LCL (conteneurs partagés)"
          }
        ],
        "processTitle": "Processus d'Assurance",
        "processSteps": [
          "Demande de devis auprès de l'assureur ou courtier",
          "Vérification de la marchandise et des garanties requises",
          "Émission du certificat d'assurance",
          "Déclaration de l'expédition (si police flottante)",
          "En cas de sinistre : notification immédiate + constat d'avaries"
        ],
        "valueTitle": "Valeur Assurée",
        "valueFormula": "Valeur assurée = (Valeur facture + fret + 10% bénéfice) × 1,1",
        "valueNote": "Les 10% couvrent le bénéfice espéré et la majoration commerciale généralement acceptée"
      },
      "calculFret": {
        "title": "Calcul du Fret",
        "description": "Comprendre la tarification du fret est essentiel pour anticiper tous les coûts. Le fret maritime est composé d'un taux de base plus de nombreuses surcharges qui peuvent significativement augmenter le coût final.",
        "surchargesTitle": "Principales Surcharges",
        "colCode": "Code",
        "colName": "Nom",
        "colDescription": "Description",
        "colVariation": "Variation",
        "surcharges": [
          {
            "code": "BAF",
            "name": "Bunker Adjustment Factor",
            "description": "Ajustement du coût du carburant",
            "variation": "Mensuel, basé sur le prix du pétrole"
          },
          {
            "code": "CAF",
            "name": "Currency Adjustment Factor",
            "description": "Compensation des fluctuations de change",
            "variation": "Par devise et par route"
          },
          {
            "code": "PSS",
            "name": "Peak Season Surcharge",
            "description": "Ajoutée en haute saison (août–oct)",
            "variation": "Saisonnière"
          },
          {
            "code": "GRI",
            "name": "General Rate Increase",
            "description": "Augmentation générale annuelle des taux",
            "variation": "Annoncée trimestriellement"
          },
          {
            "code": "THC",
            "name": "Terminal Handling Charge",
            "description": "Coûts de manutention au terminal portuaire",
            "variation": "Fixe par port"
          },
          {
            "code": "EBS",
            "name": "Emergency Bunker Surcharge",
            "description": "Surcharge temporaire pour hausse du carburant",
            "variation": "Ponctuelle"
          },
          {
            "code": "ISPS",
            "name": "International Ship & Port Security",
            "description": "Coût de conformité sécurité portuaire",
            "variation": "Fixe"
          },
          {
            "code": "B/L Fee",
            "name": "Frais de Connaissement",
            "description": "Frais d'émission du document B/L",
            "variation": "Fixe par B/L"
          }
        ],
        "additionalCostsTitle": "Coûts Annexes",
        "colCost": "Coût typique",
        "additionalCosts": [
          {
            "name": "Pré-acheminement",
            "description": "Transport routier de l'entrepôt au port d'origine",
            "typical": "Variable selon distance"
          },
          {
            "name": "Frais origine",
            "description": "THC, documentation, douane à l'origine",
            "typical": "150–400 USD"
          },
          {
            "name": "Fret maritime",
            "description": "Taux de base + surcharges",
            "typical": "Poste principal"
          },
          {
            "name": "Frais destination",
            "description": "THC, manutention, frais documents à destination",
            "typical": "200–500 USD"
          },
          {
            "name": "Droits de douane",
            "description": "Droits à l'importation selon code HS",
            "typical": "0–25% de la valeur"
          },
          {
            "name": "Post-acheminement",
            "description": "Transport routier du port de destination à l'entrepôt",
            "typical": "Variable selon distance"
          }
        ],
        "exampleTitle": "Exemple de Cotation FCL (40' HC)",
        "colItem": "Poste",
        "colAmount": "Montant",
        "exampleItems": [
          { "item": "Fret maritime de base", "amount": "1 200 USD" },
          { "item": "BAF (Bunker)", "amount": "350 USD" },
          { "item": "CAF (Devise)", "amount": "50 USD" },
          { "item": "THC Origine", "amount": "180 USD" },
          { "item": "THC Destination", "amount": "220 USD" },
          { "item": "Frais B/L", "amount": "55 USD" },
          { "item": "ISPS", "amount": "30 USD" },
          { "item": "Pré-acheminement", "amount": "250 USD" },
          { "item": "Total", "amount": "2 335 USD" }
        ]
      },
      "conteneurs": {
        "title": "Conteneurs",
        "description": "Les conteneurs sont la base du transport maritime. Connaître les différents types et leurs dimensions est essentiel pour planifier vos expéditions.",
        "standardTitle": "Types de Conteneurs Standard",
        "colDimensions": "Dimensions (L×l×H)",
        "colInternal": "Intérieur",
        "colDoor": "Ouverture portes",
        "colVolume": "Volume",
        "colPayload": "Charge max",
        "containers": [
          {
            "type": "20' Dry",
            "description": "Conteneur standard pour marchandises générales",
            "internal": "5,90m × 2,35m × 2,39m",
            "door": "2,34m × 2,28m",
            "volume": "33,2 m³",
            "payload": "21 727 kg"
          },
          {
            "type": "40' Dry",
            "description": "Conteneur standard, double longueur du 20'",
            "internal": "12,03m × 2,35m × 2,39m",
            "door": "2,34m × 2,28m",
            "volume": "67,7 m³",
            "payload": "26 500 kg"
          },
          {
            "type": "40' High Cube",
            "description": "Conteneur surélevé — 30cm de plus que le standard",
            "internal": "12,03m × 2,35m × 2,69m",
            "door": "2,34m × 2,58m",
            "volume": "76,3 m³",
            "payload": "26 460 kg"
          },
          {
            "type": "20' Reefer",
            "description": "Conteneur frigorifique (-25°C à +25°C)",
            "internal": "5,50m × 2,29m × 2,25m",
            "door": "2,28m × 2,20m",
            "volume": "28,4 m³",
            "payload": "21 000 kg"
          },
          {
            "type": "40' Reefer",
            "description": "Conteneur frigorifique 40 pieds pour grosses cargaisons réfrigérées",
            "internal": "11,56m × 2,29m × 2,25m",
            "door": "2,28m × 2,20m",
            "volume": "59,8 m³",
            "payload": "22 000 kg"
          },
          {
            "type": "20' Open Top",
            "description": "Conteneur toit ouvert pour marchandises dépassant en hauteur",
            "internal": "5,90m × 2,35m × 2,35m",
            "door": "2,34m × 2,28m",
            "volume": "32,6 m³",
            "payload": "20 000 kg"
          },
          {
            "type": "20' Flat Rack",
            "description": "Plateau pour marchandises hors-gabarit ou très lourdes",
            "internal": "5,62m × 2,24m × 2,03m",
            "door": "N/A",
            "volume": "N/A",
            "payload": "45 000 kg"
          }
        ],
        "specialEquipmentTitle": "Équipements Spéciaux",
        "specialEquipment": [
          {
            "name": "ISO Tank",
            "description": "Pour liquides, produits chimiques, denrées alimentaires en vrac"
          },
          {
            "name": "Bulk Container",
            "description": "Pour vracs secs (céréales, minéraux) — trappe sur le dessus"
          },
          {
            "name": "Plateforme (Bolster)",
            "description": "Pour marchandises hors-gabarit sans parois latérales"
          },
          {
            "name": "Conteneur Ventilé",
            "description": "Ventilation naturelle pour produits agricoles (café, cacao)"
          }
        ],
        "selectionTitle": "Guide de Sélection du Conteneur",
        "colCondition": "Situation",
        "colRecommendation": "Recommandation",
        "selectionGuide": [
          {
            "condition": "Marchandises générales standard",
            "recommendation": "20' ou 40' Dry selon le volume"
          },
          {
            "condition": "Marchandises sensibles à la température",
            "recommendation": "Reefer 20' ou 40'"
          },
          {
            "condition": "Marchandises dépassant en hauteur (> 2,2m)",
            "recommendation": "Open Top ou Flat Rack"
          },
          {
            "condition": "Marchandises hors-gabarit / très lourdes",
            "recommendation": "Flat Rack ou Plateforme"
          },
          { "condition": "Liquides en vrac", "recommendation": "ISO Tank" },
          { "condition": "Volume < 15 m³", "recommendation": "Envisager le LCL" }
        ]
      },
      "documentsTransport": {
        "title": "Documents de Transport",
        "description": "Les documents de transport maritime sont indispensables pour la circulation physique et commerciale des marchandises. Chaque document joue un rôle spécifique dans la chaîne logistique.",
        "mainDocumentsTitle": "Principaux Documents",
        "colType": "Type",
        "colVariants": "Variantes",
        "documents": [
          {
            "name": "Connaissement (B/L)",
            "type": "Maritime",
            "description": "Le document clé du transport maritime. Il a trois fonctions : contrat de transport, reçu de marchandises, et titre représentatif.",
            "types": [
              "B/L Original (négociable)",
              "Sea Waybill (non-négociable)",
              "Telex Release (libération électronique)",
              "Express B/L"
            ]
          },
          {
            "name": "Facture Commerciale",
            "type": "Commercial",
            "description": "Document émis par le vendeur décrivant les marchandises et le prix de vente. Base pour le dédouanement.",
            "types": [
              "Facture pro-forma",
              "Facture commerciale",
              "Facture consulaire (certains pays)"
            ]
          },
          {
            "name": "Liste de Colisage",
            "type": "Commercial",
            "description": "Description détaillée du conditionnement, des quantités, poids et dimensions de chaque colis.",
            "types": ["Liste neutre", "Liste détaillée"]
          },
          {
            "name": "Certificat d'Origine",
            "type": "Douanier",
            "description": "Certifie le pays d'origine des marchandises pour le dédouanement et les droits préférentiels.",
            "types": [
              "EUR.1 (préférences UE)",
              "Form A (SGP)",
              "CO chambre de commerce",
              "REX (Exportateur Enregistré)"
            ]
          },
          {
            "name": "Certificat d'Assurance",
            "type": "Assurance",
            "description": "Preuve d'assurance couvrant les marchandises pendant le transport. Souvent exigée par les banques pour L/C.",
            "types": ["Police flottante", "Certificat individuel", "Déclaration d'assurance"]
          },
          {
            "name": "Déclaration en Douane",
            "type": "Douanier",
            "description": "Obligatoire pour le dédouanement export (EX) et import (IM). Déposée électroniquement (DELTA en France).",
            "types": ["Déclaration export (EX1)", "Déclaration import (IM4)", "Transit (T1, T2)"]
          }
        ],
        "additionalDocsTitle": "Autres Documents Importants",
        "additionalDocs": [
          {
            "name": "EUR.1 / EUR-MED",
            "description": "Preuve d'origine pour droits préférentiels dans les accords UE"
          },
          {
            "name": "Certificat Sanitaire / Phytosanitaire",
            "description": "Requis pour produits alimentaires, plantes, animaux"
          },
          {
            "name": "Certificat de Libre Vente",
            "description": "Certifie que le produit est légalement commercialisé dans le pays exportateur"
          },
          {
            "name": "Certificat Marchandises Dangereuses",
            "description": "Déclaration IMDG/MSDS pour marchandises dangereuses"
          },
          {
            "name": "Certificat de Fumigation",
            "description": "Confirme le traitement des emballages en bois"
          }
        ],
        "blFocusTitle": "Le B/L — Document Essentiel",
        "blFunctions": [
          {
            "title": "Contrat de Transport",
            "description": "Prouve le contrat entre l'expéditeur et le transporteur"
          },
          {
            "title": "Reçu de Marchandises",
            "description": "Le transporteur reconnaît avoir reçu les marchandises dans l'état déclaré"
          },
          {
            "title": "Titre Représentatif",
            "description": "Le détenteur de l'original B/L peut réclamer les marchandises à destination"
          }
        ]
      },
      "douanes": {
        "title": "Procédures Douanières",
        "description": "La douane est une étape incontournable du commerce international. Comprendre les régimes douaniers, les documents requis et les droits permet de planifier efficacement ses opérations.",
        "regimesTitle": "Régimes Douaniers",
        "colCode": "Code",
        "colName": "Nom",
        "colDescription": "Description",
        "regimes": [
          {
            "code": "40 00",
            "name": "Mise en Libre Pratique",
            "description": "Import standard — les marchandises sont dédouanées pour le marché intérieur"
          },
          {
            "code": "10 00",
            "name": "Exportation Définitive",
            "description": "Export standard — les marchandises quittent définitivement le territoire douanier"
          },
          {
            "code": "42 00",
            "name": "Mise en LP avec Exonération TVA",
            "description": "MLP suivie d'une livraison intracommunautaire — TVA différée"
          },
          {
            "code": "21 00",
            "name": "Réexportation",
            "description": "Sortie de marchandises non-UE précédemment placées sous procédure douanière"
          },
          {
            "code": "51 00",
            "name": "Perfectionnement Actif",
            "description": "Import de marchandises à transformer et réexporter — droits suspendus"
          },
          {
            "code": "61 00",
            "name": "Perfectionnement Passif",
            "description": "Export de marchandises pour transformation à l'étranger et réimportation"
          },
          {
            "code": "71 00",
            "name": "Entrepôt Douanier",
            "description": "Stockage sous contrôle douanier — droits suspendus jusqu'à la mise à la consommation"
          }
        ],
        "documentsTitle": "Documents Requis",
        "documents": [
          {
            "name": "Facture Commerciale",
            "mandatory": true,
            "description": "Avec prix, quantités, incoterm, origine"
          },
          {
            "name": "Liste de Colisage",
            "mandatory": true,
            "description": "Description détaillée des colis"
          },
          {
            "name": "Document de Transport",
            "mandatory": true,
            "description": "B/L, LTA, CMR selon mode"
          },
          {
            "name": "Certificat d'Origine",
            "mandatory": false,
            "description": "Requis pour taux préférentiels ou origines réglementées"
          },
          {
            "name": "Licence d'Importation",
            "mandatory": false,
            "description": "Pour marchandises réglementées ou contingentées"
          },
          {
            "name": "Certificat Sanitaire/Phyto",
            "mandatory": false,
            "description": "Pour aliments, plantes, animaux"
          }
        ],
        "dutiesTitle": "Droits et Taxes",
        "colType": "Type",
        "duties": [
          {
            "type": "Droits de Douane",
            "description": "Appliqués sur la valeur en douane (CIF à la frontière). Taux selon code SH (0–25% en UE)."
          },
          {
            "type": "TVA",
            "description": "Appliquée sur (valeur douane + droits + transport). 20% taux normal en France."
          },
          {
            "type": "Droits d'Accise",
            "description": "Spécifiques à l'alcool, tabac, hydrocarbures."
          }
        ]
      },
      "imdg": {
        "title": "Code IMDG — Marchandises Dangereuses",
        "description": "Le Code IMDG (International Maritime Dangerous Goods) définit les règles de transport des marchandises dangereuses par voie maritime. Son respect est obligatoire pour la sécurité et éviter les sanctions douanières et maritimes.",
        "classesTitle": "Classes IMDG de Marchandises Dangereuses",
        "subdivisionsLabel": "Subdivisions",
        "classes": [
          {
            "class": "Classe 1",
            "name": "Explosifs",
            "description": "Matières et objets explosifs",
            "subdivisions": [
              "1.1 Explosion de masse",
              "1.2 Risque de projection",
              "1.3 Risque d'incendie",
              "1.4 Risque négligeable",
              "1.5 Très peu sensibles",
              "1.6 Extrêmement peu sensibles"
            ]
          },
          {
            "class": "Classe 2",
            "name": "Gaz",
            "description": "Gaz comprimés, liquéfiés, dissous",
            "subdivisions": [
              "2.1 Gaz inflammables",
              "2.2 Gaz non inflammables et non toxiques",
              "2.3 Gaz toxiques"
            ]
          },
          {
            "class": "Classe 3",
            "name": "Liquides Inflammables",
            "description": "Liquides avec point éclair ≤ 60°C"
          },
          {
            "class": "Classe 4",
            "name": "Solides Inflammables",
            "description": "Solides et matières autoréactives",
            "subdivisions": [
              "4.1 Solides inflammables",
              "4.2 Matières spontanément inflammables",
              "4.3 Matières dégageant des gaz inflammables au contact de l'eau"
            ]
          },
          {
            "class": "Classe 5",
            "name": "Comburants",
            "description": "Matières comburantes et peroxydes organiques",
            "subdivisions": ["5.1 Matières comburantes", "5.2 Peroxydes organiques"]
          },
          {
            "class": "Classe 6",
            "name": "Toxiques / Infectieux",
            "description": "Matières toxiques et infectieuses",
            "subdivisions": ["6.1 Matières toxiques", "6.2 Matières infectieuses"]
          },
          { "class": "Classe 7", "name": "Radioactifs", "description": "Matières radioactives" },
          { "class": "Classe 8", "name": "Corrosifs", "description": "Matières corrosives" },
          {
            "class": "Classe 9",
            "name": "Divers",
            "description": "Matières et objets dangereux divers (ex: batteries lithium)"
          }
        ],
        "documentsTitle": "Documents Requis",
        "documents": [
          {
            "name": "DGD (Dangerous Goods Declaration)",
            "description": "Déclaration obligatoire de l'expéditeur contenant : numéro ONU, désignation officielle, classe, groupe d'emballage, quantité, contact d'urgence"
          },
          {
            "name": "MSDS (Fiche de Données de Sécurité)",
            "description": "Fiche technique : composition, dangers, premiers secours, manipulation, stockage"
          },
          {
            "name": "Certificat d'Empotage du Conteneur",
            "description": "Certifie que la marchandise a été correctement arrimée selon les règles IMDG"
          },
          {
            "name": "Information d'Urgence",
            "description": "Contact d'urgence disponible 24h/24 (CHEMTREC, entreprise)"
          },
          {
            "name": "Étiquetage Transport",
            "description": "Étiquettes de danger apposées sur les colis et le conteneur"
          }
        ],
        "packagingGroupsTitle": "Groupes d'Emballage",
        "packagingGroups": [
          {
            "group": "Groupe I (X)",
            "description": "Grand danger — exigences d'emballage les plus strictes"
          },
          { "group": "Groupe II (Y)", "description": "Danger moyen — emballage standard" },
          { "group": "Groupe III (Z)", "description": "Faible danger — exigences moins strictes" }
        ],
        "labelingTitle": "Étiquetage et Placardage",
        "labelingContent": "Chaque colis doit afficher : numéro ONU, désignation officielle de transport, étiquettes de danger et classe. Les conteneurs doivent afficher des plaques-étiquettes de 250mm × 250mm correspondant à la classe IMDG. Les chargements mixtes requièrent des étiquettes pour chaque marchandise dangereuse.",
        "segregationTitle": "Ségrégation",
        "segregationContent": "Certaines marchandises dangereuses ne peuvent pas être chargées dans le même conteneur ou doivent être arrimées séparément. Le tableau de ségrégation IMDG définit les classes compatibles/incompatibles."
      },
      "lclVsFcl": {
        "title": "LCL vs FCL",
        "description": "Le choix entre LCL (Less than Container Load) et FCL (Full Container Load) est une décision clé dans la planification du fret maritime. Chaque mode présente des avantages et des contraintes spécifiques.",
        "lclTitle": "LCL — Groupage Maritime",
        "lclDescription": "Vos marchandises partagent un conteneur avec d'autres expéditeurs. Le transitaire consolide plusieurs expéditions LCL dans un seul FCL.",
        "fclTitle": "FCL — Conteneur Complet",
        "fclDescription": "Vous disposez de l'exclusivité d'un conteneur entier (20', 40' ou 40'HC). Plus économique à partir d'un certain volume.",
        "comparisonTitle": "Comparaison Détaillée",
        "colCriterion": "Critère",
        "colLcl": "LCL",
        "colFcl": "FCL",
        "criteria": [
          {
            "criterion": "Volume",
            "lcl": "< 15 m³ ou < 10 tonnes",
            "fcl": "> 15 m³ ou conteneur plein"
          },
          {
            "criterion": "Prix",
            "lcl": "Au CBM (m³) ou à la tonne",
            "fcl": "Forfait par conteneur"
          },
          {
            "criterion": "Sécurité",
            "lcl": "Modérée (partagé avec d'autres)",
            "fcl": "Meilleure (conteneur dédié)"
          },
          {
            "criterion": "Délai de transit",
            "lcl": "+3–7 jours (opérations de groupage)",
            "fcl": "Plus rapide (service direct possible)"
          },
          {
            "criterion": "Risque d'avarie",
            "lcl": "Plus élevé (plus de manutentions)",
            "fcl": "Plus faible (chargement unique)"
          },
          {
            "criterion": "Flexibilité",
            "lcl": "Élevée (départ même avec petits volumes)",
            "fcl": "Moindre (doit remplir le conteneur)"
          },
          {
            "criterion": "Marchandises dangereuses",
            "lcl": "Limitées (ségrégation requise)",
            "fcl": "Plus facile (conteneur dédié)"
          }
        ],
        "lclProcessTitle": "Processus LCL",
        "lclProcess": [
          {
            "step": "1",
            "title": "Livraison au CFS",
            "description": "Apporter les marchandises au Container Freight Station pour consolidation"
          },
          {
            "step": "2",
            "title": "Consolidation",
            "description": "Le transitaire consolide plusieurs expéditions LCL"
          },
          {
            "step": "3",
            "title": "Départ FCL",
            "description": "Le conteneur consolidé part en FCL"
          },
          {
            "step": "4",
            "title": "Déconsolidation",
            "description": "Au CFS de destination : déchargement du conteneur"
          },
          {
            "step": "5",
            "title": "Livraison",
            "description": "Livraison individuelle de chaque expédition LCL à son destinataire"
          }
        ],
        "chooseLclTitle": "Choisir le LCL si :",
        "chooseLcl": [
          "Volume < 15 m³",
          "Expédition irrégulière ou test de marché",
          "Marchandises non urgentes",
          "Budget limité avec petit volume",
          "Besoin de petites expéditions régulières"
        ],
        "chooseFclTitle": "Choisir le FCL si :",
        "chooseFcl": [
          "Volume > 15 m³",
          "Marchandises fragiles ou haute valeur",
          "Marchandises dangereuses (IMDG)",
          "Marchandises sous température contrôlée (reefer)",
          "Marchandises nécessitant confidentialité"
        ]
      },
      "lettreCredit": {
        "title": "Lettre de Crédit",
        "description": "La Lettre de Crédit (L/C) est une garantie bancaire de paiement utilisée dans le commerce international. Elle protège à la fois l'exportateur (paiement garanti sur conformité documentaire) et l'importateur (paiement uniquement sur livraison conforme).",
        "typesTitle": "Types de Lettres de Crédit",
        "types": [
          {
            "name": "L/C Irrévocable",
            "description": "Ne peut être modifiée ou annulée sans accord de toutes les parties. Standard selon UCP 600."
          },
          {
            "name": "L/C Confirmée",
            "description": "La banque du bénéficiaire ajoute sa propre garantie de paiement. Protection contre le risque de la banque émettrice."
          },
          {
            "name": "L/C à Vue",
            "description": "Paiement à la présentation des documents conformes. Paiement immédiat."
          },
          {
            "name": "L/C Différée",
            "description": "Paiement à une date future (30, 60, 90 jours). Crédit accordé à l'acheteur."
          },
          {
            "name": "L/C Transférable",
            "description": "Peut être transférée à un bénéficiaire secondaire (utile pour les intermédiaires)."
          },
          {
            "name": "L/C Stand-by",
            "description": "Garantie bancaire, activée uniquement en cas de défaillance de l'acheteur. Plus simple que le crédit documentaire."
          }
        ],
        "partiesTitle": "Parties Impliquées",
        "colRole": "Rôle",
        "parties": [
          {
            "role": "Donneur d'Ordre (Importateur)",
            "description": "L'acheteur qui demande l'ouverture de la L/C auprès de sa banque"
          },
          {
            "role": "Banque Émettrice",
            "description": "La banque de l'importateur qui émet la L/C"
          },
          {
            "role": "Bénéficiaire (Exportateur)",
            "description": "Le vendeur qui bénéficie de la L/C"
          },
          {
            "role": "Banque Notificatrice",
            "description": "La banque de l'exportateur qui notifie la L/C (sans garantie)"
          },
          {
            "role": "Banque Confirmatrice",
            "description": "La banque de l'exportateur qui ajoute sa garantie (L/C confirmée)"
          }
        ],
        "documentsTitle": "Documents Requis",
        "documents": [
          {
            "name": "Connaissement (B/L)",
            "description": "B/L original 'clean on board', mention 'freight prepaid' (ou 'collect' selon incoterm)"
          },
          {
            "name": "Facture Commerciale",
            "description": "En exacte conformité avec la L/C — montants, devises, description"
          },
          { "name": "Liste de Colisage", "description": "Cohérente avec la facture et le B/L" },
          {
            "name": "Certificat d'Assurance",
            "description": "Requis si CIF ou CIP — montants et couverture selon L/C"
          },
          {
            "name": "Certificat d'Origine",
            "description": "Si requis par la L/C — formulaire EUR.1, Form A ou chambre de commerce"
          },
          {
            "name": "Certificat d'Inspection",
            "description": "SGS ou autre si requis par l'acheteur"
          },
          {
            "name": "Certificat Phytosanitaire",
            "description": "Pour plantes, bois, produits agricoles"
          }
        ],
        "errorsTitle": "Erreurs Fréquentes (Réserves)",
        "errors": [
          "Description des marchandises non identique à la L/C",
          "Montant de la facture dépassant le montant de la L/C",
          "Documents de transport présentés après délai",
          "Port d'embarquement ou destination différent de la L/C",
          "Document manquant ou jeu incomplet",
          "B/L non mentionné 'clean on board'",
          "Montant d'assurance manquant ou incorrect"
        ],
        "ucp600Title": "UCP 600 — Règles Applicables",
        "ucp600Content": "Les Règles et Usances Uniformes relatives aux Crédits Documentaires, publiées par la CCI (révision 2007). Définissent les normes d'examen des documents (5 jours bancaires), le concept de stricte conformité, et les rôles des banques.",
        "datesTitle": "Dates Clés",
        "datesItems": [
          {
            "label": "Date limite d'expédition",
            "description": "Date limite pour l'expédition (date d'embarquement sur le B/L)"
          },
          {
            "label": "Délai de présentation",
            "description": "Nombre de jours après l'expédition pour présenter les documents (généralement 21 jours)"
          },
          {
            "label": "Date d'expiration L/C",
            "description": "Date limite absolue pour toute présentation de documents"
          }
        ],
        "costsTitle": "Coûts",
        "costsItems": [
          {
            "label": "Commission d'ouverture",
            "description": "0,1–0,3% du montant L/C (banque de l'importateur)"
          },
          {
            "label": "Commission de confirmation",
            "description": "0,2–0,5% par trimestre (banque confirmatrice)"
          },
          { "label": "Frais d'amendement", "description": "Frais fixes par amendement" },
          {
            "label": "Frais de réserve",
            "description": "Frais fixes en cas de réserve sur les documents"
          }
        ]
      },
      "portsRoutes": {
        "title": "Ports et Routes Maritimes",
        "description": "Le commerce maritime s'organise autour de grandes routes mondiales reliant les zones de production et les marchés de consommation. Comprendre ces routes et les passages stratégiques est essentiel pour optimiser les coûts et les délais d'expédition.",
        "majorRoutesTitle": "Principales Routes Maritimes",
        "colVia": "Via",
        "colTransit": "Transit time",
        "colPorts": "Ports clés",
        "routes": [
          {
            "name": "Asie — Europe",
            "description": "Route la plus chargée au monde en volume",
            "via": "Canal de Suez",
            "transitTime": "20–35 jours",
            "majorPorts": ["Shanghai", "Singapore", "Rotterdam", "Hambourg", "Le Havre"]
          },
          {
            "name": "Asie — Amérique du Nord (Ouest)",
            "description": "Trans-Pacifique — croissance tirée par les échanges USA-Chine",
            "via": "Pacifique direct",
            "transitTime": "12–18 jours",
            "majorPorts": ["Shanghai", "Ningbo", "Los Angeles", "Long Beach", "Seattle"]
          },
          {
            "name": "Asie — Amérique du Nord (Est)",
            "description": "Via canal de Panama ou Suez pour les grands navires",
            "via": "Suez ou Panama",
            "transitTime": "28–45 jours",
            "majorPorts": ["Shanghai", "Singapore", "New York", "Savannah", "Houston"]
          },
          {
            "name": "Europe — Amérique du Nord",
            "description": "Trans-Atlantique — grande route commerciale",
            "via": "Atlantique direct",
            "transitTime": "10–16 jours",
            "majorPorts": ["Rotterdam", "Anvers", "Hambourg", "New York", "Baltimore"]
          }
        ],
        "passagesTitle": "Passages Stratégiques",
        "colLength": "Longueur",
        "colTraffic": "Trafic",
        "passages": [
          {
            "name": "Canal de Suez",
            "location": "Égypte",
            "length": "193 km",
            "description": "Passage clé entre Méditerranée et mer Rouge. Sa fermeture entraîne 15–20 jours supplémentaires via le Cap de Bonne Espérance.",
            "keyStat": "~12% du commerce mondial"
          },
          {
            "name": "Canal de Panama",
            "location": "Panama",
            "length": "82 km",
            "description": "Relie Atlantique et Pacifique. Les nouvelles écluses (2016) permettent les navires Neopanamax (366m).",
            "keyStat": "~5% du commerce mondial"
          },
          {
            "name": "Détroit de Malacca",
            "location": "Malaisie / Indonésie",
            "length": "900 km",
            "description": "Détroit le plus fréquenté au monde. 80% de l'approvisionnement énergétique asiatique y transite.",
            "keyStat": "~25% du commerce mondial"
          },
          {
            "name": "Détroit d'Ormuz",
            "location": "Iran / Oman",
            "length": "54 km",
            "description": "Passage de 20% du commerce mondial de pétrole. Importance géopolitique stratégique.",
            "keyStat": "20% du pétrole"
          }
        ],
        "portsTitle": "Principaux Ports Mondiaux (TEU)",
        "colRank": "Rang",
        "colPort": "Port",
        "colCountry": "Pays",
        "colTeu": "TEU / an",
        "ports": [
          { "rank": 1, "port": "Shanghai", "country": "Chine", "teu": "47M" },
          { "rank": 2, "port": "Singapour", "country": "Singapour", "teu": "37M" },
          { "rank": 3, "port": "Ningbo-Zhoushan", "country": "Chine", "teu": "33M" },
          { "rank": 4, "port": "Shenzhen", "country": "Chine", "teu": "29M" },
          { "rank": 5, "port": "Guangzhou", "country": "Chine", "teu": "24M" },
          { "rank": 6, "port": "Qingdao", "country": "Chine", "teu": "24M" },
          { "rank": 7, "port": "Busan", "country": "Corée du Sud", "teu": "22M" },
          { "rank": 8, "port": "Tianjin", "country": "Chine", "teu": "21M" },
          { "rank": 9, "port": "Dubaï (Jebel Ali)", "country": "EAU", "teu": "15M" },
          { "rank": 10, "port": "Rotterdam", "country": "Pays-Bas", "teu": "15M" }
        ],
        "hubGatewayTitle": "Hub vs Gateway",
        "hubTitle": "Port Hub",
        "hubDescription": "Port de transbordement — les grands navires y font escale et les marchandises sont redistribuées vers des navires plus petits (feeders). Ex : Singapour, Dubaï, Algésiras.",
        "gatewayTitle": "Port Gateway",
        "gatewayDescription": "Port desservant un arrière-pays national — port d'entrée/sortie direct d'un pays ou d'une région. Ex : Le Havre pour la France, Rotterdam pour l'Europe du Nord."
      },
      "vgm": {
        "title": "VGM (Verified Gross Mass)",
        "description": "Depuis le 1er juillet 2016, la Convention SOLAS (Safety of Life at Sea) exige que le poids vérifié de tout conteneur soit transmis avant embarquement. Cette obligation vise à prévenir les accidents liés aux conteneurs mal déclarés.",
        "whyTitle": "Pourquoi le VGM ?",
        "why": [
          {
            "title": "Sécurité",
            "description": "Les conteneurs mal déclarés causent des accidents graves (chute de conteneurs, navires instables)."
          },
          {
            "title": "Stabilité du navire",
            "description": "Le capitaine doit connaître le poids exact pour calculer le plan de chargement."
          },
          {
            "title": "Équipements portuaires",
            "description": "Les grues et portiques sont dimensionnés pour des charges maximales."
          },
          {
            "title": "Transport terrestre",
            "description": "Évite les surcharges sur les camions et wagons de pré/post-acheminement."
          }
        ],
        "componentsTitle": "Composants du VGM",
        "formula": "VGM = Tare + Marchandises + Emballages + Arrimage",
        "elements": [
          {
            "element": "Tare conteneur",
            "description": "Poids à vide du conteneur (inscrit sur la porte)",
            "example": "2 200 kg (20')"
          },
          {
            "element": "Marchandises",
            "description": "Poids brut de toutes les marchandises",
            "example": "Variable"
          },
          {
            "element": "Emballages",
            "description": "Palettes, cartons, film plastique...",
            "example": "200–500 kg"
          },
          {
            "element": "Matériaux d'arrimage",
            "description": "Bois de calage, sangles, airbags...",
            "example": "50–200 kg"
          }
        ],
        "methodsTitle": "Méthodes de Détermination",
        "processLabel": "Processus",
        "advantagesLabel": "Avantages",
        "disadvantagesLabel": "Inconvénients",
        "methods": [
          {
            "method": "Méthode 1",
            "name": "Pesée du conteneur complet",
            "description": "Pesée du conteneur chargé et scellé sur une balance étalonnée.",
            "process": [
              "Empotage du conteneur",
              "Scellage du conteneur",
              "Pesée sur pont-bascule certifié",
              "Transmission du VGM"
            ],
            "advantages": ["Plus précis", "Moins de calculs"],
            "disadvantages": ["Nécessite un pont-bascule", "Conteneur déjà scellé"]
          },
          {
            "method": "Méthode 2",
            "name": "Calcul par addition",
            "description": "Addition de la tare du conteneur et du poids de tous les éléments chargés.",
            "process": [
              "Pesée de chaque colis individuellement",
              "Addition de tous les poids",
              "Ajout des matériaux d'arrimage",
              "Addition de la tare conteneur"
            ],
            "advantages": ["Pas besoin de pont-bascule", "Peut être fait progressivement"],
            "disadvantages": ["Plus complexe", "Risque d'erreur cumulative"]
          }
        ],
        "responsibilityTitle": "Responsabilités",
        "responsibilities": [
          {
            "role": "Expéditeur (Shipper)",
            "description": "Responsable légal du VGM. Doit obtenir, certifier et transmettre le poids vérifié."
          },
          {
            "role": "Transitaire",
            "description": "Peut transmettre le VGM pour le compte de l'expéditeur. Reste un intermédiaire."
          },
          {
            "role": "Compagnie Maritime",
            "description": "Ne peut embarquer un conteneur sans VGM. Peut refuser un VGM manifestement erroné."
          }
        ],
        "tolerancesTitle": "Tolérances",
        "toleranceLabel": "Tolérance typique",
        "toleranceValue": "± 5% du poids déclaré ou ± 500 kg (le plus petit des deux)",
        "consequenceLabel": "Conséquence si dépassement",
        "consequenceValue": "Nouvelle pesée à la charge de l'expéditeur, retard possible",
        "sanctionsTitle": "Sanctions par Région",
        "sanctions": [
          { "region": "France", "sanction": "Amende jusqu'à 7 500€ et refus d'embarquement" },
          { "region": "USA", "sanction": "Refus d'embarquement, amende par la garde côtière" },
          { "region": "Chine", "sanction": "Refus d'embarquement, pénalités portuaires" },
          { "region": "Union Européenne", "sanction": "Application variable selon pays membre" }
        ],
        "tipsTitle": "Bonnes Pratiques",
        "tips": [
          "Transmettre le VGM au moins 24–48h avant le cut-off",
          "Utiliser des balances étalonnées et certifiées",
          "Conserver les preuves de pesée pendant 3 ans minimum",
          "Vérifier les exigences spécifiques de chaque compagnie maritime",
          "Former le personnel aux procédures VGM",
          "Ne jamais sous-estimer le poids intentionnellement"
        ]
      },
      "transitTime": {
        "title": "Transit Time et Délais",
        "description": "La gestion des délais est cruciale en transport maritime. Comprendre les différentes étapes, les cut-off dates et les frais de retard permet d'optimiser sa supply chain et d'éviter les coûts supplémentaires.",
        "keyTermsTitle": "Termes Clés",
        "etd": "Estimated Time of Departure - Départ estimé",
        "eta": "Estimated Time of Arrival - Arrivée estimée",
        "cutoff": "Date/heure limite de dépôt",
        "freeTime": "Jours gratuits avant frais de retard",
        "timelineTitle": "Timeline d'une Expédition FCL",
        "responsibleLabel": "Responsable",
        "timeline": [
          {
            "step": "Booking",
            "description": "Réservation de l'espace sur le navire",
            "delay": "1–7 jours avant cut-off",
            "responsible": "Transitaire / Exportateur"
          },
          {
            "step": "Container pickup",
            "description": "Enlèvement du conteneur vide au dépôt",
            "delay": "2–5 jours avant cut-off",
            "responsible": "Transporteur terrestre"
          },
          {
            "step": "Empotage (Stuffing)",
            "description": "Chargement des marchandises dans le conteneur",
            "delay": "1–3 jours avant cut-off",
            "responsible": "Exportateur"
          },
          {
            "step": "Documentation cut-off",
            "description": "Date limite pour soumettre les documents (B/L, VGM)",
            "delay": "24–48h avant ETD",
            "responsible": "Transitaire"
          },
          {
            "step": "Cargo cut-off",
            "description": "Date limite de dépôt du conteneur au terminal",
            "delay": "24–48h avant ETD",
            "responsible": "Transporteur terrestre"
          },
          {
            "step": "ETD (Estimated Time of Departure)",
            "description": "Départ estimé du navire du port d'origine",
            "delay": "Jour J",
            "responsible": "Compagnie maritime"
          },
          {
            "step": "Transit maritime",
            "description": "Traversée maritime (variable selon route)",
            "delay": "10–45 jours",
            "responsible": "Compagnie maritime"
          },
          {
            "step": "ETA (Estimated Time of Arrival)",
            "description": "Arrivée estimée au port de destination",
            "delay": "Jour J + transit",
            "responsible": "Compagnie maritime"
          },
          {
            "step": "Déchargement",
            "description": "Déchargement du navire et mise à quai",
            "delay": "1–3 jours après ETA",
            "responsible": "Terminal portuaire"
          },
          {
            "step": "Dédouanement",
            "description": "Formalités douanières à destination",
            "delay": "1–5 jours",
            "responsible": "Commissionnaire en douane"
          },
          {
            "step": "Livraison",
            "description": "Acheminement final au destinataire",
            "delay": "1–5 jours",
            "responsible": "Transporteur terrestre"
          }
        ],
        "transitTimesTitle": "Transit Times Indicatifs",
        "colRoute": "Route",
        "colTime": "Transit Time",
        "colVia": "Via",
        "transitTimes": [
          { "route": "Shanghai → Rotterdam", "time": "28–32 jours", "via": "Suez" },
          { "route": "Shanghai → Le Havre", "time": "30–35 jours", "via": "Suez" },
          { "route": "Shanghai → Los Angeles", "time": "12–15 jours", "via": "Pacifique direct" },
          { "route": "Shanghai → New York", "time": "35–40 jours", "via": "Suez ou Panama" },
          { "route": "Rotterdam → New York", "time": "10–14 jours", "via": "Atlantique direct" },
          { "route": "Mumbai → Rotterdam", "time": "18–22 jours", "via": "Suez" },
          { "route": "Santos → Rotterdam", "time": "18–22 jours", "via": "Atlantique direct" }
        ],
        "transitNote": "Note : Ces temps sont indicatifs et varient selon les rotations, transbordements et conditions.",
        "freeTimeTitle": "Free Time (Jours Gratuits)",
        "freeTimeDescription": "Période pendant laquelle le conteneur peut rester au terminal ou chez l'importateur sans frais supplémentaires.",
        "freeTimeStandard": "Free time standard",
        "freeTimeValue": "7–14 jours",
        "freeTimeNote": "Selon compagnie et port",
        "demurrageStart": "Demurrage start",
        "demurrageStartDesc": "Commence après le free time au terminal",
        "detentionStart": "Detention start",
        "detentionStartDesc": "Commence à la sortie du terminal (gate-out)",
        "lateFeesTitle": "Frais de Retard",
        "colRate": "Taux indicatif",
        "colLocation": "Lieu",
        "lateFees": [
          {
            "name": "Demurrage",
            "definition": "Frais pour le conteneur resté au terminal au-delà du free time",
            "rate": "50–150 USD/jour/conteneur",
            "location": "Terminal portuaire"
          },
          {
            "name": "Detention",
            "definition": "Frais pour le conteneur gardé hors terminal au-delà du free time",
            "rate": "30–100 USD/jour/conteneur",
            "location": "Chez l'importateur"
          },
          {
            "name": "Storage",
            "definition": "Frais de stockage au terminal (séparés du demurrage)",
            "rate": "Variable selon port",
            "location": "Terminal portuaire"
          },
          {
            "name": "Per Diem",
            "definition": "Frais journaliers combinés (parfois utilisé pour demurrage+detention)",
            "rate": "50–200 USD/jour",
            "location": "Variable"
          }
        ],
        "delayFactorsTitle": "Facteurs Impactant les Délais",
        "potentialDelaysTitle": "Retards potentiels",
        "potentialDelays": [
          "Congestion portuaire (Los Angeles, Rotterdam)",
          "Conditions météorologiques (typhons, tempêtes)",
          "Fermeture de canaux (Suez, Panama)",
          "Inspection douanière (scanner, contrôle)",
          "Blank sailings (annulation de rotation)",
          "Grèves (dockers, transporteurs)"
        ],
        "seasonalVariationsTitle": "Variations saisonnières",
        "seasonalVariations": [
          "Nouvel An Chinois (février) : +2–3 semaines",
          "Golden Week (octobre) : congestion Asie",
          "Peak Season (août-octobre) : surcharges, retards",
          "Fêtes de fin d'année : rush avant Christmas"
        ],
        "rolloverTitle": "Roll-over (Report)",
        "rolloverDescription": "Situation où un conteneur n'est pas chargé sur le navire prévu et est reporté sur le prochain départ.",
        "rolloverCausesTitle": "Causes fréquentes :",
        "rolloverCauses": [
          "Navire plein (overbooking)",
          "Conteneur arrivé après le cargo cut-off",
          "Documents manquants ou incorrects",
          "VGM non transmis à temps",
          "Problème avec la marchandise (DG, inspection)"
        ],
        "rolloverImpact": "Impact : Généralement +7 jours de délai (service hebdomadaire)",
        "tipsTitle": "Conseils pour Optimiser les Délais",
        "tips": [
          "Réserver tôt, surtout en haute saison (2–3 semaines d'avance)",
          "Respecter les cut-off avec une marge de sécurité (24h minimum)",
          "Préparer les documents en parallèle de l'empotage",
          "Négocier du free time supplémentaire pour les volumes importants",
          "Tracker activement les navires (AIS, portails compagnies)",
          "Anticiper le dédouanement (pré-clearing si possible)",
          "Avoir un plan B en cas de roll-over (service alternatif)",
          "Éviter les expéditions critiques pendant les périodes à risque"
        ]
      }
    }
  },
  "components": {
    "notificationDropdown": {
      "ariaLabel": "Notifications",
      "header": "Notifications",
      "markAllRead": "Tout marquer comme lu",
      "loading": "Chargement des notifications…",
      "empty": "Aucune nouvelle notification",
      "viewAll": "Voir toutes les notifications",
      "time": {
        "now": "À l'instant",
        "minutes": "Il y a {minutes} min",
        "hours": "Il y a {hours} h",
        "days": "Il y a {days} j"
      }
    },
    "notificationPanel": {
      "title": "Notifications",
      "totalCount": "{count, plural, one {# notification au total} other {# notifications au total}}",
      "closeAria": "Fermer le panneau",
      "filters": {
        "all": "Toutes",
        "unread": "Non lues",
        "read": "Lues"
      },
      "markAllRead": "Tout marquer comme lu",
      "loading": "Chargement des notifications…",
      "emptyTitle": "Aucune notification",
      "emptyUnread": "Vous êtes à jour !",
      "emptyAll": "Aucune notification à afficher",
      "deleteConfirm": "Voulez-vous vraiment supprimer cette notification ?",
      "deleteTitle": "Supprimer la notification",
      "viewDetails": "Voir les détails →",
      "pagination": {
        "page": "Page {current} sur {total}",
        "previous": "Précédent",
        "next": "Suivant"
      }
    },
    "exportButton": {
      "label": "Exporter",
      "exporting": "Export en cours…",
      "lockedTooltip": "Passez au plan Silver pour exporter vos données",
      "csvTitle": "Export CSV",
      "csvSubtitle": "Compatible Excel, Google Sheets",
      "excelTitle": "Export Excel",
      "excelSubtitle": "Format .xls natif",
      "rowsToExport": "{count, plural, one {# ligne à exporter} other {# lignes à exporter}}",
      "errorCsv": "Erreur lors de l'export CSV",
      "errorExcel": "Erreur lors de l'export Excel",
      "boolean": {
        "true": "Oui",
        "false": "Non"
      }
    },
    "adminPanelDropdown": {
      "trigger": "Administration",
      "items": {
        "users": "Utilisateurs",
        "usersDesc": "Gérer les utilisateurs et les permissions",
        "organizations": "Organisations",
        "organizationsDesc": "Gérer les organisations et entreprises",
        "bookings": "Réservations",
        "bookingsDesc": "Consulter et gérer toutes les réservations",
        "documents": "Documents",
        "documentsDesc": "Gérer les documents des organisations",
        "csvRates": "Tarifs CSV",
        "csvRatesDesc": "Importer et gérer les tarifs CSV",
        "blog": "Blog",
        "blogDesc": "Créer et gérer les articles du blog",
        "logs": "Logs système",
        "logsDesc": "Visualiser et télécharger les logs applicatifs"
      }
    },
    "csvUpload": {
      "title": "Upload tarifs CSV",
      "description": "Uploadez un fichier CSV contenant les tarifs de transport maritime pour une compagnie. Taille maximale : 10 MB. Format requis : .csv",
      "fileTypeError": "Seuls les fichiers CSV (.csv) sont acceptés",
      "fileSizeError": "Le fichier ne doit pas dépasser 10 MB",
      "fillAllFields": "Veuillez remplir tous les champs",
      "successMessage": "✅ Succès ! {count} tarifs uploadés pour {companyName}",
      "uploadError": "Erreur lors de l'upload du fichier CSV",
      "form": {
        "companyName": "Nom de la compagnie",
        "companyNamePlaceholder": "Ex: SSC Consolidation",
        "companyNameHint": "Nom exact de la compagnie maritime (doit correspondre aux données CSV)",
        "companyEmail": "Email de la compagnie",
        "companyEmailPlaceholder": "Ex: bookings@sscconsolidation.com",
        "companyEmailHint": "Email pour les demandes de réservation auprès de cette compagnie",
        "fileLabel": "Fichier CSV",
        "fileSelected": "Fichier sélectionné :",
        "formatTitle": "Format CSV requis",
        "formatIntro": "Le fichier CSV doit contenir les colonnes suivantes :",
        "errorTitle": "Erreur",
        "successTitle": "Succès",
        "submit": "Upload CSV",
        "submitting": "Upload en cours…",
        "reset": "Réinitialiser"
      }
    },
    "cookieConsent": {
      "openAria": "Ouvrir les paramètres de cookies",
      "banner": {
        "title": "Nous utilisons des cookies",
        "body": "Nous utilisons des cookies pour améliorer votre expérience, analyser le trafic du site et personnaliser le contenu. En cliquant sur « Tout accepter », vous consentez à notre utilisation des cookies.",
        "learnMore": "En savoir plus",
        "customize": "Personnaliser",
        "essentialOnly": "Essentiel uniquement",
        "acceptAll": "Tout accepter"
      },
      "settings": {
        "title": "Préférences de cookies",
        "closeAria": "Fermer les paramètres",
        "save": "Enregistrer mes préférences",
        "acceptAll": "Tout accepter",
        "footer": "Vous pouvez modifier vos préférences à tout moment dans les paramètres de votre compte ou en cliquant sur l'icône cookie en bas à gauche.",
        "policyLink": "Politique de cookies",
        "essential": {
          "title": "Cookies essentiels",
          "alwaysOn": "Toujours actif",
          "body": "Nécessaires au fonctionnement du site. Ne peuvent pas être désactivés."
        },
        "functional": {
          "title": "Cookies fonctionnels",
          "body": "Permettent de mémoriser vos préférences et paramètres (langue, région)."
        },
        "analytics": {
          "title": "Cookies analytiques",
          "body": "Nous aident à comprendre comment les visiteurs interagissent avec notre site (Google Analytics, Sentry)."
        },
        "marketing": {
          "title": "Cookies marketing",
          "body": "Utilisés pour afficher des publicités personnalisées et mesurer l'efficacité des campagnes."
        }
      }
    },
    "bookingsTable": {
      "headers": {
        "bookingNumber": "N° de réservation",
        "status": "Statut",
        "carrier": "Transporteur",
        "origin": "Origine",
        "destination": "Destination",
        "shipper": "Expéditeur",
        "consignee": "Destinataire",
        "etd": "ETD",
        "eta": "ETA",
        "containers": "Conteneurs",
        "created": "Créé le"
      }
    },
    "bookingFilters": {
      "title": "Filtres",
      "showMore": "Afficher plus",
      "showLess": "Afficher moins",
      "reset": "Tout réinitialiser",
      "search": "Rechercher",
      "searchPlaceholder": "N° de réservation, expéditeur, destinataire…",
      "carrier": "Transporteur",
      "carrierPlaceholder": "Nom du transporteur ou SCAC",
      "originPort": "Port d'origine",
      "destinationPort": "Port de destination",
      "portCodePlaceholder": "Code du port",
      "shipper": "Expéditeur",
      "shipperPlaceholder": "Nom de l'expéditeur",
      "consignee": "Destinataire",
      "consigneePlaceholder": "Nom du destinataire",
      "createdFrom": "Créé à partir du",
      "createdTo": "Créé jusqu'au",
      "etdFrom": "ETD à partir du",
      "etdTo": "ETD jusqu'au",
      "status": "Statut",
      "sortBy": "Trier par",
      "sortOptions": {
        "createdAt": "Date de création",
        "bookingNumber": "N° de réservation",
        "status": "Statut",
        "etd": "ETD",
        "eta": "ETA"
      },
      "activeCount": "{count, plural, one {# filtre actif} other {# filtres actifs}}"
    },
    "bulkActions": {
      "selectedCount": "{count, plural, one {# réservation sélectionnée} other {# réservations sélectionnées}}",
      "clearSelection": "Effacer la sélection",
      "exportSelected": "Exporter la sélection",
      "exporting": "Export en cours…",
      "exportCsv": "Exporter en CSV",
      "exportExcel": "Exporter en Excel",
      "exportJson": "Exporter en JSON",
      "exportFailed": "Échec de l'export : {message}",
      "bulkUpdate": "Mise à jour groupée",
      "bulkUpdateSoon": "La mise à jour groupée arrive bientôt !"
    }
  },
  "carrierPortal": {
    "common": {
      "tokenMissing": "Token manquant",
      "bookingNotFound": "Booking introuvable. Le lien peut avoir expiré.",
      "bookingAlreadyAccepted": "Ce booking a déjà été accepté.",
      "bookingAlreadyRejected": "Ce booking a déjà été refusé.",
      "errorTitle": "Erreur",
      "backHome": "Retour à l'accueil",
      "redirecting": "Redirection vers la page d'accueil dans {countdown, plural, one {# seconde} other {# secondes}}…"
    },
    "accept": {
      "loadingTitle": "Traitement en cours…",
      "loadingMessage": "Nous traitons votre acceptation.",
      "errorFallback": "Erreur lors de l'acceptation du booking",
      "errorGeneric": "Erreur lors de l'acceptation",
      "thanksTitle": "Merci !",
      "successHeadline": "✅ Votre acceptation a bien été prise en compte",
      "successBody": "Nous vous remercions d'avoir accepté cette demande de transport."
    },
    "reject": {
      "loadingTitle": "Traitement en cours…",
      "loadingMessage": "Nous traitons votre refus.",
      "errorFallback": "Erreur lors du refus du booking",
      "errorGeneric": "Erreur lors du refus",
      "thanksTitle": "Merci de votre réponse",
      "successHeadline": "✓ Votre refus a bien été pris en compte",
      "successBody": "Nous avons bien enregistré votre décision concernant cette demande de transport."
    },
    "documents": {
      "loading": "Chargement…",
      "loadingHint": "Veuillez patienter",
      "errorTitle": "Erreur",
      "retry": "Réessayer",
      "linkInvalid": "Lien invalide",
      "loadError": "Erreur lors du chargement",
      "loadDocsError": "Erreur lors du chargement des documents",
      "bookingNotFound": "Réservation introuvable. Vérifiez que le lien est correct.",
      "notAcceptedYet": "Cette réservation n'a pas encore été acceptée. Les documents seront disponibles après l'acceptation.",
      "verifyError": "Erreur lors de la vérification",
      "passwordIncorrect": "Mot de passe incorrect. Vérifiez votre email pour retrouver le mot de passe.",
      "passwordMissing": "Veuillez entrer le mot de passe",
      "downloadError": "Erreur lors du téléchargement. Veuillez réessayer.",
      "password": {
        "title": "Accès sécurisé",
        "intro": "Cette page est protégée. Entrez le mot de passe reçu par email pour accéder aux documents.",
        "bookingLabel": "Réservation:",
        "passwordLabel": "Mot de passe",
        "passwordPlaceholder": "Ex: A3B7K9",
        "submit": "Accéder aux documents",
        "verifying": "Vérification…",
        "helpTitle": "Où trouver le mot de passe ?",
        "helpBody": "Le mot de passe vous a été envoyé dans l'email de confirmation de la réservation. Il correspond aux 6 derniers caractères du numéro de devis."
      },
      "header": {
        "refresh": "Actualiser"
      },
      "summary": {
        "bookingNumberPrefix": "N°",
        "volume": "Volume",
        "weight": "Poids",
        "transit": "Transit",
        "transitDays": "{count, plural, one {# jour} other {# jours}}",
        "type": "Type",
        "carrierLabel": "Transporteur:",
        "refLabel": "Ref:"
      },
      "list": {
        "heading": "Documents ({count})",
        "empty": "Aucun document disponible pour le moment.",
        "emptyHint": "Les documents apparaîtront ici une fois ajoutés.",
        "download": "Télécharger"
      },
      "footerNote": "Cette page affiche toujours les documents les plus récents de la réservation.",
      "footer": "© {year} Xpeditis - Plateforme de fret maritime",
      "documentTypes": {
        "BILL_OF_LADING": "Connaissement",
        "PACKING_LIST": "Liste de colisage",
        "COMMERCIAL_INVOICE": "Facture commerciale",
        "CERTIFICATE_OF_ORIGIN": "Certificat d'origine",
        "OTHER": "Autre document"
      }
    }
  },
  "bookingPortal": {
    "common": {
      "supportPrompt": "Pour toute question, contactez-nous à",
      "contactSupport": "Contacter le support"
    },
    "confirm": {
      "loading": "Confirmation en cours…",
      "errorTitle": "Erreur de confirmation",
      "errorGeneric": "Une erreur est survenue lors de l'acceptation",
      "tokenInvalid": "Token de confirmation invalide",
      "errorReasonsTitle": "Raisons possibles :",
      "errorReason1": "Le lien a expiré",
      "errorReason2": "La demande a déjà été acceptée ou refusée",
      "errorReason3": "Le token de confirmation est invalide",
      "errorContact": "Si vous pensez qu'il s'agit d'une erreur, veuillez contacter le client directement.",
      "successTitle": "Demande acceptée !",
      "successHeadline": "Merci d'avoir accepté cette demande de transport.",
      "successBody": "Le client a été notifié par email.",
      "summaryTitle": "Récapitulatif de la réservation",
      "labels": {
        "bookingId": "ID Réservation",
        "route": "Trajet",
        "volume": "Volume",
        "weight": "Poids",
        "pallets": "Palettes",
        "containerType": "Type de conteneur",
        "transitDays": "Temps de transit",
        "price": "Prix",
        "notes": "Notes :",
        "documents": "Documents fournis",
        "download": "Télécharger"
      },
      "transitDaysValue": "{count, plural, one {# jour} other {# jours}}",
      "nextStepsTitle": "Prochaines étapes",
      "nextStep1": "Le client va finaliser les détails du conteneur",
      "nextStep2": "Vous recevrez un email avec les documents nécessaires",
      "nextStep3": "Le paiement sera traité selon vos conditions habituelles"
    },
    "reject": {
      "loading": "Chargement…",
      "errorTitle": "Erreur de refus",
      "errorGeneric": "Une erreur est survenue lors du refus",
      "tokenInvalid": "Token de refus invalide",
      "errorReasonsTitle": "Raisons possibles :",
      "errorReason1": "Le lien a expiré",
      "errorReason2": "La demande a déjà été acceptée ou refusée",
      "errorReason3": "Le token est invalide",
      "errorContact": "Si vous pensez qu'il s'agit d'une erreur, veuillez contacter le client directement.",
      "rejectedTitle": "Demande refusée",
      "rejectedHeadline": "Vous avez refusé cette demande de transport.",
      "rejectedBody": "Le client a été notifié par email.",
      "summaryTitle": "Récapitulatif de la demande refusée",
      "labels": {
        "bookingId": "ID Réservation",
        "route": "Trajet",
        "volume": "Volume",
        "weight": "Poids",
        "proposedPrice": "Prix proposé",
        "rejectionReason": "Raison du refus :"
      },
      "infoTitle": "Information",
      "infoBody": "Le client pourra soumettre une nouvelle demande avec des conditions différentes si nécessaire.",
      "formTitle": "Refuser cette demande",
      "formIntro": "Vous êtes sur le point de refuser cette demande de transport.",
      "addReason": "Ajouter une raison (optionnel)",
      "reasonLabel": "Raison du refus (optionnel)",
      "reasonPlaceholder": "Ex : Prix trop élevé, délais trop courts, itinéraire non disponible…",
      "reasonHint": "Cette information sera communiquée au client",
      "warningTitle": "Attention :",
      "warningBody": "Cette action est irréversible. Le client sera immédiatement notifié par email de votre refus.",
      "submitting": "Refus en cours…",
      "submit": "Confirmer le refus",
      "helpText": "Si vous avez des questions avant de refuser, contactez-nous par email."
    }
  },
  "marketing": {
    "pricing": {
      "header": {
        "login": "Connexion",
        "register": "Inscription"
      },
      "hero": {
        "title": "Des tarifs simples et transparents",
        "subtitle": "Choisissez la formule adaptée à votre activité de transport maritime. Commencez gratuitement, évoluez selon vos besoins.",
        "monthly": "Mensuel",
        "yearly": "Annuel",
        "yearlyBadge": "-1 mois offert"
      },
      "popular": "Populaire",
      "currency": {
        "onQuote": "Sur devis",
        "free": "Gratuit",
        "perMonth": "/mois",
        "yearlyPrice": "{price}/an (11 mois)"
      },
      "stats": {
        "users": "Utilisateurs",
        "shipments": "Expéditions",
        "commission": "Commission",
        "support": "Support"
      },
      "features": {
        "rates": "Recherche de tarifs",
        "bookings": "Réservations",
        "dashboard": "Tableau de bord",
        "wiki": "Wiki Maritime",
        "userManagement": "Gestion des utilisateurs",
        "csvImport": "Import CSV",
        "apiAccess": "Accès API",
        "customUI": "Interface personnalisée",
        "dedicatedKam": "KAM dédié"
      },
      "values": {
        "unlimited": "Illimité",
        "shipmentsPerYear": "12/an",
        "shipmentsUnlimited": "Illimitées",
        "supportNone": "Aucun",
        "supportEmail": "Email",
        "supportDirect": "Direct",
        "supportKam": "KAM dédié"
      },
      "plans": {
        "bronze": {
          "name": "Bronze",
          "description": "Pour démarrer et tester la plateforme",
          "cta": "Commencer gratuitement"
        },
        "silver": {
          "name": "Silver",
          "description": "Pour les équipes en croissance",
          "cta": "Choisir Silver"
        },
        "gold": {
          "name": "Gold",
          "description": "Pour les entreprises établies",
          "cta": "Choisir Gold"
        },
        "platinium": {
          "name": "Platinium",
          "description": "Solutions sur mesure",
          "cta": "Nous contacter"
        }
      },
      "footer": "Tous les prix sont en euros HT. Facturation annuelle = 11 mois."
    },
    "common": {
      "lastUpdated": "Dernière mise à jour : Janvier 2025"
    },
    "privacy": {
      "badge": "Protection des données",
      "title1": "Politique de",
      "title2": "Confidentialité",
      "intro": "Chez Xpeditis, la protection de vos données personnelles est une priorité absolue. Cette politique explique comment nous collectons, utilisons et protégeons vos informations.",
      "sections": {
        "data": {
          "title": "1. Données collectées",
          "content": "Nous collectons les données suivantes :\n\n• **Données d'identification** : nom, prénom, adresse email professionnelle, numéro de téléphone\n• **Données professionnelles** : nom de l'entreprise, fonction, numéro SIRET\n• **Données de connexion** : adresse IP, logs de connexion, données de navigation\n• **Données de transaction** : historique des réservations, devis, factures\n• **Données de communication** : échanges avec notre service client"
        },
        "use": {
          "title": "2. Utilisation des données",
          "content": "Vos données sont utilisées pour :\n\n• Fournir et améliorer nos services de réservation de fret maritime\n• Gérer votre compte et vos préférences\n• Traiter vos demandes de devis et réservations\n• Vous envoyer des communications commerciales (avec votre consentement)\n• Assurer la sécurité de notre plateforme\n• Respecter nos obligations légales et réglementaires"
        },
        "protection": {
          "title": "3. Protection des données",
          "content": "Nous mettons en œuvre des mesures de sécurité robustes :\n\n• Chiffrement SSL/TLS pour toutes les communications\n• Chiffrement des données sensibles au repos (AES-256)\n• Authentification à deux facteurs disponible\n• Audits de sécurité réguliers\n• Formation continue de nos équipes\n• Hébergement sur des serveurs certifiés ISO 27001"
        },
        "rights": {
          "title": "4. Vos droits",
          "content": "Conformément au RGPD, vous disposez des droits suivants :\n\n• **Droit d'accès** : obtenir une copie de vos données personnelles\n• **Droit de rectification** : corriger vos données inexactes\n• **Droit à l'effacement** : demander la suppression de vos données\n• **Droit à la portabilité** : recevoir vos données dans un format structuré\n• **Droit d'opposition** : vous opposer au traitement de vos données\n• **Droit de limitation** : limiter le traitement de vos données\n\nPour exercer ces droits, contactez-nous à : privacy@xpeditis.com"
        },
        "transfers": {
          "title": "5. Transferts internationaux",
          "content": "Vos données peuvent être transférées vers des pays hors UE dans le cadre de nos services de fret maritime international. Ces transferts sont encadrés par :\n\n• Des clauses contractuelles types approuvées par la Commission européenne\n• Des certifications adéquates (ex: Privacy Shield pour certains prestataires)\n• Le consentement explicite pour certains transferts spécifiques"
        },
        "retention": {
          "title": "6. Conservation des données",
          "content": "Nous conservons vos données selon les durées suivantes :\n\n• **Données de compte** : durée de la relation commerciale + 3 ans\n• **Données de transaction** : 10 ans (obligations comptables)\n• **Données de connexion** : 1 an\n• **Données marketing** : 3 ans après le dernier contact\n\nÀ l'expiration de ces délais, vos données sont supprimées ou anonymisées."
        }
      },
      "contact": {
        "title": "Des questions ?",
        "body": "Pour toute question concernant notre politique de confidentialité ou vos données personnelles, contactez notre Délégué à la Protection des Données."
      }
    },
    "terms": {
      "badge": "Cadre juridique",
      "title1": "Conditions Générales",
      "title2": "d'Utilisation",
      "intro": "Ces conditions régissent votre utilisation de la plateforme Xpeditis. Veuillez les lire attentivement avant d'utiliser nos services.",
      "sections": {
        "purpose": {
          "title": "1. Objet et acceptation",
          "content": "Les présentes Conditions Générales d'Utilisation (CGU) régissent l'utilisation de la plateforme Xpeditis, accessible à l'adresse www.xpeditis.com.\n\nEn accédant à notre plateforme et en utilisant nos services, vous acceptez sans réserve les présentes CGU. Si vous n'acceptez pas ces conditions, vous ne devez pas utiliser nos services.\n\nXpeditis se réserve le droit de modifier ces CGU à tout moment. Les utilisateurs seront informés de toute modification par email et/ou notification sur la plateforme."
        },
        "services": {
          "title": "2. Description des services",
          "content": "Xpeditis propose une plateforme B2B de réservation de fret maritime permettant :\n\n• La recherche et comparaison de tarifs de transport maritime\n• La réservation de conteneurs auprès de compagnies maritimes partenaires\n• Le suivi en temps réel des expéditions\n• La gestion documentaire (Bill of Lading, certificats, etc.)\n• L'accès à un tableau de bord analytique\n\nXpeditis agit en qualité d'intermédiaire technologique et ne se substitue pas aux transporteurs maritimes dans l'exécution des prestations de transport."
        },
        "account": {
          "title": "3. Inscription et compte utilisateur",
          "content": "**Conditions d'inscription**\nL'inscription est réservée aux professionnels du transport et de la logistique (transitaires, commissionnaires, etc.). L'utilisateur doit fournir des informations exactes et complètes.\n\n**Responsabilité du compte**\nL'utilisateur est responsable de la confidentialité de ses identifiants et de toutes les activités effectuées sous son compte. Il s'engage à notifier immédiatement Xpeditis en cas d'utilisation non autorisée.\n\n**Suspension et résiliation**\nXpeditis peut suspendre ou résilier un compte en cas de violation des CGU, d'activité frauduleuse ou de non-paiement."
        },
        "pricing": {
          "title": "4. Tarification et paiement",
          "content": "**Tarifs affichés**\nLes tarifs affichés sur la plateforme sont indicatifs et peuvent varier selon la disponibilité et les conditions du marché. Le tarif définitif est confirmé lors de la validation de la réservation.\n\n**Modalités de paiement**\nLes paiements s'effectuent par virement bancaire ou carte bancaire. Les factures sont payables selon les conditions convenues (généralement 30 jours).\n\n**Frais supplémentaires**\nDes frais additionnels peuvent s'appliquer (surcharges carburant, frais portuaires, etc.). Ces frais sont clairement indiqués avant validation."
        },
        "liability": {
          "title": "5. Responsabilité",
          "content": "**Limitation de responsabilité**\nXpeditis agit en tant qu'intermédiaire technologique. La responsabilité du transport incombe aux compagnies maritimes selon leurs conditions générales et les conventions internationales applicables.\n\n**Force majeure**\nXpeditis ne peut être tenue responsable des retards ou annulations dus à des cas de force majeure (intempéries, grèves, pandémies, etc.).\n\n**Disponibilité de la plateforme**\nXpeditis s'efforce de maintenir la plateforme disponible 24h/24. Cependant, des interruptions peuvent survenir pour maintenance ou raisons techniques."
        },
        "ip": {
          "title": "6. Propriété intellectuelle",
          "content": "Tous les éléments de la plateforme Xpeditis (logo, design, textes, logiciels, bases de données) sont protégés par les droits de propriété intellectuelle.\n\nL'utilisateur s'engage à :\n• Ne pas reproduire, modifier ou distribuer le contenu de la plateforme\n• Ne pas utiliser les données à des fins concurrentielles\n• Ne pas tenter de désassembler ou décompiler le logiciel\n• Respecter les marques et logos de Xpeditis et de ses partenaires"
        },
        "law": {
          "title": "7. Droit applicable et litiges",
          "content": "**Droit applicable**\nLes présentes CGU sont régies par le droit français.\n\n**Résolution des litiges**\nEn cas de litige, les parties s'engagent à rechercher une solution amiable. À défaut, les tribunaux de Paris seront seuls compétents.\n\n**Médiation**\nConformément aux dispositions du Code de la consommation, l'utilisateur peut recourir gratuitement au service de médiation auquel Xpeditis est adhérent."
        }
      },
      "contact": {
        "title": "Besoin de précisions ?",
        "body": "Pour toute question concernant nos conditions générales d'utilisation, notre équipe juridique est à votre disposition."
      }
    },
    "cookies": {
      "badge": "Transparence",
      "title1": "Politique de",
      "title2": "Cookies",
      "intro": "Découvrez comment nous utilisons les cookies pour améliorer votre expérience sur Xpeditis et comment vous pouvez gérer vos préférences.",
      "introBoxTitle": "Qu'est-ce qu'un cookie ?",
      "introBoxBody1": "Un cookie est un petit fichier texte stocké sur votre appareil (ordinateur, tablette, smartphone) lorsque vous visitez un site web. Les cookies permettent au site de mémoriser vos actions et préférences sur une période donnée.",
      "introBoxBody2": "Les cookies ne contiennent pas d'informations personnellement identifiables et ne peuvent pas accéder aux données stockées sur votre appareil.",
      "typesTitle": "Types de cookies utilisés",
      "typesSubtitle": "Nous utilisons différents types de cookies sur notre plateforme",
      "required": "Requis",
      "optional": "Optionnel",
      "tableHeaders": {
        "name": "Nom",
        "purpose": "Finalité",
        "duration": "Durée"
      },
      "types": {
        "essential": {
          "title": "Cookies essentiels",
          "description": "Nécessaires au fonctionnement du site"
        },
        "analytics": {
          "title": "Cookies analytiques",
          "description": "Nous aident à améliorer notre plateforme"
        },
        "marketing": {
          "title": "Cookies marketing",
          "description": "Permettent de personnaliser les publicités"
        },
        "functional": {
          "title": "Cookies fonctionnels",
          "description": "Améliorent votre expérience utilisateur"
        }
      },
      "purposes": {
        "session_id": "Maintien de votre session de connexion",
        "csrf_token": "Protection contre les attaques CSRF",
        "cookie_consent": "Mémorisation de vos préférences cookies",
        "_ga": "Google Analytics - Identification des visiteurs",
        "_gid": "Google Analytics - Identification des sessions",
        "_gat": "Google Analytics - Limitation du taux de requêtes",
        "_fbp": "Facebook Pixel - Suivi des conversions",
        "li_fat_id": "LinkedIn Insight - Attribution marketing",
        "hubspotutk": "HubSpot - Identification des visiteurs",
        "language": "Mémorisation de votre langue préférée",
        "theme": "Mémorisation du thème (clair/sombre)",
        "recent_searches": "Historique de vos recherches récentes"
      },
      "durations": {
        "session": "Session",
        "year1": "1 an",
        "years2": "2 ans",
        "hours24": "24 heures",
        "minute1": "1 minute",
        "months3": "3 mois",
        "days30": "30 jours",
        "months13": "13 mois"
      },
      "manageTitle": "Comment gérer vos cookies ?",
      "manageIntro": "Vous pouvez à tout moment modifier vos préférences en matière de cookies :",
      "manageBullet1": "Via notre bandeau de consentement accessible en bas de chaque page",
      "manageBullet2": "Dans les paramètres de votre navigateur (Chrome, Firefox, Safari, Edge)",
      "manageBullet3": "En utilisant des outils tiers de gestion des cookies",
      "manageNote": "Note : La désactivation de certains cookies peut affecter votre expérience sur notre plateforme.",
      "contact": {
        "title": "Des questions sur les cookies ?",
        "body": "Notre équipe est disponible pour répondre à toutes vos questions concernant l'utilisation des cookies sur notre plateforme."
      }
    },
    "about": {
      "badge": "Notre histoire",
      "title1": "Révolutionner le fret maritime,",
      "title2": "une réservation à la fois",
      "intro": "Fondée en 2021, Xpeditis est née d'une vision simple : rendre le fret maritime aussi simple qu'une réservation de vol. Nous connectons les transitaires du monde entier avec les plus grandes compagnies maritimes.",
      "mission": {
        "title": "Notre Mission",
        "body": "Démocratiser l'accès au fret maritime en offrant une plateforme technologique de pointe qui simplifie la recherche, la comparaison et la réservation de transport maritime — pour les professionnels comme pour les nouveaux exportateurs."
      },
      "vision": {
        "title": "Notre Vision",
        "body": "Devenir la référence mondiale du fret maritime digital, en connectant chaque expéditeur à chaque prestataire, partout dans le monde, avec la transparence et l'efficacité que mérite le commerce international."
      },
      "stats": {
        "clients": "Clients actifs",
        "carriers": "Compagnies maritimes",
        "countries": "Pays couverts",
        "bookings": "Réservations/an"
      },
      "valuesTitle": "Nos Valeurs",
      "valuesSubtitle": "Les principes qui guident chacune de nos décisions",
      "values": {
        "excellence": {
          "title": "Excellence",
          "description": "Nous visons l'excellence dans chaque aspect de notre plateforme, en offrant une expérience utilisateur de premier ordre."
        },
        "transparency": {
          "title": "Transparence",
          "description": "Tarifs contractuels, zéro intermédiaire superflu, zéro surprise. Nos clients savent exactement ce qu'ils paient — et pourquoi."
        },
        "collaboration": {
          "title": "Collaboration",
          "description": "Le succès se construit ensemble. Nous travaillons main dans la main avec nos clients, nos prestataires et nos partenaires pour atteindre leurs objectifs."
        },
        "innovation": {
          "title": "Innovation",
          "description": "Nous repoussons constamment les limites de la technologie pour révolutionner le fret maritime — IA documentaire, tracking temps réel, comparateur algorithmique."
        }
      },
      "timelineTitle": "Notre Parcours",
      "timelineSubtitle": "De l'idée au lancement, notre aventure en 4 étapes",
      "timeline": {
        "2023": {
          "title": "L'idée naît",
          "description": "Xpeditis émerge d'un constat partagé : le fret maritime mérite mieux que ses processus archaïques. La vision prend forme."
        },
        "2024": {
          "title": "Les fondations",
          "description": "Conception de la maquette, structuration du projet et constitution d'une première équipe autour d'une ambition commune."
        },
        "2025": {
          "title": "Le prototype prend vie",
          "description": "Développement du prototype et renforcement des équipes lead et tech pour poser les bases d'une plateforme robuste et scalable."
        },
        "2026": {
          "title": "Le lancement",
          "description": "Xpeditis ouvre ses portes. L'objectif est clair : devenir la plateforme #1 du fret maritime B2B en Europe."
        }
      },
      "teamTitle": "Notre Équipe",
      "teamSubtitle": "Des experts passionnés par le maritime et la technologie",
      "team": {
        "ceo": {
          "role": "CEO & Co-fondateur",
          "bio": "Ex-directeur chez Maersk, 20 ans d'expérience dans le shipping"
        },
        "cto": {
          "role": "CTO & Co-fondatrice",
          "bio": "Ex-Google, experte en plateformes B2B et systèmes distribués"
        },
        "coo": {
          "role": "COO",
          "bio": "Ex-CMA CGM, spécialiste des opérations maritimes internationales"
        },
        "vpSales": {
          "role": "VP Sales",
          "bio": "15 ans d'expérience commerciale dans le secteur logistique"
        },
        "vpEng": {
          "role": "VP Engineering",
          "bio": "Ex-Uber Freight, expert en systèmes de réservation temps réel"
        },
        "vpProduct": {
          "role": "VP Product",
          "bio": "Ex-Flexport, passionnée par l'UX et l'innovation produit"
        }
      },
      "cta": {
        "title": "Rejoignez l'aventure Xpeditis",
        "body": "Que vous soyez transitaire à la recherche d'une solution moderne ou talent souhaitant rejoindre une équipe passionnée, nous avons hâte de vous rencontrer.",
        "createAccount": "Créer un compte",
        "viewCareers": "Voir les offres d'emploi"
      }
    },
    "contact": {
      "badge": "Nous contacter",
      "title1": "Une question ?",
      "title2": "Nous sommes là pour vous",
      "intro": "Notre équipe est disponible pour répondre à toutes vos questions sur notre plateforme, nos services et nos tarifs. N'hésitez pas à nous contacter !",
      "methods": {
        "email": {
          "title": "Email",
          "description": "Envoyez-nous un email",
          "value": "contact@xpeditis.com"
        },
        "phone": {
          "title": "Téléphone",
          "description": "Appelez-nous",
          "value": "+33 1 23 45 67 89"
        },
        "chat": {
          "title": "Chat en direct",
          "description": "Discutez avec notre équipe",
          "value": "Disponible 24/7"
        },
        "support": {
          "title": "Support",
          "description": "Support client",
          "value": "support@xpeditis.com"
        }
      },
      "form": {
        "title": "Envoyez-nous un message",
        "description": "Remplissez le formulaire ci-dessous et nous vous répondrons dans les plus brefs délais.",
        "firstName": "Prénom",
        "firstNamePlaceholder": "Jean",
        "lastName": "Nom",
        "lastNamePlaceholder": "Dupont",
        "email": "Email",
        "emailPlaceholder": "jean.dupont@exemple.com",
        "phone": "Téléphone",
        "phonePlaceholder": "+33 6 12 34 56 78",
        "company": "Entreprise",
        "companyPlaceholder": "Votre entreprise",
        "subject": "Sujet",
        "message": "Message",
        "messagePlaceholder": "Comment pouvons-nous vous aider ?",
        "submit": "Envoyer le message",
        "submitting": "Envoi en cours...",
        "successTitle": "Message envoyé !",
        "successBody": "Merci pour votre message. Notre équipe vous répondra dans les 24 heures.",
        "sendAnother": "Envoyer un autre message",
        "genericError": "Une erreur est survenue lors de l'envoi. Veuillez réessayer."
      },
      "subjects": {
        "placeholder": "Sélectionnez un sujet",
        "demo": "Demande de démonstration",
        "pricing": "Questions sur les tarifs",
        "partnership": "Partenariat",
        "support": "Support technique",
        "press": "Relations presse",
        "careers": "Recrutement",
        "other": "Autre"
      },
      "office": {
        "title": "Notre bureau",
        "subtitle": "Retrouvez-nous à Paris ou contactez-nous par email.",
        "hqBadge": "Siège social",
        "city": "Paris",
        "address": "123 Avenue des Champs-Élysées",
        "postalCode": "75008 Paris, France",
        "phone": "+33 1 23 45 67 89",
        "email": "paris@xpeditis.com"
      },
      "hours": {
        "title": "Horaires d'ouverture",
        "weekdays": "Lundi - Vendredi",
        "weekdaysHours": "9h00 - 18h00",
        "saturday": "Samedi",
        "saturdayHours": "10h00 - 14h00",
        "sunday": "Dimanche",
        "closed": "Fermé",
        "supportNote": "* Support technique disponible 24/7 pour les clients Enterprise"
      },
      "afterSubmit": {
        "badge": "Après votre envoi",
        "title": "Que se passe-t-il après l'envoi de votre message ?",
        "commitmentTitle": "Notre engagement",
        "commitmentBody1": "Dès réception de votre demande, un de nos experts logistiques analyse votre profil et vos besoins. Vous recevrez une réponse personnalisée ou une invitation pour une démonstration de la plateforme ",
        "commitmentHighlight": "sous 48 heures ouvrées.",
        "securityTitle": "Sécurité",
        "securityBody1": "Vos informations sont protégées et traitées conformément à notre ",
        "securityBody2": ". Aucune donnée n'est partagée avec des tiers sans votre accord.",
        "privacyLink": "politique de confidentialité"
      },
      "quickAccess": {
        "badge": "Accès rapide",
        "title": "Besoin d'une réponse immédiate ?",
        "pricingTitle": "Tarification instantanée",
        "pricingBody1": "N'attendez pas notre retour pour vos prix. Utilisez notre moteur ",
        "pricingBody2": " pour obtenir une cotation de fret maritime en moins de 60 secondes.",
        "pricingHighlight": "Click&Ship",
        "pricingCta": "Accéder au Dashboard",
        "wikiTitle": "Aide rapide",
        "wikiBody1": "Une question sur les Incoterms ou la documentation export ? Notre ",
        "wikiBody2": " contient déjà les réponses aux questions les plus fréquentes.",
        "wikiHighlight": "Wiki Maritime",
        "wikiCta": "Consulter le Wiki"
      }
    },
    "security": {
      "badge": "Sécurité maximale",
      "title1": "Votre sécurité,",
      "title2": "notre priorité",
      "intro": "Chez Xpeditis, nous mettons en œuvre les meilleures pratiques de sécurité pour protéger vos données et garantir la continuité de vos opérations.",
      "featuresTitle": "Mesures de sécurité",
      "featuresSubtitle": "Une infrastructure robuste pour protéger vos données",
      "features": {
        "encryption": {
          "title": "Chiffrement de bout en bout",
          "description": "Toutes les communications sont chiffrées avec TLS 1.3. Vos données sensibles sont chiffrées au repos avec AES-256."
        },
        "auth": {
          "title": "Authentification sécurisée",
          "description": "Authentification à deux facteurs (2FA) disponible. Mots de passe hashés avec Argon2id, le standard le plus robuste."
        },
        "infrastructure": {
          "title": "Infrastructure certifiée",
          "description": "Hébergement sur AWS avec certifications ISO 27001, SOC 2 Type II et conformité RGPD."
        },
        "monitoring": {
          "title": "Surveillance 24/7",
          "description": "Monitoring continu de notre infrastructure. Détection et réponse aux incidents en temps réel."
        },
        "audits": {
          "title": "Audits réguliers",
          "description": "Tests de pénétration annuels par des experts indépendants. Programme de bug bounty actif."
        },
        "continuity": {
          "title": "Plan de continuité",
          "description": "Sauvegardes automatiques quotidiennes. Plan de reprise d'activité testé régulièrement."
        }
      },
      "certificationsTitle": "Certifications & Conformité",
      "certificationsSubtitle": "Nos engagements validés par des organismes indépendants",
      "certifications": {
        "iso": {
          "name": "ISO 27001",
          "description": "Système de management de la sécurité de l'information"
        },
        "soc2": {
          "name": "SOC 2 Type II",
          "description": "Contrôles de sécurité, disponibilité et confidentialité"
        },
        "gdpr": {
          "name": "RGPD",
          "description": "Conformité au Règlement Général sur la Protection des Données"
        },
        "pcidss": {
          "name": "PCI DSS",
          "description": "Norme de sécurité des données de paiement"
        }
      },
      "practicesTitle": "Nos pratiques de sécurité",
      "practicesSubtitle": "Une approche proactive de la sécurité à chaque étape",
      "practices": {
        "secureDev": {
          "title": "Développement sécurisé",
          "item1": "Revue de code systématique",
          "item2": "Analyse statique du code (SAST)",
          "item3": "Tests de sécurité automatisés",
          "item4": "Gestion des dépendances"
        },
        "dataProtection": {
          "title": "Protection des données",
          "item1": "Minimisation des données collectées",
          "item2": "Pseudonymisation des données",
          "item3": "Contrôle d'accès granulaire",
          "item4": "Journalisation des accès"
        },
        "incidentResponse": {
          "title": "Réponse aux incidents",
          "item1": "Équipe de sécurité dédiée",
          "item2": "Procédures de notification",
          "item3": "Analyse post-incident",
          "item4": "Amélioration continue"
        }
      },
      "report": {
        "title": "Signaler une vulnérabilité",
        "body": "Vous avez découvert une faille de sécurité ? Nous prenons très au sérieux la sécurité de notre plateforme. Contactez notre équipe de sécurité pour un signalement responsable."
      }
    },
    "compliance": {
      "badge": "Conformité européenne",
      "title1": "Conformité",
      "title2": "RGPD",
      "intro": "Xpeditis s'engage à respecter le Règlement Général sur la Protection des Données (RGPD) et à garantir vos droits en matière de protection des données personnelles.",
      "badges": {
        "compliant": "Conforme RGPD",
        "dpo": "DPO désigné"
      },
      "rightsTitle": "Vos droits RGPD",
      "rightsSubtitle": "Le RGPD vous confère des droits renforcés sur vos données personnelles",
      "rights": {
        "access": {
          "title": "Droit d'accès",
          "description": "Obtenez une copie de toutes les données personnelles que nous détenons sur vous."
        },
        "rectification": {
          "title": "Droit de rectification",
          "description": "Faites corriger vos données personnelles si elles sont inexactes ou incomplètes."
        },
        "erasure": {
          "title": "Droit à l'effacement",
          "description": "Demandez la suppression de vos données personnelles (« droit à l'oubli »)."
        },
        "portability": {
          "title": "Droit à la portabilité",
          "description": "Recevez vos données dans un format structuré, lisible par machine."
        }
      },
      "rightsCta": {
        "text": "Pour exercer vos droits, connectez-vous à votre compte ou contactez notre DPO.",
        "login": "Accéder à mon compte",
        "dpo": "Contacter le DPO"
      },
      "principlesTitle": "Nos principes de protection des données",
      "principlesSubtitle": "Des principes fondamentaux qui guident notre traitement des données",
      "principles": {
        "minimization": {
          "title": "Minimisation des données",
          "description": "Nous ne collectons que les données strictement nécessaires à nos services."
        },
        "retention": {
          "title": "Limitation de conservation",
          "description": "Vos données sont conservées uniquement le temps nécessaire."
        },
        "integrity": {
          "title": "Intégrité et confidentialité",
          "description": "Vos données sont protégées contre tout accès non autorisé."
        },
        "transparency": {
          "title": "Transparence",
          "description": "Nous vous informons clairement sur l'utilisation de vos données."
        }
      },
      "measuresTitle": "Mesures de protection",
      "measuresSubtitle": "Des mesures techniques et organisationnelles pour assurer la sécurité de vos données",
      "measures": {
        "technical": {
          "title": "Mesures techniques",
          "item1": "Chiffrement des données au repos et en transit",
          "item2": "Authentification multi-facteurs",
          "item3": "Journalisation des accès aux données",
          "item4": "Sauvegardes chiffrées régulières",
          "item5": "Pseudonymisation des données sensibles"
        },
        "organizational": {
          "title": "Mesures organisationnelles",
          "item1": "Délégué à la Protection des Données (DPO) désigné",
          "item2": "Formation régulière des employés",
          "item3": "Politiques de sécurité documentées",
          "item4": "Processus de gestion des incidents",
          "item5": "Audits de conformité réguliers"
        }
      },
      "register": {
        "title": "Registre des traitements",
        "body": "Conformément à l'article 30 du RGPD, nous tenons un registre des activités de traitement des données personnelles. Ce registre documente :",
        "item1": "Les finalités de chaque traitement",
        "item2": "Les catégories de données traitées",
        "item3": "Les destinataires des données",
        "item4": "Les durées de conservation",
        "item5": "Les mesures de sécurité appliquées"
      },
      "dpo": {
        "title": "Contacter notre DPO",
        "body": "Notre Délégué à la Protection des Données est à votre disposition pour toute question relative au traitement de vos données personnelles ou à l'exercice de vos droits.",
        "privacyLink": "Politique de confidentialité"
      }
    },
    "blog": {
      "badge": "Blog Xpeditis",
      "title1": "Actualités & Insights",
      "title2": "du fret maritime",
      "intro": "Restez informé des dernières tendances du transport maritime, découvrez nos guides pratiques et suivez l'actualité de Xpeditis.",
      "searchPlaceholder": "Rechercher un article…",
      "categories": {
        "all": "Tous les articles",
        "industry": "Industrie maritime",
        "technology": "Technologie",
        "guides": "Guides pratiques",
        "news": "Actualités"
      },
      "allTitle": "Tous les articles",
      "articlesCount": "{count} articles",
      "featuredBadge": "À la une",
      "readArticle": "Lire l'article",
      "noResults": {
        "title": "Aucun article trouvé",
        "body": "Essayez de modifier vos filtres ou votre recherche"
      },
      "loadMore": "Charger plus d'articles",
      "featured": {
        "title": "L'avenir du fret maritime : comment l'IA transforme la logistique",
        "excerpt": "Découvrez comment l'intelligence artificielle révolutionne la gestion des expéditions maritimes et optimise les chaînes d'approvisionnement mondiales.",
        "author": "Marie Lefebvre",
        "date": "15 janvier 2025",
        "readTime": "8 min"
      },
      "articles": {
        "incoterms": {
          "title": "Guide complet des Incoterms 2020 pour le transport maritime",
          "excerpt": "Tout ce que vous devez savoir sur les règles Incoterms et leur application dans le fret maritime international.",
          "author": "Thomas Martin",
          "date": "10 janvier 2025",
          "readTime": "12 min"
        },
        "costs": {
          "title": "Comment optimiser vos coûts de transport maritime en 2025",
          "excerpt": "Stratégies et conseils pratiques pour réduire vos dépenses logistiques sans compromettre la qualité de service.",
          "author": "Sophie Bernard",
          "date": "8 janvier 2025",
          "readTime": "6 min"
        },
        "ports": {
          "title": "Les plus grands ports européens : classement 2025",
          "excerpt": "Analyse des performances des principaux ports européens et tendances du trafic conteneurisé.",
          "author": "Jean-Pierre Durand",
          "date": "5 janvier 2025",
          "readTime": "10 min"
        },
        "funding": {
          "title": "Xpeditis lève 15M€ pour accélérer son expansion",
          "excerpt": "Notre série A nous permet de renforcer notre équipe et d'étendre notre présence en Europe.",
          "author": "Jean-Pierre Durand",
          "date": "3 janvier 2025",
          "readTime": "4 min"
        },
        "green": {
          "title": "Décarbonation du transport maritime : où en sommes-nous ?",
          "excerpt": "État des lieux des initiatives environnementales dans le secteur maritime et perspectives pour 2030.",
          "author": "Claire Moreau",
          "date": "28 décembre 2024",
          "readTime": "9 min"
        },
        "api": {
          "title": "APIs et intégrations : comment connecter votre TMS à Xpeditis",
          "excerpt": "Guide technique pour intégrer notre plateforme avec vos systèmes de gestion existants.",
          "author": "Alexandre Petit",
          "date": "22 décembre 2024",
          "readTime": "15 min"
        },
        "documents": {
          "title": "Les documents essentiels pour l'export maritime",
          "excerpt": "Check-list complète des documents requis pour vos expéditions maritimes internationales.",
          "author": "Thomas Martin",
          "date": "18 décembre 2024",
          "readTime": "7 min"
        }
      },
      "newsletter": {
        "title": "Restez informé",
        "body": "Abonnez-vous à notre newsletter pour recevoir les derniers articles et actualités du fret maritime directement dans votre boîte mail.",
        "emailPlaceholder": "votre@email.com",
        "subscribe": "S'abonner",
        "disclaimer": "En vous inscrivant, vous acceptez notre politique de confidentialité. Désabonnement possible à tout moment."
      }
    },
    "careers": {
      "badge": "Rejoignez-nous",
      "title1": "Construisons ensemble",
      "title2": "le futur du maritime",
      "intro": "Rejoignez une équipe passionnée qui révolutionne le fret maritime. Des défis stimulants, une culture bienveillante et des opportunités de croissance uniques vous attendent.",
      "viewJobs": "Voir les offres",
      "learnMore": "En savoir plus",
      "stats": {
        "employees": "Employés",
        "nationalities": "Nationalités",
        "offices": "Bureaux en Europe",
        "womenTech": "Femmes dans la tech"
      },
      "benefitsTitle": "Pourquoi nous rejoindre ?",
      "benefitsSubtitle": "Nous investissons dans le bien-être et le développement de nos équipes",
      "benefits": {
        "health": {
          "title": "Mutuelle Premium",
          "description": "Couverture santé complète pour vous et votre famille"
        },
        "remote": {
          "title": "Télétravail Flexible",
          "description": "Travaillez d'où vous voulez, jusqu'à 3 jours par semaine"
        },
        "wellbeing": {
          "title": "Bien-être au Travail",
          "description": "Salle de sport, fruits frais, et événements d'équipe"
        },
        "learning": {
          "title": "Formation Continue",
          "description": "2 000€/an de budget formation et conférences"
        },
        "international": {
          "title": "Équipe Internationale",
          "description": "Travaillez avec des talents de 15 nationalités"
        },
        "stockOptions": {
          "title": "Stock Options",
          "description": "Participez à la croissance de l'entreprise"
        }
      },
      "cultureTitle": "Notre culture",
      "cultureBody": "Chez Xpeditis, nous croyons que les meilleures idées viennent d'équipes diverses et inclusives. Nous valorisons l'autonomie, la créativité et le feedback constructif.",
      "culture": {
        "item1": "Transparence totale sur les décisions et les résultats",
        "item2": "Feedback continu et culture de l'amélioration",
        "item3": "Équilibre vie pro/perso respecté",
        "item4": "Célébration des succès collectifs"
      },
      "jobsTitle": "Nos offres d'emploi",
      "jobsSubtitle": "Trouvez le poste qui correspond à vos ambitions",
      "filters": {
        "allDepartments": "Tous les départements",
        "allLocations": "Toutes les villes"
      },
      "departments": {
        "Engineering": "Engineering",
        "Product": "Produit",
        "Sales": "Commercial",
        "Customer Success": "Customer Success",
        "Data": "Data"
      },
      "locations": {
        "Paris": "Paris",
        "Rotterdam": "Rotterdam",
        "Hambourg": "Hambourg"
      },
      "jobs": {
        "frontend": {
          "title": "Senior Frontend Engineer",
          "description": "Rejoignez notre équipe frontend pour développer la prochaine génération de notre plateforme.",
          "req1": "5+ ans d'expérience en développement frontend",
          "req2": "Maîtrise de React, TypeScript et Next.js",
          "req3": "Expérience avec les design systems",
          "req4": "Capacité à mentorer des développeurs juniors"
        },
        "backend": {
          "title": "Backend Engineer (Node.js)",
          "description": "Construisez des APIs scalables pour connecter les transitaires aux compagnies maritimes.",
          "req1": "3+ ans d'expérience en Node.js/NestJS",
          "req2": "Maîtrise de PostgreSQL et Redis",
          "req3": "Connaissance des architectures microservices",
          "req4": "Expérience avec Docker et Kubernetes appréciée"
        },
        "pm": {
          "title": "Product Manager",
          "description": "Définissez la vision produit et priorisez les fonctionnalités avec notre équipe.",
          "req1": "4+ ans d'expérience en product management B2B",
          "req2": "Expérience dans la logistique ou le shipping appréciée",
          "req3": "Capacité à analyser les données et définir les KPIs",
          "req4": "Excellentes compétences en communication"
        },
        "ae": {
          "title": "Account Executive",
          "description": "Développez notre portefeuille clients aux Pays-Bas et en Belgique.",
          "req1": "3+ ans d'expérience en vente B2B",
          "req2": "Connaissance du secteur maritime/logistique",
          "req3": "Maîtrise du néerlandais et de l'anglais",
          "req4": "Capacité à gérer des cycles de vente longs"
        },
        "csm": {
          "title": "Customer Success Manager",
          "description": "Accompagnez nos clients dans l'utilisation de la plateforme et maximisez leur satisfaction.",
          "req1": "2+ ans d'expérience en customer success",
          "req2": "Expérience avec les outils CRM (HubSpot, Salesforce)",
          "req3": "Excellent relationnel et sens du service",
          "req4": "Capacité à former et accompagner les utilisateurs"
        },
        "data": {
          "title": "Data Analyst",
          "description": "Analysez les données de shipping pour optimiser notre plateforme et nos processus.",
          "req1": "3+ ans d'expérience en data analysis",
          "req2": "Maîtrise de SQL, Python et des outils BI",
          "req3": "Expérience avec le shipping/logistics appréciée",
          "req4": "Capacité à communiquer les insights aux équipes"
        }
      },
      "jobCard": {
        "remote": "Remote OK",
        "profile": "Profil recherché :",
        "apply": "Postuler",
        "learnMore": "En savoir plus"
      },
      "noJobs": {
        "title": "Aucune offre trouvée",
        "body": "Essayez de modifier vos filtres"
      },
      "cta": {
        "title": "Pas de poste correspondant ?",
        "body": "Envoyez-nous une candidature spontanée ! Nous sommes toujours à la recherche de talents passionnés pour rejoindre notre aventure.",
        "spontaneous": "Candidature spontanée"
      }
    },
    "press": {
      "badge": "Espace Presse",
      "title1": "Espace Presse",
      "title2": "Xpeditis",
      "intro": "Retrouvez tous nos communiqués de presse, ressources médias et informations pour les journalistes. Notre équipe communication est à votre disposition.",
      "pressKit": "Kit Presse",
      "pressContact": "Contact Presse",
      "stats": {
        "funding": "Levée de fonds",
        "clients": "Clients actifs",
        "carriers": "Compagnies maritimes",
        "countries": "Pays couverts"
      },
      "releasesTitle": "Communiqués de Presse",
      "releasesSubtitle": "Les dernières actualités officielles de Xpeditis",
      "releases": {
        "seriesA": {
          "title": "Xpeditis lève 15 millions d'euros pour accélérer son expansion européenne",
          "date": "15 janvier 2025",
          "excerpt": "La startup française de fret maritime digital annonce une levée de fonds Série A menée par Partech et Eurazeo.",
          "category": "Financement"
        },
        "clients500": {
          "title": "Xpeditis franchit le cap des 500 clients actifs",
          "date": "8 janvier 2025",
          "excerpt": "La plateforme B2B de fret maritime confirme sa position de leader en Europe avec une croissance de 200% en 2024.",
          "category": "Croissance"
        },
        "cmaCgm": {
          "title": "Partenariat stratégique avec CMA CGM",
          "date": "15 décembre 2024",
          "excerpt": "Xpeditis intègre l'offre complète du groupe CMA CGM, offrant encore plus de choix à ses utilisateurs.",
          "category": "Partenariat"
        },
        "tracking": {
          "title": "Lancement de nouvelles fonctionnalités de tracking en temps réel",
          "date": "1er décembre 2024",
          "excerpt": "La plateforme enrichit son offre avec un système de suivi des conteneurs amélioré et des notifications proactives.",
          "category": "Produit"
        },
        "rotterdam": {
          "title": "Ouverture du bureau de Rotterdam",
          "date": "15 novembre 2024",
          "excerpt": "Xpeditis poursuit son expansion avec l'ouverture d'un nouveau bureau aux Pays-Bas pour servir le marché Benelux.",
          "category": "Expansion"
        }
      },
      "read": "Lire",
      "coverageTitle": "Ils parlent de nous",
      "coverageSubtitle": "Retrouvez les articles de presse mentionnant Xpeditis",
      "coverage": {
        "lesEchos": {
          "title": "Xpeditis, la startup qui digitalise le fret maritime",
          "date": "12 janvier 2025"
        },
        "bfm": {
          "title": "Comment l'IA révolutionne la logistique maritime",
          "date": "10 janvier 2025"
        },
        "jmm": {
          "title": "Les plateformes digitales au service des transitaires",
          "date": "5 janvier 2025"
        },
        "techEu": {
          "title": "French logistics startup Xpeditis raises €15M",
          "date": "15 janvier 2025"
        }
      },
      "kitTitle": "Kit Presse",
      "kitSubtitle": "Téléchargez tous les éléments dont vous avez besoin pour vos articles",
      "kit": {
        "visuals": {
          "title": "Logos & Visuels",
          "description": "Logos en haute résolution (PNG, SVG) et visuels de la plateforme",
          "format": "ZIP — 12 Mo"
        },
        "dossier": {
          "title": "Dossier de presse",
          "description": "Présentation complète de Xpeditis, chiffres clés et biographies des fondateurs",
          "format": "PDF — 4 Mo"
        },
        "videos": {
          "title": "Vidéos & B-Roll",
          "description": "Vidéos de présentation et séquences B-Roll pour vos reportages",
          "format": "MP4 — 250 Mo"
        },
        "download": "Télécharger"
      },
      "milestonesTitle": "Notre Parcours",
      "milestonesSubtitle": "Les grandes étapes de l'histoire de Xpeditis",
      "milestones": {
        "2021": "Création de Xpeditis",
        "2022": "Première version lancée",
        "2023": "Levée Seed de 3M€",
        "2024": "500 clients actifs",
        "2025": "Série A — 15M€"
      },
      "contact": {
        "title": "Contact Presse",
        "body": "Notre équipe communication est à votre disposition pour toute demande d'interview, d'information ou de partenariat média.",
        "relationsTitle": "Relations Presse",
        "emailLabel": "Email",
        "phoneLabel": "Téléphone",
        "responsibleTitle": "Responsable Communication",
        "responsibleRole": "Directrice Communication",
        "responsibleBio": "Disponible pour les interviews, demandes d'information et partenariats médias.",
        "quote": "Nous sommes toujours ravis d'échanger avec les journalistes sur notre mission de révolutionner le fret maritime. N'hésitez pas à nous contacter pour toute demande.",
        "quoteRole": " — CEO & Co-fondateur"
      }
    },
    "docs": {
      "metadataTitle": "Documentation API — Xpeditis",
      "metadataDescription": "Documentation de l'API Xpeditis pour intégrer le fret maritime dans vos applications."
    }
  },
  "auth": {
    "login": {
      "title": "Connexion",
      "subtitle": "Bienvenue ! Connectez-vous pour accéder à votre compte",
      "emailLabel": "Adresse email",
      "emailPlaceholder": "votre.email@entreprise.com",
      "passwordLabel": "Mot de passe",
      "passwordPlaceholder": "••••••••••",
      "rememberMe": "Se souvenir de moi",
      "forgotPassword": "Mot de passe oublié ?",
      "submit": "Se connecter",
      "submitting": "Connexion en cours…",
      "noAccount": "Vous n'avez pas de compte ?",
      "createAccount": "Créer un compte",
      "register": "S'inscrire",
      "orContinue": "Ou continuez avec",
      "continueWithGoogle": "Continuer avec Google",
      "continueWithMicrosoft": "Continuer avec Microsoft",
      "fieldErrors": {
        "emailRequired": "L'adresse email est requise",
        "emailInvalid": "L'adresse email n'est pas valide",
        "passwordRequired": "Le mot de passe est requis",
        "passwordMin": "Le mot de passe doit contenir au moins 6 caractères"
      },
      "errors": {
        "network": "Impossible de se connecter au serveur. Vérifiez votre connexion internet.",
        "invalidCredentials": "Email ou mot de passe incorrect",
        "inactive": "Votre compte a été désactivé. Contactez le support pour plus d'informations.",
        "notFound": "Aucun compte trouvé avec cet email",
        "incorrectPassword": "Mot de passe incorrect",
        "rateLimit": "Trop de tentatives de connexion. Veuillez réessayer dans quelques minutes.",
        "generic": "Une erreur est survenue. Veuillez réessayer."
      }
    },
    "register": {
      "title": "Créer un compte",
      "subtitle": "Commencez votre essai gratuit dès aujourd'hui",
      "stepAccount": "Votre compte",
      "stepOrganization": "Votre organisation",
      "orgStepTitle": "Votre organisation",
      "orgStepSubtitle": "Renseignez les informations de votre entreprise",
      "invitationTitle": "Accepter l'invitation",
      "invitationValid": "Invitation valide — créez votre mot de passe pour rejoindre l'organisation.",
      "invitationInvalid": "Le lien d'invitation est invalide ou expiré.",
      "invitationVerifying": "Vérification de l'invitation…",
      "firstNameLabel": "Prénom",
      "firstNamePlaceholder": "Jean",
      "lastNameLabel": "Nom",
      "lastNamePlaceholder": "Dupont",
      "emailLabel": "Adresse email",
      "emailPlaceholder": "jean.dupont@entreprise.com",
      "passwordLabel": "Mot de passe",
      "passwordPlaceholder": "••••••••••••",
      "passwordHint": "Au moins 12 caractères",
      "confirmPasswordLabel": "Confirmer le mot de passe",
      "organizationNameLabel": "Nom de l'organisation",
      "organizationNamePlaceholder": "Acme Logistics",
      "organizationTypeLabel": "Type d'organisation",
      "orgTypes": {
        "freightForwarder": "Transitaire",
        "shipper": "Expéditeur",
        "carrier": "Transporteur"
      },
      "sirenLabel": "SIREN",
      "sirenHint": "9 chiffres",
      "siretLabel": "SIRET",
      "siretOptional": "(optionnel)",
      "siretHint": "14 chiffres",
      "streetLabel": "Adresse",
      "streetPlaceholder": "123 Rue de la République",
      "cityLabel": "Ville",
      "cityPlaceholder": "Paris",
      "postalCodeLabel": "Code postal",
      "postalCodePlaceholder": "75001",
      "stateLabel": "Région",
      "stateOptional": "(optionnel)",
      "statePlaceholder": "Île-de-France",
      "countryLabel": "Pays",
      "countryPlaceholder": "FR",
      "countryHint": "Code ISO 2 lettres",
      "back": "Retour",
      "continue": "Continuer",
      "submit": "Créer mon compte",
      "submitting": "Création du compte…",
      "termsAccept": "En créant un compte, vous acceptez nos",
      "termsLink": "Conditions d'utilisation",
      "termsAnd": "et notre",
      "privacyLink": "Politique de confidentialité",
      "hasAccount": "Vous avez déjà un compte ?",
      "login": "Se connecter",
      "fieldErrors": {
        "firstNameMin": "Le prénom doit contenir au moins 2 caractères",
        "lastNameMin": "Le nom doit contenir au moins 2 caractères",
        "emailInvalid": "L'adresse email n'est pas valide",
        "passwordMin": "Le mot de passe doit contenir au moins 12 caractères",
        "passwordsMismatch": "Les mots de passe ne correspondent pas",
        "orgNameRequired": "Le nom de l'organisation est requis",
        "sirenRequired": "Le numéro SIREN est requis (9 chiffres)",
        "siretInvalid": "Le numéro SIRET doit contenir 14 chiffres",
        "addressRequired": "Tous les champs d'adresse sont requis"
      },
      "errors": {
        "emailTaken": "Cette adresse email est déjà utilisée",
        "generic": "Erreur lors de la création du compte"
      },
      "sidePanel": {
        "titleInvitation": "Rejoignez votre équipe",
        "titleDefault": "Rejoignez des milliers d'entreprises",
        "description": "Simplifiez votre logistique maritime et gagnez du temps sur chaque expédition.",
        "features": {
          "trial": {
            "title": "Essai gratuit de 30 jours",
            "description": "Testez toutes les fonctionnalités sans engagement"
          },
          "security": {
            "title": "Sécurité maximale",
            "description": "Vos données sont protégées et chiffrées"
          },
          "support": {
            "title": "Support 24/7",
            "description": "Notre équipe est là pour vous accompagner"
          }
        },
        "stats": {
          "companies": "Entreprises",
          "countries": "Pays couverts",
          "support": "Support"
        }
      }
    },
    "sidePanel": {
      "title": "Simplifiez votre fret maritime",
      "description": "Accédez à des tarifs en temps réel de plus de 50 compagnies maritimes. Réservez, suivez et gérez vos expéditions LCL en quelques clics.",
      "features": {
        "instantRates": {
          "title": "Tarifs instantanés",
          "description": "Comparez les prix de toutes les compagnies en temps réel"
        },
        "booking": {
          "title": "Réservation simplifiée",
          "description": "Réservez vos conteneurs en moins de 5 minutes"
        },
        "tracking": {
          "title": "Suivi en temps réel",
          "description": "Suivez vos expéditions à chaque étape du voyage"
        }
      },
      "stats": {
        "carriers": "Compagnies",
        "shipments": "Expéditions",
        "satisfaction": "Satisfaction"
      }
    },
    "footerLinks": {
      "contact": "Contactez-nous",
      "privacy": "Politique de confidentialité",
      "terms": "Conditions générales",
      "cookies": "Politique de cookies",
      "compliance": "Conformité RGPD"
    },
    "forgotPassword": {
      "title": "Mot de passe oublié ?",
      "subtitle": "Entrez votre adresse email et nous vous enverrons un lien pour réinitialiser votre mot de passe.",
      "emailLabel": "Adresse email",
      "emailPlaceholder": "votre.email@entreprise.com",
      "submit": "Envoyer le lien de réinitialisation",
      "submitting": "Envoi en cours…",
      "backToLogin": "Retour à la connexion",
      "successTitle": "Email envoyé",
      "successMessage": "Si un compte est associé à <strong>{email}</strong>, vous recevrez un email avec les instructions pour réinitialiser votre mot de passe.",
      "successHint": "Pensez à vérifier vos spams si vous ne recevez rien d'ici quelques minutes.",
      "error": "Une erreur est survenue. Veuillez réessayer.",
      "sidePanel": {
        "title": "Sécurité avant tout",
        "description": "La protection de votre compte est notre priorité. Réinitialisez votre mot de passe en toute sécurité.",
        "features": {
          "secure": {
            "title": "Lien sécurisé",
            "description": "Le lien expire après 1 heure pour votre sécurité"
          },
          "email": {
            "title": "Email de confirmation",
            "description": "Vérifiez votre boîte de réception et vos spams"
          }
        }
      }
    },
    "resetPassword": {
      "title": "Nouveau mot de passe",
      "subtitle": "Choisissez un nouveau mot de passe sécurisé pour votre compte.",
      "invalidTokenTitle": "Lien invalide",
      "invalidTokenMessage": "Ce lien de réinitialisation est invalide. Veuillez faire une nouvelle demande.",
      "passwordLabel": "Nouveau mot de passe",
      "passwordHint": "Au moins 12 caractères",
      "confirmPasswordLabel": "Confirmer le mot de passe",
      "submit": "Réinitialiser le mot de passe",
      "submitting": "Réinitialisation…",
      "successTitle": "Mot de passe réinitialisé !",
      "successMessage": "Votre mot de passe a été modifié avec succès. Vous allez être redirigé vers la page de connexion…",
      "goToLogin": "Se connecter maintenant",
      "backToLogin": "Retour à la connexion",
      "requestNew": "Demander un nouveau lien",
      "errors": {
        "passwordMin": "Le mot de passe doit contenir au moins 12 caractères",
        "passwordsMismatch": "Les mots de passe ne correspondent pas",
        "generic": "Le lien de réinitialisation est invalide ou expiré."
      },
      "sidePanel": {
        "title": "Votre sécurité, notre priorité",
        "description": "Choisissez un mot de passe fort pour protéger votre compte et vos données.",
        "tips": [
          "Au moins 12 caractères",
          "Mélangez lettres, chiffres et symboles",
          "Évitez les mots du dictionnaire",
          "N'utilisez pas le même mot de passe ailleurs"
        ]
      }
    },
    "verifyEmail": {
      "verifyingTitle": "Vérification de votre email…",
      "verifyingSubtitle": "Un instant, nous validons votre adresse email.",
      "successTitle": "Email vérifié avec succès !",
      "successMessage": "Votre email a été vérifié avec succès. Vous allez être redirigé vers le tableau de bord dans quelques secondes…",
      "goToDashboard": "Aller au tableau de bord",
      "errorTitle": "Vérification échouée",
      "errorInvalidLink": "Lien de vérification invalide",
      "errorGeneric": "La vérification de l'email a échoué. Le lien a peut-être expiré.",
      "errorHint": "Le lien de vérification a peut-être expiré. Veuillez en demander un nouveau.",
      "backToLogin": "Retour à la connexion",
      "resend": "Renvoyer un email de vérification"
    }
  }
}
