{
  "common": {
    "you": "나",
    "confirm": "확인",
    "cancel": "취소",
    "loading": "로딩 중...",
    "errorPrefix": "오류: ",
    "loadingClassroom": "강의실 불러오는 중...",
    "retry": "다시 시도",
    "close": "닫기"
  },
  "home": {
    "slogan": "멀티 에이전트 인터랙티브 교실에서 펼치는 생성형 학습",
    "greetingWithName": "안녕하세요, {{name}}!"
  },
  "toolbar": {
    "pdfParser": "파서",
    "pdfUpload": "PDF 업로드",
    "removePdf": "파일 제거",
    "documentExtractor": "추출기",
    "courseMaterialUpload": "강의 자료 업로드",
    "courseMaterialsSelected": "강의 자료 {{n}}개 선택됨",
    "courseMaterialMergeOrder": "강의 자료는 아래 표시된 순서대로 병합됩니다.",
    "removeCourseMaterial": "파일 제거",
    "webSearchOn": "사용 중",
    "webSearchOff": "클릭하여 사용",
    "webSearchDesc": "생성 전 최신 정보를 웹에서 검색합니다",
    "webSearchProvider": "검색 엔진",
    "webSearchNoProvider": "설정에서 검색 API 키를 구성하세요",
    "selectProvider": "제공업체 선택",
    "configureProvider": "모델 설정",
    "configureProviderHint": "강좌를 생성하려면 모델 제공업체를 하나 이상 설정하세요",
    "enterClassroom": "교실 입장",
    "advancedSettings": "고급 설정",
    "thinking": "추론",
    "thinkingBudget": "예산",
    "default": "기본",
    "on": "켜기",
    "off": "끄기",
    "auto": "자동",
    "dynamic": "동적",
    "ttsTitle": "텍스트 음성 변환",
    "ttsHint": "AI 선생님의 음성을 선택하세요",
    "ttsPreview": "미리 듣기",
    "ttsPreviewing": "재생 중...",
    "interactiveModeHint": "체험 중심 콘텐츠를 위해 인터랙티브 우선 모드를 사용하세요",
    "interactiveModeLabel": "인터랙티브 모드"
  },
  "export": {
    "pptx": "PPTX 내보내기",
    "resourcePack": "리소스 팩 내보내기",
    "resourcePackDesc": "PPTX + 인터랙티브 페이지",
    "exporting": "내보내는 중...",
    "exportSuccess": "내보내기 완료",
    "exportFailed": "내보내기 실패",
    "classroomZip": "교실 ZIP 내보내기",
    "classroomZipDesc": "강좌 구조 + 미디어 파일",
    "scriptMd": "대본 다운로드 (.md)",
    "scriptMdDesc": "Markdown으로 내레이션 텍스트",
    "script": "대본 다운로드",
    "scriptDocx": "대본 다운로드 (.docx)",
    "scriptDocxDesc": "DOCX 형식의 실제 Word 문서",
    "slideFallback": "슬라이드 {{order}}",
    "textOnly": "스크립트 내보내기",
    "mediaPending": "미디어 생성이 완료되기를 기다리는 중",
    "inlinePartial": "{{count}}개의 외부 에셋을 번들에 포함할 수 없어 오프라인에서 강좌가 올바르게 표시되지 않을 수 있습니다.",
    "video": "동영상 내보내기",
    "videoDesc": "독립형 Hyperframes 프로젝트(MP4로 렌더링 가능)",
    "videoNoScenes": "내보낼 장면이 없습니다.",
    "videoCompiling": "동영상 타임라인 컴파일 중...",
    "videoRendering": "슬라이드 렌더링 및 에셋 수집 중...",
    "videoPackaging": "동영상 프로젝트 패키징 중...",
    "videoSuccess": "동영상 프로젝트를 내보냈습니다",
    "videoFailed": "동영상 내보내기 실패",
    "videoWarnings": "{{assets}}개의 에셋이 누락되었고 내보내기 보고서에 {{diagnostics}}개의 문제가 있습니다.",
    "videoMp4Success": "동영상이 렌더링되었습니다",
    "videoServiceUnavailable": "렌더 서비스가 구성되지 않았습니다 — 로컬 렌더링용 프로젝트 ZIP을 다운로드했습니다.",
    "videoResolution": "해상도",
    "videoFps": "프레임 속도",
    "videoQuality": "품질",
    "videoQuality_draft": "초안",
    "videoQuality_standard": "표준",
    "videoQuality_high": "고품질",
    "videoProgress": "{{percent}}%",
    "videoProgressWithEta": "{{percent}}% · 약 {{remaining}} 남음",
    "videoEtaMinSec": "{{min}}분 {{sec}}초",
    "videoEtaSec": "{{sec}}초",
    "videoRenderMp4": "MP4 렌더링",
    "videoDownloadZip": "프로젝트 ZIP 다운로드",
    "videoServiceHint": "MP4 렌더링에는 렌더 서비스가 필요합니다. ZIP을 다운로드하여 로컬에서 렌더링하세요.",
    "videoBurnSubtitles": "자막 굽기",
    "videoBurnSubtitlesDesc": "끄면 자막 없는 깨끗한 영상을 내보내고, 자막 파일은 편집 프로그램에서 추가합니다.",
    "videoQuizCtaPrompt": "인터랙티브 퀴즈를 직접 체험해 보세요",
    "videoPblCtaPrompt": "프로젝트 기반 학습을 직접 체험해 보세요",
    "videoCtaVisit": "방문",
    "videoDownloadSubtitles": "자막 다운로드 (.srt)",
    "subtitlesCompiling": "자막 생성 중…",
    "subtitlesSuccess": "자막을 다운로드했습니다",
    "subtitlesEmpty": "자막으로 만들 내레이션이 없습니다",
    "subtitlesFailed": "자막 다운로드 실패",
    "noSlides": "내보낼 슬라이드가 없습니다",
    "noSlidesSkipped": "이 코스에 슬라이드가 없어 PPTX를 건너뛰었습니다",
    "nothingToExport": "내보낼 항목이 없습니다"
  },
  "import": {
    "classroom": "교실 가져오기",
    "pptx": "PPTX 가져오기",
    "parsing": "ZIP 파싱 중...",
    "parsingPptx": "PPTX 파싱 중...",
    "validating": "데이터 검증 중...",
    "writingMedia": "미디어 파일 저장 중...",
    "writingCourse": "강좌 데이터 저장 중...",
    "success": "교실을 성공적으로 가져왔습니다",
    "pptxSuccess": "PPTX 파싱 완료 (슬라이드 {{count}}개, 결과는 콘솔에서 확인)",
    "error": {
      "invalidZip": "유효하지 않은 파일입니다. 올바른 .maic.zip 파일을 선택하세요.",
      "invalidPptx": "PPTX 파싱에 실패했습니다. 파일이 유효한지 확인하세요.",
      "parserUnavailable": "PPTX 가져오기를 사용할 수 없습니다: 파서 번들이 배포되지 않았습니다. install/sync를 다시 실행하세요.",
      "invalidManifest": "유효하지 않은 교실 파일: manifest.json이 없거나 손상되었습니다.",
      "missingData": "유효하지 않은 교실 파일: 필수 강좌 데이터가 없습니다.",
      "storageFull": "가져오기 실패: 브라우저 저장 공간이 가득 찼습니다. 오래된 교실을 삭제해 보세요."
    }
  },
  "chat": {
    "lecture": "강의",
    "noConversations": "대화 없음",
    "startConversation": "아래에 메시지를 입력하여 채팅을 시작하세요",
    "noMessages": "아직 메시지가 없습니다",
    "ended": "종료됨",
    "unknown": "알 수 없음",
    "stopDiscussion": "토론 중단",
    "endQA": "Q&A 종료",
    "softClosing": "토론 계속하기",
    "error": {
      "emptyAgentResponses": "에이전트가 빈 응답을 반환하여 토론이 중단되었습니다. 다시 시도하거나 모델 설정을 확인하세요.",
      "streamInterrupted": "스트림이 예기치 않게 종료되어 토론이 완료되지 않았습니다. 다시 시도해 주세요."
    },
    "elementReference": {
      "button": "슬라이드 참조",
      "unavailable": "현재 PPT 슬라이드만 참조할 수 있습니다",
      "instruction": "슬라이드 요소를 클릭하세요 · Esc로 종료",
      "fallback": "기타 슬라이드 요소 ({{count}})",
      "clear": "슬라이드 참조 제거",
      "summary": {
        "noText": "텍스트 없음",
        "emptyContent": "콘텐츠 없음",
        "code": "코드",
        "line": "선",
        "imageMetadata": "이미지 (메타데이터만)",
        "videoMetadata": "비디오 (메타데이터만)",
        "audioMetadata": "오디오 (메타데이터만)"
      }
    },
    "tabs": {
      "lecture": "노트",
      "chat": "채팅"
    },
    "lectureNotes": {
      "empty": "강의 재생 후 여기에 노트가 표시됩니다",
      "emptyHint": "재생 버튼을 눌러 강의를 시작하세요",
      "pageLabel": "{{n}}페이지",
      "currentPage": "현재",
      "jumpToLine": "Jump to this line",
      "jumpUnavailable": "Jump unavailable for this line"
    },
    "badge": {
      "qa": "Q&A",
      "discussion": "토론",
      "lecture": "강의"
    }
  },
  "actions": {
    "names": {
      "spotlight": "스포트라이트",
      "laser": "레이저",
      "wb_open": "화이트보드 열기",
      "wb_draw_text": "화이트보드 텍스트",
      "wb_draw_shape": "화이트보드 도형",
      "wb_draw_chart": "화이트보드 차트",
      "wb_draw_latex": "화이트보드 수식",
      "wb_draw_table": "화이트보드 표",
      "wb_draw_line": "화이트보드 선",
      "wb_clear": "화이트보드 지우기",
      "wb_delete": "요소 삭제",
      "wb_close": "화이트보드 닫기",
      "discussion": "토론"
    },
    "status": {
      "inputStreaming": "대기 중",
      "inputAvailable": "실행 중",
      "outputAvailable": "완료",
      "outputError": "오류",
      "outputDenied": "거부됨",
      "running": "실행 중",
      "result": "완료",
      "error": "오류"
    }
  },
  "agentBar": {
    "readyToLearn": "함께 학습할 준비가 되셨나요?",
    "expandedTitle": "교실 역할 설정",
    "configTooltip": "클릭하여 교실 역할을 설정하세요",
    "voiceLabel": "음성",
    "voiceLoading": "로딩 중...",
    "voiceAutoAssign": "음성이 자동으로 배정됩니다",
    "searchVoice": "음성 검색",
    "noMatchingVoices": "일치하는 음성 없음",
    "noVoice": "음성 없음"
  },
  "proactiveCard": {
    "discussion": "토론",
    "join": "참여",
    "skip": "건너뛰기",
    "pause": "일시정지",
    "resume": "재개"
  },
  "voice": {
    "startListening": "음성 입력",
    "stopListening": "녹음 중단"
  },
  "stage": {
    "currentScene": "현재 장면",
    "generating": "생성 중...",
    "paused": "일시정지됨",
    "generationFailed": "생성 실패",
    "confirmSwitchTitle": "장면 전환",
    "confirmSwitchMessage": "현재 진행 중인 주제가 있습니다. 장면을 전환하면 현재 주제가 종료됩니다. 계속하시겠습니까?",
    "generatingNextPage": "장면을 생성 중입니다. 잠시 기다려 주세요...",
    "courseComplete": "강좌 완료",
    "fullscreen": "전체화면",
    "exitFullscreen": "전체화면 종료",
    "editCourse": "강좌 편집",
    "doneEditing": "편집 완료",
    "proModeDisabledHint": "이 페이지에서는 편집할 수 없습니다 — 코스 슬라이드를 열면 Pro 모드로 편집할 수 있습니다."
  },
  "edit": {
    "proMode": "프로 모드",
    "undo": "실행 취소",
    "redo": "다시 실행",
    "delete": "삭제",
    "title": "편집 중 · {{type}}",
    "unsupportedScene": "{{type}}은(는) 아직 편집할 수 없습니다",
    "readOnlyBadge": "{{type}} · 보기 전용",
    "sceneType": {
      "slide": "슬라이드",
      "quiz": "퀴즈",
      "interactive": "인터랙티브",
      "pbl": "PBL"
    },
    "text": {
      "toolbar": "텍스트 도구 모음",
      "label": "텍스트",
      "font": "글꼴",
      "fontDefault": "기본",
      "sizeUp": "크기 늘리기",
      "sizeDown": "크기 줄이기",
      "fontSize": "글꼴 크기",
      "bold": "굵게",
      "italic": "기울임꼴",
      "underline": "밑줄",
      "color": "텍스트 색상",
      "alignLeft": "왼쪽 정렬",
      "alignCenter": "가운데 정렬",
      "alignRight": "오른쪽 정렬",
      "bullet": "글머리 기호 목록",
      "colorHex": "색상 코드"
    },
    "line": {
      "toolbar": "선 도구 모음",
      "kind": "선 유형",
      "color": "선 색상",
      "width": "선 두께",
      "style": "선 스타일",
      "start": "시작점 스타일",
      "end": "끝점 스타일",
      "straight": "직선",
      "broken": "꺾은선",
      "broken2": "이중 꺾은선",
      "curve": "곡선",
      "cubic": "3차 곡선",
      "solid": "실선",
      "dashed": "파선",
      "dotted": "점선",
      "none": "없음",
      "arrow": "화살표",
      "dot": "점"
    },
    "insert": {
      "toolbar": "삽입 도구 모음",
      "textBox": "텍스트 상자",
      "line": "선",
      "linePresets": {
        "straight": "직선",
        "dashed": "점선",
        "arrow": "화살표 선",
        "dashedArrow": "점선 화살표",
        "dottedEnd": "끝점 원 선",
        "broken": "꺾은선",
        "doubleBroken": "이중 꺾은선",
        "curve": "곡선",
        "cubic": "3차 곡선"
      },
      "table": "표",
      "formula": "수식",
      "chart": "차트",
      "chartBar": "막대 차트",
      "chartLine": "꺾은선 차트",
      "chartPie": "원형 차트",
      "tableDimensions": "{{rows}} x {{columns}} 표",
      "dragToolbar": "삽입 도구 이동",
      "dragToolbarKeyboard": "삽입 도구 이동: Enter 또는 Space를 누른 다음 방향키로 이동",
      "collapseToolbar": "삽입 도구 접기",
      "expandToolbar": "삽입 도구 펼치기",
      "image": "이미지",
      "imageDrop": "이미지를 끌어다 놓거나 클릭하여 파일을 선택하세요",
      "imageOr": "또는 이미지 URL 붙여넣기",
      "imageUrlPlaceholder": "https://…",
      "imageInsert": "삽입",
      "video": "비디오",
      "videoDrop": "비디오를 끌어다 놓거나 클릭하여 파일을 선택하세요",
      "videoOr": "또는 비디오 URL 붙여넣기",
      "videoUrlPlaceholder": "https://…",
      "videoInsert": "삽입",
      "audio": "오디오",
      "audioDrop": "오디오를 끌어다 놓거나 클릭하여 파일을 선택하세요",
      "audioOr": "또는 오디오 URL 붙여넣기",
      "audioUrlPlaceholder": "https://…",
      "audioInsert": "삽입"
    },
    "asset": {
      "drop": "파일을 끌어다 놓거나 클릭하여 선택",
      "orUrl": "또는 파일 URL 붙여넣기",
      "urlPlaceholder": "https://…",
      "insert": "삽입",
      "invalidType": "지원하지 않는 파일 형식",
      "readFailed": "파일을 읽을 수 없습니다"
    },
    "latex": {
      "toolbar": "수식 도구 모음",
      "editFormula": "수식 편집",
      "dialog": "수식 편집기",
      "source": "LaTeX 소스",
      "preview": "미리 보기",
      "symbols": "기호",
      "presets": "미리 정의된 수식",
      "invalidSource": "LaTeX 소스가 올바르지 않습니다."
    },
    "video": {
      "toolbar": "비디오 도구 모음",
      "poster": "포스터 설정"
    },
    "audio": {
      "toolbar": "오디오 도구 모음",
      "preview": "오디오 미리 듣기",
      "pause": "미리 듣기 일시 중지",
      "loop": "반복 재생"
    },
    "table": {
      "doubleClickToEdit": "두 번 클릭하여 편집"
    },
    "nav": {
      "addSlide": "슬라이드 추가",
      "duplicate": "복제",
      "delete": "삭제",
      "deleted": "삭제됨",
      "undo": "실행 취소",
      "copySuffix": "(사본)",
      "untitledSlide": "제목 없는 슬라이드",
      "collapse": "패널 접기",
      "expand": "패널 펼치기",
      "dragHandle": "드래그하여 순서 변경",
      "deckLabel": "장면",
      "moreActions": "더 보기",
      "rename": "이름 바꾸기",
      "sceneIncomplete": "이 페이지의 내용이 미완성입니다",
      "addPage": "페이지 추가",
      "nextPage": "다음 페이지",
      "prevPage": "이전 페이지"
    },
    "cue": {
      "speech": "내레이션",
      "spotlight": "스포트라이트",
      "laser": "레이저",
      "whiteboardOpen": "화이트보드",
      "whiteboardText": "판서",
      "whiteboardShape": "도형",
      "whiteboardLatex": "수식",
      "whiteboardTable": "표",
      "action": "동작",
      "discussion": "토론"
    },
    "element": {
      "toolbar": "요소 도구 모음",
      "text": "텍스트",
      "image": "이미지",
      "shape": "도형",
      "line": "선",
      "chart": "차트",
      "table": "표",
      "latex": "수식",
      "video": "비디오",
      "audio": "오디오",
      "code": "코드"
    },
    "agent": {
      "expand": "AI 어시스턴트 펼치기",
      "collapse": "접기",
      "stopped": "중지됨",
      "emptyTitle": "무엇을 바꿀까요?",
      "emptyHint": "캔버스에서 이 슬라이드를 편집한 뒤, 내용에 맞는 내레이션을 AI가 다시 생성하도록 하세요.",
      "placeholder": "이 슬라이드에 대한 변경 사항을 설명하세요…",
      "stop": "생성 중지",
      "empty": {
        "lead": "이 페이지를 어떻게 바꿀지 알려주세요. 내용을 다시 만들고 내레이션도 맞춥니다.",
        "boundary": "세부 편집은 에디터에서, 슬라이드 추가 / 삭제 / 정렬은 왼쪽 내비에서.",
        "comingSoon": "더 많은 기능이 곧 추가됩니다."
      },
      "cap": {
        "content": {
          "label": "슬라이드 다시 생성",
          "examples": "“핵심 3가지로” “실생활 예시 추가”"
        },
        "narration": {
          "label": "내레이션 스크립트 다시 생성",
          "examples": "“좀 더 구어체로” “편집한 내용에 맞춰”"
        },
        "fixHtml": {
          "examples": "\"시작 버튼을 눌러도 반응이 없음\", \"모바일에서 패널이 겹침\"",
          "label": "페이지 버그 수정"
        },
        "elements": {
          "label": "요소 미세 조정",
          "examples": "“제목을 파란색으로 바꾸고 위로”, “이 그림을 작게”"
        }
      },
      "newConversation": "새 대화",
      "sessionHistory": "기록",
      "sessionUntitled": "제목 없는 대화",
      "sessionDelete": "삭제",
      "sessionEmpty": "대화 기록 없음",
      "reasoning": "추론 과정",
      "thought": "생각한 시간",
      "interactive": {
        "boundary": "페이지를 부분적으로만 수정하며, 페이지 전체를 다시 만들지 않습니다. 장면 전환은 왼쪽 내비게이션을 사용하세요.",
        "emptyTitle": "이 페이지에서 무엇을 수정할까요?",
        "lead": "이 인터랙티브 페이지의 버그(예: 눌러도 반응 없는 버튼)를 설명해 주세요. 해당 부분만 수정하고 나머지는 그대로 둡니다.",
        "placeholder": "이 인터랙티브 페이지의 버그를 설명하세요…"
      },
      "thinking": "생각 중…",
      "title": "AI로 편집"
    },
    "timeline": {
      "title": "내레이션 스크립트",
      "regenAllTts": "전체 음성 다시 생성",
      "voiceAll": "전체 음성",
      "counts": "내레이션 {{speech}}개 · 동작 {{cue}}개",
      "panLeft": "왼쪽으로 이동",
      "panRight": "오른쪽으로 이동",
      "collapseAxis": "축으로 접기",
      "expandTrack": "트랙 펼치기",
      "emptyHint": "위의 동작을 축으로 끌어 시작하거나, MAIC Agent가 내레이션을 생성하도록 하세요.",
      "speechPlaceholder": "이 내레이션을 입력하세요…",
      "reorder": "끌어서 순서 변경",
      "moveLeft": "왼쪽으로",
      "moveRight": "오른쪽으로",
      "pickElement": "요소 선택",
      "bound": "연결됨",
      "fieldAction": "동작",
      "fieldElement": "요소",
      "fieldContent": "내용",
      "addDiscussionExists": "장면당 토론은 하나만 가능합니다",
      "discussionTerminal": "끝",
      "discussionTerminalHint": "토론은 장면의 끝에 고정되며 장면당 하나만 허용됩니다",
      "discussionTopicPlaceholder": "토론 주제(필수)",
      "discussionPromptPlaceholder": "안내 프롬프트(선택)",
      "discussionAgent": "시작자",
      "discussionAgentUnset": "지정 안 함",
      "addAction": "동작 추가"
    },
    "picker": {
      "title": "동작 삽입",
      "speechDesc": "내레이션 말하기 (자동 음성 지원)",
      "spotlightDesc": "캔버스의 요소를 강조",
      "laserDesc": "레이저로 요소를 가리키기",
      "discussionDesc": "질문을 던지고 발표자를 지정"
    },
    "tts": {
      "cancelPreview": "미리듣기 취소",
      "preview": "미리듣기",
      "regenerate": "음성 다시 생성",
      "statusReady": "음성 있음",
      "statusNone": "음성 없음",
      "statusGenerating": "생성 중",
      "stopPreview": "미리듣기 중지",
      "statusError": "실패"
    },
    "pick": {
      "pickFor": "「{{label}}」에 사용할 요소 선택",
      "pickHint": "강조된 요소 또는 아래 목록을 클릭 · Esc 취소",
      "pageElements": "페이지 요소 · {{count}}",
      "expand": "펼치기",
      "collapse": "접기",
      "noElements": "이 슬라이드에는 지정할 수 있는 요소가 없습니다.",
      "bindHint": "캔버스에서 강조된 요소를 클릭하여 연결",
      "refCapHint": "한도에 도달했습니다. 하나를 해제해 교체하세요 · Esc로 종료",
      "refHint": "클릭해 추가하거나 해제 · Esc로 종료",
      "refLead": "요소 참조 중 · {{count}}/{{max}}"
    },
    "regen": {
      "title": "내레이션 다시 생성",
      "running": "생성 중…",
      "noActions": "동작이 생성되지 않음",
      "actionsCount": "동작 {{count}}개",
      "generating": "생성 중",
      "notGenerated": "생성 안 됨",
      "updated": "업데이트됨"
    },
    "regenScene": {
      "title": "슬라이드 다시 생성",
      "generating": "생성 중",
      "updated": "업데이트됨",
      "notGenerated": "생성 안 됨",
      "elementsCount": "요소 {{count}}개",
      "restore": "이전 상태로 복원",
      "restored": "복원됨",
      "resume": "다시 적용"
    },
    "contextMenu": {
      "horizontalAlignment": "가로 정렬",
      "verticalAlignment": "세로 정렬",
      "selectAll": "모두 선택",
      "copy": "복사",
      "cut": "잘라내기",
      "paste": "붙여넣기",
      "unlock": "잠금 해제",
      "lock": "잠금",
      "group": "그룹화",
      "ungroup": "그룹 해제",
      "bringForward": "앞으로 가져오기",
      "sendBackward": "뒤로 보내기",
      "alignTop": "위쪽 정렬",
      "alignMiddle": "세로 가운데 정렬",
      "alignBottom": "아래쪽 정렬"
    },
    "background": {
      "image": "이미지",
      "label": "배경",
      "solid": "단색",
      "color": "색상"
    },
    "image": {
      "toolbar": "이미지 도구 모음",
      "flipH": "좌우 반전",
      "flipV": "상하 반전",
      "replace": "이미지 교체",
      "crop": "이미지 자르기"
    },
    "common": {
      "cancel": "취소",
      "confirm": "확인"
    },
    "quiz": {
      "addOption": "선택지 추가",
      "addQuestion": "문항 추가",
      "analysisLabel": "해설",
      "analysisPlaceholder": "문항이 채점된 후 표시됩니다…",
      "commentPromptLabel": "채점 기준",
      "commentPromptPlaceholder": "이 주관식 답안을 어떻게 채점해야 하나요?",
      "deleteOption": "선택지 삭제",
      "deleteQuestion": "문항 삭제",
      "empty": "아직 문항이 없습니다",
      "emptyHint": "“문항 추가” 버튼으로 첫 문항을 만드세요.",
      "markCorrect": "정답으로 표시",
      "moveDown": "아래로 이동",
      "moveUp": "위로 이동",
      "optionPlaceholder": "선택지 내용",
      "optionsLabel": "선택지",
      "pointsLabel": "배점",
      "questionLabel": "문항",
      "questionPlaceholder": "문항을 입력하세요…",
      "reorder": "끌어서 순서 변경",
      "shortAnswerGradingNote": "주관식은 아래 기준에 따라 항상 AI가 채점합니다.",
      "typeLabel": "유형",
      "untitledQuestion": "제목 없는 문항",
      "hint": {
        "emptyOption": "문항 {{n}}: 선택지 내용이 비어 있습니다",
        "emptyText": "문항 {{n}}: 문항 내용을 입력하세요",
        "fewOptions": "문항 {{n}}: 선택지를 두 개 이상 추가하세요",
        "noCorrect": "문항 {{n}}: 정답을 표시하세요"
      },
      "type": {
        "multiple": "복수 선택",
        "short_answer": "주관식",
        "single": "단일 선택"
      }
    },
    "zorder": {
      "toFront": "맨 앞으로 가져오기",
      "toBack": "맨 뒤로 보내기"
    },
    "readCard": {
      "title": "페이지 내용 읽기",
      "reading": "읽는 중",
      "done": "읽음",
      "failed": "읽지 못함"
    },
    "fixHtml": {
      "editsCount": "수정 {{count}}건",
      "fixed": "수정됨",
      "fixing": "수정 중",
      "notFixed": "수정 안 됨",
      "title": "인터랙티브 페이지 수정"
    },
    "editElements": {
      "title": "요소 편집",
      "editing": "편집 중",
      "applied": "적용됨",
      "notApplied": "미적용",
      "applyFailed": "편집기에서 요소 편집을 적용하지 못했습니다. 변경된 내용이 없습니다.",
      "applyPartiallyFailed": "하나 이상의 요소 편집을 적용하지 못했습니다. 다른 편집은 적용되었을 수 있습니다."
    },
    "roster": {
      "title": "수업 구성원",
      "count": "{{count}}명",
      "editHint": "구성원을 클릭해 편집",
      "personaLabel": "페르소나",
      "personaPlaceholder": "역할의 성격, 수업 스타일, 과제를 설명하세요…",
      "noPersona": "페르소나 없음",
      "unnamed": "제목 없음",
      "teacherBadge": "주강사",
      "moveUp": "위로 이동",
      "moveDown": "아래로 이동",
      "removeFromClass": "수업에서 제거",
      "aiClassmates": "AI 반 친구 · {{count}}",
      "addRole": "역할 추가",
      "shortTitle": "구성원"
    },
    "elementRef": {
      "remove": "移除引用 {{label}}",
      "counts": "참조 {{count}}/{{max}}",
      "exitPicking": "선택 완료",
      "startPicking": "요소 참조"
    },
    "dock": {
      "elementRefHint": "요소 참조 — 다음 메시지와 함께 보낼 요소 선택",
      "globalTools": "전역 도구"
    }
  },
  "classroomComplete": {
    "title": "강좌 완료",
    "trailLabels": {
      "slide": "페이지",
      "quiz": "퀴즈",
      "interactive": "인터랙티브",
      "pbl": "프로젝트"
    },
    "quizScoreLabel": "{{total}}문제 중 {{correct}}개 정답",
    "encouragement": {
      "high": "훌륭합니다 — 완벽하게 해내셨어요!",
      "mid": "잘하셨어요 — 계속 이대로 나아가세요.",
      "low": "좋은 시작입니다 — 복습하고 다시 도전해 보세요."
    }
  },
  "whiteboard": {
    "title": "인터랙티브 화이트보드",
    "open": "화이트보드 열기",
    "clear": "화이트보드 지우기",
    "minimize": "화이트보드 최소화",
    "ready": "화이트보드가 준비되었습니다",
    "readyHint": "AI가 요소를 추가하면 여기에 표시됩니다",
    "clearSuccess": "화이트보드를 성공적으로 지웠습니다",
    "clearError": "화이트보드 지우기 실패: ",
    "resetView": "보기 초기화",
    "restoreError": "화이트보드 복원 실패: ",
    "history": "기록",
    "restore": "복원",
    "noHistory": "아직 기록이 없습니다",
    "restored": "화이트보드가 복원되었습니다",
    "elementCount": "요소 {{count}}개"
  },
  "quiz": {
    "title": "퀴즈",
    "subtitle": "실력을 확인해 보세요",
    "questionsCount": "문제",
    "totalPrefix": "",
    "pointsSuffix": "점",
    "startQuiz": "퀴즈 시작",
    "multipleChoiceHint": "(복수 선택 — 정답을 모두 고르세요)",
    "inputPlaceholder": "여기에 답을 입력하세요...",
    "charCount": "자",
    "yourAnswer": "내 답변:",
    "notAnswered": "미응답",
    "aiComment": "AI 피드백",
    "singleChoice": "단일 선택",
    "multipleChoice": "복수 선택",
    "shortAnswer": "단답형",
    "analysis": "분석: ",
    "excellent": "훌륭해요!",
    "keepGoing": "계속 해보세요!",
    "needsReview": "복습이 필요해요",
    "correct": "정답",
    "incorrect": "오답",
    "answering": "진행 중",
    "submitAnswers": "답변 제출",
    "aiGrading": "AI가 채점 중...",
    "aiGradingWait": "잠시만 기다려주세요, 답변을 분석하고 있어요",
    "quizReport": "퀴즈 결과",
    "retry": "다시 풀기"
  },
  "roundtable": {
    "teacher": "선생님",
    "you": "나",
    "inputPlaceholder": "메시지를 입력하세요...",
    "listening": "듣는 중...",
    "processing": "처리 중...",
    "noSpeechDetected": "음성이 감지되지 않았습니다. 다시 시도해주세요",
    "discussionEnded": "토론이 종료되었습니다",
    "qaEnded": "Q&A가 종료되었습니다",
    "softClosing": "토론 계속하기",
    "thinking": "생각 중",
    "yourTurn": "내 차례",
    "stopDiscussion": "토론 중단",
    "autoPlay": "자동 재생",
    "autoPlayOff": "자동 재생 끄기",
    "speed": "속도",
    "previousLine": "Previous line",
    "nextLine": "Next line",
    "lineProgress": "Line {{current}} / {{total}}",
    "voiceInput": "음성 입력",
    "voiceInputDisabled": "음성 입력 비활성화됨",
    "textInput": "텍스트 입력",
    "stopRecording": "녹음 중지",
    "startRecording": "녹음 시작"
  },
  "pbl": {
    "emptyProject": "PBL 프로젝트가 아직 생성되지 않았습니다. 강좌 생성을 통해 만들어주세요.",
    "v2": {
      "hero": {
        "title": "Project-Based Learning",
        "stage": "Stages",
        "task": "Tasks",
        "tutor": "Tutor",
        "greetingBanner": "Your tutor is saying hello…",
        "startProject": "Start Project",
        "continueProject": "Continue Project",
        "resetProgress": "Reset learning progress",
        "resetConfirmTitle": "Reset learning progress?",
        "resetConfirmDescription": "This clears all progress for this project — chat history, submissions, and stage status — and you'll start over from the beginning. This can't be undone.",
        "resetConfirmConfirm": "Reset",
        "resetConfirmCancel": "Cancel",
        "startHint": "Click to enter the workspace. {{name}} will guide you through each stage.",
        "startError": "Unable to start: {{error}}",
        "youWillLearn": "What you'll gain",
        "instructorTagline": "Guides you through the whole project",
        "scenarioCharacter": "Role-play character",
        "scenarioCharacterTagline": "The character you'll interact with in the scenario",
        "scenarioFlow": "Flow",
        "close": "Close"
      },
      "sidebar": {
        "title": "Project Roadmap",
        "summary": "{{completed}} / {{total}} tasks · {{stages}} stages",
        "enterScenario": "Enter the scene",
        "advanceScene": "Advance the scene",
        "continueScene": "Next stage",
        "stagePrep": "Prep",
        "stageRoleplay": "Simulation",
        "stageWrapup": "Debrief",
        "completeAct": "Finish this act",
        "completeTask": "Done"
      },
      "workspace": {
        "progressLabel": "Progress",
        "resizeSidebar": "Resize sidebar and chat",
        "resizeSubmission": "Resize chat and submission panel",
        "enterFullscreen": "Expand to fullscreen workspace",
        "exitFullscreen": "Exit fullscreen workspace",
        "exitNativeFullscreen": "Exit fullscreen",
        "returnToHero": "Back to project overview",
        "breadcrumbOverview": "Overview",
        "breadcrumbCurrent": "Workspace"
      },
      "chat": {
        "placeholder": "Chat with {{name}} about your progress...",
        "placeholderCompleted": "Project complete. Check out your report.",
        "send": "Send",
        "voiceInput": "Voice input",
        "keyboardHint": "Enter to send · Shift+Enter for newline",
        "readingSubmission": "Reading submission…",
        "generatingMilestoneFeedback": "Generating milestone feedback…",
        "generatingFinalEval": "Generating final evaluation…",
        "readingSubmissionWithTitle": "Reading latest submission for \"{{title}}\"…",
        "evaluatingTask": "{{name}} · Reviewing task",
        "evaluatingFinal": "{{name}} · Final evaluation",
        "narrating": "Setting the scene…",
        "choosePrompt": "Pick an option",
        "choiceOrType": "Pick one, or type your own…",
        "suggestionsToggle": "Need ideas? See some ways to respond",
        "guidancePointer": "Stuck? Check this act's goal and tips in the panel on the right.",
        "roleplayHistoryTitle": "Role-play history",
        "coachHint": "Coach tip",
        "thinking": "{{name}} · Thinking",
        "typing": "{{name}} · Typing…",
        "submitted": "Work submitted",
        "evaluatingSubmission": "Evaluating your submission…",
        "evaluatingSubmissionDetail": "Task: \"{{title}}\". Feedback on this submission will appear here once evaluation is complete.",
        "milestoneFeedbackPending": "The milestone feedback will appear once ready.",
        "emptyChat": "No messages yet.",
        "emptyChatHint": "Your project walkthrough with {{name}} will start here.",
        "continueError": "Unable to continue: {{error}}",
        "stillTyping": "Still typing",
        "handoverHint": "Click \"Continue to Next Stage\" to keep going."
      },
      "scene": {
        "expand": "Expand",
        "collapse": "Collapse",
        "greetHint": "Tap to say hi",
        "label": "The scene"
      },
      "milestoneCard": {
        "title": "Milestone Review",
        "youLearned": "What you learned",
        "nextStage": "Next stage:",
        "continueHint": "Click Continue to enter the next stage.",
        "alreadyEntered": "Next stage entered",
        "continueToNext": "Continue to Next Stage",
        "projectAlmostDone": "🎉 Project almost done — awaiting completion report"
      },
      "taskEvalCard": {
        "title": "Submission Feedback",
        "strengths": "What went well",
        "improvements": "Next steps"
      },
      "briefing": {
        "intro": "The premise introduced during prep — kept here so you can revisit it anytime in the scene.",
        "tablistLabel": "Right panel tabs",
        "submissionTab": "Submit",
        "briefingTab": "Briefing",
        "setting": "Setting",
        "learnerRole": "Your role",
        "goal": "Goal",
        "rules": "Rules",
        "cast": "Cast",
        "identity": "Identity",
        "situation": "Situation"
      },
      "submission": {
        "textSubmission": "Text submission",
        "fileTooLarge": "File exceeds 5 MB limit. Try splitting or compressing.",
        "contentRequired": "Content cannot be empty",
        "readFileFailed": "Failed to read file: {{error}}",
        "parsingPdf": "Parsing PDF…",
        "parsePdfFailed": "Failed to parse PDF: {{error}}",
        "pdfNoText": "No extractable text found in this PDF.",
        "imageUploadFailed": "Failed to upload image: {{error}}",
        "imageTooLargeNoStorage": "Image too large to attach without storage configured (max 2 MB locally).",
        "imageNeedsCaptionNoVision": "The current model can't read images. Add a text description of the image before submitting, or switch to a vision-capable model in Settings.",
        "unsupportedFileType": "Unsupported file type. Only text files (.txt, .md, .csv, .json, .py, …) and PDF are accepted.",
        "pasteTab": "Paste text / image",
        "uploadTab": "Upload file",
        "pastePlaceholder": "Paste your code, document, answer — or an image / screenshot — here…",
        "uploadPlaceholder": "Uploaded content will appear here. Edit before submitting…",
        "imageCaptionPlaceholder": "Add an optional caption for this image…",
        "imageSelectedReplace": "Image selected · click to replace",
        "removeImage": "Remove image",
        "processing": "Processing…",
        "cancelProcessingConfirm": "A file is still being processed. Cancel and discard this upload?",
        "currentTask": "Current Task",
        "hints": "Hints",
        "submitOutput": "Submit",
        "evaluating": "Evaluating submission…",
        "lockedWhileStreaming": "The instructor is replying — please wait before submitting.",
        "evalFailed": "Evaluation failed: {{error}}",
        "submittedCount": "{{count}} submitted",
        "submissionHistory": "Submission History",
        "fromTask": "Task: {{title}}",
        "download": "Download",
        "viewSubmission": "View submission",
        "noActiveTask": "No active task.",
        "canceling": "Cancel",
        "submitting": "Submitting…",
        "selectFileHint": "Choose a file · Max 5 MB · Text, PDF or image",
        "modalTitle": "Submit your work",
        "modalTaskLabel": "Task: {{title}}",
        "fileRead": "Read: {{filename}} · {{size}} KB",
        "submittedBadge": "Submitted ({{count}})",
        "receiptFile": "File: {{filename}}",
        "receiptTemplate": "Submitted work for this task ({{label}})."
      },
      "agentTabs": {
        "noAgent": "No AI agent configured for this project."
      },
      "completion": {
        "noWhatsNext": "The final evaluation hasn't been written yet.",
        "backToWorkspace": "Back to Workspace",
        "completionCta": "View Report",
        "title": "Completion Report",
        "whatYouBuilt": "What you built",
        "whatYouLearned": "What you learned",
        "whatsNext": "What's next",
        "noDataFallback": "Not yet written",
        "stageReview": "Stage Reviews",
        "summary": "You completed {{completed}} of {{total}} tasks across {{stages}} stages.",
        "statConcepts": "Concepts mastered",
        "statTurns": "Messages exchanged",
        "statScope": "Stages · Tasks",
        "statDuration": "Time spent",
        "statSubmissions": "Work submitted",
        "coreStageBadge": "Core",
        "conceptsInStageLabel": "Concepts:",
        "submissionsInStage": "Submitted {{count}} piece(s) of work",
        "coreConceptGrasp": "Core concept \"{{concept}}\" — {{quality}}",
        "stageNoData": "No recorded output in this stage.",
        "scenario": {
          "summary": "You completed all {{acts}} acts of this scenario. Here's how the role-play went.",
          "whatYouDidWell": "What you did well",
          "skillsPracticed": "Skills you practised",
          "statGoals": "Goals met",
          "statActs": "Acts completed",
          "goalReviewTitle": "Act-by-act review",
          "goalReviewHint": "This scenario set a few key goals for each act. Here's a look back at how your conversation actually went — you met {{achieved}} of {{total}} this time.",
          "goalListTitle": "What each act asked of you",
          "goalListHint": "This scenario set a few key goals for each act. Here's a look back at what each act asked you to do.",
          "goalAchieved": "achieved",
          "goalPartial": "partly done",
          "goalMissed": "not done",
          "statGoodDecisions": "Strong choices",
          "statScore": "Decision score",
          "statBeats": "Acts completed",
          "decisionReviewTitle": "Decision review",
          "good": "strong",
          "ok": "okay",
          "poor": "to improve",
          "decisionScore": "Decision score {{score}}",
          "castLabel": "You interacted with: {{names}}"
        },
        "highlightsTitle": "Highlights",
        "highlight": {
          "independence": "You demonstrated {{unlocks}}/{{total}} concepts on your own — no prompting needed. Solid understanding.",
          "resilience": "In \"{{title}}\" you overcame {{errors}} errors, tackling each one — real grit.",
          "resilienceGeneral": "You overcame {{errors}} errors, tackling each one — real grit.",
          "completion": "You completed every task. Steady progress all the way through."
        },
        "synthesisQuality": {
          "strong": "Strong understanding ✅",
          "ok": "Good grasp 👍",
          "weak": "Room to grow 💪"
        },
        "durationMinutes": "{{m}} min",
        "durationHours": "{{h}} hr",
        "durationHoursMinutes": "{{h}} hr {{m}} min"
      },
      "completionCard": {
        "title": "Project Complete · Completion",
        "subtitle": "Congratulations! You finished the entire project.",
        "description": "Based on your performance data (time spent, conversations, error recovery, concepts unlocked…), we have generated a completion report showing what you built, what you learned, and where to go next."
      }
    }
  },
  "share": {
    "notReady": "생성이 완료된 후 이용 가능합니다"
  },
  "classroom": {
    "recentClassrooms": "최근",
    "today": "오늘",
    "yesterday": "어제",
    "daysAgo": "일 전",
    "slides": "슬라이드",
    "nameCopied": "이름이 복사되었습니다",
    "deleteConfirmTitle": "삭제 확인",
    "delete": "삭제",
    "rename": "이름 변경",
    "renamePlaceholder": "교실 이름을 입력하세요",
    "renameFailed": "교실 이름 변경에 실패했습니다",
    "searchPlaceholder": "강좌 검색...",
    "searchAriaLabel": "강좌 검색",
    "clearSearch": "지우기",
    "searchEmpty": "검색 결과에 해당하는 강좌가 없습니다",
    "newFolderTitle": "새 폴더",
    "newFolderDesc": "주제별로 강의를 정리하여 접근성을 높입니다.",
    "newFolderInline": "새 폴더",
    "folderNameLabel": "폴더 이름",
    "folderNamePlaceholder": "예: 수학, 영어, 전공 과목",
    "folderNameHint": "전각/반각 모두 가능. 공백도 포함됩니다.",
    "folderNameExists": "같은 이름의 폴더가 이미 있습니다.",
    "folderCountLimit": "폴더 수 한도에 도달했습니다.",
    "folderWidth": "너비 {{width}}/{{max}}",
    "folderCreate": "만들기",
    "folderBadge": "폴더",
    "folderCourseCountUnit": "개 강의",
    "deleteFolderTitle": "폴더 \"{{name}}\" 삭제",
    "deleteFolderEmptyDesc": "이 폴더는 비어 있습니다. 삭제 후 복구할 수 없습니다.",
    "deleteFolderUngroupDesc": "강의는 «내 강의»에 유지되며, 미분류로 변경됩니다.",
    "moveToFolder": "폴더로 이동",
    "moveToFolderLabel": "폴더로 이동",
    "ungrouped": "미분류",
    "searchResults": "검색 결과",
    "folderCreateFailed": "폴더 만들기에 실패했습니다",
    "folderRenameFailed": "폴더 이름 변경에 실패했습니다",
    "folderDeleteFailed": "폴더 삭제에 실패했습니다",
    "moveFailed": "강의 이동에 실패했습니다",
    "emptyFolderHint": "이 폴더가 비어 있습니다",
    "emptyLibraryHint": "아직 강의가 없습니다. 위에서 만들거나 강의를 가져오세요.",
    "folderNameEmpty": "폴더 이름은 비워둘 수 없습니다",
    "deleteFolderOnly": "폴더만 삭제",
    "deleteFolderAndCourses": "폴더와 강의 {{count}}개 삭제",
    "deleteFolderConfirmRemove": "폴더와 강의(채팅 기록 포함)가 삭제됩니다.",
    "deleteFolderAndCourses_other": "폴더와 강의 {{count}}개 삭제",
    "notFound": "강의를 찾을 수 없습니다",
    "notFoundDesc": "해당 강의가 존재하지 않거나 이미 삭제되었습니다.",
    "backToHome": "홈으로 돌아가기"
  },
  "upload": {
    "pdfSizeLimit": "최대 50MB PDF 파일을 지원합니다",
    "courseMaterialSizeLimit": "문서, 슬라이드, 스프레드시트, 이미지, 텍스트 — 최대 50MB (지원 형식은 선택한 파서에 따라 다름)",
    "generateFailed": "교실 생성에 실패했습니다. 다시 시도해주세요",
    "requirementPlaceholder": "학습하고 싶은 내용을 자유롭게 입력하세요, 예:\n\"파이썬을 30분 만에 처음부터 가르쳐주세요\"\n\"칠판에 푸리에 변환을 설명해주세요\"\n\"보드게임 Avalon 하는 방법\"",
    "requirementRequired": "강좌 요구사항을 입력해주세요",
    "fileTooLarge": "파일이 너무 큽니다. 50MB 미만의 파일을 선택해주세요",
    "courseMaterialCountLimit": "강의 자료 파일은 최대 5개까지 업로드할 수 있습니다",
    "courseMaterialTotalSizeLimit": "강의 자료 전체 크기는 150MB 미만이어야 합니다",
    "unsupportedCourseMaterial": "현재 파서가 이 형식을 지원하지 않습니다. 파서를 변경하거나 다른 파일을 선택하세요."
  },
  "generation": {
    "pdfLoadFailed": "PDF 파일 불러오기에 실패했습니다. 다시 시도해주세요",
    "pdfParseFailed": "PDF 파싱에 실패했습니다",
    "analyzingCourseMaterial": "문서 분석 중",
    "analyzingCourseMaterialDesc": "문서 구조와 내용을 추출하고 있어요...",
    "courseMaterialLoadFailed": "강의 자료를 불러오지 못했습니다. 다시 시도해주세요",
    "courseMaterialParseFailed": "강의 자료 파싱에 실패했습니다",
    "streamNotReadable": "생성 스트림을 읽을 수 없습니다",
    "generatingOutlines": "강좌 개요 작성 중",
    "generatingOutlinesDesc": "학습 경로를 구성하고 있어요...",
    "generatingSlideContent": "페이지 내용 생성 중",
    "generatingSlideContentDesc": "슬라이드, 퀴즈, 인터랙티브 콘텐츠를 만들고 있어요...",
    "generatingActions": "수업 액션 생성 중",
    "generatingActionsDesc": "내레이션, 하이라이트, 인터랙션을 구성하고 있어요...",
    "generationComplete": "생성 완료!",
    "generationFailed": "생성에 실패했습니다",
    "speechFailed": "음성 생성에 실패했습니다",
    "retryScene": "다시 시도",
    "retryingScene": "재생성 중...",
    "backToHome": "홈으로 돌아가기",
    "sessionNotFound": "세션을 찾을 수 없습니다",
    "sessionNotFoundDesc": "생성 프로세스를 시작하려면 강좌 요구사항을 입력해주세요.",
    "goBackAndRetry": "돌아가서 다시 시도",
    "classroomReady": "맞춤형 AI 학습 환경이 성공적으로 생성되었습니다.",
    "aiWorking": "AI 에이전트 작동 중...",
    "textTruncated": "문서 텍스트가 길어 처음 {{n}}자만 사용하여 생성합니다",
    "imageTruncated": "{{total}}개의 이미지가 발견되었으나 {{max}}개 제한을 초과했습니다. 초과 이미지는 텍스트 설명으로 대체됩니다",
    "agentGeneration": "교실 역할 생성 중",
    "agentGenerationDesc": "강좌 내용을 바탕으로 역할을 생성하고 있어요...",
    "agentRevealTitle": "교실 역할 소개",
    "viewAgents": "역할 보기",
    "continue": "계속",
    "outlineRetrying": "개요 생성에 문제가 발생하여 재시도 중...",
    "outlineEmptyResponse": "모델이 유효한 개요를 반환하지 않았습니다. 모델 설정을 확인하고 다시 시도해주세요",
    "outlineGenerateFailed": "개요 생성에 실패했습니다. 잠시 후 다시 시도해주세요",
    "sceneGenerateFailed": "장면 생성에 실패했습니다. 잠시 후 다시 시도해주세요",
    "sceneGenerateAuthFailed": "모델 제공자가 현재 인증 정보를 거부해 장면 생성에 실패했습니다. 모델 설정을 확인해주세요.",
    "sceneGenerateRateLimited": "장면 생성 요청이 속도 제한에 걸렸습니다. 잠시 후 다시 시도해주세요.",
    "sceneGenerateProviderUnavailable": "모델 제공자를 일시적으로 사용할 수 없습니다. 잠시 후 다시 시도해주세요.",
    "sceneGenerateInvalidResponse": "모델이 유효한 장면 콘텐츠를 반환하지 않았습니다. 다른 모델을 사용하거나 강좌 요구사항을 조정해주세요.",
    "reviewOutlineTitle": "개요 검토",
    "reviewOutlineDesc": "내용 생성 전에 장면을 편집, 순서 변경, 삭제 또는 추가할 수 있습니다.",
    "reviewOutlineAutoContinue": "개요를 검토하지 않으면 생성이 자동으로 계속됩니다.",
    "outlineEditorTitle": "장면 개요",
    "outlineEditorSummary": "총 {{count}}개 장면. 생성 시작 전에 편집, 추가, 삭제 또는 순서 변경이 가능합니다.",
    "addFirstScene": "첫 번째 장면 추가",
    "noOutlines": "아직 장면 개요가 없습니다",
    "sceneTitlePlaceholder": "장면 제목",
    "sceneTypeSlide": "슬라이드",
    "sceneTypeQuiz": "퀴즈",
    "sceneTypeInteractive": "인터랙티브",
    "sceneTypePbl": "PBL",
    "sceneDescriptionPlaceholder": "이 장면의 목적과 내용을 간략히 설명하세요",
    "quizQuestionCount": "문제 수",
    "quizDifficulty": "난이도",
    "quizType": "문제 유형",
    "quizDifficultyEasy": "쉬움",
    "quizDifficultyMedium": "보통",
    "quizDifficultyHard": "어려움",
    "quizTypeSingle": "단일 선택",
    "quizTypeMultiple": "복수 선택",
    "quizTypeText": "단답형",
    "alwaysReviewOutlines": "생성 전 항상 개요 검토",
    "outlineEditorEyebrow": "AI 생성 개요",
    "outlineEditorStreamingProgress": "스트리밍 중 · {{count}}개 장면 준비됨",
    "outlineEditorStreamingWaiting": "첫 번째 장면을 기다리는 중…",
    "outlineEditorWaitingConfirm": "개요를 기다리는 중…",
    "outlineExpandHint": "탭하여 검토",
    "reviewOutlineStreamingDesc": "개요가 아직 스트리밍 중입니다. 완료되면 편집할 수 있습니다.",
    "addKeyPoint": "핵심 포인트 추가",
    "removeKeyPoint": "핵심 포인트 삭제",
    "insertSceneHere": "여기에 장면 삽입",
    "deleteSceneConfirm": "이 장면을 삭제할까요?",
    "deleteSceneConfirmDesc": "이 장면과 핵심 포인트가 개요에서 삭제됩니다.",
    "deleteSceneConfirmAction": "삭제",
    "collapseEditor": "접기",
    "quizConfigSummary": "{{count}}문제",
    "interactiveWidgetKind": "위젯 종류",
    "widgetSimulation": "시뮬레이션",
    "widgetDiagram": "다이어그램",
    "widgetCode": "코드",
    "widgetGame": "게임",
    "widgetVisualization3d": "3D",
    "interactiveConcept": "개념",
    "interactiveConceptPlaceholder": "탐구할 개념",
    "pblConfigSummary": "프로젝트",
    "pblSubtype": "PBL 유형",
    "pblSubtypeProject": "프로젝트",
    "pblSubtypeScenario": "상황 시뮬레이션",
    "pblProjectTopic": "프로젝트 주제",
    "pblProjectTopicPlaceholder": "프로젝트 주제",
    "pblProjectDescription": "설명",
    "pblProjectDescriptionPlaceholder": "학생이 만들 결과물",
    "pblScenarioBrief": "상황 개요",
    "pblScenarioBriefPlaceholder": "상황, 인물, 연습 목표",
    "pblTargetSkills": "목표 역량",
    "pblAddSkill": "역량 추가",
    "widgetProceduralSkill": "절차 기술",
    "removeSkill": "역량 제거",
    "dragSceneHint": "드래그하여 순서 변경, 또는 포커스 후 Ctrl/⌘ + ↑ / ↓ 키 사용",
    "deleteScene": "장면 삭제",
    "backToRequirements": "요구사항으로 돌아가기",
    "confirmAndGenerateCourse": "확인 및 강좌 생성",
    "generatingInProgress": "생성 중...",
    "webSearching": "웹 검색",
    "webSearchingDesc": "최신 정보를 웹에서 검색하고 있어요",
    "webSearchFailed": "웹 검색에 실패했습니다",
    "outlinesReadyCount": "{{ready}} / {{total}}개 섹션 준비됨",
    "jumpToBlankTitle": "제목이 필요한 섹션으로 이동",
    "analyzingMediaMaterial": "오디오/비디오 분석 중"
  },
  "settings": {
    "title": "설정",
    "description": "앱 설정 구성",
    "language": "언어",
    "languageDesc": "인터페이스 언어 선택",
    "theme": "테마",
    "themeDesc": "테마 모드 선택 (라이트/다크/시스템)",
    "themeOptions": {
      "light": "라이트",
      "dark": "다크",
      "system": "시스템"
    },
    "apiKey": "API 키",
    "apiKeyDesc": "API 키를 설정하세요",
    "apiBaseUrl": "API 엔드포인트 URL",
    "apiBaseUrlDesc": "API 엔드포인트 URL을 설정하세요",
    "apiKeyRequired": "API 키는 비워둘 수 없습니다",
    "model": "모델 설정",
    "modelDesc": "AI 모델을 설정하세요",
    "modelPlaceholder": "모델 이름을 입력하거나 선택하세요",
    "ttsModel": "TTS 모델",
    "ttsModelDesc": "TTS 모델을 설정하세요",
    "ttsModelPlaceholder": "TTS 모델 이름을 입력하거나 선택하세요",
    "ttsModelOptions": {
      "openaiTts": "OpenAI TTS",
      "azureTts": "Azure TTS"
    },
    "availableModels": "사용 가능한 모델",
    "modelSelectedViaVoice": "모델은 음성 선택으로 결정됩니다",
    "testConnection": "연결 테스트",
    "testConnectionDesc": "현재 API 설정이 사용 가능한지 테스트합니다",
    "testing": "테스트 중...",
    "agentSettings": "에이전트 설정",
    "agentSettingsDesc": "대화에 참여할 에이전트를 선택하세요. 1개 선택 시 단일 에이전트 모드, 여러 개 선택 시 멀티 에이전트 협업 모드로 동작합니다.",
    "agentMode": "에이전트 모드",
    "agentModePreset": "프리셋",
    "agentModeAuto": "자동 생성",
    "agentModeAutoDesc": "AI가 적절한 역할을 자동으로 생성합니다",
    "autoAgentCount": "에이전트 수",
    "autoAgentCountDesc": "자동 생성할 에이전트 수 (선생님 포함)",
    "atLeastOneAgent": "에이전트를 최소 1개 이상 선택하세요",
    "singleAgentMode": "단일 에이전트 모드",
    "directAnswer": "직접 답변",
    "multiAgentMode": "멀티 에이전트 모드",
    "agentsCollaborating": "협업 토론",
    "agentsCollaboratingCount": "{{count}}개 에이전트가 협업 토론에 참여 중입니다",
    "priority": "우선순위",
    "actions": "액션",
    "actionCount": "{{count}}개 액션",
    "selectedAgent": "선택된 에이전트",
    "selectedAgents": "선택된 에이전트",
    "required": "필수",
    "agentNames": {
      "default-1": "AI 선생님",
      "default-2": "AI 보조 선생님",
      "default-3": "분위기 메이커",
      "default-4": "호기심 왕",
      "default-5": "노트 필기왕",
      "default-6": "깊은 생각가"
    },
    "agentRoles": {
      "teacher": "선생님",
      "assistant": "보조 선생님",
      "student": "학생"
    },
    "agentDescriptions": {
      "default-1": "명확하고 체계적인 설명으로 수업을 이끄는 주 선생님",
      "default-2": "학습을 돕고 핵심 내용을 명확히 정리해 드립니다",
      "default-3": "교실에 유머와 활기를 불어넣습니다",
      "default-4": "항상 왜, 어떻게를 묻는 호기심 가득한 학생",
      "default-5": "수업 내용을 성실하게 기록하고 정리합니다",
      "default-6": "주제의 본질을 깊이 탐구하고 사고합니다"
    },
    "close": "닫기",
    "save": "저장",
    "providers": "LLM",
    "addProviderDescription": "사용 가능한 AI 모델을 확장하기 위해 사용자 지정 모델 제공업체를 추가하세요",
    "providerNames": {
      "openai": "OpenAI",
      "azure": "Azure OpenAI",
      "anthropic": "Claude",
      "google": "Gemini",
      "bedrock": "Amazon Bedrock",
      "deepseek": "DeepSeek",
      "qwen": "Qwen",
      "kimi": "Kimi",
      "minimax": "MiniMax",
      "glm": "GLM",
      "siliconflow": "SiliconFlow",
      "doubao": "Doubao",
      "openrouter": "OpenRouter",
      "grok": "Grok",
      "tencent-hunyuan": "Tencent Hunyuan",
      "xiaomi": "Xiaomi MiMo",
      "lemonade": "Lemonade (로컬)",
      "ollama": "Ollama (로컬)",
      "tavily": "Tavily",
      "bocha": "Bocha",
      "brave": "Brave Search",
      "baidu": "Baidu",
      "claude": "Claude",
      "searxng": "SearXNG"
    },
    "providerTypes": {
      "openai": "OpenAI 프로토콜",
      "azure": "Azure OpenAI",
      "anthropic": "Claude 프로토콜",
      "google": "Gemini 프로토콜",
      "bedrock": "Amazon Bedrock"
    },
    "modelCount": "개 모델",
    "modelSingular": "개 모델",
    "defaultModel": "기본 모델",
    "webSearch": "웹 검색",
    "mcp": "MCP",
    "knowledgeBase": "지식 베이스",
    "documentParser": "문서 파서",
    "conversationSettings": "대화",
    "keyboardShortcuts": "단축키",
    "generalSettings": "일반",
    "systemSettings": "시스템",
    "addProvider": "추가",
    "importFromClipboard": "클립보드에서 가져오기",
    "apiSecret": "API 키",
    "apiHost": "기본 URL",
    "azureDeploymentHint": "위에 Azure OpenAI 엔드포인트를 입력한 다음 각 Azure 배포 이름을 모델로 추가하세요.",
    "baseUrlRegion": {
      "china": "중국",
      "international": "국제",
      "xiaomiPayg": "종량제",
      "xiaomiTokenPlanCN": "토큰 플랜 CN",
      "xiaomiTokenPlanSGP": "토큰 플랜 SG",
      "xiaomiTokenPlanEU": "토큰 플랜 EU"
    },
    "requestUrl": "요청 URL",
    "models": "모델",
    "comfyuiWorkflows": "워크플로",
    "comfyuiRefresh": "새로고침",
    "comfyuiNoWorkflowsFoundPrefix": "다음 위치에서 워크플로 JSON 파일을 찾을 수 없습니다:",
    "comfyuiAddWorkflowPrefix": "다음 파일을 추가하여 시작하세요:",
    "comfyuiAddWorkflowSuffix": "",
    "comfyuiFolderHintPrefix": "워크플로 JSON 파일을",
    "comfyuiFolderHintMiddle": "폴더에 넣으세요. 파일 이름이 표시 이름이 됩니다. 예:",
    "comfyuiLoadError": "워크플로를 불러오지 못했습니다: {error}",
    "addModel": "추가",
    "reset": "초기화",
    "fetch": "불러오기",
    "connectionSuccess": "연결 성공",
    "connectionFailed": "연결 실패",
    "capabilities": {
      "vision": "비전",
      "tools": "도구",
      "streaming": "스트리밍"
    },
    "contextWindow": "컨텍스트",
    "contextShort": "ctx",
    "outputWindow": "출력",
    "addProviderButton": "추가",
    "addProviderDialog": "모델 제공업체 추가",
    "providerName": "이름",
    "providerNamePlaceholder": "예: 나의 OpenAI 프록시",
    "providerNameRequired": "제공업체 이름을 입력하세요",
    "providerApiMode": "API 모드",
    "apiModeOpenAI": "OpenAI 프로토콜",
    "apiModeAnthropic": "Claude 프로토콜",
    "apiModeGoogle": "Gemini 프로토콜",
    "defaultBaseUrl": "기본 Base URL",
    "providerIcon": "제공업체 아이콘 URL",
    "requiresApiKey": "API 키 필요",
    "deleteProvider": "제공업체 삭제",
    "deleteProviderConfirm": "이 제공업체를 삭제하시겠습니까?",
    "addCustomTTSProvider": "사용자 지정 TTS 제공업체 추가",
    "addCustomASRProvider": "사용자 지정 ASR 제공업체 추가",
    "addCustomAudioProviderDescription": "OpenAI 호환 사용자 지정 오디오 제공업체를 추가하세요",
    "customVoices": "음성",
    "voiceIdPlaceholder": "음성 ID (예: alloy)",
    "voiceNamePlaceholder": "표시 이름",
    "addVoice": "추가",
    "modelNamePlaceholder": "선택 사항",
    "defaultModelHint": "API 요청 시 전송되는 모델 이름 (예: kokoro, tts-1)",
    "noVoicesAdded": "아직 추가된 음성이 없습니다. 에이전트별 음성 선택을 위해 아래에서 음성을 추가하세요.",
    "noModelsAdded": "아직 추가된 모델이 없습니다. 모델 선택을 활성화하려면 아래에 모델을 추가하세요.",
    "noModelsWarning": "이 제공업체를 사용하기 전에 아래에 최소 하나의 모델을 추가하세요.",
    "asrNoTranscription": "변환된 텍스트가 없습니다. 더 크게 또는 더 길게 말씀해 보세요.",
    "cannotDeleteBuiltIn": "기본 제공업체는 삭제할 수 없습니다",
    "resetToDefault": "기본값으로 초기화",
    "resetToDefaultDescription": "모델 목록을 기본 설정으로 복원합니다 (API 키 및 Base URL은 유지됩니다)",
    "resetConfirmDescription": "이 작업은 모든 사용자 지정 모델을 제거하고 기본 내장 모델 목록을 복원합니다. API 키 및 Base URL은 유지됩니다.",
    "confirmReset": "초기화 확인",
    "resetSuccess": "기본 설정으로 초기화되었습니다",
    "saveSuccess": "설정이 저장되었습니다",
    "saveFailed": "설정 저장에 실패했습니다. 다시 시도해 주세요",
    "cannotDeleteBuiltInModel": "기본 내장 모델은 삭제할 수 없습니다",
    "cannotEditBuiltInModel": "기본 내장 모델은 수정할 수 없습니다",
    "modelIdRequired": "모델 ID를 입력하세요",
    "noModelsAvailable": "테스트할 수 있는 모델이 없습니다",
    "providerMetadata": "제공업체 메타데이터",
    "editModel": "모델 수정",
    "editModelDescription": "모델 설정 및 기능을 수정합니다",
    "addNewModel": "새 모델",
    "modelsManagementDescription": "이 제공업체에서 사용 가능한 모델과 기능을 관리하세요.",
    "addNewModelDescription": "새 모델 설정을 추가합니다",
    "modelId": "모델 ID",
    "modelIdPlaceholder": "예: gpt-4o",
    "modelName": "표시 이름",
    "modelCapabilities": "기능",
    "advancedSettings": "고급 설정",
    "contextWindowLabel": "컨텍스트 윈도우",
    "contextWindowPlaceholder": "예: 128000",
    "outputWindowLabel": "최대 출력 토큰",
    "outputWindowPlaceholder": "예: 4096",
    "testModel": "모델 테스트",
    "deleteModel": "삭제",
    "cancelEdit": "취소",
    "saveModel": "저장",
    "howToUse": "사용 방법",
    "step1ConfigureProvider": "\"모델 제공업체\"로 이동하여 제공업체를 선택하거나 추가하고 연결 설정(API 키, Base URL 등)을 구성하세요",
    "step2SelectModel": "아래 \"활성 모델\"에서 사용할 모델을 선택하세요",
    "step3StartUsing": "저장 후 시스템이 선택한 모델을 사용합니다",
    "activeModel": "활성 모델",
    "activeModelDescription": "AI 대화 및 콘텐츠 생성에 사용할 모델을 선택하세요",
    "searchModels": "모델 검색",
    "noModelsFound": "일치하는 모델을 찾을 수 없습니다",
    "noConfiguredProviders": "설정된 제공업체가 없습니다",
    "configureProvidersFirst": "왼쪽 \"모델 제공업체\"에서 제공업체 연결 설정을 먼저 구성하세요",
    "currentlyUsing": "현재 사용 중",
    "ttsSettings": "텍스트 음성 변환",
    "asrSettings": "음성 인식",
    "audioSettings": "오디오 설정",
    "ttsSection": "텍스트 음성 변환 (TTS)",
    "asrSection": "자동 음성 인식 (ASR)",
    "ttsDescription": "TTS (Text-to-Speech) - 텍스트를 음성으로 변환합니다",
    "asrDescription": "ASR (Automatic Speech Recognition) - 음성을 텍스트로 변환합니다",
    "enableTTS": "텍스트 음성 변환 활성화",
    "ttsEnabledDescription": "활성화 시 강좌 생성 중 음성 오디오가 생성됩니다",
    "ttsVoiceConfigHint": "에이전트별 음성은 홈페이지의 \"교실 역할 설정\"에서 구성할 수 있습니다",
    "enableASR": "음성 인식 활성화",
    "asrEnabledDescription": "활성화 시 학생이 마이크를 사용하여 음성으로 입력할 수 있습니다",
    "ttsProvider": "TTS 제공업체",
    "ttsLanguageFilter": "언어 필터",
    "allLanguages": "모든 언어",
    "ttsVoice": "음성",
    "ttsSpeed": "속도",
    "ttsBaseUrl": "기본 URL",
    "ttsApiKey": "API 키",
    "doubaoAppId": "앱 ID",
    "doubaoAccessKey": "액세스 키",
    "asrProvider": "ASR 제공업체",
    "asrLanguage": "인식 언어",
    "asrBaseUrl": "기본 URL",
    "asrApiKey": "API 키",
    "enterApiKey": "API 키 입력",
    "enterCustomBaseUrl": "사용자 지정 Base URL 입력",
    "browserNativeNote": "브라우저 기본 ASR은 별도 설정이 필요 없으며 완전히 무료입니다",
    "providerOpenAITTS": "OpenAI TTS (gpt-4o-mini-tts)",
    "providerAzureTTS": "Azure TTS",
    "providerGLMTTS": "GLM TTS",
    "providerQwenTTS": "Qwen TTS (Alibaba Cloud Bailian)",
    "providerVoxCPMTTS": "VoxCPM2",
    "providerDoubaoTTS": "Doubao TTS 2.0 (Volcengine)",
    "providerElevenLabsTTS": "ElevenLabs TTS",
    "providerMiniMaxTTS": "MiniMax TTS",
    "providerLemonadeTTS": "Lemonade TTS (로컬)",
    "providerBrowserNativeTTS": "브라우저 기본 TTS",
    "voxcpmBackend": "백엔드",
    "voxcpmBaseUrlPending": "요청 URL을 생성하려면 Base URL을 입력하세요",
    "voxcpmAutoVoiceNoPreview": "자동 음성은 에이전트 컨텍스트에서 생성되며 직접 미리 듣기가 불가합니다",
    "voxcpmVoicesTitle": "VoxCPM 음성",
    "voxcpmVoicesDescription": "이 브라우저에 저장되어 공유 에이전트 바 음성 풀에 추가됩니다.",
    "voxcpmAutoVoicePrivacyNote": "자동 음성은 에이전트 페르소나를 설정된 VoxCPM 백엔드에 음성 프롬프트로 전송합니다.",
    "voxcpmPromptCount": "프롬프트 {{count}}",
    "voxcpmCloneCount": "클론 {{count}}",
    "voxcpmCloneUnsupported": "현재 백엔드는 클론을 지원하지 않습니다",
    "voxcpmVoicePool": "음성 풀",
    "voxcpmVoiceCount": "음성 {{count}}개",
    "voxcpmAutoVoice": "자동 음성",
    "voxcpmAutoVoiceDescription": "에이전트 페르소나를 음성 프롬프트로 사용",
    "voxcpmUnavailable": "사용 불가",
    "voxcpmClone": "클론",
    "voxcpmCloneUnsupportedDetail": "현재 백엔드는 클론을 지원하지 않습니다",
    "voxcpmNoCustomVoices": "아직 커스텀 음성이 없습니다",
    "voxcpmCloneSaveOnly": "이 백엔드에만 저장됩니다",
    "voxcpmVoiceNamePlaceholder": "음성 이름",
    "voxcpmPromptPlaceholder": "예: 적당한 속도의 명확하고 자연스러운 선생님 목소리",
    "voxcpmAddVoice": "음성 추가",
    "voxcpmCloneVoiceNamePlaceholder": "클론 음성 이름",
    "voxcpmUploadReferenceAudio": "참조 오디오 업로드",
    "voxcpmRecord": "녹음",
    "voxcpmReferenceAudioLimitHint": "참조 오디오는 10MB / 60초 이하여야 하며 저장 전 WAV로 변환됩니다.",
    "voxcpmReferenceTextPlaceholder": "참조 오디오 전사본 (선택 사항)",
    "voxcpmVoiceDescriptionPlaceholder": "음성 설명 (선택 사항)",
    "voxcpmAddClone": "클론 추가",
    "voxcpmRecordingUnsupported": "이 브라우저는 녹음을 지원하지 않습니다",
    "voxcpmRecordedVoiceName": "녹음된 음성",
    "voxcpmRecordingFailed": "녹음 변환에 실패했습니다",
    "voxcpmRecordingStartFailed": "녹음을 시작할 수 없습니다",
    "voxcpmBaseUrlRequired": "먼저 VoxCPM Base URL을 입력하세요",
    "voxcpmPreviewFailed": "미리 듣기에 실패했습니다",
    "voxcpmVoiceSaved": "VoxCPM 음성이 저장되었습니다",
    "voxcpmVoiceSaveFailed": "음성 저장에 실패했습니다",
    "voxcpmReferenceAudioInvalid": "유효하지 않은 참조 오디오입니다",
    "voxcpmCloneSaved": "VoxCPM 클론 음성이 저장되었습니다",
    "voxcpmCloneSaveFailed": "클론 음성 저장에 실패했습니다",
    "voxcpmStopPreview": "미리 듣기 중지",
    "voxcpmPreviewVoice": "음성 미리 듣기",
    "voxcpmDeleteVoice": "음성 삭제",
    "qwenCloneVoicesTitle": "Qwen TTS Cloned Voices",
    "qwenCloneRefText": "Enter the verbatim transcript of the reference audio",
    "qwenCloneRefAudioHint": "Use a clean 1–60 second voice sample. A 10–20 second sample is recommended; audio is converted to 24 kHz mono PCM WAV.",
    "qwenCloneSaved": "Qwen cloned voice registered and saved",
    "qwenCloneSaveFailed": "Failed to register the Qwen cloned voice",
    "qwenCloneUnsupported": "Recording is not supported in this browser; upload an audio file instead.",
    "qwenCloneSpeedHint": "Cloned voices always synthesize at 1× speed.",
    "qwenCloneDeleteWarning": "The voice was removed locally, but provider deletion failed.",
    "qwenCloneNarrationUnavailable": "The assigned voice is unavailable. Narration will use another enabled voice instead.",
    "qwenCloneDiscussionUnavailable": "The assigned voice is unavailable. Discussion will use another enabled voice instead.",
    "providerOpenAIWhisper": "OpenAI ASR (gpt-4o-mini-transcribe)",
    "providerBrowserNative": "브라우저 기본 ASR",
    "providerQwenASR": "Qwen ASR (Alibaba Cloud Bailian)",
    "providerFunASRASR": "FunASR (로컬)",
    "providerLemonadeASR": "Lemonade ASR (로컬)",
    "providerAzureASR": "Azure STT",
    "providerUnpdf": "unpdf (내장)",
    "providerMinerU": "MinerU",
    "providerMinerUCloud": "MinerU (클라우드)",
    "browserNativeTTSNote": "브라우저 기본 TTS는 별도 설정 없이 완전 무료로 사용할 수 있으며, 시스템 내장 음성을 사용합니다",
    "testTTS": "TTS 테스트",
    "testASR": "ASR 테스트",
    "testSuccess": "테스트 성공",
    "testFailed": "테스트 실패",
    "ttsTestText": "TTS 테스트 텍스트",
    "ttsTestSuccess": "TTS 테스트 성공, 오디오가 재생되었습니다",
    "ttsTestFailed": "TTS 테스트에 실패했습니다",
    "asrTestSuccess": "음성 인식에 성공했습니다",
    "asrTestFailed": "음성 인식에 실패했습니다",
    "asrProcessing": "처리 중...",
    "asrResult": "인식 결과",
    "asrNotSupported": "브라우저가 Speech Recognition API를 지원하지 않습니다",
    "browserTTSNotSupported": "브라우저가 Speech Synthesis API를 지원하지 않습니다",
    "browserTTSNoVoices": "현재 브라우저에 사용 가능한 TTS 음성이 없습니다",
    "microphoneAccessDenied": "마이크 접근이 거부되었습니다",
    "microphoneAccessFailed": "마이크 접근에 실패했습니다",
    "asrResultPlaceholder": "녹음 후 인식 결과가 표시됩니다",
    "useThisProvider": "이 제공업체 사용",
    "fetchVoices": "음성 목록 가져오기",
    "fetchingVoices": "가져오는 중...",
    "voicesFetched": "음성 목록을 가져왔습니다",
    "fetchVoicesFailed": "음성 목록 가져오기에 실패했습니다",
    "voiceApiKeyRequired": "API 키가 필요합니다",
    "voiceBaseUrlRequired": "Base URL이 필요합니다",
    "ttsTestTextPlaceholder": "변환할 텍스트를 입력하세요",
    "ttsTestTextDefault": "안녕하세요, 테스트 음성입니다.",
    "startRecording": "녹음 시작",
    "stopRecording": "녹음 중지",
    "recording": "녹음 중...",
    "transcribing": "변환 중...",
    "transcriptionResult": "변환 결과",
    "noTranscriptionResult": "변환 결과가 없습니다",
    "baseUrlOptional": "Base URL (선택 사항)",
    "defaultValue": "기본값",
    "voiceMarin": "추천 - 최고 품질",
    "voiceCedar": "추천 - 최고 품질",
    "voiceAlloy": "중립적, 균형 잡힌",
    "voiceAsh": "안정적, 전문적",
    "voiceBallad": "우아하고 서정적인",
    "voiceCoral": "따뜻하고 친근한",
    "voiceEcho": "남성, 명료한",
    "voiceFable": "서사적, 생동감 있는",
    "voiceNova": "여성, 밝은",
    "voiceOnyx": "남성, 깊은",
    "voiceSage": "지혜롭고 차분한",
    "voiceShimmer": "여성, 부드러운",
    "voiceVerse": "자연스럽고 매끄러운",
    "glmVoiceTongtong": "기본 음성",
    "glmVoiceChuichui": "Chuichui 음성",
    "glmVoiceXiaochen": "Xiaochen 음성",
    "glmVoiceJam": "Jam 음성",
    "glmVoiceKazi": "Kazi 음성",
    "glmVoiceDouji": "Douji 음성",
    "glmVoiceLuodo": "Luodo 음성",
    "qwenVoiceCherry": "밝고 따뜻하며 자연스러운",
    "qwenVoiceSerena": "부드럽고 온화한",
    "qwenVoiceEthan": "활기차고 생동감 있는",
    "qwenVoiceChelsie": "애니메이션 버추얼 여자친구",
    "qwenVoiceMomo": "장난스럽고 발랄한",
    "qwenVoiceVivian": "귀엽고 톡톡 튀는",
    "qwenVoiceMoon": "시원하고 멋진",
    "qwenVoiceMaia": "지적이고 온화한",
    "qwenVoiceKai": "귀를 위한 힐링 스파",
    "qwenVoiceNofish": "권설음을 못 하는 디자이너",
    "qwenVoiceBella": "취하지 않는 꼬마 아가씨",
    "qwenVoiceJennifer": "브랜드급 시네마틱 미국 여성 목소리",
    "qwenVoiceRyan": "빠르고 드라마틱한 퍼포먼스",
    "qwenVoiceKaterina": "기억에 남는 리듬의 성숙한 여성",
    "qwenVoiceAiden": "요리에 능통한 미국 소년",
    "qwenVoiceEldricSage": "차분하고 지혜로운 어른",
    "qwenVoiceMia": "봄물처럼 부드럽고 눈처럼 단정한",
    "qwenVoiceMochi": "동심을 간직한 똑똑한 어른아이",
    "qwenVoiceBellona": "우렁찬 목소리, 명확한 발음, 생생한 캐릭터",
    "qwenVoiceVincent": "전쟁과 명예의 이야기를 전하는 독특한 허스키 보이스",
    "qwenVoiceBunny": "초귀여운 꼬마 아가씨",
    "qwenVoiceNeil": "전문 뉴스 앵커",
    "qwenVoiceElias": "전문 강사",
    "qwenVoiceArthur": "세월과 건초 냄새가 밴 투박한 목소리",
    "qwenVoiceNini": "찹쌀떡처럼 부드럽고 찐득한 목소리",
    "qwenVoiceEbona": "녹슨 열쇠 같은 속삭임",
    "qwenVoiceSeren": "편안한 잠을 돕는 부드럽고 안정적인 목소리",
    "qwenVoicePip": "장난꾸러기지만 동심 가득한",
    "qwenVoiceStella": "달콤하고 엉뚱한 소녀 목소리",
    "qwenVoiceBodega": "열정적인 스페인 아저씨",
    "qwenVoiceSonrisa": "열정적인 라틴 아메리카 여성",
    "qwenVoiceAlek": "전쟁의 나라 차가운 기운, 울 코트 속 따뜻한 마음",
    "qwenVoiceDolce": "느긋한 이탈리아 아저씨",
    "qwenVoiceSohee": "상냥하고 명랑한 한국 언니",
    "qwenVoiceOnoAnna": "장난기 많은 소꿉친구",
    "qwenVoiceLenn": "정장 입고 포스트펑크 듣는 이성적인 독일 청년",
    "qwenVoiceEmilien": "낭만적인 프랑스 오빠",
    "qwenVoiceAndre": "매력적이고 자연스러우며 차분한 남성 목소리",
    "qwenVoiceRadioGol": "축구 시인 Rádio Gol!",
    "qwenVoiceJada": "활발한 상하이 아가씨",
    "qwenVoiceDylan": "베이징 소년",
    "qwenVoiceLi": "다정한 요가 선생님",
    "qwenVoiceMarcus": "넓은 얼굴, 과묵한 말투, 단단한 심지 — 옛 산시 사나이",
    "qwenVoiceRoy": "유머러스하고 솔직한 대만 소년",
    "qwenVoicePeter": "천진 만담 전문 진행자",
    "qwenVoiceSunny": "달콤한 쓰촨 아가씨",
    "qwenVoiceEric": "청두 신사",
    "qwenVoiceRocky": "유머러스한 홍콩 남자",
    "qwenVoiceKiki": "달콤한 홍콩 아가씨",
    "lang_auto": "자동 감지",
    "lang_zh": "中文",
    "lang_yue": "粤語",
    "lang_en": "English",
    "lang_ja": "日本語",
    "lang_ko": "한국어",
    "lang_es": "Español",
    "lang_fr": "Français",
    "lang_de": "Deutsch",
    "lang_ru": "Русский",
    "lang_ar": "العربية",
    "lang_pt": "Português",
    "lang_it": "Italiano",
    "lang_af": "Afrikaans",
    "lang_hy": "Հայերեն",
    "lang_az": "Azərbaycan",
    "lang_be": "Беларуская",
    "lang_bs": "Bosanski",
    "lang_bg": "Български",
    "lang_ca": "Català",
    "lang_hr": "Hrvatski",
    "lang_cs": "Čeština",
    "lang_da": "Dansk",
    "lang_nl": "Nederlands",
    "lang_et": "Eesti",
    "lang_fi": "Suomi",
    "lang_gl": "Galego",
    "lang_el": "Ελληνικά",
    "lang_he": "עברית",
    "lang_hi": "हिन्दी",
    "lang_hu": "Magyar",
    "lang_is": "Íslenska",
    "lang_id": "Bahasa Indonesia",
    "lang_kn": "ಕನ್ನಡ",
    "lang_kk": "Қазақша",
    "lang_lv": "Latviešu",
    "lang_lt": "Lietuvių",
    "lang_mk": "Македонски",
    "lang_ms": "Bahasa Melayu",
    "lang_mr": "मराठी",
    "lang_mi": "Te Reo Māori",
    "lang_ne": "नेपाली",
    "lang_no": "Norsk",
    "lang_fa": "فارسی",
    "lang_pl": "Polski",
    "lang_ro": "Română",
    "lang_sr": "Српски",
    "lang_sk": "Slovenčina",
    "lang_sl": "Slovenščina",
    "lang_sw": "Kiswahili",
    "lang_sv": "Svenska",
    "lang_tl": "Tagalog",
    "lang_fil": "Filipino",
    "lang_ta": "தமிழ்",
    "lang_th": "ไทย",
    "lang_tr": "Türkçe",
    "lang_uk": "Українська",
    "lang_ur": "اردو",
    "lang_vi": "Tiếng Việt",
    "lang_cy": "Cymraeg",
    "lang_zh-CN": "中文（简体，中国）",
    "lang_zh-TW": "中文（繁體，台灣）",
    "lang_zh-HK": "粵語（香港）",
    "lang_yue-Hant-HK": "粵語（繁體）",
    "lang_en-US": "English (United States)",
    "lang_en-GB": "English (United Kingdom)",
    "lang_en-AU": "English (Australia)",
    "lang_en-CA": "English (Canada)",
    "lang_en-IN": "English (India)",
    "lang_en-NZ": "English (New Zealand)",
    "lang_en-ZA": "English (South Africa)",
    "lang_ja-JP": "日本語（日本）",
    "lang_ko-KR": "한국어（대한민국）",
    "lang_de-DE": "Deutsch (Deutschland)",
    "lang_fr-FR": "Français (France)",
    "lang_es-ES": "Español (España)",
    "lang_es-MX": "Español (México)",
    "lang_es-AR": "Español (Argentina)",
    "lang_es-CO": "Español (Colombia)",
    "lang_it-IT": "Italiano (Italia)",
    "lang_pt-BR": "Português (Brasil)",
    "lang_pt-PT": "Português (Portugal)",
    "lang_ru-RU": "Русский (Россия)",
    "lang_nl-NL": "Nederlands (Nederland)",
    "lang_pl-PL": "Polski (Polska)",
    "lang_cs-CZ": "Čeština (Česko)",
    "lang_da-DK": "Dansk (Danmark)",
    "lang_fi-FI": "Suomi (Suomi)",
    "lang_sv-SE": "Svenska (Sverige)",
    "lang_no-NO": "Norsk (Norge)",
    "lang_tr-TR": "Türkçe (Türkiye)",
    "lang_el-GR": "Ελληνικά (Ελλάδα)",
    "lang_hu-HU": "Magyar (Magyarország)",
    "lang_ro-RO": "Română (România)",
    "lang_sk-SK": "Slovenčina (Slovensko)",
    "lang_bg-BG": "Български (България)",
    "lang_hr-HR": "Hrvatski (Hrvatska)",
    "lang_ca-ES": "Català (Espanya)",
    "lang_ar-SA": "العربية (السعودية)",
    "lang_ar-EG": "العربية (مصر)",
    "lang_he-IL": "עברית (ישראל)",
    "lang_hi-IN": "हिन्दी (भारत)",
    "lang_th-TH": "ไทย (ประเทศไทย)",
    "lang_vi-VN": "Tiếng Việt (Việt Nam)",
    "lang_id-ID": "Bahasa Indonesia (Indonesia)",
    "lang_ms-MY": "Bahasa Melayu (Malaysia)",
    "lang_fil-PH": "Filipino (Pilipinas)",
    "lang_af-ZA": "Afrikaans (Suid-Afrika)",
    "lang_uk-UA": "Українська (Україна)",
    "pdfSettings": "PDF 파싱",
    "documentParsingSettings": "문서 파싱",
    "supportedFormats": "지원 형식",
    "mineruSelfHostFormatsNote": "PDF 및 이미지 파싱에는 MinerU 서버에 mineru[pipeline] 또는 mineru[core] 추가 종속성이 필요합니다. 경량 mineru-api 설치에서는 Office 문서만 처리할 수 있습니다.",
    "pdfParsingSettings": "PDF 파싱 설정",
    "pdfDescription": "텍스트 추출, 이미지 처리, 표 인식을 지원하는 PDF 파싱 엔진을 선택하세요",
    "pdfProvider": "PDF 파서",
    "pdfFeatures": "지원 기능",
    "pdfApiKey": "API 키",
    "pdfBaseUrl": "기본 URL",
    "mineruDescription": "MinerU는 표 추출, 수식 인식, 레이아웃 분석 등 고급 기능을 지원하는 상용 PDF 파싱 서비스입니다.",
    "mineruApiKeyRequired": "사용 전 MinerU 웹사이트에서 API 키를 신청해야 합니다.",
    "mineruWarning": "주의",
    "mineruCostWarning": "MinerU는 상용 서비스로 요금이 발생할 수 있습니다. MinerU 웹사이트에서 요금 정보를 확인하세요.",
    "enterMinerUApiKey": "MinerU API 키 입력",
    "mineruLocalDescription": "MinerU는 고급 PDF 파싱(표, 수식, 레이아웃 분석)을 지원하는 로컬 배포가 가능합니다. MinerU 서비스를 먼저 배포해야 합니다.",
    "mineruServerAddress": "로컬 MinerU 서버 주소 (예: http://localhost:8080)",
    "mineruApiKeyOptional": "서버에 인증이 설정된 경우에만 필요합니다",
    "mineruCloudApiKeyPlaceholder": "MinerU 클라우드 API 키 입력",
    "optionalApiKey": "선택적 API 키",
    "featureText": "텍스트 추출",
    "featureImages": "이미지 추출",
    "featureTables": "표 추출",
    "featureFormulas": "수식 인식",
    "featureLayoutAnalysis": "레이아웃 분석",
    "featureMetadata": "메타데이터",
    "enableImageGeneration": "AI 이미지 생성 활성화",
    "imageGenerationDisabledHint": "활성화하면 강좌 생성 시 이미지가 자동으로 생성됩니다",
    "imageSettings": "이미지 생성",
    "imageSection": "텍스트에서 이미지로",
    "imageProvider": "이미지 생성 제공업체",
    "imageModel": "이미지 생성 모델",
    "providerSeedream": "Seedream (ByteDance)",
    "providerOpenAIImage": "OpenAI Image",
    "providerQwenImage": "Qwen Image (Alibaba)",
    "providerNanoBanana": "Nano Banana (Gemini)",
    "providerMiniMaxImage": "MiniMax Image",
    "providerGrokImage": "Grok Image (xAI)",
    "providerComfyUIImage": "ComfyUI Image",
    "providerLemonadeImage": "Lemonade Image (로컬)",
    "testImageGeneration": "이미지 생성 테스트",
    "testImageConnectivity": "연결 테스트",
    "imageConnectivitySuccess": "이미지 서비스에 성공적으로 연결되었습니다",
    "imageConnectivityFailed": "이미지 서비스 연결에 실패했습니다",
    "imageTestSuccess": "이미지 생성 테스트에 성공했습니다",
    "imageTestFailed": "이미지 생성 테스트에 실패했습니다",
    "imageTestPromptPlaceholder": "테스트할 이미지 설명을 입력하세요",
    "imageTestPromptDefault": "책상 위에 앉아 있는 귀여운 고양이",
    "imageGenerating": "이미지 생성 중...",
    "imageGenerationFailed": "이미지 생성에 실패했습니다",
    "enableVideoGeneration": "AI 동영상 생성 활성화",
    "videoGenerationDisabledHint": "활성화하면 강좌 생성 시 동영상이 자동으로 생성됩니다",
    "videoSettings": "동영상 생성",
    "videoSection": "텍스트에서 동영상으로",
    "videoProvider": "동영상 생성 제공업체",
    "videoModel": "동영상 생성 모델",
    "providerSeedance": "Seedance (ByteDance)",
    "providerKling": "Kling (Kuaishou)",
    "providerVeo": "Veo (Google)",
    "providerSora": "Sora (OpenAI)",
    "providerMiniMaxVideo": "MiniMax Video",
    "providerGrokVideo": "Grok Video (xAI)",
    "providerHappyHorse": "HappyHorse (Alibaba Cloud)",
    "testVideoGeneration": "동영상 생성 테스트",
    "testVideoConnectivity": "연결 테스트",
    "videoConnectivitySuccess": "동영상 서비스에 성공적으로 연결되었습니다",
    "videoConnectivityFailed": "동영상 서비스 연결에 실패했습니다",
    "testingConnection": "테스트 중...",
    "videoTestSuccess": "동영상 생성 테스트에 성공했습니다",
    "videoTestFailed": "동영상 생성 테스트에 실패했습니다",
    "videoTestPromptDefault": "책상 위를 걷고 있는 귀여운 고양이",
    "videoGenerating": "동영상 생성 중 (약 1~2분 소요)...",
    "videoGenerationWarning": "동영상 생성은 보통 1~2분이 소요됩니다. 잠시 기다려 주세요",
    "mediaRetry": "재시도",
    "mediaContentSensitive": "죄송합니다. 이 콘텐츠가 안전 검사를 통과하지 못했습니다.",
    "mediaGenerationDisabled": "설정에서 생성이 비활성화되어 있습니다",
    "singleAgent": "단일 에이전트",
    "multiAgent": "멀티 에이전트",
    "selectAgents": "에이전트 선택",
    "noVisionWarning": "현재 모델은 비전을 지원하지 않습니다. 슬라이드에 이미지를 삽입할 수 있지만, 모델이 이미지 내용을 이해하여 선택 및 레이아웃을 최적화할 수 없습니다",
    "serverConfigured": "서버",
    "serverConfiguredNotice": "이 제공업체는 서버에서 관리되므로 여기서 편집할 수 없습니다. 본인 자격 증명을 사용하려면 별도의 제공업체를 추가하세요.",
    "ttsProviderEnabledLabel": "이 제공업체 활성화",
    "ttsProviderEnabledHint": "비활성화하면 이 제공업체가 음성 선택기에서 숨겨지고 자동으로 지정되지 않습니다.",
    "ttsProviderUnavailableHint": "활성화하기 전에 이 제공업체를 설정하세요.",
    "ttsProviderDisabledByAdmin": "이 제공업체는 서버 관리자에 의해 비활성화되어 있으며 활성화할 수 없습니다.",
    "optionalOverride": "선택 사항 — 비워두면 서버 설정이 사용됩니다",
    "setupNeeded": "설정 필요",
    "modelNotConfigured": "시작하려면 모델을 선택하세요",
    "dangerZone": "위험 구역",
    "clearCache": "로컬 캐시 지우기",
    "clearCacheDescription": "교실 기록, 채팅 내역, 오디오 캐시, 앱 설정 등 로컬에 저장된 모든 데이터를 삭제합니다. 이 작업은 취소할 수 없습니다.",
    "clearCacheConfirmTitle": "모든 캐시를 지우시겠습니까?",
    "clearCacheConfirmDescription": "다음 데이터가 영구적으로 삭제되며 복구할 수 없습니다:",
    "clearCacheConfirmItems": "교실 및 장면, 채팅 내역, 오디오 및 이미지 캐시, 앱 설정 및 환경설정",
    "clearCacheConfirmInput": "계속하려면 \"DELETE\"를 입력하세요",
    "clearCacheConfirmPhrase": "DELETE",
    "clearCacheButton": "모든 데이터 영구 삭제",
    "clearCacheSuccess": "캐시가 지워졌습니다. 잠시 후 페이지가 새로 고침됩니다",
    "clearCacheFailed": "캐시 삭제에 실패했습니다. 다시 시도해 주세요",
    "clearCacheBlockedByOtherTabs": "앱을 연 다른 탭을 닫고 다시 시도해 주세요.",
    "persistUnavailable": "변경 사항이 저장되지 않고 있습니다. 앱이 저장된 데이터에 접근할 수 없습니다. 새로 고쳐도 해결되지 않으면 설정에서 로컬 캐시를 삭제하세요.",
    "persistChangesLost": "저장소가 복구되었지만 사용할 수 없는 동안 변경한 내용은 저장되지 못하고 마지막으로 저장된 버전으로 대체되었습니다.",
    "webSearchSettings": "웹 검색",
    "webSearchApiKey": "검색 API 키",
    "webSearchApiKeyPlaceholder": "검색 API 키를 입력하세요",
    "webSearchApiKeyPlaceholderServer": "서버 키가 설정되어 있습니다. 선택적으로 재정의할 수 있습니다",
    "webSearchApiKeyHint": "선택한 검색 제공업체에서 API 키를 발급받으세요",
    "claudeSearchModel": "검색 모델",
    "claudeSearchModelHint": "웹 검색을 수행하고 결과를 요약하는 Claude 모델입니다.",
    "webSearchApiKeyOptional": "API 키는 선택 사항입니다. 키가 없으면 공개 페이지 스크래핑이 대체 수단으로 사용됩니다.",
    "searxngServerOnlyNotice": "SearXNG는 서버에서 구성해야 합니다. SEARXNG_BASE_URL 환경 변수(또는 server-providers.yml의 web-search 섹션)를 설정하세요. 클라이언트가 제공한 인스턴스 URL은 허용되지 않습니다.",
    "baiduSubSources": "바이두 검색 소스",
    "baiduSubSourcesDescription": "쿼리할 바이두 소스를 하나 이상 선택하세요.",
    "baiduSubSourceWeb": "웹 검색",
    "baiduSubSourceWebDescription": "바이두 AI 검색의 일반 웹 페이지입니다.",
    "baiduSubSourceBaike": "바이두 바이커",
    "baiduSubSourceBaikeDescription": "바이두 바이커의 백과사전 항목입니다.",
    "baiduSubSourceScholar": "바이두 스칼라",
    "baiduSubSourceScholarDescription": "바이두 스칼라의 학술 논문입니다.",
    "viewDocs": "API 문서",
    "webSearchBaseUrl": "기본 URL",
    "webSearchServerConfigured": "서버 측 검색 API 키가 설정되어 있습니다",
    "optional": "선택 사항",
    "selectProvider": "Select Provider",
    "customProvider": "Custom",
    "presetPickHint": "Picking a provider auto-fills its base URL and protocol; enter your key then click \"Fetch Models\". Not listed? Use \"Custom\".",
    "presetCategory": {
      "tokenPlan": "Token Plans",
      "aggregator": "Aggregators",
      "thirdParty": "Vendors",
      "official": "Official"
    },
    "fetchModels": "Fetch Models",
    "fetchModelsResult": "Fetched {total} models, added {added}",
    "fetchModelsNoEndpoint": "This provider has no model list endpoint — add models manually",
    "fetchModelsAuthError": "API key is invalid or expired",
    "fetchModelsFailed": "Failed to fetch models",
    "usage": {
      "title": "Usage",
      "refresh": "Refresh",
      "disclaimer": "Usage is system-tracked; only server-side calls are counted.",
      "totalRequests": "Requests",
      "totalTokens": "LLM Tokens",
      "dailyTrend": "Daily Token Trend",
      "tokens": "Tokens",
      "byModel": "By Model",
      "model": "Model",
      "type": "Type",
      "reqs": "Reqs",
      "usage": "Usage",
      "empty": "No usage data yet",
      "kindLlm": "LLM",
      "kindImage": "Image",
      "kindVideo": "Video",
      "kindTts": "Speech",
      "kindAsr": "ASR",
      "unitToken": "tokens",
      "unitImage": "images",
      "unitSecond": "sec",
      "unitCharacter": "chars"
    },
    "tokenPlan": {
      "nav": "Token Plan",
      "title": "Token Plan Setup",
      "desc": "Pick your token plan provider and enter the key — it auto-configures every adapted modality (LLM/image/video/speech/web search).",
      "selectPlan": "Select Provider",
      "apiKey": "API Key",
      "enable": "Enable",
      "updateKey": "Update key",
      "modelsCount": "{{n}} models",
      "capabilities": "Capabilities offered",
      "offeredNote": "Models offered by this plan. Pick the ones you want on the generation bar — availability depends on your plan tier, and unsupported models will error at generation time."
    },
    "skills": {
      "nav": "스킬",
      "title": "스킬 설정",
      "description": "계정에 설치된 스킬을 둘러보고, 스킬 상세를 확인하고, 공유하거나 백업할 수 있도록 zip으로 다운로드하세요.",
      "mySkills": "내 스킬",
      "builtinSkills": "내장 스킬",
      "emptyMySkills": "아직 자신의 스킬이 없습니다——채팅에서 에이전트에게 기록에서 만들어달라고 하세요.",
      "emptyBuiltinSkills": "사용 가능한 내장 스킬이 없습니다.",
      "listFailed": "스킬 목록을 불러오지 못했습니다",
      "retry": "다시 시도",
      "badgeBuiltin": "내장",
      "badgeOwner": "내 스킬",
      "badgeConstraints": "제약 있음",
      "details": "상세",
      "download": "다운로드",
      "detailFailed": "스킬 상세를 불러오지 못했습니다",
      "contentLabel": "내용",
      "builtinDetailNote": "이 스킬은 OpenMAIC에 포함되어 있습니다. 다른 에이전트 작업공간으로 가져오려면 다운로드하세요.",
      "upload": "업로드",
      "uploading": "업로드 중…",
      "uploadFailed": "스킬을 업로드하지 못했습니다. 파일을 확인하고 다시 시도하세요.",
      "delete": "삭제",
      "deleting": "삭제 중…",
      "deleteTitle": "스킬을 삭제할까요?",
      "deleteConfirm": "계정에서 이 스킬을 삭제합니다. 이 작업은 되돌릴 수 없습니다.",
      "deleteFailed": "스킬을 삭제하지 못했습니다. 다시 시도하세요."
    },
    "ttsBrowserNativeTimelineNotice": "브라우저 내장 TTS는 편집기 타임라인의 오디오 기능(미리듣기·다시 생성·전체 음성 생성)을 지원하지 않습니다. 관리형 TTS 공급자로 전환하면 줄별 오디오를 생성·관리할 수 있습니다.",
    "alidocmindAccessKeyId": "AccessKey ID",
    "alidocmindAccessKeySecret": "AccessKey Secret"
  },
  "workspace": {
    "untitledCourse": "未命名课堂",
    "sceneCount": "{{count}} 页",
    "sceneCount_one": "{{count}} 页",
    "sceneCount_other": "{{count}} 页",
    "courseLinkHint": "在右侧打开《{{name}}》",
    "courseLinkMore": "还有 {{count}} 节课堂",
    "courseMention": {
      "title": "为这条消息引用课堂",
      "empty": "没有匹配的课堂",
      "alreadyNamed": "已引用",
      "remove": "移除{{name}}",
      "pillHint": "这条消息引用了「{{name}}」",
      "notAccepted": "서버를 일시적으로 사용할 수 없습니다. 잠시 후 다시 시도해 주세요.",
      "reference": "引用「{{name}}」",
      "capped": "仅显示前 {{count}} 个，继续输入以缩小范围"
    },
    "heroTitle": "What will you create today?",
    "heroSubtitle": "Share an idea and turn it into a learning journey people can step into",
    "newSession": "New chat",
    "sections": {
      "courses": "Courses",
      "sessions": "Chats"
    },
    "coursesEmpty": "No courses yet",
    "sessionsEmpty": "No chats yet",
    "loading": "Loading",
    "loadFailed": "Couldn't load",
    "retry": "Retry",
    "untitledSession": "Untitled chat",
    "pagePosition": "Page {{index}} of {{total}}",
    "exitPro": "Exit Pro",
    "navAria": "Workspace navigation",
    "homeAria": "Back to home",
    "currentSession": "Current chat",
    "startLearning": "학습 시작",
    "time": {
      "justNow": "Just now",
      "minutesAgo": "{{count}}m ago",
      "hoursAgo": "{{count}}h ago",
      "daysAgo": "{{count}}d ago"
    },
    "sessionStatus": {
      "connecting": "Connecting",
      "queued": "Queued",
      "running": "Running",
      "succeeded": "Ready",
      "failed": "Needs attention",
      "cancelled": "Stopped"
    },
    "backToWorkspace": "Back to workspace",
    "searchPlaceholder": "Filter by name",
    "searchAria": "Search {{section}}",
    "searchEmpty": "No matches",
    "showMore": "Show {{count}} more",
    "showLess": "Show less",
    "utilitiesAria": "Preferences and account",
    "resizeAria": "Drag to resize the sidebar",
    "chatPaneAria": "Chat panel",
    "classroomPaneAria": "Classroom",
    "collapseNav": "Collapse navigation",
    "expandNav": "Expand navigation",
    "expandNavInto": "Expand navigation · {{section}}",
    "collapseChat": "Collapse conversation",
    "expandChat": "Conversation",
    "collapseClassroom": "Collapse classroom",
    "expandClassroom": "Classroom",
    "readOnlyBadge": "Read-only",
    "noCourseTitle": "No course open",
    "noCourseHint": "대화의 코스 링크로 열거나 왼쪽 목록에서 선택하세요. 대화는 그대로 남습니다",
    "resizeChatAria": "Drag to resize the conversation pane",
    "firstPageLanding": "The first page is landing…",
    "autoSaving": "자동 저장 중…",
    "autoSaved": "저장됨",
    "collapsedTitle": "Both panes are collapsed",
    "collapsedHint": "Use the tabs on the left to bring the conversation or the classroom back",
    "moreUtilities": "More",
    "rowMore": "{{name}} 추가 작업",
    "folderDeleteHint": "폴더 안의 강의는 최상위 목록으로 돌아갑니다. 삭제되지 않습니다.",
    "dropToUnfile": "여기에 놓으면 폴더에서 빼냅니다",
    "renameInvalid": "이름은 1~120자여야 합니다",
    "renameForbidden": "내가 만든 강의가 아니어서 이름을 바꿀 수 없습니다",
    "renameGone": "강의가 없거나 이미 삭제되었습니다",
    "renameSession": "대화 이름 변경",
    "renameSessionAria": "대화 “{{name}}” 이름 변경",
    "renameSessionFailed": "이름 변경에 실패했습니다. 다시 시도해 주세요",
    "delete": "삭제",
    "confirmDelete": "삭제 확인",
    "deleting": "삭제 중…",
    "deleteFailed": "삭제하지 못했습니다. 다시 시도해 주세요.",
    "tabsAria": "Chats and courses",
    "courseTabsAria": "열린 코스",
    "courseTabClose": "탭 닫기: {{name}}",
    "courseTabRunning": "생성 중",
    "foldersUnavailable": "이 빌드에서는 폴더를 사용할 수 없습니다"
  },
  "profile": {
    "title": "프로필",
    "defaultNickname": "학습자",
    "chooseAvatar": "아바타 선택",
    "uploadAvatar": "업로드",
    "bioPlaceholder": "자신에 대해 알려주세요 — AI 선생님이 맞춤 수업을 준비해 드립니다...",
    "avatarHint": "아바타는 교실 토론 및 채팅에 표시됩니다",
    "fileTooLarge": "이미지가 너무 큽니다 — 5MB 미만의 파일을 선택해 주세요",
    "invalidFileType": "이미지 파일을 선택해 주세요",
    "editTooltip": "클릭하여 프로필 수정"
  },
  "media": {
    "imageCapability": "이미지 생성",
    "imageHint": "슬라이드에 이미지를 생성합니다",
    "videoCapability": "동영상 생성",
    "videoHint": "슬라이드에 동영상을 생성합니다",
    "ttsCapability": "텍스트 음성 변환",
    "ttsHint": "AI 선생님이 소리 내어 읽습니다",
    "asrCapability": "음성 인식",
    "asrHint": "토론을 위한 음성 입력",
    "provider": "제공업체",
    "model": "모델",
    "voice": "음성",
    "speed": "속도",
    "language": "언어"
  },
  "accessCode": {
    "title": "접근 코드 입력",
    "placeholder": "접근 코드",
    "error": "유효하지 않은 접근 코드입니다. 다시 시도해 주세요."
  },
  "proMode": {
    "attach": "자료 첨부",
    "mentionCourse": "引用课堂",
    "loadSkill": "加载 skill",
    "skillMenuTitle": "选择课程设计技能",
    "skillsLoading": "正在加载 skill…",
    "noSkillsAvailable": "暂无可用 skill",
    "userSkillsGroup": "我的 Skill",
    "builtinSkillsGroup": "内置 Skill",
    "skillsLoadFailed": "Skill 加载失败，点击重试",
    "retrySkills": "重试",
    "noSkillMatch": "没有匹配“{{query}}”的 Skill",
    "badgeAria": "Pro 모드",
    "badgeEnter": "Pro 모드",
    "badgeExit": "일반 모드로 돌아가기",
    "launchPlaceholder": "만들고 싶은 학습 경험을 설명해 보세요",
    "launchSend": "구축 시작"
  },
  "workbench": {
    "tool": {
      "label": {
        "extractMaterial": null,
        "waitMaterials": null
      },
      "error": {
        "materialExtraction": null
      }
    }
  }
}
