New apps Added

This commit is contained in:
2026-07-08 10:43:39 -04:00
parent 3b1f4bbd75
commit fefc2c8b5c
1114 changed files with 406637 additions and 154 deletions
@@ -0,0 +1,696 @@
{
"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 (131)",
"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.15.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"
}