Files
openmaic/OpenMAIC/lib/i18n/locales/ko-KR.json
T

1826 lines
87 KiB
JSON

{
"common": {
"you": "나",
"confirm": "확인",
"cancel": "취소",
"loading": "로딩 중..."
},
"home": {
"slogan": "멀티 에이전트 인터랙티브 교실에서 펼치는 생성형 학습"
},
"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": "강좌 구조 + 미디어 파일",
"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": "스트림이 예기치 않게 종료되어 토론이 완료되지 않았습니다. 다시 시도해 주세요."
},
"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"
},
"multiTab": {
"conflict": {
"title": "다른 탭에서 이 강좌를 편집 중입니다",
"body": "충돌 방지를 위해 편집은 하나의 탭에서만 가능합니다. 다른 탭을 닫거나(또는 세션이 만료될 때까지 기다린 후) 여기서 편집 모드로 진입하세요.",
"actionDismiss": "확인했습니다"
}
},
"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를 누른 다음 방향키로 이동",
"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": "이 페이지의 내용이 미완성입니다"
},
"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": {
"preview": "미리듣기",
"regenerate": "음성 다시 생성",
"statusReady": "음성 있음",
"statusNone": "음성 없음",
"statusGenerating": "생성 중",
"statusError": "실패"
},
"pick": {
"pickFor": "「{{label}}」에 사용할 요소 선택",
"pickHint": "강조된 요소 또는 아래 목록을 클릭 · Esc 취소",
"pageElements": "페이지 요소 · {{count}}",
"expand": "펼치기",
"collapse": "접기",
"noElements": "이 슬라이드에는 지정할 수 있는 요소가 없습니다.",
"bindHint": "캔버스에서 강조된 요소를 클릭하여 연결"
},
"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": "역할 추가"
}
},
"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}}개 삭제"
},
"upload": {
"pdfSizeLimit": "최대 50MB PDF 파일을 지원합니다",
"courseMaterialSizeLimit": "문서, 슬라이드, 스프레드시트, 이미지, 텍스트 — 최대 50MB (지원 형식은 선택한 파서에 따라 다름)",
"generateFailed": "교실 생성에 실패했습니다. 다시 시도해주세요",
"requirementPlaceholder": "학습하고 싶은 내용을 자유롭게 입력하세요, 예:\n\"파이썬을 30분 만에 처음부터 가르쳐주세요\"\n\"칠판에 푸리에 변환을 설명해주세요\"\n\"보드게임 Avalon 하는 방법\"",
"requirementRequired": "강좌 요구사항을 입력해주세요",
"fileTooLarge": "파일이 너무 큽니다. 50MB 미만의 파일을 선택해주세요",
"courseMaterialCountLimit": "강의 자료 파일은 최대 5개까지 업로드할 수 있습니다",
"courseMaterialTotalSizeLimit": "강의 자료 전체 크기는 150MB 미만이어야 합니다",
"unsupportedCourseMaterial": "현재 파서가 이 형식을 지원하지 않습니다. 파서를 변경하거나 다른 파일을 선택하세요."
},
"generation": {
"modeLabel": "생성 모드",
"normalMode": "일반 생성",
"largeMode": "대형 작업",
"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}}개 제한을 초과했습니다. 초과 이미지는 텍스트 설명으로 대체됩니다",
"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": "음성 삭제",
"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."
},
"ttsBrowserNativeTimelineNotice": "브라우저 내장 TTS는 편집기 타임라인의 오디오 기능(미리듣기·다시 생성·전체 음성 생성)을 지원하지 않습니다. 관리형 TTS 공급자로 전환하면 줄별 오디오를 생성·관리할 수 있습니다.",
"alidocmindAccessKeyId": "AccessKey ID",
"alidocmindAccessKeySecret": "AccessKey Secret"
},
"profile": {
"title": "프로필",
"defaultNickname": "학습자"
},
"media": {
"imageCapability": "이미지 생성",
"imageShort": "이미지",
"imageHint": "슬라이드에 이미지를 생성합니다",
"videoCapability": "동영상 생성",
"videoShort": "영상",
"videoHint": "슬라이드에 동영상을 생성합니다",
"ttsCapability": "텍스트 음성 변환",
"ttsShort": "음성",
"ttsHint": "AI 선생님이 소리 내어 읽습니다",
"asrCapability": "음성 인식",
"asrShort": "마이크",
"asrHint": "토론을 위한 음성 입력",
"webSearchShort": "검색",
"provider": "제공업체",
"model": "모델",
"voice": "음성",
"speed": "속도",
"language": "언어"
},
"accessCode": {
"title": "접근 코드 입력",
"placeholder": "접근 코드",
"error": "유효하지 않은 접근 코드입니다. 다시 시도해 주세요."
}
}