{
  "maintenance": "Maintenance",
  "objects": "Objets",
  "tasks": "Tâches",
  "overdue": "En retard",
  "due_soon": "Bientôt dû",
  "triggered": "Déclenché",
  "ok": "OK",
  "all": "Tous",
  "new_object": "+ Nouvel objet",
  "templates_from": "Depuis un modèle",
  "templates_title": "Partir d'un modèle",
  "templates_task_count": "{n} tâches",
  "template_created": "Créé depuis un modèle",
  "onboard_hint": "Ajoutez votre premier objet pour suivre l'entretien.",
  "edit": "Modifier",
  "duplicate": "Dupliquer",
  "task_duplicated": "Tâche dupliquée",
  "object_duplicated": "Objet dupliqué",
  "delete": "Supprimer",
  "add_task": "+ Tâche",
  "complete": "Terminé",
  "completed": "Terminé",
  "skip": "Passer",
  "skipped": "Ignoré",
  "missed": "Manqué",
  "reset": "Réinitialiser",
  "snooze": "Mettre en attente",
  "snoozed": "En attente",
  "cancel": "Annuler",
  "bulk_select": "Sélectionner",
  "bulk_select_all": "Tout sélectionner",
  "bulk_n_selected": "{n} sélectionné(s)",
  "bulk_completed": "{n} tâches terminées",
  "bulk_archived": "{n} tâches archivées",
  "completing": "En cours…",
  "interval": "Intervalle",
  "warning": "Avertissement",
  "last_performed": "Dernière exécution",
  "next_due": "Prochaine échéance",
  "days_until_due": "Jours restants",
  "avg_duration": "Ø Durée",
  "trigger": "Déclencheur",
  "trigger_type": "Type de déclencheur",
  "threshold_above": "Limite supérieure",
  "threshold_below": "Limite inférieure",
  "threshold": "Seuil",
  "counter": "Compteur",
  "state_change": "Changement d'état",
  "runtime": "Durée de fonctionnement",
  "runtime_hours": "Durée cible (heures)",
  "target_value": "Valeur cible",
  "baseline": "Ligne de base",
  "target_changes": "Changements cibles",
  "for_minutes": "Pendant (minutes)",
  "time_based": "Temporel",
  "sensor_based": "Capteur",
  "manual": "Manuel",
  "one_time": "Unique",
  "weekdays": "Jours de semaine",
  "nth_weekday": "N-ième jour de la semaine du mois",
  "day_of_month": "Jour du mois",
  "recurrence_on_days": "Répéter le",
  "recurrence_occurrence": "Occurrence",
  "recurrence_weekday": "Jour de semaine",
  "recurrence_day": "Jour du mois (1–31)",
  "recurrence_last_day": "Dernier jour du mois",
  "recurrence_business_day": "Jours ouvrés uniquement (avancer depuis le week-end)",
  "recurrence_offset": "Décalage (jours, ±)",
  "recurrence_offset_help": "Décale la date de ±N jours, p. ex. -2 = deux jours avant.",
  "last_day_month": "Dernier jour du mois",
  "last_business_day_month": "Dernier jour ouvré",
  "ord_1": "1er",
  "ord_2": "2e",
  "ord_3": "3e",
  "ord_4": "4e",
  "ord_5": "5e",
  "ord_last": "Dernier",
  "day_word": "Jour",
  "interval_value": "Intervalle",
  "interval_unit": "Unité",
  "unit_days": "Jours",
  "unit_weeks": "Semaines",
  "unit_months": "Mois",
  "unit_years": "Années",
  "due_date": "Date d'échéance",
  "cleaning": "Nettoyage",
  "inspection": "Inspection",
  "replacement": "Remplacement",
  "calibration": "Étalonnage",
  "service": "Service",
  "reading": "Relevé",
  "custom": "Personnalisé",
  "history": "Historique",
  "cost": "Coût",
  "report_button": "Rapport",
  "report_title": "Rapport d'entretien",
  "report_generated": "Généré",
  "report_times_done": "Effectué",
  "report_total_cost": "Coût total",
  "report_every": "tous les {n} {unit}",
  "report_notes": "Notes",
  "report_col_type": "Type",
  "report_col_status": "Statut",
  "report_col_schedule": "Planning",
  "duration": "Durée",
  "both": "Les deux",
  "trigger_val": "Valeur du déclencheur",
  "complete_title": "Terminé : ",
  "checklist": "Checklist",
  "checklist_steps_optional": "Étapes de la checklist (optionnel)",
  "checklist_placeholder": "Nettoyer le filtre\nRemplacer le joint\nTester la pression",
  "checklist_help": "Une étape par ligne. Max 100 éléments.",
  "err_too_long": "{field} : trop long (max {n} caractères)",
  "err_too_short": "{field} : trop court (min {n} caractères)",
  "err_value_too_high": "{field} : trop grand (max {n})",
  "err_value_too_low": "{field} : trop petit (min {n})",
  "err_required": "{field} : champ obligatoire",
  "err_wrong_type": "{field} : mauvais type (attendu : {type})",
  "err_invalid_choice": "{field} : valeur non autorisée",
  "err_invalid_value": "{field} : valeur invalide",
  "feat_schedule_time": "Planification à l'heure",
  "feat_schedule_time_desc": "Les tâches arrivent à échéance à une heure précise plutôt qu'à minuit.",
  "schedule_time_optional": "Échéance à l'heure (optionnel, HH:MM)",
  "schedule_time_help": "Vide = minuit (défaut). Fuseau horaire HA.",
  "at_time": "à",
  "notes_optional": "Notes (optionnel)",
  "cost_optional": "Coût (optionnel)",
  "duration_minutes": "Durée en minutes (optionnel)",
  "days": "jours",
  "day": "jour",
  "today": "Aujourd'hui",
  "d_overdue": "j en retard",
  "no_tasks": "Aucune tâche de maintenance. Créez un objet pour commencer.",
  "no_tasks_short": "Aucune tâche",
  "no_history": "Aucun historique.",
  "show_all": "Tout afficher",
  "cost_duration_chart": "Coûts & Durée",
  "installed": "Installé",
  "confirm_delete_object": "Supprimer cet objet et toutes ses tâches ?",
  "confirm_delete_task": "Supprimer cette tâche ?",
  "min": "Min",
  "max": "Max",
  "save": "Enregistrer",
  "saving": "Enregistrement…",
  "edit_task": "Modifier la tâche",
  "new_task": "Nouvelle tâche de maintenance",
  "task_name": "Nom de la tâche",
  "maintenance_type": "Type de maintenance",
  "priority": "Priorité",
  "labels": "Étiquettes",
  "labels_placeholder": "p. ex. sécurité, saisonnier, visible-locataire",
  "labels_help": "Étiquettes séparées par des virgules pour le filtrage et les rapports.",
  "priority_low": "Basse",
  "priority_normal": "Normale",
  "priority_high": "Haute",
  "schedule_type": "Type de planification",
  "interval_days": "Intervalle (jours)",
  "warning_days": "Jours d'avertissement",
  "earliest_completion_days": "Achèvement au plus tôt (jours avant l'échéance)",
  "earliest_completion_days_help": "Laissez vide pour pouvoir terminer à tout moment. 0 = uniquement le jour de l'échéance ou après.",
  "last_performed_optional": "Dernière exécution (optionnel)",
  "interval_anchor": "Ancrage de l'intervalle",
  "anchor_completion": "Depuis la date de réalisation",
  "anchor_planned": "Depuis la date prévue (sans dérive)",
  "edit_object": "Modifier l'objet",
  "name": "Nom",
  "manufacturer_optional": "Fabricant (optionnel)",
  "model_optional": "Modèle (optionnel)",
  "serial_number_optional": "Numéro de série (optionnel)",
  "serial_number_label": "N/S",
  "documentation_url_label": "Manuel",
  "object_notes_label": "Notes",
  "sort_due_date": "Échéance",
  "sort_object": "Nom de l'objet",
  "sort_type": "Type",
  "sort_task_name": "Nom de la tâche",
  "all_objects": "Tous les objets",
  "tasks_lower": "tâches",
  "no_tasks_yet": "Pas encore de tâches",
  "add_first_task": "Ajouter la première tâche",
  "trigger_configuration": "Configuration du déclencheur",
  "entity_id": "ID d'entité",
  "comma_separated": "séparé par des virgules",
  "entity_logic": "Logique d'entité",
  "entity_logic_any": "N'importe quelle entité déclenche",
  "entity_logic_all": "Toutes les entités doivent déclencher",
  "entities": "entités",
  "attribute_optional": "Attribut (optionnel, vide = état)",
  "use_entity_state": "Utiliser l'état de l'entité (pas d'attribut)",
  "trigger_above": "Déclencher au-dessus de",
  "trigger_below": "Déclencher en dessous de",
  "for_at_least_minutes": "Pendant au moins (minutes)",
  "safety_interval_days": "Intervalle de sécurité (jours, optionnel)",
  "safety_interval": "Intervalle de sécurité (optionnel)",
  "delta_mode": "Mode delta",
  "from_state_optional": "État source (optionnel)",
  "to_state_optional": "État cible (optionnel)",
  "documentation_url_optional": "URL de documentation (optionnel)",
  "object_notes_optional": "Notes (facultatif)",
  "nfc_tag_id_optional": "ID tag NFC (optionnel)",
  "nfc_tags_empty_help": "Aucun tag NFC enregistré dans Home Assistant pour le moment.",
  "nfc_tags_open_settings": "Ouvrir les réglages des tags",
  "nfc_tags_refresh": "Actualiser",
  "environmental_entity_optional": "Capteur d'environnement (optionnel)",
  "environmental_entity_helper": "ex. sensor.temperature_exterieure — ajuste l'intervalle selon les conditions environnementales",
  "environmental_attribute_optional": "Attribut d'environnement (optionnel)",
  "nfc_tag_id": "ID tag NFC",
  "nfc_linked": "Tag NFC lié",
  "nfc_link_hint": "Cliquer pour associer un tag NFC",
  "responsible_user": "Utilisateur responsable",
  "shared_with": "Partagée avec (rotation)",
  "shared_with_help": "Choisissez plusieurs personnes pour partager cette tâche ; le responsable change à chaque achèvement.",
  "rotation_strategy": "Rotation",
  "rotation_none": "Pas de rotation",
  "rotation_round_robin": "À tour de rôle",
  "rotation_least_completed": "Le moins de complétions",
  "rotation_random": "Aléatoire",
  "no_user_assigned": "(Aucun utilisateur assigné)",
  "all_users": "Tous les utilisateurs",
  "my_tasks": "Mes tâches",
  "tab_calendar": "Calendrier",
  "cal_no_events": "Aucun entretien",
  "cal_window_7": "7 jours",
  "cal_window_14": "14 jours",
  "cal_window_30": "30 jours",
  "cal_window_365": "1 an",
  "cal_every_n_days": "tous les {n} jours",
  "cal_source_time": "Basé sur le temps",
  "cal_source_time_adaptive": "Basé sur le temps (adaptatif)",
  "cal_source_sensor": "Basé sur capteur",
  "cal_predicted": "prédit",
  "cal_confidence_high": "haute confiance",
  "cal_confidence_medium": "confiance moyenne",
  "cal_confidence_low": "faible confiance",
  "budget_monthly": "Budget mensuel",
  "budget_yearly": "Budget annuel",
  "groups": "Groupes",
  "new_group": "Nouveau groupe",
  "edit_group": "Modifier le groupe",
  "no_groups": "Aucun groupe pour l'instant",
  "delete_group": "Supprimer le groupe",
  "delete_group_confirm": "Supprimer le groupe '{name}' ?",
  "group_select_tasks": "Sélectionner les tâches",
  "group_name_required": "Nom requis",
  "description_optional": "Description (optionnel)",
  "selected": "Sélectionné",
  "loading_chart": "Chargement des données...",
  "hide_outliers": "Masquer les valeurs aberrantes (erreurs capteur)",
  "was_maintenance_needed": "Cette maintenance était-elle nécessaire ?",
  "feedback_needed": "Nécessaire",
  "feedback_not_needed": "Pas nécessaire",
  "feedback_not_sure": "Pas sûr",
  "suggested_interval": "Intervalle suggéré",
  "apply_suggestion": "Appliquer",
  "reanalyze": "Réanalyser",
  "reanalyze_result": "Nouvelle analyse",
  "reanalyze_insufficient_data": "Données insuffisantes pour une recommandation",
  "data_points": "points de données",
  "dismiss_suggestion": "Ignorer",
  "confidence_low": "Faible",
  "confidence_medium": "Moyen",
  "confidence_high": "Élevé",
  "recommended": "recommandé",
  "seasonal_awareness": "Conscience saisonnière",
  "edit_seasonal_overrides": "Modifier les facteurs saisonniers",
  "seasonal_overrides_title": "Facteurs saisonniers (override)",
  "seasonal_overrides_hint": "Facteur par mois (0.1–5.0). Vide = appris automatiquement.",
  "seasonal_override_invalid": "Valeur invalide",
  "seasonal_override_range": "Le facteur doit être entre 0.1 et 5.0",
  "clear_all": "Tout effacer",
  "seasonal_chart_title": "Facteurs saisonniers",
  "seasonal_learned": "Appris",
  "seasonal_manual": "Manuel",
  "month_jan": "Jan",
  "month_feb": "Fév",
  "month_mar": "Mar",
  "month_apr": "Avr",
  "month_may": "Mai",
  "month_jun": "Juin",
  "month_jul": "Juil",
  "month_aug": "Août",
  "month_sep": "Sep",
  "month_oct": "Oct",
  "month_nov": "Nov",
  "month_dec": "Déc",
  "sensor_prediction": "Prédiction capteur",
  "degradation_trend": "Tendance",
  "trend_rising": "En hausse",
  "trend_falling": "En baisse",
  "trend_stable": "Stable",
  "trend_insufficient_data": "Données insuffisantes",
  "days_until_threshold": "Jours avant le seuil",
  "threshold_exceeded": "Seuil dépassé",
  "environmental_adjustment": "Facteur environnemental",
  "sensor_prediction_urgency": "Le capteur prévoit le seuil dans ~{days} jours",
  "day_short": "jour",
  "weibull_reliability_curve": "Courbe de fiabilité",
  "weibull_failure_probability": "Probabilité de défaillance",
  "weibull_r_squared": "Ajustement R²",
  "beta_early_failures": "Défaillances précoces",
  "beta_random_failures": "Défaillances aléatoires",
  "beta_wear_out": "Usure",
  "beta_highly_predictable": "Très prévisible",
  "confidence_interval": "Intervalle de confiance",
  "confidence_conservative": "Conservateur",
  "confidence_aggressive": "Optimiste",
  "current_interval_marker": "Intervalle actuel",
  "recommended_marker": "Recommandé",
  "characteristic_life": "Durée de vie caractéristique",
  "chart_mini_sparkline": "Sparkline de tendance",
  "chart_history": "Historique coûts et durée",
  "chart_seasonal": "Facteurs saisonniers, 12 mois",
  "chart_weibull": "Courbe de fiabilité Weibull",
  "chart_sparkline": "Graphique valeur déclencheur",
  "days_progress": "Progression en jours",
  "qr_code": "Code QR",
  "qr_generating": "Génération du QR code…",
  "qr_error": "Impossible de générer le QR code.",
  "qr_error_no_url": "Aucune URL HA configurée. Veuillez définir une URL externe ou interne dans Paramètres → Système → Réseau.",
  "save_error": "Échec de l'enregistrement. Veuillez réessayer.",
  "qr_print": "Imprimer",
  "qr_download": "Télécharger SVG",
  "qr_action": "Action au scan",
  "qr_action_view": "Afficher les infos de maintenance",
  "qr_action_complete": "Marquer la maintenance comme terminée",
  "qr_url_mode": "Type de lien",
  "qr_mode_companion": "Companion App",
  "qr_mode_local": "Local (mDNS)",
  "qr_mode_server": "URL serveur",
  "overview": "Aperçu",
  "analysis": "Analyse",
  "recent_activities": "Activités récentes",
  "search_notes": "Rechercher dans les notes",
  "avg_cost": "Ø Coût",
  "no_advanced_features": "Aucune fonction avancée activée",
  "no_advanced_features_hint": "Activez « Intervalles adaptatifs » ou « Tendances saisonnières » dans les paramètres de l'intégration pour voir les données d'analyse ici.",
  "analysis_not_enough_data": "Pas encore assez de données pour l'analyse.",
  "analysis_not_enough_data_hint": "L'analyse Weibull nécessite au moins 5 maintenances terminées ; les tendances saisonnières apparaissent après 6+ points par mois.",
  "analysis_manual_task_hint": "Les tâches manuelles sans intervalle ne génèrent pas de données d'analyse.",
  "completions": "réalisations",
  "current": "Actuel",
  "shorter": "Plus court",
  "longer": "Plus long",
  "normal": "Normal",
  "disabled": "Désactivé",
  "compound_logic": "Logique composée",
  "compound": "Composé (plusieurs conditions)",
  "compound_logic_and": "ET — toutes les conditions doivent se déclencher",
  "compound_logic_or": "OU — une seule condition suffit",
  "compound_help": "Combinez plusieurs conditions de capteurs en un déclencheur.",
  "compound_no_conditions": "Aucune condition — ajoutez-en au moins une.",
  "compound_add_condition": "Ajouter une condition",
  "compound_condition": "Condition",
  "compound_remove_condition": "Supprimer la condition",
  "card_title": "Titre",
  "card_show_header": "Afficher l'en-tête avec statistiques",
  "card_show_actions": "Afficher les boutons d'action",
  "card_compact": "Mode compact",
  "card_max_items": "Nombre max (0 = tous)",
  "card_filter_status": "Filtrer par statut",
  "card_filter_status_help": "Vide = afficher tous les statuts.",
  "card_filter_objects": "Filtrer par objets",
  "card_filter_objects_help": "Vide = afficher tous les objets.",
  "card_filter_entities": "Filtrer par entités (entity_ids)",
  "card_filter_entities_help": "Choisissez des entités sensor / binary_sensor de cette intégration. Vide = toutes.",
  "card_loading_objects": "Chargement des objets…",
  "card_load_error": "Impossible de charger les objets — vérifiez la connexion WebSocket.",
  "card_no_tasks_title": "Aucune tâche de maintenance pour l'instant",
  "card_no_tasks_cta": "→ Créez-en une dans le panneau Maintenance",
  "no_objects": "Aucun objet pour l'instant.",
  "action_error": "Action échouée. Veuillez réessayer.",
  "area_id_optional": "Zone (optionnel)",
  "installation_date_optional": "Date d'installation (optionnel)",
  "warranty_expiry_optional": "Fin de garantie (optionnel)",
  "warranty": "Garantie",
  "warranty_valid_until": "valable jusqu'au {date}",
  "warranty_expires_in": "expire dans {days} jours",
  "warranty_expired": "expirée",
  "cal_past_windows": "Fenêtres passées",
  "cal_forward_windows": "Fenêtres à venir",
  "history_edit_title": "Modifier l'entrée d'historique",
  "history_edit_timestamp": "Horodatage",
  "manufacturer": "Fabricant",
  "model": "Modèle",
  "area": "Zone",
  "actions": "Actions",
  "view_mode_label": "Vue",
  "view_cards": "Vue cartes",
  "view_table": "Vue tableau",
  "objects_table_columns_label": "Colonnes du tableau d'objets",
  "objects_table_columns_hint": "Choisissez les colonnes affichées dans la vue tableau des objets.",
  "custom_icon_optional": "Icône (optionnel, ex. mdi:wrench)",
  "task_enabled": "Tâche activée",
  "skip_reason_prompt": "Ignorer cette tâche ?",
  "reason_optional": "Raison (optionnel)",
  "reset_date_prompt": "Marquer la tâche comme effectuée ?",
  "reset_date_optional": "Date de dernière exécution (optionnel, défaut : aujourd'hui)",
  "notes_label": "Notes",
  "documentation_label": "Documentation",
  "no_nfc_tag": "— Aucun tag —",
  "dashboard": "Tableau de bord",
  "tab_today": "Aujourd'hui",
  "palette_placeholder": "Rechercher objets et tâches…",
  "palette_no_results": "Aucun résultat",
  "palette_hint": "↑↓ naviguer · Entrée ouvrir · Échap fermer",
  "today_all_caught_up": "Tout est à jour ! Rien cette semaine.",
  "today_overdue": "En retard",
  "today_due_today": "À faire aujourd'hui",
  "today_this_week": "Cette semaine",
  "settings": "Paramètres",
  "settings_features": "Fonctions avancées",
  "settings_features_desc": "Activez ou désactivez les fonctions avancées. La désactivation les masque dans l'interface mais ne supprime pas les données.",
  "feat_adaptive": "Planification adaptative",
  "feat_adaptive_desc": "Apprendre les intervalles optimaux à partir de l'historique",
  "feat_predictions": "Prédictions capteurs",
  "feat_predictions_desc": "Prédire les dates de déclenchement par dégradation des capteurs",
  "feat_seasonal": "Ajustements saisonniers",
  "feat_seasonal_desc": "Ajuster les intervalles selon les tendances saisonnières",
  "feat_environmental": "Corrélation environnementale",
  "feat_environmental_desc": "Corréler les intervalles avec la température/humidité",
  "feat_budget": "Suivi budgétaire",
  "feat_budget_desc": "Suivre les dépenses de maintenance mensuelles et annuelles",
  "feat_groups": "Groupes de tâches",
  "feat_groups_desc": "Organiser les tâches en groupes logiques",
  "feat_checklists": "Checklists",
  "feat_checklists_desc": "Procédures multi-étapes pour la réalisation des tâches",
  "settings_general": "Général",
  "settings_default_warning": "Jours d'avertissement par défaut",
  "settings_panel_enabled": "Panneau latéral",
  "settings_panel_title": "Titre du panneau latéral",
  "settings_notifications": "Notifications",
  "settings_notify_service": "Service de notification",
  "test_notification": "Notification de test",
  "send_test": "Envoyer le test",
  "testing": "Envoi en cours…",
  "test_notification_success": "Notification de test envoyée",
  "test_notification_failed": "Échec de la notification de test",
  "settings_notify_due_soon": "Notifier quand bientôt dû",
  "settings_notify_overdue": "Notifier quand en retard",
  "settings_notify_triggered": "Notifier quand déclenché",
  "settings_interval_hours": "Intervalle de répétition (heures, 0 = une fois)",
  "settings_quiet_hours": "Heures de silence",
  "settings_quiet_start": "Début",
  "settings_quiet_end": "Fin",
  "settings_max_per_day": "Max notifications par jour (0 = illimité)",
  "settings_bundling": "Regrouper les notifications",
  "settings_bundle_threshold": "Seuil de regroupement",
  "settings_reminder_leads": "Rappels supplémentaires (jours avant l'échéance)",
  "settings_reminder_leads_hint": "Délais séparés par des virgules, p. ex. 14, 3, 0 — un rappel supplémentaire est envoyé chaque jour correspondant. Vide = désactivé.",
  "settings_actions": "Boutons d'action mobiles",
  "settings_action_complete": "Afficher le bouton 'Terminé'",
  "settings_action_skip": "Afficher le bouton 'Passer'",
  "settings_action_snooze": "Afficher le bouton 'Reporter'",
  "settings_weekly_digest": "Récapitulatif hebdomadaire",
  "settings_weekly_digest_hint": "Une notification récapitulative le lundi matin quand des tâches sont dues.",
  "settings_warranty_reminder": "Rappel d'expiration de garantie",
  "settings_warranty_reminder_days": "Jours avant l'expiration",
  "settings_warranty_reminder_hint": "Notifier une fois lorsque la garantie d'un objet expire dans ce nombre de jours.",
  "settings_snooze_hours": "Durée de report (heures)",
  "settings_budget": "Budget",
  "settings_currency": "Devise",
  "settings_budget_monthly": "Budget mensuel",
  "settings_budget_yearly": "Budget annuel",
  "settings_budget_alerts": "Alertes budgétaires",
  "settings_budget_threshold": "Seuil d'alerte (%)",
  "settings_import_export": "Import / Export",
  "settings_export_json": "Exporter JSON",
  "settings_export_yaml": "Exporter YAML",
  "settings_export_csv": "Exporter CSV",
  "settings_import_csv": "Importer CSV",
  "settings_import_placeholder": "Collez le contenu JSON ou CSV ici…",
  "settings_import_btn": "Importer",
  "settings_import_success": "{count} objets importés avec succès.",
  "settings_export_success": "Export téléchargé.",
  "settings_saved": "Paramètre enregistré.",
  "settings_include_history": "Inclure l'historique",
  "sort_alphabetical": "Alphabétique",
  "sort_due_soonest": "Échéance la plus proche",
  "sort_task_count": "Nombre de tâches",
  "sort_area": "Zone",
  "sort_assigned_user": "Utilisateur affecté",
  "sort_group": "Groupe",
  "groupby_none": "Aucun groupement",
  "groupby_area": "Par zone",
  "groupby_group": "Par groupe",
  "groupby_user": "Par utilisateur",
  "filter_label": "Filtre",
  "user_label": "Utilisateur",
  "sort_label": "Tri",
  "group_by_label": "Grouper par",
  "state_value_help": "Utilisez la valeur d'état HA (généralement en minuscules, p. ex. \"on\"/\"off\"). La casse est normalisée à l'enregistrement.",
  "target_changes_help": "Nombre de transitions correspondantes avant le déclenchement (par défaut : 1).",
  "qr_print_title": "Imprimer les QR codes",
  "qr_print_desc": "Générer une page imprimable de QR codes à découper et coller sur votre équipement.",
  "qr_print_load": "Charger les objets",
  "qr_print_filter": "Filtre",
  "qr_print_objects": "Objets",
  "qr_print_actions": "Actions",
  "qr_print_url_mode": "Type de lien",
  "qr_print_estimate": "QR codes estimés",
  "qr_print_over_limit": "limite à 200, affinez le filtre",
  "qr_print_generate": "Générer les QR codes",
  "qr_print_generating": "Génération…",
  "qr_print_ready": "QR codes prêts",
  "qr_print_print_button": "Imprimer",
  "qr_print_empty": "Rien à générer",
  "qr_action_skip": "Passer",
  "vacation_title": "Mode vacances",
  "vacation_active": "actif",
  "vacation_ended": "terminé",
  "vacation_desc": "Planifiez vos vacances : les notifications sont mises en pause pendant la période plus quelques jours tampon. Vous pouvez réactiver certaines tâches.",
  "vacation_enable": "Activer le mode vacances",
  "vacation_start": "Début",
  "vacation_end": "Fin",
  "vacation_buffer": "Tampon (jours)",
  "vacation_exempt_title": "Notifier malgré les vacances",
  "vacation_exempt_desc": "Choisissez les tâches qui doivent quand même notifier pendant les vacances (p. ex. chimie de piscine critique).",
  "vacation_load_tasks": "Charger les tâches",
  "vacation_preview_btn": "Afficher l'aperçu",
  "vacation_preview_affected": "tâches concernées",
  "vacation_event_due_soon": "bientôt dû",
  "vacation_event_overdue": "deviendra en retard",
  "vacation_event_triggered_est": "déclencheur capteur possible",
  "vacation_sensor_based": "(basé sur capteur)",
  "vacation_action_notify": "Notifier quand même",
  "vacation_action_unsilence": "Mettre en silence",
  "vacation_marked_complete": "Marqué comme terminé",
  "vacation_marked_skip": "Passé",
  "vacation_end_now": "Terminer les vacances maintenant",
  "unassigned": "Non assigné",
  "no_area": "Aucune zone",
  "has_overdue": "Tâches en retard",
  "object": "Objet",
  "settings_panel_access": "Accès au panneau",
  "settings_panel_access_desc": "Les administrateurs ont toujours un accès complet. Pour déléguer la création, la modification et la suppression à des non-administrateurs spécifiques, activez ceci et sélectionnez-les ci-dessous — les autres ne voient que Terminer et Ignorer.",
  "settings_operator_write": "Autoriser les utilisateurs sélectionnés à créer, modifier et supprimer",
  "settings_operator_write_desc": "Désactivé : seuls les administrateurs peuvent modifier le contenu. Activé : les utilisateurs ci-dessous ont aussi un accès complet.",
  "no_non_admin_users": "Aucun utilisateur non administrateur trouvé. Ajoutez-en dans Paramètres → Personnes.",
  "owner_label": "Propriétaire",
  "feat_completion_actions": "Actions de finalisation",
  "feat_completion_actions_desc": "Action HA par tâche lors de la finalisation + QR de finalisation rapide avec valeurs pré-définies.",
  "on_complete_action_title": "À la finalisation : déclencher une action HA (optionnel)",
  "on_complete_action_desc": "Appelle un service HA quand la tâche est terminée — p. ex. réinitialiser un compteur sur l'appareil.",
  "on_complete_action_service": "Service",
  "on_complete_action_target": "Entité cible",
  "on_complete_action_data": "Données (JSON, optionnel)",
  "on_complete_action_test": "Tester l'action",
  "on_complete_action_test_success": "Réussi",
  "on_complete_action_test_failed": "Échoué",
  "quick_complete_defaults_title": "Valeurs par défaut pour finalisation rapide (scans QR, optionnel)",
  "quick_complete_defaults_desc": "Valeurs pré-définies pour les scans QR de finalisation rapide. Sans ces valeurs, le QR ouvre la boîte de dialogue.",
  "quick_complete_defaults_notes": "Notes",
  "quick_complete_defaults_cost": "Coût",
  "quick_complete_defaults_duration": "Durée (minutes)",
  "quick_complete_defaults_feedback_none": "Aucun feedback",
  "quick_complete_defaults_feedback_needed": "Était nécessaire",
  "quick_complete_defaults_feedback_not_needed": "Non nécessaire",
  "quick_complete_success": "Terminé rapidement",
  "trigger_replaced": "Déclencheur remplacé",
  "add": "Ajouter",
  "show_stats": "Afficher les statistiques + graphiques",
  "hide_stats": "Masquer les statistiques",
  "adaptive_no_data": "Pas encore assez d'historique de réalisations pour l'analyse adaptative. Réalisez cette tâche encore quelques fois pour débloquer les recommandations d'intervalle et les courbes de fiabilité.",
  "suggestion_applied": "Intervalle suggéré appliqué",
  "vacation_mode": "Mode vacances",
  "vacation_status_active": "Actif maintenant",
  "vacation_status_scheduled": "Planifié",
  "vacation_status_inactive": "Inactif",
  "vacation_end_now_confirm": "Terminer les vacances immédiatement ?",
  "vacation_exempt_count": "exemptées",
  "vacation_advanced": "Avancé…",
  "vacation_open_panel": "Ouvrir dans le panneau",
  "enable": "Activer",
  "saved": "Enregistré",
  "budget_monthly_set": "Définir mensuel",
  "budget_yearly_set": "Définir annuel",
  "budget_advanced": "Devise, alertes…",
  "budget_open_panel": "Ouvrir dans le panneau",
  "groups_empty": "Aucun groupe pour le moment.",
  "group_new_placeholder": "Ajouter un groupe…",
  "group_delete_confirm": "Supprimer le groupe « {name} » ?",
  "groups_manage_tasks": "Gérer les affectations de tâches…",
  "groups_open_panel": "Ouvrir dans le panneau",
  "on_complete_action_target_hint": "Note : le domaine de l'entité doit correspondre au service — p. ex. 'button.press' ne fonctionne que sur button.*, 'counter.increment' seulement sur counter.*, 'input_button.press' seulement sur input_button.* etc. En cas de non-correspondance, l'action échoue silencieusement (HA journalise 'Referenced entities ... missing or not currently available').",
  "show_all_objects": "Afficher tous les objets",
  "show_all_tasks": "Effacer le filtre — afficher toutes les tâches",
  "filter_to_overdue": "Filtrer la liste sur les tâches en retard uniquement",
  "filter_to_due_soon": "Filtrer la liste sur les tâches bientôt dues uniquement",
  "filter_to_triggered": "Filtrer la liste sur les tâches déclenchées uniquement",
  "open_task": "Ouvrir la tâche",
  "show_details": "Afficher l'historique + statistiques",
  "hide_details": "Masquer les détails",
  "history_empty": "Aucun historique pour le moment.",
  "history_edit_button": "Modifier l'entrée",
  "total_cost": "Coût total",
  "times_performed": "Réalisée",
  "older_entries": "plus anciennes",
  "open_in_panel": "Ouvrir dans le panneau Maintenance",
  "skip_reason": "Raison du saut (facultatif)",
  "reset_to_date": "Réinitialiser la dernière réalisation au",
  "delete_task_confirm": "Supprimer cette tâche et son historique ?",
  "delete_object_confirm": "Supprimer cet objet et toutes ses tâches ?",
  "loading": "Chargement…",
  "archive": "Archiver",
  "undo": "Annuler",
  "task_archived": "Tâche archivée",
  "object_archived": "Objet archivé",
  "unarchive": "Désarchiver",
  "archived": "Archivé",
  "show_archived": "Afficher les archivés",
  "hide_archived": "Masquer les archivés",
  "confirm_archive_object": "Archiver cet objet et ses tâches ? L'historique est conservé et peut être restauré plus tard.",
  "settings_archive": "Archivage et conservation",
  "settings_archive_desc": "Mettez de côté les tâches ponctuelles terminées sans les supprimer. Les éléments archivés sont masqués et inactifs, mais conservent leur historique et leurs coûts.",
  "settings_archive_oneoff_days": "Archiver automatiquement les tâches ponctuelles terminées après (jours, 0 = désactivé)",
  "settings_delete_archived_oneoff_days": "Supprimer automatiquement les tâches ponctuelles archivées après (jours, 0 = jamais)",
  "archive_object": "Archiver l'objet",
  "unarchive_object": "Désarchiver l'objet",
  "documents": "Documents",
  "documents_empty": "Aucun document pour l'instant.",
  "doc_upload": "Téléverser un fichier",
  "doc_uploading": "Téléversement…",
  "doc_add_link": "Ajouter un lien",
  "doc_link_url": "URL (https://…)",
  "doc_link_title": "Titre (facultatif)",
  "doc_open": "Ouvrir",
  "doc_delete_confirm": "Supprimer « {name} » ?",
  "doc_too_large": "Fichier trop volumineux (max. 25 Mo).",
  "doc_upload_failed": "Échec du téléversement.",
  "completion_photo_optional": "Photo d'achèvement (facultatif)",
  "add_photo": "Ajouter une photo",
  "uploading": "Téléversement…",
  "remove": "Retirer",
  "doc_deduped": "Déjà stocké ailleurs — partagé, aucun espace supplémentaire.",
  "doc_dup_in_object": "Ce fichier est déjà attaché à cet objet.",
  "doc_link_invalid": "Seuls les liens http/https sont autorisés.",
  "doc_cat_manual": "Manuel",
  "doc_cat_warranty": "Garantie",
  "doc_cat_invoice": "Facture",
  "doc_cat_spare_parts": "Pièces détachées",
  "doc_cat_photo": "Photo",
  "doc_cat_other": "Autre",
  "doc_link_badge": "Lien",
  "doc_storage_title": "Stockage des documents",
  "doc_storage_saved": "Économisé par déduplication",
  "doc_storage_refresh": "Actualiser",
  "doc_download": "Télécharger",
  "doc_close": "Fermer",
  "doc_camera": "Prendre une photo",
  "doc_drop_hint": "Déposez les fichiers ici",
  "doc_task_none": "Aucun document lié à cette tâche.",
  "doc_link_existing": "Lier un document…",
  "doc_attach": "Lier",
  "doc_unlink": "Dissocier",
  "doc_page": "Page",
  "chart_range_7d": "7j",
  "chart_range_30d": "30j",
  "chart_range_90d": "90j",
  "chart_range_1y": "1a",
  "chart_since_service": "depuis le dernier entretien",
  "chart_no_stats": "Pas de statistiques à long terme pour cette entité — seules les valeurs des entretiens sont affichées",
  "auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit",
  "auto_complete_on_recovery_help": "Enregistre une exécution (met à jour la dernière réalisation) lorsque le déclencheur se résout de lui-même — p. ex. sel rechargé, filtre remplacé.",
  "doc_search": "Rechercher des documents…",
  "doc_search_none": "Aucun document correspondant",
  "link_device_optional": "Lier à un appareil existant (optionnel)",
  "parent_object_optional": "Objet parent (optionnel)",
  "parent_none": "(Aucun parent)",
  "paused": "En pause",
  "pause_object": "Mettre en pause",
  "resume_object": "Reprendre",
  "pause_until_prompt": "Gèle les calendriers de cet objet — rien n'arrive à échéance et rien ne notifie jusqu'à la reprise. Optionnellement, fixez une date de reprise automatique.",
  "pause_until_label": "Reprendre le (optionnel)",
  "object_paused": "Objet mis en pause",
  "object_resumed": "Objet repris — calendriers relancés",
  "object_paused_badge": "En pause",
  "paused_until_label": "jusqu'au",
  "replace_object": "Remplacer…",
  "replace_object_prompt": "Retire cet objet et crée un successeur. L'historique et les coûts restent archivés sur l'ancien ; les tâches et documents passent au nouveau, les compteurs repartent de zéro.",
  "replace_name_label": "Nom du successeur",
  "object_replaced": "Objet remplacé — successeur créé",
  "reading_unit_label": "Unité de relevé (p. ex. kWh, m³)",
  "reading_unit_help": "Affichée à côté de la valeur enregistrée lors de l'exécution de cette tâche.",
  "reading_value_label": "Valeur relevée",
  "reading_label": "Relevé",
  "settings_templates_label": "Galerie de modèles",
  "settings_templates_hint": "Décochez les modèles dont vous n'aurez jamais besoin — ils disparaissent des sélecteurs « Depuis un modèle » (panneau et config flow). Rien d'autre ne change ; réactivables à tout moment.",
  "worksheet": "Fiche de travail",
  "worksheet_scan_view": "Scanner pour ouvrir la tâche",
  "worksheet_scan_complete": "Scanner pour terminer",
  "worksheet_manual_excerpt": "Extrait du manuel",
  "worksheet_pages": "pages",
  "worksheet_printed": "Imprimé",
  "worksheet_never": "Jamais",
  "card_all_caught_up": "Tout est à jour — rien ne requiert d'attention",
  "postpone": "Reporter",
  "postpone_date_prompt": "Reporter cette échéance à quelle date ?",
  "postpone_date_label": "Nouvelle date d’échéance",
  "postponed": "Reporté",
  "postponed_to": "Reporté au",
  "season_window_label": "Fenêtre saisonnière (mois)",
  "season_window_hint": "Dû uniquement les mois sélectionnés ; les dates hors saison passent au mois actif suivant. Aucun = toute l’année.",
  "series_end_label": "Se termine",
  "series_end_never": "Jamais (répète indéfiniment)",
  "series_end_after_count": "Après un nombre de fois",
  "series_end_until": "À une date",
  "series_end_count_label": "Nombre de fois",
  "series_end_until_label": "Date de fin",
  "parts_section": "Pièces & consommables",
  "part_add": "Ajouter une pièce",
  "part_name": "Nom",
  "part_vendor": "Fabricant",
  "part_storage_location": "Lieu de stockage",
  "part_product_url": "URL du produit",
  "part_unit": "Unité",
  "part_cost": "Prix unitaire",
  "part_stock": "Stock",
  "part_reorder_threshold": "Seuil de réappro",
  "part_restock_quantity": "Quantité de réappro",
  "part_auto_buy": "Tâche d'achat auto si bas",
  "part_restock": "Ajuster le stock",
  "restock_quantity_label": "Quantité achetée",
  "consumes_parts_label": "Consomme des pièces",
  "parts_load_failed": "Impossible de charger les pièces de cet objet — les options de consommation de pièces sont indisponibles pour le moment.",
  "settings_export_selection": "Limiter aux objets sélectionnés (facultatif)",
  "settings_docs_archive": "Archive de documents (avec fichiers)",
  "settings_docs_archive_hint": "Les exports JSON/YAML/CSV ne contiennent que les réglages. Ce ZIP inclut le contenu des fichiers téléversés pour une restauration complète.",
  "settings_docs_export_btn": "Télécharger le ZIP des documents",
  "settings_docs_import_btn": "Restaurer le ZIP des documents",
  "settings_docs_import_success": "Restauré : {blobs} fichiers, {docs} documents",
  "adopt_problem_button": "Adopter les capteurs de problème",
  "adopt_problem_title": "Adopter les capteurs de problème",
  "adopt_problem_hint": "Transforme les capteurs de problème HA (erreurs d'imprimante, alertes de filtre, batterie faible) en tâches de maintenance qui se déclenchent tant que le problème est actif et se terminent lorsqu'il est résolu.",
  "adopt_problem_none": "Aucun capteur de problème non encore suivi n'a été trouvé.",
  "adopt_problem_active": "actif",
  "adopt_problem_ok": "ok",
  "adopt_problem_new_object": "(nouveau)",
  "adopt_problem_adopt": "Adopter la sélection",
  "adopt_problem_done": "{tasks} capteur(s) de problème adopté(s)",
  "views_label": "Vues",
  "views_none": "— Aucune vue —",
  "views_manage": "Enregistrer / gérer les vues",
  "views_dialog_title": "Vues enregistrées",
  "views_dialog_hint": "Enregistrez les filtres actuels comme une vue nommée réutilisable par tous.",
  "views_name_placeholder": "Nom de la vue",
  "views_save_current": "Enregistrer les filtres actuels",
  "views_none_yet": "Aucune vue enregistrée pour l'instant.",
  "close": "Fermer",
  "trigger_hint_now": "Le capteur indique {value} en ce moment.",
  "trigger_hint_above": "La tâche se déclenche dès que la valeur dépasse {target}.",
  "trigger_hint_below": "Elle se déclenche dès que la valeur passe sous {target}.",
  "trigger_hint_counter_delta": "Compte à partir de la valeur actuelle ({value}) : échéance à {due} (+{target}) ; le compteur repart après chaque exécution.",
  "trigger_hint_counter_delta_edit": "Compte l'usage depuis la dernière exécution : échéance après +{target} ; le compteur repart après chaque exécution.",
  "trigger_hint_counter_abs": "La tâche devient due dès que le capteur atteint {target}.",
  "trigger_hint_runtime": "La tâche devient due après {hours} h de fonctionnement cumulé ; le compteur repart après chaque exécution.",
  "trigger_hint_state_change": "La tâche devient due après {count} changement(s) d'état.",
  "trigger_hint_state_change_to": "La tâche devient due après {count} passage(s) à « {state} ».",
  "trigger_hint_state_now": "État actuel : {value}.",
  "adopt_problem_part": "Utilise la pièce : {name}",
  "label_filter": "Étiquette",
  "all_labels": "Toutes les étiquettes",
  "settings_notify_scope": "Notifier uniquement pour la vue",
  "settings_notify_scope_all": "Toutes les tâches",
  "settings_notify_scope_hint": "Seules les tâches correspondant aux filtres étiquette/utilisateur de la vue choisie envoient des rappels. Le statut, le tri et le regroupement de la vue sont ignorés ici.",
  "card_saved_view": "Vue enregistrée",
  "card_saved_view_none": "Aucune",
  "card_saved_view_help": "Applique les filtres statut, utilisateur et étiquette de la vue en plus des filtres ci-dessus. Le tri et le regroupement de la vue sont des réglages d'affichage du panneau et ne s'appliquent pas à la carte.",
  "doc_part_none": "Aucun document lié à cette pièce.",
  "settings_templates_toggle_group": "Activer ou désactiver tous les modèles de ce groupe",
  "setups_button": "Configurations suggérées",
  "setups_title": "Configurations suggérées (Beta)",
  "setups_hint": "Appareils d'intégrations prises en charge dont les capteurs de consommables peuvent piloter des tâches d'entretien. L'adoption crée l'objet et relie chaque tâche à son capteur — elle se déclenche quand le consommable s'épuise et se résout après le remplacement.",
  "setups_none": "Aucun appareil pris en charge avec des capteurs de consommables non reliés.",
  "setups_adopt": "Configurer la sélection",
  "setups_done": "{tasks} tâches reliées aux capteurs créées.",
  "complete_parts_used": "Pièces utilisées cette fois",
  "part_delete_confirm": "Supprimer la pièce '{name}' ? Son suivi de stock, ses liens aux tâches et tout rappel d'achat ouvert seront supprimés.",
  "baseline_start_value": "Valeur de départ (facultatif)",
  "baseline_start_help": "Le comptage démarre à cette valeur. Laissez vide pour compter à partir de la valeur actuelle ; saisissez le relevé du dernier entretien pour que l'usage écoulé depuis soit compté.",
  "setups_baseline_hint": "relevé au dernier entretien (facultatif)",
  "baseline_start_help_edit": "Laissez vide pour conserver le comptage existant. Une valeur saisie réancre le comptage (p. ex. le relevé du dernier entretien).",
  "baseline_current_effective": "Valeur de départ actuellement en vigueur : {value}",
  "runtime_on_states": "États actifs (séparés par des virgules)",
  "runtime_on_states_help": "États comptés comme en fonctionnement — par défaut : on. P. ex. mowing, cleaning, printing. Si un attribut est sélectionné, ce sont ses valeurs qui sont comparées.",
  "setups_target_new": "Créer : {name}",
  "schedule_preview_title": "Prochaines échéances",
  "schedule_preview_ontime": "En supposant un achèvement ponctuel.",
  "schedule_preview_ends": "(fin de la série)",
  "adopt_problem_responsible": "Personne responsable pour toutes les tâches adoptées (optionnel)",
  "adopt_problem_configure": "Configurer",
  "history_auto": "Automatique",
  "battery_fleet_title": "Parc de piles",
  "battery_fleet_none_low": "Toutes les piles OK — rien à remplacer.",
  "battery_fleet_buy_now": "Acheter",
  "battery_fleet_soon": "Bientôt nécessaire",
  "battery_fleet_soon_hint": "Estimé d'après le dernier remplacement — commandez à l'avance.",
  "battery_fleet_mark_all": "Tout marquer remplacé",
  "battery_fleet_mark_one": "Marquer cette pile remplacée",
  "battery_fleet_offline": "hors ligne",
  "battery_fleet_trigger_lost": "Le déclencheur de capteur de cette tâche a été perdu — elle ne se déclenchera pas et ne se terminera pas automatiquement.",
  "battery_fleet_repair": "Réparer",
  "battery_fleet_total": "{n} piles suivies",
  "battery_fleet_setup_button": "Parc de piles",
  "battery_fleet_setup_done": "Parc de piles configuré — une tâche suit toutes vos piles."
}
