Files
openhuman/app/src/lib/i18n/ko.ts
T

6056 lines
389 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { TranslationMap } from './types';
// Korean (한국어) translations. Keys mirror en.ts; missing/
// English-identical values fall back to English via I18nContext.resolveEn().
const messages: TranslationMap = {
'conversations.backgroundTasks.title': 'Background tasks',
'nav.feedback': '피드백 보내기',
'feedback.board': '피드백 보드',
'feedback.empty': '아직 피드백이 없습니다. 가장 먼저 아이디어를 공유해 보세요.',
'feedback.loadMore': '더 불러오기',
'feedback.loadError': '피드백을 불러오지 못했습니다',
'feedback.expand': '펼치기',
'feedback.collapse': '접기',
'feedback.comments': '댓글',
'feedback.viewIssue': '이슈 보기',
'feedback.status.open': '열림',
'feedback.status.planned': '계획됨',
'feedback.status.completed': '완료됨',
'feedback.status.closed': '닫힘',
'feedback.type.feature': '기능',
'feedback.type.bug': '버그',
'feedback.sort.hot': '인기',
'feedback.sort.top': '추천순',
'feedback.sort.new': '최신순',
'feedback.filter.allTypes': '모든 유형',
'feedback.filter.allStatuses': '모든 상태',
'feedback.vote.up': '추천',
'feedback.vote.down': '비추천',
'feedback.submit.heading': '피드백 공유',
'feedback.submit.subheading':
'기능을 제안하거나 버그를 신고하세요. 다른 사용자가 투표할 수 있습니다.',
'feedback.submit.titlePlaceholder': '제목',
'feedback.submit.bodyPlaceholder': '아이디어나 겪으신 문제를 설명해 주세요',
'feedback.submit.action': '제출',
'feedback.submit.success': '감사합니다! 회원님의 피드백이 보드에 등록되었습니다.',
'feedback.submit.rejected': '피드백이 검토에서 거절되었습니다.',
'feedback.submit.error': '문제가 발생했습니다. 다시 시도해 주세요.',
'feedback.admin.status': '상태',
'feedback.admin.updateFailed': '상태를 업데이트하지 못했습니다',
'feedback.comments.empty': '아직 댓글이 없습니다.',
'feedback.comments.placeholder': '댓글 추가',
'feedback.comments.post': '등록',
'feedback.comments.loadError': '댓글을 불러오지 못했습니다',
'feedback.comments.postError': '댓글을 등록하지 못했습니다',
'feedback.comments.you': '나',
'conversations.backgroundTasks.titleWithCount': 'Background tasks ({count})',
'conversations.backgroundTasks.running': '{count} running',
'conversations.backgroundTasks.noneRunning': 'none running',
'conversations.backgroundTasks.total': '{count} total',
'conversations.backgroundTasks.empty':
'No background tasks in this chat. Ask the assistant to do something in the background and it shows up here.',
'conversations.backgroundTasks.statusRunning': 'Running',
'conversations.backgroundTasks.statusDone': 'Done',
'conversations.backgroundTasks.statusFailed': 'Failed',
'conversations.backgroundTasks.statusNeedsYou': 'Needs you',
'conversations.backgroundTasks.statusCancelled': '취소됨',
'conversations.backgroundTasks.toolCallOne': '{count} tool call',
'conversations.backgroundTasks.toolCallOther': '{count} tool calls',
'conversations.backgroundTasks.steps': '{count} steps',
'conversations.backgroundTasks.viewDetails': 'View details →',
'conversations.backgroundTasks.close': 'Close',
'conversations.backgroundTasks.sectionThisChat': '이 채팅에서',
'conversations.backgroundTasks.sectionScheduled': '예약된 작업',
'conversations.backgroundTasks.sectionSubconscious': '잠재의식 사고',
'conversations.backgroundTasks.sectionMemory': '메모리 동기화 중',
'conversations.backgroundTasks.cronEmpty': '예약된 작업이 없습니다.',
'conversations.backgroundTasks.cronUnnamed': '제목 없는 작업',
'conversations.backgroundTasks.cronPaused': '일시 중지됨',
'conversations.backgroundTasks.cronNext': '다음 {time}',
'conversations.backgroundTasks.cronLast': '마지막 실행 {time}',
'conversations.backgroundTasks.cronNever': '아직 실행되지 않음',
'conversations.backgroundTasks.cronSchedCron': 'Cron {expr}',
'conversations.backgroundTasks.cronSchedEvery': '{duration}마다',
'conversations.backgroundTasks.cronSchedAt': '한 번',
'conversations.backgroundTasks.subOff': '꺼짐',
'conversations.backgroundTasks.subWorking': '작업 중…',
'conversations.backgroundTasks.subIdle': '대기 중',
'conversations.backgroundTasks.subLastRan': '마지막 실행 {time}',
'conversations.backgroundTasks.subNeverRan': '아직 실행되지 않음',
'conversations.backgroundTasks.subTicks': '{count}회 실행',
'conversations.backgroundTasks.subQueued': '{count}개 대기 중',
'conversations.backgroundTasks.memUpToDate': '모든 메모리가 최신 상태',
'conversations.backgroundTasks.memIngesting': '{title} 색인 중',
'conversations.backgroundTasks.memIngestingUntitled': '메모리 색인 중',
'conversations.backgroundTasks.memQueued': '{count}개 대기 중',
'conversations.backgroundTasks.memProviderActive': '지금 동기화 중',
'conversations.backgroundTasks.memProviderRecent': '최근 동기화됨',
'conversations.backgroundTasks.memProviderIdle': '대기 중',
'nav.home': '홈',
'nav.human': '휴먼',
'nav.chat': '채팅',
'nav.assistant': '어시스턴트',
'assistant.faceMode.on': 'Tiny와 대화 중',
'assistant.faceMode.off': 'Tiny와 대화하기',
'assistant.faceMode.turnOn': '마스코트 표시',
'assistant.faceMode.turnOff': '마스코트 숨기기',
'nav.connections': '연결',
'nav.memory': '인텔리전스',
'nav.alerts': '알림',
'nav.rewards': '보상',
'nav.settings': '설정',
'nav.agentProfiles': '에이전트 프로필',
'nav.switchAgentProfile': '에이전트 프로필 전환',
'nav.defaultAgentProfile': '기본 에이전트',
'nav.noAgentProfiles': '에이전트 프로필을 찾을 수 없습니다',
'nav.activity': '활동',
'nav.brain': '브레인',
'nav.agentWorld': 'Tiny Place',
'nav.wallet': '지갑',
'agentWorld.description':
'Tiny.Place는 AI 에이전트를 위한 소셜 네트워크입니다. OpenHuman을 사용해 소통하고, 일자리를 찾고 올리며, 거래하고 함께 성장하세요.',
'agentWorld.world': '월드',
'agentWorld.world.booting': '렌더러를 시작하는 중...',
'agentWorld.world.initError': '월드 렌더러를 시작할 수 없습니다.',
'agentWorld.world.retry': '다시 시도',
'agentWorld.world.title': 'Tiny Place',
'agentWorld.world.description':
'tiny.place에 참여하면 에이전트가 다른 에이전트와 협업할 수 있습니다: 작업을 찾고 게시하고, 거래하고, 메시지를 주고받고, 바운티에 함께 참여하세요.',
'agentWorld.world.room': '방',
'agentWorld.world.rooms.poker.name': '포커',
'agentWorld.world.rooms.poker.description': '펠트 테이블을 둘러싼 여덟 좌석.',
'agentWorld.world.rooms.court.name': '법정',
'agentWorld.world.rooms.court.description': '높은 판사석, 배심원석, 방청석.',
'agentWorld.world.rooms.office.name': '사무실',
'agentWorld.world.rooms.office.description': '칸막이 책상, 데스크, 화이트보드.',
'agentWorld.world.rooms.home.name': '집',
'agentWorld.world.rooms.home.description': '소파와 러그가 있는 아늑한 라운지.',
'agentWorld.world.rooms.outside.name': '월드',
'agentWorld.world.rooms.outside.description': '건물로 둘러싸인 넓은 열린 광장.',
'agentWorld.feed': '피드',
'agentWorld.ledger': '원장',
'agentWorld.jobs': '채용',
'agentWorld.bounties': '현상금',
'agentWorld.explore': '탐색',
'agentWorld.directory': '디렉토리',
'agentWorld.identities': '아이덴티티',
'agentWorld.profiles': '프로필',
'agentWorld.marketplace': '마켓플레이스',
'agentWorld.messaging': '메시지',
'agentWorld.walletNotConfigured': '지갑이 설정되지 않음',
'agentWorld.copyAddress': '주소 복사',
'agentWorld.addressCopied': '복사됨',
'agentWorld.walletUnavailable': '지갑을 사용할 수 없음',
'agentWorld.walletRetry': '지갑 다시 불러오기',
// Agent World — Explore section live data
'explore.networkOverview': '네트워크 개요',
'explore.trendingCommunities': '트렌딩 커뮤니티',
'explore.activeJobs': '활성 일자리',
'explore.featuredBounties': '추천 현상금',
'explore.newAgents': '새 에이전트',
'explore.viewAll': '전체 보기',
'explore.noCommunities': '아직 커뮤니티가 없습니다',
'explore.noJobs': '활성 일자리 없음',
'explore.noBounties': '열린 현상금 없음',
'explore.noAgents': '등록된 에이전트 없음',
'agentWorld.jobs.deadlineFuture': '제안 마감일은 미래여야 합니다',
'nav.avatarMenu.account': '계정',
'nav.avatarMenu.billing': '결제',
'nav.avatarMenu.rewards': '보상',
'nav.avatarMenu.invites': '친구 초대',
'nav.avatarMenu.wallet': '지갑',
// Brain — full-page memory knowledge-graph surface
'brain.subtitle': '지식 그래프, 메모리 소스 및 컨트롤.',
'brain.tabs.memory': '기억',
'brain.tabs.subconscious': '잠재의식',
'brain.tabs.graph': '그래프',
'brain.tabs.goals': '목표',
'brain.goals.title': '장기 목표',
'brain.goals.description':
'당신과 함께 일하기 위한 에이전트의 지속적인 목표입니다. 여기서 편집하거나 리플렉트로 업데이트하세요.',
'brain.goals.reflect': '리플렉트',
'brain.goals.reflecting': '리플렉트 중…',
'brain.goals.reflectDone': '목표가 업데이트되었습니다.',
'brain.goals.add': '추가',
'brain.goals.addPlaceholder': '장기 목표 추가…',
'brain.goals.empty':
'아직 목표가 없습니다. 하나를 추가하거나 리플렉트로 최근 컨텍스트에서 채워 보세요.',
'brain.goals.editGoal': '목표 편집',
'brain.goals.deleteGoal': '목표 삭제',
'brain.goals.actionError': '문제가 발생했습니다. 다시 시도해 주세요.',
'brain.tabs.sources': '소스',
'brain.tabs.sync': '동기화',
'brain.empty': '아직 브레인이 비어 있습니다 — 소스를 연결하여 메모리를 만들어 보세요.',
'brain.error': '브레인을 불러올 수 없습니다. 다시 시도해 주세요.',
'common.cancel': '취소',
'common.save': '저장',
'common.confirm': '확인',
'common.delete': '삭제',
'common.edit': '편집',
'common.create': '생성',
'common.search': '검색',
'common.loading': '로딩 중…',
'sync.runs': '동기화 실행',
'sync.totalCost': '합계',
'sync.when': '시간',
'sync.source': '소스',
'sync.items': '항목',
'sync.tokens': '토큰',
'sync.cost': '비용',
'sync.duration': '기간',
'sync.noAuditEntries': '아직 기록된 동기화 실행이 없습니다.',
'sync.timeAgo.justNow': '방금',
'sync.timeAgo.minutes': '{n}분 전',
'sync.timeAgo.hours': '{n}시간 전',
'sync.timeAgo.days': '{n}일 전',
'sync.status.success': '성공',
'sync.status.failed': '실패',
'common.error': '오류',
'common.success': '성공',
'common.back': '뒤로',
'common.next': '다음',
'common.finish': '완료',
'common.close': '닫기',
'common.enabled': '활성화됨',
'common.disabled': '비활성화됨',
'common.on': '켜짐',
'common.off': '꺼짐',
'common.yes': '예',
'common.no': '아니요',
'common.ok': '확인했습니다',
'common.name': '이름',
'common.retry': '다시 시도',
'common.copy': '복사',
'common.copied': '복사됨',
'common.learnMore': '자세히 알아보기',
'common.seeAll': '보기',
'common.dismiss': '닫기',
'common.clear': '지우기',
'common.reset': '초기화',
'common.refresh': '새로고침',
'common.export': '내보내기',
'common.import': '가져오기',
'common.upload': '업로드',
'common.download': '다운로드',
'common.add': '추가',
'common.remove': '제거',
'common.showMore': '더 보기',
'common.showLess': '간단히 보기',
'common.submit': '제출',
'common.continue': '계속',
'common.comingSoon': '출시 예정',
'common.breadcrumb': '탐색경로',
'common.beta': '베타',
'common.betaDisclaimer':
'이 기능은 베타 버전입니다. 변경되거나 불완전할 수 있습니다 — 피드백이 개선에 도움이 됩니다.',
'settings.general': '일반',
// Settings layman groups (Phase 4 IA revamp)
'settings.groups.account': '계정',
'settings.groups.assistant': '어시스턴트',
'settings.groups.privacySecurity': '개인정보 및 보안',
'settings.groups.notifications': '알림',
'settings.groups.about': '정보',
'settings.assistant.personality': '개성',
'settings.personalityFace.title': '성격 및 얼굴',
'settings.personalityFace.menuDesc': '어시스턴트의 성격을 조정하고 얼굴을 선택하세요',
'settings.assistant.voice': '음성',
'settings.assistant.voiceDesc': '음성-텍스트 및 텍스트-음성 설정',
'settings.assistant.faceMascot': '얼굴 / 마스코트',
'settings.assistant.backgroundActivity': '잠재의식',
'settings.assistant.backgroundActivityDesc':
'어시스턴트가 백그라운드에서 얼마나 활발히 작동하는지 제어',
'settings.assistant.screenAwareness': '화면 인식',
'settings.assistant.screenAwarenessDesc': '어시스턴트가 활성 창을 볼 수 있도록 허용',
'settings.assistant.desktopCompanion': '데스크탑 동반자',
'settings.assistant.desktopCompanionDesc':
'시스템 트레이 단축키가 있는 항상 활성화된 동반자 모드',
'settings.assistant.permissions': '권한',
'settings.assistant.permissionsDesc':
'어시스턴트가 무엇을 할 수 있고 어디서 작업할 수 있는지 선택하세요',
'settings.privacySecurity.privacy': '개인정보',
'settings.privacySecurity.privacyDesc': '컴퓨터를 떠나는 데이터 제어',
'settings.privacySecurity.security': '보안',
'settings.privacySecurity.securityDesc': '세션 및 로그인 옵션',
'settings.privacySecurity.approvalsHistory': '승인 및 기록',
'settings.privacySecurity.approvalsHistoryDesc': '최근 도구 승인 결정 검토',
'settings.notifications.menuTitle': '알림',
'settings.notifications.menuDesc': '알림 받은편지함 및 알림 기본설정',
'settings.devGroups.knowledgeMemory': '지식 및 메모리',
'settings.devGroups.agentsAutonomy': '에이전트 및 자율성',
'settings.devGroups.modelsInference': '모델 및 추론',
'settings.devGroups.automationIntegrations': '자동화 및 통합',
'settings.devGroups.toolsCapabilities': '도구 및 기능',
'settings.devGroups.council': '위원회',
'settings.analysisViews.title': '분석 보기',
'settings.analysisViews.menuDesc':
'메모리 그래프 분석 — 다이어그램, 중심성, 응집도, 연관, 최신성, 타임라인, 경로 및 네임스페이스',
'settings.buildInfo.title': '빌드 / 버전 정보',
'settings.buildInfo.menuDesc': '앱 빌드, 버전 및 코어 연결 세부 정보',
'settings.dataSync.title': '데이터 동기화',
'settings.dataSync.menuDesc': '어시스턴트가 동기화하는 항목 — 소스, 최신성 및 상태',
'settings.dataSync.description':
'어시스턴트의 메모리에 무엇이 동기화되는지 관리하세요: 연결된 각 소스의 마지막 동기화 시간, 동기화된 양, 지금 동기화 중인지 여부를 확인할 수 있습니다.',
'settings.devGroups.diagnosticsLogs': '진단 및 로그',
'settings.featuresAndAI': '기능 및 AI',
'settings.billingAndRewards': '결제 및 보상',
'settings.support': '지원',
'settings.advanced': '고급',
'settings.dangerZone': '위험 영역',
'settings.account': '계정',
'settings.accountDesc': '복구 문구, 팀, 연결 및 개인정보',
'settings.notifications': '알림',
'settings.notificationsDesc': '방해 금지 및 계정별 알림 설정',
'settings.notifications.tabs.preferences': '기본 설정',
'settings.notifications.tabs.routing': '라우팅',
'settings.features': '기능',
'settings.featuresDesc': '화면 인식, 메시징 및 도구',
'settings.aiModels': 'AI 및 모델',
'settings.aiModelsDesc': '로컬 AI 모델 설정, 다운로드 및 LLM 제공업체',
'settings.ai': 'AI 구성',
'settings.aiDesc': '클라우드 제공업체, 로컬 Ollama 모델 및 작업별 라우팅',
'settings.billingUsage': '결제 및 사용량',
'settings.billingUsageDesc': '구독 플랜, 크레딧 및 결제 수단',
'settings.rewards': '보상',
'settings.rewardsDesc': '추천, 쿠폰 및 적립 크레딧',
'settings.restartTour': '투어 다시 시작',
'settings.restartTourDesc': '제품 안내를 처음부터 다시 보기',
'settings.about': '정보',
'settings.aboutDesc': '앱 버전 및 소프트웨어 업데이트',
'settings.developerOptions': '고급',
'settings.developerOptionsDesc': 'AI 구성, 메시징 채널, 도구, 진단 및 디버그 패널',
'settings.developerDiagnostics': '개발자 및 진단',
'settings.developerDiagnosticsDesc': '고급 개발자 도구, 진단, 메모리, 에이전트 및 디버그 패널',
'settings.developerMode.title': '개발자 모드',
'settings.developerMode.description': '고급 개발자 및 진단 도구 표시',
'settings.developerMode.enabledByBuild': '개발 빌드에서 항상 활성화',
'settings.clearAppData': '앱 데이터 삭제',
'settings.clearAppDataDesc': '로그아웃하고 모든 로컬 앱 데이터를 영구적으로 삭제',
'settings.logOut': '로그아웃',
'settings.logOutDesc': '계정에서 로그아웃',
'settings.exitLocalSession': '로컬 세션 종료',
'settings.exitLocalSessionDesc': '로그인 화면으로 돌아가기',
'settings.language': '언어',
'settings.navGroups.general': '일반',
'settings.navGroups.assistant': '어시스턴트',
'settings.navGroups.data': '데이터',
'settings.navGroups.connections': '연결',
'settings.navGroups.system': '시스템',
'settings.betaBuild': '베타 빌드 - v{version}',
'settings.languageDesc': '앱 인터페이스 표시 언어',
'settings.alerts': '알림',
'settings.alertsDesc': '받은 편지함에서 최근 알림 및 활동 보기',
'settings.account.profile': '프로필',
'settings.account.profileDesc': '이름, 이메일, 아바타',
'settings.account.devices': '기기',
'settings.account.devicesDesc': '모바일 기기 연결 및 관리',
'settings.account.teamMembers': '팀 & 멤버',
'settings.account.teamMembersDesc': '팀 접근 및 멤버 역할 관리',
'settings.account.dataMigration': '데이터 & 마이그레이션',
'settings.account.dataMigrationDesc': '다른 어시스턴트에서 메모리 가져오기',
'settings.account.recoveryPhrase': '복구 문구',
'settings.account.recoveryPhraseDesc': '계정 복구 문구를 확인하고 백업합니다',
'settings.account.team': '팀',
'settings.account.teamDesc': '팀 구성원과 권한을 관리합니다',
'settings.account.connections': '연결',
'settings.account.connectionsDesc': '연결된 계정과 서비스를 관리합니다',
'settings.account.privacy': '개인정보 보호',
'settings.account.privacyDesc': '컴퓨터 밖으로 나가는 데이터를 제어합니다',
'migration.title': '다른 어시스턴트에서 가져오기',
'migration.description':
'다른 로컬 어시스턴트의 메모리와 노트를 이 워크스페이스로 마이그레이션합니다. 먼저 미리 보기로 변경 사항을 확인한 다음 적용하여 데이터를 복사하세요. 현재 메모리는 먼저 백업됩니다.',
'migration.vendorLabel': '소스 공급업체',
'migration.vendor.openclaw': 'OpenClaw',
'migration.vendor.hermes': 'Hermes Agent',
'migration.sourceLabel': '소스 작업공간 경로(선택 사항)',
'migration.sourcePlaceholder': '자동 감지하려면 비워 두세요(예: ~/.openclaw/workspace)',
'migration.sourcePlaceholderHermes': '비워두면 자동 감지 (예: ~/.hermes)',
'migration.sourceHint':
'비워두면 공급업체의 기본 위치를 사용합니다. 워크스페이스를 다른 위치로 이동한 경우 명시적인 경로를 설정하세요.',
'migration.previewAction': '미리 보기',
'migration.previewRunning': '미리보기 중…',
'migration.applyAction': '가져오기 적용',
'migration.applyRunning': '가져오는 중…',
'migration.applyDisclaimer':
'동일한 소스에서 미리 보기를 성공적으로 완료한 후 적용이 활성화됩니다. 가져오기 전에 기존 메모리가 백업됩니다.',
'migration.reportTitlePreview': '미리 보기 — 아직 가져온 항목 없음',
'migration.reportTitleApplied': '가져오기 완료',
'migration.report.source': '소스 작업 영역',
'migration.report.target': '대상 작업 영역',
'migration.report.fromSqlite': 'SQLite(brain.db)에서',
'migration.report.fromMarkdown': '마크다운에서',
'migration.report.imported': '가져옴',
'migration.report.skippedUnchanged': '건너뛰었습니다(변경되지 않음)',
'migration.report.renamedConflicts': '충돌 시 이름이 변경됨',
'migration.report.warnings': '경고',
'migration.report.previewHint':
'아직 데이터를 가져오지 않았습니다. 가져오기 적용을 클릭하여 복사하세요.',
'migration.report.appliedHint':
'가져온 항목이 이제 메모리에 있습니다. 다시 비교하려면 미리 보기를 다시 실행하세요.',
'migration.confirmImport.singular':
'현재 워크스페이스로 {count}개의 항목을 가져오시겠습니까?\n\n소스: {source}\n대상: {target}\n\n가져오기 실행 전에 기존 메모리가 백업됩니다.',
'migration.confirmImport.plural':
'현재 워크스페이스로 {count}개의 항목을 가져오시겠습니까?\n\n소스: {source}\n대상: {target}\n\n가져오기 실행 전에 기존 메모리가 백업됩니다.',
'settings.notifications.doNotDisturb': '방해 금지',
'settings.notifications.doNotDisturbDesc': '정해진 시간 동안 모든 알림을 일시 중지합니다',
'settings.notifications.channelControls': '채널별 설정',
'settings.notifications.channelControlsDesc': '각 채널의 알림 기본 설정을 구성합니다',
'settings.features.screenAwareness': '화면 인식',
'settings.features.screenAwarenessDesc': '어시스턴트가 현재 활성 창을 볼 수 있게 합니다',
'settings.features.messaging': '메시징',
'settings.features.messagingDesc': '채널 및 메시징 통합 설정',
'settings.features.tools': '도구',
'settings.features.toolsDesc': '연결된 도구와 통합을 관리합니다',
'settings.ai.localSetup': '로컬 AI 설정',
'settings.ai.localSetupDesc': '로컬 AI 모델을 다운로드하고 구성합니다',
'settings.ai.llmProvider': 'LLM 제공업체',
'settings.ai.llmProviderDesc': 'AI 제공업체를 선택하고 구성합니다',
'clearData.title': '앱 데이터 삭제',
'clearData.warning': '이 작업은 로그아웃하고 다음 로컬 앱 데이터를 영구적으로 삭제합니다:',
'clearData.bulletSettings': '앱 설정 및 대화',
'clearData.bulletCache': '모든 로컬 통합 캐시 데이터',
'clearData.bulletWorkspace': '워크스페이스 데이터',
'clearData.bulletOther': '기타 모든 로컬 데이터',
'clearData.irreversible': '이 작업은 되돌릴 수 없습니다.',
'clearData.clearing': '앱 데이터를 삭제하는 중...',
'clearData.failed': '데이터 삭제 및 로그아웃에 실패했습니다. 다시 시도해 주세요.',
'clearData.failedLogout': '로그아웃에 실패했습니다. 다시 시도해 주세요.',
'clearData.failedPersist': '저장된 앱 상태를 삭제하지 못했습니다. 다시 시도해 주세요.',
'welcome.logoAlt': 'OpenHuman',
'welcome.title': 'OpenHuman에 오신 것을 환영합니다',
'welcome.subtitle': '개인용 AI 슈퍼 인텔리전스입니다. 비공개이며, 간단하고, 매우 강력합니다.',
'welcome.connectPrompt': 'RPC URL 구성(고급)',
'welcome.selectRuntime': '런타임 선택',
'welcome.clearingAppData': '앱 데이터 삭제 중...',
'welcome.clearAppDataAndRestart': '앱 데이터 삭제 및 다시 시작',
'welcome.clearAppDataWarning':
'이 작업은 이 기기에 로컬로 저장된 비밀 정보와 계정을 초기화합니다. 클라우드 계정은 영향을 받지 않으며 즉시 다시 로그인할 수 있습니다.',
'welcome.resetErrorFallback':
'앱 데이터를 지울 수 없습니다. OpenHuman을 종료하고 다시 열어 재시도하세요.',
'welcome.signingIn': '로그인 중...',
'welcome.termsIntro': '계속 진행하면',
'welcome.termsOfUse': '약관',
'welcome.termsJoiner': '및',
'welcome.privacyPolicy': '개인정보 보호정책에 동의하게 됩니다.',
'welcome.termsOutro': '.',
'welcome.urlPlaceholder': 'http://localhost:8089',
'welcome.invalidUrl': '올바른 HTTP 또는 HTTPS URL을 입력해 주세요',
'welcome.connecting': '테스트 중',
'welcome.connect': '테스트',
'home.greeting': '좋은 아침입니다',
'home.greetingAfternoon': '좋은 오후입니다',
'home.greetingEvening': '좋은 저녁입니다',
'home.askAssistant': '어시스턴트에게 무엇이든 물어보세요...',
'home.statusOk': '어시스턴트가 준비되어 있어요. 아래에 무언가 입력해 시작하세요.',
'home.statusBackendOnly':
'백엔드에 다시 연결하는 중입니다… 곧 에이전트를 다시 사용할 수 있습니다.',
'home.statusCoreUnreachable':
'로컬 코어 사이드카가 응답하지 않습니다. OpenHuman 백그라운드 프로세스가 중단되었거나 시작하지 못했을 수 있습니다.',
'home.statusInternetOffline':
'현재 기기가 오프라인 상태입니다. 네트워크를 확인하거나 앱을 다시 시작하여 다시 연결하세요.',
'home.restartCore': '코어 다시 시작',
'home.restartingCore': '코어를 다시 시작하는 중…',
'home.themeToggle.toLight': '라이트 모드로 전환',
'home.themeToggle.toDark': '다크 모드로 전환',
'home.usageExhaustedTitle': '사용 한도를 모두 소진했습니다',
'home.usageExhaustedBody':
'현재 포함된 사용량을 모두 소진했습니다. 더 많은 지속 용량을 사용하려면 구독을 시작하세요.',
'home.usageExhaustedCta': '구독 시작',
'openrouterFree.cta': 'OpenRouter 무료 모델 사용',
'openrouterFree.saving': 'OpenRouter 연결 중...',
'openrouterFree.error':
'OpenRouter 무료 모델로 전환하지 못했습니다. OpenRouter 로그인을 확인하고 다시 시도하세요.',
'home.routinesCard': '내 루틴',
'home.routinesActive': '{count}개 활성',
'routines.title': '내 루틴',
'routines.subtitle': '어시스턴트가 자동으로 수행하는 작업',
'routines.loading': '루틴 로드 중…',
'routines.empty': '아직 루틴이 없습니다',
'routines.emptyHint':
'어시스턴트는 아침 브리핑이나 일일 요약처럼 일정에 따라 작업을 실행할 수 있습니다.',
'routines.refresh': '새로고침',
'routines.nextRun': '다음 실행',
'routines.lastRunSuccess': '마지막 실행 성공',
'routines.lastRunFailed': '마지막 실행 실패',
'routines.notRunYet': '아직 실행되지 않음',
'routines.runNow': '지금 실행',
'routines.running': '실행 중…',
'routines.runNowTimedOut': '실행 시간 초과 — 새로고침 후 다시 시도하세요.',
'routines.viewHistory': '기록 보기',
'routines.loadingHistory': '로딩 중…',
'routines.noHistory': '아직 실행 기록이 없습니다.',
'routines.statusSuccess': '성공',
'routines.statusError': '오류',
'routines.showOutput': '출력 표시',
'routines.hideOutput': '출력 숨기기',
'routines.toggleEnabled': '이 루틴을 활성화하거나 비활성화',
'routines.typeAgent': '에이전트',
'routines.typeCommand': '명령',
'nav.routines': 'Routines',
'chat.newThread': '새 스레드',
'chat.newConversation': '새 대화',
'chat.newWindowWelcome1': '환영해요, {name} 👋',
'chat.newWindowWelcome2': '시작해 볼까요, {name} 🧑‍🍳.',
'chat.newWindowWelcome3': '집중할 시간이에요 🧘🏻',
'chat.typeMessage': '오늘 무엇을 도와드릴까요?',
'chat.send': '메시지 보내기',
'chat.stopGeneration': '생성 중지',
'chat.parallelBranchHint': '병렬 분기 입력 — 보내려면 ⌘/Ctrl+Enter',
'chat.followupHint': '후속 메시지를 대기열에 추가 — 이 응답 후 전송 · 병렬 분기는 ⌘/Ctrl+Enter',
'chat.queuedFollowups.label': '대기 중인 후속 메시지',
'chat.queuedFollowups.clear': '지우기',
'chat.queuedFollowups.clearFailed': '대기열을 지우지 못했습니다 — 다시 시도하세요.',
'chat.parallelBranchLabel': '병렬 분기',
'chat.thinking': '생각 중...',
'chat.noMessages': '아직 메시지가 없습니다',
'chat.startConversation': '대화 시작',
'chat.regenerate': '다시 생성',
'chat.copyResponse': '응답 복사',
'chat.citations': '인용',
'chat.toolUsed': '사용된 도구',
'scope.legacy': '레거시',
'scope.user': '사용자',
'scope.project': '프로젝트',
'skills.title': '연결',
'skills.search': '연결 검색...',
'skills.noResults': '연결을 찾을 수 없습니다',
'skills.loadingIntegrations': '통합을 불러오는 중…',
'skills.connect': '연결',
'skills.disconnect': '연결 해제',
'skills.configure': '관리',
'skills.connected': '연결됨',
'skills.available': '사용 가능',
'skills.addAccount': '계정 추가',
'skills.channels': '메시징',
'skills.explorer.emptyCta': 'URL에서 설치',
'skills.explorer.emptyDescription':
'SKILL.md 패키지를 설치하거나 Hermes 스타일 폴더를 ~/.openhuman/skills에 넣으세요.',
'skills.explorer.emptyTitle': '스킬을 찾을 수 없음',
'skills.explorer.installFromUrl': 'URL에서 설치',
'skills.explorer.newSkill': '새 스킬',
'skills.explorer.subtitle':
'Hermes 스타일 markdown, scripts, references, templates, examples, prompts를 포함한 SKILL.md 패키지를 탐색합니다.',
'skills.explorer.title': '스킬 탐색기',
'skills.explorer.searchPlaceholder': '스킬 검색...',
'skills.explorer.scopeUser': 'User',
'skills.explorer.scopeProject': 'Project',
'skills.explorer.scopeLegacy': 'Legacy',
'skills.explorer.noDescription': '설명이 제공되지 않았습니다.',
'skills.explorer.uninstallSuccess': '스킬이 성공적으로 제거되었습니다.',
'skills.explorer.registryTab': '레지스트리',
'skills.explorer.installedTab': '설치됨',
'skills.explorer.allFormats': '모든 형식',
'skills.explorer.refreshRegistry': '레지스트리 새로고침',
'skills.explorer.registryEmptyTitle': '레지스트리 항목 없음',
'skills.explorer.registryEmptyDescription':
'스킬 레지스트리를 로드할 수 없습니다. 연결을 확인하고 새로고침해 보세요.',
'skills.explorer.showingOf':
'{total}개 결과 중 {shown}개 표시. 검색을 세분화하여 더 많이 보세요.',
'skills.explorer.installed': '설치됨',
'skills.explorer.install': '설치',
'skills.explorer.installing': '설치 중…',
'skills.integrations': 'Composio 통합',
'skills.integrationsSubtitle':
'클라우드 기반 OAuth 연결 — 계정으로 로그인하면 Composio가 토큰을 관리하여 에이전트가 사용자를 대신해 읽고 작동할 수 있습니다. API 키 관리가 필요 없습니다.',
'skills.composio.noApiKeyTitle': '아니요 Composio API 키가 구성됨',
'skills.composio.noApiKeyDescription':
'로컬 모드에서는 자체 Composio API 키를 사용합니다. 설정 → 고급 → Composio에서 키를 추가한 후 여기서 통합을 연결하세요.',
'skills.composio.noApiKeyCta': '설정에서 열기',
'skills.tabs.composio': 'Composio',
'skills.tabs.channels': '채널',
'skills.tabs.explorer': '스킬',
'skills.tabs.meetings': 'Google Meet 회의',
'skills.tabs.mcp': 'MCP 서버',
'connections.tabs.composio': 'Composio',
'connections.tabs.channels': '채널',
'connections.tabs.mcp': 'MCP 서버',
'connections.tabs.skills': '스킬',
'connections.tabs.meetings': '미팅',
'connections.groups.integrations': '통합',
'connections.tabs.oauth': 'OAuth',
'connections.tabs.composioKey': 'Composio',
'connections.groups.apiKeys': 'API 키',
'connections.groups.intelligence': '인텔리전스',
'memory.title': '메모리',
'memory.search': '메모리 검색...',
'memory.noResults': '메모리를 찾을 수 없습니다',
'memory.empty': '아직 메모리가 없습니다. 메모리는 상호작용하면서 자동으로 생성됩니다.',
'memory.tab.memory': '메모리',
'memory.tab.memoryTree': '메모리 트리',
'memory.tab.tasks': '작업',
'memory.tab.tasksDescription':
'작업을 만들고 추적하세요 — 본인의 할 일 목록과 에이전트가 대화를 통해 구성한 보드가 모두 포함됩니다.',
'memory.tab.subconscious': '잠재의식',
'memory.tab.agentWork': '에이전트 작업',
'memory.tab.agentWorkDescription':
'모든 백그라운드 에이전트 실행을 위한 명령 센터 — 입력이 필요한 것, 진행 중인 것, 완료된 것별로 그룹화됩니다.',
'memory.tab.worktrees': '워크트리',
'memory.tab.worktreesDescription':
'병렬 에이전트 워커가 만든 격리된 git 워크트리 — 변경 사항을 확인하거나 열거나 정리하세요.',
'memory.tab.teams': '팀',
'memory.tab.teamsDescription':
'조율된 에이전트 팀 — 각 작업을 누가 담당하는지, 무엇이 차단되어 있는지, 그리고 팀원들이 서로 무슨 이야기를 나누는지.',
'memory.tab.agents': '라이브러리',
'memory.tab.agentsDescription':
'사용 가능한 에이전트를 탐색하고 실행하세요 — 각 에이전트는 고유한 도구, 기능 및 전문 분야를 갖추고 있습니다.',
'memory.tab.workflows': 'Workflows',
'memory.tab.workflowsDescription':
'재사용 가능하고 실행 가능한 절차 — 목표와 그에 도달하는 단계. 새로 만들거나, URL에서 설치하거나, 워크플로를 열어 실행하세요.',
'memory.tab.dreams': '꿈',
'memory.tab.calls': '통화',
'memory.tab.diagram': 'Diagram',
'memory.tab.centrality': 'Centrality',
'memory.tab.namespaces': '네임스페이스',
'memory.tab.timeline': 'Timeline',
'memory.tab.settings': '설정',
'memory.analyzeNow': '지금 분석',
'memoryTimeline.title': '기억 타임라인',
'memoryTimeline.intro':
'어시스턴트가 당신에 대해 학습한 시기 — 마지막으로 강화된 월별로 그룹화된 사실. 성장, 활동 급증 및 조용한 기간을 보여줍니다.',
'memoryTimeline.loading': '타임라인 구축 중…',
'memoryTimeline.errorPrefix': '그래프를 로드할 수 없습니다:',
'memoryTimeline.retry': 'Retry',
'memoryTimeline.namespaceLabel': 'Namespace',
'memoryTimeline.namespaceAll': '모든 네임스페이스',
'memoryTimeline.empty': '아직 지식 그래프가 없습니다.',
'memoryTimeline.emptyHint': '어시스턴트가 사실을 기록하면 타임라인이 여기에 표시됩니다.',
'memoryTimeline.metricTotal': 'Facts',
'memoryTimeline.metricMonths': '활성 월',
'memoryTimeline.metricRecent': '최근 30일',
'memoryTimeline.heading': '월별 학습된 사실',
'memoryTimeline.busiestCaption': '가장 활발: {period} ({count})',
'memoryTimeline.undatedNote': '{count}개 사실에 기록된 날짜가 없습니다.',
'memoryTimeline.truncated': '{total}개월 중 가장 최근 {shown}개 표시.',
'namespaceOverview.title': '네임스페이스 개요',
'namespaceOverview.intro':
'컨텍스트 전반에 걸쳐 지식이 어떻게 분포되어 있는지 — 각 네임스페이스에 기록된 사실과 고유 엔터티의 수입니다.',
'namespaceOverview.loading': '네임스페이스 집계 중…',
'namespaceOverview.errorPrefix': '그래프를 로드할 수 없습니다:',
'namespaceOverview.retry': '다시 시도',
'namespaceOverview.empty': '아직 지식 그래프가 없습니다.',
'namespaceOverview.emptyHint':
'어시스턴트가 컨텍스트 전반에 걸쳐 사실을 기록하면 각 네임스페이스가 여기에 표시됩니다.',
'namespaceOverview.metricNamespaces': '네임스페이스',
'namespaceOverview.metricFacts': '사실',
'namespaceOverview.metricEntities': '엔터티',
'namespaceOverview.heading': '네임스페이스별',
'namespaceOverview.unnamespaced': '(네임스페이스 없음)',
'namespaceOverview.factsLabel': '사실 {count}개',
'namespaceOverview.entitiesLabel': '엔터티 {count}개',
'namespaceOverview.entitiesShort': '{count}개 엔터티',
'namespaceOverview.truncated': '전체 {total}개 네임스페이스 중 상위 {shown}개를 표시합니다.',
'graphCentrality.title': '지식 그래프 중심성',
'graphCentrality.intro':
'메모리 그래프에 PageRank를 적용해 핵심 허브와, 단순 빈도 계산으로는 드러나지 않는 분리된 클러스터를 연결하는 엔터티를 드러냅니다.',
'graphCentrality.loading': '중심성 계산 중…',
'graphCentrality.errorPrefix': '그래프를 로드할 수 없습니다:',
'graphCentrality.retry': '다시 시도',
'graphCentrality.empty': '아직 지식 그래프가 없습니다.',
'graphCentrality.emptyHint':
'어시스턴트가 사용자에 대한 사실을 기록하면 가장 많이 연결된 엔터티가 여기에 표시됩니다.',
'graphCentrality.namespaceLabel': '네임스페이스',
'graphCentrality.namespaceAll': '모든 네임스페이스',
'graphCentrality.metricEntities': '엔터티',
'graphCentrality.metricConnections': '연결',
'graphCentrality.metricClusters': '클러스터',
'graphCentrality.clustersCaption': '클러스터 {components}개 · 최대 {largest}개 포함',
'graphCentrality.approximateBadge': '근사값',
'graphCentrality.approximateTitle': '완전히 수렴하기 전에 반복 한도에서 중지됨',
'graphCentrality.rankedHeading': '영향력 상위 엔터티',
'graphCentrality.colRank': '#',
'graphCentrality.colEntity': '엔터티',
'graphCentrality.colInfluence': '영향력',
'graphCentrality.colLinks': '링크',
'graphCentrality.bridgeBadge': '커넥터',
'graphCentrality.bridgeTitle': '커넥터 - 링크 수보다 더 큰 영향력을 가진 엔터티',
'graphCentrality.degreeTitle': '들어옴 {in} · 나감 {out}',
'memory.tab.associations': 'Associations',
'entityAssociations.title': '엔티티 연관',
'entityAssociations.intro':
'많은 동일한 연결을 공유하는 엔티티들은 연관됩니다 — 단일 사실이 직접 연결하지 않더라도. Jaccard 유사도가 이러한 숨겨진 연관을 드러냅니다.',
'entityAssociations.loading': '연관 계산 중…',
'entityAssociations.errorPrefix': '그래프를 로드할 수 없습니다:',
'entityAssociations.retry': 'Retry',
'entityAssociations.empty': '아직 연관이 없습니다.',
'entityAssociations.emptyHint':
'엔티티들이 연결을 공유하기 시작하면 가장 강한 쌍이 여기에 표시됩니다.',
'entityAssociations.namespaceLabel': 'Namespace',
'entityAssociations.namespaceAll': '모든 네임스페이스',
'entityAssociations.metricEntities': 'Entities',
'entityAssociations.metricPairs': 'Associations',
'entityAssociations.rankedHeading': '가장 강한 연관',
'entityAssociations.linkedBadge': 'linked',
'entityAssociations.inferredBadge': 'inferred',
'entityAssociations.linkedTitle': '이 엔티티들은 직접 연결되어 있습니다.',
'entityAssociations.inferredTitle': '직접적인 링크 없음 — 공유된 연결을 통해서만 연관됨.',
'entityAssociations.sharedLabel': '{shared}개 공유',
'entityAssociations.pairTitle': '{jaccard}% 유사 · {shared}/{union} 연결 공유',
'entityAssociations.truncated': '{shown}/{total} 표시 — 가장 강한 것 먼저.',
'memory.tab.freshness': 'Freshness',
'memoryFreshness.title': '지식 신선도',
'memoryFreshness.intro':
'어시스턴트가 최근에 재확인하지 않은 사실은 망각 곡선을 따라 쇠퇴합니다. 이것은 무엇이 오래되었고 재확인할 가치가 있는지 보여주어, 오래된 사실을 여전히 확실한 것으로 취급하지 않도록 합니다.',
'memoryFreshness.loading': '신선도 계산 중…',
'memoryFreshness.errorPrefix': '그래프를 로드할 수 없습니다:',
'memoryFreshness.retry': 'Retry',
'memoryFreshness.empty': '아직 지식 그래프가 없습니다.',
'memoryFreshness.emptyHint': '어시스턴트가 사실을 기록하면 신선도가 여기에서 추적됩니다.',
'memoryFreshness.namespaceLabel': 'Namespace',
'memoryFreshness.namespaceAll': '모든 네임스페이스',
'memoryFreshness.metricFresh': 'Fresh',
'memoryFreshness.metricFading': 'Fading',
'memoryFreshness.metricStale': 'Stale',
'memoryFreshness.recallCaption': '{total}개 사실에서 평균 재현율 {recall}%',
'memoryFreshness.queueHeading': '재확인 대기열',
'memoryFreshness.queueTruncated': '{shown}/{total} 표시 — 이것들을 먼저 처리하세요.',
'memoryFreshness.allFresh': '모든 사실이 아직 신선합니다 — 재확인할 것이 없습니다.',
'memoryFreshness.statusFading': 'fading',
'memoryFreshness.statusStale': 'stale',
'memoryFreshness.ageLabel': '{days}일 전',
'memoryFreshness.recallTitle': '{recall}% 재현율 · 반감기 {halfLife}일',
'memory.tab.path': '경로',
'connectionPath.title': '연결 경로',
'connectionPath.intro':
'두 엔티티를 잇는 가장 짧은 관계 사슬을 추적합니다 — 여러 홉을 거치더라도 그래프가 둘을 어떻게 연결하는지 보여줍니다.',
'connectionPath.loading': '그래프를 불러오는 중…',
'connectionPath.errorPrefix': '그래프를 불러올 수 없습니다:',
'connectionPath.retry': '다시 시도',
'connectionPath.namespaceLabel': '네임스페이스',
'connectionPath.namespaceAll': '모든 네임스페이스',
'connectionPath.sourceLabel': '시작',
'connectionPath.targetLabel': '끝',
'connectionPath.sourcePlaceholder': '시작 엔티티',
'connectionPath.targetPlaceholder': '끝 엔티티',
'connectionPath.prompt': '두 엔티티를 선택하여 어떻게 연결되어 있는지 추적하세요.',
'connectionPath.empty': '아직 지식 그래프가 없습니다.',
'connectionPath.emptyHint':
'어시스턴트가 관련 정보를 기록하면 여기에서 연결을 추적할 수 있습니다.',
'connectionPath.resultHeading': '최단 경로',
'connectionPath.pathSummary': '{length}홉 떨어져 있음',
'connectionPath.sameMessage': '서로 다른 두 엔티티를 선택하세요.',
'connectionPath.missingSource': '"{entity}"이(가) 그래프에 없습니다.',
'connectionPath.missingTarget': '"{entity}"이(가) 그래프에 없습니다.',
'connectionPath.noPath': '"{source}"와(과) "{target}" 사이에 연결을 찾을 수 없습니다.',
'memoryTree.status.title': '메모리 트리',
'memoryTree.status.autoSyncLabel': '자동 동기화',
'memoryTree.status.autoSyncDescription':
'새 수집을 중지하려면 일시 중지하세요. 기존 위키는 계속 쿼리할 수 있습니다.',
'memoryTree.status.statusTile': '상태',
'memoryTree.status.lastSyncTile': '마지막 동기화',
'memoryTree.status.totalChunksTile': '총 청크',
'memoryTree.status.wikiSizeTile': '위키 크기',
'memoryTree.status.statusRunning': '실행 중',
'memoryTree.status.statusPaused': '일시 중지됨',
'memoryTree.status.statusSyncing': '동기화 중',
'memoryTree.status.statusError': '오류',
'memoryTree.status.statusIdle': '유휴 상태',
'memoryTree.status.never': '없음',
'memoryTree.status.fetchError': '메모리 트리 상태를 가져올 수 없습니다.',
'memoryTree.status.retry': '다시 시도',
'memoryTree.status.toggleFailed': '자동 동기화를 전환할 수 없습니다.',
'memoryTree.status.justNow': '방금 전',
'memoryTree.status.secondsAgo': '{count}초 전',
'memoryTree.status.minuteAgo': '1분 전',
'memoryTree.status.minutesAgo': '{count}분 전',
'memoryTree.status.hourAgo': '1시간 전',
'memoryTree.status.hoursAgo': '{count}시간 전',
'memoryTree.status.dayAgo': '1일 전',
'memoryTree.status.daysAgo': '{count}일 전',
'memoryTree.status.integrationsTitle': '통합별 상태',
'memoryTree.status.integrationsEmpty': '연결된 통합이 없습니다',
'memoryTree.status.integrationActive': '활성',
'memoryTree.status.integrationStale': '오래됨',
'memoryTree.status.integrationChunks': '청크: {count}개',
'alerts.title': '알림',
'alerts.empty': '아직 알림이 없습니다',
'alerts.markAllRead': '모두 읽음으로 표시',
'alerts.unread': '읽지 않음',
'rewards.title': '보상',
'rewards.referrals': '추천',
'rewards.coupons': '교환',
'rewards.localUnavailable':
'로컬 로그인은 리워드, 쿠폰 또는 추천 크레딧을 적립할 수 없습니다. 리워드를 적립하려면 로그아웃하고 OpenHuman 계정으로 로그인하세요.',
'rewards.localUnavailableCta': '계정 설정 열기',
'rewards.credits': '크레딧',
'rewards.referralCode': '내 추천 코드',
'rewards.copyCode': '코드 복사',
'rewards.share': '공유',
'onboarding.welcome': '안녕하세요. 저는 OpenHuman입니다.',
'onboarding.welcomeDesc':
'컴퓨터에서 실행되는 초지능 AI 어시스턴트입니다. 비공개이며, 간단하고, 매우 강력합니다.',
'onboarding.context': '컨텍스트 수집',
'onboarding.contextDesc': '매일 사용하는 도구와 서비스를 연결하세요.',
'onboarding.localAI': '로컬 AI',
'onboarding.localAIDesc': '기기에서 실행되는 로컬 AI 모델을 설정하세요.',
'onboarding.chatProvider': '채팅 제공업체',
'onboarding.chatProviderDesc': '어시스턴트와 상호작용할 방법을 선택하세요.',
'onboarding.referral': '추천',
'onboarding.referralDesc': '추천 코드가 있다면 적용하세요.',
'onboarding.finish': '설정 완료',
'onboarding.finishDesc': '모든 준비가 끝났습니다! OpenHuman을 사용해 보세요.',
'onboarding.skip': '건너뛰기',
'onboarding.getStarted': '시작하기',
'onboarding.runtimeChoice.title': 'OpenHuman을 어떻게 실행하시겠습니까?',
'onboarding.runtimeChoice.subtitle':
'가장 잘 맞는 설정을 선택하세요. 나중에 설정에서 변경할 수 있습니다.',
'onboarding.runtimeChoice.cloud.title': '간단 모드',
'onboarding.runtimeChoice.cloud.tagline': 'OpenHuman이 모든 것을 대신 관리하도록 합니다.',
'onboarding.runtimeChoice.cloud.f1': '내장 보안',
'onboarding.runtimeChoice.cloud.f2': '사용량을 더 오래 쓰기 위한 토큰 압축',
'onboarding.runtimeChoice.cloud.f3': '하나의 구독으로 모든 모델 포함',
'onboarding.runtimeChoice.cloud.f4': '관리할 API 키 없음',
'onboarding.runtimeChoice.cloud.f5': '간단한 설정',
'onboarding.runtimeChoice.custom.title': '사용자 지정 실행',
'onboarding.runtimeChoice.custom.tagline': '직접 키를 가져와 사용 중인 항목을 완전히 제어합니다.',
'onboarding.runtimeChoice.custom.f1': '거의 모든 기능에 API 키가 필요합니다',
'onboarding.runtimeChoice.custom.f2': '이미 결제 중인 서비스를 다시 사용합니다',
'onboarding.runtimeChoice.custom.f3': '모든 것을 로컬에서 실행하면 무료일 수 있습니다',
'onboarding.runtimeChoice.custom.f4': '더 많은 설정과 더 많은 옵션',
'onboarding.runtimeChoice.custom.f5': '고급 사용자와 개발자에게 가장 적합',
'onboarding.runtimeChoice.cloud.creditHighlight': '가입하면 무료 크레딧 제공',
'onboarding.runtimeChoice.continueCloud': '간단 모드로 계속',
'onboarding.runtimeChoice.continueCustom': '사용자 지정으로 계속',
'onboarding.runtimeChoice.recommended': '추천',
'onboarding.runtimeChoice.exitError': '온보딩을 완료할 수 없습니다. 다시 시도해 주세요.',
'onboarding.apiKeys.title': 'API 키를 추가해 봅시다',
'onboarding.apiKeys.subtitle':
'지금 붙여넣거나 건너뛰고 나중에 설정 › AI에서 추가할 수 있습니다. 키는 이 기기에 저장되며 저장 시 암호화됩니다.',
'onboarding.apiKeys.openaiLabel': 'OpenAI API 키',
'onboarding.apiKeys.openaiPlaceholder': 'sk-...',
'onboarding.apiKeys.openaiOauthHint':
'ChatGPT Plus/Pro(구독) 또는 OpenAI API 키를 사용하세요. 둘 다 필수는 아닙니다.',
'onboarding.apiKeys.openaiOauthOpening': '로그인 중…',
'onboarding.apiKeys.openaiOauthConnect': 'ChatGPT로 로그인',
'onboarding.apiKeys.openaiOauthConnected': 'ChatGPT로 연결됨',
'onboarding.apiKeys.openaiOauthCallbackHint':
'로그인한 후 브라우저에서 전체 리디렉션 URL을 붙여넣으세요({url}로 시작).',
'onboarding.apiKeys.oauthDesktopOnly': 'ChatGPT 로그인은 데스크톱 앱에서만 사용할 수 있습니다.',
'onboarding.apiKeys.oauthStartFailed':
'ChatGPT 로그인을 시작할 수 없습니다. 다시 시도하거나 API 키를 사용하세요.',
'onboarding.apiKeys.oauthPasteRedirect': '로그인한 후 브라우저에서 리디렉션 URL을 붙여넣으세요.',
'onboarding.apiKeys.oauthCompleteFailed':
'ChatGPT 로그인이 완료되지 않았습니다. 리디렉션 URL을 확인하고 다시 시도하세요.',
'onboarding.apiKeys.finishSignIn': 'ChatGPT 로그인 완료',
'onboarding.apiKeys.orApiKey': '또는 API 키',
'onboarding.apiKeys.anthropicLabel': 'Anthropic API 키',
'onboarding.apiKeys.anthropicPlaceholder': 'sk-ant-...',
'onboarding.apiKeys.saveError':
'해당 키를 저장할 수 없습니다. 다시 확인한 후 다시 시도해 주세요.',
'onboarding.apiKeys.skipForNow': '지금은 건너뛰기',
'onboarding.apiKeys.continue': '저장하고 계속',
'onboarding.apiKeys.saving': '저장 중…',
'onboarding.custom.stepperInference': '추론',
'onboarding.custom.stepperVoice': '음성',
'onboarding.custom.stepperOAuth': 'OAuth',
'onboarding.custom.stepperSearch': '검색',
'onboarding.custom.stepperEmbeddings': 'Embeddings',
'onboarding.custom.stepperMemory': '메모리',
'onboarding.custom.stepCounter': '{total}단계 중 {n}단계',
'onboarding.custom.defaultTitle': '기본값',
'onboarding.custom.defaultSubtitle': 'OpenHuman이 대신 관리하도록 합니다.',
'onboarding.custom.configureTitle': '구성',
'onboarding.custom.configureSubtitle': '사용할 항목을 직접 선택합니다.',
'onboarding.custom.progressAriaLabel': '온보딩 진행 상황',
'onboarding.custom.continue': '계속',
'onboarding.custom.back': '뒤로',
'onboarding.custom.finish': '설정 완료',
'onboarding.custom.configureLater':
'온보딩 후에 이 설정을 마칠 수 있습니다. 완료되면 해당 설정 페이지로 이동합니다.',
'onboarding.custom.openSettings': '설정에서 열기',
'onboarding.custom.inference.title': '추론(텍스트)',
'onboarding.custom.inference.subtitle':
'어떤 언어 모델이 질문에 답하고 에이전트를 실행해야 하나요?',
'onboarding.custom.inference.defaultDesc':
'OpenHuman은 모든 작업을 적절한 기본 모델로 라우팅합니다. 키도 필요 없고 설정도 필요 없습니다.',
'onboarding.custom.inference.configureDesc':
'직접 OpenAI 또는 Anthropic 키를 가져오세요. 모든 텍스트 기반 작업에 이 키를 사용합니다.',
'onboarding.custom.voice.title': '음성',
'onboarding.custom.voice.subtitle':
'음성 모드를 위한 음성-텍스트 변환 및 텍스트-음성 변환입니다.',
'onboarding.custom.voice.defaultDesc':
'OpenHuman에는 바로 사용할 수 있는 관리형 STT/TTS가 포함되어 있습니다. 별도로 연결할 필요가 없습니다.',
'onboarding.custom.voice.configureDesc':
'직접 ElevenLabs / OpenAI Whisper 등을 사용하세요. 설정 › 음성에서 구성할 수 있습니다.',
'onboarding.custom.oauth.title': '연결(OAuth)',
'onboarding.custom.oauth.subtitle':
'OAuth가 필요한 Gmail, Slack, Notion 및 기타 연결 서비스입니다.',
'onboarding.custom.oauth.defaultDesc':
'OpenHuman은 관리형 Composio 워크스페이스를 실행합니다. 나중에 각 서비스를 한 번의 클릭으로 연결할 수 있습니다.',
'onboarding.custom.oauth.configureDesc':
'직접 Composio 계정 또는 API 키를 가져오세요. 설정 › 연결에서 구성할 수 있습니다.',
'onboarding.custom.search.title': '웹 검색',
'onboarding.custom.search.subtitle': 'OpenHuman이 사용자를 대신해 웹을 검색하는 방식입니다.',
'onboarding.custom.search.defaultDesc':
'OpenHuman은 관리형 검색 백엔드를 사용합니다. 키가 필요 없습니다.',
'onboarding.custom.search.configureDesc':
'직접 검색 제공업체 키(Tavily, Brave 등)를 가져오세요. 설정 › 도구에서 구성할 수 있습니다.',
'onboarding.custom.embeddings.title': 'Embeddings',
'onboarding.custom.embeddings.subtitle':
'OpenHuman이 시맨틱 메모리 검색을 위한 벡터 임베딩을 생성하는 방식입니다.',
'onboarding.custom.embeddings.defaultDesc':
'OpenHuman이 관리형 임베딩 서비스를 사용합니다. API 키가 필요 없습니다.',
'onboarding.custom.embeddings.configureDesc':
'자체 임베딩 공급자(OpenAI, Voyage, Ollama 등)를 사용하세요.',
'onboarding.custom.memory.title': '메모리',
'onboarding.custom.memory.subtitle':
'OpenHuman이 사용자의 컨텍스트, 선호도, 이전 대화를 기억하는 방식입니다.',
'onboarding.custom.memory.defaultDesc':
'OpenHuman은 메모리 저장과 검색을 자동으로 관리합니다. 설정할 것이 없습니다.',
'onboarding.custom.memory.configureDesc':
'메모리를 직접 검사, 내보내기 또는 삭제할 수 있습니다. 설정 › 메모리에서 구성할 수 있습니다.',
'accounts.addAccount': '계정 추가',
'accounts.addApps': '앱 추가',
'accounts.manageAccounts': '계정 관리',
'accounts.noAccounts': '연결된 계정이 없습니다',
'accounts.connectAccount': '시작하려면 계정을 연결하세요',
'accounts.agent': '에이전트',
'accounts.respondQueue': '응답 대기열',
'accounts.disconnect': '연결 해제',
'accounts.disconnectConfirm': '이 계정의 연결을 해제하시겠습니까?',
'accounts.disconnectClearMemory': '이 소스의 메모리도 삭제',
'accounts.disconnectClearMemoryHint':
'이 연결과 연관된 로컬 메모리 조각을 영구적으로 삭제합니다.',
'accounts.searchAccounts': '계정 검색...',
'channels.title': '채널',
'channels.configure': '채널 구성',
'channels.setup': '설정',
'channels.noChannels': '구성된 채널이 없습니다',
'channels.localManagedUnavailable': '로컬 사용자는 관리 채널을 사용할 수 없습니다.',
'channels.addChannel': '채널 추가',
'channels.status.connected': '연결됨',
'channels.status.disconnected': '연결 해제됨',
'channels.status.error': '오류',
'channels.status.configuring': '구성 중',
'channels.defaultMessaging': '기본 메시징 채널',
'webhooks.title': '웹훅',
'webhooks.create': '웹훅 생성',
'webhooks.noWebhooks': '구성된 웹훅이 없습니다',
'webhooks.url': 'URL',
'webhooks.secret': '시크릿',
'webhooks.events': '이벤트',
'webhooks.archiveDirectory': '보관 디렉터리',
'webhooks.todayFile': '오늘의 파일',
'invites.title': '초대',
'invites.create': '초대 생성',
'invites.noInvites': '대기 중인 초대가 없습니다',
'invites.code': '초대 코드',
'invites.copyLink': '링크 복사',
'invites.generate': '초대 생성',
'invites.generating': '생성 중...',
'invites.refreshing': '초대 새로 고치는 중...',
'invites.loading': '초대 로드 중...',
'invites.copyCodeAria': '초대 코드 복사',
'invites.revokeAria': '초대 취소',
'invites.usedUp': '소진됨',
'invites.uses': '용도: {current}{max}',
'invites.expiresOn': '{date} 만료',
'invites.empty': '아직 초대가 없습니다.',
'invites.emptyHint': '다른 사람과 공유할 초대 코드를 생성하세요.',
'invites.revokeTitle': '초대 코드 취소',
'invites.revokePromptPrefix': '정말 하시겠습니까? 초대 코드 취소',
'invites.revokeWarning': '이 초대 코드는 더 이상 유효하지 않으며 팀 참여에 사용할 수 없습니다.',
'invites.revoking': '취소 중...',
'invites.revokeAction': '초대 취소',
'invites.failedGenerate': '초대 생성 실패',
'invites.failedRevoke': '초대 취소 실패',
'team.refreshingMembers': '멤버 새로 고치는 중...',
'team.loadingMembers': '구성원 로드 중...',
'team.memberCount': '{count} 구성원',
'team.memberCountPlural': '{count} 구성원',
'team.you': '(귀하)',
'team.removeAria': '{name} 제거',
'team.noMembers': '구성원을 찾을 수 없습니다.',
'team.removeTitle': '팀 구성원 제거',
'team.removePromptPrefix': '제거하시겠습니까?',
'team.removePromptSuffix': '팀에서?',
'team.removeWarning': '팀 및 모든 팀 리소스에 대한 액세스 권한을 잃게 됩니다.',
'team.removing': '제거 중...',
'team.removeAction': '구성원 제거',
'team.changeRoleTitle': '구성원 역할 변경',
'team.changeRolePrompt': '{name}의 역할을 {oldRole}에서 {newRole}(으)로 변경하시겠습니까?',
'team.changeRoleAdminGrant': '팀원 관리 권한을 포함한 모든 관리자 권한이 부여됩니다.',
'team.changeRoleAdminRemove': '관리자 권한이 제거되어 더 이상 팀을 관리할 수 없게 됩니다.',
'team.changing': '변경 중...',
'team.changeRoleAction': '역할 변경',
'team.failedChangeRole': '역할 변경 실패',
'team.failedRemoveMember': '구성원 제거 실패',
'devOptions.title': '고급',
'devOptions.titleDiagnostics': '개발자 및 진단',
'devOptions.diagnostics': '진단',
'devOptions.diagnosticsDesc': '시스템 상태, 로그 및 성능 지표',
'devOptions.toolPolicyDiagnosticsDesc': '도구 인벤토리, 정책 상태, MCP 허용 목록 및 최근 차단',
'devOptions.toolPolicyDiagnostics.loading': '로딩 중…',
'devOptions.toolPolicyDiagnostics.unavailable': '진단을 사용할 수 없습니다.',
'devOptions.toolPolicyDiagnostics.posture.title': '정책 상태',
'devOptions.toolPolicyDiagnostics.posture.autonomy': '자율성:',
'devOptions.toolPolicyDiagnostics.posture.workspaceOnly': '작업공간만:',
'devOptions.toolPolicyDiagnostics.posture.maxActionsPerHour': '시간당 최대 작업:',
'devOptions.toolPolicyDiagnostics.posture.approvalMediumRisk': '승인(중간 위험):',
'devOptions.toolPolicyDiagnostics.posture.blockHighRisk': '높은 위험 차단:',
'devOptions.toolPolicyDiagnostics.inventory.title': '인벤토리',
'devOptions.toolPolicyDiagnostics.inventory.totalTools': '총 도구',
'devOptions.toolPolicyDiagnostics.inventory.enabledTools': '활성화된 도구',
'devOptions.toolPolicyDiagnostics.inventory.mcpStdioTools': 'MCP stdio 도구',
'devOptions.toolPolicyDiagnostics.inventory.jsonRpcTools': 'JSON-RPC 도구',
'devOptions.toolPolicyDiagnostics.mcpAllowlists.title': 'MCP 허용 목록',
'devOptions.toolPolicyDiagnostics.mcpAllowlists.summary':
'활성화됨: {enabled} · 서버: {enabledCount}/{totalCount}',
'devOptions.toolPolicyDiagnostics.mcpAllowlists.unnamed': '<이름 없음>',
'devOptions.toolPolicyDiagnostics.mcpAllowlists.allowDeny': '허용={allowCount} 거부={denyCount}',
'devOptions.toolPolicyDiagnostics.mcpWriteAudit.title': 'MCP 쓰기 감사',
'devOptions.toolPolicyDiagnostics.mcpWriteAudit.summary':
'활성화됨: {enabled} · 최근(24시간): {recentRows}',
'devOptions.toolPolicyDiagnostics.recentBlocked.title': '최근 차단된 호출',
'devOptions.toolPolicyDiagnostics.recentBlocked.empty': '기록된 차단 호출이 없습니다.',
'devOptions.toolPolicyDiagnostics.redactedSurfaces.title': '마스킹된 표면',
'devOptions.toolPolicyDiagnostics.redactedSurfaces.summary':
'쓰기 가능: {writeCount} · 정책 표면: {policyCount}',
'devOptions.debugPanels': '디버그 패널',
'devOptions.debugPanelsDesc': '기능 플래그, 상태 검사 및 디버깅 도구',
'devOptions.webhooks': '웹훅',
'devOptions.webhooksDesc': '웹훅 통합을 구성하고 테스트합니다',
'devOptions.memoryInspection': '메모리 검사',
'devOptions.memoryInspectionDesc': '메모리 항목을 탐색, 쿼리 및 관리합니다',
'voice.pushToTalk': '눌러서 말하기',
'voice.recording': '녹음 중...',
'voice.processing': '처리 중...',
'voice.languageHint': '언어',
'misc.rehydrating': '데이터를 불러오는 중...',
'misc.checkingServices': '서비스 확인 중...',
'misc.serviceUnavailable': '서비스를 사용할 수 없음',
'misc.somethingWentWrong': '문제가 발생했습니다',
'misc.tryAgainLater': '나중에 다시 시도해 주세요.',
'misc.restartApp': '앱 다시 시작',
'misc.updateAvailable': '업데이트 사용 가능',
'misc.updateNow': '지금 업데이트',
'misc.updateLater': '나중에',
'misc.downloading': '다운로드 중...',
'misc.installing': '설치 중...',
'misc.beta':
'OpenHuman은 초기 베타 버전입니다. 피드백을 공유하거나 발견한 버그를 신고해 주세요 — 모든 신고는 더 빠른 출시를 돕습니다.',
'misc.betaFeedback': '피드백 보내기',
'mnemonic.title': '복구 문구',
'mnemonic.warning': '이 단어들을 순서대로 적어 안전한 곳에 보관하세요.',
'mnemonic.copyWarning':
'복구 문구를 절대 공유하지 마세요. 이 단어를 가진 사람은 누구나 계정에 접근할 수 있습니다.',
'mnemonic.copied': '복구 문구가 클립보드에 복사되었습니다',
'mnemonic.reveal': '문구 보기',
'mnemonic.revealPhrase': '복구 문구 표시',
'mnemonic.hidden': '복구 문구가 숨겨져 있습니다',
'privacy.title': '개인정보 및 보안',
'privacy.description': '외부 서비스로 전송되는 데이터에 대한 투명성 보고서입니다.',
'privacy.empty': '감지된 외부 데이터 전송이 없습니다.',
'privacy.whatLeavesComputer': '내 컴퓨터를 떠나는 데이터',
'privacy.loading': '개인정보 세부 정보를 불러오는 중...',
'privacy.loadError':
'실시간 개인정보 목록을 불러올 수 없습니다. 아래의 분석 제어 기능은 계속 작동합니다.',
'privacy.noCapabilities': '현재 데이터 이동을 공개하는 기능이 없습니다.',
'privacy.sentTo': '전송 대상',
'privacy.leavesDevice': '기기를 떠남',
'privacy.staysLocal': '로컬에 유지됨',
'privacy.anonymizedAnalytics': '제품 분석',
'privacy.shareAnonymizedData': '제품 분석 및 진단 공유',
'privacy.shareAnonymizedDataDesc':
'안정적인 계정 ID와 앱 버전 메타데이터를 포함한 개인정보 제한 충돌 보고서와 사용 이벤트를 공유하여 OpenHuman 개선을 도와주세요. 메시지, 지갑 키, API 키, 세션 토큰은 절대 수집되지 않습니다.',
'privacy.meetingFollowUps': '회의 후속 조치',
'privacy.autoHandoffMeet': 'Google Meet transcript를 오케스트레이터에 자동 전달',
'privacy.autoHandoffMeetDesc':
'Google Meet 통화가 끝나면 OpenHuman의 오케스트레이터가 transcript를 읽고 메시지 초안 작성, 후속 일정 예약, 연결된 Slack 워크스페이스에 요약 게시 같은 작업을 수행할 수 있습니다. 기본값은 꺼짐입니다.',
'privacy.analyticsDisclaimer':
'활성화하면 제품 분석 및 진단에 개인정보가 제한된 충돌 보고서와 사용 이벤트, 안정적인 계정 ID, 앱 버전 메타데이터가 포함될 수 있습니다. 메시지, 지갑 키, API 키, 세션 토큰은 절대 수집되지 않습니다. 이 설정은 언제든지 변경할 수 있습니다.',
'settings.about.version': '버전',
'settings.about.updateAvailable': '사용 가능',
'settings.about.softwareUpdates': '소프트웨어 업데이트',
'settings.about.lastChecked': '마지막 확인',
'settings.about.checking': '확인 중...',
'settings.about.checkForUpdates': '업데이트 확인',
'settings.about.releases': '릴리스',
'settings.about.releasesDesc': 'GitHub에서 릴리스 노트와 이전 빌드를 찾아보세요.',
'settings.about.openReleases': 'GitHub 릴리스 열기',
'settings.about.connection': '연결',
'settings.about.connectionMode': '모드',
'settings.about.connectionModeLocal': '로컬',
'settings.about.connectionModeCloud': '클라우드',
'settings.about.connectionModeUnset': '선택되지 않음',
'settings.about.serverUrl': '서버 URL',
'settings.about.serverUrlUnavailable': '사용할 수 없음',
'settings.about.connectionHelperLocal':
'앱 실행 시 Tauri 셸이 프로세스 내부에서 시작합니다. 포트는 시작할 때 선택되므로 이 URL은 실행할 때마다 달라집니다.',
'settings.about.connectionHelperCloud':
'원격 코어에 연결되었습니다. BootCheck 또는 클라우드 모드 선택기에서 변경하세요.',
'settings.heartbeat.title': '하트비트 및 루프',
'settings.usage.title': '사용량 및 한도',
'settings.usage.menuDesc': '비용, 토큰 사용량, 예산 및 백그라운드 활동',
'settings.costDashboard.title': '비용 대시보드',
'settings.costDashboard.sevenDayCost': '7일 일별 비용',
'settings.costDashboard.sevenDayTokens': '7일 토큰 사용량',
'settings.costDashboard.totalSpend': '7일 합계',
'settings.costDashboard.monthlyPace': '월간 속도',
'settings.costDashboard.budgetLimit': '예산 한도',
'settings.costDashboard.utilization': '사용률',
'settings.costDashboard.modelBreakdown': '모델별 세부 내역',
'settings.costDashboard.model': '모델',
'settings.costDashboard.provider': '제공업체',
'settings.costDashboard.cost': '비용',
'settings.costDashboard.tokens': '토큰',
'settings.costDashboard.requests': '요청',
'settings.costDashboard.percentOfTotal': '전체 대비 %',
'settings.costDashboard.inputTokens': '입력',
'settings.costDashboard.outputTokens': '출력',
'settings.costDashboard.budgetNormal': '정상 진행 중',
'settings.costDashboard.budgetWarning': '경고',
'settings.costDashboard.budgetExceeded': '예산 초과',
'settings.costDashboard.noBudget': '한도 설정 없음',
'settings.costDashboard.noData': '지난 7일 동안 기록된 비용이 없습니다.',
'settings.costDashboard.noModels': '지난 7일 동안 모델 활동이 없습니다.',
'settings.costDashboard.loading': '비용 대시보드 로드 중…',
'settings.costDashboard.disabledHint':
'비용 대시보드가 config에서 비활성화되어 있습니다. 다시 활성화하려면 config.toml에서 [cost.dashboard] enabled = true로 설정하세요.',
'settings.costDashboard.subtitle':
'전체 스웜의 실시간 지출과 토큰 사용량입니다. 막대는 몇 초마다 자동으로 새로고침되며 페이지를 다시 로드할 필요가 없습니다.',
'settings.costDashboard.summaryAriaLabel': '비용 요약 지표',
'settings.costDashboard.lastSevenDays': '지난 7일',
'settings.costDashboard.utilizationOf': '/',
'settings.costDashboard.thisMonth': '이번 달',
'settings.costDashboard.monthlyPaceHint':
'현재 일일 실행 속도(평균 × 30)를 기준으로 예상한 월간 지출입니다.',
'settings.costDashboard.budgetLimitHint':
'config.toml의 cost.monthly_limit_usd에서 읽은 월간 예산입니다.',
'settings.costDashboard.dailyTarget': '일일 목표',
'settings.costDashboard.today': '오늘',
'settings.costDashboard.todayBadge': '오늘',
'settings.costDashboard.unknownProvider': '—',
'settings.costDashboard.justNow': '방금 전',
'settings.costDashboard.secondsAgo': '{value}초 전',
'settings.costDashboard.minutesAgo': '{value}분 전',
'settings.costDashboard.hoursAgo': '{value}시간 전',
'settings.costDashboard.daysAgo': '{value}일 전',
'settings.costDashboard.updated': '업데이트됨',
'settings.costDashboard.refresh': '새로고침',
'settings.costDashboard.utcNote': '일자는 UTC 기준으로 묶입니다',
'settings.costDashboard.stackedNote': '입력 + 출력 누적',
'settings.costDashboard.modelBreakdownHint': '지난 7일 전체 집계입니다.',
'settings.costDashboard.categoryDistribution': '카테고리별 지출',
'settings.costDashboard.categoryDistributionHint':
'최근 채팅, 임베딩, 음성, 이미지, 재순위화 호출 기록에서 추정했습니다.',
'settings.costDashboard.noCategories': '아직 기록된 카테고리별 지출이 없습니다.',
'settings.costDashboard.categoryMeta': '{requests}개 요청 • {tokens}개 토큰',
'settings.costDashboard.usageLog': '사용 로그',
'settings.costDashboard.usageLogHint':
'최근 {days}일의 최신 기록이며 최대 {limit}행까지 표시합니다.',
'settings.costDashboard.logTotal': '{requests}개 요청 • {cost}',
'settings.costDashboard.noUsageLog': '이 기간의 사용 기록이 없습니다.',
'settings.costDashboard.when': '시간',
'settings.costDashboard.category': '카테고리',
'settings.costDashboard.session': '세션',
'settings.costDashboard.noDataHint':
'에이전트 메시지를 보내세요. 다음 제공업체 호출의 토큰 사용량이 약 10초 안에 차트에 표시됩니다.',
'settings.search.title': '검색 엔진',
'settings.search.menuDesc':
'OpenHuman 관리 검색을 기본값으로 사용하거나 API 키로 자체 제공업체를 연결하세요.',
'settings.search.description':
'에이전트가 사용할 검색 엔진을 선택하거나 검색 도구를 완전히 비활성화합니다. 관리형은 OpenHuman의 백엔드를 사용합니다(설정 불필요). 병렬, Brave, Querit은 API 키를 사용하여 내 컴퓨터에서 직접 실행됩니다.',
'settings.search.engineAria': '검색 엔진',
'settings.search.engineDisabledLabel': 'Disabled',
'settings.search.engineDisabledDesc':
'에이전트 컨텍스트 및 사용 가능한 도구 목록에서 검색 도구를 제거합니다.',
'settings.search.engineManagedLabel': 'OpenHuman 관리됨',
'settings.search.engineManagedDesc':
'기본값입니다. OpenHuman 백엔드를 통해 라우팅되며 API 키가 필요하지 않습니다.',
'settings.search.localManagedUnavailable':
'로컬 사용자는 OpenHuman 관리 검색을 사용할 수 없습니다. 웹 검색을 활성화하려면 자체 Parallel, Brave 또는 Querit API 키를 추가하세요.',
'settings.search.engineParallelLabel': 'Parallel',
'settings.search.engineParallelDesc':
'직접 Parallel API: 검색, 추출, 채팅, 리서치, 보강, 데이터셋 도구.',
'settings.search.engineBraveLabel': 'Brave 검색',
'settings.search.engineBraveDesc': '직접 Brave 검색 API: 웹, 뉴스, 이미지 및 비디오 도구.',
'settings.search.engineQueritLabel': 'Querit',
'settings.search.engineQueritDesc':
'직접 Querit API: 사이트, 시간 범위, 국가 및 언어 필터가 있는 웹 검색.',
'settings.search.statusConfigured': '구성됨',
'settings.search.statusNeedsKey': 'API 키 필요',
'settings.search.fallbackToManaged':
'구성된 키가 없습니다. 키가 저장될 때까지 검색은 관리형으로 대체됩니다.',
'settings.search.getApiKey': 'API 키 가져오기',
'settings.search.save': '저장',
'settings.search.clear': '지우기',
'settings.search.show': '표시',
'settings.search.hide': '숨기기',
'settings.search.statusSaving': '저장…',
'settings.search.statusSaved': '저장되었습니다.',
'settings.search.statusError': '실패',
'settings.search.parallelKeyLabel': 'Parallel API 키',
'settings.search.braveKeyLabel': 'Brave 검색 API 키',
'settings.search.queritKeyLabel': 'Querit API 키',
'settings.search.placeholderStored': '•••••••(저장됨)',
'settings.search.placeholderParallel': 'pk_...',
'settings.search.placeholderBrave': 'BSA...',
'settings.search.placeholderQuerit': 'Querit API 키',
'settings.search.allowedSitesLabel': '허용된 웹사이트',
'settings.search.allowedSitesHint':
'리서치 중 어시스턴트가 열고 읽을 수 있는 웹사이트입니다(한 줄에 호스트 하나, 예: reuters.com). 호스트에는 하위 도메인도 포함됩니다. 모든 웹 접근을 차단하려면 비워 두세요.',
'settings.search.allowedSitesAllOn':
'어시스턴트가 모든 공개 웹사이트를 열 수 있습니다. 로컬 및 비공개 주소는 계속 차단됩니다.',
'settings.search.allowedSitesPlaceholder': 'reuters.com\napnews.com\ngithub.com',
'settings.search.allowedSitesSave': '웹사이트 저장',
'settings.search.accessModeAria': '웹 접근 모드',
'settings.search.accessAllowAll': '모두 허용',
'settings.search.accessCustom': '사용자 정의',
'settings.search.accessBlockAll': '모두 차단',
'settings.search.accessBlockAllHint':
'모든 웹 접근이 차단됩니다. 어시스턴트는 어떤 웹사이트도 열거나 읽을 수 없습니다.',
// ─── Settings global search bar ────────────────────────────
'settings.settingsSearch.placeholder': '설정 검색…',
'settings.settingsSearch.ariaLabel': '설정 검색',
'settings.settingsSearch.clear': '검색 지우기',
'settings.settingsSearch.resultsLabel': '검색 결과',
'settings.settingsSearch.noResults': '“{query}”에 대한 설정을 찾을 수 없습니다',
'settings.embeddings.title': '임베딩',
'settings.embeddings.description':
'시맨틱 검색을 위해 메모리를 벡터로 변환할 임베딩 제공자를 선택하세요. 제공자, 모델 또는 차원을 변경하면 저장된 벡터가 무효화되며 전체 메모리 초기화가 필요합니다.',
'settings.embeddings.providerAria': '임베딩 제공자',
'settings.embeddings.statusConfigured': '구성됨',
'settings.embeddings.statusNeedsKey': 'API 키 필요',
'settings.embeddings.requiresSignIn': 'OpenHuman 로그인 필요',
'settings.embeddings.managedLoginRequired':
'관리형 임베딩을 사용하려면 OpenHuman 로그인이 필요합니다. OpenHuman 백엔드를 사용하려면 로그인하세요.',
'settings.embeddings.managedBannerIntro':
'관리형 임베딩은 OpenHuman 백엔드를 통해 라우팅되며 OpenHuman 계정 세션이 필요합니다.',
'settings.embeddings.managedBannerLocalSession':
'이 공급자를 사용하려면 로컬 세션을 종료하고 로그인하거나, 로컬 또는 자체 키 임베딩 공급자로 전환하세요.',
'settings.embeddings.managedBannerRemoteSession':
'OpenHuman 세션을 새로 고치려면 다시 로그인하거나, 로컬 또는 자체 키 임베딩 공급자로 전환하세요.',
'settings.embeddings.signInAgain': '다시 로그인',
'settings.embeddings.apiKeyLabel': '{provider} API 키',
'settings.embeddings.placeholderStored': '•••••••(저장됨)',
'settings.embeddings.placeholderKey': 'API 키를 붙여넣으세요…',
'settings.embeddings.keyStoredEncrypted': 'API 키는 이 기기에 암호화되어 저장됩니다.',
'settings.embeddings.show': '표시',
'settings.embeddings.hide': '숨기기',
'settings.embeddings.save': '저장',
'settings.embeddings.clear': '지우기',
'settings.embeddings.model': '모델',
'settings.embeddings.dimensions': '차원',
'settings.embeddings.customEndpoint': '사용자 정의 엔드포인트',
'settings.embeddings.customModelPlaceholder': '모델 이름',
'settings.embeddings.customDimsPlaceholder': '차원',
'settings.embeddings.applyCustom': '적용',
'settings.embeddings.testConnection': '연결 테스트',
'settings.embeddings.testing': '테스트 중…',
'settings.embeddings.testSuccess': '연결됨 — {dims} 차원',
'settings.embeddings.connectionTestFailed': '테스트 실패',
'settings.embeddings.testFailed': '실패: {error}',
'settings.embeddings.saving': '저장 중…',
'settings.embeddings.saved': '저장됨.',
'settings.embeddings.errorPrefix': '실패',
'settings.embeddings.wipeTitle': '메모리 벡터를 초기화하시겠습니까?',
'settings.embeddings.wipeBody':
'임베딩 제공자, 모델 또는 차원을 변경하면 저장된 모든 메모리 벡터가 삭제됩니다. 검색이 다시 작동하려면 메모리를 재구축해야 합니다. 이 작업은 취소할 수 없습니다.',
'settings.embeddings.cancel': '취소',
'settings.embeddings.confirmWipe': '삭제 및 적용',
'settings.embeddings.setupTitle': '{provider} 설정',
'settings.embeddings.saveAndSwitch': '저장 및 전환',
'settings.embeddings.optional': '선택사항',
'settings.embeddings.vectorSearchDisabled':
'벡터 검색이 비활성화되어 있습니다. 메모리 회상은 의미 순위 없이 키워드 매칭과 최신성만 사용합니다.',
'settings.embeddings.clearKey': 'API 키 삭제',
'pages.settings.ai.embeddings': '임베딩',
'pages.settings.ai.embeddingsDesc': '메모리 검색을 위한 벡터 인코딩 모델',
'mcp.alphaBadge': '알파',
'mcp.alphaBannerText':
'MCP 서버 지원은 초기 알파 단계입니다. 레지스트리, 설치 흐름 및 도구 연결은 릴리스 사이에 오작동하거나 형태가 바뀔 수 있습니다.',
'mcp.toolList.noTools': '사용 가능한 도구가 없습니다.',
'mcp.setup.secretDialog.title': 'MCP 설정 - 비밀번호 입력',
'mcp.setup.secretDialog.bodyPrefix': 'MCP 설정 에이전트에는 다음이 필요합니다.',
'mcp.setup.secretDialog.bodySuffix':
'. 입력한 값은 코어 프로세스로 직접 전송되며 AI 대화에는 절대 들어가지 않습니다.',
'mcp.setup.secretDialog.inputLabel': '값',
'mcp.setup.secretDialog.inputPlaceholder': '여기에 붙여넣으세요.',
'mcp.setup.secretDialog.show': '표시',
'mcp.setup.secretDialog.hide': '숨기기',
'mcp.setup.secretDialog.submit': '제출',
'mcp.setup.secretDialog.cancel': '취소',
'mcp.setup.secretDialog.submitting': '제출 중…',
'mcp.setup.secretDialog.errorPrefix': '제출 실패:',
'mcp.setup.secretDialog.privacyNote':
'로컬 MCP 비밀 테이블에 암호화되어 저장됩니다. 로그에 남기거나 모델로 전송하지 않습니다.',
'devices.betaBadge': '베타',
'devices.betaText':
'이 기능은 현재 베타 버전입니다. iOS 기기를 이 OpenHuman과 페어링하여 원격 클라이언트로 사용할 수 있습니다.',
'devices.comingSoonDescription':
'기기 페어링이 곧 제공됩니다. 이 페이지에서 iPhone을 페어링하고 연결된 기기를 관리할 수 있게 됩니다.',
'devices.title': '장치',
'devices.pairIphone': 'iPhone 페어링',
'devices.noPaired': '페어링된 장치가 없습니다.',
'devices.emptyState': 'iPhone에서 QR code을 스캔하여 이 OpenHuman 세션에 연결하세요.',
'devices.devicePairedTitle': '기기 페어링됨',
'devices.devicePairedMessage': 'iPhone이 성공적으로 연결되었습니다.',
'devices.deviceRevokedTitle': '장치가 취소되었습니다.',
'devices.deviceRevokedMessage': '{label}이(가) 제거되었습니다.',
'devices.revokeFailedTitle': '취소 실패',
'devices.online': '온라인',
'devices.offline': '오프라인',
'devices.lastSeenNever': '없음',
'devices.lastSeenNow': '방금',
'devices.lastSeenMinutes': '{count}분 전',
'devices.lastSeenHours': '{count}시간 전',
'devices.lastSeenDays': '{count}일 전',
'devices.revoke': '취소',
'devices.revokeAria': '{label} 취소',
'devices.confirmRevokeTitle': '장치를 취소하시겠습니까?',
'devices.confirmRevokeBody':
'{label}의 연결이 더 이상 허용되지 않습니다. 이 작업은 취소할 수 없습니다.',
'devices.loadFailed': '장치를 로드하지 못했습니다: {message}',
'devices.pairModal.title': 'iPhone 페어링',
'devices.pairModal.loading': '페어링 코드 생성 중…',
'devices.pairModal.instructions': 'iPhone에서 OpenHuman 앱을 열고 이 코드를 스캔하세요.',
'devices.pairModal.expiresIn': '코드는 ~{count}분 후에 만료됩니다.',
'devices.pairModal.expiresInPlural': '코드는 ~{count}분 후에 만료됩니다.',
'devices.pairModal.showDetails': '세부 정보 표시',
'devices.pairModal.hideDetails': '세부 정보 숨기기',
'devices.pairModal.channelId': '채널 ID',
'devices.pairModal.pairingUrl': '페어링 URL',
'devices.pairModal.expiredTitle': 'QR code 만료',
'devices.pairModal.expiredBody': '페어링을 계속하려면 새 코드를 생성하세요.',
'devices.pairModal.generateNewCode': '새 코드 생성',
'devices.pairModal.successTitle': 'iPhone과 페어링됨',
'devices.pairModal.autoClose': '자동으로 종료 중…',
'devices.pairModal.errorPrefix': '페어링 생성 실패: {message}',
'devices.pairModal.errorTitle': '문제가 발생했습니다.',
'devices.pairModal.copyUrl': '복사',
'mcp.catalog.searchAria': 'MCP 서버 카탈로그 검색',
'mcp.catalog.searchPlaceholder': 'MCP 서버 카탈로그 검색...',
'mcp.catalog.loadFailed': '카탈로그를 로드하지 못했습니다.',
'mcp.catalog.noResults': '서버를 찾을 수 없습니다.',
'mcp.catalog.noResultsFor': '"{query}"에 대한 서버를 찾을 수 없습니다.',
'mcp.catalog.loadMore': '추가 로드',
'mcp.configAssistant.title': '구성 도우미',
'mcp.configAssistant.empty': '구성, 필수 환경 변수 또는 설정 단계에 대해 문의하세요.',
'mcp.configAssistant.suggestedValues': '제안 값:',
'mcp.configAssistant.valueHidden': '(값 숨김)',
'mcp.configAssistant.applySuggested': '제안 값 적용',
'mcp.configAssistant.reinstallHint': '해당 값을 적용하려면 해당 값을 다시 설치하세요.',
'mcp.configAssistant.thinking': '생각 중...',
'mcp.configAssistant.inputPlaceholder': '질문하기(보내려면 Enter, 줄 바꿈하려면 Shift+Enter)',
'mcp.configAssistant.send': '보내기',
'mcp.configAssistant.failedResponse': '응답을 받지 못했습니다.',
'mcp.toolList.availableSingular': '{count} 도구 사용 가능',
'mcp.toolList.availablePlural': '{count} 도구 사용 가능',
'mcp.toolList.tryTool': '시도',
'mcp.toolList.tryToolAria': '{name} 실행 플레이그라운드 열기',
'mcp.playground.title': '{name} 실행',
'mcp.playground.close': '플레이그라운드 닫기',
'mcp.playground.inputSchema': '입력 스키마',
'mcp.playground.argsLabel': '인수(JSON)',
'mcp.playground.argsHelp': '입력 스키마와 일치하는 JSON을 입력하세요. 빈 입력은 {}로 처리됩니다.',
'mcp.playground.runShortcut': '실행하려면 ⌘/Ctrl + Enter',
'mcp.playground.format': '서식 지정',
'mcp.playground.invalidJson': '유효하지 않은 JSON',
'mcp.playground.run': '도구 실행',
'mcp.playground.running': '실행 중…',
'mcp.playground.result': '결과',
'mcp.playground.resultError': '도구가 오류를 반환했습니다.',
'mcp.playground.copyResult': '결과 복사',
'mcp.playground.copied': '복사됨',
'mcp.playground.history': '기록',
'mcp.playground.historyEmpty': '이 세션에는 아직 호출이 없습니다.',
'mcp.playground.historyLoad': '불러오기',
'mcp.playground.unexpectedError': '도구 호출 중 예기치 않은 오류가 발생했습니다.',
'mcp.catalog.deployed': '배포됨',
'mcp.catalog.installCount': '{count} 설치',
'app.update.dismissNotification': '업데이트 알림 닫기',
'bootCheck.rpcAuthSuffix': 'RPC마다.',
'app.localAiDownload.expandAria': '다운로드 진행률 확장',
'app.localAiDownload.collapseAria': '다운로드 진행률 축소',
'app.localAiDownload.dismissAria': '다운로드 알림 닫기',
'mobile.nav.ariaLabel': '모바일 탐색',
'progress.stepsAria': '진행 단계',
'progress.stepAria': '{total}의 {current} 단계',
'workspace.vaultsTitle': '지식 저장소',
'workspace.vaultsDesc': '로컬 폴더를 가리킵니다. 파일은 청크로 분할되어 메모리에 미러링됩니다.',
'calls.title': '통화',
'calls.comingSoonBody': 'AI 지원 통화가 곧 제공될 예정입니다. 계속 지켜봐 주시기 바랍니다.',
'art.rotatingTetrahedronAria': '회전하는 역사면체 우주선',
'mcp.installed.title': '설치됨',
'mcp.installed.browseCatalog': '카탈로그 찾아보기',
'mcp.installed.empty': '아직 MCP 서버가 설치되지 않았습니다.',
'mcp.installed.toolSingular': '{count} 도구',
'mcp.installed.toolPlural': '{count} 도구',
'mcp.health.title': '상태',
'mcp.health.summaryAria': 'MCP 연결 상태 요약',
'mcp.health.connectedCount': '{count}개 연결됨',
'mcp.health.connectingCount': '{count}개 연결 중',
'mcp.health.errorCount': '{count}개 오류',
'mcp.health.disconnectedCount': '{count}개 유휴',
'mcp.health.retryAll': '모두 다시 시도({count})',
'mcp.health.retryAllAria': '오류가 발생한 MCP 서버 {count}개 모두 다시 시도',
'mcp.health.disconnectAll': '모두 연결 끊기({count})',
'mcp.health.disconnectAllAria': '연결된 MCP 서버 {count}개 모두 연결 끊기',
'mcp.health.disconnectConfirm.title': '모든 MCP 서버 연결을 끊으시겠습니까?',
'mcp.health.disconnectConfirm.body':
'현재 연결된 MCP 서버 {count}개의 연결을 끊습니다. 설치된 구성과 비밀 값은 유지되며 나중에 어떤 서버든 다시 연결할 수 있습니다.',
'mcp.health.disconnectConfirm.cancel': '취소',
'mcp.health.disconnectConfirm.confirm': '모두 연결 끊기',
'mcp.health.opErrorGeneric': '일괄 작업에 실패했습니다. 로그를 확인하세요.',
'mcp.health.bulkPartialFailure':
'{total}개 서버 중 {failed}개가 실패했습니다. 로그를 확인하세요.',
'mcp.installed.search.landmarkAria': '설치된 MCP 서버 검색',
'mcp.installed.search.inputAria': '이름으로 설치된 MCP 서버 필터링',
'mcp.installed.search.placeholder': '서버 필터링…',
'mcp.installed.search.clearAria': '필터 지우기',
'mcp.installed.search.countMatches': '{total}개 중 {shown}개 서버',
'mcp.installed.search.noMatches': '"{query}"와 일치하는 서버가 없습니다.',
'mcp.inventory.openButton': '인벤토리',
'mcp.inventory.openAria': '공유 가능한 MCP 인벤토리 패널 열기',
'mcp.inventory.title': '공유 가능한 MCP 인벤토리',
'mcp.inventory.subtitle':
'설치된 MCP 서버를 비밀 값이 없는 휴대용 매니페스트로 내보내거나 팀원의 매니페스트를 가져옵니다. 비밀 env 값은 포함되거나 가져오지 않습니다.',
'mcp.inventory.close': '인벤토리 패널 닫기',
'mcp.inventory.tablistAria': '인벤토리 섹션',
'mcp.inventory.tab.export': '내보내기',
'mcp.inventory.tab.import': '가져오기',
'mcp.inventory.export.empty':
'아직 설치된 MCP 서버가 없어 내보낼 항목이 없습니다. 먼저 카탈로그에서 서버를 설치하세요.',
'mcp.inventory.export.privacyTitle': '이 매니페스트에 포함되는 내용',
'mcp.inventory.export.privacyBody':
'서버 이름, 정규 이름, env 변수 KEY NAMES 및 비밀 값이 아닌 구성만 포함됩니다. 비밀 값, 기기 식별자 및 설치별 타임스탬프는 의도적으로 제거됩니다.',
'mcp.inventory.export.serverCount': '이 매니페스트의 서버 {count}개',
'mcp.inventory.export.copy': '복사',
'mcp.inventory.export.copied': '복사됨',
'mcp.inventory.export.copyAria': '매니페스트 JSON을 클립보드에 복사',
'mcp.inventory.export.download': '다운로드',
'mcp.inventory.export.downloadAria': '매니페스트를 JSON 파일로 다운로드',
'mcp.inventory.import.trustTitle': '가져온 매니페스트를 신뢰할 수 없는 코드로 취급',
'mcp.inventory.import.trustBody':
'MCP 서버는 에이전트에 권한을 부여하는 도구입니다. 신뢰하는 출처의 매니페스트만 가져오세요. 각 설치에는 명시적인 클릭이 필요하며 자동 설치되는 항목은 없습니다.',
'mcp.inventory.import.pasteLabel': '매니페스트 JSON 붙여넣기',
'mcp.inventory.import.pastePlaceholder':
'여기에 매니페스트를 붙여넣거나 아래에서 .json 파일을 업로드하세요.',
'mcp.inventory.import.preview': '미리 보기',
'mcp.inventory.import.clear': '지우기',
'mcp.inventory.import.uploadFile': '또는 .json 파일 업로드',
'mcp.inventory.import.uploadFileAria': '매니페스트 .json 파일 업로드',
'mcp.inventory.import.fileTooLarge': '파일이 너무 큽니다(1MB 초과). 로드를 거부합니다.',
'mcp.inventory.import.fileReadFailed': '파일을 읽을 수 없습니다.',
'mcp.inventory.import.parseErrorPrefix': '매니페스트를 파싱할 수 없습니다:',
'mcp.inventory.import.previewHeading': '미리 보기',
'mcp.inventory.import.previewCounts': '서버 {total}개 - 신규 {newly}개, 이미 설치됨 {already}개',
'mcp.inventory.import.previewEmpty': '매니페스트에 서버가 없습니다.',
'mcp.inventory.import.exportedFrom': '{exporter}에서 내보냄',
'mcp.inventory.import.exportedAt': '{when}에',
'mcp.inventory.import.statusNew': '신규',
'mcp.inventory.import.statusAlreadyInstalled': '이미 설치됨',
'mcp.inventory.import.envKeysLabel': 'env 키',
'mcp.inventory.import.install': '설치',
'mcp.inventory.import.installAria': '이 매니페스트에서 {name} 설치',
'mcp.inventory.import.skipped': '건너뜀',
'mcp.inventory.parseError.empty': '매니페스트가 비어 있습니다.',
'mcp.inventory.parseError.invalidJson': '유효하지 않은 JSON입니다.',
'mcp.inventory.parseError.rootNotObject': '매니페스트 루트는 JSON 객체여야 합니다.',
'mcp.inventory.parseError.unsupportedSchema':
'지원되지 않는 매니페스트 스키마입니다. 이 파일은 호환되는 내보내기 도구에서 생성되지 않았습니다.',
'mcp.inventory.parseError.missingExportedAt': '`exported_at` 필드가 없거나 유효하지 않습니다.',
'mcp.inventory.parseError.missingExportedBy': '`exported_by` 필드가 없거나 유효하지 않습니다.',
'mcp.inventory.parseError.invalidServers': '`servers` 배열이 없거나 유효하지 않습니다.',
'mcp.inventory.parseError.serverNotObject': '서버 항목이 객체가 아닙니다.',
'mcp.inventory.parseError.serverMissingQualifiedName': '서버 항목에 qualified_name이 없습니다.',
'mcp.inventory.parseError.serverMissingDisplayName': '서버 항목에 display_name이 없습니다.',
'mcp.inventory.parseError.serverEnvKeysNotArray':
'서버 항목의 env_keys 필드가 문자열 배열이 아닙니다.',
'mcp.inventory.parseError.serverContainsEnv':
'서버 항목에 `env` 값 맵이 포함되어 있습니다. 가져오기를 거부합니다. 매니페스트에는 env_keys(이름)만 포함되어야 하며 비밀 값은 포함할 수 없습니다.',
'mcp.inventory.parseError.duplicateQualifiedName':
'매니페스트에서 중복된 qualified_name을 찾았습니다. 각 서버는 최대 한 번만 나타나야 합니다.',
'mcp.tab.loading': 'MCP 서버 로드 중...',
'mcp.tab.emptyDetail': '서버를 선택하거나 카탈로그를 찾아보세요.',
'mcp.tab.filter.all': '전체',
'mcp.tab.filter.installed': '설치됨 ({count})',
'mcp.tab.filter.registry': '레지스트리',
'mcp.tab.column.name': '이름',
'mcp.tab.column.description': '설명',
'mcp.tab.column.source': '출처',
'mcp.tab.column.author': '작성자',
'mcp.tab.column.action': '작업',
'mcp.tab.badge.installed': '설치됨',
'mcp.tab.badge.registry': '레지스트리',
'mcp.tab.action.manage': '관리',
'mcp.tab.aria.viewDetails': '{name} 세부정보 보기',
'mcp.tab.aria.installServer': '{name} 설치',
'mcp.install.loadingDetail': '서버 세부정보 로드 중...',
'mcp.install.back': '뒤로 가기',
'mcp.install.title': '{name} 설치',
'mcp.install.requiredEnv': '필수 환경 변수',
'mcp.install.enterValue': '{key} 입력',
'mcp.install.show': '표시',
'mcp.install.hide': '숨기기',
'mcp.install.configLabel': '구성(선택적 JSON)',
'mcp.install.configPlaceholder': '{"key": "value"}',
'mcp.install.missingRequired': '"{key}"이 필요합니다.',
'mcp.install.invalidJson': '구성 JSON이 유효한 JSON이 아닙니다.',
'mcp.install.failedDetail': '서버 세부 정보를 로드하지 못했습니다.',
'mcp.install.failedInstall': '설치에 실패했습니다.',
'mcp.install.button': '설치',
'mcp.install.installing': '설치 중...',
'mcp.install.by': '제작',
'mcp.install.transportLocal': '로컬 실행',
'mcp.install.transportRemote': '클라우드 호스팅',
'mcp.install.useCount': '{count}회 설치',
'mcp.install.deployed': '배포됨',
'mcp.install.requiresConfig': '구성 필요',
'mcp.install.connections': '사용 가능한 연결',
'mcp.install.published': '게시됨',
'mcp.install.configureAndInstall': '구성 및 설치',
'mcp.install.configureTitle': '{name} 구성',
'mcp.install.advancedConfig': '고급 구성',
'mcp.detail.suggestedEnvReady': '제안된 환경 값이 준비되었습니다.',
'mcp.detail.suggestedEnvBody':
'제안 값을 적용하려면 이 서버를 해당 값으로 다시 설치하세요: {keys}',
'mcp.detail.connect': '연결',
'mcp.detail.connecting': '연결 중...',
'mcp.detail.authenticate': '로그인',
'mcp.detail.authRequired':
'이 서버에 연결하려면 먼저 로그인하거나 액세스 토큰을 추가해야 합니다. 인증하려면 “로그인”을 클릭하세요.',
'mcp.detail.disconnect': '연결 끊기',
'mcp.detail.hideAssistant': '보조 숨기기',
'mcp.detail.helpConfigure': '구성 도와주세요',
'mcp.detail.confirmUninstall': '제거를 확인하시겠습니까?',
'mcp.detail.confirmUninstallAction': '예, 제거합니다.',
'mcp.detail.uninstall': '제거',
'mcp.detail.envVars': '환경 변수',
'mcp.detail.reconfigure': '재구성',
'mcp.detail.reconfigureHint':
'모든 변수에 새 값을 입력한 다음 다시 연결하세요. 저장된 값이 대체됩니다.',
'mcp.detail.saveReconnect': '저장 후 다시 연결',
'mcp.detail.reconfigureSaving': '저장 중…',
'mcp.detail.reconfigureSuccess': '환경이 업데이트되고 다시 연결되었습니다.',
'mcp.detail.reconfigureReconnectFailed': '저장했지만 새 값으로 다시 연결하지 못했습니다.',
'mcp.detail.enable': '활성화',
'mcp.detail.disable': '비활성화',
'mcp.status.disabled': '비활성화됨',
'mcp.status.unauthorized': '로그인 필요',
'mcp.detail.tools': '도구',
'mcp.connectAuth.title': '{name} 연결',
'mcp.connectAuth.hint':
'이 서버에 필요한 인증을 추가한 다음 연결하세요. 토큰은 암호화되어 저장됩니다. 인증이 필요 없는 서버는 비워 두세요.',
'mcp.connectAuth.requiredLabel': '필수',
'mcp.connectAuth.customHeadersLabel': '사용자 지정 헤더',
'mcp.connectAuth.customHeadersEmpty':
'사용자 지정 헤더가 없습니다. 레지스트리에 선언되지 않은 인증 헤더가 이 서버에 필요하면 하나 추가하세요.',
'mcp.connectAuth.addHeader': '+ 헤더 추가',
'mcp.connectAuth.headerName': '헤더 이름',
'mcp.connectAuth.headerValue': '값',
'mcp.connectAuth.removeHeader': '헤더 제거',
'mcp.connectAuth.howToGetToken': '도움말 및 구성',
'mcp.connectAuth.hideHelp': '도움말 숨기기',
'mcp.connectAuth.schemeLabel': '값을 보내는 방법',
'mcp.connectAuth.schemeBearer': 'Bearer',
'mcp.connectAuth.schemeRaw': '없음',
'mcp.connectAuth.reconnectFailed': '자격 증명은 저장했지만 연결에 실패했습니다.',
'mcp.connectAuth.oauthHint':
'이 서버는 OAuth를 사용합니다. OpenHuman을 인증하려면 브라우저로 로그인하세요.',
'mcp.connectAuth.signIn': '브라우저로 로그인',
'mcp.connectAuth.oauthWaiting': '로그인 대기 중…',
'mcp.connectAuth.oauthOrToken':
'이미 액세스 토큰이 있나요? 대신 아래에 Authorization 헤더로 붙여넣으세요.',
'mcp.connectAuth.oauthTimeout': '브라우저 로그인 대기 시간이 초과되었습니다. 다시 시도하세요.',
'onboarding.skipForNow': '지금 건너뛰기',
'onboarding.localAI.continueWithCloud': '클라우드 계속하기',
'onboarding.localAI.useLocalAnyway': '어쨌든 로컬 AI 사용(기기에 권장되지 않음)',
'onboarding.localAI.useLocalInstead': '대신 로컬 AI 사용(지금 Ollama 연결)',
'onboarding.localAI.setupIssue': '로컬 AI 설정에 문제가 발생했습니다.',
'autonomy.title': '에이전트 자율성',
'autonomy.maxActionsLabel': '시간당 최대 작업',
'autonomy.maxActionsHelp':
'에이전트가 롤링 1시간 동안 실행할 수 있는 최대 도구 작업 수입니다. 새 값은 다음 채팅부터 적용됩니다. 크론 작업 및 채널 리스너는 OpenHuman을 재시작할 때까지 현재 제한을 유지합니다.',
'autonomy.statusSaving': '저장 중…',
'autonomy.statusSaved': '저장되었습니다.',
'autonomy.statusFailed': '실패',
'autonomy.unlimitedNote': '무제한 — 속도 제한이 비활성화되었습니다.',
'autonomy.invalidIntegerMsg': "양의 정수여야 합니다 (제한 없음은 '무제한' 프리셋을 사용하세요).",
'autonomy.presetUnlimited': '무제한(기본값)',
'triggers.toggleFailed': '{trigger}에 대해 {action} 실패: {message}',
'settings.ai.overview': 'AI 시스템 개요',
'settings.ai.configStatus': '구성 상태',
'settings.ai.fallbackMode': '대체 모드',
'settings.ai.loadedFromRuntime': '런타임에서 로드됨',
'settings.ai.loadingDuration': '로드 시간',
'settings.ai.localRuntime': '로컬 모델 런타임',
'settings.ai.openManager': '관리자 열기',
'settings.ai.retryDownload': '다운로드 다시 시도',
'settings.ai.state': '상태',
'settings.ai.targetModel': '대상 모델',
'settings.ai.download': '다운로드',
'settings.ai.localModelUnavailable': '로컬 모델 상태를 사용할 수 없습니다.',
'settings.ai.soulConfig': 'SOUL 페르소나 구성',
'settings.ai.refreshing': '새로고침 중...',
'settings.ai.refreshSoul': 'SOUL 새로고침',
'settings.ai.loadingSoul': 'SOUL 구성을 불러오는 중...',
'settings.ai.identity': '정체성',
'settings.ai.personality': '성격',
'settings.ai.safetyRules': '안전 규칙',
'settings.ai.source': '출처',
'settings.ai.loaded': '로드됨',
'settings.ai.toolsConfig': 'TOOLS 구성',
'settings.ai.refreshTools': 'TOOLS 새로고침',
'settings.ai.toolsAvailable': '사용 가능한 도구',
'settings.ai.tools': '도구',
'settings.ai.activeSkills': '활성 스킬',
'settings.ai.skills': '스킬',
'settings.ai.skillsOverview': '스킬 개요',
'settings.ai.refreshingAll': '모두 새로고침 중...',
'settings.ai.refreshAll': '모든 AI 구성 새로고침',
'settings.notifications.suppressAll': '모든 알림 억제',
'settings.notifications.suppressAllDesc':
'포커스 상태와 관계없이 내장 앱의 모든 OS 알림 토스트를 차단합니다.',
'settings.notifications.toggleDnd': '방해 금지 전환',
'settings.notifications.categories': '카테고리',
'settings.notifications.categoryFooter':
'카테고리를 비활성화하면 해당 유형의 새 알림이 알림 센터에 표시되지 않습니다. 기존 알림은 삭제될 때까지 남아 있습니다.',
'settings.billing.movedToWeb': '결제가 웹으로 이동됨',
'settings.billing.openDashboard': '결제 대시보드 열기',
'settings.billing.movedToWebDesc':
'구독 변경, 결제 수단, 크레딧 및 인보이스는 이제 웹의 TinyHumans에서 관리됩니다.',
'settings.billing.backToSettings': '설정으로 돌아가기',
'settings.billing.openingBrowser': '브라우저를 여는 중...',
'settings.billing.browserNotOpen': '브라우저가 열리지 않았다면 위 버튼을 사용하세요.',
'settings.billing.browserOpenFailed': '브라우저를 자동으로 열 수 없습니다. 위 버튼을 사용하세요.',
'settings.tools.chooseCapabilities':
'OpenHuman이 사용자를 대신해 사용할 수 있는 기능을 선택하세요.',
'settings.tools.saveChanges': '변경 사항 저장',
'settings.tools.preferencesSaved': '기본 설정이 저장되었습니다',
'settings.tools.saveFailed': '기본 설정 저장에 실패했습니다. 다시 시도하세요.',
'settings.screenAwareness.mode': '모드',
'settings.screenAwareness.allExceptBlacklist': '블랙리스트 제외 모두',
'settings.screenAwareness.whitelistOnly': '화이트리스트만',
'settings.screenAwareness.screenMonitoring': '화면 모니터링',
'settings.screenAwareness.saveSettings': '설정 저장',
'settings.screenAwareness.session': '세션',
'settings.screenAwareness.status': '상태',
'settings.screenAwareness.active': '활성',
'settings.screenAwareness.stopped': '중지됨',
'settings.screenAwareness.remaining': '남은 시간',
'settings.screenAwareness.startSession': '세션 시작',
'settings.screenAwareness.stopSession': '세션 중지',
'settings.screenAwareness.analyzeNow': '지금 분석',
'settings.screenAwareness.macosOnly':
'화면 인식 데스크톱 캡처 및 권한 제어는 현재 macOS에서만 지원됩니다.',
'connections.comingSoon': '곧 제공 예정',
'connections.setUp': '설정',
'connections.configured': '구성됨',
'connections.unavailable': '사용할 수 없음',
'connections.checking': '확인 중…',
'connections.walletConfigured':
'로컬 EVM, BTC, Solana 및 Tron ID가 복구 문구에서 구성되었습니다.',
'connections.walletReady': '하나의 복구 문구에서 로컬 EVM, BTC, Solana 및 Tron ID를 설정합니다.',
'connections.walletError': '지갑 상태를 확인할 수 없습니다. 복구 문구 패널에서 다시 시도하세요.',
'connections.walletChecking': '지갑 상태 확인 중...',
'connections.walletIdentities': '지갑 ID',
'connections.walletDerived': '복구 문구에서 로컬로 파생되며 안전한 메타데이터로만 저장됩니다.',
'connections.privacySecurity': '개인정보 및 보안',
'connections.privacySecurityDesc':
'모든 데이터와 자격 증명은 무데이터 보존 정책으로 로컬에 저장됩니다. 사용자의 정보는 암호화되며 제3자와 절대 공유되지 않습니다.',
'channels.status.connecting': '연결 중',
'channels.status.notConfigured': '구성되지 않음',
'channels.noActiveRoute': '활성 경로 없음',
'channels.activeRoute': '활성 경로',
'channels.loadingDefinitions': '채널 정의를 불러오는 중...',
'channels.channelConnections': '채널 연결',
'channels.configureAuthModes': '각 메시징 채널의 인증 모드를 구성합니다.',
'channels.configNotAvailable': '구성을 사용할 수 없음:',
'channels.channel': '채널',
'devOptions.coreModeNotSet': '코어 모드: 설정되지 않음',
'devOptions.coreModeNotSetDesc':
'부트 체크 선택기가 아직 확인되지 않았습니다. 선택기에서 모드 전환을 사용하여 로컬 또는 클라우드를 선택하세요.',
'devOptions.local': '로컬',
'devOptions.embeddedCoreSidecar': '내장 코어 사이드카',
'devOptions.sidecarSpawned': '앱 실행 시 Tauri 셸에 의해 프로세스 내부에서 생성됩니다.',
'devOptions.cloud': '클라우드',
'devOptions.remoteCoreRpc': '원격 코어 RPC',
'devOptions.token': '토큰',
'devOptions.tokenNotSet': '설정되지 않음 — RPC가 401을 반환합니다',
'devOptions.triggerSentryTest': 'Sentry 테스트 트리거(스테이징)',
'devOptions.triggerSentryTestDesc':
'Sentry 파이프라인을 확인하기 위해 태그가 지정된 오류를 발생시킵니다. 이슈 #1072 — 확인 후 제거.',
'devOptions.sendTestEvent': '테스트 이벤트 보내기',
'devOptions.sending': '보내는 중…',
'devOptions.eventSent': '이벤트 전송됨',
'devOptions.sentryDisabled': '(id 없음 — 이 빌드에서 센트리가 비활성화되었습니다.)',
'devOptions.failed': '실패',
'devOptions.appLogs': '앱 로그',
'devOptions.appLogsDesc':
'일별 롤링 로그 파일이 들어 있는 폴더를 엽니다. 문제를 보고할 때 가장 최근 파일을 첨부하세요.',
'devOptions.openLogsFolder': '로그 폴더 열기',
'mnemonic.phraseSaved': '복구 문구 저장됨',
'mnemonic.walletReady': '멀티체인 지갑 ID가 준비되었습니다. 설정으로 돌아가는 중...',
'mnemonic.writeDownWords': '다음 단어들을 적어 두세요',
'mnemonic.wordsInOrder':
'단어를 순서대로 적어 안전한 곳에 보관하세요. 이 문구는 로컬 암호화 키와 EVM, BTC, Solana 및 Tron 지갑 ID를 보호합니다.',
'mnemonic.cannotRecover':
'이 문구는 분실하면 복구할 수 없으며 기기에서만 완전히 로컬로 유지되어야 합니다.',
'mnemonic.copyToClipboard': '클립보드에 복사',
'mnemonic.alreadyHavePhrase': '이미 복구 문구가 있습니다',
'mnemonic.consentSaved': '이 문구를 저장했으며 로컬 지갑 설정에 사용하는 데 동의합니다',
'mnemonic.enterPhraseToRestore':
'로컬 지갑 ID를 복원하려면 아래에 복구 문구를 입력하거나 전체 문구를 아무 입력란에 붙여넣으세요(새 백업은 12단어, 이전 버전의 24단어 문구도 작동합니다).',
'mnemonic.words': '단어',
'mnemonic.validPhrase': '유효한 복구 문구',
'mnemonic.generateNewPhrase': '대신 새 복구 문구 생성',
'mnemonic.securingData': '데이터 보호 중...',
'mnemonic.saveRecoveryPhrase': '복구 문구 저장',
'mnemonic.userNotLoaded':
'사용자가 로드되지 않았습니다. 다시 로그인하거나 페이지를 새로고침하세요.',
'mnemonic.invalidPhrase': '유효하지 않은 복구 문구입니다. 단어를 확인하고 다시 시도하세요.',
'mnemonic.somethingWentWrong': '문제가 발생했습니다. 다시 시도해 주세요.',
'mnemonic.walletAlreadyConfigured': '지갑이 이미 설정되어 있습니다.',
'mnemonic.walletSource': '출처',
'mnemonic.walletWordCount': '복구 구문 길이',
'mnemonic.walletLastUpdated': '마지막 업데이트',
'mnemonic.replaceWallet': '지갑 교체',
'mnemonic.replaceWalletWarning':
'현재 지갑이 영구적으로 교체됩니다. 진행하기 전에 복구 구문을 백업했는지 확인하세요.',
'mnemonic.replaceWalletConfirm': '이해합니다. 지갑을 교체합니다',
'mnemonic.loadingWalletStatus': '지갑 상태 확인 중...',
'mnemonic.viewAccounts': '지갑 계정',
'mnemonic.revealRecoveryPhrase': '복구 구문 표시',
'mnemonic.hidePhrase': '구문 숨기기',
'team.failedToCreate': '팀 생성에 실패했습니다',
'team.invalidInviteCode': '유효하지 않거나 만료된 초대 코드입니다',
'team.failedToSwitch': '팀 전환에 실패했습니다',
'team.failedToLeave': '팀 나가기에 실패했습니다',
'team.role.owner': '소유자',
'team.role.admin': '관리자',
'team.role.billingManager': '결제 관리자',
'team.role.member': '멤버',
'team.active': '활성',
'team.personalTeam': '개인 팀',
'team.manageTeam': '팀 관리',
'team.switching': '전환 중...',
'team.switch': '전환',
'team.leaving': '나가는 중...',
'team.leave': '나가기',
'team.yourTeams': '내 팀',
'team.createNewTeam': '새 팀 생성',
'team.teamName': '팀 이름',
'team.creating': '생성 중...',
'team.joinExistingTeam': '기존 팀 참가',
'team.inviteCode': '초대 코드',
'team.joining': '참가 중...',
'team.join': '참가',
'team.leaveTeam': '팀 나가기',
'team.confirmLeave': '정말로 나가시겠습니까',
'team.leaveWarning':
'팀과 모든 팀 리소스에 대한 접근 권한을 잃게 됩니다. 다시 참가하려면 새 초대가 필요합니다.',
'team.management': '팀 관리',
'team.notFound': '팀을 찾을 수 없습니다',
'team.accessDenied': '접근이 거부되었습니다',
'team.members': '멤버',
'team.membersDesc': '팀 구성원 및 역할 관리',
'team.invites': '초대',
'team.invitesDesc': '초대 코드 생성 및 관리',
'team.settings': '팀 설정',
'team.settingsDesc': '팀 이름 및 설정 편집',
'team.editSettings': '팀 설정 편집',
'team.enterName': '팀 이름 입력',
'team.saving': '저장 중...',
'team.saveChanges': '저장 변경 사항',
'team.delete': '팀 삭제',
'team.deleteDesc': '이 팀을 영구적으로 삭제합니다.',
'team.deleting': '삭제 중...',
'team.failedToUpdate': '팀 업데이트 실패',
'team.failedToDelete': '팀 삭제 실패',
'team.manageTitle': '{name} 관리',
'team.planCreated': '{plan} 계획 • {date} 생성됨',
'team.confirmDelete': '{name}을(를) 삭제하시겠습니까?',
'team.deleteWarning': '이 작업은 취소할 수 없습니다. 모든 팀 데이터가 영구적으로 제거됩니다.',
'voice.title': '음성 받아쓰기',
'voice.settings': '음성 설정',
'voice.settingsDesc': '핫키를 길게 눌러 받아쓰기하고 활성 입력란에 텍스트를 삽입합니다.',
'voice.hotkey': '핫키',
'voice.activationMode': '활성화 모드',
'voice.tapToToggle': '탭하여 전환',
'voice.writingStyle': '작성 스타일',
'voice.verbatimTranscription': '그대로 전사',
'voice.naturalCleanup': '자연스럽게 정리',
'voice.autoStart': '코어와 함께 음성 서버 자동 시작',
'voice.customDictionary': '사용자 지정 사전',
'voice.customDictionaryDesc': '이름, 기술 용어, 도메인 단어를 추가하여 인식 정확도를 향상합니다.',
'voice.addWord': '단어 추가...',
'voice.sttDisabled': '로컬 STT 모델이 다운로드되고 준비될 때까지 음성 받아쓰기가 비활성화됩니다.',
'voice.openLocalAiModel': '로컬 AI 모델 열기',
'voice.serverRestarted': '새 설정으로 음성 서버가 다시 시작되었습니다.',
'voice.settingsSaved': '음성 설정이 저장되었습니다.',
'voice.serverStarted': '음성 서버가 시작되었습니다.',
'voice.serverStopped': '음성 서버가 중지되었습니다.',
'voice.saveVoiceSettings': '음성 설정 저장',
'voice.startVoiceServer': '음성 서버 시작',
'voice.stopVoiceServer': '음성 서버 중지',
'voice.debugTitle': '음성 디버그',
'voice.failedToLoadSettings': '음성 설정 로드 실패',
'voice.failedToSaveSettings': '음성 설정 저장 실패',
'voice.failedToStartServer': '음성 서버 시작 실패',
'voice.failedToStopServer': '음성 서버를 중지하지 못했습니다.',
'voice.sttDisabledPrefix':
'로컬 STT 모델이 다운로드될 때까지 음성 받아쓰기를 사용할 수 없습니다. 다음을 사용하세요:',
'voice.sttDisabledSuffix': '섹션을 사용하세요.',
'voice.debug.failedToLoadVoiceDebugData': '음성 디버그 데이터를 로드하지 못했습니다.',
'voice.debug.settingsSaved': '디버그 설정이 저장되었습니다.',
'voice.debug.failedToSaveSettings': '음성 설정을 저장하지 못했습니다.',
'voice.debug.runtimeStatus': '런타임 상태',
'voice.debug.runtimeStatusDesc': '음성 서버 및 음성-텍스트 변환 엔진의 실시간 진단입니다.',
'voice.debug.server': '서버',
'voice.debug.unavailable': '사용할 수 없음',
'voice.debug.ready': '준비됨',
'voice.debug.notReady': '준비되지 않음',
'voice.debug.hotkey': '단축키',
'voice.debug.notAvailable': '해당 없음',
'voice.debug.mode': '모드',
'voice.debug.transcriptions': '기록',
'voice.debug.serverError': '서버 오류',
'voice.debug.advancedSettings': '고급 설정',
'voice.debug.advancedSettingsDesc': '녹음 및 무음 감지를 위한 저수준 조정 매개변수입니다.',
'voice.debug.minimumRecordingSeconds': '최소 녹음 시간(초)',
'voice.debug.silenceThreshold': '무음 임계값(RMS)',
'voice.debug.silenceThresholdDesc':
'이 값보다 에너지가 낮은 녹음은 무음으로 처리되어 건너뜁니다. 낮을수록 더 민감합니다.',
'voice.debug.alwaysOn': '상시 청취',
'voice.debug.alwaysOnDesc':
'단축키 없이 마이크를 계속 열어 두고 말한 내용을 자동으로 에이전트에 보냅니다. 화면이 잠기면 일시 중지됩니다.',
'voice.providers.saved': '음성 제공업체가 저장되었습니다.',
'voice.providers.failedToSave': '음성 제공자를 저장하지 못했습니다.',
'voice.providers.ellipsis': '…',
'voice.providers.installing': '설치 중',
'voice.providers.installingBusy': '설치 중...',
'voice.providers.reinstallLocally': '로컬로 다시 설치',
'voice.providers.repair': '복구',
'voice.providers.retryLocally': '로컬로 다시 시도',
'voice.providers.installLocally': '로컬로 설치',
'voice.providers.whisperReady': '속삭임이 준비되었습니다.',
'voice.providers.whisperInstallStarted': 'Whisper 설치가 시작되었습니다.',
'voice.providers.queued': '대기 중입니다.',
'voice.providers.failedToInstallWhisper': 'Whisper를 설치하지 못했습니다.',
'voice.providers.piperReady': 'Piper가 준비되었습니다.',
'voice.providers.piperInstallStarted': 'Piper 설치가 시작되었습니다.',
'voice.providers.failedToInstallPiper': 'Piper를 설치하지 못했습니다.',
'voice.providers.title': '음성 공급자',
'voice.providers.desc':
'전사 및 합성이 실행되는 위치를 선택하세요. 로컬 설치 버튼을 사용하여 바이너리 및 모델을 워크스페이스에 다운로드하세요. 로컬 공급자는 설치 완료 전에도 저장할 수 있으며 WHISPER_BIN 또는 PIPER_BIN 수동 설정이 필요 없습니다.',
'voice.providers.sttProvider': '음성-텍스트 공급자',
'voice.providers.sttProviderAria': 'STT 공급자',
'voice.providers.cloudWhisperProxy': '클라우드(속삭임 프록시)',
'voice.providers.localWhisper': '로컬 속삭임',
'voice.providers.installRequired': '(설치 필요)',
'voice.providers.whisperInstalledTitle': '위스퍼가 설치되었습니다. 다시 설치하려면 클릭하세요.',
'voice.providers.whisperDownloadTitle':
'whisper.cpp와 GGML 모델을 워크스페이스에 다운로드합니다.',
'voice.providers.installed': '설치됨',
'voice.providers.installFailed': '설치 실패',
'voice.providers.notInstalled': '설치되지 않음',
'voice.providers.whisperModel': '귓속말 모델',
'voice.providers.whisperModelAria': '귓속말 모델',
'voice.providers.whisperModelTiny': '소형(39MB, 가장 빠름)',
'voice.providers.whisperModelBase': '기본(74MB)',
'voice.providers.whisperModelSmall': '소형(244MB)',
'voice.providers.whisperModelMedium': '중형(769MB, 권장)',
'voice.providers.whisperModelLargeTurbo': '대형 v3 터보(1.5GB, 최고 정확도)',
'voice.providers.ttsProvider': '텍스트 음성 변환 제공자',
'voice.providers.ttsProviderAria': 'TTS 제공자',
'voice.providers.cloudElevenLabsProxy': '클라우드(ElevenLabs 프록시)',
'voice.providers.localPiper': '로컬 Piper',
'voice.providers.piperInstalledTitle': 'Piper가 설치되었습니다. 다시 설치하려면 클릭하세요.',
'voice.providers.piperDownloadTitle':
'Piper와 번들된 en_US-lessac-medium 음성을 워크스페이스에 다운로드합니다.',
'voice.providers.piperVoice': '파이퍼 목소리',
'voice.providers.piperVoiceAria': '파이퍼 목소리',
'voice.providers.customVoiceOption': '기타(아래 입력)…',
'voice.providers.customVoiceAria': '파이퍼 음성 ID(사용자 정의)',
'voice.providers.customVoicePlaceholder': 'en_US-lessac-medium',
'voice.providers.piperVoicesDesc':
'음성은 huggingface.co/rhasspy/piper-voices에서 제공됩니다. 음성을 변경하려면 새 .onnx를 다운로드하기 위해 설치/재설치를 클릭해야 할 수 있습니다.',
'voice.providers.mascotVoice': '마스코트 음성',
'voice.providers.mascotVoiceDescPrefix':
'마스코트가 음성 답변에 사용하는 ElevenLabs 음성은 다음에서 구성됩니다',
'voice.providers.mascotSettings': '마스코트 설정',
'voice.providers.mascotVoiceDescSuffix': '.',
'voice.providers.hotkeyPlaceholder': 'Fn',
'voice.providers.piperPreset.lessacMedium': 'US · Lessac (중립, 권장)',
'voice.providers.piperPreset.lessacHigh': 'US · Lessac (고품질, 대형)',
'voice.providers.piperPreset.ryanMedium': 'US · Ryan (남성)',
'voice.providers.piperPreset.amyMedium': 'US · Amy (여)',
'voice.providers.piperPreset.librittsHigh': 'US · LibriTTS (멀티 스피커)',
'voice.providers.piperPreset.alanMedium': 'GB · Alan (남)',
'voice.providers.piperPreset.jennyDiocoMedium': 'GB · Jenny Dioco (여)',
'voice.providers.piperPreset.northernEnglishMaleMedium': 'GB · 북부 영어(남성)',
'voice.providers.chip.cloud': 'OpenHuman (관리형)',
'voice.providers.chip.cloudAria': 'OpenHuman 관리형 공급자는 항상 활성화되어 있습니다',
'voice.providers.chip.whisper': 'Whisper (로컬)',
'voice.providers.chip.enableWhisper': '로컬 Whisper STT 활성화',
'voice.providers.chip.disableWhisper': '로컬 Whisper STT 비활성화',
'voice.providers.chip.piper': 'Piper (로컬)',
'voice.providers.chip.enablePiper': '로컬 Piper TTS 활성화',
'voice.providers.chip.disablePiper': '로컬 Piper TTS 비활성화',
'voice.providers.chip.enableProvider': 'Enable',
'voice.providers.chip.disableProvider': 'Disable',
'voice.providers.chip.apiKeyLabel': 'API 키',
'voice.providers.chip.apiKeyPlaceholder': 'sk-…',
'voice.providers.chip.comingSoon': '출시 예정',
'voice.modal.title': 'Configure',
'voice.modal.desc':
'이 공급자를 활성화하려면 API 키를 입력하세요. 저장하기 전에 연결을 테스트할 수 있습니다.',
'voice.modal.testKey': '키 테스트',
'voice.modal.testing': '테스트 중…',
'voice.modal.saveAndEnable': '저장 및 활성화',
'voice.modal.enable': 'Enable',
'voice.modal.whisperDesc':
'모델 크기를 선택하고 Whisper 바이너리 및 GGML 모델을 워크스페이스에 설치하세요. 더 큰 모델은 더 정확하지만 느립니다.',
'voice.modal.piperDesc':
'음성을 선택하고 Piper 바이너리 및 ONNX 모델을 워크스페이스에 설치하세요. Piper는 낮은 지연 시간으로 완전히 오프라인에서 실행됩니다.',
'voice.routing.title': '음성 라우팅',
'voice.routing.desc':
'음성-텍스트 변환과 텍스트-음성 변환을 처리할 활성화된 공급자를 선택하세요.',
'voice.routing.save': 'Save',
'voice.routing.testStt': 'STT 테스트',
'voice.routing.testTts': 'TTS 테스트',
'voice.routing.elevenlabsVoice': 'ElevenLabs 음성',
'voice.routing.elevenlabsVoiceAria': 'ElevenLabs 음성 선택',
'voice.routing.elevenlabsVoiceIdAria': 'ElevenLabs 음성 ID (커스텀)',
'voice.routing.elevenlabsVoiceDesc':
'선별된 음성을 선택하거나 ElevenLabs 대시보드에서 커스텀 음성 ID를 붙여넣으세요.',
'voice.externalProviders.title': '외부 음성 공급자',
'voice.externalProviders.desc':
'Deepgram, ElevenLabs 또는 OpenAI 같은 서드파티 STT/TTS API를 직접 연결하세요.',
'voice.externalProviders.keySet': '키 설정됨',
'voice.externalProviders.noKey': 'API 키 없음',
'voice.externalProviders.test': 'Test',
'voice.externalProviders.testing': '테스트 중…',
'voice.externalProviders.remove': 'Remove',
'voice.externalProviders.provider': 'Provider',
'voice.externalProviders.selectProvider': '공급자 선택…',
'voice.externalProviders.apiKey': 'API 키',
'voice.externalProviders.apiKeyPlaceholder': 'sk-…',
'voice.externalProviders.add': 'Add',
'pttSettings.title': '눌러서 말하기',
'pttSettings.description':
"다른 앱을 사용하는 중에도 키를 누르고 있으면 OpenHuman과 대화할 수 있습니다. 키를 놓으면 녹음이 전송되고, '답변 읽어주기'가 켜져 있으면 OpenHuman이 답변을 음성으로 들려줍니다.",
'pttSettings.shortcutLabel': '단축키',
'pttSettings.shortcutPlaceholder': '키를 누르세요 (예: F13)',
'pttSettings.shortcutUnsetHint':
'눌러서 말하기가 꺼져 있습니다 — 활성화하려면 단축키를 선택하세요.',
'pttSettings.speakRepliesLabel': '에이전트 답변 음성으로 읽어주기',
'pttSettings.showOverlayLabel': '누르고 있는 동안 오버레이 표시',
'pttSettings.errorConflictsWithDictation':
'이 단축키는 받아쓰기에 이미 사용 중입니다. 다른 키를 선택하세요.',
'pttSettings.errorModifierOnly':
'일반 키를 선택하세요(예: F13) — 보조 키로만 구성된 단축키는 눌러서 말하기에서 동작하지 않습니다.',
'pttSettings.errorEmpty': '바인딩할 키를 선택하세요.',
'pttSettings.errorAccessibility':
'이 단축키에는 macOS의 손쉬운 사용 권한이 필요합니다. 시스템 설정 → 개인정보 보호 및 보안 → 손쉬운 사용을 열고 OpenHuman을 활성화하세요.',
'pttSettings.errorShortcutInUse':
'다른 앱이 이미 이 단축키를 사용 중입니다. 다른 단축키를 선택하세요.',
'pttSettings.errorUnsupportedWayland':
'Wayland 세션은 OpenHuman의 전역 단축키를 아직 지원하지 않습니다 — X11 세션으로 전환하거나 앱 내 받아쓰기 토글을 사용하세요.',
'pttSettings.exclusiveFullscreenHint':
'전용 전체 화면 게임에서는 오버레이가 표시되지 않습니다 — 알림음만 들립니다. 오버레이를 보려면 테두리 없는 전체 화면으로 전환하세요.',
'pttOverlay.listening': '듣는 중…',
'pttOverlay.idle': '대기 중',
'autocomplete.title': '자동 완성',
'autocomplete.settings': '설정',
'autocomplete.acceptWithTab': 'Tab으로 수락',
'autocomplete.stylePreset': '스타일 프리셋',
'autocomplete.style.balanced': '균형',
'autocomplete.style.concise': '간결',
'autocomplete.style.formal': '격식',
'autocomplete.style.casual': '캐주얼',
'autocomplete.style.custom': '사용자 지정',
'autocomplete.disabledApps': '비활성화된 앱(줄마다 하나의 번들/앱 토큰)',
'autocomplete.saveSettings': '설정 저장',
'autocomplete.saving': '저장 중…',
'autocomplete.runtime': '런타임',
'autocomplete.running': '실행 중',
'autocomplete.start': '시작',
'autocomplete.stop': '중지',
'autocomplete.settingsSaved': '자동 완성 설정이 저장되었습니다.',
'autocomplete.started': '자동 완성이 시작되었습니다.',
'autocomplete.didNotStart': '자동 완성이 시작되지 않았습니다. 활성화되어 있는지 확인하세요.',
'autocomplete.stopped': '자동 완성이 중지되었습니다.',
'autocomplete.advancedSettings': '고급 설정',
'autocomplete.debugTitle': '자동 완성 디버그',
'chat.agentChat': '에이전트 채팅',
'chat.overrides': '재정의',
'chat.model': '모델',
'chat.temperature': '온도',
'chat.conversation': '대화',
'chat.startAgentConversation': '에이전트와 대화를 시작하세요.',
'chat.you': '나',
'chat.agent': '에이전트',
'chat.askAgent': '에이전트에게 무엇이든 물어보세요...',
'chat.sendMessage': '메시지 보내기',
'composio.triageTitle': '통합 트리거',
'composio.triageDesc':
'활성화되면 들어오는 각 Composio 트리거가 이벤트를 분류하고 자동 작업을 시작할 수 있는 AI 선별 단계를 거칩니다 — 트리거당 로컬 LLM 턴 하나가 사용됩니다. 수동 검토를 선호한다면 전체 또는 통합별로 비활성화하세요. 환경 변수가',
'composio.disableAllTriage': '모든 트리거에 대한 AI 선별 비활성화',
'composio.triggersStillRecorded': '트리거는 기록에 계속 저장됩니다 — LLM 턴은 실행되지 않습니다.',
'composio.disableSpecificIntegrations': '특정 통합에 대한 AI 선별 비활성화',
'composio.settingsSaved': '설정이 저장되었습니다',
'composio.saveFailed': '저장에 실패했습니다. 다시 시도하세요.',
'cron.title': 'Cron 작업',
'cron.scheduledJobs': '예약된 작업',
'cron.manageCronJobs': '코어 스케줄러에서 cron 작업을 관리합니다.',
'cron.refreshCronJobs': 'Cron 작업 새로고침',
'localModel.modelStatus': '모델 상태',
'localModel.downloadModels': '모델 다운로드',
'localModel.usage': '사용량',
'localModel.usageDesc':
'로컬 모델에서 실행할 하위 시스템을 선택하세요. 꺼진 항목은 클라우드를 사용합니다.',
'localModel.enableRuntime': '로컬 AI 런타임 활성화',
'localModel.enableRuntimeDesc':
'마스터 스위치입니다. 기본값은 꺼짐이며 Ollama는 유휴 상태로 유지됩니다. 켜면 트리 요약기, 화면 인텔리전스, 자동 완성이 항상 로컬 모델을 사용합니다.',
'localModel.advancedSettings': '고급 설정',
'localModel.debugTitle': '로컬 모델 디버그',
'screenAwareness.debugTitle': '화면 인식 디버그',
'screenAwareness.debug.debugAndDiagnostics': '디버그 및 진단',
'screenAwareness.debug.collapse': '축소',
'screenAwareness.debug.expand': '확장',
'screenAwareness.debug.failedToSave': '화면 인텔리전스 저장 실패',
'screenAwareness.debug.policyTitle': '화면 인텔리전스 정책',
'screenAwareness.debug.baselineFps': '기준 FPS',
'screenAwareness.debug.useVisionModel': '비전 모델 사용',
'screenAwareness.debug.useVisionModelDesc':
'더 풍부한 컨텍스트를 위해 비전 LLM에 스크린샷을 전송합니다. 꺼져 있으면 텍스트 LLM에서 OCR 텍스트만 사용하므로 더 빠르고 비전 모델이 필요 없습니다.',
'screenAwareness.debug.keepScreenshots': '스크린샷 유지',
'screenAwareness.debug.keepScreenshotsDesc':
'처리 후 삭제하지 않고 캡처한 스크린샷을 워크스페이스에 저장합니다',
'screenAwareness.debug.allowlist': '허용 목록(한 줄에 하나의 규칙)',
'screenAwareness.debug.denylist': '차단 목록(한 줄에 하나의 규칙)',
'screenAwareness.debug.saveSettings': '화면 인텔리전스 설정 저장',
'screenAwareness.debug.sessionStats': '세션 통계',
'screenAwareness.debug.framesEphemeral': '프레임(임시)',
'screenAwareness.debug.panicStop': '패닉 중지',
'screenAwareness.debug.defaultPanicHotkey': 'Cmd+Shift+.',
'screenAwareness.debug.vision': '비전',
'screenAwareness.debug.idle': '유휴',
'screenAwareness.debug.visionQueue': '비전 대기열',
'screenAwareness.debug.lastVision': '마지막 비전',
'screenAwareness.debug.notAvailable': '해당 없음',
'screenAwareness.debug.visionSummaries': '비전 요약',
'screenAwareness.debug.refreshing': '새로 고침…',
'screenAwareness.debug.noSummaries': '아직 요약이 없습니다.',
'screenAwareness.debug.unknownApp': '알 수 없는 앱',
'screenAwareness.debug.macosOnly': 'Screen Intelligence V1은 현재 macOS에서만 지원됩니다.',
'memory.debugTitle': '메모리 디버그',
'memory.documents': '문서',
'memory.filterByNamespace': '네임스페이스로 필터링...',
'memory.refresh': '새로고침',
'memory.noDocumentsFound': '문서를 찾을 수 없습니다.',
'memory.delete': '삭제',
'memory.rawResponse': '원시 응답',
'memory.namespaces': '네임스페이스',
'memory.noNamespacesFound': '네임스페이스를 찾을 수 없습니다.',
'memory.queryRecall': '쿼리 및 회수',
'memory.namespace': '네임스페이스',
'memory.queryText': '쿼리 텍스트...',
'memory.defaultMaxChunks': '10',
'memory.maxChunks': '최대 청크',
'memory.query': '쿼리',
'memory.recall': '리콜',
'memory.queryLabel': '쿼리',
'memory.recallLabel': '리콜',
'memory.queryResult': '쿼리 결과',
'memory.recallResult': '리콜 결과',
'memory.clearNamespace': '네임스페이스 지우기',
'memory.clearNamespaceDescription': '네임스페이스 내의 모든 문서를 영구적으로 삭제합니다.',
'memory.selectNamespace': '네임스페이스 선택...',
'memory.exampleNamespace': '예를 들어 스킬:gmail:user@example.com',
'memory.clear': '지우기',
'memory.deleteConfirm': '"{namespace}" 네임스페이스에서 "{documentId}" 문서를 삭제하시겠습니까?',
'memory.clearNamespaceConfirm':
'네임스페이스 "{namespace}"의 모든 문서가 영구적으로 삭제됩니다. 계속하시겠습니까?',
'memory.clearNamespaceSuccess': '네임스페이스 "{namespace}"이 삭제되었습니다.',
'memory.clearNamespaceEmpty': '"{namespace}"에서 지울 항목이 없습니다.',
'webhooks.debugTitle': '웹훅 디버그',
'webhooks.failedToLoadDebugData': '웹훅 디버그 데이터를 로드하지 못했습니다.',
'webhooks.clearLogsConfirm': '캡처된 웹훅 디버그 로그를 모두 삭제하시겠습니까?',
'webhooks.failedToClearLogs': '웹훅 로그를 지우지 못했습니다.',
'webhooks.loading': '로드 중...',
'webhooks.refresh': '새로 고침',
'webhooks.clearing': '지우는 중...',
'webhooks.clearLogs': '로그 지우기',
'webhooks.registered': '등록됨',
'webhooks.captured': '캡처됨',
'webhooks.live': 'live',
'webhooks.disconnected': '연결 끊김',
'webhooks.lastEvent': '마지막 이벤트',
'webhooks.at': 'at',
'webhooks.registeredWebhooks': '등록된 웹훅',
'webhooks.noActiveRegistrations': '활성 등록이 없습니다.',
'webhooks.resolvingBackendUrl': '백엔드 URL 해결 중…',
'webhooks.capturedRequests': '캡처된 요청',
'webhooks.noRequestsCaptured': '아직 캡처된 웹훅 요청이 없습니다.',
'webhooks.unrouted': '라우팅 해제됨',
'webhooks.pending': '보류 중',
'webhooks.requestHeaders': '요청 헤더',
'webhooks.queryParams': '쿼리 매개변수',
'webhooks.requestBody': '요청 본문',
'webhooks.responseHeaders': '응답 헤더',
'webhooks.responseBody': '응답 본문',
'webhooks.rawPayload': '원시 페이로드',
'webhooks.empty': '[비어 있음]',
'providerSetup.error.defaultDetails': '공급자 설정에 실패했습니다.',
'providerSetup.error.providerFallback': '공급자',
'providerSetup.error.credentialsRejected':
'{provider}에서 자격 증명을 거부했습니다. API 키를 확인하고 다시 시도하세요.',
'providerSetup.error.endpointNotRecognized':
'{provider}에서 엔드포인트를 인식하지 못했습니다. 기본 URL을 확인하고 다시 시도하세요.',
'providerSetup.error.providerUnavailable':
'{provider}를 현재 사용할 수 없습니다. 다시 시도하거나 공급자 상태를 확인하세요.',
'providerSetup.error.unreachable':
'{provider}에 연결할 수 없습니다. 엔드포인트 URL과 네트워크 연결을 확인한 후 다시 시도하세요.',
'providerSetup.error.couldNotReachWithMessage': '{provider}에 연결할 수 없습니다: {message}',
'providerSetup.error.technicalDetails': '기술 세부 정보',
'notifications.routingTitle': '알림 라우팅',
'notifications.routing.pipelineStats': '파이프라인 통계',
'notifications.routing.total': '합계',
'notifications.routing.unread': '읽지 않음',
'notifications.routing.unscored': '점수가 매겨지지 않음',
'notifications.routing.intelligenceTitle': '알림 인텔리전스',
'notifications.routing.intelligenceDesc':
'연결된 계정의 모든 알림은 로컬 AI 모델로 점수가 매겨집니다. 중요도가 높은 알림은 오케스트레이터 에이전트로 자동으로 라우팅되어 중요한 사항을 놓치지 않습니다.',
'notifications.routing.howItWorks': '작동 방식',
'notifications.routing.level.drop': '삭제',
'notifications.routing.level.dropDesc': '소음/스팸 — 저장되었지만 표시되지 않음',
'notifications.routing.level.acknowledge': '승인',
'notifications.routing.level.acknowledgeDesc': '낮은 우선 순위 — 알림 센터에 표시됨',
'notifications.routing.level.react': '반응',
'notifications.routing.level.reactDesc': '중간 우선순위 — 집중된 에이전트 응답을 트리거합니다.',
'notifications.routing.level.escalate': '에스컬레이션',
'notifications.routing.level.escalateDesc': '높은 우선 순위 - 오케스트레이터 에이전트로 전달됨',
'notifications.routing.perProvider': '공급자별 라우팅',
'notifications.routing.threshold': '임계값',
'notifications.routing.routeToOrchestrator': '오케스트레이터로 라우팅',
'notifications.routing.loadSettingsError':
'설정을 불러오지 못했습니다. 이 패널을 다시 열어 재시도하세요.',
'common.reload': '다시 불러오기',
'common.skip': '건너뛰기',
'common.disable': '비활성화',
'common.enable': '활성화',
'chat.safetyTimeout': '2분 후에도 에이전트의 응답이 없습니다. 다시 시도하거나 연결을 확인하세요.',
'chat.filter.general': '일반',
'chat.filter.subconscious': '잠재의식',
'chat.filter.meetings': '회의',
'chat.filter.tasks': '작업',
'chat.selectThread': '스레드 선택',
'chat.threads': '스레드',
'chat.noThreads': '아직 스레드가 없습니다',
'chat.noLabelThreads': '"{label}" 스레드가 없습니다',
'chat.deleteThread': '스레드 삭제',
'chat.deleteThreadConfirm': '"{title}" 스레드를 삭제하시겠습니까?',
'chat.untitledThread': '제목 없는 스레드',
'chat.editThreadTitle': '스레드 제목 편집',
'chat.hideSidebar': '사이드바 숨기기',
'chat.showSidebar': '사이드바 표시',
'chat.searchThreads': '대화 검색',
'layout.resizeSidebar': '사이드바 크기 조정',
'layout.showSidebar': '사이드바 표시',
'chat.newThreadShortcut': '새 스레드 (/new)',
'chat.new': '새로 만들기',
'chat.failedToLoadMessages': '메시지를 불러오지 못했습니다',
'chat.thinkingIteration': '생각 중... ({n})',
'chat.thinkingDots': '생각 중...',
'chat.approachingLimit': '사용 한도에 가까워지고 있습니다',
'chat.approachingLimitMsg': '사용 가능한 할당량의 {pct}%를 사용했습니다.',
'chat.upgrade': '업그레이드',
'chat.weeklyLimitHit': '포함된 주기 예산을 모두 사용했습니다.',
'chat.resets': '초기화',
'chat.topUpToContinue': '계속하려면 충전하세요.',
'chat.budgetComplete':
'포함된 예산을 모두 사용했습니다. 계속하려면 크레딧을 추가하거나 업그레이드하세요.',
'chat.topUp': '충전',
'chat.cycle': '주기',
'chat.cycleSpent': '이번 주기 사용량',
'chat.cycleRemaining': '남은 양',
'chat.left': '남음',
'chat.setup': '설정',
'chat.switchToText': '텍스트로 전환',
'chat.superContext.label': '슈퍼 컨텍스트',
'chat.superContext.hint':
'슈퍼 컨텍스트를 사용하면 OpenHuman이 접근할 수 있는 모든 데이터에서 컨텍스트를 수집하고 준비하여 매우 관련성 높은 답변을 제공할 수 있습니다. 슈퍼 컨텍스트는 초기 베타 단계입니다.',
'chat.transcribing': '전사 중...',
'chat.stopAndSend': '중지하고 보내기',
'chat.startTalking': '말하기 시작',
'chat.playingVoiceReply': '음성 응답 재생 중',
'chat.voiceHint': '마이크를 사용해 말하세요',
'chat.micUnavailable': '마이크를 사용할 수 없습니다',
'chat.turn': '턴',
'chat.turns': '턴',
'chat.openWorkerThread': '워커 스레드 열기',
'chat.attachment.attach': '이미지 첨부',
'chat.attachment.remove': '{name} 제거',
'chat.attachment.tooMany': '메시지당 최대 {max}개 이미지',
'chat.attachment.tooManyFiles': '메시지당 최대 {max}개 파일',
'chat.attachment.tooLarge': '이미지가 {max} 크기 제한을 초과합니다',
'chat.attachment.unsupportedType':
'지원되지 않는 파일 형식입니다. 이미지(PNG, JPEG, WebP, GIF, BMP) 또는 PDF, TXT, Markdown 파일을 사용하세요.',
'chat.attachment.imageNotSupported':
'이 모델은 이미지를 읽을 수 없습니다. 이미지를 첨부하려면 OpenHuman 추론 등급을 사용할 수 있습니다.',
'chat.attachment.readFailed': '파일을 읽을 수 없습니다',
'memory.searchAria': '메모리 검색',
'memory.searchPlaceholder': '메모리 항목 검색...',
'memory.sourceFilter.all': '모든 소스',
'memory.sourceFilter.email': '이메일',
'memory.sourceFilter.calendar': '캘린더',
'memory.sourceFilter.telegram': 'Telegram',
'memory.sourceFilter.aiInsight': 'AI 인사이트',
'memory.sourceFilter.system': '시스템',
'memory.sourceFilter.trading': '거래',
'memory.sourceFilter.security': '보안',
'memory.ingestionActivity': '수집 활동',
'memory.events': '이벤트',
'memory.event': '이벤트',
'memory.overTheLast': '지난 기간',
'memory.months': '개월',
'memory.peak': '최고치',
'memory.perDay': '/일',
'memory.less': '적음',
'memory.more': '많음',
'memory.on': '켜짐',
'memory.loading': '메모리 불러오는 중',
'memory.fetching': '메모리 항목을 가져오는 중...',
'memory.analyzing': '메모리 분석 중',
'memory.analyzingHint': '인사이트를 추출하기 위해 메모리를 처리하는 중...',
'memory.noMatches': '일치하는 항목 없음',
'memory.noMatchesHint': '검색어 또는 필터를 변경해 보세요.',
'memory.allCaughtUp': '모두 완료됨',
'memory.allCaughtUpHint': '처리할 새 메모리 항목이 없습니다.',
'memory.noAnalysis': '아직 분석 없음',
'memory.noAnalysisHint': '메모리에서 패턴을 발견하려면 분석을 실행하세요.',
'memory.emptyHint': '첫 번째 메모리를 만들려면 상호작용을 시작하세요.',
'mic.unavailable': '마이크를 사용할 수 없습니다',
'mic.permissionDenied': '마이크 권한이 거부되었습니다',
'mic.failedToStartRecorder': '녹음기를 시작하지 못했습니다',
'mic.deviceUnavailable': '선택한 마이크를 사용할 수 없습니다 — 다른 장치를 사용해 보세요.',
'mic.deviceInUse': '마이크가 다른 애플리케이션에서 사용 중입니다.',
'mic.error': '마이크 오류',
'mic.transcribing': '전사 중...',
'mic.retryingTranscription': '재시도 중… ({attempt}/{max})',
'mic.tapToSend': '탭하여 보내기',
'mic.waitingForAgent': '에이전트를 기다리는 중...',
'mic.tapAndSpeak': '탭하고 말하기',
'mic.stopRecording': '녹음을 중지하고 보내기',
'mic.startRecording': '녹음 시작',
'mic.deviceSelector': '마이크 장치',
'mic.tapToSendCountdown': '탭하여 보내기 ({seconds}초)',
'token.usageLimitReached': '사용 한도에 도달했습니다',
'token.approachingLimit': '한도에 가까워지고 있습니다',
'token.planClickForDetails': '플랜 - 자세한 내용을 보려면 클릭',
'token.sessionTokens': '입력: {in} | 출력: {out} | 턴: {turns}',
'token.limit': '한도 도달',
'token.inLabel': '입력',
'token.outLabel': '출력',
'token.inputTokens': '이 세션의 입력 토큰',
'token.outputTokens': '이 세션의 출력 토큰',
'token.turnsCount': '이 세션의 추론 턴',
'token.turn': '턴',
'token.turns': '턴',
'token.ctxLabel': 'CTX',
'token.contextWindow': '컨텍스트 윈도우 사용량 (마지막 턴)',
'catalog.noCapabilityBinding': '기능 바인딩 없음',
'catalog.downloadFailed': '다운로드 실패',
'catalog.active': '활성',
'catalog.installed': '설치됨',
'catalog.notDownloaded': '다운로드되지 않음',
'catalog.inUse': '사용 중',
'catalog.use': '사용',
'catalog.deleteModel': '모델 삭제',
'catalog.download': '다운로드',
'navigator.recent': '최근',
'navigator.today': '오늘',
'navigator.thisWeek': '이번 주',
'navigator.sources': '소스',
'navigator.email': '이메일',
'navigator.slack': 'Slack',
'navigator.chat': '채팅',
'navigator.documents': '문서',
'navigator.people': '사람',
'navigator.topics': '주제',
'dreams.description': '꿈은 메모리의 패턴을 종합하는 AI 생성 반영입니다.',
'dreams.comingSoon': '곧 제공 예정',
'assignment.memoryLlm': '메모리 LLM',
'assignment.memoryLlmAria': '메모리 LLM 선택',
'assignment.embedder': '임베더',
'assignment.loaded': '로드됨',
'assignment.notDownloaded': '다운로드되지 않음',
'assignment.usedForExtractSummarise': '추출 및 요약에 사용됨',
'insights.knownFacts': '알려진 사실',
'insights.preferences': '선호도',
'insights.relationships': '관계',
'insights.skills': '스킬',
'insights.opinions': '의견',
'insights.other': '기타',
'insights.title': '인사이트',
'insights.empty': '아직 인사이트가 없습니다. 메모리가 늘어나면 인사이트가 생성됩니다.',
'insights.description': '메모리 그래프의 {count}개 관계를 기반으로 합니다.',
'insights.items': '항목',
'insights.more': '더 보기',
'calls.joiningCall': '통화에 참여하는 중',
'calls.meetWindowOpening': 'Meet 창이 열리는 중...',
'calls.failedToStart': 'Meet 통화를 시작하지 못했습니다',
'calls.couldNotStart': '통화를 시작할 수 없습니다',
'calls.failedToClose': '통화를 닫지 못했습니다',
'calls.couldNotClose': '통화를 닫을 수 없습니다',
'calls.joinMeet': 'Google Meet 통화 참여',
'calls.joinMeetDescription': '참여할 Google Meet 링크를 입력하세요.',
'calls.meetLink': 'Meet 링크',
'calls.displayName': '표시 이름',
'calls.openingMeet': 'Meet 여는 중...',
'calls.joinCall': '통화 참여',
'calls.activeCalls': '활성 통화',
'calls.leave': '나가기',
'workspace.wipeConfirm': '모든 메모리를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',
'workspace.resetTreeConfirm': '메모리 트리를 다시 빌드하시겠습니까?',
'workspace.wipeTitle': '메모리 삭제',
'workspace.resetting': '초기화 중...',
'workspace.resetMemory': '메모리 초기화',
'workspace.resetTreeTitle': '메모리 트리 다시 빌드',
'workspace.rebuilding': '다시 빌드 중...',
'workspace.resetMemoryTree': '메모리 트리 초기화',
'workspace.building': '빌드 중...',
'workspace.buildSummaryTrees': '요약 트리 빌드',
'workspace.viewVault': '볼트 보기',
'workspace.openingVaultTitle': 'Obsidian에서 볼트 열기',
'workspace.openingVaultMessage':
'Obsidian이 열리지 않으면 obsidian.md에서 설치하거나 폴더 표시를 사용하세요. 볼트 경로:',
'workspace.openVaultFailedTitle': 'Obsidian에서 볼트를 열 수 없습니다',
'workspace.openVaultFailedMessage':
'폴더 표시를 사용하여 볼트 디렉터리를 직접 엽니다. 볼트 경로:',
'workspace.revealVaultFailed': '볼트 폴더를 표시할 수 없습니다',
'workspace.revealFolder': '폴더 공개',
'workspace.checkingVault': '확인 중…',
'workspace.vaultNotRegisteredHelp':
'Obsidian은 볼트로 추가된 폴더만 열 수 있습니다. Obsidian에서 "폴더를 볼트로 열기"를 선택하고 아래 폴더를 선택하세요 — 한 번만 하면 됩니다. 그런 다음 볼트 보기를 다시 클릭하세요.',
'workspace.obsidianNotFoundHelp':
'이 기기에서 Obsidian을 찾을 수 없습니다. 설치하거나, 비표준 위치에 설치되어 있는 경우 고급 설정에서 구성 폴더를 설정하세요.',
'workspace.openAnyway': '어쨌든 Obsidian에서 열기',
'workspace.installObsidian': 'Obsidian 설치',
'workspace.obsidianAdvanced': 'Obsidian이 다른 위치에 설치되어 있나요?',
'workspace.obsidianConfigDirLabel': 'Obsidian 구성 폴더',
'workspace.obsidianConfigDirHint':
'obsidian.json이 포함된 폴더 경로 (예: ~/.config/obsidian). 비워두면 자동 감지됩니다.',
'workspace.obsidianConfigDirPlaceholder': '~/.config/obsidian',
'workspace.graphLoadFailed': '메모리 그래프를 불러오지 못했습니다',
'workspace.loadingGraph': '메모리 그래프를 불러오는 중...',
'workspace.graphViewMode': '메모리 그래프 보기 모드',
'workspace.trees': '트리',
'workspace.contacts': '연락처',
'graph.noContactMentions': '연락처 언급 없음',
'graph.noMemory': '메모리 없음',
'graph.source': '소스',
'graph.topic': '주제',
'graph.global': '전역',
'graph.document': '문서',
'graph.contact': '연락처',
'graph.nodes': '노드',
'graph.parentChild': '부모-자식',
'graph.documentContact': '문서-연락처',
'graph.link': '링크',
'graph.links': '링크',
'graph.children': '자식',
'graph.clickToOpenObsidian': '클릭하여 Obsidian에서 열기',
'graph.person': '사람',
'graph.resetView': '보기 초기화',
'modal.dontShowAgain': '비슷한 제안을 다시 표시하지 않기',
'reflections.loading': '반영을 불러오는 중...',
'reflections.empty': '아직 반영이 없습니다',
'reflections.title': '반영',
'reflections.proposedAction': '제안된 작업',
'reflections.act': '실행',
'reflections.dismiss': '닫기',
'reflections.viewConversation': '보기',
'subconscious.mode.label': '잠재의식 모드',
'subconscious.mode.off.title': '끔',
'subconscious.mode.off.desc': '잠재의식이 비활성화되었습니다.',
'subconscious.mode.simple.title': '심플',
'subconscious.mode.simple.desc': '읽기 전용 관찰. 메모리 및 파일 접근만 가능.',
'subconscious.mode.aggressive.title': '적극적',
'subconscious.mode.aggressive.desc': '전체 도구 접근. 쓰기, 에이전트 생성, 작업 위임 가능.',
'subconscious.mode.aggressiveWarning':
'적극적 모드는 잠재의식에 쓰기 및 하위 에이전트 생성을 포함한 전체 도구 접근 권한을 부여합니다.',
'subconscious.interval.label': '빈도',
'subconscious.interval.minutes': '{n}분',
'subconscious.interval.hours': '{n}시간',
'subconscious.interval.oneHour': '1시간',
'subconscious.interval.oneDay': '24시간',
'whatsapp.chatsSynced': '채팅 동기화됨',
'whatsapp.chatSynced': '채팅 동기화됨',
'sync.active': '활성',
'sync.recent': '최근',
'sync.idle': '유휴',
'sync.memorySources': '메모리 소스',
'sync.noConnectedSources': '연결된 소스 없음',
'sync.chunks': '청크',
'sync.lastChunk': '마지막 청크:',
'sync.pending': '대기 중',
'sync.processed': '처리됨',
'sync.syncing': '동기화 중…',
'sync.sync': '동기화',
'sync.failedToLoad': '동기화 상태를 불러오지 못했습니다',
'sync.noContent': '아직 메모리에 동기화된 콘텐츠가 없습니다. 시작하려면 통합을 연결하세요.',
'memorySyncInterval.title': '동기화 일정',
'memorySyncInterval.lastSynced': '마지막 동기화',
'memorySyncInterval.never': '안 함',
'memorySyncInterval.everyHours': '{h}시간마다',
'memorySyncInterval.everyMinutes': '{m}분마다',
'memorySyncInterval.manual': '수동만',
'memorySyncInterval.saveFailed': '동기화 일정을 업데이트하지 못했습니다',
'memorySources.title': '메모리 소스',
'memorySources.empty': '아직 메모리 소스가 없습니다. 메모리를 채우려면 하나를 추가하세요.',
'memorySources.customSources': '사용자 지정 소스',
'memorySources.addSource': '소스 추가',
'memorySources.noCustomSources':
'아직 사용자 지정 소스가 없습니다. 폴더, GitHub 리포지토리, RSS 피드 또는 웹 페이지를 추가해 시작하세요.',
'memorySources.loadingConnections': '연결을 불러오는 중…',
'memorySources.noConnections': '활성 Composio 연결을 찾을 수 없습니다. 먼저 통합을 연결하세요.',
'memorySources.pickConnection': '연결 선택',
'memorySources.selectConnection': '— 연결 선택 —',
'memorySources.comingSoon': '출시 예정',
'memorySources.composioListFailed': 'Composio 연결을 불러오지 못했습니다.',
'memorySources.browse': '찾아보기…',
'memorySources.folderPathPlaceholder': '/Users/you/notes',
'memorySources.globPatternPlaceholder': '**/*.md',
'memorySources.repoUrlPlaceholder': 'https://github.com/org/repo',
'memorySources.branchPlaceholder': 'main',
'memorySources.feedUrlPlaceholder': 'https://example.com/feed.xml',
'memorySources.pageUrlPlaceholder': 'https://example.com/article',
'memorySources.cssSelectorPlaceholder': 'article',
'memorySources.searchQueryPlaceholder': 'from:user AI 안전',
'memorySources.kind.composio': '통합',
'memorySources.kind.conversation': '대화',
'memorySources.kind.folder': '로컬 폴더',
'memorySources.kind.github_repo': 'GitHub 리포지토리',
'memorySources.kind.twitter_query': 'Twitter 검색',
'memorySources.kind.rss_feed': 'RSS 피드',
'memorySources.kind.web_page': '웹 페이지',
'memorySources.sync.successTitle': '동기화 중',
'memorySources.sync.successMessage': '진행 상황이 곧 표시됩니다.',
'memorySources.sync.failedTitle': '동기화 실패:',
'memorySources.sync.completeTitle': '동기화됨',
'memorySources.sync.itemsSynced': '항목 동기화됨',
'memorySources.sync.upToDate': '최신 상태',
'memorySources.sync.failedLabel': '실패',
'time.justNow': '방금 전',
'time.secondsAgoSuffix': '초 전',
'time.minutesAgoSuffix': '분 전',
'time.hoursAgoSuffix': '시간 전',
'time.daysAgoSuffix': '일 전',
'memorySources.pickKind': '어떤 종류의 소스를 추가하시겠습니까?',
'memorySources.backToKinds': '소스 유형으로 돌아가기',
'memorySources.label': '레이블',
'memorySources.labelPlaceholder': '내 리서치 노트',
'memorySources.add': '추가',
'memorySources.adding': '추가 중…',
'memorySources.added': '소스가 추가되었습니다',
'memorySources.removed': '소스가 제거되었습니다',
'memorySources.remove': '제거',
'memorySources.enable': '활성화',
'memorySources.disable': '비활성화',
'memorySources.toggleFailed': '전환 실패',
'memorySources.removeFailed': '제거 실패',
'memorySources.folderPath': '폴더 경로',
'memorySources.globPattern': 'Glob 패턴',
'memorySources.repoUrl': '리포지토리 URL',
'memorySources.branch': '브랜치',
'memorySources.feedUrl': '피드 URL',
'memorySources.pageUrl': '페이지 URL',
'memorySources.cssSelector': 'CSS 선택자(선택 사항)',
'memorySources.searchQuery': '검색 쿼리',
'memorySources.build.title': '빌드',
'memorySources.build.building': '빌드 중…',
'memorySources.build.successTitle': '트리 빌드 완료',
'memorySources.build.failedTitle': '빌드 실패',
'memorySources.build.sealsMessage': '실링 완료',
'memorySources.allIn.button': '전체 활성화',
'memorySources.allIn.title': '전체 활성화할까요?',
'memorySources.allIn.message':
'모든 메모리 소스를 활성화하고 동기화 제한을 제거합니다. 가장 풍부한 메모리 그래프를 구축하지만 크레딧을 더 사용할 수 있습니다.',
'memorySources.allIn.confirm': '예',
'memorySources.allIn.cancel': '아니오',
'memorySources.allIn.success': '제한 없이 모든 소스가 활성화되었습니다. 동기화가 시작되었습니다.',
'memorySources.allIn.failed': '전체 활성화를 적용하지 못했습니다. 다시 시도해 주세요.',
'memorySources.settings.button': '설정',
'memorySources.settings.title': '동기화 설정',
'memorySources.settings.maxPrs': '최대 풀 리퀘스트 수',
'memorySources.settings.maxIssues': '최대 이슈 수',
'memorySources.settings.maxCommits': '최대 커밋 수',
'memorySources.settings.maxItems': '최대 항목 수',
'memorySources.settings.sinceDays': '조회 기간 (일)',
'memorySources.settings.syncDepthDays': '동기화 깊이 (일)',
'memorySources.settings.maxTokens': '동기화당 최대 토큰',
'memorySources.settings.maxCost': '동기화당 최대 비용 (USD)',
'memorySources.settings.unlimited': '무제한',
'memorySources.settings.unlimitedTooltip':
'{toolkit}에 대해 최대로 동기화하도록 선택했습니다. 여기에서 한도를 변경할 수 있습니다.',
'memorySources.settings.maxed': '최대',
'memorySources.settings.save': '저장',
'memorySources.settings.saving': '저장 중…',
'memorySources.settings.saved': '설정이 저장되었습니다',
'memorySources.settings.saveFailed': '설정을 저장하지 못했습니다',
'backend.aiBackend': 'AI 백엔드',
'backend.cloud': '클라우드',
'backend.recommended': '추천',
'backend.cloudDescription':
'서버에서 호스팅되는 빠르고 강력한 모델입니다. 즉시 사용할 수 있습니다.',
'backend.privacyNote': '개인 데이터, 메시지 또는 키는 서버로 전송되지 않습니다.',
'backend.local': '로컬',
'backend.advanced': '고급',
'backend.localDescription':
'Ollama를 사용하여 자신의 컴퓨터에서 모델을 실행합니다. 완전한 개인정보 보호를 제공하지만 설정이 필요합니다.',
'backend.ramRecommended': '16GB 이상 RAM 권장',
'subconscious.tasks': '작업',
'subconscious.ticks': '틱',
'subconscious.last': '마지막',
'subconscious.failed': '실패',
'subconscious.tickInterval': '틱 간격',
'subconscious.runNow': '지금 실행',
'subconscious.providerUnavailableTitle': 'Subconscious 일시 중지됨',
'subconscious.providerSettings': 'AI 설정',
'subconscious.scratchpadInfo':
'잠재의식은 틱 전반에 걸쳐 관찰 사항의 영구 메모장을 유지합니다. 모드와 빈도를 구성하려면 설정 → 에이전트 접근을 확인하세요.',
'subconscious.approvalNeeded': '승인 필요',
'subconscious.requiresApproval': '승인이 필요함',
'subconscious.fixInConnections': '연결에서 수정',
'subconscious.goAhead': '진행',
'subconscious.activeTasks': '활성 작업',
'subconscious.noActiveTasks': '활성 작업 없음',
'subconscious.default': '기본값',
'subconscious.addTaskPlaceholder': '새 작업 추가...',
'subconscious.activityLog': '활동 로그',
'subconscious.noActivity': '아직 활동이 없습니다',
'subconscious.decision.nothingNew': '새로운 내용 없음',
'subconscious.decision.completed': '완료됨',
'subconscious.decision.evaluating': '평가 중',
'subconscious.decision.waitingApproval': '승인 대기 중',
'subconscious.decision.failed': '실패',
'subconscious.decision.cancelled': '취소됨',
'subconscious.decision.skipped': '건너뜀',
// Subconscious triggers (event-driven orchestrator) debug panel
'subconsciousTriggers.title': '잠재의식 트리거',
'subconsciousTriggers.subtitle': '이벤트 기반 백그라운드 오케스트레이터',
'subconsciousTriggers.pipeline': '파이프라인',
'subconsciousTriggers.mode': '모드',
'subconsciousTriggers.orchestrator': '오케스트레이터',
'subconsciousTriggers.running': '실행 중',
'subconsciousTriggers.stopped': '중지됨',
'subconsciousTriggers.promotionsPerHour': '승격 / 시간',
'subconsciousTriggers.queueDepth': '큐 깊이',
'subconsciousTriggers.orchestratorThread': '오케스트레이터 스레드',
'subconsciousTriggers.userThread': '사용자 스레드',
'subconsciousTriggers.disabledHint': '파이프라인을 활성화하려면 이벤트 기반 모드를 켜세요.',
'subconsciousTriggers.enable': '활성화',
'subconsciousTriggers.disable': '비활성화',
'actionable.complete': '완료',
'actionable.dismiss': '닫기',
'actionable.snooze': '다시 알림',
'actionable.new': '새 항목',
'stats.storage': '저장소',
'stats.files': '파일',
'stats.documents': '문서',
'stats.today': '오늘',
'stats.namespaces': '네임스페이스',
'stats.relations': '관계',
'stats.firstMemory': '첫 번째 메모리',
'stats.latest': '최신',
'stats.sessions': '세션',
'stats.tokens': '토큰',
'bootCheck.invalidUrl': '런타임 URL을 입력해 주세요.',
'bootCheck.urlMustStartWith': 'URL은 http:// 또는 https://로 시작해야 합니다',
'bootCheck.validUrlRequired': '유효한 URL처럼 보이지 않습니다(예: https://core.example.com/rpc)',
'bootCheck.tokenRequired': '연결하려면 인증 토큰이 필요합니다.',
'bootCheck.httpPublicWarning':
'공개 호스트의 일반 HTTP URL입니다 — 트래픽이 암호화되지 않습니다. 이 네트워크를 신뢰하지 않는다면 HTTPS를 사용하세요.',
'bootCheck.chooseCoreMode': '런타임 선택',
'bootCheck.connectToCore': '런타임에 연결',
'bootCheck.desktopDescription':
'OpenHuman은 생각하기 위한 런타임이 필요합니다. 어디에서 실행할지 선택하세요.',
'bootCheck.webDescription':
'웹에서 OpenHuman은 사용자가 제어하는 런타임에 연결됩니다. 아래에 URL과 인증 토큰을 입력하거나, 데스크톱 앱을 받아 이 컴퓨터에서 바로 실행하세요.',
'bootCheck.preferDesktop': '모든 것을 자신의 기기에 보관하고 싶으신가요?',
'bootCheck.downloadDesktop': '데스크톱 앱 받기',
'bootCheck.localRecommended': '로컬에서 실행(추천)',
'bootCheck.localDescription':
'이 컴퓨터에서 바로 실행됩니다. 가장 빠르고, 완전히 비공개이며, 설정할 것이 없습니다.',
'bootCheck.cloudMode': '클라우드에서 실행(복잡)',
'bootCheck.cloudDescription':
'다른 곳에서 호스팅 중인 런타임에 연결합니다. 24×7 온라인 상태를 유지하므로 이 기기를 계속 켜둘 필요가 없습니다.',
'bootCheck.coreRpcUrl': '런타임 URL',
'bootCheck.rpcUrlPlaceholder': 'https://core.example.com/rpc',
'bootCheck.authToken': '인증 토큰',
'bootCheck.bearerTokenPlaceholder': '원격 런타임의 bearer 토큰',
'bootCheck.storedLocally': '이 기기에만 보관됩니다. 다음으로 전송됨: ',
'bootCheck.testing': '테스트 중…',
'bootCheck.testConnection': '연결 테스트',
'bootCheck.connectedOk': '연결되었습니다. 사용할 준비가 되었습니다.',
'bootCheck.authFailed': '해당 토큰이 작동하지 않았습니다. 다시 확인하고 시도하세요.',
'bootCheck.unreachablePrefix': '연결할 수 없습니다:',
'bootCheck.checkingCore': '런타임을 깨우는 중…',
'bootCheck.cannotReach': '런타임에 연결할 수 없습니다',
'bootCheck.cannotReachDesc': '런타임에 연결할 수 없습니다. 다른 런타임을 시도하시겠습니까?',
'bootCheck.switchMode': '다른 런타임 선택',
'bootCheck.quit': '종료',
'bootCheck.legacyDetected': '레거시 백그라운드 런타임 감지됨',
'bootCheck.legacyDescription':
'별도로 설치된 OpenHuman 데몬이 이 기기에서 이미 실행 중입니다. 내장 런타임이 대신 실행되기 전에 이를 정리해야 합니다.',
'bootCheck.removing': '제거 중…',
'bootCheck.removeContinue': '제거하고 계속',
'bootCheck.localNeedsRestart': '로컬 런타임을 다시 시작해야 함',
'bootCheck.localNeedsRestartDesc':
'로컬 런타임의 버전이 이 앱과 다릅니다. 빠르게 다시 시작하면 다시 동기화됩니다.',
'bootCheck.restarting': '다시 시작 중…',
'bootCheck.restartCore': '런타임 다시 시작',
'bootCheck.cloudNeedsUpdate': '클라우드 런타임 업데이트 필요',
'bootCheck.cloudNeedsUpdateDesc':
'클라우드 런타임의 버전이 이 앱과 다릅니다. 업데이트 프로그램을 실행하여 다시 동기화하세요.',
'bootCheck.updating': '업데이트 중…',
'bootCheck.updateCloudCore': '클라우드 런타임 업데이트',
'bootCheck.versionCheckFailed': '런타임 버전 확인 실패',
'bootCheck.versionCheckFailedDesc':
'런타임이 실행 중이지만 버전을 보고하지 않습니다. 오래된 버전일 수 있습니다. 계속하려면 다시 시작하거나 업데이트하세요.',
'bootCheck.working': '작업 중…',
'bootCheck.restartUpdateCore': '런타임 다시 시작 / 업데이트',
'bootCheck.unexpectedError': '예상치 못한 부트 체크 오류',
'bootCheck.actionFailed': '문제가 발생했습니다. 다시 시도해 주세요.',
'bootCheck.portConflictTitle': '앱 엔진을 시작할 수 없습니다',
'bootCheck.portConflictBody':
'다른 프로세스가 OpenHuman에 필요한 네트워크 포트를 사용 중입니다. 자동으로 문제를 해결해 드리겠습니다.',
'bootCheck.portConflictFixButton': '자동 수정',
'bootCheck.portConflictFixing': '수정 중…',
'bootCheck.portConflictFixFailed':
'자동 수정에 실패했습니다. 컴퓨터를 재시작한 후 다시 시도해 주세요.',
'bootCheck.portConflictOwner':
'{name}(PID {pid})이(가) OpenHuman에 필요한 네트워크 포트를 사용하고 있습니다.',
'bootCheck.portConflictGuidance':
'포트를 비우려면 해당 프로그램을 닫거나 아래에서 강제 종료한 후 다시 시도하세요.',
'bootCheck.portConflictForceQuit': '{name} 강제 종료',
'bootCheck.portConflictForceQuitting': '{name} 종료 중…',
'bootCheck.portConflictForceQuitFailed':
'해당 프로그램을 닫지 못했습니다. 수동으로 닫은 후 다시 시도해야 할 수 있습니다.',
'notifications.justNow': '방금 전',
'notifications.minAgo': '{n}분 전',
'notifications.hrAgo': '{n}시간 전',
'notifications.dayAgo': '{n}일 전',
'notifications.category.messages': '메시지',
'notifications.category.agents': '에이전트',
'notifications.category.skills': '스킬',
'notifications.category.system': '시스템',
'notifications.category.meetings': '회의',
'notifications.category.reminders': '리마인더',
'notifications.category.important': '중요',
'notifications.filterAll': '전체',
'notifications.filterEmpty': '이 카테고리에 알림이 없습니다',
'about.update.status.checking': '확인 중...',
'about.update.status.available': 'v{version} 사용 가능',
'about.update.status.availableNoVersion': '업데이트 사용 가능',
'about.update.status.downloading': '다운로드 중...',
'about.update.status.readyToInstall': 'v{version} 설치 준비 완료',
'about.update.status.readyToInstallNoVersion':
'새 버전이 다운로드되어 준비되었습니다. 적용하려면 다시 시작하세요.',
'about.update.status.installing': '설치 중...',
'about.update.status.restarting': '다시 시작 중...',
'about.update.status.upToDate': '최신 버전을 실행 중입니다.',
'about.update.status.error': '업데이트 확인 실패',
'about.update.status.default': '업데이트 확인',
'welcome.connectionFailed': '연결 실패: {status} {statusText}',
'welcome.connectionFailedMsg': '연결 실패: {message}',
'welcome.continueLocally': '로컬에서 계속',
'welcome.continueLocallyExperimental': '로컬에서 계속(실험적)',
'welcome.localSessionStarting': '로컬 세션 시작 중...',
'welcome.localSessionDesc': '오프라인 로컬 프로필을 사용하고 TinyHumans를 건너뜁니다. OAuth.',
'chat.agentChatDesc': '에이전트와 직접 채팅 세션을 엽니다.',
'chat.modelPlaceholder': 'gpt-4o',
'channels.activeRouteValue': '{authMode}을(를) 통해 {channel}',
'privacy.dataKind.messages': '메시지',
'privacy.dataKind.agents': '에이전트',
'privacy.dataKind.skills': '스킬',
'privacy.dataKind.system': '시스템',
'privacy.dataKind.meetings': '회의',
'privacy.dataKind.reminders': '리마인더',
'privacy.dataKind.important': '중요',
'onboarding.enableLocalAI': '로컬 AI 활성화',
'onboarding.skills.status.available': '사용 가능',
'onboarding.skills.status.connected': '연결됨',
'onboarding.skills.status.connecting': '연결 중',
'onboarding.skills.status.error': '오류',
'onboarding.skills.status.unavailable': '사용할 수 없음',
'composio.statusUnavailable': '상태를 사용할 수 없음',
'composio.authExpired': '인증이 만료됨',
'composio.reconnect': '다시 연결',
'composio.expiredAuthorization': '{name} 인증이 만료되었습니다.',
'composio.expiredDescription':
'{name} 도구를 다시 활성화하려면 다시 연결하세요. OpenHuman은 OAuth 액세스를 새로 고칠 때까지 이 통합을 사용할 수 없는 상태로 유지합니다.',
'composio.envVarOverrides': '설정되어 있으며, 이 설정을 재정의합니다.',
'composio.previewBadge': '미리보기',
'composio.previewTooltip':
'에이전트 통합이 곧 제공됩니다. 연결할 수는 있지만 에이전트는 아직 이 툴킷을 사용할 수 없습니다.',
'memory.day.sun': '일',
'memory.day.mon': '월',
'memory.day.tue': '화',
'memory.day.wed': '수',
'memory.day.thu': '목',
'memory.day.fri': '금',
'memory.day.sat': '토',
'memory.ingesting': '수집 중',
'memory.ingestionQueued': '대기열에 추가됨',
'memory.ingestingTitle': '{title} 수집 중',
'mic.noAudioCaptured': '캡처된 오디오가 없습니다',
'mic.noSpeechDetected': '음성이 감지되지 않았습니다',
'mic.lowConfidenceResult': '오디오를 명확하게 이해할 수 없습니다 — 다시 시도해 주세요',
'mic.failedToStopRecording': '녹음을 중지하지 못했습니다: {message}',
'mic.transcriptionFailed': '전사에 실패했습니다: {message}',
'reflections.kind.retrospective': '회고',
'reflections.kind.derivedFact': '파생된 사실',
'reflections.kind.moodInsight': '기분 인사이트',
'reflections.kind.relationshipInsight': '관계 인사이트',
'graph.tooltip.summary': '요약',
'graph.tooltip.contact': '연락처',
'localModel.usage.never': '사용 안 함',
'localModel.usage.mediumLoad': '중간 부하',
'localModel.usage.lowLoad': '낮은 부하',
'localModel.usage.idleMode': '유휴 모드',
'localModel.rebootstrapComplete': '모델 재부트스트랩 완료.',
'localModel.modelsVerified': '로컬 모델 확인 완료.',
'accounts.addModal.allConnected': '모두 연결됨',
'accounts.addModal.title': '계정 추가',
'accounts.respondQueue.empty': '비어 있음',
'accounts.respondQueue.hide': '응답 대기열 숨기기',
'accounts.respondQueue.loadFailed': '응답 대기열을 불러오지 못했습니다',
'accounts.respondQueue.loading': '대기열 불러오는 중…',
'accounts.respondQueue.pending': '대기 중',
'accounts.respondQueue.show': '응답 대기열 표시',
'accounts.respondQueue.title': '응답 대기열',
'accounts.webviewHost.almostReady': '거의 준비됨...',
'accounts.webviewHost.loadTimeout': 'Webview 로드 시간 초과',
'accounts.webviewHost.loading': '{providerName} 불러오는 중...',
'accounts.webviewHost.loadingAccount': '계정 불러오는 중',
'accounts.webviewHost.restoringSession': '세션 복원 중...',
'accounts.webviewHost.retryLoading': '다시 불러오기',
'accounts.webviewHost.takingLonger': '{providerName}이 예상보다 오래 걸리고 있습니다.',
'accounts.webviewHost.timeoutHint': '시간 초과 힌트',
'app.connectionBadge.composio': 'Composio',
'app.connectionBadge.messaging': '메시징',
'app.connectionIndicator.connected': 'OpenHuman AI에 연결됨 🚀',
'app.connectionIndicator.connecting': '연결 중',
'app.connectionIndicator.coreOffline': '코어 오프라인',
'app.connectionIndicator.disconnected': '연결 해제됨',
'app.connectionIndicator.offline': '오프라인',
'app.connectionIndicator.reconnecting': '다시 연결 중…',
'app.errorFallback.componentStack': '컴포넌트 스택',
'app.errorFallback.contactSupport': '지원팀에 문의',
'app.errorFallback.copyEventId': '복사',
'app.errorFallback.eventIdCopied': '복사됨',
'app.errorFallback.eventIdLabel': '오류 ID',
'app.errorFallback.revealLogs': '로그 보기',
'app.errorFallback.downloadLatest': '최신 버전 다운로드',
'app.errorFallback.heading': '제목',
'app.errorFallback.hint': '힌트',
'app.errorFallback.reloadApp': '앱 다시 불러오기',
'app.errorFallback.subheading': '부제목',
'app.errorFallback.tryRecover': '복구 시도',
'app.localAiDownload.installing': '설치 중...',
'app.localAiDownload.preparing': '준비 중...',
'app.openhumanLink.accounts.continueWith': '{label} 로그인으로 계속',
'app.openhumanLink.accounts.done': '완료',
'app.openhumanLink.accounts.intro': '소개',
'app.openhumanLink.accounts.webviewNote': 'Webview 안내',
'app.openhumanLink.billing.openDashboard': '대시보드 열기',
'app.openhumanLink.billing.stayOnTrial': '체험판 유지',
'app.openhumanLink.billing.trialCredit': '가입 크레딧',
'app.openhumanLink.billing.trialDesc':
'크레딧 혜택은 프로모션과 계정 자격에 따라 달라질 수 있습니다.',
'app.openhumanLink.defaultBody':
'아직 팝업에서 준비되지 않았습니다. 필요하면 전체 설정 페이지를 여세요.',
'app.openhumanLink.discord.intro': '소개',
'app.openhumanLink.discord.openInvite': '초대 열기',
'app.openhumanLink.discord.perk1': '혜택1',
'app.openhumanLink.discord.perk2': '혜택2',
'app.openhumanLink.discord.perk3': '혜택3',
'app.openhumanLink.discord.perk4': '혜택4',
'app.openhumanLink.discordReport.intro':
'죄송합니다 — 저희 측에서 오류가 발생했습니다. 이러한 오류를 자동으로 기록하려고 하지만, Discord에 세부 정보를 공유해 주시면 더 빠르게 해결할 수 있습니다.',
'app.openhumanLink.discordReport.openDiscord': 'Discord 열기',
'app.openhumanLink.done': '완료',
'app.openhumanLink.notifications.desktopOnly':
'기본 알림은 데스크톱 앱에서만 사용할 수 있습니다 (`pnpm dev:app` 실행).',
'app.openhumanLink.notifications.permissionOff':
'알림 권한이 꺼져 있습니다. 시스템 설정 → 알림에서 OpenHuman을 활성화한 후 다시 시도하세요.',
'app.openhumanLink.notifications.triggerFailed':
'OpenHuman이 시스템 알림을 발생시킬 수 없습니다. 운영체제 알림 설정을 확인한 후 다시 시도하세요.',
'app.openhumanLink.notifications.welcomeBody':
'주의가 필요한 일이 생기면 여기에서 알림을 받게 됩니다.',
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman 준비 완료',
'app.openhumanLink.status.closed': '닫힘',
'app.openhumanLink.status.connected': '연결됨',
'app.openhumanLink.status.error': '오류',
'app.openhumanLink.status.loading': '로드 중…',
'app.openhumanLink.status.needsSignIn': '로그인 필요',
'app.openhumanLink.status.timedOut': '시간 초과',
'app.openhumanLink.loadingChannelSetup': '채널 설정 불러오는 중',
'app.openhumanLink.maybeLater': '나중에',
'app.openhumanLink.notifications.asking': 'OS에 요청 중…',
'app.openhumanLink.notifications.blocked': '차단됨',
'app.openhumanLink.notifications.blockedStep1': '차단 단계1',
'app.openhumanLink.notifications.blockedStep2': '차단 단계2',
'app.openhumanLink.notifications.blockedStep3': '차단 단계3',
'app.openhumanLink.notifications.intro': '소개',
'app.openhumanLink.notifications.promptHint': '프롬프트 힌트',
'app.openhumanLink.notifications.retry': '테스트 알림 다시 시도',
'app.openhumanLink.notifications.send': '테스트 알림 보내기',
'app.openhumanLink.notifications.sendFailed': '보낼 수 없습니다: {error}',
'app.openhumanLink.notifications.sent':
'테스트 알림이 전송되었습니다. 받지 못했다면 시스템 설정 → 알림 → OpenHuman으로 이동해 알림 허용을 켜고 배너 스타일을 지속으로 설정하세요.',
'app.openhumanLink.skipForNow': '지금은 건너뛰기',
'app.openhumanLink.telegramUnavailable': 'Telegram을 사용할 수 없음',
'app.openhumanLink.title.accounts': '앱 연결',
'app.openhumanLink.title.billing': '결제 및 크레딧',
'app.openhumanLink.title.discord': '커뮤니티 참여',
'app.openhumanLink.title.discordReport': '이 오류 신고',
'app.openhumanLink.title.messaging': '채팅 채널 연결',
'app.openhumanLink.title.notifications': '알림 허용',
'app.persistRehydration.body': '본문',
'app.persistRehydration.heading': '제목',
'app.persistRehydration.resetCta': '초기화 중…',
'app.persistRehydration.resetting': '초기화 중…',
'app.routeLoading.initializing': 'OpenHuman 초기화 중...',
'app.update.currentlyOn': '{version}',
'app.update.errorFallback': '업데이트 중 문제가 발생했습니다.',
'app.update.header.default': '업데이트',
'app.update.header.error': '업데이트 실패',
'app.update.header.installing': '업데이트 설치 중',
'app.update.header.readyToInstall': '업데이트 설치 준비 완료',
'app.update.header.restarting': '다시 시작 중…',
'app.update.later': '나중에',
'app.update.newVersionReady': '새 버전을 설치할 준비가 되었습니다.',
'app.update.progress.downloaded': '{amount} 다운로드됨',
'app.update.progress.installing': '새 버전 설치 중…',
'app.update.progress.restarting': '앱 다시 실행 중…',
'app.update.progress.working': '{percent}%',
'app.update.restartNote': '다시 시작 안내',
'app.update.restartNow': '지금 다시 시작',
'app.update.versionReady': '버전 {newVersion} 설치 준비 완료.',
'channels.discord.accountLinked': '계정 연결됨',
'channels.discord.connect': '연결',
'channels.discord.linkTokenExpired': '링크 토큰이 만료되었습니다. 다시 시도하세요.',
'channels.discord.linkTokenInstruction': '{token}',
'channels.discord.linkTokenLabel': '링크 토큰 라벨',
'channels.discord.linkTokenOnce': '링크 토큰 1회 사용',
'channels.discord.picker.allPermissionsOk':
'봇이 이 채널에서 필요한 모든 권한을 가지고 있습니다.',
'channels.discord.picker.botNotInServers': '봇이 서버에 없습니다',
'channels.discord.picker.category': '카테고리',
'channels.discord.picker.channel': '채널',
'channels.discord.picker.checkingPermissions': '권한 확인 중',
'channels.discord.picker.loadingChannels': '채널 불러오는 중...',
'channels.discord.picker.loadingServers': '서버 불러오는 중...',
'channels.discord.picker.missingPermissions': '권한 누락',
'channels.discord.picker.noChannels': '텍스트 채널을 찾을 수 없습니다',
'channels.discord.picker.noServers': '서버를 찾을 수 없습니다',
'channels.discord.picker.selectChannel': '채널 선택',
'channels.discord.picker.selectServer': '서버 선택',
'channels.discord.picker.server': '서버',
'channels.discord.picker.serverChannelSelection': '서버 및 채널 선택',
'channels.discord.savedRestartRequired':
'채널이 저장되었습니다. 활성화하려면 앱을 다시 시작하세요.',
'channels.telegram.connect': '연결',
'channels.telegram.managedDmConnecting': '관리형 DM 연결 중',
'channels.telegram.managedDmTimeout': '관리형 DM 시간이 초과됨',
'channels.telegram.reconnect': '다시 연결',
'channels.telegram.savedRestartRequired':
'채널이 저장되었습니다. 활성화하려면 앱을 다시 시작하세요.',
'channels.web.alwaysAvailable': '항상 사용 가능',
'chat.approval.approve': '승인',
'chat.approval.alwaysAllow': '항상 허용',
'chat.approval.alwaysAllowHint': '이 도구에 대해 다시 묻지 않도록 항상 허용 목록에 추가합니다',
'chat.approval.deciding': '작업 중…',
'chat.approval.deny': '거부',
'chat.approval.error': '결정을 기록할 수 없습니다. 다시 시도하세요.',
'chat.approval.fallback': '에이전트가 승인이 필요한 작업을 실행하려고 합니다.',
'chat.approval.title': '승인 필요',
'chat.approval.tool': '도구:',
'channels.authMode.managed_dm': 'OpenHuman로 로그인',
'channels.authMode.oauth': 'OAuth 로그인',
'channels.authMode.bot_token': '자체 봇 토큰 사용',
'channels.authMode.api_key': '자체 API 키 사용',
'channels.fieldRequired': '{field}이 필요합니다.',
'channels.mcp.title': 'MCP 서버',
'channels.mcp.description':
'AI에 새로운 도구를 추가하는 Model Context Protocol 서버를 탐색하고 관리합니다.',
'channels.discord.displayName': 'Discord',
'channels.discord.description': 'Discord을(를) 통해 메시지를 보내고 받습니다.',
'channels.discord.authMode.bot_token.description': '자신만의 Discord 봇 토큰을 제공하세요.',
'channels.discord.authMode.oauth.description':
'OAuth을 통해 OpenHuman 봇을 Discord 서버에 설치합니다.',
'channels.discord.authMode.managed_dm.description':
'개인 Discord 계정을 OpenHuman 봇에 연결하세요.',
'channels.discord.fields.bot_token.label': '봇 토큰',
'channels.discord.fields.bot_token.placeholder': '귀하의 Discord 봇 토큰',
'channels.discord.fields.guild_id.label': '서버(길드) ID',
'channels.discord.fields.guild_id.placeholder': '선택 사항: 특정 서버로 제한',
'channels.telegram.displayName': 'Telegram',
'channels.telegram.description': '메시지 보내기 및 받기 Telegram.',
'channels.telegram.authMode.managed_dm.description':
'OpenHuman Telegram 봇에게 직접 메시지를 보냅니다.',
'channels.telegram.authMode.bot_token.description':
'@BotFather에서 자신만의 Telegram 봇 토큰을 제공하세요.',
'channels.telegram.fields.bot_token.label': '봇 토큰',
'channels.telegram.fields.bot_token.placeholder': '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11',
'channels.telegram.fields.allowed_users.label': '허용된 사용자',
'channels.telegram.fields.allowed_users.placeholder': '쉼표로 구분 Telegram 사용자 이름',
'channels.telegram.remoteControlTitle': '원격 제어(Telegram)',
'channels.telegram.remoteControlBody':
'허용된 Telegram 채팅에서 /status, /sessions, /new 또는 /help를 보냅니다. 모델 라우팅은 여전히 ​​/model 및 /models를 사용합니다.',
'channels.web.displayName': '웹',
'channels.web.description': '내장된 웹 UI를 통해 채팅합니다.',
'channels.web.authMode.managed_dm.description':
'내장된 웹 채팅을 사용하세요. 설정이 필요하지 않습니다.',
'channels.yuanbao.connect': 'Connect',
'channels.yuanbao.connecting': '연결 중…',
'channels.yuanbao.fieldRequired': '{field}은(는) 필수입니다',
'channels.yuanbao.reconnect': 'Reconnect',
'channels.yuanbao.savedRestartRequired': '채널이 저장되었습니다. 활성화하려면 앱을 재시작하세요.',
'channels.yuanbao.unexpectedStatus': '예상치 못한 연결 상태: {status}',
'chat.unsubscribeApproval.approve': '승인 및 구독 취소',
'chat.unsubscribeApproval.approved': '✓ 구독 취소가 완료되었습니다.',
'chat.unsubscribeApproval.denied': '✕ 요청이 거부되었습니다.',
'chat.unsubscribeApproval.deny': '거부',
'chat.unsubscribeApproval.processing': '처리 중...',
'chat.unsubscribeApproval.title': '구독 취소 요청',
'commandPalette.ariaLabel': '명령 팔레트',
'commandPalette.description': '설명',
'commandPalette.label': '명령',
'commandPalette.noResults': '결과 없음',
'commandPalette.placeholder': '명령을 입력하거나 검색…',
'commandPalette.searchAria': '명령 검색',
'commandPalette.shortcutHint': '모든 단축키를 보려면 ?를 누르세요',
'commandPalette.title': '명령 팔레트',
'kbd.ariaLabel': '키보드 단축키: {shortcut}',
'iosMascot.connectedTo': '연결됨',
'iosMascot.defaultPairedLabel': '데스크탑',
'iosMascot.disconnect': '연결 끊기',
'iosMascot.error.generic': '문제가 발생했습니다. 다시 시도해 주세요.',
'iosMascot.error.sendFailed': '전송하지 못했습니다. 연결을 확인하세요.',
'iosMascot.pushToTalk': '푸시하여 말하기',
'iosMascot.sendMessage': '메시지 보내기',
'iosMascot.thinking': '생각 중...',
'iosMascot.typeMessage': '메시지 입력...',
'iosPair.connectedLoading': '연결되었습니다! 로드 중...',
'iosPair.connecting': '데스크톱에 연결하는 중...',
'iosPair.desktopLabel': '데스크톱',
'iosPair.error.camera': '카메라 스캔에 실패했습니다. 카메라 권한을 확인하고 다시 시도하세요.',
'iosPair.error.connectionFailed':
'연결에 실패했습니다. 데스크탑 앱이 실행 중인지 확인하고 다시 시도하세요.',
'iosPair.error.invalidQr':
'유효하지 않은 QR 코드입니다. OpenHuman 페어링 코드를 스캔하고 있는지 확인하세요.',
'iosPair.error.unreachableDesktop':
'데스크탑에 연결할 수 없습니다. 두 기기가 모두 온라인 상태인지 확인하고 다시 시도하세요.',
'iosPair.expired': 'QR code이 만료되었습니다. 데스크탑에 코드 재생성을 요청하십시오.',
'iosPair.instructions':
'데스크탑에서 OpenHuman을 열고 설정 > 기기로 이동한 후 "기기 페어링"을 탭하여 QR 코드를 표시하세요.',
'iosPair.retryScan': '스캔 재시도',
'iosPair.scanQrCode': '스캔 QR code',
'iosPair.scannerOpening': '스캐너 여는 중...',
'iosPair.step.openDesktop': '데스크톱에서 OpenHuman 열기',
'iosPair.step.openSettings': '설정 > 장치로 이동',
'iosPair.step.showQr': '"기기 페어링"을 탭하여 QR 표시',
'iosPair.title': '데스크톱과 페어링',
'composio.connect.additionalConfigRequired': '추가 구성이 필요합니다',
'composio.connect.atlassianSubdomainHint': 'acme',
'composio.connect.atlassianSubdomainLabel': 'Atlassian 하위 도메인 라벨',
'composio.connect.connect': '연결',
'composio.connect.connectedAccounts': '연결된 계정',
'composio.connect.defaultLabel': '기본',
'composio.connect.disconnectAccount': '제거',
'composio.connect.addAnotherAccount': '다른 계정 추가',
'composio.connect.dynamicsOrgNameHint':
'예를 들어 myorg.crm.dynamics.com의 경우 "myorg"입니다. 전체 URL이 아닌 짧은 조직 이름만 입력하세요.',
'composio.connect.dynamicsOrgNameLabel': 'Dynamics 365 조직 이름',
'composio.connect.connectionFailed': '연결 실패(상태: {status}).',
'composio.connect.disconnectFailed': '연결 해제 실패: {msg}',
'composio.connect.disconnecting': '연결 해제 중…',
'composio.connect.idleDescription': '다음을 연결하세요:',
'composio.connect.idleDescriptionSuffix':
'계정. 브라우저 창을 열면 그곳에서 접근을 승인하고, 이 앱이 자동으로 연결을 감지합니다.',
'composio.connect.isConnected': '연결되었습니다.',
'composio.connect.manage': '관리',
'composio.connect.needsFieldsPrefix': '연결하려면',
'composio.connect.needsFieldsSuffix':
'좀 더 많은 정보가 필요합니다. 아래의 누락된 필드를 입력하고 다시 시도하세요.',
'composio.connect.needsSubdomain': '연결하려면',
'composio.connect.needsSubdomainSuffix':
'Atlassian 하위 도메인(예: acme.atlassian.net의 경우 acme)을 입력하고 다시 시도하세요.',
'composio.connect.oauthComplete': 'OAuth 완료 대기 중…',
'composio.connect.oauthTimeout': 'OAuth 시간이 초과되었습니다',
'composio.connect.permissions': '권한',
'composio.connect.permissionsDefault': '읽기 + 쓰기가 기본적으로 활성화됨',
'composio.connect.permissionsNote': '노출할 수 있음',
'composio.connect.permissionsNoteSuffix':
'OpenHuman 자체 에이전트 권한은 아래에서 읽기, 쓰기, 관리자 토글로 제어됩니다.',
'composio.connect.reopenBrowser': '브라우저 다시 열기',
'composio.connect.requestingUrl': '연결 URL 요청 중…',
'composio.connect.requiredFieldEmpty': '이 필드는 필수입니다.',
'composio.connect.retryConnection': '연결 다시 시도',
'composio.connect.scopeLoadError': '범위 기본 설정을 불러올 수 없습니다: {msg}',
'composio.connect.scopeSaveError': '{key} 범위를 저장할 수 없습니다: {msg}',
'composio.connect.scope.read': '읽기',
'composio.connect.scope.readHint': '에이전트가 이 연결에서 데이터를 읽을 수 있도록 허용합니다.',
'composio.connect.scope.write': '쓰기',
'composio.connect.scope.writeHint':
'에이전트가 이 연결을 통해 데이터를 생성하거나 수정할 수 있도록 허용합니다.',
'composio.connect.scope.admin': '관리자',
'composio.connect.scope.adminHint':
'에이전트가 설정, 권한 또는 파괴적인 작업을 관리하도록 허용합니다.',
'composio.connect.subdomainInvalid':
'전체 URL이 아닌 짧은 하위 도메인만 입력하세요(예: "acme"). 문자, 숫자, 하이픈만 포함해야 합니다.',
'composio.connect.subdomainRequired': '계속하려면 Atlassian 하위 도메인을 입력하세요.',
'composio.connect.wabaIdHint':
'GET /me/businesses를 통해 찾은 다음 Meta 액세스 토큰을 사용하여 /{business_id}/owned_whatsapp_business_accounts를 GET하세요.',
'composio.connect.wabaIdLabel': 'WABA ID 라벨',
'composio.connect.atlassianSubdomainPlaceholder': 'your-subdomain',
'composio.connect.dynamicsOrgNamePlaceholder': 'myorg',
'composio.connect.wabaIdPlaceholder': 'e.g. 123456789012345',
'composio.connect.wabaIdRequired':
'계속하려면 WhatsApp Business Account ID (WABA ID)를 입력하세요.',
'composio.connect.waitingFor': '대기 중:',
'composio.connect.waitingHint': '방금 열린 브라우저 창에서 연결을 완료하세요.',
'composio.triggers.heading': '트리거',
'composio.triggers.listenFrom': '다음에서 이벤트 수신:',
'composio.triggers.loadError': '트리거를 불러올 수 없습니다',
'composio.triggers.needsConfiguration': '구성이 필요합니다',
'composio.triggers.noneAvailable': '현재 사용할 수 있는 트리거가 없습니다:',
'conversations.taskKanban.moveLeft': '왼쪽으로 이동',
'conversations.taskKanban.moveRight': '오른쪽으로 이동',
'conversations.taskKanban.title': '작업',
'conversations.threadTodo.title': '계획',
'conversations.threadGoal.label': '목표',
'conversations.threadGoal.setCta': '목표 설정',
'conversations.threadGoal.placeholder': '이 스레드가 무엇을 달성해야 하나요?',
'conversations.threadGoal.save': '저장',
'conversations.threadGoal.cancel': '취소',
'conversations.threadGoal.edit': '목표 편집',
'conversations.threadGoal.clear': '목표 지우기',
'conversations.threadGoal.complete': '완료로 표시',
'conversations.threadGoal.pause': '일시 중지',
'conversations.threadGoal.resume': '재개',
'conversations.threadGoal.tokensSuffix': '토큰',
'conversations.threadGoal.status.active': '활성',
'conversations.threadGoal.status.paused': '일시 중지됨',
'conversations.threadGoal.status.budget_limited': '예산 도달',
'conversations.threadGoal.status.complete': '완료',
'conversations.taskKanban.approval.default': '기본값',
'conversations.taskKanban.approval.notRequired': '필요 없음',
'conversations.taskKanban.approval.notRequiredBadge': '승인 없음',
'conversations.taskKanban.approval.required': '필수',
'conversations.taskKanban.approval.requiredBadge': '승인',
'conversations.taskKanban.approval.requiredBeforeExecution': '실행 전 필수',
'conversations.taskKanban.briefButton': '작업 브리프',
'conversations.taskKanban.briefTitle': '작업 브리프',
'conversations.taskKanban.closeBrief': '작업 브리프 닫기',
'conversations.taskKanban.field.acceptanceCriteria': '수락 기준',
'conversations.taskKanban.field.allowedTools': '허용된 도구',
'conversations.taskKanban.field.approval': '승인',
'conversations.taskKanban.field.assignedAgent': '할당된 에이전트',
'conversations.taskKanban.field.blocker': '차단 요소',
'conversations.taskKanban.field.evidence': '증거',
'conversations.taskKanban.field.notes': '메모',
'conversations.taskKanban.field.objective': '목표',
'conversations.taskKanban.field.plan': '계획',
'conversations.taskKanban.field.status': '상태',
'conversations.taskKanban.field.title': '제목',
'conversations.taskKanban.saveChanges': '변경 사항 저장',
'conversations.taskKanban.deleteCard': '삭제',
'conversations.taskKanban.workTask': '작업 시작',
'conversations.taskKanban.viewWork': '작업 보기',
'conversations.taskKanban.startingTask': '시작 중…',
'conversations.taskKanban.updateFailed':
'작업을 업데이트할 수 없어 변경 사항이 저장되지 않았습니다.',
'conversations.taskKanban.sourcesButton': '소스',
'conversations.taskKanban.source.openExternal': '외부 작업 열기',
'conversations.taskKanban.source.openExternalShort': '열기',
'conversations.taskKanban.source.unknownProvider': '알 수 없는 소스',
'conversations.taskKanban.source.urgencyValue': '긴급도 {percent}%',
'conversations.taskKanban.sources.desktopOnly':
'작업 소스 제어는 데스크톱 앱에서 사용할 수 있습니다.',
'conversations.taskKanban.sources.title': '작업 소스',
'conversations.taskKanban.sources.statusEnabled': '자동 폴링 켜짐',
'conversations.taskKanban.sources.manage': '소스 관리',
'conversations.taskKanban.source.title': '소스',
'conversations.taskKanban.source.sourceId': '소스 ID',
'conversations.taskKanban.source.externalId': '외부 ID',
'conversations.taskKanban.source.repo': '저장소',
'conversations.taskKanban.source.urgency': '긴급도',
'conversations.toolTimeline.turn': '턴',
'conversations.toolTimeline.step': '단계',
'conversations.toolTimeline.workerThread': '워커 스레드',
'conversations.subagent.viewProcessing': '전체 처리 과정 보기',
'conversations.subagent.parent': '상위',
'conversations.subagent.thinking': '생각 중',
'conversations.subagent.thoughts': '생각',
'conversations.subagent.response': '응답',
'conversations.subagent.toolCalls': '도구 호출',
'conversations.subagent.working': '작업 중…',
'conversations.subagent.noOutputYet': '아직 출력이 없습니다',
'conversations.subagent.input': '입력',
'conversations.subagent.output': '출력',
'conversations.subagent.noOutput': '반환된 출력 없음',
'conversations.subagent.close': '닫기',
'conversations.subagent.cancel': '작업 취소',
'conversations.subagent.cancelling': '취소 중…',
'conversations.subagent.cancelFailed': '작업을 취소할 수 없습니다. 다시 시도하세요.',
'conversations.subagent.statusRunning': '실행 중',
'conversations.subagent.statusCompleted': '완료됨',
'conversations.subagent.statusFailed': '실패',
'conversations.subagent.statusAwaitingUser': '사용자 대기 중',
'conversations.subagent.statusCancelled': '취소됨',
'conversations.agentTaskInsights.title': '에이전트 작업 인사이트',
'conversations.agentTaskInsights.response': '응답',
'conversations.agentTaskInsights.processSourceTitle': '에이전트 프로세스 소스',
'conversations.agentTaskInsights.stepsHeading': '단계',
'conversations.agentTaskInsights.sourcesHeading': '소스',
'conversations.agentTaskInsights.noSteps': '기록된 단계 없음',
'conversations.agentTaskInsights.viewProcessSource': '전체 에이전트 프로세스 소스 보기',
'conversations.agentTaskInsights.processing': '처리 중',
'daemon.serviceBlockingGate.body': '본문',
'daemon.serviceBlockingGate.downloadHint': '다운로드 안내',
'daemon.serviceBlockingGate.downloadLatest': '최신 버전 다운로드',
'daemon.serviceBlockingGate.retryCore': '코어 다시 시도',
'daemon.serviceBlockingGate.retryFailed':
'다시 시도에 실패했습니다. 최신 앱 빌드를 다운로드하고 다시 시도하세요.',
'daemon.serviceBlockingGate.retrying': '다시 시도 중...',
'daemon.serviceBlockingGate.title': 'OpenHuman 코어를 사용할 수 없습니다',
'home.banners.discordSubtitle': 'Discord 부제목',
'home.banners.discordTitle': 'Discord 참여하기',
'home.banners.earlyBirdDismiss': '얼리버드 배너 닫기',
'home.banners.earlyBirdFirstSub': '첫 구독.',
'home.banners.earlyBirdOn': '얼리버드 적용',
'home.banners.earlyBirdTitle': '첫 1,000명의 사용자는 60% 할인을 받습니다.',
'home.banners.earlyBirdUseCode': '얼리버드 코드 사용',
'home.banners.getSubscription': '구독하기',
'home.banners.promoCreditsBody': '프로모션 크레딧 {amount}이(가) 있어요. 다음을 할 수 있어요:',
'home.banners.promoCreditsUsage': '10배 더 많은 사용량을 받으세요.',
'intelligence.memoryChunk.detail.chunk': '청크',
'intelligence.memoryChunk.detail.copyChunkId': '청크 ID 복사',
'intelligence.memoryChunk.detail.embeddingInfo': 'bge-m3 1024dim',
'intelligence.memoryChunk.detail.noEmbedding': '임베딩 없음',
'intelligence.memoryChunk.letterhead.from': '보낸 사람',
'intelligence.memoryChunk.letterhead.to': '받는 사람',
'intelligence.memoryChunk.mentioned.chunkOne': '청크 1개',
'intelligence.memoryChunk.mentioned.chunkOther': '청크 {count}개',
'intelligence.memoryChunk.mentioned.heading': '언급됨',
'intelligence.memoryChunk.scoreBars.ariaScore': '{name} 점수 {pct}퍼센트',
'intelligence.memoryChunk.scoreBars.atThreshold': '{threshold} 기준',
'intelligence.memoryChunk.scoreBars.dropped': '제외됨',
'intelligence.memoryChunk.scoreBars.heading': '유지된 이유',
'intelligence.memoryChunk.scoreBars.kept': '유지됨',
'intelligence.diagram.title': '아키텍처 다이어그램',
'intelligence.diagram.description':
'구성된 다이어그램 엔드포인트에서 가져온 최신 로컬 아키텍처 출력입니다.',
'intelligence.diagram.refresh': 'Refresh',
'intelligence.diagram.refreshAria': '다이어그램 새로 고침',
'intelligence.diagram.emptyTitle': '아직 사용 가능한 다이어그램이 없습니다',
'intelligence.diagram.emptyDescription':
'오케스트레이터에서 아키텍처 다이어그램을 생성하면 이 패널이 구성된 로컬 엔드포인트에서 새로 고침됩니다.',
'intelligence.diagram.skillInstallCommand': 'npx skills add yizhiyanhua-ai/fireworks-tech-graph',
'intelligence.diagram.promptExample':
'현재 스웜의 아키텍처 다이어그램을 다크 터미널 스타일로 생성하세요',
'intelligence.diagram.imageAlt': '최신 생성된 OpenHuman 아키텍처 다이어그램',
'intelligence.diagram.refreshesEvery': '{seconds}초마다 새로 고침',
'intelligence.memoryText.entityTypePrefix': '엔터티 유형',
'intelligence.screenDebug.active': '활성',
'intelligence.screenDebug.app': '앱',
'intelligence.screenDebug.bounds': '경계',
'intelligence.screenDebug.captureAlt': '캡처 테스트 결과',
'intelligence.screenDebug.captureFailed': '실패',
'intelligence.screenDebug.captureSuccess': '성공',
'intelligence.screenDebug.captureTest': '캡처 테스트',
'intelligence.screenDebug.capturing': '캡처 중',
'intelligence.screenDebug.frames': '프레임',
'intelligence.screenDebug.idle': '유휴',
'intelligence.screenDebug.lastApp': '마지막 앱',
'intelligence.screenDebug.mode': '모드',
'intelligence.screenDebug.permAccessibility': '접근성 권한',
'intelligence.screenDebug.permInput': '입력 권한',
'intelligence.screenDebug.permScreen': '접근성',
'intelligence.screenDebug.permissions': '권한',
'intelligence.screenDebug.platformNotSupported': '플랫폼이 지원되지 않음',
'intelligence.screenDebug.recentVisionSummaries': '최근 비전 요약',
'intelligence.screenDebug.session': '세션',
'intelligence.screenDebug.size': '크기',
'intelligence.screenDebug.status': '상태',
'intelligence.screenDebug.testCapture': '테스트 캡처',
'intelligence.screenDebug.time': '시간',
'intelligence.screenDebug.title': '제목',
'intelligence.screenDebug.unknown': '알 수 없음',
'intelligence.screenDebug.visionQueue': '비전 대기열',
'intelligence.screenDebug.visionState': '비전 상태',
'intelligence.tasks.activeBoardOne': '대화 전반에 활성 보드 1개',
'intelligence.tasks.activeBoardOther': '대화 전반에 활성 보드 {count}개',
'intelligence.tasks.empty': '아직 에이전트 작업 보드가 없습니다',
'intelligence.tasks.emptyHint': '빈 상태 안내',
'intelligence.tasks.failedToLoad': '불러오지 못했습니다',
'intelligence.tasks.live': '실시간',
'intelligence.tasks.loadingBoards': '작업 보드 불러오는 중…',
'intelligence.tasks.threadPrefix': '스레드 {thread}',
'intelligence.tasks.subtitle': '워크스페이스 전반의 내 작업과 에이전트 작업 보드입니다.',
'intelligence.tasks.newTask': '새 작업',
'intelligence.tasks.personalBoardTitle': '에이전트 작업',
'intelligence.tasks.personalEmpty': '아직 개인 작업이 없습니다',
'intelligence.tasks.composer.title': '새 작업',
'intelligence.tasks.composer.titleLabel': '제목',
'intelligence.tasks.composer.titlePlaceholder': '무엇을 해야 하나요?',
'intelligence.tasks.composer.statusLabel': '상태',
'intelligence.tasks.composer.attachLabel': '대화에 첨부',
'intelligence.tasks.composer.attachNone': '개인용(대화 없음)',
'intelligence.tasks.composer.objectiveLabel': '목표',
'intelligence.tasks.composer.objectivePlaceholder': '선택 사항 — 원하는 결과',
'intelligence.tasks.composer.notesLabel': '메모',
'intelligence.tasks.composer.notesPlaceholder': '선택 사항 메모',
'intelligence.tasks.composer.create': '작업 만들기',
'intelligence.tasks.composer.creating': '만드는 중…',
'intelligence.tasks.composer.createFailed': '작업을 만들 수 없습니다',
'intelligence.tasks.composer.assignAgentLabel': '에이전트가 이 작업을 자동으로 처리하도록 하기',
'intelligence.tasks.composer.assignAgentHint':
'작업 보드가 이를 가져와 대신 실행합니다. 일반 개인 할 일은 꺼 두세요.',
'intelligence.tasks.sourceList.subtitle': '에이전트 작업으로 전환될 소스 작업입니다.',
'intelligence.tasks.sourceList.empty': '대기 중인 소스 작업이 없습니다.',
'intelligence.tasks.sourceList.queued': '대기열에 추가됨',
'intelligence.tasks.sourceList.workOnTask': '작업 시작',
'intelligence.tasks.sourcePlan.title': '소스 작업 다듬기',
'intelligence.tasks.sourcePlan.subtitle': '에이전트 작업을 만들기 전에 리서치 초안을 검토하세요.',
'intelligence.tasks.sourcePlan.researchAgent': '리서치 에이전트 초안',
'intelligence.tasks.sourcePlan.approve': '계획 승인',
'intelligence.tasks.sourcePlan.creating': '작업 만드는 중…',
'intelligence.tasks.sourcePlan.createFailed': '에이전트 작업을 만들 수 없습니다',
'intelligence.tasks.workTaskFailed': '작업을 시작할 수 없습니다',
'intelligence.workTask.sourceTaskHeading': '소스 작업:',
'intelligence.workTask.repositoryLine': '- 저장소: {repo}',
'intelligence.workTask.externalIdLine': '- 외부 ID: {externalId}',
'intelligence.workTask.urlLine': '- 링크: {url}',
'intelligence.workTask.closingInstruction':
'먼저 구체적인 구현 계획을 간략히 다시 설명한 다음 실행하세요. 이 스레드에서 진행 상황을 계속 보이게 하고 작업 상태가 바뀌면 작업 보드를 업데이트하세요.',
'intelligence.agentWork.subtitle':
'모든 백그라운드 에이전트 실행을 수명 주기 상태별로 그룹화합니다.',
'intelligence.agentWork.loading': '에이전트 작업 불러오는 중…',
'intelligence.agentWork.failedToLoad': '에이전트 작업을 불러오지 못했습니다',
'intelligence.agentWork.empty': '아직 백그라운드 에이전트 실행이 없습니다.',
'intelligence.agentWork.bucket.needsInput': '입력 필요',
'intelligence.agentWork.bucket.working': '작업 중',
'intelligence.agentWork.bucket.completed': '완료됨',
'intelligence.agentWork.bucket.failed': '실패',
'intelligence.agentWork.bucket.stopped': '중지됨',
'intelligence.agentWork.column.agent': '에이전트',
'intelligence.agentWork.column.status': '상태',
'intelligence.agentWork.column.elapsed': '경과 시간',
'intelligence.agentWork.column.cost': '비용',
'intelligence.agentWork.column.tokens': '토큰',
'intelligence.agentWork.status.pending': '대기 중',
'intelligence.agentWork.status.running': '실행 중',
'intelligence.agentWork.status.awaitingUser': '입력 필요',
'intelligence.agentWork.status.paused': '일시 중지됨',
'intelligence.agentWork.status.completed': '완료됨',
'intelligence.agentWork.status.failed': '실패',
'intelligence.agentWork.status.cancelled': '취소됨',
'intelligence.agentWork.status.interrupted': '중단됨',
'intelligence.agentWork.kind.subagent': '하위 에이전트',
'intelligence.agentWork.kind.workerThread': '워커 스레드',
'intelligence.agentWork.kind.backgroundAgent': '백그라운드 에이전트',
'intelligence.agentWork.kind.teamMember': '팀 구성원',
'intelligence.agentWork.kind.workflowChild': '워크플로 하위 항목',
'intelligence.agentWork.openThread': '스레드 열기',
'intelligence.agentWork.openWorker': '워커 열기',
'worktree.label': '워크트리',
'worktree.dirty': '커밋되지 않은 변경 사항',
'worktree.clean': '깨끗함',
'worktree.changedFile': '변경된 파일',
'worktree.changedFiles': '변경된 파일',
'worktree.removing': '제거 중…',
'worktree.removeFailed': '워크트리 제거 실패',
'worktree.diffFailed': 'diff 불러오기 실패',
'worktree.diffLoading': 'diff 불러오는 중…',
'worktree.diffEmpty': 'HEAD 대비 변경 사항이 없습니다.',
'worktree.dirtyConfirm':
'이 워크트리에는 커밋되지 않은 변경 사항이 있습니다. 제거하면 해당 작업이 삭제됩니다. 워커 브랜치는 유지됩니다.',
'worktree.action.open': '폴더 열기',
'worktree.action.diff': 'Diff',
'worktree.action.hideDiff': 'diff 숨기기',
'worktree.action.remove': '제거',
'worktree.action.removeAnyway': '버리고 제거',
'worktree.action.preserve': '보존',
'worktree.panel.subtitle': '병렬 에이전트 워커가 생성한 격리된 git 워크트리입니다.',
'worktree.panel.loading': '워크트리 불러오는 중…',
'worktree.panel.failedToLoad': '워크트리 불러오기 실패',
'worktree.panel.empty':
'격리된 워크트리가 없습니다. 워크트리 격리를 사용하는 병렬 워커가 여기에 표시됩니다.',
'worktree.panel.overlapsTitle': '겹치는 변경 사항',
'worktree.panel.overlapHint':
'이 파일들은 둘 이상의 워크트리에서 변경되었습니다 — 병합하기 전에 조정하세요.',
'intelligence.agentWork.action.stop': '중지',
'intelligence.agentWork.action.retry': '다시 시도',
'intelligence.agentWork.action.continue': '계속',
'intelligence.agentWork.action.followUp': '후속 조치',
'intelligence.agentWork.action.send': '보내기',
'intelligence.agentWork.action.cancel': '취소',
'intelligence.agentWork.action.continuePlaceholder':
'이 에이전트의 차단을 해제하려면 답장하세요…',
'intelligence.agentWork.action.followUpPlaceholder': '후속 지시를 보내세요…',
'intelligence.agentWork.action.failed': '작업 실패',
'intelligence.teams.subtitle': '조율된 에이전트 팀과 그들이 공유하는 작업.',
'intelligence.teams.loading': '팀 로딩 중…',
'intelligence.teams.failedToLoad': '팀을 불러오지 못했습니다',
'intelligence.teams.empty': '아직 에이전트 팀이 없습니다',
'intelligence.teams.emptyHint':
'에이전트가 하나의 목표를 공유하기 위해 조율된 하위 에이전트를 생성하면 팀이 여기에 표시됩니다.',
'intelligence.teams.refresh': '새로고침',
'intelligence.teams.backToList': '모든 팀',
'intelligence.teams.status.active': '활성',
'intelligence.teams.status.closed': '종료됨',
'intelligence.teams.header.lead': '리드',
'intelligence.teams.header.taskCount': '작업 {count}개',
'intelligence.teams.header.memberCount': '구성원 {count}명',
'intelligence.teams.member.active': '활성',
'intelligence.teams.member.pending': '대기 중',
'intelligence.teams.member.idle': '유휴',
'intelligence.teams.member.stopped': '중지됨',
'intelligence.teams.column.todo': '할 일',
'intelligence.teams.column.ready': '준비됨',
'intelligence.teams.column.inProgress': '진행 중',
'intelligence.teams.column.blocked': '차단됨',
'intelligence.teams.column.done': '완료',
'intelligence.teams.emptyColumn': '비어 있음',
'intelligence.teams.unclaimed': '미할당',
'intelligence.teams.pickedUpBy': '{name}님이 맡음',
'intelligence.teams.depLockTitle': '충족되지 않은 종속성 {count}개',
'intelligence.teams.gate.pending': '게이트 대기 중',
'intelligence.teams.gate.passed': '게이트 통과',
'intelligence.teams.gate.failed': '게이트 실패',
'intelligence.teams.gate.label': '게이트: {status}',
'intelligence.teams.activity.title': '팀 활동',
'intelligence.teams.activity.empty': '아직 메시지가 없습니다',
'intelligence.teams.activity.toTeam': '팀',
'intelligence.teams.member.start': '시작',
'intelligence.teams.composer.placeholder': '메시지를 입력하세요…',
'intelligence.teams.composer.send': '보내기',
'intelligence.teams.composer.recipient': '받는 사람',
'intelligence.teams.composer.toTeam': '전체 팀',
'intelligence.teams.action.blocked': '종속성 대기 중',
'intelligence.teams.action.alreadyClaimed': '다른 팀원이 이미 맡고 있습니다.',
'intelligence.teams.action.alreadyActive': '팀원이 이미 실행 중입니다',
'intelligence.teams.action.noClaimableTask': '이 팀원이 맡을 작업이 없습니다.',
'intelligence.teams.action.unknownTask': '작업을 찾을 수 없음',
'intelligence.refine.objectiveDefault':
'소스 작업을 구현 준비가 된 에이전트 작업으로 전환하세요: {title}',
'intelligence.refine.sourceLine': '소스: {url}',
'intelligence.refine.sourceIntake': '소스: 작업 소스 수집',
'intelligence.refine.repositoryLine': '저장소: {repo}',
'intelligence.refine.externalTaskLine': '외부 작업: {externalId}',
'intelligence.refine.planStep1': '연결된 소스 작업을 읽고 요청된 정확한 동작을 확인하세요.',
'intelligence.refine.planStep2': '관련 코드 경로를 검토하고 가장 작은 구현 경계를 식별하세요.',
'intelligence.refine.planStep3':
'사용자에게 보이는 동작을 중심으로 한 집중 테스트와 함께 변경을 구현하세요.',
'intelligence.refine.planStep4': '대상 검증을 실행하고 남은 위험이나 후속 작업을 기록하세요.',
'intelligence.refine.acceptance1': '소스 작업 요구 사항이 최종 구현에 반영되어 있습니다.',
'intelligence.refine.acceptance2': '관련 단위 또는 통합 테스트가 변경된 동작을 다룹니다.',
'intelligence.refine.acceptance3': '검증 결과와 해결되지 않은 위험이 완료 시 기록됩니다.',
'notifications.card.dismiss': '알림 닫기',
'notifications.card.importanceTitle': '중요도: {pct}%',
'notifications.center.empty': '아직 알림이 없습니다',
'notifications.center.emptyHint': '빈 상태 안내',
'notifications.center.filterAll': '전체 필터',
'notifications.center.markAllRead': '모두 읽음으로 표시',
'notifications.center.title': '알림',
'notifications.meeting.joinListen': '참여 (듣기 전용)',
'notifications.meeting.joinActive': '참여 및 응답',
'notifications.meeting.skip': '이건 아니에요',
'notifications.meeting.alwaysJoin': '항상 참여',
'notifications.meeting.actionError': '작업을 완료할 수 없습니다. 다시 시도해 주세요.',
'oauth.button.connecting': '연결 중...',
'oauth.button.loopbackTimeout':
'로그인 시간 초과 — 브라우저가 OAuth 리디렉션을 완료하지 못했습니다. 다시 시도해 주세요.',
'oauth.login.continueWith': '다음으로 계속:',
'onboarding.contextGathering.buildingDesc': '작성 설명',
'onboarding.contextGathering.buildingProfile': '프로필을 만드는 중...',
'onboarding.contextGathering.continueToChat': '채팅으로 계속',
'onboarding.contextGathering.coreAlive':
'Core에 접근 가능합니다. 처음 실행하는 데 1분 정도 걸릴 수 있습니다.',
'onboarding.contextGathering.coreAliveProbing': '코어 연결 확인 중…',
'onboarding.contextGathering.coreUnreachable':
'코어가 응답하지 않습니다. 계속해서 나중에 다시 시도할 수 있습니다.',
'onboarding.contextGathering.errorDesc':
'채팅이 준비되었습니다. 전체 프로필은 백그라운드에서 계속 만들 예정이므로 지금 계속하고 나중에 점진적으로 개선할 수 있습니다.',
'onboarding.contextGathering.stillWorkingDesc':
'로컬 모델과 도구를 준비하는 동안 처음 실행하는 데 30~60초 정도 걸릴 수 있습니다. 언제든지 계속 채팅할 수 있습니다. 프로필 빌드는 백그라운드에서 계속 실행됩니다.',
'onboarding.contextGathering.stillWorkingTitle': '아직 프로필 작업 중입니다…',
'onboarding.contextGathering.title': '컨텍스트 수집',
'openhuman.team_list_teams': '팀 목록 팀',
'overlay.ariaAttention': '주의 메시지',
'overlay.ariaCompanion': '컴패니언 활성',
'overlay.ariaOrb': 'OpenHuman 오버레이',
'overlay.ariaVoiceActive': '음성 입력 활성',
'overlay.companion.error': '오류',
'overlay.companion.listening': '듣는 중…',
'overlay.companion.pointing': '가리키는 중…',
'overlay.companion.speaking': '말하는 중…',
'overlay.companion.thinking': '생각 중...',
'overlay.orbTitle': '드래그하여 이동 · 두 번 클릭하여 위치 초기화',
'pages.settings.account.connections': '연결',
'pages.settings.account.connectionsDesc': '연결된 계정 연결을 검토하고 관리합니다',
'pages.settings.account.migration': '다른 어시스턴트에서 가져오기',
'pages.settings.account.migrationDesc':
'OpenClaw(또는 곧 Hermes)의 메모리와 메모를 이 작업 공간으로 마이그레이션합니다.',
'pages.settings.account.privacy': '개인정보 보호',
'pages.settings.account.privacyDesc': '데이터 공유 및 익명화된 사용 기본 설정을 관리합니다',
'pages.settings.account.recoveryPhrase': '복구 문구',
'pages.settings.account.recoveryPhraseDesc':
'암호화 및 지갑 접근을 위한 BIP39 복구 문구를 관리합니다',
'pages.settings.account.team': '팀',
'pages.settings.account.teamDesc': '팀, 멤버 및 초대를 관리합니다',
'pages.settings.accountSection.description': '복구 문구, 팀, 연결 및 개인정보 설정.',
'pages.settings.accountSection.title': '계정',
'pages.settings.ai.llm': 'LLM',
'pages.settings.ai.llmDesc': 'LLM 설명',
'pages.settings.ai.voice': '음성',
'pages.settings.ai.voiceDesc': '음성 설명',
'pages.settings.aiSection.description': '언어 모델 제공업체, 로컬 Ollama 및 음성(STT / TTS).',
'pages.settings.aiSection.title': 'AI',
'settings.developerMenu.composio.title': 'Composio',
'settings.developerMenu.composio.desc': '라우팅 모드, 통합 트리거 및 트리거 기록 아카이브.',
'pages.settings.features.desktopCompanion': '데스크탑 동반자',
'pages.settings.features.desktopCompanionDesc':
'화면 인식 기능이 있는 음성 도우미 — 듣고, 보고, 말하고, 가리킵니다.',
'pages.settings.features.messagingChannels': '메시징 채널',
'pages.settings.features.messagingChannelsDesc': '메시징 채널 설명',
'pages.settings.features.notifications': '알림',
'pages.settings.features.notificationsDesc': '알림 설명',
'pages.settings.features.screenAwareness': '화면 인식',
'pages.settings.features.screenAwarenessDesc': '화면 인식 설명',
'pages.settings.features.tools': '도구',
'pages.settings.features.toolsDesc': '도구 설명',
'pages.settings.featuresSection.description': '화면 인식, 메시징 및 도구.',
'pages.settings.featuresSection.title': '기능',
'privacy.dataKind.credentials': '자격 증명',
'privacy.dataKind.derived': '파생됨',
'privacy.dataKind.diagnostics': '진단',
'privacy.dataKind.metadata': '메타데이터',
'privacy.dataKind.raw': '원본',
'privacy.whatLeaves.link.label': '내 컴퓨터를 떠나는 데이터는 무엇인가요?',
'rewards.community.achievementsUnlocked': '{total}개 중 {unlocked}개 업적 잠금 해제됨',
'rewards.community.connectDiscord': 'Discord 연결',
'rewards.community.connectDiscordError': 'Discord 연결을 시작할 수 없습니다. 다시 시도해 주세요.',
'rewards.community.connectingDiscord': '연결 중…',
'rewards.community.cumulativeTokens': '누적 토큰',
'rewards.community.currentStreak': '현재 연속 기록',
'rewards.community.disconnectDiscord': '연결 해제',
'rewards.community.disconnectDiscordError':
'Discord 연결을 해제하지 못했습니다. 다시 시도해 주세요.',
'rewards.community.disconnectingDiscord': '연결 해제 중…',
'rewards.community.discordAccount': 'Discord 계정',
'rewards.community.discordConnected': 'Discord 연결됨',
'rewards.community.discordConnectedAs': '{username}(으)로 연결됨',
'rewards.community.discordLinkedNotInGuild': '연결됨, 하지만 서버 멤버가 아님',
'rewards.community.discordMember': '서버에 참여함',
'rewards.community.discordNotLinked': '연결되지 않음',
'rewards.community.discordServer': 'Discord 서버',
'rewards.community.discordStatusUnavailable': '멤버십 상태를 사용할 수 없음',
'rewards.community.discordWaiting': '백엔드 동기화 대기 중',
'rewards.community.heroSubtitle':
'Discord 계정을 연결하여 독점 채널, 후원자 배지 및 백엔드 동기화 보상을 잠금 해제하세요.',
'rewards.community.heroTitle': '보상 및 Discord 역할 받기',
'rewards.community.joinDiscord': 'Discord 참여',
'rewards.community.loadingRewards': '보상 불러오는 중…',
'rewards.community.locked': '잠김',
'rewards.community.retrying': '다시 시도 중…',
'rewards.community.roleAssigned': '역할이 부여됨',
'rewards.community.roleAssignmentCount': '{unlocked}개 중 {assigned}개 역할 부여됨',
'rewards.community.roleClaimDesc':
'Discord 역할을 잠금 해제했지만 아직 OpenHuman 서버에 참여하지 않았습니다. 참여하면 자동으로 부여됩니다.',
'rewards.community.roleClaimTitle': 'Discord 역할 받기',
'rewards.community.roleJoinToClaim': '받으려면 서버 참여',
'rewards.community.rolePending': '역할 동기화 중…',
'rewards.community.rolesAndRewards': '역할 및 보상',
'rewards.community.streakDays': '{n}일',
'rewards.community.syncPending': '보상 동기화 대기 중',
'rewards.community.syncPendingDesc': '동기화 대기 설명',
'rewards.community.syncUnavailable': '동기화를 사용할 수 없음',
'rewards.community.tryAgain': '다시 시도 중…',
'rewards.community.unknown': '알 수 없음',
'rewards.community.unlocked': '잠금 해제됨',
'rewards.community.yourProgress': '내 진행 상황',
'rewards.coupon.colCode': '코드',
'rewards.coupon.colRedeemed': '교환됨',
'rewards.coupon.colReward': '보상',
'rewards.coupon.colStatus': '상태',
'rewards.coupon.loadingHistory': '보상 기록 불러오는 중…',
'rewards.coupon.noCodes': '아직 교환된 보상 코드가 없습니다.',
'rewards.coupon.pending': '대기 중',
'rewards.coupon.placeholder': '쿠폰 코드',
'rewards.coupon.promoCredits': '프로모션 크레딧',
'rewards.coupon.recentRedemptions': '최근 교환',
'rewards.coupon.redeemAccepted':
'{code}이(가) 승인되었습니다. 필요한 작업이 완료되면 {amount}이(가) 잠금 해제됩니다.',
'rewards.coupon.redeemButton': '코드 교환',
'rewards.coupon.redeemSuccess':
'{code}이(가) 교환되었습니다. {amount}이(가) 크레딧에 추가되었습니다.',
'rewards.coupon.redeemedCodes': '교환된 코드',
'rewards.coupon.redeeming': '교환 중...',
'rewards.coupon.statusApplied': '적용됨',
'rewards.coupon.statusPendingAction': '작업 대기 중',
'rewards.coupon.statusRedeemed': '교환됨',
'rewards.coupon.subtitle': '부제목',
'rewards.coupon.title': '쿠폰 코드 교환',
'rewards.referralSection.activity': '추천 활동',
'rewards.referralSection.apply': '적용 중…',
'rewards.referralSection.applying': '적용 중…',
'rewards.referralSection.colReferredUser': '추천된 사용자',
'rewards.referralSection.colReward': '보상',
'rewards.referralSection.colStatus': '상태',
'rewards.referralSection.colUpdated': '업데이트됨',
'rewards.referralSection.completed': '완료됨',
'rewards.referralSection.copyCode': '코드 복사',
'rewards.referralSection.copyFailed': '복사 실패',
'rewards.referralSection.haveCode': '추천 코드가 있나요?',
'rewards.referralSection.haveCodeDesc': '코드 있음 설명',
'rewards.referralSection.linked': '연결됨',
'rewards.referralSection.linkedCode': '(코드 {code})',
'rewards.referralSection.loading': '추천 프로그램 불러오는 중…',
'rewards.referralSection.retry': '재시도',
'rewards.referralSection.noReferrals': '추천 없음',
'rewards.referralSection.pendingReferrals': '대기 중인 추천',
'rewards.referralSection.placeholder': '추천 코드',
'rewards.referralSection.share': '공유',
'rewards.referralSection.statusCompleted': '완료 상태',
'rewards.referralSection.statusExpired': '만료 상태',
'rewards.referralSection.statusJoined': '참여 상태',
'rewards.referralSection.subtitle': '부제목',
'rewards.referralSection.title': '친구를 초대하고 크레딧 받기',
'rewards.referralSection.totalEarned': '총 적립',
'rewards.referralSection.yourCode': '내 코드',
'settings.ai.addCloudProvider': '클라우드 제공업체 추가',
'settings.ai.addProvider': '저장 중…',
'settings.ai.apiKeyFieldLabel': 'API 키 필드 라벨',
'settings.ai.apiKeyRequired': '계속하려면 API 키를 붙여넣어 주세요.',
'settings.ai.apiKeyStoredEncrypted': 'API 키가 암호화되어 저장됨',
'settings.ai.apiKeysEncrypted': 'auth-profiles.json',
'settings.ai.clearStoredKey': '저장된 키 지우기',
'settings.ai.connectProvider': '제공업체 연결',
'settings.ai.customRouting': '사용자 지정 라우팅',
'settings.ai.defaultResolvesTo': '기본값은 다음으로 확인됨',
'settings.ai.discard': '취소',
'settings.ai.editProvider': '제공업체 편집',
'settings.ai.llmProviders': 'LLM 제공업체',
'settings.ai.llmProvidersDesc': 'LLM 제공업체 설명',
'settings.ai.localOllama': '로컬(Ollama)',
'settings.ai.modelLabel': '모델',
'settings.ai.noCustomProviders': '사용자 지정 제공업체 없음',
'settings.ai.openAiCompat.authHeaderExample': '권한 부여: Bearer <your key>',
'settings.ai.openAiCompat.authHeaderLabel': '인증 헤더',
'settings.ai.openAiCompat.baseUrlLabel': '기본 URL',
'settings.ai.openAiCompat.baseUrlUnavailable': '사용할 수 없음',
'settings.ai.openAiCompat.clearKey': '키 지우기',
'settings.ai.openAiCompat.description':
'로컬 하네스를 이 /v1 서버로 지정하면 아래에 구성된 제공업체를 통해 라우팅됩니다. 인증에는 앱 내부 코어 bearer가 아니라 여기에서 설정한 고정 키를 사용합니다.',
'settings.ai.openAiCompat.keyConfigured': '키 구성됨',
'settings.ai.openAiCompat.keyRequired': '키 필요',
'settings.ai.openAiCompat.rotateKey': '키 회전',
'settings.ai.openAiCompat.setKey': '키 설정',
'settings.ai.openAiCompat.title': 'OpenAI 호환 엔드포인트',
'settings.ai.providerLabel': '제공업체',
'skills.mcpComingSoon.title': 'MCP 서버',
'skills.mcpComingSoon.description':
'MCP 서버 관리가 곧 제공됩니다. 이 탭에서 MCP 서버 통합을 검색, 연결 및 모니터링할 수 있게 됩니다.',
'settings.ai.routing': '라우팅',
'settings.ai.claudeCode.button': 'Claude Code',
'settings.ai.claudeCode.inlineNotConnected':
'연결되지 않음 — 로컬 Claude Code CLI를 통해 채팅을 라우팅합니다.',
'settings.ai.claudeCode.checkingSignIn': '로그인 확인 중…',
'settings.ai.claudeCode.inlineConnected': '연결됨.',
'settings.ai.claudeCode.signedInAs': '로그인 계정',
'settings.ai.claudeCode.subscriptionFallback': 'Claude 구독',
'settings.ai.claudeCode.usingApiKeyEnv': 'ANTHROPIC_API_KEY 사용 중',
'settings.ai.claudeCode.cliNotInstalled': 'CLI가 설치되지 않음',
'settings.ai.claudeCode.signInUnknown': '로그인 상태 알 수 없음',
'settings.ai.claudeCode.connectedNotSignedIn': '연결됨 · 로그인되지 않음',
'settings.ai.claudeCode.modalTitle': 'Claude Code CLI',
'settings.ai.claudeCode.modalDescription':
'채팅, 에이전트, 추론 작업을 로컬에 설치된 Claude Code CLI를 통해 라우팅합니다. API 키가 필요 없으며 CLI 자체 로그인을 사용합니다.',
'settings.ai.claudeCode.close': '닫기',
'settings.ai.claudeCode.connection': '연결',
'settings.ai.claudeCode.enabled': '사용 설정됨',
'settings.ai.claudeCode.notEnabled': '사용 설정 안 됨',
'settings.ai.claudeCode.disconnect': '연결 해제',
'settings.ai.claudeCode.disconnecting': '연결 해제 중…',
'settings.ai.claudeCode.enable': 'Claude Code 사용 설정',
'settings.ai.claudeCode.enabling': '사용 설정 중…',
'settings.ai.claudeCode.authentication': '인증',
'settings.ai.claudeCode.recheck': '다시 확인',
'settings.ai.claudeCode.checking': '확인 중…',
'settings.ai.claudeCode.openingTerminal': '터미널 여는 중…',
'settings.ai.claudeCode.signIn': 'Claude로 로그인',
'settings.ai.claudeCode.reconnect': '다시 연결',
'settings.ai.claudeCode.loginHint':
'claude login을 실행하는 터미널을 엽니다. 완료된 후 다시 확인을 클릭하세요.',
'settings.ai.claudeCode.loginError': '로그인 터미널을 열 수 없습니다. 다시 시도해 주세요.',
'settings.ai.claudeCode.fullAccess': '전체 액세스',
'settings.ai.claudeCode.fullAccessOn':
'Claude Code가 명령을 실행하고 네트워크를 사용하며 하위 에이전트를 생성할 수 있습니다.',
'settings.ai.claudeCode.fullAccessOff':
'편집만 수락 — 파일 편집을 자동으로 적용하고 명령과 네트워크를 제한합니다.',
'settings.ai.claudeCode.sandboxNoteMac':
'macOS에서는 두 모드 모두 ~/.openhuman이 샌드박스로 보호됩니다.',
'settings.ai.claudeCode.sandboxNoteOther':
'이 플랫폼에서는 전체 액세스가 제한되지 않습니다 — 작업 공간을 신뢰하는 경우에만 사용 설정하세요.',
'settings.ai.claudeCode.enableToCheck': '로그인을 확인하려면 Claude Code를 사용 설정하세요.',
'settings.ai.claudeCode.usingApiKeyEnvDetail': '환경에서 ANTHROPIC_API_KEY를 사용 중입니다.',
'settings.ai.claudeCode.notFoundInstall':
'Claude Code CLI를 찾을 수 없습니다 — 다음으로 설치하세요: npm install -g @anthropic-ai/claude-code',
'settings.ai.claudeCode.unknownDetail':
'로그인 상태를 확인할 수 없습니다. claude CLI가 인증 상태 지원 이전 버전일 수 있습니다 — 다시 연결한 후 다시 확인하세요.',
'settings.ai.claudeCode.notSignedIn': '로그인되지 않음.',
'settings.ai.routingCustom': '사용자 지정 라우팅',
'settings.ai.routingDefault': '기본값',
'settings.ai.routingDesc': '라우팅 설명',
'settings.ai.saveChanges': '저장 중…',
'settings.ai.saving': '저장 중…',
'settings.ai.unsavedChange': '저장되지 않은 변경 사항',
'settings.ai.unsavedChanges': '저장되지 않은 변경 사항',
'settings.ai.workloadGroupBackground': '백그라운드 작업 그룹',
'settings.ai.workloadGroupChat': '채팅 작업 그룹',
'settings.ai.disconnectProvider': '{label} 연결 끊기',
'settings.ai.connectProviderLabel': '{label} 연결',
'settings.ai.editProviderEndpoint': '{label} 엔드포인트 편집',
'settings.ai.defaultLocalEndpoint': 'http://localhost:11434/v1',
'settings.ai.editEndpoint': '엔드포인트 편집',
'settings.ai.endpointUrlLabel': '끝점 URL',
'settings.ai.localRuntimeHelper':
'{label}에 연결할 수 있는 위치입니다. 기본값은 localhost입니다. 공유 인스턴스를 사용하려면 원격 호스트(예: http://10.0.0.4:11434/v1)를 가리키세요.',
'settings.ai.endpointUrlRequired': '엔드포인트 URL이(가) 필요합니다.',
'settings.ai.endpointProtocolRequired': '엔드포인트는 http:// 또는 https://로 시작해야 합니다.',
'settings.ai.connectProviderDialog': '{label}에 연결',
'settings.ai.getProviderApiKey': 'API Key 받기',
'settings.ai.or': '또는',
'settings.ai.codexOauthMissingAuthUrl':
'Codex OAuth가 인증 URL을 반환하지 않았습니다. 다시 로그인해 보세요.',
'settings.ai.codexOauthMissingCallbackUrl': '로그인한 뒤 브라우저의 리디렉션 URL을 붙여넣으세요.',
'settings.ai.openRouterOauthDescription':
'OpenRouter로 로그인하고 PKCE를 사용해 사용자가 제어하는 API 키를 가져옵니다.',
'settings.ai.connecting': '연결 중...',
'settings.ai.backgroundLoops': '백그라운드 루프',
'settings.ai.backgroundLoopsDesc':
'채팅 메시지 없이 실행되는 항목을 확인하고, 하트비트 작업을 일시 중지하며, 최근 크레딧 원장 행을 검사합니다.',
'settings.ai.heartbeatControls': '하트비트 제어',
'settings.ai.heartbeatControlsDesc':
'기본값은 꺼짐입니다. 활성화하면 루프가 시작되고 비활성화하면 실행 중인 작업이 중단됩니다.',
'settings.ai.heartbeatLoop': '하트비트 루프',
'settings.ai.heartbeatLoopDesc': '플래너 및 선택적 잠재의식 추론을 위한 마스터 스케줄러입니다.',
'settings.ai.subconsciousInference': '잠재의식 추론',
'settings.ai.subconsciousInferenceDesc': '하트비트 틱에서 모델 기반 작업/회고 평가를 실행합니다.',
'settings.ai.calendarMeetingChecks': '캘린더 회의 확인',
'settings.ai.calendarMeetingChecksDesc':
'활성 Google Calendar 연결의 캘린더 이벤트 목록을 호출합니다.',
'settings.ai.calendarCap': '캘린더 캡',
'settings.ai.connectionsPerTick': '틱당 {count}개 연결',
'settings.ai.meetingLookahead': '회의 미리보기',
'settings.ai.minutesShort': '{count}분',
'settings.ai.reminderLookahead': '알림 미리보기',
'settings.ai.cronReminderChecks': '크론 알림 확인',
'settings.ai.cronReminderChecksDesc':
'활성화된 크론 작업에서 알림에 가까운 예정 항목을 스캔합니다.',
'settings.ai.relevantNotificationChecks': '관련 알림 확인',
'settings.ai.relevantNotificationChecksDesc': '긴급한 로컬 알림을 선제적 알림으로 승격합니다.',
'settings.ai.externalDelivery': '외부 전달',
'settings.ai.externalDeliveryDesc':
'하트비트 알림이 외부 채널로 선제적 메시지를 보낼 수 있게 합니다.',
'settings.ai.interval': '간격',
'settings.ai.running': '실행 중...',
'settings.ai.plannerTickNow': '지금 플래너 체크',
'settings.ai.loadingHeartbeatControls': '하트비트 제어 로드 중...',
'settings.ai.heartbeatControlsUnavailable': '하트비트 제어를 사용할 수 없습니다.',
'settings.ai.loopMap': '루프 맵',
'settings.ai.plannerSummary':
'플래너: {sourceEvents} 소스 이벤트, {sent} 전송, {deduped} 중복 제거.',
'settings.ai.routeLabel': '경로: {route}',
'settings.ai.on': '켜짐',
'settings.ai.off': '꺼짐',
'settings.ai.recentUsageLedger': '최근 사용량 원장',
'settings.ai.recentUsageLedgerDesc':
'백엔드 행은 오늘의 작업/시간을 표시합니다. 소스 태그에는 백엔드 지원이 필요합니다.',
'settings.ai.latestSpend': '최근 지출: {time}({action})의 {amount}',
'settings.ai.topActions': '주요 작업',
'settings.ai.noSpendRows': '로드된 지출 행이 없습니다.',
'settings.ai.topHours': '상위 시간',
'settings.ai.noHourlySpend': '아직 시간당 지출이 없습니다.',
'settings.ai.openhumanDefault': 'OpenHuman(기본값)',
'settings.ai.localModelResolved': 'Ollama · {model}',
'settings.ai.customRoutingForWorkload': '{label}에 대한 사용자 정의 라우팅',
'settings.ai.loadingModels': '모델 로드 중...',
'settings.ai.enterModelIdManually': '또는 모델 ID를 수동으로 입력:',
'settings.ai.modelIdPlaceholderForProvider': '{slug} 모델 ID',
'settings.ai.modelIdPlaceholder': 'model-id',
'settings.ai.selectModel': '모델 선택...',
'settings.ai.temperatureOverride': '온도 재정의',
'settings.ai.temperatureOverrideSlider': '온도 재정의(슬라이더)',
'settings.ai.temperatureOverrideValue': '온도 재정의(값)',
'settings.ai.temperatureOverrideDesc':
'낮을수록 더 결정적입니다. 제공업체 기본값을 사용하려면 선택하지 않은 상태로 두세요.',
'settings.ai.modelVision': '비전 지원 (이미지 입력)',
'settings.ai.modelVisionDesc':
'이 모델이 이미지를 지원하면 활성화하세요. 이 모델을 선택하면 채팅 작성기에서 이미지를 첨부할 수 있습니다.',
'settings.ai.testFailed': '테스트 실패',
'settings.ai.testingModel': '모델 테스트 중...',
'settings.ai.modelResponse': '모델 응답',
'settings.ai.providerWithValue': '공급자: {value}',
'settings.ai.noneDash': '—',
'settings.ai.promptHelloWorld': '프롬프트: Hello world',
'settings.ai.startedAt': '시작됨: {value}',
'settings.ai.waitingForModelResponse': '선택한 모델의 응답을 기다리는 중...',
'settings.ai.response': '응답',
'settings.ai.testing': '테스트 중...',
'settings.ai.test': '테스트',
'settings.ai.slugMissingError': '슬러그를 생성하려면 공급자 이름을 입력하세요.',
'settings.ai.slugInUseError': '해당 공급자 이름이 이미 사용 중입니다.',
'settings.ai.slugReservedError': '다른 공급자 이름을 선택하세요.',
'settings.ai.providerNamePlaceholder': '내 공급자',
'settings.ai.slugLabel': '슬러그:',
'settings.ai.openAiUrlLabel': 'OpenAI URL',
'settings.ai.openAiUrlPlaceholder': 'https://api.openai.com/v1',
'settings.ai.keepExistingKeyPlaceholder': '기존 키를 유지하려면 비워 두세요.',
'settings.ai.reindexingMemory': '메모리 재색인 중',
'settings.ai.reindexingMemoryMessage':
'임베딩을 다시 처리하는 중입니다. {pending}개의 메모리 항목이 현재 모델로 다시 임베딩되고 있습니다. 완료될 때까지 의미 기반 회상 성능이 줄어듭니다. 키워드 검색은 계속 작동하며, 이 창을 닫아도 재임베딩은 백그라운드에서 계속됩니다.',
'settings.ai.signInWithOpenRouter': 'OpenRouter로 로그인',
'settings.ai.weekBudget': '주 예산',
'settings.ai.cycleRemaining': '남은 주기',
'settings.ai.cycleTotalSpend': '주기 총 지출',
'settings.ai.avgSpendRow': '평균 지출 행',
'settings.ai.backgroundApiReads': 'Bg API 읽기',
'settings.ai.backgroundWakeups': '백그라운드 깨우기',
'settings.ai.budgetMath': '예산 계산',
'settings.ai.rowsLeft': '남은 행',
'settings.ai.rowsPerFullWeekBudget': '전체 주 예산당 행',
'settings.ai.sampleBurnRate': '샘플 소모율',
'settings.ai.projectedEmpty': '비어 있을 것으로 예상됨',
'settings.ai.apiReadsPerDollarRemaining': '남은 $당 API 읽기',
'settings.ai.loopCallBudget': '루프 호출 예산',
'settings.ai.heartbeatTicks': '하트비트 틱',
'settings.ai.calendarPlannerCalls': '캘린더 플래너 호출',
'settings.ai.calendarFanoutCap': '달력 팬아웃 한도',
'settings.ai.subconsciousModelCalls': '잠재 의식 모델 호출',
'settings.ai.composioSyncScans': 'Composio 동기화 검색',
'settings.ai.totalBackgroundApiReadBudget': '총 bg API 읽기 예산',
'settings.ai.memoryWorkerPolls': '메모리 작업자 설문 조사',
'settings.ai.defaultProviderName': 'OpenHuman',
'settings.ai.routing.managed': '관리됨',
'settings.ai.routing.managedAlwaysOn': 'Always on',
'settings.ai.routing.managedHint':
'Managed is always available as a fallback. To use your own model, choose a routing mode below.',
'settings.ai.routing.managedDesc':
'OpenHuman이 모든 추론을 클라우드에서 실행하고, 작업에 가장 적합한 모델을 선택하며, 비용을 최적화하고 가장 안전한 라우팅 기본값을 유지합니다.',
'settings.ai.routing.managedMsg':
'OpenHuman이 모든 워크로드의 추론을 처리하고 비용, 품질, 보안을 고려해 최적의 경로를 자동으로 선택합니다.',
'settings.ai.routing.useYourOwn': '자체 모델 사용',
'settings.ai.routing.useYourOwnDesc':
'제공업체와 모델 하나를 선택하고 모든 워크로드를 해당 경로로 라우팅합니다. 간단하지만 경량 추론과 대형 추론이 같은 경로를 공유하므로 비효율적일 수 있습니다.',
'settings.ai.routing.advanced': '고급',
'settings.ai.routing.advancedDesc':
'작업별로 다른 모델을 선택합니다. 세밀한 비용 최적화와 최대 제어에 가장 적합한 옵션입니다.',
'settings.ai.routing.customDesc':
'세분화된 라우팅은 최고의 비용 최적화와 가장 많은 제어권을 제공합니다. 아래 행에서 관리형으로 유지할 워크로드, 공유 기본값을 사용할 워크로드, 특정 모델에 고정할 워크로드를 결정하세요.',
'settings.ai.routing.chatAndConversations': '채팅 및 대화',
'settings.ai.routing.chatDesc':
'직접 사용자 상호작용, 답변, 추론, 에이전트 루프 및 코딩 도움에 사용되는 모델입니다.',
'settings.ai.routing.backgroundTasks': '백그라운드 작업',
'settings.ai.routing.bgTasksDesc':
'요약, 하트비트, 학습 및 잠재의식 평가처럼 기본 대화 흐름 밖에서 사용되는 모델입니다.',
'settings.ai.routing.workload.chat.label': 'Chat',
'settings.ai.routing.workload.chat.description':
'Direct conversational back-and-forth — “Quick” mode in Conversations',
'settings.ai.routing.workload.chat.hint':
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
'settings.ai.routing.workload.reasoning.description':
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
'settings.ai.routing.workload.reasoning.hint':
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
'settings.ai.routing.workload.agentic.label': 'Agentic',
'settings.ai.routing.workload.agentic.description':
'Sub-agent runners, tool loops, GIF decisions',
'settings.ai.routing.workload.agentic.hint':
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
'settings.ai.routing.workload.coding.label': 'Coding',
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
'settings.ai.routing.workload.coding.hint':
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
'settings.ai.routing.workload.vision.label': 'Vision',
'settings.ai.routing.workload.vision.description':
'Image understanding for the vision sub-agent — always multimodal',
'settings.ai.routing.workload.vision.hint':
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
'settings.ai.routing.workload.memory.label': 'Memory summarization',
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
'settings.ai.routing.workload.memory.hint':
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
'settings.ai.routing.workload.heartbeat.hint':
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
'settings.ai.routing.workload.learning.hint':
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
'settings.ai.routing.workload.subconscious.hint':
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
'settings.ai.routing.addCustomProvider': '사용자 정의 공급자 추가',
'settings.ai.globalModel.title': '모든 것에 대해 하나의 모델을 선택합니다.',
'settings.ai.globalModel.desc':
'모든 추론을 하나의 모델로 라우팅합니다. 더 간단하지만 경량 작업과 무거운 작업이 모두 같은 경로를 사용하므로 비용과 품질 면에서 비효율적일 수 있습니다.',
'settings.ai.globalModel.noProviders':
'먼저 제공업체를 추가하거나 연결하세요. 그런 다음 여기에서 모든 워크로드를 하나의 모델로 라우팅할 수 있습니다.',
'settings.ai.globalModel.provider': '공급자',
'settings.ai.globalModel.model': '모델',
'settings.ai.globalModel.loadingModels': '모델 로드 중…',
'settings.ai.globalModel.enterModelId': '모델 ID 입력',
'settings.ai.globalModel.appliesToAll':
'채팅, 추론, 코딩, 메모리, 하트비트, 학습 및 잠재의식에 동일한 제공업체와 모델을 적용합니다. 임베딩은 별도로 구성됩니다. 저장을 클릭하면 변경 사항이 저장됩니다.',
'settings.ai.globalModel.saving': '저장 중…',
'settings.ai.globalModel.saved': '저장됨',
'settings.ai.workload.noModel': '선택된 모델 없음',
'settings.ai.workload.changeModel': '모델 변경',
'settings.ai.workload.chooseModel': '모델 선택',
'settings.ai.provider.ollama': 'Ollama',
'settings.autocomplete.appFilter.acceptSuggestion': '제안 수락',
'settings.autocomplete.appFilter.app': '앱',
'settings.autocomplete.appFilter.currentSuggestion': '현재 제안',
'settings.autocomplete.appFilter.contextOverride': '컨텍스트 재정의(선택 사항)',
'settings.autocomplete.appFilter.debounce': '디바운스',
'settings.autocomplete.appFilter.debugFocus': '포커스 디버그',
'settings.autocomplete.appFilter.enabled': '활성화됨',
'settings.autocomplete.appFilter.getSuggestion': '제안 받기',
'settings.autocomplete.appFilter.lastError': '마지막 오류',
'settings.autocomplete.appFilter.liveLogs': '실시간 로그',
'settings.autocomplete.appFilter.model': '모델',
'settings.autocomplete.appFilter.noLogs': ') :',
'settings.autocomplete.appFilter.phase': '단계',
'settings.autocomplete.appFilter.platformSupported': '플랫폼 지원',
'settings.autocomplete.appFilter.refreshStatus': '새로고침 중…',
'settings.autocomplete.appFilter.refreshing': '새로고침 중…',
'settings.autocomplete.appFilter.running': '실행 중',
'settings.autocomplete.appFilter.runtime': '런타임',
'settings.autocomplete.appFilter.test': '테스트',
'settings.autocomplete.completionStyle.acceptedCompletion':
'수락된 완성 {count}개가 저장됨 — 향후 제안을 개인화하는 데 사용됩니다.',
'settings.autocomplete.completionStyle.acceptedCompletions':
'수락된 완성 {count}개가 저장됨 — 향후 제안을 개인화하는 데 사용됩니다.',
'settings.autocomplete.completionStyle.clearHistory': '지우는 중…',
'settings.autocomplete.completionStyle.clearing': '지우는 중…',
'settings.autocomplete.completionStyle.debounce': '디바운스(ms)',
'settings.autocomplete.completionStyle.enabled': '활성화됨',
'settings.autocomplete.completionStyle.maxChars': '최대 문자 수',
'settings.autocomplete.completionStyle.noHistory':
'아직 수락된 완성이 없습니다. Tab으로 제안을 수락하여 개인화를 시작하세요.',
'settings.autocomplete.completionStyle.overlayTtl': '오버레이 TTL(ms)',
'settings.autocomplete.completionStyle.personalizationHistory': '개인화 기록',
'settings.autocomplete.completionStyle.styleExamples': '스타일 예시(줄마다 하나씩)',
'settings.autocomplete.completionStyle.styleInstructions': '스타일 지침',
'settings.autocomplete.debug.acceptedPrefix': '수락됨: {value}',
'settings.autocomplete.debug.acceptFailed': '제안을 수락하지 못했습니다.',
'settings.autocomplete.debug.alreadyRunning': '자동 완성이 이미 실행 중입니다.',
'settings.autocomplete.debug.clearHistoryFailed': '기록을 지우지 못했습니다.',
'settings.autocomplete.debug.didNotStart': '자동 완성이 시작되지 않았습니다.',
'settings.autocomplete.debug.disabledInSettings':
'설정에서 자동완성이 비활성화되어 있습니다. 활성화하고 먼저 저장하십시오.',
'settings.autocomplete.debug.fetchSuggestionFailed': '현재 제안을 가져오지 못했습니다.',
'settings.autocomplete.debug.inspectFocusedElementFailed': '중점 요소를 검사하지 못했습니다.',
'settings.autocomplete.debug.loadSettingsFailed': '자동 완성 설정을 로드하지 못했습니다.',
'settings.autocomplete.debug.noSuggestionApplied': '제안이 적용되지 않았습니다.',
'settings.autocomplete.debug.noSuggestionReturned': '반환된 제안이 없습니다.',
'settings.autocomplete.debug.refreshStatusFailed': '자동 완성 상태를 새로 고치지 못했습니다.',
'settings.autocomplete.debug.saveAdvancedSettingsFailed': '고급 설정을 저장하지 못했습니다.',
'settings.autocomplete.debug.startFailed': '자동 완성을 시작하지 못했습니다.',
'settings.autocomplete.debug.stopFailed': '자동 완성을 중지하지 못했습니다.',
'settings.autocomplete.debug.suggestionPrefix': '제안: {value}',
'settings.autocomplete.shared.none': '없음',
'settings.autocomplete.shared.notApplicable': '해당 없음',
'settings.autocomplete.shared.unknown': '알 수 없음',
'settings.billing.autoRecharge.addAmount': '이 금액 추가',
'settings.billing.autoRecharge.addCard': '카드 추가',
'settings.billing.autoRecharge.amountHint': '금액 안내',
'settings.billing.autoRecharge.defaultCard': '기본 카드',
'settings.billing.autoRecharge.lastRechargeFailed': '마지막 충전 실패',
'settings.billing.autoRecharge.lastRecharged': '마지막 충전',
'settings.billing.autoRecharge.expires': '{date}',
'settings.billing.autoRecharge.noCards': '카드 없음',
'settings.billing.autoRecharge.paymentMethods': '결제 수단',
'settings.billing.autoRecharge.rechargeInProgress': '충전 진행 중',
'settings.billing.autoRecharge.spentThisWeek': '${spent} 만료 이번 주에 ${limit} 사용됨',
'settings.billing.autoRecharge.rechargeWhen': '잔액이 다음보다 낮아지면 충전',
'settings.billing.autoRecharge.saveSettings': '저장 중…',
'settings.billing.autoRecharge.saving': '저장 중…',
'settings.billing.autoRecharge.setDefault': ':',
'settings.billing.autoRecharge.subtitle': '부제목',
'settings.billing.autoRecharge.title': '자동 충전 활성화',
'settings.billing.autoRecharge.toggleAriaLabel': '자동 충전 전환',
'settings.billing.autoRecharge.weeklyLimit': '주간 지출 한도',
'settings.billing.history.desc': '설명',
'settings.billing.history.empty': '비어 있음',
'settings.billing.history.openPortal': '포털 열기',
'settings.billing.history.posted': '게시됨',
'settings.billing.history.title': '제목',
'settings.billing.inferenceBudget.cycleEnds': '주기 종료',
'settings.billing.inferenceBudget.exhausted': '소진됨',
'settings.billing.inferenceBudget.loadError': '로드 오류',
'settings.billing.inferenceBudget.noBudgetDesc': '예산 없음 설명',
'settings.billing.inferenceBudget.noRecurringBudget': '반복 예산 없음',
'settings.billing.inferenceBudget.noRecurringPlanBudget': '반복 계획 예산이 없습니다.',
'settings.billing.inferenceBudget.noRecurringWeeklyDesc':
'현재 플랜에는 반복 주간 추론 예산이 포함되어 있지 않습니다. 대신 사용 가능한 크레딧에서 사용량이 결제됩니다.',
'settings.billing.inferenceBudget.remaining': '남음',
'settings.billing.inferenceBudget.remainingSummary': '{remaining} / {budget} 남음',
'settings.billing.inferenceBudget.spentThisCycle': '이번 주기에 {amount} 소비',
'settings.billing.inferenceBudget.cycleEndsOn': '주기 종료 {date}',
'settings.billing.inferenceBudget.exhaustedDesc':
'구독에 포함된 사용량을 모두 소진했습니다. 다음 주기를 기다리지 않고 AI를 계속 사용하려면 크레딧을 충전하세요.',
'settings.billing.inferenceBudget.discountVsPayg': '종량제보다 통화당 {pct}% 저렴합니다.',
'settings.billing.inferenceBudget.cycleSpend': '주기 지출',
'settings.billing.inferenceBudget.totalAmount': '{amount} 총계',
'settings.billing.inferenceBudget.inference': '추론',
'settings.billing.inferenceBudget.integrations': '통합',
'settings.billing.inferenceBudget.calls': '{count} 호출',
'settings.billing.inferenceBudget.dailySpend': '일일 지출',
'settings.billing.inferenceBudget.dailySpendPoint': '{date}: {amount}',
'settings.billing.inferenceBudget.topModels': '상위 모델',
'settings.billing.inferenceBudget.noInferenceUsage': '이번 주기에는 추론 사용량이 없습니다.',
'settings.billing.inferenceBudget.topIntegrations': '상위 통합',
'settings.billing.inferenceBudget.noIntegrationUsage': '이번 주기에는 통합을 사용하지 않습니다.',
'settings.billing.inferenceBudget.tenHourCap': '10시간 한도',
'settings.billing.inferenceBudget.title': '제목',
'settings.billing.inferenceBudget.unableToLoad': '사용량 데이터를 로드할 수 없습니다.',
'settings.billing.inferenceBudget.notAvailable': '해당 사항 없음',
'settings.billing.payAsYouGo.available': '사용 가능',
'settings.billing.payAsYouGo.chargeCustomAmount': '여는 중…',
'settings.billing.payAsYouGo.chooseTopUpDesc': '충전 선택 설명',
'settings.billing.payAsYouGo.chooseTopUpTitle': '충전 선택 제목',
'settings.billing.payAsYouGo.creditBalanceDesc': '크레딧 잔액 설명',
'settings.billing.payAsYouGo.creditBalanceTitle': '크레딧 잔액 제목',
'settings.billing.payAsYouGo.customAmount': '사용자 지정 금액',
'settings.billing.payAsYouGo.enterAmount': '금액 입력',
'settings.billing.payAsYouGo.opening': '여는 중',
'settings.billing.payAsYouGo.promotionalCredits': '프로모션 크레딧',
'settings.billing.payAsYouGo.topUpBalance': '충전 잔액',
'settings.billing.payAsYouGo.topUpCredits': '크레딧 충전',
'settings.billing.payAsYouGo.unableToLoad': '잔액을 불러올 수 없습니다.',
'settings.billing.subscription.annual': '연간',
'settings.billing.subscription.billedAnnually': '연간 청구',
'settings.billing.subscription.chooseSubtitle': '부제목 선택',
'settings.billing.subscription.chooseTitle': '제목 선택',
'settings.billing.subscription.cryptoDesc': '암호화폐 설명',
'settings.billing.subscription.cryptoQuestion': '암호화폐 질문',
'settings.billing.subscription.current': '현재',
'settings.billing.subscription.currentPlan': '현재 플랜',
'settings.billing.subscription.monthly': '월간',
'settings.billing.subscription.paymentConfirmed': '결제 확인됨',
'settings.billing.subscription.perMonth': '월별',
'settings.billing.subscription.popular': '인기',
'settings.billing.subscription.save': '{pct}',
'settings.billing.subscription.upgrade': '업그레이드',
'settings.billing.subscription.waiting': '대기 중',
'settings.billing.subscription.waitingPayment': '결제 대기 중',
'settings.composio.apiKeyDesc': 'Composio API 키가 현재 이 기기에 저장되어 있습니다.',
'settings.composio.apiKeyExamplePlaceholder': 'ck_live_xxxxxxxxxxxxxxxx',
'settings.composio.apiKeyLabel': 'Composio API 키',
'settings.composio.apiKeyStored': 'API 키 저장됨',
'settings.composio.apiKeyStoredPlaceholder': '••••••••••••••••',
'settings.composio.clearedToBackend': '백엔드 모드로 전환됨',
'settings.composio.confirmItem1': 'API 키가 있는 app.composio.dev 계정',
'settings.composio.confirmItem2': '개인 Composio 계정을 통해 각 통합을 다시 연결해야 합니다',
'settings.composio.confirmItem3':
'참고: Composio 트리거(실시간 웹훅)는 아직 Direct 모드에서 실행되지 않습니다 — 동기식 도구 호출만 지원됩니다',
'settings.composio.confirmNeedItems': '필요한 항목:',
'settings.composio.confirmSwitch': '이해했습니다. Direct로 전환',
'settings.composio.confirmTitle': '⚠️ Direct 모드로 전환',
'settings.composio.confirmWarning':
'기존 통합(Gmail, Slack, GitHub 등 OpenHuman을 통해 연결된 통합)은 표시되지 않습니다 — OpenHuman 관리형 Composio 테넌트에 있습니다.',
'settings.composio.intro':
'Composio는 에이전트가 호출할 수 있는 도구로 250개 이상의 외부 앱을 통합합니다. 이러한 도구 호출이 라우팅되는 방식을 선택하세요.',
'settings.composio.title': 'Composio',
'settings.composio.modeDirect': 'Direct(직접 API 키 사용)',
'settings.composio.modeDirectDesc':
'호출이 backend.composio.dev로 직접 이동합니다. 독립적이고 오프라인 친화적입니다. 도구 실행은 동기식으로 작동하지만, 실시간 트리거 웹훅은 아직 Direct 모드에서 라우팅되지 않습니다(후속 이슈).',
'settings.composio.modeManaged': '관리형(OpenHuman이 대신 처리)',
'settings.composio.modeManagedDesc':
'OpenHuman이 백엔드를 통해 도구 호출을 프록시합니다(권장). 인증은 중개되며, Composio API 키를 붙여넣을 필요가 없습니다. 웹훅은 완전히 라우팅됩니다.',
'settings.composio.routingMode': '라우팅 모드',
'settings.composio.saveErrorNoKey':
'저장에 실패했습니다. Direct 모드에는 비어 있지 않은 API 키가 필요합니다.',
'settings.composio.saving': '저장 중…',
'settings.composio.switching': '전환 중…',
'settings.companion.title': '데스크톱 컴패니언',
'settings.companion.session': '세션',
'settings.companion.activeLabel': '활성',
'settings.companion.inactiveStatus': '비활성',
'settings.companion.stopping': '중지 중…',
'settings.companion.stopSession': '중지 세션',
'settings.companion.starting': '시작 중…',
'settings.companion.startSession': '세션 시작',
'settings.companion.sessionId': '세션 ID',
'settings.companion.turns': '회전',
'settings.companion.remaining': '남음',
'settings.companion.configuration': '구성',
'settings.companion.hotkey': '단축키',
'settings.companion.activationMode': '활성화 모드',
'settings.companion.sessionTtl': '세션 TTL',
'settings.companion.screenCapture': '화면 캡처',
'settings.companion.appContext': '앱 컨텍스트',
'settings.cron.jobs.commandRequired': '셸 작업에는 명령어가 필요합니다',
'settings.cron.jobs.createJob': '새 예약 작업',
'settings.cron.jobs.created': '작업이 생성되었습니다',
'settings.cron.jobs.custom': '사용자 지정',
'settings.cron.jobs.desc': '설명',
'settings.cron.jobs.edit': '편집',
'settings.cron.jobs.editJob': '예약 작업 편집',
'settings.cron.jobs.empty': '코어 cron 작업을 찾을 수 없습니다.',
'settings.cron.jobs.errorCreate': 'cron 작업 생성에 실패했습니다: {message}',
'settings.cron.jobs.errorLoadList': '코어 cron 작업을 불러오지 못했습니다: {message}',
'settings.cron.jobs.errorLoadRuns': '실행 기록을 불러오지 못했습니다: {message}',
'settings.cron.jobs.errorRemove': '코어 cron 작업을 삭제하지 못했습니다: {message}',
'settings.cron.jobs.errorRun': '코어 cron 작업을 실행하지 못했습니다: {message}',
'settings.cron.jobs.errorToggle': '코어 cron 작업을 업데이트하지 못했습니다: {message}',
'settings.cron.jobs.errorUpdate': 'cron 작업 업데이트에 실패했습니다: {message}',
'settings.cron.jobs.formAtLabel': '실행 시각',
'settings.cron.jobs.formCancel': '취소',
'settings.cron.jobs.formCommand': '셸 명령어',
'settings.cron.jobs.formCommandPlaceholder': '예: curl https://example.com/health',
'settings.cron.jobs.formCreate': '생성',
'settings.cron.jobs.formCronCustom': '사용자 지정 표현식',
'settings.cron.jobs.formCronCustomPlaceholder': '예: */30 * * * *',
'settings.cron.jobs.formCronPreset': '프리셋',
'settings.cron.jobs.formCronPreview': '실행: {preview}',
'settings.cron.jobs.formDeleteAfterRun': '첫 실행 후 삭제',
'settings.cron.jobs.formDelivery': '전달 방식',
'settings.cron.jobs.formDeliveryNone': '없음 (출력만)',
'settings.cron.jobs.formDeliveryProactive': '선제적 (푸시 알림)',
'settings.cron.jobs.formError': '작업 저장에 실패했습니다',
'settings.cron.jobs.formEveryLabel': '간격 (밀리초)',
'settings.cron.jobs.formEveryPlaceholder': '예: 3600000',
'settings.cron.jobs.formJobType': '작업 유형',
'settings.cron.jobs.formJobTypeAgent': 'Agent (AI 프롬프트)',
'settings.cron.jobs.formJobTypeShell': '셸 명령어',
'settings.cron.jobs.formName': '작업 이름',
'settings.cron.jobs.formNamePlaceholder': '예: daily-report, cleanup-task',
'settings.cron.jobs.formPrompt': 'Agent 프롬프트',
'settings.cron.jobs.formPromptPlaceholder': '매 실행마다 에이전트가 무엇을 해야 하나요?',
'settings.cron.jobs.formPromptRequired': '에이전트 작업에는 프롬프트가 필요합니다',
'settings.cron.jobs.formSave': '저장',
'settings.cron.jobs.formSaving': '저장 중…',
'settings.cron.jobs.formScheduleAt': '일회성 (실행 시각)',
'settings.cron.jobs.formScheduleCron': '반복 (cron)',
'settings.cron.jobs.formScheduleEvery': '간격 (N밀리초마다)',
'settings.cron.jobs.formScheduleRequired': '일정이 필요합니다',
'settings.cron.jobs.formScheduleType': '일정 유형',
'settings.cron.jobs.formSessionIsolated': '격리됨 (권장)',
'settings.cron.jobs.formSessionMain': '메인 세션',
'settings.cron.jobs.formSessionTarget': '세션 대상',
'settings.cron.jobs.lastStatus': '마지막 상태',
'settings.cron.jobs.loading': 'cron 작업 불러오는 중...',
'settings.cron.jobs.loadingRuns': '실행 기록 불러오는 중',
'settings.cron.jobs.nextRun': '다음 실행',
'settings.cron.jobs.pause': '일시 중지',
'settings.cron.jobs.paused': '일시 중지됨',
'settings.cron.jobs.recentRuns': '최근 실행',
'settings.cron.jobs.removing': '제거 중',
'settings.cron.jobs.resume': '재개',
'settings.cron.jobs.runningNow': '지금 실행 중',
'settings.cron.jobs.saving': '저장 중…',
'settings.cron.jobs.schedule': '일정',
'settings.cron.jobs.title': '코어 Cron 작업',
'settings.cron.jobs.updated': '작업이 업데이트되었습니다',
'settings.cron.jobs.viewRuns': '실행 기록 보기',
'settings.cron.schedule.every2hours': '2시간마다',
'settings.cron.schedule.every30min': '30분마다',
'settings.cron.schedule.every6hours': '6시간마다',
'settings.cron.schedule.everyHour': '매시간',
'settings.cron.schedule.onceDaily': '매일 1회 (오전 9시)',
'settings.localModel.deviceCapability.active': '활성',
'settings.localModel.deviceCapability.appliedTier': '적용된 티어',
'settings.localModel.deviceCapability.applying': '적용 중',
'settings.localModel.deviceCapability.cores': '{count}',
'settings.localModel.deviceCapability.couldNotLoadPresets': '프리셋을 불러올 수 없습니다',
'settings.localModel.deviceCapability.cpu': 'CPU',
'settings.localModel.deviceCapability.customModelIds': '사용자 지정 모델 ID',
'settings.localModel.deviceCapability.detected': '감지됨',
'settings.localModel.deviceCapability.disabled': '비활성화됨',
'settings.localModel.deviceCapability.disabledDesc': '비활성화 설명',
'settings.localModel.deviceCapability.downloadingModels': '(모델 다운로드 중)',
'settings.localModel.deviceCapability.downloadingSetupDesc':
'OllamaSetup 설치 프로그램(~2GB)을 다운로드하고 압축을 푸는 중입니다. 첫 설치 시 시간이 걸릴 수 있습니다.',
'settings.localModel.deviceCapability.failedToApplyPreset': '프리셋 적용 실패',
'settings.localModel.deviceCapability.gpu': 'GPU',
'settings.localModel.deviceCapability.installFailed': 'Ollama 설치 실패',
'settings.localModel.deviceCapability.installFailedDesc':
'Ollama를 사용할 수 있기 전에 설치 프로그램이 종료되었습니다. 다시 시도하려면 재시도를 클릭하거나 ollama.com에서 수동으로 설치하세요.',
'settings.localModel.deviceCapability.installFirst': '먼저 Ollama를 실행하세요.',
'settings.localModel.deviceCapability.installFirstDesc':
'로컬 티어는 외부에서 관리되는 Ollama 엔드포인트에 의존합니다. 직접 시작하고 원하는 모델을 가져온 뒤, 런타임에 연결할 수 있을 때까지 "비활성화됨(클라우드 대체)"을 계속 사용하세요.',
'settings.localModel.deviceCapability.installOllamaFirst':
'이 티어를 사용하려면 먼저 Ollama를 실행하세요',
'settings.localModel.deviceCapability.installingOllama': 'Ollama 설치 중',
'settings.localModel.deviceCapability.loadingDeviceInfo': '기기 정보 불러오는 중',
'settings.localModel.deviceCapability.localAiDisabled':
'로컬 AI 비활성화됨 — 클라우드 대체 사용 중.',
'settings.localModel.deviceCapability.modelTier': '모델 티어',
'settings.localModel.deviceCapability.needsOllama': 'Ollama 필요',
'settings.localModel.deviceCapability.notDetected': '감지되지 않음',
'settings.localModel.deviceCapability.disabledLowercase': '비활성화됨',
'settings.localModel.deviceCapability.presetDetails':
'채팅: {chatModel} · 비전: {visionModel} · 대상 RAM: {targetRamGb}GB',
'settings.localModel.deviceCapability.ram': 'RAM',
'settings.localModel.deviceCapability.recommended': '권장',
'settings.localModel.deviceCapability.retryInstall': '다시 시도 중…',
'settings.localModel.deviceCapability.retrying': '다시 시도 중…',
'settings.localModel.deviceCapability.starting': '시작 중…',
'settings.localModel.download.audioPathPlaceholder': '오디오 파일의 절대 경로',
'settings.localModel.download.capabilityChat': '채팅',
'settings.localModel.download.capabilityEmbedding': '삽입 중',
'settings.localModel.download.capabilityAssets': '기능 자산',
'settings.localModel.download.capabilityStt': 'STT',
'settings.localModel.download.capabilityTts': 'TTS',
'settings.localModel.download.capabilityVision': '비전',
'settings.localModel.download.downloading': '다운로드 중...',
'settings.localModel.download.embeddingDimensions': '치수: {dimensions}',
'settings.localModel.download.embeddingModel': '모델: {modelId}',
'settings.localModel.download.embeddingPlaceholder': '줄마다 하나의 입력 문자열...',
'settings.localModel.download.embeddingVectors': '벡터: {count}',
'settings.localModel.download.noThinkMode': '생각 없음 모드',
'settings.localModel.download.notAvailable': '해당 사항 없음',
'settings.localModel.download.promptPlaceholder':
'아무 프롬프트나 입력하고 로컬 모델에서 실행하세요...',
'settings.localModel.download.quantizationPref': '양자화 기본 설정',
'settings.localModel.download.runEmbeddingTest': '실행 중...',
'settings.localModel.download.runPromptTest': '프롬프트 테스트 실행',
'settings.localModel.download.runSummaryTest': '요약 테스트 실행',
'settings.localModel.download.runTranscriptionTest': '실행 중...',
'settings.localModel.download.runTtsTest': '실행 중...',
'settings.localModel.download.runVisionTest': '실행 중...',
'settings.localModel.download.running': '실행 중...',
'settings.localModel.download.runningPrompt': '프롬프트 실행 중',
'settings.localModel.download.summaryHelper':
'Rust 코어를 통해 `openhuman.inference_summarize`를 호출합니다.',
'settings.localModel.download.summarizePlaceholder':
'로컬 모델로 요약할 텍스트를 붙여넣으세요...',
'settings.localModel.download.testCustomPrompt': '사용자 지정 프롬프트 테스트',
'settings.localModel.download.testEmbeddings': '임베딩 테스트',
'settings.localModel.download.testSummarization': '요약 테스트',
'settings.localModel.download.testVisionPrompt': '비전 프롬프트 테스트',
'settings.localModel.download.testVoiceInput': '음성 입력 테스트(STT)',
'settings.localModel.download.testVoiceOutput': '음성 출력 테스트(TTS)',
'settings.localModel.download.transcript': '내용:',
'settings.localModel.download.ttsOutput': '출력: {outputPath}',
'settings.localModel.download.ttsOutputPlaceholder': '선택적 출력 WAV 경로',
'settings.localModel.download.ttsPlaceholder': '합성할 텍스트 입력...',
'settings.localModel.download.ttsVoice': '음성: {voiceId}',
'settings.localModel.download.visionImagePlaceholder':
'줄마다 하나의 이미지 참조(data URI, URL 또는 로컬 경로 표시)',
'settings.localModel.download.visionPromptPlaceholder': '비전 모델용 프롬프트 입력...',
'settings.localModel.status.allChecksPassed': '모든 확인 통과',
'settings.localModel.status.artifact': '아티팩트',
'settings.localModel.status.backend': '백엔드',
'settings.localModel.status.binary': '바이너리',
'settings.localModel.status.bootstrapResume': '부트스트랩 / 재개',
'settings.localModel.status.checking': '확인 중...',
'settings.localModel.status.checkingOllama': 'Ollama 확인 중',
'settings.localModel.status.contextBelowMinimumBadge':
'{contextLength} ctx - {required} min 미만',
'settings.localModel.status.contextBelowMinimumTitle':
'거부됨: 컨텍스트 창 {contextLength} 토큰이 메모리 계층에 필요한 {required} 토큰 최소값보다 낮습니다. 자동 잘림으로 인해 재현율이 손상될 수 있습니다.',
'settings.localModel.status.contextOkBadge': '{contextLength} ctx ✓',
'settings.localModel.status.contextOkTitle':
'컨텍스트 창 {contextLength} 토큰은 메모리 계층 최소 {required} 토큰을 충족합니다.',
'settings.localModel.status.contextUnknownBadge': 'ctx 알 수 없음',
'settings.localModel.status.contextUnknownTitle':
'컨텍스트 창을 알 수 없습니다. {required} 토큰 메모리 계층 최소값을 충족하는지 확인할 수 없습니다.',
'settings.localModel.status.customLocation': '사용자 지정 위치',
'settings.localModel.status.customLocationDesc': '사용자 지정 위치 설명',
'settings.localModel.status.diagnosticsHint':
'"진단 실행"을 클릭하여 Ollama가 실행 중이고 모델이 설치되어 있는지 확인하세요.',
'settings.localModel.status.downloadingUnknown': '다운로드 중(크기 알 수 없음)',
'settings.localModel.status.eta': '예상 시간',
'settings.localModel.status.expectedModels': '예상 모델',
'settings.localModel.status.expectedChat': '채팅: {model}',
'settings.localModel.status.expectedEmbedding': '포함: {model}',
'settings.localModel.status.expectedVision': '비전: {model}',
'settings.localModel.status.externalProcess': '외부 프로세스',
'settings.localModel.status.forceRebootstrap': '강제 재부트스트랩',
'settings.localModel.status.generationTps': '생성 TPS',
'settings.localModel.status.hideErrorDetails': '오류 세부 정보 숨기기',
'settings.localModel.status.installManually': '수동 설치',
'settings.localModel.status.installManuallyFrom': '다음에서 수동 설치',
'settings.localModel.status.installOllama': '시작 중…',
'settings.localModel.status.installedModels': '설치된 모델',
'settings.localModel.status.installing': '설치 중...',
'settings.localModel.status.installingOllama': 'Ollama 런타임 설치 중...',
'settings.localModel.status.issues': '문제',
'settings.localModel.status.issuesFound': '문제 {count}개 발견',
'settings.localModel.status.lastLatency': '마지막 지연 시간',
'settings.localModel.status.model': '모델',
'settings.localModel.status.notAvailable': '해당 사항 없음',
'settings.localModel.status.notFound': '찾을 수 없음',
'settings.localModel.status.notRunning': '실행 중이 아님',
'settings.localModel.status.ollamaBinaryPath': 'Ollama 바이너리 경로',
'localModel.ollamaServer.helperText': '예: http://192.168.1.5:11434',
'localModel.ollamaServer.label': 'Ollama 서버 URL',
'localModel.ollamaServer.modelCount': '모델',
'localModel.ollamaServer.placeholder': 'http://localhost:11434',
'localModel.ollamaServer.reachable': '연결 가능',
'localModel.ollamaServer.resetButton': '기본값으로 재설정',
'localModel.ollamaServer.saveButton': '저장',
'localModel.ollamaServer.testButton': '테스트 연결',
'localModel.ollamaServer.unreachable': '연결할 수 없음',
'localModel.ollamaServer.validationError': '유효한 http:// 또는 https:// URL이어야 합니다.',
'settings.localModel.status.ollamaDiagnostics': 'Ollama 진단',
'settings.localModel.status.ollamaNotInstalled': 'Ollama 런타임을 사용할 수 없음',
'settings.localModel.status.ollamaNotInstalledDesc':
'OpenHuman은 이제 Ollama를 외부 추론 런타임으로 취급합니다. 직접 Ollama 서버를 시작하고 원하는 모델을 가져온 뒤 작업 라우팅을 해당 서버로 지정하세요.',
'settings.localModel.status.progress': '진행률',
'settings.localModel.status.provider': '제공업체',
'settings.localModel.status.retryBootstrap': '부트스트랩 다시 시도',
'settings.localModel.status.runDiagnostics': '확인 중...',
'settings.localModel.status.running': '실행 중',
'settings.localModel.status.runningExternalProcess': '외부 프로세스로 실행 중',
'settings.localModel.status.runtimeStatus': '런타임 상태',
'settings.localModel.status.server': '서버',
'settings.localModel.status.setPath': '설정 중...',
'settings.localModel.status.setting': '설정 중...',
'settings.localModel.status.showErrorDetails': '오류 세부 정보 숨기기',
'settings.localModel.status.showInstallErrorDetails': '오류 세부 정보 숨기기',
'settings.localModel.status.suggestedFixes': '제안된 수정 사항',
'settings.localModel.status.thenSetPath': '그런 다음 경로 설정',
'settings.localModel.status.triggering': '트리거 중...',
'settings.localModel.status.unavailable': '사용할 수 없음',
'settings.localModel.status.working': '작업 중...',
'settings.developerMenu.ai.title': 'AI 구성',
'settings.developerMenu.ai.desc': '클라우드 공급자, 로컬 Ollama 모델 및 워크로드별 라우팅',
'settings.developerMenu.screenAwareness.title': '화면 인식',
'settings.developerMenu.screenAwareness.desc': '화면 캡처 권한, 모니터링 정책 및 세션 제어',
'settings.developerMenu.messagingChannels.title': '메시징 채널',
'settings.developerMenu.messagingChannels.desc':
'Telegram/Discord 인증 모드 및 기본 채널 라우팅 구성',
'settings.developerMenu.tools.title': '도구',
'settings.developerMenu.tools.desc':
'OpenHuman이 사용자를 대신하여 사용할 수 있는 기능 활성화 또는 비활성화',
'settings.developerMenu.agentChat.title': '에이전트 채팅',
'settings.developerMenu.agentChat.desc': '모델 및 온도 재정의를 통한 테스트 에이전트 대화',
'settings.developerMenu.devWorkflow.title': '개발 워크플로',
'settings.developerMenu.devWorkflow.desc':
'GitHub 이슈를 선택하고 일정에 따라 PR을 여는 자율 에이전트',
'settings.developerMenu.devWorkflow.panelDesc':
'내게 할당된 GitHub 이슈를 선택하고 일정에 따라 pull request를 자동으로 여는 자율 개발자 에이전트를 구성하세요.',
'settings.developerMenu.skillsRunner.title': '스킬 실행기',
'settings.developerMenu.skillsRunner.desc':
'번들 스킬을 즉석에서 실행합니다. 입력을 채우고 백그라운드 자율 실행을 시작하세요.',
'settings.developerMenu.skillsRunner.panelDesc':
'번들 스킬을 선택하고 선언된 입력을 채운 뒤, 기다릴 필요 없는 백그라운드 실행을 시작하세요. cron 예약 반복 작업이 필요하면 대신 개발 워크플로를 사용하세요.',
'settings.skillsRunner.skill': '스킬',
'settings.skillsRunner.selectSkill': '스킬 선택…',
'settings.skillsRunner.loadingSkills': '스킬 불러오는 중…',
'settings.skillsRunner.loadingDescription': '스킬 입력 불러오는 중…',
'settings.skillsRunner.noInputs': '이 스킬은 입력을 선언하지 않습니다.',
'settings.skillsRunner.placeholder.required': '필수',
'settings.skillsRunner.runNow': '지금 실행',
'settings.skillsRunner.starting': '시작 중…',
'settings.skillsRunner.started': '시작됨 — 실행 ID:',
'settings.skillsRunner.logPath': '로그:',
'settings.skillsRunner.error.listSkills': '스킬을 불러오지 못했습니다:',
'settings.skillsRunner.error.describe': '입력을 불러오지 못했습니다:',
'settings.skillsRunner.error.missingRequired': '필수 입력 누락:',
'settings.skillsRunner.error.run': '실행을 시작하지 못했습니다:',
'settings.skillsRunner.error.preflightGate': '사전 점검 게이트 실패',
'settings.skillsRunner.error.runtimeUnavailable': '런타임을 사용할 수 없음',
'settings.skillsRunner.error.runtimeUnavailableDefault': '사용할 수 없음',
'settings.skillsRunner.schedule.heading': '일정(반복)',
'settings.skillsRunner.schedule.help':
'이 스킬과 입력을 반복 cron 작업으로 저장합니다. 에이전트는 각 tick마다 run_workflow을 호출합니다.',
'settings.skillsRunner.schedule.frequency': '빈도',
'settings.skillsRunner.schedule.every30min': '30분마다',
'settings.skillsRunner.schedule.everyHour': '매시간',
'settings.skillsRunner.schedule.every2hours': '2시간마다',
'settings.skillsRunner.schedule.every6hours': '6시간마다',
'settings.skillsRunner.schedule.onceDaily': '하루 한 번(9:00)',
'settings.skillsRunner.schedule.save': '일정 저장',
'settings.skillsRunner.schedule.saving': '저장 중…',
'settings.skillsRunner.schedule.saved': '일정이 저장되었습니다.',
'settings.skillsRunner.schedule.error': '일정 저장 실패:',
'settings.skillsRunner.schedule.loadingJobs': '기존 일정 불러오는 중…',
'settings.skillsRunner.schedule.noJobs': '이 스킬에 저장된 일정이 아직 없습니다.',
'settings.skillsRunner.schedule.existing': '이 스킬의 예약된 작업:',
'settings.skillsRunner.schedule.inputsLabel': '입력',
'settings.skillsRunner.schedule.inputsNone': '입력 없음',
'settings.skillsRunner.schedule.runNow': '실행',
'settings.skillsRunner.schedule.remove': '제거',
'settings.skillsRunner.scheduleEnabled': '활성화됨',
'settings.skillsRunner.scheduleDisabled': '일시 중지됨',
'settings.skillsRunner.scheduleToggleAria': '일정 활성화 전환',
'settings.skillsRunner.schedule.history': '기록',
'settings.skillsRunner.schedule.historyLoading': '기록 불러오는 중…',
'settings.skillsRunner.schedule.historyEmpty': '이 일정의 실행 기록이 아직 없습니다.',
'settings.skillsRunner.schedule.historyNoOutput': '캡처된 출력이 없습니다.',
'settings.skillsRunner.schedule.active': '활성',
'settings.skillsRunner.schedule.lastRunLabel': '마지막:',
'settings.skillsRunner.recentRuns.headingForSkill': '이 스킬의 최근 실행',
'settings.skillsRunner.recentRuns.headingAll': '최근 스킬 실행(전체)',
'settings.skillsRunner.recentRuns.refresh': '새로고침',
'settings.skillsRunner.recentRuns.loading': '최근 실행 불러오는 중…',
'settings.skillsRunner.recentRuns.empty': '최근 실행이 없습니다.',
'settings.skillsRunner.viewer.loading': '로그 불러오는 중…',
'settings.skillsRunner.viewer.tailing': '실시간 tail',
'settings.skillsRunner.viewer.fetching': '가져오는 중',
'settings.skillsRunner.viewer.error': '로그 읽기 실패:',
'settings.skillsRunner.repoPicker.loading': '리포지토리 불러오는 중…',
'settings.skillsRunner.repoPicker.select': '리포지토리 선택…',
'settings.skillsRunner.repoPicker.empty':
'반환된 리포지토리가 없습니다. 이 목록을 채우려면 Composio를 통해 GitHub을 연결하세요.',
'settings.skillsRunner.repoPicker.notConnected':
'GitHub이 Composio를 통해 연결되어 있지 않습니다. 먼저 스킬 → Composio에서 연결하세요.',
'settings.skillsRunner.repoPicker.privateTag': '(비공개)',
'settings.skillsRunner.branchPicker.needRepo': '먼저 리포지토리를 선택하세요…',
'settings.skillsRunner.branchPicker.loading': '브랜치 불러오는 중…',
'settings.skillsRunner.branchPicker.select': '브랜치 선택…',
'settings.devWorkflow.githubRepository': 'GitHub 리포지토리',
'settings.devWorkflow.loadingRepositories': '리포지토리 불러오는 중...',
'settings.devWorkflow.selectRepository': '리포지토리 선택',
'settings.devWorkflow.privateTag': '(비공개)',
'settings.devWorkflow.detectingForkInfo': '포크 정보 감지 중...',
'settings.devWorkflow.forkDetected': '포크 감지됨',
'settings.devWorkflow.upstream': '업스트림:',
'settings.devWorkflow.forkPrNote': 'PR은 업스트림 리포지토리를 대상으로 열립니다.',
'settings.devWorkflow.notForkNote':
'포크가 아닙니다. PR은 이 리포지토리를 직접 대상으로 열립니다.',
'settings.devWorkflow.targetBranch': '대상 브랜치',
'settings.devWorkflow.targetBranchNote': 'PR은 이 브랜치를 대상으로 열립니다',
'settings.devWorkflow.loadingBranches': '브랜치 불러오는 중...',
'settings.devWorkflow.runFrequency': '실행 빈도',
'settings.devWorkflow.runFrequencyNote': '에이전트가 이슈를 확인하고 PR을 여는 빈도입니다.',
'settings.devWorkflow.updateConfiguration': '구성 업데이트',
'settings.devWorkflow.saveConfiguration': '구성 저장',
'settings.devWorkflow.remove': '제거',
'settings.devWorkflow.saved': '저장됨',
'settings.devWorkflow.activeConfiguration': '활성 구성',
'settings.devWorkflow.activeConfigRepository': '리포지토리:',
'settings.devWorkflow.activeConfigUpstream': '업스트림:',
'settings.devWorkflow.activeConfigTargetBranch': '대상 브랜치:',
'settings.devWorkflow.activeConfigSchedule': '일정:',
'settings.devWorkflow.enabled': '활성화됨',
'settings.devWorkflow.paused': '일시 중지됨',
'settings.devWorkflow.nextRun': '다음 실행',
'settings.devWorkflow.lastRun': '마지막 실행',
'settings.devWorkflow.runNow': '지금 실행',
'settings.devWorkflow.running': '실행 중…',
'settings.devWorkflow.recentRuns': '최근 실행',
'settings.devWorkflow.cronSaveError': '구성을 저장하지 못했습니다',
'settings.devWorkflow.lastOutput': '마지막 출력',
'settings.devWorkflow.noOutput': '캡처된 출력이 없습니다',
'settings.devWorkflow.runningStatus':
'에이전트가 실행 중입니다 — 이슈를 선택하고 수정 작업을 진행하는 중...',
'settings.devWorkflow.errorNotConnected':
'GitHub이 연결되어 있지 않습니다. 먼저 설정 > 고급 > Composio에서 GitHub을 연결하세요.',
'settings.devWorkflow.errorToolNotEnabled':
'이 백엔드에서 GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER 도구가 활성화되어 있지 않습니다. 관리자에게 Composio 통합에서 활성화해 달라고 요청하세요(backend#842).',
'settings.devWorkflow.errorNotAuthenticated': '인증되지 않았습니다. 먼저 로그인하세요.',
'settings.devWorkflow.errorNoRepositories': '이 GitHub 계정의 리포지토리를 찾을 수 없습니다.',
'settings.devWorkflow.schedule.every30min': '30분마다',
'settings.devWorkflow.schedule.everyHour': '매시간',
'settings.devWorkflow.schedule.every2hours': '2시간마다',
'settings.devWorkflow.schedule.every6hours': '6시간마다',
'settings.devWorkflow.schedule.onceDaily': '하루 한 번(오전 9시)',
'settings.developerMenu.tasks.title': '작업',
'settings.developerMenu.tasks.desc':
'작업 보드를 둘러보고 관리하세요 — 내 할 일과 대화 전반에서 에이전트가 만든 보드를 함께 확인합니다.',
'settings.developerMenu.cronJobs.title': '크론 작업',
'settings.developerMenu.cronJobs.desc': '예약 보기 및 구성 런타임 기술용 작업',
'settings.developerMenu.localModelDebug.title': '로컬 모델 디버그',
'settings.developerMenu.localModelDebug.desc': 'Ollama 구성, 자산 다운로드, 모델 테스트 및 진단',
'settings.developerMenu.webhooks.title': '웹훅',
'settings.developerMenu.webhooks.desc': '런타임 웹훅 등록 및 캡처된 요청 로그 검사',
'settings.developerMenu.eventLog.title': '이벤트 로그',
'settings.developerMenu.eventLog.desc':
'모든 에이전트, 도구, 시스템 이벤트를 색상으로 구분해 실시간으로 표시합니다.',
'settings.developerMenu.eventLog.allTypes': '모든 유형',
'settings.developerMenu.eventLog.filterAgent': '필터...',
'settings.developerMenu.eventLog.download': '다운로드',
'settings.developerMenu.eventLog.events': '이벤트',
'settings.developerMenu.eventLog.live': '실시간',
'settings.developerMenu.eventLog.disconnected': '연결 끊김',
'settings.developerMenu.eventLog.waiting': '이벤트 대기 중...',
'settings.developerMenu.eventLog.notConnected': '코어에 연결되지 않음',
'settings.developerMenu.eventLog.jumpToLatest': '최신으로 이동',
'settings.developerMenu.eventLog.badge.tool': 'TOOL',
'settings.developerMenu.eventLog.badge.agent': 'AGENT',
'settings.developerMenu.eventLog.badge.info': 'INFO',
'settings.developerMenu.eventLog.badge.mem': 'MEM',
'settings.developerMenu.eventLog.badge.chan': 'CHAN',
'settings.developerMenu.eventLog.badge.cron': 'CRON',
'settings.developerMenu.eventLog.badge.hook': 'HOOK',
'settings.developerMenu.eventLog.badge.warn': 'WARN',
'settings.developerMenu.eventLog.badge.skill': 'SKILL',
'settings.developerMenu.eventLog.badge.comp': 'COMP',
'settings.developerMenu.eventLog.badge.mcp': 'MCP',
'settings.developerMenu.intelligence.title': '인텔리전스',
'settings.developerMenu.intelligence.desc': '메모리 작업 공간, 잠재의식 엔진, 드림 및 설정',
'settings.developerMenu.notificationRouting.title': '알림 라우팅',
'settings.developerMenu.notificationRouting.desc':
'통합 경고에 대한 AI 중요도 점수 및 오케스트레이터 에스컬레이션',
'settings.developerMenu.composeioTriggers.title': 'ComposeIO 트리거',
'settings.developerMenu.composeioTriggers.desc': 'ComposeIO 트리거 기록 및 아카이브 보기',
'settings.developerMenu.composioRouting.title': 'Composio 라우팅(직접 모드)',
'settings.developerMenu.composioRouting.desc':
'자신만의 Composio API 키를 가져와 호출을 backend.composio.dev로 직접 라우팅하세요.',
'settings.developerMenu.integrationTriggers.title': '통합 트리거',
'settings.developerMenu.integrationTriggers.desc':
'Composio 통합 트리거에 대한 AI 분류 설정 구성',
'settings.developerMenu.mcpServer.title': 'MCP 서버',
'settings.developerMenu.mcpServer.desc': 'OpenHuman에 연결하도록 외부 MCP 클라이언트 구성',
'settings.developerMenu.autonomy.title': '에이전트 자율성',
'settings.developerMenu.autonomy.desc': '도구 작업 속도 제한 및 안전 임계값',
'settings.developerMenu.autocomplete.title': '자동 완성',
'settings.developerMenu.autocomplete.desc': 'AI 인라인 자동 완성 설정 및 디버그 패널',
'settings.developerMenu.voiceDebug.title': '음성 (디버그)',
'settings.developerMenu.voiceDebug.desc': '음성 받아쓰기 런타임 상태 및 디버그 설정',
'settings.mcpServer.title': 'MCP 서버',
'settings.mcpServer.toolsSectionTitle': '사용 가능한 도구',
'settings.mcpServer.toolsSectionDesc':
'도구 노출 openhuman-core mcp 실행 시 MCP stdio 서버를 통해',
'settings.mcpServer.configSectionTitle': '클라이언트 구성',
'settings.mcpServer.configSectionDesc':
'올바른 구성 조각을 생성하려면 MCP 클라이언트를 선택하세요.',
'settings.mcpServer.copySnippet': '클립보드에 복사',
'settings.mcpServer.copied': '복사되었습니다!',
'settings.mcpServer.openConfigFile': '구성 파일 열기',
'settings.mcpServer.binaryPathNotFound':
'OpenHuman 바이너리를 찾을 수 없습니다. 소스에서 실행하는 경우 다음을 사용하여 빌드하세요: cargo build --bin openhuman-core',
'settings.mcpServer.openConfigError': '구성 파일을 열지 못했습니다.',
'settings.mcpServer.clientClaudeDesktop': 'Claude Desktop',
'settings.mcpServer.clientCursor': '커서',
'settings.mcpServer.clientCodex': 'Codex',
'settings.mcpServer.clientZed': 'Zed',
'settings.mcpServer.configFilePath': '구성 파일',
'settings.mcpServer.clientSelectorAriaLabel': 'MCP 클라이언트 선택기',
'settings.appearance.menuDesc': '밝은 색, 어두운 색 선택 또는 시스템 테마와 일치',
'settings.agentAccess.title': '에이전트 OS 접근',
'settings.agentAccess.menuDesc':
'에이전트가 읽고 쓸 수 있는 위치와 shell 사용 가능 여부를 제어합니다.',
'settings.agentAccess.loadError': '접근 설정을 불러오지 못했습니다',
'settings.agentAccess.saveError': '접근 설정을 저장하지 못했습니다',
'settings.agentAccess.saved': '저장됨 — 다음 메시지부터 적용됩니다.',
'settings.agentAccess.desktopOnly': '접근 설정은 데스크톱 앱에서만 사용할 수 있습니다.',
'settings.agentAccess.loading': '불러오는 중…',
'settings.agentAccess.accessMode': '접근 모드',
'settings.agentAccess.tier.readonly.title': '읽기 전용',
'settings.agentAccess.tier.readonly.desc':
'탐색을 위해 파일을 읽고 읽기 전용 명령을 실행하지만, 쓰기, 편집 또는 상태를 변경하는 작업은 절대 실행하지 않습니다.',
'settings.agentAccess.tier.supervised.title': '편집 전 확인',
'settings.agentAccess.tier.supervised.desc':
'새 파일은 자유롭게 만들 수 있지만 기존 파일 편집, 명령 실행, 네트워크 접근 또는 설치 전에는 승인을 요청합니다.',
'settings.agentAccess.tier.full.title': '전체 접근',
'settings.agentAccess.tier.full.desc':
'사용자 계정의 전체 접근 권한으로 명령을 실행합니다. 자격 증명 및 시스템 저장소를 제외하고 허용된 모든 위치를 읽고 쓸 수 있습니다. 파괴적 명령, 네트워크 접근, 설치는 계속 승인을 요청합니다.',
'settings.agentAccess.defaultTag': '(기본값)',
'settings.agentAccess.fullWarning':
'⚠ 전체 접근은 사용자 계정의 전체 접근 권한으로 명령을 실행하며 샌드박스가 적용되지 않습니다. 이 컴퓨터에서 에이전트를 신뢰할 때만 활성화하세요. 자격 증명 및 시스템 디렉터리는 계속 차단되며, 파괴적 작업, 네트워크 작업, 설치 작업은 계속 승인을 요청합니다.',
'settings.agentAccess.confine.label': '작업공간으로 제한',
'settings.agentAccess.confine.desc':
'선택한 접근 모드와 관계없이 에이전트를 작업공간 디렉터리와 허용된 폴더로 제한합니다. 끄면 항상 차단되는 자격 증명 및 시스템 디렉터리를 제외하고 사용자가 접근할 수 있는 모든 위치에 접근할 수 있습니다.',
'settings.agentAccess.requireTaskPlanApproval.label': '작업 계획 승인 필요',
'settings.agentAccess.requireTaskPlanApproval.desc':
'할당된 에이전트가 에이전트가 작성한 작업 브리프를 실행하기 전에 일시 중지합니다.',
'settings.agentAccess.tinyplaceAutopilot.title': '자율 tiny.place 에이전트',
'settings.agentAccess.tinyplaceAutopilot.desc':
'OpenHuman이 tiny.place에서 스스로 행동하게 하세요: 일정에 따라 가치 있는 일을 찾고(열린 현상금 우선) 자신의 능력에 맞는 작업을 수행하며 당신의 신원으로 행동합니다. 감독 없이 작동하며 비용을 지출할 수 있으니 테스트 중에는 devnet을 사용하세요. 기본값은 꺼짐입니다.',
'settings.agentAccess.tinyplaceAutopilot.label': '자동 실행',
'settings.agentAccess.timeout.label': '작업 제한 시간',
'settings.agentAccess.timeout.desc':
'단일 도구나 작업이 취소되기 전까지 실행될 수 있는 시간입니다. 대형 로컬 모델이 응답을 끝내기 전에 중단되는 경우 이 값을 늘리세요.',
'settings.agentAccess.timeout.unit': '초',
'settings.agentAccess.timeout.invalid': '허용된 범위 내에서 정수 초를 입력하세요',
'settings.agentAccess.timeout.envOverride':
'OPENHUMAN_TOOL_TIMEOUT_SECS 환경 변수가 이 설정을 재정의하고 있으므로, 해당 변수를 해제하기 전까지 여기서의 변경 사항은 적용되지 않습니다.',
'settings.agentAccess.grantedFolders': '허용된 폴더',
'settings.agentAccess.alwaysAllow': '항상 허용된 도구',
'settings.agentAccess.alwaysAllowDesc':
'채팅에서 "항상 허용"으로 표시한 도구는 확인 없이 실행됩니다. 다시 확인을 받으려면 항목을 제거하세요.',
'settings.agentAccess.alwaysAllowNone': '아직 항상 허용된 도구가 없습니다.',
'settings.agentAccess.grantedDesc':
'작업공간 외에 에이전트가 읽고 쓸 수 있는 폴더입니다. 자격 증명 저장소(~/.ssh, ~/.gnupg, ~/.aws, keychains)와 시스템 디렉터리(/etc, /System, C:\\Windows, …)는 허용된 폴더 안에 있어도 항상 차단됩니다.',
'settings.agentAccess.noneGranted': '허용된 폴더가 없습니다.',
'settings.agentAccess.readWrite': '읽기 + 쓰기',
'settings.agentAccess.readOnly': '읽기 전용',
'settings.agentAccess.remove': '제거',
'settings.agentAccess.pathPlaceholder': '폴더의 절대 경로',
'settings.agentAccess.accessLevelLabel': '접근 수준',
'settings.agentAccess.add': '추가',
'settings.agentAccess.saving': '저장 중…',
'settings.agentAccess.changesApply': '변경 사항은 다음 메시지부터 적용됩니다.',
'settings.agentAccess.directories': '디렉터리',
'settings.agentAccess.actionSandbox': '액션 샌드박스',
'settings.agentAccess.readWriteAccess': '읽기 + 쓰기',
'settings.agentAccess.actionSandboxDesc': '셸, 파일 및 git 도구의 기본 작업 디렉터리.',
'settings.agentAccess.actionDir.edit': '편집',
'settings.agentAccess.actionDir.save': '저장',
'settings.agentAccess.actionDir.cancel': '취소',
'settings.agentAccess.actionDir.placeholder': '절대 경로, 예: /Users/you/Projects',
'settings.agentAccess.actionDir.envLocked':
'OPENHUMAN_ACTION_DIR로 설정됨. 재정의하려면 환경 변수를 변경하세요.',
'settings.agentAccess.actionDir.saved': '작업 디렉터리가 업데이트되었습니다.',
'settings.agentAccess.internalState': '내부 상태',
'settings.agentAccess.agentBlocked': '에이전트 차단됨',
'settings.agentAccess.internalStateDesc':
'메모리 데이터베이스, 세션, 토큰 및 기타 핵심 데이터. 에이전트 도구에서 접근할 수 없습니다.',
'settings.agentAccess.actionDirInputLabel': '작업 샌드박스 경로',
'settings.agentAccess.actionDirSave': '저장',
'settings.agentAccess.actionDirSaving': '저장 중…',
'settings.agentAccess.actionDirSaved': '작업 샌드박스가 업데이트되었습니다.',
'settings.agentAccess.actionDirEmptyError': '경로는 비워둘 수 없습니다.',
'settings.agentAccess.actionDirSaveError': '작업 샌드박스를 업데이트할 수 없습니다.',
'settings.agentAccess.actionDirEnvOverrideError':
'OPENHUMAN_ACTION_DIR이 설정되어 있습니다 — 설정에서 편집하려면 환경 변수를 해제하세요.',
'settings.agentAccess.actionDirEnvOverrideNote':
'OPENHUMAN_ACTION_DIR에 의해 재정의됨 — 설정에서 관리하려면 환경 변수를 해제하세요.',
'settings.agentAccess.approvalHistory': '승인 이력',
'settings.agentAccess.approvalHistoryDesc': '에이전트가 요청한 이전 승인/거부 결정을 검토합니다.',
'settings.agentAccess.viewApprovalHistory': '승인 기록 보기',
// ── 권한 패널 ─────────────────────────────────────────────────────
'settings.permissions.title': '권한',
'settings.permissions.menuDesc':
'어시스턴트가 무엇을 할 수 있고 어디서 작업할 수 있는지 선택하세요.',
'settings.permissions.accessMode': '어시스턴트가 무엇을 할 수 있나요?',
'settings.permissions.accessModeDesc':
'어시스턴트가 컴퓨터에서 작업을 수행할 때 얼마나 많은 자유를 허용할지 선택하세요.',
'settings.permissions.preset.readonly.title': '보기만 가능',
'settings.permissions.preset.readonly.desc':
'어시스턴트는 파일을 읽고 탐색할 수 있지만, 상태를 변경하는 쓰기, 편집 또는 실행은 절대 할 수 없습니다.',
'settings.permissions.preset.supervised.title': '먼저 물어보기',
'settings.permissions.preset.supervised.desc':
'새 파일을 자유롭게 만들 수 있지만, 편집, 명령 실행 또는 네트워크 접근 전에 항상 승인을 요청합니다.',
'settings.permissions.preset.full.title': '전체 제어',
'settings.permissions.preset.full.desc':
'전체 계정 접근 권한으로 실행됩니다. 파괴적 명령, 네트워크 접근 및 설치는 여전히 승인이 필요합니다.',
'settings.permissions.folders': '어디서 작업할 수 있나요?',
'settings.permissions.foldersDesc':
'어시스턴트가 읽고 쓰는 기본 폴더입니다. 고급 설정에서 추가 폴더를 추가할 수 있습니다.',
'settings.meetings.title': '회의',
'settings.meetings.menuDesc': '회의 어시스턴트 자동 참여, 요약 및 대화록',
'settings.meetings.desktopOnly': '회의 설정은 데스크톱에서만 사용할 수 있습니다.',
'settings.meetings.loading': '불러오는 중…',
'settings.meetings.loadError': '회의 설정을 불러오지 못했습니다.',
'settings.meetings.saveError': '회의 설정을 저장하지 못했습니다.',
'settings.meetings.saved': '저장됨',
'settings.meetings.saving': '저장 중…',
'settings.meetings.autoJoin.title': '자동 참여 정책',
'settings.meetings.autoJoin.desc': '캘린더 일정에 Google Meet 링크가 있을 때',
'settings.meetings.autoJoin.askEachTime': '매번 묻기',
'settings.meetings.autoJoin.always': '항상 참여',
'settings.meetings.autoJoin.never': '참여하지 않음',
'settings.meetings.autoSummarize.title': '통화 후 요약',
'settings.meetings.autoSummarize.desc': '통화가 끝난 후 요약 생성',
'settings.meetings.autoSummarize.ask': '통화 후 묻기',
'settings.meetings.autoSummarize.always': '항상 요약',
'settings.meetings.autoSummarize.never': '요약하지 않음',
'settings.meetings.listenOnly': '듣기 전용 모드',
'settings.meetings.listenOnlyDesc': '마이크를 음소거하고 참여',
'settings.meetings.ingestTranscripts': '백엔드 대화록 수집',
'settings.meetings.ingestTranscriptsDesc': '회의 대화록을 메모리에 저장',
'settings.sandbox.title': '샌드박스 실행',
'settings.sandbox.menuDesc': '에이전트 도구 격리를 위한 샌드박스 백엔드를 구성합니다.',
'settings.sandbox.loading': '로딩 중…',
'settings.sandbox.desktopOnly': '샌드박스 설정은 데스크톱 앱에서만 사용할 수 있습니다.',
'settings.sandbox.loadError': '샌드박스 설정을 불러오지 못했습니다.',
'settings.sandbox.saveError': '샌드박스 설정을 저장하지 못했습니다.',
'settings.sandbox.saved': '저장됨 — 새 에이전트 세션에 적용됩니다.',
'settings.sandbox.saving': '저장 중…',
'settings.sandbox.status': '상태',
'settings.sandbox.dockerStatus': 'Docker',
'settings.sandbox.available': '사용 가능',
'settings.sandbox.unavailable': '사용 불가',
'settings.sandbox.detectedBackend': 'OS 백엔드',
'settings.sandbox.enableLabel': '샌드박스 실행 사용',
'settings.sandbox.enableDesc': '격리된 샌드박스 환경에서 에이전트 도구를 실행합니다.',
'settings.sandbox.backendLabel': '백엔드',
'settings.sandbox.backendDesc': '샌드박스 실행에 사용할 격리 백엔드를 선택합니다.',
'settings.sandbox.backend.auto': '자동 (최적 백엔드 자동 감지)',
'settings.sandbox.backend.docker': 'Docker',
'settings.sandbox.backend.landlock': 'Landlock (Linux)',
'settings.sandbox.backend.firejail': 'Firejail (Linux)',
'settings.sandbox.backend.bubblewrap': 'Bubblewrap (Linux)',
'settings.sandbox.backend.none': '없음 (샌드박스 사용 안 함)',
'settings.sandbox.dockerSettings': 'Docker 설정',
'settings.sandbox.dockerImage': '이미지',
'settings.sandbox.dockerImagePlaceholder': 'alpine:3.20',
'settings.sandbox.memoryLimit': '메모리 제한',
'settings.sandbox.memoryUnit': 'MB',
'settings.sandbox.cpuLimit': 'CPU 제한',
'settings.sandbox.cpuUnit': '코어',
'settings.sandbox.envPassthrough': '환경 변수 전달',
'settings.sandbox.envPassthroughDesc': '샌드박스로 전달되는 환경 변수입니다.',
'settings.sandbox.noEnvVars': '구성된 환경 변수가 없습니다.',
'settings.approvalHistory.title': '승인 이력',
'settings.approvalHistory.subtitle': '최근 도구 승인 결정, 최신 순.',
'settings.approvalHistory.refresh': 'Refresh',
'settings.approvalHistory.loading': '승인 이력 로드 중…',
'settings.approvalHistory.retry': 'Retry',
'settings.approvalHistory.emptyState': '아직 기록된 승인 결정이 없습니다.',
'settings.approvalHistory.errorGeneric': '승인 이력을 로드할 수 없습니다. 다시 시도하세요.',
'settings.approvalHistory.decidedAt': '{date}에 결정됨',
'settings.approvalHistory.decision.approveOnce': '1회 승인',
'settings.approvalHistory.decision.approveAlways': '항상 허용',
'settings.approvalHistory.decision.deny': 'Denied',
'settings.appearance.title': '외관',
'settings.appearance.themeHeading': '테마',
'settings.appearance.themeAria': '테마',
'settings.appearance.modeLight': '라이트',
'settings.appearance.modeLightDesc': '밝은 표면, 어두운 텍스트.',
'settings.appearance.modeDark': '다크',
'settings.appearance.modeDarkDesc': '어두운 표면, 해가 진 후 눈에 더 편안합니다.',
'settings.appearance.modeSystem': '시스템과 일치',
'settings.appearance.modeSystemDesc': 'OS 외관 설정을 따릅니다.',
'settings.appearance.helperText':
'다크 모드는 전체 앱 — 채팅, 설정, 패널 — 을 어두운 팔레트로 전환합니다. "시스템과 일치"는 OS 외관을 따르며 실시간으로 업데이트됩니다.',
'settings.appearance.fontSizeHeading': '글꼴 크기',
'settings.appearance.fontSizeAria': '글꼴 크기',
'settings.appearance.fontSizeSmall': '작게',
'settings.appearance.fontSizeSmallDesc': '간결한 텍스트 — 화면에 더 많이 표시.',
'settings.appearance.fontSizeMedium': '보통',
'settings.appearance.fontSizeMediumDesc': '기본의 균형 잡힌 크기.',
'settings.appearance.fontSizeLarge': '크게',
'settings.appearance.fontSizeLargeDesc': '읽기 쉬운 더 큰 텍스트.',
'settings.appearance.fontSizeXLarge': '아주 크게',
'settings.appearance.fontSizeXLargeDesc': '최대 가독성을 위한 가장 큰 텍스트.',
'settings.appearance.fontSizeHelperText':
'시스템 글꼴 설정과 관계없이 앱 전체 — 채팅, 설정, 패널 — 의 텍스트 크기를 조정합니다.',
'settings.appearance.tabBarHeading': '하단 탭 표시줄',
'settings.appearance.tabBarAlwaysShowLabels': '항상 레이블 표시',
'settings.appearance.tabBarAlwaysShowLabelsDesc':
'끄면 레이블은 마우스를 가져가거나 활성 탭에 대해서만 표시됩니다.',
'settings.appearance.chatHeading': '채팅',
'settings.appearance.assistantTextMode': '어시스턴트 답변을 텍스트로 표시',
'settings.appearance.hideAgentInsights': '에이전트 사고 숨기기',
'settings.appearance.hideAgentInsightsDesc':
'채팅에서 에이전트의 단계별 실시간 타임라인을 접습니다. 깜박이는 "처리 중" 링크로 전체 과정을 열 수 있습니다.',
'settings.appearance.assistantTextModeDesc':
'사용자 메시지는 말풍선으로 유지하고 어시스턴트 답변은 프레임 없는 텍스트로 표시합니다.',
'settings.mascot.active': '활성',
'settings.mascot.characterDesc': '캐릭터 설명',
'settings.mascot.characterHeading': '캐릭터 제목',
'settings.mascot.customGifError':
'HTTPS .gif URL, loopback HTTP .gif URL, file:// .gif URL 또는 로컬 .gif 경로를 입력하세요.',
'settings.mascot.customGifHeading': '사용자 지정 GIF 아바타',
'settings.mascot.customGifLabel': '사용자 지정 GIF 아바타 URL',
'settings.mascot.customGifPlaceholder': 'https://example.com/avatar.gif',
'settings.mascot.characterPreview': '미리보기',
'settings.mascot.characterStates': '상태',
'settings.mascot.characterVisemes': '입 모양',
'settings.mascot.colorAria': 'OpenHuman 색상',
'settings.mascot.colorDesc': '색상 설명',
'settings.mascot.colorHeading': '색상 제목',
'settings.mascot.colorBlack': '검정',
'settings.mascot.colorBurgundy': '버건디',
'settings.mascot.colorCustom': '사용자 지정',
'settings.mascot.colorNavy': '네이비',
'settings.mascot.primaryColor': '기본 색상',
'settings.mascot.secondaryColor': '보조 색상',
'settings.mascot.colorYellow': '노랑',
'settings.mascot.libraryUnavailable': 'OpenHuman 라이브러리를 사용할 수 없음',
'settings.mascot.title': 'OpenHuman',
'settings.mascot.loadingLibrary': 'OpenHuman 라이브러리 불러오는 중…',
'settings.mascot.loadDetailError': '마스코트를 로드할 수 없습니다.',
'settings.mascot.loadLibraryError': '마스코트 라이브러리를 로드할 수 없습니다.',
'settings.mascot.localDefault': '로컬 OpenHuman(기본값)',
'settings.mascot.menuTitle': '마스코트',
'settings.mascot.menuDesc': '앱 전체에서 사용되는 마스코트 색상 선택',
'settings.mascot.noCharacters': '아직 사용할 수 있는 OpenHuman 캐릭터가 없습니다',
'settings.mascot.noColorVariants': '색상 변형 없음',
'settings.mascot.voice.current': '현재',
'settings.mascot.voice.customDesc':
'api.elevenlabs.io/v1/voices 또는 ElevenLabs 대시보드에서 음성 ID를 찾으세요. ID만 저장되며 API 키는 백엔드에 유지됩니다.',
'settings.mascot.voice.customHeading': '사용자 지정 음성 ID',
'settings.mascot.voice.customOption': '기타(음성 ID 붙여넣기)…',
'settings.mascot.voice.customPlaceholder': '예: 21m00Tcm4TlvDq8ikWAM',
'settings.mascot.voice.desc':
'마스코트가 음성 응답에 사용할 ElevenLabs 음성을 선택하세요. 성별로 필터링하고, 선별된 목록에서 선택하거나, 사용자 지정 ID를 붙여넣거나, 앱이 인터페이스 언어에 맞는 음성을 선택하도록 할 수 있습니다.',
'settings.mascot.voice.genderFemale': '여성',
'settings.mascot.voice.genderHeading': '음성 성별',
'settings.mascot.voice.genderMale': '남성',
'settings.mascot.voice.heading': '음성',
'settings.mascot.voice.preset': '음성 프리셋',
'settings.mascot.voice.presetHeading': '음성 프리셋',
'settings.mascot.voice.preview': '음성 미리듣기',
'settings.mascot.voice.previewError': '음성 미리듣기 실패',
'settings.mascot.voice.previewText':
'안녕하세요, 저는 당신의 어시스턴트입니다. 음성 미리듣기입니다.',
'settings.mascot.voice.previewing': '미리듣는 중…',
'settings.mascot.voice.reset': '기본값으로 초기화',
'settings.mascot.voice.useLocaleDefault': '앱 언어와 일치',
'settings.mascot.voice.useLocaleDefaultDesc':
'현재 인터페이스 언어에 맞는 음성을 자동으로 선택합니다.',
'settings.persona.title': '페르소나',
'settings.persona.menuTitle': '페르소나',
'settings.persona.menuDesc':
'이름, 성격, 아바타, 음성을 하나의 어시스턴트 정체성으로 관리합니다.',
'settings.persona.identityHeading': '정체성',
'settings.persona.identityDesc':
'어시스턴트의 표시 이름과 짧은 설명입니다. 앱에 표시되며 어시스턴트의 추론 방식은 바꾸지 않습니다.',
'settings.persona.displayNameLabel': '표시 이름',
'settings.persona.displayNamePlaceholder': '예: Nova',
'settings.persona.descriptionLabel': '설명',
'settings.persona.descriptionPlaceholder': '예: 우리 팀을 위한 차분하고 간결한 어시스턴트.',
'settings.persona.soul.heading': '성격(SOUL.md)',
'settings.persona.soul.desc':
'어시스턴트가 모든 대화에서 따르는 성격 프롬프트입니다. 편집 내용은 작업공간에 저장되며 다음 응답부터 적용됩니다.',
'settings.persona.soul.editorLabel': 'SOUL.md 내용',
'settings.persona.soul.reset': '기본값으로 초기화',
'settings.persona.soul.usingDefault': '번들 기본값 사용 중',
'settings.persona.soul.loadError': 'SOUL.md를 불러올 수 없습니다',
'settings.persona.soul.saveError': 'SOUL.md를 저장할 수 없습니다',
'settings.persona.soul.resetError': 'SOUL.md를 초기화할 수 없습니다',
'settings.persona.appearanceHeading': '아바타 및 음성',
'settings.persona.appearanceDesc':
'마스코트 색상, 사용자 지정 GIF 아바타, 응답 음성은 마스코트 설정에서 구성합니다.',
'settings.persona.openMascotSettings': '마스코트 설정 열기',
'settings.memoryWindow.balanced.badge': '추천',
'settings.memoryWindow.balanced.hint':
'합리적인 기본값 — 매번 추가 토큰을 많이 쓰지 않으면서 좋은 연속성을 제공합니다.',
'settings.memoryWindow.balanced.label': '균형',
'settings.memoryWindow.description':
'OpenHuman이 새 에이전트 실행마다 주입하는 기억된 컨텍스트의 양입니다. 창이 클수록 과거 대화를 더 잘 인식하지만, 매 실행마다 더 많은 토큰을 사용하고 비용도 더 듭니다.',
'settings.memoryWindow.extended.badge': '더 많은 컨텍스트',
'settings.memoryWindow.extended.hint':
'각 실행에 더 많은 장기 메모리를 주입합니다. 턴당 토큰 비용이 더 높습니다.',
'settings.memoryWindow.extended.label': '확장',
'settings.memoryWindow.maximum.badge': '가장 높은 비용',
'settings.memoryWindow.maximum.hint':
'가장 큰 안전 창입니다. 최고의 연속성을 제공하지만 매 실행마다 토큰 비용이 의미 있게 증가합니다.',
'settings.memoryWindow.maximum.label': '최대',
'settings.memoryWindow.minimal.badge': '가장 저렴함',
'settings.memoryWindow.minimal.hint':
'가장 작은 메모리 창입니다. 가장 저렴하고 빠르지만 실행 간 연속성이 가장 낮습니다.',
'settings.memoryWindow.minimal.label': '최소',
'settings.memoryWindow.title': '장기 메모리 창',
'settings.agentbox.title': 'AgentBox',
'settings.agentbox.desc': 'GMI Cloud 마켓플레이스 어댑터 상태 및 공급자 구성',
'settings.agentbox.intro':
'AgentBox 마켓플레이스 어댑터의 읽기 전용 상태입니다. 모드와 GMI MaaS 공급자는 코어가 시작될 때 환경 변수로 설정됩니다.',
'settings.agentbox.modeLabel': '마켓플레이스 모드',
'settings.agentbox.providerHeading': 'GMI MaaS 공급자',
'settings.agentbox.slug': '공급자 슬러그',
'settings.agentbox.baseUrl': '기본 URL',
'settings.agentbox.model': '모델',
'settings.agentbox.notConfigured':
'구성되지 않았습니다. GMI_MAAS_BASE_URL, GMI_MAAS_API_KEY 및 GMI_MODELS 환경 변수를 설정하세요.',
'settings.agentbox.unavailable': 'AgentBox 상태를 사용할 수 없습니다',
'settings.modelHealth.title': '모델 상태',
'settings.modelHealth.desc': '활성 모델 전반의 모델별 품질, 환각률, 비용 비교',
'settings.modelHealth.allStatuses': '모든 상태',
'settings.modelHealth.models': '모델',
'settings.modelHealth.loading': '모델 데이터 불러오는 중...',
'settings.modelHealth.empty': '등록된 모델이 없습니다',
'settings.modelHealth.col.model': '모델',
'settings.modelHealth.col.quality': '품질',
'settings.modelHealth.col.halluc': '환각률',
'settings.modelHealth.col.cost': '1M 출력당 비용',
'settings.modelHealth.col.agents': '에이전트',
'settings.modelHealth.col.status': '상태',
'settings.modelHealth.badge.keep': '유지',
'settings.modelHealth.badge.replace': '교체',
'settings.modelHealth.badge.staging': '스테이징 테스트',
'settings.modelHealth.badge.vision': '비전 전용',
'settings.modelHealth.swap': '교체?',
'settings.modelHealth.modal.title': '모델을 교체하시겠습니까?',
'settings.modelHealth.modal.hallucRate': '환각률',
'settings.modelHealth.modal.cancel': '취소',
'settings.modelHealth.modal.apply': '교체 적용',
'settings.modelHealth.tag.cheaper': '더 저렴함',
'settings.modelHealth.tag.better': '더 좋음',
'settings.desktopAgent.title': '데스크톱 에이전트',
'settings.desktopAgent.description': '데스크톱 에이전트에 필요한 권한을 확인하고 허용하세요.',
'settings.desktopAgent.microphone': '마이크',
'settings.desktopAgent.grant': '허용',
'settings.desktopAgent.notRequiredOnOs': '이 운영 체제에서는 필요하지 않음',
'settings.desktopAgent.allGranted':
'모두 완료 — 데스크톱 에이전트에 필요한 모든 권한이 있습니다.',
'settings.desktopAgent.recheck': '다시 확인',
'settings.desktopAgent.restartAndRecheck': '코어 재시작 후 다시 확인',
'settings.desktopAgent.seamless.title': '에이전트 작업',
'settings.desktopAgent.seamless.label': '에이전트가 묻지 않고 실행하도록 허용',
'settings.desktopAgent.seamless.description':
'전체 접근을 허용하고 데스크톱 작업(앱 열기, 앱 인터페이스 제어)을 자동 승인하여 에이전트가 승인 요청 없이 실행하도록 합니다.',
'settings.desktopAgent.seamless.note':
'데스크톱 작업만 확인을 건너뜁니다 — 셸 명령 실행, 파일 편집, 네트워크 요청, 소프트웨어 설치는 여전히 확인을 요청합니다. 이 기능을 끄면 데스크톱 작업의 자동 승인이 중단되지만 접근 수준은 그대로 유지됩니다.',
'settings.desktopAgent.beta':
'베타 — 데스크톱 에이전트는 실험적 기능이며 항상 기대대로 작동하지 않을 수 있습니다.',
'settings.desktopAgent.wakeWordHint': '에이전트를 깨우려면 명령 앞에 “Hey Tiny”라고 말하세요.',
'settings.screenIntel.permissions.accessibility': '접근성',
'settings.screenIntel.permissions.grantHint': '권한 허용 안내',
'settings.screenIntel.permissions.inputMonitoring': '입력 모니터링',
'settings.screenIntel.permissions.macosAppliesPrivacy': 'macOS 개인정보 보호 적용',
'settings.screenIntel.permissions.openInputMonitoring': '요청 중…',
'settings.screenIntel.permissions.refreshStatus': '새로고침 중…',
'settings.screenIntel.permissions.refreshing': '새로고침 중…',
'settings.screenIntel.permissions.requestAccessibility': '요청 중…',
'settings.screenIntel.permissions.requestScreenRecording': '요청 중…',
'settings.screenIntel.permissions.requesting': '요청 중…',
'settings.screenIntel.permissions.restartRefresh': '코어 다시 시작 중…',
'settings.screenIntel.permissions.restartingCore': '코어 다시 시작 중…',
'settings.screenIntel.permissions.screenRecording': '화면 녹화',
'settings.screenIntel.permissions.title': '권한',
'skills.card.moreActions': '추가 작업',
'skills.channelIcon.discord': 'Discord',
'skills.channelIcon.imessage': 'iMessage',
'skills.channelIcon.telegram': 'Telegram',
'skills.channelIcon.web': '웹',
'skills.channelIcon.yuanbao': 'Yuanbao',
'skills.composio.poweredBy': 'Composio 제공',
'skills.composio.staleStatusTitle': '연결이 오래된 상태를 표시합니다.',
'skills.create.allowedTools': '허용된 도구',
'skills.create.allowedToolsHelp': 'SKILL.md 앞부분에 다음과 같이 렌더링됩니다.',
'skills.create.allowedToolsPlaceholder': 'node_exec, 가져오기',
'skills.create.author': '작성자',
'skills.create.authorPlaceholder': '이름',
'skills.create.commaSeparated': '(쉼표로 구분)',
'skills.create.createBtn': '스킬 생성',
'skills.create.createError': '스킬을 생성할 수 없습니다',
'skills.create.creating': '생성 중…',
'skills.create.description': '설명',
'skills.create.descriptionPlaceholder': '이 스킬은 무엇을 하나요?',
'skills.create.optional': '(선택 사항)',
'skills.create.inputs.heading': 'Inputs',
'skills.create.inputs.help':
'스킬에 필요한 매개변수를 선언하세요. Skills Runner가 런타임에 이에 대한 양식을 렌더링합니다.',
'skills.create.inputs.add': '입력 추가',
'skills.create.inputs.row.name': '입력 이름',
'skills.create.inputs.row.namePlaceholder': '예: repo',
'skills.create.inputs.row.nameError':
'영문자, 숫자, 밑줄, 대시만 사용 가능하며 영문자로 시작해야 합니다.',
'skills.create.inputs.row.description': '입력 설명',
'skills.create.inputs.row.descriptionPlaceholder': '이 필드에 무엇이 들어가나요?',
'skills.create.inputs.row.type': 'Type',
'skills.create.inputs.row.required': 'Required',
'skills.create.inputs.row.remove': '입력 제거',
'skills.create.inputs.type.string': 'Text',
'skills.create.inputs.type.integer': 'Number',
'skills.create.inputs.type.boolean': '예 / 아니오',
'skills.create.license': '라이선스',
'skills.create.licensePlaceholder': 'MIT',
'skills.create.name': '이름',
'skills.create.namePlaceholder': '예: Trade Journal',
'skills.create.scope': '범위',
'skills.create.scopeProjectHint': '/.openhuman/skills/',
'skills.create.scopeUserHint':
'~/.openhuman/skills/<slug>/SKILL.md에 작성됨 — 모든 워크스페이스에서 사용 가능.',
'skills.create.slugLabel': '슬러그 라벨',
'skills.create.subtitle': 'SKILL.md',
'skills.create.tags': '태그',
'skills.create.tagsPlaceholder': '거래, 연구',
'skills.create.title': '새 스킬',
'skills.detail.allowedTools': '허용된 도구',
'skills.detail.author': '작성자',
'skills.detail.license': '라이선스',
'skills.detail.bundledResources': '번들 리소스',
'skills.detail.description': '설명',
'skills.detail.closeAriaLabel': '스킬 세부 정보 닫기',
'skills.detail.location': '위치',
'skills.detail.noBundledResources': '번들 리소스가 없습니다.',
'skills.detail.platforms': '플랫폼',
'skills.detail.relatedSkills': '관련 스킬',
'skills.detail.source': '소스 URL',
'skills.detail.sourceFormat': '형식',
'skills.detail.stars': '별점',
'skills.detail.tags': '태그',
'skills.detail.warnings': '경고',
'skills.detail.version': '버전',
'skills.install.errors.alreadyInstalledHint':
'이 슬러그와 관련된 스킬이 이미 작업공간에 존재합니다. 먼저 제거하거나 `metadata.id` / `name` 머리말을 변경하세요.',
'skills.install.errors.alreadyInstalledTitle': '스킬이 이미 설치되어 있습니다.',
'skills.install.errors.fetchFailedHint':
'요청이 성공적으로 완료되지 않았습니다. 연결 가능한 공용 파일에서 URL 지점을 확인하고 호스트가 2xx 응답을 반환했는지 확인하세요.',
'skills.install.errors.fetchFailedTitle': '가져오기 실패',
'skills.install.errors.fetchTimedOutHint':
'원격 호스트가 제때 응답하지 않았습니다. 다시 시도하거나 제한 시간을 늘리세요(1~600초).',
'skills.install.errors.fetchTimedOutTitle': '가져오기 시간이 초과되었습니다.',
'skills.install.errors.fetchTooLargeHint':
'SKILL.md는 1MiB 미만이어야 합니다. 번들 리소스를 인라인하는 대신 `references/` 또는 `scripts/` 파일로 분할하세요.',
'skills.install.errors.fetchTooLargeTitle': 'SKILL.md가 너무 큽니다.',
'skills.install.errors.genericHint':
'백엔드에서 오류를 반환했습니다. 원시 메시지는 아래와 같습니다.',
'skills.install.errors.genericTitle': '기술을 설치할 수 없습니다.',
'skills.install.errors.invalidSkillHint':
'머리말은 비어 있지 않은 `이름` 및 `설명` 필드가 있고 `---`로 끝나는 유효한 YAML이어야 합니다.',
'skills.install.errors.invalidSkillTitle': 'SKILL.md가 구문 분석되지 않았습니다.',
'skills.install.errors.invalidUrlHint':
'공개 HTTPS URL만 허용됩니다. 개인, 루프백 및 메타데이터 호스트가 차단됩니다.',
'skills.install.errors.invalidUrlTitle': 'URL 거부됨',
'skills.install.errors.unsupportedUrlHint':
'직접 `.md` 링크만 작동합니다. GitHub의 경우 파일 링크(github.com/owner/repo/blob/.../SKILL.md) - 트리 및 repo 루트는 설치되지 않습니다.',
'skills.install.errors.unsupportedUrlTitle': 'URL 형식이 지원되지 않습니다.',
'skills.install.errors.writeFailedHint':
'작업공간 기술 디렉터리에 쓸 수 없습니다. `<workspace>/.openhuman/skills/`에 대한 파일 시스템 권한을 확인하세요.',
'skills.install.errors.writeFailedTitle': 'SKILL.md를 쓸 수 없습니다.',
'skills.install.fetchLog': '로그 가져오기',
'skills.install.fetchingPrefix': '가져오는 중',
'skills.install.fetchingSuffix': '이는 구성한 시간 초과까지 걸릴 수 있습니다.',
'skills.install.installBtn': '설치 중…',
'skills.install.installComplete': '설치 완료',
'skills.install.installing': '설치 중…',
'skills.install.parseWarnings': '파싱 경고',
'skills.install.rawError': '원시 오류',
'skills.install.subtitleMiddle': 'HTTPS을 통해',
'skills.install.subtitlePrefix': '아래에 설치합니다. 단일',
'skills.install.subtitleSuffix': 'HTTPS만 가져옵니다. 개인 및 루프백 호스트는 차단됩니다.',
'skills.install.successDiscovered': '{count} 새로운 스킬을 발견했습니다.',
'skills.install.successNoNewIds':
'스킬이 설치되었지만 새 스킬 ID가 나타나지 않았습니다. 카탈로그에 이미 동일한 슬러그가 있는 스킬이 포함되어 있을 수 있습니다.',
'skills.install.timeoutHint': '(초, 선택 사항)',
'skills.install.timeoutHelp': '기본값은 60초입니다. 1-600 이외의 값은 서버측에서 고정됩니다.',
'skills.install.timeoutInvalid': '1~600 사이의 정수여야 합니다.',
'skills.install.timeoutLabel': '시간 초과 라벨',
'skills.install.timeoutPlaceholder': '60',
'skills.install.title': 'URL에서 스킬 설치',
'skills.install.urlHelpMiddle': '파일.',
'skills.install.urlHelpPrefix': '직접 링크',
'skills.install.urlHelpSuffix': 'URLs 자동 재작성',
'skills.install.urlInvalidPrefix': 'URL은 올바른 형식의',
'skills.install.urlInvalidSuffix': '링크여야 합니다.',
'skills.install.urlLabel': '스킬 URL',
'skills.install.urlPlaceholder': 'https://raw.githubusercontent.com/owner/repo/main/SKILL.md',
'skills.meetingBots.bannerDesc':
'Google Meet 링크를 넣으면 OpenHuman이 게스트로 참여하여 말하고, 듣고, 반응합니다.',
'skills.meetingBots.bannerTitle': 'OpenHuman을 회의에 보내기',
'skills.meetingBots.busyTitle': 'OpenHuman이 바쁩니다',
'skills.meetingBots.comingSoon': '곧 제공 예정',
'skills.meetingBots.couldNotStartTitle': 'OpenHuman을 시작할 수 없습니다',
'skills.meetingBots.displayName': '표시 이름',
'skills.meetingBots.failedToStart': 'OpenHuman 시작에 실패했습니다.',
'skills.meetingBots.joiningMessage': '몇 초 안에 참가자로 표시될 것입니다.',
'skills.meetingBots.joiningTitle': 'OpenHuman이 회의에 참여하는 중',
'skills.meetingBots.meetingLink': '회의 링크',
'skills.meetingBots.modalAriaLabel': 'OpenHuman을 회의에 보내기',
'skills.meetingBots.modalDesc':
'OpenHuman이 익명 게스트로 참여하여 비디오를 통화에 스트리밍하고 에이전트를 통해 응답합니다.',
'skills.meetingBots.modalTitle': 'OpenHuman을 회의에 보내기',
'skills.meetingBots.newBadge': '새 항목',
'skills.meetingBots.platformComingSoon': '{label} 지원이 곧 제공될 예정입니다.',
'skills.meetingBots.platformHints.gmeet': 'Meet.google.com/abc-defg-hij',
'skills.meetingBots.platformHints.teams': 'Teams.microsoft.com/...',
'skills.meetingBots.platformHints.zoom': 'Zoom.us/j/...',
'skills.meetingBots.platforms.gmeet': 'Google 모임',
'skills.meetingBots.platforms.teams': 'Microsoft Teams',
'skills.meetingBots.platforms.zoom': 'Zoom',
'skills.meetingBots.sendTo': '보내기',
'skills.meetingBots.soonSuffix': '곧',
'skills.meetingBots.starting': '시작 중…',
'skills.meetingBots.recentCallsAriaLabel': '최근 회의 통화',
'skills.meetingBots.recentCallsHeading': '최근 통화',
'skills.meetingBots.recentCallsEmpty': '이전 통화가 없습니다 — 회의 기록이 여기에 표시됩니다.',
'skills.meetingBots.recentCallsLoading': '로딩 중\u2026',
'skills.meetingBots.recentCallAddedBy': '{name}님이 추가함',
'skills.meetingBots.recentCallParticipants': '{names}님과 함께',
'skills.meetingBots.liveBadge': '라이브',
'skills.meetingBots.liveTitle': '회의 중',
'skills.meetingBots.liveStatusJoining': '참가 중\u2026',
'skills.meetingBots.liveStatusActive': '회의에서 라이브',
'skills.meetingBots.liveStatusListening': '듣는 중 (음소거)',
'skills.meetingBots.liveStatusEnded': '회의 종료',
'skills.meetingBots.liveStatusError': '참가 실패',
'skills.meetingBots.leaveButton': '나가기',
'skills.meetingBots.respondToParticipant': '이 회의에서 내 이름',
'skills.meetingBots.respondToParticipantHint': '예: 김철수 (통화에서 표시되는 이름)',
'skills.meetingBots.respondToParticipantDesc':
'회의에서 사용하는 정확한 표시 이름을 입력하세요. 봇은 이름(웨이크 구문)을 말할 때만 응답합니다.',
'skills.meetingBots.wakePhrase': '웨이크 구문',
'skills.meetingBots.wakePhraseHint': 'Hey OpenHuman',
'skills.meetingBots.wakePhraseDesc': '참가자가 봇이 응답하기 전에 이것을 말해야 합니다.',
'skills.meetingBots.activeMode': '부르면 응답하기',
'skills.meetingBots.activeModeDesc':
'켜면 호출 문구를 말한 뒤 봇이 소리 내어 답합니다. 끄면 듣고 기록만 합니다.',
'skills.resource.preview.closeAriaLabel': '미리보기 닫기',
'skills.resource.preview.failed': '미리보기 실패',
'skills.resource.preview.loading': '미리보기 불러오는 중…',
'skills.resource.tree.assets': '자산',
'skills.resource.tree.examples': '예시',
'skills.resource.tree.other': '기타',
'skills.resource.tree.prompts': '프롬프트',
'skills.resource.tree.references': '참조',
'skills.resource.tree.scripts': '스크립트',
'skills.resource.tree.templates': '템플릿',
'skills.resource.tree.empty': '번들 리소스가 없습니다.',
'skills.search.placeholder': '플레이스홀더',
'skills.setup.autocomplete.acceptKey': '수락 키',
'skills.setup.autocomplete.activeDesc': '활성 설명',
'skills.setup.autocomplete.activeTitle': '자동 완성이 활성화됨',
'skills.setup.autocomplete.customizeSettings': '설정 사용자 지정',
'skills.setup.autocomplete.debounce': '디바운스',
'skills.setup.autocomplete.description': '설명',
'skills.setup.autocomplete.enableBtn': '활성화 중...',
'skills.setup.autocomplete.enableError': '자동 완성을 활성화하지 못했습니다',
'skills.setup.autocomplete.enabling': '활성화 중...',
'skills.setup.autocomplete.notSupported': '지원되지 않음',
'skills.setup.autocomplete.stepEnable': '인라인 완성 활성화',
'skills.setup.autocomplete.stepSuccess': '사용 준비 완료',
'skills.setup.autocomplete.stylePreset': '스타일 프리셋',
'skills.setup.autocomplete.stylePresetValue': '균형(나중에 구성 가능)',
'skills.setup.autocomplete.title': '텍스트 자동 완성',
'skills.setup.screenIntel.activeDesc': '활성 설명',
'skills.setup.screenIntel.activeTitle': '화면 인텔리전스가 활성화됨',
'skills.setup.screenIntel.advancedSettings': '고급 설정',
'skills.setup.screenIntel.allGranted': '모든 권한 허용됨',
'skills.setup.screenIntel.captureMode': '캡처 모드',
'skills.setup.screenIntel.captureModeValue': '모든 창(나중에 구성 가능)',
'skills.setup.screenIntel.deniedHint':
'시스템 설정에서 권한을 허용한 후 아래를 클릭하여 다시 시작하고 변경 사항을 적용하세요.',
'skills.setup.screenIntel.enableBtn': '활성화 중...',
'skills.setup.screenIntel.enableDesc':
'화면의 내용을 읽고 유용한 컨텍스트를 에이전트에 제공합니다',
'skills.setup.screenIntel.enableError': '화면 인텔리전스를 활성화하지 못했습니다',
'skills.setup.screenIntel.enabling': '활성화 중...',
'skills.setup.screenIntel.grant': '여는 중...',
'skills.setup.screenIntel.granted': '허용됨',
'skills.setup.screenIntel.macosOnly': 'macOS 전용',
'skills.setup.screenIntel.opening': '여는 중...',
'skills.setup.screenIntel.panicHotkey': '패닉 핫키',
'skills.setup.screenIntel.permAccessibility': '접근성',
'skills.setup.screenIntel.permInputMonitoring': '입력 모니터링',
'skills.setup.screenIntel.permScreenRecording': '화면 녹화',
'skills.setup.screenIntel.permissionsDesc': '권한 설명',
'skills.setup.screenIntel.permissionPathLabel': 'macOS는 다음에 개인 정보 보호를 적용합니다.',
'skills.setup.screenIntel.refreshStatus': '상태 새로고침',
'skills.setup.screenIntel.restartRefresh': '다시 시작 중...',
'skills.setup.screenIntel.restarting': '다시 시작 중...',
'skills.setup.screenIntel.stepEnable': '스킬 활성화',
'skills.setup.screenIntel.stepPermissions': '권한 허용',
'skills.setup.screenIntel.stepSuccess': '사용 준비 완료',
'skills.setup.screenIntel.title': '화면 인텔리전스',
'skills.setup.screenIntel.visionModel': '비전 모델',
'skills.setup.voice.activation': '활성화',
'skills.setup.voice.activeDescPrefix': 'Fn',
'skills.setup.voice.activeDescSuffix': 'Fn',
'skills.setup.voice.activeTitle': '음성 인텔리전스가 활성화됨',
'skills.setup.voice.customizeSettings': '설정 사용자 지정',
'skills.setup.voice.downloadSttBtn': 'STT 다운로드 버튼',
'skills.setup.voice.enableDesc': '활성화 설명',
'skills.setup.voice.hotkey': '핫키',
'skills.setup.voice.startBtn': '시작 중...',
'skills.setup.voice.startError': '음성 서버를 시작하지 못했습니다',
'skills.setup.voice.starting': '시작 중...',
'skills.setup.voice.stepEnable': '음성 서버 시작',
'skills.setup.voice.stepSetup': '모델 다운로드 필요',
'skills.setup.voice.stepSuccess': '사용 준비 완료',
'skills.setup.voice.sttNotReady': '음성-텍스트 모델이 준비되지 않음',
'skills.setup.voice.sttNotReadyDesc':
'음성 인텔리전스에는 전사용 로컬 Whisper 모델이 필요합니다. 로컬 모델 설정에서 다운로드하세요.',
'skills.setup.voice.sttReady': '음성-텍스트 모델 준비됨',
'skills.setup.voice.sttReturnHint': 'STT 반환 안내',
'skills.setup.voice.title': '음성 인텔리전스',
'skills.uninstall.couldNotUninstall': '제거할 수 없습니다',
'skills.uninstall.description':
'이 작업은 스킬 디렉터리와 모든 번들 리소스를 영구적으로 삭제합니다. 에이전트는 다음 턴부터 이를 더 이상 볼 수 없습니다.',
'skills.uninstall.title': '제거',
'skills.uninstall.uninstallBtn': '제거',
'skills.uninstall.uninstalling': '제거 중…',
'upsell.global.limitMessage': '계속하려면 플랜을 업그레이드하거나 크레딧을 충전하세요',
'upsell.global.limitTitle': '사용자',
'upsell.global.nearLimitMessage':
'사용 한도의 {pct}%를 사용했습니다. 더 높은 한도를 위해 업그레이드하세요.',
'upsell.global.nearLimitTitle': '사용 한도에 가까워지고 있습니다',
'upsell.usageLimit.bodyBudget':
'주간 한도에 도달했습니다.{reset} 한도를 피하려면 플랜을 업그레이드하거나 크레딧을 충전하세요.',
'upsell.usageLimit.bodyRate':
'10시간 추론 속도 한도에 도달했습니다.{reset} 더 높은 한도를 위해 업그레이드하세요.',
'upsell.usageLimit.heading': '사용 한도에 도달했습니다',
'upsell.usageLimit.notNow': '지금은 아님',
'upsell.usageLimit.perWindow': '{amount}',
'upsell.usageLimit.planIncludes': '{plan}',
'upsell.usageLimit.resetsIn': '{time}에 초기화됩니다.',
'upsell.usageLimit.upgradePlan': '플랜 업그레이드',
'upsell.usageLimit.weeklyInference': '{amount}',
'walkthrough.steps.startChat.title': '채팅에서 시작하기',
'walkthrough.steps.startChat.content':
'채팅이 시작점입니다. 새 창은 설정 후 보았던 같은 인사와 빠른 작업으로 열립니다.',
'walkthrough.steps.sayHello.title': '인사하기',
'walkthrough.steps.sayHello.content': '언제든 여기를 눌러 AI 어시스턴트와 대화를 시작하세요.',
'walkthrough.steps.meetAi.title': 'AI 만나기',
'walkthrough.steps.meetAi.content':
'대화가 이루어지는 곳입니다. 질문하고, 요약을 받고, 아이디어를 정리하세요. 모든 내용은 검색할 수 있습니다.',
'walkthrough.steps.connectWorld.title': '내 세계 연결하기',
'walkthrough.steps.connectWorld.content':
'Gmail, Slack, WhatsApp 등 각 연결은 어시스턴트에 더 많은 기능을 더합니다.',
'walkthrough.steps.messagingApps.title': '이미 쓰는 곳에서 채팅하기',
'walkthrough.steps.messagingApps.content':
'WhatsApp, Telegram, Slack, Discord를 연결하면 어시스턴트가 어디서든 연락할 수 있습니다.',
'walkthrough.steps.settings.title': '내 방식으로 설정하기',
'walkthrough.steps.settings.content':
'환경설정, 개인정보, 알림이 모두 여기에 있습니다. 이 페이지에서 언제든 투어를 다시 시작할 수 있습니다.',
'walkthrough.steps.chatTab.title': '채팅으로 돌아가기',
'walkthrough.steps.chatTab.content': '대화로 돌아가고 싶을 때 Chat 탭을 사용하세요.',
'walkthrough.steps.humanTab.title': 'Human 프로필 보기',
'walkthrough.steps.humanTab.content':
'Human은 개인 맥락, 정체성, 어시스턴트가 보는 프로필을 한곳에 모읍니다.',
'walkthrough.steps.brainTab.title': 'Brain 열기',
'walkthrough.steps.brainTab.content':
'Brain은 메모리 그래프입니다. OpenHuman이 무엇을 알고 아이디어가 어떻게 연결되는지 확인하는 곳입니다.',
'walkthrough.steps.agentWorldTab.title': 'Agent World 탐색',
'walkthrough.steps.agentWorldTab.content':
'Agent World에는 재사용 가능한 에이전트와 공유 자동화가 있습니다.',
'walkthrough.steps.connectionsTab.title': '연결 관리',
'walkthrough.steps.connectionsTab.content':
'서비스를 추가하거나 조정하고 싶을 때 Connections는 항상 기본 내비게이션에 있습니다.',
'walkthrough.steps.feedbackTab.title': '피드백 보내기',
'walkthrough.steps.feedbackTab.content':
'Feedback은 문제를 보고하거나 개선을 요청하는 직접적인 공간입니다.',
'walkthrough.steps.allSet.title': '준비 완료!',
'walkthrough.steps.allSet.content':
'어시스턴트가 환영 메모를 남겼습니다. 이곳에서 채팅하고, 질문하고, 아이디어를 정리해 보세요. 즐겁게 사용하세요!',
'walkthrough.tooltip.letsGo': '시작해 봅시다!',
'walkthrough.tooltip.next': '다음 →',
'walkthrough.tooltip.skip': '투어 건너뛰기',
'walkthrough.tooltip.stepCounter': '{total}개 중 {n}개',
'webhooks.activity.empty': '비어 있음',
'webhooks.activity.title': '최근 활동',
'webhooks.composioHistory.empty': '비어 있음',
'webhooks.composioHistory.metadataId': '메타데이터 ID',
'webhooks.composioHistory.metadataUuid': '메타데이터 UUID',
'webhooks.composioHistory.payload': '페이로드',
'webhooks.composioHistory.title': 'ComposeIO 트리거 기록',
'webhooks.tunnels.active': '활성',
'webhooks.tunnels.createFailed': '터널 생성 실패',
'webhooks.tunnels.creating': '생성 중...',
'webhooks.tunnels.deleteFailed': '터널 삭제 실패',
'webhooks.tunnels.descriptionPlaceholder': '설명(선택 사항)',
'webhooks.tunnels.echo': '에코',
'webhooks.tunnels.empty': '비어 있음',
'webhooks.tunnels.enableEcho': 'Echo 활성화',
'webhooks.tunnels.inactive': '비활성',
'webhooks.tunnels.namePlaceholder': '터널 이름(예: telegram-bot)',
'webhooks.tunnels.newTunnel': '새 터널',
'webhooks.tunnels.removeEcho': 'Echo 제거',
'webhooks.tunnels.title': '웹훅 터널',
'webhooks.tunnels.toggleFailed': 'Echo 전환 실패',
'composio.directModeRequiresKey':
'저장에 실패했습니다. Direct 모드에는 비어 있지 않은 API 키가 필요합니다.',
'composio.integrationSlugsHelp': '쉼표로 구분된 통합 슬러그, 예:',
'composio.integrationSlugsExample': 'gmail, slack',
'composio.integrationSlugsCaseInsensitive': '대소문자를 구분하지 않습니다.',
'composio.integrationSlugsPlaceholder': 'gmail, slack, ...',
'composio.notYetRouted': '아직 라우팅되지 않음',
'composio.triggers.loading': '불러오는 중…',
'conversations.taskKanban.todo': '할 일',
'chat.addReaction': '반응 추가',
'chat.agentProfile.create': '에이전트 프로필 생성',
'chat.agentProfile.createFailed': '에이전트 프로필을 생성할 수 없습니다.',
'chat.agentProfile.customDescription': '사용자 지정 에이전트 프로필',
'chat.agentProfile.defaultAgentLabel': 'Orchestrator',
'chat.agentProfile.exists': '에이전트 프로필 "{name}"이(가) 이미 존재합니다.',
'chat.agentProfile.label': '에이전트 프로필',
'chat.agentProfile.quick': '빠름',
'chat.agentProfile.reasoning': '추론',
'chat.agentProfile.namePlaceholder': '프로필 이름',
'chat.agentProfile.promptStylePlaceholder': '프롬프트 스타일',
'chat.agentProfile.allowedToolsPlaceholder': '허용된 도구',
'chat.backToThread': '{title}로 돌아가기',
'chat.parentThread': '상위 스레드',
'chat.removeReaction': '{emoji} 제거',
'settings.composio.loading': '불러오는 중…',
'settings.mascot.noCharactersAvailable': '아직 사용할 수 있는 OpenHuman 캐릭터가 없습니다',
'skills.uninstall.confirmTitle': '{name}을(를) 제거하시겠습니까?',
'conversations.taskKanban.blocked': '차단됨',
'conversations.taskKanban.done': '완료',
'conversations.taskKanban.pending': '대기 중',
'conversations.taskKanban.working': '작업 중',
'conversations.taskKanban.awaitingApproval': '승인 대기 중',
'conversations.taskKanban.ready': '준비됨',
'conversations.taskKanban.rejected': '거부됨',
'conversations.taskKanban.inProgress': '진행 중',
'conversations.taskKanban.awaitingApprovalColumn': '승인 대기 중',
'conversations.taskKanban.blockedColumn': '차단됨',
'conversations.taskKanban.evidenceBadge': '증거 ({count})',
'conversations.taskKanban.needsInput': '이 작업들은 귀하의 입력이 필요합니다',
'conversations.taskKanban.emptyColumn': '작업 없음',
'conversations.taskKanban.dragHint': '열 사이를 이동하려면 끌어다 놓으세요',
'conversations.taskKanban.movingCard': '이동 중…',
'conversations.taskKanban.statusBadge.ready': '시작 준비됨',
'conversations.taskKanban.statusBadge.rejected': '거부됨',
'intelligence.memoryChunk.detail.copiedHint': '복사됨',
'settings.composio.notYetRouted': '아직 라우팅되지 않음',
'settings.localModel.download.manageExternal': '외부 런타임에서 이 모델을 관리하세요.',
'settings.localModel.status.manageOllamaExternal':
'OpenHuman 외부에서 Ollama 프로세스와 모델 가져오기를 관리한 다음 진단을 다시 실행하세요.',
'settings.localModel.status.ollamaDocs': 'Ollama 문서',
'settings.localModel.status.thenRetry':
'설정 지침을 확인한 다음 런타임에 연결할 수 있게 되면 다시 시도하세요.',
'devOptions.menuAi': 'AI 구성',
'devOptions.menuAiDesc': '클라우드 공급자, 로컬 Ollama 모델 및 워크로드별 라우팅',
'devOptions.menuScreenAware': '화면 인식',
'devOptions.menuScreenAwareDesc': '화면 캡처 권한, 모니터링 정책 및 세션 제어',
'devOptions.menuMessaging': '메시징 채널',
'devOptions.menuMessagingDesc': 'Telegram/Discord 인증 모드 및 기본 채널 라우팅 구성',
'devOptions.menuTools': '도구',
'devOptions.menuToolsDesc':
'OpenHuman이(가) 사용자를 대신하여 사용할 수 있는 기능 활성화 또는 비활성화',
'devOptions.menuAgentChat': '에이전트 채팅',
'devOptions.menuAgentChatDesc': '모델 및 온도 재정의를 사용한 테스트 에이전트 대화',
'devOptions.menuCronJobs': '크론 작업',
'devOptions.menuCronJobsDesc': '런타임 기술에 대해 예약된 작업 보기 및 구성',
'devOptions.menuLocalModelDebug': '로컬 모델 디버그',
'devOptions.menuLocalModelDebugDesc': 'Ollama 구성, 자산 다운로드, 모델 테스트 및 진단',
'devOptions.menuWebhooksDebug': '웹후크',
'devOptions.menuWebhooksDebugDesc': '런타임 웹후크 등록 및 캡처된 요청 로그 검사',
'devOptions.menuIntelligence': '인텔리전스',
'devOptions.menuIntelligenceDesc': '메모리 작업 공간, 잠재의식 엔진, 드림 및 설정',
'devOptions.menuNotificationRouting': '알림 라우팅',
'devOptions.menuNotificationRoutingDesc':
'통합 경고에 대한 AI 중요도 점수 및 오케스트레이터 에스컬레이션',
'devOptions.menuComposeIOTriggers': 'ComposeIO 트리거',
'devOptions.menuComposeIOTriggersDesc': 'ComposeIO 트리거 기록 및 아카이브 보기',
'devOptions.menuComposioRouting': 'Composio 라우팅(직접 모드)',
'devOptions.menuComposioRoutingDesc':
'자체 Composio API 키를 가져와 호출을 backend.composio.dev로 직접 라우팅',
'devOptions.menuComposioTriggers': '통합 트리거',
'devOptions.menuComposioTriggersDesc': 'Composio 통합 트리거에 대한 AI 심사 설정 구성',
'memory.sourceFilterAria': '소스별 필터링',
'calls.comingSoonDescription': 'AI 지원 통화가 곧 제공됩니다. 기대해 주세요.',
'whatsapp.title': 'WhatsApp',
'subconscious.priority.critical': '심각',
'subconscious.priority.important': '중요',
'subconscious.priority.normal': '정상',
'subconscious.durationSeconds': '{seconds}s',
'subconscious.durationMilliseconds': '{milliseconds}ms',
'settings.appearance': '모양',
'settings.appearanceDesc': '밝은 색, 어두운 색 선택 또는 시스템 테마와 일치',
'settings.mascot': '마스코트',
'settings.mascotDesc': '앱 전체에서 사용되는 마스코트 색상 선택',
'pages.settings.account.walletBalances': '지갑 잔액',
'pages.settings.account.walletBalancesDesc': '로컬 지갑의 멀티체인 잔액을 확인하세요',
'walletBalances.title': '지갑 잔액',
'walletBalances.refresh': 'Refresh',
'walletBalances.loading': '잔액 불러오는 중…',
'walletBalances.retry': 'Retry',
'walletBalances.emptyState': '아직 지갑 계정이 없습니다 — 복구 문구에서 지갑을 설정하세요.',
'walletBalances.copyAddress': '주소 복사',
'walletBalances.providerMissing': '공급자 사용 불가',
'walletBalances.rawBalance': '원본: {raw}',
'walletBalances.errorGeneric':
'지갑 잔액을 불러올 수 없습니다. 복구 문구에서 지갑을 설정하고 다시 시도하세요.',
'walletBalances.setupHint':
'복구 문구가 아직 설정되지 않았습니다. 지갑을 활성화하고 실시간 잔액을 보려면 설정하세요.',
'walletBalances.setupCta': '복구 문구 설정',
'walletBalances.notSetUp': '설정 안 됨',
'walletBalances.send': '보내기',
'walletBalances.receive': '받기',
'walletReceive.scanHint': '자금을 받으려면 이 코드를 스캔하거나 아래 주소를 복사하세요.',
'walletReceive.addressLabel': '{network} 주소',
'walletReceive.onlyChainWarning':
'이 주소로는 {network} 자산만 보내세요. 다른 네트워크의 자산을 보내면 영구적으로 손실될 수 있습니다.',
'walletSend.available': '사용 가능',
'walletSend.recipient': '받는 사람 주소',
'walletSend.recipientPlaceholder': '대상 주소 붙여넣기',
'walletSend.recipientRequired': '받는 사람 주소를 입력하세요',
'walletSend.amount': '금액',
'walletSend.invalidAmount': '유효한 금액을 입력하세요',
'walletSend.review': '검토',
'walletSend.preparing': '준비 중…',
'walletSend.confirmHint':
'아래 세부 정보를 확인하세요. 서명은 로컬에서 이루어지며 확인하기 전에는 아무것도 전송되지 않습니다.',
'walletSend.estimatedFee': '예상 네트워크 수수료',
'walletSend.confirmSend': '확인 후 보내기',
'walletSend.sending': '보내는 중…',
'walletSend.sent': '거래가 전송됨',
'walletSend.txHash': '거래 해시',
'walletSend.viewExplorer': '익스플로러에서 보기',
'walletSend.done': '완료',
'walletSend.genericError': '전송을 완료할 수 없습니다. 다시 시도하세요.',
'settings.taskSources.title': '작업 소스',
'settings.integrations.title': '통합',
'settings.integrations.menuDesc': '작업 소스, Composio 라우팅 및 웹훅 트리거',
'settings.taskSources.subtitle': '도구의 작업을 에이전트 할 일 보드로 가져옵니다',
'settings.taskSources.description':
'GitHub, Notion, Linear, ClickUp에서 작업 항목을 수집하고 보강한 뒤 에이전트 할 일 보드로 라우팅합니다.',
'settings.taskSources.connectHint':
'작업 소스는 연결된 계정을 사용합니다. 먼저 통합에서 계정을 연결하세요.',
'settings.taskSources.disabledBanner':
'설정에서 작업 소스가 비활성화되어 있습니다. 자동으로 폴링하려면 활성화하세요.',
'settings.taskSources.loadError': '작업 소스를 불러오지 못했습니다',
'settings.taskSources.addTitle': '작업 소스 추가',
'settings.taskSources.provider': '제공업체',
'settings.taskSources.name': '이름(선택 사항)',
'settings.taskSources.namePlaceholder': '예: 내 열린 이슈',
'settings.taskSources.github.repo': '저장소 (소유자/이름, 선택 사항)',
'settings.taskSources.github.labels': '레이블(쉼표로 구분)',
'settings.taskSources.notion.database': '데이터베이스(보드) ID',
'settings.taskSources.notion.browseDatabases': '데이터베이스 찾아보기',
'settings.taskSources.notion.loadingDatabases': '데이터베이스 불러오는 중…',
'settings.taskSources.notion.selectDatabase': '데이터베이스 선택…',
'settings.taskSources.notion.noDatabases': '이 연결에 대한 데이터베이스가 없습니다.',
'settings.taskSources.linear.team': '팀 ID(선택 사항)',
'settings.taskSources.clickup.team': '작업공간(팀) ID(선택 사항)',
'settings.taskSources.assignedToMe': '내게 할당된 항목만',
'settings.taskSources.add': '소스 추가',
'settings.taskSources.adding': '추가 중…',
'settings.taskSources.preview': '미리보기',
'settings.taskSources.previewResult': '{count}개 작업이 이 필터와 일치합니다',
'settings.taskSources.fetchNow': '지금 가져오기',
'settings.taskSources.fetching': '가져오는 중…',
'settings.taskSources.fetchResult':
'{fetched}개 작업 중 {routed}개 라우팅됨; 오래된 작업 {pruned}개 제거됨',
'settings.taskSources.syncAll': '모두 동기화',
'settings.taskSources.syncing': '동기화 중…',
'settings.taskSources.configured': '구성된 소스',
'settings.taskSources.empty': '아직 구성된 작업 소스가 없습니다.',
'settings.taskSources.proactive': '능동형',
'settings.taskSources.lastFetch': '마지막 가져오기',
'settings.taskSources.never': '없음',
'settings.taskSources.statusEnabled': '활성화됨',
'settings.taskSources.statusDisabled': '비활성화됨',
'settings.taskSources.enable': '활성화',
'settings.taskSources.disable': '비활성화',
'settings.taskSources.remove': '제거',
'settings.taskSources.removeConfirm':
'이 작업 소스를 제거하시겠습니까? 수집된 모든 작업 기록이 삭제되며 되돌릴 수 없습니다.',
'settings.taskSources.refresh': '새로고침',
'settings.taskSources.providers.github': 'GitHub',
'settings.taskSources.providers.notion': 'Notion',
'settings.taskSources.providers.linear': 'Linear',
'settings.taskSources.providers.clickup': 'ClickUp',
'skills.dashboard.enable': '예약된 워크플로 활성화',
'skills.dashboard.disable': '예약된 워크플로 비활성화',
'skills.dashboard.lastRun': '마지막 실행',
'skills.dashboard.nextRun': '다음 실행',
'skills.dashboard.cardOpenRunner': '러너에서 열기',
'skills.new.title': '워크플로 만들기',
'settings.agents.title': '에이전트',
'settings.agents.subtitle':
'위임에 사용할 수 있는 에이전트를 관리하세요. 기본 제공 에이전트와 직접 만든 사용자 지정 에이전트를 포함합니다.',
'settings.agents.menuDesc': '기본 제공 및 사용자 지정 에이전트 관리',
'settings.agents.newAgent': '새 에이전트',
'settings.agents.loadError': '에이전트를 불러올 수 없습니다',
'settings.agents.empty': '아직 에이전트가 없습니다',
'settings.agents.sourceDefault': '기본 제공',
'settings.agents.sourceCustom': '사용자 지정',
'settings.agents.enable': '에이전트 활성화',
'settings.agents.disable': '에이전트 비활성화',
'settings.agents.edit': '편집',
'settings.agents.delete': '삭제',
'settings.agents.reset': '기본값으로 재설정',
'settings.agents.modelLabel': '모델',
'settings.agents.toolsLabel': '도구',
'settings.agents.toolsAll': '모든 도구',
'settings.agents.toolsCount': '도구 {count}개',
'settings.agents.actionFailed': '에이전트를 업데이트할 수 없습니다',
'settings.agents.orchestratorLocked': '오케스트레이터는 항상 활성화되어 있습니다.',
'settings.agents.editor.createTitle': '새 에이전트',
'settings.agents.editor.editTitle': '에이전트 편집',
'settings.agents.editor.id': 'ID',
'settings.agents.editor.idHint': '소문자, 숫자, _ 및 -만 사용할 수 있습니다.',
'settings.agents.editor.name': '이름',
'settings.agents.editor.description': '설명',
'settings.agents.editor.model': '모델(선택 사항)',
'settings.agents.editor.modelPlaceholder': '예: inherit, hint:fast 또는 모델 ID',
'settings.agents.editor.systemPrompt': '시스템 프롬프트(선택 사항)',
'settings.agents.editor.tools': '허용된 도구',
'settings.agents.editor.toolsHint':
'한 줄에 도구 이름을 하나씩 입력하세요. 모든 도구에는 *를 사용하세요.',
'settings.agents.editor.defaultsNote':
'기본 제공 에이전트를 편집하면 나중에 재설정할 수 있는 재정의로 저장됩니다.',
'settings.agents.editor.save': '저장',
'settings.agents.editor.create': '에이전트 만들기',
'settings.agents.editor.saving': '저장 중…',
'nav.workflows': 'Workflows',
'workflows.title': '워크플로',
'workflows.subtitle':
'재사용 가능하고 실행 가능한 절차 — 목표와 그에 도달하는 단계. 새로 만들거나, URL에서 설치하거나, 워크플로를 열어 실행하세요.',
'workflows.createNew': '새 워크플로',
'workflows.listHeading': 'Workflows',
'workflows.delete': '워크플로 삭제',
'workflows.deleteError': '워크플로 삭제 실패',
'workflows.warnings': '{count}개 경고',
'workflows.empty.title': '아직 워크플로가 없습니다',
'workflows.empty.body':
'작업 생명주기 단계에 대한 규칙과 스크립트를 정의하려면 워크플로를 만드세요.',
'workflows.create.title': '새 워크플로',
'workflows.create.subtitle': '에이전트를 위한 생명주기 연동 규칙 세트를 정의합니다.',
'workflows.create.name': 'Name',
'workflows.create.namePlaceholder': '예: Python 프로젝트 워크플로',
'workflows.create.description': 'Description',
'workflows.create.descriptionPlaceholder': '이 워크플로는 무엇을 하나요?',
'workflows.create.whenToUse': '사용 시기',
'workflows.create.whenToUsePlaceholder': '에이전트가 이 워크플로를 언제 사용해야 하나요?',
'workflows.create.optional': '(선택 사항)',
'workflows.create.createBtn': '워크플로 만들기',
'workflows.create.creating': 'Creating…',
'workflows.create.createError': '워크플로를 만들 수 없습니다',
'workflows.create.successTitle': '워크플로 생성됨',
'workflows.create.successMessage': '성공적으로 생성되었습니다.',
'workflows.deleteConfirm.title': '워크플로 삭제',
'workflows.deleteConfirm.body': '"{name}"을(를) 제거하시겠습니까? 이 작업은 되돌릴 수 없습니다.',
'workflows.detail.tags': 'Tags',
'workflows.detail.location': 'Location',
'workflows.detail.warnings': 'Warnings',
'workflows.detail.phases': 'Phases',
'workflows.detail.noPhases': '정의된 단계가 없습니다.',
'workflows.detail.loadError': '전체 워크플로 로드 실패',
'workflows.phase.rules': 'Rules',
'workflows.phase.rules.empty': '규칙 없음.',
'workflows.phase.scripts': 'Scripts',
'workflows.phase.scripts.empty': '스크립트 없음.',
'workflows.phase.toolScope': '도구 범위',
'workflows.phase.toolScope.allow': 'Allow',
'workflows.phase.toolScope.deny': 'Deny',
'workflows.phase.toolScope.inherited': '워크플로 기본값에서 상속됨.',
'workflows.phase.toolScope.empty': '도구 제한 없음.',
'workflows.phase.context': 'Context',
'workflows.phase.context.empty': '컨텍스트 제공자 없음.',
'settings.agentsSection.title': 'Agents',
'settings.agentsSection.description':
'에이전트와 그 자율성, 그리고 이 컴퓨터에서 액세스할 수 있는 항목을 관리하세요.',
'settings.agentsSection.menuDesc': '레지스트리, 자율성 및 OS 접근',
'settings.cryptoSection.title': '암호화폐',
'settings.cryptoSection.description': '복구 문구를 관리하고 지갑 계정 전반의 잔액을 확인하세요.',
'settings.cryptoSection.menuDesc': '복구 문구 및 지갑 잔액',
'settings.notificationsHub.title': '알림',
'settings.notificationsHub.description':
'알림 받은 편지함을 확인하고 알림 환경설정과 라우팅을 관리하세요.',
'settings.notificationsHub.menuDesc': '알림 받은 편지함 및 알림 환경설정',
'settings.notificationsHub.settingsItem': '알림 설정',
'settings.notificationsHub.settingsItemDesc': '환경설정 및 라우팅',
'settings.agents.editor.notFound': '에이전트를 찾을 수 없습니다.',
'settings.agents.editor.modelInherit': '상속 (플랫폼 기본값)',
'settings.agents.editor.modelHints': '라우트 힌트',
'settings.agents.editor.modelTiers': '모델 등급',
'settings.agents.editor.modelCustom': '사용자 정의 모델 ID…',
'settings.agents.editor.modelCustomPlaceholder': '예: anthropic/claude-sonnet-4',
'settings.agents.editor.selectTools': '도구 추가',
'settings.agents.editor.toolsAllSelected': '모든 도구',
'settings.agents.editor.toolsNoneSelected': '선택된 도구 없음',
'settings.agents.editor.removeToolAria': '{tool} 제거',
'settings.agents.editor.toolsModalTitle': '허용된 도구',
'settings.agents.editor.toolsSelectedCount': '{count}개 선택됨',
'settings.agents.editor.toolsSearchPlaceholder': '도구 검색…',
'settings.agents.editor.toolsAllowAll': '모든 도구 허용 (*)',
'settings.agents.editor.toolsAllowAllHint':
'이 에이전트는 사용 가능한 모든 도구를 사용할 수 있습니다.',
'settings.agents.editor.toolsLoading': '도구 불러오는 중…',
'settings.agents.editor.toolsLoadError': '도구를 불러올 수 없습니다',
'settings.agents.editor.toolsEmpty': '검색 결과와 일치하는 도구가 없습니다.',
'settings.agents.editor.toolsDone': 'Done',
'settings.agents.editor.builtInReadonly':
'기본 제공 에이전트는 편집할 수 없습니다. 에이전트 목록에서 활성화, 비활성화 또는 초기화할 수 있습니다.',
// Chat — agent-generated artifacts (#2779)
'chat.artifact.aria': '아티팩트: {title}',
'chat.artifact.generating': '{kind} 생성 중…',
'chat.artifact.ready': '준비됨',
'chat.artifact.failed': '생성 실패',
'chat.artifact.download': '다운로드',
'chat.artifact.downloading': '다운로드 중…',
'chat.artifact.downloaded': '{path}에 저장됨',
'chat.artifact.download_failed': '다운로드 실패: {reason}',
'chat.artifact.retry': '다시 시도',
'chat.artifact.reveal': '폴더에서 보기',
'chat.artifact.show_more': '더 보기',
'chat.artifact.show_less': '간단히 보기',
// Chat — files panel (#3024)
'chat.files.chip.aria.one': '이 채팅의 파일 {count}개',
'chat.files.chip.aria.other': '이 채팅의 파일 {count}개',
'chat.files.panel.aria': '이 채팅의 파일',
'chat.files.panel.title': '파일 ({count})',
'chat.files.panel.empty': '아직 파일이 없습니다. 에이전트에 생성을 요청하세요.',
'chat.files.panel.close': '파일 패널 닫기',
'chat.files.delete.aria': '{title} 삭제',
'chat.files.delete.confirm': '이 파일을 삭제할까요?',
'chat.files.delete.cancel': '취소',
'chat.files.delete.action': '삭제',
'chat.files.delete.failed': '파일을 삭제하지 못했습니다. 다시 시도해주세요.',
'chat.files.error.not_desktop': '다운로드는 데스크톱 앱에서만 사용할 수 있습니다.',
'chat.files.error.missing_artifact_id': '아티팩트 ID가 없습니다.',
'chat.files.error.missing_artifact_path': '코어 응답에 아티팩트 경로가 없습니다.',
'chat.files.error.resolve_failed': '아티팩트를 해석할 수 없습니다. 다시 시도해주세요.',
'chat.files.error.download_failed': '다운로드에 실패했습니다. 다시 시도해주세요.',
'chat.files.error.delete_failed': '파일을 삭제하지 못했습니다. 다시 시도해주세요.',
'autocomplete.debounceMs': '디바운스 (ms)',
'autocomplete.maxChars': '최대 컨텍스트 문자 수',
'autocomplete.overlayTtlMs': '오버레이 시간 초과 (ms)',
'memory.tab.council': 'Council',
'activity.tabs.automations': '자동화',
'activity.tabs.automationsDescription':
'재사용 가능하고 실행 가능한 절차 — 목표와 그것을 달성하기 위한 단계.',
'activity.tabs.backgroundActivity': '잠재의식',
'activity.tabs.alerts': '알림',
'intelligence.agents.title': '에이전트 라이브러리',
'intelligence.agents.subtitle':
'실행 가능한 전문가를 살펴보고 지정한 에이전트에 작업을 보냅니다.',
'intelligence.agents.refresh': '새로고침',
'intelligence.agents.loading': '에이전트를 불러오는 중…',
'intelligence.agents.failedToLoad': '에이전트를 불러올 수 없습니다',
'intelligence.agents.empty': '실행 가능한 에이전트가 없습니다.',
'intelligence.agents.readOnly': '읽기 전용',
'intelligence.agents.writeCapable': '쓰기 가능',
'intelligence.agents.allTools': '모든 도구',
'intelligence.agents.toolCountOne': '도구 {count}개',
'intelligence.agents.toolCountOther': '도구 {count}개',
'intelligence.agents.subagentCountOne': '하위 에이전트 {count}개',
'intelligence.agents.subagentCountOther': '하위 에이전트 {count}개',
'intelligence.agents.startChat': '채팅 시작',
'intelligence.agents.startChatPrompt':
'이 에이전트와 채팅을 시작하세요. 전문 분야를 소개하고 필요한 정보를 물은 뒤 내 작업을 기다리세요.',
'intelligence.agents.copyId': 'ID 복사',
'intelligence.agents.copied': '복사됨',
'intelligence.agents.taskPlaceholder': '이 에이전트에게 줄 작업',
'intelligence.agents.runTask': '작업 실행',
'intelligence.agents.running': '실행 중…',
'intelligence.agents.runFailed': '선택한 에이전트를 시작할 수 없습니다',
'intelligence.agents.model.inherit': '상속',
'intelligence.agents.tier.chat': '채팅',
'intelligence.agents.tier.reasoning': '추론',
'intelligence.agents.tier.worker': '작업자',
'modelCouncil.title': '모델 평의회',
'modelCouncil.intro':
'질문 하나를 하면 여러 모델에서 동시에 독립적인 답변을 받고, 의장 모델이 합의점, 이견, 각 모델의 고유한 기여를 종합합니다.',
'modelCouncil.listTitle': 'Councils',
'modelCouncil.listIntro':
'저장된 평의회를 선택하거나, 에이전트와 판사를 편집하거나, 특정 유형의 결정을 위해 새 평의회를 만드세요.',
'modelCouncil.addCouncil': '새 평의회',
'modelCouncil.openCouncil': '평의회 열기',
'modelCouncil.editCouncil': '평의회 편집',
'modelCouncil.editCurrentCouncil': '현재 평의회 편집',
'modelCouncil.editCouncilAria': '{name} 편집',
'modelCouncil.deleteCouncilAria': '{name} 삭제',
'modelCouncil.backToCouncils': '평의회 목록으로 돌아가기',
'modelCouncil.saveCouncil': '평의회 저장',
'modelCouncil.savingCouncil': 'Saving…',
'modelCouncil.cancelEdit': 'Cancel',
'modelCouncil.loadingCouncils': '평의회 로드 중…',
'modelCouncil.noCouncils': '아직 평의회가 없습니다. 하나를 추가하여 시작하세요.',
'modelCouncil.noCouncilDescription': '설명 없음',
'modelCouncil.registryErrorPrefix': '평의회 레지스트리 실패:',
'modelCouncil.councilNameLabel': '평의회 이름',
'modelCouncil.councilDescriptionLabel': 'Description',
'modelCouncil.councilDescriptionPlaceholder': '이 평의회를 사용할 시기',
'modelCouncil.selectModel': 'Select',
'modelCouncil.modelPickerHelp': '라우팅 힌트를 선택하거나 정확한 공급자 모델을 고정하세요.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': '채팅',
'modelCouncil.hint.code': '코드',
'modelCouncil.hint.default': '기본값',
'modelCouncil.hint.reasoning': '추론',
'modelCouncil.hint.summarize': '요약',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': '공급자 + 모델',
'modelCouncil.modelProviderLabel': '모델 공급자',
'modelCouncil.modelIdLabel': '모델 ID',
'modelCouncil.useProviderModel': '공급자 모델 사용',
'modelCouncil.questionLabel': 'Question',
'modelCouncil.questionPlaceholder': '평의회에 질문하세요…',
'modelCouncil.membersLabel': '구성원 모델',
'modelCouncil.maxMembersNote': '최대 {max}개',
'modelCouncil.memberPlaceholder': '예: gpt-5.2',
'modelCouncil.memberAria': '구성원 모델 {n}',
'modelCouncil.removeMemberAria': '구성원 모델 {n} 제거',
'modelCouncil.addMember': '+ 모델 추가',
'modelCouncil.settingsTitle': '위원회 설정',
'modelCouncil.settingsSummary': '배심원 {count}명 · 판사: {judge}',
'modelCouncil.juryCountLabel': '배심원 수',
'modelCouncil.debateRoundsLabel': '토론 라운드',
'modelCouncil.debateRoundsHelp':
'각 배심원은 판사가 최종 종합 의견을 작성하기 전에 여러 라운드에 걸쳐 토론합니다.',
'modelCouncil.judgeAgentLabel': '판사 에이전트',
'modelCouncil.defaultJudge': '기본 판사',
'modelCouncil.savedProfile': '저장된 프로필',
'modelCouncil.customAgent': '사용자 지정 에이전트',
'modelCouncil.judgeProfileLabel': '판사 프로필',
'modelCouncil.chooseProfile': '프로필 선택',
'modelCouncil.judgeNameLabel': '판사 이름',
'modelCouncil.judgeNamePlaceholder': '수석 판사',
'modelCouncil.rosterHeading': '위원회 명단',
'modelCouncil.rosterHelp':
'각 배심원은 기본 에이전트를 상속하거나 저장된 프로필을 사용하거나 이번 실행용 사용자 지정 프로필이 될 수 있습니다.',
'modelCouncil.loadingProfiles': '프로필 불러오는 중…',
'modelCouncil.jurorLabel': '배심원 {n}',
'modelCouncil.profileModeLabel': '프로필 출처',
'modelCouncil.mode.default': '기본',
'modelCouncil.mode.profile': '프로필',
'modelCouncil.mode.custom': '사용자 지정',
'modelCouncil.memberProfileAria': '배심원 {n} 프로필',
'modelCouncil.memberNameAria': '배심원 {n} 이름',
'modelCouncil.memberNamePlaceholder': '에이전트 이름',
'modelCouncil.profileModelPlaceholder': '프로필 모델 재정의',
'modelCouncil.memberBriefAria': '배심원 {n} 브리프',
'modelCouncil.memberBriefPlaceholder': '이 배심원의 관점',
'modelCouncil.jurorFallback': '배심원',
'modelCouncil.sharedReasoningLabel': '공유 추론 파일',
'modelCouncil.sharedReasoningHelp':
'판사가 종합문을 쓰기 전에 위원회가 이 공유 초안으로 작업합니다.',
'modelCouncil.liveScratchpadHelp':
'각 라운드 후 배심원 업데이트가 여기에 추가되어 다음 라운드에 반영됩니다.',
'modelCouncil.liveScratchpadBadge': 'Live',
'modelCouncil.scratchpadRoundHeading': '라운드 {round} 업데이트',
'modelCouncil.scratchpadNoResponse': '응답 없음',
'modelCouncil.chairLabel': '의장 모델',
'modelCouncil.chairPlaceholder': '예: claude-opus-4-8',
'modelCouncil.chairHelp': '의장은 모든 구성원의 답변을 읽고 종합 의견을 작성합니다.',
'modelCouncil.run': '평의회 소집',
'modelCouncil.running': 'Convening…',
'modelCouncil.runningHint': '구성원에게 동시 질의 중, 이후 종합…',
'modelCouncil.deliberationHeading': '평의회 심의',
'modelCouncil.deliberationHelp':
'마스코트가 공유 추론 파일 사용 중 각 에이전트의 사고 상태를 보여줍니다.',
'modelCouncil.debateRoundInstruction':
'다른 배심원들에게 응답하세요. 이견을 유지하고, 근거가 있을 때 견해를 수정하며, 현재 결론을 명시적으로 유지하세요.',
'modelCouncil.debateFinalInstruction':
'이것은 마지막 배심원 라운드입니다. 증거가 뒷받침하는 곳에서 수렴하고, 남은 이견을 지적하며, 판사에게 명확한 결론을 제시하세요.',
'modelCouncil.roundLabel': '라운드 {round}',
'modelCouncil.currentRoundThinking': '다음 라운드 진행 중…',
'modelCouncil.thinkingBadge': 'Thinking',
'modelCouncil.thinkingWithBrief': '이 관점에서 작업 중: {brief}',
'modelCouncil.thought.evidence': '증거, 가정 및 공유 추론 파일에 이미 담긴 내용을 확인 중입니다.',
'modelCouncil.thought.plan': '실질적인 경로와 실행이 막힐 수 있는 지점을 구상 중입니다.',
'modelCouncil.thought.risk': '실패 모드, 누락된 맥락, 취약한 결론을 탐색 중입니다.',
'modelCouncil.thought.tradeoffs':
'판사에게 간결한 입장을 전달하기 전에 트레이드오프를 비교 중입니다.',
'modelCouncil.thought.synthesis':
'판사가 실제 이견을 비교할 수 있도록 고유한 견해를 준비 중입니다.',
'modelCouncil.judgeWaitingBadge': 'Judge',
'modelCouncil.judgeWaitingThought': '배심원 답변을 기다린 후 공유 추론 파일을 읽어 종합합니다.',
'modelCouncil.judgeSynthesizingBadge': 'Synthesizing',
'modelCouncil.judgeSynthesizingThought':
'배심원의 실시간 사고를 읽고 최종 평의회 종합 의견을 작성 중입니다.',
'modelCouncil.errorPrefix': '평의회 실패:',
'modelCouncil.resultsHeading': '평의회 결과',
'modelCouncil.memberAnswered': 'Answered',
'modelCouncil.memberFailed': 'Failed',
'modelCouncil.synthesisHeading': 'Synthesis',
'modelCouncil.synthesisBy': '{model} 작성',
'modelCouncil.usageHeading': '토론 사용량',
'modelCouncil.usageEstimated':
'토론 프롬프트와 응답에서 추정된 토큰 수. 실제 가격은 평의회 RPC의 공급자 사용량이 필요합니다.',
'modelCouncil.usageEstimatedBadge': '추정 토큰',
'modelCouncil.usageInputTokens': 'Input',
'modelCouncil.usageOutputTokens': 'Output',
'modelCouncil.usageTotalTokens': 'Total',
'graphCohesion.brokerBadge': '브로커',
'graphCohesion.brokerTitle':
'구조적 공백: 이 엔티티의 이웃들은 서로 연결되어 있지 않습니다 — 이들 사이의 유일한 연결고리입니다.',
'graphCohesion.colCohesion': '응집도',
'graphCohesion.colEntity': '엔티티',
'graphCohesion.colLinks': '링크',
'graphCohesion.colRank': '#',
'graphCohesion.empty': '아직 지식 그래프가 없습니다.',
'graphCohesion.emptyHint':
'어시스턴트가 당신에 관한 연결된 사실들을 기록함에 따라, 그 군집화 구조가 여기에 드러납니다.',
'graphCohesion.errorPrefix': '그래프를 불러올 수 없습니다:',
'graphCohesion.intro':
'각 엔티티 주변 이웃이 얼마나 촘촘히 엮여 있는지. 브로커 — 이웃들이 서로 연결되지 않은 엔티티 — 는 그렇지 않으면 분리되었을 클러스터를 묶어주는 단일 지점이며, 빈도나 PageRank 정렬로는 드러낼 수 없는 것입니다.',
'graphCohesion.loading': '응집도 계산 중…',
'graphCohesion.metricConnections': '연결',
'graphCohesion.metricEntities': '엔티티',
'graphCohesion.metricTriangles': '삼각형',
'graphCohesion.namespaceAll': '모든 네임스페이스',
'graphCohesion.namespaceLabel': '네임스페이스',
'graphCohesion.noBrokers': '아직 연결이 둘 이상인 엔티티가 없습니다.',
'graphCohesion.rankedHeading': '브로커 — 가장 느슨한 이웃',
'graphCohesion.retry': '다시 시도',
'graphCohesion.summaryCaption': '평균 군집계수 {avg} · 전이성 {transitivity}',
'graphCohesion.title': '그래프 응집도',
'memory.tab.cohesion': 'Cohesion',
'harnessInit.title': '설정하는 중',
'harnessInit.subtitle': 'OpenHuman이 처음 실행에 필요한 구성 요소를 준비하고 있습니다.',
'harnessInit.stepPython': 'Python 런타임',
'harnessInit.stepSpacy': '언어 모델',
'harnessInit.stepNode': 'Node.js 런타임',
'harnessInit.statePending': '대기 중',
'harnessInit.stateRunning': '설치 중…',
'harnessInit.stateDone': '준비됨',
'harnessInit.stateSkipped': '건너뜀',
'harnessInit.stateFailed': '실패',
'harnessInit.failedMessage':
'일부 설정 단계가 완료되지 않았습니다. 다시 시도하거나 계속 진행할 수 있습니다 — OpenHuman이 내장 대체 기능을 사용합니다.',
'harnessInit.retry': '다시 시도',
'harnessInit.continueAnyway': '그래도 계속',
'harnessInit.runInBackground': '백그라운드에서 실행',
'harnessInit.backgroundHint': '이 작업이 완료되는 동안 계속 OpenHuman을 사용할 수 있습니다.',
'keyring.consent.title': '보안 저장소를 사용할 수 없음',
'keyring.consent.description':
'운영 체제 키체인에 접근할 수 없습니다. OpenHuman이 로컬 암호화 저장소를 사용하여 비밀을 저장하려면 귀하의 허가가 필요합니다.',
'keyring.consent.reasonPrefix': '이유:',
'keyring.consent.showDetails': '이것은 무엇을 의미하나요?',
'keyring.consent.hideDetails': '세부 정보 숨기기',
'keyring.consent.tradeoffTitle': '보안 절충',
'keyring.consent.tradeoffBody':
'로컬 암호화 저장소에서는 데이터와 함께 저장된 마스터 키를 사용하여 비밀이 디스크에 암호화됩니다. 이는 하드웨어 기반 보호를 사용하는 OS 키체인보다 덜 안전합니다. 백업이나 파일 동기화에 암호화된 데이터가 포함될 수 있습니다.',
'keyring.consent.consentButton': '로컬 암호화 저장소 사용',
'keyring.consent.retryButton': 'OS Keychain 재시도',
'keyring.consent.declineButton': '거부',
'keyring.consent.retrying': '재시도 중…',
'keyring.consent.error': '설정을 저장하지 못했습니다. 다시 시도해 주세요.',
'keyring.consent.retryFailed': '키체인이 여전히 사용할 수 없습니다.',
'keyring.settings.title': '보안',
'keyring.settings.storageMode': '비밀 저장 모드',
'keyring.settings.mode.osKeychain': 'OS 키체인',
'keyring.settings.mode.encryptedFile': '로컬 암호화',
'keyring.settings.mode.consentPending': '구성되지 않음',
'keyring.settings.mode.declined': '거부됨',
'keyring.settings.availability': '키체인 가용성',
'keyring.settings.available': 'OS 키체인 사용 가능',
'keyring.settings.unavailable': 'OS 키체인 사용 불가',
'keyring.settings.backend': '백엔드',
'keyring.settings.retryButton': '키체인 감지 재시도',
'keyring.settings.retryFailed': '재시도 실패. 키체인이 여전히 사용할 수 없습니다.',
'keyring.settings.consentTitle': '저장소 동의',
'keyring.settings.consentDescription':
'OS 키체인을 사용할 수 없을 때 비밀을 저장하는 방법을 선택하세요.',
'keyring.settings.grantConsent': '로컬 암호화 저장소 허용',
'keyring.settings.revokeConsent': '로컬 저장소 거부',
'pages.settings.account.security': '보안',
'pages.settings.account.securityDesc': '비밀 저장 모드 및 키체인 상태',
// #002 memory-pipeline-hardening: degraded badges + typed remediation.
'memoryTree.status.statusDegraded': '저하됨',
'memoryTree.status.degradedRecall': '의미 기반 검색 비활성화됨',
'memoryTree.status.degradedStructure': '위키 구조 불완전',
'memoryTree.status.extractionCoverage': '추출 범위: 청크의 {pct}%에 구조가 있음',
'memory.health.remediation.budget_exhausted':
'메모리 임베딩이 관리형 예산에 도달했습니다. 로컬 Ollama 임베딩을 설정하거나(설정 → AI → 임베딩) 메모리를 계속 구축하려면 자체 임베딩 API 키를 추가하세요.',
'memory.health.remediation.auth_missing':
'임베딩 자격 증명을 찾을 수 없습니다. OpenHuman에 로그인하거나 설정 → AI → 임베딩에서 로컬 Ollama 임베딩을 설정하세요.',
'memory.health.remediation.auth_invalid':
'임베딩 자격 증명이 거부되었습니다. 다시 인증하거나 설정 → AI → 임베딩에서 로컬 Ollama 임베딩으로 전환하세요.',
'memory.health.remediation.embeddings_unconfigured':
'구성된 임베딩 제공자가 없어 의미 기반 검색이 꺼져 있습니다. 로컬 Ollama 임베딩을 설정하거나(권장) 설정 → AI → 임베딩에서 임베딩 키를 추가하세요.',
'memory.health.remediation.embedding_dim_mismatch':
'임베딩 모델이 잘못된 벡터 크기를 반환합니다(메모리는 1024차원을 예상함). 1024차원 모델을 선택하거나 제공자에게 1024차원을 요청하세요.',
'memory.health.remediation.local_model_unavailable':
'필요한 로컬 모델을 사용할 수 없습니다. Ollama를 설치/실행하고 모델을 다운로드하거나, 설정 → AI에서 이 작업을 클라우드 제공자로 전환하세요.',
'memory.health.remediation.extraction_timeout':
'메모리 추출 모델이 시간 초과되어 위키 구조가 거의 없습니다. 설정 → AI에서 메모리 추출 모델을 더 빠른 것으로 변경하세요.',
'memory.health.remediation.summarizer_unavailable':
'요약 트리 만들기에 사용할 수 있는 요약 제공자가 없습니다. 로컬 AI(Ollama)를 활성화하거나, 설정 → AI → 메모리에서 클라우드 요약을 활성화하세요.',
'memory.health.remediation.empty_input_refused':
'텍스트가 비어 있어 메모리 항목이 건너뛰어졌습니다. 조치가 필요하지 않습니다 — 새 항목은 정상적으로 임베딩됩니다.',
'memory.health.remediation.transient':
'일시적인 오류로 메모리 처리가 중단되었습니다. 자동으로 다시 시도됩니다.',
'memory.health.remediation.unknown':
'메모리 처리 중 문제가 발생했습니다. 설정 → AI에서 구성을 확인하세요.',
// Chat — agent-generated artifacts (#2779)
// Chat composer toolbar
'composer.attachFile': '파일 첨부',
'composer.modelSelector': '모델',
'composer.voiceMode': '음성 모드',
'composer.qualityHigh': '높음',
// Agent activity level
'activityLevel.title': '에이전트 활동 수준',
'activityLevel.description':
'에이전트의 능동성을 조절하세요. 높은 수준은 더 많은 토큰을 사용합니다.',
'activityLevel.off': '끄기',
'activityLevel.offDesc': '백그라운드 처리 없음. 버튼을 눌러야만 동기화됩니다.',
'activityLevel.minimal': '최소',
'activityLevel.minimalDesc': '소스를 하루에 한 번 동기화합니다. 능동적 메시지 없음.',
'activityLevel.moderate': '보통',
'activityLevel.moderateDesc': '매 시간 동기화. 일일 요약. 작업을 제안합니다.',
'activityLevel.active': '활성',
'activityLevel.activeDesc': '10분마다 동기화. 채널 모니터링, 분류, 답변 초안 작성.',
'activityLevel.alwaysOn': '항상 켜짐',
'activityLevel.alwaysOnDesc': '실시간 동기화. 가이드라인 내 완전한 자율성.',
'activityLevel.currentMonth': '이번 달: ${amount}',
'activityLevel.saved': '활동 수준이 업데이트되었습니다.',
'activityLevel.default': '기본값',
'activityLevel.costFree': '$0',
'activityLevel.costRange': '~${min}${max}/월',
// Sync budget dialog
'syncBudget.title': '동기화 예산',
'syncBudget.maxTokens': '동기화당 최대 토큰',
'syncBudget.maxTokensHelp': '이 토큰 수를 소비하면 동기화를 중지합니다.',
'syncBudget.maxCost': '동기화당 최대 비용 (USD)',
'syncBudget.maxCostHelp': '각 동기화 실행당 달러 한도.',
'syncBudget.syncDepth': '동기화 깊이',
'syncBudget.syncDepthHelp': '이 기간의 항목만 가져옵니다.',
'syncBudget.days7': '최근 7일',
'syncBudget.days30': '최근 30일',
'syncBudget.days90': '최근 90일',
'syncBudget.allTime': '전체 기간',
'syncBudget.unlimited': '무제한',
'syncBudget.saved': '예산이 저장되었습니다.',
// Sync confirm dialog
'syncConfirm.title': '동기화 확인',
'syncConfirm.message': '이 동기화는 ~{items}개 항목 (~{tokens} 토큰, 예상 ${cost})을 처리합니다.',
'syncConfirm.budgetNote': '예산 한도: ${max}',
'syncConfirm.proceed': '진행',
'syncConfirm.cancel': '취소',
'syncConfirm.estimating': '비용 계산 중...',
// Monthly cost badge
'monthlyCost.badge': '이번 달 ${amount}',
'monthlyCost.noData': '이번 달 동기화 없음',
// Onboarding: Custom > Activity
'onboarding.custom.stepperActivity': '활동',
'onboarding.custom.stepperVault': '볼트',
'onboarding.custom.activity.title': '에이전트 활동',
'onboarding.custom.activity.subtitle':
'에이전트가 백그라운드에서 얼마나 능동적으로 모니터링하고 행동하는지.',
'onboarding.custom.activity.defaultDesc': '보통 활동 — 매시간 동기화, 일일 요약.',
'onboarding.custom.activity.configureDesc':
'자신만의 활동 수준을 선택하세요. 설정 › 에이전트 활동 수준에서 구성하세요.',
'onboarding.custom.vault.title': '메모리 및 볼트 설정',
'onboarding.custom.vault.subtitle':
'메모리 노트가 기록되는 위치, 소스 데이터를 읽는 방법, 볼트 파이프라인이 정상인지 확인하세요.',
'onboarding.custom.vault.defaultDesc':
'OpenHuman 관리형 메모리 기본값을 사용합니다. 볼트 경로와 동기화 상태는 나중에 검토할 수 있습니다.',
'onboarding.custom.vault.configureDesc':
'볼트 소유권을 검토하고 상태 검사를 실행하며 메모리 컨트롤을 지금 조정하세요.',
'onboarding.custom.vault.localDisabledReason':
'관리형 설정은 OpenHuman 로그인이 필요하며 로컬 모드에서는 사용할 수 없습니다.',
'onboarding.custom.vault.exitError': '온보딩을 완료할 수 없습니다. 다시 시도해 주세요.',
'vaultHealth.title': '볼트 상태 체크리스트',
'vaultHealth.setupTitle': '볼트 설정 상태',
'vaultHealth.workspaceVault': '워크스페이스 볼트:',
'vaultHealth.refresh': '새로 고침',
'vaultHealth.refreshing': '새로 고침 중…',
'vaultHealth.revealFolder': '폴더 표시',
'vaultHealth.openInObsidian': 'Obsidian에서 열기',
'vaultHealth.installObsidian': 'Obsidian 설치',
'vaultHealth.openObsidianError': 'Obsidian을 열 수 없습니다',
'vaultHealth.revealError': '볼트 폴더를 표시할 수 없습니다',
'vaultHealth.downloadError': 'Obsidian 다운로드 페이지를 열 수 없습니다',
'vaultHealth.loadError': '볼트 상태를 불러올 수 없습니다:',
'vaultHealth.lastSync': '마지막 동기화:',
'vaultHealth.passed': '통과',
'vaultHealth.needsAttention': '주의 필요',
'vaultHealth.existsLabel': '워크스페이스 볼트 경로가 존재합니다',
'vaultHealth.existsRecovery':
'볼트 폴더가 없습니다. 동기화를 시작하거나 이 폴더를 만든 후 체크리스트를 새로 고침하세요.',
'vaultHealth.writableLabel': 'OpenHuman이 볼트에 쓸 수 있습니다',
'vaultHealth.writableRecovery':
'OpenHuman이 아직 이 볼트에 쓸 수 없습니다. 쓰기 권한을 부여하고 새로 고침하세요.',
'vaultHealth.obsidianLabel': '볼트가 Obsidian에 등록되어 있습니다',
'vaultHealth.obsidianRecovery':
'Obsidian에서 이 경로에 대해 "폴더를 볼트로 열기"를 선택한 후 체크리스트를 새로 고침하세요.',
'vaultHealth.pipelineLabel': '메모리 파이프라인이 정상입니다',
'vaultHealth.pipelineRecovery':
'메모리 파이프라인이 일시 중지되었거나 오류 상태입니다. 메모리 트리 상태에서 자동 동기화를 다시 활성화하고 재시도하세요.',
'vaultHealth.timeNever': '없음',
'vaultHealth.timeJustNow': '방금 전',
'vaultHealth.timeMinAgo': '{n}분 전',
'vaultHealth.timeHrAgo': '{n}시간 전',
'vaultHealth.timeDayAgo': '{n}일 전',
'vaultHealth.timeDaysAgo': '{n}일 전',
'memoryData.howItWorks': '메모리 저장 방식',
'memoryData.workspaceVault': '워크스페이스 볼트 · 쓰기',
'memoryData.workspaceVaultDesc':
'OpenHuman이 생성된 메모리 노트를 memory_tree/content에 기록합니다.',
'memoryData.connectedSources': '연결된 소스 · 읽기',
'memoryData.connectedSourcesDesc':
'폴더, 사서함, 채팅, 저장소가 메모리 인덱싱을 위해 가져와집니다 — 원본 파일은 절대 수정되지 않습니다.',
'memoryData.internalFiles': '내부 메모리 트리 파일',
'memoryData.internalFilesDesc':
'인덱스, 큐 상태, 요약은 OpenHuman이 관리하여 회상과 동기화를 정상 상태로 유지합니다.',
'memoryData.windowError': '메모리 창',
'memoryData.windowUpdated': '메모리 창 업데이트됨',
'memoryData.windowUpdatedMsg': '{window}(으)로 설정되었습니다.',
'skills.create.whenToUse': '사용 시점',
'skills.create.whenToUsePlaceholder': '예: 사용자가 받은 편지함 정리를 요청할 때',
'skills.create.whenToUseHelp':
'에이전트가 이 워크플로 실행을 결정하는 트리거입니다. 비워 두면 설명을 사용합니다.',
'skills.create.inputs.row.descriptionError': '각 입력에는 설명이 필요합니다.',
'skills.detail.run': '실행',
'skills.detail.runAriaLabel': '이 워크플로 실행',
'skills.run.title': '워크플로',
'workflows.installFromUrl': 'URL에서 설치',
// Security banner (approval-gate host-aware boot state)
'security.approvalGateDisabled.title': '승인 게이트 비활성화됨',
'security.approvalGateDisabled.body':
'환경에 OPENHUMAN_APPROVAL_GATE=0이 설정되어 있습니다. 외부 영향이 있는 도구가 확인을 요청하지 않고 실행됩니다.',
'security.approvalGateOverrideIgnored.title': '재정의 차단됨',
'security.approvalGateOverrideIgnored.body':
'OPENHUMAN_APPROVAL_GATE=0 재정의가 감지되었지만 무시되었습니다: 데스크톱 앱은 승인 게이트를 항상 켜둡니다.',
// Run queue
'runQueue.mode.interrupt': '중단',
'runQueue.mode.steer': '방향 조정',
'runQueue.mode.followup': '후속 조치',
'runQueue.mode.collect': '컨텍스트 추가',
'runQueue.queued': '메시지가 대기열에 추가됨',
'runQueue.steerHint': '현재 턴 방향 조정',
'runQueue.followupHint': '후속 조치로 대기열에 추가',
'runQueue.collectHint': '추가 컨텍스트로 추가',
'runQueue.status': '{total}개 대기 중',
'runQueue.cleared': '대기열이 비워졌습니다',
'notch.ready': '준비됨',
'notch.processing': '처리 중…',
'notch.listening': '듣는 중…',
'notch.thinking': '생각 중…',
'notch.speaking': '말하는 중…',
'notch.transcribing': '변환 중…',
'notch.executing': '실행 중…',
'memory.tab.orchestration': '오케스트레이션',
'memory.tab.orchestrationDescription':
'다중 에이전트 워크플로를 실행하세요. 하나의 질문을 병렬 에이전트들에 분산하고, 그 결과를 교차 검증하며, 각 단계가 하나의 종합된 답변으로 완성되는 과정을 지켜보세요.',
'orchestration.subtitle':
'다중 에이전트 워크플로를 시작하고, 단계 진행 상황을 지켜보며, 종합된 결과를 확인하세요.',
'orchestration.loading': '워크플로 불러오는 중…',
'orchestration.failedToLoad': '워크플로를 불러오지 못했습니다',
'orchestration.definitions': '사용 가능한 워크플로',
'orchestration.noDefinitions': '사용 가능한 워크플로 정의가 없습니다.',
'orchestration.approvalRequired': '승인 필요',
'orchestration.start': '시작',
'orchestration.confirmStart': '실행 시작',
'orchestration.starting': '시작 중…',
'orchestration.questionLabel': '연구 질문 (선택 사항)',
'orchestration.questionPlaceholder': '에이전트가 무엇을 조사해야 하나요?',
'orchestration.runProgress': '실행 진행 상황',
'orchestration.recentRuns': '최근 실행',
'orchestration.noRuns': '아직 워크플로 실행이 없습니다.',
'orchestration.close': '닫기',
'orchestration.tier.readOnly': '읽기 전용',
'orchestration.tier.standard': '표준',
'orchestration.tier.editCapable': '편집 가능',
'orchestration.approval.title': '이 워크플로 실행 승인',
'orchestration.approval.body':
'이것은 고비용 또는 고동시성 실행으로, 시작하기 전에 명시적인 승인이 필요합니다:',
'orchestration.approval.reason.tier':
'해당 에이전트는 읽기 전용 조사를 넘어서는 작업을 수행할 수 있습니다.',
'orchestration.approval.reason.concurrency': '동시에 많은 에이전트를 실행합니다.',
'orchestration.approval.reason.children':
'전체적으로 매우 많은 수의 에이전트를 생성할 수 있습니다.',
'orchestration.approval.tier': '보안 등급',
'orchestration.approval.concurrency': '동시성',
'orchestration.approval.maxChildren': '최대 에이전트 수',
'orchestration.approval.approve': '승인 및 시작',
'orchestration.approval.starting': '시작 중…',
'orchestration.approval.cancel': '취소',
'orchestration.runStatus.pending': '대기 중',
'orchestration.runStatus.running': '실행 중',
'orchestration.runStatus.completed': '완료됨',
'orchestration.runStatus.failed': '실패함',
'orchestration.runStatus.cancelled': '취소됨',
'orchestration.runStatus.interrupted': '중단됨',
'orchestration.phaseStatus.pending': '대기 중',
'orchestration.phaseStatus.running': '실행 중',
'orchestration.phaseStatus.completed': '완료됨',
'orchestration.phaseStatus.failed': '실패함',
'orchestration.detail.stop': '중지',
'orchestration.detail.resume': '재개',
'orchestration.detail.agents': '에이전트',
'orchestration.detail.childRefs': '하위 에이전트',
'orchestration.detail.synthesis': '최종 종합',
// ── Agent Profiles ───────────────────────────────────────────────────────
'settings.profiles.title': '에이전트 프로필',
'settings.profiles.subtitle':
'개성 있는 에이전트 — 각자 고유한 영혼, 기억, 커넥터, 기술을 갖습니다.',
'settings.profiles.menuDesc': '에이전트 프로필 만들기 및 관리',
'settings.profiles.new': '새 프로필',
'settings.profiles.empty': '아직 에이전트 프로필이 없습니다',
'settings.profiles.loadError': '프로필을 불러오지 못했습니다',
'settings.profiles.active': '활성',
'settings.profiles.setActive': '활성으로 설정',
'settings.profiles.sourceBuiltIn': '기본 제공',
'settings.profiles.sourceCustom': '사용자 지정',
'settings.profiles.deleteConfirm': '이 프로필을 삭제할까요? 되돌릴 수 없습니다.',
'settings.profiles.editor.createTitle': '새 프로필',
'settings.profiles.editor.editTitle': '프로필 편집',
'settings.profiles.editor.name': '이름',
'settings.profiles.editor.id': '식별자',
'settings.profiles.editor.idHint': '소문자, 숫자, 하이픈만 사용할 수 있습니다.',
'settings.profiles.editor.description': '설명',
'settings.profiles.editor.soul': '영혼 (SOUL.md)',
'settings.profiles.editor.soulHint':
'이 프로필의 사용자 지정 정체성. 비워 두면 작업 공간의 SOUL.md로 대체됩니다.',
'settings.profiles.editor.baseAgent': '기본 에이전트',
'settings.profiles.editor.baseAgentHint':
'이 프로필이 어떤 에이전트 정의로 실행되는지 (예: orchestrator).',
'settings.profiles.editor.model': '모델',
'settings.profiles.editor.modelHint': '선택적 모델 재정의. 비워 두면 기본값을 상속합니다.',
'settings.profiles.editor.temperature': '온도',
'settings.profiles.editor.systemPromptSuffix': '시스템 프롬프트 접미사',
'settings.profiles.editor.agentConversations': '에이전트 대화 회상',
'settings.profiles.editor.agentConversationsHint':
'이 프로필의 컨텍스트에 이전 및 교차 채팅 기억을 포함합니다.',
'settings.profiles.editor.memorySources': '기억 소스',
'settings.profiles.editor.memorySourcesHint': '이 프로필이 회상하는 기억 소스.',
'settings.profiles.editor.connectors': '커넥터',
'settings.profiles.editor.connectorsHint': '이 프로필이 사용할 수 있는 Composio 도구 모음.',
'settings.profiles.editor.skills': '기술',
'settings.profiles.editor.skillsHint': '이 프로필이 나열하고 실행할 수 있는 워크플로.',
'settings.profiles.editor.mcpServers': 'MCP 서버',
'settings.profiles.editor.mcpServersHint': '이 프로필이 접근할 수 있는 MCP 서버.',
'settings.profiles.editor.all': '전체',
'settings.profiles.editor.selected': '선택됨',
'settings.profiles.editor.addPlaceholder': '식별자를 입력하고 Enter를 누르세요',
'settings.profiles.editor.removeAria': '{item} 제거',
'settings.profiles.editor.notFound': '프로필을 찾을 수 없습니다',
'settings.profiles.editor.saving': '저장 중…',
'settings.profiles.editor.idRequired': '프로필 식별자는 비워 둘 수 없습니다',
'agentworld.jobs.applyModal.title': '채용 지원',
'agentworld.jobs.applyModal.successHeading': '제안이 성공적으로 제출되었습니다!',
'agentworld.jobs.applyModal.successBody': '채용 공고 게시자가 지원서를 검토할 것입니다.',
'agentworld.jobs.applyModal.coverLetterLabel': '자기소개서',
'agentworld.jobs.applyModal.coverLetterPlaceholder':
'귀하의 경험과 이 직무에 적합한 이유를 설명하세요',
'agentworld.jobs.applyModal.bidAmountLabel': '제안 금액',
'agentworld.jobs.applyModal.bidAmountPlaceholder': '예: 450 USDC',
'agentworld.jobs.applyModal.deliveryLabel': '예상 납기',
'agentworld.jobs.applyModal.deliveryPlaceholder': '예: 2주',
'agentworld.jobs.applyModal.cancel': '취소',
'agentworld.jobs.applyModal.submit': '지원서 제출',
'agentworld.jobs.applyModal.submitting': '지원 중…',
'agentworld.messaging.missingSignalBundle':
'이 사용자는 아직 암호화 메시지를 활성화하지 않았습니다. 메시지를 보내기 전에 Agent World를 열고 보안 DM을 활성화해 달라고 요청하세요.',
// User-actionable runtime errors (#3931)
'userErrors.title': '조치 필요',
'userErrors.dismiss': '닫기',
'userErrors.action.openBilling': '결제 열기',
'userErrors.action.openProviderSettings': '제공업체 설정',
'userErrors.budgetExceeded.title': '관리형 예산 소진',
'userErrors.budgetExceeded.body': '관리형 AI 예산이 모두 소진되었습니다.',
'userErrors.insufficientCredits.title': '제공업체 크레딧 필요',
'userErrors.insufficientCredits.body': 'AI 제공업체 크레딧이 소진되었습니다.',
'userErrors.scope.chat': '채팅',
// Agent World — Identity trading (confirm-before-spend + balance gate)
'agentWorld.trading.amountLabel': '금액',
'agentWorld.trading.networkLabel': '네트워크',
'agentWorld.trading.balanceLabel': '내 잔액',
'agentWorld.trading.walletLabel': '지갑',
'agentWorld.trading.balanceUnknown': '알 수 없음',
'agentWorld.trading.cancel': '취소',
'agentWorld.trading.addFunds': '자금 추가',
'agentWorld.trading.confirmPay': '확인 및 결제',
'agentWorld.trading.confirmCommit': '확인',
'agentWorld.trading.continue': '계속',
'agentWorld.trading.submitting': '제출 중…',
'agentWorld.trading.placeBid': '입찰하기',
'agentWorld.trading.submitOffer': '제안 보내기',
'agentWorld.trading.bidTitlePrefix': '입찰:',
'agentWorld.trading.offerTitlePrefix': '제안:',
'agentWorld.trading.bidReviewTitlePrefix': '입찰 확인:',
'agentWorld.trading.offerReviewTitlePrefix': '제안 확인:',
'agentWorld.trading.spendInsufficient':
'이 결제를 완료하기에 잔액이 부족합니다. 계속하려면 지갑에 자금을 추가하세요.',
'agentWorld.trading.spendBroadcastNote': '지갑이 이 결제에 서명하여 다음 네트워크에 전파합니다',
'agentWorld.trading.commitInsufficientWarning':
'약정이 수락되면 잔액이 이를 충당하지 못할 수 있습니다. 그래도 제출할 수 있습니다 — 자금은 수락 시에만 이동합니다.',
'agentWorld.trading.commitSettleNote':
'이것은 서명된 약정입니다 — 수락된 경우에만 자금이 이동합니다.',
'agentWorld.trading.commitReviewSubtitle': '제출하기 전에 약정을 검토하세요.',
'agentWorld.trading.balanceUnverified':
'지갑 잔액을 확인할 수 없습니다. 그래도 계속할 수 있습니다 — 결제는 제출 시 확인됩니다.',
'agentWorld.trading.amountTooManyDecimals': '이 금액의 소수점 자릿수가 너무 많습니다.',
'agentWorld.trading.amountMustBePositive': '0보다 큰 금액을 입력하세요.',
'agentWorld.trading.amountInvalid': '유효한 금액을 입력하세요.',
};
export default messages;