{ "child.tap_to_undo": "Tap to undo", "common.design.field_label": "Card design", "common.design.use_global": "Use global default", "common.design.classic": "Classic", "common.design.playroom": "Playroom", "common.design.console": "Console", "common.design.cleanpro": "Clean Pro", "panel.settings_card_design_label": "Default card design", "panel.settings_card_design_hint": "The style new cards use unless overridden per card.", "activity.a_chore": "a chore", "activity.a_reward": "a reward", "activity.awaiting_approval": "awaiting approval", "activity.card_description": "Timeline of recent chore completions and reward claims", "activity.card_name": "TaskMate Activity Feed", "activity.claimed": "claimed", "activity.completed": "completed", "activity.completed_chores_will_appear": "Completed chores will appear here", "activity.days_ago": "{count}d ago", "activity.default_title": "Activity", "activity.recent_events": "Recent events", "activity.undo": "Undo", "activity.undo_confirm_title": "Undo this action?", "activity.undo_confirm_chore": "Undo the approval of “{detail}” for {child}? This removes {points} points and returns it to pending.", "activity.undo_confirm_txn": "Undo “{detail}” for {child}? This reverses {points} points.", "activity.undo_error_title": "TaskMate — undo failed", "activity.undo_error_body": "Couldn't undo: {message}", "activity.editor.accent_stripes_helper": "Show the 4px coloured stripe at the left of each row indicating event type", "activity.editor.accent_stripes": "Coloured event stripes", "activity.editor.filter_child_helper": "Only show activity for this child", "activity.editor.max_items": "Max Items", "activity.editor.max_items_helper": "Maximum number of events to show (default: 30)", "activity.editor.show_relative_time_helper": "Show 'just now' / '5m ago' alongside the absolute time on each row", "activity.editor.show_relative_time": "Relative time labels", "activity.editor.show_filter_chips_helper": "Show the All / Chores / Rewards / Adjustments chip bar below the header", "activity.editor.show_filter_chips": "Show filter chips", "activity.editor.show_undo": "Show undo buttons", "activity.editor.show_undo_helper": "Show the undo button on each row. Turn off for a kid-friendly dashboard so children can't reverse their own activity.", "activity.events_count": "{count} events", "activity.just_now": "just now", "activity.hours_ago": "{count}h ago", "activity.filter_rewards": "Rewards", "activity.filter_chores": "Chores", "activity.filter_aria_label": "Filter activity by type", "activity.filter_all": "All", "activity.filter_adjustments": "Adjustments", "activity.feed_end": "— end of feed —", "activity.lost": "lost", "activity.minutes_ago": "{count}m ago", "activity.no_activity_yet": "No activity yet", "activity.no_events_for_filter": "No matching events", "activity.points_manually": "points manually", "activity.reason_allocated_to_pool": "Allocated to pool: {name}", "activity.reason_bonus": "Bonus: {name}", "activity.reason_penalty": "Penalty: {name}", "activity.reason_perfect_week": "Perfect week bonus!", "activity.reason_pool_refund_cost_reduced": "Pool refund (reward cost reduced): {name}", "activity.reason_pool_refund_deleted": "Pool refund (reward deleted): {name}", "activity.reason_pool_refund_expired": "Pool refund (reward expired): {name}", "activity.reason_pool_refund_sold_out": "Pool refund (reward sold out): {name}", "activity.reason_streak_milestone": "Streak milestone bonus ({days} day streak!)", "activity.reason_weekend_bonus": "Weekend bonus (×{multiplier})", "activity.received": "received", "activity.redeemed": "redeemed", "activity.spent": "spent", "activity.try_different_filter": "Try a different filter", "activity.unknown_child": "Unknown", "approvals.all_caught_up": "All caught up!", "approvals.approve": "Approve", "approvals.approve_all": "Approve all", "approvals.approve_all_confirm": "Approve {count} pending chores?", "approvals.card_description": "A card to manage pending chore approvals for TaskMate", "approvals.card_name": "TaskMate Approvals", "approvals.default_title": "Pending Approvals", "approvals.editor.child_id": "Child ID (optional)", "approvals.editor.child_id_helper": "Filter approvals to a specific child", "approvals.editor.child_id_placeholder": "Leave empty to show all children", "approvals.editor.entity_helper": "The pending approvals sensor entity", "approvals.error_failed_service": "Failed to {service}: {message}", "approvals.error_title": "TaskMate Error", "approvals.no_pending_approvals": "No pending approvals", "approvals.please_define_entity": "Please define an entity (pending_approvals sensor)", "approvals.reject": "Reject", "approvals.reward_claims_section": "Reward claims", "approvals.mandatory_section": "Mandatory — needs review", "approvals.apply_penalty": "Apply penalty", "approvals.postpone": "Postpone", "approvals.dismiss": "Dismiss", "approvals.penalty_points": "Penalty: −{points} pts", "approvals.no_penalty": "No penalty set", "approvals.timed_duration": "{count} min", "badge.criteria_and": "AND", "badge.criteria_or": "OR", "badge.criteria_best_streak": "Best Streak", "badge.criteria_current_streak": "Current Streak", "badge.criteria_first_chore": "First Chore", "badge.criteria_first_reward": "First Reward", "badge.criteria_perfect_weeks": "Perfect Weeks", "badge.criteria_total_chores": "Total Chores", "badge.criteria_total_points": "Total Points", "badge.criteria_total_rewards": "Total Rewards", "badge.desc_1000_points": "Earn 1000 lifetime points", "badge.desc_100_chores": "Complete 100 chores", "badge.desc_100_points": "Earn 100 lifetime points", "badge.desc_10_chores": "Complete 10 chores", "badge.desc_10_perfect_weeks": "Achieve 10 perfect weeks", "badge.desc_30_day_streak": "Complete chores 30 days in a row", "badge.desc_3_day_streak": "Complete chores 3 days in a row", "badge.desc_5000_points": "Earn 5000 lifetime points", "badge.desc_500_points": "Earn 500 lifetime points", "badge.desc_50_chores": "Complete 50 chores", "badge.desc_5_perfect_weeks": "Achieve 5 perfect weeks", "badge.desc_7_day_streak": "Complete chores 7 days in a row", "badge.desc_first_chore": "Complete your very first chore", "badge.desc_first_perfect_week": "Complete a perfect week", "badge.desc_first_reward": "Claim your first reward", "badge.earned_date": "Earned {date}", "badge.manual_award_only": "Manual award only", "badge.metric_best_streak": "Best streak", "badge.metric_current_streak": "Current streak", "badge.metric_first_chore": "First chore (bool)", "badge.metric_first_reward": "First reward (bool)", "badge.metric_perfect_weeks": "Perfect weeks", "badge.metric_total_chores": "Total chores", "badge.metric_total_points": "Total points", "badge.metric_total_rewards": "Total rewards", "badge.name_1000_points": "1000 Points", "badge.name_100_chores": "100 Chores Completed", "badge.name_100_points": "100 Points", "badge.name_10_chores": "10 Chores Completed", "badge.name_10_perfect_weeks": "10 Perfect Weeks", "badge.name_30_day_streak": "30-Day Streak", "badge.name_3_day_streak": "3-Day Streak", "badge.name_5000_points": "5000 Points", "badge.name_500_points": "500 Points", "badge.name_50_chores": "50 Chores Completed", "badge.name_5_perfect_weeks": "5 Perfect Weeks", "badge.name_7_day_streak": "7-Day Streak", "badge.name_first_chore": "First Chore", "badge.name_first_perfect_week": "First Perfect Week", "badge.name_first_reward": "First Reward", "badge.source_auto": "AUTO", "badge.source_manual": "MANUAL", "badge.source_silent": "SILENT", "badge.tier_bronze": "Bronze", "badge.tier_gold": "Gold", "badge.tier_platinum": "Platinum", "badge.tier_silver": "Silver", "badges.all_tiers": "All tiers", "badges.count_label": "{earned} of {total} earned", "badges.count_label_latest": "{earned} of {total} earned · Latest: {latest}", "badges.default_title": "Badges", "badges.editor_help": "Configure via YAML: set entity to your badges sensor (e.g. sensor.taskmate_badges_mia).", "badges.entity_not_found": "{entity} not found", "badges.label": "Badges", "badges.title_with_name": "{name}'s Badges", "bonuses.add_bonus": "Add Bonus", "bonuses.applying_to": "Applying to {childName} — current balance: {points} {pointsName}", "bonuses.btn_delete_title": "Delete", "bonuses.btn_edit_title": "Edit", "bonuses.card_description": "Apply point-awarding bonuses to children", "bonuses.card_name": "TaskMate Bonuses", "bonuses.default_title": "Bonuses", "bonuses.editor.manage_note": "Add, edit, and delete bonus templates directly on the card itself — tap the pencil icon in the card header. This editor only controls the card's appearance.", "bonuses.empty_sub": "Tap the pencil icon to add bonuses", "bonuses.empty_title": "No bonuses yet", "bonuses.form_description_label": "Description (optional)", "bonuses.form_description_placeholder": "Short description", "bonuses.form_icon_label": "Icon (MDI)", "bonuses.form_name_label": "Name", "bonuses.form_name_placeholder": "e.g. Tidied bedroom", "bonuses.form_points_label": "Points", "bonuses.manage_title": "Manage bonuses", "bonuses.new_bonus": "New Bonus", "bonuses.toast_add_failed": "Failed to add bonus", "bonuses.toast_applied": "+{points} {pointsName} to {childName}", "bonuses.toast_apply_failed": "Failed to apply bonus", "bonuses.toast_delete_failed": "Failed to delete bonus", "bonuses.toast_save_failed": "Failed to save changes", "bonuses.toast_saved": "Bonus saved", "calendar.card_description": "One-day view of chores assigned to each child", "calendar.card_name": "TaskMate Calendar", "calendar.child_summary": "{done} of {total} done", "calendar.default_title": "Task Calendar", "calendar.editor.child_helper": "Show the calendar for a specific child only", "calendar.editor.title": "Title", "calendar.error.entity_required": "Please define an entity", "calendar.legend_due": "Due", "calendar.next_day": "Next day", "calendar.no_chores_today": "No chores for this day", "calendar.prev_day": "Previous day", "calendar.rotating": "Rotating assignment", "child.afternoon_chores": "Afternoon Chores", "child.all_done": "All Done!", "child.bonus_label": "BONUS", "child.bonus_tooltip": "Bonus: {name}", "child.card_description": "A fun, kid-friendly card for children to complete their chores!", "child.card_name": "TaskMate Child Card", "child.celebration_message": "You did it! Keep up the great work!", "child.celebration_title": "AWESOME!", "child.on_vacation": "On a break — chores are paused 🌴", "child.child_not_found": "Child not found: {child_id}", "child.chore_locked_until": "Available at {time}", "child.chore_locked_until_generic": "Available later", "child.chores_reset_hours_mins": "Chores reset in {hours}h {mins}m", "child.chores_reset_mins": "Chores reset in {mins}m", "child.chores_resetting_soon": "Chores resetting soon!", "child.click_to_complete": "Click to complete", "child.click_to_undo": "Click to undo", "child.difficulty_easy": "Easy", "child.difficulty_medium": "Medium", "child.difficulty_hard": "Hard", "child.mandatory": "Mandatory", "child.swap_section_title": "Take over a chore", "child.swap_request": "Request", "child.swap_requested": "Requested", "child.photo_needed": "Photo needed", "child.photo_required_title": "Add a photo", "child.photo_take": "Take a photo", "child.photo_hint": "Show your finished chore", "child.photo_retake": "Retake", "child.photo_confirm": "Confirm", "child.photo_uploading": "Uploading photo…", "child.photo_cancel": "Cancel", "child.photo_not_image": "That file isn't an image. Please try again.", "child.photo_process_failed": "Couldn't read that photo. Please try again.", "child.photo_upload_failed": "Upload failed. Check your connection and try again.", "child.done": "Done", "child.editor.child": "Child", "child.editor.child_helper": "Which child is this card for?", "child.editor.chores_not_due_today": "Chores Not Due Today", "child.editor.due_days_dim": "Dim — show greyed out, non-interactive", "child.editor.due_days_helper": "Applies to chores with due_days set when today isn't scheduled", "child.editor.due_days_hide": "Hide — don't show", "child.editor.due_days_show": "Show — show normally regardless", "child.editor.elapsed_dim": "Dim — show greyed out, non-interactive", "child.editor.elapsed_helper": "What to show when a morning/afternoon/evening/night chore wasn't completed and that time has passed", "child.editor.elapsed_hide": "Hide — don't show", "child.editor.elapsed_show": "Show — show normally regardless", "child.editor.missed_time_chores": "Missed Time-of-Day Chores", "child.editor.recurrence_dim": "Dim — show greyed out, non-interactive", "child.editor.recurrence_helper": "What to show when a recurring chore has been completed and the window hasn't reset yet", "child.editor.recurrence_hide": "Hide — don't show until available again", "child.editor.recurrence_show": "Show — show normally regardless", "child.editor.recurring_when_completed": "Recurring Chores — When Completed", "child.editor.select_child": "Select a child...", "child.editor.show_countdown": "Show reset countdown beside \"Today's Chores\"", "child.editor.show_debug": "Show debug panel", "child.editor.show_description": "Show chore description", "child.editor.time_category": "Time Category", "child.editor.time_category_afternoon": "Afternoon Chores", "child.editor.time_category_all": "Today's Chores (All)", "child.editor.time_category_anytime": "Today's Chores (Anytime)", "child.editor.time_category_evening": "Evening Chores", "child.editor.time_category_helper": "Which time of day to show chores for — also sets the card title", "child.editor.time_category_morning": "Morning Chores", "child.editor.time_category_night": "Night Chores", "child.error_complete": "Something went wrong: {message}", "child.error_title": "Oops!", "child.error_undo": "Couldn't undo: {message}", "child.undo_not_allowed": "Only a parent can undo a completed chore.", "child.evening_chores": "Evening Chores", "child.morning_chores": "Morning Chores", "child.night_chores": "Night Chores", "child.no_chores_right_now": "No chores right now. Great job!", "child.not_scheduled_for_today": "Not scheduled for today", "child.pause": "Pause", "child.paused": "Paused", "child.please_define_child_id": "Please define a child_id", "child.please_define_entity": "Please define an entity (taskmate overview sensor)", "child.pts_per_min": "pts/min", "child.pts_per_n_min": "pts/{count} min", "child.recurring": "Recurring", "child.resume": "Resume", "child.start": "Start", "child.time_has_passed": "Time has passed for this chore", "child.timed_cap_label": "{used} / {max} min", "child.todays_chores": "Today's Chores", "common.afternoon": "Afternoon", "common.all": "All", "common.all_children": "All Children", "common.anytime": "Anytime", "common.apply": "Apply", "common.approve": "Approve", "common.approved": "Approved", "common.cancel": "Cancel", "common.close": "Close", "common.chores": "Chores", "common.complete_on_behalf": "Complete", "common.complete_on_behalf_all_done": "All chores done today", "common.complete_on_behalf_heading": "Outstanding today", "common.complete_on_behalf_tooltip": "Complete for {name}", "common.d_streak": "{count}d streak", "common.day_streak": "day streak", "common.default": "Default", "common.editor.card_title": "Card Title", "common.editor.filter_by_child": "Filter by Child (optional)", "common.editor.filter_by_child_all": "All Children", "common.editor.header_colour": "Header Colour", "common.editor.header_colour_helper": "Card header background colour", "common.editor.overview_entity": "Overview Entity", "common.editor.overview_entity_helper": "The TaskMate overview sensor entity", "common.entity": "Entity", "common.entity_not_found": "Entity not found: {entity}", "common.error": "Error", "common.evening": "Evening", "common.goal": "Goal", "common.morning": "Morning", "common.night": "Night", "common.no_children": "No children found", "common.no_chores_today": "No chores today", "common.pending": "Pending", "common.please_define_entity": "Please define an entity", "common.points": "Points", "common.reject": "Reject", "common.rejected": "Rejected", "common.reset": "Reset", "common.save": "Save", "common.stars": "Stars", "common.this_week": "this week", "common.title": "Title", "common.today": "Today", "common.total": "total", "common.unavailable": "TaskMate is unavailable", "common.unknown": "Unknown", "common.yesterday": "Yesterday", "dashboard.btn_add_points_title": "Add {amount} {pointsName}", "dashboard.btn_remove_points_title": "Remove {amount} {pointsName}", "dashboard.card_description": "Unified parent view with approvals, child progress, and quick point controls", "dashboard.card_name": "TaskMate Parent Dashboard", "dashboard.default_title": "Parent Dashboard", "dashboard.editor.entity_helper": "The TaskMate overview sensor", "dashboard.editor.entity_label": "Overview Entity", "dashboard.editor.header_colour_helper": "Card header background colour", "dashboard.editor.header_colour_label": "Header Colour", "dashboard.editor.quick_points_helper": "How many points the +/- buttons add or remove", "dashboard.editor.quick_points_label": "Quick Points Amount", "dashboard.editor.show_claims": "Show Reward Claims tab", "dashboard.editor.title_label": "Card Title", "dashboard.empty_approvals": "All caught up! No pending approvals.", "dashboard.empty_claims": "No pending reward claims.", "dashboard.empty_no_children": "No children found", "dashboard.empty_rotation": "No rotating chores configured", "dashboard.paused_tag": "PAUSED", "dashboard.rotation_skip_confirm": "Skip today's assignee for this chore?", "dashboard.rotation_skip_hint": "Skip current child and move to the next in rotation (today only)", "dashboard.rotation_unassigned": "Nobody", "dashboard.tab_approvals": "Approvals", "dashboard.tab_claims": "Claims", "dashboard.tab_overview": "Overview", "dashboard.chores_done": "{done} / {total} chores done", "dashboard.tab_points": "Points", "dashboard.tab_rotation": "Rotation", "graph.all_children": "All Children", "graph.card_description": "Line graph tracking daily or cumulative points over time", "graph.card_name": "TaskMate Points Graph", "graph.career_growth": "Career", "graph.daily": "Daily", "graph.default_title": "Points Graph", "graph.editor.child_filter_helper": "Show one child's line or all children together", "graph.editor.days_helper": "Number of days to display (3–90)", "graph.editor.days_to_show": "Days to show", "graph.graph_error": "Graph error: {message}", "graph.no_data_submessage": "Complete and approve chores to see the graph", "graph.no_data_yet": "No data yet", "graph.total": "Total", "leaderboard.best_streak": "Best streak", "leaderboard.best_streak_value": "{count} days", "leaderboard.card_description": "Multi-child competitive ranking by points, streak, or weekly activity", "leaderboard.card_name": "TaskMate Leaderboard", "leaderboard.career_label": "career", "leaderboard.career_score": "Career Score", "leaderboard.default_title": "Leaderboard", "leaderboard.editor.entity_helper": "The TaskMate overview sensor", "leaderboard.editor.entity_label": "Overview Entity", "leaderboard.editor.header_colour_helper": "Card header background colour", "leaderboard.editor.header_colour_label": "Header Colour", "leaderboard.editor.rank_by_helper": "What to rank children by", "leaderboard.editor.rank_by_label": "Rank by", "leaderboard.editor.show_career": "Show career score in sub-stats", "leaderboard.editor.show_streak": "Show streak in sub-stats", "leaderboard.editor.show_weekly": "Show weekly points in sub-stats", "leaderboard.editor.sort_option_career": "Career Score", "leaderboard.editor.sort_option_points": "All-time Points", "leaderboard.editor.sort_option_streak": "Current Streak", "leaderboard.editor.sort_option_weekly": "This Week's Points", "leaderboard.editor.title_label": "Card Title", "leaderboard.ordinal_4": "4th", "leaderboard.ordinal_5": "5th", "leaderboard.personal_bests": "Personal Bests", "leaderboard.points_this_week": "Points this week", "leaderboard.ranked_by": "Ranked by {period}", "leaderboard.sort_all_time_points": "All-time Points", "leaderboard.sort_career_score": "Career Score", "leaderboard.sort_current_streak": "Current Streak", "leaderboard.sort_this_week": "This Week", "leaderboard.tie": "TIE", "leaderboard.total_chores_completed": "Total chores completed", "leaderboard.total_points_earned": "Total points earned", "overview.card_description": "At-a-glance parent dashboard for all children", "overview.card_name": "TaskMate Overview", "overview.default_title": "TaskMate", "overview.designed.action_required": "ACTION REQUIRED ●", "overview.designed.approvals_waiting": "{count} approvals waiting", "overview.designed.daily_completion": "DAILY COMPLETION", "overview.designed.pending_review": "{count} PENDING REVIEW", "overview.designed.progress_detail": "{done} / {total} chores · {pct}%", "overview.designed.review": "Review", "overview.designed.sub_cleanpro": "Updated just now", "overview.designed.sub_console": "FAMILY · LIVE FEED", "overview.designed.sub_playroom": "Look how busy we are!", "overview.designed.tap_to_check": "Tap Approvals to check them off", "overview.designed.todays_progress": "Today's progress", "overview.designed.waiting_for_you": "{count} waiting for you", "overview.editor.approvals_entity_helper": "sensor.pending_approvals — for accurate pending count", "overview.editor.approvals_entity_label": "Approvals Entity (optional)", "overview.editor.entity_helper": "The TaskMate overview sensor entity", "overview.editor.entity_label": "Overview Entity", "overview.editor.header_colour_helper": "Card header background colour", "overview.editor.header_colour_label": "Header Colour", "overview.editor.title_label": "Title", "overview.footer_children": "Children", "overview.footer_done_today": "Done Today", "overview.footer_total_points": "Total {pointsName}", "overview.pending_count": "{count} pending", "panel.activity_approve": "Approve", "panel.activity_approve_all": "Approve all", "panel.activity_approve_all_confirm": "Approve {count} pending chores?", "panel.activity_approve_all_done": "Approved {count} chores", "panel.activity_audit_log": "Audit log", "panel.audit_action": "Action", "panel.audit_clear": "Clear log", "panel.audit_clear_confirm": "Clear the entire audit log? This cannot be undone.", "panel.audit_cleared": "Audit log cleared", "panel.audit_empty": "No admin actions recorded yet.", "panel.audit_hint": "Recent admin changes — who changed what, and when.", "panel.audit_target": "Target", "panel.audit_user": "User", "panel.audit_when": "When", "panel.activity_claimed_reward": "Claimed: {name}", "panel.activity_claimed_text": "{child} claimed reward {reward}", "panel.activity_completed_chore": "Completed: {name}", "panel.activity_completed_text": "{child} completed {chore}", "panel.activity_deleted_chore": "(deleted chore)", "panel.activity_deleted_reward": "(deleted reward)", "panel.activity_manual_addition": "Manual addition", "panel.activity_manual_deduction": "Manual deduction", "panel.activity_no_items": "No items waiting for review.", "panel.activity_no_points_transactions": "No points transactions yet.", "panel.activity_no_recent": "Nothing here yet — activity will appear as chores are completed and rewards claimed.", "panel.activity_pending_all_clear": "All clear", "panel.activity_pending_approvals": "Pending approvals", "panel.activity_points": "points", "panel.activity_recent": "Recent activity", "panel.activity_reject": "Reject", "panel.activity_table_child": "Child", "panel.activity_table_points": "Points", "panel.activity_table_reason": "Reason", "panel.activity_undo": "Undo", "panel.activity_undo_confirm": "Reverse this penalty/bonus? The points change will be undone.", "panel.activity_undone": "Transaction undone", "panel.activity_table_when": "When", "panel.activity_title": "Activity", "panel.activity_transaction_count": "{count} transaction", "panel.activity_transaction_count_plural": "{count} transactions", "panel.assign_alternating": "Alternating — rotate through children, one per day", "panel.assign_alternating_short": "Alternating", "panel.assign_balanced": "Balanced — split today's chores evenly across children", "panel.assign_balanced_short": "Balanced", "panel.assign_first_come": "First come — first child to finish wins; it hides for the rest", "panel.assign_first_come_short": "First come", "panel.assign_everyone": "Everyone — every assigned child sees the chore", "panel.assign_random": "Random — pick one assigned child each day", "panel.assign_random_short": "Random", "panel.assign_unassigned": "Unassigned — no child sees this chore", "panel.assign_unassigned_short": "Unassigned", "panel.backup_export": "Export backup", "panel.backup_exported": "Backup downloaded", "panel.backup_hint": "Download a full backup of your TaskMate setup, or restore from one. Restore replaces everything — reload the integration afterwards so per-child entities refresh.", "panel.backup_import": "Restore backup", "panel.backup_import_bad_file": "That file isn't a valid TaskMate backup.", "panel.backup_import_confirm": "Restore this backup? It REPLACES all current TaskMate data. This cannot be undone.", "panel.backup_imported": "Backup restored — reload the integration to refresh entities.", "panel.backup_title": "Backup & restore", "panel.badge_add_btn": "+ Add custom badge", "panel.badge_add_criterion_btn": "+ Add criterion", "panel.badge_combinator_all": "Require all (AND)", "panel.badge_combinator_any": "Require any (OR)", "panel.badge_combinator_label": "When the badge has several criteria:", "panel.badge_assigned_hint": "Leave all unselected for all children", "panel.badge_assigned_label": "Assigned to", "panel.badge_award_btn": "Award", "panel.badge_award_select_child": "— Select child —", "panel.badge_award_to_label": "Award to", "panel.badge_bonus_label": "Point Bonus", "panel.badge_builtin_hint": "Built-in — only point bonus, tier, assigned to, and notify can be changed", "panel.badge_builtin_pill": "Built-in", "panel.badge_cancel_btn": "Cancel", "panel.badge_confirm_delete": "Delete badge \"{name}\"? This cannot be undone.", "panel.badge_confirm_rebuild": "Run a silent retroactive badge sweep across all children? No notifications or point bonuses will be sent.", "panel.badge_confirm_revoke": "Revoke badge \"{name}\"? Any point bonus will be reversed.", "panel.badge_criteria_label": "Criteria — Award when ALL are true", "panel.badge_delete_btn": "Delete", "panel.badge_description_label": "Description", "panel.badge_dialog_add_title": "Add Custom Badge", "panel.badge_dialog_award_title": "Award \"{name}\"", "panel.badge_dialog_edit_title": "Edit Badge — {name}", "panel.badge_edit_btn": "Edit", "panel.badge_empty_catalogue": "No built-in badges found.", "panel.badge_empty_custom_desc": "Create your own badges with custom criteria or for manual awarding.", "panel.badge_empty_custom_title": "No custom badges yet", "panel.badge_empty_history": "No badges have been awarded yet.", "panel.badge_icon_label": "Icon", "panel.badge_name_label": "Name", "panel.badge_no_criteria_hint": "No criteria — this badge will be manual-award only.", "panel.badge_notify_label": "Notify on Earn", "panel.badge_notify_no": "No", "panel.badge_notify_yes": "Yes", "panel.badge_rebuild_btn": "Rebuild Badges", "panel.badge_rebuild_tooltip": "Re-evaluate all badges silently (no notifications)", "panel.badge_remove_criterion_btn": "Remove", "panel.badge_revoke_btn": "Revoke", "panel.badge_save_btn": "Save badge", "panel.badge_subtab_catalogue": "Catalogue ({count})", "panel.badge_subtab_custom": "Custom ({count})", "panel.badge_subtab_history": "History", "panel.badge_tab_title": "Badges", "panel.badge_table_badge": "Badge", "panel.badge_table_bonus": "Bonus", "panel.badge_table_child": "Child", "panel.badge_table_criteria": "Criteria", "panel.badge_table_enabled": "Enabled", "panel.badge_table_source": "Source", "panel.badge_table_tier": "Tier", "panel.badge_table_when": "When", "panel.badge_tier_label": "Tier", "panel.badge_toggle_disable": "Disable", "panel.badge_toggle_enable": "Enable", "panel.bonus_apply_text": "Choose which child to award this bonus to (will add {points} points).", "panel.bonus_empty_description": "Add a bonus to award points for going above and beyond.", "panel.bonus_empty_title": "No bonuses yet", "panel.bonus_points_label": "Points to award", "panel.bonus_title": "Bonuses", "panel.btn_activate_chore": "Activate chore", "panel.btn_add_bonus": "+ Add bonus", "panel.btn_add_bonus_subtask": "+ Add bonus sub-task", "panel.btn_add_child": "+ Add child", "panel.btn_add_chore": "+ Add chore", "panel.btn_add_chore_template": "+ Add chore", "panel.btn_add_group": "+ Add group", "panel.btn_add_penalty": "+ Add penalty", "panel.btn_add_reward": "+ Add reward", "panel.btn_apply": "Apply…", "panel.btn_back": "← Back", "panel.btn_bulk_add": "Bulk add", "panel.btn_cancel": "Cancel", "panel.btn_close": "Close", "panel.btn_create_chores": "Create chores", "panel.btn_create_template": "Create Template", "panel.btn_create_template_toolbar": "+ Create template", "panel.btn_deactivate_chore": "Deactivate chore", "panel.btn_delete": "Delete", "panel.btn_edit": "Edit", "panel.btn_clone_chore": "Duplicate", "panel.btn_from_template": "Create from template", "panel.btn_reorder_chores": "Reorder", "panel.btn_retry": "Retry", "panel.btn_review": "Review", "panel.btn_save": "Save", "panel.btn_save_as_template": "Save as template", "panel.btn_save_changes": "Save Changes", "panel.btn_save_order": "Save order", "panel.btn_save_settings": "Save settings", "panel.btn_save_template": "Save template", "panel.btn_skip_chore": "Skip rotation (advance to next child)", "panel.bulk_assigned_to": "Assigned to", "panel.bulk_chore_names_hint": "All chores will share the settings below.", "panel.bulk_chore_names_label": "Chore names (one per line, or comma-separated)", "panel.bulk_chore_names_placeholder": "Make bed\nEmpty dishwasher\nFeed dog", "panel.bulk_days_label": "Days of week (empty = every day)", "panel.bulk_leave_empty_hint": "Leave empty to assign to all children.", "panel.bulk_points_label": "Points (each)", "panel.bulk_title": "Bulk add chores", "panel.child_add_tile": "Add child", "panel.child_availability_hint": "States on, home, available, present, true mean available. Leave blank to treat as always available.", "panel.child_availability_label": "Availability sensor (optional)", "panel.child_avatar_label": "Avatar", "panel.child_busy_label": "Busy:", "panel.child_invert_hint": "Turn on for calendar or schedule sensors where an active state means the child is busy.", "panel.child_invert_label": "Invert logic (ON = unavailable)", "panel.child_inverted": "(inverted)", "panel.child_link_user_label": "Link to Home Assistant user (optional)", "panel.child_link_user_hint": "When set, only this Home Assistant user (or an admin) can complete chores, claim rewards, or run timers as this child via service calls. Leave as \"Anyone\" for a shared family tablet.", "panel.child_link_user_none": "Anyone (shared / kiosk)", "panel.child_name_label": "Name", "panel.child_name_placeholder": "e.g. Malia", "panel.child_no_availability": "No availability sensor", "panel.child_stat_done": "Done", "panel.child_stat_earned": "Earned", "panel.child_title": "Children", "panel.child_unavailability_hint": "A second sensor where on/active means the child is busy. Useful for school calendars. The child is available only when the availability sensor says available AND this sensor does not say busy.", "panel.child_unavailability_label": "Unavailability sensor (optional)", "panel.child_pause_streak_label": "Pause streak while away", "panel.child_pause_streak_hint": "When this child's availability or unavailability sensor (which can be a calendar.* entity) reports them away, freeze their streak and hide their chores until they're back.", "panel.child_unnamed": "(unnamed)", "panel.chore_advanced_bonus_subtasks": "Bonus sub-tasks (optional)", "panel.chore_advanced_bonus_subtasks_hint": "Optional extra-credit tasks that unlock after the main chore is completed.", "panel.chore_advanced_visibility": "Advanced — visibility & calendar publishing", "panel.chore_approval_label": "Requires parent approval", "panel.chore_assign_hint": "Leave empty to assign to all children.", "panel.chore_assign_label": "Assigned to", "panel.chore_assign_no_children": "Add some children first to assign chores to them.", "panel.chore_assignment_mode_hint": "Everyone = all assigned children see it. Alternating = rotate one per day. Random = pick one daily. Balanced = split evenly across the day.", "panel.chore_assignment_mode_label": "Assignment mode", "panel.chore_calendar_hint": "Today's assignment will be added as a calendar event on each selected calendar.", "panel.chore_calendar_label": "Publish to calendars (optional)", "panel.chore_calendar_no_entities": "No calendar entities found in Home Assistant. Set one up first.", "panel.chore_claim_allowance_hint": "Extra minutes after the time-of-day window ends during which the chore stays claimable. 0 = no grace. Night chores still cap at midnight.", "panel.chore_claim_allowance_label": "Claim allowance (minutes)", "panel.chore_completion_sound_label": "Completion sound", "panel.chore_difficulty_label": "Difficulty", "panel.difficulty_easy": "Easy", "panel.difficulty_hard": "Hard", "panel.difficulty_medium": "Medium", "panel.chore_daily_cap_label": "Daily cap (minutes, 0 = unlimited)", "panel.chore_daily_limit_label": "Daily limit", "panel.chore_days_label": "Days of week (leave empty = every day)", "panel.chore_description_label": "Description (optional)", "panel.chore_enabled_label": "Enabled", "panel.chore_first_occurrence_label": "First occurrence", "panel.chore_group_hint": "Member of task group: {name} ({policy}). Manage membership on the Groups tab.", "panel.chore_name_label": "Name", "panel.chore_order_title": "Chore Order", "panel.chore_points_label": "Points", "panel.chore_points_per_window_label": "Points per window", "panel.chore_recurrence_day_hint": "e.g. monday — leave blank for any day", "panel.chore_recurrence_day_label": "Day of week (weekly only)", "panel.chore_recurrence_label": "Recurrence", "panel.chore_recurrence_start_hint": "Anchor date — blank = today", "panel.chore_recurrence_start_label": "Start date (every-2-days only)", "panel.chore_require_availability": "Skip unavailable children", "panel.chore_require_availability_hint": "Uses each child's availability sensor (set on their profile).", "panel.chore_mandatory_label": "Mandatory chore", "panel.chore_mandatory_hint": "If not done before its time period ends, the parent reviews it (apply penalty, postpone, or dismiss).", "panel.chore_mandatory_penalty_label": "Penalty points if missed", "panel.chore_mandatory_penalty_hint": "Points the parent can deduct if the chore is missed. 0 = no penalty option.", "panel.chore_rotation_hint": "Alternating mode: permanently reorders the pool. Random/Balanced: only overrides today; tomorrow resumes normally.", "panel.chore_rotation_label": "Start rotation with (optional)", "panel.chore_rotation_no_override": "(no override)", "panel.chore_schedule_mode_label": "Schedule mode", "panel.chore_subtask_name_placeholder": "Sub-task name", "panel.chore_subtask_points_placeholder": "Pts", "panel.chore_table_approval": "Approval", "panel.chore_table_assigned": "Assigned", "panel.chore_table_current": "Current", "panel.chore_table_name": "Name", "panel.chore_table_period": "Period", "panel.chore_table_points": "Points", "panel.chore_table_schedule": "Schedule", "panel.chore_task_type_label": "Task type", "panel.chore_task_type_standard": "Standard — fixed points on completion", "panel.chore_task_type_timed": "Timed — points per minute", "panel.chore_time_category_label": "Time category", "panel.chore_tip_rename": "Tip: double-click a chore name to rename it inline.", "panel.chore_title": "Chores", "panel.chore_vis_entity_hint": "Chore only shows when its state matches the rule below. Leave blank for always-show.", "panel.chore_vis_entity_label": "Visibility entity (optional)", "panel.chore_vis_operator_label": "Visibility operator", "panel.chore_vis_value_hint": "e.g. \"on\", \"home\", \"30\"", "panel.chore_vis_value_label": "Visibility value", "panel.chore_window_minutes_label": "Window (minutes)", "panel.common_all_children": "All children", "panel.common_daily": "Daily", "panel.common_disabled": "disabled", "panel.common_name": "Name", "panel.common_no": "No", "panel.common_one_shot": "One-shot", "panel.common_points": "Points", "panel.common_yes": "Yes", "panel.confirm_delete_bonus_extra": "", "panel.confirm_delete_child_extra": "This also removes all of their completion history, reward claims, points transactions, and pool allocations. Chores assigned to them will be updated.", "panel.confirm_delete_chore_extra": "This also removes the chore from any task groups it belonged to.", "panel.confirm_delete_prompt": "Delete {kind} \"{name}\"?", "panel.confirm_delete_reward_extra": "Any points children have pooled for this reward will be refunded to their balance.", "panel.confirm_delete_suffix": "This cannot be undone.", "panel.confirm_delete_template": "Delete template \"{name}\"? This cannot be undone.", "panel.confirm_unsaved": "You have unsaved changes — discard them?", "panel.day_fri": "Fri", "panel.day_mon": "Mon", "panel.day_sat": "Sat", "panel.day_sun": "Sun", "panel.day_thu": "Thu", "panel.day_tue": "Tue", "panel.day_wed": "Wed", "panel.dialog_add_bonus": "Add bonus", "panel.dialog_add_child": "Add child", "panel.dialog_add_chore": "Add chore", "panel.dialog_add_group": "Add task group", "panel.dialog_add_penalty": "Add penalty", "panel.dialog_add_reward": "Add reward", "panel.dialog_apply_bonus": "Apply bonus: {name}", "panel.dialog_apply_penalty": "Apply penalty: {name}", "panel.dialog_edit_bonus": "Edit bonus", "panel.dialog_edit_child": "Edit child", "panel.dialog_edit_chore": "Edit chore", "panel.dialog_edit_group": "Edit task group", "panel.dialog_edit_penalty": "Edit penalty", "panel.dialog_edit_reward": "Edit reward", "panel.empty_children_copy": "Add your first child to get started.", "panel.empty_children_title": "No children yet", "panel.empty_chores_copy": "Add a chore — it'll show on the assigned children's cards.", "panel.empty_chores_title": "No chores yet", "panel.empty_groups_copy": "Create a group to make chores rotate together (e.g. all kitchen chores stay with one child each day).", "panel.empty_groups_title": "No task groups yet", "panel.empty_no_match": "No {kind} match \"{filter}\".", "panel.empty_rewards_copy": "Add a reward children can spend their {points_name} on.", "panel.empty_rewards_title": "No rewards yet", "panel.empty_template_all_removed": "All chores removed — go back and pick a different template.", "panel.entity_bonus": "Bonus", "panel.entity_child": "Child", "panel.entity_chore": "Chore", "panel.entity_group": "Group", "panel.entity_penalty": "Penalty", "panel.entity_reward": "Reward", "panel.entity_search_placeholder": "Search | Add custom item", "panel.error_failed_to_load": "Failed to load state", "panel.error_no_state": "No state yet.", "panel.first_occ_available_immediately": "Available immediately", "panel.first_occ_wait": "Wait for first scheduled occurrence", "panel.group_add_tile": "Add group", "panel.group_chore_count": "{count} chore(s)", "panel.group_chores_label": "Member chores (order matters for sticky — first is the leader)", "panel.group_missing_chore": "(missing chore {id})", "panel.group_no_rotation_chores": "Only rotation-mode chores (alternating / random / balanced) can join a group. Edit a chore's assignment mode first.", "panel.group_policy_hint": "Sticky = same child for all chores in the group today. Spread = different children today.", "panel.group_policy_label": "Policy", "panel.group_policy_spread": "Spread — different children across the group today", "panel.group_policy_spread_short": "Spread", "panel.group_policy_sticky": "Sticky — same child for all chores in the group today", "panel.group_policy_sticky_short": "Sticky", "panel.group_title": "Task groups", "panel.loading": "Loading…", "panel.nav_manage": "Manage", "panel.nav_system": "System", "panel.nav_today": "Today", "panel.parent_complete_confirm": "Mark this chore as completed by parent? No points will be awarded.", "panel.parent_complete_failed": "Failed: {error}", "panel.parent_complete_success": "Marked as parent completed", "panel.parent_complete_tooltip": "Parent did it (no points)", "panel.penalty_apply_text": "Choose which child to apply this penalty to (will deduct {points} points).", "panel.penalty_empty_description": "Add a penalty to deduct points for misbehaviour.", "panel.penalty_empty_title": "No penalties yet", "panel.penalty_points_label": "Points to deduct", "panel.penalty_title": "Penalties", "panel.penbon_applies_to": "Applies to", "panel.penbon_applies_to_hint": "Leave empty to apply to all children.", "panel.penbon_description_label": "Description (optional)", "panel.penbon_icon_label": "Icon", "panel.penbon_name_label": "Name", "panel.penbon_no_eligible": "No eligible children. Edit the {kind} to set who it applies to.", "panel.penbon_points_award": "Points to award", "panel.penbon_points_deduct": "Points to deduct", "panel.penbon_table_assigned": "Assigned", "panel.penbon_table_name": "Name", "panel.penbon_table_points": "Points", "panel.pending_tooltip": "{count} pending — click to review", "panel.pts_display": "{count} pts", "panel.recurrence_every_2_days": "Every 2 days", "panel.recurrence_every_2_weeks": "Every 2 weeks", "panel.recurrence_every_3_months": "Every 3 months", "panel.recurrence_every_6_months": "Every 6 months", "panel.recurrence_monthly": "Monthly", "panel.recurrence_weekly": "Weekly", "panel.reorder_global_hint": "Drag rows to reorder how chores appear in the admin panel. Save to apply.", "panel.reorder_global_title": "Reorder chores", "panel.reorder_hint": "Drag rows to reorder how chores appear on this child's card. Save to apply.", "panel.reorder_title": "Reorder chores · {name}", "panel.reward_add_tile": "Add reward", "panel.reward_assigned_hint": "Leave empty to make available to all children.", "panel.reward_assigned_label": "Assigned to", "panel.reward_badge_jackpot": "Jackpot", "panel.reward_badge_pool": "Pool", "panel.reward_cost_label": "Cost ({points_name})", "panel.reward_description_label": "Description (optional)", "panel.reward_expires_hint": "Pooled points are refunded at midnight.", "panel.reward_expires_label": "Expires (blank = never)", "panel.reward_icon_label": "Icon", "panel.reward_is_jackpot_hint": "Combine all children's contributions toward one shared reward.", "panel.reward_is_jackpot_label": "Jackpot — pool from all assigned children", "panel.reward_name_label": "Name", "panel.reward_pool_hint": "Children deposit points into this reward's dedicated pool rather than spending from their balance.", "panel.reward_pool_label": "Pool reward (savings jar)", "panel.reward_quantity_hint": "Each approved claim reduces by 1.", "panel.reward_quantity_label": "Limited quantity (blank = unlimited)", "panel.reward_stat_cost": "{points_name} cost", "panel.reward_stat_expires": "Expires", "panel.reward_stat_remaining": "Remaining", "panel.reward_stat_unlimited": "Unlimited", "panel.reward_title": "Rewards", "panel.row_menu_more": "More actions", "panel.schedule_one_shot": "One-time task", "panel.schedule_recurring": "Recurring (every N days/weeks/months)", "panel.schedule_specific_days": "Specific days of the week", "panel.search_bonuses": "Search bonuses…", "panel.search_children": "Search children…", "panel.search_chores": "Filter chores…", "panel.search_groups": "Search groups…", "panel.search_penalties": "Search penalties…", "panel.search_rewards": "Search rewards…", "panel.settings_afternoon_hint": "Default 12:00 – 17:00", "panel.settings_afternoon_label": "Afternoon", "panel.settings_bonuses_title": "Bonuses", "panel.settings_calendar_projection_hint": "Days ahead each chore publishes to calendars", "panel.settings_calendar_projection_label": "Calendar projection", "panel.settings_chore_rotation_title": "Chore Rotation", "panel.settings_currency_hint": "How points are named and shown across the app.", "panel.settings_currency_title": "Currency", "panel.settings_parents_title": "Parents (no admin rights)", "panel.settings_parents_hint": "Give a non-admin household member day-to-day control — approve chores, adjust points, confirm rewards — without Home Assistant admin rights. They still can't open this admin panel or change configuration.", "panel.settings_parents_empty": "No non-admin Home Assistant users found. Create a standard HA user first, then tick them here.", "panel.settings_evening_hint": "Default 17:00 – 21:00", "panel.settings_evening_label": "Evening", "panel.settings_history_title": "History & streaks", "panel.settings_morning_hint": "Default 06:00 – 12:00", "panel.settings_morning_label": "Morning", "panel.settings_night_hint": "Default 21:00 – 23:59", "panel.settings_night_label": "Night", "panel.settings_notifications_title": "Notifications", "panel.settings_notify_hint": "Used for parent approval pings", "panel.settings_notify_label": "Notify service", "panel.settings_notify_none": "(none — use HA persistent notifications)", "panel.settings_perfect_week_bonus_hint": "How many points to award", "panel.settings_perfect_week_bonus_label": "Perfect-week bonus points", "panel.settings_perfect_week_all_chores_hint": "A day counts only when every chore due that day is done", "panel.settings_perfect_week_all_chores_label": "Perfect week needs all tasks", "panel.settings_perfect_week_hint": "Bonus for completing every day of a week", "panel.settings_perfect_week_label": "Perfect-week bonus", "panel.settings_points_default": "Stars", "panel.settings_points_icon_hint": "Pick any MDI icon", "panel.settings_points_icon_label": "Points icon", "panel.settings_points_name_hint": "What you call them, e.g. Stars or Coins", "panel.settings_points_name_label": "Points name", "panel.settings_retention_hint": "How many days of completion history to keep", "panel.settings_retention_label": "Retention", "panel.settings_show_ids_hint": "Display internal IDs for use in automations and service calls", "panel.settings_show_ids_label": "Show IDs", "panel.settings_skip_confirm_hint": "Show a confirmation popup before skipping a chore rotation", "panel.settings_skip_confirm_label": "Confirm before skipping", "panel.settings_streak_all_chores_hint": "Only extend a streak once every chore due that day is done", "panel.settings_streak_all_chores_label": "Streak needs all tasks", "panel.settings_streak_milestones_hint": "Bonus at 3, 7, 14, 30, 60, 100 days", "panel.settings_streak_milestones_label": "Streak milestones", "panel.settings_streak_reset_hint": "What happens when a day is missed", "panel.settings_streak_reset_label": "Streak reset", "panel.settings_time_boundaries_hint": "When each time period starts and ends (HH:MM, 24-hour). Add your own periods; gaps between periods fall back to Anytime.", "panel.settings_time_boundaries_title": "Time-of-day boundaries", "panel.settings_title": "Settings", "panel.settings_weekend_multiplier_hint": "Bonus on Sat/Sun (1.0 = off)", "panel.settings_difficulty_multipliers_hint": "Points multiplier per tier. Medium is the baseline (×1.0); easy/hard scale a chore's award.", "panel.settings_difficulty_multipliers_label": "Difficulty multipliers", "panel.settings_vacation_hint": "Pause all chores and freeze streaks during these date ranges (e.g. holidays).", "panel.vacation_calendar_label": "Family vacation calendar (optional)", "panel.vacation_calendar_hint": "When this calendar has an active event, every child is treated as away — streaks freeze and chores hide. Per-child sensors can add individual away periods on top.", "panel.settings_vacation_title": "Vacation / pause mode", "panel.vacation_add": "Add vacation", "panel.vacation_dates_required": "Each vacation needs a start and end date.", "panel.vacation_delete_title": "Remove vacation", "panel.vacation_name_placeholder": "e.g. Summer holidays", "panel.vacation_none": "No vacations set — chores run every day.", "panel.settings_weekend_multiplier_label": "Weekend multiplier", "panel.skip_chore_confirm": "Skip this chore's current assignee and advance the rotation?", "panel.streak_pause": "Pause — streak preserved until next completion", "panel.streak_reset": "Reset — streak goes to 0 on missed day", "panel.tab_activity": "Activity", "panel.tab_audit": "Audit", "panel.tab_badges": "Badges", "panel.tab_bonuses": "Bonuses", "panel.tab_children": "Children", "panel.tab_chores": "Chores", "panel.tab_groups": "Groups", "panel.tab_notifications": "Notifications", "panel.tab_penalties": "Penalties", "panel.tab_rewards": "Rewards", "panel.tab_settings": "Settings", "panel.tab_templates": "Templates", "panel.tab_unknown": "Unknown tab", "panel.wiki_tooltip": "Open the TaskMate wiki", "panel.notif_add_custom": "Add custom notification", "panel.notif_add_parent": "Add parent", "panel.notif_custom_empty": "No custom notifications yet.", "panel.notif_custom_message_placeholder": "Message (you can use {child_name})", "panel.notif_custom_name_placeholder": "Reminder name", "panel.notif_day_fri": "Fri", "panel.notif_day_mon": "Mon", "panel.notif_day_sat": "Sat", "panel.notif_day_sun": "Sun", "panel.notif_day_thu": "Thu", "panel.notif_day_tue": "Tue", "panel.notif_day_wed": "Wed", "panel.notif_default_custom_message": "Reminder for {child_name}", "panel.notif_default_custom_name": "New reminder", "panel.notif_default_parent_name": "Parent", "panel.notif_loading": "Loading notifications…", "panel.notif_matrix_col_notification": "Notification", "panel.notif_none": "None", "panel.notif_power_user_note_body": "TaskMate fires taskmate_chore_completed, taskmate_streak_updated, taskmate_badge_earned, taskmate_reward_claimed and other events on the HA event bus. Use Node-RED or HA automations to react to them.", "panel.notif_power_user_note_title": "Power-user note", "panel.notif_recipients_children": "Children", "panel.notif_recipients_parents": "Parents", "panel.notif_remove_parent": "Remove", "panel.notif_section_custom": "Custom scheduled notifications", "panel.notif_unnamed_recipient": "(unnamed)", "panel.notif_section_custom_desc": "Add your own timed reminders. For event-driven notifications, listen to the taskmate_* events on the Home Assistant bus.", "panel.notif_section_matrix": "Built-in notifications", "panel.notif_section_matrix_desc": "Toggle per recipient. The switch on the left disables the whole row globally. Cells marked — aren't valid for that recipient.", "panel.notif_section_recipients": "Recipients", "panel.notif_section_recipients_desc": "Map each child and parent to a Home Assistant notify service. Leave blank to skip notifications for that person.", "panel.notif_streak_cutoff_label": "Cutoff", "panel.notif_send_test": "Send test", "panel.notif_test_sent": "Test sent to {count} recipient(s) + persistent notification", "panel.notif_tab_title": "Notifications", "panel.template_assignment_mode_label": "Assignment mode", "panel.template_builtin": "Built-in", "panel.template_builtin_packs": "Built-in packs", "panel.template_builtin_template_packs": "Built-in template packs", "panel.template_builtin_templates": "Built-in templates", "panel.template_chores_in_template": "Chores in this template", "panel.template_confirm_bar": "{count} chore(s) will be created · {points} pts total", "panel.template_create_btn": "Create {count} chore(s)", "panel.template_create_title": "Create Template", "panel.template_custom": "Custom", "panel.template_custom_packs": "Custom packs", "panel.template_custom_templates": "Custom templates", "panel.template_daily_limit_label": "Daily limit", "panel.template_edit_title": "Edit Template", "panel.template_icon_label": "Icon (MDI)", "panel.template_name_label": "Name", "panel.template_picker_title": "Add from Template", "panel.template_preview_hint": "Review and customise each chore before creating. Expand to edit all fields, or remove with ✕.", "panel.template_pts_total": "{count} chore(s) · {points} pts total", "panel.template_requires_approval_label": "Requires approval", "panel.template_requires_approval_no": "No", "panel.template_requires_approval_yes": "Yes", "panel.template_save_icon_label": "Icon (MDI)", "panel.template_save_name_label": "Template name", "panel.template_save_name_placeholder": "e.g. My morning pack", "panel.template_save_select_chores": "Select chores to include", "panel.template_save_title": "Save as Template", "panel.template_schedule_days_label": "Schedule (days)", "panel.template_schedule_label": "Schedule", "panel.template_title": "Templates", "panel.template_unnamed": "(unnamed)", "panel.time_afternoon": "Afternoon", "panel.time_ago_days": "{count}d ago", "panel.time_ago_hours": "{count}h ago", "panel.time_ago_just_now": "just now", "panel.time_ago_minutes": "{count}m ago", "panel.time_anytime": "Anytime", "panel.time_evening": "Evening", "panel.time_morning": "Morning", "panel.time_night": "Night", "panel.toast_added_bonus": "Added bonus", "panel.toast_added_penalty": "Added penalty", "panel.toast_apply_failed": "Apply failed: {error}", "panel.toast_approve_failed": "Approve failed: {error}", "panel.toast_approved": "Approved", "panel.toast_badge_added": "Badge added", "panel.toast_badge_award_failed": "Award failed: {error}", "panel.toast_badge_awarded": "Badge awarded", "panel.toast_badge_criterion_invalid": "Criterion value must be ≥ 1", "panel.toast_badge_delete_failed": "Delete failed: {error}", "panel.toast_badge_deleted": "Badge deleted", "panel.toast_badge_name_required": "Name is required", "panel.toast_badge_rebuild_failed": "Rebuild failed: {error}", "panel.toast_badge_rebuilt": "Badges rebuilt", "panel.toast_badge_revoke_failed": "Revoke failed: {error}", "panel.toast_badge_revoked": "Badge revoked", "panel.toast_badge_save_failed": "Save failed: {error}", "panel.toast_badge_select_child": "Select a child", "panel.toast_badge_update_failed": "Update failed: {error}", "panel.toast_badge_updated": "Badge updated", "panel.toast_bonus_applied": "Bonus applied", "panel.toast_bulk_add_failed": "Bulk add failed: {error}", "panel.toast_bulk_added": "Added {count} chore(s)", "panel.toast_child_added": "Child added", "panel.toast_child_updated": "Child updated", "panel.toast_chore_activated": "Chore activated", "panel.toast_chore_added": "Chore added", "panel.toast_chore_cloned": "Chore duplicated", "panel.toast_chore_deactivated": "Chore deactivated", "panel.toast_chore_updated": "Chore updated", "panel.toast_copied": "Copied!", "panel.toast_created_chores": "Created {count} chore(s)", "panel.toast_delete_failed": "Delete failed: {error}", "panel.toast_deleted": "Deleted", "panel.toast_enter_chore_name": "Enter at least one chore name", "panel.toast_group_added": "Group added", "panel.toast_group_updated": "Group updated", "panel.toast_name_and_chore_required": "Name and at least one chore required", "panel.toast_name_enter_select": "Enter a name and select at least one chore", "panel.toast_name_required": "Name is required", "panel.toast_name_required_template": "Name required", "panel.toast_order_saved": "Order saved", "panel.toast_penalty_applied": "Penalty applied", "panel.toast_points_required": "Points must be 1 or higher", "panel.toast_reject_failed": "Reject failed: {error}", "panel.toast_rejected": "Rejected", "panel.toast_rename_failed": "Rename failed: {error}", "panel.toast_renamed": "Renamed", "panel.toast_reward_added": "Reward added", "panel.toast_reward_updated": "Reward updated", "panel.toast_save_failed": "Save failed: {error}", "panel.toast_settings_saved": "Saved ({count} field(s))", "panel.toast_skip_done": "Rotation skipped — next child assigned", "panel.toast_skip_failed": "Skip failed: {error}", "panel.toast_template_created": "Template \"{name}\" created", "panel.toast_template_deleted": "Template deleted", "panel.toast_template_failed_apply": "Failed to apply template", "panel.toast_template_failed_create": "Failed to create template", "panel.toast_template_failed_delete": "Failed to delete", "panel.toast_template_failed_save": "Failed to save template", "panel.toast_template_failed_update": "Failed to update", "panel.toast_template_saved": "Template \"{name}\" saved", "panel.toast_template_updated": "Template updated", "panel.toast_toggle_failed": "Toggle failed: {error}", "panel.toast_updated_bonus": "Updated bonus", "panel.toast_updated_penalty": "Updated penalty", "panel.tooltip_cancel": "Cancel", "panel.tooltip_clear": "Clear", "panel.tooltip_close": "Close", "panel.tooltip_remove": "Remove", "panel.tooltip_remove_batch": "Remove from batch", "panel.tooltip_rename": "Double-click to rename", "panel.tooltip_save": "Save", "panel.topbar_awaiting_approval": "Awaiting your approval — {details}", "panel.topbar_chore_count": "{count} chore(s)", "panel.topbar_pending": "{count} pending", "panel.topbar_pending_title": "{count} pending — click to review", "panel.topbar_reward_count": "{count} reward claim(s)", "panel.topbar_swap_count": "{count} swap request(s)", "panel.vis_equals": "Equals — state matches exactly", "panel.vis_gt": "Greater than (>)", "panel.vis_gte": "Greater than or equal (≥)", "panel.vis_lt": "Less than (<)", "panel.vis_lte": "Less than or equal (≤)", "panel.vis_none": "No filter — always show chore", "panel.vis_not_equals": "Not equal", "penalties.add_penalty": "Add Penalty", "penalties.applying_to": "Applying to {childName} — current balance: {points} {pointsName}", "penalties.btn_delete_title": "Delete", "penalties.btn_edit_title": "Edit", "penalties.card_description": "Apply point-deduction penalties to children", "penalties.card_name": "TaskMate Penalties", "penalties.default_title": "Penalties", "penalties.editor.manage_note": "Add, edit, and delete penalty templates directly on the card itself — tap the pencil icon in the card header. This editor only controls the card's appearance.", "penalties.empty_sub": "Tap the pencil icon to add penalties", "penalties.empty_title": "No penalties yet", "penalties.form_description_label": "Description (optional)", "penalties.form_description_placeholder": "Short description", "penalties.form_icon_label": "Icon (MDI)", "penalties.form_name_label": "Name", "penalties.form_name_placeholder": "e.g. Not going to bed", "penalties.form_points_label": "Points", "penalties.manage_title": "Manage penalties", "penalties.new_penalty": "New Penalty", "penalties.toast_add_failed": "Failed to add penalty", "penalties.toast_applied": "-{points} {pointsName} from {childName}", "penalties.toast_apply_failed": "Failed to apply penalty", "penalties.toast_delete_failed": "Failed to delete penalty", "penalties.toast_save_failed": "Failed to save changes", "points_card.card_description": "A parent-friendly card to add or remove points from children", "points_card.card_name": "TaskMate Points Card", "points_card.default_title": "Manage Points", "points_card.dialog_add_title": "Add {pointsName}", "points_card.dialog_confirm_add": "Add", "points_card.dialog_confirm_remove": "Remove", "points_card.dialog_loading": "...", "points_card.dialog_points_helper": "Enter 1–100", "points_card.dialog_points_label": "Number of {pointsName}", "points_card.dialog_reason_label": "Reason (optional)", "points_card.dialog_reason_placeholder": "e.g., Great behavior, Helped a sibling...", "points_card.dialog_remove_title": "Remove {pointsName}", "points_card.dialog_subtitle": "for {childName}", "points_card.editor.add_buttons_helper": "Comma-separated amounts e.g. 1, 2, 5, 10, 25", "points_card.editor.add_buttons_label": "Add Points Buttons", "points_card.editor.entity_helper": "The TaskMate overview sensor entity", "points_card.editor.entity_label": "Entity", "points_card.editor.header_colour_helper": "Card header background colour", "points_card.editor.header_colour_label": "Header Colour", "points_card.editor.remove_buttons_helper": "Comma-separated amounts e.g. 1, 2, 5, 10, 25", "points_card.editor.remove_buttons_label": "Remove Points Buttons", "points_card.editor.show_dialog_label": "Show ⋯ button for custom amount with reason", "points_card.editor.title_label": "Title", "points_card.empty_subtitle": "Add children in TaskMate settings", "points_card.empty_title": "No Children Found", "points_card.notification_added": "Added {points} {pointsLabel} to {childName}", "points_card.notification_failed": "Failed: {message}", "points_card.notification_failed_action": "Failed to {action} points: {message}", "points_card.notification_quick": "{sign}{amount} {pointsName} for {childName}", "points_card.notification_removed": "Removed {points} {pointsLabel} from {childName}", "points_card.please_define_entity": "Please define an entity (taskmate overview sensor)", "points_card.quick_add_title": "Add {amount} {pointsName}", "points_card.quick_custom_title": "Custom amount", "points_card.quick_label_add": "+ {pointsName}", "points_card.quick_label_remove": "− {pointsName}", "points_card.quick_remove_title": "Remove {amount} {pointsName}", "points_card.validation_range": "Please enter a number between 1 and 100", "points_display.board_title": "Points Board", "points_display.card_description": "Kid-friendly display of points. Supports single child, all children, or combined family total.", "points_display.card_name": "TaskMate Points Display", "points_display.career_score_label": "Career Score", "points_display.combined_family_total": "Combined Family Total", "points_display.current_points_label": "Current Points", "points_display.default_title": "Points", "points_display.editor.appearance": "Appearance", "points_display.editor.child_id_note": "Save the entity first so children load automatically.", "points_display.editor.child_id_placeholder": "Enter child_id", "points_display.editor.child_label": "Child", "points_display.editor.display_mode": "Display Mode", "points_display.editor.entity_label": "TaskMate Entity", "points_display.editor.mode_cumulative": "∑ Combined", "points_display.editor.mode_label": "Mode", "points_display.editor.mode_multi": "👥 All Children", "points_display.editor.mode_single": "⭐ Single", "points_display.editor.primary_career_score": "🏆 Career Score", "points_display.editor.primary_current_points": "💰 Current Points", "points_display.editor.primary_display": "Primary Display", "points_display.editor.select_child": "— Select a child —", "points_display.editor.show_rank": "Rank medals", "points_display.editor.show_streak": "Streak", "points_display.editor.show_weekly": "This week's points", "points_display.editor.stats_to_show": "Stats to Show", "points_display.editor.title_placeholder": "(auto)", "points_display.empty_no_child": "No child selected or child not found.", "points_display.empty_no_children": "No children found in TaskMate data.", "points_display.empty_set_child_id": "Set child_id in the card editor.", "points_display.family_subtitle": "{count} children · all time", "points_display.family_title": "Family Points", "points_display.individual_scores": "Individual Scores", "points_display.mode_cumulative": "Combined", "points_display.mode_multi": "All Children", "points_display.mode_single": "Single", "points_display.points_label": "points", "points_display.rank": "Rank", "points_display.single_title": "{name}'s Points", "points_display.streak": "Streak", "points_display.streak_day": "{count} day", "points_display.streak_days": "{count} days", "points_display.this_week": "This Week", "points_display.total_points": "Total Points", "points_display.weekly_plus": "+{count} this week", "points_display.weekly_pts": "{count} pts", "reorder.add_chores_first": "Add chores to this child first", "reorder.card_description": "A card for reordering chores per child, organized by time category", "reorder.card_name": "TaskMate Reorder Card", "reorder.child_not_found": "Child not found: {child_id}", "reorder.chore_count": "{count} chore", "reorder.chore_count_plural": "{count} chores", "reorder.default_title": "Reorder Chores", "reorder.drag_to_reorder": "Drag to reorder", "reorder.editor.child": "Child", "reorder.editor.child_helper": "Which child to manage chore order for", "reorder.editor.select_child": "Select a child...", "reorder.error.child_id_required": "Please define a child_id", "reorder.error.entity_required": "Please define an entity (TaskMate overview sensor)", "reorder.move_down": "Move down", "reorder.move_up": "Move up", "reorder.no_chores_assigned": "No chores assigned", "reorder.notification.save_error_message": "Failed to save chore order: {error}", "reorder.notification.save_error_title": "Error Saving Order", "reorder.notification.save_success_message": "The chore order has been updated successfully.", "reorder.notification.save_success_title": "Chore Order Saved", "reorder.save_order": "Save Order", "reorder.saving": "Saving...", "reorder.unsaved_changes": "You have unsaved changes", "reward_progress.card_description": "Full-screen motivational reward progress display", "reward_progress.card_name": "TaskMate Reward Progress", "reward_progress.combined": "combined", "reward_progress.combined_points_pool": "Combined Points Pool", "reward_progress.default_title": "Reward Goal", "reward_progress.editor.child_filter_all": "All assigned children", "reward_progress.editor.child_helper": "Show only this child's progress", "reward_progress.editor.first_available": "First available reward", "reward_progress.editor.reward_helper": "Which reward to show progress for", "reward_progress.editor.reward_to_display": "Reward to display", "reward_progress.error.entity_required": "Please define an entity", "reward_progress.jackpot_reward": "Jackpot Reward", "reward_progress.more_needed": "{amount} more needed", "reward_progress.no_rewards": "No rewards found", "reward_progress.ready": "🎉 Ready!", "reward_progress.ready_to_claim": "Ready to claim!", "reward_progress.ready_to_claim_emoji": "🎉 Ready to claim!", "reward_progress.total_pool": "Total Pool", "reward_progress.unavailable": "TaskMate unavailable", "rewards.add_all": "All", "rewards.all_children": "All Children", "rewards.allocated": "Allocated", "rewards.awaiting_approval": "Awaiting parent approval", "rewards.card_description": "A card displaying available rewards with star costs", "rewards.card_name": "TaskMate Rewards Card", "rewards.claim_reward": "Claim reward", "rewards.confirm_body": "Claim {name}?", "rewards.confirm_claim_btn": "Claim!", "rewards.confirm_cost": "Cost", "rewards.confirm_pool_total": "Pool total", "rewards.confirm_remaining": "Remaining", "rewards.confirm_title": "Claim Reward?", "rewards.confirm_your_points": "Your {name}", "rewards.default_title": "Rewards", "rewards.deposit_custom_add": "Add", "rewards.deposit_custom_label": "Custom amount to deposit", "rewards.deposit_custom_placeholder": "Amount", "rewards.deposit_disabled_insufficient": "Not enough spendable ({spendable} available)", "rewards.deposit_disabled_loading": "Depositing…", "rewards.deposit_disabled_no_child": "Select a child to deposit", "rewards.deposit_points": "Deposit {amount}", "rewards.editor.enable_pool_mode": "Enable Pool Mode (Savings Jars)", "rewards.editor.enable_pool_mode_helper": "Each reward becomes a dedicated savings pool — children allocate points directly to a goal rather than spending from a global balance", "rewards.editor.expand_to_fit": "Expand card to fit all rewards", "rewards.editor.expand_to_fit_helper": "Grow the card to show every reward instead of scrolling a fixed-height list (designed styles only)", "rewards.editor.entity": "Entity", "rewards.editor.entity_helper": "The TaskMate overview sensor entity", "rewards.editor.filter_by_child": "Filter by Child", "rewards.editor.filter_by_child_all": "All Children", "rewards.editor.filter_by_child_helper": "Only show rewards available to this child (leave empty for all rewards)", "rewards.editor.show_child_badges": "Show child assignment badges", "rewards.editor.show_child_badges_helper": "Display which children can claim each reward", "rewards.editor.title": "Title", "rewards.editor.title_helper": "Card title displayed in the header (default: \"Rewards\")", "rewards.empty_subtitle": "Add rewards in TaskMate settings", "rewards.empty_title": "No Rewards Available", "rewards.error.entity_required": "Please define an entity (taskmate overview sensor)", "rewards.expired": "Expired", "rewards.expires_in_days": "Expires in {count} day", "rewards.expires_in_days_plural": "Expires in {count} days", "rewards.expires_today": "Expires today", "rewards.jackpot": "JACKPOT", "rewards.not_enough_points": "Not enough points", "rewards.only_n_left": "Only {count} left!", "rewards.pool_full": "Pool full!", "rewards.pool_locked_note": "Allocations are locked — they can only be spent on this goal", "rewards.redeem": "Redeem", "rewards.reward_count_plural": "{count} rewards", "rewards.reward_count_singular": "{count} reward", "rewards.sold_out": "Sold Out", "rewards.spendable_balance": "Spendable", "rewards.unavailable_hint": "This reward can no longer be claimed", "streak.achievement.fifty_desc": "Complete 50 chores", "streak.achievement.fifty_name": "50 Done", "streak.achievement.first_desc": "Complete your first chore", "streak.achievement.first_name": "First!", "streak.achievement.hundred_desc": "Complete 100 chores", "streak.achievement.hundred_name": "100 Done", "streak.achievement.points100_desc": "Earn 100 points total", "streak.achievement.points100_name": "100 ⭐", "streak.achievement.points50_desc": "Earn 50 points total", "streak.achievement.points50_name": "50 ⭐", "streak.achievement.streak14_desc": "14 day streak", "streak.achievement.streak14_name": "2 Weeks", "streak.achievement.streak30_desc": "30 day streak", "streak.achievement.streak30_name": "Month!", "streak.achievement.streak3_desc": "3 day streak", "streak.achievement.streak3_name": "3 Days", "streak.achievement.streak7_desc": "7 day streak", "streak.achievement.streak7_name": "Week!", "streak.achievement.ten_desc": "Complete 10 chores", "streak.achievement.ten_name": "10 Done", "streak.achievements": "Achievements", "streak.card_description": "Consecutive day streaks and milestone badges for each child", "streak.card_name": "TaskMate Streaks & Achievements", "streak.day_streak": "day streak", "streak.default_title": "Streaks & Achievements", "streak.editor.child_helper": "Show streak for a specific child only", "streak.editor.days_shown": "Days Shown in Bar", "streak.editor.days_shown_helper": "How many days of dots to show (default: 14)", "streak.editor.title": "Title", "streak.error.entity_required": "Please define an entity", "visibility.description_hidden": "Hidden by visibility condition", "visibility.description_shown": "Shown by visibility condition", "visibility.label_entity": "Visibility Entity", "visibility.label_operator": "Visibility Operator", "visibility.label_state": "Visibility State", "visibility.operator_equals": "Equals", "visibility.operator_gt": "Greater than (>)", "visibility.operator_gte": "Greater than or equal (≥)", "visibility.operator_lt": "Less than (<)", "visibility.operator_lte": "Less than or equal (≤)", "visibility.operator_not_equals": "Not Equal", "weekly.card_description": "Week at a glance — chores, points, and daily bar chart", "weekly.card_name": "TaskMate Weekly Summary", "weekly.child_chores": "{count} chores", "weekly.child_days": "{count}/7 days", "weekly.child_days_active_title": "{count} of 7 days active", "weekly.day_fri": "Fri", "weekly.day_mon": "Mon", "weekly.day_sat": "Sat", "weekly.day_sun": "Sun", "weekly.day_thu": "Thu", "weekly.day_tue": "Tue", "weekly.day_wed": "Wed", "weekly.default_title": "This Week", "weekly.editor.child_helper": "Show weekly summary for a specific child only", "weekly.editor.title": "Title", "weekly.error.entity_required": "Please define an entity", "weekly.section_children_this_week": "Children This Week", "weekly.section_chores_per_day": "Chores Per Day", "weekly.section_points_per_day": "Points Per Day", "weekly.stat_chores": "Chores", "weekly.stat_rewards": "Rewards", "weekly.stat_days_active": "Days Active", "notification.all_chores_done.description": "Celebration ping when a child finishes every chore for the day.", "notification.all_chores_done.name": "All chores done", "notification.badge_earned.description": "Sent when a child earns a new badge. Per-badge mute still applies.", "notification.badge_earned.name": "Badge earned", "notification.bedtime_reminder.description": "Pings the child if they have outstanding chores at the configured time.", "notification.bedtime_reminder.name": "Bedtime reminder", "notification.pending_chore_approval.description": "Sent to parents when a child marks a chore complete. Tap Approve or Reject from the notification.", "notification.pending_chore_approval.name": "Pending chore approval", "notification.pending_reward_claim.description": "Sent to parents when a child redeems a reward. Tap Approve or Reject from the notification.", "notification.pending_reward_claim.name": "Pending reward claim", "notification.streak_at_risk.description": "Fires when an active streak hasn't been extended yet today.", "notification.streak_at_risk.name": "Streak at risk", "notification.streak_milestone.description": "Celebrates each new streak milestone a child reaches (off by default).", "notification.streak_milestone.name": "Streak milestone", "panel.tp_label_placeholder": "Period name", "panel.tp_add_period": "Add period", "panel.tp_reset_defaults": "Reset to defaults", "panel.tp_delete_title": "Delete period", "panel.tp_in_use_title": "Used by {count} chore(s) — reassign them before deleting", "panel.tp_in_use_hint": "Used by {count} chore(s). Reassign them to another period to delete this one.", "panel.tp_anytime_hint": "Always available, all day. Built-in and cannot be removed.", "panel.tp_err_label_required": "Every custom period needs a name.", "panel.tp_err_time_required": "Set a start and end time for “{name}”.", "panel.tp_err_order": "“{name}” must start before it ends.", "panel.tp_err_empty": "Add at least one time period.", "panel.tp_err_overlap": "“{a}” overlaps “{b}” — periods cannot overlap.", "panel.settings_surprise_enabled_label": "Surprise bonuses", "panel.settings_surprise_enabled_hint": "Give each child a daily random chance of a surprise points bonus (rolled at 16:00).", "panel.settings_surprise_params_label": "Surprise bonus settings", "panel.settings_surprise_params_hint": "Daily chance per child, and the random points range awarded on a hit.", "panel.settings_surprise_chance": "Chance %", "panel.settings_surprise_min": "Min pts", "panel.settings_surprise_max": "Max pts", "panel.reward_restock_label": "Auto-restock", "panel.reward_restock_hint": "Periodically reset this reward's stock back to a set amount.", "panel.reward_restock_amount": "Restock to", "panel.reward_restock_period": "Restock every", "panel.reward_restock_daily": "Day", "panel.reward_restock_weekly": "Week (Mon)", "panel.reward_restock_monthly": "Month (1st)", "panel.chore_expires_label": "Expiry date (optional)", "panel.chore_expires_hint": "After this date the chore auto-disables. Leave blank for no expiry.", "panel.bulk_select": "Select", "panel.bulk_done": "Done", "panel.bulk_selected": "{count} selected", "panel.bulk_enable": "Enable", "panel.bulk_disable": "Disable", "panel.bulk_delete": "Delete", "panel.bulk_reassign_to": "Reassign to…", "panel.bulk_apply": "Apply", "panel.bulk_pick_target": "Pick who to reassign to first.", "panel.bulk_delete_confirm": "Delete {count} chore(s)? This cannot be undone.", "panel.bulk_done_toast": "{count} chore(s) updated", "panel.settings_decay_enabled_label": "Points decay", "panel.settings_decay_enabled_hint": "Periodically shrink each child's spendable balance to discourage hoarding.", "panel.settings_decay_params_label": "Points decay settings", "panel.settings_decay_params_hint": "How much of the balance to remove, and how often.", "panel.settings_decay_percent": "Decay %", "panel.settings_decay_period": "Every", "panel.gift_btn": "Gift points", "panel.gift_dialog_title": "Gift points", "panel.gift_from": "From", "panel.gift_to": "To", "panel.gift_amount": "Amount", "panel.gift_send": "Send gift", "panel.gift_sent": "Points gifted", "panel.gift_err_same": "Pick two different children.", "panel.gift_err_amount": "Enter an amount of at least 1.", "panel.settings_level_step_label": "XP per level", "panel.settings_level_step_hint": "Earned points needed to advance one level (XP = lifetime earned points).", "panel.child_stat_level": "Level", "notification.level_up.name": "Level up", "notification.level_up.description": "Celebrates when a child reaches a new XP level (off by default).", "child.level_label": "Lvl {level}", "panel.settings_spendcap_enabled_label": "Spending cap", "panel.settings_spendcap_enabled_hint": "Limit how many points each child can spend on rewards per period.", "panel.settings_spendcap_params_label": "Spending cap settings", "panel.settings_spendcap_params_hint": "Max points spendable per period (0 = no limit).", "panel.settings_spendcap_amount": "Cap (pts)", "panel.settings_interest_enabled_label": "Savings interest", "panel.settings_interest_enabled_hint": "Periodically pay each child interest on their spendable balance (rewards saving).", "panel.settings_interest_params_label": "Savings interest settings", "panel.settings_interest_percent": "Interest %", "panel.settings_interest_params_hint": "Interest rate applied to the balance, and how often.", "panel.chore_due_time_label": "Due time (optional)", "panel.chore_due_time_hint": "Completions at/before this time earn the early bonus; after it lose the late penalty.", "panel.chore_early_bonus_label": "Early bonus", "panel.chore_late_penalty_label": "Late penalty", "panel.chore_require_photo_label": "Require photo proof", "panel.chore_require_photo_hint": "Completions must be parent-approved; an evidence photo (if provided) shows in approvals.", "panel.activity_view_photo": "View photo", "panel.swap_btn": "Request swap", "panel.swap_dialog_title": "Swap: {chore}", "panel.swap_requester": "Give today's turn to", "panel.swap_create": "Request swap", "panel.swap_pick_child": "Pick a child.", "panel.swap_requested": "Swap requested", "panel.swap_approved": "Swap approved", "panel.swap_rejected": "Swap rejected", "panel.swap_request_text": "{child} wants to do “{chore}” today", "panel.swap_from": "currently {name}", "notification.weekly_digest.name": "Weekly digest", "notification.weekly_digest.description": "A Sunday-evening summary of each child's week (chores + points). Off by default.", "panel.settings_celebration_notify_label": "Celebration notifications", "panel.settings_celebration_notify_hint": "Send a notification for big celebration moments (level-ups, streak milestones, perfect weeks). Off by default.", "panel.settings_celebration_tier_label": "Minimum celebration size", "panel.settings_celebration_tier_hint": "Only notify for moments at or above this size. Every celebration still fires a taskmate_celebration event for automations.", "panel.settings_celebration_tier_1": "All (small and up)", "panel.settings_celebration_tier_2": "Medium and up", "panel.settings_celebration_tier_3": "Epic only", "notification.celebration.name": "Celebration", "notification.celebration.description": "Big celebration moments — level-ups, streak milestones and perfect weeks. Off by default.", "panel.tab_quests": "Quests", "panel.quest_title": "Quests", "panel.search_quests": "Search quests…", "panel.btn_add_quest": "Add quest", "panel.quest_add_tile": "Add quest", "panel.quest_need_chores": "Create some chores first — a quest is a chain of existing chores.", "panel.empty_quests_title": "No quests yet", "panel.empty_quests_copy": "Chain chores together into a quest. Finish every step to earn a bonus.", "panel.entity_quest": "quest", "panel.quest_all_children": "All children", "panel.quest_missing_chore": "(deleted chore)", "panel.quest_badge_repeatable": "Repeatable", "panel.quest_badge_inactive": "Inactive", "panel.quest_stat_steps": "Steps", "panel.quest_stat_bonus": "Bonus {points_name}", "panel.quest_assigned_to": "For", "panel.dialog_add_quest": "Add quest", "panel.dialog_edit_quest": "Edit quest", "panel.quest_bonus_label": "Bonus {points_name}", "panel.quest_steps_label": "Steps (in order)", "panel.quest_steps_hint": "The child advances one step each time the chore at their current step is approved. Tap a chore below to add or remove it; use ▲▼ to reorder.", "panel.quest_no_steps": "No steps yet — tap a chore below to add the first step.", "panel.quest_assigned_label": "Assign to", "panel.quest_assigned_hint": "Leave all unselected to make this quest available to every child.", "panel.quest_repeatable_label": "Repeatable", "panel.quest_repeatable_hint": "When finished, progress resets so the child can run the quest again.", "panel.quest_active_label": "Active", "panel.quest_active_hint": "Inactive quests don't track progress or award bonuses.", "panel.quest_need_step": "Add at least one step.", "panel.toast_quest_added": "Quest added", "panel.toast_quest_updated": "Quest updated", "panel.settings_avatars_title": "Avatar unlockables", "panel.settings_avatars_label": "Manage avatars", "panel.settings_avatars_hint": "{count} avatars in the catalogue. Children unlock avatars by reaching levels, points or streaks, then pick their own.", "panel.settings_avatars_btn": "Manage avatars", "panel.avatar_dialog_title": "Avatar catalogue", "panel.avatar_dialog_hint": "Define the avatars children can earn. Each row needs an mdi icon and an unlock requirement. Children can switch to any avatar they've unlocked.", "panel.avatar_empty": "No avatars yet — add one below.", "panel.avatar_add_row": "Add avatar", "panel.avatar_label_ph": "Name (e.g. Rocket)", "panel.avatar_unlock_free": "Always available", "panel.avatar_unlock_level": "Reach level", "panel.avatar_unlock_points": "Total points earned", "panel.avatar_unlock_streak": "Best streak (days)", "panel.toast_avatars_saved": "Avatars saved", "child.avatar_change": "Change your avatar", "child.avatar_locked": "Locked", "child.avatar_change_failed": "Could not change avatar.", "panel.tab_challenges": "Challenges", "panel.challenge_title": "Challenges", "panel.search_challenges": "Search challenges…", "panel.btn_add_challenge": "Add challenge", "panel.challenge_add_tile": "Add challenge", "panel.empty_challenges_title": "No challenges yet", "panel.empty_challenges_copy": "Set a daily or weekly target — complete N chores or earn N points — for a bonus that refreshes each period.", "panel.entity_challenge": "challenge", "panel.challenge_scope_label": "Refreshes", "panel.challenge_scope_daily": "Daily", "panel.challenge_scope_weekly": "Weekly", "panel.challenge_metric_label": "Goal type", "panel.challenge_metric_chores": "Chores completed", "panel.challenge_metric_points": "{points_name} earned", "panel.challenge_target_label": "Target", "panel.challenge_target_hint": "How many to reach within the period.", "panel.dialog_add_challenge": "Add challenge", "panel.dialog_edit_challenge": "Edit challenge", "panel.toast_challenge_added": "Challenge added", "panel.toast_challenge_updated": "Challenge updated", "panel.settings_allow_negative_label": "Allow negative balance", "panel.settings_allow_negative_hint": "Let penalties take a child's balance below zero instead of stopping at zero.", "panel.chore_depends_label": "Depends on", "panel.chore_depends_hint": "This chore stays hidden until the selected chores are approved for the child today.", "panel.notif_quiet_hours_label": "Quiet hours", "panel.notif_quiet_hours_desc": "No reminders are sent to this child during this window (do-not-disturb). Leave blank to disable.", "notification.mandatory_reminder.name": "Mandatory chore reminder", "notification.mandatory_reminder.description": "Nudges the child when a mandatory chore is overdue, then reminds again after the escalation delay. Off by default.", "notification.mandatory_parent_alert.name": "Mandatory chore parent alert", "notification.mandatory_parent_alert.description": "Alerts a parent when a mandatory chore is still incomplete after the parent escalation delay. Off by default.", "panel.notif_escalation_reminder_label": "Remind again after", "panel.notif_escalation_parent_label": "Alert parent after", "panel.notif_escalation_minutes_suffix": "min", "notification.monthly_report.name": "Monthly report", "notification.monthly_report.description": "A start-of-month recap of each child's previous month (chores, points, level, best streak). Off by default.", "leaderboard.sort_this_month": "This Month", "leaderboard.last_champion": "Last month's champion: {name} 🏆", "notification.season_champion.name": "Season champion", "notification.season_champion.description": "Announces the monthly leaderboard winner at the start of each month. Off by default.", "panel.ics_title": "Calendar subscription", "panel.ics_hint": "Subscribe to upcoming chores from Google/Apple/Outlook calendar. The link contains a private token — share it carefully.", "panel.ics_show": "Show subscribe link", "panel.ics_copy": "Copy", "panel.ics_regenerate": "Regenerate link", "panel.ics_copied": "Subscribe link copied", "panel.ics_regenerated": "New link generated — old subscriptions stopped", "gallery.default_title": "Photo gallery", "gallery.empty": "No evidence photos yet", "gallery.pending": "pending", "panel.allowance_title": "Allowance", "panel.allowance_hint": "Convert points to a real-money allowance. Record payouts via the record_allowance_payout service or a dashboard button.", "panel.allowance_enabled": "Enable allowance payouts", "panel.allowance_rate": "Points per unit", "panel.allowance_rate_hint": "How many points equal one unit of currency.", "panel.allowance_currency": "Currency symbol", "panel.allowance_ledger": "Recent payouts", "family_goal.default_title": "Family goal", "family_goal.disabled": "No family goal set", "family_goal.reward_label": "Reward: {reward}", "family_goal.reached": "Goal reached! {reward}", "panel.family_goal_title": "Family goal", "panel.family_goal_hint": "A shared target across all children's combined points (e.g. everyone hits 500 → family movie night).", "panel.family_goal_enabled": "Enable family goal", "panel.family_goal_name": "Goal name", "panel.family_goal_name_ph": "Movie night fund", "panel.family_goal_target": "Target (combined points)", "panel.family_goal_target_hint": "Sum of all children's points needed to reach the goal.", "panel.family_goal_reward": "Reward", "panel.family_goal_reward_ph": "a family movie night", "notification.family_goal_reached.name": "Family goal reached", "notification.family_goal_reached.description": "Celebrates when the family's combined points reach the shared goal. Off by default.", "panel.chore_advanced_weather": "Advanced — weather conditions", "panel.chore_weather_intro": "Hide this chore while the weather is unsuitable. Useful for outdoor jobs — a rained-off chore doesn't count as a mandatory miss and won't break a streak.", "panel.chore_weather_entity_label": "Weather entity", "panel.chore_weather_entity_hint": "Leave empty to ignore the weather entirely.", "panel.chore_weather_conditions_label": "Hide when the weather is", "panel.chore_weather_conditions_hint": "Pick any conditions that should hide the chore.", "panel.chore_weather_temp_min_label": "Minimum temperature", "panel.chore_weather_temp_min_hint": "Hide below this. Leave empty for no limit.", "panel.chore_weather_temp_max_label": "Maximum temperature", "panel.chore_weather_temp_max_hint": "Hide above this. Leave empty for no limit.", "panel.chore_weather_wind_max_label": "Maximum wind speed", "panel.chore_weather_wind_max_hint": "Hide above this. Leave empty for no limit.", "panel.chore_weather_failopen_hint": "Limits use whatever units your weather entity reports. If the entity is missing or unavailable, the chore stays visible.", "weather.blocked_condition": "Hidden — unsuitable weather", "weather.blocked_temp_low": "Hidden — too cold", "weather.blocked_temp_high": "Hidden — too hot", "weather.blocked_wind": "Hidden — too windy", "weather.condition_rainy": "Rainy", "weather.condition_pouring": "Pouring", "weather.condition_snowy": "Snowy", "weather.condition_snowy_rainy": "Sleet", "weather.condition_hail": "Hail", "weather.condition_lightning": "Lightning", "weather.condition_lightning_rainy": "Thunderstorm", "weather.condition_fog": "Fog", "weather.condition_windy": "Windy", "weather.condition_windy_variant": "Very windy", "weather.condition_cloudy": "Cloudy", "weather.condition_exceptional": "Severe", "child.deadline_minutes": "{mins} min left", "child.deadline_hours": "{hours}h {mins}m left", "child.deadline_title": "Do this before the time runs out", "panel.chore_advanced_scheduled": "Advanced — scheduled changes", "panel.chore_scheduled_intro": "Queue a change to take effect on a future date — \"from 1 September this is worth 20 points\". Applied at midnight; if Home Assistant was off, it catches up on the next start.", "panel.chore_scheduled_none": "No changes queued.", "panel.chore_scheduled_history": "Already applied", "panel.chore_scheduled_applied": "Applied", "panel.sched_date_label": "Apply on", "panel.sched_field_label": "Change", "panel.sched_value_label": "New value", "panel.sched_note_label": "Note (optional)", "panel.sched_note_hint": "A reminder of why, shown beside the queued change.", "panel.btn_add_scheduled": "Queue change", "panel.sched_value_yes": "Yes", "panel.sched_value_no": "No", "panel.sched_value_nobody": "Nobody", "panel.toast_sched_added": "Change queued", "panel.toast_sched_removed": "Change removed", "panel.toast_sched_date_required": "Pick a date for the change", "panel.toast_sched_value_required": "Enter a value for the change", "panel.sched_field_points": "Points", "panel.sched_field_assigned_to": "Assigned to", "panel.sched_field_enabled": "Enabled", "panel.sched_field_requires_approval": "Requires approval", "panel.sched_field_daily_limit": "Daily limit", "panel.sched_field_due_days": "Days", "panel.sched_field_mandatory": "Mandatory", "panel.sched_field_mandatory_penalty_points": "Penalty points", "panel.sched_field_expires_on": "Expires on", "panel.sched_field_description": "Description", "panel.sched_field_time_category": "Time of day", "panel.sched_field_difficulty": "Difficulty", "routine.title": "{name}'s routine", "routine.no_child": "Pick a child for this card.", "routine.task_of": "Task {current} of {total}", "routine.all_done_count": "All {total} done", "routine.done": "Done ✓", "routine.completed": "Completed", "routine.sent_for_checking": "Sent for checking", "routine.skip": "Skip for now", "routine.next": "Next →", "routine.back": "← Back", "routine.waiting_for_parent": "⏳ Waiting for a grown-up to check", "routine.photo_note": "This one needs a photo — tap it on your card.", "routine.finished_title": "Routine done!", "routine.finished_body": "Nice one, {name}. That's everything.", "routine.earned": "+{points} earned", "routine.awaiting_points": "+{points} once a grown-up checks", "routine.skipped_note": "{count} left for later.", "routine.start_again": "Start again", "routine.empty_title": "Nothing to do", "routine.empty_body": "This routine is already finished.", "child.roulette_spin": "Spin for a ×{multiplier} chore", "child.roulette_respin": "Spin again ({count} left)", "child.roulette_no_spins": "No spins left today", "panel.settings_roulette_section": "Chore roulette", "panel.settings_roulette_enabled": "Enable chore roulette", "panel.settings_roulette_enabled_hint": "Lets a child spin for a random outstanding chore worth extra points.", "panel.settings_roulette_multiplier": "Points multiplier", "panel.settings_roulette_spins": "Spins per day", "panel.settings_unlock_allowlist": "Unlock allowlist", "panel.settings_unlock_allowlist_hint": "Only these entities may be unlocked by a reward. Nothing is allowed until you add something here.", "panel.settings_unlock_allowlist_empty": "Nothing allowed yet.", "panel.settings_unlock_allowlist_add": "Search for an entity to allow", "panel.reward_unlock_section": "Advanced — timed unlock", "panel.reward_unlock_intro": "Turn something on when this reward is approved, and back off again after a set time.", "panel.reward_unlock_none": "Nothing", "panel.reward_unlock_entity": "Unlock", "panel.reward_unlock_minutes": "For how long (minutes)", "panel.reward_unlock_minutes_hint": "0 = leave it on; you'll need to turn it off yourself.", "panel.reward_unlock_no_allowlist": "Add an entity to the unlock allowlist in Settings first.", "panel.tab_insights": "Insights", "panel.insights_loading": "Working it out…", "panel.insights_fairness_title": "Who's doing the work?", "panel.insights_fairness_intro": "{start} to {end}. An even split would be {fair}% each.", "panel.insights_last_days": "Last {days} days", "panel.insights_no_data": "No approved chores in this period yet.", "panel.insights_balanced": "Looks fairly balanced.", "panel.insights_unbalanced": "The workload is uneven.", "panel.insights_chores": "chores", "panel.insights_status_over": "Doing more", "panel.insights_status_under": "Doing less", "panel.insights_status_balanced": "Balanced", "panel.insights_status_idle": "Nothing yet", "panel.insights_fairness_note": "Judged on chore count, not points, so a pricier chore doesn't hide an uneven split. Flagged when a child is more than {tolerance} points off an even share.", "panel.insights_chore": "chore", "panel.insights_view_fairness": "Fairness", "panel.insights_view_friction": "Friction", "panel.insights_friction_title": "What isn't working?", "panel.insights_friction_intro": "{start} to {end}. Chores are judged on how often they actually get done versus how often they came up.", "panel.insights_friction_none": "No active chores to look at.", "panel.insights_friction_healthy": "Everything is getting done.", "panel.insights_friction_problems": "{count} chore(s) worth a look.", "panel.insights_col_chore": "Chore", "panel.insights_col_done": "Done", "panel.insights_col_rate": "Rate", "panel.insights_col_last": "Last done", "panel.insights_col_verdict": "Verdict", "panel.insights_col_suggestion": "Try", "panel.insights_never": "Never", "panel.insights_days_ago": "{days}d ago", "panel.insights_verdict_never": "Never done", "panel.insights_verdict_stalling": "Stalling", "panel.insights_verdict_struggling": "Patchy", "panel.insights_verdict_fine": "Fine", "panel.insights_verdict_unknown": "Unclear", "panel.insights_suggest_retire": "Retire it", "panel.insights_suggest_reprice": "Raise the points", "panel.insights_suggest_reassign": "Give it to someone else", "panel.insights_suggest_keep": "Leave it alone", "panel.insights_outstanding_misses": "Outstanding mandatory misses", "panel.insights_friction_note": "Rejections aren't listed: TaskMate deletes a completion when you reject it, so there's no rejection history to count. Expected counts are approximate — they don't replay rotation, dependencies or weather.", "panel.insights_view_projection": "Week ahead", "panel.insights_projection_title": "What's coming up?", "panel.insights_projection_intro": "{start} to {end}, based on each chore's schedule.", "panel.insights_next_days": "Next {days} days", "panel.insights_col_day": "Day", "panel.insights_projected_earn": "up to {points} {name}", "panel.insights_projected_total": "would reach {total}", "panel.insights_projection_unassigned": "{points} points aren't assigned to anyone.", "panel.insights_projection_note": "A ceiling, not a forecast: chores open to everyone are counted for each eligible child, since the schedule can't know who'll get there first. Weather, dependencies and availability aren't projected — they depend on the day.", "panel.insights_view_health": "Health", "panel.health_title": "Is anything broken?", "panel.health_recheck": "Check again", "panel.health_all_good": "Nothing wrong found.", "panel.health_issues": "{count} thing(s) need attention.", "panel.health_sev_error": "Error", "panel.health_sev_warning": "Warning", "panel.health_sev_info": "Note", "panel.health_goto": "Show me", "panel.health_count_children": "Children", "panel.health_count_chores": "Chores", "panel.health_count_enabled_chores": "Active", "panel.health_count_rewards": "Rewards", "panel.health_count_completions": "Completions", "panel.health_count_badges": "Badges", "panel.health_count_scheduled_changes": "Scheduled", "panel.health_count_active_unlocks": "Unlocks", "panel.health_count_mandatory_misses": "Misses", "panel.health_count_storage": "Storage", "panel.chore_icon_label": "Picture", "child.editor.pre_reader": "Picture-only mode (for young children)", "child.editor.pre_reader_labels": "Show names in picture mode", "common.design.accessible": "Accessible" }