{
  "common": {
    "save": "저장",
    "cancel": "취소",
    "delete": "삭제",
    "loading": "로드 중...",
    "error": "오류가 발생했습니다",
    "success": "성공",
    "confirm": "확실합니까?",
    "refresh": "새로고침",
    "close": "닫기",
    "add": "추가",
    "edit": "편집",
    "search": "검색",
    "back": "뒤로",
    "next": "다음",
    "submit": "제출",
    "reset": "재설정",
    "copy": "복사",
    "copied": "복사되었습니다!",
    "enabled": "활성화됨",
    "disabled": "장애인",
    "active": "활성",
    "inactive": "비활성",
    "noData": "사용 가능한 데이터가 없습니다.",
    "configure": "구성",
    "manage": "관리하다",
    "name": "이름",
    "actions": "작업",
    "status": "상태",
    "type": "유형",
    "model": "모델",
    "models": "모델",
    "provider": "공급자",
    "account": "계정",
    "time": "시간",
    "details": "세부정보",
    "created": "생성됨",
    "lastUsed": "마지막으로 사용됨",
    "loadMore": "더 로드하기",
    "noResults": "검색결과가 없습니다",
    "reloadPage": "페이지 새로고침",
    "connected": "연결됨",
    "disconnected": "연결이 끊김",
    "notConfigured": "구성되지 않음",
    "testConnection": "연결 테스트",
    "enable": "활성화",
    "disable": "비활성화",
    "columns": "열",
    "newest": "최신",
    "oldest": "가장 오래된",
    "all": "모두",
    "none": "없음",
    "yes": "예",
    "no": "아니요",
    "warning": "경고",
    "note": "참고",
    "free": "무료",
    "skipToContent": "콘텐츠로 건너뛰기"
  },
  "sidebar": {
    "home": "홈",
    "dashboard": "대시보드",
    "providers": "공급자",
    "combos": "콤보",
    "usage": "사용법",
    "analytics": "분석",
    "costs": "비용",
    "health": "건강",
    "limits": "한도 및 할당량",
    "cliTools": "CLI 도구",
    "settings": "설정",
    "translator": "번역기",
    "docs": "문서",
    "issues": "문제",
    "endpoint": "엔드포인트",
    "apiManager": "API 관리자",
    "logs": "로그",
    "auditLog": "감사 로그",
    "shutdown": "종료",
    "restart": "다시 시작",
    "shutdownConfirm": "OmniRoute를 종료하시겠습니까?",
    "restartConfirm": "OmniRoute를 다시 시작하시겠습니까?",
    "version": "v{version}",
    "debug": "디버그",
    "system": "시스템",
    "help": "도움말",
    "serverDisconnected": "서버 연결 끊김",
    "serverDisconnectedMsg": "프록시 서버가 중지되었거나 다시 시작되는 중입니다.",
    "expandSidebar": "사이드바 확장",
    "collapseSidebar": "사이드바 접기"
  },
  "header": {
    "logout": "로그아웃",
    "language": "언어",
    "providers": "공급자",
    "providerDescription": "AI 공급자 연결 관리",
    "combos": "콤보",
    "comboDescription": "폴백을 사용한 모델 콤보",
    "usage": "사용 및 분석",
    "usageDescription": "API 사용량, 토큰 소비 및 요청 로그를 모니터링하세요.",
    "analytics": "분석",
    "analyticsDescription": "차트, 추세 및 평가 통찰력",
    "cliTools": "CLI 도구",
    "cliToolsDescription": "CLI 도구 구성",
    "home": "홈",
    "homeDescription": "OmniRoute에 오신 것을 환영합니다",
    "endpoint": "엔드포인트",
    "endpointDescription": "API 엔드포인트 구성",
    "settings": "설정",
    "settingsDescription": "환경설정 관리",
    "openaiCompatible": "OpenAI 호환",
    "anthropicCompatible": "인류 친화적"
  },
  "home": {
    "quickStart": "빠른 시작",
    "quickStartDesc": "4단계로 시작해 보세요. 공급자를 연결하고, 모델을 라우팅하고, 모든 것을 모니터링하세요.",
    "fullDocs": "전체 문서",
    "step1Title": "1. API 키 생성",
    "step1Desc": "<endpoint>Endpoint</endpoint> -> 등록된 키로 이동합니다. 환경당 하나의 키를 생성합니다.",
    "step2Title": "2. 공급자 연결",
    "step2Desc": "<providers>Providers</providers>에 계정을 추가하세요. OAuth, API 키 및 무료 등급을 지원합니다.",
    "step3Title": "3. 고객에게 지시하십시오",
    "step3Desc": "IDE 또는 API 클라이언트에서 기본 URL을 {url}으로 설정하세요.",
    "step4Title": "4. 모니터링 및 최적화",
    "step4Desc": "<logs>요청 로그</logs> 및 <analytics>Analytics</analytics>에서 토큰, 비용 및 오류를 추적합니다.",
    "providersOverview": "공급자 개요",
    "configuredOf": "{configured}은(는) {total} 사용 가능한 공급자로 구성되었습니다.",
    "noModelsAvailable": "이 제공업체에 사용할 수 있는 모델이 없습니다.",
    "configureFirst": "먼저 {providers}에서 연결을 구성하세요.",
    "configureProvider": "공급자 구성",
    "modelAvailable": "{count} 모델 사용 가능",
    "modelsAvailable": "{count} 모델 사용 가능",
    "connectionsActive": "{count} 연결 활성",
    "connectionsActivePlural": "{count} 연결이 활성화되었습니다.",
    "copyModelName": "모델명 복사",
    "documentation": "문서",
    "healthMonitor": "건강 모니터",
    "reportIssue": "문제 신고",
    "activeError": "{active} 활성 · {errors} 오류",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "API 키",
    "requestsShort": "{count} 요청",
    "providerModelsTitle": "{provider} - 모델",
    "copiedModel": "복사됨: {model}",
    "aliasLabel": "별칭"
  },
  "analytics": {
    "title": "분석",
    "overviewDescription": "모든 공급자와 모델 전반에 걸쳐 API 사용 패턴, 토큰 소비, 비용, 활동 추세를 모니터링하세요.",
    "evalsDescription": "평가 모음을 실행하여 LLM 엔드포인트를 테스트하고 검증하세요. 모델 품질을 비교하고, 회귀를 감지하고, 벤치마크 대기 시간을 측정합니다.",
    "overview": "개요",
    "evals": "평가"
  },
  "apiManager": {
    "title": "API 키",
    "createKey": "API 키 생성",
    "key": "열쇠",
    "revokeKey": "키 취소",
    "revokeConfirm": "이 API 키를 취소하시겠습니까?",
    "noKeys": "아직 API 키가 없습니다.",
    "noKeysDesc": "엔드포인트에 대한 요청을 인증하기 위한 첫 번째 API 키 생성",
    "keyLabel": "키 라벨",
    "permissions": "권한",
    "expiresAt": "만료",
    "never": "절대로",
    "revoke": "취소",
    "showKey": "키 표시",
    "hideKey": "키 숨기기",
    "copyKey": "API 키 복사",
    "allModels": "모든 모델",
    "selectedModels": "선택된 모델",
    "readOnly": "읽기 전용",
    "fullAccess": "전체 액세스",
    "keyManagement": "API 키 관리",
    "keyManagementDesc": "엔드포인트에 대한 요청을 인증하기 위한 API 키 생성 및 관리",
    "totalKeys": "총 키",
    "restricted": "제한됨",
    "totalRequests": "총 요청",
    "modelsAvailable": "사용 가능한 모델",
    "registeredKeys": "등록된 키",
    "keysRegistered": "{count} 키가 등록되었습니다.",
    "keyRegistered": "{count} 키가 등록되었습니다.",
    "keysSecurityNote": "각 키는 사용 추적을 분리하고 독립적으로 취소할 수 있습니다. 보안을 위해 키는 생성 후 마스크 처리됩니다.",
    "createFirstKey": "첫 번째 키 만들기",
    "name": "이름",
    "usage": "사용법",
    "created": "생성됨",
    "actions": "작업",
    "reqs": "요구 사항",
    "neverUsed": "한번도 사용하지 않음",
    "deleteConfirm": "이 API 키를 삭제하시겠습니까?",
    "usageTips": "사용 팁",
    "tipAuth": "Authorization 헤더의 API 키를 Bearer YOUR_KEY로 사용하세요.",
    "tipSecure": "키는 생성 중에 한 번만 표시되므로 안전하게 보관하세요.",
    "tipSeparate": "다양한 클라이언트 또는 환경에 대해 별도의 키 생성",
    "tipRestrict": "더 나은 보안 및 비용 관리를 위해 키를 특정 모델로 제한합니다.",
    "keyName": "키 이름",
    "keyNamePlaceholder": "예: 생산 키, 개발 키",
    "keyNameDesc": "이 키의 목적을 식별하려면 설명이 포함된 이름을 선택하세요.",
    "keyCreated": "API 키가 생성되었습니다.",
    "keyCreatedSuccess": "키가 생성되었습니다!",
    "keyCreatedNote": "지금 이 키를 복사하여 저장하세요. 다시 표시되지 않습니다.",
    "done": "완료",
    "savePermissions": "저장 권한",
    "allowAll": "모두 허용",
    "restrict": "제한하다",
    "allowAllInfo": "이 키는 사용 가능한 모든 모델에 액세스할 수 있습니다.",
    "restrictInfo": "이 키는 {total} 모델 중 {selected}에 액세스할 수 있습니다.",
    "selected": "{count} 선택됨",
    "all": "모두",
    "clear": "지우기",
    "searchModels": "이름이나 제공업체로 모델 검색...",
    "noModelsFound": "모델을 찾을 수 없습니다.",
    "keyNameRequired": "키 이름은 필수 항목입니다.",
    "keyNameTooLong": "키 이름은 {max}자 이하여야 합니다.",
    "keyNameInvalid": "키 이름에는 문자, 숫자, 공백, 하이픈, 밑줄만 포함할 수 있습니다.",
    "invalidKeyName": "잘못된 키 이름",
    "failedCreateKey": "키를 생성하지 못했습니다.",
    "failedCreateKeyRetry": "키를 생성하지 못했습니다. 다시 시도해 주세요.",
    "invalidKeyId": "잘못된 키 ID",
    "failedDeleteKey": "키를 삭제하지 못했습니다.",
    "failedDeleteKeyRetry": "키를 삭제하지 못했습니다. 다시 시도해 주세요.",
    "invalidModelsSelection": "잘못된 모델 선택",
    "cannotSelectMoreThanModels": "{max}개 이상의 모델을 선택할 수 없습니다.",
    "failedUpdatePermissions": "권한을 업데이트하지 못했습니다.",
    "failedUpdatePermissionsRetry": "권한을 업데이트하지 못했습니다. 다시 시도해 주세요.",
    "unknownProvider": "알 수 없음",
    "copyMaskedKey": "마스크된 키 복사",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "lastUsedOn": "마지막: {date}",
    "editPermissions": "권한 편집",
    "deleteKey": "키 삭제",
    "model": "{count} 모델",
    "models": "{count} 모델",
    "permissionsTitle": "권한: {name}",
    "allowAllDesc": "이 키는 사용 가능한 모든 모델에 액세스할 수 있습니다.",
    "restrictDesc": "이 키는 {totalModels} 모델 중 {selectedCount}에 액세스할 수 있습니다.",
    "selectedCount": "{count} 선택됨"
  },
  "auditLog": {
    "title": "감사 로그",
    "searchPlaceholder": "검색 작업...",
    "action": "액션",
    "actor": "배우",
    "target": "대상",
    "ipAddress": "IP 주소",
    "timestamp": "타임스탬프",
    "noEntries": "감사 항목을 찾을 수 없습니다.",
    "filterByAction": "작업별로 필터링...",
    "filterByActor": "배우별로 필터링...",
    "filterEntriesAria": "감사 로그 항목 필터링",
    "filterByActionTypeAria": "작업 유형별로 필터링",
    "filterByActorAria": "배우별로 필터링",
    "refreshAuditLogAria": "감사 로그 새로 고침",
    "tableAria": "감사 로그 항목",
    "failedFetchAuditLog": "감사 로그를 가져오지 못했습니다.",
    "notAvailable": "—",
    "description": "관리 조치 및 보안 이벤트",
    "showing": "{count} 항목 표시 중(오프셋 {offset})",
    "previous": "이전"
  },
  "cliTools": {
    "title": "CLI 도구",
    "noActiveProviders": "활성 제공업체 없음",
    "noActiveProvidersDesc": "CLI 도구를 구성하려면 먼저 공급자를 추가하고 연결하세요.",
    "mapModels": "지도 모델",
    "testConnection": "연결 테스트",
    "connectionStatus": "연결 상태",
    "configureEndpoint": "끝점 구성",
    "instructions": "지침",
    "modelMapping": "모델 매핑",
    "baseUrl": "기본 URL",
    "apiKey": "API 키",
    "configured": "구성됨",
    "notConfigured": "구성되지 않음",
    "notInstalled": "설치되지 않음",
    "custom": "맞춤",
    "unknown": "알 수 없음",
    "lastSavedAt": "마지막 저장: {date}",
    "never": "절대로",
    "justNow": "지금 막",
    "minutesAgoShort": "{count}분 전",
    "hoursAgoShort": "{count}시간 전",
    "daysAgoShort": "{count}일 전",
    "monthsAgoShort": "{count}개월 전",
    "yearsAgoShort": "{count}년 전",
    "runtimeCheckFailed": "런타임 확인 실패",
    "yourApiKeyPlaceholder": "귀하의 API 키",
    "modelPlaceholder": "공급자/모델 ID",
    "configurationSaved": "구성이 성공적으로 저장되었습니다.",
    "failedToSave": "구성을 저장하지 못했습니다.",
    "noApiKeysCreateOne": "API 키 없음 - 키 페이지에서 키 만들기",
    "defaultOmnirouteKey": "sk_omniroute(기본값)",
    "selectModel": "모델 선택",
    "selectModelForAlias": "{alias} 모델 선택",
    "selectModelForTool": "{tool}의 모델 선택",
    "select": "선택",
    "clear": "지우기",
    "comingSoon": "곧 출시 예정",
    "checkingRuntime": "런타임 상태 확인 중...",
    "guideOnlyIntegration": "가이드 전용 통합(로컬 런타임 필요 없음)",
    "cliRuntimeDetected": "CLI 런타임이 감지되어 준비됨",
    "cliFoundNotRunnable": "CLI를 찾았지만 실행할 수 없음{reason}",
    "cliRuntimeNotDetected": "CLI 런타임이 감지되지 않음",
    "binary": "바이너리",
    "configPath": "구성 경로",
    "configPathShort": "구성",
    "failedCheckRuntimeStatus": "런타임 상태를 확인하지 못했습니다.",
    "copy": "복사",
    "copied": "복사됨",
    "copyConfig": "구성 복사",
    "saveConfig": "구성 저장",
    "selectionSaved": "선택 항목이 저장되었습니다.",
    "guide": "가이드",
    "detected": "감지됨",
    "notReady": "준비되지 않음",
    "active": "활성",
    "inactive": "비활성",
    "startMitm": "MITM 시작",
    "stopMitm": "MITM 중지",
    "mitmStarted": "MITM이 성공적으로 시작되었습니다!",
    "mitmStopped": "MITM이 성공적으로 중지되었습니다!",
    "failedStart": "MITM을 시작하지 못했습니다.",
    "failedStop": "MITM을 중지하지 못했습니다.",
    "saveMappings": "매핑 저장",
    "mappingsSaved": "매핑이 저장되었습니다!",
    "failedSaveMappings": "매핑을 저장하지 못했습니다.",
    "howItWorks": "작동 방식:",
    "antigravityHowWorksDesc": "Antigravity는 Google의 엔드포인트로 요청을 보냅니다. MITM은 이를 가로채서 OmniRoute로 리디렉션합니다.",
    "antigravityStep1": "1. MITM을 시작하여 OmniRoute를 통해 요청을 라우팅합니다.",
    "antigravityStep2Prefix": "2. 추가",
    "antigravityStep2Suffix": "호스트 파일에 127.0.0.1로 저장하세요.",
    "antigravityStep3": "3. 반중력을 공개하면 요청이 프록시됩니다.",
    "sudoPasswordRequiredTitle": "Sudo 비밀번호가 필요합니다",
    "sudoPasswordHint": "호스트 파일 및 시스템 프록시 설정을 수정하려면 관리자 비밀번호가 필요합니다.",
    "enterSudoPassword": "sudo 비밀번호를 입력하세요",
    "sudoPasswordRequiredError": "Sudo 비밀번호가 필요합니다.",
    "cancel": "취소",
    "confirm": "확인",
    "settingsApplied": "설정이 성공적으로 적용되었습니다!",
    "failedApplySettings": "설정을 적용하지 못했습니다.",
    "settingsReset": "설정이 재설정되었습니다!",
    "failedResetSettings": "설정을 재설정하지 못했습니다.",
    "backupRestored": "백업이 복원되었습니다!",
    "failedRestore": "복원하지 못했습니다.",
    "checkingCli": "{tool} CLI 확인 중...",
    "cliNotRunnable": "{tool} CLI가 설치되었지만 실행할 수 없음",
    "cliNotInstalled": "{tool} CLI가 설치되지 않았습니다.",
    "cliNotDetected": "{tool} CLI가 감지되지 않음",
    "cliDetectedReady": "{tool} CLI가 감지되어 준비됨",
    "cliFoundFailedHealthcheck": "{tool} CLI를 찾았지만 런타임 상태 확인에 실패했습니다{reason}.",
    "installCliPrompt": "이 기능을 사용하려면 {tool} CLI를 설치하세요.",
    "installCodexPrompt": "자동 적용 기능을 사용하려면 Codex CLI를 설치하세요.",
    "hide": "숨기기",
    "howToInstall": "설치 방법",
    "installationGuide": "설치 가이드",
    "platforms": "macOS/리눅스/윈도우:",
    "afterInstallationRun": "설치 후 실행",
    "toVerify": "확인하기 위해.",
    "current": "현재",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "기본값으로 재설정",
    "providerModelPlaceholder": "공급자/모델 ID",
    "apply": "적용",
    "reset": "재설정",
    "manualConfig": "수동 구성",
    "backups": "백업",
    "configBackups": "구성 백업",
    "noBackupsYet": "아직 백업이 없습니다. 각 적용 또는 재설정 전에 백업이 자동으로 생성됩니다.",
    "restore": "복원",
    "backupRestoredReloading": "백업이 복원되었습니다! 상태를 다시 로드하는 중...",
    "failedRestoreBackup": "백업을 복원하지 못했습니다.",
    "applied": "적용되었습니다!",
    "failed": "실패",
    "resetDone": "재설정!",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute는 OpenAI 호환 공급자로 구성됩니다.",
    "provider": "공급자",
    "model": "모델",
    "providers": "공급자",
    "auth": "인증",
    "noApiKeysAvailable": "사용 가능한 API 키가 없습니다.",
    "usingDefaultOmniroute": "기본값 사용: sk_omniroute",
    "updateConfig": "구성 업데이트",
    "applyConfig": "구성 적용",
    "noBackupsAvailable": "사용 가능한 백업이 없습니다.",
    "profileSaved": "프로필 \"{name}\"이(가) 저장되었습니다!",
    "failedSaveProfile": "프로필을 저장하지 못했습니다.",
    "profileActivated": "프로필이 활성화되었습니다!",
    "failedActivateProfile": "프로필을 활성화하지 못했습니다.",
    "profiles": "프로필",
    "savedProfiles": "저장된 프로필",
    "noProfilesYet": "아직 저장된 프로필이 없습니다. 현재 구성을 아래 프로필로 저장합니다.",
    "activate": "활성화",
    "deleteProfile": "프로필 삭제",
    "profileNamePlaceholder": "프로필 이름(예: 개인 계정)",
    "saveCurrent": "현재 저장",
    "codexAuthNotePrefix": "코덱스 사용",
    "codexAuthNoteMiddle": "와",
    "codexAuthNoteSuffix": "자동 구성하려면 \"적용\"을 클릭하세요.",
    "claudeManualConfiguration": "Claude CLI - 수동 구성",
    "codexManualConfiguration": "Codex CLI - 수동 구성",
    "droidManualConfiguration": "Factory Droid - 수동 구성",
    "openClawManualConfiguration": "오픈 클로 - 수동 구성",
    "clineManualConfiguration": "클라인 수동 구성",
    "kiloManualConfiguration": "Kilo 코드 수동 구성",
    "toolDescriptions": {
      "antigravity": "MITM이 포함된 Google 반중력 IDE",
      "claude": "인류 클로드 코드 CLI",
      "codex": "OpenAI 코덱스 CLI",
      "droid": "팩토리 드로이드 AI 어시스턴트",
      "openclaw": "Claw AI 도우미 열기",
      "cline": "Cline AI 코딩 어시스턴트 CLI",
      "kilo": "킬로코드 AI 어시스턴트 CLI",
      "cursor": "커서 AI 코드 편집기",
      "continue": "AI 어시스턴트 계속하기"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "이 기능을 사용하려면 Cursor Pro 계정이 필요합니다.",
          "1": "커서는 자체 서버를 통해 요청을 라우팅하므로 로컬 엔드포인트는 지원되지 않습니다. 설정에서 Cloud Endpoint를 활성화하세요."
        },
        "steps": {
          "1": {
            "title": "설정 열기",
            "desc": "설정 -> 모델로 이동하세요."
          },
          "2": {
            "title": "OpenAI API 활성화",
            "desc": "\"OpenAI API 키\" 옵션 활성화"
          },
          "3": {
            "title": "기본 URL"
          },
          "4": {
            "title": "API 키"
          },
          "5": {
            "title": "맞춤 모델 추가",
            "desc": "\"모든 모델 보기\" -> \"사용자 정의 모델 추가\"를 클릭하세요."
          },
          "6": {
            "title": "모델 선택"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "구성 열기",
            "desc": "계속 구성 파일 열기"
          },
          "2": {
            "title": "API 키"
          },
          "3": {
            "title": "모델 선택"
          },
          "4": {
            "title": "모델 구성 추가",
            "desc": "모델 배열에 다음 구성을 추가합니다."
          }
        }
      }
    }
  },
  "combos": {
    "title": "콤보",
    "description": "가중치 기반 라우팅 및 폴백 지원을 통해 모델 콤보 생성",
    "createCombo": "콤보 생성",
    "editCombo": "콤보 편집",
    "deleteCombo": "콤보 삭제",
    "noModels": "모델 없음",
    "noModelsYet": "아직 추가된 모델이 없습니다.",
    "addModel": "모델 추가",
    "addModelToCombo": "콤보에 모델 추가",
    "routingStrategy": "라우팅 전략",
    "maxRetries": "최대 재시도 횟수",
    "timeout": "시간 초과(밀리초)",
    "healthcheck": "건강검진",
    "priority": "우선순위",
    "fallback": "대체",
    "roundRobin": "라운드 로빈",
    "random": "무작위",
    "leastLatency": "최소 지연 시간",
    "comboName": "콤보 이름",
    "comboNamePlaceholder": "내 콤보",
    "deleteConfirm": "이 콤보를 삭제하시겠습니까?",
    "noCombosYet": "아직 콤보가 없습니다.",
    "comboCreated": "콤보가 성공적으로 생성되었습니다.",
    "comboUpdated": "콤보가 성공적으로 업데이트되었습니다.",
    "comboDeleted": "콤보가 삭제되었습니다.",
    "failedCreate": "콤보를 생성하지 못했습니다.",
    "failedUpdate": "콤보를 업데이트하지 못했습니다.",
    "errorCreating": "콤보 생성 중 오류 발생",
    "errorUpdating": "콤보 업데이트 중 오류 발생",
    "errorDeleting": "콤보 삭제 오류",
    "testFailed": "테스트 요청 실패",
    "failedToggle": "콤보를 전환하지 못했습니다.",
    "testResults": "테스트 결과 — {name}",
    "resolvedBy": "해결 방법:",
    "more": "+{count} 더보기",
    "reqs": "요구 사항",
    "success": "성공",
    "proxyConfigured": "프록시가 구성됨",
    "copyComboName": "콤보 이름 복사",
    "enableCombo": "콤보 활성화",
    "disableCombo": "콤보 비활성화",
    "testCombo": "테스트 콤보",
    "duplicate": "중복",
    "proxyConfig": "프록시 구성",
    "nameRequired": "이름은 필수입니다",
    "nameInvalid": "문자, 숫자, -, _, / 및 .만 가능합니다. 허용됨",
    "nameHint": "문자, 숫자, -, _, / 및 . 허용됨",
    "priorityDesc": "순차적 폴백: 모델 1을 먼저 시도한 다음 2 등을 시도합니다.",
    "weightedDesc": "대체 기능을 사용하여 중량 비율로 트래픽을 분산합니다.",
    "roundRobinDesc": "순환 배포: 각 요청은 교대로 다음 모델로 이동합니다.",
    "randomDesc": "균일한 무작위 선택 후 나머지 모델로 대체",
    "leastUsedDesc": "시간이 지남에 따라 로드 밸런싱을 통해 요청이 가장 적은 모델을 선택합니다.",
    "costOptimizedDesc": "가격을 기준으로 가장 저렴한 모델로 먼저 라우팅",
    "models": "모델",
    "autoBalance": "자동 균형",
    "advancedSettings": "고급 설정",
    "retryDelay": "재시도 지연(ms)",
    "concurrencyPerModel": "동시성/모델",
    "queueTimeout": "대기열 시간 초과(밀리초)",
    "advancedHint": "전역 기본값을 사용하려면 비워 두세요. 이는 공급자별 설정을 재정의합니다.",
    "moveUp": "위로 이동",
    "moveDown": "아래로 이동",
    "removeModel": "제거",
    "saving": "저장 중...",
    "weighted": "가중",
    "leastUsed": "가장 적게 사용됨",
    "costOpt": "비용 최적화"
  },
  "costs": {
    "title": "비용",
    "budget": "예산",
    "totalCost": "총 비용",
    "breakdown": "비용 분석",
    "noData": "비용 데이터 없음",
    "byModel": "모델별",
    "byProvider": "공급자별"
  },
  "endpoint": {
    "title": "API 엔드포인트",
    "available": "사용 가능한 엔드포인트",
    "cloudProxy": "클라우드 프록시",
    "disableConfirm": "클라우드 프록시를 비활성화하시겠습니까?",
    "baseUrl": "기본 URL",
    "apiKeyLabel": "API 키",
    "registeredKeys": "등록된 키",
    "chatCompletions": "채팅 완료",
    "responses": "응답",
    "listModels": "모델 나열",
    "usingCloudProxy": "클라우드 프록시 사용",
    "usingLocalServer": "로컬 서버 사용",
    "machineId": "머신 ID: {id}...",
    "disableCloud": "클라우드 비활성화",
    "enableCloud": "클라우드 활성화",
    "modelsAcrossEndpoints": "{endpoints} 엔드포인트 전반의 {models} 모델",
    "chatDesc": "모든 제공업체와의 스트리밍 및 비스트리밍 채팅",
    "embeddings": "임베딩",
    "embeddingsDesc": "검색 및 RAG 파이프라인을 위한 텍스트 임베딩",
    "imageGeneration": "이미지 생성",
    "imageDesc": "텍스트 프롬프트에서 이미지 생성",
    "rerank": "순위 재지정",
    "rerankDesc": "쿼리 관련성에 따라 문서의 순위를 다시 매깁니다.",
    "audioTranscription": "오디오 전사",
    "audioTranscriptionDesc": "오디오 파일을 텍스트로 변환(속삭임)",
    "textToSpeech": "텍스트 음성 변환",
    "textToSpeechDesc": "텍스트를 자연스러운 음성으로 변환",
    "moderations": "조정",
    "moderationsDesc": "콘텐츠 조정 및 안전 분류",
    "enableCloudTitle": "클라우드 프록시 활성화",
    "whatYouGet": "당신이 얻을 것입니다",
    "cloudBenefitAccess": "전 세계 어디에서나 API에 액세스하세요",
    "cloudBenefitShare": "팀과 쉽게 엔드포인트 공유",
    "cloudBenefitPorts": "포트를 열거나 방화벽을 구성할 필요가 없습니다.",
    "cloudBenefitEdge": "빠른 글로벌 에지 네트워크",
    "cloudSessionNote": "Cloud는 인증 세션을 1일 동안 유지합니다. 사용하지 않을 경우 자동 삭제됩니다.",
    "cloudUnstableNote": "Cloud는 현재 Claude Code OAuth를 사용하는 경우에 불안정합니다.",
    "cloudConnected": "클라우드 프록시가 연결되었습니다!",
    "connectingToCloud": "클라우드에 연결 중...",
    "verifyingConnection": "연결 확인 중...",
    "connecting": "연결 중...",
    "verifying": "확인 중...",
    "connected": "연결되었습니다!",
    "disableCloudTitle": "클라우드 프록시 비활성화",
    "disableWarning": "모든 인증 세션이 클라우드에서 삭제됩니다.",
    "syncingData": "최신 데이터 동기화 중...",
    "disablingCloud": "클라우드를 비활성화하는 중...",
    "syncing": "동기화 중...",
    "disabling": "비활성화 중...",
    "cloudConnectedVerified": "클라우드 프록시가 연결되고 확인되었습니다!",
    "connectedVerificationPending": "연결됨 — 확인 대기 중",
    "connectedVerificationPendingWithError": "연결됨 — 확인 대기 중: {error}",
    "cloudDisabledSuccess": "클라우드가 비활성화되었습니다.",
    "syncedSuccess": "성공적으로 동기화되었습니다",
    "failedDisable": "클라우드를 비활성화하지 못했습니다.",
    "failedEnable": "클라우드를 활성화하지 못했습니다.",
    "cloudRequestTimeout": "클라우드 요청 시간 초과",
    "cloudRequestFailed": "클라우드 요청 실패",
    "cloudWorkerUnreachable": "클라우드 작업자에 연결할 수 없습니다. 클라우드 서비스가 실행 중인지 확인하세요(npm run dev in /cloud).",
    "connectionFailed": "연결 실패",
    "syncFailed": "클라우드 데이터를 동기화하지 못했습니다.",
    "providerModelsTitle": "{provider} — 모델",
    "noModelsForProvider": "이 제공업체에 사용할 수 있는 모델이 없습니다.",
    "chat": "채팅",
    "embedding": "임베딩",
    "image": "이미지",
    "custom": "관습",
    "modelsCount": "{count, plural, one {# model} other {# models}}"
  },
  "health": {
    "title": "시스템 상태",
    "description": "OmniRoute 인스턴스의 실시간 모니터링",
    "healthy": "건강하다",
    "degraded": "저하됨",
    "down": "아래로",
    "uptime": "가동 시간",
    "memory": "메모리",
    "memoryRss": "메모리(RSS)",
    "heap": "힙",
    "cpu": "CPU",
    "database": "데이터베이스",
    "version": "버전",
    "lastCheck": "마지막 확인",
    "providerHealth": "제공자 상태",
    "systemMetrics": "시스템 측정항목",
    "tokenHealth": "토큰 상태",
    "refreshAll": "모두 새로 고침",
    "checkNow": "지금 확인하세요",
    "loadingHealth": "건강 데이터 로드 중...",
    "failedToLoad": "상태 데이터를 로드하지 못했습니다: {error}",
    "retry": "재시도",
    "allOperational": "모든 시스템 작동",
    "issuesDetected": "시스템 문제가 감지되었습니다.",
    "updatedAt": "{time} 업데이트됨",
    "latency": "대기 시간",
    "latencyP50": "p50",
    "latencyP95": "p95",
    "latencyP99": "p99",
    "millisecondsShort": "{value}ms",
    "notAvailable": "—",
    "totalRequests": "총 요청수",
    "noDataYet": "아직 데이터가 없습니다",
    "promptCache": "프롬프트 캐시",
    "entries": "항목",
    "hitRate": "적중률",
    "hitsMisses": "안타/실패",
    "signatureCache": "서명 캐시",
    "signatureDefaults": "기본값",
    "signatureTool": "도구",
    "signatureFamily": "가족",
    "signatureSession": "세션",
    "recovering": "회복 중",
    "noCBData": "사용 가능한 회로 차단기 데이터가 없습니다. 먼저 몇 가지 요청을 해보세요.",
    "providerHealthStatusAria": "공급자 상태",
    "issuesLabel": "발견된 문제",
    "operational": "운영",
    "providers": "공급자",
    "healthyCount": "{count} 건강함",
    "nodeVersion": "노드 {version}",
    "failures": "{count} 실패",
    "failuresPlural": "{count} 실패",
    "lastFailure": "마지막",
    "rateLimitStatus": "비율 제한 상태",
    "activeLimiters": "{count} 활성 제한기",
    "activeLimitersPlural": "{count} 활성 제한기",
    "queued": "대기 중",
    "queuedCount": "{count} 대기 중",
    "running": "달리기",
    "runningCount": "{count} 실행 중",
    "ok": "알았어",
    "activeLockouts": "활성 잠금",
    "resetConfirm": "모든 회로 차단기를 정상 상태로 재설정하시겠습니까? 그러면 모든 실패 횟수가 지워지고 모든 공급자가 작동 상태로 복원됩니다.",
    "resetAllTitle": "모든 회로 차단기를 정상 상태로 재설정",
    "resetting": "재설정 중...",
    "resetAll": "모두 재설정",
    "until": "{time}까지"
  },
  "limits": {
    "title": "한도 및 할당량",
    "rateLimit": "비율 제한",
    "remaining": "남은",
    "requestsPerMinute": "요청/분",
    "tokensPerMinute": "토큰/분",
    "dailyLimit": "일일 한도"
  },
  "logs": {
    "title": "로그",
    "requestLogs": "요청 로그",
    "proxyLogs": "프록시 로그",
    "auditLog": "감사 로그",
    "console": "콘솔",
    "auditLogDesc": "관리 조치 및 보안 이벤트",
    "loading": "로드 중...",
    "refresh": "새로고침",
    "filterByAction": "작업별로 필터링...",
    "filterByActor": "배우별로 필터링...",
    "filterEntriesAria": "감사 로그 항목 필터링",
    "filterByActionTypeAria": "작업 유형별로 필터링",
    "filterByActorAria": "배우별로 필터링",
    "refreshAuditLogAria": "감사 로그 새로 고침",
    "tableAria": "감사 로그 항목",
    "failedFetchAuditLog": "감사 로그를 가져오지 못했습니다.",
    "showing": "{count} 항목 표시 중(오프셋 {offset})",
    "search": "검색",
    "timestamp": "타임스탬프",
    "action": "액션",
    "actor": "배우",
    "target": "대상",
    "details": "세부정보",
    "ipAddress": "IP 주소",
    "notAvailable": "—",
    "noEntries": "감사 로그 항목이 없습니다.",
    "previous": "이전",
    "next": "다음"
  },
  "onboarding": {
    "welcome": "환영합니다",
    "security": "보안",
    "test": "테스트",
    "ready": "준비됐어요!",
    "setPassword": "비밀번호 설정",
    "addProvider": "첫 번째 공급자 추가",
    "getStarted": "시작하기",
    "skip": "건너뛰기",
    "skipWizard": "마법사를 완전히 건너뛰기",
    "skipPassword": "비밀번호 설정 건너뛰기",
    "skipAndContinue": "건너뛰고 계속하기",
    "passwordLabel": "비밀번호",
    "confirmPassword": "비밀번호 확인",
    "enterPassword": "비밀번호를 입력하세요",
    "confirmPasswordPlaceholder": "비밀번호 확인",
    "passwordsMismatch": "비밀번호가 일치하지 않습니다.",
    "setupComplete": "설정 완료!",
    "goToDashboard": "대시보드로 이동 →",
    "welcomeDesc": "OmniRoute는 로컬 AI API 프록시입니다. 로드 밸런싱, 장애 조치 및 사용량 추적을 통해 요청을 여러 AI 공급자에게 라우팅합니다.",
    "multiProvider": "다중 공급자",
    "usageTracking": "사용량 추적",
    "apiKeyMgmt": "API 키 관리",
    "securityDesc": "대시보드를 보호하기 위해 비밀번호를 설정하거나 지금은 건너뛰세요.",
    "providerDesc": "첫 번째 AI 공급자를 연결하세요. 나중에 더 추가할 수 있습니다.",
    "apiKeyRequired": "API 키(필수)",
    "customUrlOptional": "맞춤 URL(선택사항)",
    "testDesc": "공급자 연결이 작동하는지 확인해 보겠습니다.",
    "runTest": "연결 테스트 실행",
    "testingConnection": "연결 테스트 중...",
    "connectionSuccessful": "연결 성공! 귀하의 서비스 제공자가 준비되었습니다.",
    "noProviderFound": "공급자를 찾을 수 없습니다. 나중에 대시보드에서 추가할 수 있습니다.",
    "testFailed": "테스트에 실패했지만 나중에 구성할 수 있습니다.",
    "couldNotTest": "지금은 테스트할 수 없습니다. 대시보드에서 테스트할 수 있습니다.",
    "doneDesc": "모든 준비가 완료되었습니다. OmniRoute 인스턴스가 구성되어 AI 요청을 프록시할 준비가 되었습니다.",
    "yourEndpoint": "귀하의 엔드포인트:",
    "continue": "계속",
    "retry": "재시도",
    "failedSetPassword": "비밀번호를 설정하지 못했습니다. 다시 시도해 보세요.",
    "failedAddProvider": "공급자를 추가하지 못했습니다. 다시 시도해 보세요.",
    "connectionError": "연결 오류입니다. 다시 시도해 주세요.",
    "provider": "공급자"
  },
  "providers": {
    "title": "공급자",
    "addProvider": "공급자 추가",
    "editProvider": "제공자 편집",
    "deleteProvider": "공급자 삭제",
    "noProviders": "구성된 제공업체가 없습니다.",
    "modelAvailability": "모델 가용성",
    "accounts": "계정",
    "newAccount": "새 계정",
    "deleteConfirm": "이 제공업체를 삭제하시겠습니까?",
    "testing": "테스트 중...",
    "testConnection": "연결 테스트",
    "testSuccess": "연결 성공",
    "testFailed": "연결 실패",
    "available": "가능",
    "cooldown": "쿨다운",
    "unavailable": "이용 불가",
    "unknown": "알 수 없음",
    "oauthLabel": "OAuth",
    "compatibleLabel": "호환 가능",
    "chat": "채팅",
    "responses": "응답",
    "messages": "메시지",
    "oauthProviders": "OAuth 제공자",
    "freeProviders": "무료 제공업체",
    "apiKeyProviders": "API 키 제공자",
    "compatibleProviders": "API 키 호환 제공자",
    "testAll": "모두 테스트",
    "testAllOAuth": "모든 OAuth 연결 테스트",
    "testAllFree": "모든 무료 연결 테스트",
    "testAllApiKey": "모든 API 키 연결 테스트",
    "testAllCompatible": "모든 호환 연결 테스트",
    "connected": "{count} 연결됨",
    "errorCount": "{count} 오류({code})",
    "errorCountNoCode": "{count} 오류",
    "noConnections": "연결 없음",
    "disabled": "장애인",
    "enableProvider": "공급자 활성화",
    "disableProvider": "공급자 비활성화",
    "testResults": "테스트 결과",
    "noCompatibleYet": "아직 호환되는 제공업체가 추가되지 않았습니다.",
    "compatibleHint": "위 버튼을 사용하여 OpenAI 또는 Anthropic 호환 엔드포인트를 추가하세요.",
    "addOpenAICompatible": "OpenAI 호환 추가",
    "addAnthropicCompatible": "인류 호환 추가",
    "addNewProvider": "새 공급자 추가",
    "backToProviders": "공급자로 돌아가기",
    "configureNewProvider": "애플리케이션과 함께 사용할 새 AI 공급자를 구성합니다.",
    "providerLabel": "공급자",
    "selectProvider": "제공업체 선택",
    "selectedProvider": "선택된 제공업체",
    "authMethod": "인증 방법",
    "apiKeyLabel": "API 키",
    "apiKeyRequired": "API 키가 필요합니다",
    "selectProviderRequired": "제공업체를 선택하세요.",
    "enterApiKey": "API 키를 입력하세요",
    "apiKeySecure": "귀하의 API 키는 암호화되어 안전하게 저장됩니다.",
    "oauth2Connect": "OAuth2로 연결",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "OAuth2 인증을 사용하여 계정을 연결하세요.",
    "displayName": "표시 이름",
    "displayNamePlaceholder": "예: 프로덕션 API, 개발 환경",
    "displayNameHint": "선택사항. 이 구성을 식별하기 위한 친숙한 이름입니다.",
    "active": "활성",
    "activeDescription": "애플리케이션에서 이 공급자를 사용하도록 설정",
    "cancel": "취소",
    "createProvider": "공급자 생성",
    "failedCreate": "공급자를 생성하지 못했습니다.",
    "errorOccurred": "오류가 발생했습니다. 다시 시도해 주세요.",
    "modelStatus": "모델현황",
    "allModelsOperational": "모든 모델 작동 가능",
    "modelsWithIssues": "문제가 있는 {count} 모델",
    "allModelsNormal": "모든 모델이 정상적으로 반응하고 있습니다.",
    "cooldownCleared": "{model}의 쿨다운이 삭제되었습니다.",
    "failedClearCooldown": "쿨다운을 지우지 못했습니다.",
    "loadingAvailability": "모델 가용성 로드 중...",
    "clearCooldown": "지우기",
    "clearing": "지우는 중...",
    "until": "{time}까지",
    "providerTestFailed": "공급자 테스트 실패",
    "modeTest": "{mode} 테스트",
    "passedCount": "{count} 통과됨",
    "failedCount": "{count} 실패",
    "testedCount": "{count} 테스트됨",
    "millisecondsAbbr": "{value}ms",
    "okShort": "알았어",
    "errorShort": "오류",
    "noActiveConnectionsInGroup": "이 그룹에 대한 활성 연결이 없습니다.",
    "allTestsPassed": "모든 {total} 테스트를 통과했습니다.",
    "testSummary": "{passed}/{total} 통과, {failed} 실패",
    "nameLabel": "이름",
    "prefixLabel": "접두사",
    "baseUrlLabel": "기본 URL",
    "apiTypeLabel": "API 유형",
    "prefixHint": "필수입니다. 모델 이름의 고유 접두사입니다.",
    "nameHint": "필수입니다. 이 노드에 대한 친숙한 레이블입니다.",
    "baseUrlHint": "필수입니다.  공급자 API 기본 URL.",
    "anthropicPrefixPlaceholder": "AC-PROD",
    "openaiPrefixPlaceholder": "oc-prod",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "연결 확인",
    "validating": "검증 중...",
    "connectionValid": "연결이 유효합니다!",
    "connectionFailed": "연결에 실패했습니다. URL과 키를 확인하세요.",
    "testKeyLabel": "테스트 API 키",
    "testKeyPlaceholder": "sk-...(검증용으로만)",
    "providerNotFound": "공급자를 찾을 수 없습니다.",
    "deleteConnectionConfirm": "이 연결을 삭제하시겠습니까?",
    "failedSetAlias": "별칭을 설정하지 못했습니다.",
    "failedSaveConnection": "연결을 저장하지 못했습니다.",
    "failedSaveConnectionRetry": "연결을 저장하지 못했습니다. 다시 시도해 주세요.",
    "failedRetestConnection": "연결을 다시 테스트하지 못했습니다.",
    "deleteCompatibleNodeConfirm": "이 {type} 호환 노드를 삭제하시겠습니까?",
    "anthropicCompatibleDetails": "인류 친화적인 세부 사항",
    "openaiCompatibleDetails": "OpenAI 호환 세부정보",
    "messagesApi": "메시지 API",
    "responsesApi": "응답 API",
    "chatCompletions": "채팅 완료",
    "importingModels": "가져오는 중...",
    "importFromModels": "/models에서 가져오기",
    "addConnectionToImport": "가져오기를 활성화하려면 연결을 추가하세요.",
    "noModelsConfigured": "구성된 모델이 없습니다.",
    "connectionCount": "{count} 연결",
    "fetchingModels": "사용 가능한 모델을 가져오는 중...",
    "failedFetchModels": "모델을 가져오지 못했습니다.",
    "noModelsFound": "모델을 찾을 수 없습니다.",
    "importFailed": "가져오기 실패",
    "noNewModelsAdded": "새로운 모델이 추가되지 않았습니다.",
    "adding": "추가 중...",
    "importingModelsTitle": "모델 가져오기",
    "copyModel": "모델 복사",
    "removeModel": "모델 삭제",
    "rateLimitProtected": "보호됨",
    "rateLimitUnprotected": "보호되지 않음",
    "enableRateLimitProtection": "속도 제한 보호를 활성화하려면 클릭하세요.",
    "disableRateLimitProtection": "속도 제한 보호를 비활성화하려면 클릭하세요.",
    "productionKey": "생산 키",
    "enterNewApiKey": "새 API 키를 입력하세요",
    "optional": "선택사항",
    "anthropicCompatibleName": "인류 친화적",
    "openaiCompatibleName": "OpenAI 호환",
    "failedImportModels": "모델을 가져오지 못했습니다.",
    "noModelsReturnedFromEndpoint": "/models 엔드포인트에서 반환된 모델이 없습니다.",
    "importingModelsProgress": "{total} 모델 중 {current} 가져오는 중...",
    "foundModelsStartingImport": "{count} 모델을 찾았습니다. 가져오기 시작 중...",
    "importingModelById": "{modelId} 가져오는 중...",
    "importSuccessCount": "{count, plural, one {# model} other {# models}}을(를) 성공적으로 가져왔습니다!",
    "noNewModelsAddedExisting": "새로운 모델이 추가되지 않았습니다(모두 이미 존재함).",
    "importDoneCount": "✓ 완료! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "예상치 못한 오류가 발생했습니다.",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "메시지",
    "responsesPath": "응답",
    "chatCompletionsPath": "채팅/완료",
    "add": "추가",
    "edit": "편집",
    "delete": "삭제",
    "anthropic": "인류학",
    "openai": "오픈AI",
    "singleConnectionPerCompatible": "호환되는 노드당 하나의 연결만 허용됩니다. 더 많은 연결이 필요한 경우 다른 노드를 추가하세요.",
    "connections": "연결",
    "providerProxyTitleConfigured": "공급자 프록시: {host}",
    "configured": "구성된",
    "providerProxyConfigureHint": "이 공급자의 모든 연결에 대한 프록시 구성",
    "providerProxy": "공급자 프록시",
    "noConnectionsYet": "아직 연결이 없습니다.",
    "addFirstConnectionHint": "시작하려면 첫 번째 연결을 추가하세요.",
    "addConnection": "연결 추가",
    "availableModels": "사용 가능한 모델",
    "pageAutoRefresh": "페이지가 자동으로 새로 고쳐집니다...",
    "statusDisabled": "장애인",
    "statusConnected": "연결됨",
    "statusRuntimeIssue": "런타임 문제",
    "statusAuthFailed": "인증 실패",
    "statusRateLimited": "요금 제한",
    "statusNetworkIssue": "네트워크 문제",
    "statusTestUnsupported": "지원되지 않는 테스트",
    "statusUnavailable": "이용할 수 없음",
    "statusFailed": "실패했다",
    "statusError": "오류",
    "oauthAccount": "OAuth 계정",
    "errorTypeRuntime": "로컬 런타임",
    "errorTypeUpstreamAuth": "업스트림 인증",
    "errorTypeMissingCredential": "자격증명 누락",
    "errorTypeRefreshFailed": "새로고침 실패",
    "errorTypeTokenExpired": "토큰이 만료되었습니다.",
    "errorTypeRateLimited": "요금 제한",
    "errorTypeUpstreamUnavailable": "업스트림 이용 불가",
    "errorTypeNetworkError": "네트워크 오류",
    "errorTypeTestUnsupported": "지원되지 않는 테스트",
    "errorTypeUpstreamError": "업스트림 오류",
    "proxySourceGlobal": "글로벌",
    "proxySourceProvider": "공급자",
    "proxySourceKey": "열쇠",
    "proxyConfiguredBySource": "프록시({source}): {host}",
    "autoPriority": "자동: {priority}",
    "proxy": "프록시",
    "retestAuthentication": "인증 재테스트",
    "retest": "재테스트",
    "disableConnection": "연결 비활성화",
    "enableConnection": "연결 활성화",
    "reauthenticateConnection": "이 연결을 다시 인증하세요.",
    "proxyConfig": "프록시 구성",
    "aliasExistsAlert": "별칭 \"{alias}\"이(가) 이미 존재합니다. 다른 모델을 사용하거나 기존 별칭을 수정하세요.",
    "openRouterAnyModelHint": "OpenRouter는 모든 모델을 지원합니다. 빠른 액세스를 위해 모델을 추가하고 별칭을 만듭니다.",
    "modelIdFromOpenRouter": "모델 ID(OpenRouter에서)",
    "openRouterModelPlaceholder": "인류학/claude-3-opus",
    "customModels": "맞춤형 모델",
    "customModelsHint": "기본 목록에 없는 모델 ID를 추가하세요. 라우팅에 사용할 수 있습니다.",
    "modelId": "모델 ID",
    "customModelPlaceholder": "예를 들어 gpt-4.5-터보",
    "loading": "로드 중...",
    "removeCustomModel": "맞춤 모델 삭제",
    "noCustomModels": "아직 추가된 커스텀 모델이 없습니다.",
    "allSuggestedAliasesExist": "제안된 별칭이 모두 이미 존재합니다. 다른 모델을 선택하거나 충돌하는 별칭을 삭제하세요.",
    "failedSaveCustomModel": "커스텀 모델을 저장하지 못했습니다.",
    "modelAddedSuccess": "모델 {modelId}이(가) 성공적으로 추가되었습니다.",
    "failedAddModelTryAgain": "모델을 추가하지 못했습니다. 다시 시도해 주세요.",
    "failedSaveImportedModel": "가져온 모델을 사용자 정의 데이터베이스에 저장하지 못했습니다.",
    "failedImportModelsTryAgain": "모델을 가져오지 못했습니다. 다시 시도해 주세요.",
    "failedRemoveModelFromDatabase": "데이터베이스에서 모델을 제거하지 못했습니다.",
    "modelRemovedSuccess": "모델이 성공적으로 제거되었습니다.",
    "failedDeleteModelTryAgain": "모델을 삭제하지 못했습니다. 다시 시도해 주세요.",
    "compatibleModelsDescription": "{type} 호환 모델을 수동으로 추가하거나 /models 엔드포인트에서 가져옵니다.",
    "anthropicCompatibleModelPlaceholder": "클로드-3-opus-20240229",
    "openaiCompatibleModelPlaceholder": "gpt-4o",
    "apiKeyValidationFailed": "API 키 검증에 실패했습니다. 키를 확인하고 다시 시도해 주세요.",
    "addProviderApiKeyTitle": "{provider} API 키 추가",
    "checking": "확인 중...",
    "check": "확인",
    "valid": "유효",
    "invalid": "유효하지 않음",
    "creating": "만드는 중...",
    "validationChecksAnthropicCompatible": "검증은 API 키를 확인하여 {provider}을 확인합니다.",
    "validationChecksOpenAiCompatible": "유효성 검사는 기본 URL의 /models를 통해 {provider}을 확인합니다.",
    "priorityLabel": "우선순위",
    "saving": "저장 중...",
    "save": "저장",
    "editConnection": "연결 편집",
    "accountName": "계정 이름",
    "email": "이메일",
    "healthCheckMinutes": "상태 점검(분)",
    "healthCheckHint": "사전 토큰 새로 고침 간격. 0 = 비활성화됨.",
    "failedTestConnection": "연결을 테스트하지 못했습니다.",
    "failed": "실패",
    "leaveBlankKeepCurrentApiKey": "현재 API 키를 유지하려면 비워 두세요.",
    "editCompatibleTitle": "{type} 호환 가능 편집",
    "compatibleBaseUrlHint": "{type} 호환 API에는 기본 URL(/v1로 끝남)을 사용하세요.",
    "apiKeyForCheck": "API Key(확인용)",
    "compatibleProdPlaceholder": "{type} 호환 가능(프로덕션)"
  },
  "settings": {
    "title": "설정",
    "general": "일반",
    "security": "보안",
    "appearance": "외관",
    "routing": "라우팅",
    "cache": "캐시",
    "resilience": "탄력성",
    "systemPrompt": "시스템 프롬프트",
    "thinkingBudget": "생각하는 예산",
    "proxy": "프록시",
    "pricing": "가격",
    "storage": "저장",
    "policies": "정책",
    "ipFilter": "IP 필터",
    "comboDefaults": "콤보 기본값",
    "fallbackChains": "폴백 체인",
    "changePassword": "비밀번호 변경",
    "enablePassword": "비밀번호 활성화",
    "darkMode": "다크 모드",
    "lightMode": "라이트 모드",
    "systemTheme": "시스템 테마",
    "enableCache": "캐시 활성화",
    "cacheTTL": "캐시 TTL",
    "maxCacheSize": "최대 캐시 크기",
    "clearCache": "캐시 지우기",
    "cacheHits": "캐시 적중",
    "cacheMisses": "캐시 미스",
    "hitRate": "적중률",
    "cacheEntries": "캐시 항목",
    "circuitBreaker": "회로 차단기",
    "retryPolicy": "재시도 정책",
    "maxRetries": "최대 재시도 횟수",
    "retryDelay": "재시도 지연",
    "timeoutMs": "시간 초과(밀리초)",
    "enableSystemPrompt": "시스템 프롬프트 활성화",
    "systemPromptText": "시스템 프롬프트 텍스트",
    "enableThinking": "사고 활성화",
    "maxThinkingTokens": "맥스 씽킹 토큰",
    "enableProxy": "프록시 활성화",
    "proxyUrl": "프록시 URL",
    "pricingRates": "가격 요율 형식",
    "currentPricing": "현재 가격 개요",
    "loadingPricing": "가격 데이터 로드 중...",
    "noPricing": "사용 가능한 가격 데이터가 없습니다.",
    "input": "입력",
    "output": "출력",
    "cached": "캐시됨",
    "reasoning": "추론",
    "cacheCreation": "캐시 생성",
    "customPricing": "맞춤형 가격",
    "databaseSize": "데이터베이스 크기",
    "backupDb": "백업 데이터베이스",
    "restoreDb": "데이터베이스 복원",
    "exportData": "데이터 내보내기",
    "importData": "데이터 가져오기",
    "clearData": "모든 데이터 지우기",
    "clearDataConfirm": "모든 데이터가 영구적으로 삭제됩니다. 확실합니까?",
    "enableRequestLogs": "요청 로그 활성화",
    "logRetention": "로그 보존",
    "ipWhitelist": "IP 화이트리스트",
    "ipBlacklist": "IP 블랙리스트",
    "addIP": "IP 추가",
    "savedSuccessfully": "설정이 성공적으로 저장되었습니다.",
    "ai": "AI",
    "advanced": "고급",
    "localMode": "로컬 모드 — 컴퓨터에 저장된 모든 데이터",
    "settingsSectionsAria": "설정 섹션",
    "switchThemes": "밝은 테마와 어두운 테마 간 전환",
    "themeSelectionAria": "테마 선택",
    "themeLight": "빛",
    "themeDark": "어둠",
    "themeSystem": "시스템",
    "hideHealthLogs": "상태 확인 로그 숨기기",
    "hideHealthLogsDesc": "ON일 때, 서버 콘솔에서 [HealthCheck] 메시지를 억제합니다.",
    "promptCache": "프롬프트 캐시",
    "flushCache": "캐시 플러시",
    "flushing": "플러싱…",
    "size": "크기",
    "hits": "조회수",
    "evictions": "퇴거",
    "loadingCacheStats": "캐시 통계 로드 중…",
    "globalProxy": "글로벌 프록시",
    "globalProxyDesc": "모든 API 호출에 대해 글로벌 아웃바운드 프록시를 구성합니다. 개별 공급자, 콤보 및 키가 이를 재정의할 수 있습니다.",
    "noGlobalProxy": "글로벌 프록시가 구성되지 않았습니다.",
    "globalLabel": "글로벌",
    "configure": "구성",
    "globalSystemPrompt": "글로벌 시스템 프롬프트",
    "systemPromptDesc": "프록시 수준에서 모든 요청에 삽입됩니다.",
    "saved": "저장됨",
    "systemPromptPlaceholder": "모든 요청에 삽입하려면 시스템 프롬프트를 입력하세요...",
    "systemPromptHint": "이 프롬프트는 모든 요청의 시스템 메시지 앞에 추가됩니다. 전역 지침, 안전 지침 또는 응답 형식 지정 규칙에 사용합니다.",
    "chars": "{count}자",
    "thinkingBudgetTitle": "생각하는 예산",
    "thinkingBudgetDesc": "모든 요청에서 AI 추론 토큰 사용을 제어합니다.",
    "passthrough": "통과",
    "passthroughDesc": "변경 사항 없음 - 클라이언트가 사고 예산을 제어합니다.",
    "auto": "자동",
    "autoDesc": "모든 사고 구성 제거 - 공급자가 결정하도록 함",
    "custom": "맞춤",
    "customDesc": "모든 요청에 대해 고정 토큰 예산 설정",
    "adaptive": "적응형",
    "adaptiveDesc": "요청 복잡성에 따라 예산 규모 조정",
    "effortNone": "없음(토큰 0개)",
    "effortLow": "낮음(1,000개 토큰)",
    "effortMedium": "중간(10,000개 토큰)",
    "effortHigh": "높음(128K 토큰)",
    "tokenBudget": "토큰예산",
    "tokens": "토큰",
    "baseEffortLevel": "기본 노력 수준",
    "adaptiveHint": "적응 모드는 메시지 수, 도구 사용량 및 프롬프트 길이에 따라 이 기본 수준에서 확장됩니다.",
    "requireLogin": "로그인 필요",
    "requireLoginDesc": "ON으로 설정하면 대시보드에 비밀번호가 필요합니다. OFF시 로그인 없이 접속 가능합니다.",
    "currentPassword": "현재 비밀번호",
    "enterCurrentPassword": "현재 비밀번호를 입력하세요",
    "newPassword": "새 비밀번호",
    "enterNewPassword": "새 비밀번호를 입력하세요",
    "confirmPassword": "새 비밀번호 확인",
    "confirmPasswordPlaceholder": "새 비밀번호 확인",
    "passwordsNoMatch": "비밀번호가 일치하지 않습니다.",
    "passwordUpdated": "비밀번호가 성공적으로 업데이트되었습니다.",
    "failedUpdatePassword": "비밀번호를 업데이트하지 못했습니다.",
    "errorOccurred": "오류가 발생했습니다",
    "updatePassword": "비밀번호 업데이트",
    "setPassword": "비밀번호 설정",
    "apiEndpointProtection": "API 엔드포인트 보호",
    "requireAuthModels": "/models에 대한 API 키 필요",
    "requireAuthModelsDesc": "ON인 경우 /v1/models 엔드포인트는 인증되지 않은 요청에 대해 404를 반환합니다. 승인되지 않은 사용자가 모델을 발견하는 것을 방지합니다.",
    "blockedProviders": "차단된 제공업체",
    "blockedProvidersDesc": "/v1/models 응답에서 특정 공급자를 숨깁니다. 차단된 제공업체는 모델 목록에 표시되지 않습니다.",
    "providersBlocked": "{count} 공급자가 /models에서 차단되었습니다.",
    "blockProviderTitle": "{provider} 차단",
    "unblockProviderTitle": "{provider} 차단 해제",
    "routingStrategy": "라우팅 전략",
    "fillFirst": "먼저 채우기",
    "fillFirstDesc": "우선순위에 따라 계정을 사용하세요",
    "roundRobin": "라운드 로빈",
    "roundRobinDesc": "모든 계정을 순환합니다.",
    "p2c": "P2C",
    "p2cDesc": "무작위로 2개를 선택하고 더 건강한 것을 사용하세요",
    "random": "무작위",
    "randomDesc": "각 요청마다 무작위 계정",
    "leastUsed": "최소 사용",
    "leastUsedDesc": "최근에 가장 적게 사용한 계정 선택",
    "costOpt": "비용 선택",
    "costOptDesc": "가장 저렴한 계정을 선호합니다",
    "stickyLimit": "고정 한도",
    "stickyLimitDesc": "전환 전 계정당 통화",
    "modelAliases": "모델 별칭",
    "modelAliasesDesc": "모델 이름을 다시 매핑하는 와일드카드 패턴 • * 및 ?를 사용합니다.",
    "aliasPatternPlaceholder": "클로드-소네트-*",
    "aliasTargetPlaceholder": "클로드 소네트-4-20250514",
    "pattern": "패턴",
    "targetModel": "대상 모델",
    "add": "+ 추가",
    "session": "세션",
    "sessionDetailsAria": "세션 세부정보",
    "status": "상태",
    "authenticated": "인증됨",
    "guest": "손님",
    "loginTime": "로그인 시간",
    "sessionAge": "세션 연령",
    "browser": "브라우저",
    "clearLocalData": "로컬 데이터 지우기",
    "logout": "로그아웃",
    "clearLocalDataConfirm": "모든 로컬 데이터를 삭제하시겠습니까? 그러면 기본 설정이 재설정됩니다.",
    "unknown": "알 수 없음",
    "systemActor": "시스템",
    "ipAccessControl": "IP 접근 제어",
    "ipAccessControlDesc": "특정 IP 주소 차단 또는 허용",
    "ipModeDisabled": "장애인",
    "ipModeBlacklist": "블랙리스트",
    "ipModeWhitelist": "화이트리스트",
    "ipModeWhitelistPriority": "WL 우선순위",
    "addIpAddress": "IP 주소 추가",
    "ipAddressPlaceholder": "192.168.1.0/24 또는 10.0.*.*",
    "block": "+ 차단",
    "allow": "+ 허용",
    "blocked": "차단됨({count})",
    "allowed": "허용됨({count})",
    "temporaryBans": "임시 금지({count})",
    "minLeft": "{min}분 남음",
    "auditLog": "감사 로그",
    "searchAuditLogs": "감사 로그 검색...",
    "failedLoadAuditLog": "감사 로그를 로드하지 못했습니다.",
    "noAuditEvents": "감사 이벤트가 없습니다.",
    "action": "액션",
    "actor": "배우",
    "details": "세부정보",
    "time": "시간",
    "fallbackChainsTitle": "폴백 체인",
    "fallbackChainsDesc": "모델별 공급자 대체 순서 정의",
    "addChain": "+ 체인 추가",
    "modelName": "모델명",
    "modelNamePlaceholder": "클로드 소네트-4-20250514",
    "providersCommaSeparated": "공급자(쉼표로 구분, 우선순위)",
    "providersCommaSeparatedPlaceholder": "인류, openai, 쌍둥이자리",
    "createChain": "체인 생성",
    "noFallbackChains": "대체 체인 없음",
    "noFallbackChainsDesc": "모델에 대한 공급자 대체 순서를 정의하는 체인을 만듭니다.",
    "loadingFallbackChains": "대체 체인 로드 중...",
    "deleteChainConfirm": "'{model}'에 대한 대체 체인을 삭제하시겠습니까?",
    "chainCreated": "{model}용으로 생성된 체인",
    "chainDeleted": "{model}에 대한 체인이 삭제되었습니다.",
    "failedCreateChain": "체인을 생성하지 못했습니다.",
    "failedDeleteChain": "체인을 삭제하지 못했습니다.",
    "deleteChain": "체인 삭제",
    "fillModelAndProviders": "모델명과 제공업체를 입력하세요.",
    "addAtLeastOneProvider": "제공업체를 하나 이상 추가하세요.",
    "comboDefaultsTitle": "콤보 기본값",
    "globalComboConfig": "글로벌 콤보 구성",
    "defaultStrategy": "기본 전략",
    "defaultStrategyDesc": "명시적인 전략이 없는 새로운 콤보에 적용",
    "comboStrategyAria": "콤보 전략",
    "priority": "우선순위",
    "weighted": "가중",
    "maxRetriesLabel": "최대 재시도 횟수",
    "retryDelayLabel": "재시도 지연(ms)",
    "timeoutLabel": "시간 초과(밀리초)",
    "healthCheck": "건강검진",
    "healthCheckDesc": "제공업체 가용성 사전 확인",
    "trackMetrics": "추적 지표",
    "trackMetricsDesc": "콤보별 요청 측정항목 기록",
    "providerOverrides": "공급자 재정의",
    "providerOverridesDesc": "공급자당 시간 초과 및 재시도를 재정의합니다. 공급자 설정은 전역 기본값을 재정의합니다.",
    "providerMaxRetriesAria": "{provider} 최대 재시도 횟수",
    "providerTimeoutAria": "{provider} 시간 초과(밀리초)",
    "removeProviderOverrideAria": "{provider} 재정의 제거",
    "newProviderNamePlaceholder": "예를 들어 구글, 오픈아이...",
    "newProviderNameAria": "새 제공업체 이름",
    "retries": "재시도",
    "ms": "ms",
    "saveComboDefaults": "콤보 기본값 저장",
    "maxNestingDepth": "최대 중첩 깊이",
    "concurrencyPerModel": "동시성/모델",
    "queueTimeout": "대기열 시간 초과(밀리초)",
    "providerProfiles": "공급자 프로필",
    "providerProfilesDesc": "OAuth(세션 기반) 및 API 키(측정) 공급자에 대한 별도의 복원력 설정입니다. OAuth 공급자는 낮은 비율 제한으로 인해 더 엄격한 기준을 적용합니다.",
    "oauthProviders": "OAuth 제공자",
    "apiKeyProviders": "API 키 제공자",
    "transientCooldown": "일시적인 쿨다운",
    "rateLimitCooldown": "비율 제한 쿨다운",
    "maxBackoffLevel": "최대 백오프 수준",
    "cbThreshold": "CB 임계값",
    "cbResetTime": "차단기 재설정 시간",
    "rateLimiting": "속도 제한",
    "rateLimitingDesc": "API 키 제공자는 안전한 기본값을 사용하여 자동으로 속도가 제한됩니다. 제한은 응답 헤더에서 학습되고 시간이 지남에 따라 조정됩니다.",
    "defaultSafetyNet": "기본 안전망",
    "rpm": "RPM",
    "minGap": "민갭",
    "maxConcurrent": "최대 동시",
    "activeLimiters": "활성 리미터",
    "noActiveLimiters": "아직 활성 속도 제한기가 없습니다.",
    "reservoir": "저수지",
    "running": "달리기",
    "queued": "대기 중",
    "circuitBreakers": "회로 차단기",
    "breakerStateClosed": "휴무",
    "breakerStateOpen": "열기",
    "breakerStateHalfOpen": "반개방형",
    "tripped": "{count}이(가) 작동되었습니다.",
    "healthy": "{count} 건강함",
    "resetAll": "모두 재설정",
    "noCircuitBreakers": "아직 활성화된 회로 차단기가 없습니다. 요청이 콤보 파이프라인을 통해 흐를 때 자동으로 생성됩니다.",
    "failures": "{count} 실패",
    "policiesLocked": "정책 및 잠긴 식별자",
    "allOperational": "모든 시스템 작동 — 잠금이나 차단기 작동 없음",
    "loadingPolicies": "정책 로드 중...",
    "lockedIdentifiers": "잠긴 식별자",
    "unlockedIdentifier": "잠금 해제됨: {identifier}",
    "sinceDate": "{date} 이후",
    "forceUnlock": "강제 잠금 해제",
    "unlocking": "잠금 해제 중...",
    "failedUnlock": "잠금 해제에 실패했습니다.",
    "failedLoadWithStatus": "로드 실패: {status}",
    "failedLoadResilience": "복원력 상태를 로드하지 못했습니다.",
    "saveFailed": "저장 실패",
    "resetFailed": "재설정 실패",
    "loadingResilience": "복원력 상태 로드 중...",
    "retry": "재시도",
    "systemStorage": "시스템 및 스토리지",
    "allDataLocal": "모든 데이터는 컴퓨터에 로컬로 저장됩니다.",
    "databasePath": "데이터베이스 경로",
    "exportDatabase": "데이터베이스 내보내기",
    "exportAll": "모두 내보내기(.tar.gz)",
    "importDatabase": "데이터베이스 가져오기",
    "confirmDbImport": "데이터베이스 가져오기 확인",
    "confirmDbImportDesc": "그러면 모든 현재 데이터가 {file}의 콘텐츠로 대체됩니다. 가져오기 전에 백업이 자동으로 생성됩니다.",
    "yesImport": "예, 수입합니다",
    "lastBackup": "마지막 백업",
    "noBackupYet": "아직 백업이 없습니다",
    "backupNow": "지금 백업",
    "backupRestore": "백업 및 복원",
    "viewBackups": "백업 보기",
    "hide": "숨기기",
    "backupRetentionDesc": "데이터베이스 스냅샷은 복원 전과 데이터가 변경될 때 15분마다 자동으로 생성됩니다. 보존: 스마트 순환을 통한 24시간 + 30일 백업.",
    "loadingBackups": "백업 로드 중...",
    "noBackupsYet": "아직 사용할 수 있는 백업이 없습니다. 데이터가 변경되면 백업이 자동으로 생성됩니다.",
    "backupsAvailable": "{count} 백업 사용 가능",
    "refresh": "새로고침",
    "confirm": "확인하시겠습니까?",
    "yes": "예",
    "no": "아니요",
    "restore": "복원",
    "invalidFileType": "파일 형식이 잘못되었습니다. .sqlite 파일만 허용됩니다.",
    "exportFailed": "내보내기 실패",
    "exportFailedWithError": "내보내기 실패: {error}",
    "fullExportFailedWithError": "전체 내보내기 실패: {error}",
    "backupCreated": "생성된 백업: {file}",
    "restoreSuccess": "복원되었습니다! {connections} 연결, {nodes} 노드, {combos} 콤보, {apiKeys} API 키.",
    "importSuccess": "데이터베이스를 가져왔습니다! {connections} 연결, {nodes} 노드, {combos} 콤보, {apiKeys} API 키.",
    "justNow": "지금 막",
    "minutesAgo": "{count}분 전",
    "hoursAgo": "{count}시간 전",
    "daysAgo": "{count}일 전",
    "backupReasonManual": "매뉴얼",
    "backupReasonPreRestore": "사전 복원",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "마지막 백업 이후 변경 사항 없음",
    "backupFailed": "백업 실패",
    "restoreFailed": "복원 실패",
    "importFailed": "가져오기 실패",
    "errorDuringRestore": "복원 중 오류가 발생했습니다.",
    "errorDuringImport": "가져오는 중에 오류가 발생했습니다.",
    "modelPricing": "모델 가격",
    "modelPricingDesc": "모델별 비용 구성 • 모든 비용은 $/1M 토큰 단위",
    "providers": "공급자",
    "registry": "레지스트리",
    "priced": "가격",
    "searchProvidersModels": "공급자 또는 모델 검색...",
    "showAll": "모두 표시",
    "noProvidersMatch": "검색어와 일치하는 제공업체가 없습니다.",
    "howPricingWorks": "가격 책정 방식",
    "cacheWrite": "캐시 쓰기",
    "unsaved": "저장되지 않은",
    "resetDefaults": "기본값 재설정",
    "saveProvider": "공급자 저장",
    "saving": "저장 중...",
    "model": "모델",
    "models": "모델",
    "moreProviders": "{count} 제공업체 더보기",
    "withPricing": "가격이 구성된 경우",
    "policiesCircuitBreakers": "정책 및 회로 차단기",
    "activeIssuesDetected": "활성 문제가 감지되었습니다.",
    "off": "끄기",
    "resetPricingConfirm": "{provider}의 모든 가격을 기본값으로 재설정하시겠습니까?",
    "pricingDescInput": "입력: 모델에 전송된 토큰",
    "pricingDescOutput": "출력: 생성된 토큰",
    "pricingDescCached": "캐시됨: 재사용된 입력(입력 속도의 ~50%)",
    "pricingDescReasoning": "추론: 사고 토큰(출력으로 대체)",
    "pricingDescCacheWrite": "캐시 쓰기: 캐시 항목 생성(입력으로 대체)",
    "pricingDescFormula": "비용 = (입력 × 입력 속도) + (출력 × 출력 속도) + (캐시 × 캐시 속도) 백만 토큰당.",
    "pricingSettingsTitle": "가격 설정",
    "totalModels": "총 모델",
    "active": "활성",
    "costCalculation": "비용 계산",
    "costCalculationDesc": "비용은 토큰 사용량과 각 모델에 구성된 가격 책정 요율을 기준으로 계산됩니다.",
    "pricingFormat": "가격 형식",
    "pricingFormatDesc": "모든 요율은 $/1M 토큰(백만 토큰당 달러) 단위입니다.",
    "tokenTypes": "토큰 유형",
    "inputTokenDesc": "표준 프롬프트 토큰",
    "outputTokenDesc": "완료/응답 토큰",
    "cachedTokenDesc": "캐시된 입력 토큰(일반적으로 입력 속도의 50%)",
    "reasoningTokenDesc": "특수 추론/사고 토큰(출력 속도로 대체)",
    "cacheCreationTokenDesc": "캐시 항목을 생성하는 데 사용되는 토큰(입력 속도로 대체)",
    "customPricingNote": "특정 모델의 기본 가격을 재정의할 수 있습니다. 맞춤 재정의는 자동 감지된 가격보다 우선 적용됩니다.",
    "editPricing": "가격 편집",
    "viewFullDetails": "전체 세부정보 보기"
  },
  "translator": {
    "title": "번역기",
    "metaTitle": "번역가 놀이터 | 옴니루트",
    "metaDescription": "공급자 간의 API 형식 변환을 디버그, 테스트 및 시각화합니다.",
    "playgroundTitle": "번역가 놀이터",
    "playground": "놀이터",
    "realtime": "실시간 번역 활동",
    "chatTester": "채팅 테스터",
    "testBench": "테스트 벤치",
    "liveMonitor": "라이브 모니터",
    "modeDescriptionPlayground": "API 요청 본문을 붙여넣고 OmniRoute가 이를 공급자 형식(OpenAI ← Claude ← Gemini ← Responses API) 간에 어떻게 변환하는지 확인하세요.",
    "modeDescriptionChatTester": "OmniRoute를 통해 실제 채팅 요청을 보내고 전체 왕복(입력, 번역된 요청, 공급자 응답 및 번역된 출력)을 검사합니다.",
    "modeDescriptionTestBench": "사전 정의된 시나리오를 실행하고 공급자와 모델 간의 호환성을 비교하세요.",
    "modeDescriptionLiveMonitor": "요청이 OmniRoute를 통해 전달됨에 따라 번역 이벤트를 실시간으로 감시하세요.",
    "modeDescriptionFallback": "OmniRoute가 공급자 간 API 요청을 변환하는 방법을 디버그, 테스트 및 시각화합니다.",
    "recentTranslations": "최근 번역",
    "noTranslations": "아직 번역이 없습니다.",
    "source": "소스",
    "target": "대상",
    "time": "시간",
    "model": "모델",
    "status": "상태",
    "latency": "대기 시간",
    "totalTranslations": "총 번역",
    "successful": "성공",
    "errors": "오류",
    "avgLatency": "평균 지연 시간",
    "millisecondsShort": "{value}ms",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "실시간 — 자동 새로고침",
    "paused": "일시중지됨",
    "eventsAppearHint": "요청이 OmniRoute를 통해 전달될 때 번역 이벤트가 여기에 표시됩니다. 이벤트를 생성하려면 다음 방법 중 하나를 사용하세요.",
    "chatTesterTab": "채팅 테스터 탭",
    "testBenchTab": "테스트 벤치 탭",
    "externalApiCalls": "외부 API 호출",
    "ideCliIntegrations": "IDE/CLI 통합",
    "inMemoryNote": "참고: 이벤트는 메모리에 저장되며 서버가 다시 시작되면 재설정됩니다.",
    "ok": "알았어",
    "errorShort": "오류",
    "formatConverter": "형식 변환기",
    "formatConverterDescription": "JSON 요청 본문을 붙여넣거나 입력하세요. 변환기는 소스 형식을 자동으로 감지하여 대상 형식으로 변환합니다. 이를 사용하여 OmniRoute가 형식(OpenAI ← Claude ⇔ Gemini ⇔ Responses API) 간 요청을 변환하는 방법을 디버깅합니다.",
    "input": "입력",
    "output": "출력",
    "auto": "자동",
    "swapFormats": "형식 교환",
    "translateAction": "번역하다",
    "clear": "지우기",
    "inputPlaceholder": "여기에 요청 본문을 붙여넣거나 아래에서 템플릿을 선택하세요...",
    "exampleTemplates": "예제 템플릿",
    "exampleTemplatesHint": "— 로드하려면 클릭하세요.",
    "templateLoadHint": "템플릿은 {format} 형식으로 요청을 로드합니다. 다른 형식으로 로드하려면 소스 형식을 변경하세요.",
    "compatibilityTester": "호환성 테스터",
    "compatibilityReport": "호환성 보고서",
    "testBenchDescription": "사전 정의된 시나리오(간단한 채팅, 도구 호출 등)를 실행하여 번역 및 공급자 호환성을 확인하세요. 소스 형식과 대상 공급자를 선택한 다음 모든 테스트를 실행하여 호환성 비율을 확인하세요. 이를 사용하여 공급자 간에 작동하는 기능을 찾으세요.",
    "targetProvider": "대상 제공자",
    "runAllTests": "모든 테스트 실행",
    "runTest": "테스트 실행",
    "reRun": "재실행",
    "running": "실행중...",
    "passed": "합격",
    "failed": "실패했다",
    "passedIconLabel": "✅ 합격",
    "chunks": "덩어리",
    "scenarioSimpleChat": "간단한 채팅",
    "scenarioToolCalling": "도구 호출",
    "scenarioMultiTurn": "다회전",
    "scenarioThinking": "생각",
    "scenarioSystemPrompt": "시스템 프롬프트",
    "scenarioStreaming": "스트리밍",
    "templateNames": {
      "simple-chat": "간단한 채팅",
      "tool-calling": "도구 호출",
      "multi-turn": "다회전",
      "thinking": "생각",
      "system-prompt": "시스템 프롬프트",
      "streaming": "스트리밍"
    },
    "templateDescriptions": {
      "simple-chat": "기본 문자 메시지",
      "tool-calling": "함수/도구 호출",
      "multi-turn": "역사와의 대화",
      "thinking": "확장된 사고/추론",
      "system-prompt": "복잡한 시스템 지침",
      "streaming": "SSE 스트리밍 요청"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "당신은 도움이 되는 조수입니다.",
        "userGreeting": "안녕하세요! 오늘 기분이 어떠세요?"
      },
      "toolCalling": {
        "userWeather": "상파울루 날씨는 어떻습니까?",
        "toolDescription": "특정 위치의 현재 날씨 확인",
        "cityNameDescription": "도시 이름"
      },
      "multiTurn": {
        "system": "당신은 코딩 도우미입니다.",
        "userInitial": "Python에서 배열을 정렬하는 함수를 작성합니다.",
        "assistantExample": "다음은 간단한 정렬 기능입니다.\n\n``파이썬\ndef sort_array(arr):\n    반환 정렬(arr)\n````",
        "userFollowUp": "이제 내림차순으로 정렬해 보겠습니다."
      },
      "thinking": {
        "question": "처음 100개의 소수의 합은 얼마입니까?"
      },
      "systemPrompt": {
        "systemInstruction": "당신은 분산 시스템을 전문으로 하는 수석 소프트웨어 엔지니어입니다. 업계 모범 사례를 사용하여 질문에 간결하게 답변하세요. 관련이 있는 경우 항상 코드 예제를 제공하세요. 마크다운을 사용하여 응답 형식을 지정하세요.",
        "question": "회로 차단기 패턴을 어떻게 구현하나요?"
      },
      "streaming": {
        "prompt": "그림 그리는 법을 배우는 로봇에 대한 짧은 이야기를 들려주세요."
      }
    },
    "openaiCompatibleLabel": "OpenAI 호환",
    "anthropicCompatibleLabel": "인류 친화적",
    "noTemplateForFormat": "이 형식에 대한 템플릿이 없습니다.",
    "translationFailed": "번역 실패: {error}",
    "pipelineDebugger": "파이프라인 디버거",
    "translationPipeline": "번역 파이프라인",
    "pipelineVisualization": "파이프라인 시각화",
    "pipelineVisualizationHint": "감지 → 번역 → 공급자 호출을 통해 요청이 어떻게 진행되는지 확인하려면 메시지를 보내세요.",
    "chatTesterDescription": "특정 클라이언트 형식으로 메시지를 보내고 번역 파이프라인의 각 단계를 검사합니다.",
    "chatTesterFlow": "클라이언트 요청 → 형식 감지 → OpenAI Intermediate → 공급자 형식 → 응답",
    "clickStepToInspect": "단계를 클릭하면 해당 단계의 데이터를 검사할 수 있습니다.",
    "clientFormat": "클라이언트 형식",
    "provider": "공급자",
    "modelPlaceholder": "모델 이름을 선택하거나 입력하세요...",
    "sendMessageToSeePipeline": "번역 파이프라인을 보려면 메시지를 보내세요.",
    "chatMessageHintPrefix": "귀하의 메시지는 다음과 같은 형식으로 지정됩니다.",
    "chatMessageHintSuffix": "요청하고 파이프라인을 통해 번역되어 선택한 공급자에게 전송됩니다.",
    "youWithFormat": "귀하({format})",
    "assistant": "어시스턴트",
    "typeMessage": "메시지를 입력하세요...",
    "send": "보내기",
    "clientRequest": "클라이언트 요청",
    "clientRequestDescription": "클라이언트가 보내는 요청 본문",
    "formatDetected": "형식이 감지되었습니다.",
    "formatDetectedDescription": "OmniRoute는 요청 구조에서 API 형식을 자동 감지합니다.",
    "openaiIntermediate": "OpenAI 중급",
    "openaiIntermediateDescription": "모든 형식은 먼저 OpenAI 형식(범용 브리지)으로 정규화됩니다.",
    "providerFormat": "공급자 형식",
    "providerFormatDescription": "OpenAI 형식은 공급자의 기본 형식으로 변환됩니다.",
    "providerResponse": "제공자 응답",
    "providerResponseRawDescription": "공급자 API의 원시 응답",
    "providerResponseSseDescription": "공급자 API의 원시 SSE 스트림",
    "unexpectedError": "예상치 못한 오류가 발생했습니다.",
    "error": "오류",
    "errorMessage": "오류: {message}",
    "requestFailed": "요청 실패",
    "noTextExtracted": "(텍스트가 추출되지 않았습니다)",
    "liveMonitorDescriptionPrefix": "OmniRoute를 통한 API 호출 흐름으로 번역 이벤트를 표시합니다. 이벤트는 메모리 내 버퍼에서 발생합니다(다시 시작 시 재설정). 사용",
    "liveMonitorDescriptionSuffix": ", 또는 외부 API 호출을 통해 이벤트를 생성합니다."
  },
  "usage": {
    "title": "사용법",
    "loggerTab": "로거",
    "proxyTab": "프록시",
    "budgetManagement": "예산 관리",
    "budgetSaved": "예산 한도가 저장되었습니다.",
    "budgetSaveFailed": "예산을 저장하지 못했습니다.",
    "loadingBudgetData": "예산 데이터 로드 중...",
    "noApiKeysTitle": "API 키 없음",
    "noApiKeysDescription": "예산 한도를 설정하려면 먼저 API 키를 추가하세요.",
    "apiKey": "API 키",
    "todaysSpend": "오늘의 지출",
    "thisMonth": "이번 달",
    "setLimits": "한도 설정",
    "dailyLimitUsd": "일일 한도(USD)",
    "monthlyLimitUsd": "월 한도(USD)",
    "warningThresholdPercent": "경고 임계값(%)",
    "dailyLimitPlaceholder": "예를 들어 5.00",
    "monthlyLimitPlaceholder": "예를 들어 50.00",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "저장 한도",
    "budgetOk": "예산 양호 — {remaining} 남음",
    "budgetExceeded": "예산 초과 - 요청이 차단될 수 있음",
    "totalRequests": "총 요청수",
    "noDataYet": "아직 데이터가 없습니다",
    "latency": "대기 시간",
    "latencyP50": "p50",
    "latencyP95": "p95",
    "latencyP99": "p99",
    "promptCache": "프롬프트 캐시",
    "systemHealth": "시스템 상태",
    "entries": "항목",
    "activeCount": "{count} 활성",
    "openCircuitBreakersDetected": "개방형 회로 차단기가 감지되었습니다.",
    "hitRate": "적중률",
    "hitsMisses": "안타/실패",
    "circuitBreakers": "회로 차단기",
    "lockedIPs": "잠긴 IP",
    "lockoutsAutoRefreshHint": "모델별 비율 제한 잠금 • 10초 자동 새로고침",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "{time} 남음",
    "howItWorks": "작동 방식",
    "howItWorksSubtitle": "평가를 통해 LLM 응답을 검증하는 방법 알아보기",
    "define": "정의",
    "defineStepDescription": "포함, 정규식 또는 정확한 일치와 같은 전략을 사용하여 입력 프롬프트 및 예상 출력 기준으로 테스트 사례를 만듭니다.",
    "run": "실행",
    "runStepDescription": "OmniRoute를 통해 LLM 엔드포인트에 대해 테스트 케이스를 실행하세요. 각 사례는 실제 API 요청으로 전송됩니다.",
    "evaluate": "평가하다",
    "evaluateStepDescription": "응답은 예상 기준과 비교됩니다. 지연 시간 측정항목과 자세한 피드백을 통해 각 사례의 통과/실패를 확인하세요.",
    "evalSuites": "평가 제품군",
    "evalSuitesHint": "제품군을 클릭하여 테스트 사례를 본 다음 실행하여 LLM 엔드포인트를 평가하세요.",
    "evalsLoading": "평가 모음 로드 중...",
    "noEvalSuitesFound": "평가 제품군을 찾을 수 없습니다.",
    "noEvalSuitesDescription": "평가 제품군은 API 또는 코드를 통해 정의할 수 있습니다. 포함, 정규식, 정확한 일치 및 사용자 정의 기능과 같은 전략을 사용하여 예상 결과에 대해 모델 출력을 테스트합니다.",
    "columnCase": "케이스",
    "columnStatus": "상태",
    "columnLatency": "대기 시간",
    "columnDetails": "세부정보",
    "columnModel": "모델",
    "columnStrategy": "전략",
    "columnExpected": "예상",
    "statsSuites": "스위트",
    "statsTestCases": "테스트 케이스",
    "statsModels": "모델",
    "statsCoverage": "적용 범위",
    "statsStrategiesCount": "{count} 전략",
    "evaluationStrategies": "평가 전략",
    "modelsUnderTest": "테스트 중인 모델",
    "searchSuitesPlaceholder": "제품군 검색...",
    "passSuffix": "통과",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "평가 실행",
    "runningProgress": "{current}/{total} 실행 중...",
    "passRate": "합격률",
    "summaryBreakdown": "{passed} 통과 · {failed} 실패 · 총 {total}",
    "passedIconLabel": "✅ 합격",
    "failedIconLabel": "❌ 실패",
    "detailsContains": "포함: \"{term}\"",
    "detailsRegex": "정규식: {pattern}",
    "detailsExpected": "예상: \"{expected}\"",
    "noResultsYet": "아직 결과가 없습니다",
    "testCasesCount": "테스트 케이스({count})",
    "noTestCasesDefined": "정의된 테스트 사례가 없습니다.",
    "runEvalHint": "LLM 엔드포인트에 대해 모든 사례를 실행하려면 \"평가 실행\"을 클릭하세요. 각 테스트는 OmniRoute를 통해 실제 요청을 보냅니다.",
    "notifyNoTestCases": "이 제품군에 대해 정의된 테스트 사례가 없습니다.",
    "notifyAllCasesPassed": "{total} 건 모두 통과됨 ✅",
    "notifySomeCasesFailed": "{passed}/{total} 통과, {failed} 실패",
    "notifyEvalRunFailed": "평가 실행 실패",
    "notifyEvalTitle": "평가: {name}",
    "modelEvals": "모델 평가",
    "evalsHeroDescription": "사전 정의된 평가 제품군을 실행하여 LLM 엔드포인트를 테스트하고 검증하세요. 각 제품군에는 OmniRoute를 통해 실제 프롬프트를 보내고 예상 기준과 응답을 비교하는 테스트 사례가 포함되어 있어 회귀를 감지하고, 모델을 비교하고, 공급자 전체의 응답 품질을 보장하는 데 도움이 됩니다.",
    "qualityValidation": "품질 검증",
    "modelComparison": "모델 비교",
    "regressionDetection": "회귀 감지",
    "latencyBenchmarks": "지연 시간 벤치마크",
    "modelLockouts": "모델 잠금",
    "noLockouts": "현재 잠긴 모델이 없습니다.",
    "activeSessions": "활성 세션",
    "noSessions": "활성 세션 없음",
    "sessionsHint": "세션은 프록시를 통한 요청 흐름으로 나타납니다.",
    "sessionsTrackedHint": "요청 핑거프린팅을 통해 추적됨 • 자동 새로고침 5초",
    "session": "세션",
    "age": "나이",
    "requests": "요청사항",
    "connection": "연결",
    "durationMillisecondsShort": "{value}ms",
    "durationSecondsShort": "{value}s",
    "durationMinutesShort": "{value}m",
    "durationHoursShort": "{value}h",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "공급자 한도",
    "noProviders": "연결된 제공업체 없음",
    "connectProvidersForQuota": "OAuth를 통해 공급자에 연결하여 API 할당량 한도 및 사용량을 추적하세요.",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "({count}에서 필터링됨)",
    "autoRefresh": "자동 새로고침",
    "refreshAll": "모두 새로 고침",
    "loadingQuotas": "로드 중...",
    "account": "계정",
    "modelQuotas": "모델 할당량",
    "lastUsed": "마지막으로 사용됨",
    "actions": "작업",
    "refreshQuota": "새로고침 할당량",
    "today": "오늘",
    "tomorrow": "내일",
    "dayTimeFormat": "{day}, {time}",
    "inDuration": "{duration}에서",
    "notApplicable": "해당 없음",
    "rawPlanWithValue": "기본 계획: {plan}",
    "noPlanFromProvider": "공급자의 계획 없음",
    "noQuotaData": "할당량 데이터 없음",
    "noQuotaDataAvailable": "사용 가능한 할당량 데이터가 없습니다.",
    "noAccountsForTierFilter": "등급 필터에 대한 계정을 찾을 수 없습니다.",
    "tierAll": "모두",
    "tierEnterprise": "기업",
    "tierTeam": "팀",
    "tierBusiness": "비즈니스",
    "tierUltra": "울트라",
    "tierPro": "프로",
    "tierPlus": "플러스",
    "tierFree": "무료",
    "tierUnknown": "알 수 없음"
  },
  "modals": {
    "waitingAuth": "승인을 기다리는 중",
    "verificationUrl": "확인 URL",
    "yourCode": "귀하의 코드",
    "remoteAccess": "원격 액세스:",
    "connectedSuccess": "성공적으로 연결되었습니다!",
    "connectionFailed": "연결 실패",
    "chooseAuthMethod": "인증 방법을 선택하세요:",
    "awsBuilderId": "AWS 빌더 ID",
    "awsIamIdentity": "AWS IAM 자격 증명 센터",
    "googleAccount": "구글 계정",
    "githubAccount": "GitHub 계정",
    "importToken": "토큰 가져오기",
    "pasteToken": "Kiro IDE에서 새로 고침 토큰을 붙여넣습니다.",
    "awsRegion": "AWS 지역",
    "autoDetecting": "토큰 자동 감지 중...",
    "readingFromCache": "AWS SSO 캐시에서 읽기",
    "readingFromCursor": "커서 IDE 데이터베이스에서 읽기",
    "initializing": "초기화 중...",
    "pricingConfig": "가격 구성",
    "loadingPricing": "가격 데이터 로드 중...",
    "pricingRatesFormat": "가격 요율 형식",
    "noPricingData": "사용 가능한 가격 데이터가 없습니다.",
    "noModelsFound": "모델을 찾을 수 없습니다."
  },
  "loggers": {
    "allProviders": "모든 제공자",
    "allModels": "모든 모델",
    "allAccounts": "모든 계정",
    "allApiKeys": "모든 API 키",
    "allTypes": "모든 유형",
    "allLevels": "모든 레벨",
    "modelAZ": "모델 A-Z",
    "modelZA": "모델 Z-A",
    "loadingLogs": "로그 로드 중...",
    "loadingProxyLogs": "프록시 로그 로드 중...",
    "noLogEntries": "로그 항목을 찾을 수 없습니다.",
    "noPayloadData": "이 로그 항목에 사용할 수 있는 페이로드 데이터가 없습니다.",
    "proxyEvent": "프록시 이벤트",
    "proxy": "프록시",
    "level": "레벨",
    "directNative": "직접(네이티브)",
    "combo": "콤보",
    "inputTokens": "나:",
    "outputTokens": "아:"
  },
  "stats": {
    "usageOverview": "사용법 개요",
    "outputTokens": "출력 토큰",
    "totalCost": "총 비용",
    "usageByModel": "모델별 사용량",
    "usageByAccount": "계정별 사용량",
    "failedToLoad": "사용 통계를 로드하지 못했습니다.",
    "tokenHealth": "토큰 상태",
    "totalOAuth": "총 OAuth",
    "healthy": "건강하다",
    "warning": "경고",
    "errored": "오류 발생",
    "lastCheck": "마지막 확인",
    "noData": "데이터 없음",
    "share": "공유",
    "unableToLoad": "시스템 측정항목을 로드할 수 없습니다.",
    "product": "제품",
    "resources": "자원",
    "company": "회사"
  },
  "auth": {
    "welcome": "환영합니다",
    "signIn": "로그인",
    "enterPassword": "계속하려면 비밀번호를 입력하세요",
    "password": "비밀번호",
    "unifiedProxy": "통합 AI API 프록시",
    "unifiedAiApiProxy": "통합 AI API 프록시",
    "unifiedAiApiProxyDesc": "단일 엔드포인트를 통해 여러 AI 공급자에게 요청을 라우팅합니다. 로드 밸런싱, 장애 조치 및 사용 추적 기능이 내장되어 있습니다.",
    "passwordNotEnabled": "비밀번호 보호가 활성화되지 않았습니다.",
    "loading": "로드 중...",
    "invalidPassword": "잘못된 비밀번호",
    "errorOccurredRetry": "오류가 발생했습니다. 다시 시도해 주세요.",
    "configureInstance": "OmniRoute 인스턴스를 구성해 보겠습니다.",
    "runOnboardingWizard": "온보딩 마법사를 실행하여 비밀번호를 설정하고 첫 번째 AI 공급자를 연결하세요.",
    "startOnboarding": "온보딩 시작",
    "secureYourInstance": "인스턴스 보안",
    "setPasswordDescription": "대시보드를 보호하고 무단 액세스로부터 API 엔드포인트를 보호하기 위해 비밀번호를 설정하세요.",
    "configurePassword": "비밀번호 구성",
    "continue": "계속",
    "windowWillClose": "이 창은 자동으로 닫힙니다...",
    "closeTabNow": "이제 이 탭을 닫아도 됩니다.",
    "copyUrlManual": "주소 표시줄에서 URL을 복사하여 애플리케이션에 붙여넣으세요.",
    "accessDeniedDescription": "이 리소스에 액세스할 수 있는 권한이 없습니다. API 키를 확인하거나 관리자에게 문의하세요.",
    "goToDashboard": "대시보드로 이동",
    "featureMultiProviderTitle": "다중 공급자",
    "featureMultiProviderDesc": "OpenAI, Anthropic, Google 등",
    "featureLoadBalancingTitle": "로드 밸런싱",
    "featureLoadBalancingDesc": "요청을 지능적으로 분산",
    "featureUsageTrackingTitle": "사용량 추적",
    "featureUsageTrackingDesc": "비용 및 토큰 모니터링",
    "resetPassword": "비밀번호 재설정",
    "resetDescription": "대시보드에 대한 액세스를 복구하는 방법을 선택하세요.",
    "stopServer": "OmniRoute 서버 중지",
    "processing": "처리 중...",
    "pleaseWait": "승인이 완료되는 동안 잠시 기다려 주십시오.",
    "authSuccess": "승인 성공!",
    "copyUrl": "이 URL 복사",
    "accessDenied": "액세스가 거부되었습니다.",
    "methodCliTitle": "방법 1: CLI 재설정",
    "methodCliDescription": "OmniRoute가 실행 중인 서버에서 다음 명령을 실행합니다.",
    "methodCliHint": "그러면 새 비밀번호를 설정하라는 메시지가 표시됩니다. 먼저 서버를 중지해야 합니다.",
    "methodManualTitle": "방법 2: 수동 재설정",
    "methodManualDescription": "데이터베이스에서 비밀번호를 삭제하고 시작 시 새 비밀번호를 설정하세요.",
    "setPasswordInYour": "새 비밀번호를 설정하세요.",
    "fileLabelSuffix": "파일:",
    "newPasswordPlaceholder": "your_new_password",
    "deleteSettingsFile": "삭제",
    "orRemovePasswordHashField": "또는 PasswordHash 필드를 제거하세요.",
    "restartServerWithNewPassword": "서버를 다시 시작하세요. 새 비밀번호가 사용됩니다.",
    "backToLogin": "로그인으로 돌아가기",
    "forgotPassword": "비밀번호를 잊으셨나요?"
  },
  "landing": {
    "brandName": "옴니루트",
    "navigateHome": "집으로 이동",
    "toggleMenu": "토글 메뉴",
    "featuresLink": "특징",
    "docsLink": "문서",
    "github": "GitHub",
    "versionLive": "v1.0이 출시되었습니다",
    "oneEndpoint": "하나의 엔드포인트",
    "allProviders": "모든 AI 제공업체",
    "heroDescription": "웹 대시보드가 ​​포함된 AI 엔드포인트 프록시 - CLIProxyAPI의 JavaScript 포트입니다. Claude Code, OpenAI Codex, Cline, RooCode 및 기타 CLI 도구와 원활하게 작동합니다.",
    "getStarted": "시작하기",
    "viewOnGithub": "GitHub에서 보기",
    "powerfulFeatures": "강력한 기능",
    "featuresSubtitle": "AI 인프라를 한 곳에서 관리하는 데 필요한 모든 것이 확장 가능하도록 구축되었습니다.",
    "featureUnifiedEndpointTitle": "통합 엔드포인트",
    "featureUnifiedEndpointDesc": "단일 표준 API URL을 통해 모든 공급자에 액세스합니다.",
    "featureEasySetupTitle": "쉬운 설정",
    "featureEasySetupDesc": "npx 명령을 사용하여 몇 분 만에 시작하고 실행할 수 있습니다.",
    "featureModelFallbackTitle": "모델 대체",
    "featureModelFallbackDesc": "장애가 발생하거나 대기 시간이 긴 경우 공급자를 자동으로 전환합니다.",
    "featureUsageTrackingTitle": "사용량 추적",
    "featureUsageTrackingDesc": "모든 모델에 대한 자세한 분석 및 비용 모니터링.",
    "featureOAuthApiKeysTitle": "OAuth 및 API 키",
    "featureOAuthApiKeysDesc": "하나의 저장소에서 자격 증명을 안전하게 관리하세요.",
    "featureCloudSyncTitle": "클라우드 동기화",
    "featureCloudSyncDesc": "여러 장치에서 구성을 즉시 동기화하세요.",
    "featureCliSupportTitle": "CLI 지원",
    "featureCliSupportDesc": "Claude Code, Codex, Cline, Cursor 등과 함께 작동합니다.",
    "featureDashboardTitle": "대시보드",
    "featureDashboardDesc": "실시간 트래픽 분석을 위한 시각적 대시보드입니다.",
    "howItWorks": "OmniRoute 작동 방식",
    "howItWorksDescription": "데이터는 귀하의 애플리케이션에서 당사의 지능형 라우팅 계층을 통해 작업에 가장 적합한 제공업체로 원활하게 흐릅니다.",
    "howItWorksStep1Title": "1. CLI 및 SDK",
    "howItWorksStep1Description": "귀하의 요청은 귀하가 선호하는 도구 또는 당사의 통합 SDK에서 시작됩니다. 기본 URL만 변경하면 됩니다.",
    "howItWorksStep2Title": "2. 옴니루트 허브",
    "howItWorksStep2Description": "우리 엔진은 프롬프트를 분석하고 공급자 상태를 확인하며 지연 시간이나 비용이 가장 낮은 경로를 지정합니다.",
    "howItWorksStep3Title": "3. AI 제공업체",
    "howItWorksStep3Description": "요청은 OpenAI, Anthropic, Gemini 등이 즉시 이행합니다.",
    "getStartedIn30Seconds": "30초 안에 시작하세요",
    "getStartedDescription": "OmniRoute를 설치하고, 웹 대시보드를 통해 공급자를 구성하고, AI 요청 라우팅을 시작하세요.",
    "installOmniRoute": "OmniRoute 설치",
    "installStepDescription": "npx 명령을 실행하여 서버를 즉시 시작하세요.",
    "openDashboard": "대시보드 열기",
    "openDashboardStepDescription": "웹 인터페이스를 통해 공급자 및 API 키 구성",
    "routeRequests": "라우팅 요청",
    "routeRequestsStepDescription": "CLI 도구를 {endpoint}에 지정하세요.",
    "terminal": "터미널",
    "copy": "복사",
    "copied": "✓ 복사됨",
    "startingOmniRoute": "OmniRoute 시작 중...",
    "serverRunningOnLabel": "실행 중인 서버",
    "dashboardLabel": "대시보드",
    "readyToRoute": "라우팅 준비 완료! ✓",
    "configureProvidersNote": "📝 대시보드에서 공급자를 구성하거나 환경 변수를 사용하세요.",
    "dataLocation": "데이터 위치:",
    "dataLocationMacLinux": " 맥OS/리눅스:",
    "dataLocationWindows": " 윈도우:",
    "product": "제품",
    "dashboardLink": "대시보드",
    "changelog": "변경 내역",
    "resources": "자원",
    "documentation": "문서",
    "npm": "NPM",
    "legal": "법적",
    "mitLicense": "MIT 라이센스",
    "footerTagline": "AI 생성을 위한 통합 엔드포인트입니다. AI 공급자를 쉽게 연결하고 라우팅하고 관리하세요.",
    "copyright": "© {year} OmniRoute. 모든 권리 보유.",
    "flowToolClaudeCode": "클로드 코드",
    "flowToolOpenAICodex": "오픈AI 코덱스",
    "flowToolCline": "클라인",
    "flowToolCursor": "커서",
    "flowProviderOpenAI": "오픈AI",
    "flowProviderAnthropic": "인류학",
    "flowProviderGemini": "쌍둥이자리",
    "flowProviderGithubCopilot": "GitHub 코파일럿",
    "interactiveDiagram": "데스크탑에 표시되는 대화형 다이어그램",
    "ctaTitle": "AI 인프라를 단순화할 준비가 되셨나요?",
    "ctaDescription": "OmniRoute를 통해 AI 통합을 간소화하는 개발자와 함께하세요. 오픈 소스이며 무료로 시작할 수 있습니다.",
    "startFree": "무료로 시작하세요",
    "readDocumentation": "문서 읽기"
  },
  "docs": {
    "title": "문서",
    "quickStart": "빠른 시작",
    "features": "특징",
    "supportedProviders": "지원되는 제공업체",
    "supportedProvidersToc": "공급자",
    "commonUseCases": "일반적인 사용 사례",
    "clientCompatibility": "클라이언트 호환성",
    "apiReference": "API 참조",
    "method": "방법",
    "path": "경로",
    "notes": "메모",
    "modelPrefixes": "모델 접두어",
    "prefix": "접두사",
    "troubleshooting": "문제 해결",
    "supportsChat": "채팅 및 응답 엔드포인트를 모두 지원합니다.",
    "oauthAutoRefresh": "자동 토큰 새로 고침을 통한 OAuth 연결.",
    "fullStreaming": "모든 모델에 대한 전체 스트리밍 지원.",
    "docsLabel": "문서",
    "docsHeroDescription": "다중 공급자 LLM을 위한 AI 게이트웨이. OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor 및 20개 이상의 공급자를 위한 하나의 엔드포인트입니다.",
    "openDashboard": "대시보드 열기",
    "endpointPage": "엔드포인트 페이지",
    "github": "GitHub",
    "reportIssue": "문제 보고",
    "onThisPage": "이 페이지에서",
    "documentationVersion": "문서 - v{version}",
    "quickStartStep1Title": "1. 설치 및 실행",
    "quickStartStep1Prefix": "실행",
    "quickStartStep1Middle": "또는 GitHub에서 복제하여 실행하세요.",
    "quickStartStep2Title": "2. API 키 생성",
    "quickStartStep2Text": "엔드포인트 -> 등록된 키로 이동합니다. 환경당 하나의 키를 생성합니다.",
    "quickStartStep3Title": "3. 공급자 연결",
    "quickStartStep3Text": "OAuth 로그인, API 키 또는 무료 계층 자동 연결을 통해 공급자 계정을 추가하세요.",
    "quickStartStep4Title": "4. 클라이언트 기본 URL 설정",
    "quickStartStep4Prefix": "IDE 또는 API 클라이언트를 다음으로 지정하세요.",
    "quickStartStep4Suffix": "예를 들어 공급자 접두사를 사용하십시오.",
    "featureRoutingTitle": "다중 공급자 라우팅",
    "featureRoutingText": "단일 OpenAI 호환 엔드포인트를 통해 30개 이상의 AI 공급자에게 요청을 라우팅합니다. 채팅, 응답, 오디오 및 이미지 API를 지원합니다.",
    "featureCombosTitle": "콤보와 밸런싱",
    "featureCombosText": "대체 체인 및 균형 조정 전략(라운드 로빈, 우선 순위, 무작위, 최소 사용, 비용 최적화)을 사용하여 모델 콤보를 만듭니다.",
    "featureUsageTitle": "사용량 및 비용 추적",
    "featureUsageText": "실시간 토큰 계산, 공급자/모델별 비용 계산, API 키 및 계정별 세부 사용량 분석.",
    "featureAnalyticsTitle": "분석 대시보드",
    "featureAnalyticsText": "시간 경과에 따른 요청, 토큰, 오류, 대기 시간, 비용 및 모델 인기도에 대한 차트가 포함된 시각적 분석입니다.",
    "featureHealthTitle": "건강 모니터링",
    "featureHealthText": "실시간 상태 확인, 공급자 상태, 회로 차단기 상태 및 지수 백오프를 통한 자동 속도 제한 감지.",
    "featureCliTitle": "CLI 도구",
    "featureCliText": "IDE 구성을 관리하고, 백업을 내보내거나 가져오고, 코덱스 프로필을 검색하고, 대시보드에서 설정을 구성하세요.",
    "featureSecurityTitle": "보안 및 정책",
    "featureSecurityText": "API 키 인증, IP 필터링, 프롬프트 주입 가드, 도메인 정책, 세션 관리 및 감사 로깅.",
    "featureCloudSyncTitle": "클라우드 동기화",
    "featureCloudSyncText": "암호화된 자격 증명 및 자동 장애 조치를 통해 원격 액세스를 위해 구성을 Cloudflare Workers에 동기화하세요.",
    "providersAcrossConnectionTypes": "세 가지 연결 유형에 걸쳐 {count} 공급자.",
    "manageProviders": "공급자 관리",
    "providersCount": "{count} 제공업체",
    "providerTypeFree": "프리 티어",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "API 키",
    "useCaseSingleEndpointTitle": "많은 공급자를 위한 단일 엔드포인트",
    "useCaseSingleEndpointText": "클라이언트를 하나의 기본 URL로 지정하고 모델 접두사(예: gh/, cc/, kr/, openai/)로 라우팅합니다.",
    "useCaseFallbackTitle": "콤보를 사용한 폴백 및 모델 전환",
    "useCaseFallbackText": "대시보드에서 콤보 모델을 생성하고 공급자가 내부적으로 순환하는 동안 클라이언트 구성을 안정적으로 유지하세요.",
    "useCaseUsageVisibilityTitle": "사용량, 비용 및 디버그 가시성",
    "useCaseUsageVisibilityText": "사용량 및 분석 탭에서 공급자, 계정, API 키별로 토큰과 비용을 추적하세요.",
    "clientCherryStudioTitle": "체리 스튜디오",
    "baseUrlLabel": "기본 URL",
    "chatEndpointLabel": "채팅 엔드포인트",
    "modelRecommendationLabel": "모델 권장사항: 명시적 접두사",
    "clientCodexTitle": "Codex / GitHub Copilot 모델",
    "clientCodexBullet1": "다음과 함께 모델 ID를 사용하세요.",
    "clientCodexBullet2": "Codex 계열 모델은 다음으로 자동 라우팅됩니다.",
    "clientCodexBullet3": "비 Codex 모델은 계속됩니다",
    "clientCursorTitle": "커서 IDE",
    "clientCursorBullet1": "사용",
    "clientCursorBullet1Suffix": "커서 모델의 접두사.",
    "clientCursorBullet2": "OAuth 연결 - 공급자 페이지에서 로그인합니다.",
    "clientClaudeTitle": "클로드 코드 / 반중력",
    "clientClaudeBullet1Prefix": "사용",
    "clientClaudeBullet1Middle": "(클로드) 또는",
    "clientClaudeBullet1Suffix": "(반중력) 접두사.",
    "endpointChatNote": "OpenAI 호환 채팅 엔드포인트(기본값)",
    "endpointResponsesNote": "응답 API 엔드포인트(Codex, o-시리즈).",
    "endpointModelsNote": "연결된 모든 공급자의 모델 카탈로그입니다.",
    "endpointAudioNote": "오디오 전사(Deepgram, AssemblyAI).",
    "endpointImagesNote": "이미지 생성(NanoBanana).",
    "endpointRewriteChatNote": "/v1이 없는 클라이언트용 도우미를 다시 작성합니다.",
    "endpointRewriteResponsesNote": "/v1 없이 응답에 대한 도우미를 다시 작성합니다.",
    "endpointRewriteModelsNote": "/v1 없이 모델 검색을 위한 도우미를 다시 작성합니다.",
    "modelPrefixesDescriptionStart": "특정 공급자로 라우팅하려면 모델 이름 앞에 공급자 접두사를 사용하십시오. 예:",
    "modelPrefixesDescriptionEnd": "GitHub Copilot으로 경로를 지정합니다.",
    "provider": "공급자",
    "type": "유형",
    "troubleshootingModelRouting": "클라이언트가 모델 라우팅에 실패하면 명시적인 공급자/모델을 사용하십시오(예: gh/gpt-5.1-codex).",
    "troubleshootingAmbiguousModels": "모호한 모델 오류가 발생하는 경우 기본 모델 ID 대신 공급자 접두사를 선택하세요.",
    "troubleshootingCodexFamily": "GitHub Codex 계열 모델의 경우 모델을 gh/<codex-model>로 유지합니다. 라우터는 /responses를 자동으로 선택합니다.",
    "troubleshootingTestConnection": "IDE 또는 외부 클라이언트에서 테스트하기 전에 대시보드 > 공급자 > 연결 테스트를 사용하세요.",
    "troubleshootingCircuitBreaker": "공급자가 회로 차단기를 열었다고 표시하는 경우 대기 시간을 기다리거나 상태 페이지에서 자세한 내용을 확인하세요.",
    "troubleshootingOAuth": "OAuth 공급자의 경우 토큰이 만료되면 다시 인증하세요. 공급자 카드 상태 표시기를 확인하십시오."
  },
  "legal": {
    "privacyPolicy": "개인 정보 보호 정책",
    "termsOfService": "서비스 약관",
    "providerConfigurations": "공급자 구성",
    "apiKeys": "API 키",
    "usageLogs": "사용 로그",
    "applicationSettings": "애플리케이션 설정",
    "viewExportAnalytics": "사용량 분석 보기 및 내보내기",
    "clearHistory": "언제든지 사용 내역 지우기",
    "configureRetention": "로그 보존 정책 구성",
    "backupRestore": "데이터베이스 백업 및 복원",
    "privacyMetadataTitle": "개인정보 보호정책 | 옴니루트",
    "privacyMetadataDescription": "OmniRoute AI API 프록시 라우터에 대한 개인정보 보호정책.",
    "termsMetadataTitle": "서비스 약관 | 옴니루트",
    "termsMetadataDescription": "OmniRoute AI API 프록시 라우터에 대한 서비스 약관입니다.",
    "backToHome": "집으로 돌아가기",
    "lastUpdated": "최종 업데이트: {date}",
    "policyLastUpdatedDate": "2026년 2월 13일",
    "listSeparator": "-",
    "questionsVisit": "질문이 있으신가요? 우리를 방문하세요",
    "githubRepository": "GitHub 저장소",
    "privacySection1Title": "1. 로컬 우선 아키텍처",
    "privacySection1Text": "OmniRoute는 로컬 우선 애플리케이션으로 설계되었습니다. 모든 데이터 처리 및 저장은 전적으로 귀하의 컴퓨터에서 이루어집니다. 귀하의 정보를 수집하는 중앙 집중식 서버가 없습니다.",
    "privacySection2Title": "2. 당사가 저장하는 데이터",
    "privacyDataStoredIn": "다음 데이터는 로컬에 저장됩니다.",
    "privacyDataProviderConfigurationsDesc": "연결 URL, 공급자 유형 및 우선순위 설정",
    "privacyDataApiKeysDesc": "AI 제공업체 인증을 위해 암호화되어 로컬에 저장됨",
    "privacyDataUsageLogsDesc": "요청 수, 토큰 사용량, 모델 이름, 타임스탬프 및 응답 시간",
    "privacyDataApplicationSettingsDesc": "테마 기본 설정, 라우팅 전략 및 콤보 구성",
    "privacySection3Title": "3. 원격 측정 없음",
    "privacySection3Text": "OmniRoute는 원격 측정, 분석 또는 충돌 보고서를 수집하지 않습니다. 어떠한 데이터도 당사나 제3자에게 전송되지 않습니다. 귀하의 사용 패턴, API 호출 및 구성은 완전히 비공개로 유지됩니다.",
    "privacySection4Title": "4. 제3자 AI 제공업체",
    "privacySection4Text": "OmniRoute를 통해 API 호출을 수행하면 요청은 구성한 AI 공급자(예: OpenAI, Anthropic, Google)로 전달됩니다. 이러한 제공업체는 귀하의 데이터를 처리하는 방법을 관리하는 자체 개인 정보 보호 정책을 가지고 있습니다. 검토해 주십시오:",
    "privacyOpenAiPolicy": "OpenAI 개인정보 보호정책",
    "privacyAnthropicPolicy": "인류학적 개인정보 보호정책",
    "privacyGooglePolicy": "Google 개인정보 보호정책",
    "privacySection5Title": "5. 클라우드 동기화(선택 사항)",
    "privacySection5Text": "선택적 클라우드 동기화 기능을 활성화하면 공급자 구성 및 API 키가 구성된 클라우드 엔드포인트로 전송될 수 있습니다. 이 기능은 기본적으로 비활성화되어 있으며 명시적인 선택이 필요합니다.",
    "privacySection6Title": "6. 로깅",
    "privacyLoggingIntro": "요청 로그는 대시보드 설정을 통해 구성할 수 있습니다. 다음을 수행할 수 있습니다.",
    "privacySection7Title": "7. 귀하의 권리",
    "privacySection7TextStart": "모든 데이터는 로컬에 저장되므로 모든 권한을 가질 수 있습니다. 언제든지 제거하여 데이터를 삭제할 수 있습니다.",
    "privacySection7TextEnd": "디렉터리를 사용하거나 대시보드의 데이터베이스 백업 및 복원 기능을 사용합니다.",
    "termsSection1Title": "1. 개요",
    "termsSection1Text": "OmniRoute는 전적으로 사용자의 머신에서 작동하는 로컬 우선 AI API 프록시 라우터입니다. 로드 밸런싱, 장애 조치 및 사용량 추적을 통해 요청을 여러 AI 공급자에게 라우팅합니다.",
    "termsSection2Title": "2. 사용자의 책임",
    "termsResponsibilityApiKeys": "제3자 AI 제공업체(OpenAI, Anthropic, Google 등)에 대한 자체 API 키 및 자격 증명을 관리하는 것은 전적으로 귀하의 책임입니다.",
    "termsResponsibilityCompliance": "귀하는 OmniRoute를 통해 API에 액세스하는 각 AI 제공업체의 서비스 약관을 준수해야 합니다.",
    "termsResponsibilitySecurity": "비밀번호 설정 및 네트워크 액세스 제한을 포함하여 로컬 OmniRoute 설치의 보안에 대한 책임은 귀하에게 있습니다.",
    "termsSection3Title": "3. 작동 원리",
    "termsSection3Text": "OmniRoute는 중개 프록시 역할을 합니다. OmniRoute로 전송된 API 호출은 변환되어 구성된 AI 공급자에게 전달됩니다. OmniRoute는 필요한 프로토콜 변환 이상으로 요청 또는 응답의 내용을 수정하지 않습니다.",
    "termsSection4Title": "4. 데이터 처리",
    "termsDataStoredLocally": "모든 데이터는 컴퓨터의 SQLite 데이터베이스에 로컬로 저장됩니다.",
    "termsNoTransmission": "OmniRoute는 클라우드 동기화 기능을 명시적으로 활성화하지 않는 한 외부 서버에 데이터를 전송하지 않습니다.",
    "termsDataLocationText": "사용 로그, API 키 및 구성은 다음 위치에 저장됩니다.",
    "termsSection5Title": "5. 면책조항",
    "termsSection5Text": "OmniRoute는 어떠한 종류의 보증도 없이 \"있는 그대로\" 제공됩니다. API 사용, 서비스 중단 또는 데이터 손실로 인해 발생하는 비용에 대해 당사는 책임을 지지 않습니다. 항상 구성의 백업을 유지하십시오.",
    "termsSection6Title": "6. 오픈 소스",
    "termsSection6Text": "OmniRoute는 오픈 소스 소프트웨어입니다. 라이센스 조건에 따라 자유롭게 검사, 수정 및 배포할 수 있습니다."
  }
}
