885 lines
29 KiB
JSON
885 lines
29 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "Bienvenue sur TaskMate !",
|
||
"description": "Configurez votre système de gestion des tâches familiales. Vous pouvez personnaliser le nom de la monnaie de points que les enfants gagneront.",
|
||
"data": {
|
||
"points_name": "Nom de la monnaie de points (ex: Étoiles, Pièces, Jetons)",
|
||
"points_icon": "Icône des points"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"name_required": "Le nom est obligatoire"
|
||
},
|
||
"abort": {
|
||
"already_configured": "TaskMate est déjà configuré"
|
||
}
|
||
},
|
||
"selector": {
|
||
"chore_action": {
|
||
"options": {
|
||
"save": "Enregistrer les modifications",
|
||
"re_enable": "Réactiver la corvée",
|
||
"disable": "Désactiver la corvée",
|
||
"delete": "Supprimer cette corvée"
|
||
}
|
||
},
|
||
"reward_action": {
|
||
"options": {
|
||
"save": "Enregistrer les modifications",
|
||
"delete": "Supprimer la récompense"
|
||
}
|
||
},
|
||
"time_category": {
|
||
"options": {
|
||
"morning": "Matin",
|
||
"afternoon": "Après-midi",
|
||
"evening": "Soirée",
|
||
"night": "Nuit",
|
||
"anytime": "N'importe quand"
|
||
}
|
||
},
|
||
"schedule_mode": {
|
||
"options": {
|
||
"specific_days": "Jours spécifiques de la semaine",
|
||
"recurring": "Récurrent (tous les N jours/semaines/mois)",
|
||
"one_shot": "Tâche unique (un seul jour)"
|
||
}
|
||
},
|
||
"due_days_option": {
|
||
"options": {
|
||
"monday": "Lundi",
|
||
"tuesday": "Mardi",
|
||
"wednesday": "Mercredi",
|
||
"thursday": "Jeudi",
|
||
"friday": "Vendredi",
|
||
"saturday": "Samedi",
|
||
"sunday": "Dimanche"
|
||
}
|
||
},
|
||
"recurrence": {
|
||
"options": {
|
||
"every_2_days": "Tous les 2 jours",
|
||
"weekly": "Hebdomadaire",
|
||
"every_2_weeks": "Toutes les 2 semaines",
|
||
"monthly": "Mensuel",
|
||
"every_3_months": "Tous les 3 mois",
|
||
"every_6_months": "Tous les 6 mois"
|
||
}
|
||
},
|
||
"recurrence_day_option": {
|
||
"options": {
|
||
"monday": "Lundi",
|
||
"tuesday": "Mardi",
|
||
"wednesday": "Mercredi",
|
||
"thursday": "Jeudi",
|
||
"friday": "Vendredi",
|
||
"saturday": "Samedi",
|
||
"sunday": "Dimanche",
|
||
"any_day": "N'importe quel jour"
|
||
}
|
||
},
|
||
"first_occurrence_mode": {
|
||
"options": {
|
||
"available_immediately": "Disponible immédiatement",
|
||
"wait_for_first_occurrence": "Attendre la première occurrence prévue"
|
||
}
|
||
},
|
||
"streak_reset_mode": {
|
||
"options": {
|
||
"reset": "Réinitialiser — la série retombe à 0 en cas d'oubli",
|
||
"pause": "Pause — la série est préservée jusqu'à la prochaine exécution"
|
||
}
|
||
},
|
||
"visibility_operator": {
|
||
"options": {
|
||
"none": "Aucun filtre — Toujours afficher la corvée",
|
||
"equals": "Égale — Afficher quand l'état correspond exactement",
|
||
"not_equals": "Non égale — Afficher quand l'état ne correspond pas",
|
||
"gte": "Supérieur ou égal (≥) — Afficher quand la valeur est ≥ cible",
|
||
"lte": "Inférieur ou égal (≤) — Afficher quand la valeur est ≤ cible",
|
||
"gt": "Supérieur (>) — Afficher quand la valeur est > cible",
|
||
"lt": "Inférieur (<) — Afficher quand la valeur est < cible"
|
||
}
|
||
},
|
||
"assignment_mode": {
|
||
"options": {
|
||
"everyone": "Tout le monde — chaque enfant assigné voit la tâche",
|
||
"alternating": "Alternance — rotation entre les enfants assignés, un par jour",
|
||
"random": "Aléatoire — un enfant assigné choisi au hasard chaque jour",
|
||
"balanced": "Équilibré — répartit les tâches équilibrées du jour équitablement entre les enfants assignés",
|
||
"first_come": "Premier arrivé, premier servi — le premier enfant à la terminer gagne ; masquée pour les autres",
|
||
"unassigned": "Non attribué — aucun enfant ne voit cette tâche"
|
||
}
|
||
},
|
||
"task_group_policy": {
|
||
"options": {
|
||
"sticky": "Sticky — même enfant pour toutes les tâches du groupe",
|
||
"spread": "Spread — enfants différents dans le groupe aujourd’hui"
|
||
}
|
||
},
|
||
"task_group_action": {
|
||
"options": {
|
||
"save": "Enregistrer",
|
||
"delete": "Supprimer le groupe"
|
||
}
|
||
}
|
||
},
|
||
"services": {
|
||
"complete_chore": {
|
||
"name": "Terminer une corvée",
|
||
"description": "Marquer une corvée comme terminée par un enfant",
|
||
"fields": {
|
||
"chore_id": {
|
||
"name": "ID de la corvée",
|
||
"description": "L'identifiant de la corvée à terminer"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant effectuant la corvée"
|
||
}
|
||
}
|
||
},
|
||
"complete_bonus_subtask": {
|
||
"name": "Terminer une sous-tâche bonus",
|
||
"description": "Terminer une sous-tâche bonus une fois la corvée parente terminée",
|
||
"fields": {
|
||
"chore_id": {
|
||
"name": "ID de la corvée",
|
||
"description": "L'identifiant de la corvée parente"
|
||
},
|
||
"bonus_subtask_id": {
|
||
"name": "ID de la sous-tâche bonus",
|
||
"description": "L'identifiant de la sous-tâche bonus à terminer"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant effectuant la sous-tâche bonus"
|
||
}
|
||
}
|
||
},
|
||
"approve_chore": {
|
||
"name": "Approuver une corvée",
|
||
"description": "Approuver une corvée terminée et attribuer les points",
|
||
"fields": {
|
||
"completion_id": {
|
||
"name": "ID de complétion",
|
||
"description": "L'identifiant de l'exécution à approuver"
|
||
}
|
||
}
|
||
},
|
||
"approve_all_chores": {
|
||
"name": "Approuver toutes les tâches",
|
||
"description": "Approuver toutes les tâches terminées en attente (ou un ensemble précis) et attribuer les points",
|
||
"fields": {
|
||
"completion_ids": {
|
||
"name": "Identifiants de complétion",
|
||
"description": "Identifiants de complétion à approuver ; laisser vide pour tout approuver"
|
||
}
|
||
}
|
||
},
|
||
"reject_chore": {
|
||
"name": "Rejeter une corvée",
|
||
"description": "Rejeter une corvée terminée",
|
||
"fields": {
|
||
"completion_id": {
|
||
"name": "ID de complétion",
|
||
"description": "L'identifiant de l'exécution à rejeter"
|
||
}
|
||
}
|
||
},
|
||
"undo_chore_approval": {
|
||
"name": "Annuler l'approbation d'une tâche",
|
||
"description": "Annuler l'approbation accidentelle d'une tâche — retire les points attribués et remet la réalisation en attente afin qu'elle puisse être approuvée à nouveau.",
|
||
"fields": {
|
||
"completion_id": {
|
||
"name": "ID de réalisation",
|
||
"description": "L'ID de la réalisation de tâche approuvée à remettre en attente"
|
||
}
|
||
}
|
||
},
|
||
"undo_transaction": {
|
||
"name": "Annuler une transaction",
|
||
"description": "Annuler une transaction de points via son ID — pénalités, bonus, ajustements manuels (ajout/retrait) et cadeaux (les deux volets). Les transactions automatiques (bonus de week-end/série/semaine parfaite, mouvements de cagnotte, dépréciation, intérêts) ne peuvent pas être annulées.",
|
||
"fields": {
|
||
"transaction_id": {
|
||
"name": "ID de transaction",
|
||
"description": "L'ID de la transaction de points à annuler"
|
||
}
|
||
}
|
||
},
|
||
"claim_reward": {
|
||
"name": "Réclamer une récompense",
|
||
"description": "L'enfant réclame une récompense en utilisant ses points",
|
||
"fields": {
|
||
"reward_id": {
|
||
"name": "ID de la récompense",
|
||
"description": "L'identifiant de la récompense à réclamer"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant réclamant la récompense"
|
||
}
|
||
}
|
||
},
|
||
"approve_reward": {
|
||
"name": "Approuver une récompense",
|
||
"description": "Approuver une demande de récompense",
|
||
"fields": {
|
||
"claim_id": {
|
||
"name": "ID de la demande",
|
||
"description": "L'identifiant de la demande de récompense à approuver"
|
||
}
|
||
}
|
||
},
|
||
"allocate_points_to_pool": {
|
||
"name": "Allouer des points à la cagnotte",
|
||
"description": "Déplacer des points du solde disponible d'un enfant vers la cagnotte d'une récompense (verrouillée).",
|
||
"fields": {
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant effectuant l'allocation"
|
||
},
|
||
"reward_id": {
|
||
"name": "ID de la récompense",
|
||
"description": "L'identifiant de la cagnotte de récompense où déposer les points"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Nombre de points à allouer (limité par la capacité de la cagnotte et le solde disponible)"
|
||
}
|
||
}
|
||
},
|
||
"add_points": {
|
||
"name": "Ajouter des points",
|
||
"description": "Ajouter des points bonus à un enfant",
|
||
"fields": {
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant à qui ajouter des points"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Le nombre de points à ajouter"
|
||
},
|
||
"reason": {
|
||
"name": "Raison",
|
||
"description": "Raison optionnelle pour le bonus"
|
||
}
|
||
}
|
||
},
|
||
"remove_points": {
|
||
"name": "Retirer des points",
|
||
"description": "Retirer des points à un enfant (pénalité)",
|
||
"fields": {
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant à qui retirer des points"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Le nombre de points à retirer"
|
||
},
|
||
"reason": {
|
||
"name": "Raison",
|
||
"description": "Raison optionnelle pour la pénalité"
|
||
}
|
||
}
|
||
},
|
||
"reject_reward": {
|
||
"name": "Rejeter une récompense",
|
||
"description": "Rejeter une demande de récompense",
|
||
"fields": {
|
||
"claim_id": {
|
||
"name": "ID de la demande",
|
||
"description": "L'identifiant de la demande à rejeter"
|
||
}
|
||
}
|
||
},
|
||
"preview_sound": {
|
||
"name": "Aperçu du son",
|
||
"description": "Tester un effet sonore de complétion dans le navigateur",
|
||
"fields": {
|
||
"sound": {
|
||
"name": "Son",
|
||
"description": "Le son à tester"
|
||
}
|
||
}
|
||
},
|
||
"set_chore_order": {
|
||
"name": "Définir l'ordre des corvées",
|
||
"description": "Définir l'ordre d'affichage des corvées pour un enfant",
|
||
"fields": {
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant"
|
||
},
|
||
"chore_order": {
|
||
"name": "Ordre des corvées",
|
||
"description": "Liste ordonnée des IDs de corvées"
|
||
}
|
||
}
|
||
},
|
||
"add_penalty": {
|
||
"name": "Ajouter une pénalité",
|
||
"description": "Créer une nouvelle définition de pénalité",
|
||
"fields": {
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Le nom de la pénalité"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Le nombre de points à déduire"
|
||
},
|
||
"description": {
|
||
"name": "Description",
|
||
"description": "Description optionnelle"
|
||
},
|
||
"icon": {
|
||
"name": "Icône",
|
||
"description": "Icône MDI pour la pénalité"
|
||
},
|
||
"assigned_to": {
|
||
"name": "Assignée à",
|
||
"description": "Liste des IDs d'enfants concernés"
|
||
}
|
||
}
|
||
},
|
||
"update_penalty": {
|
||
"name": "Mettre à jour la pénalité",
|
||
"description": "Modifier une définition de pénalité existante",
|
||
"fields": {
|
||
"penalty_id": {
|
||
"name": "ID de pénalité",
|
||
"description": "L'identifiant de la pénalité à modifier"
|
||
},
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Nouveau nom"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Nouvelle valeur de points"
|
||
},
|
||
"description": {
|
||
"name": "Description",
|
||
"description": "Nouvelle description"
|
||
},
|
||
"icon": {
|
||
"name": "Icône",
|
||
"description": "Nouvelle icône"
|
||
},
|
||
"assigned_to": {
|
||
"name": "Assignée à",
|
||
"description": "Nouvelle liste d'identifiants d'enfants"
|
||
}
|
||
}
|
||
},
|
||
"remove_penalty": {
|
||
"name": "Supprimer la pénalité",
|
||
"description": "Supprimer une définition de pénalité",
|
||
"fields": {
|
||
"penalty_id": {
|
||
"name": "ID de pénalité",
|
||
"description": "L'identifiant de la pénalité à supprimer"
|
||
}
|
||
}
|
||
},
|
||
"apply_penalty": {
|
||
"name": "Appliquer une pénalité",
|
||
"description": "Appliquer une pénalité à un enfant, déduisant ses points",
|
||
"fields": {
|
||
"penalty_id": {
|
||
"name": "ID de pénalité",
|
||
"description": "L'identifiant de la pénalité à appliquer"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant à pénaliser"
|
||
}
|
||
}
|
||
},
|
||
"add_bonus": {
|
||
"name": "Ajouter un bonus",
|
||
"description": "Créer une nouvelle définition de bonus",
|
||
"fields": {
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Le nom du bonus"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Le nombre de points à attribuer lors de l'application"
|
||
},
|
||
"description": {
|
||
"name": "Description",
|
||
"description": "Description optionnelle du bonus"
|
||
},
|
||
"icon": {
|
||
"name": "Icône",
|
||
"description": "Icône MDI pour le bonus"
|
||
},
|
||
"assigned_to": {
|
||
"name": "Assigné à",
|
||
"description": "Liste des identifiants d'enfants auxquels ce bonus s'applique"
|
||
}
|
||
}
|
||
},
|
||
"update_bonus": {
|
||
"name": "Mettre à jour le bonus",
|
||
"description": "Mettre à jour une définition de bonus existante",
|
||
"fields": {
|
||
"bonus_id": {
|
||
"name": "ID de bonus",
|
||
"description": "L'identifiant du bonus à mettre à jour"
|
||
},
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Nouveau nom pour le bonus"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Nouvelle valeur de points"
|
||
},
|
||
"description": {
|
||
"name": "Description",
|
||
"description": "Nouvelle description"
|
||
},
|
||
"icon": {
|
||
"name": "Icône",
|
||
"description": "Nouvelle icône"
|
||
},
|
||
"assigned_to": {
|
||
"name": "Assigné à",
|
||
"description": "Nouvelle liste d'identifiants d'enfants"
|
||
}
|
||
}
|
||
},
|
||
"remove_bonus": {
|
||
"name": "Supprimer le bonus",
|
||
"description": "Supprimer une définition de bonus",
|
||
"fields": {
|
||
"bonus_id": {
|
||
"name": "ID de bonus",
|
||
"description": "L'identifiant du bonus à supprimer"
|
||
}
|
||
}
|
||
},
|
||
"apply_bonus": {
|
||
"name": "Appliquer un bonus",
|
||
"description": "Appliquer un bonus à un enfant, attribuant des points",
|
||
"fields": {
|
||
"bonus_id": {
|
||
"name": "ID de bonus",
|
||
"description": "L'identifiant du bonus à appliquer"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant à qui attribuer le bonus"
|
||
}
|
||
}
|
||
},
|
||
"add_chore": {
|
||
"name": "Ajouter une corvée",
|
||
"description": "Créer une nouvelle corvée dynamiquement, généralement depuis une automatisation ou un script",
|
||
"fields": {
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Le nom de la corvée"
|
||
},
|
||
"description": {
|
||
"name": "Description",
|
||
"description": "Description optionnelle de la corvée"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Points attribués à l'achèvement de cette corvée"
|
||
},
|
||
"assigned_to": {
|
||
"name": "Assignée à",
|
||
"description": "Liste des IDs d'enfants à qui assigner cette corvée. Laisser vide pour l'assigner à tous les enfants"
|
||
},
|
||
"time_category": {
|
||
"name": "Catégorie horaire",
|
||
"description": "Quand cette corvée doit être effectuée : morning, afternoon, evening, night ou anytime"
|
||
},
|
||
"one_shot": {
|
||
"name": "Unique",
|
||
"description": "Si vrai, c'est une corvée unique qui expire après exécution ou à la fin de la journée"
|
||
},
|
||
"requires_approval": {
|
||
"name": "Nécessite approbation",
|
||
"description": "Si vrai, un parent doit approuver l'exécution avant que les points soient attribués"
|
||
}
|
||
}
|
||
},
|
||
"skip_chore": {
|
||
"name": "Skip Chore",
|
||
"description": "Advance today's rotation past the current assignee. Ephemeral — tomorrow's rotation resumes as normal.",
|
||
"fields": {
|
||
"chore_id": {
|
||
"name": "Chore ID",
|
||
"description": "The ID of the chore to skip"
|
||
}
|
||
}
|
||
},
|
||
"set_chore_manual_start": {
|
||
"name": "Set Manual Start Child",
|
||
"description": "Set which child starts a rotating chore. For alternating mode this reorders the pool; for random/balanced it only overrides today's assignee.",
|
||
"fields": {
|
||
"chore_id": {
|
||
"name": "Chore ID",
|
||
"description": "The ID of the chore to update"
|
||
},
|
||
"child_id": {
|
||
"name": "Child ID",
|
||
"description": "The ID of the child who should start the rotation"
|
||
}
|
||
}
|
||
},
|
||
"add_task_group": {
|
||
"name": "Add Task Group",
|
||
"description": "Create a task group (sticky = same child, spread = different children).",
|
||
"fields": {
|
||
"name": {
|
||
"name": "Name",
|
||
"description": "Display name for the group"
|
||
},
|
||
"policy": {
|
||
"name": "Policy",
|
||
"description": "sticky (same child) or spread (different children)"
|
||
},
|
||
"chore_ids": {
|
||
"name": "Chore IDs",
|
||
"description": "List of chore IDs in the group. For sticky, the first chore is the leader."
|
||
}
|
||
}
|
||
},
|
||
"update_task_group": {
|
||
"name": "Update Task Group",
|
||
"description": "Update a task group's name, policy, or membership.",
|
||
"fields": {
|
||
"group_id": {
|
||
"name": "Group ID",
|
||
"description": "The ID of the group to update"
|
||
},
|
||
"name": {
|
||
"name": "Name",
|
||
"description": "New display name"
|
||
},
|
||
"policy": {
|
||
"name": "Policy",
|
||
"description": "New policy (sticky or spread)"
|
||
},
|
||
"chore_ids": {
|
||
"name": "Chore IDs",
|
||
"description": "Replacement chore ID list. For sticky, the first chore is the leader."
|
||
}
|
||
}
|
||
},
|
||
"remove_task_group": {
|
||
"name": "Remove Task Group",
|
||
"description": "Delete a task group. Member chores are not affected.",
|
||
"fields": {
|
||
"group_id": {
|
||
"name": "Group ID",
|
||
"description": "The ID of the group to delete"
|
||
}
|
||
}
|
||
},
|
||
"start_timed_task": {
|
||
"name": "Démarrer une tâche chronométrée",
|
||
"description": "Démarrer ou reprendre le minuteur d'une tâche chronométrée",
|
||
"fields": {
|
||
"chore_id": {
|
||
"name": "ID de la corvée",
|
||
"description": "L'identifiant de la corvée chronométrée"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant démarrant le minuteur"
|
||
}
|
||
}
|
||
},
|
||
"pause_timed_task": {
|
||
"name": "Mettre en pause une tâche chronométrée",
|
||
"description": "Mettre en pause le minuteur d'une tâche chronométrée en cours",
|
||
"fields": {
|
||
"chore_id": {
|
||
"name": "ID de la corvée",
|
||
"description": "L'identifiant de la corvée chronométrée"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant mettant le minuteur en pause"
|
||
}
|
||
}
|
||
},
|
||
"stop_timed_task": {
|
||
"name": "Arrêter une tâche chronométrée",
|
||
"description": "Arrêter le minuteur d'une tâche chronométrée et la soumettre pour approbation",
|
||
"fields": {
|
||
"chore_id": {
|
||
"name": "ID de la corvée",
|
||
"description": "L'identifiant de la corvée chronométrée"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant arrêtant le minuteur"
|
||
}
|
||
}
|
||
},
|
||
"add_badge": {
|
||
"name": "Ajouter un badge",
|
||
"description": "Créer un badge personnalisé.",
|
||
"fields": {
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Le nom affiché du badge"
|
||
},
|
||
"description": {
|
||
"name": "Description",
|
||
"description": "Description de la façon d'obtenir le badge"
|
||
},
|
||
"icon": {
|
||
"name": "Icône",
|
||
"description": "Icône du badge (ex. mdi:beach)"
|
||
},
|
||
"tier": {
|
||
"name": "Niveau",
|
||
"description": "Niveau du badge : bronze, argent, or ou platine"
|
||
},
|
||
"point_bonus": {
|
||
"name": "Bonus de points",
|
||
"description": "Points crédités à l'enfant lorsque le badge est obtenu"
|
||
},
|
||
"criteria": {
|
||
"name": "Critères",
|
||
"description": "Liste de dictionnaires metric / operator / value. Vide = attribution manuelle uniquement."
|
||
},
|
||
"assigned_to": {
|
||
"name": "Attribué à",
|
||
"description": "Liste d'identifiants d'enfants (vide = tous)"
|
||
},
|
||
"notify_on_earn": {
|
||
"name": "Notifier à l'obtention",
|
||
"description": "Envoyer une notification lorsque le badge est obtenu"
|
||
}
|
||
}
|
||
},
|
||
"update_badge": {
|
||
"name": "Mettre à jour un badge",
|
||
"description": "Mettre à jour un badge existant. Pour les badges intégrés, seuls point_bonus, tier, assigned_to, enabled et notify_on_earn sont modifiables.",
|
||
"fields": {
|
||
"badge_id": {
|
||
"name": "ID du badge",
|
||
"description": "L'identifiant du badge à mettre à jour"
|
||
},
|
||
"name": {
|
||
"name": "Nom",
|
||
"description": "Nouveau nom affiché du badge"
|
||
},
|
||
"description": {
|
||
"name": "Description",
|
||
"description": "Nouvelle description du badge"
|
||
},
|
||
"icon": {
|
||
"name": "Icône",
|
||
"description": "Nouvelle icône du badge"
|
||
},
|
||
"tier": {
|
||
"name": "Niveau",
|
||
"description": "Niveau du badge : bronze, argent, or ou platine"
|
||
},
|
||
"point_bonus": {
|
||
"name": "Bonus de points",
|
||
"description": "Points crédités à l'enfant lorsque le badge est obtenu"
|
||
},
|
||
"criteria": {
|
||
"name": "Critères",
|
||
"description": "Liste de dictionnaires metric / operator / value. Vide = attribution manuelle uniquement."
|
||
},
|
||
"assigned_to": {
|
||
"name": "Attribué à",
|
||
"description": "Liste d'identifiants d'enfants (vide = tous)"
|
||
},
|
||
"enabled": {
|
||
"name": "Activé",
|
||
"description": "Indique si le badge est actif"
|
||
},
|
||
"notify_on_earn": {
|
||
"name": "Notifier à l'obtention",
|
||
"description": "Envoyer une notification lorsque le badge est obtenu"
|
||
}
|
||
}
|
||
},
|
||
"remove_badge": {
|
||
"name": "Supprimer un badge",
|
||
"description": "Supprimer un badge personnalisé. Les badges intégrés ne peuvent pas être supprimés.",
|
||
"fields": {
|
||
"badge_id": {
|
||
"name": "ID du badge",
|
||
"description": "L'identifiant du badge à supprimer"
|
||
}
|
||
}
|
||
},
|
||
"award_badge_manually": {
|
||
"name": "Attribuer un badge manuellement",
|
||
"description": "Attribuer manuellement un badge à un enfant.",
|
||
"fields": {
|
||
"badge_id": {
|
||
"name": "ID du badge",
|
||
"description": "L'identifiant du badge à attribuer"
|
||
},
|
||
"child_id": {
|
||
"name": "ID de l'enfant",
|
||
"description": "L'identifiant de l'enfant recevant le badge"
|
||
}
|
||
}
|
||
},
|
||
"revoke_badge": {
|
||
"name": "Révoquer un badge",
|
||
"description": "Révoquer un badge attribué. Si un bonus de points a été crédité, il est annulé.",
|
||
"fields": {
|
||
"awarded_badge_id": {
|
||
"name": "ID du badge attribué",
|
||
"description": "L'identifiant du badge attribué à révoquer"
|
||
}
|
||
}
|
||
},
|
||
"rebuild_badges": {
|
||
"name": "Recalculer les badges",
|
||
"description": "Réévaluer silencieusement tous les badges pour tous les enfants (sans notifications ni bonus de points)."
|
||
},
|
||
"apply_mandatory_penalty": {
|
||
"name": "Appliquer la pénalité obligatoire",
|
||
"description": "Déduit les points de pénalité configurés pour une tâche obligatoire manquée et supprime l'élément à vérifier.",
|
||
"fields": {
|
||
"miss_id": {
|
||
"name": "ID d'oubli",
|
||
"description": "L'ID de l'élément à vérifier pour la tâche obligatoire manquée"
|
||
}
|
||
}
|
||
},
|
||
"choose_avatar": {
|
||
"name": "Choisir un avatar",
|
||
"description": "Un enfant passe à un avatar qu'il a débloqué.",
|
||
"fields": {
|
||
"child_id": {
|
||
"name": "ID enfant",
|
||
"description": "L'ID de l'enfant"
|
||
},
|
||
"icon": {
|
||
"name": "Icône d'avatar",
|
||
"description": "L'icône mdi d'un avatar du catalogue débloqué (par ex. mdi:rocket-launch)."
|
||
}
|
||
}
|
||
},
|
||
"dismiss_mandatory_chore": {
|
||
"name": "Ignorer la tâche obligatoire",
|
||
"description": "Supprime l'élément à vérifier d'une tâche obligatoire manquée sans pénalité.",
|
||
"fields": {
|
||
"miss_id": {
|
||
"name": "ID d'oubli",
|
||
"description": "L'ID de l'élément à vérifier pour la tâche obligatoire manquée"
|
||
}
|
||
}
|
||
},
|
||
"gift_points": {
|
||
"name": "Offrir des points",
|
||
"description": "Transfère des points dépensables d'un enfant à un autre (contrôlé par les parents).",
|
||
"fields": {
|
||
"from_child_id": {
|
||
"name": "ID enfant source",
|
||
"description": "L'ID de l'enfant qui envoie les points"
|
||
},
|
||
"to_child_id": {
|
||
"name": "ID enfant destinataire",
|
||
"description": "L'ID de l'enfant qui reçoit les points"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Le nombre de points à transférer"
|
||
}
|
||
}
|
||
},
|
||
"postpone_mandatory_chore": {
|
||
"name": "Reporter la tâche obligatoire",
|
||
"description": "Accorde à une tâche obligatoire manquée une autre période (ou demain) sans pénalité et supprime l'élément à vérifier.",
|
||
"fields": {
|
||
"miss_id": {
|
||
"name": "ID d'oubli",
|
||
"description": "L'ID de l'élément à vérifier pour la tâche obligatoire manquée"
|
||
}
|
||
}
|
||
},
|
||
"request_swap": {
|
||
"name": "Demander un échange de tâche",
|
||
"description": "Un enfant demande à reprendre l'attribution par rotation d'une tâche pour aujourd'hui (en attente d'approbation parentale).",
|
||
"fields": {
|
||
"chore_id": {
|
||
"name": "ID tâche",
|
||
"description": "L'ID de la tâche à reprendre"
|
||
},
|
||
"requester_id": {
|
||
"name": "ID enfant demandeur",
|
||
"description": "L'ID de l'enfant qui demande l'échange"
|
||
}
|
||
}
|
||
},
|
||
"test_notification": {
|
||
"name": "Notification de test",
|
||
"description": "Envoie un exemple de notification du type indiqué à ses destinataires activés (ignore l'interrupteur principal afin de vérifier le routage).",
|
||
"fields": {
|
||
"type_id": {
|
||
"name": "Type de notification",
|
||
"description": "ID du type de notification, par ex. pending_chore_approval, badge_earned, streak_milestone"
|
||
}
|
||
}
|
||
},
|
||
"record_allowance_payout": {
|
||
"name": "Enregistrer un versement d'argent de poche",
|
||
"description": "Déduire des points et enregistrer un versement d'argent de poche réel dans le journal (taux de conversion fixe ; contrôlé par les parents).",
|
||
"fields": {
|
||
"child_id": {
|
||
"name": "ID enfant",
|
||
"description": "L'ID de l'enfant recevant le versement"
|
||
},
|
||
"points": {
|
||
"name": "Points",
|
||
"description": "Points à convertir en argent et à déduire"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"entity": {
|
||
"sensor": {
|
||
"child_stats": {
|
||
"unit_of_measurement": "tâches"
|
||
},
|
||
"child_badges": {
|
||
"unit_of_measurement": "badges"
|
||
}
|
||
},
|
||
"number": {
|
||
"weekend_multiplier": {
|
||
"name": "Multiplicateur week-end"
|
||
},
|
||
"perfect_week_bonus": {
|
||
"name": "Bonus de semaine parfaite"
|
||
}
|
||
},
|
||
"select": {
|
||
"streak_reset_mode": {
|
||
"name": "Mode de réinitialisation de série"
|
||
},
|
||
"card_design": {
|
||
"name": "Design de carte"
|
||
}
|
||
}
|
||
}
|
||
}
|