{
  "app": {
    "brand": "nanobot",
    "loading": {
      "connecting": "nanobot에 연결 중…",
      "boot": "nanobot 불러오는 중…"
    },
    "error": {
      "title": "nanobot에 연결할 수 없습니다",
      "gatewayHint": "gateway(`nanobot gateway`)가 실행 중인지, 그리고 이 페이지가 같은 머신에서 열려 있는지 확인하세요."
    },
    "auth": {
      "title": "인증이 필요합니다",
      "hint": "gateway 설정의 tokenIssueSecret에 구성된 비밀 값을 입력하세요.",
      "placeholder": "비밀번호",
      "submit": "연결",
      "invalid": "비밀번호가 올바르지 않습니다. 다시 시도하세요."
    },
    "account": {
      "section": "계정",
      "logoutHint": "이 브라우저를 gateway에서 연결 해제합니다.",
      "logout": "로그아웃"
    },
    "system": {
      "section": "시스템",
      "restartHint": "런타임 변경 사항을 적용하려면 nanobot을 다시 시작하세요.",
      "restart": "nanobot 다시 시작",
      "restarting": "다시 시작 중...",
      "restartEngine": "엔진 다시 시작",
      "restartingEngine": "엔진 다시 시작 중..."
    },
    "restart": {
      "completed": "{{seconds}}초 만에 다시 시작되었습니다."
    },
    "documentTitle": {
      "base": "nanobot",
      "chat": "{{title}} · nanobot"
    },
    "meta": {
      "description": "nanobot 웹 UI — nanobot 작업공간과 대화하세요."
    }
  },
  "sidebar": {
    "navigation": "사이드바 탐색",
    "collapse": "사이드바 접기",
    "newChat": "새 채팅",
    "searchAria": "검색",
    "searchPlaceholder": "검색",
    "searchResults": "결과",
    "noSearchResults": "일치하는 채팅이 없습니다.",
    "recent": "최근 대화",
    "settings": "설정",
    "language": {
      "label": "언어",
      "ariaLabel": "언어 변경"
    },
    "apps": "앱",
    "automations": "자동화",
    "skills": {
      "title": "스킬"
    }
  },
  "settings": {
    "backToChat": "채팅으로 돌아가기",
    "sidebar": {
      "title": "설정",
      "ariaLabel": "설정 섹션"
    },
    "nav": {
      "general": "일반",
      "byok": "BYOK",
      "overview": "개요",
      "appearance": "외관",
      "models": "모델",
      "providers": "제공자",
      "image": "이미지",
      "voice": "음성",
      "browser": "웹",
      "runtime": "시스템",
      "advanced": "보안",
      "cliApps": "CLI 앱",
      "mcp": "MCP",
      "apps": "앱",
      "automations": "자동화",
      "skills": "스킬"
    },
    "sections": {
      "interface": "인터페이스",
      "ai": "AI",
      "system": "시스템",
      "about": "정보",
      "status": "상태",
      "localPreferences": "로컬 환경설정",
      "presets": "프리셋",
      "imageGeneration": "이미지 생성",
      "imageDefaults": "기본값",
      "webSearch": "웹 검색",
      "webBehavior": "동작",
      "identity": "ID",
      "webuiSafety": "WebUI 보안",
      "capabilities": "기능",
      "cliApps": "CLI 앱",
      "mcp": "MCP 서비스",
      "apps": "앱",
      "nativeHost": "네이티브 호스트",
      "hostSafety": "앱 보안",
      "voiceInput": "음성 입력"
    },
    "rows": {
      "theme": "테마",
      "language": "언어",
      "provider": "제공자",
      "model": "모델",
      "restart": "nanobot 재시작",
      "configPath": "설정 경로",
      "activePreset": "활성 프리셋",
      "gateway": "게이트웨이",
      "restartState": "재시작 상태",
      "pendingChanges": "대기 중인 변경",
      "selectedPreset": "선택한 프리셋",
      "presetModel": "프리셋 모델",
      "density": "밀도",
      "activityMode": "활동 상세",
      "codeWrap": "코드 줄바꿈",
      "maxResults": "최대 결과 수",
      "timeout": "타임아웃",
      "jinaReader": "Jina 리더",
      "imageGeneration": "이미지 생성",
      "imageProvider": "이미지 제공자",
      "imageProviderStatus": "제공자 상태",
      "imageProviderBase": "제공자 주소",
      "imageModel": "이미지 모델",
      "defaultAspectRatio": "기본 비율",
      "defaultImageSize": "기본 크기",
      "maxImagesPerTurn": "턴당 최대 이미지 수",
      "imageSaveDir": "저장 디렉터리",
      "botName": "Bot 이름",
      "botIcon": "Bot 아이콘",
      "timezone": "시간대",
      "workspacePath": "기본 작업공간",
      "localServiceAccess": "로컬 서비스",
      "webuiDefaultAccess": "기본 권한",
      "currentModel": "현재 구성",
      "brandLogos": "브랜드 로고",
      "cliAppsCatalog": "카탈로그",
      "cliAppsFilter": "필터",
      "engine": "엔진",
      "logs": "로그",
      "diagnostics": "진단",
      "contextWindow": "컨텍스트 창",
      "transcription": "전사",
      "transcriptionProvider": "제공자",
      "transcriptionProviderStatus": "제공자 상태",
      "transcriptionModel": "모델",
      "transcriptionLanguage": "언어",
      "voiceLimits": "제한"
    },
    "help": {
      "theme": "밝은 모드와 어두운 모드를 전환합니다.",
      "language": "WebUI에서 사용할 언어를 선택합니다.",
      "provider": "새 모델 요청을 처리할 제공자를 선택합니다.",
      "model": "nanobot이 기본으로 사용할 모델 이름을 설정합니다.",
      "configPath": "현재 게이트웨이가 사용하는 설정 파일입니다.",
      "selectedPreset": "이름 있는 프리셋은 여기서 읽기 전용입니다. config.json에서 편집하세요.",
      "presetModel": "Default로 전환하면 WebUI에서 모델과 제공자를 편집할 수 있습니다.",
      "density": "이 브라우저에만 저장됩니다.",
      "activityMode": "기본으로 표시할 agent 활동 세부 수준을 선택합니다.",
      "codeWrap": "작은 화면에서도 긴 코드 줄을 읽기 쉽게 유지합니다.",
      "maxResults": "각 web_search 호출에서 반환되는 결과 수입니다.",
      "timeout": "검색 제공자 요청이 타임아웃되기 전의 초입니다.",
      "jinaReader": "가능할 때 web_fetch에 Jina Reader를 사용합니다.",
      "imageGeneration": "구성된 이미지 제공자가 있을 때 채팅에서 generate_image를 노출합니다.",
      "imageProvider": "generate_image에 사용할 등록 제공자를 선택합니다.",
      "imageProviderStatus": "이미지 생성은 제공자 자격 증명을 재사용합니다.",
      "imageModel": "선택한 이미지 제공자에 보낼 모델 이름입니다.",
      "defaultAspectRatio": "프롬프트가 비율을 선택하지 않을 때 사용됩니다.",
      "defaultImageSize": "지원하는 제공자에 보낼 크기 힌트입니다.",
      "maxImagesPerTurn": "한 번의 generate_image 요청에서 생성할 수 있는 이미지 상한입니다.",
      "botName": "nanobot이 표시 이름을 사용하는 곳에 표시됩니다.",
      "botIcon": "Bot 이름 옆에 표시할 짧은 emoji 또는 텍스트입니다.",
      "timezone": "일정과 시간 인식 답변에 사용됩니다.",
      "localServiceAccess": "Full Access shell 명령이 localhost 서비스에 접근할 수 있게 합니다.",
      "webuiDefaultAccess": "프로젝트별 권한이 없는 Web 채팅에 사용됩니다.",
      "securityManagedControls": "웹 가져오기는 항상 로컬, 사설, 메타데이터 서비스를 보호합니다. 핵심 채널 보안은 config.json에서 관리됩니다.",
      "currentModel": "새 응답에 사용됩니다.",
      "selectedModelProvider": "선택한 모델에 의해 설정됩니다.",
      "selectedModelValue": "선택한 모델에 의해 설정됩니다.",
      "brandLogos": "설정에서 타사 제공자와 CLI 로고를 표시합니다.",
      "cliAppsCatalog": "nanobot이 로컬에서 실행할 수 있는 앱 CLI 어댑터만 설치합니다. 네이티브 앱은 변경하지 않습니다.",
      "cliAppsFilter": "앱, 카테고리 또는 기능으로 검색합니다.",
      "logs": "네이티브 엔진 로그 폴더를 엽니다.",
      "diagnostics": "지원용 작은 런타임 보고서를 내보냅니다.",
      "localServiceAccessNative": "Full Access shell 명령이 이 Mac의 서비스에 접근할 수 있게 합니다.",
      "webuiDefaultAccessNative": "프로젝트별 권한이 없는 네이티브 채팅에 사용됩니다.",
      "contextWindow": "이 모델 구성의 기본 컨텍스트 예산을 선택합니다.",
      "transcription": "마이크 입력을 보내기 전에 텍스트로 변환합니다. 채널 음성 메시지도 같은 설정을 사용합니다.",
      "transcriptionProvider": "Providers에 저장된 해당 제공자의 인증 정보를 사용합니다.",
      "transcriptionProviderStatus": "API 키는 transcription 설정이 아니라 providers 아래에 유지됩니다.",
      "transcriptionModel": "제공자가 사용자 지정 모델 ID를 요구하지 않으면 해석된 기본값을 사용하세요.",
      "transcriptionLanguage": "en, zh, ja, ko 같은 선택적 ISO-639 힌트입니다."
    },
    "values": {
      "light": "라이트",
      "dark": "다크",
      "notAvailable": "사용 불가",
      "enabled": "활성화됨",
      "disabled": "비활성화됨",
      "restartPending": "재시작 대기",
      "ready": "준비됨",
      "privateEngine": "비공개 엔진",
      "unixSocket": "Unix 소켓",
      "defaultWorkspace": "기본 작업 공간",
      "comfortable": "편안함",
      "compact": "컴팩트",
      "auto": "자동",
      "expanded": "펼침",
      "on": "켜짐",
      "off": "꺼짐",
      "defaultPermission": "기본 권한",
      "fullAccess": "전체 접근",
      "configured": "구성됨",
      "notConfigured": "미구성",
      "pending": "대기 중",
      "restartingEngine": "재시작 중"
    },
    "status": {
      "loading": "설정을 불러오는 중...",
      "loadError": "설정을 불러올 수 없습니다",
      "unsaved": "저장되지 않은 변경 사항이 있습니다.",
      "upToDate": "최신 상태입니다.",
      "savedRestart": "저장했습니다. 적용하려면 nanobot을 재시작하세요.",
      "restartAfterSaving": "변경 사항을 저장한 뒤 준비되면 재시작하세요.",
      "savedRestartApply": "저장했습니다. 준비되면 재시작하세요.",
      "imageProviderRestart": "이미지 제공자 변경 사항을 저장했습니다. 준비되면 재시작하세요.",
      "hostRestartAfterSaving": "저장하면 nanobot이 엔진을 재시작합니다.",
      "hostRestartPending": "저장했습니다. 준비되면 엔진을 재시작합니다.",
      "hostApiUnavailable": "호스트 작업은 네이티브 앱 안에서만 사용할 수 있습니다.",
      "logsOpened": "로그 폴더를 열었습니다.",
      "logsOpenFailed": "로그 폴더를 열 수 없습니다.",
      "diagnosticsExported": "진단을 {{path}}에 내보냈습니다.",
      "diagnosticsExportFailed": "진단을 내보낼 수 없습니다."
    },
    "actions": {
      "save": "저장",
      "saving": "저장 중",
      "edit": "편집",
      "cancel": "취소",
      "open": "열기",
      "export": "내보내기",
      "opening": "여는 중...",
      "exporting": "내보내는 중..."
    },
    "byok": {
      "description": "직접 provider 키를 가져옵니다. Nanobot은 현재 config에서 값을 읽고, 설정된 provider만 일반 설정에서 선택할 수 있습니다.",
      "configured": "설정됨",
      "notConfigured": "설정 안 됨",
      "configuredSection": "설정됨",
      "notConfiguredSection": "설정 안 됨",
      "showMore": "{{count}}개 더 보기",
      "showLess": "접기",
      "apiKey": "API key",
      "apiBase": "API base",
      "apiKeyPlaceholder": "API key 입력",
      "apiKeyConfiguredPlaceholder": "비워 두면 현재 key 유지",
      "configuredKeyHint": "설정된 key",
      "apiBasePlaceholder": "provider 기본값 사용",
      "apiKeyRequired": "이 provider를 설정하려면 API key가 필요합니다.",
      "showApiKey": "API key 표시",
      "hideApiKey": "API key 숨기기",
      "noConfiguredProviders": "설정된 provider가 없습니다",
      "configureFirst": "먼저 BYOK에서 provider를 설정하세요.",
      "openByok": "BYOK 열기",
      "tabs": {
        "ariaLabel": "BYOK 자격 증명 유형",
        "llm": "LLM",
        "webSearch": "웹 검색"
      },
      "webSearch": {
        "provider": "검색 provider",
        "providerHelp": "web search 도구가 사용할 백엔드를 선택합니다.",
        "selectProvider": "provider 선택",
        "credentials": "자격 증명",
        "noCredentialRequired": "key 필요 없음",
        "noCredentialHelp": "DuckDuckGo는 API key를 저장하지 않고 사용할 수 있습니다.",
        "apiKeyHelp": "config에 저장되며 저장 후에는 마스킹되어 표시됩니다.",
        "baseUrl": "Base URL",
        "baseUrlHelp": "SearXNG에는 자체 인스턴스 URL이 필요합니다.",
        "baseUrlPlaceholder": "https://search.example.com",
        "apiKeyRequired": "이 검색 provider에는 API key가 필요합니다.",
        "baseUrlRequired": "SearXNG에는 Base URL이 필요합니다.",
        "missingCredential": "저장하기 전에 필요한 자격 증명을 입력하세요.",
        "saveHint": "변경 사항은 새 web search 요청에 적용됩니다."
      }
    },
    "overview": {
      "model": "현재 모델",
      "providers": "제공자",
      "configuredCount": "{{count}}개 구성됨",
      "totalProviders": "{{count}}개 사용 가능",
      "webSearch": "웹 검색",
      "imageGeneration": "이미지 생성",
      "voiceInput": "음성 입력",
      "workspace": "작업공간"
    },
    "usage": {
      "title": "Token 활동",
      "shortTitle": "Token Usage",
      "subtitle": "최근 12개월 동안 제공자가 보고한 사용량입니다.",
      "empty": "새 모델 응답 이후 token 활동이 표시됩니다.",
      "totalTokens": "누적 Token 수",
      "peakTokens": "최고 Token 수",
      "thirtyDayTokens": "30일 Token 수",
      "currentStreak": "현재 연속 일수",
      "longestStreak": "최장 연속 일수",
      "daysValue": "{{count}}일",
      "last30": "30일",
      "activeDays": "활성 일수",
      "requests": "요청",
      "estimated": "추정",
      "includesEstimates": "추정 포함",
      "cellTitle": "{{date}}: {{tokens}} tokens, 요청 {{requests}}회",
      "sources": {
        "user": "채팅",
        "api": "API",
        "cron": "자동화",
        "dream": "메모리 정리",
        "system": "시스템"
      }
    },
    "providers": {
      "searchPlaceholder": "제공자 검색",
      "noMatches": "일치하는 제공자가 없습니다.",
      "saveProvider": "제공자 저장"
    },
    "image": {
      "selectProvider": "제공자 선택",
      "selectAspect": "비율 선택",
      "selectSize": "크기 선택",
      "configureProvider": "제공자 구성",
      "missingCredential": "이미지 생성을 활성화하기 전에 이 제공자를 구성하세요."
    },
    "models": {
      "selectModel": "모델 선택",
      "addConfiguration": "구성 추가",
      "newConfiguration": "새 모델 구성",
      "newConfigurationHelp": "제공자와 모델을 원클릭 옵션으로 저장합니다.",
      "configurationName": "구성 이름",
      "configurationNameHelp": "저장된 모델 구성의 이름을 변경합니다.",
      "configurationNamePlaceholder": "빠른 작성",
      "searchModels": "모델 ID 검색 또는 입력",
      "useCustomModel": "사용",
      "loadingModels": "모델 불러오는 중...",
      "searchCatalog": "제공자 카탈로그에서 모델을 선택합니다.",
      "modelsAvailable": "사용 가능",
      "noModelResults": "일치하는 모델이 없습니다.",
      "loadFailed": "모델 목록을 사용할 수 없습니다.",
      "unsupportedModelList": "모델 ID를 직접 입력하세요.",
      "providerNotConfigured": "모델을 불러오기 전에 이 제공자를 설정하세요.",
      "autoProviderCustomOnly": "자동 제공자 모드는 사용자 지정 모델 ID를 사용합니다."
    },
    "timezone": {
      "select": "시간대 선택",
      "search": "시간대 검색",
      "empty": "일치하는 시간대가 없습니다."
    },
    "cliApps": {
      "allCategories": "모든 카테고리",
      "availableCount": "앱 {{count}}개",
      "installedCount": "{{count}}개 설치됨",
      "summary": "CLI {{total}}개 중 {{installed}}개 설치됨",
      "filterAll": "전체",
      "filterInstalled": "설치된 CLI",
      "filterNotInstalled": "미설치",
      "searchPlaceholder": "CLI 검색",
      "statusInstalled": "설치됨",
      "statusAvailable": "사용 가능",
      "statusMissing": "의존성 필요",
      "statusUnsupported": "지원 안 함",
      "statusNotInstalled": "미설치",
      "unsupported": "지원 안 함",
      "loading": "CLI 앱 로드 중...",
      "empty": "이 필터와 일치하는 CLI 앱이 없습니다.",
      "readyTitle": "@{{name}} 준비됨",
      "readyStatus": "준비됨",
      "readyPrompt": "@{{name}}을 사용해 이 CLI가 무엇을 할 수 있는지 확인하세요.",
      "readyTry": "@{{name}} 사용해 보기",
      "readyCopied": "복사됨",
      "openChat": "채팅 열기",
      "requires": "필요 항목",
      "test": "CLI 테스트",
      "update": "CLI 업데이트",
      "uninstall": "CLI 제거",
      "install": "CLI 설치",
      "unavailable": "사용 불가",
      "noDescription": "설명이 없습니다."
    },
    "about": {
      "version": "버전",
      "checking": "확인 중...",
      "checkForUpdates": "업데이트 확인",
      "upToDate": "최신 버전입니다",
      "updateAvailable": "업데이트 사용 가능 v{{version}}"
    },
    "mcp": {
      "allCategories": "모든 카테고리",
      "summary": "프리셋 {{total}}개 중 {{installed}}개 활성화됨",
      "filterAll": "전체",
      "filterInstalled": "활성화됨",
      "filterNotInstalled": "비활성",
      "searchPlaceholder": "MCP 프리셋 검색",
      "moreOptions": "추가 MCP 옵션",
      "moreOptionsSubtitle": "사용자 지정 서버를 추가하거나 mcp.json을 가져옵니다.",
      "customTitle": "사용자 지정 MCP",
      "customSubtitle": "stdio, HTTP 또는 SSE MCP 서버를 추가합니다.",
      "customAction": "사용자 지정",
      "importAction": "가져오기",
      "serverName": "서버 이름",
      "serverUrl": "URL",
      "transport": "전송 방식",
      "command": "명령",
      "args": "Args JSON",
      "headers": "Headers JSON",
      "env": "Env JSON",
      "timeout": "도구 제한 시간",
      "advancedOptions": "고급 옵션",
      "hideAdvanced": "고급 숨기기",
      "saveCustom": "MCP 저장",
      "configImport": "mcp.json 가져오기",
      "importConfig": "가져오기",
      "restartRequired": "업데이트된 MCP 도구를 연결하려면 nanobot을 다시 시작하세요.",
      "toolsFound": "도구 {{count}}개",
      "loading": "MCP 프리셋 로드 중...",
      "empty": "이 필터와 일치하는 MCP 프리셋이 없습니다.",
      "openDocs": "문서 열기",
      "test": "테스트",
      "remove": "제거",
      "enable": "활성화",
      "enabled": "활성화됨",
      "setup": "연결",
      "configure": "연결",
      "connectTitle": "{{name}} 연결",
      "connectHint": "계정 설정에서 키를 추가하세요.",
      "saveAndEnable": "저장 후 활성화",
      "updateSetup": "설정 업데이트",
      "configured": "구성됨",
      "keepExisting": "기존 값을 유지하려면 비워 두세요",
      "statusConfigured": "구성됨",
      "statusMissingCredentials": "키 필요",
      "statusMissingDependency": "의존성 필요",
      "statusComingSoon": "곧 제공",
      "statusNotInstalled": "비활성",
      "toolScope": "도구",
      "allTools": "전체",
      "noTools": "없음",
      "testForTools": "테스트를 실행해 개별 도구를 확인하고 선택하세요."
    },
    "legal": {
      "thirdPartyBrands": "제품 이름, 로고 및 브랜드는 각 소유자의 자산입니다. 사용은 식별 목적일 뿐 보증이나 제휴를 의미하지 않습니다."
    },
    "apps": {
      "description": "nanobot이 채팅에서 사용할 수 있는 App CLI와 MCP 서비스를 추가합니다.",
      "cliLabel": "CLI",
      "mcpLabel": "MCP",
      "filterAll": "전체",
      "filterCli": "CLI 앱",
      "filterMcp": "MCP 서비스",
      "enabledSummary": "{{count}}개 활성화됨",
      "caption": "CLI {{cli}}개 · MCP {{mcp}}개",
      "searchPlaceholder": "앱 검색",
      "featured": "추천",
      "loading": "앱을 불러오는 중...",
      "empty": "일치하는 앱이 없습니다."
    },
    "automations": {
      "filters": {
        "all": "전체",
        "active": "활성",
        "paused": "일시 중지",
        "failed": "확인 필요",
        "system": "시스템"
      },
      "sort": {
        "next": "다음 실행",
        "last": "마지막 실행",
        "updated": "업데이트",
        "name": "이름"
      },
      "search": "작업, 메시지, 연결된 채팅 또는 일정 검색",
      "queue": "대기열",
      "loading": "자동화를 불러오는 중...",
      "noMatches": "이 보기와 일치하는 자동화가 없습니다.",
      "empty": "아직 자동화가 없습니다.",
      "emptyHint": "실행될 위치에서 만들면 nanobot이 올바른 컨텍스트를 유지합니다.",
      "oneShot": "일회성",
      "systemTask": "시스템 관리 자동화",
      "labels": {
        "schedule": "일정",
        "next": "다음",
        "origin": "연결된 채팅",
        "created": "생성",
        "updated": "업데이트"
      },
      "runNow": "지금 실행",
      "pause": "일시 중지",
      "resume": "재개",
      "edit": "편집",
      "delete": "삭제",
      "protected": "보호됨",
      "editTitle": "자동화 편집",
      "save": "저장",
      "deleteTitle": "자동화 삭제",
      "deleteDescription": "{{name}}을 cron 저장소에서 삭제합니다. 이전 채팅 메시지는 세션에 남습니다.",
      "cancel": "취소",
      "status": {
        "system": "시스템",
        "running": "실행 중",
        "paused": "일시 중지",
        "failed": "실패",
        "completed": "완료",
        "noSchedule": "일정 없음",
        "active": "활성"
      },
      "origin": {
        "system": "시스템",
        "unknown": "연결된 채팅 없음"
      },
      "channels": {
        "api": "API",
        "cli": "CLI",
        "dingtalk": "DingTalk",
        "discord": "Discord",
        "email": "Email",
        "feishu": "Feishu",
        "matrix": "Matrix",
        "msteams": "Microsoft Teams",
        "qq": "QQ",
        "slack": "Slack",
        "telegram": "Telegram",
        "wechat": "WeChat",
        "wecom": "WeCom",
        "weixin": "WeChat",
        "whatsapp": "WhatsApp"
      },
      "schedule": {
        "at": "{{time}}",
        "every": "{{duration}}마다",
        "cron": "Cron {{expr}}",
        "cronWithTz": "Cron {{expr}} · {{tz}}",
        "withTz": "{{summary}} · {{tz}}",
        "dailyAt": "매일 {{time}}",
        "weekdaysAt": "평일 {{time}}",
        "hourlyAt": "매시간 :{{minute}}",
        "hourlyWindow": "{{start}}-{{end}} 사이 매시간 :{{minute}}",
        "custom": "사용자 지정 일정"
      },
      "next": {
        "paused": "일시 중지",
        "pending": "실행 중",
        "none": "다음 실행 없음"
      },
      "message": {
        "showMore": "전체 메시지 보기",
        "showLess": "접기"
      },
      "fields": {
        "name": "이름",
        "message": "메시지",
        "scheduleType": "일정 유형",
        "every": "간격",
        "unit": "단위",
        "cronExpression": "Cron 식",
        "timezone": "시간대",
        "runAt": "실행 시간"
      },
      "scheduleTypes": {
        "every": "간격",
        "cron": "Cron",
        "at": "일회성"
      },
      "everyUnits": {
        "second": "초",
        "minute": "분",
        "hour": "시간",
        "day": "일"
      },
      "validation": {
        "nameRequired": "이름은 필수입니다.",
        "messageRequired": "메시지는 필수입니다.",
        "intervalRequired": "간격은 양수여야 합니다.",
        "cronRequired": "Cron 식은 필수입니다.",
        "timeRequired": "실행 시간은 필수입니다.",
        "futureRequired": "실행 시간은 현재보다 이후여야 합니다."
      }
    },
    "oauth": {
      "authentication": "OAuth 인증",
      "signIn": "로그인",
      "signingIn": "로그인 중...",
      "signInAgain": "다시 로그인",
      "signOut": "로그아웃",
      "signedInAs": "{{account}}로 로그인됨",
      "signInHelp": "이 기기에서 로그인합니다. API key는 config에 저장되지 않습니다.",
      "signInRequired": "로그인이 필요합니다",
      "signInBeforeSaving": "이 OAuth 제공자를 활성 모델 제공자로 저장하기 전에 로그인하세요.",
      "signedIn": "로그인됨",
      "notSignedIn": "로그인 안 됨"
    },
    "skills": {
      "description": "이 에이전트가 대화 중에 불러올 수 있는 지시 스킬을 확인합니다.",
      "caption": "{{available}}개 사용 가능 · 총 {{total}}개",
      "featured": "에이전트 스킬",
      "empty": "사용 가능한 스킬이 없습니다.",
      "sourceWorkspace": "사용자 지정",
      "sourceBuiltin": "내장",
      "statusAvailable": "사용 가능",
      "statusUnavailable": "사용 불가",
      "unavailableReason": "누락: {{reason}}",
      "openDetails": "{{name}} 상세 열기",
      "loadingDetail": "스킬 상세를 불러오는 중...",
      "loadFailed": "스킬 상세를 불러올 수 없습니다.",
      "descriptionTitle": "설명",
      "source": "출처",
      "status": "상태",
      "requirements": "요구 사항",
      "noRequirements": "명시된 요구 사항이 없습니다.",
      "commands": "명령",
      "environment": "환경 변수",
      "missingCommands": "CLI 누락",
      "missingEnvironment": "ENV 누락",
      "unavailableReasonLabel": "사용 불가 이유",
      "rawInstructions": "원본 SKILL.md",
      "rawInstructionsEmpty": "원본 지침이 없습니다.",
      "detailDescription": "{{name}} 세부 정보."
    },
    "voice": {
      "selectProvider": "제공자 선택",
      "configureProvider": "제공자 설정",
      "languageAuto": "자동"
    }
  },
  "chat": {
    "fallbackTitle": "채팅 {{id}}",
    "forkTitle": "분기: {{title}}",
    "loading": "불러오는 중…",
    "noSessions": "아직 세션이 없습니다.",
    "showMore": "{{count}}개 더 보기",
    "collapsed": "{{count}}개 채팅 접힘",
    "showLess": "접기",
    "actions": "{{title}} 채팅 작업",
    "newInProject": "{{project}}에서 새 채팅 시작",
    "activity": {
      "running": "Agent running",
      "complete": "Agent finished",
      "updated": "New activity"
    },
    "pin": "Pin",
    "unpin": "Unpin",
    "rename": "Rename",
    "renameTitle": "Rename chat",
    "renameDescription": "Choose a local sidebar name for this chat.",
    "renamePlaceholder": "Chat name",
    "renameProjectTitle": "Rename project",
    "renameProjectDescription": "Choose a local sidebar name for this project.",
    "renameProjectPlaceholder": "Project name",
    "renameSave": "Save",
    "archive": "Archive",
    "unarchive": "Unarchive",
    "showArchived": "Show archived",
    "hideArchived": "Hide archived",
    "delete": "삭제",
    "newChat": "새 채팅",
    "groups": {
      "pinned": "Pinned",
      "all": "Chats",
      "projects": "Projects",
      "today": "Today",
      "yesterday": "Yesterday",
      "earlier": "Earlier",
      "archived": "Archived"
    }
  },
  "deleteConfirm": {
    "title": "이 채팅을 삭제할까요?",
    "description": "이 작업은 되돌릴 수 없습니다.",
    "cancel": "취소",
    "confirm": "삭제",
    "automationsDescription": "이 채팅에는 예약된 자동화가 있습니다. 채팅을 삭제하면 자동화도 함께 삭제됩니다.",
    "moreAutomations": "+ {{count}}개 더",
    "confirmWithAutomations": "삭제",
    "schedule": {
      "at": "{{time}}",
      "every": "{{duration}}마다",
      "cron": "Cron {{expr}}",
      "cronWithTz": "Cron {{expr}} · {{tz}}",
      "unknown": "사용자 지정 일정"
    },
    "next": {
      "label": "다음: {{time}}",
      "disabled": "일시 중지됨",
      "none": "다음 실행 없음"
    }
  },
  "connection": {
    "idle": "대기 중",
    "connecting": "연결 중…",
    "open": "연결됨",
    "reconnecting": "재연결 중…",
    "closed": "연결 끊김",
    "error": "연결 오류"
  },
  "thread": {
    "loadingConversation": "대화 불러오는 중…",
    "empty": {
      "greetings": {
        "workOn": "우리 무엇을 함께 해볼까요?",
        "start": "오늘은 어디서 시작할까요?",
        "build": "오늘은 무엇을 만들어볼까요?",
        "tackle": "함께 무엇을 해결할까요?"
      },
      "quickActions": {
        "plan": {
          "title": "프로젝트 계획 만들기",
          "prompt": "다음에 만들 것에 대한 간결한 프로젝트 계획을 작성해 주세요."
        },
        "analyze": {
          "title": "이 데이터 분석하기",
          "prompt": "이 데이터를 분석하고 가장 중요한 패턴을 짚어 주세요."
        },
        "brainstorm": {
          "title": "아이디어 브레인스토밍",
          "prompt": "이 문제에 대한 실용적인 아이디어와 트레이드오프를 몇 가지 제안해 주세요."
        },
        "code": {
          "title": "코드 작성하기",
          "prompt": "이 작업을 위한 코드를 작성해 주세요. 가장 작은 유용한 변경부터 시작해 주세요."
        },
        "summarize": {
          "title": "문서 요약하기",
          "prompt": "이 문서를 요약하고 핵심 내용을 정리해 주세요."
        },
        "more": {
          "title": "더 보기",
          "prompt": "이 워크스페이스에서 도와줄 수 있는 유용한 방법을 몇 가지 보여 주세요."
        }
      },
      "imageQuickActions": {
        "icon": {
          "title": "앱 아이콘 디자인",
          "prompt": "nanobot을 위한 깔끔한 1:1 앱 아이콘을 생성해 주세요. 친근한 로봇, 단순한 벡터 스타일, 부드러운 파란색과 흰색 팔레트, 텍스트 없음."
        },
        "sticker": {
          "title": "스티커 만들기",
          "prompt": "작은 로봇 도우미의 귀여운 스티커 스타일 이미지를 생성해 주세요. 투명해 보이는 배경, 표정이 풍부하고 장난스러운 느낌."
        },
        "poster": {
          "title": "포스터 만들기",
          "prompt": "개인 AI 도우미를 위한 세련된 포스터 콘셉트를 생성해 주세요. 현대적인 구성, 강한 시각적 계층, 랜딩 페이지에 어울리는 스타일."
        },
        "product": {
          "title": "제품 목업",
          "prompt": "대화형 AI 웹 앱을 위한 깔끔한 제품 목업 이미지를 생성해 주세요. 미니멀한 인터페이스, 고급스러운 조명, 현실적인 기기 프레임."
        },
        "portrait": {
          "title": "스타일화된 초상화",
          "prompt": "친근한 AI 동반자의 스타일화된 초상화를 생성해 주세요. 부드러운 조명, 세밀하지만 다가가기 쉬운 분위기, 현대적인 일러스트 스타일."
        },
        "edit": {
          "title": "이미지 편집",
          "prompt": "이미지 편집을 도와주세요. 먼저 편집할 이미지를 업로드하거나 지정하게 한 뒤, 편집된 결과를 생성해 주세요."
        }
      }
    },
    "header": {
      "toggleSidebar": "사이드바 전환",
      "newChat": "새 채팅 시작",
      "toggleTheme": "헤더에서 테마 전환",
      "settings": "설정 열기",
      "sessionInfo": "세션 세부 정보"
    },
    "sessionInfo": {
      "title": "세션",
      "untitled": "제목 없는 채팅",
      "automations": "자동화",
      "count": "{{count}}",
      "loading": "자동화를 불러오는 중...",
      "loadFailed": "자동화를 불러오지 못했습니다.",
      "empty": "이 세션에는 아직 자동화가 없습니다.",
      "disabled": "꺼짐",
      "schedule": {
        "at": "{{time}}",
        "every": "{{duration}}마다",
        "cron": "Cron {{expr}}",
        "cronWithTz": "Cron {{expr}} · {{tz}}",
        "unknown": "사용자 지정 일정"
      },
      "next": {
        "label": "다음 {{time}}",
        "pending": "곧 실행됨",
        "disabled": "일시 중지됨",
        "none": "다음 실행 없음"
      }
    },
    "composer": {
      "placeholderThread": "메시지를 입력하세요…",
      "placeholderHero": "무슨 생각을 하고 있나요?",
      "placeholderOpening": "새 채팅을 여는 중…",
      "placeholderStreaming": "모델이 응답 중입니다…",
      "inputAria": "메시지 입력",
      "sendHint": "Enter로 전송 · Shift+Enter로 줄바꿈",
      "runRuntimeTitle": "실행 중 · {{elapsed}}",
      "goalStateStrip": "목표 · {{label}}",
      "goalStateFallback": "목표",
      "goalStateExpandAria": "전체 목표 보기",
      "goalStateSheetTitle": "목표",
      "goalStateCloseAria": "목표 닫기",
      "send": "메시지 보내기",
      "stop": "응답 중지",
      "modelNotConfigured": "모델이 설정되지 않음",
      "configureModel": "모델 설정",
      "queued": {
        "label": "대기 중인 안내",
        "guide": "안내",
        "delete": "안내 삭제",
        "edit": "안내 수정",
        "drag": "드래그하여 순서 변경"
      },
      "attachImage": "이미지 첨부",
      "imageMode": {
        "label": "이미지 생성",
        "toggle": "이미지 생성 모드 전환",
        "placeholder": "이미지를 설명하거나 편집하세요…",
        "aspectAria": "이미지 화면 비율",
        "aspectLabel": "이미지 비율",
        "aspect": {
          "auto": "자동",
          "1_1": "정사각형 1:1",
          "3_4": "세로 3:4",
          "9_16": "스토리 9:16",
          "4_3": "가로 4:3",
          "16_9": "와이드 16:9"
        }
      },
      "tools": {
        "search": "검색",
        "reason": "추론",
        "deepResearch": "심층 조사",
        "voice": "음성 입력"
      },
      "voice": {
        "hint": "클릭해 받아쓰거나 길게 누르기",
        "stop": "녹음 중지",
        "transcribing": "변환 중...",
        "recordingStatus": "녹음 중 {{time}}"
      },
      "voiceErrors": {
        "unsupported": "이 브라우저는 음성 입력을 지원하지 않습니다.",
        "permission": "마이크 권한이 필요합니다.",
        "notConfigured": "먼저 음성 변환 제공업체를 설정하세요.",
        "tooLong": "녹음 시간이 너무 깁니다.",
        "tooShort": "음성을 녹음하려면 조금 더 길게 눌러 주세요.",
        "noInput": "마이크 입력이 감지되지 않았습니다.",
        "failed": "오디오를 변환하지 못했습니다."
      },
      "slash": {
        "ariaLabel": "슬래시 명령",
        "label": "명령",
        "navigateHint": "↑↓ 선택",
        "selectHint": "Enter/Tab 입력",
        "closeHint": "Esc 닫기",
        "commands": {
          "new": {
            "title": "새 채팅",
            "description": "현재 작업을 중지하고 새 대화를 시작합니다."
          },
          "stop": {
            "title": "현재 작업 중지",
            "description": "이 채팅에서 실행 중인 agent 턴을 취소합니다."
          },
          "restart": {
            "title": "nanobot 재시작",
            "description": "bot 프로세스를 제자리에서 재시작합니다."
          },
          "status": {
            "title": "상태 보기",
            "description": "런타임, provider, channel 상태를 표시합니다."
          },
          "model": {
            "title": "모델",
            "description": "활성 모델 프리셋을 보거나 전환합니다."
          },
          "history": {
            "title": "대화 기록 보기",
            "description": "저장된 최근 N개의 대화 메시지를 출력합니다."
          },
          "dream": {
            "title": "Dream 실행",
            "description": "메모리 정리를 수동으로 트리거합니다."
          },
          "dream_log": {
            "title": "Dream 로그 보기",
            "description": "마지막 Dream 정리에서 변경된 내용을 표시합니다."
          },
          "dream_restore": {
            "title": "메모리 복원",
            "description": "이전 Dream 스냅샷으로 메모리를 되돌립니다."
          },
          "goal": {
            "title": "장기 목표",
            "description": "에이전트에게 지속적인 다단계 목표로 처리하도록 지시합니다."
          },
          "help": {
            "title": "도움말 보기",
            "description": "사용 가능한 슬래시 명령을 나열합니다."
          },
          "pairing": {
            "title": "페어링",
            "description": "페어링 요청을 관리합니다."
          }
        },
        "badges": {
          "current": "현재",
          "recent": "최근"
        },
        "details": {
          "goalActive": "목표 실행 중",
          "goalReady": "지속 목표 시작",
          "history": "최근 메시지 보기",
          "stopRunning": "실행 중"
        }
      },
      "encoding": "처리 중…",
      "remove": "첨부 제거",
      "normalizedSizeHint": "{{orig}} → {{current}} (자동 압축)",
      "imageRejected": {
        "unsupported_type": "지원하지 않는 파일 형식입니다",
        "too_many_images": "메시지당 최대 {{max}}장까지 가능합니다",
        "magic_mismatch": "이미지 파일이 아닌 것 같습니다",
        "decode_failed": "이 이미지를 디코딩할 수 없습니다",
        "too_large": "이미지가 너무 큽니다. 더 작은 걸로 시도해 주세요",
        "io": "이 파일을 읽을 수 없습니다"
      },
      "mentions": {
        "ariaLabel": "앱",
        "label": "앱",
        "cliGroup": "CLI 앱",
        "mcpGroup": "MCP 서비스",
        "cliBadge": "CLI",
        "mcpBadge": "MCP",
        "cliDescription": "@{{name}}을 로컬 CLI 앱으로 사용",
        "mcpDescription": "@{{name}}을 MCP 서버로 사용"
      },
      "workspace": {
        "accessAria": "Workspace access mode",
        "projectAria": "프로젝트 선택",
        "projectPlaceholder": "프로젝트 선택",
        "default": "Default Permission",
        "full": "Full Access"
      }
    },
    "scrollToBottom": "맨 아래로 스크롤",
    "loadEarlier": "이전 메시지 불러오기",
    "forkedFromHistory": "기록에서 분기됨",
    "promptNavigator": {
      "open": "프롬프트 탐색기 열기",
      "title": "프롬프트",
      "search": "프롬프트 검색",
      "noResults": "일치하는 프롬프트가 없습니다.",
      "jumpTo": "프롬프트로 이동: {{label}}"
    }
  },
  "message": {
    "streaming": "생성 중",
    "assistantTyping": "도우미가 입력 중",
    "toolSingle": "도구 사용 중",
    "toolMany": "도구 {{count}}개 사용됨",
    "toolSummary": "도구 {{count}}개",
    "toolSummaryMany": "도구 {{count}}개",
    "reasoningTools": "추론 · 도구 {{count}}개",
    "reasoningToolsSingular": "추론 · 도구 1개",
    "reasoning": "추론",
    "reasoningStreaming": "추론 중…",
    "reasoningSummary": "추론",
    "agentActivitySummary": "{{reasoning}}단계 · 도구 호출 {{tools}}회",
    "agentActivityToolsOnly": "도구 호출 {{tools}}회",
    "agentActivityLiveSummary": "진행 중… · {{reasoning}}단계 · 도구 호출 {{tools}}회",
    "agentActivityLiveToolsOnly": "진행 중… · 도구 호출 {{tools}}회",
    "imageAttachment": "이미지 첨부",
    "forkFromHere": "분기",
    "copyReply": "복사",
    "copiedReply": "복사됨",
    "turnLatencyTitle": "응답 시간(엔드투엔드)",
    "activityThinkingFor": "{{duration}} 동안 생각 중",
    "activityThought": "생각함",
    "activityThoughtFor": "{{duration}} 동안 생각함",
    "activityWorkingFor": "{{duration}} 동안 작업 중",
    "activityWorked": "작업함",
    "activityWorkedFor": "{{duration}} 동안 작업함",
    "cliActivityRunningOne": "@{{name}} 사용 중",
    "cliActivityRanOne": "@{{name}} 사용함",
    "cliActivityFailedOne": "@{{name}} 실패",
    "cliActivityRunningMany": "CLI 앱 {{count}}개 사용 중",
    "cliActivityRanMany": "CLI 앱 {{count}}개 사용함",
    "cliActivityFailedMany": "CLI 앱 {{count}}개 실패",
    "cliRunRunning": "사용 중",
    "cliRunRan": "사용함",
    "cliRunFailed": "실패",
    "automationSourceFallback": "자동화",
    "automationTriggered": "자동 실행됨"
  },
  "lightbox": {
    "title": "이미지 미리보기",
    "open": "이미지 보기",
    "prev": "이전 이미지",
    "next": "다음 이미지",
    "close": "미리보기 닫기"
  },
  "filePreview": {
    "aria": "파일 미리보기",
    "close": "파일 미리보기 닫기",
    "loading": "미리보기 로딩 중...",
    "failed": "이 파일을 미리 볼 수 없습니다.",
    "routeMissing": "파일 미리보기에는 최신 gateway가 필요합니다. nanobot gateway를 다시 시작한 뒤 다시 시도하세요.",
    "resize": "파일 미리보기 크기 조절",
    "truncated": "파일이 커서 미리보기가 잘렸습니다."
  },
  "code": {
    "fallbackLanguage": "코드",
    "copyAria": "코드 복사",
    "copy": "복사",
    "copied": "복사됨"
  },
  "common": {
    "dismiss": "닫기"
  },
  "errors": {
    "messageTooBig": {
      "title": "메시지가 너무 큽니다",
      "body": "마지막 메시지가 서버의 크기 제한을 초과하여 거부되었습니다. 이미지를 줄이거나 더 작은 파일로 바꿔서 다시 보내 주세요."
    },
    "workspaceScopeRejected": {
      "title": "Workspace was not changed",
      "body": "Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."
    }
  },
  "workspace": {
    "dialog": {
      "defaultProject": "Default workspace",
      "manual": "경로 붙여넣기",
      "manualPlaceholder": "/Users/name/project",
      "usePath": "Use Path",
      "absolutePathRequired": "Enter an absolute folder path on this machine."
    }
  }
}
