{ "maintenance": "Maintenance", "objects": "Objects", "tasks": "Tasks", "overdue": "Overdue", "due_soon": "Due Soon", "triggered": "Triggered", "trigger_replaced": "Trigger replaced", "ok": "OK", "all": "All", "new_object": "+ New Object", "templates_from": "From template", "templates_title": "Start from a template", "templates_task_count": "{n} tasks", "template_created": "Created from template", "onboard_hint": "Add your first object to start tracking maintenance.", "edit": "Edit", "duplicate": "Duplicate", "task_duplicated": "Task duplicated", "object_duplicated": "Object duplicated", "delete": "Delete", "add_task": "+ Add Task", "complete": "Complete", "completed": "Completed", "skip": "Skip", "skipped": "Skipped", "missed": "Missed", "reset": "Reset", "snooze": "Snooze", "snoozed": "Snoozed", "cancel": "Cancel", "bulk_select": "Select", "bulk_select_all": "Select all", "bulk_n_selected": "{n} selected", "bulk_completed": "{n} tasks completed", "bulk_archived": "{n} tasks archived", "completing": "Completing…", "interval": "Interval", "warning": "Warning", "last_performed": "Last performed", "next_due": "Next due", "days_until_due": "Days until due", "avg_duration": "Avg duration", "trigger": "Trigger", "trigger_type": "Trigger type", "threshold_above": "Upper limit", "threshold_below": "Lower limit", "threshold": "Threshold", "counter": "Counter", "state_change": "State change", "runtime": "Runtime", "runtime_hours": "Target runtime (hours)", "target_value": "Target value", "baseline": "Baseline", "target_changes": "Target changes", "for_minutes": "For (minutes)", "time_based": "Time-based", "sensor_based": "Sensor-based", "manual": "Manual", "one_time": "One-time", "weekdays": "Weekdays", "nth_weekday": "Nth weekday of month", "day_of_month": "Day of month", "recurrence_on_days": "Repeat on", "recurrence_occurrence": "Occurrence", "recurrence_weekday": "Weekday", "recurrence_day": "Day of month (1–31)", "recurrence_last_day": "Last day of the month", "recurrence_business_day": "Business days only (roll back from weekend)", "recurrence_offset": "Offset (days, ±)", "recurrence_offset_help": "Shift the date by ±N days, e.g. -2 = two days before.", "last_day_month": "Last day of month", "last_business_day_month": "Last business day", "ord_1": "1st", "ord_2": "2nd", "ord_3": "3rd", "ord_4": "4th", "ord_5": "5th", "ord_last": "Last", "day_word": "Day", "interval_value": "Interval", "interval_unit": "Unit", "unit_days": "Days", "unit_weeks": "Weeks", "unit_months": "Months", "unit_years": "Years", "due_date": "Due date", "cleaning": "Cleaning", "inspection": "Inspection", "replacement": "Replacement", "calibration": "Calibration", "service": "Service", "reading": "Reading", "custom": "Custom", "history": "History", "cost": "Cost", "report_button": "Report", "report_title": "Maintenance report", "report_generated": "Generated", "report_times_done": "Done", "report_total_cost": "Total cost", "report_every": "every {n} {unit}", "report_notes": "Notes", "report_col_type": "Type", "report_col_status": "Status", "report_col_schedule": "Schedule", "duration": "Duration", "both": "Both", "trigger_val": "Trigger value", "complete_title": "Complete: ", "checklist": "Checklist", "checklist_steps_optional": "Checklist steps (optional)", "checklist_placeholder": "Clean filter\nReplace seal\nTest pressure", "checklist_help": "One step per line. Max 100 items.", "err_too_long": "{field}: too long (max {n} characters)", "err_too_short": "{field}: too short (min {n} characters)", "err_value_too_high": "{field}: too large (max {n})", "err_value_too_low": "{field}: too small (min {n})", "err_required": "{field}: required", "err_wrong_type": "{field}: wrong type (expected: {type})", "err_invalid_choice": "{field}: not an allowed value", "err_invalid_value": "{field}: invalid value", "feat_schedule_time": "Time-of-day scheduling", "feat_schedule_time_desc": "Tasks become overdue at a specific time of day instead of midnight.", "schedule_time_optional": "Due at time (optional, HH:MM)", "schedule_time_help": "Empty = midnight (default). HA timezone.", "at_time": "at", "notes_optional": "Notes (optional)", "cost_optional": "Cost (optional)", "duration_minutes": "Duration in minutes (optional)", "days": "days", "day": "day", "today": "Today", "d_overdue": "d overdue", "no_tasks": "No maintenance tasks yet. Create an object to get started.", "no_tasks_short": "No tasks", "no_history": "No history entries yet.", "show_all": "Show all", "cost_duration_chart": "Cost & Duration", "installed": "Installed", "confirm_delete_object": "Delete this object and all its tasks?", "confirm_delete_task": "Delete this task?", "min": "Min", "max": "Max", "save": "Save", "saving": "Saving…", "edit_task": "Edit Task", "new_task": "New Maintenance Task", "task_name": "Task name", "maintenance_type": "Maintenance type", "priority": "Priority", "labels": "Labels", "labels_placeholder": "e.g. safety, seasonal, tenant-visible", "labels_help": "Comma-separated tags for filtering and reporting.", "priority_low": "Low", "priority_normal": "Normal", "priority_high": "High", "schedule_type": "Schedule type", "interval_days": "Interval (days)", "warning_days": "Warning days", "earliest_completion_days": "Earliest completion (days before due)", "earliest_completion_days_help": "Leave empty to allow completing any time. 0 = only on/after the due date.", "last_performed_optional": "Last performed (optional)", "interval_anchor": "Interval anchor", "anchor_completion": "From completion date", "anchor_planned": "From planned date (no drift)", "edit_object": "Edit Object", "name": "Name", "manufacturer_optional": "Manufacturer (optional)", "model_optional": "Model (optional)", "serial_number_optional": "Serial number (optional)", "serial_number_label": "S/N", "documentation_url_label": "Manual", "object_notes_label": "Notes", "sort_due_date": "Due date", "sort_object": "Object name", "sort_type": "Type", "sort_task_name": "Task name", "all_objects": "All objects", "tasks_lower": "tasks", "no_tasks_yet": "No tasks yet", "add_first_task": "Add first task", "trigger_configuration": "Trigger Configuration", "entity_id": "Entity ID", "comma_separated": "comma-separated", "entity_logic": "Entity logic", "entity_logic_any": "Any entity triggers", "entity_logic_all": "All entities must trigger", "entities": "entities", "attribute_optional": "Attribute (optional, blank = state)", "use_entity_state": "Use entity state (no attribute)", "trigger_above": "Trigger above", "trigger_below": "Trigger below", "for_at_least_minutes": "For at least (minutes)", "safety_interval_days": "Safety interval (days, optional)", "safety_interval": "Safety interval (optional)", "delta_mode": "Delta mode", "from_state_optional": "From state (optional)", "to_state_optional": "To state (optional)", "documentation_url_optional": "Documentation URL (optional)", "object_notes_optional": "Notes (optional)", "nfc_tag_id_optional": "NFC Tag ID (optional)", "nfc_tags_empty_help": "No NFC tags registered in Home Assistant yet.", "nfc_tags_open_settings": "Open Tags settings", "nfc_tags_refresh": "Refresh", "environmental_entity_optional": "Environmental sensor (optional)", "environmental_entity_helper": "e.g. sensor.outdoor_temperature — adjusts the interval based on environmental conditions", "environmental_attribute_optional": "Environmental attribute (optional)", "nfc_tag_id": "NFC Tag ID", "nfc_linked": "NFC tag linked", "nfc_link_hint": "Click to link NFC tag", "responsible_user": "Responsible User", "shared_with": "Shared with (rotation)", "shared_with_help": "Pick multiple people to share this task; the responsible person rotates on each completion.", "rotation_strategy": "Rotation", "rotation_none": "No rotation", "rotation_round_robin": "Round-robin", "rotation_least_completed": "Least completed", "rotation_random": "Random", "no_user_assigned": "(No user assigned)", "all_users": "All Users", "my_tasks": "My Tasks", "tab_calendar": "Calendar", "cal_no_events": "No maintenance", "cal_window_7": "7 days", "cal_window_14": "14 days", "cal_window_30": "30 days", "cal_window_365": "1 year", "cal_every_n_days": "every {n} days", "cal_source_time": "Time-based", "cal_source_time_adaptive": "Time-based (adaptive)", "cal_source_sensor": "Sensor-based", "cal_predicted": "predicted", "cal_confidence_high": "high confidence", "cal_confidence_medium": "medium confidence", "cal_confidence_low": "low confidence", "budget_monthly": "Monthly budget", "budget_yearly": "Yearly budget", "groups": "Groups", "new_group": "New group", "edit_group": "Edit group", "no_groups": "No groups yet", "delete_group": "Delete group", "delete_group_confirm": "Delete group '{name}'?", "group_select_tasks": "Select tasks", "group_name_required": "Name is required", "description_optional": "Description (optional)", "selected": "Selected", "loading_chart": "Loading chart data...", "hide_outliers": "Hide outliers (sensor glitches)", "was_maintenance_needed": "Was this maintenance needed?", "feedback_needed": "Needed", "feedback_not_needed": "Not needed", "feedback_not_sure": "Not sure", "suggested_interval": "Suggested interval", "apply_suggestion": "Apply", "reanalyze": "Re-analyze", "reanalyze_result": "New analysis", "reanalyze_insufficient_data": "Not enough data to produce a recommendation", "data_points": "data points", "dismiss_suggestion": "Dismiss", "confidence_low": "Low", "confidence_medium": "Medium", "confidence_high": "High", "recommended": "recommended", "seasonal_awareness": "Seasonal Awareness", "edit_seasonal_overrides": "Edit seasonal factors", "seasonal_overrides_title": "Seasonal factors (override)", "seasonal_overrides_hint": "Factor per month (0.1–5.0). Empty = learned automatically.", "seasonal_override_invalid": "Invalid value", "seasonal_override_range": "Factor must be between 0.1 and 5.0", "clear_all": "Clear all", "seasonal_chart_title": "Seasonal Factors", "seasonal_learned": "Learned", "seasonal_manual": "Manual", "month_jan": "Jan", "month_feb": "Feb", "month_mar": "Mar", "month_apr": "Apr", "month_may": "May", "month_jun": "Jun", "month_jul": "Jul", "month_aug": "Aug", "month_sep": "Sep", "month_oct": "Oct", "month_nov": "Nov", "month_dec": "Dec", "sensor_prediction": "Sensor Prediction", "degradation_trend": "Trend", "trend_rising": "Rising", "trend_falling": "Falling", "trend_stable": "Stable", "trend_insufficient_data": "Insufficient data", "days_until_threshold": "Days until threshold", "threshold_exceeded": "Threshold exceeded", "environmental_adjustment": "Environmental factor", "sensor_prediction_urgency": "Sensor predicts threshold in ~{days} days", "day_short": "day", "weibull_reliability_curve": "Reliability Curve", "weibull_failure_probability": "Failure Probability", "weibull_r_squared": "Fit R²", "beta_early_failures": "Early Failures", "beta_random_failures": "Random Failures", "beta_wear_out": "Wear-out", "beta_highly_predictable": "Highly Predictable", "confidence_interval": "Confidence Interval", "confidence_conservative": "Conservative", "confidence_aggressive": "Optimistic", "current_interval_marker": "Current interval", "recommended_marker": "Recommended", "characteristic_life": "Characteristic life", "chart_mini_sparkline": "Trend sparkline", "chart_history": "Cost and duration history", "chart_seasonal": "Seasonal factors, 12 months", "chart_weibull": "Weibull reliability curve", "chart_sparkline": "Sensor trigger value chart", "days_progress": "Days progress", "qr_code": "QR Code", "qr_generating": "Generating QR code…", "qr_error": "Failed to generate QR code.", "qr_error_no_url": "No HA URL configured. Please set an external or internal URL in Settings → System → Network.", "save_error": "Failed to save. Please try again.", "qr_print": "Print", "qr_download": "Download SVG", "qr_action": "Action on scan", "qr_action_view": "View maintenance info", "qr_action_complete": "Mark maintenance as complete", "qr_url_mode": "Link type", "qr_mode_companion": "Companion App", "qr_mode_local": "Local (mDNS)", "qr_mode_server": "Server URL", "overview": "Overview", "analysis": "Analysis", "recent_activities": "Recent Activities", "search_notes": "Search notes", "avg_cost": "Avg Cost", "no_advanced_features": "No advanced features enabled", "no_advanced_features_hint": "Enable “Adaptive Intervals” or “Seasonal Patterns” in the integration settings to see analysis data here.", "analysis_not_enough_data": "Not enough data for analysis yet.", "analysis_not_enough_data_hint": "Weibull analysis requires at least 5 completed maintenances; seasonal patterns become visible after 6+ data points per month.", "analysis_manual_task_hint": "Manual tasks without an interval do not generate analysis data.", "completions": "completions", "current": "Current", "shorter": "Shorter", "longer": "Longer", "normal": "Normal", "disabled": "Disabled", "compound_logic": "Compound logic", "compound": "Compound (multiple conditions)", "compound_logic_and": "AND — all conditions must trigger", "compound_logic_or": "OR — any condition triggers", "compound_help": "Combine several sensor conditions into one trigger.", "compound_no_conditions": "No conditions yet — add at least one.", "compound_add_condition": "Add condition", "compound_condition": "Condition", "compound_remove_condition": "Remove condition", "card_title": "Title", "card_show_header": "Show header with statistics", "card_show_actions": "Show action buttons", "card_compact": "Compact mode", "card_max_items": "Max items (0 = all)", "card_filter_status": "Filter by status", "card_filter_status_help": "Empty = show all statuses.", "card_filter_objects": "Filter by objects", "card_filter_objects_help": "Empty = show all objects.", "card_filter_entities": "Filter by entities (entity_ids)", "card_filter_entities_help": "Pick sensor / binary_sensor entities from this integration. Empty = all.", "card_loading_objects": "Loading objects…", "card_load_error": "Could not load objects — check the WebSocket connection.", "card_no_tasks_title": "No maintenance tasks yet", "card_no_tasks_cta": "→ Create one in the Maintenance panel", "no_objects": "No objects yet.", "action_error": "Action failed. Please try again.", "area_id_optional": "Area (optional)", "installation_date_optional": "Installation date (optional)", "warranty_expiry_optional": "Warranty expiry (optional)", "warranty": "Warranty", "warranty_valid_until": "valid until {date}", "warranty_expires_in": "expires in {days} days", "warranty_expired": "expired", "cal_past_windows": "Past windows", "cal_forward_windows": "Forward windows", "history_edit_title": "Edit history entry", "history_edit_timestamp": "Timestamp", "manufacturer": "Manufacturer", "model": "Model", "area": "Area", "actions": "Actions", "view_mode_label": "View", "view_cards": "Card view", "view_table": "Table view", "objects_table_columns_label": "Objects table columns", "objects_table_columns_hint": "Choose which columns appear in the objects table view.", "custom_icon_optional": "Icon (optional, e.g. mdi:wrench)", "task_enabled": "Task enabled", "skip_reason_prompt": "Skip this task?", "reason_optional": "Reason (optional)", "reset_date_prompt": "Mark task as performed?", "reset_date_optional": "Last performed date (optional, defaults to today)", "notes_label": "Notes", "documentation_label": "Documentation", "no_nfc_tag": "— No tag —", "dashboard": "Dashboard", "tab_today": "Today", "palette_placeholder": "Search objects and tasks…", "palette_no_results": "No matches", "palette_hint": "↑↓ to navigate · Enter to open · Esc to close", "today_all_caught_up": "All caught up! Nothing due this week.", "today_overdue": "Overdue", "today_due_today": "Due today", "today_this_week": "This week", "settings": "Settings", "settings_features": "Advanced Features", "settings_features_desc": "Enable or disable advanced features. Disabling hides them from the UI but does not delete data.", "feat_adaptive": "Adaptive Scheduling", "feat_adaptive_desc": "Learn optimal intervals from maintenance history", "feat_predictions": "Sensor Predictions", "feat_predictions_desc": "Predict trigger dates from sensor degradation", "feat_seasonal": "Seasonal Adjustments", "feat_seasonal_desc": "Adjust intervals based on seasonal patterns", "feat_environmental": "Environmental Correlation", "feat_environmental_desc": "Correlate intervals with temperature/humidity", "feat_budget": "Budget Tracking", "feat_budget_desc": "Track monthly and yearly maintenance spending", "feat_groups": "Task Groups", "feat_groups_desc": "Organize tasks into logical groups", "feat_checklists": "Checklists", "feat_checklists_desc": "Multi-step procedures for task completion", "settings_general": "General", "settings_default_warning": "Default warning days", "settings_panel_enabled": "Sidebar panel", "settings_panel_title": "Sidebar panel title", "settings_notifications": "Notifications", "settings_notify_service": "Notification service", "test_notification": "Test notification", "send_test": "Send test", "testing": "Sending…", "test_notification_success": "Test notification sent", "test_notification_failed": "Test notification failed", "settings_notify_due_soon": "Notify when due soon", "settings_notify_overdue": "Notify when overdue", "settings_notify_triggered": "Notify when triggered", "settings_interval_hours": "Repeat interval (hours, 0 = once)", "settings_quiet_hours": "Quiet hours", "settings_quiet_start": "Start", "settings_quiet_end": "End", "settings_max_per_day": "Max notifications per day (0 = unlimited)", "settings_bundling": "Bundle notifications", "settings_bundle_threshold": "Bundle threshold", "settings_reminder_leads": "Extra reminders (days before due)", "settings_reminder_leads_hint": "Comma-separated lead times, e.g. 14, 3, 0 — one extra reminder fires on each matching day. Empty = off.", "settings_actions": "Mobile Action Buttons", "settings_action_complete": "Show 'Complete' button", "settings_action_skip": "Show 'Skip' button", "settings_action_snooze": "Show 'Snooze' button", "settings_weekly_digest": "Weekly digest", "settings_weekly_digest_hint": "A single summary notification on Monday morning when tasks are due.", "settings_warranty_reminder": "Warranty expiry reminder", "settings_warranty_reminder_days": "Days before expiry", "settings_warranty_reminder_hint": "Notify once when an object's warranty is this many days from expiring.", "settings_snooze_hours": "Snooze duration (hours)", "settings_budget": "Budget", "settings_currency": "Currency", "settings_budget_monthly": "Monthly budget", "settings_budget_yearly": "Yearly budget", "settings_budget_alerts": "Budget alerts", "settings_budget_threshold": "Alert threshold (%)", "settings_import_export": "Import / Export", "settings_export_json": "Export JSON", "settings_export_yaml": "Export YAML", "settings_export_csv": "Export CSV", "settings_import_csv": "Import CSV", "settings_import_placeholder": "Paste JSON or CSV content here…", "settings_import_btn": "Import", "settings_import_success": "{count} objects imported successfully.", "settings_export_success": "Export downloaded.", "settings_saved": "Setting saved.", "settings_include_history": "Include history", "sort_alphabetical": "Alphabetical", "sort_due_soonest": "Due soonest", "sort_task_count": "Task count", "sort_area": "Area", "sort_assigned_user": "Assigned user", "sort_group": "Group", "groupby_none": "No grouping", "groupby_area": "By area", "groupby_group": "By group", "groupby_user": "By user", "filter_label": "Filter", "user_label": "User", "sort_label": "Sort", "group_by_label": "Group by", "state_value_help": "Use the HA state value (usually lowercase, e.g. \"on\"/\"off\"). Case is normalised on save.", "target_changes_help": "Number of matching transitions before the trigger fires (default: 1).", "qr_print_title": "Print QR codes", "qr_print_desc": "Generate a printable page of QR codes to cut out and stick on your equipment.", "qr_print_load": "Load objects", "qr_print_filter": "Filter", "qr_print_objects": "Objects", "qr_print_actions": "Actions", "qr_print_url_mode": "Link type", "qr_print_estimate": "Estimated QR codes", "qr_print_over_limit": "cap is 200, narrow the filter", "qr_print_generate": "Generate QR codes", "qr_print_generating": "Generating…", "qr_print_ready": "QR codes ready", "qr_print_print_button": "Print", "qr_print_empty": "Nothing to generate", "qr_action_skip": "Skip", "vacation_title": "Vacation mode", "vacation_active": "active", "vacation_ended": "ended", "vacation_desc": "Plan a vacation: notifications are paused during the period plus a buffer of days. You can opt specific tasks back in.", "vacation_enable": "Enable vacation mode", "vacation_start": "Start", "vacation_end": "End", "vacation_buffer": "Buffer (days)", "vacation_exempt_title": "Notify anyway during vacation", "vacation_exempt_desc": "Pick tasks that should still notify during vacation (e.g. critical pool chemistry).", "vacation_load_tasks": "Load tasks", "vacation_preview_btn": "Show preview", "vacation_preview_affected": "tasks affected", "vacation_event_due_soon": "becomes due soon", "vacation_event_overdue": "becomes overdue", "vacation_event_triggered_est": "sensor trigger possible", "vacation_sensor_based": "(sensor-based)", "vacation_action_notify": "Notify anyway", "vacation_action_unsilence": "Silence again", "vacation_marked_complete": "Marked complete", "vacation_marked_skip": "Skipped", "vacation_end_now": "End vacation now", "add": "Add", "show_stats": "Show stats + graphs", "hide_stats": "Hide stats", "adaptive_no_data": "Not enough completion history yet for adaptive analysis. Complete this task a few more times to unlock interval recommendations and reliability charts.", "suggestion_applied": "Suggested interval applied", "vacation_mode": "Vacation mode", "vacation_status_active": "Active now", "vacation_status_scheduled": "Scheduled", "vacation_status_inactive": "Inactive", "vacation_end_now_confirm": "End vacation immediately?", "vacation_exempt_count": "exempt", "vacation_advanced": "Advanced…", "vacation_open_panel": "Open in panel", "enable": "Enable", "saved": "Saved", "budget_monthly_set": "Set monthly", "budget_yearly_set": "Set yearly", "budget_advanced": "Currency, alerts…", "budget_open_panel": "Open in panel", "groups_empty": "No groups yet.", "group_new_placeholder": "Add group…", "group_delete_confirm": "Delete group \"{name}\"?", "groups_manage_tasks": "Manage task assignments…", "groups_open_panel": "Open in panel", "unassigned": "Unassigned", "no_area": "No area", "has_overdue": "Has overdue tasks", "object": "Object", "settings_panel_access": "Panel access", "settings_panel_access_desc": "Admins always have full access. To delegate create, edit and delete to specific non-admins, switch this on and pick them below — everyone else sees only Complete and Skip.", "settings_operator_write": "Allow selected users to create, edit & delete", "settings_operator_write_desc": "Off: only admins can change content. On: the selected users below get full access too.", "no_non_admin_users": "No non-admin users found. Add some in Settings → People.", "owner_label": "Owner", "feat_completion_actions": "Completion actions", "feat_completion_actions_desc": "Per-task HA action on complete + quick-complete QR with pre-set values.", "on_complete_action_title": "On complete: trigger HA action (optional)", "on_complete_action_desc": "Calls an HA service when the task is completed — e.g. reset a counter on the device.", "on_complete_action_service": "Service", "on_complete_action_target": "Target entity", "on_complete_action_target_hint": "Note: the entity domain must match the service — e.g. 'button.press' only works on button.*, 'counter.increment' only on counter.*, 'input_button.press' only on input_button.* etc. On a mismatch the action will silently fail (HA logs 'Referenced entities ... missing or not currently available').", "on_complete_action_data": "Data (JSON, optional)", "on_complete_action_test": "Validate configuration", "on_complete_action_test_success": "✓ Configuration valid (action will fire only on task completion)", "on_complete_action_test_failed": "Failed", "quick_complete_defaults_title": "Quick-complete defaults (for QR scans, optional)", "quick_complete_defaults_desc": "Pre-set values for quick-complete QR scans. Without these, the QR opens the complete dialog.", "quick_complete_defaults_notes": "Notes", "quick_complete_defaults_cost": "Cost", "quick_complete_defaults_duration": "Duration (minutes)", "quick_complete_defaults_feedback_none": "No feedback", "quick_complete_defaults_feedback_needed": "Was needed", "quick_complete_defaults_feedback_not_needed": "Not needed", "quick_complete_success": "Quickly marked complete", "show_all_objects": "Show all objects", "show_all_tasks": "Clear filter — show all tasks", "filter_to_overdue": "Filter task list to overdue only", "filter_to_due_soon": "Filter task list to due-soon only", "filter_to_triggered": "Filter task list to triggered only", "open_task": "Open task", "show_details": "Show history + stats", "hide_details": "Hide details", "history_empty": "No history yet.", "history_edit_button": "Edit entry", "total_cost": "Total cost", "times_performed": "Performed", "older_entries": "older", "open_in_panel": "Open in Maintenance panel", "skip_reason": "Skip reason (optional)", "reset_to_date": "Reset last_performed to", "delete_task_confirm": "Delete this task and its history?", "delete_object_confirm": "Delete this object and all its tasks?", "loading": "Loading…", "archive": "Archive", "undo": "Undo", "task_archived": "Task archived", "object_archived": "Object archived", "unarchive": "Unarchive", "archived": "Archived", "show_archived": "Show archived", "hide_archived": "Hide archived", "confirm_archive_object": "Archive this object and its tasks? They keep their history and can be unarchived later.", "settings_archive": "Archive & Retention", "settings_archive_desc": "Retire completed one-off tasks without deleting them. Archived items are hidden and inert but keep their history and cost.", "settings_archive_oneoff_days": "Auto-archive completed one-off tasks after (days, 0 = off)", "settings_delete_archived_oneoff_days": "Auto-delete archived one-off tasks after (days, 0 = never)", "archive_object": "Archive object", "unarchive_object": "Unarchive object", "documents": "Documents", "documents_empty": "No documents yet.", "doc_upload": "Upload file", "doc_uploading": "Uploading…", "doc_add_link": "Add link", "doc_link_url": "URL (https://…)", "doc_link_title": "Title (optional)", "doc_open": "Open", "doc_delete_confirm": "Delete \"{name}\"?", "doc_too_large": "File is too large (max 25 MB).", "doc_upload_failed": "Upload failed.", "completion_photo_optional": "Completion photo (optional)", "add_photo": "Add photo", "uploading": "Uploading…", "remove": "Remove", "doc_deduped": "Already stored elsewhere — shared, no extra space used.", "doc_dup_in_object": "This file is already attached to this object.", "doc_link_invalid": "Only http/https links are allowed.", "doc_cat_manual": "Manual", "doc_cat_warranty": "Warranty", "doc_cat_invoice": "Invoice", "doc_cat_spare_parts": "Spare parts", "doc_cat_photo": "Photo", "doc_cat_other": "Other", "doc_link_badge": "Link", "doc_storage_title": "Document storage", "doc_storage_saved": "Saved via deduplication", "doc_storage_refresh": "Refresh", "doc_download": "Download", "doc_close": "Close", "doc_camera": "Take photo", "doc_drop_hint": "Drop files here", "doc_task_none": "No documents linked to this task.", "doc_link_existing": "Link a document…", "doc_attach": "Link", "doc_unlink": "Unlink", "doc_page": "Page", "chart_range_7d": "7d", "chart_range_30d": "30d", "chart_range_90d": "90d", "chart_range_1y": "1y", "chart_since_service": "since last service", "chart_no_stats": "No long-term statistics for this entity — showing maintenance-event values only", "auto_complete_on_recovery": "Auto-complete when the sensor recovers", "auto_complete_on_recovery_help": "Records a completion (sets last performed) when the trigger clears itself — e.g. salt refilled, filter replaced.", "doc_search": "Search documents…", "doc_search_none": "No matching documents", "link_device_optional": "Link to existing device (optional)", "parent_object_optional": "Parent object (optional)", "parent_none": "(No parent)", "paused": "Paused", "pause_object": "Pause", "resume_object": "Resume", "pause_until_prompt": "Freeze this object's schedules — nothing becomes due and nothing notifies until it is resumed. Optionally set an auto-resume date.", "pause_until_label": "Resume on (optional)", "object_paused": "Object paused", "object_resumed": "Object resumed — schedules restarted", "object_paused_badge": "Paused", "paused_until_label": "until", "replace_object": "Replace…", "replace_object_prompt": "Retire this object and create a successor. History and costs stay archived on the old one; tasks and documents carry over to the new one, counters start fresh.", "replace_name_label": "Successor name", "object_replaced": "Object replaced — successor created", "reading_unit_label": "Reading unit (e.g. kWh, m³)", "reading_unit_help": "Shown next to the recorded value when completing this task.", "reading_value_label": "Reading value", "reading_label": "Reading", "settings_templates_label": "Template gallery", "settings_templates_hint": "Untick templates you'll never need — they disappear from the \"From template\" pickers (panel and config flow). Nothing else changes; you can re-enable them any time.", "worksheet": "Work sheet", "worksheet_scan_view": "Scan to open the task", "worksheet_scan_complete": "Scan to complete", "worksheet_manual_excerpt": "Manual excerpt", "worksheet_pages": "pages", "worksheet_printed": "Printed", "worksheet_never": "Never", "card_all_caught_up": "All caught up — nothing needs attention", "postpone": "Postpone", "postpone_date_prompt": "Postpone this occurrence to which date?", "postpone_date_label": "New due date", "postponed": "Postponed", "postponed_to": "Postponed to", "season_window_label": "Seasonal window (months)", "season_window_hint": "Only due in the selected months; off-season dates roll to the next active month. None = all year.", "series_end_label": "Ends", "series_end_never": "Never (repeats indefinitely)", "series_end_after_count": "After a number of times", "series_end_until": "On a date", "series_end_count_label": "Number of times", "series_end_until_label": "End date" }