Files
2026-07-08 10:43:39 -04:00

885 lines
29 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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 aujourdhui"
}
},
"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"
}
}
}
}