New apps Added
This commit is contained in:
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"title": "Willkommen bei TaskMate!",
|
||||
"description": "Richten Sie Ihr Familien Aufgabenverwaltungssystem ein. Sie können die Punktewährung anpassen, die Kinder verdienen können.",
|
||||
"data": {
|
||||
"points_name": "Name der Punktewährung (z. B. Sterne, Münzen, Dollar)",
|
||||
"points_icon": "Punkte-Symbol"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"name_required": "Name ist erforderlich"
|
||||
},
|
||||
"abort": {
|
||||
"already_configured": "TaskMate ist bereits konfiguriert"
|
||||
}
|
||||
},
|
||||
"selector": {
|
||||
"chore_action": {
|
||||
"options": {
|
||||
"save": "Änderungen speichern",
|
||||
"re_enable": "Aufgabe erneut aktivieren",
|
||||
"disable": "Aufgabe deaktivieren",
|
||||
"delete": "Diese Aufgabe löschen"
|
||||
}
|
||||
},
|
||||
"reward_action": {
|
||||
"options": {
|
||||
"save": "Änderungen speichern",
|
||||
"delete": "Belohnung löschen"
|
||||
}
|
||||
},
|
||||
"time_category": {
|
||||
"options": {
|
||||
"morning": "Morgen",
|
||||
"afternoon": "Nachmittag",
|
||||
"evening": "Abend",
|
||||
"night": "Nacht",
|
||||
"anytime": "Jederzeit"
|
||||
}
|
||||
},
|
||||
"schedule_mode": {
|
||||
"options": {
|
||||
"specific_days": "Bestimmte Wochentage",
|
||||
"recurring": "Wiederkehrend (alle N Tage/Wochen/Monate)",
|
||||
"one_shot": "Einmalige Aufgabe (einzelner Tag)"
|
||||
}
|
||||
},
|
||||
"due_days_option": {
|
||||
"options": {
|
||||
"monday": "Montag",
|
||||
"tuesday": "Dienstag",
|
||||
"wednesday": "Mittwoch",
|
||||
"thursday": "Donnerstag",
|
||||
"friday": "Freitag",
|
||||
"saturday": "Samstag",
|
||||
"sunday": "Sonntag"
|
||||
}
|
||||
},
|
||||
"recurrence": {
|
||||
"options": {
|
||||
"every_2_days": "Alle 2 Tage",
|
||||
"weekly": "Wöchentlich",
|
||||
"every_2_weeks": "Alle 2 Wochen",
|
||||
"monthly": "Monatlich",
|
||||
"every_3_months": "Alle 3 Monate",
|
||||
"every_6_months": "Alle 6 Monate"
|
||||
}
|
||||
},
|
||||
"recurrence_day_option": {
|
||||
"options": {
|
||||
"monday": "Montag",
|
||||
"tuesday": "Dienstag",
|
||||
"wednesday": "Mittwoch",
|
||||
"thursday": "Donnerstag",
|
||||
"friday": "Freitag",
|
||||
"saturday": "Samstag",
|
||||
"sunday": "Sonntag",
|
||||
"any_day": "Jeder Tag"
|
||||
}
|
||||
},
|
||||
"first_occurrence_mode": {
|
||||
"options": {
|
||||
"available_immediately": "Sofort verfügbar",
|
||||
"wait_for_first_occurrence": "Warten Sie auf das erste geplante Ereignis"
|
||||
}
|
||||
},
|
||||
"streak_reset_mode": {
|
||||
"options": {
|
||||
"reset": "Zurücksetzen – Serie geht am verpassten Tag auf 0",
|
||||
"pause": "Pause – die Serie bleibt bis zum nächsten Abschluss erhalten"
|
||||
}
|
||||
},
|
||||
"visibility_operator": {
|
||||
"options": {
|
||||
"none": "Kein Filter – Aufgaben immer anzeigen",
|
||||
"equals": "Gleicht – Wird angezeigt, wenn der Entitätsstatus genau übereinstimmt",
|
||||
"not_equals": "Nicht gleich – Wird angezeigt, wenn der Entitätsstatus nicht übereinstimmt",
|
||||
"gte": "Größer als oder gleich (≥) – Wird angezeigt, wenn der numerische Wert ≥ dem Zielwert ist",
|
||||
"lte": "Kleiner oder gleich (≤) – Wird angezeigt, wenn der numerische Wert ≤ Ziel ist",
|
||||
"gt": "Größer als (>) – Wird angezeigt, wenn der numerische Wert > Ziel ist",
|
||||
"lt": "Kleiner als (<) – Wird angezeigt, wenn der numerische Wert < Ziel ist"
|
||||
}
|
||||
},
|
||||
"assignment_mode": {
|
||||
"options": {
|
||||
"everyone": "Jeder – jedes zugewiesene Kind sieht die Aufgabe",
|
||||
"alternating": "Abwechselnd – wechseln Sie durch die zugewiesenen Kinder, eines pro Tag",
|
||||
"random": "Zufällig – Wählen Sie jeden Tag zufällig ein zugewiesenes Kind aus",
|
||||
"balanced": "Ausgewogen – Verteilen Sie die heutigen ausgeglichenen Aufgaben gleichmäßig auf die zugewiesenen Kinder",
|
||||
"first_come": "Wer zuerst kommt, mahlt zuerst — das erste Kind, das sie erledigt, gewinnt; bei den anderen ausgeblendet",
|
||||
"unassigned": "Nicht zugewiesen — kein Kind sieht diese Aufgabe"
|
||||
}
|
||||
},
|
||||
"task_group_policy": {
|
||||
"options": {
|
||||
"sticky": "Festgelegt – dasselbe Kind für alle Aufgaben in der Gruppe",
|
||||
"spread": "Verteilt - für verschiedene Kinder in der Gruppe heute"
|
||||
}
|
||||
},
|
||||
"task_group_action": {
|
||||
"options": {
|
||||
"save": "Änderungen speichern",
|
||||
"delete": "Gruppe löschen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"complete_chore": {
|
||||
"name": "Erledige Aufgabe",
|
||||
"description": "Markieren Sie eine Aufgabe als von einem Kind erledigt",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Aufgaben-ID",
|
||||
"description": "Die ID der Aufgabe, die abgeschlossen werden soll"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das die Aufgabe erledigt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"complete_bonus_subtask": {
|
||||
"name": "Bonus-Unteraufgabe erledigen",
|
||||
"description": "Erledigen Sie eine Bonus-Unteraufgabe, nachdem die übergeordnete Aufgabe abgeschlossen wurde",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Aufgaben-ID",
|
||||
"description": "Die ID der übergeordneten Aufgabe"
|
||||
},
|
||||
"bonus_subtask_id": {
|
||||
"name": "Bonus-Unteraufgaben-ID",
|
||||
"description": "Die ID der zu erledigenden Bonus-Unteraufgabe"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das die Bonus-Unteraufgabe erledigt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_chore": {
|
||||
"name": "Genehmigen Sie die Aufgabe",
|
||||
"description": "Genehmigen Sie eine erledigte Aufgabe und vergeben Sie Punkte",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Abschluss-ID",
|
||||
"description": "Die ID des zu genehmigenden Aufgabenabschlusses"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_all_chores": {
|
||||
"name": "Alle Aufgaben genehmigen",
|
||||
"description": "Alle ausstehenden Aufgabenerledigungen (oder eine bestimmte Auswahl) genehmigen und Punkte vergeben",
|
||||
"fields": {
|
||||
"completion_ids": {
|
||||
"name": "Erledigungs-IDs",
|
||||
"description": "Bestimmte Erledigungs-IDs zum Genehmigen; leer lassen, um alle ausstehenden zu genehmigen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_chore": {
|
||||
"name": "Aufgabe ablehnen",
|
||||
"description": "Eine erledigte Aufgabe ablehnen",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Abschluss-ID",
|
||||
"description": "Die ID des abzulehnenden Aufgabenabschlusses"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_chore_approval": {
|
||||
"name": "Aufgabengenehmigung rückgängig machen",
|
||||
"description": "Eine versehentliche Aufgabengenehmigung rückgängig machen — entfernt die vergebenen Punkte und setzt die Erledigung zurück auf ausstehend, sodass sie erneut genehmigt werden kann.",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Erledigungs-ID",
|
||||
"description": "Die ID der genehmigten Aufgabenerledigung, die auf ausstehend zurückgesetzt werden soll"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_transaction": {
|
||||
"name": "Transaktion rückgängig machen",
|
||||
"description": "Eine Punktetransaktion anhand ihrer ID rückgängig machen — Strafen, Boni, manuelle Anpassungen (Hinzufügen/Entfernen) und Geschenke (beide Seiten). Automatische Transaktionen (Wochenend-/Serien-/Perfekte-Woche-Boni, Sparglas-Buchungen, Verfall, Zinsen) können nicht rückgängig gemacht werden.",
|
||||
"fields": {
|
||||
"transaction_id": {
|
||||
"name": "Transaktions-ID",
|
||||
"description": "Die ID der rückgängig zu machenden Punktetransaktion"
|
||||
}
|
||||
}
|
||||
},
|
||||
"claim_reward": {
|
||||
"name": "Fordern Sie eine Belohnung an",
|
||||
"description": "Das Kind erhält mit seinen Punkten eine Belohnung",
|
||||
"fields": {
|
||||
"reward_id": {
|
||||
"name": "Prämien-ID",
|
||||
"description": "Die ID der zu beanspruchenden Belohnung"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das die Belohnung beansprucht"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_reward": {
|
||||
"name": "Belohnung genehmigen",
|
||||
"description": "Genehmigen Sie einen Prämienanspruch",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Anspruchs-ID",
|
||||
"description": "Die ID des zu genehmigenden Prämienanspruchs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"allocate_points_to_pool": {
|
||||
"name": "Punkte dem Pool zuweisen",
|
||||
"description": "Verschieben Sie Punkte vom ausgebbaren Guthaben eines Kindes in den Sparpool einer Belohnung (gesperrt).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das die Zuweisung vornimmt"
|
||||
},
|
||||
"reward_id": {
|
||||
"name": "Prämien-ID",
|
||||
"description": "Die ID des Belohnungs-Pools, in den eingezahlt werden soll"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Anzahl der zuzuweisenden Punkte (begrenzt durch Poolkapazität und ausgebbares Guthaben)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_points": {
|
||||
"name": "Punkte hinzufügen",
|
||||
"description": "Fügen Sie einem Kind Bonuspunkte hinzu",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, dem Punkte hinzugefügt werden sollen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Die Anzahl der hinzuzufügenden Punkte"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Grund",
|
||||
"description": "Optionaler Grund für den Bonus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_points": {
|
||||
"name": "Punkte entfernen",
|
||||
"description": "Punkte von einem Kind abziehen (Strafe)",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, von dem Punkte entfernt werden sollen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Die Anzahl der zu entfernenden Punkte"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Grund",
|
||||
"description": "Optionaler Grund für die Strafe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_reward": {
|
||||
"name": "Belohnung ablehnen",
|
||||
"description": "Einen Prämienanspruch ablehnen",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Anspruchs-ID",
|
||||
"description": "Die ID des abzulehnenden Prämienanspruchs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"preview_sound": {
|
||||
"name": "Vorschau des Tons",
|
||||
"description": "Vorschau eines Abschlusssoundeffekts im Browser",
|
||||
"fields": {
|
||||
"sound": {
|
||||
"name": "Klang",
|
||||
"description": "Der Ton zur Vorschau"
|
||||
}
|
||||
}
|
||||
},
|
||||
"set_chore_order": {
|
||||
"name": "Legen Sie die Aufgabenreihenfolge fest",
|
||||
"description": "Legen Sie die Anzeigereihenfolge der Aufgaben für ein Kind fest",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, für das die Aufgabenreihenfolge festgelegt werden soll"
|
||||
},
|
||||
"chore_order": {
|
||||
"name": "Aufgabenreihenfolge",
|
||||
"description": "Geordnete Liste der Aufgaben-IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_penalty": {
|
||||
"name": "Strafe hinzufügen",
|
||||
"description": "Erstellen Sie eine neue Strafdefinition",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Der Name der Strafe"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Die Anzahl der Punkte, die bei der Anwendung abgezogen werden"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beschreibung",
|
||||
"description": "Optionale Beschreibung der Strafe"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Symbol",
|
||||
"description": "MDI-Symbol für den Elfmeter"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Zugewiesen an",
|
||||
"description": "Liste der Kinder-IDs, für die diese Strafe gilt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_penalty": {
|
||||
"name": "Strafe aktualisieren",
|
||||
"description": "Aktualisieren Sie eine vorhandene Strafdefinition",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straf-ID",
|
||||
"description": "Die ID der zu aktualisierenden Strafe"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Neuer Name für den Elfmeter"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Neuer Punktewert"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beschreibung",
|
||||
"description": "Neue Beschreibung"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Symbol",
|
||||
"description": "Neues Symbol"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Zugewiesen an",
|
||||
"description": "Neue Liste der Kinder-IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_penalty": {
|
||||
"name": "Strafe entfernen",
|
||||
"description": "Entfernen Sie eine Strafdefinition",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straf-ID",
|
||||
"description": "Die ID der zu entfernenden Strafe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_penalty": {
|
||||
"name": "Strafe anwenden",
|
||||
"description": "Verhängen Sie eine Strafe gegen ein Kind und ziehen Sie Punkte ab",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straf-ID",
|
||||
"description": "Die ID der anzuwendenden Strafe"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, auf das die Strafe angewendet werden soll"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_bonus": {
|
||||
"name": "Bonus hinzufügen",
|
||||
"description": "Erstellen Sie eine neue Bonusdefinition",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Der Name des Bonus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Die Anzahl der bei der Bewerbung zu vergebenden Punkte"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beschreibung",
|
||||
"description": "Optionale Beschreibung des Bonus"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Symbol",
|
||||
"description": "MDI-Symbol für den Bonus"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Zugewiesen an",
|
||||
"description": "Liste der Kinder-IDs, für die dieser Bonus gilt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_bonus": {
|
||||
"name": "Update-Bonus",
|
||||
"description": "Aktualisieren Sie eine vorhandene Bonusdefinition",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "Die ID des zu aktualisierenden Bonus"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Neuer Name für den Bonus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Neuer Punktewert"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beschreibung",
|
||||
"description": "Neue Beschreibung"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Symbol",
|
||||
"description": "Neues Symbol"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Zugewiesen an",
|
||||
"description": "Neue Liste der Kinder-IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_bonus": {
|
||||
"name": "Bonus entfernen",
|
||||
"description": "Entfernen Sie eine Bonusdefinition",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "Die ID des zu entfernenden Bonus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_bonus": {
|
||||
"name": "Bonus anwenden",
|
||||
"description": "Geben Sie einem Kind einen Bonus und vergeben Sie Punkte",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "Die ID des anzuwendenden Bonus"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, auf das der Bonus angewendet werden soll"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_chore": {
|
||||
"name": "Aufgaben hinzufügen",
|
||||
"description": "Erstellen Sie dynamisch eine neue Aufgabe, normalerweise aus einer Automatisierung oder einem Skript",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Der Name der Aufgabe"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beschreibung",
|
||||
"description": "Optionale Beschreibung der Aufgabe"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Punkte werden vergeben, wenn diese Aufgabe erledigt ist"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Zugewiesen an",
|
||||
"description": "Liste der Kinder-IDs, denen diese Aufgabe zugewiesen werden soll. Lassen Sie das Feld leer, um es allen Kindern zuzuweisen"
|
||||
},
|
||||
"time_category": {
|
||||
"name": "Zeitkategorie",
|
||||
"description": "Wann diese Aufgabe erledigt sein sollte: morgens, nachmittags, abends, abends oder jederzeit"
|
||||
},
|
||||
"one_shot": {
|
||||
"name": "One-Shot",
|
||||
"description": "Wenn dies zutrifft, handelt es sich um eine einmalige Aufgabe, die nach Abschluss oder am Ende des Tages abläuft"
|
||||
},
|
||||
"requires_approval": {
|
||||
"name": "Erfordert eine Genehmigung",
|
||||
"description": "Wenn dies zutrifft, muss ein Elternteil den Abschluss genehmigen, bevor Punkte vergeben werden"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip_chore": {
|
||||
"name": "Überspringen Sie lästige Aufgaben",
|
||||
"description": "Führen Sie die heutige Rotation über den aktuellen Beauftragten hinaus weiter. Ephemeral – die morgige Rotation wird wie gewohnt fortgesetzt.",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Aufgaben-ID",
|
||||
"description": "Die ID der Aufgabe, die übersprungen werden soll"
|
||||
}
|
||||
}
|
||||
},
|
||||
"set_chore_manual_start": {
|
||||
"name": "Manuelles Start-Kind festlegen",
|
||||
"description": "Legen Sie fest, welches Kind eine rotierende Aufgabe beginnt. Im Wechselmodus ordnet dies den Pool neu; Bei „Zufällig/Ausgeglichen“ überschreibt es nur den heutigen Beauftragten.",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Aufgaben-ID",
|
||||
"description": "Die ID des zu aktualisierenden Jobs"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das die Rotation starten soll"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_task_group": {
|
||||
"name": "Aufgabengruppe hinzufügen",
|
||||
"description": "Erstellen Sie eine Aufgabengruppe (festgelegt = dasselbe untergeordnete Element, verteilt = verschiedene untergeordnete Elemente).",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Anzeigename für die Gruppe"
|
||||
},
|
||||
"policy": {
|
||||
"name": "Richtlinie",
|
||||
"description": "festglegt (gleiches Kind) oder verteilt (verschiedene Kinder)"
|
||||
},
|
||||
"chore_ids": {
|
||||
"name": "Aufgaben-IDs",
|
||||
"description": "Liste der Aufgaben-IDs in der Gruppe. Für Festgelegt ist die erste Aufgabe der Anführer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_task_group": {
|
||||
"name": "Aufgabengruppe aktualisieren",
|
||||
"description": "Aktualisieren Sie den Namen, die Richtlinie oder die Mitgliedschaft einer Aufgabengruppe.",
|
||||
"fields": {
|
||||
"group_id": {
|
||||
"name": "Gruppen-ID",
|
||||
"description": "Die ID der zu aktualisierenden Gruppe"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Neuer Anzeigename"
|
||||
},
|
||||
"policy": {
|
||||
"name": "Richtlinie",
|
||||
"description": "Neue Richtlinie (festgelegt oder verteilt)"
|
||||
},
|
||||
"chore_ids": {
|
||||
"name": "Aufgaben-IDs",
|
||||
"description": "Ersatz-Aufgaben-ID-Liste. Für Festgelegt ist die erste Aufgabe der Anführer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_task_group": {
|
||||
"name": "Aufgabengruppe entfernen",
|
||||
"description": "Löschen Sie eine Aufgabengruppe. Die Aufgaben der Mitglieder sind nicht betroffen.",
|
||||
"fields": {
|
||||
"group_id": {
|
||||
"name": "Gruppen-ID",
|
||||
"description": "Die ID der zu löschenden Gruppe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"start_timed_task": {
|
||||
"name": "Zeitbasierte Aufgabe starten",
|
||||
"description": "Starten Sie den Timer einer zeitbasierten Aufgabe oder setzen Sie ihn fort",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Aufgaben-ID",
|
||||
"description": "Die ID der zeitbasierten Aufgabe"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das den Timer startet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pause_timed_task": {
|
||||
"name": "Zeitbasierte Aufgabe pausieren",
|
||||
"description": "Pausieren Sie den laufenden Timer einer zeitbasierten Aufgabe",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Aufgaben-ID",
|
||||
"description": "Die ID der zeitbasierten Aufgabe"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das den Timer pausiert"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stop_timed_task": {
|
||||
"name": "Zeitbasierte Aufgabe stoppen",
|
||||
"description": "Stoppen Sie den Timer einer zeitbasierten Aufgabe und reichen Sie sie zur Genehmigung ein",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Aufgaben-ID",
|
||||
"description": "Die ID der zeitbasierten Aufgabe"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das den Timer stoppt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_badge": {
|
||||
"name": "Abzeichen hinzufügen",
|
||||
"description": "Erstellen Sie ein eigenes Abzeichen.",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Der Anzeigename des Abzeichens"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beschreibung",
|
||||
"description": "Beschreibung, wie das Abzeichen verdient wird"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Symbol",
|
||||
"description": "Symbol für das Abzeichen (z. B. mdi:beach)"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Stufe",
|
||||
"description": "Stufe des Abzeichens: Bronze, Silber, Gold oder Platin"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Punktebonus",
|
||||
"description": "Punkte, die dem Kind gutgeschrieben werden, wenn es das Abzeichen verdient"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Kriterien",
|
||||
"description": "Liste von metric / operator / value-Einträgen. Leer = nur manuelle Vergabe."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Zugewiesen an",
|
||||
"description": "Liste von Kinder-IDs (leer = alle)"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Benachrichtigung beim Verdienen",
|
||||
"description": "Senden Sie eine Benachrichtigung, wenn das Abzeichen verdient wird"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_badge": {
|
||||
"name": "Abzeichen aktualisieren",
|
||||
"description": "Aktualisieren Sie ein vorhandenes Abzeichen. Bei integrierten Abzeichen sind nur point_bonus, tier, assigned_to, enabled und notify_on_earn bearbeitbar.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Abzeichen-ID",
|
||||
"description": "Die ID des zu aktualisierenden Abzeichens"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "Neuer Anzeigename des Abzeichens"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beschreibung",
|
||||
"description": "Neue Beschreibung des Abzeichens"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Symbol",
|
||||
"description": "Neues Symbol für das Abzeichen"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Stufe",
|
||||
"description": "Stufe des Abzeichens: Bronze, Silber, Gold oder Platin"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Punktebonus",
|
||||
"description": "Punkte, die dem Kind gutgeschrieben werden, wenn es das Abzeichen verdient"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Kriterien",
|
||||
"description": "Liste von metric / operator / value-Einträgen. Leer = nur manuelle Vergabe."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Zugewiesen an",
|
||||
"description": "Liste von Kinder-IDs (leer = alle)"
|
||||
},
|
||||
"enabled": {
|
||||
"name": "Aktiviert",
|
||||
"description": "Ob das Abzeichen aktiv ist"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Benachrichtigung beim Verdienen",
|
||||
"description": "Senden Sie eine Benachrichtigung, wenn das Abzeichen verdient wird"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_badge": {
|
||||
"name": "Abzeichen entfernen",
|
||||
"description": "Entfernen Sie ein eigenes Abzeichen. Integrierte Abzeichen können nicht entfernt werden.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Abzeichen-ID",
|
||||
"description": "Die ID des zu entfernenden Abzeichens"
|
||||
}
|
||||
}
|
||||
},
|
||||
"award_badge_manually": {
|
||||
"name": "Abzeichen manuell vergeben",
|
||||
"description": "Vergeben Sie ein Abzeichen manuell an ein Kind.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Abzeichen-ID",
|
||||
"description": "Die ID des zu vergebenden Abzeichens"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Kinder-ID",
|
||||
"description": "Die ID des Kindes, das das Abzeichen erhält"
|
||||
}
|
||||
}
|
||||
},
|
||||
"revoke_badge": {
|
||||
"name": "Abzeichen widerrufen",
|
||||
"description": "Widerrufen Sie ein vergebenes Abzeichen. Wenn ein Punktebonus gutgeschrieben wurde, wird er rückgängig gemacht.",
|
||||
"fields": {
|
||||
"awarded_badge_id": {
|
||||
"name": "ID des vergebenen Abzeichens",
|
||||
"description": "Die ID des vergebenen Abzeichens, das widerrufen werden soll"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rebuild_badges": {
|
||||
"name": "Abzeichen neu berechnen",
|
||||
"description": "Bewerten Sie alle Abzeichen für alle Kinder im Hintergrund neu (keine Benachrichtigungen, keine Punkteboni)."
|
||||
},
|
||||
"apply_mandatory_penalty": {
|
||||
"name": "Pflichtstrafe anwenden",
|
||||
"description": "Zieht die konfigurierten Strafpunkte für eine verpasste Pflichtaufgabe ab und entfernt den Prüfeintrag.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Versäumnis-ID",
|
||||
"description": "Die ID des Prüfeintrags für die verpasste Pflichtaufgabe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"choose_avatar": {
|
||||
"name": "Avatar wählen",
|
||||
"description": "Ein Kind wechselt zu einem freigeschalteten Avatar.",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Kind-ID",
|
||||
"description": "Die ID des Kindes"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Avatar-Symbol",
|
||||
"description": "Das mdi-Symbol eines freigeschalteten Katalog-Avatars (z. B. mdi:rocket-launch)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"dismiss_mandatory_chore": {
|
||||
"name": "Pflichtaufgabe verwerfen",
|
||||
"description": "Entfernt den Prüfeintrag einer verpassten Pflichtaufgabe ohne Strafe.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Versäumnis-ID",
|
||||
"description": "Die ID des Prüfeintrags für die verpasste Pflichtaufgabe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"gift_points": {
|
||||
"name": "Punkte verschenken",
|
||||
"description": "Überträgt ausgebbare Punkte von einem Kind auf ein anderes (elterngesteuert).",
|
||||
"fields": {
|
||||
"from_child_id": {
|
||||
"name": "Von Kind-ID",
|
||||
"description": "Die ID des Kindes, das Punkte sendet"
|
||||
},
|
||||
"to_child_id": {
|
||||
"name": "An Kind-ID",
|
||||
"description": "Die ID des Kindes, das Punkte erhält"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Die Anzahl der zu übertragenden Punkte"
|
||||
}
|
||||
}
|
||||
},
|
||||
"postpone_mandatory_chore": {
|
||||
"name": "Pflichtaufgabe verschieben",
|
||||
"description": "Gewährt einer verpassten Pflichtaufgabe ohne Strafe einen weiteren Zeitraum (oder morgen) und entfernt den Prüfeintrag.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Versäumnis-ID",
|
||||
"description": "Die ID des Prüfeintrags für die verpasste Pflichtaufgabe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request_swap": {
|
||||
"name": "Aufgabentausch anfragen",
|
||||
"description": "Ein Kind beantragt, die heutige Rotationszuweisung einer Aufgabe zu übernehmen (Genehmigung der Eltern erforderlich).",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Aufgaben-ID",
|
||||
"description": "Die ID der zu übernehmenden Aufgabe"
|
||||
},
|
||||
"requester_id": {
|
||||
"name": "Anfragende Kind-ID",
|
||||
"description": "Die ID des Kindes, das den Tausch beantragt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"test_notification": {
|
||||
"name": "Test-Benachrichtigung",
|
||||
"description": "Sendet eine Beispiel-Benachrichtigung des angegebenen Typs an die aktivierten Empfänger (ignoriert den Hauptschalter, damit das Routing geprüft werden kann).",
|
||||
"fields": {
|
||||
"type_id": {
|
||||
"name": "Benachrichtigungstyp",
|
||||
"description": "ID des Benachrichtigungstyps, z. B. pending_chore_approval, badge_earned, streak_milestone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"record_allowance_payout": {
|
||||
"name": "Taschengeld-Auszahlung erfassen",
|
||||
"description": "Punkte abziehen und eine reale Taschengeld-Auszahlung im Verlauf erfassen (fester Umrechnungskurs; elterngesteuert).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Kind-ID",
|
||||
"description": "Die ID des Kindes, das die Auszahlung erhält"
|
||||
},
|
||||
"points": {
|
||||
"name": "Punkte",
|
||||
"description": "Punkte, die in Bargeld umgerechnet und abgezogen werden"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"child_stats": {
|
||||
"unit_of_measurement": "Aufgaben"
|
||||
},
|
||||
"child_badges": {
|
||||
"unit_of_measurement": "Abzeichen"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"weekend_multiplier": {
|
||||
"name": "Wochenend-Multiplikator"
|
||||
},
|
||||
"perfect_week_bonus": {
|
||||
"name": "Bonus für perfekte Woche"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"streak_reset_mode": {
|
||||
"name": "Streak-Zurücksetzmodus"
|
||||
},
|
||||
"card_design": {
|
||||
"name": "Kartendesign"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"title": "Welcome to TaskMate!",
|
||||
"description": "Set up your family chore management system. You can customize the points currency that children will earn.",
|
||||
"data": {
|
||||
"points_name": "Points Currency Name (e.g., Stars, Coins, Bucks)",
|
||||
"points_icon": "Points Icon"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"name_required": "Name is required"
|
||||
},
|
||||
"abort": {
|
||||
"already_configured": "TaskMate is already configured"
|
||||
}
|
||||
},
|
||||
"selector": {
|
||||
"chore_action": {
|
||||
"options": {
|
||||
"save": "Save Changes",
|
||||
"re_enable": "Re-enable Chore",
|
||||
"disable": "Disable Chore",
|
||||
"delete": "Delete This Chore"
|
||||
}
|
||||
},
|
||||
"reward_action": {
|
||||
"options": {
|
||||
"save": "Save Changes",
|
||||
"delete": "Delete Reward"
|
||||
}
|
||||
},
|
||||
"time_category": {
|
||||
"options": {
|
||||
"morning": "Morning",
|
||||
"afternoon": "Afternoon",
|
||||
"evening": "Evening",
|
||||
"night": "Night",
|
||||
"anytime": "Anytime"
|
||||
}
|
||||
},
|
||||
"schedule_mode": {
|
||||
"options": {
|
||||
"specific_days": "Specific days of the week",
|
||||
"recurring": "Recurring (every N days/weeks/months)",
|
||||
"one_shot": "One-time task (single day)"
|
||||
}
|
||||
},
|
||||
"due_days_option": {
|
||||
"options": {
|
||||
"monday": "Monday",
|
||||
"tuesday": "Tuesday",
|
||||
"wednesday": "Wednesday",
|
||||
"thursday": "Thursday",
|
||||
"friday": "Friday",
|
||||
"saturday": "Saturday",
|
||||
"sunday": "Sunday"
|
||||
}
|
||||
},
|
||||
"recurrence": {
|
||||
"options": {
|
||||
"every_2_days": "Every 2 days",
|
||||
"weekly": "Weekly",
|
||||
"every_2_weeks": "Every 2 weeks",
|
||||
"monthly": "Monthly",
|
||||
"every_3_months": "Every 3 months",
|
||||
"every_6_months": "Every 6 months"
|
||||
}
|
||||
},
|
||||
"recurrence_day_option": {
|
||||
"options": {
|
||||
"monday": "Monday",
|
||||
"tuesday": "Tuesday",
|
||||
"wednesday": "Wednesday",
|
||||
"thursday": "Thursday",
|
||||
"friday": "Friday",
|
||||
"saturday": "Saturday",
|
||||
"sunday": "Sunday",
|
||||
"any_day": "Any day"
|
||||
}
|
||||
},
|
||||
"first_occurrence_mode": {
|
||||
"options": {
|
||||
"available_immediately": "Available immediately",
|
||||
"wait_for_first_occurrence": "Wait for first scheduled occurrence"
|
||||
}
|
||||
},
|
||||
"streak_reset_mode": {
|
||||
"options": {
|
||||
"reset": "Reset — streak goes to 0 on missed day",
|
||||
"pause": "Pause — streak preserved until next completion"
|
||||
}
|
||||
},
|
||||
"visibility_operator": {
|
||||
"options": {
|
||||
"none": "No filter — Always show chore",
|
||||
"equals": "Equals — Show when entity state matches exactly",
|
||||
"not_equals": "Not Equal — Show when entity state does not match",
|
||||
"gte": "Greater than or equal (≥) — Show when numeric value is ≥ target",
|
||||
"lte": "Less than or equal (≤) — Show when numeric value is ≤ target",
|
||||
"gt": "Greater than (>) — Show when numeric value is > target",
|
||||
"lt": "Less than (<) — Show when numeric value is < target"
|
||||
}
|
||||
},
|
||||
"assignment_mode": {
|
||||
"options": {
|
||||
"everyone": "Everyone — every assigned child sees the chore",
|
||||
"alternating": "Alternating — rotate through the assigned children, one per day",
|
||||
"random": "Random — pick one assigned child at random each day",
|
||||
"balanced": "Balanced — split today's balanced chores evenly across the assigned children",
|
||||
"first_come": "First come, first served — first child to complete it wins; it hides for the rest",
|
||||
"unassigned": "Unassigned — no child sees this chore"
|
||||
}
|
||||
},
|
||||
"task_group_policy": {
|
||||
"options": {
|
||||
"sticky": "Sticky — same child for all chores in the group",
|
||||
"spread": "Spread — different children across the group today"
|
||||
}
|
||||
},
|
||||
"task_group_action": {
|
||||
"options": {
|
||||
"save": "Save Changes",
|
||||
"delete": "Delete Group"
|
||||
}
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"complete_chore": {
|
||||
"name": "Complete Chore",
|
||||
"description": "Mark a chore as completed by a child",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the chore to complete"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child completing the chore"
|
||||
}
|
||||
}
|
||||
},
|
||||
"complete_bonus_subtask": {
|
||||
"name": "Complete Bonus Sub-task",
|
||||
"description": "Complete a bonus sub-task after the parent chore is done",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the parent chore"
|
||||
},
|
||||
"bonus_subtask_id": {
|
||||
"name": "Bonus Sub-task ID",
|
||||
"description": "The ID of the bonus sub-task to complete"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child completing the bonus sub-task"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_chore": {
|
||||
"name": "Approve Chore",
|
||||
"description": "Approve a completed chore and award points",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Completion ID",
|
||||
"description": "The ID of the chore completion to approve"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_all_chores": {
|
||||
"name": "Approve All Chores",
|
||||
"description": "Approve all pending chore completions (or a specific set) and award points",
|
||||
"fields": {
|
||||
"completion_ids": {
|
||||
"name": "Completion IDs",
|
||||
"description": "Specific completion IDs to approve; omit to approve all pending"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_chore": {
|
||||
"name": "Reject Chore",
|
||||
"description": "Reject a completed chore",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Completion ID",
|
||||
"description": "The ID of the chore completion to reject"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_chore_approval": {
|
||||
"name": "Undo Chore Approval",
|
||||
"description": "Reverse an accidental chore approval — removes the awarded points and returns the completion to pending so it can be approved again.",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Completion ID",
|
||||
"description": "The ID of the approved chore completion to revert to pending"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_transaction": {
|
||||
"name": "Undo Transaction",
|
||||
"description": "Reverse a points transaction by its ID — penalties, bonuses, manual add/remove adjustments and gifts (both legs). Automatic transactions (weekend/streak/perfect-week bonuses, pool moves, decay, interest) can't be undone.",
|
||||
"fields": {
|
||||
"transaction_id": {
|
||||
"name": "Transaction ID",
|
||||
"description": "The ID of the points transaction to reverse"
|
||||
}
|
||||
}
|
||||
},
|
||||
"claim_reward": {
|
||||
"name": "Claim Reward",
|
||||
"description": "Child claims a reward using their points",
|
||||
"fields": {
|
||||
"reward_id": {
|
||||
"name": "Reward ID",
|
||||
"description": "The ID of the reward to claim"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child claiming the reward"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_reward": {
|
||||
"name": "Approve Reward",
|
||||
"description": "Approve a reward claim",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Claim ID",
|
||||
"description": "The ID of the reward claim to approve"
|
||||
}
|
||||
}
|
||||
},
|
||||
"allocate_points_to_pool": {
|
||||
"name": "Allocate Points to Pool",
|
||||
"description": "Move points from a child's spendable balance into a reward's savings pool (locked).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child making the allocation"
|
||||
},
|
||||
"reward_id": {
|
||||
"name": "Reward ID",
|
||||
"description": "The ID of the reward pool to deposit into"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "Number of points to allocate (capped at pool capacity and spendable balance)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_points": {
|
||||
"name": "Add Points",
|
||||
"description": "Add bonus points to a child",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to add points to"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to add"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Reason",
|
||||
"description": "Optional reason for the bonus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_points": {
|
||||
"name": "Remove Points",
|
||||
"description": "Remove points from a child (penalty)",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to remove points from"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to remove"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Reason",
|
||||
"description": "Optional reason for the penalty"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_reward": {
|
||||
"name": "Reject Reward",
|
||||
"description": "Reject a reward claim",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Claim ID",
|
||||
"description": "The ID of the reward claim to reject"
|
||||
}
|
||||
}
|
||||
},
|
||||
"preview_sound": {
|
||||
"name": "Preview Sound",
|
||||
"description": "Preview a completion sound effect in the browser",
|
||||
"fields": {
|
||||
"sound": {
|
||||
"name": "Sound",
|
||||
"description": "The sound to preview"
|
||||
}
|
||||
}
|
||||
},
|
||||
"set_chore_order": {
|
||||
"name": "Set Chore Order",
|
||||
"description": "Set the display order of chores for a child",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to set chore order for"
|
||||
},
|
||||
"chore_order": {
|
||||
"name": "Chore Order",
|
||||
"description": "Ordered list of chore IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_penalty": {
|
||||
"name": "Add Penalty",
|
||||
"description": "Create a new penalty definition",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "The name of the penalty"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to deduct when applied"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "Optional description of the penalty"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "MDI icon for the penalty"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "List of child IDs this penalty applies to"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_penalty": {
|
||||
"name": "Update Penalty",
|
||||
"description": "Update an existing penalty definition",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Penalty ID",
|
||||
"description": "The ID of the penalty to update"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "New name for the penalty"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "New points value"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "New description"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "New icon"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "New list of child IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_penalty": {
|
||||
"name": "Remove Penalty",
|
||||
"description": "Remove a penalty definition",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Penalty ID",
|
||||
"description": "The ID of the penalty to remove"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_penalty": {
|
||||
"name": "Apply Penalty",
|
||||
"description": "Apply a penalty to a child, deducting points",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Penalty ID",
|
||||
"description": "The ID of the penalty to apply"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to apply the penalty to"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_bonus": {
|
||||
"name": "Add Bonus",
|
||||
"description": "Create a new bonus definition",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "The name of the bonus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to award when applied"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "Optional description of the bonus"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "MDI icon for the bonus"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "List of child IDs this bonus applies to"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_bonus": {
|
||||
"name": "Update Bonus",
|
||||
"description": "Update an existing bonus definition",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus ID",
|
||||
"description": "The ID of the bonus to update"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "New name for the bonus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "New points value"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "New description"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "New icon"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "New list of child IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_bonus": {
|
||||
"name": "Remove Bonus",
|
||||
"description": "Remove a bonus definition",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus ID",
|
||||
"description": "The ID of the bonus to remove"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_bonus": {
|
||||
"name": "Apply Bonus",
|
||||
"description": "Apply a bonus to a child, awarding points",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus ID",
|
||||
"description": "The ID of the bonus to apply"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to apply the bonus to"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_chore": {
|
||||
"name": "Add Chore",
|
||||
"description": "Create a new chore dynamically, typically from an automation or script",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "The name of the chore"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "Optional description of the chore"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "Points awarded when this chore is completed"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "List of child IDs to assign this chore to. Leave empty to assign to all children"
|
||||
},
|
||||
"time_category": {
|
||||
"name": "Time Category",
|
||||
"description": "When this chore should be completed: morning, afternoon, evening, night, or anytime"
|
||||
},
|
||||
"one_shot": {
|
||||
"name": "One-Shot",
|
||||
"description": "If true, this is a one-time chore that expires after being completed or at the end of the day"
|
||||
},
|
||||
"requires_approval": {
|
||||
"name": "Requires Approval",
|
||||
"description": "If true, a parent must approve the completion before points are awarded"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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": "Start Timed Task",
|
||||
"description": "Start or resume the timer on a timed task",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the timed chore"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child starting the timer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pause_timed_task": {
|
||||
"name": "Pause Timed Task",
|
||||
"description": "Pause a running timed task timer",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the timed chore"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child pausing the timer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stop_timed_task": {
|
||||
"name": "Stop Timed Task",
|
||||
"description": "Stop a timed task timer and submit for approval",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the timed chore"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child stopping the timer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_badge": {
|
||||
"name": "Add Badge",
|
||||
"description": "Create a custom badge.",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "The display name of the badge"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "Description of how the badge is earned"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "Icon for the badge (e.g. mdi:beach)"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Tier",
|
||||
"description": "Badge tier: bronze, silver, gold or platinum"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Point bonus",
|
||||
"description": "Points credited to the child when the badge is earned"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Criteria",
|
||||
"description": "List of metric / operator / value dicts. Empty = manual-award only."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned to",
|
||||
"description": "List of child IDs (empty = all)"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Notify on earn",
|
||||
"description": "Send a notification when the badge is earned"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_badge": {
|
||||
"name": "Update Badge",
|
||||
"description": "Update an existing badge. For built-ins, only point_bonus, tier, assigned_to, enabled, notify_on_earn are editable.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Badge ID",
|
||||
"description": "The ID of the badge to update"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "New display name of the badge"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "New description of the badge"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "New icon for the badge"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Tier",
|
||||
"description": "Badge tier: bronze, silver, gold or platinum"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Point bonus",
|
||||
"description": "Points credited to the child when the badge is earned"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Criteria",
|
||||
"description": "List of metric / operator / value dicts. Empty = manual-award only."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned to",
|
||||
"description": "List of child IDs (empty = all)"
|
||||
},
|
||||
"enabled": {
|
||||
"name": "Enabled",
|
||||
"description": "Whether the badge is active"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Notify on earn",
|
||||
"description": "Send a notification when the badge is earned"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_badge": {
|
||||
"name": "Remove Badge",
|
||||
"description": "Remove a custom badge. Built-ins cannot be removed.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Badge ID",
|
||||
"description": "The ID of the badge to remove"
|
||||
}
|
||||
}
|
||||
},
|
||||
"award_badge_manually": {
|
||||
"name": "Award Badge Manually",
|
||||
"description": "Manually award a badge to a child.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Badge ID",
|
||||
"description": "The ID of the badge to award"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child receiving the badge"
|
||||
}
|
||||
}
|
||||
},
|
||||
"revoke_badge": {
|
||||
"name": "Revoke Badge",
|
||||
"description": "Revoke an awarded badge. If a point bonus was credited, it is reversed.",
|
||||
"fields": {
|
||||
"awarded_badge_id": {
|
||||
"name": "Awarded Badge ID",
|
||||
"description": "The ID of the awarded badge record to revoke"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rebuild_badges": {
|
||||
"name": "Rebuild Badges",
|
||||
"description": "Re-evaluate all badges across all children silently (no notifications, no point bonuses)."
|
||||
},
|
||||
"apply_mandatory_penalty": {
|
||||
"name": "Apply Mandatory Penalty",
|
||||
"description": "Deduct the configured penalty points for a missed mandatory chore and clear the review item.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Miss ID",
|
||||
"description": "The ID of the mandatory-miss review item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"choose_avatar": {
|
||||
"name": "Choose Avatar",
|
||||
"description": "A child switches to an avatar they have unlocked.",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Avatar icon",
|
||||
"description": "The mdi icon of an unlocked catalogue avatar (e.g. mdi:rocket-launch)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"dismiss_mandatory_chore": {
|
||||
"name": "Dismiss Mandatory Chore",
|
||||
"description": "Clear a missed mandatory chore review item with no penalty.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Miss ID",
|
||||
"description": "The ID of the mandatory-miss review item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"gift_points": {
|
||||
"name": "Gift Points",
|
||||
"description": "Transfer spendable points from one child to another (parent-controlled).",
|
||||
"fields": {
|
||||
"from_child_id": {
|
||||
"name": "From child ID",
|
||||
"description": "The ID of the child sending points"
|
||||
},
|
||||
"to_child_id": {
|
||||
"name": "To child ID",
|
||||
"description": "The ID of the child receiving points"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to transfer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"postpone_mandatory_chore": {
|
||||
"name": "Postpone Mandatory Chore",
|
||||
"description": "Give a missed mandatory chore another period (or tomorrow) without a penalty, and clear the review item.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Miss ID",
|
||||
"description": "The ID of the mandatory-miss review item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request_swap": {
|
||||
"name": "Request Chore Swap",
|
||||
"description": "A child requests to take over today's rotation assignment of a chore (pending parent approval).",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the chore to take over"
|
||||
},
|
||||
"requester_id": {
|
||||
"name": "Requester child ID",
|
||||
"description": "The ID of the child requesting the swap"
|
||||
}
|
||||
}
|
||||
},
|
||||
"test_notification": {
|
||||
"name": "Test Notification",
|
||||
"description": "Send a sample notification of the given type to its enabled recipients (ignores the master on/off so routing can be verified).",
|
||||
"fields": {
|
||||
"type_id": {
|
||||
"name": "Notification type",
|
||||
"description": "Notification type id, e.g. pending_chore_approval, badge_earned, streak_milestone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"record_allowance_payout": {
|
||||
"name": "Record Allowance Payout",
|
||||
"description": "Deduct points and record a real-money allowance payout in the ledger (fixed conversion rate; parent-controlled).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child receiving the payout"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "Points to convert to cash and deduct"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"child_stats": {
|
||||
"unit_of_measurement": "chores"
|
||||
},
|
||||
"child_badges": {
|
||||
"unit_of_measurement": "badges"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"weekend_multiplier": {
|
||||
"name": "Weekend multiplier"
|
||||
},
|
||||
"perfect_week_bonus": {
|
||||
"name": "Perfect week bonus"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"streak_reset_mode": {
|
||||
"name": "Streak reset mode"
|
||||
},
|
||||
"card_design": {
|
||||
"name": "Card design"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"title": "Welcome to TaskMate!",
|
||||
"description": "Set up your family chore management system. You can customize the points currency that children will earn.",
|
||||
"data": {
|
||||
"points_name": "Points Currency Name (e.g., Stars, Coins, Bucks)",
|
||||
"points_icon": "Points Icon"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"name_required": "Name is required"
|
||||
},
|
||||
"abort": {
|
||||
"already_configured": "TaskMate is already configured"
|
||||
}
|
||||
},
|
||||
"selector": {
|
||||
"chore_action": {
|
||||
"options": {
|
||||
"save": "Save Changes",
|
||||
"re_enable": "Re-enable Chore",
|
||||
"disable": "Disable Chore",
|
||||
"delete": "Delete This Chore"
|
||||
}
|
||||
},
|
||||
"reward_action": {
|
||||
"options": {
|
||||
"save": "Save Changes",
|
||||
"delete": "Delete Reward"
|
||||
}
|
||||
},
|
||||
"time_category": {
|
||||
"options": {
|
||||
"morning": "Morning",
|
||||
"afternoon": "Afternoon",
|
||||
"evening": "Evening",
|
||||
"night": "Night",
|
||||
"anytime": "Anytime"
|
||||
}
|
||||
},
|
||||
"schedule_mode": {
|
||||
"options": {
|
||||
"specific_days": "Specific days of the week",
|
||||
"recurring": "Recurring (every N days/weeks/months)",
|
||||
"one_shot": "One-time task (single day)"
|
||||
}
|
||||
},
|
||||
"due_days_option": {
|
||||
"options": {
|
||||
"monday": "Monday",
|
||||
"tuesday": "Tuesday",
|
||||
"wednesday": "Wednesday",
|
||||
"thursday": "Thursday",
|
||||
"friday": "Friday",
|
||||
"saturday": "Saturday",
|
||||
"sunday": "Sunday"
|
||||
}
|
||||
},
|
||||
"recurrence": {
|
||||
"options": {
|
||||
"every_2_days": "Every 2 days",
|
||||
"weekly": "Weekly",
|
||||
"every_2_weeks": "Every 2 weeks",
|
||||
"monthly": "Monthly",
|
||||
"every_3_months": "Every 3 months",
|
||||
"every_6_months": "Every 6 months"
|
||||
}
|
||||
},
|
||||
"recurrence_day_option": {
|
||||
"options": {
|
||||
"monday": "Monday",
|
||||
"tuesday": "Tuesday",
|
||||
"wednesday": "Wednesday",
|
||||
"thursday": "Thursday",
|
||||
"friday": "Friday",
|
||||
"saturday": "Saturday",
|
||||
"sunday": "Sunday",
|
||||
"any_day": "Any day"
|
||||
}
|
||||
},
|
||||
"first_occurrence_mode": {
|
||||
"options": {
|
||||
"available_immediately": "Available immediately",
|
||||
"wait_for_first_occurrence": "Wait for first scheduled occurrence"
|
||||
}
|
||||
},
|
||||
"streak_reset_mode": {
|
||||
"options": {
|
||||
"reset": "Reset — streak goes to 0 on missed day",
|
||||
"pause": "Pause — streak preserved until next completion"
|
||||
}
|
||||
},
|
||||
"visibility_operator": {
|
||||
"options": {
|
||||
"none": "No filter — Always show chore",
|
||||
"equals": "Equals — Show when entity state matches exactly",
|
||||
"not_equals": "Not Equal — Show when entity state does not match",
|
||||
"gte": "Greater than or equal (≥) — Show when numeric value is ≥ target",
|
||||
"lte": "Less than or equal (≤) — Show when numeric value is ≤ target",
|
||||
"gt": "Greater than (>) — Show when numeric value is > target",
|
||||
"lt": "Less than (<) — Show when numeric value is < target"
|
||||
}
|
||||
},
|
||||
"assignment_mode": {
|
||||
"options": {
|
||||
"everyone": "Everyone — every assigned child sees the chore",
|
||||
"alternating": "Alternating — rotate through the assigned children, one per day",
|
||||
"random": "Random — pick one assigned child at random each day",
|
||||
"balanced": "Balanced — split today's balanced chores evenly across the assigned children",
|
||||
"first_come": "First come, first served — first child to complete it wins; it hides for the rest",
|
||||
"unassigned": "Unassigned — no child sees this chore"
|
||||
}
|
||||
},
|
||||
"task_group_policy": {
|
||||
"options": {
|
||||
"sticky": "Sticky — same child for all chores in the group",
|
||||
"spread": "Spread — different children across the group today"
|
||||
}
|
||||
},
|
||||
"task_group_action": {
|
||||
"options": {
|
||||
"save": "Save Changes",
|
||||
"delete": "Delete Group"
|
||||
}
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"complete_chore": {
|
||||
"name": "Complete Chore",
|
||||
"description": "Mark a chore as completed by a child",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the chore to complete"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child completing the chore"
|
||||
}
|
||||
}
|
||||
},
|
||||
"complete_bonus_subtask": {
|
||||
"name": "Complete Bonus Sub-task",
|
||||
"description": "Complete a bonus sub-task after the parent chore is done",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the parent chore"
|
||||
},
|
||||
"bonus_subtask_id": {
|
||||
"name": "Bonus Sub-task ID",
|
||||
"description": "The ID of the bonus sub-task to complete"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child completing the bonus sub-task"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_chore": {
|
||||
"name": "Approve Chore",
|
||||
"description": "Approve a completed chore and award points",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Completion ID",
|
||||
"description": "The ID of the chore completion to approve"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_all_chores": {
|
||||
"name": "Approve All Chores",
|
||||
"description": "Approve all pending chore completions (or a specific set) and award points",
|
||||
"fields": {
|
||||
"completion_ids": {
|
||||
"name": "Completion IDs",
|
||||
"description": "Specific completion IDs to approve; omit to approve all pending"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_chore": {
|
||||
"name": "Reject Chore",
|
||||
"description": "Reject a completed chore",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Completion ID",
|
||||
"description": "The ID of the chore completion to reject"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_chore_approval": {
|
||||
"name": "Undo Chore Approval",
|
||||
"description": "Reverse an accidental chore approval — removes the awarded points and returns the completion to pending so it can be approved again.",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Completion ID",
|
||||
"description": "The ID of the approved chore completion to revert to pending"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_transaction": {
|
||||
"name": "Undo Transaction",
|
||||
"description": "Reverse a points transaction by its ID — penalties, bonuses, manual add/remove adjustments and gifts (both legs). Automatic transactions (weekend/streak/perfect-week bonuses, pool moves, decay, interest) can't be undone.",
|
||||
"fields": {
|
||||
"transaction_id": {
|
||||
"name": "Transaction ID",
|
||||
"description": "The ID of the points transaction to reverse"
|
||||
}
|
||||
}
|
||||
},
|
||||
"claim_reward": {
|
||||
"name": "Claim Reward",
|
||||
"description": "Child claims a reward using their points",
|
||||
"fields": {
|
||||
"reward_id": {
|
||||
"name": "Reward ID",
|
||||
"description": "The ID of the reward to claim"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child claiming the reward"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_reward": {
|
||||
"name": "Approve Reward",
|
||||
"description": "Approve a reward claim",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Claim ID",
|
||||
"description": "The ID of the reward claim to approve"
|
||||
}
|
||||
}
|
||||
},
|
||||
"allocate_points_to_pool": {
|
||||
"name": "Allocate Points to Pool",
|
||||
"description": "Move points from a child's spendable balance into a reward's savings pool (locked).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child making the allocation"
|
||||
},
|
||||
"reward_id": {
|
||||
"name": "Reward ID",
|
||||
"description": "The ID of the reward pool to deposit into"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "Number of points to allocate (capped at pool capacity and spendable balance)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_points": {
|
||||
"name": "Add Points",
|
||||
"description": "Add bonus points to a child",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to add points to"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to add"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Reason",
|
||||
"description": "Optional reason for the bonus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_points": {
|
||||
"name": "Remove Points",
|
||||
"description": "Remove points from a child (penalty)",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to remove points from"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to remove"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Reason",
|
||||
"description": "Optional reason for the penalty"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_reward": {
|
||||
"name": "Reject Reward",
|
||||
"description": "Reject a reward claim",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Claim ID",
|
||||
"description": "The ID of the reward claim to reject"
|
||||
}
|
||||
}
|
||||
},
|
||||
"preview_sound": {
|
||||
"name": "Preview Sound",
|
||||
"description": "Preview a completion sound effect in the browser",
|
||||
"fields": {
|
||||
"sound": {
|
||||
"name": "Sound",
|
||||
"description": "The sound to preview"
|
||||
}
|
||||
}
|
||||
},
|
||||
"set_chore_order": {
|
||||
"name": "Set Chore Order",
|
||||
"description": "Set the display order of chores for a child",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to set chore order for"
|
||||
},
|
||||
"chore_order": {
|
||||
"name": "Chore Order",
|
||||
"description": "Ordered list of chore IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_penalty": {
|
||||
"name": "Add Penalty",
|
||||
"description": "Create a new penalty definition",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "The name of the penalty"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to deduct when applied"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "Optional description of the penalty"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "MDI icon for the penalty"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "List of child IDs this penalty applies to"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_penalty": {
|
||||
"name": "Update Penalty",
|
||||
"description": "Update an existing penalty definition",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Penalty ID",
|
||||
"description": "The ID of the penalty to update"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "New name for the penalty"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "New points value"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "New description"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "New icon"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "New list of child IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_penalty": {
|
||||
"name": "Remove Penalty",
|
||||
"description": "Remove a penalty definition",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Penalty ID",
|
||||
"description": "The ID of the penalty to remove"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_penalty": {
|
||||
"name": "Apply Penalty",
|
||||
"description": "Apply a penalty to a child, deducting points",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Penalty ID",
|
||||
"description": "The ID of the penalty to apply"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to apply the penalty to"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_bonus": {
|
||||
"name": "Add Bonus",
|
||||
"description": "Create a new bonus definition",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "The name of the bonus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to award when applied"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "Optional description of the bonus"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "MDI icon for the bonus"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "List of child IDs this bonus applies to"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_bonus": {
|
||||
"name": "Update Bonus",
|
||||
"description": "Update an existing bonus definition",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus ID",
|
||||
"description": "The ID of the bonus to update"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "New name for the bonus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "New points value"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "New description"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "New icon"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "New list of child IDs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_bonus": {
|
||||
"name": "Remove Bonus",
|
||||
"description": "Remove a bonus definition",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus ID",
|
||||
"description": "The ID of the bonus to remove"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_bonus": {
|
||||
"name": "Apply Bonus",
|
||||
"description": "Apply a bonus to a child, awarding points",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus ID",
|
||||
"description": "The ID of the bonus to apply"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child to apply the bonus to"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_chore": {
|
||||
"name": "Add Chore",
|
||||
"description": "Create a new chore dynamically, typically from an automation or script",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "The name of the chore"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "Optional description of the chore"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "Points awarded when this chore is completed"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned To",
|
||||
"description": "List of child IDs to assign this chore to. Leave empty to assign to all children"
|
||||
},
|
||||
"time_category": {
|
||||
"name": "Time Category",
|
||||
"description": "When this chore should be completed: morning, afternoon, evening, night, or anytime"
|
||||
},
|
||||
"one_shot": {
|
||||
"name": "One-Shot",
|
||||
"description": "If true, this is a one-time chore that expires after being completed or at the end of the day"
|
||||
},
|
||||
"requires_approval": {
|
||||
"name": "Requires Approval",
|
||||
"description": "If true, a parent must approve the completion before points are awarded"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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": "Start Timed Task",
|
||||
"description": "Start or resume the timer on a timed task",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the timed chore"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child starting the timer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pause_timed_task": {
|
||||
"name": "Pause Timed Task",
|
||||
"description": "Pause a running timed task timer",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the timed chore"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child pausing the timer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stop_timed_task": {
|
||||
"name": "Stop Timed Task",
|
||||
"description": "Stop a timed task timer and submit for approval",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the timed chore"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child stopping the timer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_badge": {
|
||||
"name": "Add Badge",
|
||||
"description": "Create a custom badge.",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "The display name of the badge"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "Description of how the badge is earned"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "Icon for the badge (e.g. mdi:beach)"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Tier",
|
||||
"description": "Badge tier: bronze, silver, gold or platinum"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Point bonus",
|
||||
"description": "Points credited to the child when the badge is earned"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Criteria",
|
||||
"description": "List of metric / operator / value dicts. Empty = manual-award only."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned to",
|
||||
"description": "List of child IDs (empty = all)"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Notify on earn",
|
||||
"description": "Send a notification when the badge is earned"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_badge": {
|
||||
"name": "Update Badge",
|
||||
"description": "Update an existing badge. For built-ins, only point_bonus, tier, assigned_to, enabled, notify_on_earn are editable.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Badge ID",
|
||||
"description": "The ID of the badge to update"
|
||||
},
|
||||
"name": {
|
||||
"name": "Name",
|
||||
"description": "New display name of the badge"
|
||||
},
|
||||
"description": {
|
||||
"name": "Description",
|
||||
"description": "New description of the badge"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Icon",
|
||||
"description": "New icon for the badge"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Tier",
|
||||
"description": "Badge tier: bronze, silver, gold or platinum"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Point bonus",
|
||||
"description": "Points credited to the child when the badge is earned"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Criteria",
|
||||
"description": "List of metric / operator / value dicts. Empty = manual-award only."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Assigned to",
|
||||
"description": "List of child IDs (empty = all)"
|
||||
},
|
||||
"enabled": {
|
||||
"name": "Enabled",
|
||||
"description": "Whether the badge is active"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Notify on earn",
|
||||
"description": "Send a notification when the badge is earned"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_badge": {
|
||||
"name": "Remove Badge",
|
||||
"description": "Remove a custom badge. Built-ins cannot be removed.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Badge ID",
|
||||
"description": "The ID of the badge to remove"
|
||||
}
|
||||
}
|
||||
},
|
||||
"award_badge_manually": {
|
||||
"name": "Award Badge Manually",
|
||||
"description": "Manually award a badge to a child.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Badge ID",
|
||||
"description": "The ID of the badge to award"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child receiving the badge"
|
||||
}
|
||||
}
|
||||
},
|
||||
"revoke_badge": {
|
||||
"name": "Revoke Badge",
|
||||
"description": "Revoke an awarded badge. If a point bonus was credited, it is reversed.",
|
||||
"fields": {
|
||||
"awarded_badge_id": {
|
||||
"name": "Awarded Badge ID",
|
||||
"description": "The ID of the awarded badge record to revoke"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rebuild_badges": {
|
||||
"name": "Rebuild Badges",
|
||||
"description": "Re-evaluate all badges across all children silently (no notifications, no point bonuses)."
|
||||
},
|
||||
"apply_mandatory_penalty": {
|
||||
"name": "Apply Mandatory Penalty",
|
||||
"description": "Deduct the configured penalty points for a missed mandatory chore and clear the review item.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Miss ID",
|
||||
"description": "The ID of the mandatory-miss review item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"choose_avatar": {
|
||||
"name": "Choose Avatar",
|
||||
"description": "A child switches to an avatar they have unlocked.",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Avatar icon",
|
||||
"description": "The mdi icon of an unlocked catalogue avatar (e.g. mdi:rocket-launch)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"dismiss_mandatory_chore": {
|
||||
"name": "Dismiss Mandatory Chore",
|
||||
"description": "Clear a missed mandatory chore review item with no penalty.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Miss ID",
|
||||
"description": "The ID of the mandatory-miss review item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"gift_points": {
|
||||
"name": "Gift Points",
|
||||
"description": "Transfer spendable points from one child to another (parent-controlled).",
|
||||
"fields": {
|
||||
"from_child_id": {
|
||||
"name": "From child ID",
|
||||
"description": "The ID of the child sending points"
|
||||
},
|
||||
"to_child_id": {
|
||||
"name": "To child ID",
|
||||
"description": "The ID of the child receiving points"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "The number of points to transfer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"postpone_mandatory_chore": {
|
||||
"name": "Postpone Mandatory Chore",
|
||||
"description": "Give a missed mandatory chore another period (or tomorrow) without a penalty, and clear the review item.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Miss ID",
|
||||
"description": "The ID of the mandatory-miss review item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request_swap": {
|
||||
"name": "Request Chore Swap",
|
||||
"description": "A child requests to take over today's rotation assignment of a chore (pending parent approval).",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Chore ID",
|
||||
"description": "The ID of the chore to take over"
|
||||
},
|
||||
"requester_id": {
|
||||
"name": "Requester child ID",
|
||||
"description": "The ID of the child requesting the swap"
|
||||
}
|
||||
}
|
||||
},
|
||||
"test_notification": {
|
||||
"name": "Test Notification",
|
||||
"description": "Send a sample notification of the given type to its enabled recipients (ignores the master on/off so routing can be verified).",
|
||||
"fields": {
|
||||
"type_id": {
|
||||
"name": "Notification type",
|
||||
"description": "Notification type id, e.g. pending_chore_approval, badge_earned, streak_milestone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"record_allowance_payout": {
|
||||
"name": "Record Allowance Payout",
|
||||
"description": "Deduct points and record a real-money allowance payout in the ledger (fixed conversion rate; parent-controlled).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Child ID",
|
||||
"description": "The ID of the child receiving the payout"
|
||||
},
|
||||
"points": {
|
||||
"name": "Points",
|
||||
"description": "Points to convert to cash and deduct"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"child_stats": {
|
||||
"unit_of_measurement": "chores"
|
||||
},
|
||||
"child_badges": {
|
||||
"unit_of_measurement": "badges"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"weekend_multiplier": {
|
||||
"name": "Weekend multiplier"
|
||||
},
|
||||
"perfect_week_bonus": {
|
||||
"name": "Perfect week bonus"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"streak_reset_mode": {
|
||||
"name": "Streak reset mode"
|
||||
},
|
||||
"card_design": {
|
||||
"name": "Card design"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"title": "Velkommen til TaskMate!",
|
||||
"description": "Sett opp ditt familieoppgavesystem. Du kan tilpasse poengvalutaen barna skal tjene.",
|
||||
"data": {
|
||||
"points_name": "Poengvalutanavn (f.eks. Stjerner, Mynter, Kroner)",
|
||||
"points_icon": "Poengikon"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"name_required": "Navn er påkrevd"
|
||||
},
|
||||
"abort": {
|
||||
"already_configured": "TaskMate er allerede konfigurert"
|
||||
}
|
||||
},
|
||||
"selector": {
|
||||
"chore_action": {
|
||||
"options": {
|
||||
"save": "Lagre endringer",
|
||||
"re_enable": "Reaktiver oppgave",
|
||||
"disable": "Deaktiver oppgave",
|
||||
"delete": "Slett denne oppgaven"
|
||||
}
|
||||
},
|
||||
"reward_action": {
|
||||
"options": {
|
||||
"save": "Lagre endringer",
|
||||
"delete": "Slett belønning"
|
||||
}
|
||||
},
|
||||
"time_category": {
|
||||
"options": {
|
||||
"morning": "Morgen",
|
||||
"afternoon": "Ettermiddag",
|
||||
"evening": "Kveld",
|
||||
"night": "Natt",
|
||||
"anytime": "Når som helst"
|
||||
}
|
||||
},
|
||||
"schedule_mode": {
|
||||
"options": {
|
||||
"specific_days": "Bestemte ukedager",
|
||||
"recurring": "Gjentakende (hver N dag/uke/måned)",
|
||||
"one_shot": "Engangsoppgave (én dag)"
|
||||
}
|
||||
},
|
||||
"due_days_option": {
|
||||
"options": {
|
||||
"monday": "Mandag",
|
||||
"tuesday": "Tirsdag",
|
||||
"wednesday": "Onsdag",
|
||||
"thursday": "Torsdag",
|
||||
"friday": "Fredag",
|
||||
"saturday": "Lørdag",
|
||||
"sunday": "Søndag"
|
||||
}
|
||||
},
|
||||
"recurrence": {
|
||||
"options": {
|
||||
"every_2_days": "Annenhver dag",
|
||||
"weekly": "Ukentlig",
|
||||
"every_2_weeks": "Annenhver uke",
|
||||
"monthly": "Månedlig",
|
||||
"every_3_months": "Hver 3. måned",
|
||||
"every_6_months": "Hver 6. måned"
|
||||
}
|
||||
},
|
||||
"recurrence_day_option": {
|
||||
"options": {
|
||||
"monday": "Mandag",
|
||||
"tuesday": "Tirsdag",
|
||||
"wednesday": "Onsdag",
|
||||
"thursday": "Torsdag",
|
||||
"friday": "Fredag",
|
||||
"saturday": "Lørdag",
|
||||
"sunday": "Søndag",
|
||||
"any_day": "Hvilken som helst dag"
|
||||
}
|
||||
},
|
||||
"first_occurrence_mode": {
|
||||
"options": {
|
||||
"available_immediately": "Tilgjengelig umiddelbart",
|
||||
"wait_for_first_occurrence": "Vent på første planlagte forekomst"
|
||||
}
|
||||
},
|
||||
"streak_reset_mode": {
|
||||
"options": {
|
||||
"reset": "Nullstill — rekken går til 0 ved tapt dag",
|
||||
"pause": "Pause — rekken bevares til neste fullføring"
|
||||
}
|
||||
},
|
||||
"visibility_operator": {
|
||||
"options": {
|
||||
"none": "Ingen filter — Vis oppgaven alltid",
|
||||
"equals": "Lik — Vis når enhetstilstanden stemmer nøyaktig",
|
||||
"not_equals": "Ikke lik — Vis når enhetstilstanden ikke stemmer",
|
||||
"gte": "Større enn eller lik (≥) — Vis når numerisk verdi er ≥ målverdien",
|
||||
"lte": "Mindre enn eller lik (≤) — Vis når numerisk verdi er ≤ målverdien",
|
||||
"gt": "Større enn (>) — Vis når numerisk verdi er > målverdien",
|
||||
"lt": "Mindre enn (<) — Vis når numerisk verdi er < målverdien"
|
||||
}
|
||||
},
|
||||
"assignment_mode": {
|
||||
"options": {
|
||||
"everyone": "Alle — hvert tildelt barn ser oppgaven",
|
||||
"alternating": "Vekslende — roter mellom de tildelte barna, ett per dag",
|
||||
"random": "Tilfeldig — plukk ett tildelt barn tilfeldig hver dag",
|
||||
"balanced": "Balansert — fordel dagens balanserte oppgaver jevnt mellom de tildelte barna",
|
||||
"first_come": "Førstemann til mølla — første barn som fullfører den vinner; skjules for de andre",
|
||||
"unassigned": "Ikke tildelt — ingen barn ser denne oppgaven"
|
||||
}
|
||||
},
|
||||
"task_group_policy": {
|
||||
"options": {
|
||||
"sticky": "Sticky — samme barn for alle oppgaver i gruppen",
|
||||
"spread": "Spread — ulike barn i gruppen i dag"
|
||||
}
|
||||
},
|
||||
"task_group_action": {
|
||||
"options": {
|
||||
"save": "Lagre endringer",
|
||||
"delete": "Slett gruppe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"complete_chore": {
|
||||
"name": "Fullfør oppgave",
|
||||
"description": "Merk en oppgave som fullført av et barn",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgave-ID",
|
||||
"description": "ID-en til oppgaven som skal fullføres"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som fullfører oppgaven"
|
||||
}
|
||||
}
|
||||
},
|
||||
"complete_bonus_subtask": {
|
||||
"name": "Fullfør bonusdeloppgave",
|
||||
"description": "Fullfør en bonusdeloppgave etter at hovedoppgaven er fullført",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgave-ID",
|
||||
"description": "ID-en til hovedoppgaven"
|
||||
},
|
||||
"bonus_subtask_id": {
|
||||
"name": "Bonusdeloppgave-ID",
|
||||
"description": "ID-en til bonusdeloppgaven som skal fullføres"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som fullfører bonusdeloppgaven"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_chore": {
|
||||
"name": "Godkjenn oppgave",
|
||||
"description": "Godkjenn en fullført oppgave og tildel poeng",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Fullførings-ID",
|
||||
"description": "ID-en til oppgavefullføringen som skal godkjennes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_all_chores": {
|
||||
"name": "Godkjenn alle gjøremål",
|
||||
"description": "Godkjenn alle ventende fullførte gjøremål (eller et bestemt utvalg) og tildel poeng",
|
||||
"fields": {
|
||||
"completion_ids": {
|
||||
"name": "Fullførings-ID-er",
|
||||
"description": "Bestemte fullførings-ID-er som skal godkjennes; utelat for å godkjenne alle ventende"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_chore": {
|
||||
"name": "Avvis oppgave",
|
||||
"description": "Avvis en fullført oppgave",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Fullførings-ID",
|
||||
"description": "ID-en til oppgavefullføringen som skal avvises"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_chore_approval": {
|
||||
"name": "Angre godkjenning av gjøremål",
|
||||
"description": "Angre en utilsiktet godkjenning av et gjøremål — fjerner de tildelte poengene og setter fullføringen tilbake til venter, slik at den kan godkjennes på nytt.",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Fullførings-ID",
|
||||
"description": "ID-en til den godkjente gjøremålsfullføringen som skal settes tilbake til venter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_transaction": {
|
||||
"name": "Angre transaksjon",
|
||||
"description": "Angre en poengtransaksjon med ID-en — straffer, bonuser, manuelle justeringer (legg til/fjern) og gaver (begge sider). Automatiske transaksjoner (helg-/rekke-/perfekt uke-bonuser, sparekrukke-bevegelser, forfall, renter) kan ikke angres.",
|
||||
"fields": {
|
||||
"transaction_id": {
|
||||
"name": "Transaksjons-ID",
|
||||
"description": "ID-en til poengtransaksjonen som skal angres"
|
||||
}
|
||||
}
|
||||
},
|
||||
"claim_reward": {
|
||||
"name": "Hent belønning",
|
||||
"description": "Barnet henter en belønning med sine poeng",
|
||||
"fields": {
|
||||
"reward_id": {
|
||||
"name": "Belønnings-ID",
|
||||
"description": "ID-en til belønningen som skal hentes"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som henter belønningen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_reward": {
|
||||
"name": "Godkjenn belønning",
|
||||
"description": "Godkjenn et belønningskrav",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Krav-ID",
|
||||
"description": "ID-en til belønningskravet som skal godkjennes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"allocate_points_to_pool": {
|
||||
"name": "Tildel poeng til sparegris",
|
||||
"description": "Flytt poeng fra et barns disponible saldo til en belønnings sparegris (låst).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som gjør tildelingen"
|
||||
},
|
||||
"reward_id": {
|
||||
"name": "Belønnings-ID",
|
||||
"description": "ID-en til belønningens sparegris det skal settes inn i"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Antall poeng å tildele (begrenset av sparegrisens kapasitet og disponibel saldo)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_points": {
|
||||
"name": "Legg til poeng",
|
||||
"description": "Legg til bonuspoeng til et barn",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som skal få poeng"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Antall poeng å legge til"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Grunn",
|
||||
"description": "Valgfri grunn for bonusen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_points": {
|
||||
"name": "Fjern poeng",
|
||||
"description": "Fjern poeng fra et barn (straff)",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som skal miste poeng"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Antall poeng å fjerne"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Grunn",
|
||||
"description": "Valgfri grunn for straffen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_reward": {
|
||||
"name": "Avvis belønning",
|
||||
"description": "Avvis et belønningskrav",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Krav-ID",
|
||||
"description": "ID-en til belønningskravet som skal avvises"
|
||||
}
|
||||
}
|
||||
},
|
||||
"preview_sound": {
|
||||
"name": "Forhåndsvis lyd",
|
||||
"description": "Forhåndsvis en fullføringslydeffekt i nettleseren",
|
||||
"fields": {
|
||||
"sound": {
|
||||
"name": "Lyd",
|
||||
"description": "Lyden som skal forhåndsvises"
|
||||
}
|
||||
}
|
||||
},
|
||||
"set_chore_order": {
|
||||
"name": "Sett oppgaverekkefølge",
|
||||
"description": "Sett visningsrekkefølgen for oppgaver for et barn",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet å sette oppgaverekkefølge for"
|
||||
},
|
||||
"chore_order": {
|
||||
"name": "Oppgaverekkefølge",
|
||||
"description": "Ordnet liste over oppgave-ID-er"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_penalty": {
|
||||
"name": "Legg til straff",
|
||||
"description": "Opprett en ny straffedefinisjon",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Navn",
|
||||
"description": "Navnet på straffen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Antall poeng å trekke når den brukes"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beskrivelse",
|
||||
"description": "Valgfri beskrivelse av straffen"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "MDI-ikon for straffen"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Liste over barn-ID-er denne straffen gjelder for"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_penalty": {
|
||||
"name": "Oppdater straff",
|
||||
"description": "Oppdater en eksisterende straffedefinisjon",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straffe-ID",
|
||||
"description": "ID-en til straffen som skal oppdateres"
|
||||
},
|
||||
"name": {
|
||||
"name": "Navn",
|
||||
"description": "Nytt navn for straffen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Ny poengverdi"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beskrivelse",
|
||||
"description": "Ny beskrivelse"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "Nytt ikon"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Ny liste over barn-ID-er"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_penalty": {
|
||||
"name": "Fjern straff",
|
||||
"description": "Fjern en straffedefinisjon",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straffe-ID",
|
||||
"description": "ID-en til straffen som skal fjernes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_penalty": {
|
||||
"name": "Bruk straff",
|
||||
"description": "Bruk en straff på et barn og trekk poeng",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straffe-ID",
|
||||
"description": "ID-en til straffen som skal brukes"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet straffen skal brukes på"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_bonus": {
|
||||
"name": "Legg til bonus",
|
||||
"description": "Opprett en ny bonusdefinisjon",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Navn",
|
||||
"description": "Navnet på bonusen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Antall poeng som tildeles når bonusen brukes"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beskrivelse",
|
||||
"description": "Valgfri beskrivelse av bonusen"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "MDI-ikon for bonusen"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Liste over barn-ID-er bonusen gjelder for"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_bonus": {
|
||||
"name": "Oppdater bonus",
|
||||
"description": "Oppdater en eksisterende bonusdefinisjon",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "ID-en til bonusen som skal oppdateres"
|
||||
},
|
||||
"name": {
|
||||
"name": "Navn",
|
||||
"description": "Nytt navn for bonusen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Ny poengverdi"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beskrivelse",
|
||||
"description": "Ny beskrivelse"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "Nytt ikon"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Ny liste over barn-ID-er"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_bonus": {
|
||||
"name": "Fjern bonus",
|
||||
"description": "Fjern en bonusdefinisjon",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "ID-en til bonusen som skal fjernes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_bonus": {
|
||||
"name": "Bruk bonus",
|
||||
"description": "Bruk en bonus på et barn og tildel poeng",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "ID-en til bonusen som skal brukes"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet bonusen skal brukes på"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_chore": {
|
||||
"name": "Legg til oppgave",
|
||||
"description": "Opprett en ny oppgave dynamisk, typisk fra en automasjon eller et skript",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Navn",
|
||||
"description": "Navnet på oppgaven"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beskrivelse",
|
||||
"description": "Valgfri beskrivelse av oppgaven"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Poeng som tildeles når denne oppgaven fullføres"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt",
|
||||
"description": "Liste over barne-ID-er oppgaven skal tildeles. La stå tom for å tildele alle barn"
|
||||
},
|
||||
"time_category": {
|
||||
"name": "Tidskategori",
|
||||
"description": "Når oppgaven skal fullføres: morning, afternoon, evening, night eller anytime"
|
||||
},
|
||||
"one_shot": {
|
||||
"name": "Engangsoppgave",
|
||||
"description": "Hvis sann er dette en engangsoppgave som utløper etter fullføring eller ved dagens slutt"
|
||||
},
|
||||
"requires_approval": {
|
||||
"name": "Krever godkjenning",
|
||||
"description": "Hvis sann må en forelder godkjenne fullføringen før poeng tildeles"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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": "Start tidsbasert oppgave",
|
||||
"description": "Start eller gjenoppta timeren på en tidsbasert oppgave",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgave-ID",
|
||||
"description": "ID-en til den tidsbaserte oppgaven"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som starter timeren"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pause_timed_task": {
|
||||
"name": "Sett tidsbasert oppgave på pause",
|
||||
"description": "Sett timeren på en tidsbasert oppgave på pause",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgave-ID",
|
||||
"description": "ID-en til den tidsbaserte oppgaven"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som pauser timeren"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stop_timed_task": {
|
||||
"name": "Stopp tidsbasert oppgave",
|
||||
"description": "Stopp timeren på en tidsbasert oppgave og send inn til godkjenning",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgave-ID",
|
||||
"description": "ID-en til den tidsbaserte oppgaven"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som stopper timeren"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_badge": {
|
||||
"name": "Legg til merke",
|
||||
"description": "Opprett et egendefinert merke.",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Navn",
|
||||
"description": "Visningsnavnet til merket"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beskrivelse",
|
||||
"description": "Beskrivelse av hvordan merket oppnås"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "Ikon for merket (f.eks. mdi:beach)"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Nivå",
|
||||
"description": "Merkets nivå: bronse, sølv, gull eller platina"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Poengbonus",
|
||||
"description": "Poeng som krediteres barnet når merket oppnås"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Kriterier",
|
||||
"description": "Liste med metric / operator / value-oppføringer. Tom = kun manuell tildeling."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Liste med barn-ID-er (tom = alle)"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Varsle ved oppnåelse",
|
||||
"description": "Send et varsel når merket oppnås"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_badge": {
|
||||
"name": "Oppdater merke",
|
||||
"description": "Oppdater et eksisterende merke. For innebygde merker kan kun point_bonus, tier, assigned_to, enabled og notify_on_earn redigeres.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Merke-ID",
|
||||
"description": "ID-en til merket som skal oppdateres"
|
||||
},
|
||||
"name": {
|
||||
"name": "Navn",
|
||||
"description": "Nytt visningsnavn for merket"
|
||||
},
|
||||
"description": {
|
||||
"name": "Beskrivelse",
|
||||
"description": "Ny beskrivelse av merket"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "Nytt ikon for merket"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Nivå",
|
||||
"description": "Merkets nivå: bronse, sølv, gull eller platina"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Poengbonus",
|
||||
"description": "Poeng som krediteres barnet når merket oppnås"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Kriterier",
|
||||
"description": "Liste med metric / operator / value-oppføringer. Tom = kun manuell tildeling."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Liste med barn-ID-er (tom = alle)"
|
||||
},
|
||||
"enabled": {
|
||||
"name": "Aktivert",
|
||||
"description": "Om merket er aktivt"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Varsle ved oppnåelse",
|
||||
"description": "Send et varsel når merket oppnås"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_badge": {
|
||||
"name": "Fjern merke",
|
||||
"description": "Fjern et egendefinert merke. Innebygde merker kan ikke fjernes.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Merke-ID",
|
||||
"description": "ID-en til merket som skal fjernes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"award_badge_manually": {
|
||||
"name": "Tildel merke manuelt",
|
||||
"description": "Tildel et merke manuelt til et barn.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Merke-ID",
|
||||
"description": "ID-en til merket som skal tildeles"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Barn-ID",
|
||||
"description": "ID-en til barnet som mottar merket"
|
||||
}
|
||||
}
|
||||
},
|
||||
"revoke_badge": {
|
||||
"name": "Tilbakekall merke",
|
||||
"description": "Tilbakekall et tildelt merke. Hvis en poengbonus ble kreditert, blir den reversert.",
|
||||
"fields": {
|
||||
"awarded_badge_id": {
|
||||
"name": "Tildelt merke-ID",
|
||||
"description": "ID-en til det tildelte merket som skal tilbakekalles"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rebuild_badges": {
|
||||
"name": "Gjenoppbygg merker",
|
||||
"description": "Reevaluer alle merker for alle barn i stillhet (ingen varsler, ingen poengbonuser)."
|
||||
},
|
||||
"apply_mandatory_penalty": {
|
||||
"name": "Bruk obligatorisk straff",
|
||||
"description": "Trekk fra de konfigurerte strafepoengene for en glemt obligatorisk oppgave og fjern gjennomgangselementet.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Forsømmelse-ID",
|
||||
"description": "ID-en til gjennomgangselementet for den glemte obligatoriske oppgaven"
|
||||
}
|
||||
}
|
||||
},
|
||||
"choose_avatar": {
|
||||
"name": "Velg avatar",
|
||||
"description": "Et barn bytter til en avatar de har låst opp.",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Barne-ID",
|
||||
"description": "ID-en til barnet"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Avatar-ikon",
|
||||
"description": "mdi-ikonet til en opplåst katalog-avatar (f.eks. mdi:rocket-launch)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"dismiss_mandatory_chore": {
|
||||
"name": "Avvis obligatorisk oppgave",
|
||||
"description": "Fjern gjennomgangselementet for en glemt obligatorisk oppgave uten straff.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Forsømmelse-ID",
|
||||
"description": "ID-en til gjennomgangselementet for den glemte obligatoriske oppgaven"
|
||||
}
|
||||
}
|
||||
},
|
||||
"gift_points": {
|
||||
"name": "Gi bort poeng",
|
||||
"description": "Overfør brukbare poeng fra ett barn til et annet (foreldrestyrt).",
|
||||
"fields": {
|
||||
"from_child_id": {
|
||||
"name": "Fra barne-ID",
|
||||
"description": "ID-en til barnet som sender poeng"
|
||||
},
|
||||
"to_child_id": {
|
||||
"name": "Til barne-ID",
|
||||
"description": "ID-en til barnet som mottar poeng"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Antall poeng som skal overføres"
|
||||
}
|
||||
}
|
||||
},
|
||||
"postpone_mandatory_chore": {
|
||||
"name": "Utsett obligatorisk oppgave",
|
||||
"description": "Gi en glemt obligatorisk oppgave en ny periode (eller i morgen) uten straff, og fjern gjennomgangselementet.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Forsømmelse-ID",
|
||||
"description": "ID-en til gjennomgangselementet for den glemte obligatoriske oppgaven"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request_swap": {
|
||||
"name": "Be om oppgavebytte",
|
||||
"description": "Et barn ber om å overta dagens rotasjonstildeling av en oppgave (venter på foreldregodkjenning).",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgave-ID",
|
||||
"description": "ID-en til oppgaven som skal overtas"
|
||||
},
|
||||
"requester_id": {
|
||||
"name": "Barne-ID for forespørsel",
|
||||
"description": "ID-en til barnet som ber om byttet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"test_notification": {
|
||||
"name": "Testvarsel",
|
||||
"description": "Send et eksempelvarsel av den angitte typen til de aktiverte mottakerne (ignorerer hovedbryteren slik at rutingen kan verifiseres).",
|
||||
"fields": {
|
||||
"type_id": {
|
||||
"name": "Varseltype",
|
||||
"description": "ID for varseltype, f.eks. pending_chore_approval, badge_earned, streak_milestone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"record_allowance_payout": {
|
||||
"name": "Registrer lommepenge-utbetaling",
|
||||
"description": "Trekk fra poeng og registrer en reell lommepenge-utbetaling i loggen (fast omregningskurs; foreldrestyrt).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Barne-ID",
|
||||
"description": "ID-en til barnet som mottar utbetalingen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Poeng som skal regnes om til penger og trekkes fra"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"child_stats": {
|
||||
"unit_of_measurement": "oppgaver"
|
||||
},
|
||||
"child_badges": {
|
||||
"unit_of_measurement": "merker"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"weekend_multiplier": {
|
||||
"name": "Helgemultiplikator"
|
||||
},
|
||||
"perfect_week_bonus": {
|
||||
"name": "Bonus for perfekt uke"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"streak_reset_mode": {
|
||||
"name": "Tilbakestillingsmodus for rekke"
|
||||
},
|
||||
"card_design": {
|
||||
"name": "Kortdesign"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"title": "Velkomen til TaskMate!",
|
||||
"description": "Set opp familieoppgåvesystemet ditt. Du kan tilpasse poengvalutaen borna skal tene.",
|
||||
"data": {
|
||||
"points_name": "Poengvalutanamn (t.d. Stjerner, Myntar, Kroner)",
|
||||
"points_icon": "Poengikon"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"name_required": "Namn er påkravd"
|
||||
},
|
||||
"abort": {
|
||||
"already_configured": "TaskMate er allereie konfigurert"
|
||||
}
|
||||
},
|
||||
"selector": {
|
||||
"chore_action": {
|
||||
"options": {
|
||||
"save": "Lagre endringar",
|
||||
"re_enable": "Reaktiver oppgåve",
|
||||
"disable": "Deaktiver oppgåve",
|
||||
"delete": "Slett denne oppgåva"
|
||||
}
|
||||
},
|
||||
"reward_action": {
|
||||
"options": {
|
||||
"save": "Lagre endringar",
|
||||
"delete": "Slett løning"
|
||||
}
|
||||
},
|
||||
"time_category": {
|
||||
"options": {
|
||||
"morning": "Morgon",
|
||||
"afternoon": "Ettermiddag",
|
||||
"evening": "Kveld",
|
||||
"night": "Natt",
|
||||
"anytime": "Når som helst"
|
||||
}
|
||||
},
|
||||
"schedule_mode": {
|
||||
"options": {
|
||||
"specific_days": "Bestemte vekedagar",
|
||||
"recurring": "Gjentakande (kvar N dag/veke/månad)",
|
||||
"one_shot": "Eingongsoppgåve (éin dag)"
|
||||
}
|
||||
},
|
||||
"due_days_option": {
|
||||
"options": {
|
||||
"monday": "Måndag",
|
||||
"tuesday": "Tysdag",
|
||||
"wednesday": "Onsdag",
|
||||
"thursday": "Torsdag",
|
||||
"friday": "Fredag",
|
||||
"saturday": "Laurdag",
|
||||
"sunday": "Sundag"
|
||||
}
|
||||
},
|
||||
"recurrence": {
|
||||
"options": {
|
||||
"every_2_days": "Annakvar dag",
|
||||
"weekly": "Vekeleg",
|
||||
"every_2_weeks": "Annakvar veke",
|
||||
"monthly": "Månadleg",
|
||||
"every_3_months": "Kvar 3. månad",
|
||||
"every_6_months": "Kvar 6. månad"
|
||||
}
|
||||
},
|
||||
"recurrence_day_option": {
|
||||
"options": {
|
||||
"monday": "Måndag",
|
||||
"tuesday": "Tysdag",
|
||||
"wednesday": "Onsdag",
|
||||
"thursday": "Torsdag",
|
||||
"friday": "Fredag",
|
||||
"saturday": "Laurdag",
|
||||
"sunday": "Sundag",
|
||||
"any_day": "Kva dag som helst"
|
||||
}
|
||||
},
|
||||
"first_occurrence_mode": {
|
||||
"options": {
|
||||
"available_immediately": "Tilgjengeleg med ein gong",
|
||||
"wait_for_first_occurrence": "Vent på fyrste planlagde førekomst"
|
||||
}
|
||||
},
|
||||
"streak_reset_mode": {
|
||||
"options": {
|
||||
"reset": "Nullstill — rekka går til 0 ved tapt dag",
|
||||
"pause": "Pause — rekka vert bevart til neste fullføring"
|
||||
}
|
||||
},
|
||||
"visibility_operator": {
|
||||
"options": {
|
||||
"none": "Ingen filter — Vis oppgåva alltid",
|
||||
"equals": "Lik — Vis når eininga si tilstand stemmer nøyaktig",
|
||||
"not_equals": "Ikkje lik — Vis når eininga si tilstand ikkje stemmer",
|
||||
"gte": "Større enn eller lik (≥) — Vis når numerisk verdi er ≥ målverdien",
|
||||
"lte": "Mindre enn eller lik (≤) — Vis når numerisk verdi er ≤ målverdien",
|
||||
"gt": "Større enn (>) — Vis når numerisk verdi er > målverdien",
|
||||
"lt": "Mindre enn (<) — Vis når numerisk verdi er < målverdien"
|
||||
}
|
||||
},
|
||||
"assignment_mode": {
|
||||
"options": {
|
||||
"everyone": "Alle — kvart tildelt barn ser oppgåva",
|
||||
"alternating": "Vekslande — roter mellom dei tildelte barna, eitt per dag",
|
||||
"random": "Tilfeldig — plukk eitt tildelt barn tilfeldig kvar dag",
|
||||
"balanced": "Balansert — fordel dagens balanserte oppgåver jamt mellom dei tildelte barna",
|
||||
"first_come": "Førstemann til mølla — første barn som fullfører den vinn; vert skjult for dei andre",
|
||||
"unassigned": "Ikkje tildelt — ingen born ser denne oppgåva"
|
||||
}
|
||||
},
|
||||
"task_group_policy": {
|
||||
"options": {
|
||||
"sticky": "Sticky — same barn for alle oppgåver i gruppa",
|
||||
"spread": "Spread — ulike barn i gruppa i dag"
|
||||
}
|
||||
},
|
||||
"task_group_action": {
|
||||
"options": {
|
||||
"save": "Lagre endringar",
|
||||
"delete": "Slett gruppe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"complete_chore": {
|
||||
"name": "Fullfør oppgåve",
|
||||
"description": "Merk ei oppgåve som fullført av eit born",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgåve-ID",
|
||||
"description": "ID-en til oppgåva som skal fullførast"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som fullfører oppgåva"
|
||||
}
|
||||
}
|
||||
},
|
||||
"complete_bonus_subtask": {
|
||||
"name": "Fullfør bonus-deloppgåve",
|
||||
"description": "Fullfør ei bonus-deloppgåve etter at hovudoppgåva er fullført",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgåve-ID",
|
||||
"description": "ID-en til hovudoppgåva"
|
||||
},
|
||||
"bonus_subtask_id": {
|
||||
"name": "Bonus-deloppgåve-ID",
|
||||
"description": "ID-en til bonus-deloppgåva som skal fullførast"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som fullfører bonus-deloppgåva"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_chore": {
|
||||
"name": "Godkjenn oppgåve",
|
||||
"description": "Godkjenn ei fullført oppgåve og tildel poeng",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Fullførings-ID",
|
||||
"description": "ID-en til oppgåvefullføringa som skal godkjennast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_all_chores": {
|
||||
"name": "Godkjenn alle gjeremål",
|
||||
"description": "Godkjenn alle ventande fullførte gjeremål (eller eit bestemt utval) og tildel poeng",
|
||||
"fields": {
|
||||
"completion_ids": {
|
||||
"name": "Fullførings-ID-ar",
|
||||
"description": "Bestemte fullførings-ID-ar som skal godkjennast; utelat for å godkjenne alle ventande"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_chore": {
|
||||
"name": "Avvis oppgåve",
|
||||
"description": "Avvis ei fullført oppgåve",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Fullførings-ID",
|
||||
"description": "ID-en til oppgåvefullføringa som skal avvisast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_chore_approval": {
|
||||
"name": "Angre godkjenning av gjeremål",
|
||||
"description": "Angre ei utilsikta godkjenning av eit gjeremål — fjernar dei tildelte poenga og set fullføringa tilbake til ventar, slik at ho kan godkjennast på nytt.",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "Fullførings-ID",
|
||||
"description": "ID-en til den godkjende gjeremålsfullføringa som skal setjast tilbake til ventar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_transaction": {
|
||||
"name": "Angre transaksjon",
|
||||
"description": "Angre ein poengtransaksjon med ID-en — straffer, bonusar, manuelle justeringar (legg til/fjern) og gåver (begge sider). Automatiske transaksjonar (helg-/rekkje-/perfekt veke-bonusar, sparekrukke-rørsler, forfall, renter) kan ikkje angrast.",
|
||||
"fields": {
|
||||
"transaction_id": {
|
||||
"name": "Transaksjons-ID",
|
||||
"description": "ID-en til poengtransaksjonen som skal angrast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"claim_reward": {
|
||||
"name": "Hent løning",
|
||||
"description": "Bornet hentar ei løning med poenga sine",
|
||||
"fields": {
|
||||
"reward_id": {
|
||||
"name": "Lønings-ID",
|
||||
"description": "ID-en til løninga som skal hentast"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som hentar løninga"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_reward": {
|
||||
"name": "Godkjenn løning",
|
||||
"description": "Godkjenn eit løningskrav",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Krav-ID",
|
||||
"description": "ID-en til løningskravet som skal godkjennast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"allocate_points_to_pool": {
|
||||
"name": "Tildel poeng til sparegris",
|
||||
"description": "Flytt poeng frå den disponible saldoen til eit born inn i sparegrisen til ei løning (låst).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som gjer tildelinga"
|
||||
},
|
||||
"reward_id": {
|
||||
"name": "Lønings-ID",
|
||||
"description": "ID-en til sparegrisen til løninga det skal setjast inn i"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Tal poeng å tildele (avgrensa av kapasiteten til sparegrisen og disponibel saldo)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_points": {
|
||||
"name": "Legg til poeng",
|
||||
"description": "Legg til bonuspoeng til eit born",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som skal få poeng"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Tal poeng å leggje til"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Grunn",
|
||||
"description": "Valfri grunn for bonusen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_points": {
|
||||
"name": "Fjern poeng",
|
||||
"description": "Fjern poeng frå eit born (straff)",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som skal miste poeng"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Tal poeng å fjerne"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Grunn",
|
||||
"description": "Valfri grunn for straffen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_reward": {
|
||||
"name": "Avvis løning",
|
||||
"description": "Avvis eit løningskrav",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "Krav-ID",
|
||||
"description": "ID-en til løningskravet som skal avvisast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"preview_sound": {
|
||||
"name": "Førehandsvise lyd",
|
||||
"description": "Førehandsvise ein fullføringslydeffekt i nettlesaren",
|
||||
"fields": {
|
||||
"sound": {
|
||||
"name": "Lyd",
|
||||
"description": "Lyden som skal førehandsvisast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"set_chore_order": {
|
||||
"name": "Set oppgåverekkjefølgje",
|
||||
"description": "Set visingsrekkjefølgja for oppgåver for eit born",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet å sette oppgåverekkjefølgje for"
|
||||
},
|
||||
"chore_order": {
|
||||
"name": "Oppgåverekkjefølgje",
|
||||
"description": "Ordna liste over oppgåve-ID-ar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_penalty": {
|
||||
"name": "Legg til straff",
|
||||
"description": "Opprett ein ny straffedefinisjon",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Namn",
|
||||
"description": "Namnet på straffen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Tal poeng å trekkje når ho vert brukt"
|
||||
},
|
||||
"description": {
|
||||
"name": "Omtale",
|
||||
"description": "Valfri omtale av straffen"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "MDI-ikon for straffen"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Liste over born-ID-ar denne straffen gjeld for"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_penalty": {
|
||||
"name": "Oppdater straff",
|
||||
"description": "Oppdater ein eksisterande straffedefinisjon",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straffe-ID",
|
||||
"description": "ID-en til straffen som skal oppdaterast"
|
||||
},
|
||||
"name": {
|
||||
"name": "Namn",
|
||||
"description": "Nytt namn for straffen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Ny poengverdi"
|
||||
},
|
||||
"description": {
|
||||
"name": "Omtale",
|
||||
"description": "Ny omtale"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "Nytt ikon"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Ny liste over born-ID-ar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_penalty": {
|
||||
"name": "Fjern straff",
|
||||
"description": "Fjern ein straffedefinisjon",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straffe-ID",
|
||||
"description": "ID-en til straffen som skal fjernast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_penalty": {
|
||||
"name": "Bruk straff",
|
||||
"description": "Bruk ein straff på eit born og trekk poeng",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "Straffe-ID",
|
||||
"description": "ID-en til straffen som skal brukast"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet straffen skal brukast på"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_bonus": {
|
||||
"name": "Legg til bonus",
|
||||
"description": "Opprett ein ny bonusdefinisjon",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Namn",
|
||||
"description": "Namnet på bonusen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Kor mange poeng som vert tildelt når bonusen vert brukt"
|
||||
},
|
||||
"description": {
|
||||
"name": "Omtale",
|
||||
"description": "Valfri omtale av bonusen"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "MDI-ikon for bonusen"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Liste over born-ID-ar bonusen gjeld for"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_bonus": {
|
||||
"name": "Oppdater bonus",
|
||||
"description": "Oppdater ein eksisterande bonusdefinisjon",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "ID-en til bonusen som skal oppdaterast"
|
||||
},
|
||||
"name": {
|
||||
"name": "Namn",
|
||||
"description": "Nytt namn for bonusen"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Ny poengverdi"
|
||||
},
|
||||
"description": {
|
||||
"name": "Omtale",
|
||||
"description": "Ny omtale"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "Nytt ikon"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Ny liste over born-ID-ar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_bonus": {
|
||||
"name": "Fjern bonus",
|
||||
"description": "Fjern ein bonusdefinisjon",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "ID-en til bonusen som skal fjernast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_bonus": {
|
||||
"name": "Bruk bonus",
|
||||
"description": "Bruk ein bonus på eit born og tildel poeng",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "Bonus-ID",
|
||||
"description": "ID-en til bonusen som skal brukast"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet bonusen skal brukast på"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_chore": {
|
||||
"name": "Legg til oppgåve",
|
||||
"description": "Opprett ei ny oppgåve dynamisk, vanlegvis frå ein automasjon eller eit skript",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Namn",
|
||||
"description": "Namnet på oppgåva"
|
||||
},
|
||||
"description": {
|
||||
"name": "Skildring",
|
||||
"description": "Valfri skildring av oppgåva"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Poeng som vert tildelte når oppgåva er fullført"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt",
|
||||
"description": "Liste over born-ID-ar oppgåva skal tildelast. Lat stå tom for å tildele alle born"
|
||||
},
|
||||
"time_category": {
|
||||
"name": "Tidskategori",
|
||||
"description": "Når oppgåva skal fullførast: morning, afternoon, evening, night eller anytime"
|
||||
},
|
||||
"one_shot": {
|
||||
"name": "Eingongsoppgåve",
|
||||
"description": "Om sann er dette ei eingongsoppgåve som går ut etter fullføring eller ved dagens slutt"
|
||||
},
|
||||
"requires_approval": {
|
||||
"name": "Krev godkjenning",
|
||||
"description": "Om sann må ein forelder godkjenne fullføringa før poeng vert tildelte"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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": "Start tidsstyrt oppgåve",
|
||||
"description": "Start eller hald fram timeren på ei tidsstyrt oppgåve",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgåve-ID",
|
||||
"description": "ID-en til den tidsstyrte oppgåva"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som startar timeren"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pause_timed_task": {
|
||||
"name": "Set tidsstyrt oppgåve på pause",
|
||||
"description": "Set timeren på ei tidsstyrt oppgåve på pause",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgåve-ID",
|
||||
"description": "ID-en til den tidsstyrte oppgåva"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som pausar timeren"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stop_timed_task": {
|
||||
"name": "Stopp tidsstyrt oppgåve",
|
||||
"description": "Stopp timeren på ei tidsstyrt oppgåve og send inn til godkjenning",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgåve-ID",
|
||||
"description": "ID-en til den tidsstyrte oppgåva"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som stoppar timeren"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_badge": {
|
||||
"name": "Legg til merke",
|
||||
"description": "Opprett eit eigendefinert merke.",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Namn",
|
||||
"description": "Visingsnamnet til merket"
|
||||
},
|
||||
"description": {
|
||||
"name": "Skildring",
|
||||
"description": "Skildring av korleis merket vert oppnådd"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "Ikon for merket (t.d. mdi:beach)"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Nivå",
|
||||
"description": "Nivået til merket: bronse, sølv, gull eller platina"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Poengbonus",
|
||||
"description": "Poeng som vert krediterte bornet når merket vert oppnådd"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Kriterium",
|
||||
"description": "Liste med metric / operator / value-oppføringar. Tom = berre manuell tildeling."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Liste med born-ID-ar (tom = alle)"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Varsle ved oppnåing",
|
||||
"description": "Send eit varsel når merket vert oppnådd"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_badge": {
|
||||
"name": "Oppdater merke",
|
||||
"description": "Oppdater eit eksisterande merke. For innebygde merke kan berre point_bonus, tier, assigned_to, enabled og notify_on_earn redigerast.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Merke-ID",
|
||||
"description": "ID-en til merket som skal oppdaterast"
|
||||
},
|
||||
"name": {
|
||||
"name": "Namn",
|
||||
"description": "Nytt visingsnamn for merket"
|
||||
},
|
||||
"description": {
|
||||
"name": "Skildring",
|
||||
"description": "Ny skildring av merket"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikon",
|
||||
"description": "Nytt ikon for merket"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Nivå",
|
||||
"description": "Nivået til merket: bronse, sølv, gull eller platina"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Poengbonus",
|
||||
"description": "Poeng som vert krediterte bornet når merket vert oppnådd"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Kriterium",
|
||||
"description": "Liste med metric / operator / value-oppføringar. Tom = berre manuell tildeling."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Tildelt til",
|
||||
"description": "Liste med born-ID-ar (tom = alle)"
|
||||
},
|
||||
"enabled": {
|
||||
"name": "Aktivert",
|
||||
"description": "Om merket er aktivt"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Varsle ved oppnåing",
|
||||
"description": "Send eit varsel når merket vert oppnådd"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_badge": {
|
||||
"name": "Fjern merke",
|
||||
"description": "Fjern eit eigendefinert merke. Innebygde merke kan ikkje fjernast.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Merke-ID",
|
||||
"description": "ID-en til merket som skal fjernast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"award_badge_manually": {
|
||||
"name": "Tildel merke manuelt",
|
||||
"description": "Tildel eit merke manuelt til eit born.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "Merke-ID",
|
||||
"description": "ID-en til merket som skal tildelast"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "Born-ID",
|
||||
"description": "ID-en til bornet som tek imot merket"
|
||||
}
|
||||
}
|
||||
},
|
||||
"revoke_badge": {
|
||||
"name": "Tilbakekall merke",
|
||||
"description": "Tilbakekall eit tildelt merke. Om ein poengbonus vart kreditert, vert han reversert.",
|
||||
"fields": {
|
||||
"awarded_badge_id": {
|
||||
"name": "Tildelt merke-ID",
|
||||
"description": "ID-en til det tildelte merket som skal tilbakekallast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rebuild_badges": {
|
||||
"name": "Bygg opp att merke",
|
||||
"description": "Reevaluer alle merke for alle born i det stille (ingen varsel, ingen poengbonusar)."
|
||||
},
|
||||
"apply_mandatory_penalty": {
|
||||
"name": "Bruk obligatorisk straff",
|
||||
"description": "Trekk frå dei konfigurerte straffepoenga for ei gløymd obligatorisk oppgåve og fjern gjennomgangselementet.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Forsøming-ID",
|
||||
"description": "ID-en til gjennomgangselementet for den gløymde obligatoriske oppgåva"
|
||||
}
|
||||
}
|
||||
},
|
||||
"choose_avatar": {
|
||||
"name": "Vel avatar",
|
||||
"description": "Eit barn byter til ein avatar dei har låst opp.",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Barne-ID",
|
||||
"description": "ID-en til barnet"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Avatar-ikon",
|
||||
"description": "mdi-ikonet til ein opplåst katalog-avatar (t.d. mdi:rocket-launch)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"dismiss_mandatory_chore": {
|
||||
"name": "Avvis obligatorisk oppgåve",
|
||||
"description": "Fjern gjennomgangselementet for ei gløymd obligatorisk oppgåve utan straff.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Forsøming-ID",
|
||||
"description": "ID-en til gjennomgangselementet for den gløymde obligatoriske oppgåva"
|
||||
}
|
||||
}
|
||||
},
|
||||
"gift_points": {
|
||||
"name": "Gi bort poeng",
|
||||
"description": "Overfør brukbare poeng frå eitt barn til eit anna (foreldrestyrt).",
|
||||
"fields": {
|
||||
"from_child_id": {
|
||||
"name": "Frå barne-ID",
|
||||
"description": "ID-en til barnet som sender poeng"
|
||||
},
|
||||
"to_child_id": {
|
||||
"name": "Til barne-ID",
|
||||
"description": "ID-en til barnet som mottek poeng"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Talet på poeng som skal overførast"
|
||||
}
|
||||
}
|
||||
},
|
||||
"postpone_mandatory_chore": {
|
||||
"name": "Utsett obligatorisk oppgåve",
|
||||
"description": "Gi ei gløymd obligatorisk oppgåve ein ny periode (eller i morgon) utan straff, og fjern gjennomgangselementet.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "Forsøming-ID",
|
||||
"description": "ID-en til gjennomgangselementet for den gløymde obligatoriske oppgåva"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request_swap": {
|
||||
"name": "Be om oppgåvebyte",
|
||||
"description": "Eit barn ber om å overta dagens rotasjonstildeling av ei oppgåve (ventar på foreldregodkjenning).",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "Oppgåve-ID",
|
||||
"description": "ID-en til oppgåva som skal overtakast"
|
||||
},
|
||||
"requester_id": {
|
||||
"name": "Barne-ID for førespurnad",
|
||||
"description": "ID-en til barnet som ber om bytet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"test_notification": {
|
||||
"name": "Testvarsel",
|
||||
"description": "Send eit eksempelvarsel av den angitte typen til dei aktiverte mottakarane (ignorerer hovudbrytaren slik at rutinga kan verifiserast).",
|
||||
"fields": {
|
||||
"type_id": {
|
||||
"name": "Varseltype",
|
||||
"description": "ID for varseltype, t.d. pending_chore_approval, badge_earned, streak_milestone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"record_allowance_payout": {
|
||||
"name": "Registrer lommepenge-utbetaling",
|
||||
"description": "Trekk frå poeng og registrer ei reell lommepenge-utbetaling i loggen (fast omrekningskurs; foreldrestyrt).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "Barne-ID",
|
||||
"description": "ID-en til barnet som mottek utbetalinga"
|
||||
},
|
||||
"points": {
|
||||
"name": "Poeng",
|
||||
"description": "Poeng som skal reknast om til pengar og trekkjast frå"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"child_stats": {
|
||||
"unit_of_measurement": "oppgåver"
|
||||
},
|
||||
"child_badges": {
|
||||
"unit_of_measurement": "merke"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"weekend_multiplier": {
|
||||
"name": "Helgemultiplikator"
|
||||
},
|
||||
"perfect_week_bonus": {
|
||||
"name": "Bonus for perfekt veke"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"streak_reset_mode": {
|
||||
"name": "Tilbakestillingsmodus for rekkje"
|
||||
},
|
||||
"card_design": {
|
||||
"name": "Kortdesign"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"title": "Bem-vindo ao TaskMate!",
|
||||
"description": "Configure o seu sistema de gestão de tarefas familiar. Pode personalizar a moeda de pontos que as crianças vão ganhar.",
|
||||
"data": {
|
||||
"points_name": "Nome da moeda de pontos (ex: Estrelas, Moedas, Pontos)",
|
||||
"points_icon": "Ícone dos pontos"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"name_required": "O nome é obrigatório"
|
||||
},
|
||||
"abort": {
|
||||
"already_configured": "O TaskMate já está configurado"
|
||||
}
|
||||
},
|
||||
"selector": {
|
||||
"chore_action": {
|
||||
"options": {
|
||||
"save": "Guardar alterações",
|
||||
"re_enable": "Reativar tarefa",
|
||||
"disable": "Desativar tarefa",
|
||||
"delete": "Eliminar esta tarefa"
|
||||
}
|
||||
},
|
||||
"reward_action": {
|
||||
"options": {
|
||||
"save": "Guardar alterações",
|
||||
"delete": "Eliminar recompensa"
|
||||
}
|
||||
},
|
||||
"time_category": {
|
||||
"options": {
|
||||
"morning": "Manhã",
|
||||
"afternoon": "Tarde",
|
||||
"evening": "Fim da tarde",
|
||||
"night": "Noite",
|
||||
"anytime": "Qualquer hora"
|
||||
}
|
||||
},
|
||||
"schedule_mode": {
|
||||
"options": {
|
||||
"specific_days": "Dias específicos da semana",
|
||||
"recurring": "Recorrente (a cada N dias/semanas/meses)",
|
||||
"one_shot": "Tarefa única (um dia)"
|
||||
}
|
||||
},
|
||||
"due_days_option": {
|
||||
"options": {
|
||||
"monday": "Segunda-feira",
|
||||
"tuesday": "Terça-feira",
|
||||
"wednesday": "Quarta-feira",
|
||||
"thursday": "Quinta-feira",
|
||||
"friday": "Sexta-feira",
|
||||
"saturday": "Sábado",
|
||||
"sunday": "Domingo"
|
||||
}
|
||||
},
|
||||
"recurrence": {
|
||||
"options": {
|
||||
"every_2_days": "A cada 2 dias",
|
||||
"weekly": "Semanal",
|
||||
"every_2_weeks": "A cada 2 semanas",
|
||||
"monthly": "Mensal",
|
||||
"every_3_months": "A cada 3 meses",
|
||||
"every_6_months": "A cada 6 meses"
|
||||
}
|
||||
},
|
||||
"recurrence_day_option": {
|
||||
"options": {
|
||||
"monday": "Segunda-feira",
|
||||
"tuesday": "Terça-feira",
|
||||
"wednesday": "Quarta-feira",
|
||||
"thursday": "Quinta-feira",
|
||||
"friday": "Sexta-feira",
|
||||
"saturday": "Sábado",
|
||||
"sunday": "Domingo",
|
||||
"any_day": "Qualquer dia"
|
||||
}
|
||||
},
|
||||
"first_occurrence_mode": {
|
||||
"options": {
|
||||
"available_immediately": "Disponível imediatamente",
|
||||
"wait_for_first_occurrence": "Aguardar primeira ocorrência agendada"
|
||||
}
|
||||
},
|
||||
"streak_reset_mode": {
|
||||
"options": {
|
||||
"reset": "Reiniciar — sequência volta a 0 num dia falhado",
|
||||
"pause": "Pausar — sequência preservada até próxima conclusão"
|
||||
}
|
||||
},
|
||||
"visibility_operator": {
|
||||
"options": {
|
||||
"none": "Sem filtro — Sempre mostrar a tarefa",
|
||||
"equals": "Igual — Mostrar quando o estado da entidade corresponde exatamente",
|
||||
"not_equals": "Não igual — Mostrar quando o estado da entidade não corresponde",
|
||||
"gte": "Maior ou igual (≥) — Mostrar quando valor numérico é ≥ alvo",
|
||||
"lte": "Menor ou igual (≤) — Mostrar quando valor numérico é ≤ alvo",
|
||||
"gt": "Maior que (>) — Mostrar quando valor numérico é > alvo",
|
||||
"lt": "Menor que (<) — Mostrar quando valor numérico é < alvo"
|
||||
}
|
||||
},
|
||||
"assignment_mode": {
|
||||
"options": {
|
||||
"everyone": "Todos — todas as crianças atribuídas veem a tarefa",
|
||||
"alternating": "Alternado — alterna entre as crianças atribuídas, uma por dia",
|
||||
"random": "Aleatório — escolhe aleatoriamente uma criança atribuída por dia",
|
||||
"balanced": "Equilibrado — divide as tarefas equilibradas do dia igualmente entre as crianças atribuídas",
|
||||
"first_come": "Quem chega primeiro — a primeira criança a concluir ganha; some para as demais",
|
||||
"unassigned": "Não atribuído — nenhuma criança vê esta tarefa"
|
||||
}
|
||||
},
|
||||
"task_group_policy": {
|
||||
"options": {
|
||||
"sticky": "Sticky — mesma criança para todas as tarefas do grupo",
|
||||
"spread": "Spread — crianças diferentes no grupo hoje"
|
||||
}
|
||||
},
|
||||
"task_group_action": {
|
||||
"options": {
|
||||
"save": "Salvar alterações",
|
||||
"delete": "Excluir grupo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"complete_chore": {
|
||||
"name": "Concluir tarefa",
|
||||
"description": "Marcar uma tarefa como concluída por uma criança",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa a concluir"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que conclui a tarefa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"complete_bonus_subtask": {
|
||||
"name": "Concluir subtarefa bônus",
|
||||
"description": "Concluir uma subtarefa bônus depois que a tarefa principal for concluída",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa principal"
|
||||
},
|
||||
"bonus_subtask_id": {
|
||||
"name": "ID da subtarefa bônus",
|
||||
"description": "O ID da subtarefa bônus a concluir"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que conclui a subtarefa bônus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_chore": {
|
||||
"name": "Aprovar tarefa",
|
||||
"description": "Aprovar uma tarefa concluída e atribuir pontos",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "ID de conclusão",
|
||||
"description": "O ID da conclusão da tarefa a aprovar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_all_chores": {
|
||||
"name": "Aprovar todas as tarefas",
|
||||
"description": "Aprovar todas as conclusões de tarefas pendentes (ou um conjunto específico) e atribuir pontos",
|
||||
"fields": {
|
||||
"completion_ids": {
|
||||
"name": "IDs de conclusão",
|
||||
"description": "IDs de conclusão específicos para aprovar; omita para aprovar todas as pendentes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_chore": {
|
||||
"name": "Rejeitar tarefa",
|
||||
"description": "Rejeitar uma tarefa concluída",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "ID de conclusão",
|
||||
"description": "O ID da conclusão da tarefa a rejeitar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_chore_approval": {
|
||||
"name": "Desfazer aprovação de tarefa",
|
||||
"description": "Desfazer a aprovação acidental de uma tarefa — remove os pontos concedidos e retorna a conclusão para pendente para que possa ser aprovada novamente.",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "ID de conclusão",
|
||||
"description": "O ID da conclusão de tarefa aprovada a retornar para pendente"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_transaction": {
|
||||
"name": "Desfazer transação",
|
||||
"description": "Desfazer uma transação de pontos pelo seu ID — penalidades, bônus, ajustes manuais (adicionar/remover) e presentes (ambos os lados). Transações automáticas (bônus de fim de semana/sequência/semana perfeita, movimentações do cofrinho, desvalorização, juros) não podem ser desfeitas.",
|
||||
"fields": {
|
||||
"transaction_id": {
|
||||
"name": "ID da transação",
|
||||
"description": "O ID da transação de pontos a reverter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"claim_reward": {
|
||||
"name": "Reclamar recompensa",
|
||||
"description": "A criança reclama uma recompensa usando os seus pontos",
|
||||
"fields": {
|
||||
"reward_id": {
|
||||
"name": "ID da recompensa",
|
||||
"description": "O ID da recompensa a reclamar"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que reclama a recompensa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_reward": {
|
||||
"name": "Aprovar recompensa",
|
||||
"description": "Aprovar um pedido de recompensa",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "ID do pedido",
|
||||
"description": "O ID do pedido de recompensa a aprovar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"allocate_points_to_pool": {
|
||||
"name": "Alocar pontos ao cofrinho",
|
||||
"description": "Mover pontos do saldo disponível de uma criança para o cofrinho de uma recompensa (bloqueado).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que faz a alocação"
|
||||
},
|
||||
"reward_id": {
|
||||
"name": "ID da recompensa",
|
||||
"description": "O ID do cofrinho da recompensa onde depositar"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Número de pontos a alocar (limitado pela capacidade do cofrinho e pelo saldo disponível)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_points": {
|
||||
"name": "Adicionar pontos",
|
||||
"description": "Adicionar pontos de bónus a uma criança",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança a quem adicionar pontos"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a adicionar"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Motivo",
|
||||
"description": "Motivo opcional para o bónus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_points": {
|
||||
"name": "Remover pontos",
|
||||
"description": "Remover pontos de uma criança (penalização)",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança a quem remover pontos"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a remover"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Motivo",
|
||||
"description": "Motivo opcional para a penalização"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_reward": {
|
||||
"name": "Rejeitar recompensa",
|
||||
"description": "Rejeitar um pedido de recompensa",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "ID do pedido",
|
||||
"description": "O ID do pedido de recompensa a rejeitar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"preview_sound": {
|
||||
"name": "Pré-visualizar som",
|
||||
"description": "Pré-visualizar um efeito sonoro de conclusão no navegador",
|
||||
"fields": {
|
||||
"sound": {
|
||||
"name": "Som",
|
||||
"description": "O som a pré-visualizar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"set_chore_order": {
|
||||
"name": "Definir ordem das tarefas",
|
||||
"description": "Definir a ordem de apresentação das tarefas para uma criança",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança para definir a ordem das tarefas"
|
||||
},
|
||||
"chore_order": {
|
||||
"name": "Ordem das tarefas",
|
||||
"description": "Lista ordenada de IDs de tarefas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_penalty": {
|
||||
"name": "Adicionar penalização",
|
||||
"description": "Criar uma nova definição de penalização",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "O nome da penalização"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a deduzir quando aplicada"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Descrição opcional da penalização"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Ícone MDI para a penalização"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Lista de IDs de crianças a quem esta penalização se aplica"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_penalty": {
|
||||
"name": "Atualizar penalização",
|
||||
"description": "Atualizar uma definição de penalização existente",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "ID da penalização",
|
||||
"description": "O ID da penalização a atualizar"
|
||||
},
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "Novo nome para a penalização"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Novo valor de pontos"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Nova descrição"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Novo ícone"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Nova lista de IDs de crianças"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_penalty": {
|
||||
"name": "Remover penalização",
|
||||
"description": "Remover uma definição de penalização",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "ID da penalização",
|
||||
"description": "O ID da penalização a remover"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_penalty": {
|
||||
"name": "Aplicar penalização",
|
||||
"description": "Aplicar uma penalização a uma criança, deduzindo pontos",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "ID da penalização",
|
||||
"description": "O ID da penalização a aplicar"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança a quem aplicar a penalização"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_bonus": {
|
||||
"name": "Adicionar bônus",
|
||||
"description": "Criar uma nova definição de bônus",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "O nome do bônus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a conceder quando aplicado"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Descrição opcional do bônus"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Ícone MDI para o bônus"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuído a",
|
||||
"description": "Lista de IDs de crianças a que este bônus se aplica"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_bonus": {
|
||||
"name": "Atualizar bônus",
|
||||
"description": "Atualizar uma definição de bônus existente",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "ID do bônus",
|
||||
"description": "O ID do bônus a atualizar"
|
||||
},
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "Novo nome para o bônus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Novo valor de pontos"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Nova descrição"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Novo ícone"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuído a",
|
||||
"description": "Nova lista de IDs de crianças"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_bonus": {
|
||||
"name": "Remover bônus",
|
||||
"description": "Remover uma definição de bônus",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "ID do bônus",
|
||||
"description": "O ID do bônus a remover"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_bonus": {
|
||||
"name": "Aplicar bônus",
|
||||
"description": "Aplicar um bônus a uma criança, concedendo pontos",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "ID do bônus",
|
||||
"description": "O ID do bônus a aplicar"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança a quem aplicar o bônus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_chore": {
|
||||
"name": "Adicionar tarefa",
|
||||
"description": "Criar uma nova tarefa dinamicamente, normalmente a partir de uma automação ou script",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "O nome da tarefa"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Descrição opcional da tarefa"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Pontos concedidos quando esta tarefa é concluída"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Lista de IDs de crianças para atribuir esta tarefa. Deixe em branco para atribuir a todas as crianças"
|
||||
},
|
||||
"time_category": {
|
||||
"name": "Categoria de tempo",
|
||||
"description": "Quando esta tarefa deve ser concluída: morning, afternoon, evening, night ou anytime"
|
||||
},
|
||||
"one_shot": {
|
||||
"name": "Única",
|
||||
"description": "Se verdadeiro, é uma tarefa única que expira após a conclusão ou no final do dia"
|
||||
},
|
||||
"requires_approval": {
|
||||
"name": "Requer aprovação",
|
||||
"description": "Se verdadeiro, um pai/mãe deve aprovar a conclusão antes de os pontos serem concedidos"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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": "Iniciar tarefa cronometrada",
|
||||
"description": "Iniciar ou retomar o cronômetro de uma tarefa cronometrada",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa cronometrada"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que inicia o cronômetro"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pause_timed_task": {
|
||||
"name": "Pausar tarefa cronometrada",
|
||||
"description": "Pausar o cronômetro de uma tarefa cronometrada em andamento",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa cronometrada"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que pausa o cronômetro"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stop_timed_task": {
|
||||
"name": "Parar tarefa cronometrada",
|
||||
"description": "Parar o cronômetro de uma tarefa cronometrada e enviar para aprovação",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa cronometrada"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que para o cronômetro"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_badge": {
|
||||
"name": "Adicionar conquista",
|
||||
"description": "Criar uma conquista personalizada.",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "O nome de exibição da conquista"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Descrição de como a conquista é ganha"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Ícone da conquista (ex.: mdi:beach)"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Nível",
|
||||
"description": "Nível da conquista: bronze, prata, ouro ou platina"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Bônus de pontos",
|
||||
"description": "Pontos creditados à criança quando a conquista é ganha"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Critérios",
|
||||
"description": "Lista de dicionários metric / operator / value. Vazio = apenas atribuição manual."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Lista de IDs de crianças (vazio = todas)"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Notificar ao ganhar",
|
||||
"description": "Enviar uma notificação quando a conquista é ganha"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_badge": {
|
||||
"name": "Atualizar conquista",
|
||||
"description": "Atualizar uma conquista existente. Para as integradas, apenas point_bonus, tier, assigned_to, enabled e notify_on_earn são editáveis.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "ID da conquista",
|
||||
"description": "O ID da conquista a atualizar"
|
||||
},
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "Novo nome de exibição da conquista"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Nova descrição da conquista"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Novo ícone da conquista"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Nível",
|
||||
"description": "Nível da conquista: bronze, prata, ouro ou platina"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Bônus de pontos",
|
||||
"description": "Pontos creditados à criança quando a conquista é ganha"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Critérios",
|
||||
"description": "Lista de dicionários metric / operator / value. Vazio = apenas atribuição manual."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Lista de IDs de crianças (vazio = todas)"
|
||||
},
|
||||
"enabled": {
|
||||
"name": "Ativada",
|
||||
"description": "Se a conquista está ativa"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Notificar ao ganhar",
|
||||
"description": "Enviar uma notificação quando a conquista é ganha"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_badge": {
|
||||
"name": "Remover conquista",
|
||||
"description": "Remover uma conquista personalizada. As integradas não podem ser removidas.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "ID da conquista",
|
||||
"description": "O ID da conquista a remover"
|
||||
}
|
||||
}
|
||||
},
|
||||
"award_badge_manually": {
|
||||
"name": "Atribuir conquista manualmente",
|
||||
"description": "Atribuir manualmente uma conquista a uma criança.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "ID da conquista",
|
||||
"description": "O ID da conquista a atribuir"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que recebe a conquista"
|
||||
}
|
||||
}
|
||||
},
|
||||
"revoke_badge": {
|
||||
"name": "Revogar conquista",
|
||||
"description": "Revogar uma conquista atribuída. Se um bônus de pontos foi creditado, ele é revertido.",
|
||||
"fields": {
|
||||
"awarded_badge_id": {
|
||||
"name": "ID da conquista atribuída",
|
||||
"description": "O ID da conquista atribuída a revogar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rebuild_badges": {
|
||||
"name": "Reconstruir conquistas",
|
||||
"description": "Reavaliar todas as conquistas de todas as crianças silenciosamente (sem notificações nem bônus de pontos)."
|
||||
},
|
||||
"apply_mandatory_penalty": {
|
||||
"name": "Aplicar penalidade obrigatória",
|
||||
"description": "Deduz os pontos de penalidade configurados por uma tarefa obrigatória perdida e remove o item de revisão.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "ID da falha",
|
||||
"description": "O ID do item de revisão da tarefa obrigatória perdida"
|
||||
}
|
||||
}
|
||||
},
|
||||
"choose_avatar": {
|
||||
"name": "Escolher avatar",
|
||||
"description": "Uma criança muda para um avatar que desbloqueou.",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone do avatar",
|
||||
"description": "O ícone mdi de um avatar do catálogo desbloqueado (ex.: mdi:rocket-launch)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"dismiss_mandatory_chore": {
|
||||
"name": "Dispensar tarefa obrigatória",
|
||||
"description": "Remove o item de revisão de uma tarefa obrigatória perdida sem penalidade.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "ID da falha",
|
||||
"description": "O ID do item de revisão da tarefa obrigatória perdida"
|
||||
}
|
||||
}
|
||||
},
|
||||
"gift_points": {
|
||||
"name": "Presentear pontos",
|
||||
"description": "Transfere pontos disponíveis de uma criança para outra (controlado pelos pais).",
|
||||
"fields": {
|
||||
"from_child_id": {
|
||||
"name": "ID da criança de origem",
|
||||
"description": "O ID da criança que envia os pontos"
|
||||
},
|
||||
"to_child_id": {
|
||||
"name": "ID da criança de destino",
|
||||
"description": "O ID da criança que recebe os pontos"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a transferir"
|
||||
}
|
||||
}
|
||||
},
|
||||
"postpone_mandatory_chore": {
|
||||
"name": "Adiar tarefa obrigatória",
|
||||
"description": "Dá a uma tarefa obrigatória perdida outro período (ou amanhã) sem penalidade e remove o item de revisão.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "ID da falha",
|
||||
"description": "O ID do item de revisão da tarefa obrigatória perdida"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request_swap": {
|
||||
"name": "Solicitar troca de tarefa",
|
||||
"description": "Uma criança pede para assumir a atribuição de rodízio de hoje de uma tarefa (sujeito a aprovação dos pais).",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa a assumir"
|
||||
},
|
||||
"requester_id": {
|
||||
"name": "ID da criança solicitante",
|
||||
"description": "O ID da criança que pede a troca"
|
||||
}
|
||||
}
|
||||
},
|
||||
"test_notification": {
|
||||
"name": "Notificação de teste",
|
||||
"description": "Envia uma notificação de exemplo do tipo indicado aos destinatários ativados (ignora o interruptor principal para que o roteamento possa ser verificado).",
|
||||
"fields": {
|
||||
"type_id": {
|
||||
"name": "Tipo de notificação",
|
||||
"description": "ID do tipo de notificação, ex.: pending_chore_approval, badge_earned, streak_milestone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"record_allowance_payout": {
|
||||
"name": "Registrar pagamento de mesada",
|
||||
"description": "Deduzir pontos e registrar um pagamento de mesada real no histórico (taxa de conversão fixa; controlado pelos pais).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que recebe o pagamento"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Pontos a converter em dinheiro e deduzir"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"child_stats": {
|
||||
"unit_of_measurement": "tarefas"
|
||||
},
|
||||
"child_badges": {
|
||||
"unit_of_measurement": "medalhas"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"weekend_multiplier": {
|
||||
"name": "Multiplicador de fim de semana"
|
||||
},
|
||||
"perfect_week_bonus": {
|
||||
"name": "Bônus de semana perfeita"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"streak_reset_mode": {
|
||||
"name": "Modo de redefinição de sequência"
|
||||
},
|
||||
"card_design": {
|
||||
"name": "Design do cartão"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"config": {
|
||||
"step": {
|
||||
"user": {
|
||||
"title": "Bem-vindo ao TaskMate!",
|
||||
"description": "Configure o seu sistema de gestão de tarefas familiar. Pode personalizar a moeda de pontos que as crianças vão ganhar.",
|
||||
"data": {
|
||||
"points_name": "Nome da moeda de pontos (ex: Estrelas, Moedas, Pontos)",
|
||||
"points_icon": "Ícone dos pontos"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"name_required": "O nome é obrigatório"
|
||||
},
|
||||
"abort": {
|
||||
"already_configured": "O TaskMate já está configurado"
|
||||
}
|
||||
},
|
||||
"selector": {
|
||||
"chore_action": {
|
||||
"options": {
|
||||
"save": "Guardar alterações",
|
||||
"re_enable": "Reativar tarefa",
|
||||
"disable": "Desativar tarefa",
|
||||
"delete": "Eliminar esta tarefa"
|
||||
}
|
||||
},
|
||||
"reward_action": {
|
||||
"options": {
|
||||
"save": "Guardar alterações",
|
||||
"delete": "Eliminar recompensa"
|
||||
}
|
||||
},
|
||||
"time_category": {
|
||||
"options": {
|
||||
"morning": "Manhã",
|
||||
"afternoon": "Tarde",
|
||||
"evening": "Fim da tarde",
|
||||
"night": "Noite",
|
||||
"anytime": "Qualquer hora"
|
||||
}
|
||||
},
|
||||
"schedule_mode": {
|
||||
"options": {
|
||||
"specific_days": "Dias específicos da semana",
|
||||
"recurring": "Recorrente (a cada N dias/semanas/meses)",
|
||||
"one_shot": "Tarefa única (um dia)"
|
||||
}
|
||||
},
|
||||
"due_days_option": {
|
||||
"options": {
|
||||
"monday": "Segunda-feira",
|
||||
"tuesday": "Terça-feira",
|
||||
"wednesday": "Quarta-feira",
|
||||
"thursday": "Quinta-feira",
|
||||
"friday": "Sexta-feira",
|
||||
"saturday": "Sábado",
|
||||
"sunday": "Domingo"
|
||||
}
|
||||
},
|
||||
"recurrence": {
|
||||
"options": {
|
||||
"every_2_days": "A cada 2 dias",
|
||||
"weekly": "Semanal",
|
||||
"every_2_weeks": "A cada 2 semanas",
|
||||
"monthly": "Mensal",
|
||||
"every_3_months": "A cada 3 meses",
|
||||
"every_6_months": "A cada 6 meses"
|
||||
}
|
||||
},
|
||||
"recurrence_day_option": {
|
||||
"options": {
|
||||
"monday": "Segunda-feira",
|
||||
"tuesday": "Terça-feira",
|
||||
"wednesday": "Quarta-feira",
|
||||
"thursday": "Quinta-feira",
|
||||
"friday": "Sexta-feira",
|
||||
"saturday": "Sábado",
|
||||
"sunday": "Domingo",
|
||||
"any_day": "Qualquer dia"
|
||||
}
|
||||
},
|
||||
"first_occurrence_mode": {
|
||||
"options": {
|
||||
"available_immediately": "Disponível imediatamente",
|
||||
"wait_for_first_occurrence": "Aguardar primeira ocorrência agendada"
|
||||
}
|
||||
},
|
||||
"streak_reset_mode": {
|
||||
"options": {
|
||||
"reset": "Reiniciar — sequência volta a 0 num dia falhado",
|
||||
"pause": "Pausar — sequência preservada até próxima conclusão"
|
||||
}
|
||||
},
|
||||
"visibility_operator": {
|
||||
"options": {
|
||||
"none": "Sem filtro — Mostrar sempre a tarefa",
|
||||
"equals": "Igual — Mostrar quando o estado da entidade corresponde exatamente",
|
||||
"not_equals": "Não igual — Mostrar quando o estado da entidade não corresponde",
|
||||
"gte": "Maior ou igual (≥) — Mostrar quando valor numérico é ≥ alvo",
|
||||
"lte": "Menor ou igual (≤) — Mostrar quando valor numérico é ≤ alvo",
|
||||
"gt": "Maior que (>) — Mostrar quando valor numérico é > alvo",
|
||||
"lt": "Menor que (<) — Mostrar quando valor numérico é < alvo"
|
||||
}
|
||||
},
|
||||
"assignment_mode": {
|
||||
"options": {
|
||||
"everyone": "Todos — todas as crianças atribuídas veem a tarefa",
|
||||
"alternating": "Alternado — alterna entre as crianças atribuídas, uma por dia",
|
||||
"random": "Aleatório — escolhe aleatoriamente uma criança atribuída por dia",
|
||||
"balanced": "Equilibrado — divide as tarefas equilibradas do dia igualmente entre as crianças atribuídas",
|
||||
"first_come": "Quem chega primeiro — a primeira criança a concluir ganha; desaparece para as restantes",
|
||||
"unassigned": "Não atribuído — nenhuma criança vê esta tarefa"
|
||||
}
|
||||
},
|
||||
"task_group_policy": {
|
||||
"options": {
|
||||
"sticky": "Sticky — mesma criança para todas as tarefas do grupo",
|
||||
"spread": "Spread — crianças diferentes no grupo hoje"
|
||||
}
|
||||
},
|
||||
"task_group_action": {
|
||||
"options": {
|
||||
"save": "Guardar alterações",
|
||||
"delete": "Eliminar grupo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"complete_chore": {
|
||||
"name": "Concluir tarefa",
|
||||
"description": "Marcar uma tarefa como concluída por uma criança",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa a concluir"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que conclui a tarefa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"complete_bonus_subtask": {
|
||||
"name": "Concluir subtarefa bónus",
|
||||
"description": "Concluir uma subtarefa bónus depois de a tarefa principal estar concluída",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa principal"
|
||||
},
|
||||
"bonus_subtask_id": {
|
||||
"name": "ID da subtarefa bónus",
|
||||
"description": "O ID da subtarefa bónus a concluir"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que conclui a subtarefa bónus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_chore": {
|
||||
"name": "Aprovar tarefa",
|
||||
"description": "Aprovar uma tarefa concluída e atribuir pontos",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "ID de conclusão",
|
||||
"description": "O ID da conclusão da tarefa a aprovar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_all_chores": {
|
||||
"name": "Aprovar todas as tarefas",
|
||||
"description": "Aprovar todas as conclusões de tarefas pendentes (ou um conjunto específico) e atribuir pontos",
|
||||
"fields": {
|
||||
"completion_ids": {
|
||||
"name": "IDs de conclusão",
|
||||
"description": "IDs de conclusão específicos para aprovar; omita para aprovar todas as pendentes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_chore": {
|
||||
"name": "Rejeitar tarefa",
|
||||
"description": "Rejeitar uma tarefa concluída",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "ID de conclusão",
|
||||
"description": "O ID da conclusão da tarefa a rejeitar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_chore_approval": {
|
||||
"name": "Anular aprovação de tarefa",
|
||||
"description": "Anular a aprovação acidental de uma tarefa — remove os pontos atribuídos e devolve a conclusão a pendente para que possa ser aprovada novamente.",
|
||||
"fields": {
|
||||
"completion_id": {
|
||||
"name": "ID de conclusão",
|
||||
"description": "O ID da conclusão de tarefa aprovada a repor como pendente"
|
||||
}
|
||||
}
|
||||
},
|
||||
"undo_transaction": {
|
||||
"name": "Anular transação",
|
||||
"description": "Anular uma transação de pontos pelo seu ID — penalizações, bónus, ajustes manuais (adicionar/remover) e presentes (ambas as partes). As transações automáticas (bónus de fim de semana/sequência/semana perfeita, movimentos do mealheiro, desvalorização, juros) não podem ser anuladas.",
|
||||
"fields": {
|
||||
"transaction_id": {
|
||||
"name": "ID da transação",
|
||||
"description": "O ID da transação de pontos a reverter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"claim_reward": {
|
||||
"name": "Reclamar recompensa",
|
||||
"description": "A criança reclama uma recompensa usando os seus pontos",
|
||||
"fields": {
|
||||
"reward_id": {
|
||||
"name": "ID da recompensa",
|
||||
"description": "O ID da recompensa a reclamar"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que reclama a recompensa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approve_reward": {
|
||||
"name": "Aprovar recompensa",
|
||||
"description": "Aprovar um pedido de recompensa",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "ID do pedido",
|
||||
"description": "O ID do pedido de recompensa a aprovar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"allocate_points_to_pool": {
|
||||
"name": "Alocar pontos ao mealheiro",
|
||||
"description": "Mover pontos do saldo disponível de uma criança para o mealheiro de uma recompensa (bloqueado).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que faz a alocação"
|
||||
},
|
||||
"reward_id": {
|
||||
"name": "ID da recompensa",
|
||||
"description": "O ID do mealheiro da recompensa onde depositar"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Número de pontos a alocar (limitado pela capacidade do mealheiro e pelo saldo disponível)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_points": {
|
||||
"name": "Adicionar pontos",
|
||||
"description": "Adicionar pontos de bónus a uma criança",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança a quem adicionar pontos"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a adicionar"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Motivo",
|
||||
"description": "Motivo opcional para o bónus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_points": {
|
||||
"name": "Remover pontos",
|
||||
"description": "Remover pontos de uma criança (penalização)",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança a quem remover pontos"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a remover"
|
||||
},
|
||||
"reason": {
|
||||
"name": "Motivo",
|
||||
"description": "Motivo opcional para a penalização"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reject_reward": {
|
||||
"name": "Rejeitar recompensa",
|
||||
"description": "Rejeitar um pedido de recompensa",
|
||||
"fields": {
|
||||
"claim_id": {
|
||||
"name": "ID do pedido",
|
||||
"description": "O ID do pedido de recompensa a rejeitar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"preview_sound": {
|
||||
"name": "Pré-visualizar som",
|
||||
"description": "Pré-visualizar um efeito sonoro de conclusão no navegador",
|
||||
"fields": {
|
||||
"sound": {
|
||||
"name": "Som",
|
||||
"description": "O som a pré-visualizar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"set_chore_order": {
|
||||
"name": "Definir ordem das tarefas",
|
||||
"description": "Definir a ordem de apresentação das tarefas para uma criança",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança para definir a ordem das tarefas"
|
||||
},
|
||||
"chore_order": {
|
||||
"name": "Ordem das tarefas",
|
||||
"description": "Lista ordenada de IDs de tarefas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_penalty": {
|
||||
"name": "Adicionar penalização",
|
||||
"description": "Criar uma nova definição de penalização",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "O nome da penalização"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a deduzir quando aplicada"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Descrição opcional da penalização"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Ícone MDI para a penalização"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Lista de IDs de crianças a quem esta penalização se aplica"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_penalty": {
|
||||
"name": "Atualizar penalização",
|
||||
"description": "Atualizar uma definição de penalização existente",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "ID da penalização",
|
||||
"description": "O ID da penalização a atualizar"
|
||||
},
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "Novo nome para a penalização"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Novo valor de pontos"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Nova descrição"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Novo ícone"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Nova lista de IDs de crianças"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_penalty": {
|
||||
"name": "Remover penalização",
|
||||
"description": "Remover uma definição de penalização",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "ID da penalização",
|
||||
"description": "O ID da penalização a remover"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_penalty": {
|
||||
"name": "Aplicar penalização",
|
||||
"description": "Aplicar uma penalização a uma criança, deduzindo pontos",
|
||||
"fields": {
|
||||
"penalty_id": {
|
||||
"name": "ID da penalização",
|
||||
"description": "O ID da penalização a aplicar"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança a quem aplicar a penalização"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_bonus": {
|
||||
"name": "Adicionar bónus",
|
||||
"description": "Criar uma nova definição de bónus",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "O nome do bónus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a atribuir quando aplicado"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Descrição opcional do bónus"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Ícone MDI para o bónus"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuído a",
|
||||
"description": "Lista de IDs de crianças a que este bónus se aplica"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_bonus": {
|
||||
"name": "Atualizar bónus",
|
||||
"description": "Atualizar uma definição de bónus existente",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "ID do bónus",
|
||||
"description": "O ID do bónus a atualizar"
|
||||
},
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "Novo nome para o bónus"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Novo valor de pontos"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Nova descrição"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Novo ícone"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuído a",
|
||||
"description": "Nova lista de IDs de crianças"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_bonus": {
|
||||
"name": "Remover bónus",
|
||||
"description": "Remover uma definição de bónus",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "ID do bónus",
|
||||
"description": "O ID do bónus a remover"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apply_bonus": {
|
||||
"name": "Aplicar bónus",
|
||||
"description": "Aplicar um bónus a uma criança, atribuindo pontos",
|
||||
"fields": {
|
||||
"bonus_id": {
|
||||
"name": "ID do bónus",
|
||||
"description": "O ID do bónus a aplicar"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança a quem aplicar o bónus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_chore": {
|
||||
"name": "Adicionar tarefa",
|
||||
"description": "Criar uma nova tarefa dinamicamente, normalmente a partir de uma automação ou script",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "O nome da tarefa"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Descrição opcional da tarefa"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Pontos atribuídos quando esta tarefa é concluída"
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Lista de IDs de crianças a quem atribuir esta tarefa. Deixe vazio para atribuir a todas as crianças"
|
||||
},
|
||||
"time_category": {
|
||||
"name": "Categoria de tempo",
|
||||
"description": "Quando esta tarefa deve ser concluída: morning, afternoon, evening, night ou anytime"
|
||||
},
|
||||
"one_shot": {
|
||||
"name": "Única",
|
||||
"description": "Se verdadeiro, é uma tarefa única que expira após a conclusão ou no final do dia"
|
||||
},
|
||||
"requires_approval": {
|
||||
"name": "Requer aprovação",
|
||||
"description": "Se verdadeiro, um pai/mãe deve aprovar a conclusão antes de os pontos serem atribuídos"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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": "Iniciar tarefa temporizada",
|
||||
"description": "Iniciar ou retomar o temporizador de uma tarefa temporizada",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa temporizada"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que inicia o temporizador"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pause_timed_task": {
|
||||
"name": "Pausar tarefa temporizada",
|
||||
"description": "Pausar o temporizador de uma tarefa temporizada em curso",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa temporizada"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que pausa o temporizador"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stop_timed_task": {
|
||||
"name": "Parar tarefa temporizada",
|
||||
"description": "Parar o temporizador de uma tarefa temporizada e submeter para aprovação",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa temporizada"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que para o temporizador"
|
||||
}
|
||||
}
|
||||
},
|
||||
"add_badge": {
|
||||
"name": "Adicionar conquista",
|
||||
"description": "Criar uma conquista personalizada.",
|
||||
"fields": {
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "O nome de apresentação da conquista"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Descrição de como a conquista é ganha"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Ícone da conquista (ex.: mdi:beach)"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Nível",
|
||||
"description": "Nível da conquista: bronze, prata, ouro ou platina"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Bónus de pontos",
|
||||
"description": "Pontos creditados à criança quando a conquista é ganha"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Critérios",
|
||||
"description": "Lista de dicionários metric / operator / value. Vazio = apenas atribuição manual."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Lista de IDs de crianças (vazio = todas)"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Notificar ao ganhar",
|
||||
"description": "Enviar uma notificação quando a conquista é ganha"
|
||||
}
|
||||
}
|
||||
},
|
||||
"update_badge": {
|
||||
"name": "Atualizar conquista",
|
||||
"description": "Atualizar uma conquista existente. Para as integradas, apenas point_bonus, tier, assigned_to, enabled e notify_on_earn são editáveis.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "ID da conquista",
|
||||
"description": "O ID da conquista a atualizar"
|
||||
},
|
||||
"name": {
|
||||
"name": "Nome",
|
||||
"description": "Novo nome de apresentação da conquista"
|
||||
},
|
||||
"description": {
|
||||
"name": "Descrição",
|
||||
"description": "Nova descrição da conquista"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone",
|
||||
"description": "Novo ícone da conquista"
|
||||
},
|
||||
"tier": {
|
||||
"name": "Nível",
|
||||
"description": "Nível da conquista: bronze, prata, ouro ou platina"
|
||||
},
|
||||
"point_bonus": {
|
||||
"name": "Bónus de pontos",
|
||||
"description": "Pontos creditados à criança quando a conquista é ganha"
|
||||
},
|
||||
"criteria": {
|
||||
"name": "Critérios",
|
||||
"description": "Lista de dicionários metric / operator / value. Vazio = apenas atribuição manual."
|
||||
},
|
||||
"assigned_to": {
|
||||
"name": "Atribuída a",
|
||||
"description": "Lista de IDs de crianças (vazio = todas)"
|
||||
},
|
||||
"enabled": {
|
||||
"name": "Ativada",
|
||||
"description": "Se a conquista está ativa"
|
||||
},
|
||||
"notify_on_earn": {
|
||||
"name": "Notificar ao ganhar",
|
||||
"description": "Enviar uma notificação quando a conquista é ganha"
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove_badge": {
|
||||
"name": "Remover conquista",
|
||||
"description": "Remover uma conquista personalizada. As integradas não podem ser removidas.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "ID da conquista",
|
||||
"description": "O ID da conquista a remover"
|
||||
}
|
||||
}
|
||||
},
|
||||
"award_badge_manually": {
|
||||
"name": "Atribuir conquista manualmente",
|
||||
"description": "Atribuir manualmente uma conquista a uma criança.",
|
||||
"fields": {
|
||||
"badge_id": {
|
||||
"name": "ID da conquista",
|
||||
"description": "O ID da conquista a atribuir"
|
||||
},
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que recebe a conquista"
|
||||
}
|
||||
}
|
||||
},
|
||||
"revoke_badge": {
|
||||
"name": "Revogar conquista",
|
||||
"description": "Revogar uma conquista atribuída. Se um bónus de pontos foi creditado, é revertido.",
|
||||
"fields": {
|
||||
"awarded_badge_id": {
|
||||
"name": "ID da conquista atribuída",
|
||||
"description": "O ID da conquista atribuída a revogar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rebuild_badges": {
|
||||
"name": "Reconstruir conquistas",
|
||||
"description": "Reavaliar todas as conquistas de todas as crianças silenciosamente (sem notificações nem bónus de pontos)."
|
||||
},
|
||||
"apply_mandatory_penalty": {
|
||||
"name": "Aplicar penalização obrigatória",
|
||||
"description": "Deduz os pontos de penalização configurados por uma tarefa obrigatória falhada e remove o item de revisão.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "ID da falha",
|
||||
"description": "O ID do item de revisão da tarefa obrigatória falhada"
|
||||
}
|
||||
}
|
||||
},
|
||||
"choose_avatar": {
|
||||
"name": "Escolher avatar",
|
||||
"description": "Uma criança muda para um avatar que desbloqueou.",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança"
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ícone do avatar",
|
||||
"description": "O ícone mdi de um avatar do catálogo desbloqueado (ex.: mdi:rocket-launch)."
|
||||
}
|
||||
}
|
||||
},
|
||||
"dismiss_mandatory_chore": {
|
||||
"name": "Dispensar tarefa obrigatória",
|
||||
"description": "Remove o item de revisão de uma tarefa obrigatória falhada sem penalização.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "ID da falha",
|
||||
"description": "O ID do item de revisão da tarefa obrigatória falhada"
|
||||
}
|
||||
}
|
||||
},
|
||||
"gift_points": {
|
||||
"name": "Oferecer pontos",
|
||||
"description": "Transfere pontos disponíveis de uma criança para outra (controlado pelos pais).",
|
||||
"fields": {
|
||||
"from_child_id": {
|
||||
"name": "ID da criança de origem",
|
||||
"description": "O ID da criança que envia os pontos"
|
||||
},
|
||||
"to_child_id": {
|
||||
"name": "ID da criança de destino",
|
||||
"description": "O ID da criança que recebe os pontos"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "O número de pontos a transferir"
|
||||
}
|
||||
}
|
||||
},
|
||||
"postpone_mandatory_chore": {
|
||||
"name": "Adiar tarefa obrigatória",
|
||||
"description": "Dá a uma tarefa obrigatória falhada outro período (ou amanhã) sem penalização e remove o item de revisão.",
|
||||
"fields": {
|
||||
"miss_id": {
|
||||
"name": "ID da falha",
|
||||
"description": "O ID do item de revisão da tarefa obrigatória falhada"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request_swap": {
|
||||
"name": "Pedir troca de tarefa",
|
||||
"description": "Uma criança pede para assumir a atribuição de rotação de hoje de uma tarefa (sujeito a aprovação dos pais).",
|
||||
"fields": {
|
||||
"chore_id": {
|
||||
"name": "ID da tarefa",
|
||||
"description": "O ID da tarefa a assumir"
|
||||
},
|
||||
"requester_id": {
|
||||
"name": "ID da criança solicitante",
|
||||
"description": "O ID da criança que pede a troca"
|
||||
}
|
||||
}
|
||||
},
|
||||
"test_notification": {
|
||||
"name": "Notificação de teste",
|
||||
"description": "Envia uma notificação de exemplo do tipo indicado aos destinatários ativados (ignora o interruptor principal para que o encaminhamento possa ser verificado).",
|
||||
"fields": {
|
||||
"type_id": {
|
||||
"name": "Tipo de notificação",
|
||||
"description": "ID do tipo de notificação, p. ex. pending_chore_approval, badge_earned, streak_milestone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"record_allowance_payout": {
|
||||
"name": "Registar pagamento de mesada",
|
||||
"description": "Deduzir pontos e registar um pagamento de mesada real no histórico (taxa de conversão fixa; controlado pelos pais).",
|
||||
"fields": {
|
||||
"child_id": {
|
||||
"name": "ID da criança",
|
||||
"description": "O ID da criança que recebe o pagamento"
|
||||
},
|
||||
"points": {
|
||||
"name": "Pontos",
|
||||
"description": "Pontos a converter em dinheiro e a deduzir"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"child_stats": {
|
||||
"unit_of_measurement": "tarefas"
|
||||
},
|
||||
"child_badges": {
|
||||
"unit_of_measurement": "medalhas"
|
||||
}
|
||||
},
|
||||
"number": {
|
||||
"weekend_multiplier": {
|
||||
"name": "Multiplicador de fim de semana"
|
||||
},
|
||||
"perfect_week_bonus": {
|
||||
"name": "Bónus de semana perfeita"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"streak_reset_mode": {
|
||||
"name": "Modo de reposição de sequência"
|
||||
},
|
||||
"card_design": {
|
||||
"name": "Design do cartão"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user