{
  "app": {
    "title": "Dadycar",
    "subtitle": "Interface Installateur Télématique",
    "headerSubtitle": "Interface Installateur"
  },
  "auth": {
    "login": "Se connecter",
    "loginTitle": "Connexion",
    "loginSubtitle": "Accédez à votre espace installateur",
    "logout": "Se déconnecter",
    "email": "Adresse email",
    "password": "Mot de passe",
    "forgotPassword": "Mot de passe oublié ? Contactez l'admin",
    "loginError": "Identifiants incorrects",
    "role": "Installateur"
  },
  "header": {
    "settings": "Paramètres",
    "history": "Mes installations",
    "requests": "Demandes à planifier"
  },
  "requests": {
    "title": "Mes demandes d'installation",
    "subtitle": "{{count}} demande(s) reçue(s)",
    "untitled": "Client inconnu",
    "new": "Nouveau",
    "empty": "Aucune demande à planifier",
    "emptyHint": "Les demandes d'installation qui vous sont assignées apparaîtront ici.",
    "loadError": "Impossible de charger les demandes d'installation.",
    "close": "Fermer",
    "qty": "Qté {{count}}",
    "boxTypesCount": "{{count}} types de boîtiers",
    "receivedOn": "Reçue le {{date}}",
    "status": {
      "pending": "Nouvelle",
      "dates_proposed": "En attente client",
      "in_progress": "Planification en cours",
      "scheduled": "Confirmée",
      "client_counter": "Dates refusées",
      "cancelled": "Annulée"
    },
    "company": "Client",
    "boxType": "Type de boîtier",
    "vehiclesCount": "Véhicules",
    "vehicles": "{{count}} véhicule(s)",
    "location": "Lieu",
    "contact": "Contact",
    "phone": "Téléphone",
    "email": "Email",
    "scheduledFor": "Intervention planifiée le",
    "proposedDatesTitle": "Créneaux proposés",
    "awaitingClient": "En attente de la réponse du client.",
    "clientCounterTitle": "Le client a demandé d'autres dates",
    "proposeTitle": "Proposer 3 créneaux",
    "proposeHint": "Proposez trois créneaux distincts dans le futur. Le client en choisira un ou vous en proposera d'autres.",
    "slot": "Créneau {{n}}",
    "proposeSubmit": "Envoyer les créneaux",
    "proposing": "Envoi en cours...",
    "proposeSuccess": "Créneaux envoyés au client.",
    "proposeError": "Impossible d'envoyer les créneaux. Veuillez réessayer.",
    "backToList": "Toutes les demandes",
    "receivedLine": "Demande {{ref}} · reçue le {{date}}",
    "orderSummary": "Récapitulatif de la commande",
    "boxesTitle": "Boîtiers télématiques",
    "deliveryLocation": "Lieu de livraison",
    "deliverySites": "Sites de livraison",
    "unitsLabel": "{{count}} boîtier(s)",
    "noContact": "Aucun contact renseigné",
    "vehicleTitle": "Véhicule",
    "vehiclesTitle": "Véhicules",
    "noSite": "Sans site",
    "colPlate": "Immatriculation",
    "colVehicle": "Véhicule",
    "colYear": "Année",
    "colVin": "VIN",
    "colBox": "Boîtier",
    "colStatus": "Statut",
    "selectVehiclesTitle": "Sélectionnez les véhicules",
    "selectedCount": "{{count}} sélectionné(s)",
    "selectAll": "Tout sélectionner",
    "deselectAll": "Tout désélectionner",
    "selectSiteAll": "Sélectionner le site",
    "selectSiteNone": "Désélectionner le site",
    "proposeSlotsFor": "Proposer des créneaux ({{count}})",
    "groupSlotsLead": "Pour {{count}} véhicule(s)",
    "groupBadge": "Groupe {{n}}",
    "confirmGroup": "Confirmer le groupe",
    "cancel": "Annuler",
    "removeGroup": "Retirer le groupe",
    "draftGroupsTitle": "Groupes à proposer",
    "proposedGroupsTitle": "Groupes proposés",
    "reproposeOther": "Proposer d'autres créneaux",
    "startInstallation": "Démarrer l'installation",
    "scheduledFor": "Planifiée le {{date}}",
    "existingInstallTitle": "Installation en cours",
    "existingInstallBody": "Une installation non validée existe déjà pour ce véhicule et ce boîtier. Voulez-vous la continuer ou démarrer une nouvelle installation ?",
    "continueExisting": "Continuer la pose en cours",
    "startNewInstall": "Nouvelle installation",
    "remainingToGroup": "{{count}} véhicule(s) restant(s) à planifier",
    "allGrouped": "Tous les véhicules sont planifiés",
    "submitGroups": "Proposer {{count}} groupe(s)",
    "noVehicles": "Aucun véhicule sur cette demande.",
    "proposeGroupsSuccess": "Créneaux proposés au client.",
    "proposeGroupsError": "Impossible de proposer les créneaux. Veuillez réessayer.",
    "modelLabel": "Modèle",
    "vinLabel": "VIN",
    "clientTitle": "Client",
    "proposeSlotsTitle": "Proposez 3 créneaux d'installation",
    "proposeSlotsHint": "Sélectionnez 3 dates et horaires où vous êtes disponible.",
    "slotsCount": "{{done}}/3 créneaux",
    "slotUndefined": "Non défini",
    "slotDuplicate": "Vous avez proposé deux créneaux identiques. Chaque créneau doit avoir une date et un horaire différents.",
    "dateLabel": "Date",
    "timeLabel": "Horaire",
    "sendToClient": "Envoyer au client",
    "awaitingTitle": "En attente de confirmation du client",
    "awaitingBody": "Vous avez proposé les créneaux suivants. Le client peut en accepter un ou proposer d'autres dates.",
    "confirmedTitle": "Installation confirmée",
    "confirmedBody": "Le client a accepté le créneau suivant :",
    "clientRefusedTitle": "Le client a refusé vos dates et propose :",
    "orProposeNew": "Ou proposez 3 nouveaux créneaux ci-dessous.",
    "accept": "Accepter",
    "acceptSuccess": "Date confirmée. Le client et l'admin sont notifiés.",
    "acceptError": "Impossible de confirmer la date. Veuillez réessayer.",
    "confirmAcceptTitle": "Confirmer ce créneau ?",
    "confirmAcceptBody": "Vous allez confirmer le créneau suivant. Le client et l'admin seront notifiés.",
    "confirmAcceptCta": "Confirmer la date",
    "cancelledTitle": "Demande annulée",
    "cancelledBody": "Cette demande a été annulée (un autre créneau a été retenu ou la commande a changé).",
    "errors": {
      "dateRequired": "Ce créneau est obligatoire",
      "dateInvalid": "Date invalide",
      "dateFuture": "Le créneau doit être dans le futur",
      "dateDistinct": "Les trois créneaux doivent être différents"
    }
  },
  "history": {
    "title": "Mes installations",
    "subtitle": "{{count}} installation(s) enregistrée(s)",
    "newInstallation": "Nouvelle installation",
    "empty": "Aucune installation pour le moment",
    "emptyHint": "Démarrez votre première installation, elle apparaîtra ici.",
    "noPlate": "Sans immatriculation",
    "deviceUnknown": "Boîtier non identifié",
    "noLocation": "Lieu non renseigné",
    "photos": "{{count}} photo(s)",
    "close": "Fermer",
    "resumeOrCorrect": "Reprendre / Corriger l'installation",
    "loadError": "Impossible de charger l'historique des installations.",
    "status": {
      "in_progress": "En cours",
      "validated": "Validée",
      "gps_error": "Erreur GPS",
      "pending": "En attente"
    }
  },
  "wizard": {
    "steps": {
      "vehicle": "Véhicule",
      "device": "Boîtier",
      "wiring": "Câblage",
      "validation": "Test",
      "photos": "Photos",
      "summary": "Envoi"
    },
    "stepTitles": {
      "vehicle": "Informations véhicule",
      "device": "Configuration boîtier",
      "wiring": "Câblage & implantation",
      "validation": "Test & validation",
      "photos": "Documentation photos",
      "summary": "Confirmation finale"
    },
    "stepSubtitle": "Étape {{current}} sur {{total}}",
    "contextNew": "Nouvelle installation",
    "contextNoImei": "IMEI non renseigné",
    "next": "Suivant",
    "back": "Retour",
    "validate": "Valider l'installation",
    "saving": "Enregistrement...",
    "saveError": "Erreur lors de l'enregistrement"
  },
  "vehicle": {
    "title": "Informations Véhicule",
    "licensePlate": "Immatriculation",
    "vin": "Numéro VIN",
    "vehicleCategory": "Catégorie véhicule",
    "odometerKm": "Km compteur",
    "hourMeter": "Horamètre (en minutes)",
    "fuelLevel": "Niveau carburant",
    "fuelLevelPlaceholder": "Sélectionner",
    "usageType": "Typologie d'usage",
    "usageTypePlaceholder": "Non renseigné",
    "vinPlaceholder": "17 CARACTÈRES",
    "vinCounter": "{{count}}/17 caractères",
    "fleetSearchHelper": "Tapez pour rechercher dans le parc (plaque ou VIN), ou saisissez librement",
    "fleetSearching": "Recherche dans le parc…",
    "fleetLinked": "Véhicule lié au parc DadyCar — VIN pré-rempli",
    "fleetNotLinked": "Véhicule introuvable dans le parc DadyCar : vous pouvez poursuivre, l'installation sera marquée « En attente » jusqu'au rattachement du véhicule au parc."
  },
  "device": {
    "title": "Informations Boîtier",
    "sectionTitle": "Boîtier",
    "simCardTitle": "Carte SIM",
    "stockOrigin": "Origine du stock",
    "stockOriginClient": "Client",
    "stockOriginInstaller": "Installateur",
    "stockOriginBoth": "Les deux",
    "productLine": "Gamme boîtier",
    "productLineOther": "AUTRE",
    "model": "Modèle",
    "telematicsBox": "Boîtier (catalogue)",
    "telematicsBoxPlaceholder": "Sélectionner un boîtier",
    "telematicsBoxHint": "Produit du catalogue DadyCar — le modèle et le câblage en découlent",
    "telematicsBoxUnavailable": "Catalogue indisponible — vérifiez la connexion à la plateforme",
    "modelPlaceholder": "Sélectionnez un modèle",
    "modelHint": "Saisissez le modèle exact du boîtier",
    "modelUnknown": "Modèle non reconnu — vérifiez l'IMEI",
    "imei": "IMEI complet",
    "imeiPlaceholder": "Ex:  862272081175053",
    "digits": "chiffres",
    "imeiChecking": "Vérification de l'IMEI…",
    "imeiFound": "IMEI reconnu par Teltonika",
    "imeiNotFound": "IMEI introuvable chez Teltonika — vérifiez le numéro",
    "imeiCheckError": "Impossible de vérifier l'IMEI pour le moment",
    "scanQr": "Scanner QR",
    "hasCanModule": "Module CAN additionnel",
    "canModuleNo": "NON",
    "canModuleYes": "OUI",
    "canModuleType": "Type de module CAN",
    "programNumber": "Numéro de programme",
    "programNumberHint": "Numéro de programme du boîtier (requis pour un boîtier à bus CAN)",
    "programNumberPlaceholder": "Ex: PRG-00123",
    "simCard": "SIM",
    "iccid": "ICCID de la carte SIM",
    "iccidNote": "La carte SIM est pré-configurée pour la télématique. L'APN est automatiquement assigné. Vérifiez que l'ICCID correspond à l'étiquette sur la carte.",
    "accessories": "Accessoires",
    "addAccessory": "+ Ajouter un accessoire",
    "closeList": "Fermer la liste",
    "noAccessory": "Aucun accessoire sélectionné"
  },
  "wiring": {
    "title": "Câblage",
    "sectionImplantation": "Implantation du boîtier",
    "sectionWires": "Câblage des fils",
    "location": "Lieu d'implantation",
    "locationPlaceholder": "Ex: Sous le tableau de bord, côté conducteur",
    "colWire": "Fil",
    "colAccessory": "Accessoire connecté",
    "wireTable": "Tableau de câblage des fils",
    "notConnected": "— Non connecté —",
    "noWiresForLine": "Aucun fil disponible pour ce modèle de boîtier.",
    "warning": "Vérifiez chaque connexion avant de procéder à la validation. Un mauvais câblage peut endommager le boîtier ou le véhicule."
  },
  "validation": {
    "title": "Validation de pose",
    "recapTitle": "Récapitulatif installation",
    "sectionInstaller": "Intervenant",
    "sectionValidation": "Validation de la pose",
    "summary": "Récapitulatif",
    "licensePlate": "Immatriculation",
    "vin": "VIN",
    "deviceType": "Type de boîtier",
    "imei": "IMEI",
    "iccid": "ICCID SIM",
    "installer": "Nom de l'installateur",
    "interventionDate": "Date d'intervention",
    "runGpsTest": "Lancer le test de connexion GPS",
    "configuring": "Configuration en cours...",
    "provisioningFailed": "La configuration du boîtier a échoué",
    "provisioningRetry": "Relancer la configuration",
    "provisioningRetrying": "Relance en cours...",
    "testRunning": "Test en cours...",
    "testSuccess": "Test réussi",
    "contactDetected": "Contact",
    "gpsPositionDate": "Date position GPS",
    "gpsStale": "Position trop ancienne (plus de {{max}} min) : ce n'est pas la preuve que le boîtier est posé dans ce véhicule. Mettez le contact, puis relancez le test.",
    "ageMinutes": "il y a {{count}} min",
    "ageHours": "il y a {{count}} h",
    "ageDays": "il y a {{count}} j",
    "gpsAddress": "Adresse GPS",
    "satelliteCount": "Satellites",
    "odometerKm": "Km compteur",
    "hourMeter": "Horamètre",
    "fuelLevel": "Niveau carburant",
    "fuelLevelPlaceholder": "Sélectionner",
    "reading": "Relevé",
    "sourceManual": "Saisie",
    "sourceGps": "Test GPS",
    "fuelLevels": {
      "none": "Vide (0%)",
      "quarter": "1/4 (25%)",
      "half": "1/2 (50%)",
      "three_quarters": "3/4 (75%)",
      "full": "Plein (100%)"
    }
  },
  "photos": {
    "title": "Photos",
    "sectionTitle": "Documentation photographique",
    "sectionComments": "Commentaires",
    "vin": "Photo(s) du VIN",
    "before_install": "Photo(s) avant la pose",
    "after_install": "Photo(s) après la pose",
    "odometer": "Photo(s) relevé Km compteur",
    "device_position": "Photo(s) position du boîtier",
    "incident": "Photos incidents éventuels",
    "add": "Ajouter",
    "dropHere": "Déposez vos photos ici ou cliquez pour sélectionner",
    "maxFiles": "(max {{count}} photos)",
    "required": "requis",
    "removePhoto": "Supprimer la photo",
    "notes": "Observations / Remarques",
    "notesPlaceholder": "Observations, incidents, remarques..."
  },
  "summary": {
    "title": "Récapitulatif final",
    "sectionFinal": "Récapitulatif final",
    "readyToSubmit": "Prêt à soumettre",
    "readyMessage": "Vérifiez les informations ci-dessus avant de valider l'installation. Les données seront envoyées à votre système de gestion.",
    "successMessage": "Installation validée avec succès !",
    "rowVehicle": "Véhicule",
    "rowDevice": "Boîtier",
    "rowAccessories": "Accessoires",
    "rowPhotos": "Photos jointes",
    "vehicle": "Véhicule",
    "device": "Boîtier",
    "wiring": "Câblage",
    "validation": "Test GPS",
    "photos": "Photos",
    "nbPhotos": "{{count}} photo(s) chargée(s)"
  },
  "success": {
    "title": "Installation validée !",
    "gpsErrorTitle": "Installation enregistrée — Erreur GPS",
    "gpsErrorMessage": "Le test GPS a échoué ou n'a remonté aucune donnée. L'installation est enregistrée mais devra être corrigée.",
    "pendingTitle": "Installation enregistrée — En attente",
    "pendingMessage": "Le véhicule n'a pas été trouvé dans le parc DadyCar. L'installation est complète et passera en « Validée » dès que le véhicule sera rattaché au parc.",
    "vehicle": "Véhicule",
    "installer": "Installateur",
    "viewHistory": "Voir l'historique"
  },
  "errors": {
    "required": "Ce champ est obligatoire",
    "invalidEmail": "Adresse e-mail invalide",
    "imeiLength": "L'IMEI doit comporter 15 chiffres",
    "imeiDigits": "L'IMEI doit contenir uniquement des chiffres",
    "vinLength": "Le VIN doit comporter 17 caractères",
    "licensePlateRequired": "L'immatriculation est obligatoire",
    "stockOriginRequired": "L'origine du stock est obligatoire",
    "telematicsBoxRequired": "Le boîtier du catalogue est obligatoire",
    "imeiRequired": "L'IMEI est obligatoire",
    "canModuleTypeRequired": "Le type de module CAN est obligatoire",
    "programNumberRequired": "Le numéro de programme est obligatoire",
    "locationRequired": "Le lieu d'implantation est obligatoire",
    "installerRequired": "Le nom de l'installateur est obligatoire",
    "interventionDateRequired": "La date d'intervention est obligatoire",
    "photoVinRequired": "Au moins une photo VIN est requise",
    "photoBeforeRequired": "Au moins une photo avant pose est requise",
    "photoAfterRequired": "Au moins une photo après pose est requise",
    "photoOdometerRequired": "Au moins une photo du relevé Km compteur est requise",
    "generic": "Une erreur est survenue. Veuillez réessayer."
  }
}
