{
  "common": {
    "cancel": "취소",
    "confirm": "확인",
    "loading": "로딩 중…",
    "send": "전송",
    "rename": "이름 변경",
    "delete": "삭제",
    "close": "닫기",
    "save": "저장",
    "copy": "복사",
    "quote": "인용",
    "quote_block": "전체 인용",
    "copied": "복사됨!",
    "generating": "생성 중...",
    "starting": "시작 중...",
    "yes": "예",
    "connected": "연결됨",
    "disconnected": "연결 끊김",
    "reconnecting": "재연결 중…",
    "refresh": "새로고침",
    "show": "표시",
    "hide": "숨기기",
    "this_feature": "이 기능"
  },
  "window": {
    "maximize": "최대화",
    "restore": "복원",
    "minimize": "최소화",
    "close": "닫기",
    "hide": "숨기기"
  },
  "appUpdate": {
    "banner_title": "IM.codes가 업데이트되었습니다",
    "banner_body": "최신 버전을 사용하려면 새로고침하세요. 세션은 계속 사용할 수 있습니다.",
    "later": "나중에",
    "refresh": "새로고침",
    "chunk_title": "새로고침 필요",
    "blocking_title": "계속하기 전에 새로고침하세요",
    "chunk_body": "이 페이지는 오래된 프런트엔드에서 실행 중이라 필요한 앱 파일을 불러오지 못했습니다. 새로고침하면 깨끗하게 복구됩니다.",
    "blocking_body": "서버 업데이트 후 {{feature}}에는 최신 프런트엔드가 필요합니다. 패널이 멈추지 않도록 새로고침한 뒤 계속하세요.",
    "refresh_continue": "새로고침 후 계속",
    "error_reload_message": "앱이 업데이트되었습니다. 다시 로드한 뒤 계속하세요",
    "error_retry_message": "컴포넌트 오류입니다. 탭하여 다시 시도하세요",
    "reload": "다시 로드",
    "retry": "다시 시도"
  },
  "chat": {
    "dpad": {
      "title": "방향키 — 드래그하여 이동"
    },
    "sendFailedReason": {
      "daemonOffline": "연결이 끊어졌습니다",
      "ackTimeout": "에이전트 응답 없음",
      "daemonError": "에이전트 오류"
    },
    "loading": "채팅 로딩 중...",
    "syncing": "↻ 동기화 중...",
    "no_events": "아직 이벤트 없음",
    "session_state": "세션 {{state}}",
    "load_older": "이전 메시지 불러오기",
    "loading_older": "로딩 중...",
    "refreshing_history": "기록을 업데이트하는 중…",
    "timelineStatus": {
      "ok": "기록이 업데이트되었습니다",
      "empty": "이전 타임라인 이벤트가 없습니다",
      "partial": "타임라인이 일부만 로드되었습니다",
      "deferred": "타임라인을 아직 준비 중입니다",
      "canceled": "타임라인 요청이 취소되었습니다",
      "payloadTruncated": "빠른 로드를 위해 타임라인을 줄였습니다",
      "cursorReset": "타임라인 위치가 바뀌었습니다. 기록을 새로고침하세요",
      "queueFull": "타임라인 worker가 바쁩니다",
      "deadlineExceeded": "타임라인 요청 시간이 초과되었습니다",
      "timeout": "타임라인 worker 시간이 초과되었습니다",
      "unavailable": "타임라인 기록을 사용할 수 없습니다",
      "projectionUnavailable": "타임라인 인덱스를 사용할 수 없습니다",
      "malformedRequest": "타임라인 요청이 잘못되었습니다",
      "internalError": "타임라인 기록을 불러오지 못했습니다",
      "detailMissing": "타임라인 세부 정보를 더 이상 사용할 수 없습니다",
      "detailExpired": "타임라인 세부 정보가 만료되었습니다",
      "detailUnauthorized": "이 세션에서 세부 정보를 사용할 수 없습니다",
      "detailOversized": "타임라인 세부 정보가 너무 큽니다",
      "detailMalformed": "타임라인 세부 정보 요청이 잘못되었습니다",
      "detailEpochMismatch": "daemon 재시작 후 타임라인 세부 정보가 만료되었습니다",
      "detailGenerationMismatch": "새로고침 후 타임라인 세부 정보가 만료되었습니다",
      "detailHydrated": "타임라인 세부 정보를 로드했습니다",
      "pageCursorReset": "타임라인 페이지가 만료되었습니다. 기록을 새로고침하세요",
      "pageMalformed": "타임라인 페이지 요청이 잘못되었습니다",
      "error": "타임라인 기록을 불러오지 못했습니다"
    },
    "thinking_running": "생각 중 · {{sec}}s",
    "thinking_done": "{{sec}}s 동안 생각함",
    "show_file_panel": "파일 패널 열기",
    "hide_file_panel": "파일 패널 닫기",
    "sync_history": "채팅 기록 동기화",
    "sdk_agents_toggle": "Agents",
    "sdk_agents_toggle_aria": "SDK agents 상태 전환, {{count}}개 실행 중",
    "sdk_agents_badge_aria": "SDK agents {{count}}개 실행 중",
    "sdk_agents_panel_title": "Agents",
    "sdk_agents_close": "Agents 패널 닫기",
    "sdk_agents_running_count": "{{count}}개 실행 중",
    "sdk_agents_active_section": "활성",
    "sdk_agents_recent_section": "최근",
    "sdk_agents_diagnostics_section": "진단",
    "sdk_agents_provider_claude": "Claude SDK",
    "sdk_agents_provider_codex": "Codex SDK",
    "sdk_agents_provider_qwen": "Qwen",
    "sdk_agents_provider_gemini": "Gemini SDK",
    "sdk_agents_provider_unknown": "SDK agent",
    "sdk_agents_status_pending": "대기 중",
    "sdk_agents_status_running": "실행 중",
    "sdk_agents_status_complete": "완료",
    "sdk_agents_status_error": "오류",
    "sdk_agents_status_interrupted": "중단됨",
    "sdk_agents_status_stale": "오래됨",
    "sdk_agents_status_unknown": "알 수 없음",
    "sdk_agents_id": "ID",
    "sdk_agents_model": "모델",
    "sdk_agents_started_at": "시작",
    "sdk_agents_duration": "실행 시간",
    "sdk_agents_tokens": "토큰",
    "sdk_agents_prompt": "Prompt",
    "sdk_agents_result": "결과",
    "sdk_agents_running_children": "하위 agent {{count}}개 실행 중",
    "sdk_agents_receiver_count": "수신자 {{count}}개",
    "sdk_agents_diagnostic_unsupported_runtime": "runtime이 agent 상태를 제공하지 않습니다",
    "sdk_agents_diagnostic_unknown_runtime_support": "runtime 지원 상태를 알 수 없습니다",
    "sdk_agents_diagnostic_malformed_payload": "agent 메타데이터 형식이 잘못되었습니다",
    "sdk_agents_diagnostic_missing_id": "agent 식별자가 없습니다",
    "sdk_agents_diagnostic_unknown_state": "알 수 없는 provider 상태",
    "sdk_agents_diagnostic_stale_without_terminal": "완료 전에 상태가 오래되었습니다",
    "sdk_agents_diagnostic_snapshot_only": "provider 상태가 snapshot 전용입니다",
    "sdk_agents_diagnostic_generic": "agent 상태 진단",
    "html_preview": "HTML 렌더링",
    "html_preview_title": "렌더링된 HTML 미리보기",
    "html_preview_open_new_window": "새 창에서 미리보기 열기",
    "html_preview_too_large": "HTML 파일이 너무 커서 안전하게 렌더링할 수 없습니다.",
    "html_preview_unavailable": "HTML 미리보기를 사용할 수 없습니다",
    "html_preview_frame": "렌더링된 HTML 미리보기",
    "tool_fold_more": "... {{count}}줄 ...",
    "tool_fold_collapse": "접기",
    "tool_group_more": "··· {{count}}개 더",
    "tool_group_collapse": "▲ 접기",
    "tool_calls_toggle_show": "도구와 생각 표시",
    "tool_calls_toggle_hide": "도구와 생각 숨기기",
    "tool_calls_toggle_undecided": "AI 활동 표시 방식 선택",
    "tool_calls_choose_prompt": "보기 선택 ↓",
    "memory_summary_sync": "최근 summary 동기화",
    "memory_summary_sync_busy": "summary 동기화 중...",
    "memory_summary_sync_instruction": "컨텍스트 동기화 전용입니다. 아래 최근 summary를 배경 컨텍스트로만 소화하세요. 작업 실행, 파일 변경, 도구 호출, 이 메시지에 대한 답변을 하지 말고 다음 사용자 지시를 기다리세요.",
    "memory_summary_sync_heading": "최근 summary({{count}}/{{limit}}, 최대 약 {{maxChars}}자):",
    "user_message_expand": "전체 보기",
    "user_message_collapse": "접기",
    "tool_chooser_title": "AI 활동을 어떻게 표시할까요?",
    "tool_chooser_subtitle": "도구 호출, 파일 변경, 사고 과정은 상세하지만 화면이 복잡해집니다.",
    "tool_chooser_simple_label": "간단",
    "tool_chooser_simple_hint": "AI 응답만",
    "tool_chooser_developer_label": "개발자",
    "tool_chooser_developer_hint": "도구·파일·사고 표시",
    "tool_chooser_footnote": "렌치 아이콘으로 언제든 변경할 수 있습니다.",
    "new_file": "새 파일",
    "new_file_name": "파일 이름",
    "new_folder": "새 폴더",
    "new_folder_name": "폴더 이름",
    "create": "만들기",
    "external_link_title": "외부 링크 열기",
    "external_link_warning": "이 링크는 AI 에이전트가 생성했습니다. 외부 웹사이트 방문에 따른 위험은 본인 책임입니다.",
    "external_link_cancel": "취소",
    "external_link_open": "링크 열기",
    "zoom_title": "메시지",
    "zoom_copy_all": "모두 복사",
    "zoom_hint": "길게 눌러 텍스트를 선택한 뒤 핸들을 끌어 범위를 조정하고 복사하세요.",
    "tool_detail_toggle": "세부정보",
    "tool_detail_input": "입력",
    "tool_detail_output": "출력",
    "tool_detail_meta": "메타",
    "tool_detail_raw": "원본",
    "pinned_last_sent_label": "마지막 전송",
    "pinned_last_sent_aria": "마지막으로 보낸 메시지로 이동",
    "memory_context_title": "관련 기록",
    "memory_context_startup_title": "히스토리 컨텍스트 · 주입됨",
    "memory_context_summary": "{{count}}개 회수",
    "memory_context_query": "질의: {{query}}",
    "memory_context_score": "점수 {{score}}",
    "memory_context_startup_reason": "세션 시작 시 주입됨",
    "memory_context_section_preferences": "환경설정 ({{count}}개)",
    "memory_context_section_durable": "장기 메모리 ({{count}}개)",
    "memory_context_section_recent": "최근 요약 ({{count}}개)",
    "memory_context_section_master": "마스터 요약 ({{count}}개)",
    "memory_context_section_other": "기타 컨텍스트 ({{count}}개)",
    "memory_context_collapse_bottom": "접기",
    "memory_context_status_no_matches": "관련 메모리를 찾지 못했습니다",
    "memory_context_status_deduped_recently": "관련 메모리 {{count}}개를 찾았지만 최근에 이미 주입되었습니다",
    "memory_context_status_deduped_recently_detail": "관련 메모리 {{count}}개를 찾았습니다. 이 중 {{deduped}}개는 최근 턴에 이미 주입되어 제외되었습니다.",
    "memory_context_status_skipped_template_prompt": "내부/템플릿 프롬프트라 메모리 검색을 건너뛰었습니다",
    "memory_context_status_skipped_template_prompt_detail": "이 메시지는 내장 워크플로 또는 템플릿 프롬프트와 일치하므로 관련 메모리 검색을 의도적으로 하지 않았습니다.",
    "memory_context_status_skipped_short_prompt": "프롬프트가 너무 짧아 메모리 검색을 건너뛰었습니다",
    "memory_context_status_skipped_short_prompt_detail": "너무 짧은 프롬프트는 신뢰할 만한 관련 메모리를 찾기에 충분히 구체적이지 않습니다.",
    "memory_context_status_skipped_control_message": "명령 메시지라 메모리 검색을 건너뛰었습니다",
    "memory_context_status_skipped_control_message_detail": "슬래시 명령은 관련 메모리 검색을 트리거하지 않습니다.",
    "memory_context_status_failed": "관련 메모리 검색을 지금 사용할 수 없습니다",
    "memory_context_status_failed_detail": "메시지는 전송되었지만 이번에는 메모리 검색에 실패했습니다.",
    "file_change_title": "파일 변경 ({{count}})",
    "file_change_patch_count": "{{count}}개 패치",
    "file_change_provider_claude_code": "Claude Code",
    "file_change_provider_opencode": "OpenCode",
    "file_change_provider_codex_sdk": "Codex SDK",
    "file_change_provider_qwen": "Qwen",
    "file_change_provider_gemini": "Gemini",
    "file_change_operation_create": "생성",
    "file_change_operation_update": "업데이트",
    "file_change_operation_delete": "삭제",
    "file_change_operation_rename": "이름 변경",
    "file_change_operation_unknown": "변경",
    "file_change_operation_mixed": "혼합",
    "file_change_confidence_exact": "정확",
    "file_change_confidence_derived": "추정",
    "file_change_confidence_coarse": "대략적",
    "file_change_confidence_mixed": "혼합",
    "file_change_removed": "삭제됨",
    "file_change_added": "추가됨",
    "file_change_truncated": "잘림",
    "file_change_no_before": "(원본 텍스트 없음)",
    "file_change_no_after": "(새 텍스트 없음)",
    "file_change_derived_no_preview": "(미리보기 없음)",
    "file_change_coarse_hint": "파일 경로는 있지만 diff 텍스트가 제공되지 않았습니다.",
    "file_change_renamed_from": "{{oldPath}} → {{newPath}}",
    "font": {
      "dialogLabel": "글꼴",
      "typeLabel": "글꼴 유형",
      "codeTab": "코드",
      "cjkTab": "한국어",
      "familyLabel": "코드 글꼴",
      "cjkFamilyLabel": "한국어 글꼴",
      "allBuiltInCjk": "내장 CJK 글꼴 모두 보기",
      "cjkFamilies": {
        "system-cjk": "시스템 CJK",
        "pingfang-sc": "PingFang SC",
        "songti-sc": "Songti SC",
        "kaiti-sc": "Kaiti SC",
        "stheiti": "STHeiti",
        "stsong": "STSong",
        "stkaiti": "STKaiti",
        "stfangsong": "STFangsong",
        "microsoft-yahei": "Microsoft YaHei",
        "simsun": "SimSun",
        "nsimsun": "NSimSun",
        "dengxian": "DengXian",
        "kaiti": "KaiTi",
        "fangsong": "FangSong",
        "microsoft-jhenghei": "Microsoft JhengHei"
      }
    }
  },
  "session": {
    "restart": "↺ 재시작",
    "restart_plain": "재시작",
    "confirm_restart": "재시작하시겠습니까?",
    "new": "+ 새로 만들기",
    "start_fresh": "다시 시작",
    "confirm_new": "새로 만드시겠습니까?",
    "tab_pin": "📌 고정",
    "tab_unpin": "📌 고정 해제",
    "pin_plain": "고정",
    "unpin_plain": "고정 해제",
    "stop": "✕ 중지",
    "stop_session": "세션 중지",
    "stop_main_title": "메인 세션을 중지할까요?",
    "stop_main_body": "{{project}}는 메인 세션입니다. 중지하면 모든 tmux 프로세스가 종료되며 되돌릴 수 없습니다.",
    "really_stop_project": "⚠ 정말 {{project}}를 중지할까요?",
    "stop_plain": "중지",
    "unpin_to_stop": "먼저 탭 고정을 해제하세요",
    "state_stop_requested": "중지를 요청했습니다",
    "state_stopping": "중지 중...",
    "state_compacting": "컨텍스트 압축 중...",
    "state_idle": "Agent 유휴 — 입력 대기 중",
    "state_running": "Agent 작업 중...",
    "state_started": "세션이 시작됨",
    "state_starting": "세션 시작 중...",
    "state_stopped": "세션이 중지됨",
    "confirm_stop": "중지하시겠습니까?",
    "confirm_stop_dialog": "이 세션을 중지하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
    "confirm_sub_stop_2": "⚠ 정말 {{label}}을(를) 중지하시겠습니까?",
    "confirm_sub_restart_2": "⚠ 정말 {{label}}을(를) 다시 시작하시겠습니까?",
    "confirm_sub_new_2": "⚠ 정말 {{label}}을(를) 대체하시겠습니까?",
    "confirm_sub_stop_dialog": "하위 세션을 중지하시겠습니까?\n\n유형: {{type}}\n레이블: {{label}}\n세션: {{name}}\n\n에이전트가 종료되며 되돌릴 수 없습니다.",
    "confirm_sub_restart_dialog": "하위 세션을 다시 시작하시겠습니까?\n\n유형: {{type}}\n레이블: {{label}}\n세션: {{name}}\n\n에이전트가 다시 시작됩니다.",
    "confirm_sub_new_dialog": "하위 세션을 새로 만드시겠습니까?\n\n유형: {{type}}\n레이블: {{label}}\n세션: {{name}}\n\n현재 세션이 대체됩니다.",
    "confirm_restart_dialog": "이 세션을 다시 시작하시겠습니까?",
    "confirm_new_dialog": "새 세션을 시작하시겠습니까? 현재 세션이 대체됩니다.",
    "settings": "세션 설정",
    "type": "유형",
    "label": "레이블",
    "workingDir": "작업 디렉토리",
    "parentSession": "상위 세션",
    "rename": "✎ 이름 변경",
    "rename_plain": "이름 변경",
    "no_session": "세션 없음",
    "send_queued": "재연결 중… (전송 대기 중)",
    "transport_send_queued": "대기열에 추가됨 — 현재 응답이 끝나면 전송됩니다",
    "transport_send_queued_collapsed": "{{count}}개 대기 중 · 마지막 메시지만 표시",
    "transport_send_queued_count": "{{count}}개 대기 중",
    "send_placeholder": "{{name}}에게 전송…",
    "send_placeholder_desktop_upload": "{{placeholder}} 여러 파일 붙여넣기 또는 드래그 빠른 업로드 지원",
    "actions": "세션 작업",
    "new_btn": "새 세션",
    "clone": {
      "menu": "세션 그룹 복사",
      "title": "세션 그룹 복사",
      "source": "원본 세션",
      "targetProjectName": "대상 프로젝트 이름",
      "targetProjectPlaceholder": "my-project-copy",
      "finalSessionName": "최종 세션",
      "previewUnavailable": "프로젝트 이름을 입력하세요",
      "preserveDirectories": "기본값: 복제된 세션은 원래 작업 디렉터리를 사용합니다",
      "overrideDirectories": "복제된 세션에 새 작업 디렉터리 사용",
      "cwdOverride": "대체 작업 디렉터리",
      "cwdOverridePlaceholder": "/work/new-checkout",
      "browseCwd": "작업 디렉터리 찾아보기",
      "daemonHostValidation": "작업 디렉터리는 리소스를 만들기 전에 daemon 호스트에서 검증됩니다.",
      "runningWarning": "복사된 그룹은 새 상태로 시작합니다. 원본의 대기 중인 메시지, 터미널 기록, 실행 중인 작업은 복사되지 않습니다.",
      "capabilityMissing": "연결된 daemon이 아직 세션 그룹 복사 지원을 보고하지 않았습니다. daemon을 업데이트하거나 다시 연결한 뒤 시도하세요.",
      "submit": "그룹 복사",
      "submitting": "복사 중...",
      "blankProject": "대상 프로젝트 이름은 필수입니다.",
      "notConnected": "세션 그룹을 복사하기 전에 서버에 연결하세요.",
      "daemonOffline": "daemon이 오프라인입니다. 다시 연결한 뒤 세션 그룹을 복사하세요.",
      "missingServer": "세션 그룹을 복사하기 전에 서버를 선택하세요.",
      "cwdRequired": "대체 작업 디렉터리를 입력하거나 원본 디렉터리를 유지하세요.",
      "progress": "상태: {{state}}",
      "subSessionProgress": "하위 세션: {{created}}/{{total}}개 복사됨",
      "operationId": "작업: {{operationId}}",
      "success": "복사된 그룹이 {{session}}(으)로 생성되었습니다. 전환 중입니다.",
      "cleanupRequired": "정리 필요",
      "cleanupRequiredBody": "생성된 일부 리소스는 수동 정리가 필요할 수 있습니다. 다시 시도하기 전에 daemon 또는 서버 세부 정보를 확인하세요.",
      "cleanupResourceDetail": "{{kind}}: {{id}}",
      "warningsTitle": "경고 {{count}}개",
      "skippedMembersTitle": "건너뛴 멤버 {{count}}개",
      "skippedMemberDetail": "{{session}}: {{reason}}",
      "skippedCronJobs": "예약 작업 {{count}}개는 복사되지 않았습니다.",
      "skippedOrchestrationRuns": "토론/오케스트레이션 실행 {{count}}개는 복사되지 않았습니다.",
      "state": {
        "validating": "검증 중",
        "reserving": "대상 이름 예약 중",
        "creating_main": "메인 세션 생성 중",
        "creating_subs": "하위 세션 생성 중",
        "writing_db": "서버 기록 쓰는 중",
        "provider_create": "공급자 세션 생성 중",
        "writing_pref": "Team 설정 복사 중",
        "committing": "커밋 중",
        "rolling_back": "롤백 중",
        "succeeded": "성공",
        "failed": "실패",
        "cancelled": "취소됨",
        "cleanup_required": "정리 필요"
      },
      "errorCode": {
        "invalid_request": "복사 요청이 잘못되었습니다.",
        "forbidden": "소유자와 관리자만 세션 그룹을 복사할 수 있습니다.",
        "unsupported_command": "daemon이 아직 세션 그룹 복사 지원을 보고하지 않았습니다. 업데이트하거나 다시 연결한 뒤 시도하세요.",
        "source_not_found": "원본 세션을 찾을 수 없습니다.",
        "source_not_role_compatible": "역할 호환 메인 brain 세션만 복사할 수 있습니다.",
        "blank_target_project": "대상 프로젝트 이름은 필수입니다.",
        "name_taken": "해당 대상 세션 이름은 이미 사용 중입니다.",
        "invalid_cwd": "해당 작업 디렉터리를 daemon 호스트에서 사용할 수 없습니다.",
        "incomplete_clone_spec": "실행 중인 자식 세션에 복사 가능한 시작 설정이 부족합니다.",
        "unsupported_session_type": "세션 중 하나는 아직 복사할 수 없습니다.",
        "p2p_config_invalid": "Team 구성을 복사할 수 없습니다.",
        "persist_failed": "복사본을 저장할 수 없습니다.",
        "idempotency_conflict": "이 재시도 키는 다른 복사 요청에 이미 사용되었습니다.",
        "server_commit_failed": "서버가 복사된 세션을 커밋하지 못했습니다.",
        "server_p2p_commit_failed": "서버가 Team 설정을 복사하지 못했습니다.",
        "cancelled": "복사가 취소되었습니다.",
        "cleanup_required": "다시 시도하기 전에 수동 정리가 필요합니다.",
        "internal_error": "복사가 예기치 않게 실패했습니다."
      },
      "warningCode": {
        "running_source_excluded_state": "원본의 실행 중 작업은 제외됩니다",
        "p2p_prompt_session_reference": "자유 텍스트 Team 참조가 여전히 원본을 언급할 수 있습니다",
        "p2p_skipped_participant_dropped": "건너뛴 Team 참여자가 복사본에서 제거되었습니다",
        "skipped_member": "멤버를 건너뜀",
        "scheduled_work_skipped": "예약된 작업은 복사되지 않음",
        "p2p_config_missing": "복사할 Team 구성이 없습니다",
        "rollback_partial": "롤백이 부분적으로 완료됨"
      },
      "cleanupResourceKind": {
        "daemon_session": "daemon 세션",
        "daemon_p2p_scope": "daemon Team 구성",
        "server_db_session": "서버 세션 행",
        "server_p2p_pref": "서버 Team 기본 설정",
        "provider_session": "공급자 세션"
      },
      "skippedReason": {
        "stopped": "중지됨",
        "error": "오류",
        "closed": "닫힘",
        "hidden": "숨김",
        "nested": "중첩된 자식",
        "server_only_orphan": "서버 전용 고아 기록",
        "unsupported": "지원되지 않음",
        "incomplete_spec": "설정 불완전"
      }
    },
    "agentType": {
      "openclaw": "OpenClaw",
      "qwen": "Qwen Code",
      "claude_code_sdk": "Claude Code SDK",
      "codex_sdk": "Codex SDK",
      "claude_code_cli": "Claude Code CLI",
      "codex_cli": "Codex CLI",
      "copilot_sdk": "Copilot",
      "cursor_headless": "Cursor",
      "gemini_sdk": "Gemini SDK",
      "kimi_sdk": "Kimi Code"
    },
    "agentGroup": {
      "transport_sdk": "SDK",
      "cli_process": "CLI"
    },
    "openclaw_not_connected": "미연결",
    "openclaw_connect_hint": "OpenClaw 게이트웨이가 연결되지 않았습니다. 데몬 머신에서 다음 명령을 실행하세요:",
    "sessionMode": "세션 모드",
    "newSession": "새 세션",
    "bindExisting": "기존 OC 세션 바인딩",
    "selectSession": "세션 선택",
    "loadingSessions": "세션 로딩 중...",
    "noSessions": "사용 가능한 세션 없음",
    "description": "설명",
    "descriptionPlaceholder": "세션 페르소나 또는 목적 (선택 사항)",
    "sessionKey": "세션 키",
    "autoGenerate": "자동 생성",
    "codex_ctx_short": "컨텍스트",
    "codex_5h_short": "5시간",
    "codex_wk_short": "주간",
    "codex_ctx_title": "컨텍스트 {{percent}}% 남음",
    "codex_limit_title": "{{label}} {{percent}}% 남음 · {{reset}}에 재설정",
    "provider_plan_title": "플랜: {{value}}",
    "provider_quota_title": "한도: {{value}}",
    "weekly_quota_authorize": "주간 한도 표시",
    "weekly_quota_authorize_hint": "로컬 Claude 토큰 읽기를 허용하여 주간(7일) 한도를 표시합니다",
    "weekly_quota_confirm": "주간(7일) 한도를 가져오기 위해 로컬 Claude 로그인 토큰을 읽습니다. 인증하시겠습니까?",
    "provider_quota_usage_title": "사용량: {{value}}",
    "history_loading_label": "기록",
    "history_step_cache": "캐시",
    "history_step_text_tail": "빠른 꼬리",
    "history_step_daemon": "daemon",
    "history_step_http": "HTTP 보강",
    "history_step_older": "이전 기록",
    "provider_plan_free": "무료",
    "provider_plan_paid": "유료",
    "provider_plan_byo": "자체 키",
    "qwen_tier_free": "무료",
    "qwen_tier_paid": "유료",
    "qwen_tier_byo": "자체 키",
    "qwen_source_title": "Qwen 소스: {{tier}}",
    "qwen_model_title": "Qwen 소스: {{tier}} · 모델: {{model}}",
    "p2p_tag": "Team",
    "thinking": "레벨",
    "thinking_title": "레벨: {{value}}",
    "supervision": {
      "title": "세션 감독",
      "help": "먼저 새 Auto 세션에 쓸 전역 기본값을 설정하고, 필요하면 현재 세션 설정으로 덮어쓰세요.",
      "globalDefaultsTitle": "전역 기본값",
      "globalDefaultsHelp": "새 Auto transport 세션을 미리 채우는 데 사용됩니다. 여기서 기본 supervisor 백엔드, 모델, 타임아웃을 저장합니다.",
      "sessionConfigTitle": "현재 세션",
      "sessionConfigHelp": "현재 세션에만 적용됩니다. 여기서 백엔드, 모델, 타임아웃으로 전역 기본값을 덮어쓸 수 있고, audit 모드와 custom instructions도 세션 전용입니다.",
      "intro": {
        "title": "Auto의 역할",
        "howToUseTitle": "사용 방법",
        "howToUseBody": "Off, Supervised, Supervised + audit 중 하나를 선택한 뒤 감독용 백엔드와 모델을 설정하고 저장하세요. 이 세션에서 Auto를 켜 두면 idle 시점에 자동 판정이 실행됩니다. Audit 모드는 감사 파이프라인과 재작업 횟수 제한을 추가합니다.",
        "purposeTitle": "용도",
        "purposeBody": "Auto는 현재 작업이 끝났는지, 자동으로 계속해야 하는지, 사람이 개입해야 하는지를 감독 모델이 판단하도록 하는 기능입니다. Audit 모드는 구현이 끝난 뒤 추가 검토까지 수행합니다.",
        "howItWorksTitle": "동작 원리",
        "howItWorksBody": "세션이 idle 상태가 되면 IM.codes가 최근 작업 문맥을 설정된 감독 모델에 보내고 구조화된 결정을 파싱합니다. 그 결과에 따라 중지, 자동 계속, 또는 수동 처리로 전환합니다. Audit 모드가 켜져 있으면 완료된 응답은 자동 감사와 재작업 루프에도 들어갑니다.",
        "expandHint": "자세히 보기",
        "collapseHint": "접기"
      },
      "mode": {
        "off": "끔",
        "supervised": "감독",
        "supervised_audit": "감독+감사"
      },
      "backend": "백엔드",
      "model": "모델",
      "timeout": "제한 시간(초)",
      "selectBackend": "백엔드 선택",
      "selectModel": "모델 선택",
      "customInstructionsLabel": "사용자 지정 지침",
      "customInstructionsPlaceholder": "예: 완료 판정 전에 반드시 테스트와 검증 결과를 요구합니다.",
      "customInstructionsHelp": "선택 사항입니다. 이 세션에 한해 Auto의 supervision 판정과 continue 프롬프트에 추가됩니다.",
      "globalCustomInstructionsLabel": "전역 사용자 지정 지침",
      "globalCustomInstructionsPlaceholder": "예: 실패하는 코드를 주석 처리하기보다 항상 테스트 작성을 우선합니다.",
      "globalCustomInstructionsHelp": "선택 사항입니다. Auto가 활성화된 모든 세션에 적용되며, 아래 세션에서 재정의하면 예외입니다.",
      "customInstructionsOverrideLabel": "전역 지침 재정의",
      "customInstructionsOverrideHelp": "체크하면 이 세션은 위의 세션 지침만 사용합니다. 체크하지 않으면 전역 지침이 빈 줄을 두고 앞에 추가됩니다.",
      "customInstructionsMergedPreviewHeading": "감독자에게 전송되는 병합 지침:",
      "presetLabel": "프리셋 (env 번들)",
      "presetHelp": "감독 트래픽을 프리셋 엔드포인트(자체 base URL, API 키, 고정 모델)로 라우팅합니다. 프리셋은 Shared Context 패널에서 관리합니다.",
      "presetNone": "(없음)",
      "auditMode": {
        "audit": "감사",
        "review": "검토",
        "audit_plan": "감사 → 계획",
        "review_plan": "검토 → 계획",
        "audit_review_plan": "감사 → 검토 → 계획"
      },
      "selectAuditMode": "감사 모드 선택",
      "maxAuditLoops": "최대 감사 루프",
      "maxAutoContinueStreak": "동일 유형 auto-continue 한도",
      "maxAutoContinueStreakHelp": "같은 유형의 continue가 연속으로 이 횟수에 도달하면 Auto를 중단합니다. 0은 무제한입니다.",
      "maxAutoContinueTotal": "auto-continue 하드 한도",
      "maxAutoContinueTotalHelp": "한 번의 작업 실행에서 보낼 수 있는 전체 auto-continue 절대 상한입니다. 0은 무제한입니다.",
      "summaryTitle": "해결된 감독 설정",
      "summaryMode": "모드: {{value}}",
      "summaryBackendModel": "백엔드: {{backend}} · 모델: {{model}}",
      "summaryUnset": "설정 안 됨",
      "summaryDisabled": "감독 꺼짐",
      "summaryTimeout": "제한 시간: {{value}}",
      "summaryContinueLimits": "continue 제한: 동일 유형 {{streak}} · 하드 {{total}}",
      "summaryCustomInstructions": "사용자 지정 지침: {{value}}",
      "summaryCustomInstructionsSet": "설정됨",
      "summaryAudit": "감사: {{auditMode}} · 루프 {{loops}}회",
      "summaryMeta": "프롬프트 {{promptVersion}}, 복구 {{repairVersion}}, 파싱 재시도 {{parseRetries}}, task-run {{taskRunVersion}}",
      "disabledHint": "감독은 transport 세션에서만 사용할 수 있습니다.",
      "unsupported": "process 세션에서는 감독 설정을 사용할 수 없습니다.",
      "validation": {
        "backendRequired": "감독 백엔드를 선택하세요.",
        "modelRequired": "감독 모델을 선택하거나 입력하세요.",
        "modelInvalid": "{{backend}}에서는 이 모델을 사용할 수 없습니다.",
        "auditModeRequired": "감사 모드를 선택하세요."
      },
      "modeLabel": "모드",
      "auditModeLabel": "감사 모드",
      "invalidStoredConfig": "저장된 감독 설정이 잘못되었습니다. 수정하고 저장할 때까지 자동화는 비활성화됩니다.",
      "quickLabel": "자동",
      "quickTitle": "자동 모드"
    },
    "approval": {
      "pending": "승인이 필요합니다",
      "allow": "허용",
      "deny": "거부",
      "tool": "{{tool}} 승인 필요"
    },
    "workingDirPlaceholder": "~/projects/myapp"
  },
  "server": {
    "upgrade_daemon": "↑ Daemon 업그레이드",
    "upgrade_all": "↑ 전체 기기 업그레이드",
    "delete": "✕ 서버 삭제",
    "upgrade_sent": "\"{{name}}\"에 업그레이드 명령이 전송되었습니다. Daemon이 최신 버전을 설치하고 재시작합니다.",
    "upgrade_failed": "업그레이드 명령 전송 실패. Daemon이 오프라인일 수 있습니다.",
    "delete_title": "서버 삭제: {{name}}",
    "delete_warning": "서버에서 모든 바인딩과 세션 기록이 삭제되며, Daemon에 중지 및 로컬 자격 증명 삭제가 통지됩니다.",
    "delete_tmux_note": "tmux 세션은 닫히지 않습니다",
    "delete_tmux_suffix": ", 하지만 Daemon은 더 이상 자동으로 시작되지 않습니다.",
    "delete_confirm_prompt": "삭제를 확인하려면 서버 이름을 입력하세요:",
    "delete_confirm": "삭제 확인"
  },
  "quick_input": {
    "title": "빠른 입력",
    "commands": "빠른 명령",
    "phrases": "빠른 문구",
    "history": "기록",
    "this_session": "이 세션",
    "all": "전체",
    "no_history_session": "이 세션의 기록 없음",
    "no_history": "아직 기록 없음 — 메시지는 자동으로 저장됩니다",
    "clear_history": "기록 지우기",
    "add_command": "＋ 명령",
    "add_phrase": "＋ 문구",
    "label_command": "명령",
    "label_phrase": "문구",
    "placeholder_phrase": "이 문제 수정",
    "newer": "← 최신",
    "older": "이전 →",
    "loading": "로딩 중…",
    "tab_quick": "빠른",
    "tab_files": "파일",
    "confirm_delete": "이 항목을 삭제하시겠습니까?"
  },
  "file_browser": {
    "title_dir": "디렉토리 선택",
    "title_file": "파일 선택",
    "select": "선택",
    "insert": "{{count}}개 삽입",
    "browse": "찾아보기",
    "show_hidden": "숨김 파일",
    "this_pc": "내 PC",
    "home": "홈",
    "selected_count": "{{count}}개 선택됨",
    "timeout": "요청 시간 초과",
    "timeout_detail": "디렉토리를 읽을 수 없습니다. 느리거나 사용할 수 없는 네트워크 드라이브가 원인일 수 있습니다.",
    "preview_loading": "로딩 중…",
    "preview_too_large": "파일이 너무 커서 미리볼 수 없습니다 (> 100 MB)",
    "preview_error": "미리보기 불가",
    "preview_binary": "바이너리 파일 — 미리보기 불가",
    "preview_video_unsupported": "브라우저가 이 동영상 형식을 재생할 수 없습니다.",
    "mkdir_failed": "폴더를 만들 수 없습니다",
    "create_file_failed": "파일을 만들 수 없습니다",
    "file_exists": "파일이 이미 있습니다",
    "view_diff": "차이",
    "view_source": "소스",
    "view_rendered": "렌더링",
    "tab_files": "파일",
    "tab_changes": "변경",
    "changes_title": "변경 ({{count}})",
    "no_changes": "변경 없음"
  },
  "toast": {
    "finished": "완료됨",
    "upgrade_blocked_title": "업그레이드 차단됨",
    "upgrade_blocked_p2p_active": "Team가 아직 실행 중입니다. daemon을 업그레이드하기 전에 먼저 중지하세요.",
    "upgrade_blocked_toolchain_unavailable": "daemon 호스트에 Node가 없습니다(툴체인 제거됨). Node를 다시 설치하세요. 그 전까지 자동 업그레이드가 비활성화됩니다."
  },
  "discussion": {
    "role_critic": "비평가",
    "role_pragmatist": "실용주의자",
    "role_innovator": "혁신가",
    "role_custom": "사용자 정의...",
    "arbiter": "중재자",
    "arbiter_active": "⚖️ 중재자",
    "starting": "시작 중…",
    "start_failed_title": "토론을 시작하지 못했습니다",
    "start_failed_offline": "오프라인 상태입니다. 다시 연결한 후 시도하세요.",
    "dialog_title": "토론 시작",
    "start_button": "토론 시작",
    "field_topic": "주제",
    "topic_placeholder": "에이전트가 논의할 내용을 설명하세요…",
    "field_cwd": "작업 디렉터리",
    "field_participants": "참여자",
    "add_participant": "+ 추가",
    "field_max_rounds": "최대 라운드",
    "team_label": "팀",
    "complete_status": "완료",
    "failed_status": "실패",
    "error": {
      "missing_fields": "필수 항목이 누락되었습니다 (주제 및 참여자 2명 이상).",
      "generic": "토론을 시작하지 못했습니다. 다시 시도하세요."
    }
  },
  "new_session": {
    "project_required": "프로젝트 이름은 필수입니다",
    "dir_required": "작업 디렉토리는 필수입니다",
    "not_connected": "Daemon에 연결되지 않음",
    "daemon_offline": "Daemon이 오프라인입니다 — imcodes daemon이 실행 중인지 확인하세요",
    "start": "시작",
    "starting": "시작 중...",
    "timeout": "세션 시작 대기 시간 초과. Daemon 로그를 확인하세요.",
    "title": "새 세션 시작",
    "project_name": "프로젝트 이름",
    "working_directory": "작업 디렉터리",
    "browse": "찾아보기",
    "agent_type": "에이전트 유형",
    "agent_flavor_cli": "CLI: 원래 UI를 선호하는 사용자를 위한 네이티브 인터페이스입니다. 채팅 모드는 스트리밍을 지원하지 않습니다.",
    "agent_flavor_sdk": "SDK: 스트리밍을 지원하고 더 단순한 UI를 사용합니다.",
    "qwen_provider_hint": "서드파티 Coding Plan이 필요하면 Qwen Code를 선택하세요.",
    "qwen_provider_selected_hint": "Qwen Code는 아래 API Provider 프리셋을 통해 Anthropic 호환 서드파티 Coding Plan 제공자를 사용할 수 있습니다.",
    "custom_provider_sdk": "사용자 지정 공급자 SDK",
    "custom_provider_sdk_help": "Qwen SDK 전송을 호환 계층으로 사용하고 아래에서 API Provider 프리셋을 선택합니다.",
    "custom_provider_preset": "사용자 지정 공급자 프리셋",
    "custom_provider_preset_required": "사용자 지정 공급자 SDK에는 API Provider 프리셋을 선택하거나 추가해야 합니다.",
    "compatible_api_via_qwen": "호환 API(Qwen 경유)",
    "api_provider": "API Provider",
    "api_provider_add_edit": "+ 추가 / 편집",
    "api_provider_default": "기본값 (Anthropic)",
    "api_provider_default_help": "기본값 (Anthropic) — \"+ 추가 / 편집\"을 눌러 설정",
    "api_provider_import_json": "JSON 가져오기",
    "api_provider_export_json": "JSON 내보내기",
    "api_provider_import_error": "클립보드에서 preset JSON을 가져오지 못했습니다",
    "api_provider_export_success": "preset JSON을 클립보드에 복사했습니다",
    "api_provider_export_error": "preset JSON을 클립보드에 복사하지 못했습니다"
  },
  "api_key": {
    "copy": "복사",
    "copied": "복사됨!",
    "label_placeholder": "레이블 (선택사항)",
    "generate": "키 생성",
    "generating": "생성 중...",
    "revoke": "취소",
    "save_once": "이 키를 저장하세요. 다시 표시되지 않습니다",
    "raw_key": "API 키",
    "bind_url": "바인드 URL",
    "bind_command": "바인드 명령어",
    "copy_bind_command": "바인드 명령어 복사",
    "dismiss": "닫기"
  },
  "getting_started": {
    "step1_pending": "1단계: API 키 생성",
    "step1_done": "✓ 1단계: API 키 준비 완료"
  },
  "language": {
    "label": "언어",
    "en": "English",
    "zh_CN": "中文（简体）",
    "zh_TW": "中文（繁體）",
    "es": "Español",
    "ru": "Русский",
    "ja": "日本語",
    "ko": "한국어"
  },
  "login": {
    "subtitle": "AI 코딩 에이전트를 원격 제어",
    "passkey_signin": "패스키로 로그인",
    "passkey_create": "패스키로 계정 만들기",
    "passkey_register_hint": "이름을 입력하고 기기 패스키(Face ID, Touch ID, Windows Hello…)를 등록하세요",
    "passkey_register_btn": "패스키 등록",
    "passkey_error": "패스키 인증에 실패했습니다. 다시 시도해 주세요.",
    "passkey_not_found": "이 사이트의 패스키를 찾을 수 없습니다. 먼저 등록하거나 GitHub로 로그인하세요.",
    "display_name_placeholder": "이름 (예: Alice)",
    "device_name_placeholder": "기기 이름 (선택, 예: MacBook Pro)",
    "or": "또는",
    "github_signin": "GitHub로 로그인",
    "password_signin": "비밀번호로 로그인",
    "username_placeholder": "사용자 이름",
    "password_placeholder": "비밀번호",
    "signin": "로그인",
    "remember_password": "이 기기에 비밀번호 기억",
    "invalid_credentials": "사용자 이름 또는 비밀번호가 올바르지 않습니다",
    "account_pending": "계정이 관리자 승인 대기 중입니다. 관리자에게 문의해 주세요.",
    "account_disabled": "계정이 비활성화되었습니다. 관리자에게 문의해 주세요.",
    "must_change_password": "계속하려면 비밀번호를 변경해야 합니다",
    "new_password_placeholder": "새 비밀번호",
    "confirm_password_placeholder": "새 비밀번호 확인",
    "change_password_btn": "비밀번호 변경",
    "passwords_mismatch": "비밀번호가 일치하지 않습니다",
    "password_too_short": "비밀번호는 최소 8자 이상이어야 합니다",
    "password_missing_uppercase": "비밀번호에 대문자가 하나 이상 포함되어야 합니다",
    "password_missing_lowercase": "비밀번호에 소문자가 하나 이상 포함되어야 합니다",
    "password_missing_digit": "비밀번호에 숫자가 하나 이상 포함되어야 합니다",
    "password_register": "비밀번호로 계정 만들기",
    "password_register_btn": "계정 만들기",
    "password_register_hint": "사용자 이름과 강력한 비밀번호를 선택하세요 (8자 이상, 대문자, 소문자, 숫자 포함).",
    "username_taken": "이미 사용 중인 사용자 이름입니다",
    "registration_disabled": "현재 회원가입이 비활성화되어 있습니다",
    "invalid_username_format": "사용자 이름은 3-32자이며 문자 또는 숫자로 시작하고 끝나야 합니다",
    "nonce_exchange_failed": "인증은 완료되었지만 연결에 실패했습니다. 다시 시도해 주세요.",
    "native_callback_fallback": "자동으로 돌아가지 않으면 여기를 누르세요",
    "native_status_getting_challenge": "챌린지를 가져오는 중…",
    "native_status_authenticating": "인증 중…",
    "native_status_getting_api_key": "API 키를 가져오는 중…",
    "native_status_redirecting": "이동 중…",
    "native_status_creating_passkey": "패스키 생성 중…",
    "native_status_registering": "등록 중…",
    "native_status_saving": "저장 중…",
    "native_status_logging_in": "로그인 중…"
  },
  "serverSetup": {
    "title": "서버 선택",
    "description": "IM.codes 서버 주소를 입력하세요",
    "placeholder": "https://your-server.com",
    "connect": "연결",
    "useDefault": "기본 서버 사용",
    "verifying": "확인 중...",
    "error": "서버에 연결할 수 없습니다. URL을 확인하고 다시 시도하세요.",
    "errorNotHttps": "서버 URL은 HTTPS를 사용해야 합니다",
    "changeServer": "서버 변경",
    "addServer": "+ 서버 추가",
    "httpWarning": "경고: HTTP 연결은 안전하지 않습니다. localhost가 아닌 서버에는 HTTPS를 사용하세요."
  },
  "passkey": {
    "title": "패스키 관리",
    "none": "등록된 패스키가 없습니다",
    "add": "패스키 추가",
    "add_error": "패스키 추가에 실패했습니다. 다시 시도해 주세요.",
    "delete_error": "패스키 삭제에 실패했습니다.",
    "unnamed": "이름 없는 기기",
    "added": "추가됨",
    "last_used": "최근 사용",
    "device_name_placeholder": "기기 이름 (선택)"
  },
  "account": {
    "delete_title": "계정 삭제",
    "delete_warning": "이 작업은 되돌릴 수 없습니다. 모든 서버, 세션, API 키, 패스키 및 기타 데이터가 영구적으로 삭제됩니다.",
    "delete_btn": "계정 삭제",
    "delete_confirm_prompt": "계정 삭제를 확인하려면 DELETE를 입력하세요:",
    "delete_confirm": "영구 삭제",
    "delete_error": "계정 삭제에 실패했습니다. 다시 시도해 주세요."
  },
  "voice": {
    "listening": "인식 중...",
    "paused": "일시정지",
    "speak_now": "말씀하세요...",
    "voice_input": "음성 입력",
    "stop_voice": "음성 입력 중지",
    "send": "보내기",
    "mic_permission_failed": "시작 실패 — 설정에서 마이크/음성 인식 권한을 확인하세요",
    "error": "음성 오류: {{error}}"
  },
  "p2p": {
    "final_original_request_reminder": "토론 요약으로 끝내지 말고, 논의를 종합한 뒤에는 반드시 원래 사용자 요청을 직접 완전히 처리하세요.\n원래 사용자 요청: \"{{request}}\"",
    "post_summary_execute_prompt": "Team 토론이 완료되었습니다. 토론 파일을 문맥으로 사용한 뒤, 이 세션에서 원래 사용자 요청을 직접 수행하세요.\n토론 파일: {{discussionFile}}\n원래 사용자 요청: \"{{request}}\"\n다시 토론 요약으로만 끝내지 마세요.",
    "discussion_language_instruction": "{{language}}로 답변하세요.",
    "ring": {
      "active": "R{{round}}/{{totalRounds}}",
      "label_active": "Round {{round}}/{{totalRounds}}",
      "active_hops": "R{{round}}/{{totalRounds}} H{{hop}}/{{totalHops}}"
    },
    "status": {
      "done": "완료",
      "active": "진행 중",
      "pending": "대기 중",
      "skipped": "건너뜀",
      "queued": "대기열",
      "dispatched": "전송 중",
      "running": "실행 중",
      "awaiting_next_hop": "다음 홉 대기",
      "completed": "완료됨",
      "failed": "실패",
      "timed_out": "시간 초과",
      "cancelled": "취소됨",
      "setup": "준비 중"
    },
    "discussions": {
      "title": "토론",
      "live_progress": "실시간 진행",
      "slogan": "IM.codes - the IM for agents",
      "hide": "숨기기",
      "show": "표시",
      "untitled": "토론",
      "empty": "아직 Team 토론이 없습니다. @@all(discuss) 또는 @agent로 시작하세요.",
      "select": "볼 토론을 선택하세요",
      "load_failed": "(불러오기 실패)",
      "phase_initial": "초기",
      "phase_hop": "홉",
      "phase_summary": "요약",
      "phase_execution": "실행",
      "phase_queued": "대기열",
      "round_label": "라운드",
      "hop_label": "홉",
      "auto_follow_latest": "최신 내용 자동 따라가기",
      "copy_path": "경로 복사",
      "copy_content": "내용 복사",
      "scroll_top": "맨 위로 스크롤",
      "scroll_bottom": "맨 아래로 스크롤"
    },
    "mode_solo": "Solo",
    "mode_audit": "감사",
    "mode_review": "리뷰",
    "mode_plan": "설계",
    "mode_brainstorm": "브레인스토밍",
    "mode_discuss": "토론",
    "combo_label": "콤보",
    "combo_presets": "기본 콤보",
    "combo_custom": "내 콤보",
    "combo_custom_empty": "아직 사용자 콤보가 없습니다.",
    "combo_builder": "새 콤보 추가",
    "combo_recommended_hint": "대부분의 감사 작업에 추천합니다.",
    "exclude_same_type": "같은 유형 제외",
    "picker": {
      "back": "뒤로",
      "files": "파일",
      "agents": "에이전트",
      "search_project_files": "프로젝트 파일 검색",
      "quick_discussion_with_agent": "에이전트와 빠른 토론",
      "team": "Team",
      "team_desc": "팀 토론 시작",
      "select_mode": "모드 선택",
      "all_agents": "모든 에이전트",
      "sessions": "세션",
      "type_to_search": "입력하여 검색",
      "keep_typing": "계속 입력하세요...",
      "no_files_found": "파일을 찾을 수 없습니다",
      "no_agents_available": "사용 가능한 에이전트가 없습니다",
      "you": "나",
      "busy": "사용 중"
    },
    "mode": {
      "audit": "감사",
      "review": "리뷰",
      "plan": "설계",
      "brainstorm": "브레인스토밍",
      "discuss": "토론"
    },
    "team_button": "팀",
    "mode_config": "설정",
    "dropdown": {
      "tab_combos": "콤보",
      "tab_workflows": "워크플로",
      "solo_hint": "아래 흐름을 선택해 워크플로를 시작",
      "team_intro_title": "Team 토론",
      "team_intro_body": "에이전트가 토론하고 요약한 뒤 구현하고 결과를 검토합니다. 라운드를 늘리면 이 루프를 반복해 결과를 강화합니다.",
      "team_intro_tooltip": "토론 → 요약 → 구현 → 검토. 라운드를 늘리면 이전 결과를 바탕으로 루프를 반복합니다.",
      "workflows_empty": "저장된 워크플로가 없습니다. 설정 → 고급 워크플로에서 새로 만들어 보세요.",
      "workflows_manage": "워크플로 관리"
    },
    "settings_button": "설정",
    "settings_title": "Team 토론 설정",
    "settings_process_title": "Team 토론 흐름",
    "settings_process_body": "Team 모드는 토론, 요약, 구현, 검토 루프를 실행합니다. 1라운드는 루프를 한 번 완료하며, 추가 라운드는 이전 구현 결과를 새 컨텍스트로 삼아 다시 감사/검토하므로 누락된 요구사항, 회귀 위험, 경계 사례, 테스트 공백을 더 잘 잡아낸 뒤 작업을 완료 상태로 봅니다.",
    "alpha_badge": "Alpha",
    "alpha_hint": "실험 기능이며 아직 공식 검증되지 않았습니다.",
    "cross_session": "다른 프로젝트의 세션 포함",
    "tab": {
      "advanced_workflow": "고급 워크플로",
      "advanced_workflow_intro": "유향 Team 워크플로를 설계합니다. 노드는 에이전트 라운드(LLM, 스크립트, 논리 게이트)이며 엣지가 라우팅을 제어합니다. 여기에서 편집한 내용은 「에이전트」 탭에서 구성한 간단한 라운드/모드 파이프라인을 재정의합니다.",
      "advanced_workflow_alpha_notice": "실험 기능이며 아직 공식 검증되지 않았습니다. 중요한 작업에는 기본 콤보를 우선 사용하세요.",
      "advanced_workflow_empty_hint": "빈 워크플로 초안을 초기화하는 중입니다. 아래 캔버스에서 노드와 엣지를 추가해 Team 파이프라인을 설계하세요.",
      "advanced_workflow_starter_title": "이름 없는 워크플로",
      "advanced_workflow_starter_node_title": "시작"
    },
    "settings_filter_sdk": "SDK",
    "settings_filter_cli": "CLI",
    "settings_save": "저장",
    "settings_save_and_close": "저장하고 닫기",
    "settings_close": "닫기",
    "confirm_cancel": "취소하시겠습니까?",
    "combo_send_confirm_title": "콤보 전송 확인",
    "combo_send_confirm_body": "이 메시지는 콤보 흐름 {{mode}} 으로 바로 전송됩니다. 계속할까요?",
    "combo_send_confirm_skip": "다음부터 묻지 않고 바로 전송",
    "combo_empty_message_warning": "콤보 전송에는 실제 메시지 본문이 필요합니다. 내용을 입력한 뒤 전송하세요.",
    "combo_requires_participants_hint": "콤보 모드를 쓰려면 먼저 Team 설정에서 참여자를 선택하세요.",
    "member_cannot_initiate_discussion": "이 세션은 Team 멤버이므로 토론을 시작할 수 없습니다. 다른 세션에서 시작하세요(최상위 모델 권장).",
    "settings_enabled": "참여",
    "settings_mode": "모드",
    "settings_skip": "건너뛰기",
    "settings_default_hint": "새 세션 기본값: 활성화 + audit",
    "settings_rounds": "라운드",
    "settings_rounds_hint": "검토 사이클",
    "settings_rounds_explanation": "각 라운드는 하나의 완전한 멀티 에이전트 분석 루프입니다. 요청을 토론해 실행한 뒤 다시 복합 감사/검토 사이클로 들어가 누락, 회귀 위험, 경계 사례를 찾고 결과를 더 강화합니다.",
    "settings_hop_timeout": "홉 타임아웃",
    "settings_hop_timeout_unit": "분/홉",
    "settings_hop_timeout_hint": "각 에이전트의 응답 대기 시간. 복잡한 작업은 늘려주세요.",
    "settings_extra_prompt": "추가 지시",
    "settings_extra_prompt_hint": "모든 참가자에게 적용되는 추가 프롬프트 (예: \"한국어로 답변\")",
    "settings_advanced_title": "고급 워크플로",
    "settings_advanced_preset": "고급 프리셋",
    "settings_advanced_run_timeout": "전체 실행 제한",
    "settings_advanced_run_timeout_unit": "총 분",
    "settings_advanced_rounds": "고급 라운드",
    "settings_context_reducer_mode": "요약 모드",
    "settings_context_reducer_reuse": "기존 SDK 참가자 재사용",
    "settings_context_reducer_clone": "SDK 세션 템플릿 복제",
    "settings_context_reducer_session": "요약 참가자",
    "settings_context_reducer_template": "템플릿 참가자",
    "settings_single_main": "메인만",
    "settings_multi_dispatch": "다중 디스패치",
    "settings_round_timeout": "라운드 제한",
    "settings_verdict_policy": "판정 정책",
    "settings_smart_gate": "스마트 게이트",
    "settings_forced_rework": "강제 재작업",
    "settings_jump_target": "점프 대상",
    "settings_jump_marker": "점프 마커",
    "settings_min_triggers": "최소 트리거 수",
    "settings_max_triggers": "최대 트리거 수",
    "settings_artifact_outputs": "산출물 출력",
    "settings_prompt_append": "프롬프트 추가",
    "all_label": "전체",
    "all_rounds": "{{count}}라운드",
    "all_rounds_plural": "{{count}}라운드",
    "all_plus": "전체 + 사용자 라운드",
    "all_preview_empty": "참가자 미설정",
    "single_agent_prompt": {
      "title": "에이전트를 더 추가할까요?",
      "body": "현재 에이전트 1개만 선택했습니다.",
      "tip_multi": "서로 다른 유형/제공사의 에이전트를 함께 쓰면 고정된 사고를 깨고 보통 가장 좋은 결과를 얻을 수 있습니다.",
      "tip_rounds": "Team 토론은 보통 2라운드가 가장 좋습니다.",
      "dont_show_again": "이 계정에는 다시 표시하지 않기",
      "more_agents": "@ 더 추가",
      "send_anyway": "그대로 보내기",
      "tip_history": "멀티 에이전트 토론은 파일을 공유하고 기록도 더 잘 남습니다. 1:1 토론은 일회성 토론으로 처리됩니다."
    },
    "settings_workflow_migration_title": "워크플로 마이그레이션",
    "settings_workflow_migration_body": "저장된 고급 설정이 이전 라운드 형식을 사용합니다. 고급 Team를 시작하기 전에 저장하여 워크플로 시작 엔벌로프를 만드세요.",
    "settings_workflow_migration_ready": "고급 Team 시작을 위한 워크플로 시작 엔벌로프가 준비되었습니다.",
    "settings_workflow_migration_error": "고급 워크플로 마이그레이션에 실패했습니다. 시작 전에 저장된 라운드를 확인하세요.",
    "workflow": {
      "diagnostics": {
        "forbidden_envelope_field": "The launch envelope contains a forbidden private field.",
        "unsupported_schema_version": "This workflow schema version is not supported.",
        "unknown_future_schema_read_only": "This future workflow version is read-only here.",
        "mixed_advanced_schema_fields": "Old and new advanced workflow fields are mixed.",
        "static_policy_mismatch_recompiled": "Daemon policy changed, so the workflow was recompiled.",
        "missing_required_capability": "The daemon is missing a required workflow capability.",
        "capability_stale": "데몬과의 연결이 끊어졌습니다 — 저장된 구성은 계속 작동하지만, 새 고급 워크플로 실행은 데몬이 재연결될 때까지 일시 정지됩니다(보통 30초 이내).",
        "capability_downgraded_during_run": "A required capability was downgraded during the run.",
        "invalid_launch_envelope": "The workflow launch envelope is invalid.",
        "invalid_workflow_graph": "The workflow graph is invalid.",
        "invalid_routing_authority": "The workflow routing authority is invalid.",
        "invalid_edge_condition": "A workflow edge condition is invalid.",
        "loop_budget_exhausted": "The workflow loop budget was exhausted.",
        "invalid_workflow_variable": "A workflow variable is invalid.",
        "invalid_prompt_append": "A workflow prompt append is invalid.",
        "missing_context_source": "A required workflow context source is missing.",
        "context_source_too_large": "A workflow context source is too large.",
        "unsafe_artifact_path": "A workflow artifact path is unsafe.",
        "artifact_identity_collision_resolved": "An artifact identity collision was resolved.",
        "artifact_baseline_too_large": "An artifact baseline is too large.",
        "artifact_baseline_mismatch": "An artifact baseline did not match.",
        "artifact_contract_not_satisfied": "An artifact contract was not satisfied.",
        "invalid_script_contract": "A workflow script contract is invalid.",
        "script_executable_denied": "The script executable is not allowed.",
        "script_machine_output_invalid": "Script machine output is invalid.",
        "script_timeout": "The script timed out.",
        "script_cancelled": "The script was cancelled.",
        "daemon_busy": "The daemon is busy with other advanced workflows.",
        "workflow_stale_after_restart": "The workflow became stale after daemon restart.",
        "private_projection_field_dropped": "A private projection field was dropped.",
        "legacy_progress_snapshot_sanitized": "A legacy progress snapshot was sanitized.",
        "unknown_p2p_message": "An unknown Team workflow message was ignored.",
        "unmatched_edge_route": "경로와 일치하는 조건부 출력 엣지가 없고 기본 엣지도 존재하지 않습니다."
      },
      "editor": {
        "title": "고급 워크플로 초안",
        "add_node": "노드 추가",
        "remove_node": "노드 제거",
        "remove_edge": "엣지 제거",
        "normalize_banner_one": "{{count}}개의 레거시 노드가 logic/script의 preset/scope 정렬이 필요합니다. Apply를 클릭하세요.",
        "normalize_banner_other": "{{count}}개의 레거시 노드가 logic/script의 preset/scope 정렬이 필요합니다. Apply를 클릭하세요.",
        "normalize_banner": "{{count}}개의 레거시 노드가 logic/script의 preset/scope 정렬이 필요합니다. Apply를 클릭하세요.",
        "normalize_apply": "적용",
        "normalize_dismiss": "닫기",
        "diagnostics_header": "진단",
        "read_only_notice": "이 워크플로는 향후 스키마를 사용하며 여기에서는 읽기 전용입니다.",
        "canvas_hint": "노드를 드래그하여 배치합니다. 오른쪽 앵커 (●)에서 다른 노드로 드래그하여 엣지를 만듭니다. 마우스 휠이나 핀치로 확대/축소.",
        "zoom_in": "확대",
        "zoom_out": "축소",
        "zoom_reset": "확대 초기화",
        "inspector_empty": "속성을 편집하려면 노드나 엣지를 선택하세요.",
        "node": {
          "section_label": "노드",
          "preset_label": "프리셋",
          "permission_scope_label": "권한 범위",
          "dispatch_style_label": "디스패치 방식",
          "summary_prompt_label": "라운드 요약 프롬프트 (노드 종료 후 자동 실행)",
          "script_argv_label": "스크립트 명령어 (한 줄에 argv 항목 하나, 첫 줄이 실행 파일)",
          "script_argv_placeholder": "/usr/bin/python3\n/절대경로/script.py\n--flag\nvalue"
        },
        "edge": {
          "section_label": "엣지",
          "from_label": "출발",
          "to_label": "도착",
          "condition_label": "조건 값"
        }
      },
      "allowed_executables": {
        "title": "스크립트 실행 파일 허용 목록",
        "hint": "스크립트 실행 시점에 강제됩니다. 스크립트 노드가 호출할 수 있는 절대 경로(예: /usr/bin/jq) 또는 PATH 상대 이름을 추가하세요. LLM 전용 워크플로에는 항목이 필요 없습니다.",
        "placeholder": "/usr/bin/jq",
        "input_label": "새 실행 파일 경로",
        "add": "추가",
        "remove": "제거",
        "empty": "아직 허용된 실행 파일이 없습니다. 이 워크플로의 스크립트 노드는 최소 한 개를 추가할 때까지 bind 단계에서 거부됩니다.",
        "script_nodes_need_entries": "스크립트 노드에 필수"
      },
      "library": {
        "title": "워크플로 라이브러리",
        "hint": "이 세션에 저장된 워크플로입니다. 활성 워크플로가 Team 호출에 전송됩니다. 최대 {{max}}개.",
        "new": "+ 새로 만들기",
        "duplicate": "복제",
        "delete": "삭제",
        "delete_confirm": "워크플로 \"{{title}}\"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.",
        "copy_suffix": " (복사)",
        "active_badge": "활성",
        "name_label": "워크플로 이름",
        "name_placeholder": "예: 감사 + 계획 워크플로"
      }
    }
  },
  "openspec": {
    "title": "OpenSpec",
    "changes": "변경",
    "empty": "OpenSpec 변경 사항이 없습니다",
    "load_timeout": "OpenSpec 변경을 불러오는 데 시간이 너무 오래 걸렸습니다. daemon이 다시 연결된 뒤 다시 시도하세요.",
    "load_unavailable": "daemon 연결이 준비될 때까지 OpenSpec 변경을 불러올 수 없습니다.",
    "load_error": "OpenSpec 변경을 스캔할 수 없습니다",
    "audit_action": "감사",
    "audit_implementation_action": "구현 감사",
    "audit_spec_action": "명세 감사",
    "implement_action": "구현",
    "achieve_action": "완료",
    "propose_action": "제안",
    "propose_from_discussion_action": "최근 논의에서 생성",
    "propose_from_description_action": "아래 설명에서 생성",
    "audit_implementation_prompt": "{{reference}}에 대해 OpenSpec 산출물을 기준으로 엄격한 구현 감사를 수행하세요. 모든 불일치, 누락, 회귀 위험, 경계 사례 공백, 누락된 테스트를 찾아낸 뒤 코드, 테스트, 필요한 보조 변경까지 직접 수정하세요. 구현에 맞춰 명세 산출물도 움직여야 한다면 같은 작업 안에서 {{reference}} 아래 OpenSpec 파일까지 직접 갱신하세요. 보고서로 끝내지 말고 구현을 명세와 완전히 일치시키세요.",
    "audit_spec_prompt": "{{reference}}에 대해 엄격한 명세 감사를 수행하세요. 범위, 요구사항, 승인 기준, 경계 사례, 실패 모드, 의존성, 테스트 가능성을 강화하고, 모호함과 내부 불일치를 제거한 뒤 {{reference}} 아래 proposal, design, specs, tasks를 직접 갱신해 바로 구현 가능한 수준까지 명세를 개선하세요. 검토 의견만 남기지 말고 명세 자체를 고치세요.",
    "implement_prompt": "{{reference}} 구현을 강하게 밀어붙이세요. 작업을 구체적 하위 작업으로 분해하고, 하위 에이전트에 명확한 소유권을 배정하고, 결과를 통합하고, 명세 대비 부족분을 메우고, 테스트를 추가 또는 갱신하고, 최종 결과를 검증하세요. 작업 중에는 {{reference}} 아래 OpenSpec 산출물도 함께 맞춰 두고 후속 메모로 미루지 마세요. 당신이 오케스트레이션, 기술 판단, 최종 검수를 책임지세요.",
    "achieve_prompt": "전체 OpenSpec 워크플로로 {{reference}}를 완료 상태까지 밀어붙이세요. 남은 작업과 산출물을 모두 점검하고, 필요한 구현과 명세 작업을 끝내고, 필요하면 {{reference}} 아래 proposal, design, specs, tasks를 직접 갱신하고, 미해결 항목을 닫고, 영향받는 메인 명세를 동기화한 뒤, 완료 기준을 충족하면 변경을 보관하세요. 상태 보고에서 멈추지 마세요.",
    "propose_from_discussion_prompt": "최근 논의를 바탕으로 OpenSpec 변경을 생성하세요. 목표, 범위, 핵심 요구사항, 승인 기준을 정리하고, 불명확한 부분은 확인 필요 항목으로 남긴 뒤, 초안 메모에서 멈추지 말고 openspec/changes/ 아래에 proposal, design, specs, tasks를 실제로 작성하세요.",
    "propose_from_description_prompt": "아래 설명을 바탕으로 OpenSpec 변경을 생성하세요. 목표, 범위, 핵심 요구사항, 승인 기준을 정리하고, 빠진 정보는 확인 필요 항목으로 남긴 뒤, 초안 메모에서 멈추지 말고 openspec/changes/ 아래에 proposal, design, specs, tasks를 실제로 작성하세요."
  },
  "upload": {
    "upload_file": "파일 업로드",
    "uploading": "업로드 중...",
    "upload_failed": "업로드 실패",
    "file_too_large": "파일이 너무 큽니다 (최대 {{max}}MB)",
    "long_text_attached": "긴 붙여넣기 텍스트가 {{name}} 첨부파일로 추가되었습니다",
    "long_text_requires_attachment": "이 붙여넣기 내용은 입력창에 직접 넣기엔 너무 깁니다. 파일로 업로드하세요.",
    "drop_overlay_title": "파일을 놓아 업로드",
    "drop_overlay_hint": "현재 세션 창 안 어디에서든 놓으세요",
    "download_file": "다운로드",
    "downloading": "다운로드 중...",
    "preview_unavailable": "미리보기 불가",
    "download_expired": "다운로드 링크 만료",
    "download_timeout": "다운로드 시간 초과",
    "download_failed": "다운로드 실패",
    "daemon_offline": "데몬 오프라인"
  },
  "settings": {
    "title": "설정",
    "back": "← 뒤로",
    "team_discussion_label": "Team 토론 모드",
    "team_discussion_title": "복잡한 작업은 여러 Agent로 토론할 수 있습니다",
    "team_discussion_body": "Team 토론은 코드에만 쓰는 기능이 아닙니다. 복잡한 문서, 제안서, 감사, 의사결정에도 잘 맞습니다. 서로 다른 모델이 보완하고 반박하면서 더 우수하고 엄밀한 결과를 만들 수 있습니다.",
    "team_discussion_point_1": "먼저 입력창에 토론할 내용을 쓰고 토론 모드를 선택해 시작하세요.",
    "team_discussion_point_2": "어려운 작업은 라운드를 늘려 이전 결론을 다시 검토하고 더 단단하게 만들 수 있습니다.",
    "team_discussion_point_3": "OpenSpec 감사, 복잡한 제안, 코드 리뷰, 아키텍처 결정은 단일 모델의 사각지대를 찾기에 좋은 용도입니다.",
    "display_name": "표시 이름",
    "no_name": "설정되지 않음",
    "edit": "편집",
    "save": "저장",
    "name_placeholder": "표시 이름 입력",
    "name_saved": "표시 이름이 업데이트되었습니다",
    "name_error": "표시 이름 업데이트에 실패했습니다",
    "change_password": "비밀번호 변경",
    "old_password": "현재 비밀번호",
    "new_password": "새 비밀번호",
    "confirm_password": "새 비밀번호 확인",
    "change_password_btn": "비밀번호 변경",
    "password_changed": "비밀번호가 변경되었습니다",
    "password_error": "비밀번호 변경에 실패했습니다. 현재 비밀번호를 확인하세요.",
    "passwords_mismatch": "비밀번호가 일치하지 않습니다",
    "password_too_short": "비밀번호는 최소 8자 이상이어야 합니다",
    "password_missing_uppercase": "비밀번호에 대문자가 하나 이상 포함되어야 합니다",
    "password_missing_lowercase": "비밀번호에 소문자가 하나 이상 포함되어야 합니다",
    "password_missing_digit": "비밀번호에 숫자가 하나 이상 포함되어야 합니다",
    "privacy_policy": "개인정보 처리방침",
    "terms_of_service": "이용약관",
    "account_identity": "계정 정보",
    "username": "사용자 이름",
    "no_username": "설정되지 않음",
    "username_placeholder": "사용자 이름 설정",
    "username_required": "사용자 이름이 필요합니다",
    "username_invalid": "사용자 이름은 3-32자이며 소문자, 숫자, 점, 밑줄, 하이픈만 사용할 수 있습니다",
    "username_taken": "이미 사용 중인 사용자 이름입니다",
    "set_password_login": "비밀번호 로그인 설정",
    "set_password_hint": "패스키 계정에는 기본적으로 사용자 이름과 비밀번호가 없습니다. 패스키를 한 번 확인한 뒤 둘 다 설정하면 비밀번호로도 로그인할 수 있습니다.",
    "set_password_btn": "패스키 확인 후 비밀번호 설정",
    "password_setup_success": "비밀번호 로그인이 준비되었습니다",
    "password_setup_error": "비밀번호 로그인 설정에 실패했습니다. 패스키를 확인한 뒤 다시 시도하세요.",
    "passkey_verify_browser_only": "비밀번호 설정을 위한 패스키 확인은 현재 웹 브라우저에서만 지원됩니다.",
    "passkey_verify_wrong_account": "이 패스키는 다른 계정에 속합니다. 현재 계정에 등록된 패스키로 확인하세요.",
    "passkey_verify_no_passkeys": "이 계정에는 등록된 패스키가 없습니다.",
    "native_status_verifying_passkey": "패스키 확인 중…",
    "native_status_saving_password": "비밀번호 로그인 저장 중…"
  },
  "admin": {
    "title": "관리자 패널",
    "back": "← 뒤로",
    "settings": "설정",
    "users": "사용자",
    "load_error": "관리자 데이터 로드에 실패했습니다",
    "action_error": "작업에 실패했습니다",
    "registration_enabled": "등록 활성화",
    "registration_enabled_desc": "새 사용자 등록 허용",
    "require_approval": "승인 필요",
    "require_approval_desc": "신규 등록은 관리자 승인이 필요합니다",
    "require_approval_disabled": "승인을 설정하려면 먼저 등록을 활성화하세요",
    "col_username": "사용자 이름",
    "col_display_name": "표시 이름",
    "col_status": "상태",
    "col_role": "역할",
    "col_created": "생성일",
    "col_actions": "작업",
    "status_active": "활성",
    "status_pending": "대기 중",
    "status_disabled": "비활성",
    "approve": "승인",
    "disable": "비활성화",
    "confirm_delete_title": "사용자 삭제",
    "confirm_delete_msg": "사용자 \"{{name}}\"을(를) 영구적으로 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
    "confirm_disable_title": "사용자 비활성화",
    "confirm_disable_msg": "사용자 \"{{name}}\"을(를) 비활성화하시겠습니까? 더 이상 로그인할 수 없게 됩니다."
  },
  "repo": {
    "title": "저장소",
    "back": "← 뒤로",
    "refresh": "새로고침",
    "last_refresh": "마지막 새로고침: {{time}}초 전",
    "tab_issues": "이슈",
    "tab_prs": "PR",
    "tab_branches": "브랜치",
    "tab_commits": "커밋",
    "tab_cicd": "CI/CD",
    "overview_branch": "{{default}} ← {{current}}",
    "cli_ok": "{{cli}} {{version}} ✓",
    "cli_not_installed": "CLI 미설치",
    "load_more": "더 보기",
    "loading": "로딩 중...",
    "retry": "재시도",
    "current_branch": "현재",
    "error_cli_missing": "저장소 기능을 사용하려면 {{cli}}를 설치하세요",
    "error_cli_missing_hint": "저장소 기능을 사용하려면 GitHub CLI를 설치하세요:",
    "error_cli_outdated": "{{cli}}를 {{version}}+ 버전으로 업데이트하세요",
    "error_unauthorized": "`{{command}}`를 실행하여 인증하세요",
    "error_unauthorized_hint": "CLI로 인증하세요:",
    "error_rate_limited": "API 속도 제한에 도달했습니다. 나중에 다시 시도하세요.",
    "error_generic": "데이터를 불러오지 못했습니다",
    "empty_issues": "이슈가 없습니다",
    "empty_prs": "PR이 없습니다",
    "empty_branches": "브랜치가 없습니다",
    "empty_commits": "커밋이 없습니다",
    "empty_actions": "워크플로 실행을 찾을 수 없습니다",
    "state_open": "열림",
    "state_closed": "닫힘",
    "state_merged": "병합됨",
    "draft": "초안",
    "default_branch": "기본",
    "ahead": "{{count}} 앞섬",
    "behind": "{{count}} 뒤쳐짐",
    "actions_refresh": "새로고침",
    "actions_last_updated": "{{time}} 업데이트됨",
    "actions_view": "보기",
    "detail_loading": "상세 정보 로딩...",
    "detail_error": "상세 정보 로드 실패",
    "detail_retry": "재시도",
    "files": "파일",
    "more_files": "더 많은 파일 — GitHub에서 전체 목록 보기",
    "view_on_platform": "GitHub에서 보기",
    "body_truncated": "내용이 잘렸습니다 — GitHub에서 전문 보기",
    "checks_success": "체크 통과",
    "checks_failure": "체크 실패",
    "checks_pending": "체크 진행 중",
    "mergeable": "병합 가능",
    "conflicts": "충돌 있음",
    "comments_count": "개 댓글",
    "comments_header": "{{count}}개 댓글",
    "no_comments": "댓글 없음",
    "show_changed_files": "변경된 파일 보기",
    "refresh_tab": "새로고침",
    "branch_summary_title": "현재 브랜치: {{branch}}",
    "branch_summary_label": "{{branch}} 브랜치의 저장소 정보 열기",
    "info_title": "저장소 정보",
    "info_current_branch": "브랜치",
    "info_project_dir": "프로젝트",
    "info_repository": "저장소",
    "info_provider": "제공자",
    "info_default_branch": "기본",
    "branch_local_label": "로컬 브랜치",
    "branch_local_short": "local",
    "branch_remote_label": "원격 브랜치",
    "branch_remote_short": "remote",
    "checkout_switch": "전환",
    "checkout_switching": "전환 중...",
    "checkout_switch_to": "{{branch}}(으)로 전환",
    "checkout_pending": "{{branch}}(으)로 전환 중",
    "checkout_success": "{{branch}}(으)로 전환했습니다.",
    "checkout_remote_only_disabled": "이 버전에서는 원격 전용 브랜치로 전환할 수 없습니다.",
    "checkout_dirty_worktree": "브랜치를 전환하기 전에 로컬 변경 사항을 정리하거나 커밋하세요.",
    "checkout_git_operation_in_progress": "현재 git 작업을 완료한 뒤 브랜치를 전환하세요.",
    "checkout_invalid_target": "기존 로컬 브랜치로만 전환할 수 있습니다.",
    "checkout_in_progress": "이 저장소에서 이미 브랜치 전환이 진행 중입니다.",
    "checkout_busy": "저장소 작업이 바쁩니다. 잠시 후 다시 시도하세요.",
    "checkout_branch_in_use": "지금은 해당 브랜치로 전환할 수 없습니다.",
    "checkout_detached_head": "HEAD가 detached 상태일 때는 전환할 수 없습니다.",
    "checkout_not_a_git_repo": "이 프로젝트는 git 저장소가 아닙니다.",
    "checkout_failed": "브랜치 전환에 실패했습니다.",
    "local_commit_fallback_loading": "로컬 git 기록을 불러오는 중...",
    "local_commit_fallback_error": "로컬 git 기록을 불러오지 못했습니다."
  },
  "transport_chat": {
    "inputPlaceholder": "메시지를 입력하세요...",
    "send": "전송",
    "streaming": "생각 중...",
    "error": "오류",
    "connectionLost": "연결이 끊겼습니다",
    "empty": "아직 메시지가 없습니다"
  },
  "sidebar": {
    "collapse": "사이드바 접기",
    "expand": "사이드바 펼치기",
    "noSessions": "세션 없음",
    "sessionTree": "세션 목록",
    "unpin": "패널 고정 해제",
    "pinned_repo": "파일",
    "session_unavailable": "세션을 사용할 수 없습니다",
    "drop_to_pin": "여기에 놓아 고정",
    "pin_to_sidebar": "사이드바에 고정",
    "expand_all": "모두 펼치기",
    "collapse_all": "모두 접기",
    "drag_to_resize": "드래그하여 크기 조절"
  },
  "subsessionBar": {
    "show": "표시",
    "hide": "숨기기",
    "layout_double": "2줄",
    "layout_single": "1줄",
    "card_size": "카드 크기",
    "subs_count": "Subs ({{count}})",
    "new_sub_session": "새 하위 세션",
    "add_sub_session_short": "+ 하위 세션",
    "close_all_open": "열려 있는 모든 하위 세션 창 닫기",
    "quick_close_open": "열려 있는 하위 세션 창 빠르게 닫기",
    "restore_quick_closed": "방금 닫은 하위 세션 창 복원",
    "quick_close_unavailable": "먼저 하위 세션 창을 여세요",
    "p2p_discussions": "Team 토론",
    "p2p_compact_show": "컴팩트 Team 바 표시",
    "p2p_compact_hide": "Team 바 컴팩트로 접기",
    "p2p_compact_expand": "자세한 Team 바 표시",
    "p2p_discussions_with_running_one": "{{count}}개의 진행 중 토론 — 모두 보기",
    "p2p_discussions_with_running_other": "{{count}}개의 진행 중 토론 — 모두 보기",
    "p2p_discussions_with_running": "{{count}}개의 진행 중 토론 — 모두 보기",
    "p2p_running_count_aria_one": "{{count}}개의 Team 토론 진행 중",
    "p2p_running_count_aria_other": "{{count}}개의 Team 토론 진행 중",
    "p2p_running_count_aria": "{{count}}개의 Team 토론 진행 중",
    "repository": "저장소",
    "scheduled_tasks": "예약 작업",
    "width_short": "너비",
    "height_short": "높이",
    "apply": "적용",
    "reset": "재설정",
    "empty_prefix": "하위 세션이 없습니다. ",
    "empty_suffix": "를 눌러 추가하세요"
  },
  "localWebPreview": {
    "title": "로컬 웹 미리보기",
    "port": "포트",
    "path": "경로",
    "open": "열기",
    "refresh": "새로고침",
    "openInNewTab": "새 탭에서 열기",
    "closePreview": "미리보기 닫기",
    "sandboxNote": "미리보기는 sandbox가 적용된 iframe에서 실행됩니다. 일부 앱은 새 탭에서 더 잘 동작합니다.",
    "invalidPort": "1에서 65535 사이의 포트를 입력하세요.",
    "openFailed": "로컬 미리보기를 열지 못했습니다.",
    "opening": "미리보기를 여는 중…",
    "empty": "로컬 포트와 경로를 입력한 다음 미리보기를 여세요.",
    "noServer": "먼저 서버를 선택하세요.",
    "previewing": "미리보기 중：",
    "initialPathNote": "이 경로는 처음 여는 페이지만 지정합니다. 로드 후 탐색 범위는 이 경로가 아니라 포트 기준입니다.",
    "portHistoryLabel": "최근 포트",
    "pathHistoryLabel": "최근 경로"
  },
  "cron": {
    "title": "예약 작업",
    "create": "새 작업",
    "edit": "작업 편집",
    "name": "작업 이름",
    "name_placeholder": "예: 매일 CI 검사",
    "schedule": "스케줄",
    "schedule_help": "Cron 표현식 (예: 0 9 * * 1-5 = 평일 오전 9시)",
    "mode_picker": "시각적 선택",
    "mode_advanced": "고급 (cron)",
    "advanced_help": "형식: 분 시 일 월 요일 — 예: 0 9 * * 1-5 = 평일 오전 9시",
    "field_minute": "분",
    "field_hour": "시",
    "field_day": "일",
    "field_month": "월",
    "field_weekday": "요일",
    "every_hour": "매시간",
    "any": "모두",
    "target": "대상 세션",
    "action_type": "작업 유형",
    "action_command": "명령",
    "action_p2p": "Team 토론",
    "send_target": "받는 세션",
    "send_target_placeholder": "정확한 세션 이름, 라벨 또는 에이전트 유형",
    "send_message": "메시지",
    "send_message_placeholder": "보낼 메시지를 입력하세요...",
    "send_reply": "받는 쪽에 답장 요청",
    "send_broadcast": "형제 세션에 브로드캐스트",
    "command": "명령",
    "command_placeholder": "에이전트에 보낼 명령을 입력하세요...",
    "shell_hint": "팁: Shell 세션은 스크립트를 직접 실행할 수 있습니다. 스크립트 경로만 입력하세요 (예: /path/to/script.sh)",
    "p2p_topic": "토론 주제",
    "p2p_topic_placeholder": "토론 주제를 입력하세요...",
    "p2p_mode": "토론 모드",
    "p2p_participants": "참가자",
    "p2p_rounds": "라운드",
    "expires_at": "만료",
    "expires_never": "없음",
    "status": "상태",
    "active": "활성",
    "paused": "일시정지됨",
    "expired": "만료됨",
    "error": "오류",
    "last_run": "마지막 실행",
    "next_run": "다음 실행",
    "no_tasks": "예약된 작업이 없습니다",
    "confirm_delete": "이 예약 작업을 삭제하시겠습니까?",
    "pause": "일시정지",
    "resume": "재개",
    "save": "저장",
    "cancel": "취소",
    "invalid_cron": "잘못된 Cron 표현식입니다",
    "interval_too_short": "최소 간격은 5분입니다",
    "history": "실행 기록",
    "no_history": "아직 실행 기록이 없습니다",
    "no_detail": "캡처된 출력 없음",
    "status_sent": "전송됨",
    "status_skipped_offline": "건너뜀 (오프라인)",
    "status_skipped_busy": "건너뜀 (사용 중)",
    "status_error": "오류",
    "no_participants": "사용 가능한 다른 세션이 없습니다",
    "show_all_projects": "모든 프로젝트",
    "show_all_servers": "모든 서버",
    "exec_latest": "최근",
    "exec_all": "전체",
    "view_discussion": "Team 토론 보기 →",
    "confirm_trigger": "이 작업을 지금 실행하시겠습니까?",
    "status_manual_trigger": "수동 실행",
    "go_to_session": "세션으로 이동",
    "go_and_quote": "이동 후 결과 인용",
    "read_only": "읽기 전용",
    "read_only_scope": "이 cron 작업은 다른 server 또는 tab 소속이라 여기서는 임시로 읽기 전용입니다."
  },
  "fileBrowser": {
    "edit": "편집",
    "preview": "미리보기",
    "save": "저장",
    "saving": "저장 중…",
    "unsavedChanges": "저장하지 않은 변경 사항이 있습니다. 버리시겠습니까?",
    "conflictTitle": "파일이 외부에서 수정되었습니다",
    "conflictKeepMine": "내 변경 사항 유지",
    "conflictUseDisk": "디스크 버전 사용",
    "conflictCancel": "취소",
    "saveSuccess": "저장됨",
    "saveError": "저장 실패",
    "fileTooLarge": "파일이 너무 커서 저장할 수 없습니다 (> 1 MB)",
    "saveTimeout": "저장 시간 초과 — 파일을 다시 로드하세요",
    "copyPath": "경로 복사",
    "copied": "복사됨!",
    "insertPath": "경로 삽입"
  },
  "onboarding": {
    "prompt": {
      "title": "초보자 가이드를 시작할까요?",
      "body_1": "첫 메인 session 이 준비되었습니다. 처음이라면 이 짧은 가이드로 핵심 조작을 익힐 수 있습니다.",
      "body_2": "먼저 기본 버튼을 설명하고, 마지막에 멀티 에이전트 토론 활용법을 안내합니다.",
      "beginner": "초보자입니다, 가이드 시작",
      "expert": "익숙합니다, 다시 보지 않기",
      "later": "닫기, 다음에 다시 보기"
    },
    "team_discussion_guide": {
      "title": "여기가 Team 토론 모드입니다",
      "body_1": "토론은 코드 작성에만 쓰는 것이 아닙니다. 복잡한 문서, 제안서, OpenSpec 감사, 코드 리뷰, 아키텍처 결정에도 적합합니다.",
      "body_2": "서로 다른 모델이 보완하고 반박하면서 단일 모델보다 더 우수하고 엄밀한 결과를 만들기 쉽습니다.",
      "body_3": "먼저 토론할 내용을 입력하고 토론 모드를 선택해 시작하세요. 어려운 문제는 라운드를 늘려 결론을 더 단단하게 만들 수 있습니다.",
      "dismiss": "확인"
    },
    "step_counter": "{{current}} / {{total}} 단계",
    "prev": "이전",
    "next": "다음",
    "finish": "완료",
    "steps": {
      "new_main": {
        "title": "여기서 메인 Session 생성",
        "body_1": "이 버튼으로 프로젝트용 새 메인 session 을 만듭니다.",
        "body_2": "메인 session 은 terminal, chat, repo, discussion 의 시작점입니다."
      },
      "new_sub": {
        "title": "여기서 서브 Session 생성",
        "body_1": "이 버튼으로 현재 프로젝트 아래 worker/helper 서브 session 을 추가합니다.",
        "body_2": "서브 session 은 병렬 작업, 리뷰, 실험에 적합합니다."
      },
      "discussions": {
        "title": "여기서 토론 기록 열기",
        "body_1": "이전 토론과 결과를 여기서 확인할 수 있습니다."
      },
      "repo": {
        "title": "여기서 Repo 패널 열기",
        "body_1": "저장소 상태, 브랜치, 커밋, PR, CI 를 여기서 확인할 수 있습니다."
      },
      "cron": {
        "title": "여기서 예약 작업 열기",
        "body_1": "현재 프로젝트의 예약 작업을 여기서 만들고 관리할 수 있습니다."
      },
      "view_toggle": {
        "title": "여기서 Chat / Terminal 전환",
        "body_1": "이 버튼으로 현재 session 의 chat 보기와 live terminal 보기를 전환합니다."
      },
      "p2p_defaults": {
        "title": "여기서 기본 토론 참가 Session 설정",
        "body_1": "이 메뉴에서 Config 를 선택하면 @all 에 기본 참여할 session 을 정할 수 있습니다.",
        "body_2": "기본 토론 라운드 수도 여기서 빠르게 설정할 수 있습니다."
      },
      "p2p_send": {
        "title": "입력창에서 바로 토론 시작",
        "body_1": "@@all(discuss), @@all(review) 같은 형식으로 공유 토론을 빠르게 시작할 수 있습니다.",
        "body_2": "토론은 서로 다른 공급자/유형의 Agent 를 2개 이상 쓸 때 가장 좋습니다. 고정된 사고를 깨고 더 나은 결과를 얻기 쉽습니다.",
        "body_3": "멀티 Agent 토론은 파일을 공유하고 더 완전한 기록을 남깁니다. 1:1 은 일회성 토론에 더 가깝습니다. 실전에서는 2라운드가 좋은 기본값입니다."
      }
    }
  },
  "sharedContext": {
    "loading": "Loading shared context…",
    "refresh": "Refresh",
    "empty": "Nothing yet",
    "roles": {
      "owner": "owner",
      "admin": "admin",
      "member": "member"
    },
    "notice": {
      "enterpriseCreated": "Enterprise created",
      "inviteCreated": "Invite created",
      "joinedEnterprise": "Joined enterprise",
      "memberUpdated": "Member updated",
      "memberRemoved": "Member removed",
      "workspaceCreated": "Workspace created",
      "projectEnrolled": "Project enrolled",
      "policySaved": "Policy saved",
      "projectPendingRemoval": "Project marked pending removal",
      "projectRemoved": "Project removed",
      "documentCreated": "Document created",
      "versionCreated": "Version created",
      "versionActivated": "Version activated",
      "bindingCreated": "Binding created",
      "processingConfigSaved": "Processing config saved",
      "memoryPreferenceSaved": "Preference saved",
      "memoryPreferenceDeleted": "Preference deleted",
      "memorySkillRegistryRebuilt": "Skill registry rebuilt",
      "memorySkillDeleted": "Skill deleted",
      "memoryMdIngestCompleted": "Markdown ingest completed",
      "memoryObservationPromoted": "Observation promoted",
      "memoryFeatureEnabled": "{{flag}} 활성화됨",
      "memoryFeatureDisabled": "{{flag}} 비활성화됨",
      "memoryPreferenceUpdated": "Preference updated",
      "memoryObservationUpdated": "Observation updated",
      "memoryObservationDeleted": "Observation deleted",
      "memoryCreated": "메모리를 저장했습니다.",
      "memoryUpdated": "메모리를 업데이트했습니다.",
      "memoryPinned": "향후 요약을 위해 메모리를 고정했습니다."
    },
    "management": {
      "title": "공유 컨텍스트",
      "heroDescription": "공유 기업, 등록된 프로젝트, 작성된 지식 및 처리 동작을 한 곳에서 관리합니다.",
      "inviteDescription": "멤버로 기업에 초대합니다. 필요한 경우 멤버 탭에서 나중에 관리자로 승격할 수 있습니다.",
      "inviteFlowTitle": "초대 흐름",
      "memberRolesDescription": "소유자는 관리자를 승격할 수 있습니다. 관리자는 프로젝트와 지식을 관리할 수 있지만 다른 관리자를 임명할 수 없습니다.",
      "workspaceDescription": "워크스페이스를 사용하여 공유 프로젝트를 그룹화합니다. 선택 사항이며 소유권을 변경하지 않습니다.",
      "enrollDescription": "표준 저장소를 등록하여 처리된 컨텍스트와 지식을 이 기업에서 공유할 수 있게 합니다.",
      "policyDescription": "공유 프로젝트의 런타임 정책을 설정합니다.",
      "knowledgeDescription": "코딩 표준, 아키텍처 가이드라인, 재사용 가능한 지식을 버전 관리된 공유 컨텍스트로 작성합니다.",
      "versionDescription": "선택한 문서의 새 버전을 작성하고 준비되면 활성화합니다.",
      "bindingDescription": "문서 버전을 기업, 워크스페이스 또는 프로젝트에 언어 및 경로 필터와 함께 첨부합니다.",
      "selectEnterprise": "Select enterprise",
      "enterpriseNamePlaceholder": "New enterprise name",
      "createEnterprise": "Create enterprise",
      "invites": "Invites",
      "inviteEmailPlaceholder": "Invite email (optional)",
      "createInvite": "Create invite",
      "inviteToken": "Invite token",
      "joinTokenPlaceholder": "Invite token",
      "joinEnterprise": "Accept invite",
      "members": "Members",
      "promoteAdmin": "Promote to admin",
      "demoteMember": "Demote to member",
      "removeMember": "Remove",
      "workspaces": "Workspaces",
      "workspaceNamePlaceholder": "Workspace name",
      "createWorkspace": "Create workspace",
      "projects": "Projects",
      "projectRelationshipTitle": "공유 프로젝트 컨텍스트가 동작하는 방식",
      "projectRelationshipLine1": "개인 메모리는 엔터프라이즈 없이도 동작합니다.",
      "projectRelationshipLine2": "공유 프로젝트 컨텍스트는 현재 선택된 엔터프라이즈에 저장소를 등록한 뒤에만 시작됩니다.",
      "projectRelationshipLine3": "워크스페이스는 선택 사항이며 항상 같은 엔터프라이즈에 속합니다. 별도 소유 주체가 아니라 그룹화 계층입니다.",
      "projectRelationshipLine4": "범위는 프로젝트가 엔터프라이즈 안에서 어디까지 컨텍스트를 공유할지 결정할 뿐, 어느 엔터프라이즈에 속하는지는 바꾸지 않습니다.",
      "belongsToTitle": "소속",
      "belongsToEnterprise": "Enterprise:",
      "belongsToWorkspace": "워크스페이스:",
      "belongsToWorkspaceValue": "선택한 엔터프라이즈 안의 선택적 하위 그룹입니다.",
      "belongsToProject": "프로젝트:",
      "belongsToProjectValue": "등록된 정규 리포지토리입니다.",
      "sharesWithTitle": "공유 범위",
      "sharesWithProjectValue": "이 등록된 리포지토리만 컨텍스트를 공유합니다.",
      "sharesWithWorkspaceValue": "같은 워크스페이스의 프로젝트끼리 함께 컨텍스트를 공유합니다.",
      "sharesWithEnterpriseValue": "현재 엔터프라이즈의 모든 등록 프로젝트가 컨텍스트를 공유할 수 있습니다.",
      "chooseSharingLevelTitle": "공유 수준 선택",
      "chooseSharingLevelProject": "저장소 하나당 공유 경계 하나입니다. 대부분의 팀은 이것을 사용하면 됩니다.",
      "chooseSharingLevelWorkspace": "같은 워크스페이스 안의 관련 저장소들이 함께 컨텍스트를 공유합니다.",
      "chooseSharingLevelEnterprise": "가장 넓은 범위입니다. 등록된 모든 프로젝트가 같은 컨텍스트 풀을 공유해야 할 때만 사용하세요.",
      "scopeProjectLabel": "이 프로젝트만",
      "scopeProjectDescription": "이 등록된 저장소에만 컨텍스트를 공유합니다.",
      "scopeWorkspaceLabel": "워크스페이스",
      "scopeWorkspaceDescription": "같은 워크스페이스로 묶인 프로젝트들 사이에서 공유합니다.",
      "scopeEnterpriseLabel": "엔터프라이즈",
      "scopeEnterpriseDescription": "현재 엔터프라이즈의 모든 등록 프로젝트에서 공유합니다.",
      "scopeSourceWithWorkspace": "워크스페이스 출처: {{enterprise}} 아래의 {{workspace}}.",
      "scopeSourceWithoutWorkspace": "워크스페이스가 선택되지 않았습니다. 이 프로젝트는 여전히 {{enterprise}}에 속합니다.",
      "selectedEnterprise": "선택된 엔터프라이즈",
      "notSelected": "선택 안 됨",
      "canonicalRepoId": "Canonical repo ID",
      "displayName": "Display name",
      "noWorkspace": "No workspace",
      "workspaceLabel": "Workspace",
      "noWorkspaceAssigned": "No workspace",
      "enrollProject": "Enroll project",
      "editPolicy": "Edit policy",
      "pendingRemoval": "Pending removal",
      "removeProject": "Remove project",
      "selectProject": "Select project",
      "allowDegraded": "Allow degraded provider",
      "allowLocalFallback": "Allow local fallback",
      "requireFullSupport": "Require full support",
      "savePolicy": "Save policy",
      "documents": "Knowledge & standards",
      "documentTitle": "Document title",
      "createDocument": "Create document",
      "selectDocument": "Select document",
      "selectVersion": "Select version",
      "documentContent": "Document content",
      "createVersion": "Create version",
      "bindings": "Bindings",
      "required": "Required",
      "advisory": "Advisory",
      "language": "Language",
      "pathPattern": "Path pattern",
      "createBinding": "Create binding",
      "tabs": {
        "enterprise": "조직",
        "members": "멤버",
        "projects": "프로젝트",
        "knowledge": "지식",
        "processing": "처리",
        "memory": "메모리",
        "mcp": "MCP"
      },
      "policyTitle": "Project policy",
      "policyLoading": "Loading saved policy…",
      "policyExplainTitle": "What this policy controls",
      "policyExplainLine1": "These settings control how this shared project behaves when a provider cannot fully support shared context or when the remote shared state is unavailable.",
      "policyExplainLine2": "Use the stricter options for team-owned codebases. Use the more permissive options only when you need continuity over strict consistency.",
      "allowDegradedHelp": "Allow providers that can only inject shared context in a reduced or message-side form. Turn this off if the team requires consistent behavior across providers.",
      "allowLocalFallbackHelp": "Allow this machine to keep using its local processed context when shared remote context is stale or temporarily unavailable.",
      "requireFullSupportHelp": "Only allow providers that fully support normalized shared-context injection. This is the strictest setting.",
      "requireFullProviderSupportHelp": "Only allow providers that fully support normalized shared-context injection. This is the strictest setting.",
      "processingSummaryTitle": "Processing flow",
      "processingSummaryLine1": "Raw activity is staged locally, then materialized into processed local context on delayed jobs.",
      "processingSummaryLine2": "Shared projects can replicate processed context to the remote shared store after local materialization succeeds.",
      "processingSummaryLine3": "This panel manages enterprise policy and authored knowledge. It does not directly run the materializer.",
      "processingModelTitle": "Materialization model selection",
      "processingPrimaryCardTitle": "Primary processing path",
      "processingPrimaryBackend": "Primary SDK / backend",
      "processingPrimaryModel": "Default primary model",
      "processingPrimaryPreset": "Primary preset",
      "processingBackupCardTitle": "Backup processing path",
      "processingBackupBackend": "Backup SDK / backend",
      "processingBackupModel": "Backup model",
      "processingBackupPreset": "Backup preset",
      "processingBackupPlaceholder": "Optional fallback model",
      "processingPresetNone": "No preset",
      "processingSave": "Save processing config",
      "processingSaving": "Saving…",
      "processingReload": "Reload cloud config",
      "processingSavedPrimaryBackend": "Saved primary backend",
      "processingSavedPrimary": "Saved primary model",
      "processingSavedBackupBackend": "Saved backup backend",
      "processingSavedBackup": "Saved backup model",
      "processingUnsetValue": "unset",
      "processingCloudSyncNote": "This setting is saved in the cloud for the selected server and synced into the daemon when it is connected or restarts.",
      "processingServerRequired": "Select a server before managing processing settings.",
      "processingPrimaryOverride": "Primary override env",
      "processingBackupOverride": "Backup override env",
      "processingServerScope": "Current server scope",
      "processingProviderNote": "Choose both the SDK/backend and the model. The daemon will use this pair when it runs local shared-context materialization jobs.",
      "processingBackendNote": "The backend decides which runtime executes the model. The model alone is not enough.",
      "processingUiGap": "This setting is server-scoped, not enterprise-global.",
      "processingOperationalTitle": "Operational notes",
      "processingOperationalLine1": "If no server-saved value exists, the primary model defaults to \"sonnet\".",
      "processingOperationalLine2": "The backup model is optional and defaults to unset.",
      "processingOperationalLine3": "Different servers can still use different saved processing models. This panel edits the selected server only.",
      "memorySummaryTitle": "Memory visibility",
      "memorySummaryLine1": "Personal memory is materialized locally first, then optionally replicated to the cloud for cross-device continuity.",
      "memorySummaryLine2": "Cloud personal memory is scoped to the current signed-in user and shared across that user's devices when sync is enabled.",
      "memorySummaryLine3": "Shared memory stats show enterprise-scoped processed context that other enrolled projects can reuse.",
      "personalSyncTitle": "Personal cloud sync",
      "personalSyncDescription": "Choose whether processed personal memory should replicate to your account-wide cloud memory pool.",
      "personalSyncToggle": "Enable cloud sync for personal memory",
      "personalSyncHelp": "Enabled by default so summaries can power cross-device continuity and related-history recall. Turn it off only if you want personal memory to stay local-only.",
      "personalSyncDisableConfirm": "Turn off personal cloud sync? Cross-device memory, recent summary sync, and related-history recall may be affected until you turn it back on.",
      "memoryRecallThresholdTitle": "관련 기록 리콜 임계값",
      "memoryRecallThresholdDescription": "관련 기록을 메시지에 주입하기 전에 필요한 최소 종합 점수를 조정합니다.",
      "memoryRecallThresholdLabel": "최소 관련도 점수",
      "memoryRecallThresholdHelp": "값이 낮을수록 더 많은 기록이 주입됩니다. 값이 높을수록 더 엄격해집니다. 기본값: {{defaultValue}}.",
      "memoryRecallThresholdReset": "저장된 값으로 되돌리기",
      "memoryRecallThresholdSaved": "저장된 임계값",
      "memoryAdvancedScoringTitle": "고급 점수 설정",
      "memoryAdvancedScoringDescription": "유사도, 최신성, 리콜 횟수, 프로젝트 친화도가 메모리 순위에 반영되는 비중을 조정합니다.",
      "memoryAdvancedScoringShow": "고급 점수 설정 보기",
      "memoryAdvancedScoringHide": "고급 점수 설정 숨기기",
      "memoryAdvancedScoringHelp": "이 설정은 고급 튜닝용입니다. 저장 전에 가중치 합이 1.0이 되도록 정규화됩니다.",
      "memoryAdvancedScoringSum": "정규화 전 현재 가중치 합: {{value}}",
      "memoryAdvancedScoringReset": "고급 가중치 초기화",
      "memoryWeightSimilarity": "유사도 가중치",
      "memoryWeightRecency": "최신성 가중치",
      "memoryWeightFrequency": "리콜 횟수 가중치",
      "memoryWeightProject": "프로젝트 친화도 가중치",
      "personalSyncSave": "Save sync setting",
      "memoryTabLocalProcessed": "Local processed",
      "memoryTabLocalPending": "Local pending",
      "memoryTabCloud": "Personal cloud",
      "memoryTabShared": "Enterprise shared",
      "memoryTabPersonal": "개인",
      "memoryTabEnterprise": "기업",
      "memoryTabUnprocessed": "미처리",
      "memoryTabProcessed": "처리됨",
      "memoryTabSharedMemory": "공유 메모리",
      "memoryTabAuthoredContext": "작성된 컨텍스트",
      "memoryAuthoredTitle": "기업 작성 컨텍스트",
      "memoryAuthoredDescription": "공유 프로젝트에 바인딩된 기업 관리 문서. 지식 탭에서 관리합니다.",
      "memoryAuthoredSeeKnowledge": "작성된 컨텍스트 바인딩은 위의 지식 탭에서 관리됩니다.",
      "memoryQueryTitle": "Query processed memory",
      "memoryQueryDescription": "Search local personal memory, cloud personal memory, and enterprise shared memory using the same filters.",
      "memoryProjectPlaceholder": "Filter by canonical repo ID",
      "memoryQueryPlaceholder": "Search summaries and compressed content",
      "memoryAllClasses": "All record classes",
      "memoryRecentSummary": "Recent summaries",
      "memoryRecentDescription": "Turn-level compressed summaries generated from recent local activity.",
      "memoryDurableCandidate": "Durable memory candidates",
      "memoryDurableDescription": "Condensed long-lived preferences, constraints, and pinned decisions.",
      "memoryLocalTitle": "Local personal memory",
      "memoryCloudTitle": "Global personal cloud memory",
      "memoryProcessedNote": "Processed memory uses semantic vector search. Raw pending events stay local and use text filtering only; cloud personal memory and enterprise shared memory store processed summaries, not raw chat transcripts.",
      "memorySharedTitle": "Enterprise shared memory",
      "memoryStatTotal": "Total records",
      "memoryStatHits": "Matched records",
      "memoryStatRecent": "Recent summaries",
      "memoryStatDurable": "Durable candidates",
      "memoryStatPending": "Unprocessed events",
      "memoryStatDirtyTargets": "Dirty targets",
      "memoryStatPendingJobs": "Queued jobs",
      "memoryStatProjects": "Projects",
      "memoryRecordProject": "Project",
      "memoryRecordStatus": "Status",
      "memoryStatusProcessed": "Processed summary",
      "memoryStatusPending": "Pending raw event",
      "memoryRecordClass": "Class",
      "memoryRecordSources": "Source events",
      "memoryRecordUpdated": "Updated",
      "memoryRecordOwner": "소유자",
      "memoryRecordCreatedBy": "작성자",
      "memoryRecordUpdatedBy": "수정자",
      "memoryPendingTitle": "Pending raw events",
      "memoryPendingDescription": "These events have not been materialized yet. They remain local raw activity and only support text filtering, not semantic vector search.",
      "memoryPendingEventType": "Event type",
      "memoryPendingSession": "Session",
      "memoryProcessedTitle": "Processed memory",
      "memoryProcessedDescription": "These entries are processed memory summaries ranked with semantic vector search. Local views show processed summaries beside local pending events; cloud and enterprise views contain processed summaries only.",
      "memoryProcessedEmptyPending": "No processed summaries yet. Only pending raw events are available below.",
      "memoryExpand": "Expand",
      "memoryCollapse": "Collapse",
      "memoryRecalls": "{{count}}회 호출",
      "memoryNeverRecalled": "호출된 적 없음",
      "memoryLastRecalled": "마지막 호출: {{time}}",
      "memoryArchive": "보관",
      "memoryRestore": "복원",
      "memoryDelete": "삭제",
      "memoryDeleteConfirm": "이 기억을 완전히 삭제할까요? 이 작업은 되돌릴 수 없습니다.",
      "memoryDeleteFailed": "기억을 삭제하지 못했습니다",
      "memoryArchived": "보관됨",
      "memoryShowArchived": "보관된 항목 표시",
      "memoryMasterSummary": "마스터 요약",
      "memoryPost11AdminTitle": "Post-1.1 memory management",
      "memoryPost11AdminDescription": "Manage runtime-visible preferences, skill registry entries, markdown ingest, and observation promotion from the daemon that owns the local memory store.",
      "memoryAdminDaemonRequired": "Connect to a daemon to manage local preferences, skills, markdown ingest, and observations.",
      "memoryAdminActionFailed": "Memory management action failed",
      "memoryPreferencesTitle": "User preferences",
      "memoryPreferencesDescription": "Manage @pref entries that are injected into provider context for matching user scopes.",
      "memoryPreferenceUserPlaceholder": "Preference user id",
      "memoryPreferenceTextPlaceholder": "Preference text",
      "memoryPreferenceSave": "Save preference",
      "memoryPreferenceUser": "User",
      "memoryPreferenceDeleteConfirm": "Delete this preference? It will no longer be injected into future turns.",
      "memoryPreferencesEmpty": "No stored preferences found.",
      "memorySkillsTitle": "Skills",
      "memorySkillsDescription": "Inspect the lightweight skill registry used at startup. Full skill bodies are read only when previewed or when the agent asks for a matching skill.",
      "memoryProjectDirPlaceholder": "Project directory (for project skills / MD ingest)",
      "memorySkillRebuildRegistry": "Rebuild registry",
      "memorySkillName": "Skill",
      "memorySkillLayer": "Layer",
      "memorySkillPath": "Path",
      "memorySkillPreview": "Preview",
      "memorySkillPreviewTitle": "Skill preview",
      "memorySkillDeleteConfirm": "Delete this skill file and remove it from the registry?",
      "memorySkillsEmpty": "No registry entries found. Rebuild after installing or creating skills.",
      "memoryMdIngestTitle": "Markdown ingest",
      "memoryMdIngestDescription": "Run a bounded manual ingest for trusted project markdown files. Unsupported cross-scope ingest fails closed instead of silently downgrading.",
      "memoryMdIngestRun": "Run ingest",
      "memoryMdFilesChecked": "Files checked",
      "memoryMdObservationsWritten": "Observations written",
      "memoryMdIngestEmpty": "No manual ingest result yet.",
      "memoryObservationsTitle": "Observation store",
      "memoryObservationsDescription": "Inspect typed durable observations and promote scope only through an explicit audited UI action.",
      "memoryAllScopes": "All scopes",
      "memoryScopeLabel": "Scope",
      "memoryPromotionReasonPlaceholder": "Promotion reason (optional)",
      "memoryObservationPromote": "Promote",
      "memoryObservationsEmpty": "No observations found for the selected filters.",
      "memoryScope": {
        "user_private": "User private",
        "personal": "Personal project",
        "project_shared": "Project shared",
        "workspace_shared": "Workspace shared",
        "org_shared": "Org shared"
      },
      "memoryObservationClass": {
        "fact": "Fact",
        "decision": "Decision",
        "bugfix": "Bug fix",
        "feature": "Feature",
        "refactor": "Refactor",
        "discovery": "Discovery",
        "preference": "Preference",
        "skill_candidate": "Skill candidate",
        "workflow": "Workflow",
        "code_pattern": "Code pattern",
        "note": "Note"
      },
      "memoryFeatureStatusTitle": "기능 플래그",
      "memoryFeatureStatusDescription": "post-1.1 메모리 기능의 사용자 단위 온라인 전역 스위치입니다. 변경 사항은 계정에 저장되고 사용자가 소유한 모든 서버에 적용됩니다. 로컬 daemon/env 설정은 폴백입니다.",
      "memoryFeatureEnabled": "켜짐",
      "memoryFeatureDisabled": "꺼짐",
      "memoryFeatureUnknown": "알 수 없음",
      "memoryFeatureDisabledNotice": "This feature is disabled; management writes are blocked until the feature flag is enabled.",
      "error": {
        "missing_observation_text": "Observation text is required.",
        "observation_not_found": "Observation not found.",
        "observation_mutation_forbidden": "You are not authorized to modify this observation.",
        "missing_memory_text": "메모리 텍스트가 필요합니다.",
        "memory_not_found": "메모리 레코드를 찾을 수 없습니다."
      },
      "memoryToolsTitle": "Memory tools",
      "memoryToolsDescription": "Manage preferences, skills, markdown ingest, observations, and daemon memory feature status with the selected project identity.",
      "memoryToolTabStatus": "Status",
      "memoryToolTabPreferences": "Preferences",
      "memoryToolTabSkills": "Skills",
      "memoryToolTabMdIngest": "Markdown",
      "memoryToolTabObservations": "Observations",
      "mcpTitle": "Model Context Protocol",
      "mcpSummaryLine1": "관리형 provider는 daemon-controlled MCP server를 통해 11개의 runtime-scoped tools를 노출할 수 있습니다: memory search/recent summaries/source lookup, observation/preference writes, scoped Send, Cron scheduling.",
      "mcpSummaryLine2": "Memory tools는 ref와 projectionId가 포함된 compact hits를 반환합니다. list_memory_summaries는 recent digests를 가져오고, 정확한 과거 지시, bug details, source evidence가 필요할 때 get_memory_sources가 relevant hits를 확장할 수 있습니다.",
      "mcpSummaryLine3": "Send tools는 sibling sessions를 찾고 guarded imcodes send pipeline으로 scoped text, file references, reply requests, broadcasts를 보냅니다.",
      "mcpSummaryLine4": "Cron tools는 reminders, recurring checks, delegated reviews, follow-ups용 scheduled structured sends를 생성, 조회, 업데이트, 삭제할 수 있습니다.",
      "mcpSummaryLine5": "이 화면은 provider readiness, degraded setup reasons, feature gates, recent redacted tool calls를 보여줍니다. MCP report가 없으면 tools가 healthy하다고 가정하지 않고 명확히 표시합니다.",
      "mcpProviderStatusTitle": "Provider MCP 상태",
      "mcpProviderStatusDescription": "11개 도구 stdio MCP MVP를 위해 6개의 관리형 provider를 추적합니다.",
      "mcpToolGatesTitle": "도구군 게이트",
      "mcpToolGatesDescription": "Memory, Send, Cron 도구는 기본 기능 게이트와 MCP kill-switch를 모두 통과해야 합니다.",
      "mcpRecentCallsTitle": "최근 마스킹된 MCP 호출",
      "mcpRecentCallsDescription": "daemon이 마스킹한 요청과 결과 조각만 여기에 표시됩니다.",
      "mcpNoDaemon": "MCP 상태를 불러오려면 로컬 daemon에 연결하세요.",
      "mcpStatusLoading": "daemon의 MCP 상태를 기다리는 중…",
      "mcpStatusTimeout": "아직 MCP 상태 응답이 없습니다. 현재 daemon이 이 보기를 노출하지 않을 수 있습니다.",
      "mcpStatusError": "MCP 상태를 불러올 수 없습니다.",
      "mcpUpdatedAt": "업데이트",
      "mcpUpdatedNever": "보고되지 않음",
      "mcpProvidersReported": "보고된 provider",
      "mcpCallsReported": "보고된 호출",
      "mcpProviderConnected": "Provider 연결됨",
      "mcpProviderDisconnected": "Provider 연결 끊김",
      "mcpProviderNoSignal": "Provider 신호 없음",
      "mcpProviderNoDegradedReasons": "저하 사유가 보고되지 않았습니다.",
      "mcpProviderStatusHint": "MCP 전용 상태는 provider 연결 상태와 별도로 보고됩니다.",
      "mcpProviderClaudeSdk": "Claude SDK",
      "mcpProviderGeminiAcp": "Gemini ACP",
      "mcpProviderKimiAcp": "Kimi ACP",
      "mcpProviderCopilotSdk": "Copilot SDK",
      "mcpProviderCodexSdk": "Codex SDK",
      "mcpProviderCursorHeadless": "Cursor headless",
      "mcpProviderQwen": "Qwen",
      "mcpProviderUnknown": "{{provider}}",
      "mcpDisabledFlag": "비활성화 플래그: {{flag}}",
      "mcpDisabledFlagNone": "비활성화 플래그가 보고되지 않음",
      "mcpDegradedReasons": "사유: {{reasons}}",
      "mcpGateNoDetails": "게이트 세부 정보가 보고되지 않았습니다.",
      "mcpRecentCallsEmpty": "마스킹된 MCP 호출이 아직 보고되지 않았습니다.",
      "mcpCallProvider": "Provider",
      "mcpCallTool": "도구",
      "mcpCallStatus": "상태",
      "mcpCallDuration": "소요 시간",
      "mcpCallDurationValue": "{{ms}} ms",
      "mcpCallTime": "시간",
      "mcpCallFamily": "도구군",
      "mcpCallInput": "마스킹된 입력",
      "mcpCallResult": "마스킹된 결과",
      "mcpStatus": {
        "ready": "준비됨",
        "degraded": "저하됨",
        "disabled": "비활성화됨",
        "unknown": "알 수 없음"
      },
      "mcpToolFamily": {
        "memory": "메모리",
        "send": "Send",
        "cron": "Cron"
      },
      "mcpCallStatusValue": {
        "ok": "OK",
        "error": "오류",
        "disabled": "비활성화됨",
        "unknown": "{{status}}"
      },
      "mcpReason": {
        "env_forwarding_unverified": "세션별 MCP 환경 변수 전달이 확인되지 않았습니다.",
        "feature_disabled": "필수 기능 게이트가 비활성화되어 있습니다.",
        "mcp_registration_failed": "관리형 MCP 등록에 실패했습니다.",
        "provider_not_connected": "Provider가 연결되어 있지 않습니다.",
        "status_not_reported": "MCP 상태가 보고되지 않았습니다.",
        "unknown": "{{reason}}"
      },
      "memoryProjectPickerTitle": "Project selector",
      "memoryProjectPickerDescription": "기본적으로 모든 프로젝트의 메모리를 탐색합니다. 탐색 목록을 필터링하거나 로컬 파일 기반 도구를 실행할 때만 프로젝트를 선택하세요.",
      "memoryProjectSearchPlaceholder": "Search project name, canonical ID, or directory",
      "memoryProjectSelected": "Selected project",
      "memoryProjectEmpty": "No known projects yet. Open a session in the project or use the advanced resolver fallback.",
      "memoryProjectCanonicalId": "Canonical ID",
      "memoryProjectDirectory": "Directory",
      "memoryProjectSourceLabel": "Source",
      "memoryProjectNeedsResolve": "Needs daemon resolution before local tools can run.",
      "memoryProjectResolving": "Resolving project…",
      "memoryProjectCanonicalOnlyNotice": "이 프로젝트는 메모리 필터링에 사용할 수 있습니다. 로컬 파일을 읽고 쓰는 작업에는 확인된 로컬 디렉터리가 필요합니다.",
      "memoryProjectAdvanced": "Advanced resolver fallback",
      "memoryProjectAdvancedDescription": "Manual values are an advanced fallback. Prefer selecting a known project so the daemon can validate the directory-to-ID mapping.",
      "memoryProjectLocalToolsDisabled": "로컬 파일 기반 도구에는 확인된 디렉터리와 canonical ID가 있는 프로젝트 선택이 필요합니다. 프로젝트를 선택하지 않아도 탐색은 가능합니다.",
      "memoryProjectUnknown": "Unknown project",
      "memoryPreferenceSearchPlaceholder": "Search preferences",
      "memorySkillSearchPlaceholder": "Search skills by name, layer, path, or description",
      "memoryObservationSearchPlaceholder": "Search loaded observations",
      "memoryProjectStatus": {
        "resolved": "Resolved",
        "needs_resolution": "Needs resolution",
        "canonical_only": "Canonical ID only",
        "directory_only": "Directory only",
        "no_repo": "No repository",
        "multiple_remotes": "Multiple remotes",
        "unauthorized": "Unauthorized",
        "invalid_dir": "Invalid directory",
        "mismatch": "ID mismatch",
        "error": "Resolve failed"
      },
      "memoryProjectSource": {
        "active_session": "Active session",
        "recent_session": "Recent session",
        "enterprise_enrollment": "Enterprise project",
        "resolved_directory": "Resolved directory",
        "manual_resolved": "Manual resolved",
        "memory_index": "메모리 인덱스"
      },
      "memoryFeatureLabel": {
        "preferences": "환경설정",
        "mdIngest": "Markdown 수집",
        "skills": "스킬",
        "skillAutoCreation": "스킬 자동 생성",
        "observationStore": "Observation 저장소",
        "namespaceRegistry": "Namespace 레지스트리"
      },
      "memoryFeatureUnavailable": "서버 사용 불가",
      "memoryFeatureUnavailableDetail": "계정 수준 기능 스위치를 로드하고 관리 작업을 사용하려면 서버에 연결하세요.",
      "memoryFeatureLoading": "로딩 중",
      "memoryFeatureLoadingDetail": "서버 기능 상태 응답을 기다리는 중…",
      "memoryFeatureNoResponse": "응답 없음",
      "memoryFeatureNoResponseDetail": "서버가 기능 상태 요청에 응답하지 않았습니다. 새로 고치거나 다시 연결하세요.",
      "memoryFeatureError": "오류",
      "memoryFeatureErrorDetail": "기능 상태를 로드할 수 없습니다.",
      "memoryFeatureUnknownDetail": "서버 응답에 이 기능 플래그가 없습니다.",
      "memoryFeatureEnabledDetail": "이 기능은 계정에서 활성화되었으며 모든 서버에 적용됩니다.",
      "memoryFeatureDisabledHint": "계정에서 꺼져 있습니다. 여기서 켜면 모든 서버에 적용되도록 온라인에 저장됩니다. {{env}}는 daemon 시작 폴백입니다. {{behavior}}",
      "memoryBrowseProjectFilter": "Memory browse filter",
      "memoryBrowseAllProjects": "All projects (default)",
      "memoryAllProjectsActive": "All projects",
      "memoryActiveProjectFilter": "Filtered by {{project}}",
      "memoryClearProjectFilter": "Clear filter",
      "memoryToolProjectSelector": "로컬 작업 프로젝트(디렉터리 필요)",
      "memoryToolProjectNone": "Select a project for local tools",
      "memoryProjectPickerSplitHelp": "위 필터는 메모리 탐색만 제어하며 기본값은 모든 프로젝트입니다. 아래 로컬 작업 프로젝트는 Markdown 수집이나 skill 재빌드/읽기처럼 디렉터리가 필요한 도구에서만 사용합니다.",
      "memoryProjectKnownProjects": "Known projects",
      "memoryProjectNoCanonicalId": "no canonical ID",
      "memoryProjectNoDirectory": "no local directory",
      "memoryPersonalBreakdown": "Personal total breakdown: {{processed}} local processed · {{pending}} local pending · {{cloud}} cloud.",
      "memoryFilteredByProject": "Showing results filtered by {{project}}.",
      "memoryProcessedEmptyWithCloud": "No local processed summaries. Personal cloud has {{count}} records available.",
      "memoryViewPersonalCloud": "View personal cloud",
      "memoryUnprocessedEmptyWithData": "No local pending raw events. Existing processed/cloud records are available in the other tabs.",
      "memoryLocalStatusLoading": "Loading local daemon memory…",
      "memoryLocalStatusUnavailable": "Local daemon is unavailable; local processed and pending counts cannot be loaded.",
      "memoryLocalStatusNoResponse": "No response from the local daemon; local counts may be stale or unavailable.",
      "memoryLocalStatusError": "Local daemon returned an error while loading personal memory.",
      "memoryToolDisabledNoDaemon": "Connect the local daemon before using this management action.",
      "memoryToolDisabledFeature": "이 기능은 꺼져 있습니다. Feature flags에서 계정 전역으로 켜세요. {{env}}는 daemon 시작 폴백입니다.",
      "memoryToolDisabledFeatureUnknown": "기능 상태가 아직 로드되지 않았습니다. 먼저 관리 패널을 새로 고치세요.",
      "memoryToolDisabledProjectRequired": "Select a resolved project with both canonical ID and local directory before running this local tool.",
      "memoryFeatureEnableAction": "켜기",
      "memoryFeatureDisableAction": "끄기",
      "memoryFeatureToggleSaving": "저장 중…",
      "memoryFeatureDependencyBlockedHint": "켜짐이 요청되었지만 의존성이 아직 꺼져 있습니다: {{deps}}. 먼저 의존성을 켜세요. {{behavior}}",
      "memoryFeatureBlocked": "차단됨",
      "memoryFeatureDisabledBehavior": {
        "preferences": "@pref 줄은 일반 텍스트로 전달되며 저장되거나 제거되지 않습니다.",
        "mdIngest": "Markdown 파일을 읽거나 파싱하거나 수집하지 않습니다.",
        "skills": "로더가 빈 집합을 반환하고 스킬 렌더링을 건너뛰며 관리 쓰기는 거부되거나 비활성화됩니다.",
        "skillAutoCreation": "스킬 리뷰 작업을 가져오거나 만들지 않습니다. 기존 스킬은 스킬 기능이 켜져 있으면 계속 로드됩니다.",
        "observationStore": "새 observation 행을 쓰지 않습니다. 처리된 projection 은 계속 읽을 수 있습니다.",
        "namespaceRegistry": "마이그레이션/backfill 외에는 새 namespace 레코드를 쓰지 않습니다. 기존 projection 읽기는 계속 가능합니다."
      },
      "processingPresetLabel": "프리셋",
      "processingPresetNoneTitle": "프리셋 없음 — 기본 provider endpoint 사용",
      "processingPresetBundleModelTitle": "프리셋 번들 → 모델: {{model}}",
      "processingPresetBundleTitle": "프리셋 번들: {{preset}}",
      "processingModelLabel": "모델",
      "processingModelPresetTitle": "모델은 활성 프리셋이 정합니다. 다른 모델을 선택하려면 프리셋을 지우세요.",
      "processingModelDefinedByPreset": "(프리셋에서 정의됨)",
      "relativeLessThanOneMinute": "1분 미만 전",
      "relativeMinutesAgo": "{{count}}분 전",
      "relativeHoursAgo": "{{count}}시간 전",
      "relativeDaysAgo": "{{count}}일 전",
      "serverUnbound": "미연결",
      "statEnterprise": "엔터프라이즈",
      "noneValue": "없음",
      "statRole": "역할: {{role}}",
      "statChooseOrCreateEnterprise": "선택하거나 새로 만드세요",
      "statMembers": "멤버",
      "statProjects": "프로젝트",
      "statKnowledgeDocs": "지식 문서",
      "statServer": "서버",
      "statCloudSyncedRuntimeSettings": "클라우드 동기화 런타임 설정",
      "statSelectServerToSync": "처리 설정을 동기화할 서버를 선택하세요",
      "inviteFlowLine1": "새 초대는 멤버 권한만 부여합니다.",
      "inviteFlowLine2": "관리자 역할 변경은 가입 후 멤버 관리에서 수행합니다.",
      "workspaceId": "워크스페이스 ID",
      "activeCount": "{{count}}개 활성",
      "role": "역할",
      "joined": "가입일",
      "statusLabel": "상태",
      "scopeLabel": "범위",
      "meaningLabel": "의미",
      "documentKind": {
        "coding_standard": "코딩 표준",
        "architecture_guideline": "아키텍처 가이드",
        "repo_playbook": "저장소 플레이북",
        "knowledge_doc": "지식 문서"
      },
      "versions": "버전",
      "activeVersion": "활성",
      "documentLabel": "문서",
      "versionLabel": "버전",
      "anyValue": "모두",
      "pathLabel": "경로",
      "memoryPromotionTargetLabel": "Promotion target scope",
      "memoryPromotionReasonLabel": "Promotion reason",
      "memoryPromotionHelp": "Promotion is a two-step audited action. Choose a target scope, review the exact from/to change on the record, then confirm. Confirming may make the observation available under the target scope authorization rules.",
      "memoryPromotionNotAllowed": "Cannot promote from {{from}} to {{to}}.",
      "memoryObservationPromoteTitle": "Review promotion from {{from}} to {{to}}",
      "memoryObservationPromoteTo": "Promote to {{scope}}…",
      "memoryPromotionConfirmTitle": "Confirm observation promotion",
      "memoryPromotionConfirmBody": "This will promote the observation from {{from}} to {{to}} and write a promotion audit entry. The original source text is not edited, but future memory selection may use the target scope visibility rules.",
      "memoryPromotionReasonPreview": "Reason: {{reason}}",
      "memoryPromotionNoReason": "No reason provided. The audit entry will still record actor, source scope, target scope, and time.",
      "memoryPromotionCancel": "Cancel",
      "memoryPromotionConfirmAction": "Confirm promotion",
      "memoryPreferenceUpdate": "Update preference",
      "memoryEdit": "Edit",
      "memoryEditCancel": "Cancel edit",
      "memoryObservationEditTextLabel": "Observation text",
      "memoryObservationUpdate": "Update observation",
      "memoryObservationDeleteConfirm": "Delete this observation and its linked projection when present?",
      "memoryPin": "고정",
      "memoryUpdate": "메모리 업데이트",
      "memoryEditTextLabel": "메모리 텍스트",
      "memoryManualAddTitle": "메모리 수동 추가",
      "memoryManualAddDescription": "자동 압축을 기다리지 않고 프로젝트에 연결된 개인 메모리를 저장합니다.",
      "memoryManualAddClassLabel": "메모리 유형",
      "memoryManualAddTextLabel": "수동 메모리 텍스트",
      "memoryManualAddPlaceholder": "이 프로젝트에서 기억할 지속 노트, 결정 또는 요약을 작성…",
      "memoryManualAddSave": "메모리 저장",
      "memoryManualAddProjectRequired": "메모리를 추가하기 전에 프로젝트 선택기 또는 필터에서 프로젝트를 선택하세요."
    },
    "diagnostics": {
      "title": "Diagnostics",
      "load": "Load diagnostics",
      "workspaceId": "Workspace ID",
      "enrollmentId": "Enrollment ID",
      "filePath": "File path",
      "mode": "Retrieval mode",
      "visibility": "Visibility",
      "remoteProcessed": "Remote processed present",
      "derivedOnDemand": "Derived on demand",
      "persistedSnapshotAvailable": "Persisted snapshot available",
      "appliedVersions": "Applied versions",
      "runtimeBindings": "Runtime authored context",
      "snapshotTitle": "Persisted snapshot",
      "snapshotBindings": "Snapshot bindings"
    }
  },
  "embedding": {
    "status_unknown": "임베딩 상태 알 수 없음 (구버전 데몬이거나 연결 끊김)",
    "status_ready": "임베딩 준비 완료 — 시맨틱 검색이 로컬에서 실행됨",
    "status_loading": "임베딩 모델 로딩 중…",
    "status_fallback": "임베딩: 로컬 파이프라인 사용 불가, 서버 폴백 사용 중",
    "status_unavailable": "임베딩 사용 불가 — 이 데몬에서 시맨틱 검색이 비활성화됨",
    "status_idle": "임베딩 대기 중 (이번 세션에서 아직 사용되지 않음)"
  },
  "memory": {
    "quickSearch": {
      "disabled": "메모리 검색이 비활성화되었습니다",
      "noResults": "승인된 메모리 결과가 없습니다",
      "citationUnavailable": "인용을 사용할 수 없습니다"
    },
    "skills": {
      "disabled": "스킬이 비활성화되었습니다",
      "loadFailed": "스킬을 불러오지 못했습니다",
      "renderDropped": "스킬이 컨텍스트에서 생략되었습니다",
      "layerDiagnostics": "스킬 계층 진단",
      "enforced": "강제",
      "additive": "추가"
    }
  },
  "todos": {
    "title": "작업",
    "progress": "{{done}}/{{total}}",
    "collapse": "접기",
    "expand": "펼치기"
  }
}
