const messages = { home: { settingsTitle: "설정", settingsDescription: "언어 및 에이전트 환경설정", title: "앱이 실행 중입니다", intro: "다음을 편집하여 시작하세요", actionCardTitle: "액션 기반 데이터", loadingAction: "액션 결과 로드 중...", docsTitle: "문서", docsDescription: "프레임워크 알아보기", themeTitle: "테마", themeDescription: "다크 / 라이트 전환", }, settings: { title: "설정", description: "이 앱의 언어 및 워크스페이스 환경설정입니다.", languageTitle: "언어", languageDescription: "인터페이스 언어를 선택하세요. 이 기본 설정은 계정에 저장됩니다.", languageLabel: "인터페이스 언어", agentTitle: "에이전트 설정", agentDescription: "오른쪽 사이드바의 에이전트 설정을 열어 모델, API 키, 자동화, 음성 및 기타 제어를 관리합니다.", openAgentSettings: "에이전트 설정 열기", workspaceTitle: "워크스페이스", workspaceDescription: "팀 액세스 및 공유 작업 공간 리소스를 관리합니다.", openTeamSettings: "팀 설정 열기", openResourceSettings: "리소스 설정 열기", backHome: "홈으로 돌아가기", }, dispatch: { nav: { chat: "채팅", overview: "개요", apps: "Apps", metrics: "지표", vault: "Vault", integrations: "통합", agents: "Agents", resources: "Resources", messaging: "Messaging", destinations: "Destinations", identities: "Identities", approvals: "승인", automations: "자동화", delivery: "전달", audit: "Audit", dreams: "Dreams", threadDebug: "스레드 디버그", settings: "설정", team: "팀", operations: "Operations", navigation: "탐색", navigationDescription: "작업공간 탐색 링크", }, sidebar: { workspaceControlPlane: "작업공간 제어 영역", workspaceSubtitle_other: "Workspace · {{count}} apps", chats: "채팅", newChat: "새 채팅", newDispatchChat: "새로운 Dispatch 채팅", renameChat: "채팅 이름 변경", renameThread: "Rename {{title}}", chatOptions: "Chat options for {{title}}", aboutPage: "About {{title}}", emptyAgentText: "앱을 만들고, Vault 키를 관리하고, 작업 공간 전체에서 작업을 라우팅하세요.", suggestionBuildApp: "X용 작업 공간 앱 빌드", suggestionRouteSlack: "Slack 멘션을 내 분석 앱으로 라우팅", suggestionGrantKey: "이 앱에 내 OpenAI 키를 부여하세요.", }, pages: { appsDescription: "작업 공간 앱을 열고 Dispatch에서 새 앱 생성을 시작하세요.", appsDescriptionWithWorkspace: 'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.', appsInWorkspace: "Apps in {{workspace}}", workspaceApps: "작업 공간 앱", otherApps: "기타 앱", otherAppsDescription: "사용할 수 있는 다른 앱을 엽니다.", availableCount: "{{count}}개 사용 가능", activeCount: "{{count}} active", hiddenCount: "{{count}} hidden", createApp: "앱 만들기", templates: "템플릿", checkingTemplates: "사용 가능한 템플릿 확인 중", templatesAvailable: "{{count}} available to scaffold", curatedTemplates: "엄선된 템플릿", curatedTemplatesDescription: "검토된 앱 구조에서 시작해 나만의 앱으로 만들어 보세요.", remix: "템플릿에서 만들기", remixTemplate: "{{name}} 앱 만들기", remixAppIdLabel: "새 앱 ID", remixStarted: "{{name}} 생성을 시작했습니다", viewLiveApp: "라이브 앱 보기", alreadyInWorkspace: "워크스페이스에 이미 있음", remixAppIdDescription: "새 워크스페이스 앱의 URL 안전 ID를 선택하세요.", integrationSetup: "연동 설정", source: "소스", remixing: "앱 만드는 중…", remixSuccess: "템플릿에서 앱 만들기를 시작했습니다.", remixError: "이 템플릿에서 앱을 만들 수 없습니다", appIdRequired: "앱 ID가 필요합니다.", hide: "숨기기", show: "Show", hiddenApps: "숨겨진 앱", hiddenAppCount: "{{count}} hidden apps", workspaceAppFallback: "작업 공간 앱", workspaceAppDescription: "배포된 앱을 열거나 생성 중인 앱의 상태를 확인하세요.", pageNotFound: "페이지를 찾을 수 없음", pageNotFoundDescription: "이 경로는 아직 Workspace 앱 목록에 없습니다.", browseApps: "앱 찾아보기", newApp: "새로운 앱", newAppDescription: "프롬프트에서 Workspace 앱을 생성하고 Workspace Vault 정책을 적용합니다.", destinationsDescription: "아웃바운드 Slack 채널, Telegram 채팅 및 스레드 대상이 저장되었습니다.", savedDestinations: "저장된 목적지", addDestination: "목적지 추가", quickTestMessage: "빠른 테스트 메시지", send: "보내기", delete: "삭제", cancel: "취소", messageSent: "메시지가 전송되었습니다", unableToSendMessage: "메시지를 보낼 수 없습니다", destinationSaved: "목적지가 저장되었습니다", destinationRemoved: "목적지가 삭제되었습니다.", deleteDestinationTitle: "목적지를 삭제하시겠습니까?", deleteDestinationDescription: '"{{name}}" will be removed. Any saved workflows or jobs that target this destination will start failing on the next send.', noDestinations: "아직 저장된 목적지가 없습니다. 오른쪽에 첫 번째 Slack 채널 또는 Telegram 채팅을 추가하세요.", dailyDigestChannel: "일일 다이제스트 채널", optionalThreadOrTopicId: "선택적 스레드 또는 주제 ID", destinationNotes: "이 대상은 무엇을 사용해야 합니까?", saveDestination: "목적지 저장", noWorkspaceApps: "아직 Workspace 앱이 없습니다.", noWorkspaceAppsDescription: "워크플로에 집중된 위치가 필요할 때 앱을 만드세요.", appNotFound: "앱을 찾을 수 없습니다", building: "Building", appBuildingPrefix: "이 앱을 만드는 중입니다. 다음에서 이용 가능합니다.", appBuildingSuffix: "after its branch is merged and the workspace deploy finishes.", branch: "Branch: {{branch}}", openBuilderBranch: "빌더 브랜치 열기", openingApp: "Opening {{name}}", redirectingTo: "다음으로 리디렉션 중", openApp: "앱 열기", notDispatchOrWorkspaceApp: "이 작업 공간의 Dispatch 탭 또는 작업 공간 앱.", agentsDescription: "Dispatch는 기본적으로 A2A를 통해 내장 앱 제품군에 위임할 수 있습니다. 기본 제공 세트 외부의 앱으로 작업을 라우팅하려는 경우에만 여기에 추가 에이전트를 추가하세요.", mcpAccessUpdated: "MCP 앱 액세스가 업데이트되었습니다.", selectAppForMcp: "하나 이상의 앱을 선택하거나 모든 앱을 노출하세요.", mcpUrlCopied: "MCP URL 복사됨", mcpUrlCopyFailed: "MCP URL를 복사할 수 없습니다.", unifiedMcpGateway: "통합 MCP 게이트웨이", unifiedMcpGatewayDescription: "외부 에이전트를 Dispatch에 한 번 연결한 후 다음을 통해 부여된 작업 공간 앱으로 라우팅합니다.", allApps: "모든 앱", selectedApps: "선택된 앱", loading: "Loading", grantedCount: "{{count}} granted", exposeAllAppsMcp: "Dispatch MCP를 통해 모든 앱을 노출합니다.", copyUrl: "URL 복사", metricsUnavailable: "측정항목을 사용할 수 없습니다.", unableToLoadUsage: "사용량을 로드할 수 없습니다.", metricsDescriptionBuilder: "Workspace 전체 Builder.io 크레딧 지출, 채팅 양, 사용자 활동 및 앱 액세스.", metricsDescriptionLlm: "Workspace 전체 LLM 지출, 채팅 양, 사용자 활동 및 앱 액세스.", llmCalls: "LLM 통화", activeUsers: "활성 사용자", workspaceAppsStat: "작업 공간 앱", chatThreads: "채팅 스레드", also: "또한", workspaceShortcutsAria: "워크스페이스 바로가기", deliveryQueue: "전달 대기열", failedLastHour: "지난 1시간 동안 {{count}}건 실패", processingCount: "{{count}}건 처리 중", queued: "대기 중", active: "진행 중", done1h: "완료 1시간", failed1h: "실패 1시간", oldestQueued: "가장 오래된 대기: {{age}}", queueAgeNone: "없음", queueFailureHint: "자격 증명, 대상, 최근 대기열 오류를 확인하세요.", unknownPlatform: "알 수 없음", attemptsCount: "{{count}}회 시도", noErrorMessage: "(오류 메시지 없음)", }, }, agentPanel: { useBuilder: "빌더 사용", openDesktopToEditCode: "데스크톱을 열어 코드 편집", codeUnavailableDescription: "소스 코드 변경 및 CLI 액세스는 Agent Native 데스크톱 앱에서 사용할 수 있습니다.", downloadDesktop: "데스크탑 다운로드", chatMode: "채팅 모드", chat: "채팅", cliTerminalMode: "CLI 터미널 모드", cli: "CLI", workspaceMode: "파일, 에이전트, 기술 및 작업", workspace: "리소스", newChat: "새 채팅", newTerminal: "새로운 터미널", panelOptions: "상담원 패널 옵션", collapseSidebar: "사이드바 접기", hideChats: "채팅 숨기기", allChats: "모든 채팅", settings: "설정", feedback: "피드백", exitFullscreen: "전체 화면 종료", fullscreen: "Fullscreen", closeTab: "탭 닫기", closeOtherTabs: "다른 탭 닫기", closeAllTabs: "모든 탭 닫기", clearChat: "채팅 지우기", cliRequiresDevMode: "CLI에는 개발 모드가 필요합니다.", cliRequiresDevModeDescription: "pnpm dev를 사용하여 이 앱을 로컬에서 실행하거나 Builder.io를 사용하여 CLI 터미널에 액세스하세요.", toggleAgent: "에이전트 전환", }, share: { titleWithResource: 'Share "{{title}}"', titleWithType: "Share {{type}}", owner: "Owner: {{name}}", close: "닫기", shareOptions: "공유 옵션", link: "링크", invite: "Invite", embed: "Embed", done: "완료", generalAccess: "일반 액세스", shareLink: "링크 공유", addPeopleByEmail: "이메일로 사람 추가", notifyPeople: "사람들에게 알림", peopleWithAccess: "접근 권한이 있는 사람", ownerRole: "Owner", remove: "제거", noAccess: "아직 액세스할 수 있는 사람이 없습니다.", embedUrl: "URL 삽입", embedCode: "코드 삽입", copy: "복사", role: "Role", private: "비공개", privateDescription: "액세스 권한이 있는 사람만 볼 수 있습니다.", organization: "조직", organizationDescription: "조직의 모든 사용자가 볼 수 있습니다.", public: "Public", publicDescription: "링크로 로그인한 사람은 누구나 볼 수 있습니다.", viewer: "Viewer", viewerDescription: "볼 수 있음", editor: "Editor", editorDescription: "편집 가능", admin: "관리자", adminDescription: "액세스를 편집하고 관리할 수 있습니다.", }, runsTray: { runs: "실행", agentRuns: "에이전트 실행", activeRun_other: "{{count}} active runs", failedRun_other: "{{count}} failed runs", recentRuns: "최근 실행", noRecentRuns: "최근 실행 없음", ariaAgentRuns: "Agent runs, {{label}}", summaryRunning: "{{activeCount}} running", summaryRunningRecent: "{{activeCount}} running · {{terminalCount}} recent", summaryRecent_other: "{{count}} recent runs", noTrackedWorkYet: "아직 추적된 작업이 없습니다.", emptyDescription: "백그라운드 에이전트 작업이 실행되는 동안과 완료된 후에 여기에 표시됩니다.", open: "열기", stopRun: "Stop {{title}}", hideRun: "Hide {{title}}", statusRunning: "Running", statusDone: "완료", statusFailed: "실패", statusStopped: "Stopped", updatedJustNow: "방금 업데이트됨", finishedJustNow: "지금 막 끝났어요", updatedMinutes: "Updated {{count}}m ago", finishedMinutes: "Finished {{count}}m ago", updatedHours: "Updated {{count}}h ago", finishedHours: "Finished {{count}}h ago", updatedDate: "Updated {{date}}", finishedDate: "Finished {{date}}", }, codeRequired: { fallbackDetail: "로컬에서 편집하거나 Builder.io를 사용하여 클라우드에서 이 코드를 편집하고 원하는 방식으로 앱을 계속 사용자 정의하세요.", defaultFeature: "이 앱에 요청된 코드를 변경합니다.", branchError: "지점을 생성하지 못했습니다.", title: "코드 변경 필요", subtitleWithFeature: '"{{feature}}" creates or modifies source code, which needs Desktop or Builder from this surface.', subtitle: "이 작업은 이 표면의 Desktop 또는 Builder가 필요한 소스 코드를 생성하거나 수정합니다.", desktopTitle: "Agent Native 데스크탑 사용", desktopDescription: "소스 편집 및 CLI 액세스를 활성화하려면 데스크톱 앱에서 프로젝트를 엽니다.", builderAgentTitle: "Builder.io 에이전트 사용", builderAgentDescription: "클라우드 에이전트가 귀하를 대신해 변경해 드립니다. 미리 보고 배포할 수 있는 링크가 제공됩니다.", codeChangeTitle: "코드 변경이 필요합니다", codeChangeBadge: "코드 변경", connectBuilderTitle: "Builder.io 연결", connectBuilderDescription: "이 앱에서 클라우드 기반 코드 변경을 활성화하려면 빌더를 연결하세요.", setupRequired: "설정 필요", branchCreated: "지점이 생성되었습니다.", close: "닫기", }, extensions: { createPrompt: "Create an extension: {{prompt}}", createWidgetPrompt: 'Create a new widget that fits in slot "{{slotId}}". I\'ll describe what it should do next.', whatShouldItDo: "무엇을 해야 합니까?", createPlaceholder: "할 일 목록, API 대시보드, 계산기...", title: "확장", hiddenShown: "숨김 표시됨", showHidden: "숨김 항목 표시", newExtension: "새로운 확장", newExtensionTitle: "새로운 확장", buildPlaceholder: "무엇을 만들고 싶은지 설명하세요.", namePlaceholder: "내 확장 프로그램", descriptionPlaceholder: "이 확장 기능은 무엇을 합니까?", contentPlaceholder: "...", emptyTitle: "첫 번째 확장 만들기", emptyDescription: "작은 앱을 설명하면 에이전트가 이를 빌드합니다.", hiddenFromEveryone: "모든 사람에게 숨겨짐", localFile: "로컬 파일", optionsFor: "Options for {{name}}", unhideEveryone: "모든 사람에게 숨기기 해제", hideEveryone: "모든 사람에게서 숨기기", localFileDescription: "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.", deleteQuestion: "{{name}}을(를) 보관할까요?", removeQuestion: "Remove {{name}}?", hideForYouDescription: "이렇게 하면 다른 사람을 위해 삭제하지 않고 확장 프로그램 목록에서 숨겨집니다.", removeEverywhereDescription: "이렇게 하면 공유된 모든 위치에서 해당 항목이 보관됩니다.", cancel: "취소", remove: "제거", removing: "삭제 중...", delete: "보관", deleting: "보관 중...", openFullView: "전체 보기 열기", removeFromWidgetArea: "이 위젯 영역에서 제거", deleteExtensionEllipsis: "확장 프로그램 보관...", removeFromMyListEllipsis: "내 목록에서 제거...", removeFromWidgetAreaForMe: "Remove from this widget area (for me)", deleteEverywhereConfirmation: "이렇게 하면 확장 프로그램을 공유하는 모든 사람의 모든 위치에서 확장 프로그램이 보관됩니다.", addWidget: "위젯 추가", loading: "로드 중...", noWidgetsAvailable: "이 슬롯에는 아직 사용할 수 있는 위젯이 없습니다.", buildNewWidget: "새 위젯 빌드", contactSidebarWidget: "연락처 사이드바 위젯", contactSidebarDescription: "연락처 및 스레드 컨텍스트가 포함된 현재 대화 옆에 표시됩니다.", eventDetailWidget: "일정 상세 위젯", eventDetailDescription: "열린 캘린더 일정 아래에 일정 및 참석자 컨텍스트와 함께 표시됩니다.", addWidgetHere: "여기에 위젯 추가", back: "뒤로", editExtension: "확장 편집", saving: "저장 중...", save: "저장", create: "생성", moreOptions: "추가 옵션", appearsIn: "다음에 나타납니다", noWidgetAreas: "어떤 위젯 영역에도 설치되지 않았습니다. 상담원에게 어딘가에 추가해 달라고 요청하세요.", widgetAreaCount_other: "This extension can render in {{count}} widget areas.", nameLabel: "이름", descriptionLabel: "설명", contentLabel: "콘텐츠", previewTitle: "확장 프로그램 미리보기", previewEmpty: "미리보기가 여기에 표시됩니다.", loadError: "확장 프로그램을 불러올 수 없습니다.", widgetsLoadError: "위젯을 불러올 수 없습니다.", widgetAreasLoadError: "위젯 영역을 불러올 수 없습니다.", historyLoadError: "확장 프로그램 기록을 불러올 수 없습니다.", versionLoadError: "이 확장 프로그램 버전을 불러올 수 없습니다.", retry: "다시 시도", }, org: { createTitle: "조직 만들기", createDescription: "이 앱은 콘텐츠를 팀별로 정리합니다. 계속하려면 조직을 만드세요. 나중에 팀원을 초대할 수 있습니다.", loadErrorTitle: "조직을 로드할 수 없습니다.", loadErrorFallback: "조직을 로드할 수 없습니다.", tryAgain: "다시 시도", yourOrganization: "귀하의 조직", joinYourTeam: "팀에 합류하세요", openToDomainEmails: "Open to @{{domain}} emails", joinOrg: "Join {{name}}", pendingInvitations: "대기 중인 초대", invitedBy: "from {{name}}", accept: "Accept", createSeparate: "or create a separate organization", organizationName: "조직 이름", organizationPlaceholder: "Acme 주식회사", createOrganization: "조직 만들기", create: "생성", creating: "만드는 중...", team: "팀", createOrgCardTitle: "조직 만들기", createOrgCardDescription: "Set up a team to collaborate with your colleagues.", joinDomainOne: "귀하의 이메일 도메인과 일치하는 조직이 이미 존재합니다. 참여하여 팀원과 협력하세요.", joinDomainMany: "귀하의 이메일 도메인과 일치하는 조직이 이미 존재합니다. 하나에 가입하여 팀원과 협력하세요.", join: "Join", invitedByLabel: "Invited by {{name}}", you: "You", owner: "소유자", admin: "관리자", member: "Member", members: "Members", inviteMembers: "구성원 초대", invited: "초대됨", role: "역할", status: "상태", actions: "작업", noMembers: "아직 구성원이 없습니다.", memberCount_other: "{{count}} members", youAreRole: "You are {{role}}", changeRole: "역할 변경", removeMember: "회원 삭제", cancel: "취소", remove: "제거", save: "저장", loading: "로드 중...", dangerZone: "위험 구역", deleteOrg: "조직 삭제", deleteOrgDescription: "이 조직과 구성원, 대기 중인 초대를 영구적으로 삭제합니다. 조직이 소유한 데이터에 더 이상 액세스할 수 없습니다. 이 작업은 되돌릴 수 없습니다.", deleteOrgConfirmPrompt: "확인하려면 {{name}}을(를) 입력하세요.", deleteOrgConfirmPlaceholder: "조직 이름", deleteOrgConfirmCta: "조직 삭제", deleteOrgPending: "삭제 중...", }, integrations: { webhookUrl: "웹훅 URL", copyWebhookUrl: "웹훅 URL 복사", notConfigured: "Not configured. Set the required secrets to enable this integration.", enable: "Enable", disable: "Disable", toggling: "...", networkError: "서버에 도달하는 네트워크 오류", back: "뒤로", agentEngineRequired: "에이전트 엔진 필요", agentEngineDescription: "Connect Builder.io or an LLM key before {{platform}} can answer.", openLlm: "LLM 열기", setup: "Setup", shareDocumentsWith: "다음과 문서 공유", copyServiceAccountEmail: "서비스 계정 이메일 복사", requiredSecrets: "필수 비밀", envHelp: "Set these in your .env file or environment to connect.", copy: "복사", documentation: "문서", clientAvailable: "이 에이전트의 A2A 엔드포인트는 자동으로 사용 가능해집니다. 구성이 필요하지 않습니다.", addChatIntegration: "채팅 통합 추가", chatIntegrations: "채팅 통합", chatIntegrationsDescription: "다른 플랫폼에서 이 에이전트와 대화하세요", addIntegration: "통합 추가", dispatchEntrypoint: "여러 앱 간에 작업을 라우팅할 수 있는 중앙 Slack 또는 Telegram 진입점의 경우", sharedMessaging: "Need one shared messaging surface for your workspace? Connect Slack or Telegram to a dispatch app and let it delegate to other agents over A2A.", }, observability: { noData: "사용 가능한 데이터가 없습니다", noConversations: "아직 녹음된 대화가 없습니다.", noEvals: "아직 기록된 평가 결과가 없습니다.", noExperiments: "아직 생성된 실험이 없습니다.", totalRuns: "총 실행", totalCost: "총 비용", avgLatency: "평균 대기 시간", toolSuccess: "도구 성공", thumbsUp: "엄지손가락", avgEvalScore: "평균 평가 점수", run: "Run", model: "모델", duration: "Duration", cost: "Cost", tools: "도구", time: "Time", failedCount: "({{count}} failed)", backToList: "목록으로 돌아가기", spans: "Spans", type: "유형", name: "이름", tokens: "Tokens", status: "상태", totalEvals: "총 평가", avgScore: "평균 점수", scoresByCriteria: "기준별 점수", overview: "개요", conversations: "Conversations", evals: "평가", experiments: "실험", feedback: "피드백", variants: "Variants", created: "Created", backToExperiments: "실험으로 돌아가기", metrics: "지표", level: "Level", results: "결과", variant: "Variant", metric: "Metric", value: "Value", totalFeedback: "총 피드백", thumbsDown: "싫어요", frustration: "Frustration", thumbsUpRate: "좋아요 비율", categories: "카테고리", }, error: { genericTitle: "문제가 발생했습니다", genericDetails: "예상치 못한 오류가 발생했습니다.", notFoundTitle: "페이지를 찾을 수 없음", notFoundDetails: "이 페이지는 존재하지 않습니다. 이동되었거나 삭제되었을 수 있습니다.", statusTitle: "{{status}} 오류", goHome: "홈으로 이동", }, }; export default messages;