{
  "config": {
    "step": {
      "user": {
        "title": "Maintenance Supporter",
        "description": "유지보수 관리 시스템을 설정합니다.",
        "menu_options": {
          "create_object": "유지보수 대상 만들기",
          "create_from_template": "템플릿에서 만들기",
          "global_setup": "전역 설정"
        }
      },
      "create_from_template": {
        "title": "템플릿 카테고리 선택",
        "description": "미리 정의된 유지보수 템플릿을 살펴볼 카테고리를 선택하세요.",
        "data": {
          "template_category": "카테고리",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다."
        }
      },
      "template_select": {
        "title": "템플릿 선택",
        "description": "시작점으로 사용할 유지보수 템플릿을 선택하세요.",
        "data": {
          "template_id": "템플릿",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "go_back": "저장하지 않고 카테고리 선택으로 돌아갑니다."
        }
      },
      "template_customize": {
        "title": "템플릿 사용자 지정",
        "description": "{template_name} 템플릿을 사용자 지정합니다. 이 템플릿에는 {task_count}개의 작업이 포함되어 있습니다: {task_list}.",
        "data": {
          "name": "대상 이름",
          "area_id": "구역",
          "manufacturer": "제조사",
          "model": "모델",
          "serial_number": "일련번호",
          "documentation_url": "설명서 / 문서 URL",
          "notes": "메모",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "name": "이 유지보수 대상의 이름입니다.",
          "area_id": "이 대상이 위치한 구역입니다.",
          "manufacturer": "대상의 제조사입니다.",
          "model": "모델명 또는 모델 번호입니다.",
          "serial_number": "대상의 일련번호입니다.",
          "documentation_url": "PDF 설명서, 제조사 페이지 등 이 대상의 참고 정보가 있는 URL 링크입니다(선택 사항).",
          "notes": "대상에 대한 자유 형식 메모입니다 — 부품 번호, 절차, 설정 참고 사항 등.",
          "go_back": "저장하지 않고 템플릿 선택으로 돌아갑니다."
        }
      },
      "global_setup": {
        "title": "전역 설정",
        "description": "전역 유지보수 설정을 구성합니다.",
        "data": {
          "default_warning_days": "기본 기한 전 경고 일수",
          "notifications_enabled": "알림 사용",
          "notify_service": "알림 서비스"
        },
        "data_description": {
          "default_warning_days": "유지보수 작업의 기한 전에 경고를 표시할 일수입니다.",
          "notifications_enabled": "유지보수 작업의 기한이 되면 알림을 보냅니다.",
          "notify_service": "사용할 알림 서비스입니다(예: notify.mobile_app_phone)."
        }
      },
      "create_object": {
        "title": "유지보수 대상 만들기",
        "description": "유지보수를 관리할 기기나 자산을 정의합니다.",
        "data": {
          "name": "대상 이름",
          "area_id": "구역",
          "manufacturer": "제조사",
          "model": "모델",
          "serial_number": "일련번호",
          "documentation_url": "설명서 / 문서 URL",
          "notes": "메모",
          "installation_date": "설치일",
          "warranty_expiry": "보증 만료일",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "name": "이 유지보수 대상의 고유한 이름입니다(예: '수영장 펌프', '자동차').",
          "area_id": "이 대상이 위치한 집 안의 구역입니다.",
          "manufacturer": "대상의 제조사입니다.",
          "model": "모델명 또는 모델 번호입니다.",
          "serial_number": "대상의 일련번호입니다.",
          "documentation_url": "PDF 설명서, 제조사 페이지 등 이 대상의 참고 정보가 있는 URL 링크입니다(선택 사항).",
          "notes": "대상에 대한 자유 형식 메모입니다 — 부품 번호, 절차, 설정 참고 사항 등.",
          "installation_date": "이 대상을 설치했거나 구입한 날짜입니다.",
          "warranty_expiry": "이 대상의 제조사 보증이 만료되는 날짜입니다.",
          "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다."
        }
      },
      "task_menu": {
        "title": "유지보수 작업",
        "description": "{object_name}의 유지보수 작업을 추가하세요. 현재 {task_count}개의 작업이 정의되어 있습니다.",
        "menu_options": {
          "add_task": "유지보수 작업 추가",
          "finish": "설정 완료"
        }
      },
      "add_task": {
        "title": "유지보수 작업 추가",
        "description": "{object_name}의 유지보수 작업을 정의합니다.",
        "data": {
          "name": "작업 이름",
          "type": "유지보수 유형",
          "schedule_type": "일정 유형",
          "custom_icon": "작업 아이콘",
          "go_back": "뒤로 가기",
          "reading_unit": "측정 단위(측정형 작업용, 예: kWh)"
        },
        "data_description": {
          "name": "이 작업을 설명하는 이름입니다(예: '필터 청소', '엔진 오일 교환').",
          "type": "유지보수 작업의 범주입니다.",
          "schedule_type": "이 작업의 일정을 정하는 방식입니다.",
          "custom_icon": "이 작업의 사용자 지정 아이콘입니다(선택 사항, 예: mdi:oil, mdi:filter-variant).",
          "go_back": "저장하지 않고 작업 메뉴로 돌아갑니다."
        }
      },
      "time_based": {
        "title": "시간 기반 일정",
        "description": "이 유지보수 작업의 시간 주기를 구성합니다.",
        "data": {
          "interval_days": "주기",
          "interval_unit": "주기 단위",
          "last_performed": "마지막 수행일",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "interval_anchor": "주기 기준점"
        },
        "data_description": {
          "interval_days": "주기 단위와 함께 이 유지보수가 반복되는 빈도를 정합니다.",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "last_performed": "이 유지보수를 마지막으로 수행한 시점입니다. 수행한 적이 없으면 비워 두세요.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 작업 만들기로 돌아갑니다.",
          "interval_anchor": "완료 후 다음 기한을 계산하는 방식입니다. '계획일 기준'은 원래 기한에 고정하여 일정이 밀리는 것을 방지합니다."
        }
      },
      "one_time": {
        "title": "일회성 작업",
        "description": "반복되지 않는 단일 유지보수 작업을 구성합니다. 완료되면 보관 처리됩니다.",
        "data": {
          "due_date": "기한",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "due_date": "이 일회성 작업의 기한입니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 작업 만들기로 돌아갑니다."
        }
      },
      "calendar": {
        "title": "달력 일정",
        "description": "달력 기반 반복(요일, 매월 n번째 요일 또는 매월 특정 일)을 구성합니다.",
        "data": {
          "weekdays": "반복할 요일",
          "nth": "몇 번째",
          "weekday": "요일",
          "day": "일(날짜)",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "last_day": "월의 마지막 날",
          "business": "영업일만",
          "offset": "오프셋(일)",
          "last_performed": "마지막 수행일"
        },
        "data_description": {
          "weekdays": "선택한 각 요일마다 작업이 반복됩니다.",
          "nth": "그 달의 몇 번째인지 지정합니다(예: 첫째 또는 마지막).",
          "weekday": "n번째 요일 규칙에 사용할 요일입니다(예: 토요일).",
          "day": "월의 일입니다(1-31; 해당 월의 길이에 맞게 조정됨).",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 작업 만들기로 돌아갑니다.",
          "last_day": "일 숫자를 무시하고 해당 월의 마지막 날을 기한으로 합니다.",
          "business": "주말 날짜를 직전 금요일로 앞당깁니다(예: 마지막 영업일).",
          "offset": "계산된 날짜를 ±N일만큼 이동합니다(예: -2 = 이틀 전)."
        }
      },
      "sensor_select": {
        "title": "트리거 센서 선택",
        "description": "이 유지보수 작업에서 모니터링할 Home Assistant 엔티티를 선택하세요.",
        "data": {
          "trigger_entity": "모니터링할 엔티티",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_entity": "이 유지보수 작업을 트리거할 센서 엔티티를 선택하세요.",
          "go_back": "저장하지 않고 작업 만들기로 돌아갑니다."
        }
      },
      "sensor_attribute": {
        "title": "속성 선택",
        "description": "{entity_id}에서 모니터링할 값을 선택하세요. 현재 상태: {current_state} {unit}",
        "data": {
          "trigger_attribute": "모니터링할 값",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_attribute": "모니터링할 엔티티 상태 또는 특정 속성을 선택하세요.",
          "go_back": "저장하지 않고 엔티티 선택으로 돌아갑니다."
        }
      },
      "trigger_type": {
        "title": "트리거 유형",
        "description": "센서 값이 어떤 방식으로 유지보수를 트리거해야 하나요?",
        "data": {
          "trigger_type": "트리거 유형",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_type": "임계값: 값이 한계를 넘으면 트리거됩니다. 카운터: 목표 값이 누적되면 트리거됩니다. 상태 변경: 일정 횟수의 상태 전환 후 트리거됩니다.",
          "go_back": "저장하지 않고 속성 선택으로 돌아갑니다."
        }
      },
      "trigger_threshold": {
        "title": "임계값 구성",
        "description": "**{entity_id}** ({attribute})의 임계값을 설정하세요.\n현재: **{current_value} {unit}** | 평균: {average} | 범위: {minimum}–{maximum} ({data_period}일)\n권장 상한: {suggested_above} | 권장 하한: {suggested_below}",
        "data": {
          "trigger_above": "이 값 초과 시 트리거",
          "trigger_below": "이 값 미만 시 트리거",
          "trigger_equals": "값이 같으면 트리거",
          "trigger_not_equals": "값이 다르면 트리거",
          "trigger_for_minutes": "최소 지속 시간(분)",
          "interval_days": "안전 주기",
          "interval_unit": "주기 단위",
          "trigger_combinator": "트리거와 간격 결합",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료"
        },
        "data_description": {
          "trigger_above": "값이 이 임계값을 초과하면 유지보수를 트리거합니다.",
          "trigger_below": "값이 이 임계값 아래로 떨어지면 유지보수를 트리거합니다.",
          "trigger_equals": "값이 이 수준과 같을 때 유지보수를 트리거합니다.",
          "trigger_not_equals": "값이 이 수준과 다를 때 유지보수를 트리거합니다.",
          "trigger_for_minutes": "트리거되기 전에 값이 이 시간(분) 동안 임계값을 넘어야 합니다.",
          "interval_days": "센서 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "trigger_combinator": "먼저 충족(기본값): 트리거 또는 경과한 간격이 작업을 기한 도래로 만듭니다. 둘 다 필요: 트리거가 발동하고 간격이 경과해야 기한이 됩니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다."
        }
      },
      "trigger_counter": {
        "title": "카운터 구성",
        "description": "{entity_id} ({attribute})의 카운터 목표를 설정하세요. 현재: {current_value} {unit}.",
        "data": {
          "trigger_target_value": "목표 값",
          "trigger_delta_mode": "델타 모드(절대값이 아닌 변화량 계산)",
          "interval_days": "안전 주기",
          "interval_unit": "주기 단위",
          "trigger_combinator": "트리거와 간격 결합",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료",
          "trigger_baseline_value": "시작 값 (선택)"
        },
        "data_description": {
          "trigger_target_value": "이 누적 값에 도달하면 유지보수를 트리거합니다.",
          "trigger_delta_mode": "사용하면 절대값 대신 기준값과의 차이를 계산합니다.",
          "interval_days": "카운터 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "trigger_combinator": "먼저 충족(기본값): 트리거 또는 경과한 간격이 작업을 기한 도래로 만듭니다. 둘 다 필요: 트리거가 발동하고 간격이 경과해야 기한이 됩니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다."
        }
      },
      "trigger_state_change": {
        "title": "상태 변경 구성",
        "description": "{entity_id}의 상태 전환 횟수를 셉니다.",
        "data": {
          "trigger_from_state": "이전 상태(선택 사항)",
          "trigger_to_state": "이후 상태(선택 사항)",
          "trigger_target_changes": "트리거까지의 변경 횟수",
          "trigger_for_minutes": "최소 지속 시간(분)",
          "interval_days": "안전 주기",
          "interval_unit": "주기 단위",
          "trigger_combinator": "트리거와 간격 결합",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료"
        },
        "data_description": {
          "trigger_from_state": "이 상태에서의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.",
          "trigger_to_state": "이 상태로의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.",
          "trigger_target_changes": "유지보수를 트리거하기까지 일치해야 하는 상태 변경 횟수입니다.",
          "interval_days": "상태 변경 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "trigger_combinator": "먼저 충족(기본값): 트리거 또는 경과한 간격이 작업을 기한 도래로 만듭니다. 둘 다 필요: 트리거가 발동하고 간격이 경과해야 기한이 됩니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다.",
          "trigger_for_minutes": "새 상태가 이 시간 동안 유지되어야 변경이 집계됩니다. 0 = 즉시 집계."
        }
      },
      "trigger_runtime": {
        "title": "가동 시간 구성",
        "description": "{entity_id}의 누적 가동 시간을 추적합니다. 총 켜짐 시간이 목표 시간에 도달하면 유지보수가 트리거됩니다.",
        "data": {
          "trigger_runtime_hours": "목표 가동 시간(시간)",
          "trigger_on_states": "활성 상태(쉼표로 구분)",
          "interval_days": "안전 주기",
          "interval_unit": "주기 단위",
          "trigger_combinator": "트리거와 간격 결합",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료"
        },
        "data_description": {
          "trigger_runtime_hours": "누적 가동 시간이 이 시간에 도달하면 유지보수를 트리거합니다.",
          "trigger_on_states": "'활성'으로 간주할 센서 상태입니다. 비워 두면 기본값(on, 1, true)을 사용합니다. 예: in_use, running",
          "interval_days": "가동 시간 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "trigger_combinator": "먼저 충족(기본값): 트리거 또는 경과한 간격이 작업을 기한 도래로 만듭니다. 둘 다 필요: 트리거가 발동하고 간격이 경과해야 기한이 됩니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다."
        }
      },
      "compound_logic": {
        "title": "복합 트리거",
        "description": "여러 조건을 결합하는 방식을 선택하세요.",
        "data": {
          "compound_logic": "논리",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료"
        },
        "data_description": {
          "compound_logic": "AND = 모든 조건이 트리거되어야 합니다. OR = 어느 한 조건만 트리거되면 됩니다.",
          "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다."
        }
      },
      "compound_condition_entity": {
        "title": "조건 #{condition_num} — 엔티티",
        "description": "이 조건에 사용할 엔티티를 선택하세요.",
        "data": {
          "trigger_entity": "엔티티",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_entity": "이 조건에서 모니터링할 센서 엔티티입니다.",
          "go_back": "저장하지 않고 이전 단계로 돌아갑니다."
        }
      },
      "compound_condition_type": {
        "title": "조건 #{condition_num} — 유형",
        "description": "이 조건이 센서를 어떻게 평가해야 하나요?",
        "data": {
          "trigger_type": "트리거 유형",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_type": "이 조건이 트리거되는 시점을 판단하는 방식입니다.",
          "go_back": "저장하지 않고 엔티티 선택으로 돌아갑니다."
        }
      },
      "compound_condition_threshold": {
        "title": "조건 — 임계값",
        "data": {
          "trigger_above": "초과 시 트리거",
          "trigger_below": "미만 시 트리거",
          "trigger_equals": "값이 같으면 트리거",
          "trigger_not_equals": "값이 다르면 트리거",
          "trigger_for_minutes": "지속 시간(분)",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_above": "값이 이 임계값을 초과하면 트리거됩니다.",
          "trigger_below": "값이 이 임계값 아래로 떨어지면 트리거됩니다.",
          "trigger_equals": "값이 이 수준과 같을 때 유지보수를 트리거합니다.",
          "trigger_not_equals": "값이 이 수준과 다를 때 유지보수를 트리거합니다.",
          "trigger_for_minutes": "값이 이 시간 동안 임계값을 벗어난 상태를 유지해야 합니다.",
          "go_back": "저장하지 않고 조건 유형 선택으로 돌아갑니다."
        }
      },
      "compound_condition_counter": {
        "title": "조건 — 카운터",
        "data": {
          "trigger_target_value": "목표 값",
          "trigger_delta_mode": "델타 모드",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_target_value": "누적 값이 이 목표에 도달하면 트리거됩니다.",
          "trigger_delta_mode": "절대값 대신 기준값과의 변화량을 계산합니다.",
          "go_back": "저장하지 않고 조건 유형 선택으로 돌아갑니다."
        }
      },
      "compound_condition_state_change": {
        "title": "조건 — 상태 변경",
        "data": {
          "trigger_from_state": "이전 상태",
          "trigger_to_state": "이후 상태",
          "trigger_target_changes": "변경 횟수",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_from_state": "이 상태에서의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.",
          "trigger_to_state": "이 상태로의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.",
          "trigger_target_changes": "트리거되기까지 일치해야 하는 상태 변경 횟수입니다.",
          "go_back": "저장하지 않고 조건 유형 선택으로 돌아갑니다."
        }
      },
      "compound_condition_runtime": {
        "title": "조건 — 가동 시간",
        "data": {
          "trigger_runtime_hours": "목표 가동 시간(시간)",
          "trigger_on_states": "활성 상태",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_runtime_hours": "누적 가동 시간이 이 시간에 도달하면 트리거됩니다.",
          "trigger_on_states": "'활성'으로 간주할 센서 상태입니다. 비워 두면 기본값을 사용합니다.",
          "go_back": "저장하지 않고 조건 유형 선택으로 돌아갑니다."
        }
      },
      "compound_review": {
        "title": "복합 트리거 검토",
        "description": "{compound_logic} 논리로 {condition_count}개의 조건이 구성되었습니다.",
        "data": {
          "compound_action": "동작",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "go_back": "저장하지 않고 논리 선택으로 돌아갑니다."
        }
      },
      "manual": {
        "title": "수동 일정",
        "description": "이 작업에는 자동 일정이 없습니다. 필요할 때 수동으로 기한 도래 상태로 표시할 수 있습니다.",
        "data": {
          "warning_days": "기한 전 경고 일수",
          "notes": "메모",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "notes": "이 작업에 대한 추가 메모나 지침입니다.",
          "go_back": "저장하지 않고 작업 만들기로 돌아갑니다."
        }
      },
      "reconfigure": {
        "title": "{name} 재구성",
        "description": "이 유지보수 대상의 설정을 업데이트합니다.",
        "data": {
          "name": "대상 이름",
          "area_id": "구역",
          "manufacturer": "제조사",
          "model": "모델",
          "serial_number": "일련번호",
          "documentation_url": "설명서 / 문서 URL",
          "notes": "메모",
          "installation_date": "설치일",
          "warranty_expiry": "보증 만료일"
        },
        "data_description": {
          "name": "이 유지보수 대상의 이름입니다.",
          "area_id": "이 대상이 위치한 구역입니다.",
          "manufacturer": "이 대상의 제조사입니다.",
          "model": "이 대상의 모델입니다.",
          "serial_number": "이 대상의 일련번호입니다.",
          "documentation_url": "PDF 설명서, 제조사 페이지 등 이 대상의 참고 정보가 있는 URL 링크입니다(선택 사항).",
          "notes": "대상에 대한 자유 형식 메모입니다 — 부품 번호, 절차, 설정 참고 사항 등.",
          "installation_date": "이 대상을 설치한 날짜입니다.",
          "warranty_expiry": "이 대상의 제조사 보증이 만료되는 날짜입니다."
        }
      }
    },
    "error": {
      "name_exists": "같은 이름의 유지보수 대상이 이미 있습니다.",
      "no_tasks": "최소 한 개의 유지보수 작업이 필요합니다.",
      "invalid_entity": "선택한 엔티티가 존재하지 않거나 숫자 데이터가 없습니다.",
      "invalid_attribute": "선택한 속성은 이 엔티티에서 사용할 수 없습니다.",
      "invalid_threshold": "최소 하나의 임계값(초과 또는 미만)을 설정해야 합니다.",
      "invalid_due_date": "일회성 작업에는 기한이 필요합니다.",
      "invalid_interval": "주기는 양수여야 합니다.",
      "min_exceeds_max": "최소 주기는 최대 주기를 초과할 수 없습니다.",
      "invalid_notify_service": "알림 서비스 형식이 잘못되었습니다. 'notify.service_name' 형식을 사용하세요(예: notify.mobile_app_phone).",
      "notify_service_not_found": "이 알림 서비스를 Home Assistant에서 찾을 수 없습니다. 서비스 이름을 확인해 주세요.",
      "nfc_tag_duplicate": "이 NFC 태그는 이미 다른 작업에 연결되어 있습니다."
    },
    "abort": {
      "already_configured": "이 유지보수 대상은 이미 구성되어 있습니다.",
      "global_already_exists": "전역 설정이 이미 구성되어 있습니다.",
      "template_not_found": "선택한 템플릿을 찾을 수 없습니다.",
      "missing_data": "필수 데이터가 제공되지 않았습니다.",
      "reconfigure_successful": "구성이 성공적으로 업데이트되었습니다.",
      "reconfigure_cancelled": "재구성이 취소되었습니다."
    }
  },
  "options": {
    "step": {
      "init": {
        "title": "유지보수 옵션",
        "description": "{object_info}",
        "menu_options": {
          "manage_tasks": "작업 관리",
          "add_task": "새 작업 추가",
          "object_settings": "대상 설정",
          "done": "완료"
        }
      },
      "global_init": {
        "title": "전역 설정",
        "description": "전역 유지보수 설정을 구성합니다.",
        "menu_options": {
          "general_settings": "일반 설정",
          "advanced_features": "고급 기능",
          "panel_access": "패널 접근 권한",
          "budget_settings": "예산 설정",
          "manage_groups": "그룹 관리",
          "notification_settings": "알림 설정",
          "notification_actions": "대화형 동작",
          "test_notification": "테스트 알림 보내기",
          "done": "완료"
        }
      },
      "advanced_features": {
        "title": "고급 기능",
        "description": "UI에 표시할 고급 기능을 선택하세요. 기능을 끄면 인터페이스에서 숨겨질 뿐 데이터가 삭제되지는 않습니다.",
        "data": {
          "advanced_adaptive_visible": "적응형 일정",
          "advanced_predictions_visible": "센서 예측",
          "advanced_seasonal_visible": "계절 조정",
          "advanced_environmental_visible": "환경 상관관계",
          "advanced_budget_visible": "예산 추적",
          "advanced_groups_visible": "그룹",
          "advanced_checklists_visible": "체크리스트",
          "advanced_schedule_time_visible": "시간대 지정 일정"
        },
        "data_description": {
          "advanced_adaptive_visible": "작업에 대한 EWA, Weibull 분석 및 주기 제안을 표시합니다.",
          "advanced_predictions_visible": "센서 열화 분석과 임계값 예측 차트를 표시합니다.",
          "advanced_seasonal_visible": "계절 계수 차트와 월별 조정 데이터를 표시합니다.",
          "advanced_environmental_visible": "환경(온도, 습도) 상관관계 조정을 표시합니다.",
          "advanced_budget_visible": "월별/연간 예산 추적과 경보를 표시합니다.",
          "advanced_groups_visible": "유지보수 그룹 관리를 표시합니다.",
          "advanced_checklists_visible": "단계별 완료를 위한 작업 체크리스트를 표시합니다.",
          "advanced_schedule_time_visible": "작업이 자정이 아닌 특정 시각에 기한 초과가 되도록 허용합니다."
        }
      },
      "panel_access": {
        "title": "패널 접근 권한",
        "description": "관리자는 항상 전체 접근 권한을 가집니다. 특정 비관리자에게 생성, 편집, 삭제를 위임하려면 아래 옵션을 켜고 해당 사용자를 선택하세요 — 나머지 사용자에게는 완료와 건너뛰기만 표시됩니다. {user_count}명의 비관리자 사용자를 찾았습니다.",
        "data": {
          "operator_write_enabled": "선택한 사용자에게 생성, 편집, 삭제 허용",
          "admin_panel_user_ids": "전체 패널 접근 권한이 있는 사용자"
        },
        "data_description": {
          "operator_write_enabled": "꺼짐(기본값): 관리자만 콘텐츠를 수정할 수 있습니다. 켜짐: 아래에서 선택한 사용자도 전체 생성/편집/삭제 권한을 갖습니다.",
          "admin_panel_user_ids": "목록에 있는 사용자는 전체 패널을 볼 수 있고, 나머지 사용자에게는 각 작업의 완료와 건너뛰기만 표시됩니다."
        }
      },
      "general_settings": {
        "title": "일반 설정",
        "description": "Maintenance Supporter의 기본 설정을 구성합니다.",
        "data": {
          "default_warning_days": "기본 기한 전 경고 일수",
          "notifications_enabled": "알림 사용",
          "notify_service": "알림 서비스",
          "panel_enabled": "사이드바 패널 표시",
          "panel_title": "사이드바 패널 제목"
        },
        "data_description": {
          "default_warning_days": "유지보수 작업의 기한 전에 경고를 표시할 일수입니다.",
          "notifications_enabled": "유지보수 작업의 기한이 되거나 기한을 초과하면 알림을 보냅니다.",
          "notify_service": "사용할 알림 서비스입니다(예: notify.mobile_app_phone).",
          "panel_enabled": "사이드바에 Maintenance Supporter 패널을 표시합니다.",
          "panel_title": "사이드바 항목의 사용자 지정 이름입니다. 비워 두면 \"유지보수\"를 사용합니다. Home Assistant 기본 유지보수 대시보드와 이름이 겹치지 않게 할 때 유용합니다."
        }
      },
      "notification_settings": {
        "title": "알림 설정",
        "description": "각 상태별로 알림을 언제, 얼마나 자주 보낼지 구성합니다.",
        "data": {
          "notify_due_soon_enabled": "기한 임박 시 알림",
          "notify_due_soon_interval_hours": "기한 임박 알림 반복 간격(시간)",
          "notify_overdue_enabled": "기한 초과 시 알림",
          "notify_overdue_interval_hours": "기한 초과 알림 반복 간격(시간)",
          "notify_triggered_enabled": "트리거 시 알림",
          "notify_triggered_interval_hours": "트리거 알림 반복 간격(시간)",
          "quiet_hours_enabled": "방해 금지 시간 사용",
          "quiet_hours_start": "방해 금지 시작",
          "quiet_hours_end": "방해 금지 종료",
          "max_notifications_per_day": "하루 최대 알림 수",
          "notification_bundling_enabled": "알림 묶어 보내기",
          "notification_bundle_threshold": "묶음 기준 수",
          "notification_title_style": "알림 제목 스타일"
        },
        "data_description": {
          "notify_due_soon_interval_hours": "기한 임박 알림을 반복하는 간격입니다. 0으로 설정하면 한 번만 알립니다.",
          "notify_overdue_interval_hours": "기한 초과 알림을 반복하는 간격입니다. 0으로 설정하면 한 번만 알립니다.",
          "notify_triggered_interval_hours": "트리거 알림을 반복하는 간격입니다. 0으로 설정하면 한 번만 알립니다.",
          "quiet_hours_enabled": "방해 금지 시간 동안 알림을 보내지 않습니다.",
          "max_notifications_per_day": "하루에 보낼 최대 알림 수입니다. 0으로 설정하면 무제한입니다.",
          "notification_bundling_enabled": "여러 작업이 주의가 필요할 때 하나의 요약 알림으로 보냅니다.",
          "notification_bundle_threshold": "묶음 알림을 보내기 위한 최소 작업 수입니다.",
          "notification_title_style": "알림의 제목으로 표시할 내용입니다. 기본값은 상태별 문구(예: '유지보수 기한 초과!')를 유지합니다. 휴대폰에 알림이 쌓일 때는 대상 이름/작업 이름이 도움이 됩니다."
        }
      },
      "notification_actions": {
        "title": "대화형 동작",
        "description": "모바일 알림에 표시되는 동작 버튼을 구성합니다(Companion 앱 필요).",
        "data": {
          "action_complete_enabled": "'완료' 버튼 표시",
          "action_skip_enabled": "'건너뛰기' 버튼 표시",
          "action_snooze_enabled": "'다시 알림' 버튼 표시",
          "snooze_duration_hours": "다시 알림 시간(시간)"
        },
        "data_description": {
          "action_complete_enabled": "알림에서 바로 작업을 완료로 표시하는 버튼을 추가합니다.",
          "action_skip_enabled": "알림에서 현재 유지보수 주기를 건너뛰는 버튼을 추가합니다.",
          "action_snooze_enabled": "알림을 뒤로 미루는 버튼을 추가합니다.",
          "snooze_duration_hours": "다시 알림을 누르면 알림을 미루는 시간입니다."
        }
      },
      "budget_settings": {
        "title": "예산 설정",
        "description": "지출을 추적할 월별 및 연간 유지보수 예산을 설정하세요.",
        "data": {
          "budget_currency": "통화",
          "budget_monthly": "월 예산",
          "budget_yearly": "연 예산",
          "budget_alerts_enabled": "예산 경보 사용",
          "budget_alert_threshold": "경보 기준(%)"
        },
        "data_description": {
          "budget_currency": "예산 표시와 알림에 사용할 통화입니다.",
          "budget_monthly": "월별 최대 유지보수 지출입니다. 0으로 설정하면 사용하지 않습니다.",
          "budget_yearly": "연간 최대 유지보수 지출입니다. 0으로 설정하면 사용하지 않습니다.",
          "budget_alerts_enabled": "지출이 경보 기준을 넘으면 알림을 보냅니다.",
          "budget_alert_threshold": "경보를 보낼 예산 대비 비율(%)입니다."
        }
      },
      "test_notification": {
        "title": "테스트 알림",
        "description": "{result}"
      },
      "manage_groups": {
        "title": "그룹 관리",
        "description": "관리할 그룹을 선택하거나 새로 만드세요.",
        "data": {
          "selected_group": "그룹 선택"
        }
      },
      "add_group": {
        "title": "그룹 추가",
        "description": "관련 작업을 정리할 새 유지보수 그룹을 만듭니다.",
        "data": {
          "group_name": "그룹 이름",
          "group_description": "설명"
        },
        "data_description": {
          "group_name": "이 그룹의 이름입니다(예: '봄철 유지보수').",
          "group_description": "이 그룹에 대한 설명입니다(선택 사항)."
        }
      },
      "manage_tasks": {
        "title": "작업 관리",
        "description": "편집하거나 제거할 작업을 선택하세요.",
        "data": {
          "selected_task": "작업 선택",
          "go_back": "뒤로 가기"
        }
      },
      "task_action": {
        "title": "작업 동작",
        "description": "작업: {task_name} — 동작을 선택하세요.\n\n다음 기한: {next_dates}",
        "menu_options": {
          "edit_task": "작업 편집",
          "edit_trigger": "트리거 편집",
          "remove_trigger": "트리거 제거",
          "edit_checklist": "체크리스트 편집",
          "adaptive_scheduling": "적응형 일정",
          "delete_task": "작업 삭제",
          "manage_tasks": "뒤로"
        }
      },
      "edit_task": {
        "title": "작업 편집",
        "description": "**{task_name}**의 설정을 편집합니다.",
        "data": {
          "name": "작업 이름",
          "type": "유지보수 유형",
          "interval_days": "주기",
          "interval_unit": "주기 단위",
          "warning_days": "기한 전 경고 일수",
          "due_date": "기한",
          "enabled": "사용",
          "notes": "메모",
          "documentation_url": "문서 URL",
          "last_performed": "마지막 수행일",
          "responsible_user_id": "담당 사용자",
          "custom_icon": "작업 아이콘",
          "nfc_tag_id": "NFC 태그 ID",
          "go_back": "뒤로 가기",
          "interval_anchor": "주기 기준점",
          "reading_unit": "측정 단위(측정형 작업용, 예: kWh)",
          "season_months": "계절 기간(월)",
          "ends_count": "종료 횟수(반복 횟수)",
          "ends_until": "종료 날짜"
        },
        "data_description": {
          "name": "이 작업을 설명하는 이름입니다(예: '필터 청소', '엔진 오일 교환').",
          "type": "유지보수 작업의 범주입니다.",
          "interval_days": "주기 단위와 함께 이 유지보수가 반복되는 빈도를 정합니다.",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "due_date": "이 일회성 작업의 기한입니다.",
          "enabled": "끄면 일정과 트리거가 일시 중지됩니다. 작업이 삭제되지는 않습니다.",
          "notes": "이 작업에 대한 추가 메모나 지침입니다.",
          "documentation_url": "이 작업의 외부 문서나 설명서 링크입니다.",
          "last_performed": "이 유지보수를 마지막으로 수행한 시점입니다. 수행한 적이 없으면 비워 두세요.",
          "responsible_user_id": "이 작업을 담당하는 Home Assistant 사용자입니다.",
          "custom_icon": "이 작업의 사용자 지정 아이콘입니다(선택 사항, 예: mdi:oil, mdi:filter-variant).",
          "nfc_tag_id": "이 작업에 NFC 태그를 연결합니다. 태그를 스캔하면 작업이 자동으로 완료 처리됩니다.",
          "go_back": "저장하지 않고 작업 동작으로 돌아갑니다.",
          "interval_anchor": "완료 후 다음 기한을 계산하는 방식입니다. '계획일 기준'은 원래 기한에 고정하여 일정이 밀리는 것을 방지합니다.",
          "season_months": "선택한 월에만 기한이 됩니다. 비활성 기간의 날짜는 다음 활성 월로 이월됩니다. 비워 두면 연중 내내 적용됩니다.",
          "ends_count": "이 횟수만큼 완료한 후 반복을 멈춥니다(유한 반복). 비워 두면 제한이 없습니다.",
          "ends_until": "다음 반복이 이 날짜 이후가 되면 반복을 멈춥니다. '종료 횟수'가 설정되어 있으면 무시됩니다."
        }
      },
      "edit_checklist": {
        "title": "체크리스트 편집",
        "description": "{task_name}의 체크리스트 단계를 정의하세요. 한 줄에 하나씩 입력하세요.",
        "data": {
          "checklist_text": "체크리스트 단계",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "checklist_text": "각 체크리스트 단계를 한 줄에 하나씩 입력하세요. 작업을 완료할 때 이 단계들이 표시됩니다.",
          "go_back": "저장하지 않고 작업 동작으로 돌아갑니다."
        }
      },
      "compound_logic": {
        "title": "복합 트리거",
        "description": "여러 조건을 결합하는 방식을 선택하세요.",
        "data": {
          "compound_logic": "논리",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료"
        },
        "data_description": {
          "compound_logic": "AND = 모든 조건이 트리거되어야 합니다. OR = 어느 한 조건만 트리거되면 됩니다."
        }
      },
      "compound_condition_entity": {
        "title": "조건 #{condition_num} — 엔티티",
        "description": "이 조건에 사용할 엔티티를 선택하세요.",
        "data": {
          "trigger_entity": "엔티티",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_entity": "이 조건에서 모니터링할 센서 엔티티입니다."
        }
      },
      "compound_condition_type": {
        "title": "조건 #{condition_num} — 유형",
        "description": "이 조건이 센서를 어떻게 평가해야 하나요?",
        "data": {
          "trigger_type": "트리거 유형",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_type": "이 조건이 트리거되는 시점을 판단하는 방식입니다."
        }
      },
      "compound_condition_threshold": {
        "title": "조건 — 임계값",
        "data": {
          "trigger_above": "초과 시 트리거",
          "trigger_below": "미만 시 트리거",
          "trigger_equals": "값이 같으면 트리거",
          "trigger_not_equals": "값이 다르면 트리거",
          "trigger_for_minutes": "지속 시간(분)",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_above": "값이 이 임계값을 초과하면 트리거됩니다.",
          "trigger_below": "값이 이 임계값 아래로 떨어지면 트리거됩니다.",
          "trigger_equals": "값이 이 수준과 같을 때 유지보수를 트리거합니다.",
          "trigger_not_equals": "값이 이 수준과 다를 때 유지보수를 트리거합니다.",
          "trigger_for_minutes": "값이 이 시간 동안 임계값을 벗어난 상태를 유지해야 합니다."
        }
      },
      "compound_condition_counter": {
        "title": "조건 — 카운터",
        "data": {
          "trigger_target_value": "목표 값",
          "trigger_delta_mode": "델타 모드",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_target_value": "누적 값이 이 목표에 도달하면 트리거됩니다.",
          "trigger_delta_mode": "절대값 대신 기준값과의 변화량을 계산합니다."
        }
      },
      "compound_condition_state_change": {
        "title": "조건 — 상태 변경",
        "data": {
          "trigger_from_state": "이전 상태",
          "trigger_to_state": "이후 상태",
          "trigger_target_changes": "변경 횟수",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_from_state": "이 상태에서의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.",
          "trigger_to_state": "이 상태로의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.",
          "trigger_target_changes": "트리거되기까지 일치해야 하는 상태 변경 횟수입니다."
        }
      },
      "compound_condition_runtime": {
        "title": "조건 — 가동 시간",
        "data": {
          "trigger_runtime_hours": "목표 가동 시간(시간)",
          "trigger_on_states": "활성 상태",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_runtime_hours": "누적 가동 시간이 이 시간에 도달하면 트리거됩니다.",
          "trigger_on_states": "'활성'으로 간주할 센서 상태입니다. 비워 두면 기본값을 사용합니다."
        }
      },
      "compound_review": {
        "title": "복합 트리거 검토",
        "description": "{compound_logic} 논리로 {condition_count}개의 조건이 구성되었습니다.",
        "data": {
          "compound_action": "동작",
          "go_back": "뒤로 가기"
        }
      },
      "adaptive_scheduling": {
        "title": "적응형 일정",
        "description": "{task_name}의 스마트 주기 적응을 구성합니다. 시스템이 완료 피드백을 학습하여 더 나은 주기를 제안합니다.",
        "data": {
          "adaptive_enabled": "적응형 일정 사용",
          "ewa_alpha": "학습률(alpha)",
          "min_interval_days": "최소 주기(일)",
          "max_interval_days": "최대 주기(일)",
          "seasonal_enabled": "계절 인식 사용",
          "sensor_prediction_enabled": "센서 기반 예측 사용",
          "environmental_entity": "환경 센서(선택 사항)",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "adaptive_enabled": "사용하면 시스템이 피드백을 학습하여 최적의 유지보수 주기를 제안합니다.",
          "ewa_alpha": "알고리즘이 새 데이터에 적응하는 속도입니다. 높을수록 민감하고, 낮을수록 안정적입니다.",
          "min_interval_days": "시스템이 제안할 수 있는 가장 짧은 주기입니다.",
          "max_interval_days": "시스템이 제안할 수 있는 가장 긴 주기입니다.",
          "seasonal_enabled": "유지보수 이력에서 학습한 계절 패턴에 따라 제안을 조정합니다.",
          "sensor_prediction_enabled": "센서 추세를 분석하여 임계값 도달 시점을 예측하고 필요하면 더 이른 유지보수를 제안합니다.",
          "environmental_entity": "온도, 습도 또는 압력 센서를 연결하여 환경 조건과 유지보수 주기의 상관관계를 분석합니다.",
          "go_back": "저장하지 않고 작업 동작으로 돌아갑니다."
        }
      },
      "delete_task": {
        "title": "작업 삭제",
        "description": "작업 {task_name}을(를) 삭제하시겠습니까? 이 동작은 되돌릴 수 없습니다.",
        "data": {
          "confirm": "삭제 확인",
          "go_back": "뒤로 가기"
        }
      },
      "remove_trigger": {
        "title": "트리거 제거",
        "description": "**{task_name}**에서 트리거를 제거할까요?\n\n**엔티티:** {entity_ids}\n**유형:** {trigger_type}\n**구성:** {config_details}\n\n모든 엔티티가 제거되면 일정이 시간 기반으로 되돌아갑니다.",
        "data": {
          "entities_to_remove": "제거할 엔티티",
          "confirm": "제거 확인",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "entities_to_remove": "이 트리거에서 제거할 엔티티를 선택하세요. 모두 제거하면 트리거 전체가 삭제됩니다.",
          "go_back": "저장하지 않고 작업 동작으로 돌아갑니다."
        }
      },
      "trigger_summary": {
        "title": "현재 트리거",
        "description": "**{task_name}**의 트리거:\n\n**엔티티:** {entity_ids}\n**현재 상태:** {current_states}\n**유형:** {trigger_type} (속성: {attribute})\n**구성:** {config_details}",
        "menu_options": {
          "edit_trigger_proceed": "트리거 편집",
          "task_action": "뒤로"
        }
      },
      "add_task": {
        "title": "유지보수 작업 추가",
        "description": "이 대상의 새 유지보수 작업을 정의합니다.",
        "data": {
          "name": "작업 이름",
          "type": "유지보수 유형",
          "schedule_type": "일정 유형",
          "custom_icon": "작업 아이콘",
          "go_back": "뒤로 가기",
          "reading_unit": "측정 단위(측정형 작업용, 예: kWh)"
        },
        "data_description": {
          "name": "이 작업을 설명하는 이름입니다(예: '필터 청소', '엔진 오일 교환').",
          "type": "유지보수 작업의 범주입니다.",
          "schedule_type": "이 작업의 일정을 정하는 방식입니다.",
          "custom_icon": "이 작업의 사용자 지정 아이콘입니다(선택 사항, 예: mdi:oil, mdi:filter-variant).",
          "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다."
        }
      },
      "opt_time_based": {
        "title": "시간 기반 일정",
        "description": "이 작업의 시간 주기를 구성합니다.",
        "data": {
          "interval_days": "주기",
          "interval_unit": "주기 단위",
          "last_performed": "마지막 수행일",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "interval_anchor": "주기 기준점"
        },
        "data_description": {
          "interval_days": "주기 단위와 함께 이 유지보수가 반복되는 빈도를 정합니다.",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "last_performed": "이 유지보수를 마지막으로 수행한 시점입니다. 수행한 적이 없으면 비워 두세요.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다.",
          "interval_anchor": "완료 후 다음 기한을 계산하는 방식입니다. '계획일 기준'은 원래 기한에 고정하여 일정이 밀리는 것을 방지합니다."
        }
      },
      "opt_one_time": {
        "title": "일회성 작업",
        "description": "반복되지 않는 단일 유지보수 작업을 구성합니다. 완료되면 보관 처리됩니다.",
        "data": {
          "due_date": "기한",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "due_date": "이 일회성 작업의 기한입니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다."
        }
      },
      "opt_calendar": {
        "title": "달력 일정",
        "description": "달력 기반 반복(요일, 매월 n번째 요일 또는 매월 특정 일)을 구성합니다.",
        "data": {
          "weekdays": "반복할 요일",
          "nth": "몇 번째",
          "weekday": "요일",
          "day": "일(날짜)",
          "last_performed": "마지막 수행일",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "last_day": "월의 마지막 날",
          "business": "영업일만",
          "offset": "오프셋(일)"
        },
        "data_description": {
          "weekdays": "선택한 각 요일마다 작업이 반복됩니다.",
          "nth": "그 달의 몇 번째인지 지정합니다(예: 첫째 또는 마지막).",
          "weekday": "n번째 요일 규칙에 사용할 요일입니다(예: 토요일).",
          "day": "월의 일입니다(1-31; 해당 월의 길이에 맞게 조정됨).",
          "last_performed": "이 유지보수를 마지막으로 수행한 시점입니다. 수행한 적이 없으면 비워 두세요.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다.",
          "last_day": "일 숫자를 무시하고 해당 월의 마지막 날을 기한으로 합니다.",
          "business": "주말 날짜를 직전 금요일로 앞당깁니다(예: 마지막 영업일).",
          "offset": "계산된 날짜를 ±N일만큼 이동합니다(예: -2 = 이틀 전)."
        }
      },
      "opt_manual": {
        "title": "수동 일정",
        "description": "이 작업에는 자동 일정이 없습니다. 필요할 때 수동으로 기한 도래 상태로 표시할 수 있습니다.",
        "data": {
          "warning_days": "기한 전 경고 일수",
          "notes": "메모",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "notes": "이 작업에 대한 추가 메모나 지침입니다.",
          "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다."
        }
      },
      "opt_sensor_select": {
        "title": "트리거 센서 선택",
        "description": "모니터링할 Home Assistant 엔티티를 선택하세요.",
        "data": {
          "trigger_entity": "모니터링할 엔티티",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_entity": "이 유지보수 작업을 트리거할 센서 엔티티를 선택하세요."
        }
      },
      "opt_sensor_attribute": {
        "title": "속성 선택",
        "description": "{entity_id}에서 모니터링할 값을 선택하세요. 현재 상태: {current_state} {unit}",
        "data": {
          "trigger_attribute": "모니터링할 값",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_attribute": "모니터링할 엔티티 상태 또는 특정 속성을 선택하세요."
        }
      },
      "opt_trigger_type": {
        "title": "트리거 유형",
        "description": "센서 값이 어떤 방식으로 유지보수를 트리거해야 하나요?",
        "data": {
          "trigger_type": "트리거 유형",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "trigger_type": "임계값: 값이 한계를 넘으면 트리거됩니다. 카운터: 목표 값이 누적되면 트리거됩니다. 상태 변경: 일정 횟수의 상태 전환 후 트리거됩니다."
        }
      },
      "opt_trigger_threshold": {
        "title": "임계값 구성",
        "description": "**{entity_id}** ({attribute})의 임계값을 설정하세요.\n현재: **{current_value} {unit}** | 평균: {average} | 범위: {minimum}–{maximum} ({data_period}일)\n권장 상한: {suggested_above} | 권장 하한: {suggested_below}",
        "data": {
          "trigger_above": "이 값 초과 시 트리거",
          "trigger_below": "이 값 미만 시 트리거",
          "trigger_equals": "값이 같으면 트리거",
          "trigger_not_equals": "값이 다르면 트리거",
          "trigger_for_minutes": "최소 지속 시간(분)",
          "interval_days": "안전 주기",
          "interval_unit": "주기 단위",
          "trigger_combinator": "트리거와 간격 결합",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료"
        },
        "data_description": {
          "trigger_above": "값이 이 임계값을 초과하면 유지보수를 트리거합니다.",
          "trigger_below": "값이 이 임계값 아래로 떨어지면 유지보수를 트리거합니다.",
          "trigger_equals": "값이 이 수준과 같을 때 유지보수를 트리거합니다.",
          "trigger_not_equals": "값이 이 수준과 다를 때 유지보수를 트리거합니다.",
          "trigger_for_minutes": "트리거되기 전에 값이 이 시간(분) 동안 임계값을 넘어야 합니다.",
          "interval_days": "센서 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "trigger_combinator": "먼저 충족(기본값): 트리거 또는 경과한 간격이 작업을 기한 도래로 만듭니다. 둘 다 필요: 트리거가 발동하고 간격이 경과해야 기한이 됩니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다."
        }
      },
      "opt_trigger_counter": {
        "title": "카운터 구성",
        "description": "{entity_id} ({attribute})의 카운터 목표를 설정하세요. 현재: {current_value} {unit}.",
        "data": {
          "trigger_target_value": "목표 값",
          "trigger_delta_mode": "델타 모드(절대값이 아닌 변화량 계산)",
          "interval_days": "안전 주기",
          "interval_unit": "주기 단위",
          "trigger_combinator": "트리거와 간격 결합",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료",
          "trigger_baseline_value": "시작 값 (선택)"
        },
        "data_description": {
          "trigger_target_value": "이 누적 값에 도달하면 유지보수를 트리거합니다.",
          "trigger_delta_mode": "사용하면 절대값 대신 기준값과의 차이를 계산합니다.",
          "interval_days": "카운터 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "trigger_combinator": "먼저 충족(기본값): 트리거 또는 경과한 간격이 작업을 기한 도래로 만듭니다. 둘 다 필요: 트리거가 발동하고 간격이 경과해야 기한이 됩니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다."
        }
      },
      "opt_trigger_state_change": {
        "title": "상태 변경 구성",
        "description": "{entity_id}의 상태 전환 횟수를 셉니다.",
        "data": {
          "trigger_from_state": "이전 상태(선택 사항)",
          "trigger_to_state": "이후 상태(선택 사항)",
          "trigger_target_changes": "트리거까지의 변경 횟수",
          "trigger_for_minutes": "최소 지속 시간(분)",
          "interval_days": "안전 주기",
          "interval_unit": "주기 단위",
          "trigger_combinator": "트리거와 간격 결합",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료"
        },
        "data_description": {
          "trigger_from_state": "이 상태에서의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.",
          "trigger_to_state": "이 상태로의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.",
          "trigger_target_changes": "유지보수를 트리거하기까지 일치해야 하는 상태 변경 횟수입니다.",
          "interval_days": "상태 변경 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "trigger_combinator": "먼저 충족(기본값): 트리거 또는 경과한 간격이 작업을 기한 도래로 만듭니다. 둘 다 필요: 트리거가 발동하고 간격이 경과해야 기한이 됩니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다.",
          "trigger_for_minutes": "새 상태가 이 시간 동안 유지되어야 변경이 집계됩니다. 0 = 즉시 집계."
        }
      },
      "opt_trigger_runtime": {
        "title": "가동 시간 구성",
        "description": "{entity_id}의 누적 가동 시간을 추적합니다.",
        "data": {
          "trigger_runtime_hours": "목표 가동 시간(시간)",
          "trigger_on_states": "활성 상태(쉼표로 구분)",
          "interval_days": "안전 주기",
          "interval_unit": "주기 단위",
          "trigger_combinator": "트리거와 간격 결합",
          "warning_days": "기한 전 경고 일수",
          "go_back": "뒤로 가기",
          "auto_complete_on_recovery": "센서가 정상으로 돌아오면 자동 완료"
        },
        "data_description": {
          "trigger_runtime_hours": "누적 가동 시간이 이 시간에 도달하면 유지보수를 트리거합니다.",
          "trigger_on_states": "'활성'으로 간주할 센서 상태입니다. 비워 두면 기본값(on, 1, true)을 사용합니다. 예: in_use, running",
          "interval_days": "가동 시간 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).",
          "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.",
          "trigger_combinator": "먼저 충족(기본값): 트리거 또는 경과한 간격이 작업을 기한 도래로 만듭니다. 둘 다 필요: 트리거가 발동하고 간격이 경과해야 기한이 됩니다.",
          "warning_days": "기한 전에 경고를 표시할 일수입니다."
        }
      },
      "object_settings": {
        "title": "대상 설정",
        "description": "대상 정보를 편집합니다.",
        "data": {
          "name": "대상 이름",
          "manufacturer": "제조사",
          "model": "모델",
          "serial_number": "일련번호",
          "documentation_url": "설명서 / 문서 URL",
          "notes": "메모",
          "area_id": "구역",
          "installation_date": "설치일",
          "warranty_expiry": "보증 만료일",
          "go_back": "뒤로 가기"
        },
        "data_description": {
          "name": "이 유지보수 대상의 고유한 이름입니다(예: '수영장 펌프', '자동차').",
          "manufacturer": "대상의 제조사입니다.",
          "model": "모델명 또는 모델 번호입니다.",
          "serial_number": "대상의 일련번호입니다.",
          "documentation_url": "PDF 설명서, 제조사 페이지 등 이 대상의 참고 정보가 있는 URL 링크입니다(선택 사항).",
          "notes": "대상에 대한 자유 형식 메모입니다 — 부품 번호, 절차, 설정 참고 사항 등.",
          "area_id": "이 대상이 위치한 집 안의 구역입니다.",
          "installation_date": "이 대상을 설치했거나 구입한 날짜입니다.",
          "warranty_expiry": "이 대상의 제조사 보증이 만료되는 날짜입니다.",
          "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다."
        }
      }
    }
  },
  "entity": {
    "button": {
      "button_complete": {
        "name": "{task_name} 완료"
      },
      "button_skip": {
        "name": "{task_name} 건너뛰기"
      },
      "button_reset": {
        "name": "{task_name} 초기화"
      }
    },
    "sensor": {
      "maintenance_task": {
        "name": "{task_name}",
        "state": {
          "ok": "정상",
          "due_soon": "기한 임박",
          "overdue": "기한 초과",
          "triggered": "트리거됨",
          "archived": "보관됨",
          "paused": "일시 중지됨"
        },
        "state_attributes": {
          "maintenance_type": {
            "name": "유지보수 유형",
            "state": {
              "cleaning": "청소",
              "inspection": "점검",
              "replacement": "교체",
              "calibration": "보정",
              "service": "정비",
              "reading": "측정",
              "custom": "사용자 지정"
            }
          },
          "schedule_type": {
            "name": "일정 유형",
            "state": {
              "time_based": "시간 기반",
              "sensor_based": "센서 기반",
              "one_time": "일회성",
              "manual": "수동"
            }
          },
          "interval_days": {
            "name": "주기"
          },
          "interval_unit": {
            "name": "주기 단위"
          },
          "warning_days": {
            "name": "경고 일수"
          },
          "last_performed": {
            "name": "마지막 수행일"
          },
          "next_due": {
            "name": "다음 기한"
          },
          "days_until_due": {
            "name": "기한까지 남은 일수"
          },
          "parent_object": {
            "name": "상위 대상"
          },
          "times_performed": {
            "name": "수행 횟수"
          },
          "total_cost": {
            "name": "총 비용"
          },
          "average_duration": {
            "name": "평균 소요 시간(분)"
          },
          "notes": {
            "name": "메모"
          },
          "documentation_url": {
            "name": "문서 URL"
          },
          "trigger_entity": {
            "name": "트리거 엔티티"
          },
          "trigger_attribute": {
            "name": "트리거 속성"
          },
          "trigger_type": {
            "name": "트리거 유형",
            "state": {
              "threshold": "임계값",
              "counter": "카운터",
              "state_change": "상태 변경",
              "runtime": "가동 시간",
              "compound": "복합"
            }
          },
          "trigger_active": {
            "name": "트리거 활성"
          },
          "trigger_current_value": {
            "name": "트리거 현재 값"
          },
          "trigger_entity_state": {
            "name": "트리거 엔티티 상태",
            "state": {
              "available": "사용 가능",
              "unavailable": "사용 불가",
              "missing": "없음",
              "startup": "시작 중"
            }
          },
          "trigger_above": {
            "name": "초과 시 트리거"
          },
          "trigger_below": {
            "name": "미만 시 트리거"
          },
          "trigger_for_minutes": {
            "name": "트리거 지속 시간(분)"
          },
          "trigger_target_value": {
            "name": "트리거 목표 값"
          },
          "trigger_delta_mode": {
            "name": "트리거 델타 모드"
          },
          "trigger_baseline_value": {
            "name": "트리거 기준값"
          },
          "trigger_current_delta": {
            "name": "트리거 현재 델타"
          },
          "trigger_from_state": {
            "name": "트리거 이전 상태"
          },
          "trigger_to_state": {
            "name": "트리거 이후 상태"
          },
          "trigger_target_changes": {
            "name": "트리거 목표 변경 횟수"
          },
          "trigger_change_count": {
            "name": "트리거 변경 횟수"
          },
          "trigger_runtime_hours": {
            "name": "목표 가동 시간(시간)"
          },
          "trigger_accumulated_hours": {
            "name": "누적 가동 시간(시간)"
          },
          "trigger_remaining_hours": {
            "name": "남은 가동 시간(시간)"
          },
          "last_entry": {
            "name": "마지막 기록"
          },
          "suggested_interval": {
            "name": "제안 주기"
          },
          "interval_confidence": {
            "name": "주기 신뢰도",
            "state": {
              "low": "낮음",
              "medium": "보통",
              "high": "높음"
            }
          },
          "adaptive_scheduling_enabled": {
            "name": "적응형 일정 사용됨"
          },
          "seasonal_factor": {
            "name": "계절 계수"
          },
          "seasonal_reason": {
            "name": "계절 근거",
            "state": {
              "learned": "학습됨",
              "manual": "수동"
            }
          },
          "degradation_rate": {
            "name": "열화율"
          },
          "degradation_trend": {
            "name": "열화 추세",
            "state": {
              "rising": "상승",
              "falling": "하강",
              "stable": "안정",
              "insufficient_data": "데이터 부족"
            }
          },
          "days_until_threshold": {
            "name": "임계값까지 남은 일수"
          },
          "threshold_prediction_confidence": {
            "name": "예측 신뢰도",
            "state": {
              "low": "낮음",
              "medium": "보통",
              "high": "높음"
            }
          },
          "environmental_factor": {
            "name": "환경 계수"
          },
          "environmental_entity": {
            "name": "환경 엔티티"
          },
          "weibull_beta": {
            "name": "Weibull 형상 모수(β)"
          },
          "weibull_eta": {
            "name": "Weibull 척도 모수(η)"
          },
          "weibull_r_squared": {
            "name": "Weibull 결정계수(R²)"
          },
          "weibull_beta_interpretation": {
            "name": "고장 패턴",
            "state": {
              "early_failures": "초기 고장",
              "random_failures": "무작위 고장",
              "wear_out": "마모성 고장",
              "highly_predictable": "매우 예측 가능"
            }
          },
          "confidence_interval_low": {
            "name": "신뢰 구간(하한)"
          },
          "confidence_interval_high": {
            "name": "신뢰 구간(상한)"
          },
          "interval_anchor": {
            "name": "주기 기준점",
            "state": {
              "completion": "완료일 기준",
              "planned": "계획일 기준"
            }
          },
          "due_date": {
            "name": "기한"
          }
        }
      },
      "summary_overdue": {
        "name": "기한 초과"
      },
      "summary_due_soon": {
        "name": "기한 임박"
      },
      "summary_triggered": {
        "name": "트리거됨"
      },
      "summary_needs_attention": {
        "name": "주의 필요"
      },
      "summary_ok": {
        "name": "정상"
      },
      "document_storage": {
        "name": "문서 저장소"
      },
      "summary_total_tasks": {
        "name": "전체 작업 수"
      },
      "next_due": {
        "name": "{task_name} 다음 기한"
      },
      "days_until_due": {
        "name": "{task_name} 기한까지 남은 일수"
      },
      "parts_to_reorder": {
        "name": "재주문할 부품"
      },
      "batteries_to_replace": {
        "name": "교체할 배터리"
      }
    },
    "calendar": {
      "maintenance_schedule": {
        "name": "유지보수 일정"
      }
    },
    "binary_sensor": {
      "maintenance_task_due": {
        "name": "{task_name} 기한 초과",
        "state_attributes": {
          "maintenance_status": {
            "name": "유지보수 상태",
            "state": {
              "ok": "정상",
              "due_soon": "기한 임박",
              "overdue": "기한 초과",
              "triggered": "트리거됨",
              "archived": "보관됨"
            }
          },
          "days_until_due": {
            "name": "기한까지 남은 일수"
          },
          "next_due": {
            "name": "다음 기한"
          },
          "parent_object": {
            "name": "상위 대상"
          }
        }
      }
    },
    "todo": {
      "maintenance_todo": {
        "name": "유지보수"
      }
    }
  },
  "selector": {
    "maintenance_type": {
      "options": {
        "cleaning": "청소",
        "inspection": "점검",
        "replacement": "교체",
        "calibration": "보정",
        "service": "정비",
        "reading": "측정",
        "custom": "사용자 지정"
      }
    },
    "schedule_type": {
      "options": {
        "time_based": "시간 기반",
        "weekdays": "요일별",
        "nth_weekday": "매월 n번째 요일",
        "day_of_month": "매월 특정 일",
        "sensor_based": "센서 기반",
        "one_time": "일회성",
        "manual": "수동"
      }
    },
    "interval_unit": {
      "options": {
        "days": "일",
        "weeks": "주",
        "months": "개월",
        "years": "년"
      }
    },
    "trigger_type": {
      "options": {
        "threshold": "임계값",
        "counter": "카운터",
        "state_change": "상태 변경",
        "runtime": "가동 시간",
        "compound": "복합(여러 조건)"
      }
    },
    "compound_logic": {
      "options": {
        "and": "AND (모든 조건이 트리거되어야 함)",
        "or": "OR (어느 한 조건만 트리거되면 됨)"
      }
    },
    "entity_logic": {
      "options": {
        "any": "아무 엔티티나 트리거되면 됨",
        "all": "모든 엔티티가 트리거되어야 함"
      }
    },
    "trigger_combinator": {
      "options": {
        "any": "트리거 또는 간격 (먼저 충족)",
        "all": "트리거와 간격 (둘 다 필요)"
      }
    },
    "notification_title_style": {
      "options": {
        "default": "기본(상태별 제목)",
        "object_name": "대상 이름을 제목으로",
        "task_name": "작업 이름을 제목으로"
      }
    }
  },
  "services": {
    "complete": {
      "name": "유지보수 완료",
      "description": "유지보수 작업을 완료로 표시합니다.",
      "fields": {
        "entity_id": {
          "name": "엔티티",
          "description": "완료할 유지보수 센서 엔티티입니다."
        },
        "notes": {
          "name": "메모",
          "description": "수행한 유지보수에 대한 메모입니다(선택 사항)."
        },
        "cost": {
          "name": "비용",
          "description": "수행한 유지보수의 비용입니다."
        },
        "duration": {
          "name": "소요 시간",
          "description": "유지보수에 걸린 시간(분)입니다."
        },
        "reading_value": {
          "name": "측정값",
          "description": "측정형 작업에 기록할 값입니다(계량기 값, 수위 확인 등)."
        },
        "completed_by": {
          "name": "완료자",
          "description": "정비를 수행한 사람(Home Assistant 사용자와 연결되어 있어야 함). 생략하면 호출을 실행한 사용자가 기록됩니다."
        },
        "completed_at": {
          "name": "완료 시각",
          "description": "유지보수를 실제로 수행한 시각 — 과거 완료를 소급 기록할 때 사용합니다. 미래일 수 없으며, 생략하면 현재 시각이 기록됩니다."
        }
      }
    },
    "reset": {
      "name": "유지보수 초기화",
      "description": "유지보수 작업의 마지막 수행일을 초기화합니다.",
      "fields": {
        "entity_id": {
          "name": "엔티티",
          "description": "초기화할 유지보수 센서 엔티티입니다."
        },
        "date": {
          "name": "날짜",
          "description": "마지막 수행일로 설정할 날짜입니다. 기본값은 오늘입니다."
        }
      }
    },
    "skip": {
      "name": "유지보수 건너뛰기",
      "description": "현재 유지보수 주기를 건너뜁니다.",
      "fields": {
        "entity_id": {
          "name": "엔티티",
          "description": "건너뛸 유지보수 센서 엔티티입니다."
        },
        "reason": {
          "name": "사유",
          "description": "유지보수를 건너뛰는 사유입니다(선택 사항)."
        }
      }
    },
    "export_data": {
      "name": "데이터 내보내기",
      "description": "모든 유지보수 데이터를 JSON 또는 YAML로 내보냅니다.",
      "fields": {
        "format": {
          "name": "형식",
          "description": "내보낼 데이터의 출력 형식입니다(json 또는 yaml)."
        },
        "include_history": {
          "name": "이력 포함",
          "description": "내보내기에 작업 이력 항목을 포함할지 여부입니다."
        }
      }
    },
    "add_object": {
      "name": "대상 추가",
      "description": "새 유지보수 대상(기기)을 만듭니다. 새 entry_id를 반환합니다.",
      "fields": {
        "name": {
          "name": "이름",
          "description": "대상/기기의 이름입니다."
        },
        "area_id": {
          "name": "구역",
          "description": "기기를 할당할 구역입니다."
        },
        "manufacturer": {
          "name": "제조사"
        },
        "model": {
          "name": "모델"
        },
        "serial_number": {
          "name": "일련번호"
        },
        "installation_date": {
          "name": "설치일"
        },
        "warranty_expiry": {
          "name": "보증 만료일",
          "description": "보증 만료일입니다(자산 추적과 알림에 사용)."
        },
        "documentation_url": {
          "name": "문서 URL",
          "description": "설명서나 제조사 페이지 링크입니다(http/https만 가능)."
        },
        "notes": {
          "name": "메모"
        }
      }
    },
    "add_task": {
      "name": "작업 추가",
      "description": "기존 대상에 유지보수 작업을 추가합니다. 새 task_id를 반환합니다.",
      "fields": {
        "entry_id": {
          "name": "대상",
          "description": "작업을 추가할 유지보수 대상입니다."
        },
        "name": {
          "name": "이름",
          "description": "작업의 이름입니다."
        },
        "task_type": {
          "name": "작업 유형",
          "description": "자유 형식 범주입니다(예: inspection, service, custom)."
        },
        "schedule_type": {
          "name": "일정 유형",
          "description": "time_based(주기) 또는 sensor_based. 기본값: time_based."
        },
        "interval_days": {
          "name": "주기",
          "description": "interval_unit과 함께 사용하는 반복 간격입니다(시간 기반 작업용)."
        },
        "interval_unit": {
          "name": "주기 단위",
          "description": "주기의 단위: days, weeks, months 또는 years. 기본값: days."
        },
        "due_date": {
          "name": "기한",
          "description": "일회성 작업(schedule_type one_time)의 기한(YYYY-MM-DD)입니다."
        },
        "schedule": {
          "name": "달력 일정",
          "description": "달력 유형을 위한 중첩 반복 규칙입니다. 예: 첫째 주 토요일은 kind=nth_weekday, nth=1, weekday=5 (weekday 0=월 ... 6=일), 월요일과 목요일은 kind=weekdays, weekdays=[0, 3], 매월 15일은 kind=day_of_month, day=15. interval_days / schedule_type보다 우선합니다."
        },
        "warning_days": {
          "name": "경고(일)",
          "description": "기한 임박 구간에 들어가는 기한 전 일수입니다."
        },
        "enabled": {
          "name": "사용"
        },
        "notes": {
          "name": "메모"
        }
      }
    },
    "update_task": {
      "name": "작업 업데이트",
      "description": "기존 유지보수 작업의 공통 필드를 업데이트합니다. 제공한 필드만 변경됩니다.",
      "fields": {
        "entry_id": {
          "name": "대상",
          "description": "작업이 속한 유지보수 대상입니다."
        },
        "task_id": {
          "name": "작업 ID",
          "description": "업데이트할 작업의 ID입니다(list_tasks 참조)."
        },
        "name": {
          "name": "이름",
          "description": "작업의 새 이름입니다."
        },
        "task_type": {
          "name": "작업 유형",
          "description": "범주입니다(cleaning, inspection, replacement, calibration, service, reading, custom)."
        },
        "schedule_type": {
          "name": "일정 유형",
          "description": "time_based(주기), sensor_based, one_time 또는 manual."
        },
        "interval_days": {
          "name": "주기",
          "description": "interval_unit과 함께 사용하는 반복 간격입니다."
        },
        "interval_unit": {
          "name": "주기 단위",
          "description": "days, weeks, months 또는 years 중 하나입니다."
        },
        "due_date": {
          "name": "기한",
          "description": "일회성 작업의 기한(YYYY-MM-DD)입니다."
        },
        "schedule": {
          "name": "일정(달력 반복)",
          "description": "달력 유형을 위한 중첩 반복 객체입니다. 예: kind=day_of_month, day=-1, business=true. 평면 필드보다 우선합니다."
        },
        "warning_days": {
          "name": "경고 일수",
          "description": "작업이 기한 임박으로 바뀌는 기한 전 일수입니다."
        },
        "enabled": {
          "name": "사용",
          "description": "작업의 활성 여부입니다."
        },
        "notes": {
          "name": "메모",
          "description": "작업에 대한 자유 형식 메모입니다."
        },
        "priority": {
          "name": "우선순위",
          "description": "low, normal 또는 high 중 하나입니다."
        },
        "labels": {
          "name": "라벨",
          "description": "필터링과 보고에 사용할 태그 목록입니다."
        },
        "responsible_user": {
          "name": "담당 사용자",
          "description": "이 사람에게 작업을 할당합니다(Home Assistant 사용자와 연결되어 있어야 함)."
        },
        "clear_responsible_user": {
          "name": "담당자 지우기",
          "description": "현재 할당을 제거합니다. \"담당 사용자\"와 함께 사용할 수 없습니다."
        }
      }
    },
    "delete_task": {
      "name": "작업 삭제",
      "description": "유지보수 작업을 이력과 함께 삭제합니다. 되돌릴 수 없습니다 - 대신 패널에서 보관 처리하는 것을 고려하세요.",
      "fields": {
        "entry_id": {
          "name": "대상",
          "description": "작업이 속한 유지보수 대상입니다."
        },
        "task_id": {
          "name": "작업 ID",
          "description": "삭제할 작업의 ID입니다(list_tasks 참조)."
        }
      }
    },
    "list_tasks": {
      "name": "작업 목록",
      "description": "자동화, 스크립트, 음성에서 사용할 수 있도록 활성 유지보수 작업의 스냅숏(ID, 이름, 상태, 다음 기한)을 반환합니다. 대상 및 상태별 필터링을 지원합니다.",
      "fields": {
        "entry_id": {
          "name": "대상",
          "description": "이 유지보수 대상의 작업만 반환합니다."
        },
        "status": {
          "name": "상태",
          "description": "이 상태의 작업만 반환합니다."
        }
      }
    }
  },
  "issues": {
    "document_storage_issues": {
      "title": "문서 저장소 정리가 필요합니다",
      "fix_flow": {
        "step": {
          "init": {
            "title": "문서 저장 공간 회수",
            "description": "Maintenance Supporter가 문서 저장소에서 참조되지 않는 파일이나 유효하지 않은 레코드를 발견했습니다 — 보통 비정상 종료, 외부에서의 파일 삭제 또는 부분 복원의 결과입니다.\n\n**제출**을 클릭하면 공간을 회수합니다: 참조되지 않거나 오래된 파일은 삭제되고 유효하지 않은 문서 레코드는 제거됩니다. 문서가 여전히 참조하는 파일은 절대 건드리지 않습니다.\n\n(정리하지 않고 넘어가려면 수리 페이지에서 Home Assistant의 **무시** 버튼을 사용하세요.)"
          }
        }
      }
    },
    "missing_trigger_entity": {
      "title": "트리거 센서를 찾을 수 없음: {task_name}",
      "fix_flow": {
        "step": {
          "init": {
            "title": "누락된 트리거 엔티티",
            "description": "대상 \"{object_name}\"의 작업 \"{task_name}\"에 트리거로 구성된 센서 엔티티 `{entity_id}`를 더 이상 사용할 수 없습니다.\n\n이 문제를 해결할 방법을 선택하세요:",
            "menu_options": {
              "replace_entity": "다른 엔티티로 교체",
              "remove_trigger": "센서 트리거 제거",
              "dismiss": "무시(다시 나타남)"
            }
          },
          "replace_entity": {
            "title": "트리거 엔티티 교체",
            "description": "\"{object_name}\"의 작업 \"{task_name}\"에서 `{entity_id}`를 대체할 새 엔티티를 선택하세요.",
            "data": {
              "new_entity_id": "새 트리거 엔티티"
            },
            "data_description": {
              "new_entity_id": "트리거로 사용할 새 센서 엔티티를 선택하세요."
            }
          },
          "remove_trigger": {
            "title": "센서 트리거 제거",
            "description": "\"{object_name}\"의 작업 \"{task_name}\"에서 센서 트리거를 제거하고 일정을 시간 기반 또는 수동으로 전환합니다. 유지보수 이력은 보존됩니다.\n\n이전 트리거 엔티티: `{entity_id}`"
          }
        }
      }
    },
    "orphan_admin_panel_user": {
      "title": "패널 접근 권한 사용자가 더 이상 존재하지 않습니다",
      "fix_flow": {
        "step": {
          "init": {
            "title": "패널 접근 목록에 남아 있는 사용자",
            "description": "사용자 `{user_id}…`가 Maintenance Supporter 패널 접근 목록에 있지만 Home Assistant에 더 이상 존재하지 않습니다. 해당 사용자가 삭제된 것으로 보입니다.\n\n**제출**을 클릭하면 이 사용자를 목록에서 제거합니다. (그대로 두려면 수리 페이지에서 Home Assistant의 **무시** 버튼을 사용하세요.)"
          }
        }
      }
    },
    "stale_action_entity": {
      "title": "완료 동작이 삭제된 엔티티를 참조합니다",
      "fix_flow": {
        "step": {
          "init": {
            "title": "완료 동작: {stale_entity}이(가) 더 이상 존재하지 않음",
            "description": "작업 **{task_name}**에는 `{stale_entity}`의 서비스를 호출하는 `on_complete_action`이 구성되어 있지만, 해당 엔티티는 더 이상 Home Assistant에 등록되어 있지 않습니다.\n\n수리 방법을 선택하세요:",
            "menu_options": {
              "replace_entity": "다른 엔티티로 교체",
              "remove_action": "완료 동작 제거"
            }
          },
          "replace_entity": {
            "title": "대상 엔티티 교체",
            "description": "작업 **{task_name}**에서 `{stale_entity}` 대신 사용할 엔티티를 선택하세요.",
            "data": {
              "new_entity": "새 대상 엔티티"
            }
          },
          "remove_action": {
            "title": "완료 동작 제거",
            "description": "작업 **{task_name}**에서 `on_complete_action`을 완전히 제거합니다. 작업 자체는 영향을 받지 않으며, 완료 시 서비스 호출만 제거됩니다."
          }
        }
      }
    },
    "notify_service_missing": {
      "title": "알림 서비스 `{service}`를 찾을 수 없습니다",
      "description": "Maintenance Supporter가 `{service}`를 통해 알림을 보내도록 구성되어 있지만, 해당 서비스가 현재 Home Assistant에 존재하지 않아 알림이 조용히 실패합니다.\n\n보통 서비스 이름이 변경되었거나, 그 서비스를 제공하던 통합구성요소(모바일 앱, 알림 그룹 등)가 제거된 경우입니다. 해결 방법: 해당 서비스를 복원하거나, **설정 → 기기 및 서비스 → Maintenance Supporter → 구성 → 일반 설정**에서 유효한 `notify.*` 서비스를 선택하세요.\n\n참고: 여기서는 구성된 서비스 자체만 확인합니다. 알림이 일부 기기에만 도달한다면 알림 그룹 *내부의* 구성원이 잘못 구성되었을 가능성이 높습니다 — 이는 여기서 확인되지 않으니 Home Assistant의 **시스템 로그**(설정 → 시스템 → 로그)를 확인하세요."
    },
    "missing_global_entry": {
      "title": "Maintenance Supporter 전역 구성이 없습니다",
      "fix_flow": {
        "step": {
          "init": {
            "title": "전역 구성 복원",
            "description": "유지보수 대상은 그대로 있지만 전역 \"Maintenance Supporter\" 항목이 삭제되었습니다 — 그래서 요약 센서, 사이드바 패널, 대시보드 카운트가 사라지고 KPI 칩이 \"unknown\"으로 표시됩니다.\n\n**제출**을 클릭하면 기본 설정으로 전역 구성을 다시 만듭니다. 대상과 작업은 그대로 유지됩니다. 이후 설정 → 기기 및 서비스에서 알림과 기본값을 조정할 수 있습니다.\n\n(그대로 두려면 Home Assistant의 **무시** 버튼을 사용하세요.)"
          }
        }
      }
    },
    "shared_parts_moved": {
      "title": "공유 예비 부품을 {new_owner}(으)로 옮겼습니다",
      "description": "여러 유지보수 객체가 **{deleted_object}**에 있던 하나의 예비 부품 재고를 함께 사용하고 있었는데, 그 객체가 방금 삭제되었습니다. 나머지 객체가 더 이상 없는 재고를 가리키지 않도록 Maintenance Supporter가 공유 부품({parts})을 현재 재고와 함께 **{new_owner}**(으)로 옮기고, 다른 모든 객체의 작업 연결도 그쪽으로 바꿨습니다. 손실된 것은 없습니다.\n\n**{new_owner}**는 자동으로 선택되었습니다. 해당 재고를 사용하던 객체 중 가장 오래된 것입니다. 다른 객체가 더 적합하다면 유지보수 패널에서 부품을 그쪽으로 옮기세요.\n\n더 할 일은 없습니다 — 확인한 뒤 이 알림을 닫으세요."
    },
    "broken_part_link": {
      "title": "{object_name}의 부품 연결이 끊어졌습니다",
      "description": "**{object_name}**의 작업이 방금 완료되었지만, 부품 연결 {count}개를 확인할 수 없었습니다 — 부품 자체 또는 그 부품을 가진 객체가 더 이상 존재하지 않습니다.\n\n완료 기록 자체는 저장되었으므로 작업 내역은 사라지지 않았습니다. 이루어지지 않은 것은 재고 차감으로, 이번 완료에서는 어떤 부품의 재고도 줄지 않았습니다.\n\n해결하려면 유지보수 패널에서 작업을 열어 오래된 부품 연결을 삭제하거나 지금 사용하는 부품으로 다시 연결하세요. 처리한 뒤 이 알림을 닫으세요."
    },
    "device_link_lost": {
      "title": "{object}의 기기 연결이 끊어졌습니다",
      "fix_flow": {
        "step": {
          "init": {
            "title": "{object}의 기기 연결 복구",
            "description": "**{object}**은(는) Home Assistant 기기에 연결되어 있어 유지관리 엔터티가 해당 기기 페이지에 표시되었습니다. 그 기기는 더 이상 존재하지 않으며(삭제되었거나 통합이 제거됨) 이제 객체는 자체 기기를 표시합니다. 그 밖에는 달라진 것이 없습니다. 작업과 기록은 그대로입니다.\n\n진행 방법을 선택하세요. 의도한 기기로 가장 유력한 후보: **{suggestion}**.",
            "menu_options": {
              "relink": "실제 기기 연결",
              "unlink": "연결 제거"
            }
          },
          "relink": {
            "title": "실제 기기 선택",
            "description": "**{object}**이(가) 속한 기기를 선택하세요. 가장 유력한 후보 — **{suggestion}** — 가 미리 선택되어 있습니다. 저장 전에 확인하세요. Maintenance Supporter 자체 기기는 거부됩니다.",
            "data": {
              "device": "기기"
            }
          },
          "unlink": {
            "title": "기기 연결 제거",
            "description": "**{object}**은(는) 자체 기기를 유지합니다. 작업과 기록은 그대로이며, 유지보수 패널에서 언제든지 기기를 다시 연결할 수 있습니다."
          }
        },
        "error": {
          "self_link": "이것은 Maintenance Supporter 자체 기기(객체의 쌍둥이이며 실제 기기가 아님)입니다. 원래 통합구성요소의 기기를 선택하세요.",
          "device_gone": "해당 기기는 (더 이상) 존재하지 않습니다."
        },
        "abort": {
          "entry_gone": "이 객체는 더 이상 존재하지 않습니다. 복구할 것이 없습니다."
        }
      }
    },
    "device_link_self": {
      "title": "{object}이(가) 자신의 유지보수 기기에 연결되어 있습니다",
      "fix_flow": {
        "step": {
          "init": {
            "title": "{object}의 기기 연결 복구",
            "description": "**{object}**의 기기 연결이 Maintenance Supporter가 객체를 위해 직접 만든 쌍둥이 기기를 가리키고 있습니다. 실제 기기와 같은 이름을 가지며, 예전에는 기기 선택기에 표시되었습니다. 그래서 실제 기기 페이지에는 유지보수 엔티티가 표시된 적이 없습니다.\n\n진행 방법을 선택하세요. 의도한 기기로 가장 유력한 후보: **{suggestion}**.",
            "menu_options": {
              "relink": "실제 기기 연결",
              "unlink": "연결 제거"
            }
          },
          "relink": {
            "title": "실제 기기 선택",
            "description": "**{object}**이(가) 속한 기기를 선택하세요. 가장 유력한 후보 — **{suggestion}** — 가 미리 선택되어 있습니다. 저장 전에 확인하세요. Maintenance Supporter 자체 기기는 거부됩니다.",
            "data": {
              "device": "기기"
            }
          },
          "unlink": {
            "title": "기기 연결 제거",
            "description": "**{object}**은(는) 자체 기기를 유지합니다. 작업과 기록은 그대로이며, 유지보수 패널에서 언제든지 기기를 다시 연결할 수 있습니다."
          }
        },
        "error": {
          "self_link": "이것은 Maintenance Supporter 자체 기기(객체의 쌍둥이이며 실제 기기가 아님)입니다. 원래 통합구성요소의 기기를 선택하세요.",
          "device_gone": "해당 기기는 (더 이상) 존재하지 않습니다."
        },
        "abort": {
          "entry_gone": "이 객체는 더 이상 존재하지 않습니다. 복구할 것이 없습니다."
        }
      }
    }
  },
  "exceptions": {
    "no_coordinator_for_entity": {
      "message": "엔티티 {entity_id}에 대한 유지보수 코디네이터를 찾을 수 없습니다."
    },
    "no_task_for_entity": {
      "message": "엔티티 {entity_id}에 대한 유지보수 작업을 찾을 수 없습니다."
    },
    "completion_details_required": {
      "message": "“{task_name}”을(를) 완료하려면 다음 항목이 필요합니다: {fields}. 유지보수 패널 또는 카드에서 완료하여 입력하세요."
    },
    "completed_at_in_future": {
      "message": "완료 날짜는 미래일 수 없습니다."
    }
  },
  "triggers": {
    "task_became_overdue": {
      "name": "유지보수 작업이 기한을 초과함",
      "description": "유지보수 작업의 상태가 기한 초과로 바뀌면 트리거됩니다.",
      "fields": {
        "behavior": {
          "name": "동작"
        },
        "for": {
          "name": "지속 시간"
        }
      }
    },
    "task_became_due_soon": {
      "name": "유지보수 작업의 기한이 임박함",
      "description": "유지보수 작업이 경고 구간에 들어가면 트리거됩니다.",
      "fields": {
        "behavior": {
          "name": "동작"
        },
        "for": {
          "name": "지속 시간"
        }
      }
    },
    "sensor_trigger_activated": {
      "name": "센서 트리거가 활성화됨",
      "description": "센서 기반 유지보수 작업이 활성화되면 트리거됩니다.",
      "fields": {
        "behavior": {
          "name": "동작"
        },
        "for": {
          "name": "지속 시간"
        }
      }
    },
    "task_became_ok": {
      "name": "유지보수 작업이 정상으로 돌아옴",
      "description": "유지보수 작업에 더 이상 주의가 필요 없게 되면 트리거됩니다.",
      "fields": {
        "behavior": {
          "name": "동작"
        },
        "for": {
          "name": "지속 시간"
        }
      }
    }
  },
  "conditions": {
    "task_is_overdue": {
      "name": "유지보수 작업이 기한 초과 상태임",
      "description": "유지보수 작업이 기한을 초과했는지 검사합니다.",
      "fields": {
        "behavior": {
          "name": "동작"
        },
        "for": {
          "name": "지속 시간"
        }
      }
    },
    "task_is_due_soon": {
      "name": "유지보수 작업이 기한 임박 상태임",
      "description": "유지보수 작업이 경고 구간에 있는지 검사합니다.",
      "fields": {
        "behavior": {
          "name": "동작"
        },
        "for": {
          "name": "지속 시간"
        }
      }
    },
    "task_is_triggered": {
      "name": "센서 트리거가 활성 상태임",
      "description": "센서 기반 유지보수 작업이 트리거되었는지 검사합니다.",
      "fields": {
        "behavior": {
          "name": "동작"
        },
        "for": {
          "name": "지속 시간"
        }
      }
    },
    "task_needs_attention": {
      "name": "유지보수 작업에 주의가 필요함",
      "description": "유지보수 작업이 기한 초과 또는 트리거 상태인지 검사합니다.",
      "fields": {
        "behavior": {
          "name": "동작"
        },
        "for": {
          "name": "지속 시간"
        }
      }
    }
  }
}
