mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
* add daemon project location support * wire project locations into web settings * localize project location settings * move default project location to settings * polish project location selection cards * fix project location i18n gaps * fix external project validation cleanup
1883 lines
112 KiB
TypeScript
1883 lines
112 KiB
TypeScript
import { en } from './en';
|
||
import type { Dict } from '../types';
|
||
|
||
export const ko: Dict = {
|
||
...en,
|
||
'chat.amrCard.switchTitle': '모델 호출 실패 — 이 작업이 일시중지되었습니다',
|
||
'chat.amrCard.switchBody': 'Open Design 공식 AMR 모델 서비스로 전환하세요 — API 키 설정이 필요 없습니다. 로그인・인증・충전이 완료되면 이 작업이 자동으로 재시도됩니다.',
|
||
'chat.amrCard.chipOfficial': '공식 호스팅',
|
||
'chat.amrCard.chipNoKey': 'API 키 불필요',
|
||
'chat.amrCard.chipAutoRetry': '로그인 후 자동 재시도',
|
||
'chat.amrCard.switchCta': 'AMR로 전환하고 재시도',
|
||
'chat.amrError.authMessage': 'AMR 계정이 아직 인증되지 않았습니다. 인증하면 이 작업이 자동으로 재시도됩니다.',
|
||
'chat.amrError.balanceMessage': 'AMR 잔액이 부족합니다. 충전하여 이 작업을 계속 진행하세요.',
|
||
'chat.amrError.authorizeCta': '인증하고 재시도',
|
||
'chat.amrError.rechargeCta': 'AMR 충전',
|
||
'chat.antigravityError.launchTerminalCta': 'Sign in via terminal',
|
||
'chat.antigravityError.launchSwitchModelCta': 'Switch model in terminal',
|
||
'plugins.actions.copyInstallCommand': '설치 명령 복사',
|
||
'plugins.actions.copyPluginId': '플러그인 ID 복사',
|
||
'plugins.actions.copyReadmeBadge': 'README 배지 복사',
|
||
'plugins.actions.openSourceGithub': 'GitHub에서 소스 열기',
|
||
'plugins.actions.openSource': '소스 열기',
|
||
'plugins.actions.openHomepage': '홈페이지 열기',
|
||
'plugins.actions.openMarketplace': '마켓플레이스에서 열기',
|
||
'workingDirPicker.title': "Folder",
|
||
'workingDirPicker.homeTitle': "Choose where this project should live",
|
||
'workingDirPicker.processing': "Processing…",
|
||
'workingDirPicker.select': "Choose working directory",
|
||
'workingDirPicker.clearAria': "Clear working directory",
|
||
'workingDirPicker.replaceFailed': "Could not replace working directory",
|
||
'workingDirPicker.unavailable': "Folder picker is unavailable in this build. Run the desktop app to pick a folder.",
|
||
'workingDirPicker.openUnavailable': "Open this project in the desktop app to show the folder.",
|
||
'workingDirPicker.openFailed': "Could not show this folder",
|
||
'workingDirPicker.showInFileManager': "Show in file manager",
|
||
'workingDirPicker.replace': "Clear and replace directory…",
|
||
'workingDirPicker.recent': "Recent directories",
|
||
'handoff.toTarget': 'Hand off to {target}',
|
||
'handoff.action': 'Hand off',
|
||
'handoff.fallbackTitle': 'No editors found on $PATH - opens in {target}',
|
||
'handoff.chooseTargetAria': 'Choose hand-off target',
|
||
'handoff.notInstalled': 'Not installed',
|
||
'handoff.notDetectedTitle': '{target} - not detected on $PATH',
|
||
'homeHero.promptExamples': "예시",
|
||
'homeHero.footer.designSystem': "스타일",
|
||
'homeHero.footer.autoDesignSystem': "자동",
|
||
'homeHero.footer.autoDesignSystemSummary': "현재 프롬프트에 가장 알맞은 디자인 시스템과 비주얼 스타일을 자동으로 선택합니다.",
|
||
'homeHero.footer.ratio': "비율",
|
||
'homeHero.footer.duration': "길이",
|
||
'homeHero.footer.resolution': "해상도",
|
||
'homeHero.footer.speakerNotes': "Notes",
|
||
'homeHero.footer.noSpeakerNotes': "노트 없음",
|
||
'homeHero.footer.availableCount': "{n} available",
|
||
'homeHero.footer.noMatches': "No matches",
|
||
'homeHero.moreShortcuts': "더보기",
|
||
'common.cancel': '취소',
|
||
'common.save': '저장',
|
||
'common.close': '닫기',
|
||
'common.delete': '삭제',
|
||
'common.rename': '이름 변경',
|
||
'common.edit': '편집',
|
||
'common.preview': '미리보기',
|
||
'common.share': '공유',
|
||
'common.search': '검색',
|
||
'common.searchEllipsis': '검색…',
|
||
'common.loading': '불러오는 중…',
|
||
'common.all': '전체',
|
||
'common.none': '없음',
|
||
'common.default': '기본값',
|
||
'common.installed': '설치됨',
|
||
'common.notInstalled': '설치되지 않음',
|
||
'common.active': '활성',
|
||
'common.offline': '오프라인',
|
||
'common.selected': '선택됨',
|
||
'common.create': '생성',
|
||
'common.openPreview': '미리보기 열기',
|
||
'common.exitFullscreen': '전체 화면 종료',
|
||
'common.fullscreen': '전체 화면',
|
||
'common.openInNewTab': '새 탭에서 열기',
|
||
'common.exportPdf': 'PDF로 내보내기',
|
||
'common.exportZip': '.zip으로 다운로드',
|
||
'common.exportHtml': '독립 실행형 HTML로 내보내기',
|
||
'common.exportImage': '이미지로 내보내기',
|
||
'common.exportImageFailed': '이미지 캡처에 실패했습니다. 다시 시도하거나 브라우저의 스크린샷 도구를 사용하세요.',
|
||
'common.justNow': '방금 전',
|
||
'common.minutesAgo': '{n}분 전',
|
||
'common.hoursAgo': '{n}시간 전',
|
||
'common.daysAgo': '{n}일 전',
|
||
'common.weeksAgo': '{n}w ago',
|
||
'common.now': '지금',
|
||
'common.minutesShort': '{n}분',
|
||
'common.hoursShort': '{n}시간',
|
||
'common.daysShort': '{n}일',
|
||
'common.untitled': '제목 없음',
|
||
|
||
'app.brand': 'Open Design',
|
||
'app.brandPill': 'Research Preview',
|
||
'app.brandSubtitle': 'by Nexu Labs',
|
||
'app.welcomeLoading': '워크스페이스를 불러오는 중…',
|
||
|
||
'settings.welcomeKicker': "",
|
||
'settings.welcomeTitle': "Welcome",
|
||
'settings.welcomeSubtitle': "",
|
||
'settings.onboardingCreateTitle': 'Start from a brief',
|
||
'settings.onboardingCreateBody':
|
||
'Describe the site, app, deck, image, or video you want. Open Design will create a project and keep the work editable.',
|
||
'settings.onboardingMemoryTitle': 'Save working context',
|
||
'settings.onboardingMemoryBody':
|
||
'Add preferences, project facts, and recurring rules so future chats pick up the right context.',
|
||
'settings.onboardingSystemsTitle': 'Bring your design system',
|
||
'settings.onboardingSystemsBody':
|
||
'Pick or create a brand system so generated work follows real colors, typography, and product language.',
|
||
'settings.onboardingExecutionTitle': 'Choose how generation runs',
|
||
'settings.onboardingExecutionBody':
|
||
'Official CLI with one-click setup and ready-to-use defaults. Use one key to choose from many models with better pricing.',
|
||
'settings.onboardingAmrCloudBenefitOfficial': '공식 추천',
|
||
'settings.onboardingAmrCloudBenefitReady': '배포 없이 사용',
|
||
'settings.onboardingAmrCloudBenefitModels': 'Claude Opus 4.8 지원',
|
||
'settings.onboardingAmrCloudBenefitPricing': 'SOTA Harness',
|
||
'settings.onboardingAmrCloudUpcomingLabel': '곧 지원',
|
||
'settings.onboardingAmrCloudUpcomingImageVideo': '이미지/비디오',
|
||
'settings.onboardingAmrCloudUpcomingSkills': '방대한 Skills',
|
||
'settings.onboardingAmrCloudUpcomingRouting': '스마트 라우팅',
|
||
'settings.onboardingAmrModelSourceLabel': 'AMR CLI',
|
||
'settings.onboardingAmrCloudAuthorizeAction': 'AMR 인증',
|
||
'settings.onboardingAmrCloudAuthorizedAction': '인증됨',
|
||
'settings.onboardingStepConnect': "Connect",
|
||
'settings.onboardingStepDesignSystem': "Design system",
|
||
'settings.onboardingStepProfile': "About you",
|
||
'settings.onboardingConnectTitle': "Choose a runtime",
|
||
'settings.onboardingConnectBody': "",
|
||
'settings.onboardingRecommended': "Recommended",
|
||
'settings.onboardingLocalTitle': "Local coding agent",
|
||
'settings.onboardingLocalBody': "Use an installed CLI such as Claude Code, Codex, Cursor, Gemini, or OpenCode.",
|
||
'settings.onboardingLocalAction': "Open CLI settings",
|
||
'settings.onboardingCliScanHint': "This usually takes 5-10 seconds.",
|
||
'settings.onboardingByokTitle': "Bring your own key",
|
||
'settings.onboardingByokBody': "Use your own model provider credentials.",
|
||
'settings.onboardingByokAction': "Open BYOK settings",
|
||
'settings.onboardingDesignTitle': "Design system",
|
||
'settings.onboardingDesignBody': "Generate once, reuse everywhere.",
|
||
'settings.onboardingDesignIntroGenerateTitle': "Generate from existing work",
|
||
'settings.onboardingDesignIntroGenerateBody': "Upload your design system from GitHub or local code repositories, Figma files, images, and other content assets.",
|
||
'settings.onboardingDesignIntroReuseTitle': "Reuse in future work",
|
||
'settings.onboardingDesignIntroReuseBody': "Future prototypes, slides, and other content can reference your existing fonts, spacing, logo style, and color tone.",
|
||
'settings.onboardingDesignIntroSkipTitle': "Optional for now",
|
||
'settings.onboardingDesignIntroSkipBody': "Skip this step if you want to start without generating a design system.",
|
||
'settings.onboardingGithubTitle': "Import from GitHub",
|
||
'settings.onboardingGithubBody': "Use a frontend repository.",
|
||
'settings.onboardingUploadTitle': "Upload local files",
|
||
'settings.onboardingUploadBody': "Add project files, screenshots, CSS, docs, or assets.",
|
||
'settings.onboardingPromptTitle': "Generate from prompt",
|
||
'settings.onboardingPromptBody': "Describe the product or brand.",
|
||
'settings.onboardingProfileTitle': "About you",
|
||
'settings.onboardingProfileBody': "Optional details for better defaults.",
|
||
'settings.onboardingRoleLabel': "Your role",
|
||
'settings.onboardingOrgSizeLabel': "Organization size",
|
||
'settings.onboardingUseCaseLabel': "Use case",
|
||
'settings.onboardingSourceLabel': "Where did you hear about us?",
|
||
'settings.onboardingSelectPlaceholder': "Select one",
|
||
'settings.onboardingSelectMultiplePlaceholder': "Select one or more",
|
||
'settings.onboardingOrgSolo': "Solo / personal (1)",
|
||
'settings.onboardingOrgTeam': "Small team (2-10)",
|
||
'settings.onboardingOrgStartup': "Startup / SMB (11-50)",
|
||
'settings.onboardingOrgGrowth': "Growth company (51-200)",
|
||
'settings.onboardingOrgMidMarket': "Mid-market (201-1000)",
|
||
'settings.onboardingOrgEnterprise': "Enterprise (1000+)",
|
||
'settings.onboardingRolePm': "📋 Product manager",
|
||
'settings.onboardingRoleDesigner': "🎨 Designer",
|
||
'settings.onboardingRoleEngineer': "💻 Engineer",
|
||
'settings.onboardingRoleMarketing': "📣 Marketing",
|
||
'settings.onboardingRoleGrowth': "📈 Growth",
|
||
'settings.onboardingRoleOps': "⚙️ Operations",
|
||
'settings.onboardingRoleFounder': "🚀 Founder / executive",
|
||
'settings.onboardingRoleStudent': "🎓 Student / educator",
|
||
'settings.onboardingRoleOther': "✨ Other",
|
||
'settings.onboardingUseProduct': "🎨 Product design",
|
||
'settings.onboardingUseDesignSystem': "🧩 Design system",
|
||
'settings.onboardingUsePrototype': "📱 Prototype / app UI",
|
||
'settings.onboardingUseLanding': "🌐 Landing pages",
|
||
'settings.onboardingUseAds': "📣 Ads / social content",
|
||
'settings.onboardingUseDashboard': "📊 Dashboards / internal tools",
|
||
'settings.onboardingUseDeck': "🖥️ Presentation / deck",
|
||
'settings.onboardingUseMarketing': "📈 Marketing / growth",
|
||
'settings.onboardingUseEngineering': "🤝 Engineering handoff",
|
||
'settings.onboardingUseAgency': "💼 Agency / client work",
|
||
'settings.onboardingSourceGithub': "🐙 GitHub",
|
||
'settings.onboardingSourceFriend': "👥 Friend or coworker",
|
||
'settings.onboardingSourceSocial': "📱 Social media",
|
||
'settings.onboardingSourceProductHunt': "🅿️ Product Hunt",
|
||
'settings.onboardingSourceCommunity': "💬 Design / AI community",
|
||
'settings.onboardingSourceYoutube': "▶️ YouTube",
|
||
'settings.onboardingSourceBlog': "📰 Blog or newsletter",
|
||
'settings.onboardingSourceAiTool': "✨ AI tool recommendation",
|
||
'settings.onboardingSourceSearch': "🔍 Search",
|
||
'settings.onboardingSourceEvent': "🎤 Event or community",
|
||
'settings.onboardingBack': "Back",
|
||
'settings.onboardingContinue': "Continue",
|
||
'settings.onboardingFinish': "Finish setup",
|
||
'settings.onboardingSkip': "Skip for now",
|
||
'settings.kicker': '설정',
|
||
'settings.title': '실행 모드',
|
||
'settings.subtitle': '로컬 CLI와 BYOK 중에서 선택하세요.',
|
||
'settings.modeAria': '실행 모드',
|
||
'settings.protocolAria': 'API 프로토콜',
|
||
'settings.modeDaemon': '로컬 CLI',
|
||
'settings.modeDaemonHelp': '사용자 기기의 코드 에이전트 CLI를 통해 실행합니다',
|
||
'settings.modeDaemonOffline': '데몬이 실행 중이 아닙니다',
|
||
'settings.modeDaemonOfflineMeta': '데몬 오프라인',
|
||
'settings.modeDaemonInstalledMeta': '{count}개 설치됨',
|
||
'settings.modeApi': 'API 제공자',
|
||
'settings.modeApiMeta': 'BYOK',
|
||
'settings.codeAgent': '코드 에이전트',
|
||
'settings.codeAgentHint':
|
||
'PATH 환경 변수 스캔을 통해 감지됩니다. 생성을 처리할 CLI를 선택하세요.',
|
||
'settings.rescan': '↻ 다시 스캔',
|
||
'settings.rescanTitle': 'PATH 다시 스캔',
|
||
'settings.rescanRunning': '스캔 중...',
|
||
'settings.rescanSuccess': '스캔 완료. {count}개 사용 가능.',
|
||
'settings.designSystemRenameFailed': '이름 변경에 실패했습니다. 데몬을 확인한 후 다시 시도하세요.',
|
||
'settings.rescanFailed': '스캔에 실패했습니다. 데몬을 확인한 후 다시 시도하세요.',
|
||
'settings.test': '테스트',
|
||
'settings.testTitle': '연결을 확인하기 위해 아주 작은 테스트 프롬프트를 전송합니다',
|
||
'settings.testRunning': '연결 테스트 중…',
|
||
'settings.testCancel': '취소',
|
||
'settings.testSuccessApi': '연결됨. {ms} ms 만에 응답 — \'{sample}\'',
|
||
'settings.testSuccessCli': '{agentName}이(가) {ms} ms 만에 응답 — \'{sample}\'',
|
||
'settings.testAuthFailed': '인증 실패. API 키를 확인하세요.',
|
||
'settings.testForbidden': '접근이 거부되었습니다. 계정, 지역 또는 조직을 확인하세요.',
|
||
'settings.testNotFoundModel': '이 엔드포인트에서 모델 \'{model}\'을(를) 찾을 수 없습니다.',
|
||
'settings.testInvalidModelId': '모델 ID \'{model}\'이(가) 잘못되었습니다. 사용자 지정 ID는 문자 또는 숫자로 시작하고 공백을 포함할 수 없습니다.',
|
||
'settings.testInvalidBaseUrl': 'Base URL이 잘못되었거나 접속할 수 없습니다.',
|
||
'settings.testRateLimited': '제공자가 테스트를 속도 제한했습니다. 구성은 유효해 보입니다.',
|
||
'settings.testUpstream': '제공자가 {status}을(를) 반환했습니다. 잠시 후 다시 시도하세요.',
|
||
'settings.testTimeout': '{ms} ms 후에 테스트가 시간 초과되었습니다.',
|
||
'settings.testAgentMissing': '{agentName}이(가) 설치되어 있지 않거나 PATH에 없습니다.',
|
||
'settings.testAgentSpawn': '{agentName}을(를) 시작할 수 없습니다: {detail}.',
|
||
'settings.testUnknown': '테스트 실패: {detail}',
|
||
'settings.agentInstall.install': '설치',
|
||
'settings.agentInstall.docs': '문서',
|
||
'settings.agentInstall.pathHint':
|
||
'npm 또는 Homebrew로 CLI를 설치했는데도 아직 미설치로 표시된다면, Open Design daemon이 상속받는 PATH에 도구의 bin 디렉터리가 포함되어 있는지 확인하세요(macOS에서는 Terminal과 GUI 앱의 PATH가 다를 수 있습니다). QUICKSTART.md("Local agent CLI and PATH" 섹션)를 참고하세요.',
|
||
'settings.agentInstall.stepOpenLinks': '원하는 에이전트 카드에서 설치 또는 문서 링크를 여세요.',
|
||
'settings.agentInstall.stepAuth':
|
||
'Open Design으로 돌아오기 전에 공급자 CLI에서 인증(로그인 또는 API 자격 증명 추가)을 완료하세요.',
|
||
'settings.agentInstall.stepRescan': '이 섹션에서 다시 스캔을 클릭하세요.',
|
||
'settings.agentInstall.stepSelect': '설치됨으로 표시되면 해당 에이전트 카드를 선택하세요.',
|
||
'settings.noAgentsDetected':
|
||
'에이전트가 감지되지 않았습니다. Claude Code, Codex, Devin for Terminal, Gemini CLI, OpenCode, Cursor Agent, Qwen 또는 GitHub Copilot CLI 중 하나를 설치한 후 다시 스캔을 클릭하세요.',
|
||
'settings.agentInstalledGroup': '내 CLI ({count})',
|
||
'settings.agentInstallGroup': '설치 가능 ({count})',
|
||
'settings.agentAuthRequired': '인증 필요',
|
||
'settings.agentAuthUnknown': '인증 상태를 알 수 없음',
|
||
'settings.amrLogin': 'Sign in',
|
||
'settings.amrLogout': 'Sign out',
|
||
'settings.amrLoggingIn': 'Signing in…',
|
||
'settings.amrLoggingOut': 'Signing out…',
|
||
'settings.amrLoggedInAs': 'Signed in as {email}',
|
||
'settings.amrLoggedInWithPlan': 'Signed in as {email} · {plan}',
|
||
'settings.amrLoggedInPill': 'Signed in',
|
||
'settings.amrNotLoggedIn': 'Not signed in',
|
||
'settings.amrCloud': 'Open Design AMR',
|
||
'settings.amrAuthorize': 'Authorize',
|
||
'settings.amrBenefitOfficial': 'Officially maintained',
|
||
'settings.amrBenefitLowerPrice': 'Lower price',
|
||
'settings.amrBenefitManyModels': 'Many models',
|
||
'settings.amrPromoBonus': 'Limited bonus: +100%',
|
||
'settings.amrSignInToContinue': 'Sign in to continue',
|
||
'settings.amrSignIn': 'Sign in',
|
||
'settings.amrSignedIn': 'Signed in',
|
||
'settings.amrNotSignedIn': 'Not signed in',
|
||
'settings.amrSigningIn': 'Signing in…',
|
||
'settings.amrCancelSignIn': 'Cancel sign-in',
|
||
'settings.amrAccountStatus': 'AMR account status',
|
||
'settings.amrLoginErrorCompact': 'AMR sign-in failed.',
|
||
'settings.apiSection': 'Anthropic API',
|
||
'settings.quickFillProvider': '제공자 빠른 입력',
|
||
'settings.customProvider': '사용자 지정 제공자',
|
||
'settings.apiKey': 'API 키',
|
||
'settings.showKey': '키 표시',
|
||
'settings.hideKey': '키 숨기기',
|
||
'settings.show': '표시',
|
||
'settings.hide': '숨기기',
|
||
'settings.model': '모델',
|
||
'settings.suggestedModelsHint':
|
||
'이 프로토콜에 대한 추천 모델입니다. 사용 중인 제공자는 다른 모델을 지원할 수 있습니다.',
|
||
'settings.maxTokens': '최대 토큰 수 (선택 사항)',
|
||
'settings.maxTokensHint':
|
||
'응답 길이 상한입니다. 각 모델에는 기본값이 미리 조정되어 있으며(placeholder로 표시됨), 비워 두면 그 값을 사용하고 숫자를 입력하면 덮어씁니다.',
|
||
'settings.baseUrl': 'Base URL',
|
||
'settings.baseUrlInvalid': '유효한 공개 http:// 또는 https:// URL을 입력하세요. localhost는 허용되며 사설 네트워크 IP는 차단됩니다.',
|
||
'settings.baseUrlCustomize': '사용자 지정',
|
||
'settings.baseUrlDefaultHint': '기본 엔드포인트입니다. 보통 변경할 필요가 없습니다.',
|
||
'settings.azureBaseUrlPlaceholder': 'https://my-resource.openai.azure.com',
|
||
'settings.azureBaseUrlHint': 'Find this in Azure portal → your resource → Endpoint.',
|
||
'settings.azureDeploymentModel': '배포 이름',
|
||
'settings.azureDeploymentModelHint':
|
||
'Azure OpenAI에서는 이 필드가 /openai/deployments/<model>의 배포 이름으로 사용됩니다. Azure에서 만든 배포 이름을 입력하세요.',
|
||
'settings.apiVersion': 'API 버전',
|
||
'settings.byokImageModel': '이미지 생성 모델',
|
||
'settings.apiHint': '요청은 로컬 daemon 프록시를 통해 설정한 Base URL로 전송됩니다. 키는 이 브라우저에만 저장되며 제공자 요청과 함께 전송됩니다.',
|
||
'settings.skipForNow': '지금은 건너뛰기',
|
||
'settings.getStarted': '시작하기',
|
||
'settings.envConfigure': '실행 모드',
|
||
'settings.localCli': '로컬 CLI',
|
||
'settings.anthropicApi': 'Anthropic API',
|
||
'settings.noAgentSelected': '선택된 에이전트 없음',
|
||
'settings.language': '언어',
|
||
'settings.languageHint': '인터페이스 언어를 변경합니다. 이 브라우저에 저장됩니다.',
|
||
'settings.appearance': '화면 모드',
|
||
'settings.appearanceHint': '라이트, 다크 또는 시스템 설정에 따릅니다.',
|
||
'settings.themeSystem': '시스템',
|
||
'settings.themeLight': '라이트',
|
||
'settings.themeDark': '다크',
|
||
'settings.agentModelHead': '모델:',
|
||
'settings.modelPicker': '모델',
|
||
'settings.modelSourceLive': 'CLI에서 실시간 가져옴',
|
||
'settings.modelSourceFallback': '내장 목록',
|
||
'settings.reasoningPicker': '추론 (Reasoning)',
|
||
'settings.modelPickerHint':
|
||
'CLI가 `models` 명령어를 지원할 때 가져옵니다. "Default"는 CLI 자체 설정을 따르며, "직접 입력…"을 선택하면 CLI가 허용하는 모델 ID를 입력할 수 있습니다.',
|
||
'settings.modelPickerLiveHint':
|
||
'설치된 CLI에서 모델을 새로 고쳤습니다. 기본값은 계속 CLI 구성을 사용합니다.',
|
||
'settings.modelPickerFallbackHint':
|
||
'내장 기본값을 표시 중입니다. CLI에서 실시간 모델을 가져오려면 다시 스캔을 클릭하세요.',
|
||
'settings.cliEnvTitle': 'CLI config locations',
|
||
'settings.cliEnvHint':
|
||
'Set non-secret config directories for packaged app runs and agent detection.',
|
||
'settings.cliEnvClaudeConfigDir': 'Claude Code config directory',
|
||
'settings.cliEnvClaudeBaseUrl': 'Claude proxy base URL',
|
||
'settings.cliEnvClaudeApiKey': 'Claude proxy API key',
|
||
'settings.cliEnvCodexHome': 'Codex home',
|
||
'settings.cliEnvCodexBin': 'Codex executable path',
|
||
'settings.cliEnvCodexBaseUrl': 'Codex/OpenAI proxy base URL',
|
||
'settings.cliEnvCodexApiKey': 'Codex/OpenAI proxy API key',
|
||
'settings.modelCustom': '직접 입력…',
|
||
'settings.modelCustomLabel': '사용자 지정 모델 ID',
|
||
'settings.modelCustomPlaceholder': '예: anthropic/claude-sonnet-4-6',
|
||
'settings.mediaProviders': '미디어 프로바이더',
|
||
'settings.mediaProvidersHint':
|
||
'이미지, 비디오, 오디오 생성을 위한 API 키입니다. 로컬에 저장되며 로컬 데몬과 동기화됩니다.',
|
||
'settings.mcpServerTitle': 'MCP 서버',
|
||
'settings.mcpServerHint': 'Open Design을 코딩 에이전트용 MCP 서버로 노출합니다.',
|
||
'settings.externalMcpTitle': '외부 MCP',
|
||
'settings.externalMcpHint': '외부 서비스(Higgsfield, GitHub 등)의 MCP 도구를 추가합니다.',
|
||
'settings.mediaProviderApiKey': 'API 키',
|
||
'settings.mediaProviderBaseUrl': 'Base URL',
|
||
'settings.mediaProviderConfigured': '설정됨',
|
||
'settings.mediaProviderUnset': '설정 안됨',
|
||
'settings.mediaProviderClear': '지우기',
|
||
'settings.mediaProviderClearConfirm': '저장된 {name} 설정을 삭제하시겠습니까? {name}을(를) 사용하려면 다시 입력해야 합니다.',
|
||
'settings.mediaProviderPlaceholder': 'API 키를 붙여넣으세요',
|
||
'settings.mediaProviderBaseUrlPlaceholder': '기본 Base URL 재정의',
|
||
'settings.mediaProviderReload': '데몬에서 다시 불러오기',
|
||
'settings.mediaProviderReloadError': '로컬 데몬에서 미디어 제공자 설정을 다시 불러오지 못했습니다.',
|
||
'settings.mediaProviderReloadSuccess': '로컬 데몬에서 미디어 제공자 설정을 다시 불러왔습니다.',
|
||
'settings.mediaProviderLoadError': '로컬 데몬에서 미디어 제공자 설정을 불러오지 못했습니다. 지금은 브라우저에 저장된 설정을 사용합니다.',
|
||
'settings.mediaProviderComingSoonHint': '로드맵에서 이를 추적하고 있습니다. 데몬이 아직 클라이언트를 제공하지 않으므로 구성할 항목이 없습니다.',
|
||
'settings.privacy': 'Privacy',
|
||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||
'settings.privacyConsentLead': 'Open Design can share usage data with our team to help us improve. This includes:',
|
||
'settings.privacyConsentFooter': 'You can change either of these any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
|
||
'settings.privacyConsentShare': 'Share usage data',
|
||
'settings.privacyConsentDecline': "Don't share",
|
||
'settings.privacyConsentAccept': 'I get it',
|
||
'settings.privacyConsentBannerFooter':
|
||
'Data sharing is on by default. You can turn it off any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
|
||
'settings.privacyConsentPolicyLink': 'Read the privacy policy',
|
||
'settings.privacyMetrics': 'Anonymous metrics',
|
||
'settings.privacyMetricsHint': 'Run counts, token usage, error rate, duration. No prompts, no project data.',
|
||
'settings.privacyContent': 'Conversation content',
|
||
'settings.privacyContentHint': "Your prompts and the assistant's responses (truncated 8 KB / 16 KB). API keys, tokens, JWTs, emails, IPs, and credit-card numbers are stripped automatically before send.",
|
||
'settings.privacyArtifacts': 'Project artifacts manifest',
|
||
'settings.privacyArtifactsHint': 'Filenames, types, sizes of generated files. File contents are never sent.',
|
||
'settings.privacyInstallationId': 'Anonymous ID',
|
||
'settings.privacyOptedOut': 'opted out',
|
||
'settings.privacyDataDeletion': 'Delete my data',
|
||
'settings.privacyDataDeletionHint': 'Rotates your anonymous ID and stops sending. Existing traces age out under our retention policy.',
|
||
'settings.about': '정보',
|
||
'settings.aboutHint': '버전 및 런타임 세부 정보',
|
||
'settings.appVersion': '버전',
|
||
'settings.appChannel': '채널',
|
||
'settings.appRuntime': '런타임',
|
||
'settings.appPlatform': '플랫폼',
|
||
'settings.appArchitecture': '아키텍처',
|
||
'settings.runtimePackaged': '패키징된 앱',
|
||
'settings.runtimeDevelopment': '개발 (Development)',
|
||
'settings.versionUnavailable': '데몬이 오프라인 상태일 때는 버전 세부 정보를 확인할 수 없습니다.',
|
||
'settings.installLatest': '최신 버전 설치',
|
||
'settings.alreadyLatest': '최신 버전입니다',
|
||
|
||
'entry.tabDesigns': '디자인',
|
||
'entry.tabTemplates': '템플릿',
|
||
'entry.tabDesignSystems': '디자인 시스템',
|
||
'entry.tabConnectors': '커넥터',
|
||
'entry.openSettingsTitle': '설정',
|
||
'entry.openSettingsAria': '설정 열기',
|
||
'entry.resizeAria': '사이드바 크기 조절',
|
||
'entry.loadingWorkspace': '워크스페이스를 불러오는 중…',
|
||
'entry.useEverywhereTitle': '어디서나 사용',
|
||
'entry.useEverywhereAria': '‘어디서나 사용’ 가이드 열기 (CLI, MCP, HTTP, Skills)',
|
||
'entry.navNewProject': '새 프로젝트',
|
||
'entry.navHome': '홈',
|
||
'entry.navProjects': '프로젝트',
|
||
'entry.navDesignSystems': '디자인 시스템',
|
||
'entry.helpAria': '도움말',
|
||
'entry.helpMenuAria': '도움말 메뉴',
|
||
'entry.helpGetHelp': 'GitHub 에서 도움 받기',
|
||
'entry.helpSubmitFeature': '기능 제안하기',
|
||
'entry.helpWhatsNew': '새로운 소식',
|
||
'entry.helpDownloadDesktop': '데스크탑 앱 다운로드',
|
||
'entry.githubStarLabel': 'Star',
|
||
'entry.githubStarTitle': 'GitHub 에서 별을 눌러주세요',
|
||
'entry.githubStarAria': 'GitHub 에서 Open Design 에 별 누르기',
|
||
'entry.tabImageTemplates': '이미지 템플릿',
|
||
'entry.tabVideoTemplates': '비디오 템플릿',
|
||
'promptTemplates.searchPlaceholder': '템플릿 검색…',
|
||
'promptTemplates.countLabel': '{n}개 결과',
|
||
'promptTemplates.emptyImage': '설치된 이미지 프롬프트 템플릿이 없습니다.',
|
||
'promptTemplates.emptyVideo': '설치된 비디오 프롬프트 템플릿이 없습니다.',
|
||
'promptTemplates.emptyNoMatch': '검색어와 일치하는 템플릿이 없습니다.',
|
||
'promptTemplates.attributionFooter': '공개 프롬프트 라이브러리를 기반으로 합니다. 각 카드는 원작자 페이지로 연결됩니다.',
|
||
'promptTemplates.openPreviewTitle': '프롬프트 열기 및 미리보기',
|
||
'promptTemplates.sourcePrefix': '출처:',
|
||
'promptTemplates.fetchError': '이 템플릿의 본문을 불러올 수 없습니다.',
|
||
'promptTemplates.promptLabel': '프롬프트 본문',
|
||
'promptTemplates.copyPrompt': '프롬프트 복사',
|
||
'promptTemplates.copyDone': '복사 완료!',
|
||
'promptTemplates.modelHint': '추천 모델: {model}',
|
||
'promptTemplates.openSource': '원본 보기',
|
||
'promptTemplates.openFullscreen': '전체 화면 미리보기 열기',
|
||
'promptTemplates.closeFullscreen': '전체 화면 미리보기 닫기',
|
||
'promptTemplates.allSources': '모든 출처',
|
||
'promptTemplates.sourceFilterAria': '출처별 필터',
|
||
'promptTemplates.retry': '다시 시도',
|
||
|
||
'connectors.title': '커넥터',
|
||
'connectors.subtitle': '라이브 아티팩트에 연결할 수 있는 로컬 및 향후 데이터 소스입니다.',
|
||
'connectors.account': '계정',
|
||
'connectors.noAccount': '연결되지 않음',
|
||
'connectors.tools': '도구',
|
||
'connectors.connect': '연결',
|
||
'connectors.disconnect': '연결 해제',
|
||
'connectors.authorizationPending': '권한 부여 대기 중...',
|
||
'connectors.authorizationPendingHint': '열린 창에서 권한 부여를 완료하세요.',
|
||
'connectors.cancelAuthorization': '취소',
|
||
'connectors.configure': '설정',
|
||
'connectors.unavailable': '사용 불가',
|
||
'connectors.phaseStubTitle': '커넥터 API는 3단계에서 제공됩니다. 현재는 미리보기 화면입니다.',
|
||
'connectors.statusAvailable': '사용 가능',
|
||
'connectors.statusConnected': '연결됨',
|
||
'connectors.statusError': '오류',
|
||
'connectors.statusDisabled': '비활성화됨',
|
||
'connectors.gateTitle': '계속하려면 Composio API 키를 추가하세요',
|
||
'connectors.gateBody': '위에 키를 붙여넣고 키 저장을 클릭하면 사용 가능한 통합을 불러옵니다.',
|
||
'connectors.aboutLabel': '정보',
|
||
'connectors.detailsLabel': '세부 정보',
|
||
'connectors.statusLabel': '상태',
|
||
'connectors.category.aiAgents': 'AI 에이전트',
|
||
'connectors.category.aiInfrastructure': 'AI 인프라',
|
||
'connectors.category.accounting': '회계',
|
||
'connectors.category.admin': '관리',
|
||
'connectors.category.advertising': '광고',
|
||
'connectors.category.analytics': '분석',
|
||
'connectors.category.automation': '자동화',
|
||
'connectors.category.cms': 'CMS',
|
||
'connectors.category.crm': 'CRM',
|
||
'connectors.category.calendar': '캘린더',
|
||
'connectors.category.commerce': '커머스',
|
||
'connectors.category.communication': '커뮤니케이션',
|
||
'connectors.category.contacts': '연락처',
|
||
'connectors.category.dataPlatform': '데이터 플랫폼',
|
||
'connectors.category.database': '데이터베이스',
|
||
'connectors.category.design': '디자인',
|
||
'connectors.category.developer': '개발자 도구',
|
||
'connectors.category.documentation': '문서',
|
||
'connectors.category.erp': 'ERP',
|
||
'connectors.category.education': '교육',
|
||
'connectors.category.email': '이메일',
|
||
'connectors.category.events': '이벤트',
|
||
'connectors.category.fieldService': '현장 서비스',
|
||
'connectors.category.finance': '재무',
|
||
'connectors.category.fitness': '피트니스',
|
||
'connectors.category.forms': '폼',
|
||
'connectors.category.gaming': '게임',
|
||
'connectors.category.hr': 'HR',
|
||
'connectors.category.hospitality': '호스피탈리티',
|
||
'connectors.category.itsm': 'ITSM',
|
||
'connectors.category.integration': '통합',
|
||
'connectors.category.localization': '현지화',
|
||
'connectors.category.logistics': '물류',
|
||
'connectors.category.maps': '지도',
|
||
'connectors.category.marketing': '마케팅',
|
||
'connectors.category.media': '미디어',
|
||
'connectors.category.meetings': '회의',
|
||
'connectors.category.nonprofit': '비영리',
|
||
'connectors.category.observability': '옵저버빌리티',
|
||
'connectors.category.payments': '결제',
|
||
'connectors.category.personal': '개인',
|
||
'connectors.category.presentations': '프레젠테이션',
|
||
'connectors.category.procurement': '조달',
|
||
'connectors.category.product': '제품',
|
||
'connectors.category.productivity': '생산성',
|
||
'connectors.category.projectManagement': '프로젝트 관리',
|
||
'connectors.category.recruiting': '채용',
|
||
'connectors.category.research': '리서치',
|
||
'connectors.category.salesIntelligence': '영업 인텔리전스',
|
||
'connectors.category.scheduling': '일정 예약',
|
||
'connectors.category.search': '검색',
|
||
'connectors.category.security': '보안',
|
||
'connectors.category.signing': '서명',
|
||
'connectors.category.social': '소셜',
|
||
'connectors.category.spreadsheets': '스프레드시트',
|
||
'connectors.category.storage': '스토리지',
|
||
'connectors.category.support': '지원',
|
||
'connectors.category.surveys': '설문',
|
||
'connectors.category.tasks': '작업',
|
||
'connectors.category.timeTracking': '시간 추적',
|
||
'connectors.category.video': '비디오',
|
||
'connectors.category.whiteboard': '화이트보드',
|
||
'connectors.categoryLabel': '카테고리',
|
||
'connectors.providerLabel': '제공자',
|
||
'connectors.toolsSection': '도구',
|
||
'connectors.toolsLoading': '도구 불러오는 중…',
|
||
'connectors.noToolsAvailable': '아직 사용 가능한 도구가 없습니다. 연결 후 이 통합의 기능이 표시됩니다.',
|
||
'connectors.toolDetailsUnavailable': 'Tool details are unavailable, but this connector reports {n} tools.',
|
||
'connectors.loadMoreTools': 'Load more tools',
|
||
'connectors.openDetailsAria': '{name} 세부 정보 열기',
|
||
'connectors.toolsBadgeNone': '도구 없음',
|
||
'connectors.toolsBadgeOne': '{n}개 도구',
|
||
'connectors.toolsBadgeMany': '{n}개 도구',
|
||
'connectors.searchPlaceholder': '커넥터 검색…',
|
||
'connectors.searchAriaLabel': '이름, 제공자 또는 도구 기준으로 커넥터 검색',
|
||
'connectors.searchClear': '검색 지우기',
|
||
'connectors.emptyNoMatchTitle': '“{query}”와 일치하는 커넥터가 없습니다',
|
||
'connectors.emptyNoMatchBody': '다른 키워드를 시도하거나 검색을 지워 전체 목록을 확인하세요.',
|
||
'connectors.emptyNoMatchAction': '검색 지우기',
|
||
|
||
'newproj.tabPrototype': '프로토타입',
|
||
'newproj.tabDeck': '슬라이드 덱',
|
||
'newproj.tabTemplate': '템플릿에서 시작',
|
||
'newproj.tabMedia': '미디어',
|
||
'newproj.tabOther': '기타',
|
||
'newproj.titlePrototype': '새 프로토타입',
|
||
'newproj.titleDeck': '새 슬라이드 덱',
|
||
'newproj.titleTemplate': '템플릿에서 시작',
|
||
'newproj.titleImage': '새 이미지',
|
||
'newproj.titleVideo': '새 비디오',
|
||
'newproj.titleAudio': '새 오디오',
|
||
'newproj.titleMedia': '새 미디어',
|
||
'newproj.titleOther': '새 프로젝트',
|
||
'newproj.namePlaceholder': '프로젝트 이름',
|
||
'newproj.fidelityLabel': '피델리티 (Fidelity)',
|
||
'newproj.fidelityWireframe': '와이어프레임',
|
||
'newproj.fidelityHigh': '하이 피델리티 (High fidelity)',
|
||
'newproj.toggleSpeakerNotes': '발표자 노트 사용',
|
||
'newproj.toggleSpeakerNotesHint': '슬라이드 텍스트를 줄이고 주요 내용을 노트에 보관합니다.',
|
||
'newproj.toggleAnimations': '애니메이션 포함',
|
||
'newproj.toggleAnimationsHint':
|
||
'템플릿에 모션 (등장, 호버, 전환 효과)을 추가합니다.',
|
||
'newproj.templateLabel': '템플릿',
|
||
'newproj.noTemplatesTitle': '아직 템플릿이 없습니다',
|
||
'newproj.noTemplatesBody':
|
||
'프로젝트를 열고 파일 뷰어 안의 공유(Share) 메뉴를 사용하여 템플릿으로 변환하세요. 생성된 템플릿이 여기에 표시됩니다.',
|
||
'newproj.savedTemplate': '저장된 템플릿',
|
||
'newproj.fileSingular': '파일',
|
||
'newproj.filePlural': '파일들',
|
||
'newproj.create': '생성',
|
||
'newproj.locationLabel': '저장 위치',
|
||
'newproj.locationDefault': 'Open Design 프로젝트',
|
||
'newproj.locationExternalBase': '외부 베이스',
|
||
'newproj.createFromTemplate': '템플릿으로 생성',
|
||
'newproj.createDisabledTitle':
|
||
'먼저 프로젝트를 템플릿으로 저장하세요 (프로젝트 내 공유 메뉴 이용).',
|
||
'newproj.importClaudeZip': 'Claude Design ZIP 가져오기',
|
||
'newproj.importClaudeZipTitle': 'Claude Design .zip 내보내기 파일 가져오기',
|
||
'newproj.importingClaudeZip': '가져오는 중…',
|
||
'newproj.privacyFooter': '기본적으로 프로젝트는 나만 볼 수 있습니다.',
|
||
'newproj.designSystem': '디자인 시스템',
|
||
'newproj.dsNoneFreeform': '없음 — 자유 양식',
|
||
'newproj.dsNoneSubtitleEmpty': '시스템 토큰 없이 자체 팔레트를 선택합니다.',
|
||
'newproj.dsNoneSubtitleSelected': '시스템 토큰을 건너뜁니다. 에이전트가 팔레트를 알아서 선택합니다.',
|
||
'newproj.dsCategoryFallback': '디자인 시스템',
|
||
'newproj.dsSearch': '디자인 시스템 검색…',
|
||
'newproj.dsModeAria': '선택 모드',
|
||
'newproj.dsModeSingle': '단일',
|
||
'newproj.dsModeMulti': '다중',
|
||
'newproj.dsNoneTitle': '없음 — 자유 양식',
|
||
'newproj.dsNoneSub': '시스템 토큰을 건너뜁니다. 에이전트가 팔레트를 알아서 선택합니다.',
|
||
'newproj.dsEmpty': '“{query}”와(과) 일치하는 디자인 시스템이 없습니다.',
|
||
'newproj.dsFootSingular': '은(는) 참고용입니다.',
|
||
'newproj.dsFootPlural': '은(는) 참고용입니다.',
|
||
'newproj.dsFootClear': '지우기',
|
||
'newproj.dsBadgeDefault': '기본 (DEFAULT)',
|
||
'newproj.dsPrimaryFallback': '기본색 (Primary)',
|
||
'newproj.surfaceImage': '이미지',
|
||
'newproj.surfaceVideo': '비디오',
|
||
'newproj.surfaceAudio': '오디오',
|
||
'newproj.modelLabel': '모델',
|
||
'newproj.modelSearch': '모델 검색…',
|
||
'newproj.modelEmpty': '일치하는 모델이 없습니다.',
|
||
'newproj.modelRecommended': '추천',
|
||
'newproj.modelMissingTitle': '모델 선택',
|
||
'newproj.modelMissingSub': '이 화면에 사용할 모델을 선택하세요.',
|
||
'newproj.aspectLabel': '비율 (Aspect)',
|
||
'newproj.videoLengthLabel': '길이',
|
||
'newproj.videoLengthSeconds': '{n}초',
|
||
'newproj.audioKindLabel': '오디오 유형',
|
||
'newproj.audioKindMusic': '음악',
|
||
'newproj.audioKindSpeech': '음성 / TTS',
|
||
'newproj.audioKindSfx': '효과음 (SFX)',
|
||
'newproj.audioDurationLabel': '길이',
|
||
'newproj.audioDurationSeconds': '{n}초',
|
||
'newproj.voiceLabel': '목소리',
|
||
'newproj.voicePlaceholder': '프로바이더 보이스 ID (선택 사항)',
|
||
'newproj.connectorsLabel': '커넥터',
|
||
'newproj.connectorsHint': '이 아티팩트가 가져올 수 있는 데이터 소스입니다.',
|
||
'newproj.connectorsEmptyTitle': '설정된 커넥터가 없습니다',
|
||
'newproj.connectorsEmptyBody': '데이터 소스를 연결해 라이브 아티팩트가 자리표시자 대신 실제 데이터를 사용하도록 하세요.',
|
||
'newproj.connectorsEmptyCta': '커넥터 설정 →',
|
||
'newproj.connectorsLoading': '커넥터 불러오는 중…',
|
||
'newproj.connectorsCountOne': '{n}개 연결됨',
|
||
'newproj.connectorsCountMany': '{n}개 연결됨',
|
||
'newproj.connectorsManage': '관리',
|
||
'newproj.promptTemplateLabel': '참조 템플릿',
|
||
'newproj.promptTemplateNoneTitle': '없음 — 직접 작성',
|
||
'newproj.promptTemplateNoneSub': '갤러리를 건너뛰고 직접 브리프를 작성합니다.',
|
||
'newproj.promptTemplateRefSub': '참조 템플릿',
|
||
'newproj.promptTemplateSearch': '템플릿 검색…',
|
||
'newproj.promptTemplateEmpty': '이 유형에 설치된 템플릿이 없습니다.',
|
||
'newproj.promptTemplateBodyLabel': '프롬프트 (수정 가능)',
|
||
'newproj.promptTemplateOptimizeHint':
|
||
'내용을 수정할 수 있습니다. 변경된 내용은 에이전트의 브리프에 반영됩니다.',
|
||
'newproj.promptTemplateBodyEmpty':
|
||
'본문이 비어있습니다 — 에이전트에게 전달될 템플릿 참조가 없습니다.',
|
||
'newproj.deleteTemplateTitle': '템플릿 삭제',
|
||
'newproj.deleteTemplateConfirm': '"{name}" 템플릿을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',
|
||
'newproj.deleteTemplateConfirmCta': '템플릿 삭제',
|
||
'newproj.deleteTemplateError':
|
||
'템플릿을 삭제할 수 없습니다. 다시 시도해 주세요.',
|
||
|
||
'designs.subRecent': '최근 항목',
|
||
'designs.subYours': '내 디자인',
|
||
'designs.filterAria': '프로젝트 필터링',
|
||
'designs.searchPlaceholder': '검색…',
|
||
'designs.emptyNoProjects': '아직 프로젝트가 없습니다.',
|
||
'designs.emptyNoMatch': '검색어와 일치하는 프로젝트가 없습니다.',
|
||
'designs.deleteTitle': '프로젝트 삭제',
|
||
'designs.deleteConfirm': '"{name}" 프로젝트를 삭제하시겠습니까?',
|
||
'designs.cardFreeform': '자유 양식',
|
||
'designs.status.notStarted': '시작되지 않음',
|
||
'designs.status.queued': '대기 중',
|
||
'designs.status.running': '실행 중',
|
||
'designs.status.awaitingInput': '입력 대기 중',
|
||
'designs.status.succeeded': '완료됨',
|
||
'designs.status.published': '게시됨',
|
||
'designs.status.failed': '실패',
|
||
'designs.status.canceled': '취소됨',
|
||
'designs.viewToggleAria': '보기 모드',
|
||
'designs.viewGrid': '그리드 보기',
|
||
'designs.viewKanban': '보드 보기',
|
||
'designs.kanbanEmptyColumn': '디자인 없음',
|
||
'designs.deleteAria': '프로젝트 삭제 {name}',
|
||
'designs.menuMore': 'More actions',
|
||
'designs.menuRename': 'Rename',
|
||
'designs.menuDelete': 'Delete',
|
||
'designs.renamePrompt': 'New name for "{name}"',
|
||
'designs.selectMode': 'Select',
|
||
'designs.cancelSelect': 'Cancel',
|
||
'designs.deleteSelected': 'Delete selected',
|
||
'designs.selectedCount': '{n} selected',
|
||
'designs.deleteSelectedConfirm': 'Delete {n} project(s)?',
|
||
'designs.deleteSelectedSuccess': '{n} project(s) deleted successfully.',
|
||
'designs.deleteSelectedPartial': 'Deleted {deleted} project(s); {failed} failed.',
|
||
'designs.tagPrototype': 'Prototype',
|
||
'designs.tagLiveArtifact': 'Live Artifact',
|
||
'designs.tagSlide': 'Slide',
|
||
'designs.tagMedia': 'Media',
|
||
'designs.renameTitle': 'Rename project',
|
||
'designs.renameSave': 'OK',
|
||
'designs.renameCancel': 'Cancel',
|
||
|
||
'examples.typeLabel': '유형',
|
||
'examples.surfaceLabel': '대상 표면 (Surface)',
|
||
'examples.surfaceWeb': '웹',
|
||
'examples.surfaceImage': '이미지',
|
||
'examples.surfaceVideo': '비디오',
|
||
'examples.surfaceAudio': '오디오',
|
||
'examples.scenarioLabel': '시나리오',
|
||
'examples.modeAll': '전체',
|
||
'examples.modePrototypeDesktop': '프로토타입 · 데스크탑',
|
||
'examples.modePrototypeMobile': '프로토타입 · 모바일',
|
||
'examples.modeDeck': '슬라이드',
|
||
'examples.modeDocument': '문서 및 템플릿',
|
||
'examples.modeOrbit': 'Orbit',
|
||
'examples.modeLive': '라이브',
|
||
'examples.scenarioGeneral': '일반',
|
||
'examples.scenarioEngineering': '엔지니어링',
|
||
'examples.scenarioProduct': '제품',
|
||
'examples.scenarioDesign': '디자인',
|
||
'examples.scenarioMarketing': '마케팅',
|
||
'examples.scenarioSales': '영업',
|
||
'examples.scenarioFinance': '재무',
|
||
'examples.scenarioHr': '인사 (HR)',
|
||
'examples.scenarioOperations': '운영',
|
||
'examples.scenarioSupport': '고객 지원',
|
||
'examples.scenarioLegal': '법무',
|
||
'examples.scenarioEducation': '교육',
|
||
'examples.scenarioPersonal': '개인',
|
||
'examples.emptyNoSkills': '사용 가능한 스킬이 없습니다. 데몬이 실행 중인지 확인하세요.',
|
||
'examples.searchPlaceholder': '예제 검색…',
|
||
'examples.searchAria': '이름으로 예제 검색',
|
||
'examples.emptyNoMatch': '필터와 일치하는 예제가 없습니다.',
|
||
'examples.openPreview': '⤢ 미리보기 열기',
|
||
'examples.loadingPreview': '미리보기 불러오는 중…',
|
||
'examples.hoverPreview': '마우스를 올려 미리보기',
|
||
'examples.usePrompt': '이 프롬프트 사용하기',
|
||
'examples.previewModalTitle': '전체 미리보기 열기 (모달)',
|
||
'examples.shareTitle': '이 예제 공유하기',
|
||
'examples.shareLoadFirst': '마우스를 올려 미리보기를 먼저 로드하세요',
|
||
'examples.unavailablePlaceholder': '함께 제공된 {kind} 미리보기 없음 — 자세히 보려면 열기',
|
||
'examples.shareUnavailable': '공유할 {kind} 미리보기가 함께 제공되지 않음',
|
||
'examples.shareMenu': '공유 ▾',
|
||
'examples.exportPdfAllSlides': 'PDF로 내보내기 (모든 슬라이드)',
|
||
'examples.exportPptxLocked': 'PPTX로 내보내기… (템플릿을 먼저 여세요)',
|
||
'examples.tagSlideDeck': '슬라이드 덱',
|
||
'examples.tagTemplate': '템플릿',
|
||
'examples.tagDesignSystem': '디자인 시스템',
|
||
'examples.tagMobilePrototype': '모바일 프로토타입',
|
||
'examples.tagDesktopPrototype': '데스크탑 프로토타입',
|
||
'examples.tagImage': '이미지',
|
||
'examples.tagVideo': '비디오',
|
||
'examples.tagAudio': '오디오',
|
||
'examples.previewLabel': '미리보기',
|
||
|
||
'ds.surfaceLabel': '대상 표면 (Surface)',
|
||
'ds.surfaceWeb': '웹',
|
||
'ds.surfaceImage': '이미지',
|
||
'ds.surfaceVideo': '비디오',
|
||
'ds.surfaceAudio': '오디오',
|
||
'ds.searchPlaceholder': '디자인 시스템 검색…',
|
||
'ds.emptyNoMatch': '검색어와 일치하는 디자인 시스템이 없습니다.',
|
||
'ds.badgeDefault': '기본 (DEFAULT)',
|
||
'ds.preview': '미리보기',
|
||
'ds.previewTitle': '디자인 시스템 미리보기',
|
||
'ds.categoryAll': '전체',
|
||
'ds.categoryUncategorized': '미분류',
|
||
'ds.showcase': '쇼케이스',
|
||
'ds.tokens': '토큰',
|
||
'ds.specToggle': 'DESIGN.md',
|
||
'ds.specLoading': 'DESIGN.md 불러오는 중…',
|
||
|
||
'avatar.title': '계정 및 설정',
|
||
'avatar.localCli': '로컬 CLI',
|
||
'avatar.anthropicApi': 'Anthropic API',
|
||
'avatar.useLocal': '로컬 CLI 사용',
|
||
'avatar.useApi': 'API · BYOK 사용',
|
||
'avatar.codeAgent': '코드 에이전트',
|
||
'avatar.rescan': 'PATH 다시 스캔',
|
||
'avatar.settings': '설정',
|
||
'avatar.backToProjects': '프로젝트 목록으로 돌아가기',
|
||
'avatar.metaActive': '활성',
|
||
'avatar.metaOffline': '오프라인',
|
||
'avatar.metaSelected': '선택됨',
|
||
'avatar.noAgentSelected': '선택된 에이전트 없음',
|
||
'avatar.modelSection': '모델',
|
||
'avatar.modelLabel': '모델',
|
||
'avatar.reasoningLabel': '추론 (Reasoning)',
|
||
'avatar.customSuffix': '(직접 입력)',
|
||
|
||
'inlineSwitcher.chipTitle': 'CLI / 모델 전환',
|
||
'inlineSwitcher.chipCli': '로컬 CLI',
|
||
'inlineSwitcher.chipByok': 'BYOK',
|
||
'inlineSwitcher.modelDefault': '기본값',
|
||
'inlineSwitcher.noAgent': '에이전트 없음',
|
||
'inlineSwitcher.modeLabel': '모드',
|
||
'inlineSwitcher.agentLabel': '에이전트',
|
||
'inlineSwitcher.providerLabel': '제공자',
|
||
'inlineSwitcher.modelLabel': '모델',
|
||
'inlineSwitcher.useCli': '로컬 CLI 사용',
|
||
'inlineSwitcher.useByok': '자체 API 키 사용',
|
||
'inlineSwitcher.daemonOffline': '데몬 오프라인 — 설정 열기',
|
||
'inlineSwitcher.noAgentsDetected': 'PATH에서 CLI를 찾을 수 없습니다',
|
||
'inlineSwitcher.openSettingsForModel': '설정에서 제공자를 구성하세요',
|
||
'inlineSwitcher.missingApiKey': 'API 키 미설정 — 설정에서 추가하세요.',
|
||
'inlineSwitcher.openFullSettings': '실행 설정 열기',
|
||
'inlineSwitcher.customSuffix': '(직접 입력)',
|
||
|
||
'project.backToProjects': '프로젝트 목록으로 돌아가기',
|
||
'project.metaFreeform': '자유 양식',
|
||
'project.resizeChatPanel': '채팅 패널 크기 조절',
|
||
'project.instructionsActive': '활성 — 모든 메시지에 포함됨',
|
||
'chat.tabChat': '채팅',
|
||
'chat.tabComments': '댓글',
|
||
'chat.commentsSoon': '댓글 — 곧 지원될 예정입니다.',
|
||
'chat.comments.attached': 'Attached to chat',
|
||
'chat.comments.emptyAttached': 'No comments attached.',
|
||
'chat.comments.saved': 'Saved comments',
|
||
'chat.comments.emptySaved': 'No saved comments.',
|
||
'chat.comments.add': 'Add',
|
||
'chat.comments.addAll': 'Add all',
|
||
'chat.comments.remove': 'Remove',
|
||
'chat.comments.placeholder': 'Comment on this element…',
|
||
'chat.comments.addSend': 'Add & send',
|
||
'chat.comments.updateSend': 'Update & send',
|
||
'chat.comments.removeAttachment': 'Remove comment attachment',
|
||
'chat.comments.removeAttachmentAria': 'Remove comment attachment for {name}',
|
||
'chat.comments.comment': 'Comment',
|
||
'chat.comments.sendToChat': 'Send to chat',
|
||
'chat.comments.sending': 'Sending…',
|
||
'chat.comments.edit': 'Edit',
|
||
'chat.comments.select': 'Select',
|
||
'chat.comments.selectAll': '모두 선택',
|
||
'chat.comments.deselect': 'Deselect',
|
||
'chat.comments.nSelected': '{n} selected',
|
||
'chat.comments.pin': 'Pin',
|
||
'chat.comments.addNote': 'Add note',
|
||
'chat.comments.savedToast': 'Comment saved',
|
||
'chat.comments.pinSavedToast': 'Pin saved',
|
||
'chat.comments.pinAtCoords': 'at {x}, {y}',
|
||
'chat.comments.capturedItems': '{n} captured items',
|
||
'chat.comments.clear': 'Clear',
|
||
'chat.comments.targetImage': 'Image',
|
||
'chat.comments.targetControl': 'Control',
|
||
'chat.comments.targetLink': 'Link',
|
||
'chat.comments.targetText': 'Text',
|
||
'chat.comments.targetSection': 'Section',
|
||
'chat.comments.targetPage': 'Page',
|
||
'chat.comments.targetArea': 'Area',
|
||
'chat.annotationNotePlaceholder': 'Add a note for this mark',
|
||
'chat.annotationQueue': 'Queue',
|
||
'chat.annotationQueueing': 'Queueing...',
|
||
'chat.annotationSending': 'Sending...',
|
||
'chat.annotationSendDisabledReason': 'A task is currently running',
|
||
'chat.annotationPreviewMissing': 'Could not capture the preview. Please try again.',
|
||
'chat.annotationPreviewMissingInk': 'Could not capture the preview. Try again to avoid sending only ink.',
|
||
'chat.annotationTimeout': 'Annotation send timed out. Please try again.',
|
||
'chat.annotationFailed': 'Annotation send failed. Please try again.',
|
||
'chat.annotationProjectCreateFailed': 'Could not create a project, so the annotation was not sent.',
|
||
'chat.annotationUploadFailed': 'Attachment upload failed. Please try again.',
|
||
'chat.inspect.noEditableTargets': 'This page has no editable elements yet.',
|
||
'chat.inspect.noCommentTargets': 'This page has no commentable elements yet.',
|
||
'chat.inspect.editHint': 'Click an element in the canvas to edit its styles.',
|
||
'chat.inspect.commentHint': 'Click an element in the canvas to add a comment.',
|
||
'chat.conversationsTitle': '대화 목록',
|
||
'chat.conversationsAria': '대화 내역',
|
||
'chat.newConversation': '새 대화 시작',
|
||
'chat.newConversationsTitle': '새 대화',
|
||
'chat.conversationsHeading': '대화 목록',
|
||
'chat.new': '새로 만들기',
|
||
'chat.emptyConversations': '아직 대화가 없습니다.',
|
||
'chat.deleteConversation': '대화 삭제',
|
||
'chat.renameConversationLabel': '"{title}" 이름 변경',
|
||
'chat.deleteConversationConfirm':
|
||
'"{title}" 대화를 삭제하시겠습니까? 관련 메시지가 모두 삭제됩니다.',
|
||
'chat.untitledConversation': '제목 없는 대화',
|
||
'chat.startTitle': '대화 시작하기',
|
||
'chat.startHint': "생성하고 싶은 내용을 설명하거나 아래 예시에서 시작하세요:",
|
||
'chat.fillInputTitle': '클릭하여 입력창에 채우기',
|
||
'chat.jumpToLatest': '최신 내용으로 이동',
|
||
'chat.scrollToLatest': '최신 내용으로 스크롤',
|
||
'chat.you': '나',
|
||
'chat.openFile': '{name} 열기',
|
||
'chat.copyPrompt': '프롬프트 복사',
|
||
'chat.copyDone': '복사됨!',
|
||
'chat.composerPlaceholder': "생성하고 싶은 내용을 설명하세요…",
|
||
'chat.composerHint': "⌘/Ctrl + Enter로 보내기 · 목표, 내용, 스타일, 형식을 포함하세요",
|
||
'chat.cliSettingsTitle': 'CLI 및 모델 설정',
|
||
'chat.cliSettingsAria': 'CLI 및 모델 설정 열기',
|
||
'chat.attachTitle': '파일 첨부 (또는 붙여넣기 / 끌어놓기)',
|
||
'chat.attachAria': '파일 첨부',
|
||
'chat.importTitle': '소스 가져오기 (곧 지원 예정)',
|
||
'chat.importLabel': '가져오기',
|
||
'chat.importComingSoon': '곧 지원될 예정입니다',
|
||
'chat.importSoon': '예정',
|
||
'chat.importFig': '.fig 파일 업로드',
|
||
'chat.importGitHub': 'GitHub 연결',
|
||
'chat.importWeb': '웹 요소 가져오기',
|
||
'chat.importFolder': '코드 폴더 연결',
|
||
'chat.importSkills': '스킬 및 디자인 시스템',
|
||
'chat.importProject': 'Reference another project',
|
||
'chat.linkedFolderRemoveAria': '연결된 폴더 {path} 제거',
|
||
'chat.linkedFolderNotFound': '폴더가 존재하지 않습니다',
|
||
'chat.linkedFolderAlready': '이미 연결된 폴더입니다',
|
||
'chat.linkedFolderPickError': '폴더 선택기를 열 수 없습니다',
|
||
'chat.queuedHeader': 'Queued',
|
||
'chat.queuedToSend': 'to Send',
|
||
'chat.queuedEditQueuedTaskAria': 'Edit queued task',
|
||
'chat.queuedSave': 'Save',
|
||
'chat.queuedCancel': 'Cancel',
|
||
'chat.queuedEdit': 'Edit',
|
||
'chat.queuedMore': 'more queued',
|
||
'chat.queuedFollowUpFallback': 'Queued follow-up',
|
||
'chat.send': '전송',
|
||
'chat.stop': '중지',
|
||
'chat.removeAria': '{name} 제거',
|
||
'chat.example1Title': '에디토리얼 피치 덱',
|
||
'chat.example1Tag': '매거진',
|
||
'chat.example1Prompt':
|
||
'디자인 스튜디오의 시드 라운드 투자 유치를 위한 10장짜리 에디토리얼 피치 덱을 만들어 주세요. 스위스 스타일의 그리드 레이아웃, 볼드한 드롭 캡이 있는 크고 굵은 세리프체 헤드라인, 고정폭 폰트의 섹션 번호, 넉넉한 여백, 텍스트가 많은 슬라이드와 대비되는 꽉 찬 이미지 슬라이드를 조합해 주세요. 커버, 비전, 시장, 제품, 트랙션, 팀 구성, 투자 요청액, 연락처를 포함해 주세요.',
|
||
'chat.example2Title': 'SaaS 애널리틱스 대시보드',
|
||
'chat.example2Tag': '데이터',
|
||
'chat.example2Prompt':
|
||
'개발자 도구 SaaS를 위한 정보가 밀집된 애널리틱스 대시보드를 만들어 주세요. 전주 대비 변화량을 보여주는 주요 KPI 스트립, 두 개의 누적 선 그래프 (MRR 및 활성 워크스페이스), 사용량 기준 전 세계 히트맵, 코호트 리텐션 그리드, 상위 고객 리더보드, 그리고 실시간 이벤트 피드가 포함되어야 합니다. 다크 테마를 기반으로, 가독성을 위한 고정폭 숫자를 사용하고 스파크라인 포인트 색상으로 강조해 주세요.',
|
||
'chat.example3Title': '연례 보고서 롱 스크롤 페이지',
|
||
'chat.example3Tag': '에디토리얼',
|
||
'chat.example3Prompt':
|
||
'기후 변화 관련 비영리 단체의 인터랙티브 연례 보고서를 제작해 주세요. 큰 인용구 블록이 특징인 긴 스크롤 기반 에디토리얼 레이아웃과 함께, 누적 막대 그래프, 움직이는 카운터, 프로젝트 사이트 분포를 보여주는 코로플레스 맵 등 데이터 시각화를 섞어 주세요. 텍스트 중간중간 사진을 삽입하고, 기부자 명단과 마지막 결론 부분(CTA)을 포함해 주세요. 본문은 모던 세리프 폰트를, 차트 라벨은 산세리프 폰트를 사용하며 전체적으로 따뜻한 색감의 팔레트를 적용해 주세요.',
|
||
|
||
'preview.shareMenu': '공유',
|
||
'preview.exportMenu': 'Export',
|
||
'preview.shareTemplateBadge': 'Template',
|
||
'preview.shareToX': 'X / Twitter',
|
||
'preview.shareToReddit': 'Reddit',
|
||
'preview.shareToFacebook': 'Facebook',
|
||
'preview.shareToLinkedIn': 'LinkedIn',
|
||
'preview.shareToInstagram': 'Instagram',
|
||
'preview.shareToXiaohongshu': '小红书',
|
||
'preview.copyTemplateLink': 'Copy template link',
|
||
'preview.copyShareText': 'Copy share text',
|
||
'preview.shareSocialGroup': 'Share to social',
|
||
'preview.shareCopyGroup': 'Copy',
|
||
'preview.shareExportGroup': 'Export files',
|
||
'preview.shareCopied': 'Copied',
|
||
'preview.shareCopyFailed': 'Copy failed',
|
||
'preview.shareTextDefault': 'Open Design template: {title}',
|
||
'preview.openInNewTab': '새 탭에서 열기',
|
||
'preview.exit': '⤓ 나가기',
|
||
'preview.fullscreen': '⤢ 전체 화면',
|
||
'preview.closeTitle': '닫기 (Esc)',
|
||
'preview.loading': '{label} 불러오는 중…',
|
||
'preview.errorTitle': '이 예제를 불러오지 못했습니다.',
|
||
'preview.errorBody': '예제 HTML을 가져오지 못했습니다. Open Design이 실행 중인지 확인하고 다시 시도하세요.',
|
||
'preview.retry': '다시 시도',
|
||
'preview.unavailableTitle': '{noun}에는 함께 제공되는 미리보기가 없습니다.',
|
||
'preview.unavailableBody': '채팅에서 프롬프트를 실행해 {kind} 출력을 생성하세요.',
|
||
'preview.nounSkill': '이 스킬',
|
||
'preview.nounPlugin': '이 플러그인',
|
||
'preview.nounTemplate': '이 템플릿',
|
||
'preview.showSidebar': '{label} 표시',
|
||
'preview.hideSidebar': '{label} 숨기기',
|
||
|
||
'misc.savedTemplate': '저장된 템플릿',
|
||
'misc.primary': '기본색 (Primary)',
|
||
'misc.designSystem': '디자인 시스템',
|
||
|
||
'workspace.designFiles': '디자인 파일',
|
||
'workspace.focusMode': 'Focus workspace',
|
||
'workspace.showChat': 'Show chat',
|
||
'workspace.closeTab': '탭 닫기',
|
||
'workspace.deleteFileConfirm': '프로젝트 폴더에서 "{name}" 파일을 삭제하시겠습니까?',
|
||
'workspace.deleteSelectedFilesConfirm': '프로젝트 폴더에서 선택한 {n}개 파일을 삭제하시겠습니까?',
|
||
'workspace.deleteSelectedFilesPartial': '{n}개 파일을 삭제하지 못했습니다.',
|
||
'workspace.openFromDesignFiles': '디자인 파일 열기',
|
||
'workspace.designFilesLink': '디자인 파일',
|
||
'workspace.loadingSketch': '스케치 불러오는 중…',
|
||
'designFiles.title': '디자인 파일',
|
||
'designFiles.upload': '파일 업로드',
|
||
'designFiles.pasteText': '텍스트 파일로 붙여넣기',
|
||
'designFiles.newSketch': '새 스케치',
|
||
'designFiles.empty': '여기에 작업물이 표시됩니다',
|
||
'designFiles.refresh': '새로고침',
|
||
'designFiles.delete': '삭제',
|
||
'designFiles.searchPlaceholder': '파일 검색…',
|
||
'designFiles.up': '위로',
|
||
'designFiles.back': '뒤로',
|
||
'designFiles.crumbs': '프로젝트',
|
||
'designFiles.rowMenu': '항목 메뉴',
|
||
'designFiles.openInTab': '탭에서 열기',
|
||
'designFiles.download': '다운로드',
|
||
'designFiles.downloadSelected': '{n}개를 ZIP으로 다운로드',
|
||
'designFiles.clearSelection': '선택 해제',
|
||
'designFiles.selectPage': '페이지에서 모두 선택',
|
||
'designFiles.selectAll': '모두 선택',
|
||
'designFiles.deleteSelected': '{n}개 삭제',
|
||
'designFiles.dropTitle': '⤓ 여기에 파일을 놓으세요',
|
||
'designFiles.dropDesc':
|
||
'이미지, 문서, 참조 자료, 폴더 등을 놓아주세요. 에이전트가 문맥으로 활용합니다.',
|
||
'designFiles.upload.title': '파일 업로드',
|
||
'designFiles.paste.title': '텍스트를 파일로 붙여넣기',
|
||
'designFiles.upload.label': '업로드',
|
||
'designFiles.paste.label': '붙여넣기',
|
||
'designFiles.previewOpen': '열기',
|
||
'designFiles.previewClose': '미리보기 닫기',
|
||
'designFiles.modified': '{time} 수정됨 · {size}',
|
||
'designFiles.weeksAgo': '{n}주 전',
|
||
'designFiles.groupBy': '그룹 기준',
|
||
'designFiles.groupByKind': '종류',
|
||
'designFiles.groupByModified': '수정일',
|
||
'designFiles.expandGroup': '펼치기',
|
||
'designFiles.collapseGroup': '접기',
|
||
'designFiles.sectionPages': '페이지',
|
||
'designFiles.sectionScripts': '스크립트',
|
||
'designFiles.sectionImages': '이미지',
|
||
'designFiles.sectionSketches': '스케치',
|
||
'designFiles.sectionOther': '기타',
|
||
'designFiles.modifiedToday': '오늘',
|
||
'designFiles.modifiedYesterday': '어제',
|
||
'designFiles.modifiedPrevious7Days': '지난 7일',
|
||
'designFiles.modifiedPrevious30Days': '지난 30일',
|
||
'designFiles.modifiedOlder': '이전',
|
||
'designFiles.showMore': '+{n}개 더 보기',
|
||
'designFiles.kindHtml': 'HTML 페이지',
|
||
'designFiles.kindImage': '이미지',
|
||
'designFiles.kindSketch': '스케치',
|
||
'designFiles.kindText': '텍스트',
|
||
'designFiles.kindCode': '스크립트',
|
||
'designFiles.kindPdf': 'PDF 문서',
|
||
'designFiles.kindDocument': '문서',
|
||
'designFiles.kindPresentation': '프레젠테이션',
|
||
'designFiles.kindSpreadsheet': '스프레드시트',
|
||
'designFiles.kindBinary': '바이너리 파일',
|
||
'designFiles.kindFolder': '폴더',
|
||
'designFiles.folderCount': '{n}개 파일',
|
||
'designFiles.colName': '이름',
|
||
'designFiles.colKind': '종류',
|
||
'designFiles.colModified': '수정일',
|
||
'designFiles.perPage': '표시',
|
||
'designFiles.all': '모두',
|
||
'designFiles.prev': '이전',
|
||
'designFiles.next': '다음',
|
||
'designFiles.jumpToPage': '페이지로 이동',
|
||
'designFiles.pageInfo': '{start}–{end} / {total}',
|
||
'quickSwitcher.placeholder': '파일 열기…',
|
||
'quickSwitcher.empty': '이 프로젝트에 파일이 없습니다',
|
||
'quickSwitcher.noMatches': '일치 항목 없음',
|
||
'quickSwitcher.navigate': '탐색',
|
||
'quickSwitcher.open': '열기',
|
||
'quickSwitcher.close': '닫기',
|
||
'pasteDialog.title': '텍스트 붙여넣기',
|
||
'pasteDialog.hint': '프로젝트 폴더에 저장됩니다. 파일 이름을 지정하세요.',
|
||
'pasteDialog.fileNameLabel': '파일 이름',
|
||
'pasteDialog.namePlaceholder': 'notes.txt',
|
||
'pasteDialog.contentLabel': '내용',
|
||
'pasteDialog.contentPlaceholder': '여기에 내용을 붙여넣으세요…',
|
||
'pasteDialog.save': '저장',
|
||
'pasteDialog.cancel': '취소',
|
||
'sketch.save': '스케치 저장',
|
||
'sketch.cancel': '취소',
|
||
'sketch.saving': '저장 중…',
|
||
'sketch.saved': '저장됨',
|
||
'sketch.tooltipDirty': '저장되지 않은 변경 사항',
|
||
'sketch.tooltipClean': '저장됨',
|
||
'fileViewer.empty': '보려는 파일을 선택하세요.',
|
||
'fileViewer.loading': '불러오는 중…',
|
||
'fileViewer.exportPptx': 'PPTX로 내보내기',
|
||
'fileViewer.openInNewTab': '새 탭에서 열기',
|
||
'fileViewer.copyPath': '경로 복사',
|
||
'fileViewer.copied': '복사 완료!',
|
||
'fileViewer.share': '공유',
|
||
'fileViewer.binaryMeta': '바이너리 · {size}',
|
||
'fileViewer.binaryNote':
|
||
'바이너리 파일 ({size} 바이트). 확인하려면 다운로드하거나 디스크에서 직접 여세요.',
|
||
'fileViewer.pdfMeta': 'PDF 문서 · {size}',
|
||
'fileViewer.documentMeta': '문서',
|
||
'fileViewer.presentationMeta': '프레젠테이션',
|
||
'fileViewer.spreadsheetMeta': '스프레드시트',
|
||
'fileViewer.previewUnavailable': '미리보기를 제공할 수 없습니다. 파일을 확인하려면 다운로드하거나 직접 열어보세요.',
|
||
'fileViewer.download': '다운로드',
|
||
'fileViewer.open': '열기',
|
||
'fileViewer.imageMeta': '이미지 · {size}',
|
||
'fileViewer.reactMeta': 'React 컴포넌트 · {size}',
|
||
'fileViewer.sketchMeta': '스케치 · {size}',
|
||
'fileViewer.markdownStreamingMeta': '스트리밍 미리보기 중…',
|
||
'fileViewer.markdownErrorMeta': '생성 오류로 인해 미리보기가 불완전할 수 있습니다.',
|
||
'fileViewer.markdownStreamingStatus': '스트리밍 중… 일부 마크다운만 보입니다.',
|
||
'fileViewer.markdownErrorStatus': '생성 오류가 발생했습니다. 이용 가능한 마지막 내용만 표시합니다.',
|
||
'fileViewer.videoMeta': '비디오 · {size}',
|
||
'fileViewer.audioMeta': '오디오 · {size}',
|
||
'fileViewer.reload': '새로고침',
|
||
'fileViewer.reloadDisk': '디스크에서 새로고침',
|
||
'fileViewer.copy': '복사',
|
||
'fileViewer.copyTitle': '파일 내용 복사',
|
||
'fileViewer.saveDisabled': '저장 (읽기 전용)',
|
||
'fileViewer.save': '저장',
|
||
'fileViewer.preview': '미리보기',
|
||
'fileViewer.source': '소스 코드',
|
||
'fileViewer.tweaks': '조정 (Tweaks)',
|
||
'fileViewer.tweaksUnavailable': '이 아티팩트에 조정 패널이 없습니다',
|
||
'fileViewer.jsxModuleTitle': '독립 미리보기 없음',
|
||
'fileViewer.jsxModuleBody': '이 파일은 다른 페이지에서 불러오는 컴포넌트 모듈입니다.',
|
||
'fileViewer.jsxModuleCta': '이 파일을 렌더링하는 페이지를 여세요:',
|
||
'fileViewer.comment': '댓글',
|
||
'fileViewer.edit': '편집',
|
||
'fileViewer.draw': '그리기',
|
||
'fileViewer.mark': '표시',
|
||
'fileViewer.markTool': '표시 도구',
|
||
'fileViewer.boxSelect': '영역 선택',
|
||
'fileViewer.screenshot': '스크린샷',
|
||
'manualEdit.layers': "Layers",
|
||
'manualEdit.editableCount': "{count} editable",
|
||
'manualEdit.hiddenBadge': "Hidden",
|
||
'manualEdit.title': "Manual editor",
|
||
'manualEdit.fallbackTitle': 'Edit',
|
||
'manualEdit.movePanel': 'Move edit panel',
|
||
'manualEdit.closePanel': 'Close edit panel',
|
||
'manualEdit.selectLayer': "Select a layer",
|
||
'manualEdit.empty': "Click an element in the preview or choose a layer.",
|
||
'manualEdit.noEditableLayers': "No editable layers found.",
|
||
'manualEdit.noClass': "no class",
|
||
'manualEdit.tabsAria': "Manual edit tabs",
|
||
'manualEdit.tabContent': "Content",
|
||
'manualEdit.tabStyle': "Style",
|
||
'manualEdit.tabAttributes': "Attributes",
|
||
'manualEdit.tabHtml': "Html",
|
||
'manualEdit.tabSource': "Source",
|
||
'manualEdit.attributesJson': "Attributes JSON",
|
||
'manualEdit.selectedHtml': "Selected element HTML",
|
||
'manualEdit.fullSource': "Full artifact source",
|
||
'manualEdit.applyContent': "Apply Content",
|
||
'manualEdit.applyStyle': "Apply Style",
|
||
'manualEdit.applyAttributes': "Apply Attributes",
|
||
'manualEdit.applyHtml': "Apply HTML",
|
||
'manualEdit.applySource': "Apply Source",
|
||
'manualEdit.invalidAttributes': "Invalid attributes JSON.",
|
||
'manualEdit.changes': "Changes",
|
||
'manualEdit.undo': "Undo",
|
||
'manualEdit.redo': "Redo",
|
||
'manualEdit.noChanges': "No manual edits yet.",
|
||
'manualEdit.imageUrl': "Image URL",
|
||
'manualEdit.altText': "Alt text",
|
||
'manualEdit.label': "Label",
|
||
'manualEdit.text': "Text",
|
||
'manualEdit.href': "Href",
|
||
'manualEdit.textColor': "Text color",
|
||
'manualEdit.background': "Background",
|
||
'manualEdit.fontSize': "Font size",
|
||
'manualEdit.weight': "Weight",
|
||
'manualEdit.align': "Align",
|
||
'manualEdit.padding': "Padding",
|
||
'manualEdit.margin': "Margin",
|
||
'manualEdit.radius': "Radius",
|
||
'manualEdit.border': "Border",
|
||
'manualEdit.width': "Width",
|
||
'manualEdit.minHeight': "Min height",
|
||
'fileViewer.zoomOut': '축소',
|
||
'fileViewer.zoomIn': '확대',
|
||
'fileViewer.resetZoom': '배율 초기화',
|
||
'fileViewer.viewportAria': 'Preview viewport',
|
||
'fileViewer.viewportDesktop': 'Desktop',
|
||
'fileViewer.viewportDesktopTitle': 'Full-width desktop preview',
|
||
'fileViewer.viewportTablet': 'Tablet',
|
||
'fileViewer.viewportTabletTitle': 'Tablet preview at 820 × 1180 (modern portrait baseline)',
|
||
'fileViewer.viewportMobile': 'Mobile',
|
||
'fileViewer.viewportMobileTitle': 'Mobile preview at 390 × 844',
|
||
'fileViewer.reloadAria': '새로고침',
|
||
'fileViewer.previousSlide': '이전 슬라이드',
|
||
'fileViewer.nextSlide': '다음 슬라이드',
|
||
'fileViewer.slideNavAria': '슬라이드 이동',
|
||
'fileViewer.present': '프레젠테이션',
|
||
'fileViewer.presentInTab': '현재 탭에서',
|
||
'fileViewer.presentFullscreen': '전체 화면',
|
||
'fileViewer.presentNewTab': '새 탭에서',
|
||
'fileViewer.exitPresentation': '프레젠테이션 종료',
|
||
'fileViewer.shareLabel': "공유",
|
||
'fileViewer.shareMenuShareLink': 'SHARE LINK',
|
||
'fileViewer.shareMenuPublishOnline': 'PUBLISH ONLINE',
|
||
'fileViewer.shareMenuDownload': 'DOWNLOAD',
|
||
'fileViewer.shareMenuPresentation': 'Presentation',
|
||
'fileViewer.shareMenuSourceFiles': 'Source files',
|
||
'fileViewer.shareMenuSave': 'SAVE',
|
||
'fileViewer.copyProviderLink': 'Copy {provider} link',
|
||
'fileViewer.copyCloudflareLink': 'Copy Cloudflare link',
|
||
'fileViewer.screenshotCopying': 'Copying screenshot...',
|
||
'fileViewer.screenshotCopied': 'Screenshot copied to clipboard',
|
||
'fileViewer.screenshotClipboardDenied': 'Browser blocked clipboard access',
|
||
'fileViewer.screenshotPreviewLoading': 'Preview is still loading. Try again in a moment.',
|
||
'fileViewer.screenshotCaptureFailed': 'Could not capture the preview. Please try again.',
|
||
'fileViewer.exportPdf': 'PDF로 내보내기',
|
||
'fileViewer.exportPdfAllSlides': 'PDF로 내보내기 (모든 슬라이드)',
|
||
'fileViewer.exportPptxBusy': '현재 작업이 끝날 때까지 기다려 주세요.',
|
||
'fileViewer.exportPptxHint':
|
||
'이 디자인을 PPTX로 변환하도록 에이전트에 요청합니다.',
|
||
'fileViewer.exportPptxNa': '이곳에서는 PPTX 내보내기를 할 수 없습니다.',
|
||
'fileViewer.exportZip': '.zip으로 다운로드',
|
||
'fileViewer.exportHtml': '독립 실행형 HTML로 내보내기',
|
||
'fileViewer.exportMd': 'Markdown으로 내보내기',
|
||
'fileViewer.exportImage': '이미지로 내보내기',
|
||
'fileViewer.exportImageFailed': '이미지 캡처에 실패했습니다. 다시 시도하거나 브라우저의 스크린샷 도구를 사용하세요.',
|
||
'fileViewer.exportImageModalSubtitle': '형식을 선택한 다음 현재 미리보기를 이미지로 다운로드합니다.',
|
||
'fileViewer.exportImageFormatLabel': '형식',
|
||
'fileViewer.exportImageSaving': '이미지 저장 중…',
|
||
'fileViewer.exportImageSaved': '이미지가 저장되었습니다',
|
||
'fileViewer.exportImageDownloadStarted': '다운로드가 시작되었습니다',
|
||
'fileViewer.exportImageDownloadDetails': '다른 이름으로 저장 창이 나타나지 않았다면 브라우저 다운로드 폴더에서 {filename}을 확인하세요.',
|
||
'fileViewer.exportJsx': 'JSX로 내보내기',
|
||
'fileViewer.exportReactHtml': '미리보기를 HTML로 내보내기',
|
||
'fileViewer.exportStarted': 'Export started',
|
||
'fileViewer.saveAsTemplate': '템플릿으로 저장…',
|
||
'fileViewer.savingTemplate': '템플릿 저장 중…',
|
||
'fileViewer.savedTemplate': '"{name}"(으)로 저장됨',
|
||
'fileViewer.savedTemplateFail': '템플릿 저장에 실패했습니다. 다시 시도해 주세요.',
|
||
'fileViewer.templateNamePrompt': '템플릿 이름',
|
||
'fileViewer.templateNameDefault': '제목 없는 템플릿',
|
||
'fileViewer.templateDescPrompt':
|
||
'간단한 설명 (선택 사항 — 이 템플릿의 용도나 특징이 무엇인가요?)',
|
||
'fileViewer.deployToVercel': 'Vercel에 배포',
|
||
'fileViewer.redeployToVercel': '다시 배포',
|
||
'fileViewer.deployingToVercel': 'Vercel에 배포 중…',
|
||
'fileViewer.deployProviderLabel': '배포 플랫폼',
|
||
'fileViewer.vercelProvider': 'Vercel',
|
||
'fileViewer.cloudflarePagesProvider': 'Cloudflare Pages',
|
||
'fileViewer.deployToProvider': '{provider}에 배포',
|
||
'fileViewer.redeployToProvider': '{provider}에 다시 배포',
|
||
'fileViewer.deployingToProvider': '{provider}에 배포 중…',
|
||
'fileViewer.preparingPublicLink': '공개 링크 준비 중…',
|
||
'fileViewer.copyDeployLink': '링크 복사',
|
||
'fileViewer.deployModalTitle': '배포',
|
||
'fileViewer.deployModalSubtitle': '선택한 플랫폼 계정으로 이 HTML 미리보기를 배포합니다.',
|
||
'fileViewer.vercelToken': 'Vercel 토큰',
|
||
'fileViewer.vercelTokenGetLink': 'Vercel 토큰 발급 받기',
|
||
'fileViewer.vercelTokenPlaceholder': 'Vercel 토큰을 붙여넣으세요',
|
||
'fileViewer.vercelTokenReuseHint': '저장된 토큰이 사용됩니다. 변경하려면 새 토큰을 입력하세요.',
|
||
'fileViewer.vercelTokenRequired': '먼저 Vercel 토큰을 입력하고 저장하세요.',
|
||
'fileViewer.cloudflareApiToken': 'Cloudflare API 토큰',
|
||
'fileViewer.cloudflareApiTokenGetLink': 'Cloudflare API 토큰 받기',
|
||
'fileViewer.cloudflareApiTokenPlaceholder': 'Cloudflare API 토큰을 붙여넣으세요',
|
||
'fileViewer.cloudflareApiTokenReuseHint': '저장된 Cloudflare API 토큰이 사용됩니다. 변경하려면 새 토큰을 입력하세요.',
|
||
'fileViewer.cloudflareApiTokenRequired': '먼저 Cloudflare API 토큰을 입력하고 저장하세요.',
|
||
'fileViewer.cloudflareApiTokenScopeHint': 'Pages Edit is required for deploys. Zone Read is required to list domains. DNS Edit is only needed when binding a custom domain.',
|
||
'fileViewer.vercelTeamId': '팀 ID (Team ID)',
|
||
'fileViewer.vercelTeamSlug': '팀 슬러그 (Team slug)',
|
||
'fileViewer.cloudflareAccountId': '계정 ID',
|
||
'fileViewer.cloudflareAccountIdHint': '필수입니다. Cloudflare 대시보드에서 계정 ID를 확인하세요.',
|
||
'fileViewer.cloudflareAccountIdRequired': '먼저 Cloudflare Account ID를 입력하고 저장하세요.',
|
||
'fileViewer.cloudflareZoneLabel': 'Domain',
|
||
'fileViewer.cloudflareZonePlaceholder': 'Save Cloudflare settings to load domains',
|
||
'fileViewer.cloudflareZoneRequired': 'Select a Cloudflare domain first.',
|
||
'fileViewer.cloudflareZonesLoading': 'Loading Cloudflare domains…',
|
||
'fileViewer.cloudflareZonesRefresh': 'Refresh domains',
|
||
'fileViewer.cloudflareZonesLoadFailed': 'Could not load Cloudflare domains.',
|
||
'fileViewer.cloudflareZonesEmpty': 'No active full Cloudflare domains were found for this account.',
|
||
'fileViewer.cloudflareDomainPrefixLabel': 'Subdomain prefix',
|
||
'fileViewer.cloudflareDomainPrefixPlaceholder': 'demo',
|
||
'fileViewer.cloudflareDomainPrefixInvalid': 'Use one DNS label only: lowercase letters, numbers, and hyphens.',
|
||
'fileViewer.cloudflareHostnamePreview': 'Custom domain preview: {hostname}',
|
||
'fileViewer.cloudflareCustomDomainHint': 'Optional: choose a Cloudflare domain and prefix to bind a custom subdomain. pages.dev will still be available.',
|
||
'fileViewer.cloudflarePagesDevLinkLabel': 'pages.dev URL',
|
||
'fileViewer.cloudflareCustomDomainLinkLabel': 'Custom domain',
|
||
'fileViewer.optional': '선택 사항',
|
||
'fileViewer.vercelPreviewOnly': '현재 배포는 Preview 모드만 지원합니다.',
|
||
'fileViewer.cloudflarePagesPreviewHint': 'Cloudflare Pages 배포는 Direct Upload를 사용합니다.',
|
||
'fileViewer.savingConfig': '설정 저장 중…',
|
||
'fileViewer.deployConfigSaveFailed': 'Vercel 설정을 저장하지 못했습니다.',
|
||
'fileViewer.deployFailed': '배포 실패. Vercel 설정을 확인하고 다시 시도해 주세요.',
|
||
'fileViewer.deployProviderConfigSaveFailed': '{provider} 설정을 저장하지 못했습니다.',
|
||
'fileViewer.deployProviderFailed': '{provider} 배포에 실패했습니다. 설정을 확인하고 다시 시도해 주세요.',
|
||
'fileViewer.deployResultLabel': '배포된 URL',
|
||
'fileViewer.deployLinkReady': '준비됨',
|
||
'fileViewer.deploySuccessToast': '배포가 정상적으로 업로드되었습니다',
|
||
'fileViewer.deploySuccessToastDetails': '{provider} · {url}',
|
||
'fileViewer.deployLinkPreparingLabel': '공개 링크 보류 중',
|
||
'fileViewer.deployLinkDelayed': '사이트가 배포되었습니다. 플랫폼에서 공개 링크를 아직 준비 중입니다.',
|
||
'fileViewer.deployLinkFailed': '사용자 지정 도메인 실패',
|
||
'fileViewer.deployLinkProtectedLabel': '배포 보호가 활성화됨',
|
||
'fileViewer.deployLinkProtected': '사이트가 배포되었지만 이 미리보기 링크에는 인증이 필요합니다. Deployment Protection을 끄거나 사용자 지정 도메인을 사용하세요.',
|
||
'fileViewer.retryLink': '지금 다시 시도',
|
||
|
||
'questionForm.submit': '제출',
|
||
'questionForm.skip': '건너뛰기',
|
||
'questionForm.locked': '답변됨',
|
||
|
||
'conv.switch': '대화 전환',
|
||
'conv.label': '대화',
|
||
'conv.heading': '대화 목록',
|
||
'conv.new': '+ 새 대화',
|
||
'conv.empty': '아직 대화가 없습니다.',
|
||
'conv.untitled': '제목 없는 대화',
|
||
'conv.renameTooltip': '더블 클릭하여 이름 변경',
|
||
'conv.delete': '대화 삭제',
|
||
'conv.deleteConfirm': '"{title}" 대화를 삭제하시겠습니까? 관련 메시지도 함께 삭제됩니다.',
|
||
|
||
'agentPicker.label': '에이전트',
|
||
'agentPicker.modeChoose': '실행 모드 선택',
|
||
'agentPicker.localCli': '로컬 CLI',
|
||
'agentPicker.daemonOff': '데몬 꺼짐',
|
||
'agentPicker.byok': 'API · BYOK',
|
||
'agentPicker.selectAgent': '감지된 코드 에이전트 CLI 선택',
|
||
'agentPicker.noAgents': 'PATH에서 에이전트를 찾을 수 없음',
|
||
'agentPicker.notInstalled': '설치되지 않음',
|
||
'agentPicker.rescan': '로컬 PATH에서 에이전트 다시 스캔',
|
||
|
||
'tool.openInTab': '탭에서 {name} 열기',
|
||
'tool.open': '열기',
|
||
'tool.todos': '할 일 (Todos)',
|
||
'tool.askQuestion': '질문',
|
||
'tool.askQuestionSubmit': '제출',
|
||
'tool.askQuestionPending': '답변 대기 중',
|
||
'tool.askQuestionAnswered': '답변 완료',
|
||
'tool.todosExpand': '할 일 표시',
|
||
'tool.todosCollapse': '할 일 숨기기',
|
||
'tool.todosDone': '완료',
|
||
'tool.todosDismiss': '할 일 목록 닫기',
|
||
'tool.write': '작성 (Write)',
|
||
'tool.edit': '편집 (Edit)',
|
||
'tool.read': '읽기 (Read)',
|
||
'tool.bash': '명령어 (Bash)',
|
||
'tool.glob': '검색 (Glob)',
|
||
'tool.grep': '검색 (Grep)',
|
||
'tool.fetch': '가져오기 (Fetch)',
|
||
'tool.search': '검색 (Search)',
|
||
'tool.lines': '{n} 줄',
|
||
'tool.changeSingular': '변경',
|
||
'tool.changePlural': '변경',
|
||
'tool.in': '경로: {path}',
|
||
'tool.hide': '숨기기',
|
||
'tool.output': '출력',
|
||
'tool.running': '실행 중…',
|
||
'tool.error': '오류',
|
||
'tool.done': '완료',
|
||
|
||
'assistant.role': '어시스턴트 (Assistant)',
|
||
'assistant.workingLabel': '작업 중',
|
||
'assistant.doneLabel': '완료됨',
|
||
'assistant.feedbackPrompt': '피드백',
|
||
'assistant.feedbackPositive': '도움 됨',
|
||
'assistant.feedbackNegative': '도움 안 됨',
|
||
'assistant.feedbackReasonTitle': 'Tell us why',
|
||
'assistant.feedbackReasonPositiveMatched': 'Understood my request',
|
||
'assistant.feedbackReasonPositiveVisual': 'Looks good',
|
||
'assistant.feedbackReasonPositiveUseful': 'Useful structure',
|
||
'assistant.feedbackReasonPositiveEasy': 'Easy to keep editing',
|
||
'assistant.feedbackReasonPositiveDesignSystem': 'Followed the design system',
|
||
'assistant.feedbackReasonNegativeMissed': 'Missed my request',
|
||
'assistant.feedbackReasonNegativeVisual': 'Visual quality needs work',
|
||
'assistant.feedbackReasonNegativeIncomplete': 'Incomplete output',
|
||
'assistant.feedbackReasonNegativeHard': 'Hard to use',
|
||
'assistant.feedbackReasonNegativeDesignSystem': 'Did not follow the design system',
|
||
'assistant.feedbackReasonOther': 'Other',
|
||
'assistant.feedbackReasonPlaceholder': 'Add a short note...',
|
||
'assistant.feedbackReasonSubmit': 'Submit',
|
||
'assistant.emptyResponseLabel': 'No output',
|
||
'assistant.emptyResponseMessage': 'The provider ended the request without returning text or an artifact. Try another model or provider, check quota, or retry.',
|
||
'assistant.unfinishedLabel': '작업을 마치지 못하고 중지됨',
|
||
'assistant.unfinishedSummary': '{n}개 작업 남음',
|
||
'assistant.unfinishedMore': '+{n}개 추가',
|
||
'assistant.continueRemaining': '남은 작업 계속하기',
|
||
'assistant.outTokens': '{n} 출력',
|
||
'assistant.producedFiles': '이 턴에서 생성된 파일',
|
||
'assistant.openFile': '열기',
|
||
'assistant.downloadFile': '다운로드',
|
||
'assistant.thinking': '생각 중 (Thinking)',
|
||
'assistant.systemReminder': '시스템 알림',
|
||
'assistant.waitingFirstOutput': '첫 번째 출력 대기 중',
|
||
'assistant.statusBootingAgent': '에이전트 부팅 중',
|
||
'assistant.statusStarting': '시작 중',
|
||
'assistant.statusRequesting': '요청 전송 중',
|
||
'assistant.statusThinking': '생각 중',
|
||
'assistant.statusStreaming': '스트리밍 중',
|
||
'assistant.slowHint':
|
||
'평소보다 오래 걸립니다. 5-10초 후에도 양식이 나타나지 않으면, 중지(Stop)를 누르고 질문을 다시 작성해 보세요.',
|
||
'assistant.verbEditing': '편집 중',
|
||
'assistant.verbWriting': '작성 중',
|
||
'assistant.verbReading': '읽는 중',
|
||
'assistant.verbSearching': '검색 중',
|
||
'assistant.verbRunning': '실행 중',
|
||
'assistant.verbTodos': '할 일 목록',
|
||
'assistant.verbFetching': '가져오는 중',
|
||
'assistant.verbCalling': '호출 중',
|
||
|
||
'qf.answered': '답변 완료',
|
||
'qf.choose': '선택하세요…',
|
||
'qf.required': '필수',
|
||
'qf.lockedSubmitted':
|
||
'답변이 전송되었습니다 — 에이전트가 이 답변을 활용하여 남은 세션을 진행합니다.',
|
||
'qf.lockedPrev': '이전에 완료된 턴의 양식입니다.',
|
||
'qf.hint':
|
||
"적절한 항목을 선택하세요. 관심 없는 선택 항목은 건너뛰어도 좋습니다 — 에이전트가 알아서 기본값을 적용합니다.",
|
||
'qf.submitDefault': '답변 전송',
|
||
'qf.submitDisabledTitle': '필수 항목을 모두 채워주세요',
|
||
'qf.submitTitle': '답변 전송',
|
||
'qf.cardSelected': '선택됨',
|
||
'qf.cardRefs': '참조:',
|
||
'qf.cardSampleText': '다람쥐 헌 쳇바퀴에 타고파 · 0123',
|
||
|
||
'sketch.toolSelect': '선택',
|
||
'sketch.toolPen': '펜',
|
||
'sketch.toolText': '텍스트',
|
||
'sketch.toolRect': '사각형',
|
||
'sketch.toolArrow': '화살표',
|
||
'sketch.toolEraser': '지우개',
|
||
'sketch.color': '색상',
|
||
'sketch.strokeSize': '선 굵기',
|
||
'sketch.undo': '실행 취소',
|
||
'sketch.clear': '모두 지우기',
|
||
'sketch.close': '닫기',
|
||
'sketch.closeConfirm': '스케치를 닫고 저장되지 않은 변경사항을 버릴까요?',
|
||
'sketch.textPrompt': '텍스트:',
|
||
'sketch.textModalTitle': '텍스트 추가',
|
||
|
||
'critiqueTheater.userFacingName': '디자인 배심',
|
||
'critiqueTheater.roleDesigner': '디자이너',
|
||
'critiqueTheater.roleCritic': '평론가',
|
||
'critiqueTheater.roleBrand': '브랜드',
|
||
'critiqueTheater.roleA11y': '접근성',
|
||
'critiqueTheater.roleCopy': '카피',
|
||
'critiqueTheater.roundLabel': '{n} 라운드 / 총 {m} 라운드',
|
||
'critiqueTheater.mustFix': '필수 수정 {n}건',
|
||
'critiqueTheater.composite': '종합 점수',
|
||
'critiqueTheater.threshold': '임계값',
|
||
'critiqueTheater.consensus': '합의',
|
||
'critiqueTheater.interrupt': '중단',
|
||
'critiqueTheater.interrupting': '중단 중…',
|
||
'critiqueTheater.interrupted': '중단됨',
|
||
'critiqueTheater.interruptedSummary': '{round} 라운드에서 중단 · 최고 종합 {composite}',
|
||
'critiqueTheater.degradedHeading': '이번 실행에서는 패널 사용 불가',
|
||
'critiqueTheater.degradedReasonMalformed': '패널 출력 형식이 올바르지 않습니다(파서가 거부함).',
|
||
'critiqueTheater.degradedReasonOversize': '패널 출력이 안전 바이트 예산을 초과했습니다.',
|
||
'critiqueTheater.degradedReasonAdapter': '어댑터 {adapter}이(가) 비평 프로토콜을 지원하지 않습니다.',
|
||
'critiqueTheater.degradedReasonProtocol': '어댑터 {adapter}이(가) 지원하지 않는 프로토콜 버전을 사용했습니다.',
|
||
'critiqueTheater.degradedReasonMissingArtifact': '실행이 완료되었으나 최종 산출물이 없습니다.',
|
||
'critiqueTheater.replay': '리플레이',
|
||
'critiqueTheater.replaySpeed': '리플레이 속도',
|
||
'critiqueTheater.readOnly': '읽기 전용',
|
||
'critiqueTheater.shippedSummary': '{round} 라운드에서 배포 · 종합 {composite}',
|
||
'critiqueTheater.shippedBadge': '배포됨',
|
||
'critiqueTheater.belowThresholdBadge': '임계값 미달',
|
||
'critiqueTheater.timedOutBadge': '시간 초과',
|
||
'critiqueTheater.failedHeading': '실행 실패',
|
||
'critiqueTheater.failedReasonCliExit': '에이전트 CLI가 패널 완료 전에 비정상 종료되었습니다.',
|
||
'critiqueTheater.failedReasonPerRoundTimeout': '한 라운드가 시간 예산을 초과했습니다.',
|
||
'critiqueTheater.failedReasonTotalTimeout': '전체 실행이 시간 예산을 초과했습니다.',
|
||
'critiqueTheater.failedReasonOrchestrator': '오케스트레이터 내부 오류.',
|
||
'critiqueTheater.transcriptEmpty': '리플레이할 트랜스크립트가 없습니다. 비평을 실행해 기록을 만드세요.',
|
||
'critiqueTheater.transcriptLoading': '트랜스크립트 불러오는 중…',
|
||
'critiqueTheater.transcriptError': '트랜스크립트를 불러오지 못했습니다: {error}',
|
||
'critiqueTheater.replaySpeedPaused': '일시 정지',
|
||
'critiqueTheater.replaySpeedInstant': '즉시',
|
||
'critiqueTheater.replaySpeedLive': '실시간',
|
||
'critiqueTheater.replaySpeedFast': '빠르게',
|
||
'critiqueTheater.settingsNav': '디자인 배심원단',
|
||
'critiqueTheater.settingsNavHint': '에이전트 실행 중 5인 패널 리뷰',
|
||
'critiqueTheater.settingsEnabledLabel': '에이전트 실행 중 디자인 배심원단 표시',
|
||
'critiqueTheater.settingsEnabledDescription':
|
||
'활성화하면 에이전트가 생성하는 동안 5인 패널 리뷰가 함께 진행되며 출하 전에 결과에 점수를 매깁니다. 언제든지 중단할 수 있습니다.',
|
||
'critiqueTheater.settingsEnabledProjectHint':
|
||
'이 프로젝트에 저장되었습니다. 새 실행은 서버 측에서 디자인 배심원단을 통과합니다.',
|
||
'critiqueTheater.settingsEnabledNoProjectHint':
|
||
'서버 측에 저장하려면 프로젝트를 여세요. 지금은 브라우저 내 환경설정만 변경됩니다.',
|
||
|
||
'pet.title': '펫',
|
||
'pet.tabBuiltIn': '내장',
|
||
'pet.tabBuiltInHint': 'Open Design에 기본 포함된 친구들 — 골라서 입양하세요.',
|
||
'pet.builtInEmpty': '지금은 기본 제공 펫을 불러올 수 없어요. 데몬이 다시 켜지면 커뮤니티 탭을 새로고침해 주세요.',
|
||
'pet.tabCustom': '커스텀',
|
||
'pet.tabCustomHint': '이름·글리프·색상·스프라이트를 직접 정해 보세요.',
|
||
'pet.tabCommunity': '커뮤니티',
|
||
'pet.tabCommunityHint': 'Codex에서 부화한 펫 — 입양하거나 AI로 새로 만드세요.',
|
||
'pet.tabsAria': '펫 소스',
|
||
'pet.subtitle': '작업 공간 위에 떠다니는 작은 친구를 입양해 보세요.',
|
||
'pet.navTitle': '펫',
|
||
'pet.navHint': '입양 또는 사용자 지정',
|
||
'pet.adopt': '입양',
|
||
'pet.adoptedBadge': '입양 완료',
|
||
'pet.adoptCallout': '펫 입양하기',
|
||
'pet.changePet': '펫 변경',
|
||
'pet.wake': '깨우기',
|
||
'pet.tuck': '숨기기',
|
||
'pet.wakeTitle': '펫 깨우기 — 떠다니는 오버레이 표시.',
|
||
'pet.tuckTitle': '펫 숨기기 — 오버레이 숨김.',
|
||
'pet.settingsTitle': '펫 설정 열기',
|
||
'pet.useCustom': '내 펫 사용',
|
||
'pet.customTitle': '내 펫 만들기',
|
||
'pet.customHint': '이름, 아이콘, 강조 색상을 골라보세요. 오버레이가 실시간으로 업데이트됩니다.',
|
||
'pet.customGreetingPlaceholder': '펫의 인사말…',
|
||
'pet.fieldName': '이름',
|
||
'pet.fieldGlyph': '아이콘',
|
||
'pet.fieldGlyphHint': '이모지 하나가 가장 잘 어울려요 (예: 🐝, 🦄, 🐢).',
|
||
'pet.fieldGreeting': '인사말',
|
||
'pet.fieldAccent': '강조 색상',
|
||
'pet.fieldAccentCustom': '사용자 색상',
|
||
'pet.fieldAccentDefault': '기본 강조 색상',
|
||
'pet.overlayAria': '펫 친구',
|
||
'pet.spriteAria': '{name} — 드래그하여 이동, 클릭하여 대화',
|
||
'pet.spriteTitle': '{name}의 인사! 클릭해서 대화하세요.',
|
||
'pet.composerTitle': '펫 — 깨우기, 숨기기 또는 선택',
|
||
'pet.composerMenuTitle': '펫',
|
||
'pet.composerMenuHint': '팁: /pet 을 입력하면 토글',
|
||
'pet.composerOpenSettings': '펫 관리',
|
||
'pet.welcomeTeaserTitle': '펫 입양하기',
|
||
'pet.welcomeTeaserBody': '작업 공간 위에 떠다니는 작은 친구입니다.',
|
||
'pet.welcomeTeaserCta': '고르기',
|
||
'pet.imageUpload': '스프라이트 업로드',
|
||
'pet.imageReplace': '스프라이트 교체',
|
||
'pet.imageRemove': '이모지로 변경',
|
||
'pet.imageHintIdle': 'PNG / JPG / WebP / GIF / SVG 지원. 스프라이트시트? 가로 스트립을 올리고 프레임 수를 설정하세요.',
|
||
'pet.imageHintActive': '업로드한 스프라이트 표시 중. 프레임을 1보다 크게 설정하면 가로 스프라이트시트가 움직입니다.',
|
||
'pet.fieldFrames': '프레임',
|
||
'pet.fieldFramesHint': '1 = 정적. > 1 = 가로 스프라이트시트.',
|
||
'pet.fieldFps': '속도 (fps)',
|
||
'pet.fieldFpsHint': '프레임 전환 속도.',
|
||
'pet.atlasImport': 'Codex 스프라이트 가져오기',
|
||
'pet.atlasImportTitle': 'hatch-pet의 8x9 / 192x208 아틀라스(PNG 또는 WebP)를 가져옵니다.',
|
||
'pet.atlasPickerTitle': '애니메이션 행 선택',
|
||
'pet.atlasPickerHint': 'Codex 펫은 9개의 애니메이션 행을 가집니다. 기본값은 전체 아틀라스를 유지해 호버, 드래그 방향, 장시간 대기에 따라 행이 바뀝니다. 한 행으로 고정할 수도 있습니다.',
|
||
'pet.atlasCancel': '아틀라스 취소',
|
||
'pet.atlasAdopt': '이 행으로 고정',
|
||
'pet.atlasAdoptFull': '전체 아틀라스 사용 (애니메이션)',
|
||
'pet.atlasAdoptFullTitle': '모든 행을 유지해 호버, 드래그 방향, 장시간 대기에 반응합니다.',
|
||
'pet.atlasAdoptRowTitle': '강조된 행만 루프 스트립으로 잘라냅니다.',
|
||
'pet.atlasActiveHint': '애니메이션 아틀라스 활성 — 상호작용(호버, 드래그, 대기)에 따라 펫이 행을 자동으로 전환합니다.',
|
||
'pet.atlasRow.idle': '대기',
|
||
'pet.atlasRow.running-right': '오른쪽으로 달리기',
|
||
'pet.atlasRow.running-left': '왼쪽으로 달리기',
|
||
'pet.atlasRow.waving': '손 흔들기',
|
||
'pet.atlasRow.jumping': '점프',
|
||
'pet.atlasRow.failed': '실패',
|
||
'pet.atlasRow.waiting': '기다리기',
|
||
'pet.atlasRow.running': '달리기',
|
||
'pet.atlasRow.review': '검토',
|
||
'pet.hatchTitle': 'AI로 새 펫 부화하기',
|
||
'pet.hatchHint': '내장된 hatch-pet 스킬을 채팅에서 실행해 Codex 스타일 스프라이트시트를 만든 뒤 여기에서 가져오세요.',
|
||
'pet.hatchConcept': '펫 콘셉트 (선택)',
|
||
'pet.hatchConceptPlaceholder': '예: 스웨터를 입은 작은 픽셀 시바견',
|
||
'pet.hatchCopy': '프롬프트 복사',
|
||
'pet.hatchCopied': '복사됨!',
|
||
'pet.hatchFoot': '스킬이 펫을 저장하면 여기로 돌아와 "Codex 스프라이트 가져오기"를 누르세요.',
|
||
'pet.slashPopoverAria': '슬래시 명령',
|
||
'pet.slashPopoverTitle': '명령',
|
||
'pet.slashPopoverHint': '↑↓ 이동 · enter 선택 · esc 닫기',
|
||
'pet.slashPet': '펫을 토글하거나 입양 또는 설정으로 이동.',
|
||
'pet.slashPetWake': '플로팅 펫을 깨우기.',
|
||
'pet.slashPetTuck': '펫을 잠시 치우기.',
|
||
'pet.slashHatch': 'hatch-pet 스킬로 Codex 펫 생성.',
|
||
'pet.slashHatchArg': '<콘셉트>',
|
||
'pet.slashSearch': 'OD research 명령으로 웹을 검색합니다.',
|
||
'pet.slashSearchArg': '<검색어>',
|
||
'pet.codexTitle': '최근 부화',
|
||
'pet.codexSubtitle': 'hatch-pet 스킬이 패키지한 펫이 여기에서 원클릭으로 입양 가능.',
|
||
'pet.codexSubtitleWithDir': 'hatch-pet 스킬 패키지를 위해 {dir} 스캔 중.',
|
||
'pet.codexEmpty': '부화된 펫이 아직 없습니다. 채팅에서 /hatch를 입력해 생성하세요.',
|
||
'pet.codexLoading': '부화된 펫을 찾는 중…',
|
||
'pet.codexRefresh': '새로고침',
|
||
'pet.codexAdopt': '입양',
|
||
'pet.codexAdopting': '입양 중…',
|
||
'pet.communitySync': '커뮤니티 펫 다운로드',
|
||
'pet.communitySyncing': '다운로드 중…',
|
||
'pet.communitySyncTitle': 'Codex Pet Share + j20 Hatchery 의 최신 펫을 ~/.codex/pets/ 로 동기화합니다.',
|
||
'pet.communitySyncDone': '신규 펫 {wrote} 마리 동기화됨 (총 {total} 마리).',
|
||
'pet.communitySyncFailed': '동기화 실패: {error}',
|
||
'pet.codexBundled': '내장',
|
||
'pet.codexBundledTitle': 'Open Design 에 내장 — 다운로드 불필요.',
|
||
|
||
'settings.notifications': '알림',
|
||
'settings.notificationsHint': '작업 완료 시 효과음 및 데스크톱 알림',
|
||
'settings.notifyCompletionSound': '완료 사운드',
|
||
'settings.notifyCompletionSoundHint': '한 턴이 끝나면 재생됩니다. 기본값은 꺼짐입니다.',
|
||
'settings.notifySuccessSound': '성공 사운드',
|
||
'settings.notifyFailureSound': '실패 사운드',
|
||
'settings.notifyDesktop': '데스크톱 알림',
|
||
'settings.notifyDesktopHint': '창이 활성화되지 않았을 때 전송됩니다.',
|
||
'settings.notifyDesktopBlocked': '브라우저에서 차단되었습니다. 사이트 설정에서 허용하세요.',
|
||
'settings.notifyDesktopUnsupported': '이 환경에서는 데스크톱 알림을 사용할 수 없습니다.',
|
||
'settings.notifyTest': '테스트 보내기',
|
||
'settings.notifyTestSent': '테스트 알림을 보냈습니다. 배너가 보이지 않으면 브라우저와 시스템 알림 설정을 확인하세요.',
|
||
'settings.notifyTestFailed': '알림 호출에 실패했습니다. 브라우저와 시스템 알림 설정을 확인하세요.',
|
||
'settings.notifySoundDing': '딩',
|
||
'settings.notifySoundChime': '차임벨',
|
||
'settings.notifySoundTwoToneUp': '상승 2음',
|
||
'settings.notifySoundPluck': '플럭',
|
||
'settings.notifySoundBuzz': '버즈',
|
||
'settings.notifySoundTwoToneDown': '하강 2음',
|
||
'settings.notifySoundThud': '쿵',
|
||
'settings.skills': '스킬',
|
||
'settings.skillsHint': '에이전트가 작업 중 호출할 수 있는 기능 스킬',
|
||
'settings.skillsNew': '새 스킬',
|
||
'settings.skillsEmpty': '왼쪽에서 스킬을 선택하거나 새로 만드세요.',
|
||
'settings.skillsEdit': '편집',
|
||
'settings.skillsDelete': '삭제',
|
||
'settings.skillsDeleteConfirm': '삭제 확인',
|
||
'settings.skillsName': '이름',
|
||
'settings.skillsTriggers': '트리거 (쉼표 또는 줄바꿈으로 구분)',
|
||
'settings.skillsDescription': '설명',
|
||
'settings.skillsBody': 'SKILL.md 본문',
|
||
'settings.skillsCreate': '만들기',
|
||
'settings.skillsSave': '저장',
|
||
'settings.skillsSaving': '저장 중…',
|
||
'settings.skillsFiles': '파일',
|
||
'settings.skillsNoFiles': '이 스킬 폴더에 파일이 없습니다.',
|
||
'settings.skillsNameRequired': '스킬 이름은 필수입니다.',
|
||
'settings.skillsBodyRequired': '스킬 내용은 필수입니다.',
|
||
'settings.designSystems': '디자인 시스템',
|
||
'settings.designSystemsHint': '사용 가능한 디자인 시스템을 탐색하고 전환하세요',
|
||
'settings.designSystemsInstalled': '설치됨',
|
||
'settings.designSystemsAdd': '디자인 시스템 추가',
|
||
'settings.designSystemsHiddenCount': '{count}개가 홈 갤러리에서 숨겨짐',
|
||
'settings.designSystemsShowAll': '모두 보기',
|
||
'settings.designSystemsShowHidden': '숨김 보기',
|
||
'settings.designSystemsSource': '소스',
|
||
'settings.designSystemsSourceLocal': '로컬',
|
||
'settings.designSystemsSourceGithub': 'GitHub',
|
||
'settings.designSystemsStructure': '구조',
|
||
'settings.designSystemsModeHybrid': '하이브리드',
|
||
'settings.designSystemsModeNormalized': '정규화',
|
||
'settings.designSystemsModeVerbatim': '원본 유지',
|
||
'settings.designSystemsCraft': 'Craft',
|
||
'settings.designSystemsCraftColor': '색상',
|
||
'settings.designSystemsCraftAccessibility': '접근성',
|
||
'settings.designSystemsGithubUrl': 'GitHub URL',
|
||
'settings.designSystemsProjectPath': '프로젝트 경로',
|
||
'settings.designSystemsImportGithub': 'GitHub에서 가져오기',
|
||
'settings.designSystemsImportProject': '프로젝트에서 가져오기',
|
||
'settings.designSystemsImportedStatus': '{title} 가져옴',
|
||
'settings.designSystemsViewImported': '가져온 디자인 시스템 보기',
|
||
'settings.designSystemsCategory': '카테고리',
|
||
'settings.designSystemsAllCategories': '모든 카테고리',
|
||
'settings.designSystemsShowInHomeGallery': '홈 갤러리에 표시',
|
||
'settings.projectLocations': '프로젝트 위치',
|
||
'settings.projectLocationsHint': '워크스페이스 저장 루트',
|
||
'settings.projectLocationsDescription': '여러 Open Design 프로젝트 폴더를 포함할 수 있는 작업 베이스를 추가합니다. 새 프로젝트는 선택한 베이스 안의 폴더로 저장됩니다.',
|
||
'settings.projectLocationsSaveError': '프로젝트 위치를 저장할 수 없습니다. 각 경로가 접근 가능한 폴더인지 확인하세요.',
|
||
'settings.projectLocationsSaved': '프로젝트 위치가 저장되었습니다.',
|
||
'settings.projectLocationsScanError': '프로젝트 위치를 스캔할 수 없습니다.',
|
||
'settings.projectLocationsScanComplete': '스캔 완료: {imported}개 가져옴, {existing}개는 이미 등록됨.',
|
||
'settings.projectLocationsNoFolderSelected': '선택한 폴더가 없습니다.',
|
||
'settings.projectLocationsDuplicate': '해당 작업 베이스는 이미 추가되었습니다.',
|
||
'settings.projectLocationsWorkBaseMeta': '작업 베이스 · 프로젝트는 여기에 하위 폴더로 생성됩니다',
|
||
'settings.projectLocationsAddFolder': '폴더 추가…',
|
||
'settings.projectLocationsDefaultBadge': '기본 위치',
|
||
'settings.projectLocationsMakeDefault': '기본값으로 설정',
|
||
'settings.projectLocationsDefaultSaved': '기본 프로젝트 위치가 업데이트되었습니다.',
|
||
'settings.librarySkills': '스킬',
|
||
'settings.libraryDesignSystems': '디자인 시스템',
|
||
'settings.librarySearch': '검색...',
|
||
'settings.libraryAll': '전체',
|
||
'settings.libraryPreview': '미리보기',
|
||
'settings.libraryPreviewClose': '닫기',
|
||
'settings.libraryLoading': '불러오는 중...',
|
||
'settings.libraryNoResults': '검색어와 일치하는 항목이 없습니다.',
|
||
'settings.libraryEnabled': '활성화됨',
|
||
'settings.libraryDisabled': '비활성화됨',
|
||
'settings.connectorsNavHint': '외부 시스템 연결',
|
||
'settings.connectorsHint': '이 기기의 커넥터 및 도구 제공자 설정을 관리합니다.',
|
||
'settings.connectorsComposioApiKey': 'Composio API 키',
|
||
'settings.connectorsSavedTitle': '로컬 daemon에 저장됨',
|
||
'settings.connectorsSavedWithTail': '저장됨 · ••••{tail}',
|
||
'settings.connectorsSaved': '저장됨',
|
||
'settings.connectorsGetApiKey': 'API 키 받기',
|
||
'settings.connectorsReplaceKeyPlaceholder': '저장된 키를 교체하려면 새 키를 붙여넣으세요',
|
||
'settings.connectorsApiKeyPlaceholder': 'Composio API 키 붙여넣기',
|
||
'settings.connectorsClear': '지우기',
|
||
'settings.connectorsClearConfirmTitle': '저장된 Composio API 키를 지울까요?',
|
||
'settings.connectorsClearConfirmBody': '키를 삭제하면 이 워크스페이스에 연결된 모든 Composio 커넥터가 해제됩니다. 연결된 계정, OAuth 권한, 도구 접근 권한이 모두 제거됩니다.',
|
||
'settings.connectorsClearConfirmContinue': '계속',
|
||
'settings.connectorsClearFinalTitle': '모든 커넥터 연결이 해제됩니다',
|
||
'settings.connectorsClearFinalBody': '되돌릴 수 없습니다. 새 키를 붙여 넣은 뒤에는 각 통합을 처음부터 다시 연결해야 합니다.',
|
||
'settings.connectorsClearFinalConfirm': '키 삭제 및 연결 해제',
|
||
'settings.connectorsClearArming': '잠시만요\u2026',
|
||
'settings.connectorsClearCancel': '취소',
|
||
'settings.connectorsSaveKey': "키 저장",
|
||
'settings.connectorsSaveKeyTitle': "이 키를 로컬 데몬으로 전송",
|
||
'settings.connectorsKeySaving': "저장 중…",
|
||
'settings.connectorsKeySaved': "저장됨 ✓",
|
||
'settings.connectorsKeyError': "키를 저장하지 못했습니다. 로컬 데몬이 실행 중인지 확인한 뒤 다시 시도하세요.",
|
||
'settings.connectorsHelpSaved': '키가 아래 카탈로그를 열며 로컬 daemon에 유지됩니다. 교체하려면 새 키를 붙여넣고, 제거하려면 지우세요.',
|
||
'settings.connectorsHelpUnsaved': "저장되지 않은 변경사항 — 「키 저장」을 눌러 이 자격 정보를 로컬 데몬에 저장하고 아래 카탈로그를 해제하세요.",
|
||
'settings.connectorsHelpEmpty': '아래 카탈로그를 열려면 키를 추가하세요. 키는 daemon에 로컬로 저장되며 환경 변수로 전송되지 않습니다.',
|
||
'settings.connectorsLoadingSavedKey': '로컬 daemon에서 저장된 키를 확인하는 중…',
|
||
'settings.autosaveSaving': "저장 중…",
|
||
'settings.autosaveSaved': "모든 변경사항이 저장됨",
|
||
'settings.autosaveError': "변경사항을 저장하지 못했습니다. 로컬 데몬이 오프라인일 수 있습니다.",
|
||
'settings.libraryToggleLabel': '전환',
|
||
// Memory (auto-extracted personalization saved as on-disk markdown)
|
||
'settings.memory': '메모리',
|
||
'settings.memoryHint': '대화에서 자동으로 추출된 개인 정보',
|
||
'settings.memoryDescription': '취향과 컨텍스트에 관한 사실을 대화에서 자동으로 추출하여 Markdown 파일로 저장하고, 이후 대화에 자동 주입합니다.',
|
||
'settings.memoryEnabled': '활성화됨',
|
||
'settings.memoryDisabled': '비활성화됨',
|
||
'settings.memoryEnableLabel': '메모리 주입 활성화',
|
||
'settings.memoryDisabledBanner': '메모리가 현재 꺼져 있습니다. 기존 사실은 디스크에 유지되지만 새 대화에 주입되지 않으며 새로운 정보도 추출되지 않습니다.',
|
||
'settings.memoryNew': '새 메모리',
|
||
'settings.memoryEdit': '편집',
|
||
'settings.memoryDelete': '삭제',
|
||
'settings.memoryPreview': '미리보기',
|
||
'settings.memoryEmpty': '아직 메모리가 없습니다.',
|
||
'settings.memoryEmptyHintZh': '记住: 用户偏好深色主题',
|
||
'settings.memoryEmptyHintEn': 'I prefer dark mode',
|
||
'settings.memoryName': '이름',
|
||
'settings.memoryDesc': '한 줄 설명',
|
||
'settings.memoryBody': '메모리 본문 (Markdown 지원)',
|
||
'settings.memoryBodyHint': '규칙 본문을 먼저 적고 Why와 How to apply 두 줄을 추가하세요.',
|
||
'settings.memoryStartersLabel': 'Need a starting point? Click to fill the form:',
|
||
'settings.memoryStarterUserName': 'My role',
|
||
'settings.memoryStarterUserDesc': 'I am a frontend engineer working on a SaaS design tool',
|
||
'settings.memoryStarterUserBody': '- Role: senior frontend engineer\n- Stack: React, TypeScript, Vite\n- Domain: design / collaboration tools\n- Timezone: GMT+8 (Asia/Shanghai)\n\nWhen to apply: any chat — frame examples around web frontend.',
|
||
'settings.memoryStarterFeedbackName': 'UI preferences',
|
||
'settings.memoryStarterFeedbackDesc': 'Dark mode, large body text, low information density',
|
||
'settings.memoryStarterFeedbackBody': '- Theme: dark by default\n- Body text: ≥ 18px\n- Information density: prefer whitespace, fewer items per screen\n\nWhy: less eye strain during long sessions.\nWhen to apply: whenever you generate UI, web pages, or slides.',
|
||
'settings.memoryStarterProjectName': 'Current project',
|
||
'settings.memoryStarterProjectDesc': 'Open Design v0.5 — chat-driven design editor',
|
||
'settings.memoryStarterProjectBody': '- Goal: ship the chat-driven editor this quarter\n- Priorities: streaming render, local multimodal, offline-first\n- Stack: Next.js 16, Express daemon, SQLite\n\nWhen to apply: in any conversation about this project.',
|
||
'settings.memorySaveHint': 'Not auto-saved — click Create / Save to apply.',
|
||
'settings.memoryIndexSaveHint': 'Edits to the index are not auto-saved — click Save index to apply.',
|
||
'settings.memoryIndexUnsaved': 'Unsaved changes',
|
||
'settings.memoryFlashCreated': '✓ Memory created',
|
||
'settings.memoryFlashSaved': '✓ Memory saved',
|
||
'settings.memoryFlashDeleted': '✓ Memory deleted',
|
||
'settings.memoryFlashIndexSaved': '✓ Index saved',
|
||
'settings.memoryFlashPathCopied': '✓ 경로 복사됨',
|
||
'settings.memoryNameLabel': 'Title',
|
||
'settings.memoryTypeLabel': 'Type',
|
||
'settings.memoryDescLabel': 'Description',
|
||
'settings.memoryBodyLabel': 'Content',
|
||
'settings.memoryTypeUser': '사용자',
|
||
'settings.memoryTypeFeedback': '피드백',
|
||
'settings.memoryTypeProject': '프로젝트',
|
||
'settings.memoryTypeReference': '참조',
|
||
'settings.memoryIndex': 'MEMORY.md (색인)',
|
||
'settings.memoryIndexSave': '색인 저장',
|
||
'settings.memoryIndexReset': '초기화',
|
||
'settings.memoryToastChanged': '메모리가 업데이트되었습니다',
|
||
'settings.memoryToastClickHint': '보기',
|
||
'settings.memoryAll': '전체',
|
||
'settings.memoryExtractions': 'Extraction history',
|
||
'settings.memoryExtractionsHint': 'Recent LLM-backed extraction attempts. Heuristic regex extraction always runs first; LLM extraction runs in the background after each turn.',
|
||
'settings.memoryExtractionsEmpty': 'No extractions yet. The next chat turn will populate this list.',
|
||
'settings.memoryExtractionsRefresh': 'Refresh',
|
||
'settings.memoryExtractionsRefreshing': 'Refreshing…',
|
||
'settings.memoryExtractionPhaseRunning': 'Running…',
|
||
'settings.memoryExtractionPhaseSuccess': 'Success',
|
||
'settings.memoryExtractionPhaseSkipped': 'Skipped',
|
||
'settings.memoryExtractionPhaseFailed': 'Failed',
|
||
'settings.memoryExtractionSkipNoProvider': 'No API key configured for LLM memory extraction.',
|
||
'settings.memoryExtractionSkipDisabled': 'Memory is disabled.',
|
||
'settings.memoryExtractionSkipEmpty': 'Empty user message — nothing to extract.',
|
||
'settings.memoryExtractionSkipNoMatch': 'No regex pattern matched this turn.',
|
||
'settings.memoryExtractionKindHeuristic': 'regex',
|
||
'settings.memoryExtractionKindLlm': 'LLM',
|
||
'settings.memoryExtractionProviderEnv': 'env',
|
||
'settings.memoryExtractionProviderMediaConfig': 'media settings',
|
||
'settings.memoryExtractionProposed': 'proposed',
|
||
'settings.memoryExtractionWritten': 'written',
|
||
'settings.memoryExtractionDuration': 'in',
|
||
'settings.memoryNoProviderBannerTitle': 'LLM memory extraction is not running',
|
||
'settings.memoryNoProviderBannerBody': 'No API key found for the memory extractor. Add an OpenAI key under Media providers, or set ANTHROPIC_API_KEY / OPENAI_API_KEY in the environment, to enable LLM-driven extraction. Heuristic regex extraction is still active.',
|
||
'settings.memoryExtractionProviderOverride': 'memory settings',
|
||
'settings.memoryExtractionDelete': 'Delete',
|
||
'settings.memoryExtractionsClear': 'Clear',
|
||
'settings.memoryExtractionsClearTitle': 'Clear all extraction history',
|
||
'settings.libraryInstall': '설치',
|
||
'settings.libraryInstallGithub': 'GitHub',
|
||
'settings.libraryInstallLocal': '로컬 경로',
|
||
'settings.libraryInstallUrl': 'https://github.com/owner/repo',
|
||
'settings.libraryInstallPath': '/path/to/skill-folder',
|
||
'settings.libraryInstallButton': '설치',
|
||
'settings.libraryUninstall': '제거',
|
||
'settings.libraryBuiltIn': '내장',
|
||
'settings.libraryInstalled': '설치됨',
|
||
'notify.successTitle': '작업 완료',
|
||
'notify.failureTitle': '작업 실패',
|
||
'notify.successBody': '한 턴이 끝났습니다.',
|
||
'notify.failureBody': '작업이 오류로 종료되었습니다.',
|
||
'updater.available': '업데이트 사용 가능',
|
||
'updater.availableBody': 'Open Design {version}을 사용할 수 있습니다. 설치 프로그램을 열기 전에 다운로드됩니다.',
|
||
'updater.checking': '업데이트 확인 중',
|
||
'updater.download': '업데이트 다운로드',
|
||
'updater.downloading': '업데이트 다운로드 중',
|
||
'updater.downloadingPercent': '업데이트 다운로드 중 {percent}%',
|
||
'updater.done': '완료',
|
||
'updater.failed': '업데이트 실패',
|
||
'updater.installerOpenBody': '설치 프로그램이 열려 있습니다. 업데이트를 완료할 수 있도록 Open Design을 종료하는 중입니다.',
|
||
'updater.installerOpened': '설치 프로그램 열림',
|
||
'updater.later': '나중에',
|
||
'updater.openFailedFallback': '설치 프로그램을 열 수 없습니다.',
|
||
'updater.openInstaller': '업데이트 설치',
|
||
'updater.opening': '설치 프로그램 여는 중...',
|
||
'updater.quitButton': 'Open Design 종료',
|
||
'updater.quitFailedBody': '설치 프로그램이 열려 있지만 Open Design을 종료할 수 없습니다. 앱을 교체하기 전에 Open Design을 종료하세요.',
|
||
'updater.quitFailedTitle': '종료할 수 없음',
|
||
'updater.quitting': '종료 중...',
|
||
'updater.ready': '업데이트 준비됨',
|
||
'updater.readyGeneric': '새 버전이 준비되었습니다. Open Design을 닫고 설치 프로그램을 엽니다.',
|
||
'updater.readyVersion': 'Open Design {version}이 준비되었습니다. Open Design을 닫고 설치 프로그램을 엽니다.',
|
||
'updater.upToDate': '이미 최신 버전입니다.',
|
||
'settings.memoryModelInlineLabel': 'Memory model',
|
||
'settings.memoryModelInlineSameAsChat': 'Same as chat',
|
||
'settings.memoryModelInlineSameAsChatWithModel': 'Same as chat ({model})',
|
||
'settings.memoryModelInlineSameAsChatWithProvider': 'Same as chat ({provider})',
|
||
'settings.memoryModelInlineHintCli': 'Optional. The memory extractor uses an env-var or media-providers API key on this provider; pinning a model here just overrides the auto-pick.',
|
||
'settings.memoryModelInlineHintCliConstrained': 'Optional. Memory will call {provider}; needs an env-var or media-providers API key for that provider, or pick a model below to override.',
|
||
'settings.memoryModelInlineHintByok': 'Optional. Reuses your chat API key on the same provider — picking a different (usually cheaper) model only changes the request body.',
|
||
'settings.memoryModelInlineFlashSaved': 'Saved',
|
||
'settings.memoryModelInlineFlashCleared': 'Cleared',
|
||
'settings.orbit.eyebrow': '자동화',
|
||
'settings.orbit.title': 'Orbit',
|
||
'settings.orbit.navHint': '일일 커넥터 요약',
|
||
'settings.orbit.lede': '커넥터 활동을 일정에 따라 수집하고 결과를 새로고침 가능한 live artifact로 게시합니다.',
|
||
'settings.orbit.statusOnTitle': '예약된 일일 실행이 켜져 있습니다',
|
||
'settings.orbit.statusOffTitle': '예약된 일일 실행이 꺼져 있습니다',
|
||
'settings.orbit.statusActive': '활성',
|
||
'settings.orbit.statusOff': '꺼짐',
|
||
'settings.orbit.runTitle': 'Orbit 실행을 시작하고 라이브 대화 열기',
|
||
'settings.orbit.running': '실행 중…',
|
||
'settings.orbit.runOpen': '지금 실행',
|
||
'settings.orbit.dailySummaryTitle': '일일 요약',
|
||
'settings.orbit.dailySummarySub': '예약된 로컬 시간에 하루 한 번 실행됩니다.',
|
||
'settings.orbit.on': '켜짐',
|
||
'settings.orbit.off': '꺼짐',
|
||
'settings.orbit.runTimeTitle': '실행 시간',
|
||
'settings.orbit.runTimeSub': '기본값 08:00. 저장하면 daemon 일정에 적용됩니다.',
|
||
'settings.orbit.runTimeAria': '일일 Orbit 실행 시간',
|
||
'settings.orbit.nextRun': '다음 실행',
|
||
'settings.orbit.nextRunScheduledAfterSave': '저장 후 예약됨',
|
||
'settings.orbit.schedule': '일정',
|
||
'settings.orbit.pausedManualOnly': '일시 중지 — 수동 실행만',
|
||
'settings.orbit.templateTitle': '프롬프트 템플릿',
|
||
'settings.orbit.templateMissing': '템플릿 {id}이(가) 설치되어 있지 않습니다.',
|
||
'settings.orbit.templateMissingOption': '{id}(누락)',
|
||
'settings.orbit.templateMissingInstall': '프롬프트를 조정하려면 Orbit skill을 설치하세요.',
|
||
'settings.orbit.templateMissingPickAnother': '드롭다운에서 다른 템플릿을 선택하세요.',
|
||
'settings.orbit.templateResetTitle': '{id}(으)로 재설정',
|
||
'settings.orbit.templateReset': '재설정',
|
||
'settings.orbit.templateHelp': 'skill로 Orbit을 조정합니다 — 선택한 템플릿의 예시 프롬프트가 모든 Orbit 실행에 주입되어 요약이 해당 템플릿 형식을 따릅니다.',
|
||
'settings.orbit.templateAria': 'Orbit 프롬프트 템플릿',
|
||
'settings.orbit.templatesLoading': '템플릿 로드 중…',
|
||
'settings.orbit.templatesOptgroup': 'Orbit skill 템플릿',
|
||
'settings.orbit.lastRun': '마지막 실행',
|
||
'settings.orbit.triggerManual': '수동',
|
||
'settings.orbit.triggerScheduled': '예약됨',
|
||
'settings.orbit.meterAria': '총 {checked}개 검사 중 성공 {succeeded}개, 건너뜀 {skipped}개, 실패 {failed}개',
|
||
'settings.orbit.countChecked': '검사됨',
|
||
'settings.orbit.countSucceeded': '성공',
|
||
'settings.orbit.countSkipped': '건너뜀',
|
||
'settings.orbit.countFailed': '실패',
|
||
'settings.orbit.runError': 'Orbit을 실행할 수 없습니다. 로컬 daemon이 실행 중이고 커넥터가 구성되어 있는지 확인하세요.',
|
||
'settings.orbit.gateAriaLabel': "Orbit을 사용하려면 커넥터가 필요합니다",
|
||
'settings.orbit.gateEyebrow': "설정이 필요합니다",
|
||
'settings.orbit.gateTitle': "도구를 연결해 Orbit을 시작하세요",
|
||
'settings.orbit.gateBody': "Orbit은 커넥터 활동을 요약합니다. 아직 연결된 것이 없어요 — Orbit이 보고할 수 있도록 최소 하나의 통합을 추가하세요.",
|
||
'settings.orbit.gateBodyNoKey': "Orbit은 커넥터 활동을 요약하며, 커넥터는 Composio를 통해 동작합니다. 커넥터 화면에서 Composio API 키를 추가해 카탈로그를 열고 첫 번째 통합을 선택하세요.",
|
||
'settings.orbit.gateAction': "커넥터 열기",
|
||
'settings.orbit.gateActionNoKey': "Composio 설정",
|
||
'settings.orbit.gateLoading': "커넥터 확인 중…",
|
||
'settings.orbit.controlsLockedBadge': "잠김",
|
||
'settings.orbit.controlsLockedHint': "도구를 연결하면 Orbit의 일정과 템플릿 설정이 잠금 해제됩니다.",
|
||
'settings.orbit.artifactKickerLive': 'live artifact',
|
||
'settings.orbit.artifactKickerLegacy': '레거시 요약',
|
||
'settings.orbit.artifactTitle': '일일 Orbit 활동 요약',
|
||
'settings.orbit.artifactMetaLive': '커넥터 활동에서 생성된 새로고침 가능한 HTML artifact입니다.',
|
||
'settings.orbit.artifactMetaLegacy': 'live artifact 지원이 활성화되기 전에 생성됨 — 게시하려면 Orbit을 다시 실행하세요.',
|
||
'settings.orbit.copyMarkdownTitle': 'Markdown 요약을 클립보드에 복사',
|
||
'settings.orbit.copied': '복사됨',
|
||
'settings.orbit.copy': '복사',
|
||
'settings.orbit.openArtifact': 'artifact 열기',
|
||
'settings.orbit.sourceMarkdown': '소스 Markdown',
|
||
'liveArtifact.viewer.tabPreview': '미리보기',
|
||
'liveArtifact.viewer.tabCode': '코드',
|
||
'liveArtifact.viewer.tabData': '데이터',
|
||
'liveArtifact.viewer.tabRefreshHistory': '새로고침 기록',
|
||
'liveArtifact.viewer.dataEmpty': '사용 가능한 data.json 캐시가 없습니다.',
|
||
'liveArtifact.viewer.code.templateHeading': '템플릿 HTML',
|
||
'liveArtifact.viewer.code.renderedHeading': '렌더링된 HTML',
|
||
'liveArtifact.viewer.code.templateHelp': 'data.json과 함께 미리보기를 생성하는 데 사용되는 편집 가능한 템플릿입니다.',
|
||
'liveArtifact.viewer.code.renderedHelp': '미리보기가 현재 로드한 생성된 index.html입니다.',
|
||
'liveArtifact.viewer.code.variantAria': '코드 변형',
|
||
'liveArtifact.viewer.code.variantTemplate': '템플릿',
|
||
'liveArtifact.viewer.code.variantRendered': '렌더링됨',
|
||
'liveArtifact.viewer.code.loading': '코드 로드 중…',
|
||
'liveArtifact.viewer.code.unavailable': '아직 코드를 사용할 수 없습니다.',
|
||
'liveArtifact.viewer.code.empty': '이 코드 파일은 비어 있습니다.',
|
||
// Diagnostics export
|
||
'diagnostics.exportTitle': '진단 정보 내보내기',
|
||
'diagnostics.exportButton': '진단 정보 내보내기',
|
||
'diagnostics.exportHint': '최근 앱 로그와 기기 정보를 zip으로 묶어 팀에 공유할 수 있게 만듭니다.',
|
||
'diagnostics.exporting': '내보내는 중…',
|
||
'diagnostics.exportSuccess': '진단 정보를 {path}에 저장했습니다',
|
||
'diagnostics.exportFailed': '진단 정보 내보내기 실패: {message}',
|
||
'generationPreview.title': '생성 중…',
|
||
'generationPreview.failedTitle': '생성 실패',
|
||
'generationPreview.failedFallback': '문제가 발생했습니다. 다시 시도해 주세요.',
|
||
'generationPreview.footnote': '보통 2~5분 정도 걸립니다',
|
||
'generationPreview.stepUnderstand': '요구사항 이해 중',
|
||
'generationPreview.stepGenerate': '페이지 생성 중',
|
||
'generationPreview.stepPrepare': '미리보기 준비 중',
|
||
'generationPreview.elapsed': '경과 {elapsed}',
|
||
'generationPreview.estimate': '보통 2~5분',
|
||
'generationPreview.progressAria': '생성 진행률: {percent}%',
|
||
'generationPreview.retry': '다시 시도',
|
||
'generationPreview.awaitingTitle': '입력을 기다리는 중',
|
||
'generationPreview.awaitingLead': '왼쪽 채팅에서 몇 가지 질문에 답하면 계속됩니다.',
|
||
'generationPreview.stoppedTitle': '생성이 일시중지됨',
|
||
'generationPreview.stoppedLead': '왼쪽 채팅에서 남은 단계를 다시 시작할 수 있습니다.',
|
||
};
|