1342 lines
78 KiB
JSON
1342 lines
78 KiB
JSON
{
|
|
"config": {
|
|
"step": {
|
|
"user": {
|
|
"title": "WashData 설정",
|
|
"description": "세탁기 또는 기타 가전제품을 구성하세요.\n\n전력 센서가 필요합니다.\n\n**다음으로 첫 번째 프로필을 만들지 여부를 묻는 메시지가 표시됩니다.**",
|
|
"data": {
|
|
"name": "장치 이름",
|
|
"device_type": "장치 유형",
|
|
"power_sensor": "전력 센서",
|
|
"min_power": "최소 전력 임계값 (W)"
|
|
},
|
|
"data_description": {
|
|
"name": "이 장치의 이름입니다(예: '세탁기', '식기세척기').",
|
|
"device_type": "이 가전제품의 종류는 무엇입니까? 감지 및 라벨링 맞춤에 도움이 됩니다.",
|
|
"power_sensor": "스마트 플러그에서 실시간 전력 소비(와트)를 보고하는 센서 엔터티입니다.",
|
|
"min_power": "이 임계값(와트)보다 높은 전력 수치는 가전제품이 작동 중임을 나타냅니다. 대부분의 장치에서는 2W로 시작하세요."
|
|
}
|
|
},
|
|
"first_profile": {
|
|
"title": "첫 번째 프로필 만들기",
|
|
"description": "**사이클**은 가전제품의 완전한 실행을 의미합니다(예: 세탁 한 회). **프로필**은 이러한 사이클을 유형별로 그룹화합니다(예: '면', '빠른 세탁'). 지금 프로필을 생성하면 통합이 즉시 소요 시간을 예측할 수 있습니다.\n\n프로필이 자동으로 감지되지 않는 경우 장치 컨트롤에서 수동으로 선택할 수 있습니다.\n\n**이 단계를 건너뛰려면 '프로필 이름'을 비워두세요.**",
|
|
"data": {
|
|
"profile_name": "프로필 이름 (선택사항)",
|
|
"manual_duration": "예상 소요 시간 (분)"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"cannot_connect": "연결하지 못했습니다",
|
|
"invalid_auth": "인증 실패",
|
|
"unknown": "예기치 않은 오류"
|
|
},
|
|
"abort": {
|
|
"already_configured": "장치가 이미 구성되어 있습니다"
|
|
}
|
|
},
|
|
"options": {
|
|
"step": {
|
|
"init": {
|
|
"menu_options": {
|
|
"learning_feedbacks": "학습 피드백 검토",
|
|
"settings": "설정",
|
|
"notifications": "알림",
|
|
"manage_cycles": "사이클 관리",
|
|
"manage_profiles": "프로필 관리",
|
|
"manage_phase_catalog": "단계 카탈로그 관리",
|
|
"record_cycle": "사이클 기록 (수동)",
|
|
"diagnostics": "진단 및 유지보수"
|
|
}
|
|
},
|
|
"apply_suggestions": {
|
|
"title": "제안된 값 복사",
|
|
"description": "현재 제안된 값을 저장된 설정에 복사합니다. 이는 일회성 작업이며 자동 덮어쓰기를 활성화하지 않습니다.\n\n복사할 제안 값:\n{suggested}",
|
|
"data": {
|
|
"confirm": "복사 작업 확인"
|
|
}
|
|
},
|
|
"apply_suggestions_confirm": {
|
|
"title": "제안된 변경 사항 검토",
|
|
"description": "WashData에서 **{pending_count}** 적용할 제안 값을 찾았습니다.\n\n변경사항:\n{changes}\n\n✅ 변경 사항을 즉시 적용하고 저장하려면 아래 확인란을 선택하고 **제출**을 클릭하세요.\n❌ 체크하지 않은 상태로 두고 **제출**을 클릭하여 취소하고 돌아갑니다.",
|
|
"data": {
|
|
"confirm_apply_suggestions": "변경사항 적용 및 저장"
|
|
}
|
|
},
|
|
"settings": {
|
|
"title": "설정",
|
|
"description": "{deprecation_warning}감지 임계값, 학습 및 고급 동작을 조정합니다. 기본값은 대부분의 설정에 적합합니다.\n\n현재 이용 가능한 제안 설정: {suggestions_count}개.\n0보다 크면 고급 설정을 열고 제안 값 적용을 사용하여 권장사항을 검토하세요.",
|
|
"data": {
|
|
"apply_suggestions": "제안된 값 적용",
|
|
"device_type": "장치 유형",
|
|
"power_sensor": "전력 센서 엔터티",
|
|
"min_power": "최소 전력 (W)",
|
|
"off_delay": "사이클 종료 지연 (초)",
|
|
"notify_actions": "알림 작업",
|
|
"notify_people": "이 사람들이 귀가할 때까지 알림 지연",
|
|
"notify_only_when_home": "선택한 사람이 귀가할 때까지 알림 지연",
|
|
"notify_fire_events": "자동화 이벤트 실행",
|
|
"notify_start_services": "주기 시작 - 알림 대상",
|
|
"notify_finish_services": "주기 완료 - 알림 대상",
|
|
"notify_live_services": "실시간 진행 - 알림 대상",
|
|
"notify_before_end_minutes": "완료 전 알림 (종료 몇 분 전)",
|
|
"notify_title": "알림 제목",
|
|
"notify_icon": "알림 아이콘",
|
|
"notify_start_message": "시작 메시지 형식",
|
|
"notify_finish_message": "완료 메시지 형식",
|
|
"notify_pre_complete_message": "완료 전 메시지 형식",
|
|
"show_advanced": "고급 설정 편집 (다음 단계)"
|
|
},
|
|
"data_description": {
|
|
"apply_suggestions": "학습 알고리즘에서 제안한 값을 양식에 복사하려면 이 상자를 선택하세요. 저장하기 전에 검토하세요.\n\n제안 (학습에서):\n- min_power: {suggested_min_power} W\n- off_delay: {suggested_off_delay} s\n- watchdog_interval: {suggested_watchdog_interval} s\n- no_update_active_timeout: {suggested_no_update_active_timeout} s\n- profile_match_interval: {suggested_profile_match_interval} s\n- auto_label_confidence: {suggested_auto_label_confidence}\n- duration_tolerance: {suggested_duration_tolerance}\n- profile_duration_tolerance: {suggested_profile_duration_tolerance}\n- profile_match_min_duration_ratio: {suggested_profile_match_min_duration_ratio}\n- profile_match_max_duration_ratio: {suggested_profile_match_max_duration_ratio}\n- start_threshold_w: {suggested_start_threshold_w} W\n- stop_threshold_w: {suggested_stop_threshold_w} W\n- end_energy_threshold: {suggested_end_energy_threshold} Wh\n- running_dead_zone: {suggested_running_dead_zone} s\n{suggested_reason}",
|
|
"device_type": "가전제품 유형을 선택하세요(세탁기, 건조기, 식기세척기, 커피머신, EV). 이 태그는 더 나은 구성을 위해 각 사이클과 함께 저장됩니다.",
|
|
"power_sensor": "실시간 전력(와트)을 보고하는 센서 엔터티입니다. 기록 데이터 손실 없이 언제든지 변경할 수 있습니다. 스마트 플러그를 교체할 때 유용합니다.",
|
|
"min_power": "이 임계값(와트)보다 높은 전력 수치는 가전제품이 작동 중임을 나타냅니다. 대부분의 장치에서는 2W로 시작하세요.",
|
|
"off_delay": "완료를 표시하려면 평활화된 전력이 정지 임계값 아래에서 이 시간(초) 동안 유지되어야 합니다. 기본값: 120초.",
|
|
"notify_actions": "알림용으로 실행할 선택적 Home Assistant 작업 시퀀스입니다(스크립트, notify, TTS 등). 설정된 경우 대체 알림 서비스 전에 작업이 실행됩니다.",
|
|
"notify_people": "재실 확인에 사용되는 사람 엔터티입니다. 활성화하면 선택한 사람 중 최소 한 명이 귀가할 때까지 알림 전달이 지연됩니다.",
|
|
"notify_only_when_home": "활성화하면 선택한 사람 중 최소 한 명이 집에 있을 때까지 알림을 지연합니다.",
|
|
"notify_fire_events": "활성화하면 사이클 시작 및 종료 시 Home Assistant 이벤트(ha_washdata_cycle_started, ha_washdata_cycle_ended)를 발생시켜 자동화를 구동합니다.",
|
|
"notify_start_services": "주기가 시작되면 경고할 하나 이상의 알림 서비스입니다. 시작 알림을 건너뛰려면 비워 두세요.",
|
|
"notify_finish_services": "주기가 완료되거나 완료에 가까워지면 경고할 하나 이상의 알림 서비스입니다. 완료 알림을 건너뛰려면 비워 두세요.",
|
|
"notify_live_services": "주기가 실행되는 동안 실시간 진행 상황 업데이트를 수신하는 하나 이상의 알림 서비스입니다(모바일 동반 앱만 해당). 실시간 업데이트를 건너뛰려면 비워 두세요.",
|
|
"notify_before_end_minutes": "사이클의 예상 종료 몇 분 전에 알림을 발생시킵니다. 비활성화하려면 0으로 설정하세요. 기본값: 0.",
|
|
"notify_title": "알림의 맞춤 제목입니다. {device} 자리 표시자를 지원합니다.",
|
|
"notify_icon": "알림에 사용할 아이콘입니다(예: mdi:washing-machine). 아이콘 없이 보내려면 비워두세요.",
|
|
"notify_start_message": "사이클이 시작될 때 전송되는 메시지입니다. {device} 자리 표시자를 지원합니다.",
|
|
"notify_finish_message": "사이클이 완료될 때 전송되는 메시지입니다. {device}, {duration}, {program}, {energy_kwh}, {cost} 자리 표시자를 지원합니다.",
|
|
"notify_pre_complete_message": "주기가 실행되는 동안 반복되는 실시간 진행 상황의 텍스트가 업데이트됩니다. {device}, {minutes}, {program} 자리표시자를 지원합니다."
|
|
}
|
|
},
|
|
"notifications": {
|
|
"title": "알림",
|
|
"description": "알림 채널, 템플릿 및 선택적 실시간 모바일 진행 상황 업데이트를 구성합니다.",
|
|
"data": {
|
|
"notify_actions": "알림 작업",
|
|
"notify_people": "이 사람들이 귀가할 때까지 알림 지연",
|
|
"notify_only_when_home": "선택한 사람이 귀가할 때까지 알림 지연",
|
|
"notify_fire_events": "자동화 이벤트 실행",
|
|
"notify_start_services": "주기 시작 - 알림 대상",
|
|
"notify_finish_services": "주기 완료 - 알림 대상",
|
|
"notify_live_services": "실시간 진행 - 알림 대상",
|
|
"notify_before_end_minutes": "완료 전 알림 (종료 몇 분 전)",
|
|
"notify_live_interval_seconds": "실시간 업데이트 간격 (초)",
|
|
"notify_live_overrun_percent": "실시간 업데이트 초과 허용값 (%)",
|
|
"notify_live_chronometer": "크로노미터 카운트다운 타이머",
|
|
"notify_title": "알림 제목",
|
|
"notify_icon": "알림 아이콘",
|
|
"notify_start_message": "시작 메시지 형식",
|
|
"notify_finish_message": "완료 메시지 형식",
|
|
"notify_pre_complete_message": "완료 전 메시지 형식",
|
|
"energy_price_entity": "에너지 가격 - 엔터티(선택 사항)",
|
|
"energy_price_static": "에너지 가격 - 정적 가치(선택 사항)",
|
|
"go_back": "저장하지 않고 돌아가기",
|
|
"notify_reminder_message": "알림 메시지 형식",
|
|
"notify_timeout_seconds": "다음 시간 이후 자동 종료(초)",
|
|
"notify_channel": "알림 채널(상태/실시간/알림)",
|
|
"notify_finish_channel": "완료된 알림 채널"
|
|
},
|
|
"data_description": {
|
|
"go_back": "위의 변경 사항을 모두 버리고 메인 메뉴로 돌아가려면 이 항목을 체크한 뒤 제출을 클릭하세요.",
|
|
"notify_actions": "알림용으로 실행할 선택적 Home Assistant 작업 시퀀스입니다(스크립트, notify, TTS 등). 설정된 경우 대체 알림 서비스 전에 작업이 실행됩니다.",
|
|
"notify_people": "재실 확인에 사용되는 사람 엔터티입니다. 활성화하면 선택한 사람 중 최소 한 명이 귀가할 때까지 알림 전달이 지연됩니다.",
|
|
"notify_only_when_home": "활성화하면 선택한 사람 중 최소 한 명이 집에 있을 때까지 알림을 지연합니다.",
|
|
"notify_fire_events": "활성화하면 사이클 시작 및 종료 시 Home Assistant 이벤트(ha_washdata_cycle_started, ha_washdata_cycle_ended)를 발생시켜 자동화를 구동합니다.",
|
|
"notify_start_services": "주기가 시작될 때 경고할 하나 이상의 알림 서비스(예: notify.mobile_app_my_phone). 시작 알림을 건너뛰려면 비워 두세요.",
|
|
"notify_finish_services": "주기가 완료되거나 완료에 가까워지면 경고할 하나 이상의 알림 서비스입니다. 완료 알림을 건너뛰려면 비워 두세요.",
|
|
"notify_live_services": "주기가 실행되는 동안 실시간 진행 상황 업데이트를 수신하는 하나 이상의 알림 서비스입니다(모바일 동반 앱만 해당). 실시간 업데이트를 건너뛰려면 비워 두세요.",
|
|
"notify_before_end_minutes": "사이클의 예상 종료 몇 분 전에 알림을 발생시킵니다. 비활성화하려면 0으로 설정하세요. 기본값: 0.",
|
|
"notify_live_interval_seconds": "실행 중 진행 상황 업데이트가 전송되는 빈도입니다. 값이 낮을수록 반응이 빠르지만 알림을 더 많이 사용합니다. 최소 30초가 적용됩니다. 30초 미만의 값은 자동으로 30초로 반올림됩니다.",
|
|
"notify_live_overrun_percent": "장기/초과 실행 사이클에 대한 예상 업데이트 횟수 이상의 안전 마진입니다(예: 20%는 예상 업데이트의 1.2배를 허용).",
|
|
"notify_live_chronometer": "활성화되면 각 실시간 업데이트에 예상 완료 시간까지의 크로노미터 카운트다운이 포함됩니다. 업데이트 사이에 기기에서 알림 타이머가 자동으로 꺼집니다(Android 도우미 앱만 해당).",
|
|
"notify_title": "알림의 맞춤 제목입니다. {device} 자리 표시자를 지원합니다.",
|
|
"notify_icon": "알림에 사용할 아이콘입니다(예: mdi:washing-machine). 아이콘 없이 보내려면 비워두세요.",
|
|
"notify_start_message": "사이클이 시작될 때 전송되는 메시지입니다. {device} 자리 표시자를 지원합니다.",
|
|
"notify_finish_message": "사이클이 완료될 때 전송되는 메시지입니다. {device}, {duration}, {program}, {energy_kwh}, {cost} 자리 표시자를 지원합니다.",
|
|
"energy_price_entity": "현재 전기 가격을 보유하는 숫자 엔터티를 선택합니다(예: sensor.electricity_price, input_number.energy_rate). 설정되면 {cost} 자리 표시자를 활성화합니다. 둘 다 구성된 경우 정적 값보다 우선합니다.",
|
|
"energy_price_static": "kWh당 전기요금이 고정되어 있습니다. 설정되면 {cost} 자리 표시자를 활성화합니다. 위에서 엔터티가 구성된 경우 무시됩니다. 메시지 템플릿에 통화 기호를 추가하세요. {cost} €.",
|
|
"notify_reminder_message": "일회성 알림 텍스트는 예상 종료 시간 이전에 구성된 시간(분)을 보냈습니다. 위의 반복되는 실시간 업데이트와 다릅니다. {device}, {minutes}, {program} 자리표시자를 지원합니다.",
|
|
"notify_timeout_seconds": "이 몇 초 후에 알림을 자동으로 해제합니다(컴패니언 앱 '시간 초과'로 전달됨). 해제될 때까지 유지하려면 0으로 설정합니다. 기본값: 0.",
|
|
"notify_channel": "상태, 실시간 진행 상황 및 알림 알림을 위한 Android 컴패니언 앱 알림 채널입니다. 채널의 사운드와 중요성은 채널 이름이 처음 사용될 때 동반 앱에서 구성됩니다. WashData는 채널 이름만 설정합니다. 앱 기본값은 비워 두세요.",
|
|
"notify_finish_channel": "완료 알림을 위한 별도의 Android 채널(알림 및 세탁 대기 잔소리에도 사용됨)이 자체 사운드를 가질 수 있도록 합니다. 위 채널을 재사용하려면 비워두세요.",
|
|
"notify_pre_complete_message": "주기가 실행되는 동안 반복되는 실시간 진행 상황의 텍스트가 업데이트됩니다. {device}, {minutes}, {program} 자리표시자를 지원합니다."
|
|
}
|
|
},
|
|
"advanced_settings": {
|
|
"title": "고급 설정",
|
|
"description": "감지 임계값, 학습 및 고급 동작을 조정합니다. 기본값은 대부분의 설정에서 잘 작동합니다.",
|
|
"sections": {
|
|
"suggestions_section": {
|
|
"name": "권장 설정",
|
|
"description": "학습된 제안 {suggestions_count}개를 사용할 수 있습니다. 저장하기 전에 제안된 변경 내용을 검토하려면 '제안된 값 적용'을 체크하세요.",
|
|
"data": {
|
|
"apply_suggestions": "제안된 값 적용"
|
|
},
|
|
"data_description": {
|
|
"apply_suggestions": "학습 알고리즘에서 제안된 값의 검토 단계를 열려면 이 상자를 선택하세요. 아무것도 자동으로 저장되지 않습니다.\n\n제안 (학습에서):\n- min_power: {suggested_min_power} W\n- off_delay: {suggested_off_delay} s\n- watchdog_interval: {suggested_watchdog_interval} s\n- no_update_active_timeout: {suggested_no_update_active_timeout} s\n- profile_match_interval: {suggested_profile_match_interval} s\n- auto_label_confidence: {suggested_auto_label_confidence}\n- duration_tolerance: {suggested_duration_tolerance}\n- profile_duration_tolerance: {suggested_profile_duration_tolerance}\n- profile_match_min_duration_ratio: {suggested_profile_match_min_duration_ratio}\n- profile_match_max_duration_ratio: {suggested_profile_match_max_duration_ratio}\n- start_threshold_w: {suggested_start_threshold_w} W\n- stop_threshold_w: {suggested_stop_threshold_w} W\n- end_energy_threshold: {suggested_end_energy_threshold} Wh\n- running_dead_zone: {suggested_running_dead_zone} s\n{suggested_reason}"
|
|
}
|
|
},
|
|
"detection_section": {
|
|
"name": "감지 및 전력 임계값",
|
|
"description": "장치가 언제 켜짐 또는 꺼짐으로 간주되는지, 에너지 게이트와 상태 전환 타이밍을 설정합니다.",
|
|
"data": {
|
|
"start_duration_threshold": "시작 디바운스 기간 (초)",
|
|
"start_energy_threshold": "시작 에너지 게이트 (Wh)",
|
|
"completion_min_seconds": "완료 최소 실행 시간 (초)",
|
|
"start_threshold_w": "시작 임계값 (W)",
|
|
"stop_threshold_w": "정지 임계값 (W)",
|
|
"end_energy_threshold": "종료 에너지 게이트 (Wh)",
|
|
"running_dead_zone": "실행 중 데드존 (초)",
|
|
"end_repeat_count": "종료 반복 횟수",
|
|
"min_off_gap": "사이클 간 최소 간격 (초)",
|
|
"sampling_interval": "샘플링 간격 (초)"
|
|
},
|
|
"data_description": {
|
|
"start_duration_threshold": "이 기간(초)보다 짧은 전력 스파이크를 무시합니다. 실제 사이클 시작 전 부팅 스파이크(예: 2초간 60W)를 필터링합니다. 기본값: 5초.",
|
|
"start_energy_threshold": "사이클이 확인되려면 START 단계 동안 최소 이 에너지(Wh)를 축적해야 합니다. 기본값: 0.005Wh.",
|
|
"completion_min_seconds": "이보다 짧은 사이클은 자연스럽게 끝나더라도 '중단됨'으로 표시됩니다. 기본값: 600초.",
|
|
"start_threshold_w": "사이클을 시작하려면 전력이 이 임계값보다 높아야 합니다. 대기 전력보다 높게 설정하세요. 기본값: min_power + 1W.",
|
|
"stop_threshold_w": "사이클을 종료하려면 전력이 이 임계값 아래로 떨어져야 합니다. 노이즈로 인한 오작동을 방지하려면 0보다 약간 높게 설정하세요. 기본값: 0.6 * min_power.",
|
|
"end_energy_threshold": "마지막 종료 지연 창의 에너지가 이 값(Wh) 미만일 때만 사이클이 종료됩니다. 전력이 0 근처에서 변동할 때 오탐 종료를 방지합니다. 기본값: 0.05Wh.",
|
|
"running_dead_zone": "사이클 시작 후 초기 스핀업 단계에서 오탐 종료를 방지하기 위해 이 시간(초) 동안 전력 강하를 무시합니다. 비활성화하려면 0으로 설정하세요. 기본값: 0초.",
|
|
"end_repeat_count": "사이클을 종료하기 전에 종료 조건(off_delay 동안 임계값 아래의 전력)이 연속으로 충족되어야 하는 횟수입니다. 높을수록 일시 정지 중 오탐 종료를 방지합니다. 기본값: 1.",
|
|
"min_off_gap": "이전 사이클 종료 후 이 시간(초) 이내에 새 사이클이 시작되면 하나로 병합됩니다.",
|
|
"sampling_interval": "최소 샘플링 간격(초)입니다. 이 속도보다 빠른 업데이트는 무시됩니다. 기본값: 30초(세탁기, 세탁기-건조기, 식기세척기의 경우 2초)."
|
|
}
|
|
},
|
|
"matching_section": {
|
|
"name": "프로필 일치 및 학습",
|
|
"description": "WashData가 실행 중인 사이클을 학습된 프로필과 얼마나 적극적으로 일치시키는지, 그리고 언제 피드백을 요청할지 설정합니다.",
|
|
"data": {
|
|
"profile_match_min_duration_ratio": "프로필 일치 최소 기간 비율 (0.1-1.0)",
|
|
"profile_match_interval": "프로필 일치 간격 (초)",
|
|
"profile_match_threshold": "프로필 일치 임계값",
|
|
"profile_unmatch_threshold": "프로필 불일치 임계값",
|
|
"auto_label_confidence": "자동 라벨 신뢰도 (0-1)",
|
|
"learning_confidence": "피드백 요청 신뢰도 (0-1)",
|
|
"suppress_feedback_notifications": "피드백 알림 억제",
|
|
"duration_tolerance": "기간 허용 오차 (0-0.5)",
|
|
"smoothing_window": "평활화 창 (샘플)",
|
|
"profile_duration_tolerance": "프로필 일치 기간 허용 오차 (0-0.5)"
|
|
},
|
|
"data_description": {
|
|
"profile_match_min_duration_ratio": "프로필 일치를 위한 최소 기간 비율입니다. 실행 중인 사이클은 프로필 기간의 최소 이 비율이어야 합니다. 낮을수록 더 빨리 일치합니다. 기본값: 0.50(50%).",
|
|
"profile_match_interval": "사이클 중 프로필 일치를 시도하는 빈도(초)입니다. 값이 낮을수록 감지가 빠르지만 CPU를 더 많이 사용합니다. 기본값: 300초(5분).",
|
|
"profile_match_threshold": "프로필을 일치로 간주하는 데 필요한 최소 DTW 유사도 점수(0.0~1.0)입니다. 높을수록 엄격한 일치, 오탐 감소. 기본값: 0.4.",
|
|
"profile_unmatch_threshold": "이전에 일치한 프로필을 거부하는 DTW 유사도 점수(0.0~1.0)입니다. 깜빡임 방지를 위해 일치 임계값보다 낮아야 합니다. 기본값: 0.35.",
|
|
"auto_label_confidence": "완료 시 이 신뢰도(0.0~1.0) 이상인 사이클에 자동으로 라벨을 지정합니다.",
|
|
"learning_confidence": "이벤트를 통해 사용자 확인을 요청하는 최소 신뢰도(0.0~1.0)입니다.",
|
|
"suppress_feedback_notifications": "활성화되면 WashData는 계속해서 내부적으로 피드백을 추적하고 요청하지만 주기 확인을 요청하는 지속적인 알림은 표시하지 않습니다. 주기가 항상 올바르게 감지되고 프롬프트가 산만하다고 느낄 때 유용합니다.",
|
|
"duration_tolerance": "실행 중 남은 시간 예측의 허용 오차입니다(0.0~0.5는 0~50%에 해당).",
|
|
"smoothing_window": "이동 평균 평활화에 사용되는 최근 전력 수치의 수입니다.",
|
|
"profile_duration_tolerance": "전체 기간 차이에 대한 프로필 일치 허용 오차(0.0~0.5)입니다. 기본 동작: ±25%."
|
|
}
|
|
},
|
|
"timing_section": {
|
|
"name": "타이밍, 유지보수 및 디버그",
|
|
"description": "워치독, 진행 상황 초기화, 자동 유지보수, 디버그 엔터티 노출을 설정합니다.",
|
|
"data": {
|
|
"watchdog_interval": "감시 간격 (초)",
|
|
"no_update_active_timeout": "업데이트 없음 제한 시간 (초)",
|
|
"progress_reset_delay": "진행 상황 초기화 지연 (초)",
|
|
"auto_maintenance": "자동 유지보수 활성화",
|
|
"expose_debug_entities": "디버그 엔터티 노출",
|
|
"save_debug_traces": "디버그 추적 저장"
|
|
},
|
|
"data_description": {
|
|
"watchdog_interval": "실행 중 감시 확인 사이의 시간(초)입니다. 기본값: 5초. 경고: 오탐 정지를 방지하려면 이 값이 센서의 업데이트 간격보다 높아야 합니다(예: 센서가 60초마다 업데이트하면 65초 이상 사용).",
|
|
"no_update_active_timeout": "변경 시 게시 센서의 경우: 이 시간(초) 동안 업데이트가 없으면 ACTIVE 사이클을 강제 종료합니다. 저전력 완료 시에는 여전히 종료 지연을 사용합니다.",
|
|
"progress_reset_delay": "사이클이 완료된 후(100%) 진행 상황을 0%로 초기화하기 전에 이 시간(초) 동안 대기합니다. 기본값: 300초.",
|
|
"auto_maintenance": "자동 유지보수를 활성화합니다(샘플 복구, 조각 병합).",
|
|
"expose_debug_entities": "디버깅을 위한 고급 센서(신뢰도, 단계, 모호도)를 표시합니다.",
|
|
"save_debug_traces": "상세한 순위 및 전력 추적 데이터를 기록에 저장합니다(저장 용량이 증가합니다)."
|
|
}
|
|
},
|
|
"anti_wrinkle_section": {
|
|
"name": "주름 방지 보호 (건조기)",
|
|
"description": "고스트 사이클을 방지하기 위해 사이클 종료 후의 드럼 회전을 무시합니다. 건조기 / 세탁건조기 전용입니다.",
|
|
"data": {
|
|
"anti_wrinkle_enabled": "주름 방지 보호 (건조기/세탁건조기 전용)",
|
|
"anti_wrinkle_max_power": "주름 방지 최대 전력 (W) (건조기/세탁건조기 전용)",
|
|
"anti_wrinkle_max_duration": "주름 방지 최대 지속 시간 (초) (건조기/세탁건조기 전용)",
|
|
"anti_wrinkle_exit_power": "주름 방지 종료 전력 (W) (건조기/세탁건조기 전용)"
|
|
},
|
|
"data_description": {
|
|
"anti_wrinkle_enabled": "고스트 사이클을 방지하기 위해 사이클 종료 후 짧은 저전력 드럼 회전을 무시합니다(건조기/세탁건조기 전용).",
|
|
"anti_wrinkle_max_power": "이 전력 이하의 버스트는 새 사이클 대신 주름 방지 회전으로 처리됩니다. 주름 방지 보호가 활성화된 경우에만 적용됩니다.",
|
|
"anti_wrinkle_max_duration": "주름 방지 회전으로 처리할 최대 버스트 길이입니다. 주름 방지 보호가 활성화된 경우에만 적용됩니다.",
|
|
"anti_wrinkle_exit_power": "전력이 이 수준 아래로 떨어지면 주름 방지를 즉시 종료합니다(완전 꺼짐). 주름 방지 보호가 활성화된 경우에만 적용됩니다."
|
|
}
|
|
},
|
|
"delay_start_section": {
|
|
"name": "지연 시작 감지",
|
|
"description": "사이클이 실제로 시작될 때까지 지속적인 저전력 대기 상태를 '시작을 기다리는 중'으로 처리합니다.",
|
|
"data": {
|
|
"delay_start_detect_enabled": "지연된 시작 감지 활성화",
|
|
"delay_confirm_seconds": "지연 시작: 대기 확인 시간 (초)",
|
|
"delay_timeout_hours": "지연된 시작: 최대 대기 시간(h)"
|
|
},
|
|
"data_description": {
|
|
"delay_start_detect_enabled": "활성화되면 짧은 저전력 소모 스파이크와 지속적인 대기 전력이 지연된 시작으로 감지됩니다. 지연되는 동안 상태 센서에 '시작 대기 중'이 표시됩니다. 사이클이 실제로 시작될 때까지는 프로그램 시간이나 진행 상황이 추적되지 않습니다. start_threshold_w를 드레인 스파이크 전력보다 높게 설정해야 합니다.",
|
|
"delay_confirm_seconds": "전력이 정지 임계값 (W)과 시작 임계값 (W) 사이에서 이 시간(초) 동안 유지되어야 WashData가 '시작을 기다리는 중' 상태로 들어갑니다. 메뉴 탐색 중 발생하는 짧은 피크를 걸러냅니다. 기본값: 60초.",
|
|
"delay_timeout_hours": "안전 시간 초과: 이 시간이 지난 후에도 기기가 여전히 '시작 대기 중' 상태이면 WashData가 꺼짐으로 재설정됩니다. 기본값: 8시간"
|
|
}
|
|
},
|
|
"external_triggers_section": {
|
|
"name": "외부 트리거, 도어 및 일시 정지",
|
|
"description": "선택적 외부 종료 트리거 센서, 일시 정지/클린 감지를 위한 도어 센서, 그리고 일시 정지 시 전원을 차단하는 스위치를 설정합니다.",
|
|
"data": {
|
|
"external_end_trigger_enabled": "외부 사이클 종료 트리거 활성화",
|
|
"external_end_trigger": "외부 사이클 종료 센서",
|
|
"external_end_trigger_inverted": "트리거 로직 반전 (OFF 시 트리거)",
|
|
"door_sensor_entity": "도어 센서",
|
|
"pause_cuts_power": "일시 정지 시 전원 차단",
|
|
"switch_entity": "스위치 엔터티(정전 일시 정지용)",
|
|
"notify_unload_delay_minutes": "세탁 대기 알림 지연(분)"
|
|
},
|
|
"data_description": {
|
|
"external_end_trigger_enabled": "사이클 완료를 트리거하기 위한 외부 이진 센서 모니터링을 활성화합니다.",
|
|
"external_end_trigger": "이진 센서 엔터티를 선택하세요. 이 센서가 트리거되면 현재 사이클이 '완료' 상태로 종료됩니다.",
|
|
"external_end_trigger_inverted": "기본적으로 센서가 켜질 때 트리거됩니다. 대신 센서가 꺼질 때 트리거하려면 이 상자를 선택하세요.",
|
|
"door_sensor_entity": "기계 도어용 옵션 바이너리 센서(켜짐 = 열림, 꺼짐 = 닫힘). 활성 사이클 중에 문이 열리면 WashData는 사이클이 의도적으로 일시 중지되었음을 확인합니다. 사이클 종료 후에도 도어가 여전히 닫혀 있으면 도어가 열릴 때까지 'Clean' 상태로 변경됩니다. 참고: 도어를 닫아도 일시 중지된 주기가 자동으로 재개되지 않습니다. 재개는 주기 재개 버튼 또는 서비스를 통해 수동으로 실행되어야 합니다.",
|
|
"pause_cuts_power": "Pause Cycle 버튼이나 서비스를 통해 일시 중지하는 경우 구성된 스위치 엔터티도 끄십시오. 이 장치에 스위치 엔터티가 구성된 경우에만 적용됩니다.",
|
|
"switch_entity": "일시중지하거나 재개할 때 전환할 스위치 엔터티입니다. '일시 중지 시 전원 차단'이 활성화된 경우 필요합니다.",
|
|
"notify_unload_delay_minutes": "사이클이 종료되고 몇 분 동안 문이 열리지 않으면 완료 알림 채널을 통해 알림을 보냅니다(도어 센서 필요). 비활성화하려면 0으로 설정합니다. 기본값: 60분"
|
|
}
|
|
},
|
|
"pump_section": {
|
|
"name": "펌프 모니터",
|
|
"description": "펌프 장치 유형 전용입니다. 펌프 사이클이 이 지속 시간을 초과하면 이벤트를 발생시킵니다.",
|
|
"data": {
|
|
"pump_stuck_duration": "펌프 정체 경고 임계값(펌프만 해당)"
|
|
},
|
|
"data_description": {
|
|
"pump_stuck_duration": "이 시간이 지난 후에도 펌프 사이클이 계속 실행 중인 경우 ha_washdata_pump_stuck 이벤트가 한 번 실행됩니다. 이를 사용하여 걸린 모터를 감지합니다(일반적인 배수 펌프 작동 시간은 60초 미만입니다). 기본값: 1800초(30분) 펌프 장치 유형만 해당."
|
|
}
|
|
},
|
|
"device_link_section": {
|
|
"name": "장치 링크",
|
|
"description": "선택적으로 이 WashData 장치를 기존 Home Assistant 장치(예: 스마트 플러그 또는 기기 자체)에 연결합니다. 그러면 WashData 장치가 해당 장치를 통해 \"연결됨\"으로 표시됩니다. WashData를 독립형 장치로 유지하려면 비워 두세요.",
|
|
"data": {
|
|
"linked_device": "연결된 장치"
|
|
},
|
|
"data_description": {
|
|
"linked_device": "WashData를 연결할 장치를 선택하세요. 이렇게 하면 장치 레지스트리에 'Connected via' 참조가 추가됩니다. WashData는 자체 장치 카드와 엔터티를 유지합니다. 링크를 제거하려면 선택을 취소하세요."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"diagnostics": {
|
|
"title": "진단 및 유지보수",
|
|
"description": "조각난 사이클 병합 또는 저장된 데이터 마이그레이션과 같은 유지보수 작업을 실행합니다.\n\n**저장 공간 사용량**\n\n- 파일 크기: {file_size_kb} KB\n- 사이클: {cycle_count}\n- 프로필: {profile_count}\n- 디버그 추적: {debug_count}",
|
|
"menu_options": {
|
|
"reprocess_history": "유지보수: 데이터 재처리 및 최적화",
|
|
"clear_debug_data": "디버그 데이터 지우기 (공간 확보)",
|
|
"wipe_history": "이 장치의 모든 데이터 삭제 (되돌릴 수 없음)",
|
|
"export_import": "설정 포함 JSON 내보내기/가져오기 (복사/붙여넣기)",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"clear_debug_data": {
|
|
"title": "디버그 데이터 지우기",
|
|
"description": "저장된 모든 디버그 추적을 삭제하시겠습니까? 공간이 확보되지만 이전 사이클의 자세한 순위 정보가 제거됩니다."
|
|
},
|
|
"manage_cycles": {
|
|
"title": "사이클 관리",
|
|
"description": "최근 사이클:\n{recent_cycles}",
|
|
"menu_options": {
|
|
"auto_label_cycles": "기존 사이클 자동 라벨 지정",
|
|
"select_cycle_to_label": "특정 사이클 라벨 지정",
|
|
"select_cycle_to_delete": "사이클 삭제",
|
|
"interactive_editor": "병합/분할 대화형 편집기",
|
|
"trim_cycle_select": "사이클 데이터 트림",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"manage_cycles_empty": {
|
|
"title": "사이클 관리",
|
|
"description": "아직 기록된 사이클이 없습니다.",
|
|
"menu_options": {
|
|
"auto_label_cycles": "기존 사이클 자동 라벨 지정",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"manage_profiles": {
|
|
"title": "프로필 관리",
|
|
"description": "프로필 요약:\n{profile_summary}",
|
|
"menu_options": {
|
|
"create_profile": "새 프로필 만들기",
|
|
"edit_profile": "프로필 편집/이름 바꾸기",
|
|
"delete_profile_select": "프로필 삭제",
|
|
"profile_stats": "프로필 통계",
|
|
"cleanup_profile": "기록 정리 - 그래프 및 삭제",
|
|
"assign_profile_phases_select": "단계 범위 할당",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"manage_profiles_empty": {
|
|
"title": "프로필 관리",
|
|
"description": "아직 생성된 프로필이 없습니다.",
|
|
"menu_options": {
|
|
"create_profile": "새 프로필 만들기",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"manage_phase_catalog": {
|
|
"title": "단계 카탈로그 관리",
|
|
"description": "단계 카탈로그 (이 장치의 기본값 + 사용자 정의 단계):\n{phase_summary}",
|
|
"menu_options": {
|
|
"phase_catalog_create": "새 단계 만들기",
|
|
"phase_catalog_edit_select": "단계 편집",
|
|
"phase_catalog_delete": "단계 삭제",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"phase_catalog_create": {
|
|
"title": "사용자 정의 단계 만들기",
|
|
"description": "사용자 정의 단계 이름과 설명을 만들고 적용할 장치 유형을 선택합니다.",
|
|
"data": {
|
|
"target_device_type": "대상 장치 유형",
|
|
"phase_name": "단계 이름",
|
|
"phase_description": "단계 설명"
|
|
}
|
|
},
|
|
"phase_catalog_edit_select": {
|
|
"title": "사용자 정의 단계 편집",
|
|
"description": "편집할 사용자 정의 단계를 선택하세요.",
|
|
"data": {
|
|
"phase_name": "사용자 정의 단계"
|
|
}
|
|
},
|
|
"phase_catalog_edit": {
|
|
"title": "사용자 정의 단계 편집",
|
|
"description": "단계 편집: {phase_name}",
|
|
"data": {
|
|
"phase_name": "단계 이름",
|
|
"phase_description": "단계 설명"
|
|
}
|
|
},
|
|
"phase_catalog_delete": {
|
|
"title": "사용자 정의 단계 삭제",
|
|
"description": "삭제할 사용자 정의 단계를 선택하세요. 이 단계를 사용하는 모든 할당된 범위가 제거됩니다.",
|
|
"data": {
|
|
"phase_name": "사용자 정의 단계"
|
|
}
|
|
},
|
|
"assign_profile_phases": {
|
|
"title": "단계 범위 할당",
|
|
"description": "프로필 단계 미리보기: **{profile_name}**\n\n{timeline_svg}\n\n**현재 범위:**\n{current_ranges}\n\n범위를 추가, 편집, 삭제 또는 저장하려면 아래 작업을 사용하세요.",
|
|
"menu_options": {
|
|
"assign_profile_phases_add": "단계 범위 추가",
|
|
"assign_profile_phases_edit_select": "단계 범위 편집",
|
|
"assign_profile_phases_delete": "단계 범위 삭제",
|
|
"phase_ranges_clear": "모든 범위 지우기",
|
|
"assign_profile_phases_auto_detect": "단계 자동 감지",
|
|
"phase_ranges_save": "저장하고 돌아가기",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"assign_profile_phases_add": {
|
|
"title": "단계 범위 추가",
|
|
"description": "현재 초안에 하나의 단계 범위를 추가합니다.",
|
|
"data": {
|
|
"phase_name": "단계",
|
|
"start_min": "시작 분",
|
|
"end_min": "종료 분"
|
|
}
|
|
},
|
|
"assign_profile_phases_edit_select": {
|
|
"title": "단계 범위 편집",
|
|
"description": "편집할 범위를 선택하세요.",
|
|
"data": {
|
|
"range_index": "단계 범위"
|
|
}
|
|
},
|
|
"assign_profile_phases_edit": {
|
|
"title": "단계 범위 편집",
|
|
"description": "선택한 단계 범위를 업데이트합니다.",
|
|
"data": {
|
|
"phase_name": "단계",
|
|
"start_min": "시작 분",
|
|
"end_min": "종료 분"
|
|
}
|
|
},
|
|
"assign_profile_phases_delete": {
|
|
"title": "단계 범위 삭제",
|
|
"description": "초안에서 제거할 범위를 선택하세요.",
|
|
"data": {
|
|
"range_index": "단계 범위"
|
|
}
|
|
},
|
|
"assign_profile_phases_auto_detect": {
|
|
"title": "자동 감지된 단계",
|
|
"description": "프로필: **{profile_name}**\n\n{timeline_svg}\n\n**{detected_count}개 단계가 자동으로 감지되었습니다.** 아래에서 작업을 선택하세요.",
|
|
"data": {
|
|
"action": "작업"
|
|
}
|
|
},
|
|
"assign_profile_phases_auto_detect_name": {
|
|
"title": "감지된 단계 이름 지정",
|
|
"description": "프로필: **{profile_name}**\n\n**{detected_count}개 단계가 감지되었습니다:**\n{ranges_summary}\n\n각 단계에 이름을 지정하세요."
|
|
},
|
|
"assign_profile_phases_select": {
|
|
"title": "단계 범위 할당",
|
|
"description": "단계 범위를 구성할 프로필을 선택하세요.",
|
|
"data": {
|
|
"profile": "프로필"
|
|
}
|
|
},
|
|
"profile_stats": {
|
|
"title": "프로필 통계",
|
|
"description": "{stats_table}"
|
|
},
|
|
"create_profile": {
|
|
"title": "새 프로필 만들기",
|
|
"description": "수동으로 또는 이전 사이클에서 새 프로필을 만듭니다.\n\n프로필 이름 예: '섬세한 의류', '고강도', '빠른 세탁'",
|
|
"data": {
|
|
"profile_name": "프로필 이름",
|
|
"reference_cycle": "참조 사이클 (선택사항)",
|
|
"manual_duration": "수동 기간 (분)"
|
|
}
|
|
},
|
|
"edit_profile": {
|
|
"title": "프로필 편집",
|
|
"description": "이름을 바꿀 프로필을 선택하세요",
|
|
"data": {
|
|
"profile": "프로필"
|
|
}
|
|
},
|
|
"rename_profile": {
|
|
"title": "프로필 세부 정보 편집",
|
|
"description": "현재 프로필: {current_name}",
|
|
"data": {
|
|
"new_name": "프로필 이름",
|
|
"manual_duration": "수동 기간 (분)"
|
|
}
|
|
},
|
|
"delete_profile_select": {
|
|
"title": "프로필 삭제",
|
|
"description": "삭제할 프로필을 선택하세요",
|
|
"data": {
|
|
"profile": "프로필"
|
|
}
|
|
},
|
|
"delete_profile_confirm": {
|
|
"title": "프로필 삭제 확인",
|
|
"description": "⚠️ 다음 프로필이 영구적으로 삭제됩니다: {profile_name}",
|
|
"data": {
|
|
"unlabel_cycles": "이 프로필을 사용하는 사이클에서 라벨 제거"
|
|
}
|
|
},
|
|
"auto_label_cycles": {
|
|
"title": "기존 사이클 자동 라벨 지정",
|
|
"description": "총 {total_count}주기를 찾았습니다. 프로필: {profiles}",
|
|
"data": {
|
|
"confidence_threshold": "최소 신뢰도 (0.50-0.95)"
|
|
}
|
|
},
|
|
"select_cycle_to_label": {
|
|
"title": "라벨 지정할 사이클 선택",
|
|
"description": "✓ = 완료됨, ⚠ = 재개됨, ✗ = 중단됨",
|
|
"data": {
|
|
"cycle_id": "사이클"
|
|
}
|
|
},
|
|
"select_cycle_to_delete": {
|
|
"title": "사이클 삭제",
|
|
"description": "⚠️ 선택한 사이클이 영구적으로 삭제됩니다",
|
|
"data": {
|
|
"cycle_id": "삭제할 사이클"
|
|
}
|
|
},
|
|
"label_cycle": {
|
|
"title": "사이클 라벨 지정",
|
|
"description": "{cycle_info}",
|
|
"data": {
|
|
"profile_name": "프로필",
|
|
"new_profile_name": "새 프로필 이름 (생성하는 경우)"
|
|
}
|
|
},
|
|
"post_process": {
|
|
"title": "기록 처리 (병합/분할)",
|
|
"description": "조각난 실행을 병합하고 기간 내에서 잘못 병합된 주기를 분할하여 주기 기록을 정리합니다. 되돌아볼 시간을 입력하세요(모두 999999 사용).",
|
|
"data": {
|
|
"time_range": "검색 기간 (시간)",
|
|
"gap_seconds": "병합/분할 간격 (초)"
|
|
},
|
|
"data_description": {
|
|
"time_range": "분할된 주기를 병합하기 위해 검색하는 데 걸리는 시간입니다. 모든 과거 데이터를 처리하려면 999999를 사용하세요.",
|
|
"gap_seconds": "분할과 병합을 결정하는 임계값입니다. 이보다 짧은 간격은 병합됩니다. 이보다 긴 간격은 분할됩니다. 잘못 병합된 사이클을 강제로 분할하려면 이 값을 낮추세요."
|
|
}
|
|
},
|
|
"cleanup_profile": {
|
|
"title": "기록 정리 - 프로필 선택",
|
|
"description": "시각화할 프로필을 선택하세요. 이상값을 식별하는 데 도움이 되도록 이 프로필의 모든 이전 사이클을 보여주는 그래프가 생성됩니다.",
|
|
"data": {
|
|
"profile": "프로필"
|
|
}
|
|
},
|
|
"cleanup_select": {
|
|
"title": "기록 정리 - 그래프 및 삭제",
|
|
"description": "\n\n**{profile_name} 시각화 중**\n\n그래프는 개별 사이클을 색상 선으로 표시합니다. 이상값(그룹에서 멀리 떨어진 선)을 식별하고 아래 목록에서 해당 색상을 찾아 삭제하세요.\n\n**영구적으로 삭제할 사이클을 선택하세요:**",
|
|
"data": {
|
|
"cycles_to_delete": "삭제할 사이클 (일치하는 색상 확인)"
|
|
}
|
|
},
|
|
"interactive_editor": {
|
|
"title": "병합/분할 대화형 편집기",
|
|
"description": "사이클 기록에서 수행할 수동 작업을 선택합니다.",
|
|
"menu_options": {
|
|
"editor_split": "사이클 분할 (간격 찾기)",
|
|
"editor_merge": "사이클 병합 (조각 결합)",
|
|
"editor_delete": "사이클 삭제",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"editor_select": {
|
|
"title": "사이클 선택",
|
|
"description": "처리할 사이클을 선택하세요.\n\n{info_text}",
|
|
"data": {
|
|
"selected_cycles": "사이클"
|
|
}
|
|
},
|
|
"editor_configure": {
|
|
"title": "구성 및 적용",
|
|
"description": "{preview_md}",
|
|
"data": {
|
|
"confirm_action": "작업",
|
|
"merged_profile": "결과 프로필",
|
|
"new_profile_name": "새 프로필 이름",
|
|
"confirm_commit": "예, 이 작업을 확인합니다",
|
|
"segment_0_profile": "세그먼트 1 프로필",
|
|
"segment_1_profile": "세그먼트 2 프로필",
|
|
"segment_2_profile": "세그먼트 3 프로필",
|
|
"segment_3_profile": "세그먼트 4 프로필",
|
|
"segment_4_profile": "세그먼트 5 프로필",
|
|
"segment_5_profile": "세그먼트 6 프로필",
|
|
"segment_6_profile": "세그먼트 7 프로필",
|
|
"segment_7_profile": "세그먼트 8 프로필",
|
|
"segment_8_profile": "세그먼트 9 프로필",
|
|
"segment_9_profile": "세그먼트 10 프로필"
|
|
}
|
|
},
|
|
"editor_split_params": {
|
|
"title": "분할 구성",
|
|
"description": "이 사이클을 분할하는 민감도를 조정합니다. 이보다 긴 유휴 간격이 있으면 분할이 발생합니다.",
|
|
"data": {
|
|
"split_mode": "분할 방식"
|
|
}
|
|
},
|
|
"editor_split_auto_params": {
|
|
"title": "자동 분할 구성",
|
|
"description": "이 사이클을 분할하는 민감도를 조정합니다. 이보다 긴 유휴 간격은 분할을 발생시킵니다.",
|
|
"data": {
|
|
"min_gap_seconds": "분할 간격 임계값(초)"
|
|
}
|
|
},
|
|
"editor_split_manual_params": {
|
|
"title": "수동 분할 타임스탬프",
|
|
"description": "{preview_md}사이클 창: **{cycle_start_wallclock} → {cycle_end_wallclock}** 날짜 {cycle_date}.\n\n하나 이상의 분할 타임스탬프(`HH:MM` 또는 `HH:MM:SS`)를 한 줄에 하나씩 입력하세요. 각 타임스탬프에서 사이클이 잘립니다 — 타임스탬프 N개는 N+1개 구간을 만듭니다.",
|
|
"data": {
|
|
"split_timestamps": "분할 타임스탬프"
|
|
}
|
|
},
|
|
"reprocess_history": {
|
|
"title": "유지보수: 데이터 재처리 및 최적화",
|
|
"description": "기록 데이터를 심층 정리합니다:\n1. 제로 전력 수치(무음)를 자릅니다.\n2. 사이클 타이밍/기간을 수정합니다.\n3. 모든 통계 모델(엔벨로프)을 다시 계산합니다.\n\n**데이터 문제를 해결하거나 새로운 알고리즘을 적용하려면 이 작업을 실행하세요.**"
|
|
},
|
|
"wipe_history": {
|
|
"title": "기록 삭제 (테스트 전용)",
|
|
"description": "⚠️ 이 장치에 저장된 모든 사이클과 프로필이 영구적으로 삭제됩니다. 이 작업은 취소할 수 없습니다!"
|
|
},
|
|
"export_import": {
|
|
"title": "JSON 내보내기/가져오기",
|
|
"description": "이 장치의 사이클, 프로필 및 설정을 복사/붙여넣기하세요. 아래에서 내보내거나 JSON을 붙여넣어 가져오세요.",
|
|
"data": {
|
|
"mode": "작업",
|
|
"json_payload": "전체 구성 JSON"
|
|
},
|
|
"data_description": {
|
|
"mode": "현재 데이터 및 설정을 복사하려면 내보내기를, 다른 WashData 장치에서 내보낸 데이터를 붙여넣으려면 가져오기를 선택하세요.",
|
|
"json_payload": "내보내기: 이 JSON을 복사하세요(사이클, 프로필 및 모든 세부 조정 설정 포함). 가져오기: WashData에서 내보낸 JSON을 붙여넣으세요."
|
|
}
|
|
},
|
|
"record_cycle": {
|
|
"title": "사이클 기록",
|
|
"description": "간섭 없이 깔끔한 프로필을 생성하기 위해 사이클을 수동으로 기록합니다.\n\n상태: **{status}**\n기간: {duration}초\n샘플: {samples}",
|
|
"menu_options": {
|
|
"record_refresh": "상태 새로 고침",
|
|
"record_stop": "기록 중지 (저장 및 처리)",
|
|
"record_start": "새 기록 시작",
|
|
"record_process": "마지막 기록 처리 (트림 및 저장)",
|
|
"record_discard": "마지막 기록 취소",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"record_process": {
|
|
"title": "기록 처리",
|
|
"description": "\n\n**그래프는 원시 기록을 보여줍니다.** 파란색 = 유지, 빨간색 = 제안된 트림.\n*그래프는 정적이며 양식 변경 시 업데이트되지 않습니다.*\n\n기록이 중지되었습니다. 트림은 감지된 샘플링 속도(~{sampling_rate}초)에 맞춰 정렬됩니다.\n\n원시 기간: {duration}초\n샘플: {samples}",
|
|
"data": {
|
|
"head_trim": "트림 시작 (초)",
|
|
"tail_trim": "트림 종료 (초)",
|
|
"save_mode": "저장 대상",
|
|
"profile_name": "프로필 이름"
|
|
}
|
|
},
|
|
"learning_feedbacks": {
|
|
"title": "학습 피드백",
|
|
"description": "대기 중인 피드백: {count}\n\n{pending_table}\n\n처리할 사이클 검토 요청을 선택하세요.",
|
|
"menu_options": {
|
|
"learning_feedbacks_pick": "대기 중인 피드백 하나 검토",
|
|
"learning_feedbacks_dismiss_all": "대기 중인 피드백 모두 닫기",
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"learning_feedbacks_pick": {
|
|
"title": "검토할 피드백 선택",
|
|
"description": "열어볼 사이클 검토 요청을 선택하세요.",
|
|
"data": {
|
|
"selected_feedback": "검토할 사이클 선택"
|
|
}
|
|
},
|
|
"learning_feedbacks_empty": {
|
|
"title": "학습 피드백",
|
|
"description": "대기 중인 피드백 요청이 없습니다.",
|
|
"menu_options": {
|
|
"menu_back": "← 뒤로"
|
|
}
|
|
},
|
|
"learning_feedbacks_dismiss_all": {
|
|
"title": "보류 중인 모든 피드백 해제",
|
|
"description": "보류 중인 피드백 요청 **{count}**건을 해제하려고 합니다. 해제된 사이클은 기록에 남지만 새로운 학습 신호에는 기여하지 않습니다. 이 작업은 되돌릴 수 없습니다.\n\n✅ 모두 해제하려면 아래 확인란을 선택하고 **제출**을 클릭하세요.\n❌ 체크하지 않은 상태로 두고 **제출**을 클릭하여 취소하고 돌아갑니다.",
|
|
"data": {
|
|
"confirm_dismiss_all": "확인: 대기 중인 피드백 요청을 모두 닫습니다"
|
|
}
|
|
},
|
|
"resolve_feedback": {
|
|
"title": "피드백 해결",
|
|
"description": "{comparison_img}{candidates_table}\n**감지된 프로필**: {detected_profile} ({confidence_pct}%)\n**예상 기간**: {est_duration_min}분\n**실제 기간**: {act_duration_min}분\n\n__아래에서 작업을 선택하세요:__",
|
|
"data": {
|
|
"action": "어떻게 하시겠습니까?",
|
|
"corrected_profile": "올바른 프로그램 (수정하는 경우)",
|
|
"corrected_duration": "올바른 기간 (초) (수정하는 경우)"
|
|
}
|
|
},
|
|
"trim_cycle_select": {
|
|
"title": "사이클 트림 - 사이클 선택",
|
|
"description": "트림할 사이클을 선택하세요. ✓ = 완료됨, ⚠ = 재개됨, ✗ = 중단됨",
|
|
"data": {
|
|
"cycle_id": "사이클"
|
|
}
|
|
},
|
|
"trim_cycle": {
|
|
"title": "사이클 트림",
|
|
"description": "현재 창: {trim_summary}\n\n{trim_svg}",
|
|
"data": {
|
|
"action": "작업"
|
|
}
|
|
},
|
|
"trim_cycle_start": {
|
|
"title": "트림 시작 설정",
|
|
"description": "주기 창: {cycle_start_wallclock} → {cycle_end_wallclock}\n\n현재 시작: **{current_wallclock}** (주기 시작으로부터 +{current_offset_min}분)\n\n아래의 시계 선택기를 사용하여 새로운 시작 시간을 선택하세요.",
|
|
"data": {
|
|
"trim_start_time": "새로운 시작 시간",
|
|
"trim_start_min": "새로운 시작(사이클 시작 후 몇 분)"
|
|
}
|
|
},
|
|
"trim_cycle_end": {
|
|
"title": "트림 종료 설정",
|
|
"description": "주기 창: {cycle_start_wallclock} → {cycle_end_wallclock}\n\n현재 종료: **{current_wallclock}** (주기 시작으로부터 +{current_offset_min}분)\n\n아래의 시계 선택기를 사용하여 새로운 종료 시간을 선택하세요.",
|
|
"data": {
|
|
"trim_end_time": "새로운 종료 시간",
|
|
"trim_end_min": "새로운 종료(사이클 시작 후 몇 분)"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"import_failed": "가져오기에 실패했습니다. 유효한 WashData 내보내기 JSON을 붙여넣으세요.",
|
|
"select_exactly_one": "이 작업에는 정확히 한 개의 사이클을 선택하세요.",
|
|
"select_at_least_one": "이 작업에는 최소 한 개의 사이클을 선택하세요.",
|
|
"select_at_least_two": "이 작업에는 최소 두 개의 사이클을 선택하세요.",
|
|
"profile_exists": "이 이름의 프로필이 이미 존재합니다",
|
|
"rename_failed": "프로필 이름을 바꾸지 못했습니다. 프로필이 존재하지 않거나 새 이름이 이미 사용 중입니다.",
|
|
"assignment_failed": "사이클에 프로필을 할당하지 못했습니다",
|
|
"duplicate_phase": "이 이름의 단계가 이미 존재합니다.",
|
|
"phase_not_found": "선택한 단계를 찾을 수 없습니다.",
|
|
"invalid_phase_name": "단계 이름은 비워둘 수 없습니다.",
|
|
"phase_name_too_long": "단계 이름이 너무 깁니다.",
|
|
"invalid_phase_range": "단계 범위가 올바르지 않습니다. 종료는 시작보다 커야 합니다.",
|
|
"invalid_phase_timestamp": "타임스탬프가 올바르지 않습니다. YYYY-MM-DD HH:MM 또는 HH:MM 형식을 사용하세요.",
|
|
"overlapping_phase_ranges": "단계 범위가 겹칩니다. 범위를 조정하고 다시 시도하세요.",
|
|
"incomplete_phase_row": "각 단계 행에는 선택한 모드에 대한 단계와 완전한 시작/종료 값이 포함되어야 합니다.",
|
|
"timestamp_mode_cycle_required": "타임스탬프 모드를 사용할 때 소스 사이클을 선택하세요.",
|
|
"no_phase_ranges": "이 작업에 사용할 수 있는 단계 범위가 아직 없습니다.",
|
|
"feedback_notification_title": "WashData: 사이클 확인 ({device})",
|
|
"feedback_notification_message": "**장치**: {device}\n**프로그램**: {program} ({confidence}% 신뢰도)\n**시간**: {time}\n\nWashData가 감지된 사이클을 확인하려면 귀하의 도움이 필요합니다.\n\n이 결과를 확인하거나 수정하려면 **설정 > 장치 및 서비스 > WashData > 구성 > 학습 피드백**으로 이동하세요.",
|
|
"suggestions_ready_notification_title": "WashData: 제안 설정 준비됨 ({device})",
|
|
"suggestions_ready_notification_message": "**제안 설정** 센서가 이제 **{count}**개의 실행 가능한 권장사항을 보고합니다.\n\n검토 및 적용하려면: **설정 > 장치 및 서비스 > WashData > 구성 > 고급 설정 > 제안 값 적용**.\n\n제안사항은 선택사항이며 저장하기 전에 검토용으로 표시됩니다.",
|
|
"trim_range_invalid": "시작은 종료 이전이어야 합니다. 트림 포인트를 조정해 주세요.",
|
|
"trim_failed": "트림에 실패했습니다. 사이클이 더 이상 존재하지 않거나 창이 비어 있습니다.",
|
|
"invalid_split_timestamp": "타임스탬프가 올바르지 않거나 사이클 범위를 벗어났습니다. 사이클 범위 안의 HH:MM 또는 HH:MM:SS 형식을 사용하세요.",
|
|
"no_split_segments_found": "이 타임스탬프로는 유효한 구간을 만들 수 없습니다. 각 타임스탬프가 사이클 범위 안에 있고, 각 구간의 길이가 최소 1분인지 확인하세요.",
|
|
"auto_tune_suggestion": "{device_type} {device_title}이(가) 고스트 사이클을 감지했습니다. 권장되는 min_power 변경: {current_min}W -> {new_min}W(자동으로 적용되지 않음).",
|
|
"auto_tune_title": "WashData 자동 조정",
|
|
"auto_tune_fallback": "{device_type} {device_title}이(가) 고스트 사이클을 감지했습니다. 권장되는 min_power 변경: {current_min}W -> {new_min}W(자동으로 적용되지 않음)."
|
|
},
|
|
"abort": {
|
|
"no_cycles_found": "사이클을 찾을 수 없습니다",
|
|
"no_split_segments_found": "선택한 사이클에서 분할 가능한 구간을 찾지 못했습니다.",
|
|
"cycle_not_found": "선택한 사이클을 불러올 수 없습니다.",
|
|
"no_power_data": "선택한 사이클에 사용할 수 있는 전력 추적 데이터가 없습니다.",
|
|
"no_profiles_found": "프로필을 찾을 수 없습니다. 먼저 프로필을 만드세요.",
|
|
"no_profiles_for_matching": "일치시킬 프로필이 없습니다. 먼저 프로필을 만드세요.",
|
|
"no_unlabeled_cycles": "모든 사이클에 이미 라벨이 지정되어 있습니다",
|
|
"no_suggestions": "아직 제안된 값이 없습니다. 몇 가지 사이클을 실행한 후 다시 시도하세요.",
|
|
"no_predictions": "예측 없음",
|
|
"no_custom_phases": "사용자 정의 단계를 찾을 수 없습니다.",
|
|
"reprocess_success": "{count}개의 사이클을 성공적으로 재처리했습니다.",
|
|
"debug_data_cleared": "{count}개의 사이클에서 디버그 데이터를 성공적으로 지웠습니다."
|
|
}
|
|
},
|
|
"selector": {
|
|
"notify_events_option": {
|
|
"options": {
|
|
"cycle_start": "사이클 시작",
|
|
"cycle_finish": "사이클 완료",
|
|
"cycle_live": "실시간 진행"
|
|
}
|
|
},
|
|
"common_text": {
|
|
"options": {
|
|
"unlabeled": "(라벨 없음)",
|
|
"create_new_profile": "새 프로필 만들기",
|
|
"remove_label": "라벨 제거",
|
|
"no_reference_cycle": "(참조 사이클 없음)",
|
|
"all_device_types": "모든 장치 유형",
|
|
"current_suffix": "(현재)",
|
|
"editor_select_info": "분할할 사이클 1개 또는 병합할 사이클 2개 이상을 선택하세요.",
|
|
"editor_select_info_split": "분할할 사이클을 1개 선택하세요.",
|
|
"editor_select_info_merge": "병합할 사이클을 2개 이상 선택하세요.",
|
|
"editor_select_info_delete": "삭제할 사이클을 1개 이상 선택하세요.",
|
|
"no_cycles_recorded": "아직 기록된 사이클이 없습니다.",
|
|
"profile_summary_line": "- **{name}**: {count}회 사이클, 평균 {avg}분",
|
|
"no_profiles_created": "아직 생성된 프로필이 없습니다.",
|
|
"phase_preview": "단계 미리보기",
|
|
"phase_preview_no_curve": "평균 프로필 곡선을 아직 사용할 수 없습니다. 이 프로필에 대한 사이클을 더 실행/라벨 지정하세요.",
|
|
"average_power_curve": "평균 전력 곡선",
|
|
"unit_min": "분",
|
|
"profile_option_fmt": "{name} ({count}회 사이클, ~{duration}분 평균)",
|
|
"profile_option_short_fmt": "{name} ({count}회 사이클, ~{duration}분)",
|
|
"deleted_cycles_from_profile": "{profile}에서 {count}개의 사이클을 삭제했습니다.",
|
|
"not_enough_data_graph": "그래프를 생성하기에 데이터가 충분하지 않습니다.",
|
|
"no_profiles_found": "프로필을 찾을 수 없습니다.",
|
|
"cycle_info_fmt": "사이클: {start}, {duration}분, 현재: {label}",
|
|
"top_candidates_header": "### 상위 후보",
|
|
"tbl_profile": "프로필",
|
|
"tbl_confidence": "신뢰도",
|
|
"tbl_correlation": "상관관계",
|
|
"tbl_duration_match": "기간 일치",
|
|
"detected_profile": "감지된 프로필",
|
|
"estimated_duration": "예상 기간",
|
|
"actual_duration": "실제 기간",
|
|
"choose_action": "__아래에서 작업을 선택하세요:__",
|
|
"tbl_count": "횟수",
|
|
"tbl_avg": "평균",
|
|
"tbl_min": "최소",
|
|
"tbl_max": "최대",
|
|
"tbl_energy_avg": "에너지 (평균)",
|
|
"tbl_energy_total": "에너지 (합계)",
|
|
"tbl_consistency": "일관성",
|
|
"tbl_last_run": "마지막 실행",
|
|
"graph_legend_title": "그래프 범례",
|
|
"graph_legend_body": "파란색 밴드는 관찰된 최소 및 최대 전력 소모 범위를 나타냅니다. 선은 평균 전력 곡선을 보여줍니다.",
|
|
"recording_preview": "기록 미리보기",
|
|
"trim_start": "트림 시작",
|
|
"trim_end": "트림 종료",
|
|
"split_preview_title": "분할 미리보기",
|
|
"split_preview_found_fmt": "{count}개의 세그먼트를 찾았습니다.",
|
|
"split_preview_confirm_fmt": "확인을 클릭하여 이 사이클을 {count}개의 개별 사이클로 분할합니다.",
|
|
"merge_preview_title": "병합 미리보기",
|
|
"merge_preview_joining_fmt": "{count}개의 사이클을 병합합니다. 간격은 0W 수치로 채워집니다.",
|
|
"editor_delete_preview_title": "삭제 미리보기",
|
|
"editor_delete_preview_intro": "선택한 사이클은 영구적으로 삭제됩니다:",
|
|
"editor_delete_preview_confirm": "이 사이클 기록을 영구적으로 삭제하려면 확인을 클릭하세요.",
|
|
"no_power_preview": "*미리보기에 사용할 수 있는 전력 데이터가 없습니다.*",
|
|
"profile_comparison": "프로필 비교",
|
|
"actual_cycle_label": "이 사이클 (실제)",
|
|
"storage_usage_header": "저장 공간 사용량",
|
|
"storage_file_size": "파일 크기",
|
|
"storage_cycles": "사이클",
|
|
"storage_profiles": "프로필",
|
|
"storage_debug_traces": "디버그 추적",
|
|
"overview_suffix": "개요",
|
|
"phase_preview_for_profile": "프로필의 단계 미리보기",
|
|
"current_ranges_header": "현재 범위",
|
|
"assign_phases_help": "범위를 추가, 편집, 삭제 또는 저장하려면 아래 작업을 사용하세요.",
|
|
"profile_summary_header": "프로필 요약",
|
|
"recent_cycles_header": "최근 사이클",
|
|
"trim_cycle_preview_title": "사이클 트림 미리보기",
|
|
"trim_cycle_preview_no_data": "이 사이클에 사용할 수 있는 전력 데이터가 없습니다.",
|
|
"trim_cycle_preview_kept_suffix": "유지됨",
|
|
"table_program": "프로그램",
|
|
"table_when": "시점",
|
|
"table_length": "길이",
|
|
"table_match": "일치",
|
|
"table_profile": "프로필",
|
|
"table_cycles": "사이클",
|
|
"table_avg_length": "평균 길이",
|
|
"table_last_run": "마지막 실행",
|
|
"table_avg_energy": "평균 에너지",
|
|
"table_detected_program": "감지된 프로그램",
|
|
"table_confidence": "신뢰도",
|
|
"table_reported": "보고됨",
|
|
"phase_builtin_suffix": "(내장)",
|
|
"phase_none_available": "사용 가능한 단계가 없습니다.",
|
|
"settings_deprecation_warning": "⚠️ **더 이상 사용되지 않는 장치 유형:** {device_type}은(는) 향후 릴리스에서 제거될 예정입니다. WashData의 일치 파이프라인은 이 어플라이언스 클래스에 대해 신뢰할 수 있는 결과를 생성하지 않습니다. 통합은 지원 중단 기간 동안 계속 작동합니다. 이 경고를 끄려면 아래의 **장치 유형**을 지원되는 유형(세탁기, 건조기, 세탁기-건조기 콤보, 식기세척기, 에어프라이어, 제빵기 또는 펌프) 중 하나로 전환하거나 가전제품이 지원되는 유형과 일치하지 않는 경우 **기타(고급)**로 전환하세요. **기타(고급)**은 특정 어플라이언스에 맞게 조정되지 않은 의도적으로 일반 기본값을 제공하므로 임계값, 시간 초과 및 일치 매개변수를 직접 구성해야 합니다. 전환하면 모든 기존 설정이 유지됩니다.",
|
|
"phase_other_device_types": "기타 장치 유형:"
|
|
}
|
|
},
|
|
"interactive_editor_action": {
|
|
"options": {
|
|
"split": "사이클 분할 (간격 찾기)",
|
|
"merge": "사이클 병합 (조각 결합)",
|
|
"delete": "사이클 삭제"
|
|
}
|
|
},
|
|
"split_mode": {
|
|
"options": {
|
|
"auto": "유휴 간격 자동 감지",
|
|
"manual": "수동 타임스탬프"
|
|
}
|
|
},
|
|
"diagnostics_action": {
|
|
"options": {
|
|
"reprocess_history": "유지보수: 데이터 재처리 및 최적화",
|
|
"clear_debug_data": "디버그 데이터 지우기 (공간 확보)",
|
|
"wipe_history": "이 장치의 모든 데이터 삭제 (되돌릴 수 없음)",
|
|
"export_import": "설정 포함 JSON 내보내기/가져오기 (복사/붙여넣기)"
|
|
}
|
|
},
|
|
"export_import_mode": {
|
|
"options": {
|
|
"export": "모든 데이터 내보내기",
|
|
"import": "데이터 가져오기/병합"
|
|
}
|
|
},
|
|
"manage_cycles_action": {
|
|
"options": {
|
|
"auto_label_cycles": "기존 사이클 자동 라벨 지정",
|
|
"select_cycle_to_label": "특정 사이클 라벨 지정",
|
|
"select_cycle_to_delete": "사이클 삭제",
|
|
"interactive_editor": "병합/분할 대화형 편집기",
|
|
"trim_cycle": "사이클 데이터 트림"
|
|
}
|
|
},
|
|
"manage_profiles_action": {
|
|
"options": {
|
|
"create_profile": "새 프로필 만들기",
|
|
"edit_profile": "프로필 편집/이름 바꾸기",
|
|
"delete_profile": "프로필 삭제",
|
|
"profile_stats": "프로필 통계",
|
|
"cleanup_profile": "기록 정리 - 그래프 및 삭제",
|
|
"assign_phases": "단계 범위 할당"
|
|
}
|
|
},
|
|
"manage_phase_catalog_action": {
|
|
"options": {
|
|
"create_custom_phase": "새 단계 만들기",
|
|
"edit_custom_phase": "단계 편집",
|
|
"delete_custom_phase": "단계 삭제"
|
|
}
|
|
},
|
|
"assign_profile_phases_action": {
|
|
"options": {
|
|
"add_range": "단계 범위 추가",
|
|
"edit_range": "단계 범위 편집",
|
|
"delete_range": "단계 범위 삭제",
|
|
"clear_ranges": "모든 범위 지우기",
|
|
"auto_detect_ranges": "단계 자동 감지",
|
|
"save_ranges": "저장하고 돌아가기"
|
|
}
|
|
},
|
|
"record_cycle_action": {
|
|
"options": {
|
|
"refresh_status": "상태 새로 고침",
|
|
"stop_recording": "기록 중지 (저장 및 처리)",
|
|
"start_recording": "새 기록 시작",
|
|
"process_recording": "마지막 기록 처리 (트림 및 저장)",
|
|
"discard_recording": "마지막 기록 취소"
|
|
}
|
|
},
|
|
"record_process_save_mode": {
|
|
"options": {
|
|
"new_profile": "새 프로필 만들기",
|
|
"existing_profile": "기존 프로필에 추가",
|
|
"discard": "기록 취소"
|
|
}
|
|
},
|
|
"resolve_feedback_action": {
|
|
"options": {
|
|
"confirm": "확인 - 올바른 감지",
|
|
"correct": "수정 - 프로그램/기간 선택",
|
|
"ignore": "무시 - 오탐/노이즈 사이클",
|
|
"delete": "삭제 - 기록에서 제거"
|
|
}
|
|
},
|
|
"assign_profile_phases_auto_detect_action": {
|
|
"options": {
|
|
"name_phases": "단계 이름 지정 및 적용",
|
|
"cancel": "변경사항 없이 돌아가기"
|
|
}
|
|
},
|
|
"trim_cycle_action": {
|
|
"options": {
|
|
"set_start": "시작점 설정",
|
|
"set_end": "종료점 설정",
|
|
"reset": "전체 기간으로 초기화",
|
|
"apply": "트림 적용",
|
|
"cancel": "취소"
|
|
}
|
|
},
|
|
"device_type": {
|
|
"options": {
|
|
"washing_machine": "세탁기",
|
|
"dryer": "건조기",
|
|
"washer_dryer": "세탁기-건조기 콤보",
|
|
"dishwasher": "식기세척기",
|
|
"coffee_machine": "커피 머신(더 이상 사용되지 않음)",
|
|
"ev": "전기 자동차(더 이상 사용되지 않음)",
|
|
"air_fryer": "에어프라이어",
|
|
"heat_pump": "열 펌프(더 이상 사용되지 않음)",
|
|
"bread_maker": "빵 제조기",
|
|
"pump": "펌프 / 배수 펌프",
|
|
"oven": "오븐(지원 중단됨)",
|
|
"other": "기타(고급)"
|
|
}
|
|
}
|
|
},
|
|
"services": {
|
|
"label_cycle": {
|
|
"name": "사이클 라벨 지정",
|
|
"description": "이전 사이클에 기존 프로필을 할당하거나 라벨을 제거합니다.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "라벨을 지정할 WashData 장치입니다."
|
|
},
|
|
"cycle_id": {
|
|
"name": "사이클 ID",
|
|
"description": "라벨을 지정할 사이클의 ID입니다."
|
|
},
|
|
"profile_name": {
|
|
"name": "프로필 이름",
|
|
"description": "기존 프로필의 이름입니다(프로필 관리 메뉴에서 프로필 생성). 라벨을 제거하려면 비워두세요."
|
|
}
|
|
}
|
|
},
|
|
"create_profile": {
|
|
"name": "프로필 만들기",
|
|
"description": "새 프로필을 만듭니다(독립형 또는 참조 사이클 기반).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "WashData 장치입니다."
|
|
},
|
|
"profile_name": {
|
|
"name": "프로필 이름",
|
|
"description": "새 프로필의 이름입니다(예: 'Heavy Duty', 'Delicates')."
|
|
},
|
|
"reference_cycle_id": {
|
|
"name": "참조 사이클 ID",
|
|
"description": "이 프로필의 기반이 될 선택적 사이클 ID입니다."
|
|
}
|
|
}
|
|
},
|
|
"delete_profile": {
|
|
"name": "프로필 삭제",
|
|
"description": "프로필을 삭제하고 선택적으로 이를 사용하는 사이클의 라벨을 해제합니다.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "WashData 장치입니다."
|
|
},
|
|
"profile_name": {
|
|
"name": "프로필 이름",
|
|
"description": "삭제할 프로필입니다."
|
|
},
|
|
"unlabel_cycles": {
|
|
"name": "사이클 라벨 해제",
|
|
"description": "이 프로필을 사용하는 사이클에서 프로필 라벨을 제거합니다."
|
|
}
|
|
}
|
|
},
|
|
"auto_label_cycles": {
|
|
"name": "기존 사이클 자동 라벨 지정",
|
|
"description": "프로필 일치를 사용하여 라벨 없는 사이클에 소급하여 라벨을 지정합니다.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "WashData 장치입니다."
|
|
},
|
|
"confidence_threshold": {
|
|
"name": "신뢰도 임계값",
|
|
"description": "라벨을 적용하기 위한 최소 일치 신뢰도(0.50-0.95)입니다."
|
|
}
|
|
}
|
|
},
|
|
"export_config": {
|
|
"name": "구성 내보내기",
|
|
"description": "이 장치의 프로필, 사이클 및 설정을 JSON 파일로 내보냅니다(장치별).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "내보낼 WashData 장치입니다."
|
|
},
|
|
"path": {
|
|
"name": "경로",
|
|
"description": "쓸 선택적 절대 파일 경로입니다(기본값: /config/ha_washdata_export_{entry}.json)."
|
|
}
|
|
}
|
|
},
|
|
"import_config": {
|
|
"name": "구성 가져오기",
|
|
"description": "JSON 내보내기 파일에서 이 장치의 프로필, 사이클 및 설정을 가져옵니다(설정이 덮어써질 수 있음).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "가져올 WashData 장치입니다."
|
|
},
|
|
"path": {
|
|
"name": "경로",
|
|
"description": "가져올 내보내기 JSON 파일의 절대 경로입니다."
|
|
}
|
|
}
|
|
},
|
|
"submit_cycle_feedback": {
|
|
"name": "사이클 피드백 제출",
|
|
"description": "사이클이 완료된 후 자동 감지된 프로그램을 확인하거나 수정합니다. `entry_id`(고급) 또는 `device_id`(권장)를 제공하세요.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "WashData 장치입니다(entry_id 대신 권장)."
|
|
},
|
|
"entry_id": {
|
|
"name": "항목 ID",
|
|
"description": "장치의 구성 항목 ID입니다(device_id의 대안)."
|
|
},
|
|
"cycle_id": {
|
|
"name": "사이클 ID",
|
|
"description": "피드백 알림/로그에 표시된 사이클 ID입니다."
|
|
},
|
|
"user_confirmed": {
|
|
"name": "감지된 프로그램 확인",
|
|
"description": "감지된 프로그램이 맞으면 true로 설정하세요."
|
|
},
|
|
"corrected_profile": {
|
|
"name": "수정된 프로필",
|
|
"description": "확인되지 않은 경우 올바른 프로필/프로그램 이름을 제공하세요."
|
|
},
|
|
"corrected_duration": {
|
|
"name": "수정된 기간 (초)",
|
|
"description": "선택적 수정 기간(초)입니다."
|
|
},
|
|
"notes": {
|
|
"name": "메모",
|
|
"description": "이 사이클에 대한 선택적 메모입니다."
|
|
}
|
|
}
|
|
},
|
|
"record_start": {
|
|
"name": "사이클 기록 시작",
|
|
"description": "클린 사이클을 수동으로 기록하기 시작합니다(모든 일치 로직을 우회합니다).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "기록할 WashData 장치입니다."
|
|
}
|
|
}
|
|
},
|
|
"record_stop": {
|
|
"name": "사이클 기록 중지",
|
|
"description": "수동 기록을 중지합니다.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "기록을 중지할 WashData 장치입니다."
|
|
}
|
|
}
|
|
},
|
|
"trim_cycle": {
|
|
"name": "사이클 트림",
|
|
"description": "이전 사이클의 전력 데이터를 특정 시간 창으로 트림합니다.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "WashData 장치입니다."
|
|
},
|
|
"cycle_id": {
|
|
"name": "사이클 ID",
|
|
"description": "트림할 사이클의 ID입니다."
|
|
},
|
|
"trim_start_s": {
|
|
"name": "트림 시작 (초)",
|
|
"description": "이 오프셋(초)부터 데이터를 유지합니다. 기본값 0."
|
|
},
|
|
"trim_end_s": {
|
|
"name": "트림 종료 (초)",
|
|
"description": "이 오프셋(초)까지 데이터를 유지합니다. 기본값 = 전체 기간."
|
|
}
|
|
}
|
|
},
|
|
"pause_cycle": {
|
|
"name": "일시정지 주기",
|
|
"description": "WashData 장치의 활성 주기를 일시 중지합니다.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "일시중지할 WashData 장치입니다."
|
|
}
|
|
}
|
|
},
|
|
"resume_cycle": {
|
|
"name": "재개주기",
|
|
"description": "WashData 장치에 대해 일시 중지된 주기를 재개합니다.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "장치",
|
|
"description": "재개할 WashData 장치입니다."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"entity": {
|
|
"binary_sensor": {
|
|
"running": {
|
|
"name": "실행 중"
|
|
},
|
|
"match_ambiguity": {
|
|
"name": "일치 모호도"
|
|
}
|
|
},
|
|
"sensor": {
|
|
"washer_state": {
|
|
"name": "상태",
|
|
"state": {
|
|
"off": "꺼짐",
|
|
"idle": "대기 중",
|
|
"starting": "시작 중",
|
|
"running": "실행 중",
|
|
"paused": "일시 정지됨",
|
|
"user_paused": "사용자가 일시 정지함",
|
|
"ending": "종료 중",
|
|
"finished": "완료됨",
|
|
"anti_wrinkle": "주름 방지",
|
|
"delay_wait": "시작을 기다리는 중",
|
|
"interrupted": "중단됨",
|
|
"force_stopped": "강제 정지됨",
|
|
"rinse": "헹굼",
|
|
"unknown": "알 수 없음",
|
|
"clean": "깨끗한"
|
|
}
|
|
},
|
|
"washer_program": {
|
|
"name": "프로그램"
|
|
},
|
|
"time_remaining": {
|
|
"name": "남은 시간"
|
|
},
|
|
"total_duration": {
|
|
"name": "총 기간"
|
|
},
|
|
"cycle_progress": {
|
|
"name": "진행 상황"
|
|
},
|
|
"current_power": {
|
|
"name": "현재 전력"
|
|
},
|
|
"elapsed_time": {
|
|
"name": "경과 시간"
|
|
},
|
|
"debug_info": {
|
|
"name": "디버그 정보"
|
|
},
|
|
"match_confidence": {
|
|
"name": "일치 신뢰도"
|
|
},
|
|
"top_candidates": {
|
|
"name": "상위 후보",
|
|
"state": {
|
|
"none": "없음"
|
|
}
|
|
},
|
|
"current_phase": {
|
|
"name": "현재 단계"
|
|
},
|
|
"wash_phase": {
|
|
"name": "단계"
|
|
},
|
|
"profile_cycle_count": {
|
|
"name": "프로필 {profile_name} 횟수",
|
|
"unit_of_measurement": "사이클"
|
|
},
|
|
"suggestions": {
|
|
"name": "이용 가능한 제안 설정"
|
|
},
|
|
"pump_runs_today": {
|
|
"name": "펌프 작동(지난 24시간)"
|
|
},
|
|
"cycle_count": {
|
|
"name": "사이클 수"
|
|
}
|
|
},
|
|
"select": {
|
|
"program_select": {
|
|
"name": "사이클 프로그램",
|
|
"state": {
|
|
"auto_detect": "자동 감지"
|
|
}
|
|
}
|
|
},
|
|
"button": {
|
|
"force_end_cycle": {
|
|
"name": "사이클 강제 종료"
|
|
},
|
|
"pause_cycle": {
|
|
"name": "일시정지 주기"
|
|
},
|
|
"resume_cycle": {
|
|
"name": "재개주기"
|
|
}
|
|
}
|
|
},
|
|
"exceptions": {
|
|
"device_id_required": {
|
|
"message": "유효한 device_id가 필요합니다."
|
|
},
|
|
"cycle_id_required": {
|
|
"message": "유효한 Cycle_id가 필요합니다."
|
|
},
|
|
"profile_name_required": {
|
|
"message": "유효한 profile_name이 필요합니다."
|
|
},
|
|
"device_not_found": {
|
|
"message": "장치를 찾을 수 없습니다."
|
|
},
|
|
"no_config_entry": {
|
|
"message": "장치에 대한 구성 항목을 찾을 수 없습니다."
|
|
},
|
|
"integration_not_loaded": {
|
|
"message": "이 장치에 대한 통합이 로드되지 않았습니다."
|
|
},
|
|
"cycle_not_found_or_no_power": {
|
|
"message": "사이클을 찾을 수 없거나 전력 데이터가 없습니다."
|
|
},
|
|
"trim_failed_empty_window": {
|
|
"message": "트림 실패 - 사이클을 찾을 수 없거나 전력 데이터가 없거나 결과 창이 비어 있습니다."
|
|
},
|
|
"trim_invalid_range": {
|
|
"message": "trim_end_s는 trim_start_s보다 커야 합니다."
|
|
}
|
|
}
|
|
}
|