2528 lines
127 KiB
JSON
2528 lines
127 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "Maintenance Supporter",
|
||
"description": "Configurez votre système de gestion de maintenance.",
|
||
"menu_options": {
|
||
"create_object": "Créer un objet de maintenance",
|
||
"create_from_template": "Créer à partir d'un modèle",
|
||
"global_setup": "Paramètres globaux"
|
||
}
|
||
},
|
||
"create_from_template": {
|
||
"title": "Sélectionner la catégorie de modèle",
|
||
"description": "Choisissez une catégorie pour parcourir les modèles de maintenance prédéfinis. ★ n = modèles de cette catégorie adaptés à votre logement (panneau : Paramètres → Profil du logement).",
|
||
"data": {
|
||
"template_category": "Catégorie",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"go_back": "Retourner au menu principal sans sauvegarder."
|
||
}
|
||
},
|
||
"template_select": {
|
||
"title": "Sélectionner un modèle",
|
||
"description": "Choisissez un modèle de maintenance comme point de départ. ★ recommandé pour votre logement · ✓ déjà configuré.",
|
||
"data": {
|
||
"template_id": "Modèle",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"go_back": "Retourner à la sélection de catégorie sans sauvegarder."
|
||
}
|
||
},
|
||
"template_customize": {
|
||
"title": "Personnaliser le modèle",
|
||
"description": "Personnalisez le modèle {template_name}. Il comprend {task_count} tâches : {task_list}.",
|
||
"data": {
|
||
"name": "Nom de l'objet",
|
||
"area_id": "Zone",
|
||
"manufacturer": "Fabricant",
|
||
"model": "Modèle",
|
||
"serial_number": "Numéro de série",
|
||
"documentation_url": "URL du manuel / documentation",
|
||
"notes": "Notes",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"name": "Un nom pour cet objet de maintenance.",
|
||
"area_id": "La zone où se trouve cet objet.",
|
||
"manufacturer": "Le fabricant de l'objet.",
|
||
"model": "Le nom ou numéro de modèle.",
|
||
"serial_number": "Le numéro de série de l'objet.",
|
||
"documentation_url": "Lien optionnel vers un manuel PDF, une page constructeur ou toute URL contenant des informations de référence pour cet objet.",
|
||
"notes": "Notes libres sur l'objet — numéros de pièces, procédures, rappels de réglages, etc.",
|
||
"go_back": "Retourner à la sélection de modèle sans sauvegarder."
|
||
}
|
||
},
|
||
"global_setup": {
|
||
"title": "Paramètres globaux",
|
||
"description": "Configurez les paramètres globaux de maintenance.",
|
||
"data": {
|
||
"default_warning_days": "Jours d'avertissement par défaut",
|
||
"notifications_enabled": "Activer les notifications",
|
||
"notify_service": "Service de notification"
|
||
},
|
||
"data_description": {
|
||
"default_warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"notifications_enabled": "Envoyer des notifications lorsque les tâches de maintenance arrivent à échéance.",
|
||
"notify_service": "Le service de notification à utiliser (ex. : notify.mobile_app_phone)."
|
||
}
|
||
},
|
||
"create_object": {
|
||
"title": "Créer un objet de maintenance",
|
||
"description": "Définissez un appareil ou un équipement pour gérer sa maintenance.",
|
||
"data": {
|
||
"name": "Nom de l'objet",
|
||
"area_id": "Zone",
|
||
"manufacturer": "Fabricant",
|
||
"model": "Modèle",
|
||
"serial_number": "Numéro de série",
|
||
"documentation_url": "URL du manuel / documentation",
|
||
"notes": "Notes",
|
||
"installation_date": "Date d'installation",
|
||
"warranty_expiry": "Fin de garantie",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"name": "Un nom unique pour cet objet de maintenance (ex. : 'Pompe piscine', 'Voiture').",
|
||
"area_id": "La zone de votre domicile où se trouve cet objet.",
|
||
"manufacturer": "Le fabricant de l'objet.",
|
||
"model": "Le nom ou numéro de modèle.",
|
||
"serial_number": "Le numéro de série de l'objet.",
|
||
"documentation_url": "Lien optionnel vers un manuel PDF, une page constructeur ou toute URL contenant des informations de référence pour cet objet.",
|
||
"notes": "Notes libres sur l'objet — numéros de pièces, procédures, rappels de réglages, etc.",
|
||
"installation_date": "Date d'installation ou d'achat de cet objet.",
|
||
"warranty_expiry": "Date d'expiration de la garantie du fabricant pour cet objet.",
|
||
"go_back": "Retourner au menu principal sans sauvegarder."
|
||
}
|
||
},
|
||
"task_menu": {
|
||
"title": "Tâches de maintenance",
|
||
"description": "Ajoutez des tâches de maintenance pour {object_name}. Actuellement {task_count} tâche(s) définie(s).",
|
||
"menu_options": {
|
||
"add_task": "Ajouter une tâche de maintenance",
|
||
"finish": "Terminer la configuration"
|
||
}
|
||
},
|
||
"add_task": {
|
||
"title": "Ajouter une tâche de maintenance",
|
||
"description": "Définissez une tâche de maintenance pour {object_name}.",
|
||
"data": {
|
||
"name": "Nom de la tâche",
|
||
"type": "Type de maintenance",
|
||
"schedule_type": "Type de planification",
|
||
"custom_icon": "Icône de tâche",
|
||
"go_back": "Retour",
|
||
"reading_unit": "Unité de relevé (pour les tâches de relevé, p. ex. kWh)"
|
||
},
|
||
"data_description": {
|
||
"name": "Un nom descriptif pour cette tâche (ex. : 'Nettoyage filtre', 'Vidange').",
|
||
"type": "La catégorie de travail de maintenance.",
|
||
"schedule_type": "Comment cette tâche doit être planifiée.",
|
||
"custom_icon": "Icône personnalisée optionnelle pour cette tâche (ex. mdi:oil, mdi:filter-variant).",
|
||
"go_back": "Retourner au menu des tâches sans sauvegarder."
|
||
}
|
||
},
|
||
"time_based": {
|
||
"title": "Planification temporelle",
|
||
"description": "Configurez l'intervalle de temps pour cette tâche de maintenance.",
|
||
"data": {
|
||
"interval_days": "Intervalle",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"last_performed": "Dernière exécution",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"interval_anchor": "Ancrage d'intervalle"
|
||
},
|
||
"data_description": {
|
||
"interval_days": "Fréquence de répétition de cette maintenance, combinée à l'unité d'intervalle.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"last_performed": "Date de la dernière maintenance effectuée. Laissez vide si jamais effectuée.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner à la création de tâche sans sauvegarder.",
|
||
"interval_anchor": "Comment la prochaine date d'échéance est calculée après l'achèvement. 'Planifié' empêche la dérive en s'ancrant à la date prévue."
|
||
}
|
||
},
|
||
"one_time": {
|
||
"title": "Tâche unique",
|
||
"description": "Configurez une tâche de maintenance unique et non récurrente. Elle est archivée une fois terminée.",
|
||
"data": {
|
||
"due_date": "Date d'échéance",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"due_date": "La date à laquelle cette tâche unique est due.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner à la création de tâche sans sauvegarder."
|
||
}
|
||
},
|
||
"calendar": {
|
||
"title": "Planification par calendrier",
|
||
"description": "Configurez une récurrence basée sur le calendrier (jours de la semaine, n-ième jour de la semaine du mois ou un jour du mois).",
|
||
"data": {
|
||
"weekdays": "Ces jours de la semaine",
|
||
"nth": "Quelle occurrence",
|
||
"weekday": "Jour de la semaine",
|
||
"day": "Jour du mois",
|
||
"entity_id": "Calendrier",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"last_day": "Dernier jour du mois",
|
||
"business": "Jours ouvrés uniquement",
|
||
"offset": "Décalage (jours)",
|
||
"last_performed": "Dernière exécution"
|
||
},
|
||
"data_description": {
|
||
"weekdays": "La tâche se répète chaque jour de la semaine sélectionné.",
|
||
"nth": "Quelle occurrence dans le mois (par ex. 1er, ou Dernier).",
|
||
"weekday": "Le jour de la semaine pour la règle du n-ième jour (par ex. samedi).",
|
||
"day": "Jour du mois (1-31 ; limité à la durée du mois).",
|
||
"entity_id": "À faire une fois par événement de ce calendrier, à la date de début de l'événement — le prochain événement après la dernière réalisation.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner à la création de tâche sans sauvegarder.",
|
||
"last_day": "Remplace le numéro du jour : échéance le dernier jour du mois.",
|
||
"business": "Ramène une date de week-end au vendredi précédent (ex. dernier jour ouvré).",
|
||
"offset": "Décale la date calculée de ±N jours (ex. -2 = deux jours avant)."
|
||
}
|
||
},
|
||
"sensor_select": {
|
||
"title": "Sélectionner le capteur déclencheur",
|
||
"description": "Choisissez une entité Home Assistant à surveiller pour cette tâche de maintenance.",
|
||
"data": {
|
||
"trigger_entity": "Entité à surveiller",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_entity": "Sélectionnez l'entité capteur qui doit déclencher cette tâche de maintenance.",
|
||
"go_back": "Retourner à la création de tâche sans sauvegarder."
|
||
}
|
||
},
|
||
"sensor_attribute": {
|
||
"title": "Sélectionner l'attribut",
|
||
"description": "Choisissez quelle valeur surveiller de {entity_id}. État actuel : {current_state} {unit}",
|
||
"data": {
|
||
"trigger_attribute": "Valeur à surveiller",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_attribute": "Sélectionnez l'état de l'entité ou un attribut spécifique à surveiller.",
|
||
"go_back": "Retourner à la sélection d'entité sans sauvegarder."
|
||
}
|
||
},
|
||
"trigger_type": {
|
||
"title": "Type de déclencheur",
|
||
"description": "Comment la valeur du capteur doit-elle déclencher la maintenance ?",
|
||
"data": {
|
||
"trigger_type": "Type de déclencheur",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_type": "Seuil : se déclenche quand la valeur dépasse les limites. Compteur : se déclenche après avoir accumulé une valeur cible. Changement d'état : se déclenche après un nombre de transitions d'état.",
|
||
"go_back": "Retourner à la sélection d'attribut sans sauvegarder."
|
||
}
|
||
},
|
||
"trigger_threshold": {
|
||
"title": "Configuration du seuil",
|
||
"description": "Définissez les seuils pour **{entity_id}** ({attribute}).\nActuel : **{current_value} {unit}** | Moy. : {average} | Plage : {minimum}–{maximum} ({data_period}j)\nSeuil haut suggéré : {suggested_above} | Seuil bas suggéré : {suggested_below}",
|
||
"data": {
|
||
"trigger_above": "Déclencher au-dessus de",
|
||
"trigger_below": "Déclencher en-dessous de",
|
||
"trigger_equals": "Déclencher si égal à",
|
||
"trigger_not_equals": "Déclencher si différent de",
|
||
"trigger_for_minutes": "Pendant au moins (minutes)",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"trigger_above": "Déclencher la maintenance lorsque la valeur dépasse ce seuil.",
|
||
"trigger_below": "Déclencher la maintenance lorsque la valeur passe en-dessous de ce seuil.",
|
||
"trigger_equals": "Déclencher l'entretien lorsque la valeur est égale à ce niveau.",
|
||
"trigger_not_equals": "Déclencher l'entretien lorsque la valeur diffère de ce niveau.",
|
||
"trigger_for_minutes": "La valeur doit dépasser le seuil pendant ce nombre de minutes avant le déclenchement.",
|
||
"interval_days": "Intervalle de sécurité temporel optionnel en plus du déclencheur capteur.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner à la sélection du type de déclencheur sans sauvegarder."
|
||
}
|
||
},
|
||
"trigger_counter": {
|
||
"title": "Configuration du compteur",
|
||
"description": "Définissez la valeur cible du compteur pour {entity_id} ({attribute}). Actuel : {current_value} {unit}.",
|
||
"data": {
|
||
"trigger_target_value": "Valeur cible",
|
||
"trigger_delta_mode": "Mode delta (compter les changements, pas la valeur absolue)",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit",
|
||
"trigger_baseline_value": "Valeur de départ (facultatif)"
|
||
},
|
||
"data_description": {
|
||
"trigger_target_value": "Déclencher la maintenance lorsque cette valeur accumulée est atteinte.",
|
||
"trigger_delta_mode": "Si activé, compte la différence par rapport à une base plutôt que la valeur absolue.",
|
||
"interval_days": "Intervalle de sécurité temporel optionnel en plus du déclencheur compteur.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner à la sélection du type de déclencheur sans sauvegarder."
|
||
}
|
||
},
|
||
"trigger_state_change": {
|
||
"title": "Configuration du changement d'état",
|
||
"description": "Comptez les transitions d'état de {entity_id}.",
|
||
"data": {
|
||
"trigger_from_state": "Depuis l'état (optionnel)",
|
||
"trigger_to_state": "Vers l'état (optionnel)",
|
||
"trigger_target_changes": "Nombre de changements pour déclencher",
|
||
"trigger_for_minutes": "Pendant au moins (minutes)",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"trigger_from_state": "Compter uniquement les transitions depuis cet état. Laissez vide pour tous.",
|
||
"trigger_to_state": "Compter uniquement les transitions vers cet état. Laissez vide pour tous.",
|
||
"trigger_target_changes": "Nombre de changements d'état correspondants avant de déclencher la maintenance.",
|
||
"interval_days": "Intervalle de sécurité temporel optionnel en plus du déclencheur de changement d'état.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner à la sélection du type de déclencheur sans sauvegarder.",
|
||
"trigger_for_minutes": "Le nouvel état doit se maintenir aussi longtemps avant que le changement compte. 0 = compter immédiatement."
|
||
}
|
||
},
|
||
"trigger_runtime": {
|
||
"title": "Configuration du temps de fonctionnement",
|
||
"description": "Suivez le temps de fonctionnement cumulé de {entity_id}. La maintenance se déclenche lorsque le temps total de fonctionnement atteint les heures cibles.",
|
||
"data": {
|
||
"trigger_runtime_hours": "Temps de fonctionnement cible (heures)",
|
||
"trigger_on_states": "États actifs (séparés par des virgules)",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"trigger_runtime_hours": "Déclencher la maintenance après ce nombre d'heures de fonctionnement cumulé.",
|
||
"trigger_on_states": "Quels états du capteur comptent comme 'actif'. Laisser vide pour défaut : on, 1, true. Exemple : in_use, running",
|
||
"interval_days": "Intervalle de sécurité temporel optionnel en plus du déclencheur de temps de fonctionnement.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner à la sélection du type de déclencheur sans sauvegarder."
|
||
}
|
||
},
|
||
"trigger_due_date": {
|
||
"title": "Date d'échéance",
|
||
"description": "Surveille la date indiquée par {entity_id} (actuellement : {current_state}). La tâche devient due le nombre de jours choisi avant cette date.",
|
||
"data": {
|
||
"trigger_days_before": "Jours avant la date",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"trigger_days_before": "0 = le jour même. Quand l'appareil repousse sa date (en général avec son propre bouton « fait »), le déclencheur se lève.",
|
||
"interval_days": "Intervalle de sécurité temporel optionnel en plus du déclencheur capteur.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner à la sélection du type de déclencheur sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_logic": {
|
||
"title": "Déclencheur composé",
|
||
"description": "Choisissez comment combiner les conditions multiples.",
|
||
"data": {
|
||
"compound_logic": "Logique",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"compound_logic": "ET = toutes les conditions doivent se déclencher. OU = n'importe quelle condition déclenche.",
|
||
"go_back": "Retourner à la sélection du type de déclencheur sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_condition_entity": {
|
||
"title": "Condition #{condition_num} — Entité",
|
||
"description": "Sélectionnez l'entité pour cette condition.",
|
||
"data": {
|
||
"trigger_entity": "Entité",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_entity": "L'entité capteur à surveiller pour cette condition.",
|
||
"go_back": "Retourner à l'étape précédente sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_condition_type": {
|
||
"title": "Condition #{condition_num} — Type",
|
||
"description": "Comment cette condition doit-elle évaluer le capteur ?",
|
||
"data": {
|
||
"trigger_type": "Type de déclencheur",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_type": "La méthode utilisée pour déterminer quand cette condition se déclenche.",
|
||
"go_back": "Retourner à la sélection d'entité sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_condition_threshold": {
|
||
"title": "Condition — Seuil",
|
||
"data": {
|
||
"trigger_above": "Déclencher au-dessus de",
|
||
"trigger_below": "Déclencher en dessous de",
|
||
"trigger_equals": "Déclencher si égal à",
|
||
"trigger_not_equals": "Déclencher si différent de",
|
||
"trigger_for_minutes": "Durée (minutes)",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_above": "Déclencher quand la valeur dépasse ce seuil.",
|
||
"trigger_below": "Déclencher quand la valeur tombe en dessous de ce seuil.",
|
||
"trigger_equals": "Déclencher l'entretien lorsque la valeur est égale à ce niveau.",
|
||
"trigger_not_equals": "Déclencher l'entretien lorsque la valeur diffère de ce niveau.",
|
||
"trigger_for_minutes": "La valeur doit rester au-delà du seuil pendant cette durée.",
|
||
"go_back": "Retourner à la sélection du type de condition sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_condition_counter": {
|
||
"title": "Condition — Compteur",
|
||
"data": {
|
||
"trigger_target_value": "Valeur cible",
|
||
"trigger_delta_mode": "Mode delta",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_target_value": "Déclencher quand la valeur accumulée atteint cette cible.",
|
||
"trigger_delta_mode": "Compter les changements depuis une ligne de base au lieu de la valeur absolue.",
|
||
"go_back": "Retourner à la sélection du type de condition sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_condition_state_change": {
|
||
"title": "Condition — Changement d'état",
|
||
"data": {
|
||
"trigger_from_state": "Depuis l'état",
|
||
"trigger_to_state": "Vers l'état",
|
||
"trigger_target_changes": "Nombre de changements",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_from_state": "Ne compter que les transitions depuis cet état. Laisser vide pour tous.",
|
||
"trigger_to_state": "Ne compter que les transitions vers cet état. Laisser vide pour tous.",
|
||
"trigger_target_changes": "Nombre de changements d'état correspondants avant le déclenchement.",
|
||
"go_back": "Retourner à la sélection du type de condition sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_condition_runtime": {
|
||
"title": "Condition — Durée de fonctionnement",
|
||
"data": {
|
||
"trigger_runtime_hours": "Durée cible (heures)",
|
||
"trigger_on_states": "États actifs",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_runtime_hours": "Déclencher après ce nombre d'heures de fonctionnement accumulé.",
|
||
"trigger_on_states": "États du capteur comptés comme 'actifs'. Laisser vide pour la valeur par défaut.",
|
||
"go_back": "Retourner à la sélection du type de condition sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_condition_due_date": {
|
||
"title": "Condition — Date d'échéance",
|
||
"data": {
|
||
"trigger_days_before": "Jours avant la date",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_days_before": "La condition est remplie à partir de ce nombre de jours avant la date indiquée.",
|
||
"go_back": "Retourner à la sélection du type de condition sans sauvegarder."
|
||
}
|
||
},
|
||
"compound_review": {
|
||
"title": "Révision du déclencheur composé",
|
||
"description": "{condition_count} condition(s) configurée(s) avec la logique {compound_logic}.",
|
||
"data": {
|
||
"compound_action": "Action",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"go_back": "Retourner à la sélection de logique sans sauvegarder."
|
||
}
|
||
},
|
||
"manual": {
|
||
"title": "Planification manuelle",
|
||
"description": "Cette tâche n'a pas de planification automatique. Vous pouvez la marquer comme due manuellement.",
|
||
"data": {
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"notes": "Notes",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"notes": "Notes ou instructions supplémentaires pour cette tâche.",
|
||
"go_back": "Retourner à la création de tâche sans sauvegarder."
|
||
}
|
||
},
|
||
"reconfigure": {
|
||
"title": "Reconfigurer {name}",
|
||
"description": "Mettre à jour les paramètres de cet objet de maintenance.",
|
||
"data": {
|
||
"name": "Nom de l'objet",
|
||
"area_id": "Zone",
|
||
"manufacturer": "Fabricant",
|
||
"model": "Modèle",
|
||
"serial_number": "Numéro de série",
|
||
"documentation_url": "URL du manuel / documentation",
|
||
"notes": "Notes",
|
||
"installation_date": "Date d'installation",
|
||
"warranty_expiry": "Fin de garantie"
|
||
},
|
||
"data_description": {
|
||
"name": "Le nom de cet objet de maintenance.",
|
||
"area_id": "La zone où se trouve cet objet.",
|
||
"manufacturer": "Le fabricant de cet objet.",
|
||
"model": "Le modèle de cet objet.",
|
||
"serial_number": "Le numéro de série de cet objet.",
|
||
"documentation_url": "Lien optionnel vers un manuel PDF, une page constructeur ou toute URL contenant des informations de référence pour cet objet.",
|
||
"notes": "Notes libres sur l'objet — numéros de pièces, procédures, rappels de réglages, etc.",
|
||
"installation_date": "Quand cet objet a été installé.",
|
||
"warranty_expiry": "Date d'expiration de la garantie du fabricant pour cet objet."
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"name_exists": "Un objet de maintenance avec ce nom existe déjà.",
|
||
"no_tasks": "Au moins une tâche de maintenance est requise.",
|
||
"invalid_entity": "L'entité sélectionnée n'existe pas ou n'a pas de données numériques.",
|
||
"invalid_attribute": "L'attribut sélectionné n'est pas disponible sur cette entité.",
|
||
"invalid_threshold": "Au moins un seuil (haut ou bas) doit être défini.",
|
||
"overlapping_threshold": "Le seuil « en dessous » doit être inférieur au seuil « au-dessus » — sinon chaque relevé déclenche la tâche et elle ne peut jamais se rétablir. Laissez l'un des deux vide.",
|
||
"invalid_due_date": "Une date d'échéance est requise pour les tâches uniques.",
|
||
"last_performed_future": "La date de dernière réalisation ne peut pas être dans le futur.",
|
||
"invalid_interval": "L'intervalle doit être un nombre positif.",
|
||
"min_exceeds_max": "L'intervalle minimum ne doit pas dépasser l'intervalle maximum.",
|
||
"invalid_notify_service": "Format du service de notification invalide. Utilisez 'notify.nom_du_service' (ex. : notify.mobile_app_phone).",
|
||
"notify_service_not_found": "Ce service de notification n'a pas été trouvé dans Home Assistant. Veuillez vérifier le nom du service.",
|
||
"nfc_tag_duplicate": "Ce tag NFC est déjà lié à une autre tâche.",
|
||
"invalid_shopping_list_entity": "La liste de courses doit être une entité de tâches (todo.…).",
|
||
"invalid_schedule": "Le planning est incomplet — choisissez au moins un jour de la semaine (ou un calendrier pour une tâche pilotée par calendrier).",
|
||
"invalid_delta_target": "En mode delta (comptage de l'usage cumulé), la valeur cible doit être supérieure à 0."
|
||
},
|
||
"abort": {
|
||
"already_configured": "Cet objet de maintenance est déjà configuré.",
|
||
"global_already_exists": "Les paramètres globaux sont déjà configurés.",
|
||
"template_not_found": "Le modèle sélectionné n'a pas été trouvé.",
|
||
"missing_data": "Les données requises n'ont pas été fournies.",
|
||
"reconfigure_successful": "Configuration mise à jour avec succès.",
|
||
"reconfigure_cancelled": "Reconfiguration annulée.",
|
||
"entity_unavailable": "L'entité sélectionnée n'est pas disponible pour le moment. Réessayez lorsqu'elle signale un état.",
|
||
"unknown": "Une erreur inattendue s'est produite. Veuillez recommencer."
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Options de maintenance",
|
||
"description": "{object_info}",
|
||
"menu_options": {
|
||
"manage_tasks": "Gérer les tâches",
|
||
"add_task": "Ajouter une nouvelle tâche",
|
||
"object_settings": "Paramètres de l'objet",
|
||
"done": "Terminé"
|
||
}
|
||
},
|
||
"global_init": {
|
||
"title": "Paramètres globaux",
|
||
"description": "Configurez les paramètres globaux de maintenance.",
|
||
"menu_options": {
|
||
"general_settings": "Paramètres généraux",
|
||
"advanced_features": "Fonctionnalités avancées",
|
||
"panel_access": "Accès au panneau",
|
||
"budget_settings": "Paramètres de budget",
|
||
"manage_groups": "Gérer les groupes",
|
||
"notification_settings": "Paramètres de notification",
|
||
"notification_actions": "Boutons d'action mobiles",
|
||
"test_notification": "Envoyer une notification de test",
|
||
"done": "Terminé",
|
||
"home_profile": "Profil du logement · Galerie de modèles",
|
||
"archive_settings": "Archivage et conservation",
|
||
"member_avatars": "Avatars des membres",
|
||
"battery_lifetimes": "Durées de vie typiques des piles"
|
||
}
|
||
},
|
||
"advanced_features": {
|
||
"title": "Fonctionnalités avancées",
|
||
"description": "Choisissez les fonctionnalités avancées à afficher dans l'interface. Désactiver une fonctionnalité la masque de l'interface mais ne supprime aucune donnée.",
|
||
"data": {
|
||
"advanced_adaptive_visible": "Planification adaptative",
|
||
"advanced_seasonal_visible": "Ajustements saisonniers",
|
||
"advanced_environmental_visible": "Corrélation environnementale",
|
||
"advanced_budget_visible": "Suivi du budget",
|
||
"advanced_groups_visible": "Groupes",
|
||
"advanced_checklists_visible": "Listes de contrôle",
|
||
"advanced_schedule_time_visible": "Planification à l'heure",
|
||
"advanced_completion_actions_visible": "Actions de finalisation"
|
||
},
|
||
"data_description": {
|
||
"advanced_adaptive_visible": "Afficher l'analyse EWA, Weibull et les suggestions d'intervalle pour les tâches.",
|
||
"advanced_seasonal_visible": "Afficher les graphiques de facteurs saisonniers et les données d'ajustement mensuel.",
|
||
"advanced_environmental_visible": "Afficher les ajustements de corrélation environnementale (température, humidité).",
|
||
"advanced_budget_visible": "Afficher le suivi de budget mensuel/annuel et les alertes.",
|
||
"advanced_groups_visible": "Afficher la gestion des groupes de maintenance.",
|
||
"advanced_checklists_visible": "Afficher les listes de contrôle pour la réalisation étape par étape des tâches.",
|
||
"advanced_schedule_time_visible": "Permettre aux tâches d'arriver à échéance à une heure précise plutôt qu'à minuit.",
|
||
"advanced_completion_actions_visible": "Action HA par tâche lors de la finalisation + QR de finalisation rapide avec valeurs pré-définies."
|
||
}
|
||
},
|
||
"panel_access": {
|
||
"title": "Accès au panneau",
|
||
"description": "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 l'option ci-dessous et sélectionnez-les — les autres ne voient que Terminer et Ignorer. {user_count} utilisateur(s) non administrateur(s) trouvé(s).",
|
||
"data": {
|
||
"operator_write_enabled": "Autoriser les utilisateurs sélectionnés à créer, modifier et supprimer",
|
||
"admin_panel_user_ids": "Utilisateurs avec accès complet au panneau"
|
||
},
|
||
"data_description": {
|
||
"operator_write_enabled": "Désactivé (par défaut) : seuls les administrateurs peuvent modifier le contenu. Activé : les utilisateurs sélectionnés ci-dessous ont aussi un accès complet.",
|
||
"admin_panel_user_ids": "Les utilisateurs sélectionnés voient le panneau complet ; tous les autres ne voient que Terminer et Ignorer."
|
||
}
|
||
},
|
||
"general_settings": {
|
||
"title": "Paramètres généraux",
|
||
"description": "Configurez les paramètres de base de Maintenance Supporter.",
|
||
"data": {
|
||
"default_warning_days": "Jours d'avertissement par défaut",
|
||
"notifications_enabled": "Activer les notifications",
|
||
"notify_service": "Service de notification",
|
||
"panel_enabled": "Afficher le panneau dans la barre latérale",
|
||
"currency_decimals": "Décimales des montants",
|
||
"parts_cost_mode": "Les pièces comptent comme dépense",
|
||
"battery_low_percent": "Seuil « pile faible » (%)",
|
||
"battery_recovered_percent": "Pile considérée remplacée au-dessus de (%)",
|
||
"battery_auto_record_recovery": "Enregistrer automatiquement un remplacement quand une pile faible se rétablit",
|
||
"panel_title": "Titre du panneau latéral",
|
||
"shopping_list_entity": "Liste de courses pour synchroniser les tâches d’achat",
|
||
"part_search_url_template": "Lien de recherche d'achat",
|
||
"default_consumable_threshold": "Seuil « consommable bas » (%)",
|
||
"row_action_style": "Actions des lignes de tâches",
|
||
"ref_numbers_in_lists": "Numéros de référence dans les listes",
|
||
"objects_table_columns": "Colonnes du tableau d'objets",
|
||
"install_assist_sentences": "Installer les phrases Assist"
|
||
},
|
||
"data_description": {
|
||
"default_warning_days": "Nombre de jours avant l'échéance d'une tâche de maintenance pour afficher un avertissement.",
|
||
"notifications_enabled": "Envoyer des notifications lorsque les tâches de maintenance arrivent à échéance ou sont en retard.",
|
||
"notify_service": "Le service de notification à utiliser (ex. : notify.mobile_app_phone).",
|
||
"panel_enabled": "Afficher un panneau Maintenance Supporter dans la barre latérale.",
|
||
"currency_decimals": "Nombre de décimales affichées pour chaque montant — indicateurs, budgets, coûts dans les listes et rapports, alertes budget. 0 = nombres entiers.",
|
||
"parts_cost_mode": "À l'achat : le coût d'un rappel d'achat compte, les pièces utilisées sont indiquées pour information. À l'utilisation : chaque réalisation comptabilise les pièces utilisées, et un achat fixe plutôt le prix de la pièce. S'applique dès maintenant.",
|
||
"battery_low_percent": "Plancher pour tout le parc : une pile à ce niveau ou en dessous compte comme faible, sauf si son seuil Battery Notes est plus élevé.",
|
||
"battery_recovered_percent": "Une pile faible reste comptée comme faible tant que son niveau ne dépasse pas cette valeur ou qu'un remplacement n'est pas enregistré — un niveau qui oscille autour du seuil ne peut ainsi plus terminer la tâche du parc encore et encore.",
|
||
"battery_auto_record_recovery": "Quand une pile qui était faible repasse au-dessus du seuil de rétablissement, la date de remplacement est enregistrée dans Battery Notes et les piles de rechange sont retirées du stock — sans aucune action",
|
||
"panel_title": "Nom personnalisé pour l'entrée de la barre latérale. Laissez vide pour utiliser « Maintenance ». Utile pour éviter la confusion avec le tableau de bord Maintenance intégré de Home Assistant.",
|
||
"shopping_list_entity": "Les rappels d’achat automatiques pour les pièces en rupture apparaissent dans cette liste de tâches ; cocher un élément termine le rappel et réapprovisionne la pièce. Laisser vide pour désactiver.",
|
||
"part_search_url_template": "URL avec {q} à la place des termes de recherche, utilisée pour les pièces sans lien produit. Laisser vide pour la boutique automatique (selon le pays, sinon la langue).",
|
||
"default_consumable_threshold": "Valeurs par défaut pour les nouvelles Configurations suggérées (pourcentage restant) et pour les piles de la flotte sans seuil Battery Notes propre. Les tâches existantes gardent leur valeur.",
|
||
"ref_numbers_in_lists": "Affiche les puces #8 / #8.3 devant les noms d'objets et de tâches dans la liste Aujourd'hui, le tableau des tâches, les cartes d'objets et le tableau des objets.",
|
||
"objects_table_columns": "Choisissez les colonnes affichées dans la vue tableau des objets.",
|
||
"install_assist_sentences": "Copie les phrases vocales dans votre configuration afin que l'agent Assist classique les reconnaisse. Un fichier que vous avez modifié n'est jamais écrasé."
|
||
}
|
||
},
|
||
"notification_settings": {
|
||
"title": "Paramètres de notification",
|
||
"description": "Configurez quand et à quelle fréquence les notifications sont envoyées pour chaque statut.",
|
||
"data": {
|
||
"notify_due_soon_enabled": "Notifier quand bientôt dû",
|
||
"notify_due_soon_interval_hours": "Intervalle de rappel bientôt dû (heures)",
|
||
"notify_overdue_enabled": "Notifier quand en retard",
|
||
"notify_overdue_interval_hours": "Intervalle de rappel en retard (heures)",
|
||
"notify_triggered_enabled": "Notifier quand déclenché",
|
||
"notify_triggered_interval_hours": "Intervalle de rappel déclenché (heures)",
|
||
"quiet_hours_enabled": "Activer les heures calmes",
|
||
"quiet_hours_start": "Début des heures calmes",
|
||
"quiet_hours_end": "Fin des heures calmes",
|
||
"max_notifications_per_day": "Notifications max par jour",
|
||
"notification_bundling_enabled": "Regrouper les notifications",
|
||
"notification_bundle_threshold": "Seuil de regroupement",
|
||
"notification_title_style": "Style du titre de notification",
|
||
"notify_completed": "Notifications d'achèvement",
|
||
"notify_event_only": "Déclencher seulement l'événement, ne rien envoyer moi-même",
|
||
"notify_extra_data": "Données de notification supplémentaires (modèle)",
|
||
"reminder_lead_days": "Rappels supplémentaires (jours avant l'échéance)",
|
||
"notify_scope_view_id": "Notifier uniquement pour la vue",
|
||
"weekly_digest_enabled": "Récapitulatif hebdomadaire",
|
||
"warranty_reminder_enabled": "Rappel d'expiration de garantie",
|
||
"warranty_reminder_days": "Jours avant l'expiration"
|
||
},
|
||
"data_description": {
|
||
"notify_due_soon_interval_hours": "Fréquence de répétition du rappel bientôt dû. Définir à 0 pour une seule notification.",
|
||
"notify_overdue_interval_hours": "Fréquence de répétition du rappel en retard. Définir à 0 pour une seule notification.",
|
||
"notify_triggered_interval_hours": "Fréquence de répétition de la notification déclenchée. Définir à 0 pour une seule notification.",
|
||
"quiet_hours_enabled": "Supprimer les notifications pendant les heures calmes.",
|
||
"max_notifications_per_day": "Nombre maximum de notifications par jour. Définir à 0 pour illimité.",
|
||
"notification_bundling_enabled": "Envoyer une notification résumée lorsque plusieurs tâches nécessitent attention.",
|
||
"notification_bundle_threshold": "Nombre minimum de tâches pour déclencher une notification groupée.",
|
||
"notification_title_style": "Ce qui apparaît comme TITRE de la notification. Par défaut, le texte par statut est conservé (p. ex. « Maintenance en retard ! »). Nom de l'objet / tâche aide quand le téléphone empile les notifications.",
|
||
"notify_completed": "Une info pour le foyer quand une tâche est terminée, avec la raison (panneau, scan QR/NFC, liste de tâches, voix, retour du capteur…). « Automatiques seulement » n'annonce que les achèvements que personne n'a faits sur place : retour du capteur, case cochée dans la liste de courses, appel de service d'une automatisation.",
|
||
"notify_event_only": "Chaque notification déclenche l'événement maintenance_supporter_notification. Avec cette option, votre automatisation assure toute la livraison — les intervalles de rappel, les heures calmes et la limite quotidienne décident toujours du moment de l'événement.",
|
||
"notify_extra_data": "JSON ou YAML avec Jinja, fusionné dans les data de chaque appel notify (vos clés l'emportent). Variables : kind, status, priority, labels, notes, area_name, object_name, task_name, object_ref, task_ref, days_until_due, next_due, last_performed, responsible_user_id, sensor_entity_id, url, target, title, message.",
|
||
"reminder_lead_days": "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é.",
|
||
"notify_scope_view_id": "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.",
|
||
"weekly_digest_enabled": "Une notification récapitulative le lundi matin quand des tâches sont dues.",
|
||
"warranty_reminder_enabled": "Notifier une fois lorsque la garantie d'un objet expire dans ce nombre de jours."
|
||
}
|
||
},
|
||
"notification_actions": {
|
||
"title": "Boutons d'action mobiles",
|
||
"description": "Configurez les boutons d'action affichés sur les notifications mobiles (nécessite l'application Companion).",
|
||
"data": {
|
||
"action_complete_enabled": "Afficher le bouton 'Terminer'",
|
||
"action_skip_enabled": "Afficher le bouton 'Passer'",
|
||
"action_snooze_enabled": "Afficher le bouton 'Reporter'",
|
||
"snooze_duration_hours": "Durée du report (heures)"
|
||
},
|
||
"data_description": {
|
||
"action_complete_enabled": "Ajoute un bouton pour marquer la tâche comme terminée directement depuis la notification.",
|
||
"action_skip_enabled": "Ajoute un bouton pour passer le cycle de maintenance actuel depuis la notification.",
|
||
"action_snooze_enabled": "Ajoute un bouton pour reporter le rappel de notification.",
|
||
"snooze_duration_hours": "Durée du report des notifications lorsque le bouton reporter est pressé."
|
||
}
|
||
},
|
||
"budget_settings": {
|
||
"title": "Paramètres de budget",
|
||
"description": "Définissez des budgets de maintenance mensuels et annuels pour suivre les dépenses.",
|
||
"data": {
|
||
"budget_currency": "Devise",
|
||
"budget_monthly": "Budget mensuel",
|
||
"budget_yearly": "Budget annuel",
|
||
"budget_alerts_enabled": "Activer les alertes de budget",
|
||
"budget_alert_threshold": "Seuil d'alerte (%)"
|
||
},
|
||
"data_description": {
|
||
"budget_currency": "Devise utilisée pour l'affichage du budget et les notifications.",
|
||
"budget_monthly": "Dépenses de maintenance mensuelles maximales. Définir à 0 pour désactiver.",
|
||
"budget_yearly": "Dépenses de maintenance annuelles maximales. Définir à 0 pour désactiver.",
|
||
"budget_alerts_enabled": "Envoyer une notification lorsque les dépenses dépassent le seuil d'alerte.",
|
||
"budget_alert_threshold": "Pourcentage du budget auquel envoyer une alerte."
|
||
}
|
||
},
|
||
"test_notification": {
|
||
"title": "Notification de test",
|
||
"description": "{result}"
|
||
},
|
||
"manage_groups": {
|
||
"title": "Gérer les groupes",
|
||
"description": "Sélectionnez un groupe à gérer ou créez-en un nouveau.",
|
||
"data": {
|
||
"selected_group": "Sélectionner un groupe"
|
||
}
|
||
},
|
||
"add_group": {
|
||
"title": "Ajouter un groupe",
|
||
"description": "Créez un nouveau groupe de maintenance pour organiser les tâches associées.",
|
||
"data": {
|
||
"group_name": "Nom du groupe",
|
||
"group_description": "Description"
|
||
},
|
||
"data_description": {
|
||
"group_name": "Un nom pour ce groupe (ex. : 'Maintenance de printemps').",
|
||
"group_description": "Description optionnelle pour ce groupe."
|
||
}
|
||
},
|
||
"manage_tasks": {
|
||
"title": "Gérer les tâches",
|
||
"description": "Sélectionnez une tâche à modifier ou supprimer.",
|
||
"data": {
|
||
"selected_task": "Sélectionner une tâche",
|
||
"go_back": "Retour"
|
||
}
|
||
},
|
||
"task_action": {
|
||
"title": "Actions de tâche",
|
||
"description": "Tâche : {task_name} — Choisissez une action.\n\nProchaines échéances : {next_dates}",
|
||
"menu_options": {
|
||
"edit_task": "Modifier la tâche",
|
||
"edit_trigger": "Modifier le déclencheur",
|
||
"remove_trigger": "Supprimer le déclencheur",
|
||
"edit_checklist": "Modifier la liste de contrôle",
|
||
"adaptive_scheduling": "Planification adaptative",
|
||
"delete_task": "Supprimer la tâche",
|
||
"manage_tasks": "Retour",
|
||
"edit_phases": "Modifier les phases du cycle"
|
||
}
|
||
},
|
||
"edit_task": {
|
||
"title": "Modifier la tâche",
|
||
"description": "Modifier les paramètres de **{task_name}**.",
|
||
"data": {
|
||
"name": "Nom de la tâche",
|
||
"type": "Type de maintenance",
|
||
"interval_days": "Intervalle",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"due_date": "Date d'échéance",
|
||
"enabled": "Activé",
|
||
"notes": "Notes",
|
||
"documentation_url": "URL de documentation",
|
||
"last_performed": "Dernière exécution",
|
||
"responsible_user_id": "Utilisateur responsable",
|
||
"custom_icon": "Icône de tâche",
|
||
"notify_icon": "Icône de notification",
|
||
"nfc_tag_id": "ID de tag NFC",
|
||
"go_back": "Retour",
|
||
"interval_anchor": "Ancrage d'intervalle",
|
||
"reading_unit": "Unité de relevé (pour les tâches de relevé, p. ex. kWh)",
|
||
"readings_text": "Relevés (un par ligne : Nom | Unité)",
|
||
"season_months": "Fenetre saisonniere (mois)",
|
||
"ends_count": "Se termine apres (nombre de fois)",
|
||
"ends_until": "Se termine a la date"
|
||
},
|
||
"data_description": {
|
||
"name": "Un nom descriptif pour cette tâche (ex. 'Nettoyage du filtre', 'Vidange').",
|
||
"type": "La catégorie du travail de maintenance.",
|
||
"interval_days": "Fréquence de répétition de cette maintenance, combinée à l'unité d'intervalle.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"due_date": "La date à laquelle cette tâche unique est due.",
|
||
"enabled": "Lorsque désactivé, la planification et les déclencheurs sont suspendus. La tâche n'est pas supprimée.",
|
||
"notes": "Notes supplémentaires ou instructions pour cette tâche.",
|
||
"documentation_url": "Lien vers la documentation externe ou le manuel pour cette tâche.",
|
||
"last_performed": "Quand cette maintenance a été effectuée pour la dernière fois. Laisser vide si jamais effectuée.",
|
||
"responsible_user_id": "L'utilisateur Home Assistant responsable de cette tâche.",
|
||
"custom_icon": "Icône personnalisée optionnelle pour cette tâche (ex. mdi:oil, mdi:filter-variant).",
|
||
"notify_icon": "Icône affichée sur les notifications push de cette tâche (p. ex. mdi:air-filter). Laisser vide pour l'icône par défaut du type d'entretien. Android uniquement.",
|
||
"nfc_tag_id": "Associer un tag NFC à cette tâche. Scanner le tag marquera automatiquement la tâche comme terminée.",
|
||
"go_back": "Retour aux actions de tâche sans enregistrer.",
|
||
"interval_anchor": "Comment la prochaine date d'échéance est calculée après l'achèvement. 'Planifié' empêche la dérive en s'ancrant à la date prévue.",
|
||
"season_months": "Du uniquement les mois selectionnes ; les dates hors saison passent au mois actif suivant. Vide = toute l'annee.",
|
||
"ends_count": "Arreter de repeter apres ce nombre d'executions (serie finie). Vide = sans limite.",
|
||
"ends_until": "Arreter de repeter des que la prochaine occurrence tomberait apres cette date. Ignore si 'Se termine apres' est defini."
|
||
}
|
||
},
|
||
"edit_checklist": {
|
||
"title": "Modifier la liste de contrôle",
|
||
"description": "Définissez les étapes de la liste de contrôle pour {task_name}. Saisissez une étape par ligne.",
|
||
"data": {
|
||
"checklist_text": "Étapes de la liste de contrôle",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"checklist_text": "Saisissez chaque étape sur une ligne séparée. Ces étapes seront affichées lors de la réalisation de la tâche.",
|
||
"go_back": "Retour aux actions de tâche sans enregistrer."
|
||
}
|
||
},
|
||
"compound_logic": {
|
||
"title": "Déclencheur composé",
|
||
"description": "Choisissez comment combiner les conditions multiples.",
|
||
"data": {
|
||
"compound_logic": "Logique",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"compound_logic": "ET = toutes les conditions doivent se déclencher. OU = n'importe quelle condition déclenche."
|
||
}
|
||
},
|
||
"compound_condition_entity": {
|
||
"title": "Condition #{condition_num} — Entité",
|
||
"description": "Sélectionnez l'entité pour cette condition.",
|
||
"data": {
|
||
"trigger_entity": "Entité",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_entity": "L'entité capteur à surveiller pour cette condition."
|
||
}
|
||
},
|
||
"compound_condition_type": {
|
||
"title": "Condition #{condition_num} — Type",
|
||
"description": "Comment cette condition doit-elle évaluer le capteur ?",
|
||
"data": {
|
||
"trigger_type": "Type de déclencheur",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_type": "La méthode utilisée pour déterminer quand cette condition se déclenche."
|
||
}
|
||
},
|
||
"compound_condition_threshold": {
|
||
"title": "Condition — Seuil",
|
||
"data": {
|
||
"trigger_above": "Déclencher au-dessus de",
|
||
"trigger_below": "Déclencher en dessous de",
|
||
"trigger_equals": "Déclencher si égal à",
|
||
"trigger_not_equals": "Déclencher si différent de",
|
||
"trigger_for_minutes": "Durée (minutes)",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_above": "Déclencher quand la valeur dépasse ce seuil.",
|
||
"trigger_below": "Déclencher quand la valeur tombe en dessous de ce seuil.",
|
||
"trigger_equals": "Déclencher l'entretien lorsque la valeur est égale à ce niveau.",
|
||
"trigger_not_equals": "Déclencher l'entretien lorsque la valeur diffère de ce niveau.",
|
||
"trigger_for_minutes": "La valeur doit rester au-delà du seuil pendant cette durée."
|
||
}
|
||
},
|
||
"compound_condition_counter": {
|
||
"title": "Condition — Compteur",
|
||
"data": {
|
||
"trigger_target_value": "Valeur cible",
|
||
"trigger_delta_mode": "Mode delta",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_target_value": "Déclencher quand la valeur accumulée atteint cette cible.",
|
||
"trigger_delta_mode": "Compter les changements depuis une ligne de base au lieu de la valeur absolue."
|
||
}
|
||
},
|
||
"compound_condition_state_change": {
|
||
"title": "Condition — Changement d'état",
|
||
"data": {
|
||
"trigger_from_state": "Depuis l'état",
|
||
"trigger_to_state": "Vers l'état",
|
||
"trigger_target_changes": "Nombre de changements",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_from_state": "Ne compter que les transitions depuis cet état. Laisser vide pour tous.",
|
||
"trigger_to_state": "Ne compter que les transitions vers cet état. Laisser vide pour tous.",
|
||
"trigger_target_changes": "Nombre de changements d'état correspondants avant le déclenchement."
|
||
}
|
||
},
|
||
"compound_condition_runtime": {
|
||
"title": "Condition — Durée de fonctionnement",
|
||
"data": {
|
||
"trigger_runtime_hours": "Durée cible (heures)",
|
||
"trigger_on_states": "États actifs",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_runtime_hours": "Déclencher après ce nombre d'heures de fonctionnement accumulé.",
|
||
"trigger_on_states": "États du capteur comptés comme 'actifs'. Laisser vide pour la valeur par défaut."
|
||
}
|
||
},
|
||
"compound_condition_due_date": {
|
||
"title": "Condition — Date d'échéance",
|
||
"data": {
|
||
"trigger_days_before": "Jours avant la date",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_days_before": "La condition est remplie à partir de ce nombre de jours avant la date indiquée."
|
||
}
|
||
},
|
||
"compound_review": {
|
||
"title": "Révision du déclencheur composé",
|
||
"description": "{condition_count} condition(s) configurée(s) avec la logique {compound_logic}.",
|
||
"data": {
|
||
"compound_action": "Action",
|
||
"go_back": "Retour"
|
||
}
|
||
},
|
||
"adaptive_scheduling": {
|
||
"title": "Planification adaptative",
|
||
"description": "Configurez l'adaptation intelligente des intervalles pour {task_name}. Le système apprend de vos retours de réalisation pour suggérer de meilleurs intervalles.",
|
||
"data": {
|
||
"adaptive_enabled": "Activer la planification adaptative",
|
||
"ewa_alpha": "Taux d'apprentissage (alpha)",
|
||
"min_interval_days": "Intervalle minimum (jours)",
|
||
"max_interval_days": "Intervalle maximum (jours)",
|
||
"seasonal_enabled": "Activer la sensibilité saisonnière",
|
||
"sensor_prediction_enabled": "Activer les prédictions capteur",
|
||
"environmental_entity": "Capteur environnemental (optionnel)",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"adaptive_enabled": "Lorsqu'activé, le système apprend de vos retours et suggère des intervalles de maintenance optimaux.",
|
||
"ewa_alpha": "Vitesse d'adaptation de l'algorithme aux nouvelles données. Plus élevé = plus réactif, plus bas = plus stable.",
|
||
"min_interval_days": "L'intervalle le plus court que le système recommandera.",
|
||
"max_interval_days": "L'intervalle le plus long que le système recommandera.",
|
||
"seasonal_enabled": "Ajuster les recommandations selon les tendances saisonnières apprises de votre historique de maintenance.",
|
||
"sensor_prediction_enabled": "Analyser les tendances capteur pour prédire quand les seuils seront atteints et suggérer une maintenance anticipée si nécessaire.",
|
||
"environmental_entity": "Associez un capteur de température, d'humidité ou de pression pour corréler les conditions environnementales avec les intervalles de maintenance.",
|
||
"go_back": "Retour aux actions de tâche sans enregistrer."
|
||
}
|
||
},
|
||
"delete_task": {
|
||
"title": "Supprimer la tâche",
|
||
"description": "Êtes-vous sûr de vouloir supprimer la tâche {task_name} ? Cette action est irréversible.",
|
||
"data": {
|
||
"confirm": "Confirmer la suppression",
|
||
"go_back": "Retour"
|
||
}
|
||
},
|
||
"remove_trigger": {
|
||
"title": "Supprimer le déclencheur",
|
||
"description": "Supprimer le déclencheur de **{task_name}** ?\n\n**Entité :** {entity_ids}\n**Type :** {trigger_type}\n**Configuration :** {config_details}\n\nSi toutes les entités sont supprimées, la planification reviendra en mode temporel.",
|
||
"data": {
|
||
"entities_to_remove": "Entités à supprimer",
|
||
"confirm": "Confirmer la suppression",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"entities_to_remove": "Sélectionnez les entités à supprimer de ce déclencheur. Si toutes sont supprimées, le déclencheur entier est supprimé.",
|
||
"go_back": "Retour aux actions de tâche sans enregistrer."
|
||
}
|
||
},
|
||
"trigger_summary": {
|
||
"title": "Déclencheur actuel",
|
||
"description": "Déclencheur pour **{task_name}** :\n\n**Entité :** {entity_ids}\n**État actuel :** {current_states}\n**Type :** {trigger_type} (attribut : {attribute})\n**Configuration :** {config_details}",
|
||
"menu_options": {
|
||
"edit_trigger_proceed": "Modifier le déclencheur",
|
||
"task_action": "Retour"
|
||
}
|
||
},
|
||
"add_task": {
|
||
"title": "Ajouter une tâche de maintenance",
|
||
"description": "Définir une nouvelle tâche de maintenance pour cet objet.",
|
||
"data": {
|
||
"name": "Nom de la tâche",
|
||
"type": "Type de maintenance",
|
||
"schedule_type": "Type de planification",
|
||
"custom_icon": "Icône de tâche",
|
||
"go_back": "Retour",
|
||
"reading_unit": "Unité de relevé (pour les tâches de relevé, p. ex. kWh)"
|
||
},
|
||
"data_description": {
|
||
"name": "Un nom descriptif pour cette tâche (ex. 'Nettoyage du filtre', 'Vidange').",
|
||
"type": "La catégorie du travail de maintenance.",
|
||
"schedule_type": "Comment cette tâche doit être planifiée.",
|
||
"custom_icon": "Icône personnalisée optionnelle pour cette tâche (ex. : mdi:oil, mdi:filter-variant).",
|
||
"go_back": "Retourner au menu principal sans sauvegarder."
|
||
}
|
||
},
|
||
"opt_time_based": {
|
||
"title": "Planification temporelle",
|
||
"description": "Configurer l'intervalle de temps pour cette tâche.",
|
||
"data": {
|
||
"interval_days": "Intervalle",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"last_performed": "Dernière exécution",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"interval_anchor": "Ancrage d'intervalle"
|
||
},
|
||
"data_description": {
|
||
"interval_days": "Fréquence de répétition de cette maintenance, combinée à l'unité d'intervalle.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"last_performed": "Quand cette maintenance a été effectuée pour la dernière fois. Laisser vide si jamais effectuée.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner au menu principal sans sauvegarder.",
|
||
"interval_anchor": "Comment la prochaine date d'échéance est calculée après l'achèvement. 'Planifié' empêche la dérive en s'ancrant à la date prévue."
|
||
}
|
||
},
|
||
"opt_one_time": {
|
||
"title": "Tâche unique",
|
||
"description": "Configurez une tâche de maintenance unique et non récurrente. Elle est archivée une fois terminée.",
|
||
"data": {
|
||
"due_date": "Date d'échéance",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"due_date": "La date à laquelle cette tâche unique est due.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner au menu principal sans sauvegarder."
|
||
}
|
||
},
|
||
"opt_calendar": {
|
||
"title": "Planification par calendrier",
|
||
"description": "Configurez une récurrence basée sur le calendrier (jours de la semaine, n-ième jour de la semaine du mois ou un jour du mois).",
|
||
"data": {
|
||
"weekdays": "Ces jours de la semaine",
|
||
"nth": "Quelle occurrence",
|
||
"weekday": "Jour de la semaine",
|
||
"day": "Jour du mois",
|
||
"entity_id": "Calendrier",
|
||
"last_performed": "Dernière exécution",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"last_day": "Dernier jour du mois",
|
||
"business": "Jours ouvrés uniquement",
|
||
"offset": "Décalage (jours)"
|
||
},
|
||
"data_description": {
|
||
"weekdays": "La tâche se répète chaque jour de la semaine sélectionné.",
|
||
"nth": "Quelle occurrence dans le mois (par ex. 1er, ou Dernier).",
|
||
"weekday": "Le jour de la semaine pour la règle du n-ième jour (par ex. samedi).",
|
||
"day": "Jour du mois (1-31 ; limité à la durée du mois).",
|
||
"entity_id": "À faire une fois par événement de ce calendrier, à la date de début de l'événement — le prochain événement après la dernière réalisation.",
|
||
"last_performed": "Date de la dernière exécution de cette maintenance. Laissez vide si jamais effectuée.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"go_back": "Retourner au menu principal sans sauvegarder.",
|
||
"last_day": "Remplace le numéro du jour : échéance le dernier jour du mois.",
|
||
"business": "Ramène une date de week-end au vendredi précédent (ex. dernier jour ouvré).",
|
||
"offset": "Décale la date calculée de ±N jours (ex. -2 = deux jours avant)."
|
||
}
|
||
},
|
||
"opt_manual": {
|
||
"title": "Planification manuelle",
|
||
"description": "Cette tâche n'a pas de planification automatique. Vous pouvez la marquer comme à faire manuellement.",
|
||
"data": {
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"notes": "Notes",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"notes": "Notes supplémentaires ou instructions pour cette tâche.",
|
||
"go_back": "Retourner au menu principal sans sauvegarder."
|
||
}
|
||
},
|
||
"opt_sensor_select": {
|
||
"title": "Sélectionner le capteur déclencheur",
|
||
"description": "Choisir une entité Home Assistant à surveiller.",
|
||
"data": {
|
||
"trigger_entity": "Entité à surveiller",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_entity": "Sélectionnez l'entité capteur qui doit déclencher cette tâche de maintenance."
|
||
}
|
||
},
|
||
"opt_sensor_attribute": {
|
||
"title": "Sélectionner l'attribut",
|
||
"description": "Choisissez quelle valeur surveiller de {entity_id}. État actuel : {current_state} {unit}",
|
||
"data": {
|
||
"trigger_attribute": "Valeur à surveiller",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_attribute": "Sélectionnez l'état de l'entité ou un attribut spécifique à surveiller."
|
||
}
|
||
},
|
||
"opt_trigger_type": {
|
||
"title": "Type de déclencheur",
|
||
"description": "Comment la valeur du capteur doit-elle déclencher la maintenance ?",
|
||
"data": {
|
||
"trigger_type": "Type de déclencheur",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"trigger_type": "Seuil : se déclenche lorsque la valeur dépasse les limites. Compteur : se déclenche après avoir accumulé une valeur cible. Changement d'état : se déclenche après un nombre de transitions d'état."
|
||
}
|
||
},
|
||
"opt_trigger_threshold": {
|
||
"title": "Configuration du seuil",
|
||
"description": "Définissez les seuils pour **{entity_id}** ({attribute}).\nActuel : **{current_value} {unit}** | Moy. : {average} | Plage : {minimum}–{maximum} ({data_period}j)\nSeuil haut suggéré : {suggested_above} | Seuil bas suggéré : {suggested_below}",
|
||
"data": {
|
||
"trigger_above": "Déclencher au-dessus de",
|
||
"trigger_below": "Déclencher en-dessous de",
|
||
"trigger_equals": "Déclencher si égal à",
|
||
"trigger_not_equals": "Déclencher si différent de",
|
||
"trigger_for_minutes": "Pendant au moins (minutes)",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"trigger_above": "Déclencher la maintenance lorsque la valeur dépasse ce seuil.",
|
||
"trigger_below": "Déclencher la maintenance lorsque la valeur tombe en dessous de ce seuil.",
|
||
"trigger_equals": "Déclencher l'entretien lorsque la valeur est égale à ce niveau.",
|
||
"trigger_not_equals": "Déclencher l'entretien lorsque la valeur diffère de ce niveau.",
|
||
"trigger_for_minutes": "La valeur doit dépasser le seuil pendant ce nombre de minutes avant le déclenchement.",
|
||
"interval_days": "Intervalle de sécurité basé sur le temps en plus du déclencheur du capteur.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement."
|
||
}
|
||
},
|
||
"opt_trigger_counter": {
|
||
"title": "Configuration du compteur",
|
||
"description": "Définissez la valeur cible du compteur pour {entity_id} ({attribute}). Actuel : {current_value} {unit}.",
|
||
"data": {
|
||
"trigger_target_value": "Valeur cible",
|
||
"trigger_delta_mode": "Mode delta (compter les changements, pas la valeur absolue)",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit",
|
||
"trigger_baseline_value": "Valeur de départ (facultatif)"
|
||
},
|
||
"data_description": {
|
||
"trigger_target_value": "Déclencher la maintenance lorsque cette valeur accumulée est atteinte.",
|
||
"trigger_delta_mode": "Si activé, compte la différence par rapport à une valeur de référence au lieu de la valeur absolue.",
|
||
"interval_days": "Intervalle de sécurité basé sur le temps en plus du déclencheur du compteur.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement."
|
||
}
|
||
},
|
||
"opt_trigger_state_change": {
|
||
"title": "Configuration du changement d'état",
|
||
"description": "Comptez les transitions d'état de {entity_id}.",
|
||
"data": {
|
||
"trigger_from_state": "Depuis l'état (optionnel)",
|
||
"trigger_to_state": "Vers l'état (optionnel)",
|
||
"trigger_target_changes": "Nombre de changements pour déclencher",
|
||
"trigger_for_minutes": "Pendant au moins (minutes)",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"trigger_from_state": "Ne compter que les transitions depuis cet état. Laisser vide pour tous.",
|
||
"trigger_to_state": "Ne compter que les transitions vers cet état. Laisser vide pour tous.",
|
||
"trigger_target_changes": "Nombre de changements d'état correspondants avant de déclencher la maintenance.",
|
||
"interval_days": "Intervalle de sécurité basé sur le temps en plus du déclencheur de changement d'état.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement.",
|
||
"trigger_for_minutes": "Le nouvel état doit se maintenir aussi longtemps avant que le changement compte. 0 = compter immédiatement."
|
||
}
|
||
},
|
||
"opt_trigger_runtime": {
|
||
"title": "Configuration du temps de fonctionnement",
|
||
"description": "Suivez le temps de fonctionnement cumulé de {entity_id}.",
|
||
"data": {
|
||
"trigger_runtime_hours": "Temps de fonctionnement cible (heures)",
|
||
"trigger_on_states": "États actifs (séparés par des virgules)",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"trigger_runtime_hours": "Déclencher la maintenance après ce nombre d'heures de temps de fonctionnement cumulé.",
|
||
"trigger_on_states": "Quels états du capteur comptent comme 'actif'. Laisser vide pour la valeur par défaut : on, 1, true. Exemple : in_use, running",
|
||
"interval_days": "Intervalle de sécurité basé sur le temps en plus du déclencheur de temps de fonctionnement.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement."
|
||
}
|
||
},
|
||
"opt_trigger_due_date": {
|
||
"title": "Date d'échéance",
|
||
"description": "Surveille la date indiquée par {entity_id} (actuellement : {current_state}). La tâche devient due le nombre de jours choisi avant cette date.",
|
||
"data": {
|
||
"trigger_days_before": "Jours avant la date",
|
||
"interval_days": "Intervalle de sécurité",
|
||
"interval_unit": "Unité d'intervalle",
|
||
"trigger_combinator": "Combiner déclencheur et intervalle",
|
||
"warning_days": "Jours d'avertissement avant échéance",
|
||
"go_back": "Retour",
|
||
"auto_complete_on_recovery": "Terminer automatiquement quand le capteur se rétablit"
|
||
},
|
||
"data_description": {
|
||
"trigger_days_before": "0 = le jour même. Quand l'appareil repousse sa date (en général avec son propre bouton « fait »), le déclencheur se lève.",
|
||
"interval_days": "Intervalle de sécurité basé sur le temps en plus du déclencheur du capteur.",
|
||
"interval_unit": "Unité de l'intervalle : jours, semaines, mois ou années. Les mois et années suivent le calendrier.",
|
||
"trigger_combinator": "Premier atteint (défaut) : le déclencheur ou l'intervalle écoulé rend la tâche due. Les deux requis : la tâche n'est due qu'une fois le déclencheur activé et l'intervalle écoulé.",
|
||
"warning_days": "Nombre de jours avant l'échéance pour afficher un avertissement."
|
||
}
|
||
},
|
||
"object_settings": {
|
||
"title": "Paramètres de l'objet",
|
||
"description": "Modifier les détails de l'objet.",
|
||
"data": {
|
||
"name": "Nom de l'objet",
|
||
"manufacturer": "Fabricant",
|
||
"model": "Modèle",
|
||
"serial_number": "Numéro de série",
|
||
"documentation_url": "URL du manuel / documentation",
|
||
"notes": "Notes",
|
||
"area_id": "Zone",
|
||
"installation_date": "Date d'installation",
|
||
"warranty_expiry": "Fin de garantie",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"name": "Un nom unique pour cet objet de maintenance (ex. 'Pompe de piscine', 'Voiture').",
|
||
"manufacturer": "Le fabricant de l'objet.",
|
||
"model": "Le nom ou numéro de modèle.",
|
||
"serial_number": "Le numéro de série de l'objet.",
|
||
"documentation_url": "Lien optionnel vers un manuel PDF, une page constructeur ou toute URL contenant des informations de référence pour cet objet.",
|
||
"notes": "Notes libres sur l'objet — numéros de pièces, procédures, rappels de réglages, etc.",
|
||
"area_id": "La zone de votre maison où se trouve cet objet.",
|
||
"installation_date": "Quand cet objet a été installé ou acheté.",
|
||
"warranty_expiry": "Date d'expiration de la garantie du fabricant pour cet objet.",
|
||
"go_back": "Retour au menu principal sans enregistrer."
|
||
}
|
||
},
|
||
"edit_phases": {
|
||
"title": "Modifier les phases du cycle",
|
||
"description": "Phases du cycle pour {task_name} : des travaux différents sur un même rythme. Une ligne par étape du cycle — répétez un nom pour une étape répétée. Ajoutez une check-list avec « Nom : élément ; élément ». Laissez vide pour supprimer le cycle.",
|
||
"data": {
|
||
"phases_text": "Étapes du cycle",
|
||
"go_back": "Retour"
|
||
},
|
||
"data_description": {
|
||
"phases_text": "Une étape par ligne, dans l'ordre du cycle. « Nom : élément ; élément » définit la check-list de la phase. Les pièces et champs obligatoires par phase se gèrent dans le panneau et sont conservés ici.",
|
||
"go_back": "Retour aux actions de tâche sans enregistrer."
|
||
}
|
||
},
|
||
"home_profile": {
|
||
"title": "Profil du logement",
|
||
"description": "Recommande des modèles et règle les périodes saisonnières selon votre climat et votre hémisphère. Tout est déterminé localement à partir de vos étages, pièces et de l'emplacement du domicile.\n\n**Détecté:** {detected} · {country} · {climate}",
|
||
"data": {
|
||
"home_type": "Type de logement",
|
||
"home_region": "État, province ou région",
|
||
"disabled_template_ids": "Modèles masqués"
|
||
},
|
||
"data_description": {
|
||
"home_region": "Certaines règles varient au sein d'un pays : contrôle annuel des véhicules dans un État, aucun dans le suivant. Déterminé à partir de l'emplacement de votre domicile ; choisissez-en un autre s'il est erroné.",
|
||
"disabled_template_ids": "Les modèles choisis ici n'apparaissent plus dans les sélecteurs « Depuis un modèle » (panneau et assistant de configuration). Rien d'autre ne change."
|
||
}
|
||
},
|
||
"archive_settings": {
|
||
"title": "Archivage et conservation",
|
||
"description": "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.",
|
||
"data": {
|
||
"archive_oneoff_days": "Archiver automatiquement les tâches ponctuelles terminées après (jours, 0 = désactivé)",
|
||
"delete_archived_oneoff_days": "Supprimer automatiquement les tâches ponctuelles archivées après (jours, 0 = jamais)"
|
||
}
|
||
},
|
||
"member_avatars": {
|
||
"title": "Avatars des membres",
|
||
"description": "Affiché à côté des tâches attribuées — initiales dans la couleur du membre. Par défaut d'après le nom ; choisissez vos initiales ou une couleur pour distinguer les membres.",
|
||
"data": {
|
||
"member": "Membre du foyer"
|
||
}
|
||
},
|
||
"member_avatar": {
|
||
"title": "Avatars des membres",
|
||
"description": "{member} : laissez les initiales vides et la couleur sur Automatique pour utiliser la valeur par défaut ({initials}).",
|
||
"data": {
|
||
"initials": "Initiales",
|
||
"color": "Couleur"
|
||
}
|
||
},
|
||
"battery_lifetimes": {
|
||
"title": "Durées de vie typiques des piles",
|
||
"description": "Utilisé uniquement pour les piles sans pourcentage : une note Battery Notes qui ne connaît qu'un type et une date de remplacement, ou un capteur qui ne signale que « faible ». Leur échéance est dernier remplacement + cette durée. Les piles qui remontent un niveau sont prévues d'après la décharge mesurée. Dès que le parc a vu trois remplacements d'un type, l'intervalle médian remplace la valeur intégrée — votre valeur l'emporte toujours.\n\nValeurs intégrées (mois): {defaults}"
|
||
}
|
||
},
|
||
"error": {
|
||
"name_exists": "Un objet de maintenance avec ce nom existe déjà.",
|
||
"no_tasks": "Au moins une tâche de maintenance est requise.",
|
||
"invalid_entity": "L'entité sélectionnée n'existe pas ou n'a pas de données numériques.",
|
||
"invalid_attribute": "L'attribut sélectionné n'est pas disponible sur cette entité.",
|
||
"invalid_threshold": "Au moins un seuil (haut ou bas) doit être défini.",
|
||
"overlapping_threshold": "Le seuil « en dessous » doit être inférieur au seuil « au-dessus » — sinon chaque relevé déclenche la tâche et elle ne peut jamais se rétablir. Laissez l'un des deux vide.",
|
||
"invalid_due_date": "Une date d'échéance est requise pour les tâches uniques.",
|
||
"last_performed_future": "La date de dernière réalisation ne peut pas être dans le futur.",
|
||
"invalid_interval": "L'intervalle doit être un nombre positif.",
|
||
"min_exceeds_max": "L'intervalle minimum ne doit pas dépasser l'intervalle maximum.",
|
||
"invalid_notify_service": "Format du service de notification invalide. Utilisez 'notify.nom_du_service' (ex. : notify.mobile_app_phone).",
|
||
"notify_service_not_found": "Ce service de notification n'a pas été trouvé dans Home Assistant. Veuillez vérifier le nom du service.",
|
||
"nfc_tag_duplicate": "Ce tag NFC est déjà lié à une autre tâche.",
|
||
"invalid_notify_icon": "L'icône de notification doit être un nom d'icône mdi: (p. ex. mdi:air-filter).",
|
||
"invalid_shopping_list_entity": "La liste de courses doit être une entité de tâches (todo.…).",
|
||
"invalid_search_template": "Le lien de recherche doit être une URL http(s) contenant {q}.",
|
||
"invalid_schedule": "Le planning est incomplet — choisissez au moins un jour de la semaine (ou un calendrier pour une tâche pilotée par calendrier).",
|
||
"invalid_delta_target": "En mode delta (comptage de l'usage cumulé), la valeur cible doit être supérieure à 0.",
|
||
"invalid_reminder_lead_days": "Saisissez des jours entiers entre 0 et 365, séparés par des virgules (ex. 14, 3, 0)."
|
||
},
|
||
"abort": {
|
||
"entity_unavailable": "L'entité sélectionnée n'est pas disponible pour le moment. Réessayez lorsqu'elle signale un état."
|
||
}
|
||
},
|
||
"entity": {
|
||
"button": {
|
||
"button_complete": {
|
||
"name": "{task_name} Terminer"
|
||
},
|
||
"button_skip": {
|
||
"name": "{task_name} Ignorer"
|
||
},
|
||
"button_reset": {
|
||
"name": "{task_name} Réinitialiser"
|
||
}
|
||
},
|
||
"sensor": {
|
||
"maintenance_task": {
|
||
"name": "{task_name}",
|
||
"state": {
|
||
"ok": "OK",
|
||
"due_soon": "Bientôt dû",
|
||
"overdue": "En retard",
|
||
"triggered": "Déclenché",
|
||
"archived": "Archivé",
|
||
"paused": "En pause"
|
||
},
|
||
"state_attributes": {
|
||
"maintenance_type": {
|
||
"name": "Type de maintenance",
|
||
"state": {
|
||
"cleaning": "Nettoyage",
|
||
"inspection": "Inspection",
|
||
"replacement": "Remplacement",
|
||
"calibration": "Calibrage",
|
||
"service": "Service",
|
||
"reading": "Relevé",
|
||
"custom": "Personnalisé"
|
||
}
|
||
},
|
||
"schedule_type": {
|
||
"name": "Type de planification",
|
||
"state": {
|
||
"time_based": "Temporel",
|
||
"sensor_based": "Basé sur capteur",
|
||
"one_time": "Unique",
|
||
"manual": "Manuel"
|
||
}
|
||
},
|
||
"interval_days": {
|
||
"name": "Intervalle"
|
||
},
|
||
"interval_unit": {
|
||
"name": "Unité d'intervalle"
|
||
},
|
||
"warning_days": {
|
||
"name": "Jours d'avertissement"
|
||
},
|
||
"last_performed": {
|
||
"name": "Dernière exécution"
|
||
},
|
||
"next_due": {
|
||
"name": "Prochaine échéance"
|
||
},
|
||
"days_until_due": {
|
||
"name": "Jours avant échéance"
|
||
},
|
||
"parent_object": {
|
||
"name": "Objet parent"
|
||
},
|
||
"times_performed": {
|
||
"name": "Nombre d'exécutions"
|
||
},
|
||
"total_cost": {
|
||
"name": "Coût total"
|
||
},
|
||
"average_duration": {
|
||
"name": "Durée moyenne (min)"
|
||
},
|
||
"notes": {
|
||
"name": "Notes"
|
||
},
|
||
"documentation_url": {
|
||
"name": "URL de documentation"
|
||
},
|
||
"trigger_entity": {
|
||
"name": "Entité déclencheur"
|
||
},
|
||
"trigger_attribute": {
|
||
"name": "Attribut déclencheur"
|
||
},
|
||
"trigger_type": {
|
||
"name": "Type de déclencheur",
|
||
"state": {
|
||
"threshold": "Seuil",
|
||
"counter": "Compteur",
|
||
"state_change": "Changement d'état",
|
||
"runtime": "Temps de fonctionnement",
|
||
"compound": "Composé"
|
||
}
|
||
},
|
||
"trigger_active": {
|
||
"name": "Déclencheur actif"
|
||
},
|
||
"trigger_current_value": {
|
||
"name": "Valeur actuelle du déclencheur"
|
||
},
|
||
"trigger_entity_state": {
|
||
"name": "État de l'entité déclencheur",
|
||
"state": {
|
||
"available": "Disponible",
|
||
"unavailable": "Indisponible",
|
||
"missing": "Manquant",
|
||
"startup": "Démarrage"
|
||
}
|
||
},
|
||
"trigger_above": {
|
||
"name": "Déclencheur au-dessus"
|
||
},
|
||
"trigger_below": {
|
||
"name": "Déclencheur en-dessous"
|
||
},
|
||
"trigger_for_minutes": {
|
||
"name": "Déclencheur pendant (minutes)"
|
||
},
|
||
"trigger_target_value": {
|
||
"name": "Valeur cible du déclencheur"
|
||
},
|
||
"trigger_delta_mode": {
|
||
"name": "Mode delta du déclencheur"
|
||
},
|
||
"trigger_baseline_value": {
|
||
"name": "Valeur de référence du déclencheur"
|
||
},
|
||
"trigger_current_delta": {
|
||
"name": "Delta actuel du déclencheur"
|
||
},
|
||
"trigger_from_state": {
|
||
"name": "Déclencheur depuis état"
|
||
},
|
||
"trigger_to_state": {
|
||
"name": "Déclencheur vers état"
|
||
},
|
||
"trigger_target_changes": {
|
||
"name": "Changements cibles du déclencheur"
|
||
},
|
||
"trigger_change_count": {
|
||
"name": "Compteur de changements du déclencheur"
|
||
},
|
||
"trigger_runtime_hours": {
|
||
"name": "Temps de fonctionnement cible (heures)"
|
||
},
|
||
"trigger_accumulated_hours": {
|
||
"name": "Temps de fonctionnement cumulé (heures)"
|
||
},
|
||
"trigger_remaining_hours": {
|
||
"name": "Temps de fonctionnement restant (heures)"
|
||
},
|
||
"last_entry": {
|
||
"name": "Dernière entrée"
|
||
},
|
||
"suggested_interval": {
|
||
"name": "Intervalle suggéré"
|
||
},
|
||
"interval_confidence": {
|
||
"name": "Confiance de l'intervalle",
|
||
"state": {
|
||
"low": "Faible",
|
||
"medium": "Moyenne",
|
||
"high": "Élevée"
|
||
}
|
||
},
|
||
"adaptive_scheduling_enabled": {
|
||
"name": "Planification adaptative activée"
|
||
},
|
||
"seasonal_factor": {
|
||
"name": "Facteur saisonnier"
|
||
},
|
||
"seasonal_reason": {
|
||
"name": "Raison saisonnière",
|
||
"state": {
|
||
"learned": "Appris",
|
||
"manual": "Manuel"
|
||
}
|
||
},
|
||
"degradation_rate": {
|
||
"name": "Taux de dégradation"
|
||
},
|
||
"degradation_trend": {
|
||
"name": "Tendance de dégradation",
|
||
"state": {
|
||
"rising": "En hausse",
|
||
"falling": "En baisse",
|
||
"stable": "Stable",
|
||
"insufficient_data": "Données insuffisantes"
|
||
}
|
||
},
|
||
"days_until_threshold": {
|
||
"name": "Jours avant seuil"
|
||
},
|
||
"threshold_prediction_confidence": {
|
||
"name": "Confiance de prédiction",
|
||
"state": {
|
||
"low": "Faible",
|
||
"medium": "Moyenne",
|
||
"high": "Élevée"
|
||
}
|
||
},
|
||
"environmental_factor": {
|
||
"name": "Facteur environnemental"
|
||
},
|
||
"environmental_entity": {
|
||
"name": "Entité environnementale"
|
||
},
|
||
"weibull_beta": {
|
||
"name": "Forme Weibull (β)"
|
||
},
|
||
"weibull_eta": {
|
||
"name": "Échelle Weibull (η)"
|
||
},
|
||
"weibull_r_squared": {
|
||
"name": "R² Weibull"
|
||
},
|
||
"weibull_beta_interpretation": {
|
||
"name": "Type de défaillance",
|
||
"state": {
|
||
"early_failures": "Défaillances précoces",
|
||
"random_failures": "Défaillances aléatoires",
|
||
"wear_out": "Usure",
|
||
"highly_predictable": "Très prévisible"
|
||
}
|
||
},
|
||
"confidence_interval_low": {
|
||
"name": "Intervalle de confiance (bas)"
|
||
},
|
||
"confidence_interval_high": {
|
||
"name": "Intervalle de confiance (haut)"
|
||
},
|
||
"interval_anchor": {
|
||
"name": "Ancrage d'intervalle",
|
||
"state": {
|
||
"completion": "À partir de l'achèvement",
|
||
"planned": "À partir de la date prévue"
|
||
}
|
||
},
|
||
"due_date": {
|
||
"name": "Date d'échéance"
|
||
}
|
||
}
|
||
},
|
||
"summary_overdue": {
|
||
"name": "En retard"
|
||
},
|
||
"summary_due_soon": {
|
||
"name": "Bientôt dû"
|
||
},
|
||
"summary_triggered": {
|
||
"name": "Déclenché"
|
||
},
|
||
"summary_needs_attention": {
|
||
"name": "Attention requise"
|
||
},
|
||
"summary_ok": {
|
||
"name": "OK"
|
||
},
|
||
"document_storage": {
|
||
"name": "Stockage des documents"
|
||
},
|
||
"summary_total_tasks": {
|
||
"name": "Total des tâches"
|
||
},
|
||
"next_due": {
|
||
"name": "{task_name} Prochaine échéance"
|
||
},
|
||
"days_until_due": {
|
||
"name": "{task_name} Jours avant échéance"
|
||
},
|
||
"parts_to_reorder": {
|
||
"name": "Pièces à racheter"
|
||
},
|
||
"batteries_to_replace": {
|
||
"name": "Piles à remplacer"
|
||
},
|
||
"area_cost": {
|
||
"name": "{area} coût d'entretien"
|
||
},
|
||
"area_cost_year": {
|
||
"name": "{area} coût d'entretien cette année"
|
||
}
|
||
},
|
||
"calendar": {
|
||
"maintenance_schedule": {
|
||
"name": "Calendrier de maintenance"
|
||
}
|
||
},
|
||
"binary_sensor": {
|
||
"maintenance_task_due": {
|
||
"name": "{task_name} en retard",
|
||
"state_attributes": {
|
||
"maintenance_status": {
|
||
"name": "Statut de maintenance",
|
||
"state": {
|
||
"ok": "OK",
|
||
"due_soon": "Bientôt dû",
|
||
"overdue": "En retard",
|
||
"triggered": "Déclenché",
|
||
"archived": "Archivé"
|
||
}
|
||
},
|
||
"days_until_due": {
|
||
"name": "Jours avant l'échéance"
|
||
},
|
||
"next_due": {
|
||
"name": "Prochaine échéance"
|
||
},
|
||
"parent_object": {
|
||
"name": "Objet parent"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"todo": {
|
||
"maintenance_todo": {
|
||
"name": "Maintenance"
|
||
}
|
||
}
|
||
},
|
||
"selector": {
|
||
"maintenance_type": {
|
||
"options": {
|
||
"cleaning": "Nettoyage",
|
||
"inspection": "Inspection",
|
||
"replacement": "Remplacement",
|
||
"calibration": "Calibrage",
|
||
"service": "Service",
|
||
"reading": "Relevé",
|
||
"custom": "Personnalisé"
|
||
}
|
||
},
|
||
"schedule_type": {
|
||
"options": {
|
||
"time_based": "Temporel",
|
||
"weekdays": "Jours de la semaine",
|
||
"nth_weekday": "N-ième jour de la semaine du mois",
|
||
"day_of_month": "Jour du mois",
|
||
"calendar": "Entité calendrier",
|
||
"sensor_based": "Basé sur capteur",
|
||
"one_time": "Unique",
|
||
"manual": "Manuel"
|
||
}
|
||
},
|
||
"interval_unit": {
|
||
"options": {
|
||
"days": "Jours",
|
||
"weeks": "Semaines",
|
||
"months": "Mois",
|
||
"years": "Années"
|
||
}
|
||
},
|
||
"trigger_type": {
|
||
"options": {
|
||
"threshold": "Seuil",
|
||
"counter": "Compteur",
|
||
"state_change": "Changement d'état",
|
||
"runtime": "Temps de fonctionnement",
|
||
"due_date": "Date d'échéance (indiquée par un capteur)",
|
||
"compound": "Composé (Conditions Multiples)"
|
||
}
|
||
},
|
||
"compound_logic": {
|
||
"options": {
|
||
"and": "ET (toutes les conditions doivent déclencher)",
|
||
"or": "OU (n'importe quelle condition déclenche)"
|
||
}
|
||
},
|
||
"entity_logic": {
|
||
"options": {
|
||
"any": "N'importe quelle entité déclenche",
|
||
"all": "Toutes les entités doivent déclencher"
|
||
}
|
||
},
|
||
"trigger_combinator": {
|
||
"options": {
|
||
"any": "Déclencheur ou intervalle (premier atteint)",
|
||
"all": "Déclencheur et intervalle (les deux requis)"
|
||
}
|
||
},
|
||
"notify_completed": {
|
||
"options": {
|
||
"off": "Désactivé",
|
||
"automatic": "Achèvements automatiques seulement",
|
||
"all": "Tous les achèvements"
|
||
}
|
||
},
|
||
"notification_title_style": {
|
||
"options": {
|
||
"default": "Par défaut (titre par statut)",
|
||
"object_name": "Nom de l'objet comme titre",
|
||
"task_name": "Nom de la tâche comme titre"
|
||
}
|
||
},
|
||
"row_action_style": {
|
||
"options": {
|
||
"buttons_compact": "Boutons (icônes seules sur téléphone)",
|
||
"buttons": "Boutons avec texte",
|
||
"icons": "Icônes (classique)"
|
||
}
|
||
},
|
||
"objects_table_columns": {
|
||
"options": {
|
||
"name": "Nom",
|
||
"ref_no": "Numéro de référence",
|
||
"manufacturer": "Fabricant",
|
||
"model": "Modèle",
|
||
"serial_number": "N/S",
|
||
"installation_date": "Installé",
|
||
"warranty_expiry": "Garantie",
|
||
"area_id": "Zone",
|
||
"documentation_url": "Manuel",
|
||
"notes": "Notes",
|
||
"task_count": "Tâches",
|
||
"actions": "Actions"
|
||
}
|
||
},
|
||
"home_type": {
|
||
"options": {
|
||
"auto": "Automatique (détecté)",
|
||
"house": "Maison",
|
||
"apartment": "Appartement"
|
||
}
|
||
},
|
||
"avatar_color": {
|
||
"options": {
|
||
"auto": "Automatique",
|
||
"red": "Rouge",
|
||
"pink": "Rose",
|
||
"purple": "Violet",
|
||
"deep_purple": "Violet foncé",
|
||
"indigo": "Indigo",
|
||
"blue": "Bleu",
|
||
"cyan": "Cyan",
|
||
"green": "Vert",
|
||
"light_green": "Vert clair",
|
||
"orange": "Orange",
|
||
"brown": "Marron",
|
||
"blue_grey": "Gris bleu"
|
||
}
|
||
},
|
||
"interval_anchor": {
|
||
"options": {
|
||
"completion": "Depuis la date de réalisation",
|
||
"planned": "Depuis la date prévue (sans dérive)"
|
||
}
|
||
},
|
||
"compound_action": {
|
||
"options": {
|
||
"finish": "Terminer",
|
||
"add": "Ajouter une condition"
|
||
}
|
||
},
|
||
"parts_cost_mode": {
|
||
"options": {
|
||
"purchase": "À l'achat",
|
||
"use": "À l'utilisation"
|
||
}
|
||
}
|
||
},
|
||
"services": {
|
||
"complete": {
|
||
"name": "Terminer la maintenance",
|
||
"description": "Marquer une tâche de maintenance comme terminée.",
|
||
"fields": {
|
||
"entity_id": {
|
||
"name": "Entité",
|
||
"description": "L'entité capteur de maintenance à terminer."
|
||
},
|
||
"notes": {
|
||
"name": "Notes",
|
||
"description": "Notes optionnelles sur la maintenance effectuée."
|
||
},
|
||
"cost": {
|
||
"name": "Coût",
|
||
"description": "Coût de la maintenance effectuée."
|
||
},
|
||
"duration": {
|
||
"name": "Durée",
|
||
"description": "Durée de la maintenance en minutes."
|
||
},
|
||
"reading_value": {
|
||
"name": "Valeur relevée",
|
||
"description": "Valeur enregistrée pour les tâches de relevé (relevé de compteur, contrôle de niveau)."
|
||
},
|
||
"reading_values": {
|
||
"name": "Relevés",
|
||
"description": "Valeurs pour une tâche à plusieurs relevés nommés, par nom (ex. Eau froide : 123.4)."
|
||
},
|
||
"completed_by": {
|
||
"name": "Effectué par",
|
||
"description": "Personne ayant effectué la maintenance (doit être liée à un utilisateur Home Assistant). Si omis, l'utilisateur à l'origine de l'appel est enregistré."
|
||
},
|
||
"completed_at": {
|
||
"name": "Effectué le",
|
||
"description": "Quand l'entretien a réellement été effectué — pour saisir a posteriori un entretien passé. Ne doit pas être dans le futur ; si omis, l'instant présent est enregistré."
|
||
},
|
||
"via_tag_scan": {
|
||
"name": "Via scan du tag",
|
||
"description": "Atteste que cette réalisation provient du scan d'un tag/QR code physique traité par l'automatisation elle-même — satisfait le réglage « Terminer uniquement en scannant le tag » de la tâche."
|
||
}
|
||
}
|
||
},
|
||
"reset": {
|
||
"name": "Réinitialiser la maintenance",
|
||
"description": "Réinitialiser la date de dernière exécution d'une tâche de maintenance.",
|
||
"fields": {
|
||
"entity_id": {
|
||
"name": "Entité",
|
||
"description": "L'entité capteur de maintenance à réinitialiser."
|
||
},
|
||
"date": {
|
||
"name": "Date",
|
||
"description": "La date à définir comme dernière exécution. Par défaut aujourd'hui."
|
||
}
|
||
}
|
||
},
|
||
"skip": {
|
||
"name": "Passer la maintenance",
|
||
"description": "Passer le cycle de maintenance actuel.",
|
||
"fields": {
|
||
"entity_id": {
|
||
"name": "Entité",
|
||
"description": "L'entité capteur de maintenance à passer."
|
||
},
|
||
"reason": {
|
||
"name": "Raison",
|
||
"description": "Raison optionnelle pour passer la maintenance."
|
||
}
|
||
}
|
||
},
|
||
"export_data": {
|
||
"name": "Exporter les données",
|
||
"description": "Exporter toutes les données de maintenance en JSON ou YAML vers maintenance_export.json / maintenance_export.yaml dans le dossier de configuration de Home Assistant, puis déclencher maintenance_supporter_export_completed avec le chemin du fichier. Réservé aux administrateurs.",
|
||
"fields": {
|
||
"format": {
|
||
"name": "Format",
|
||
"description": "Format de sortie pour les données exportées (json ou yaml)."
|
||
},
|
||
"include_history": {
|
||
"name": "Inclure l'historique",
|
||
"description": "Inclure ou non les entrées d'historique des tâches dans l'exportation."
|
||
}
|
||
}
|
||
},
|
||
"add_object": {
|
||
"name": "Ajouter un objet",
|
||
"description": "Crée un nouvel objet de maintenance (appareil). Renvoie le nouvel entry_id.",
|
||
"fields": {
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Nom de l'objet/appareil."
|
||
},
|
||
"area_id": {
|
||
"name": "Zone",
|
||
"description": "Zone à laquelle affecter l'appareil."
|
||
},
|
||
"manufacturer": {
|
||
"name": "Fabricant",
|
||
"description": "Le fabricant de l'objet."
|
||
},
|
||
"model": {
|
||
"name": "Modèle",
|
||
"description": "Le nom ou numéro de modèle."
|
||
},
|
||
"serial_number": {
|
||
"name": "Numéro de série",
|
||
"description": "Le numéro de série de l'objet."
|
||
},
|
||
"installation_date": {
|
||
"name": "Date d'installation",
|
||
"description": "Date d'installation ou d'achat de cet objet."
|
||
},
|
||
"warranty_expiry": {
|
||
"name": "Fin de garantie",
|
||
"description": "Date de fin de garantie (pour le suivi des biens et les rappels)."
|
||
},
|
||
"documentation_url": {
|
||
"name": "URL de documentation",
|
||
"description": "Lien vers un manuel ou une page du fabricant (http/https uniquement)."
|
||
},
|
||
"notes": {
|
||
"name": "Notes",
|
||
"description": "Notes libres sur l'objet — numéros de pièces, procédures, rappels de réglages, etc."
|
||
}
|
||
}
|
||
},
|
||
"add_task": {
|
||
"name": "Ajouter une tâche",
|
||
"description": "Ajoute une tâche de maintenance à un objet existant. Renvoie le nouveau task_id.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Objet",
|
||
"description": "L'objet de maintenance auquel ajouter la tâche."
|
||
},
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Nom de la tâche."
|
||
},
|
||
"task_type": {
|
||
"name": "Type de tâche",
|
||
"description": "Catégorie libre (p. ex. inspection, service, custom)."
|
||
},
|
||
"schedule_type": {
|
||
"name": "Type de planification",
|
||
"description": "time_based (nécessite interval_days), one_time (nécessite due_date) ou manual. S'il est omis, les autres champs décident : un intervalle donne time_based, une échéance one_time, ni l'un ni l'autre manual. Les tâches déclenchées par capteur nécessitent un déclencheur et se créent dans le panneau."
|
||
},
|
||
"interval_days": {
|
||
"name": "Intervalle",
|
||
"description": "Longueur de l'intervalle entre les occurrences (pour les tâches temporelles), combinée avec interval_unit."
|
||
},
|
||
"interval_unit": {
|
||
"name": "Unité d'intervalle",
|
||
"description": "Unité de l'intervalle : days, weeks, months ou years. Par défaut : days."
|
||
},
|
||
"due_date": {
|
||
"name": "Date d'échéance",
|
||
"description": "Date d'échéance (YYYY-MM-DD) pour une tâche ponctuelle (schedule_type one_time)."
|
||
},
|
||
"schedule": {
|
||
"name": "Planification calendaire",
|
||
"description": "Récurrence imbriquée pour les types calendaires, p. ex. kind=nth_weekday, nth=1, weekday=5 pour le 1er samedi (weekday 0=lun ... 6=dim), kind=weekdays, weekdays=[0, 3] pour lun et jeu, ou kind=day_of_month, day=15. Prioritaire sur interval_days / schedule_type."
|
||
},
|
||
"warning_days": {
|
||
"name": "Préavis (jours)",
|
||
"description": "Jours avant l'échéance pour entrer dans la fenêtre « bientôt dû ». Par défaut : le réglage global de l'intégration."
|
||
},
|
||
"enabled": {
|
||
"name": "Activé",
|
||
"description": "Lorsque désactivé, la planification et les déclencheurs sont suspendus. La tâche n'est pas supprimée."
|
||
},
|
||
"notes": {
|
||
"name": "Notes",
|
||
"description": "Notes supplémentaires ou instructions pour cette tâche."
|
||
}
|
||
}
|
||
},
|
||
"update_task": {
|
||
"name": "Mettre à jour la tâche",
|
||
"description": "Met à jour les champs courants d'une tâche de maintenance existante. Seuls les champs fournis changent.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Objet",
|
||
"description": "L'objet de maintenance auquel appartient la tâche."
|
||
},
|
||
"task_id": {
|
||
"name": "ID de tâche",
|
||
"description": "L'id de la tâche à mettre à jour (voir list_tasks)."
|
||
},
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Nouveau nom de la tâche."
|
||
},
|
||
"task_type": {
|
||
"name": "Type de tâche",
|
||
"description": "Catégorie (cleaning, inspection, replacement, calibration, service, reading, custom)."
|
||
},
|
||
"schedule_type": {
|
||
"name": "Type de planification",
|
||
"description": "time_based (nécessite interval_days sauf si la tâche a déjà un intervalle), one_time (nécessite due_date) ou manual. Passer à manual ou one_time supprime l'ancien intervalle."
|
||
},
|
||
"interval_days": {
|
||
"name": "Intervalle",
|
||
"description": "Longueur de l'intervalle entre les occurrences, combinée avec interval_unit."
|
||
},
|
||
"interval_unit": {
|
||
"name": "Unité d'intervalle",
|
||
"description": "days, weeks, months ou years."
|
||
},
|
||
"due_date": {
|
||
"name": "Date d'échéance",
|
||
"description": "Date d'échéance pour les tâches ponctuelles (YYYY-MM-DD)."
|
||
},
|
||
"schedule": {
|
||
"name": "Planification (récurrence calendaire)",
|
||
"description": "Objet de récurrence imbriqué pour les types calendaires, p. ex. kind=day_of_month, day=-1, business=true. Prioritaire sur les champs plats."
|
||
},
|
||
"warning_days": {
|
||
"name": "Jours d'avertissement",
|
||
"description": "Jours avant l'échéance où la tâche devient « bientôt due »."
|
||
},
|
||
"enabled": {
|
||
"name": "Activé",
|
||
"description": "Si la tâche est active."
|
||
},
|
||
"notes": {
|
||
"name": "Notes",
|
||
"description": "Notes libres sur la tâche."
|
||
},
|
||
"priority": {
|
||
"name": "Priorité",
|
||
"description": "low, normal ou high."
|
||
},
|
||
"labels": {
|
||
"name": "Étiquettes",
|
||
"description": "Liste d'étiquettes pour le filtrage et les rapports."
|
||
},
|
||
"responsible_user": {
|
||
"name": "Utilisateur responsable",
|
||
"description": "Attribue la tâche à cette personne (doit être liée à un utilisateur Home Assistant)."
|
||
},
|
||
"clear_responsible_user": {
|
||
"name": "Retirer le responsable",
|
||
"description": "Supprime l'attribution actuelle. Non combinable avec « Utilisateur responsable »."
|
||
}
|
||
}
|
||
},
|
||
"delete_task": {
|
||
"name": "Supprimer la tâche",
|
||
"description": "Supprime une tâche de maintenance ainsi que son historique. Irréversible - envisagez plutôt l'archivage via le panneau.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Objet",
|
||
"description": "L'objet de maintenance auquel appartient la tâche."
|
||
},
|
||
"task_id": {
|
||
"name": "ID de tâche",
|
||
"description": "L'id de la tâche à supprimer (voir list_tasks)."
|
||
}
|
||
}
|
||
},
|
||
"list_tasks": {
|
||
"name": "Lister les tâches",
|
||
"description": "Renvoie un instantané des tâches de maintenance actives (id, entity_id du capteur, nom, statut, prochaine échéance, dernière réalisation, relevé actuel du déclencheur avec cible et unité) pour les automatisations, scripts et la voix. Prend en charge le filtrage par objet et statut.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Objet",
|
||
"description": "Ne renvoyer que les tâches de cet objet de maintenance."
|
||
},
|
||
"status": {
|
||
"name": "Statut",
|
||
"description": "Ne renvoyer que les tâches ayant ce statut."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"issues": {
|
||
"document_storage_issues": {
|
||
"title": "Le stockage des documents doit être nettoyé",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Récupérer de l'espace de stockage",
|
||
"description": "Maintenance Supporter a trouvé des fichiers non référencés et/ou des enregistrements morts dans le stockage des documents — généralement à la suite d'un plantage, d'une suppression externe de fichier ou d'une restauration partielle.\n\nCliquez sur **Valider** pour récupérer l'espace : les fichiers non référencés et obsolètes sont supprimés et les enregistrements de documents morts sont retirés. Les fichiers encore référencés par un document ne sont jamais touchés.\n\n(Pour ignorer sans nettoyer, utilisez le bouton **Ignorer** de Home Assistant sur la page Réparations.)"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"missing_trigger_entity": {
|
||
"title": "Capteur déclencheur introuvable : {task_name}",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Entité déclencheur manquante",
|
||
"description": "L'entité capteur `{entity_id}` configurée comme déclencheur pour la tâche « {task_name} » sur l'objet « {object_name} » n'est plus disponible.\n\nChoisissez comment résoudre ce problème :",
|
||
"menu_options": {
|
||
"replace_entity": "Remplacer par une autre entité",
|
||
"remove_trigger": "Supprimer le déclencheur capteur",
|
||
"dismiss": "Ignorer (réapparaîtra)"
|
||
}
|
||
},
|
||
"replace_entity": {
|
||
"title": "Remplacer l'entité déclencheur",
|
||
"description": "Sélectionnez une nouvelle entité pour remplacer `{entity_id}` comme déclencheur pour la tâche « {task_name} » sur « {object_name} ».",
|
||
"data": {
|
||
"new_entity_id": "Nouvelle entité déclencheur"
|
||
},
|
||
"data_description": {
|
||
"new_entity_id": "Sélectionnez la nouvelle entité capteur à utiliser comme déclencheur."
|
||
}
|
||
},
|
||
"remove_trigger": {
|
||
"title": "Supprimer le déclencheur capteur",
|
||
"description": "Cela supprimera le déclencheur capteur de la tâche « {task_name} » sur « {object_name} » et convertira la planification en temporelle ou manuelle. L'historique de maintenance sera conservé.\n\nEntité déclencheur précédente : `{entity_id}`"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"orphan_admin_panel_user": {
|
||
"title": "L'utilisateur de la liste d'accès au panneau n'existe plus",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Utilisateur orphelin dans la liste d'accès",
|
||
"description": "L'utilisateur `{user_id}…` est dans la liste d'accès au panneau Maintenance Supporter mais n'existe plus dans Home Assistant. L'utilisateur a probablement été supprimé.\n\nCliquez sur **Envoyer** pour retirer cet utilisateur de la liste. (Pour laisser le problème en place, utilisez plutôt le bouton **Ignorer** sur la page Réparations de Home Assistant.)"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"stale_action_entity": {
|
||
"title": "L'action de finalisation référence une entité supprimée",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Action de finalisation : {stale_entity} n'existe plus",
|
||
"description": "La tâche **{task_name}** a une `on_complete_action` configurée pour appeler un service sur `{stale_entity}`, mais cette entité n'est plus enregistrée dans Home Assistant.\n\nChoisissez comment réparer :",
|
||
"menu_options": {
|
||
"replace_entity": "Remplacer par une autre entité",
|
||
"remove_action": "Supprimer l'action de finalisation"
|
||
}
|
||
},
|
||
"replace_entity": {
|
||
"title": "Remplacer l'entité cible",
|
||
"description": "Choisissez l'entité à utiliser à la place de `{stale_entity}` pour la tâche **{task_name}**.",
|
||
"data": {
|
||
"new_entity": "Nouvelle entité cible"
|
||
}
|
||
},
|
||
"remove_action": {
|
||
"title": "Supprimer l'action de finalisation",
|
||
"description": "Supprime entièrement la `on_complete_action` de la tâche **{task_name}**. La tâche elle-même n'est pas affectée — seul l'appel de service à la finalisation est supprimé."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"notify_service_missing": {
|
||
"title": "Service de notification `{service}` introuvable",
|
||
"description": "Maintenance Supporter est configuré pour envoyer les notifications via `{service}`, mais ce service n'existe pas actuellement dans Home Assistant : les rappels échouent donc silencieusement.\n\nCela signifie généralement que le service a été renommé, ou que l'intégration associée (une application mobile, un groupe de notification, …) a été supprimée. Pour corriger : rétablissez ce service, ou ouvrez **Paramètres → Appareils et services → Maintenance Supporter → Configurer → Paramètres généraux** et choisissez un service `notify.*` valide.\n\nRemarque : seul le service configuré lui-même est vérifié. Si les notifications arrivent sur certains appareils mais pas d'autres, un membre *à l'intérieur* de votre groupe de notification est probablement mal configuré — ce n'est pas visible ici ; consultez le **journal système** de Home Assistant (Paramètres → Système → Journaux)."
|
||
},
|
||
"missing_global_entry": {
|
||
"title": "La configuration globale de Maintenance Supporter est manquante",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Restaurer la configuration globale",
|
||
"description": "Vos objets de maintenance existent toujours, mais l'entrée globale \"Maintenance Supporter\" a été supprimée — les capteurs de synthèse, le panneau latéral et les compteurs du tableau de bord ont donc disparu, et les indicateurs affichent \"unknown\".\n\nCliquez sur **Envoyer** pour recréer la configuration globale avec les paramètres par défaut. Vos objets et tâches restent intacts. Vous pourrez ajuster les notifications et les valeurs par défaut ensuite dans Paramètres → Appareils et services.\n\n(Pour ne rien changer, utilisez le bouton **Ignorer** de Home Assistant.)"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"shared_parts_moved": {
|
||
"title": "Pièces de rechange partagées déplacées vers {new_owner}",
|
||
"description": "Plusieurs objets de maintenance partageaient un même stock de pièces de rechange rattaché à **{deleted_object}**, et cet objet vient d'être supprimé. Plutôt que de laisser les autres objets pointer vers un stock qui n'existe plus, Maintenance Supporter a déplacé les pièces partagées ({parts}) — avec leur stock actuel — vers **{new_owner}**, et a redirigé vers elles les liens des tâches de tous les autres objets. Rien n'a été perdu.\n\n**{new_owner}** a été choisi automatiquement : c'est le plus ancien objet qui utilisait ce stock. Si un autre objet convient mieux, déplacez-y les pièces depuis le panneau Maintenance.\n\nIl n'y a rien d'autre à faire — fermez cette notification une fois que vous l'avez vérifiée."
|
||
},
|
||
"broken_part_link": {
|
||
"title": "Liens de pièces invalides sur {object_name}",
|
||
"description": "Une tâche de **{object_name}** vient d'être terminée, mais {count} liens vers des pièces de rechange n'ont pas pu être résolus — la pièce, ou l'objet auquel elle appartient, n'existe plus.\n\nL'achèvement lui-même a bien été enregistré : le travail n'est pas perdu. Ce qui n'a pas eu lieu, c'est le décompte du stock : rien n'a été retiré du stock d'aucune pièce pour cet achèvement.\n\nPour corriger : ouvrez la tâche dans le panneau Maintenance et supprimez les liens de pièces obsolètes, ou faites-les pointer vers les pièces que vous utilisez aujourd'hui. Fermez cette notification une fois que c'est fait."
|
||
},
|
||
"device_link_lost": {
|
||
"title": "{object} a perdu son lien vers l'appareil",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Réparer le lien d'appareil de {object}",
|
||
"description": "**{object}** était rattaché à un appareil Home Assistant, si bien que ses entités de maintenance apparaissaient sur la page de cet appareil. Cet appareil n'existe plus — supprimé, ou son intégration retirée — et l'objet affiche désormais un appareil qui lui est propre. Rien d'autre ne change : ses tâches et leur historique sont intacts.\n\nChoisissez comment procéder. Meilleure correspondance pour l'appareil visé : **{suggestion}**.",
|
||
"menu_options": {
|
||
"relink": "Lier le véritable appareil",
|
||
"unlink": "Supprimer le lien"
|
||
}
|
||
},
|
||
"relink": {
|
||
"title": "Choisir le véritable appareil",
|
||
"description": "Choisissez l'appareil auquel **{object}** appartient. La meilleure correspondance — **{suggestion}** — est présélectionnée ; vérifiez-la avant d'enregistrer. Les appareils propres à Maintenance Supporter sont refusés.",
|
||
"data": {
|
||
"device": "Appareil"
|
||
}
|
||
},
|
||
"unlink": {
|
||
"title": "Supprimer le lien d'appareil",
|
||
"description": "**{object}** conserve un appareil qui lui est propre. Les tâches et l'historique restent intacts ; vous pourrez relier un appareil à tout moment dans le panneau Maintenance."
|
||
}
|
||
},
|
||
"error": {
|
||
"self_link": "C'est un appareil de Maintenance Supporter (le jumeau de l'objet, pas l'appareil réel) — choisissez l'appareil de l'intégration d'origine.",
|
||
"device_gone": "Cet appareil n'existe pas (ou plus)."
|
||
},
|
||
"abort": {
|
||
"entry_gone": "Cet objet n'existe plus — rien à réparer."
|
||
}
|
||
}
|
||
},
|
||
"device_link_self": {
|
||
"title": "{object} est lié à son propre appareil de maintenance",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Réparer le lien d'appareil de {object}",
|
||
"description": "Le lien d'appareil de **{object}** pointe vers l'appareil jumeau que Maintenance Supporter a créé pour l'objet — il porte le nom de l'appareil réel, et le sélecteur le proposait autrefois. La vraie page de l'appareil n'a donc jamais affiché les entités de maintenance.\n\nChoisissez comment procéder. Meilleure correspondance pour l'appareil visé : **{suggestion}**.",
|
||
"menu_options": {
|
||
"relink": "Lier le véritable appareil",
|
||
"unlink": "Supprimer le lien"
|
||
}
|
||
},
|
||
"relink": {
|
||
"title": "Choisir le véritable appareil",
|
||
"description": "Choisissez l'appareil auquel **{object}** appartient. La meilleure correspondance — **{suggestion}** — est présélectionnée ; vérifiez-la avant d'enregistrer. Les appareils propres à Maintenance Supporter sont refusés.",
|
||
"data": {
|
||
"device": "Appareil"
|
||
}
|
||
},
|
||
"unlink": {
|
||
"title": "Supprimer le lien d'appareil",
|
||
"description": "**{object}** conserve un appareil qui lui est propre. Les tâches et l'historique restent intacts ; vous pourrez relier un appareil à tout moment dans le panneau Maintenance."
|
||
}
|
||
},
|
||
"error": {
|
||
"self_link": "C'est un appareil de Maintenance Supporter (le jumeau de l'objet, pas l'appareil réel) — choisissez l'appareil de l'intégration d'origine.",
|
||
"device_gone": "Cet appareil n'existe pas (ou plus)."
|
||
},
|
||
"abort": {
|
||
"entry_gone": "Cet objet n'existe plus — rien à réparer."
|
||
}
|
||
}
|
||
},
|
||
"leftover_areas": {
|
||
"title": "Zones vides créées par erreur : {areas}",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Supprimer les zones vides",
|
||
"description": "Avant la version 2.96, Maintenance Supporter créait une seconde zone portant l'ID d'une zone (par exemple « living_room » à côté de « Living Room ») et y plaçait l'appareil de l'objet. Les appareils sont revenus dans leurs vraies zones, et ces zones sont désormais vides :\n\n{areas}\n\nCliquez sur **Valider** pour les supprimer. Une zone qui a reçu entre-temps un appareil ou une entité n'est pas touchée. Pour les conserver, utilisez le bouton **Ignorer** de Home Assistant."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"exceptions": {
|
||
"no_coordinator_for_entity": {
|
||
"message": "Aucun coordinateur de maintenance trouvé pour l'entité {entity_id}."
|
||
},
|
||
"no_task_for_entity": {
|
||
"message": "Aucune tâche de maintenance trouvée pour l'entité {entity_id}."
|
||
},
|
||
"completion_details_required": {
|
||
"message": "« {task_name} » exige ces informations à la clôture : {fields}. Terminez la tâche depuis le panneau de maintenance ou la carte pour les saisir."
|
||
},
|
||
"completed_at_in_future": {
|
||
"message": "La date d'achèvement ne peut pas être dans le futur."
|
||
},
|
||
"reading_slots_required": {
|
||
"message": "Cette tâche enregistre des relevés nommés — utilisez reading_values au lieu de reading_value."
|
||
},
|
||
"tag_scan_required": {
|
||
"message": "« {task_name} » ne peut être terminé qu'en scannant son tag — allez scanner le tag NFC ou le QR code sur l'objet lui-même."
|
||
},
|
||
"task_inactive": {
|
||
"message": "« {task_name} » est archivée, désactivée ou son objet est en pause — elle ne peut pas être terminée"
|
||
},
|
||
"task_inactive_postpone": {
|
||
"message": "« {task_name} » est archivée, désactivée ou son objet est en pause — elle ne peut pas être reportée"
|
||
},
|
||
"task_inactive_reset": {
|
||
"message": "« {task_name} » est archivée, désactivée ou son objet est en pause — elle ne peut pas être réinitialisée"
|
||
},
|
||
"task_inactive_skip": {
|
||
"message": "« {task_name} » est archivée, désactivée ou son objet est en pause — elle ne peut pas être ignorée"
|
||
},
|
||
"too_early": {
|
||
"message": "« {task_name} » ne peut être terminée que plus près de son échéance"
|
||
},
|
||
"person_not_found": {
|
||
"message": "{entity_id} n'est pas une entité personne connue."
|
||
},
|
||
"person_without_user": {
|
||
"message": "La personne {name} n'est liée à aucun compte utilisateur Home Assistant."
|
||
},
|
||
"bulk_partial": {
|
||
"message": "{action} : {done} tâches sur {total} réussies. Refusées : {errors}"
|
||
},
|
||
"single_entity_only": {
|
||
"message": "{field} ne peut être utilisé qu'avec un seul entity_id."
|
||
},
|
||
"unsafe_url": {
|
||
"message": "Seules les URL http et https sont autorisées."
|
||
},
|
||
"responsible_user_conflict": {
|
||
"message": "Indiquez soit responsible_user, soit clear_responsible_user, mais pas les deux."
|
||
},
|
||
"object_not_found": {
|
||
"message": "Aucun objet de maintenance trouvé pour l'entry_id {entry_id}."
|
||
},
|
||
"task_not_found_in_object": {
|
||
"message": "La tâche {task_id} n'existe pas dans {object_name}."
|
||
},
|
||
"invalid_input": {
|
||
"message": "L'action n'a pas pu être exécutée : {error}"
|
||
},
|
||
"task_no_longer_exists": {
|
||
"message": "Cette tâche de maintenance n'existe plus."
|
||
},
|
||
"skip_disabled": {
|
||
"message": "Le saut est désactivé pour « {task_name} »."
|
||
},
|
||
"object_name_taken": {
|
||
"message": "Un autre objet porte déjà ce nom."
|
||
},
|
||
"name_empty": {
|
||
"message": "Le nom ne doit pas être vide."
|
||
},
|
||
"task_not_duplicable": {
|
||
"message": "Une tâche d'achat de pièce détachée ou la tâche du parc de piles ne peut pas être dupliquée."
|
||
},
|
||
"fleet_not_duplicable": {
|
||
"message": "L'objet du parc de piles ne peut pas être dupliqué."
|
||
},
|
||
"parts_limit": {
|
||
"message": "Un objet peut avoir au maximum {max} pièces détachées."
|
||
},
|
||
"task_limit": {
|
||
"message": "Un objet peut avoir au maximum {max} tâches."
|
||
},
|
||
"archived_cannot_pause": {
|
||
"message": "Un objet archivé ne peut pas être mis en pause — restaurez-le d'abord."
|
||
},
|
||
"archived_task_cannot_pause": {
|
||
"message": "Une tâche archivée ne peut pas être mise en pause — restaure-la d'abord."
|
||
},
|
||
"archived_cannot_replace": {
|
||
"message": "Un objet archivé ne peut pas être remplacé — restaurez-le d'abord."
|
||
},
|
||
"archived_no_new_tasks": {
|
||
"message": "Un objet archivé ne peut pas recevoir de nouvelles tâches — restaurez-le d'abord."
|
||
},
|
||
"import_not_json_yaml": {
|
||
"message": "Le fichier n'est pas un JSON ou un YAML valide."
|
||
},
|
||
"import_no_objects_list": {
|
||
"message": "Le fichier doit contenir une liste \"objects\"."
|
||
},
|
||
"import_no_objects": {
|
||
"message": "Le fichier ne contient aucun objet."
|
||
},
|
||
"import_csv_no_objects": {
|
||
"message": "Le fichier CSV ne contient aucun objet valide."
|
||
},
|
||
"import_too_many": {
|
||
"message": "Le fichier contient plus de {max} objets."
|
||
},
|
||
"import_too_large": {
|
||
"message": "Le fichier dépasse {limit}."
|
||
},
|
||
"until_in_past": {
|
||
"message": "La date de fin doit être dans le futur."
|
||
},
|
||
"postpone_too_far": {
|
||
"message": "La nouvelle date doit se situer dans les {days} prochains jours."
|
||
},
|
||
"date_in_future": {
|
||
"message": "La date ne doit pas être dans le futur."
|
||
},
|
||
"range_end_before_start": {
|
||
"message": "La fin doit être identique ou postérieure au début."
|
||
},
|
||
"notify_not_configured": {
|
||
"message": "Les notifications ne sont pas configurées — choisissez d'abord un service de notification dans les paramètres."
|
||
},
|
||
"battery_notes_unavailable": {
|
||
"message": "L'intégration Battery Notes n'est pas disponible."
|
||
},
|
||
"no_battery_devices": {
|
||
"message": "Aucun appareil à piles n'a été trouvé."
|
||
},
|
||
"fleet_not_set_up": {
|
||
"message": "Le parc de piles n'est pas encore configuré."
|
||
},
|
||
"move_same_object": {
|
||
"message": "La tâche appartient déjà à cet objet."
|
||
},
|
||
"move_target_archived": {
|
||
"message": "L'objet cible est archivé."
|
||
},
|
||
"move_part_task": {
|
||
"message": "Une tâche d'achat de pièce détachée reste avec sa pièce."
|
||
},
|
||
"move_fleet_task": {
|
||
"message": "La tâche du parc de piles ne peut pas être déplacée."
|
||
},
|
||
"move_objects_not_loaded": {
|
||
"message": "Les deux objets doivent être chargés pour déplacer une tâche."
|
||
},
|
||
"view_name_empty": {
|
||
"message": "Une vue enregistrée doit avoir un nom."
|
||
},
|
||
"qr_no_url": {
|
||
"message": "Aucune URL Home Assistant n'est configurée — définissez une URL externe ou interne dans Paramètres → Système → Réseau."
|
||
}
|
||
},
|
||
"triggers": {
|
||
"task_became_overdue": {
|
||
"name": "Une tâche de maintenance est devenue en retard",
|
||
"description": "Se déclenche lorsque le statut d'une tâche de maintenance passe à en retard.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Comportement"
|
||
},
|
||
"for": {
|
||
"name": "Pendant"
|
||
}
|
||
}
|
||
},
|
||
"task_became_due_soon": {
|
||
"name": "Une tâche de maintenance arrive à échéance",
|
||
"description": "Se déclenche lorsqu'une tâche de maintenance entre dans sa fenêtre d'avertissement.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Comportement"
|
||
},
|
||
"for": {
|
||
"name": "Pendant"
|
||
}
|
||
}
|
||
},
|
||
"sensor_trigger_activated": {
|
||
"name": "Un déclencheur de capteur s'est activé",
|
||
"description": "Se déclenche lorsqu'une tâche de maintenance basée sur un capteur s'active.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Comportement"
|
||
},
|
||
"for": {
|
||
"name": "Pendant"
|
||
}
|
||
}
|
||
},
|
||
"task_became_ok": {
|
||
"name": "Une tâche de maintenance est revenue à OK",
|
||
"description": "Se déclenche lorsqu'une tâche de maintenance ne nécessite plus d'attention.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Comportement"
|
||
},
|
||
"for": {
|
||
"name": "Pendant"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"conditions": {
|
||
"task_is_overdue": {
|
||
"name": "Une tâche de maintenance est en retard",
|
||
"description": "Vérifie si une tâche de maintenance est en retard.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Comportement"
|
||
},
|
||
"for": {
|
||
"name": "Pendant"
|
||
}
|
||
}
|
||
},
|
||
"task_is_due_soon": {
|
||
"name": "Une tâche de maintenance arrive à échéance",
|
||
"description": "Vérifie si une tâche de maintenance est dans sa fenêtre d'avertissement.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Comportement"
|
||
},
|
||
"for": {
|
||
"name": "Pendant"
|
||
}
|
||
}
|
||
},
|
||
"task_is_triggered": {
|
||
"name": "Un déclencheur de capteur est actif",
|
||
"description": "Vérifie si une tâche de maintenance basée sur un capteur est déclenchée.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Comportement"
|
||
},
|
||
"for": {
|
||
"name": "Pendant"
|
||
}
|
||
}
|
||
},
|
||
"task_needs_attention": {
|
||
"name": "Une tâche de maintenance nécessite une attention",
|
||
"description": "Vérifie si une tâche de maintenance est en retard ou déclenchée.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Comportement"
|
||
},
|
||
"for": {
|
||
"name": "Pendant"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|