{
  "settings": {
    "title": "설정",
    "realtimeHint": "모든 변경 사항이 실시간으로 적용돼요",
    "general": "일반",
    "reading": "읽기",
    "fonts": "글꼴",
    "ai": "AI",
    "translationTab": "번역",
    "externalAi": "외부 AI 액세스",
    "tts": "TTS",
    "about": "소개",
    "other": "기타",
    "aboutDesc": "Read Any, Understand More",
    "version": "버전",
    "techStack": "기술 스택",
    "techStackTauri": "크로스 플랫폼 데스크톱 프레임워크",
    "techStackReact": "UI 컴포넌트 라이브러리",
    "techStackTypeScript": "타입 안전성",
    "techStackFoliate": "eBook 렌더링 엔진",
    "feedback": "피드백",
    "supportCenter": "지원 센터",
    "license": "GPL v3 라이선스로 오픈소스 공개",
    "checkUpdate": "업데이트 확인",
    "updateChecking": "확인 중...",
    "updateAvailable": "업데이트 가능",
    "updateDownloading": "다운로드 중",
    "updateReady": "업데이트 준비됨",
    "updateError": "업데이트 실패",
    "downloadUpdate": "업데이트 다운로드",
    "downloading": "다운로드 중",
    "updateReadyMessage": "업데이트가 다운로드되었어요. 앱을 다시 시작하여 설치를 완료하세요",
    "updateErrorMessage": "업데이트에 실패했어요. 나중에 다시 시도해주세요",
    "upToDate": "최신 상태예요",
    "relaunch": "앱 재시작",
    "dismiss": "닫기",
    "newVersionAvailable": "새 버전 {{version}}을(를) 사용할 수 있어요. 지금 다운로드할까요?",
    "later": "나중에",
    "ok": "확인",
    "skills": "스킬",
    "language": "언어",
    "general_title": "일반",
    "general_desc": "앱 모양 및 동작",
    "theme": "테마",
    "themeDesc": "선호하는 테마를 선택하세요",
    "system": "시스템",
    "light": "라이트",
    "dark": "다크",
    "sepia": "세피아",
    "autoSave": "자동 저장 간격",
    "autoSaveDesc": "읽기 진행률 저장 빈도",
    "languageDesc": "표시 언어를 선택하세요",
    "appearance": "모양 및 언어",
    "updaterNetworkError": "업데이트 서버에 연결할 수 없어요. 네트워크를 확인해주세요",
    "updaterNoUpdate": "사용 가능한 업데이트가 없거나 서비스가 일시적으로 사용 불가해요",
    "updaterCheckFailed": "업데이트 확인 실패",
    "updaterNoAvailable": "사용 가능한 업데이트 없음",
    "updaterDownloadFailed": "업데이트 다운로드 실패",
    "updaterRelaunchFailed": "앱을 재시작하지 못했어요. 수동으로 앱을 다시 열어 업데이트 설치를 완료해주세요",
    "relaunching": "재시작 중...",
    "reading_title": "읽기",
    "reading_desc": "독서 경험을 맞춤 설정하세요",
    "readingNotice": "글꼴 및 레이아웃 설정은 EPUB 등 리플로우 형식에만 적용되며, PDF에는 적용되지 않아요.",
    "fontSize": "글꼴 크기: {{size}}px",
    "lineHeight": "줄 간격: {{height}}",
    "fontTheme": "글꼴 테마",
    "paragraphSpacing": "문단 간격",
    "showTopTitleProgress": "상단 제목 및 진행률",
    "showBottomTimeBattery": "하단 시간 및 배터리",
    "volumeButtonsPageTurn": "볼륨 버튼으로 페이지 넘기기",
    "volumeButtonsPageTurnDesc": "독서 중 볼륨 버튼으로 페이지를 넘깁니다",
    "followSystemFontScale": "시스템 글꼴 크기 따르기",
    "followSystemFontScaleDesc": "OS 접근성 글꼴 크기에 따라 자동 조정",
    "fixedLayoutNotice": "PDF는 고정 레이아웃 형식이에요. 글꼴 및 레이아웃 설정을 사용할 수 없어요.",
    "notAvailableForPdf": "PDF에서는 사용할 수 없어요",
    "sansSerif": "고딕",
    "serif": "명조",
    "monospace": "고정폭",
    "viewMode": "보기 모드",
    "paginated": "페이지 넘기기",
    "scroll": "스크롤",
    "paginatedLayout": "페이지 레이아웃",
    "singlePage": "단일 페이지",
    "doublePage": "두 페이지",
    "ai_title": "AI 설정",
    "ai_desc": "AI 엔드포인트 및 모델 설정을 구성해요",
    "ai_endpoints": "엔드포인트",
    "ai_addEndpoint": "엔드포인트 추가",
    "ai_provider": "제공자",
    "ai_provider_openai": "OpenAI 호환",
    "ai_provider_anthropic": "Anthropic Claude",
    "ai_provider_google": "Google Gemini",
    "ai_provider_deepseek": "DeepSeek",
    "ai_endpointName": "이름",
    "ai_endpointNamePlaceholder": "예: OpenAI, Ollama, Claude...",
    "ai_apiKey": "API 키",
    "ai_baseUrl": "기본 URL",
    "ai_baseUrlPlaceholder": "https://api.openai.com/v1",
    "ai_baseUrlOptional": "기본 URL (선택사항)",
    "ai_fetchModels": "모델 가져오기",
    "ai_testConnection": "연결 테스트",
    "ai_testingConnection": "테스트 중...",
    "ai_testSuccess": "연결 성공",
    "ai_testSuccessWithModels": "연결 성공, {{count}}개 모델 사용 가능",
    "ai_testSuccessWithModel": "연결 성공, {{model}} 모델로 테스트 완료",
    "ai_testFailed": "연결 실패",
    "ai_requestUrlPreview": "최종 요청 URL",
    "ai_baseUrlHint": "OpenAI 호환 엔드포인트는 기본적으로 /v1을 추가해요. 입력한 URL을 그대로 사용하려면 정확한 요청 URL 모드를 활성화하세요.",
    "ai_ollamaCorsHint": "Ollama에 연결할 수 없나요? 환경 변수 OLLAMA_ORIGINS=*를 설정하고 Ollama를 다시 시작하세요.",
    "ai_exactRequestUrl": "정확한 요청 URL 사용",
    "ai_exactRequestUrlLabel": "정확한 요청 URL",
    "ai_exactRequestUrlDesc": "입력한 URL을 그대로 사용하며, /v1, /chat/completions, /models를 자동으로 추가하지 않아요.",
    "ai_exactRequestUrlFetchHint": "정확한 요청 URL 모드에서는 모델 목록을 자동으로 추론할 수 없어요. 테스트 전에 모델을 수동으로 추가하세요.",
    "ai_testModel": "테스트 모델",
    "ai_testModelAuto": "첫 번째 사용 가능한 모델 자동 선택",
    "ai_fetchingModels": "가져오는 중...",
    "ai_modelsLoaded": "{{count}}개 모델 로드됨",
    "ai_noModels": "모델 없음 — API에서 가져오거나 수동으로 추가하세요",
    "ai_addModel": "추가",
    "ai_addModelPlaceholder": "모델 이름 입력, 예: gpt-4o",
    "ai_removeModel": "모델 제거",
    "ai_modelsList": "모델 목록",
    "ai_removeEndpoint": "제거",
    "ai_activeEndpoint": "활성 엔드포인트",
    "ai_activeModel": "모델",
    "ai_selectModel": "모델 선택",
    "ai_selectEndpoint": "엔드포인트 선택",
    "ai_noEndpoints": "구성된 엔드포인트 없음",
    "ai_setDefault": "기본값으로 설정",
    "ai_name": "이름",
    "webdavUrl": "WebDAV 서버 URL",
    "webdavUsername": "사용자 이름",
    "webdavPassword": "앱 비밀번호",
    "testConnection": "연결 테스트",
    "ai_providerLabel": "제공자",
    "ai_deleteEndpoint": "엔드포인트 삭제",
    "ai_globalParams": "전역 매개변수",
    "ai_contextWindow": "컨텍스트 윈도우",
    "ai_slidingWindow": "슬라이딩 윈도우",
    "ai_contextWindowUnit": "메시지",
    "ai_addManualModelPlaceholder": "수동으로 모델 추가...",
    "ai_newEndpoint": "새 엔드포인트",
    "model": "모델",
    "apiKey": "API 키",
    "baseUrl": "기본 URL (선택사항)",
    "parameters": "매개변수",
    "temperature": "온도: {{value}}",
    "maxTokens": "최대 토큰: {{value}}",
    "slidingWindowSize": "컨텍스트 길이: {{value}}회",
    "translation_title": "번역 설정",
    "translation_desc": "번역 옵션을 구성해요",
    "enableTranslation": "번역 활성화",
    "enableTranslationDesc": "선택한 텍스트의 번역을 표시해요",
    "targetLanguage": "대상 언어",
    "showOriginal": "원문 표시",
    "showOriginalDesc": "번역과 함께 원문을 표시해요",
    "autoTranslate": "자동 번역",
    "autoTranslateDesc": "페이지를 자동으로 번역해요",
    "skills_title": "스킬",
    "skills_desc": "AI 도구 확장 기능 관리",
    "addSkill": "스킬 추가",
    "noSkills": "아직 사용자 스킬이 없어요. 기본 스킬은 자동으로 사용 가능해요.",
    "builtIn": "기본 제공",
    "enabled": "활성화됨",
    "disabled": "비활성화됨",
    "viewSkill": "스킬 보기",
    "editSkill": "스킬 편집",
    "skillName": "스킬 이름",
    "skillNamePlaceholder": "예: 마인드맵 생성",
    "skillDescription": "스킬 설명",
    "skillDescriptionPlaceholder": "이 스킬의 기능을 간단히 설명하세요",
    "skillPrompt": "스킬 프롬프트",
    "skillPromptPlaceholder": "스킬의 동작과 출력 요구 사항을 자세히 설명하세요",
    "builtinNameReadOnly": "기본 스킬 이름은 수정할 수 없어요",
    "skillUsage": "스킬 사용 안내",
    "skillUsageSummary": "요약",
    "skillUsageSummaryDesc": "채팅에서 '이 챕터 요약해줘' 또는 '책 요약'을 입력하세요",
    "skillUsageCharacter": "캐릭터",
    "skillUsageCharacterDesc": "'등장인물이 누구야' 또는 '주인공 분석해줘'라고 물어보세요",
    "skillUsageQuote": "인용구",
    "skillUsageQuoteDesc": "'인용구 찾아줘' 또는 '명문장 찾아줘'라고 요청하세요",
    "skillUsageAnalysis": "분석",
    "skillUsageAnalysisDesc": "'저자의 논점이 뭐야' 또는 '논리 분석해줘'라고 물어보세요",
    "vectorModel": "벡터 모델",
    "vm_title": "벡터 모델",
    "vm_desc": "시맨틱 검색 및 RAG 검색을 위한 임베딩 모델을 구성해요",
    "vm_autoVectorizeOnImport": "새 책 자동 벡터화",
    "vm_autoVectorizeOnImportDesc": "켜면 가져오거나 동기화로 내려받은 책을 자동으로 인덱싱 대기열에 넣어요. 예상치 못한 모델 사용을 막기 위해 기본값은 꺼짐이에요.",
    "vm_modeTitle": "모델 소스",
    "vm_modeBuiltin": "내장 로컬 모델",
    "vm_modeBuiltinDesc": "로컬에서 실행할 모델을 다운로드해요. API가 필요 없어요",
    "vm_modeRemote": "원격 API",
    "vm_modeRemoteDesc": "외부 임베딩 API 서비스를 사용해요",
    "vm_builtinModels": "내장 모델",
    "vm_builtinDesc": "앱 내에서 로컬로 실행할 경량 모델을 다운로드해요. 첫 다운로드 시 자동으로 캐시돼요.",
    "vm_download": "다운로드",
    "vm_loaded": "로드됨",
    "vm_clearCache": "삭제",
    "vm_clearing": "삭제 중...",
    "vm_clearSuccess": "캐시 삭제됨",
    "vm_recommended": "추천",
    "vm_loadError": "로드 실패: {{error}}",
    "vm_remoteModels": "원격 모델",
    "vm_remoteDesc": "외부 임베딩 API 서비스에 연결해요",
    "vm_noRemoteModels": "아직 원격 모델 설정이 없어요. 외부 임베딩 API를 사용하려면 추가하세요.",
    "vm_models": "모델 목록",
    "vm_addModel": "모델 추가",
    "vm_addModelTitle": "새 모델 추가",
    "vm_editModel": "모델 편집",
    "vm_noModels": "벡터 모델 설정이 없어요. 시맨틱 검색을 활성화하려면 추가하세요.",
    "vm_name": "이름",
    "vm_modelId": "모델 ID",
    "vm_url": "API 엔드포인트",
    "vm_urlHint": "API 루트, /v1 기본 주소 또는 전체 /embeddings URL을 입력할 수 있습니다. 저장 및 테스트 시 자동으로 정규화됩니다.",
    "vm_apiKey": "API 키",
    "vm_description": "설명",
    "vm_descriptionPlaceholder": "모델에 대한 선택적 설명",
    "vm_dimension": "차원: {{dim}}",
    "vm_test": "테스트",
    "vm_testing": "테스트 중...",
    "vm_testSuccess": "✓ 연결 성공 | 차원: {{dimension}}",
    "vm_testFailed": "✗ 연결 실패: {{error}}",
    "vm_testFailedWithUrl": "✗ 연결 실패: {{error}} (테스트 URL: {{url}})",
    "vm_model_desc_miniLM": "빠르고 가벼우며, 전반적으로 좋은 품질",
    "vm_model_desc_bgeEn": "고품질 영어 임베딩",
    "vm_model_desc_bgeZh": "고품질 중국어 임베딩",
    "vm_model_desc_e5": "다국어 지원, 전반적으로 좋은 성능",
    "vm_lang_en": "영어",
    "vm_lang_zh": "중국어",
    "vm_lang_multi": "100개 이상 언어",
    "sync": "동기화",
    "syncTitle": "WebDAV 동기화",
    "syncDesc": "WebDAV를 통해 기기 간 독서 데이터를 동기화해요",
    "syncLayoutMigrationNotice": "원격 레이아웃이 업데이트되었어요 — 동기화하는 모든 기기를 이 버전으로 업그레이드해주세요",
    "syncConnection": "연결 설정",
    "syncUrl": "서버 URL",
    "syncUrlPlaceholder": "https://dav.example.com",
    "syncUsername": "사용자 이름",
    "syncPassword": "비밀번호",
    "syncRemoteRoot": "원격 폴더",
    "syncRemoteRootPlaceholder": "readany",
    "syncRemoteRootDesc": "ReadAny 동기화 전용으로 사용할 원격 폴더를 선택하세요. 중첩 경로도 지원되며, 테스트 또는 첫 동기화 시 자동으로 생성돼요. ReadAny는 여기에 이미 올려둔 책을 스캔하지 않아요. 기존 WebDAV 서재를 가져오려면 \"다른 WebDAV 연결\"을 사용하세요.",
    "syncTestConnection": "연결 테스트",
    "syncTesting": "테스트 중...",
    "syncTestSuccess": "연결 성공",
    "syncTestFailed": "연결 실패: {{error}}",
    "syncSave": "설정 저장",
    "syncSaved": "설정 저장됨",
    "syncStatus": "동기화 상태",
    "syncNow": "지금 동기화",
    "syncSyncing": "동기화 중...",
    "syncLastSync": "마지막 동기화",
    "syncNever": "동기화한 적 없음",
    "syncSuccess": "동기화 완료",
    "syncFailed": "동기화 실패: {{error}}",
    "syncRecordsUp": "{{count}}개 레코드 업로드됨",
    "syncRecordsDown": "{{count}}개 레코드 다운로드됨",
    "syncFilesUp": "{{count}}개 파일 업로드됨",
    "syncFilesDown": "{{count}}개 파일 다운로드됨",
    "syncFilesPartialFailed": "⚠️ 일부 파일이 동기화되지 않았어요 (업로드 {{uploadFailed}}건, 다운로드 {{downloadFailed}}건 실패). 원격에서 새 폴더 생성을 거부했거나, 네트워크 문제 또는 권한 거부가 원인일 수 있어요. 다음 동기화 시 자동으로 재시도해요.",
    "syncAutoSync": "자동 동기화",
    "syncAutoSyncDesc": "백그라운드에서 자동으로 데이터를 동기화해요",
    "syncInterval": "동기화 간격",
    "syncIntervalDesc": "자동 동기화 활성화 시, N분마다 업데이트를 확인해요",
    "syncIntervalMinutes": "{{count}}분",
    "syncAllowInsecure": "비보안 연결 허용",
    "syncAllowInsecureDesc": "TLS 인증서 검증을 건너뛰어요 (자체 서명 인증서용)",
    "syncAllowInsecureDescMobile": "자체 서명 인증서 서버를 위해 HTTPS 대신 HTTP를 사용해요",
    "syncWebdavAuthFailed": "WebDAV 인증 실패. 사용자 이름과 앱 비밀번호를 확인해주세요.",
    "syncWebdavForbidden": "WebDAV 접근이 거부되었어요. 이 경로에 대한 계정 권한을 확인해주세요.",
    "syncWebdavNotFound": "WebDAV 주소 또는 경로를 찾을 수 없어요. 서버 URL과 루트 경로를 확인해주세요.",
    "syncWebdavMethodNotAllowed": "서버가 WebDAV 요청에 올바르게 응답하지 않았어요. WebDAV가 활성화되어 있는지 확인해주세요.",
    "syncWebdavTimeout": "WebDAV 연결이 {{seconds}}초 후 시간 초과되었어요. 서버 URL, 포트, 네트워크를 확인해주세요.",
    "syncWebdavNetworkError": "WebDAV 서버에 접근할 수 없어요. 네트워크, URL, 포트 또는 인증서 설정을 확인해주세요.",
    "syncWebdavDesktopScopeError": "이 데스크톱 빌드에서 해당 WebDAV 주소가 아직 허용되지 않았어요. 최신 빌드로 업데이트하고 앱을 다시 시작한 후 시도해주세요.",
    "syncWebdavTlsError": "WebDAV TLS 인증서 검증 실패. 인증서를 확인하거나, 비보안 연결을 허용하고 다시 시도해주세요.",
    "syncWebdavServerError": "WebDAV 서버 오류 ({{status}}).",
    "syncWebdavHttpError": "WebDAV 요청 실패 ({{status}}).",
    "syncWebdavUnknownError": "WebDAV 요청 실패: {{message}}",
    "syncNotConfigured": "설정되지 않음",
    "syncAdvanced": "고급 옵션",
    "syncForceUpload": "전체 업로드",
    "syncForceUploadDesc": "원격 데이터베이스, 책, 표지를 이 기기의 현재 데이터로 덮어써요.",
    "syncForceUploadConfirm": "전체 업로드를 시작할까요? 원격 데이터베이스가 덮어쓰여지고, 일치하는 원격 책과 표지가 다시 업로드돼요.",
    "syncForceDownload": "전체 다운로드",
    "syncForceDownloadDesc": "이 기기의 데이터베이스, 책, 표지를 원격 사본으로 덮어써요.",
    "syncForceDownloadConfirm": "전체 다운로드를 시작할까요? 이 기기의 데이터베이스가 덮어쓰여지고, 원격 책과 표지가 다시 다운로드돼요.",
    "syncDeviceId": "기기 ID",
    "syncReset": "동기화 데이터 초기화",
    "syncResetDesc": "모든 동기화 메타데이터를 삭제해요. 동기화에 문제가 있을 때 사용하세요.",
    "syncResetConfirm": "정말 초기화할까요? 모든 동기화 상태가 삭제되고, 다음에 전체 재동기화가 수행돼요.",
    "syncResetDone": "동기화 데이터가 초기화되었어요",
    "syncDisconnect": "연결 해제",
    "syncDisconnectConfirm": "정말 연결을 해제할까요? 이 기기의 데이터는 삭제되지 않아요.",
    "syncChecking": "확인 중...",
    "syncUploading": "데이터베이스 업로드 중...",
    "syncDownloading": "데이터베이스 다운로드 중...",
    "syncSyncingFiles": "파일 동기화 중...",
    "syncError": "동기화 오류",
    "syncDirection": "방향: {{direction}}",
    "syncDuration": "소요 시간: {{ms}}ms",
    "syncConflictTitle": "동기화 충돌",
    "syncConflictDesc": "로컬과 원격 모두 변경 사항이 있어요. 어떤 버전을 유지할지 선택하세요.",
    "syncConflictUpload": "로컬 업로드",
    "syncConflictDownload": "원격 다운로드",
    "syncProgressDatabase": "{{operation}} 진행 중...",
    "syncProgressFiles": "{{operation}} 파일 {{completed}}/{{total}}",
    "syncBackendType": "동기화 방법",
    "syncWebdavDesc": "WebDAV 서비스를 통해 동기화",
    "syncS3Desc": "S3 호환 스토리지를 통해 동기화",
    "syncLANDesc": "LAN 빠른 전송",
    "syncWebDavConfig": "WebDAV 설정",
    "syncS3Config": "S3 설정",
    "syncS3Endpoint": "서비스 엔드포인트",
    "syncS3Region": "리전",
    "syncS3Bucket": "버킷",
    "syncS3RemoteRoot": "동기화 폴더",
    "syncS3RemoteRootDesc": "이 버킷 안에서 사용할 폴더 접두사를 선택하세요. apps/readany처럼 중첩 경로도 지원해요.",
    "syncS3AccessKeyId": "Access Key ID",
    "syncS3SecretAccessKey": "Secret Access Key",
    "syncS3PathStyle": "경로 스타일 URL 사용",
    "syncLANConfig": "LAN 전송",
    "syncLANDescFull": "같은 LAN에 있는 다른 기기에서 데이터를 점진적으로 가져오며, 라이브러리 변경 사항을 병합하고 누락된 책과 표지를 다운로드해요.",
    "syncLANServer": "이 기기 보내기",
    "syncLANServerDesc": "다른 기기가 가져올 수 있도록 이 기기의 데이터를 공유해요",
    "syncLANClient": "기기에서 가져오기",
    "syncLANClientDesc": "다른 기기에서 라이브러리 데이터를 빠르게 가져와요",
    "syncLANServerTitle": "이 기기 데이터 보내기",
    "syncLANClientTitle": "기기 데이터 가져오기",
    "syncLANServerStatus": {
      "idle": "시작되지 않음",
      "starting": "준비 중...",
      "running": "가져오기 대기 중",
      "stopping": "중지 중...",
      "error": "오류"
    },
    "syncLANQRPlaceholder": "여기에 QR 코드가 표시돼요",
    "syncLANPairCode": "페어링 코드",
    "syncLANServerHint": "다른 기기에서 ReadAny를 열고 이 QR 코드를 스캔하거나 페어링 코드를 입력하여 이 기기의 데이터를 가져가세요",
    "syncLANServerStart": "서버 시작",
    "syncLANServerStarting": "시작 중...",
    "syncLANServerStop": "서버 중지",
    "syncLANScanQR": "QR 코드 스캔",
    "syncLANScannerPlaceholder": "카메라 미리보기 영역",
    "syncLANManualConnect": "수동 가져오기",
    "syncLANIP": "IP 주소",
    "syncLANPort": "포트",
    "syncLANPairCodeLabel": "페어링 코드",
    "syncLANInvalidQR": "유효하지 않은 QR 코드",
    "syncLANFillAll": "모든 필드를 입력해주세요",
    "syncLANConnectionFailed": "연결 실패, 페어링 코드가 올바른지 확인해주세요",
    "syncLANConnecting": "연결 중...",
    "syncLANConnect": "연결 및 가져오기",
    "syncLANManual": "또는 수동 입력",
    "syncLANScanHint": "데스크톱 QR 코드에 스캐너를 맞추세요",
    "syncLANImportWarningTitle": "LAN 가져오기 안내",
    "syncLANImportWarning": "연결하면 서버 기기에서 데이터베이스 변경 사항을 점진적으로 가져오고, 누락된 책과 표지를 다운로드해요. 이 기기를 통째로 교체하지 않아요. 서버에 명시적 삭제가 있으면 해당 삭제도 동기화돼요.",
    "syncLANImportBanner": "이 LAN 가져오기는 이제 전체 라이브러리를 교체하는 대신 변경 사항을 병합하고 누락된 파일을 다운로드해요.",
    "syncLANImportStatus": "가져오기 상태",
    "syncLANLastImport": "마지막 가져오기",
    "syncLANPreparingImport": "가져오기 준비 중",
    "syncLANImporting": "가져오는 중",
    "syncLANImportingFiles": "파일 가져오는 중",
    "syncLANImportProgressDatabase": "데이터베이스 가져오는 중...",
    "syncLANImportProgressFiles": "파일 가져오는 중 {{completed}}/{{total}}",
    "syncLANImportComplete": "가져오기 완료",
    "syncLANImportedFiles": "{{count}}개 파일 가져옴",
    "syncLANExpoGoUnsupported": "Expo Go는 네이티브 TCP 모듈이 필요한 LAN 송신을 지원하지 않아요. 커스텀 Dev Client (expo run) 또는 데스크톱 앱을 사용하세요.",
    "syncAndroidExpoGoHttpUnsupported": "Android Expo Go는 이 HTTP WebDAV 엔드포인트 테스트를 지원하지 않아요. HTTPS를 사용하거나, 커스텀 Dev Client / 릴리스 빌드에서 다시 테스트하세요.",
    "cameraPermission": "카메라 권한",
    "cameraPermissionDesc": "동기화 기능에서 QR 코드를 스캔하려면 카메라 권한이 필요해요",
    "syncClose": "닫기",
    "syncLANManualIPHint": "IP 주소를 자동 감지할 수 없어요. 로컬 LAN IP를 직접 입력해주세요.",
    "syncLANTauriRequired": "LAN 송신은 Tauri 데스크톱 앱 내에서만 작동해요. 브라우저 개발 페이지를 실행 중인 것 같으니 데스크톱 셸을 실행해주세요.",
    "syncLANAddress": "주소",
    "translationProvider": "번역 엔진",
    "selectModel": "모델 선택",
    "noModelsFetched": "AI 설정에서 먼저 모델 목록을 가져와주세요",
    "apiKeyPlaceholder": "API 키 입력",
    "deeplKeyHint": "DeepL API 키",
    "translationModel": "번역 모델",
    "selectEngine": "엔진 선택",
    "username": "사용자 이름",
    "password": "앱 비밀번호",
    "autoSync": "자동 동기화",
    "autoSyncDesc": "백그라운드에서 자동으로 데이터 동기화",
    "appearanceLanguage": "모양 및 언어",
    "storageLocation": "라이브러리 저장 위치",
    "storageLocationDesc": "데스크톱의 책, 표지, 데이터베이스 파일이 여기에 저장돼요. 디렉토리를 변경하면 시스템 드라이브 용량을 아끼기 위해 함께 이동해요.",
    "storageCurrentPath": "현재 디렉토리",
    "storageTargetPath": "대상 디렉토리",
    "storageChooseFolder": "폴더 선택",
    "storageMigrate": "이 디렉토리로 이동",
    "storageMigrating": "이동 중...",
    "storageResetDefault": "기본 디렉토리 복원",
    "storageMigrationNote": "마이그레이션은 가져온 책, 표지, 데이터베이스 파일을 함께 이동해요. 마이그레이션 후 앱이 자동으로 재시작되며, 이후 가져오기와 동기화 다운로드도 새 디렉토리를 사용해요.",
    "storageMigrationSuccess": "{{count}}개 파일을 이동했어요. 곧 앱이 재시작돼요.",
    "storageMigrationFailed": "마이그레이션 실패: {{error}}",
    "storageChooseFolderFirst": "먼저 대상 폴더를 선택하세요",
    "storageNoChange": "이 디렉토리는 이미 사용 중이에요",
    "storageAlreadyDefault": "이미 기본 디렉토리를 사용 중이에요",
    "aiConfig": "AI 설정",
    "aiProvider": "제공자",
    "ai_models": "모델",
    "ai_namePlaceholder": "예: 내 OpenAI",
    "configImported": "설정 가져옴",
    "copiedToClipboard": "토큰이 클립보드에 복사됨",
    "copyToken": "아래 토큰을 복사하여 다른 기기에서 가져오세요",
    "english": "English",
    "exportConfig": "내보내기",
    "exportFailed": "내보내기 실패",
    "importConfig": "가져오기",
    "importFailed": "가져오기 실패",
    "invalidConfig": "유효하지 않은 설정 형식",
    "pasteConfig": "설정 토큰 붙여넣기...",
    "simplifiedChinese": "简体中文",
    "syncConfig": "동기화 설정",
    "transferConfig": "설정 전송",
    "vectorConfig": "벡터 설정",
    "webdavAllowInsecure": "비보안 연결 허용",
    "ai_provider_zhipu": "智谱 GLM",
    "ai_provider_aliyun": "알리바바클라우드 통의",
    "ai_provider_custom": "커스텀 (OpenAI 호환)",
    "ai_currentLabel": "현재:",
    "ai_searchModels": "모델 검색...",
    "ai_noMatchingResults": "일치하는 결과 없음",
    "ai_totalModels": "총 {{count}}개 모델",
    "externalAiSettings": {
      "overview": {
        "title": "외부 AI 액세스 Beta",
        "description": "CLI, Skill, 클라이언트 검색 폴더, MCP 설정을 확인해요. 복구는 현재 선택한 profile을 사용해요.",
        "mcpConfigHint": "MCP config는 일반 설정 파일에 ReadAny가 있다는 뜻이에요. 실제 클라이언트에 로드됐는지는 재시작하거나 새 세션에서 확인하세요."
      },
      "cli": {
        "title": "ReadAny CLI",
        "description": "데스크톱 앱은 승인된 CLI 검사만 실행하고 임의 shell 명령은 열지 않아요.",
        "notInstalledOrPath": "설치되지 않았거나 PATH에서 사용할 수 없음",
        "runtimeEvidence": "런타임 / 패키징 증거"
      },
      "agent": {
        "title": "Agent 초기화",
        "description": "이 명령을 외부 AI에 복사하세요. ReadAny CLI와 Skill을 설치하고 MCP 설정 조각을 반환해요.",
        "clientDiscoveryStatus": "클라이언트 검색 상태",
        "clientDiscoveryEmpty": "진단을 실행하면 클라이언트 Skill 검색 상태가 표시돼요.",
        "mcpConfigStatus": "MCP 설정 상태",
        "mcpConfigEmpty": "진단을 실행하면 MCP 설정 결과가 표시돼요.",
        "profileRiskWarning": "이 profile은 draft 쓰기 또는 내보내기 권한을 열어요. 복사하거나 초기화하기 전에 위 위험 스위치를 확인하세요.",
        "latestInstallResult": "최근 원클릭 설치 결과"
      },
      "skill": {
        "title": "AI 어시스턴트 설치",
        "description": "AI 어시스턴트에 지시문 하나를 복사해 Skill과 MCP를 설치하게 해요.",
        "copyToCurrentAssistant": "현재 AI 어시스턴트에 복사",
        "copyHint": "선택한 profile로 바로 설치해요.",
        "allClients": "모든 클라이언트",
        "skillInstalled": "스킬 설치됨",
        "pending": "대기 중"
      },
      "mcp": {
        "title": "MCP 액세스 profile",
        "description": "MCP 액세스 수준을 선택하세요. editor / publisher는 명시 확인이 필요하며, CLI 또는 Skill 설치만으로 쓰기 권한이 생기지 않아요.",
        "currentTemplate": "{{description}} 현재 {{client}} 템플릿을 복사해요.",
        "riskConfirmation": "외부 AI의 쓰기/내보내기 도구 사용 허용",
        "currentTools": "현재 MCP 도구"
      },
      "profileDescriptions": {
        "readonly": "읽기 전용 액세스: 라이브러리, 챕터, 노트, 하이라이트, RAG, 진단 읽기.",
        "editor": "편집 액세스: readonly를 포함하며 EPUB draft 생성과 draft 내용 편집을 허용해요.",
        "publisher": "게시 액세스: editor를 포함하며 validate / export / notes export / knowledge export를 허용해요."
      },
      "clients": {
        "generic": "범용 JSON",
        "genericShort": "범용",
        "codex": "Codex TOML",
        "agents": "Agents 범용"
      },
      "output": {
        "notRun": "아직 실행하지 않았어요.",
        "success": "명령이 성공적으로 완료됐어요.",
        "exitStatus": "명령 종료 코드 {{status}}",
        "accessUninstalled": "외부 AI 접속이 제거되었습니다.",
        "cliUninstalled": "ReadAny CLI가 제거되었습니다."
      },
      "skillPrompt": {
        "intro": "ReadAny 외부 AI Skill을 바로 설치하고 활성화해 주세요.",
        "execute": "단계 설명만 하지 말고 설치 경로 표도 출력하지 말고, 다음을 직접 실행해 주세요:",
        "mergeConfig": "현재 AI 클라이언트 설정을 수정할 수 있으면 MCP 설정을 직접 병합하세요. 아니면 필요한 최소 설정 조각만 주세요.",
        "done": "완료 후에는 다음만 답하세요: ReadAny Skill이 설치되었습니다. 현재 AI 클라이언트를 재시작하거나 새 세션을 열어 주세요.",
        "protectBooks": "내 책 내용을 수정, 내보내기, 삭제하지 마세요."
      },
      "status": {
        "betaReady": "Beta 사용 가능",
        "needsRepair": "복구 필요",
        "notReady": "준비 안 됨",
        "available": "사용 가능",
        "missing": "누락",
        "passed": "통과",
        "failed": "실패",
        "healthy": "정상",
        "abnormal": "비정상",
        "installed": "설치됨",
        "notInstalled": "미설치",
        "complete": "완료",
        "configured": "설정됨",
        "needsPasteRestart": "붙여넣기/재시작 필요",
        "notDetected": "감지 안 됨",
        "notDetectedYet": "아직 감지 안 됨",
        "canCopy": "복사 가능",
        "canConfigure": "설정 가능",
        "waitingConfirmation": "확인 대기",
        "exists": "존재함",
        "managed": "관리됨",
        "unmanaged": "비관리",
        "checked": "확인됨",
        "notFound": "찾을 수 없음",
        "containsReadAny": "readany 포함",
        "needsConfig": "설정 필요"
      },
      "actions": {
        "verify": "검증",
        "repairExternalAI": "외부 AI 복구",
        "diagnose": "진단",
        "install": "설치",
        "repair": "복구",
        "uninstall": "제거",
        "update": "업데이트",
        "copied": "복사됨",
        "copyEvidence": "증거 복사",
        "copyCommand": "명령 복사",
        "copyAllCommand": "전체 클라이언트 명령 복사",
        "oneClickInstall": "원클릭 설치",
        "oneClickInstallAll": "전체 원클릭 설치",
        "uninstallAccess": "접속 제거",
        "copyInstructions": "지시문 복사",
        "copyConfig": "설정 복사",
        "expandDetails": "자세히 열기"
      },
      "labels": {
        "cli": "CLI",
        "doctor": "진단",
        "runtime": "런타임",
        "skill": "스킬",
        "clientLinks": "클라이언트 링크",
        "mcpConfig": "MCP 설정",
        "version": "버전",
        "profile": "권한",
        "tools": "도구",
        "commandSource": "실행 출처",
        "client": "클라이언트",
        "skillTarget": "스킬 대상",
        "returnedCommand": "반환된 명령",
        "removedCliShim": "제거된 CLI shim",
        "removedSkill": "제거된 스킬",
        "distribution": "배포 형식",
        "builtBundle": "빌드된 번들",
        "desktopResource": "데스크톱 리소스",
        "nativeBinary": "네이티브 바이너리",
        "usesNodeRuntime": "Node 런타임 사용",
        "node": "Node",
        "nativeSqlite": "네이티브 SQLite",
        "bundleRoot": "번들 루트",
        "entrypoint": "진입점",
        "nodeExecutable": "Node 실행 파일",
        "cliShim": "CLI shim",
        "mcpFormat": "MCP 형식"
      },
      "empty": {
        "runDiagnostics": "진단을 실행하면 표시돼요."
      },
      "doctorChecks": {
        "nodeRuntime": {
          "name": "Node 런타임",
          "message": "Node 런타임을 사용할 수 있어요: {{executable}} ({{version}})."
        },
        "nativeSqlite": {
          "name": "네이티브 SQLite",
          "ok": "better-sqlite3를 라이브러리와 MCP 데이터 명령에 사용할 수 있어요.",
          "fail": "better-sqlite3를 사용할 수 없어 라이브러리와 MCP 데이터 명령이 실패할 수 있어요."
        },
        "readanyHome": {
          "name": "ReadAny 홈",
          "ok": "ReadAny 홈에 쓸 수 있어요.",
          "fail": "ReadAny 홈에 쓸 수 없어요."
        },
        "skill": {
          "name": "스킬",
          "ok": "ReadAny 스킬이 {{path}}에 설치되어 있어요.",
          "fail": "ReadAny 스킬이 {{path}}에 설치되어 있지 않아요."
        }
      }
    }
  }
}
