mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-30 07:10:49 +02:00
* feat(views): transcript reading hierarchy — presenter, expand modes, log-scale markdown The transcript rendered all five event kinds as identical truncated one-liners: agent replies and errors were clipped to half a sentence and only readable through an 11px bordered scroll box, indistinguishable in weight from dozens of tool rows. - trace-event-presenter.ts: pure presentation rules — kind, verbatim tool labels, newline-free one-line summaries, shell-wrapper stripping for command summaries, and per-kind default expansion. - Smart reading hierarchy: agent text renders in place through RichContent (compact density + transcript-prose log scale: headings demoted to body size, 12.5px/11px two-step type ramp) and errors read unboxed; thinking and tool rows stay folded to one line. - Expand mode menu replaces the expand-visible toggle: a persisted three-way preference (smart / expand all / collapse all) with per-item descriptions; row-level toggles override it until the mode changes. transcript-view-store migrates the legacy defaultExpanded boolean. - Tool params/output expand into a quiet borderless surface; long content fades behind "Show all" instead of a nested scrollbar. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor(views): transcript header — status-first identity row, facts as typography, list toolbar The header mixed five different natures in one visual container: status pill, attribution badge, nine equal-weight metadata chips (including truncated agent-description prose and a hostname), and the list controls — everything a rounded bordered capsule, so information and controls were indistinguishable and wrapped into a ragged 2-3 lines. Restructure into three fixed-purpose rows: - Identity: status pill anchors the left edge (the fact every viewer opens the dialog for), then the agent through its existing avatar component (hover card for details; fixes the empty-name case via agentInfo fallback) and a new borderless `inline` AttributionBadge variant. Close stays at the right. - Facts: one dot-separated plain-text line — provider, runtime mode (hostname in hover title), duration, counts, timestamp; the workdir path collapses into a copy icon with the path as tooltip. The agent-description chip is gone (it lives in the avatar hover card). - List toolbar: expand mode / sort / filter / copy move to their own row attached to the list they operate. Only controls keep borders; only status keeps color; entities render through their identity components; facts are typography. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor(views): transcript header — two-tier by necessity (ⓘ popover), trigger source, full status machine Following PR #5747's design lesson: split header metadata by whether a viewer needs it BEFORE reading. The flat facts line put diagnostics (provider, runtime hostname, mode, workdir, timestamps) on the always-visible surface with equal weight. - Identity row (tier 1): status · agent · trigger source · attribution. Trigger source ("Initial run" / "From a comment" / "Retry" / ...) answers "why does this run exist" — restored from #5747, was dropped. - Status badge now covers the full state machine (queued / dispatched / cancelled / waiting), not just running/completed/failed. - ⓘ Run-details popover (tier 2): runtime, provider, mode, workdir (copyable), created/started/completed — off the default surface. - Toolbar left carries duration + event/tool counts (a read-before-you- read summary), so the control row balances instead of stranding the controls at the right with empty left space. Persisted preferences (sort, filter selection, preserve-filters, expand density) are untouched — same controls, same behavior. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(views): transcript summary/controls — JSON preview, unify sort button, attribution to ⓘ - Tool-result summary took the first non-empty line, so pretty-printed JSON previewed as a lone "[" or "{". Collapse whitespace instead so it reads "[ { "id": ... } ]". - Sort was a segmented tab strip, reading as a different control family. Make it a single two-state toggle button on the shared toolbar chassis (shows current direction, flips on click) — every toolbar control now shares one chassis with a type-appropriate affordance (toggle / menu / action), not one forced shape. - Attribution left the identity row. The accountable human is audit metadata, not read-time context, and "on behalf of" misread the direction; the trigger *mechanism* stays on the identity row, the *person* moves to the ⓘ popover as "Triggered by". - Drop the tool-call count from the toolbar: redundant with the event count and informs no reading decision. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor(views): transcript toolbar uses the shared Button component + labels fix Toolbar controls were hand-rolled <button>s, so they never got the project's built-in aria-expanded active state — opening a menu left the trigger looking idle. Route every control through the shared Button: - Density / filter / ⓘ / close → Button variant="ghost" via the trigger render prop, so an open menu shows the muted active background for free. - Active filter → Button variant="brand" (the design-system ON state), replacing the ad-hoc blue classes. - Sort → ghost Button on the same chassis (was a segmented tab strip). - Copy → ghost Button. Wording: - Sort reads "Oldest first" / "Newest first" (was the ambiguous "chronological / time order"). - Expand-mode "Smart" → "Focus" — names the result, not a hollow adjective. Start/created/completed timestamps remain in the ⓘ Run-details popover. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor(views): filters always persist, drop "on behalf of" wording, surface run time Three follow-ups from review: - Remove the "Preserve filters" toggle. Persisting the filter selection is the only sensible behavior (a facet a run lacks already no-ops), so it should not be a user-facing switch. Filters now always persist; drop preserveFilters + the session-vs-persisted branching from the store and dialog. - Inline attribution showed "on behalf of <name>", which read backwards and doubled up under the ⓘ "Triggered by" label. Render just the avatar + name; the source stays in the tooltip. - Surface the run time (started ?? created) on the toolbar left next to duration and event count — "when did this happen" is read-before-you- read context. Full-precision timestamps remain in the ⓘ popover. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor(views): triggered-by back on the identity row, labeled toolbar facts - The accountable human returns to the identity row next to the trigger mechanism (status · agent · trigger · person), where it's visible rather than buried in the ⓘ popover. - Toolbar facts now carry explicit labels — "Created <time> · Took <duration> · N events" — instead of bare values the reader had to infer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(views): transcript identity row reads as one sentence, not three peers The row put the agent, the trigger word, and the person at near-equal weight with two same-size avatars, so it read as a jumble of names with "comment-triggered" floating between them. - The agent is the sole primary identity (avatar + medium weight). - Trigger + person collapse into one muted secondary unit set apart from the agent, ordered "<person> · <how>". - Drop the person's avatar here (new AttributionBadge `hideAvatar`) so two same-size faces don't read as two agents; the name alone, being muted, can't be confused with the agent. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(views): copy-all exports full event bodies, not truncated summaries handleCopyAll built its text from traceEventSummary — the one-line, whitespace-collapsed, 200-char row preview — so every copied tool output and agent reply was truncated with "...". Add traceEventCopyText, which returns the complete body (full tool input JSON / result output / prose), redact it like the detail view, and join events with blank lines. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore(views): remove orphaned tool_calls i18n keys, fix inline-variant JSDoc Review follow-ups (no behavior change): - Delete tool_calls_one/tool_calls_other from all four locales — the metadata chip that used them was removed earlier in this branch. - Correct the AttributionBadge inline-variant JSDoc: it renders the bare name (no "on behalf of" wrapper), matching the implementation and test. - en events_one grammar: "1 event" not "1 events". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(views): fold copy timestamps into full-body copy (merge #5873) Reconcile #5873's "timestamps in copied events" (merged to main) with this branch's full-body copy rewrite: traceEventCopyText now prefixes each line with the RFC 3339 timestamp when created_at is valid, on top of the complete (untruncated) body, events separated by a blank line. The two #5873 copy tests are updated to the full-body format; the orphaned formatEventForClipboard helper is removed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
831 lines
44 KiB
JSON
831 lines
44 KiB
JSON
{
|
|
"page": {
|
|
"title": "에이전트",
|
|
"tagline": "이슈를 맡고, 댓글을 남기고, 상태를 업데이트하는 AI 팀원입니다.",
|
|
"learn_more": "자세히 보기 →",
|
|
"new_agent": "새 에이전트",
|
|
"search_placeholder": "에이전트 검색...",
|
|
"show_archived": "보관된 에이전트 보기 ({{count}}) →",
|
|
"of_total": "{{total}}개 중 {{visible}}개",
|
|
"list_load_failed": "에이전트 목록을 불러오지 못했습니다",
|
|
"list_load_failed_default": "에이전트 목록을 가져오는 중 문제가 발생했습니다.",
|
|
"try_again": "다시 시도"
|
|
},
|
|
"scope": {
|
|
"mine": "내 것",
|
|
"all": "전체",
|
|
"archived": "보관됨"
|
|
},
|
|
"sort": {
|
|
"label_recent": "최근 활동",
|
|
"label_name": "이름",
|
|
"label_runs": "실행 많은 순",
|
|
"label_created": "최근 생성"
|
|
},
|
|
"availability": {
|
|
"all": "전체",
|
|
"online": "온라인",
|
|
"unstable": "불안정",
|
|
"offline": "오프라인",
|
|
"archived": "보관됨"
|
|
},
|
|
"workload": {
|
|
"working": "작업 중",
|
|
"queued": "대기 중",
|
|
"idle": "유휴"
|
|
},
|
|
"archived": {
|
|
"active_link": "활성 에이전트",
|
|
"title": "보관된 에이전트"
|
|
},
|
|
"empty": {
|
|
"title": "아직 에이전트가 없습니다",
|
|
"description": "팀원에게 하듯 에이전트를 만들고 이슈를 할당하세요. 로컬 에이전트는 내 기기에서, 클라우드 에이전트는 Multica 런타임에서 실행됩니다."
|
|
},
|
|
"no_matches": {
|
|
"title": "일치하는 결과 없음",
|
|
"search_archived": "\"{{query}}\"와 일치하는 보관된 에이전트가 없습니다.",
|
|
"no_archived": "아직 보관된 에이전트가 없습니다.",
|
|
"search_active": "\"{{query}}\"와 일치하는 에이전트가 없습니다.",
|
|
"search_active_filtered": "이 필터에서 \"{{query}}\"와 일치하는 에이전트가 없습니다.",
|
|
"no_filter_match": "이 필터와 일치하는 에이전트가 없습니다.",
|
|
"search_runtime_filtered": "\"{{machine}}\"에서 \"{{query}}\"와 일치하는 에이전트가 없습니다.",
|
|
"runtime_filtered": "\"{{machine}}\"에 에이전트가 없습니다."
|
|
},
|
|
"runtime_filter": {
|
|
"all": "모든 런타임",
|
|
"section_local": "로컬",
|
|
"section_remote": "원격",
|
|
"section_cloud": "클라우드",
|
|
"agent_count_other": "에이전트 {{count}}개",
|
|
"empty": "아직 기기가 없습니다"
|
|
},
|
|
"columns": {
|
|
"agent": "에이전트",
|
|
"status": "상태",
|
|
"workload": "작업량",
|
|
"runtime": "런타임",
|
|
"activity_7d": "활동(7일)",
|
|
"runs": "실행",
|
|
"last_active": "최근 활동",
|
|
"model": "모델",
|
|
"created": "생성일",
|
|
"owner": "소유자",
|
|
"access": "액세스"
|
|
},
|
|
"row": {
|
|
"you": "나",
|
|
"archived": "보관됨",
|
|
"no_description": "설명 없음",
|
|
"fallback_runtime_cloud": "클라우드",
|
|
"fallback_runtime_local": "로컬",
|
|
"actions_aria": "행 작업",
|
|
"task_count_other": "태스크 {{count}}개"
|
|
},
|
|
"activity_tooltip": {
|
|
"created_today": "오늘 생성됨",
|
|
"created_days_ago_other": "{{count}}일 전에 생성됨",
|
|
"last_7_days": "최근 7일",
|
|
"no_activity": "활동 없음",
|
|
"runs_other": "실행 {{count}}회",
|
|
"failed_suffix": " · 실패 {{count}}회({{percent}}%)"
|
|
},
|
|
"row_actions": {
|
|
"cancel_all_tasks": "모든 작업 취소",
|
|
"duplicate": "복제",
|
|
"restore": "복원",
|
|
"archive": "보관",
|
|
"set_access": "접근 범위 설정",
|
|
"set_access_dialog_title": "접근 범위 설정",
|
|
"set_access_applies_to": "{{count}}개 agent에 적용됩니다.",
|
|
"set_access_skipped": "{{count}}개 건너뜀(본인 소유 아님).",
|
|
"set_access_dialog_confirm": "적용",
|
|
"set_access_bulk_partial": "{{succeeded}}개 적용, {{failed}}개 실패(현재 상태 유지).",
|
|
"agent_archived_toast": "에이전트를 보관했습니다",
|
|
"archive_failed_toast": "에이전트를 보관하지 못했습니다",
|
|
"agent_restored_toast": "에이전트를 복원했습니다",
|
|
"restore_failed_toast": "에이전트를 복원하지 못했습니다",
|
|
"no_tasks_to_cancel_toast": "취소할 활성 작업이 없습니다",
|
|
"cancelled_tasks_toast_other": "작업 {{count}}개를 취소했습니다",
|
|
"cancel_failed_toast": "작업을 취소하지 못했습니다",
|
|
"cancel_dialog_title": "\"{{name}}\"의 모든 작업을 취소할까요?",
|
|
"cancel_dialog_no_tasks": "취소할 활성 작업이 없습니다.",
|
|
"cancel_dialog_running_other": "실행 중 {{count}}개",
|
|
"cancel_dialog_queued_other": "대기 중 {{count}}개",
|
|
"cancel_dialog_impact_other": "{{summary}} 작업이 취소됩니다.",
|
|
"cancel_dialog_running_note": " 실행 중인 작업이 완전히 멈추기까지 최대 5초가 걸릴 수 있습니다.",
|
|
"cancel_dialog_irreversible": " 취소한 작업은 재개할 수 없습니다.",
|
|
"cancel_dialog_keep": "계속 실행",
|
|
"cancel_dialog_confirm": "모든 작업 취소",
|
|
"archive_dialog_title": "\"{{name}}\"을(를) 보관할까요?",
|
|
"archive_dialog_description": "이 에이전트는 할당하거나 멘션할 수 없고, 활성 작업은 모두 취소됩니다. 기록은 유지되며 나중에 복원할 수 있습니다.",
|
|
"archive_dialog_cancel": "취소",
|
|
"archive_dialog_confirm": "보관"
|
|
},
|
|
"detail": {
|
|
"back_to_agents": "에이전트",
|
|
"back_to_agents_full": "에이전트로 돌아가기",
|
|
"not_found_title": "에이전트를 찾을 수 없습니다",
|
|
"not_found_default": "이 에이전트가 보관되었거나 삭제되었을 수 있습니다.",
|
|
"no_access_title": "이 에이전트에 접근할 수 없습니다",
|
|
"no_access_hint": "비공개 에이전트는 에이전트 소유자 또는 워크스페이스 관리자만 볼 수 있습니다.",
|
|
"try_again": "다시 시도",
|
|
"archived_banner": "보관된 에이전트입니다. 할당하거나 멘션할 수 없습니다.",
|
|
"restore": "복원",
|
|
"archive_dialog_title": "에이전트를 보관할까요?",
|
|
"archive_dialog_description": "\"{{name}}\"이(가) 보관됩니다. 할당하거나 멘션할 수 없지만 기록은 유지됩니다. 나중에 복원할 수 있습니다.",
|
|
"archive_dialog_cancel": "취소",
|
|
"archive_dialog_confirm": "보관",
|
|
"more_archive": "에이전트 보관",
|
|
"agent_updated_toast": "에이전트를 업데이트했습니다",
|
|
"update_failed_toast": "에이전트를 업데이트하지 못했습니다",
|
|
"agent_archived_toast": "에이전트를 보관했습니다",
|
|
"archive_failed_toast": "에이전트를 보관하지 못했습니다",
|
|
"agent_restored_toast": "에이전트를 복원했습니다",
|
|
"restore_failed_toast": "에이전트를 복원하지 못했습니다",
|
|
"dm": "DM",
|
|
"dm_no_permission_toast": "이 에이전트와 채팅할 권한이 없습니다.",
|
|
"assign_work": "작업 할당",
|
|
"more_actions_aria": "에이전트 작업",
|
|
"updated": "{{when}} 업데이트됨"
|
|
},
|
|
"inspector": {
|
|
"section_profile": "프로필",
|
|
"section_profile_hint": "워크스페이스에서 이 에이전트가 표시되는 방식을 관리합니다.",
|
|
"section_execution": "실행 설정",
|
|
"section_execution_hint": "런타임, 모델, 추론 수준, 속도와 병렬 작업 한도를 설정합니다.",
|
|
"section_access": "접근 권한",
|
|
"section_access_hint": "이 에이전트와 연결된 기능을 사용할 수 있는 대상을 관리합니다.",
|
|
"section_properties": "속성",
|
|
"section_details": "세부 정보",
|
|
"section_details_hint": "소유권과 수명 주기에 대한 읽기 전용 정보입니다.",
|
|
"section_skills": "스킬",
|
|
"section_integrations": "연동",
|
|
"prop_runtime": "런타임",
|
|
"prop_model": "모델",
|
|
"prop_thinking": "추론",
|
|
"prop_speed": "속도",
|
|
"prop_visibility": "공개 범위",
|
|
"prop_concurrency": "동시 실행",
|
|
"prop_owner": "소유자",
|
|
"prop_created": "생성일",
|
|
"prop_updated": "수정일",
|
|
"no_description_placeholder": "설명 없음",
|
|
"avatar_label": "아바타",
|
|
"avatar_hint": "할당, 활동 및 채팅에 표시됩니다.",
|
|
"name_label": "이름",
|
|
"description_label": "설명",
|
|
"labels_label": "레이블",
|
|
"labels_hint": "이 에이전트를 분류하는 워크스페이스 레이블입니다.",
|
|
"change_avatar_aria": "아바타 변경",
|
|
"avatar_updated_toast": "아바타를 업데이트했습니다",
|
|
"avatar_upload_failed_toast": "아바타를 업로드하지 못했습니다",
|
|
"rename_title": "에이전트 이름 변경",
|
|
"rename_placeholder": "에이전트 이름",
|
|
"rename_required": "이름은 필수입니다",
|
|
"edit_description_title": "설명 수정",
|
|
"description_placeholder": "이 에이전트는 무엇을 하나요?",
|
|
"save": "저장",
|
|
"cancel": "취소"
|
|
},
|
|
"overview": {
|
|
"agent_context": "에이전트",
|
|
"access": "접근 권한",
|
|
"attention_title": "확인이 필요한 task",
|
|
"attention_queued_other": "런타임을 사용할 수 없어 {{count}}개의 task가 대기 중입니다."
|
|
},
|
|
"skill_attach": {
|
|
"trigger_aria": "워크스페이스 스킬 연결",
|
|
"trigger_label": "연결"
|
|
},
|
|
"pickers": {
|
|
"concurrency_tooltip": "동시 실행 · 최대 {{value}}개 작업",
|
|
"concurrency_range": "최대 동시 작업 수({{min}}-{{max}})",
|
|
"runtime_none": "런타임 없음",
|
|
"runtime_tooltip": "런타임 · {{name}} · {{status}}",
|
|
"runtime_tooltip_none": "런타임 · 선택 안 됨",
|
|
"runtime_online": "온라인",
|
|
"runtime_offline": "오프라인",
|
|
"runtime_owned_by": "{{name}} 소유",
|
|
"runtime_empty": "런타임 없음",
|
|
"runtime_back_to_machines": "기기 목록으로 돌아가기",
|
|
"model_default": "기본값",
|
|
"model_tooltip": "모델 · {{value}}",
|
|
"model_managed_by_runtime": "런타임에서 관리",
|
|
"model_search_placeholder": "모델 ID 검색 또는 입력",
|
|
"model_discovering": "모델 찾는 중...",
|
|
"model_empty": "사용 가능한 모델이 없습니다",
|
|
"model_empty_with_dot": "사용 가능한 모델이 없습니다.",
|
|
"model_custom_tooltip": "\"{{value}}\"을(를) 사용자 지정 모델 ID로 사용",
|
|
"model_custom_use": "\"{{value}}\" 사용",
|
|
"model_clear": "지우기(제공자 기본값 사용)",
|
|
"model_clear_title": "선택을 지우고 런타임 제공자의 기본값으로 돌아갑니다",
|
|
"thinking_default": "CLI 설정 따르기",
|
|
"thinking_tooltip": "추론 · {{value}}",
|
|
"thinking_clear": "CLI 설정 따르기",
|
|
"thinking_clear_title": "재정의를 지우고 추론 수준을 로컬 CLI 설정(claude/codex)에 맡깁니다",
|
|
"service_tier_default": "런타임 기본값",
|
|
"service_tier_tooltip": "속도 · {{value}}",
|
|
"service_tier_clear": "런타임 기본값",
|
|
"service_tier_clear_title": "속도 재정의를 지우고 로컬 Codex 설정에 맡깁니다"
|
|
},
|
|
"model_dropdown": {
|
|
"label": "모델",
|
|
"select_runtime_first": "먼저 런타임을 선택하세요",
|
|
"default_provider": "기본값(제공자)",
|
|
"runtime_offline_manual": "런타임 오프라인 - 직접 입력",
|
|
"managed_by_runtime_title": "이 런타임에서 모델 선택을 관리합니다.",
|
|
"managed_by_runtime_hint": "런타임 호스트에서 모델을 설정하세요. 예: Hermes는 자체 설정 파일에서 읽습니다.",
|
|
"discovery_failed": "검색 실패",
|
|
"clear_full": "선택 지우기(제공자 기본값 사용)"
|
|
},
|
|
"tabs": {
|
|
"overview": "개요",
|
|
"work": "작업",
|
|
"capabilities": "기능",
|
|
"settings": "설정",
|
|
"general": "일반",
|
|
"access": "접근 권한",
|
|
"page_navigation_aria": "에이전트 페이지",
|
|
"section_navigation_aria": "에이전트 섹션",
|
|
"activity": "활동",
|
|
"tasks": "작업",
|
|
"instructions": "지침",
|
|
"skills": "스킬",
|
|
"environment": "환경",
|
|
"custom_args": "사용자 지정 인자",
|
|
"mcp_config": "MCP",
|
|
"composio_mcp": "MCP 앱",
|
|
"integrations": "연동",
|
|
"runtime_config": "라우팅",
|
|
"discard_dialog_title": "저장하지 않은 변경사항을 버릴까요?",
|
|
"discard_dialog_description": "이 탭에 저장하지 않은 변경사항이 있습니다. 지금 나가면 변경사항이 사라집니다.",
|
|
"discard_keep": "계속 편집",
|
|
"discard_confirm": "변경사항 버리기"
|
|
},
|
|
"create_dialog": {
|
|
"title_create": "에이전트 만들기",
|
|
"title_duplicate": "에이전트 복제",
|
|
"description_create": "워크스페이스에 새 AI 에이전트를 만듭니다.",
|
|
"description_duplicate": "\"{{name}}\"을(를) 바탕으로 새 에이전트를 만듭니다. 지침, 환경 변수, 스킬이 복사됩니다.",
|
|
"name_label": "이름",
|
|
"name_placeholder": "예: 심층 리서치 에이전트",
|
|
"description_label": "설명",
|
|
"description_placeholder": "이 에이전트는 무엇을 하나요?",
|
|
"visibility_label": "공개 범위",
|
|
"access": {
|
|
"label": "액세스",
|
|
"private_title": "비공개",
|
|
"private_desc": "본인만 이 에이전트를 실행할 수 있습니다",
|
|
"public_title": "공개",
|
|
"public_desc": "이 에이전트를 실행할 수 있는 사람을 선택하세요",
|
|
"public_workspace_option": "이 워크스페이스의 모든 사람",
|
|
"public_members_group": "특정 사용자",
|
|
"public_members_empty": "선택할 수 있는 워크스페이스 멤버가 없습니다",
|
|
"public_targets_empty_hint": "아래에서 최소 하나 이상을 선택하세요. 그렇지 않으면 에이전트는 비공개로 유지됩니다."
|
|
},
|
|
"runtime_label": "런타임",
|
|
"runtime_filter_mine": "내 것",
|
|
"runtime_filter_all": "전체",
|
|
"runtime_loading": "런타임 불러오는 중...",
|
|
"runtime_none": "사용 가능한 런타임이 없습니다",
|
|
"runtime_cloud_badge": "클라우드",
|
|
"runtime_private_badge": "비공개",
|
|
"runtime_private_locked_tooltip": "비공개 런타임입니다. 소유자 또는 워크스페이스 관리자만 이 런타임에 에이전트를 만들 수 있습니다. 공유하려면 소유자에게 공개로 전환해 달라고 요청하세요.",
|
|
"runtime_search_placeholder": "기기 검색…",
|
|
"runtime_no_results": "일치하는 기기가 없습니다",
|
|
"runtime_group_online": "{{online}}/{{total}} 온라인",
|
|
"duplicate_copy_suffix": " (사본)",
|
|
"create": "만들기",
|
|
"creating": "만드는 중...",
|
|
"cancel": "취소",
|
|
"create_failed_toast": "에이전트를 만들지 못했습니다",
|
|
"skill_attach_failed_toast": "에이전트는 만들었지만 스킬을 연결하지 못했습니다: {{error}}",
|
|
"squad_join_failed_toast": "에이전트 \"{{name}}\"은(는) 만들었지만 스쿼드에 참가하지 못했습니다: {{error}}. 멤버에서 직접 추가할 수 있습니다.",
|
|
"instructions": {
|
|
"label": "지침",
|
|
"placeholder_blank": "클릭해서 지침 작성...",
|
|
"placeholder_duplicate": "클릭해서 복제된 지침 보기 또는 수정",
|
|
"collapse": "접기",
|
|
"editor_placeholder": "이 에이전트가 무엇을 해야 하는지, 무엇에 집중해야 하는지, 무엇을 피해야 하는지 작성하세요..."
|
|
},
|
|
"skills_section": {
|
|
"label": "스킬",
|
|
"placeholder": "워크스페이스에서 스킬 추가",
|
|
"selected_other": "{{count}}개 선택됨 - 클릭해서 수정",
|
|
"collapse": "접기",
|
|
"list_empty_multi": "아직 이 워크스페이스에 스킬이 없습니다. 먼저 만들거나 가져오세요.",
|
|
"list_loading": "불러오는 중...",
|
|
"list_empty_default": "사용 가능한 스킬이 없습니다.",
|
|
"list_no_match": "일치하는 스킬이 없습니다.",
|
|
"search_placeholder": "스킬 검색..."
|
|
},
|
|
"avatar": {
|
|
"change_aria": "아바타 변경",
|
|
"upload_aria": "아바타 업로드",
|
|
"remove_aria": "아바타 제거",
|
|
"select_image_toast": "이미지 파일을 선택하세요.",
|
|
"upload_failed_toast": "아바타 업로드 실패"
|
|
}
|
|
},
|
|
"tab_body": {
|
|
"common": {
|
|
"save": "저장",
|
|
"add": "추가",
|
|
"unsaved_changes": "저장하지 않은 변경사항"
|
|
},
|
|
"instructions": {
|
|
"intro": "모든 작업에 사용할 System Prompt를 설정하세요. Markdown을 지원합니다.",
|
|
"system_prompt_label": "System Prompt",
|
|
"placeholder": "이 에이전트의 역할, 전문성, 작업 방식을 정의하세요.\n\n# 예시\n당신은 React와 TypeScript에 특화된 프런트엔드 엔지니어입니다.\n\n## 작업 방식\n- 작고 집중된 PR을 작성합니다. 논리적 변경 단위마다 커밋 하나를 사용합니다\n- 상속보다 조합을 선호합니다\n- 새 컴포넌트에는 항상 단위 테스트를 추가합니다\n\n## 제약\n- 명시적인 승인 없이 shared/ 타입을 수정하지 않습니다\n- features/의 기존 컴포넌트 패턴을 따릅니다"
|
|
},
|
|
"env": {
|
|
"intro_readonly": "에이전트 프로세스가 시작될 때 주입됩니다. 워크스페이스 소유자와 관리자만 값을 읽거나 수정할 수 있으며, 모든 공개와 수정은 워크스페이스 감사 로그에 기록됩니다.",
|
|
"empty_readonly": "설정된 환경 변수가 없습니다.",
|
|
"intro_prefix": "에이전트 프로세스가 시작될 때 주입됩니다(예: ",
|
|
"intro_separator": ", ",
|
|
"intro_suffix": ").",
|
|
"key_placeholder": "KEY",
|
|
"value_placeholder": "value",
|
|
"show_value_aria": "값 표시",
|
|
"hide_value_aria": "값 숨기기",
|
|
"remove_aria": "변수 제거",
|
|
"duplicate_keys_toast": "중복된 환경 변수 키가 있습니다",
|
|
"saved_toast": "환경 변수를 저장했습니다",
|
|
"save_failed_toast": "환경 변수를 저장하지 못했습니다",
|
|
"not_revealed_title_other": "변수 {{count}}개 설정됨",
|
|
"not_revealed_empty": "설정된 환경 변수가 없습니다.",
|
|
"not_revealed_hint": "값은 공개하기 전까지 마스킹됩니다. 모든 공개와 수정은 워크스페이스 감사 로그에 기록됩니다.",
|
|
"reveal_action": "공개하고 수정",
|
|
"revealing": "공개하는 중...",
|
|
"reveal_failed_toast": "환경 변수 값을 불러오지 못했습니다",
|
|
"empty_editable": "설정된 환경 변수가 없습니다. 시작 시 에이전트에 주입할 변수를 추가하세요."
|
|
},
|
|
"custom_args": {
|
|
"intro": "에이전트를 시작할 때 전달할 CLI 인자를 추가하세요.",
|
|
"arguments_label": "인자",
|
|
"arguments_description": "각 항목은 하나의 토큰으로 전달되며 목록 순서가 유지됩니다.",
|
|
"add_argument_action": "인자 추가",
|
|
"add_action": "추가",
|
|
"update_action": "업데이트",
|
|
"cancel_action": "취소",
|
|
"command_preview_label": "명령어 미리보기",
|
|
"input_placeholder": "--profile",
|
|
"input_aria": "인자 {{index}}",
|
|
"new_argument_aria": "새 인자",
|
|
"empty_title": "아직 인자가 없습니다",
|
|
"empty_hint": "첫 번째 토큰을 추가하여 시작 명령어를 만드세요.",
|
|
"edit_aria": "인자 {{index}} 편집",
|
|
"remove_aria": "인자 {{index}} 제거",
|
|
"saved_toast": "사용자 지정 인자를 저장했습니다",
|
|
"save_failed_toast": "사용자 지정 인자를 저장하지 못했습니다"
|
|
},
|
|
"mcp_config": {
|
|
"intro": "이 에이전트가 사용할 수 있는 MCP Server를 관리합니다. Multica에서 관리하는 Server와 로컬 Runtime에서 상속한 Server가 함께 사용됩니다.",
|
|
"managed_title": "Multica에서 관리",
|
|
"managed_hint": "이 에이전트용으로 Multica에 저장됩니다. Runtime MCP와 병합되며 이름이 같으면 Multica 설정이 우선합니다.",
|
|
"managed_empty": "Multica에서 관리하는 MCP Server가 없습니다.",
|
|
"add_action": "MCP 추가",
|
|
"agent_disabled_badge": "에이전트에서 꺼짐",
|
|
"runtime_disabled_badge": "런타임에서 꺼짐",
|
|
"runtime_overridden_badge": "Multica에서 재정의",
|
|
"runtime_title": "런타임에서 상속",
|
|
"runtime_hint": "{{runtime}}에서 자동으로 탐색하고 작업 시작 시 로컬에서 병합합니다. URL, 헤더, 명령 및 환경 변수는 머신 외부로 전송되지 않습니다.",
|
|
"refresh_action": "새로고침",
|
|
"runtime_missing": "상속된 MCP 서버를 탐색하려면 로컬 런타임을 할당하세요.",
|
|
"runtime_offline": "로컬 런타임이 오프라인입니다. 다시 연결하면 새로고침할 수 있습니다.",
|
|
"runtime_discovering": "로컬 런타임에서 MCP 서버를 탐색하는 중…",
|
|
"runtime_failed": "런타임 MCP 서버를 탐색하지 못했습니다.",
|
|
"runtime_forbidden": "이 런타임의 MCP 서버를 볼 수 있는 권한이 없습니다.",
|
|
"runtime_unsupported": "이 런타임 버전은 아직 MCP 목록을 보고할 수 없습니다.",
|
|
"runtime_empty": "런타임 사용자 설정에서 MCP 서버를 찾지 못했습니다.",
|
|
"edit_aria": "MCP Server 편집",
|
|
"delete_aria": "MCP Server 삭제",
|
|
"added_toast": "MCP Server를 추가했습니다",
|
|
"updated_toast": "MCP Server를 업데이트했습니다",
|
|
"deleted_toast": "MCP Server를 삭제했습니다",
|
|
"delete_failed_toast": "MCP Server를 삭제하지 못했습니다",
|
|
"dialog_add_title": "MCP Server 추가",
|
|
"dialog_edit_title": "MCP Server 편집",
|
|
"dialog_description": "폼 또는 JSON으로 이 Server 하나의 설정을 편집하세요.",
|
|
"dialog_name_label": "이름",
|
|
"dialog_name_placeholder": "예: context7",
|
|
"dialog_name_required": "Server 이름을 입력하세요.",
|
|
"dialog_name_invalid": "문자, 숫자, 하이픈, 밑줄만 사용할 수 있습니다.",
|
|
"dialog_name_duplicate": "같은 이름의 Server가 이미 있습니다.",
|
|
"dialog_form_tab": "폼 설정",
|
|
"dialog_json_tab": "JSON 설정",
|
|
"dialog_type_label": "연결 방식",
|
|
"dialog_type_stdio": "STDIO",
|
|
"dialog_type_http": "Streamable HTTP",
|
|
"dialog_command_label": "실행 명령",
|
|
"dialog_command_required": "Server를 실행할 명령을 입력하세요.",
|
|
"dialog_args_label": "인자",
|
|
"dialog_add_arg": "인자 추가",
|
|
"dialog_remove_arg": "인자 제거",
|
|
"dialog_env_label": "환경 변수",
|
|
"dialog_add_env": "환경 변수 추가",
|
|
"dialog_remove_env": "환경 변수 제거",
|
|
"dialog_url_label": "Server URL",
|
|
"dialog_url_required": "MCP Server URL을 입력하세요.",
|
|
"dialog_headers_label": "HTTP 헤더",
|
|
"dialog_add_header": "헤더 추가",
|
|
"dialog_remove_header": "헤더 제거",
|
|
"dialog_native_json_hint": "기존 Provider 네이티브 형식입니다. 형식을 변경하지 않고 JSON으로 편집할 수 있습니다.",
|
|
"dialog_json_label": "단일 Server 설정",
|
|
"dialog_json_aria": "MCP Server JSON 설정",
|
|
"dialog_json_object": "Server 설정은 JSON 객체여야 합니다.",
|
|
"dialog_json_target": "Server 설정에 command 또는 url이 필요합니다.",
|
|
"dialog_cancel": "취소",
|
|
"dialog_add_action": "Server 추가",
|
|
"dialog_update_action": "변경 저장",
|
|
"delete_dialog_title": "MCP Server를 삭제할까요?",
|
|
"delete_dialog_description": "{{name}}은 더 이상 이 에이전트에서 사용할 수 없습니다. Runtime Server에는 영향을 주지 않습니다.",
|
|
"delete_action": "Server 삭제",
|
|
"invalid_json": "잘못된 JSON: {{error}}",
|
|
"save_failed_toast": "MCP config를 저장하지 못했습니다",
|
|
"redacted_title": "설정됨 - 현재 보기에서는 숨김",
|
|
"redacted_hint": "에이전트 소유자 또는 워크스페이스 관리자만 이 config를 읽을 수 있습니다."
|
|
},
|
|
"composio_mcp": {
|
|
"subtitle": "툴킷을 선택하면, 본인(이 에이전트의 생성자)이 직접 또는 하위 에이전트 체인을 통해 이 에이전트를 트리거할 때만 MCP 서버로 마운트됩니다.",
|
|
"loading": "연결을 불러오는 중…",
|
|
"load_failed": "연결된 앱을 불러오지 못했습니다. 잠시 후 다시 시도하세요.",
|
|
"empty_title": "아직 연결된 앱이 없습니다",
|
|
"empty_hint": "아직 서드파티 서비스를 연결하지 않았습니다. 먼저 하나를 인증한 뒤 여기서 허용하세요.",
|
|
"empty_link_to_settings": "설정 → 연동에서 연결하기",
|
|
"connected": "연결됨",
|
|
"toggle_aria": "이 에이전트에 {{toolkit}} 허용",
|
|
"saving": "저장 중…",
|
|
"save_failed_toast": "저장하지 못했습니다. 다시 시도하세요",
|
|
"redacted_title": "설정됨 — 보기에서 숨김",
|
|
"redacted_hint": "이 에이전트가 사용할 수 있는 앱은 생성자만 보거나 변경할 수 있습니다.",
|
|
"shared_warning": "이 에이전트는 공유되어 있습니다. 이 에이전트를 실행할 수 있는 사람은 여기서 활성화한 Composio 앱을 사용할 수 있습니다. 이러한 앱이 민감한 데이터를 노출한다면 Private로 설정하거나 접근 범위를 좁히세요.",
|
|
"workspace_warning": "워크스페이스에 공개: 워크스페이스의 모든 구성원이 이 에이전트를 통해 이러한 Composio 앱을 사용할 수 있습니다."
|
|
},
|
|
"runtime_config": {
|
|
"intro": "OpenClaw 런타임이 이 에이전트의 각 턴을 어떻게 실행할지 선택하세요. Local 모드는 에이전트를 daemon 프로세스 내부에서 실행합니다. Gateway 모드는 각 턴을 OpenClaw Gateway로 전달합니다 — daemon 호스트가 가벼운 조율기 역할을 하고 실제 작업은 더 강력한 머신에서 돌리고 싶을 때 유용합니다.",
|
|
"mode_label": "라우팅 모드",
|
|
"mode_local": "Local",
|
|
"mode_gateway": "Gateway",
|
|
"mode_local_hint": "기본값. daemon이 `openclaw agent --local …`을 실행하고 에이전트 루프가 이 호스트에서 동작합니다.",
|
|
"mode_gateway_hint": "daemon이 OpenClaw Gateway에 다이얼합니다. 엔드포인트 필드를 비워두면 daemon 호스트의 `~/.openclaw/openclaw.json`에서 상속받습니다.",
|
|
"gateway_legend": "Gateway 엔드포인트",
|
|
"host_label": "Host",
|
|
"host_placeholder": "gw.internal",
|
|
"port_label": "포트",
|
|
"port_invalid": "포트는 양의 정수여야 합니다.",
|
|
"token_label": "인증 토큰",
|
|
"token_placeholder": "Gateway가 발급한 bearer 토큰",
|
|
"token_masked_placeholder": "저장됨 — 회전하려면 새 값을 입력. 비워두면 유지됩니다",
|
|
"tls_label": "TLS 사용",
|
|
"tls_hint": "http:// 대신 https://로 다이얼",
|
|
"saved_toast": "라우팅 설정이 저장되었습니다",
|
|
"save_failed_toast": "라우팅 설정 저장 실패"
|
|
},
|
|
"skills": {
|
|
"assigned_title": "에이전트에 할당됨",
|
|
"assigned_hint": "워크스페이스 스킬은 에이전트와 함께 이동합니다. 제거하지 않고 일시적으로 끌 수 있습니다.",
|
|
"runtime_title": "런타임에서 상속",
|
|
"runtime_hint": "{{runtime}}에서 자동으로 탐색되며 이 에이전트가 해당 런타임에서 실행될 때 사용할 수 있습니다.",
|
|
"workspace_badge": "워크스페이스",
|
|
"inherited_badge": "상속됨",
|
|
"refresh_action": "새로고침",
|
|
"no_description": "설명 없음",
|
|
"toggle_aria": "{{name}} 켜기 또는 끄기",
|
|
"remove_aria": "{{name}} 제거",
|
|
"toggle_failed_toast": "스킬 상태를 변경하지 못했습니다",
|
|
"runtime_toggle_aria": "상속된 {{name}} 켜기 또는 끄기",
|
|
"runtime_toggle_failed_toast": "상속된 스킬 상태를 변경하지 못했습니다",
|
|
"runtime_missing": "상속된 스킬을 탐색하려면 로컬 런타임을 할당하세요.",
|
|
"runtime_offline": "로컬 런타임이 오프라인입니다. 다시 연결하면 새로고침할 수 있습니다.",
|
|
"runtime_discovering": "로컬 런타임에서 스킬을 탐색하는 중…",
|
|
"runtime_failed": "런타임 스킬을 탐색하지 못했습니다.",
|
|
"runtime_forbidden": "이 런타임의 스킬을 볼 수 있는 권한이 없습니다.",
|
|
"runtime_unsupported": "이 런타임은 로컬 스킬을 제공하지 않습니다.",
|
|
"runtime_empty": "이 런타임에서 로컬 스킬을 찾지 못했습니다.",
|
|
"detail_title": "스킬 상세 정보",
|
|
"detail_loading": "스킬 상세 정보를 불러오는 중…",
|
|
"detail_source": "소스",
|
|
"detail_provider": "제공자",
|
|
"detail_plugin": "플러그인",
|
|
"detail_files": "파일",
|
|
"detail_supporting_files": "지원 파일",
|
|
"intro": "이 에이전트의 유효한 스킬입니다. Codex와 Claude Code에서 상속된 스킬도 에이전트별로 끌 수 있습니다.",
|
|
"add_action": "스킬 추가",
|
|
"empty_title": "할당된 스킬이 없습니다",
|
|
"empty_hint": "워크스페이스 스킬을 추가해 이 에이전트와 팀 지식을 공유하세요.",
|
|
"remove_failed_toast": "스킬을 제거하지 못했습니다",
|
|
"add_dialog_title": "스킬 추가",
|
|
"add_dialog_description": "이 에이전트에 할당할 워크스페이스 스킬을 선택하세요.",
|
|
"add_dialog_search_placeholder": "스킬 검색",
|
|
"add_dialog_empty": "모든 워크스페이스 스킬이 이미 할당되어 있습니다.",
|
|
"add_dialog_no_match": "검색 결과와 일치하는 스킬이 없습니다.",
|
|
"add_dialog_empty_partial": "더 추가할 스킬이 없습니다. 이 에이전트에 모든 스킬이 이미 할당되어 있습니다.",
|
|
"add_dialog_saving": "추가하는 중...",
|
|
"add_dialog_confirm_default": "추가",
|
|
"add_dialog_confirm_other": "스킬 {{count}}개 추가",
|
|
"add_dialog_cancel": "취소",
|
|
"add_failed_toast": "스킬을 추가하지 못했습니다"
|
|
},
|
|
"integrations": {
|
|
"intro": "이 에이전트를 외부 채팅 플랫폼에 연결해 팀원이 평소 사용하는 도구에서 바로 함께 작업할 수 있도록 합니다.",
|
|
"members_note": "에이전트를 외부 채팅 플랫폼에 연결할 수 있는 사람은 워크스페이스 소유자와 관리자뿐입니다. 연결된 봇은 설정 → 연동에서 확인할 수 있습니다."
|
|
},
|
|
"activity": {
|
|
"status": {
|
|
"queued": "대기 중",
|
|
"dispatched": "전달됨",
|
|
"waiting_local_directory": "디렉터리 대기 중",
|
|
"running": "실행 중",
|
|
"completed": "성공",
|
|
"failed": "실패",
|
|
"cancelled": "취소됨"
|
|
},
|
|
"section_now": "현재",
|
|
"section_last_30d": "최근 30일",
|
|
"section_recent": "최근 작업",
|
|
"subtitle_no_active": "활성 작업 없음",
|
|
"subtitle_active_other": "활성 작업 {{count}}개",
|
|
"subtitle_performance": "성과",
|
|
"subtitle_no_recent": "아직 완료된 작업 없음",
|
|
"subtitle_recent_progress": "{{total}}회 실행 중 {{shown}}회",
|
|
"subtitle_recent_latest": "최근 {{count}}회 실행",
|
|
"empty_now": "이 에이전트는 지금 실행 중인 작업이 없습니다.",
|
|
"empty_30d": "최근 30일 동안 완료된 작업이 없습니다.",
|
|
"empty_recent": "이 에이전트는 아직 완료한 작업이 없습니다.",
|
|
"show_more": "더 보기 →",
|
|
"runs_other": "회 실행",
|
|
"success_pct": "성공률 {{percent}}%",
|
|
"success_label": "성공",
|
|
"avg_duration": "평균 {{value}}",
|
|
"avg_duration_label": "평균 소요 시간",
|
|
"failed_count": "{{count}}회 실패",
|
|
"failed_label": "실패",
|
|
"source_issue": "이슈",
|
|
"source_chat": "채팅",
|
|
"source_autopilot": "오토파일럿",
|
|
"source_untracked": "추적 안 됨",
|
|
"source_quick_create": "빠른 생성",
|
|
"source_creating_issue": "이슈 생성 중",
|
|
"source_chat_session": "채팅 세션",
|
|
"source_autopilot_run": "오토파일럿 실행",
|
|
"issue_short_fallback": "이슈 {{prefix}}...",
|
|
"triggered_by": "트리거한 사람",
|
|
"open_issue_aria": "이슈 열기",
|
|
"open_issue_tooltip": "이슈 열기",
|
|
"transcript_tooltip": "트랜스크립트 보기",
|
|
"cancel_task_aria": "작업 취소",
|
|
"cancel_task_tooltip": "작업 취소",
|
|
"cancelling_tooltip": "취소하는 중...",
|
|
"cancel_failed_toast": "작업을 취소하지 못했습니다",
|
|
"started_prefix": "{{when}} 시작됨",
|
|
"dispatched_prefix": "{{when}} 디스패치됨",
|
|
"queued_prefix": "{{when}} 대기 시작"
|
|
}
|
|
},
|
|
"char_counter": {
|
|
"over_limit": " · 제한 초과 {{count}}자"
|
|
},
|
|
"presence": {
|
|
"queue_badge": "+{{count}} 대기 중"
|
|
},
|
|
"visibility": {
|
|
"private": {
|
|
"label": "개인",
|
|
"tooltip": "개인 · 본인과 워크스페이스 관리자만 이 에이전트를 사용할 수 있습니다"
|
|
},
|
|
"workspace": {
|
|
"label": "워크스페이스",
|
|
"tooltip": "워크스페이스 · 이 워크스페이스의 모든 사람이 이 에이전트를 사용할 수 있습니다"
|
|
}
|
|
},
|
|
"access": {
|
|
"section_title": "이 에이전트를 실행할 수 있는 사용자",
|
|
"tooltip": "접근 권한 · 누가 이 에이전트를 실행할 수 있는지",
|
|
"trigger_private": "나만",
|
|
"trigger_workspace": "워크스페이스",
|
|
"scope_labels": {
|
|
"workspace": "워크스페이스",
|
|
"specific_people": "특정 사용자",
|
|
"owner_only": "소유자만"
|
|
},
|
|
"trigger_members_count": "{{count}}명",
|
|
"trigger_members_empty": "특정 사용자",
|
|
"trigger_team": "팀",
|
|
"private_title": "비공개",
|
|
"private_desc": "나만 이 에이전트를 실행할 수 있습니다",
|
|
"shared_title": "공유",
|
|
"shared_desc": "이 에이전트를 실행할 워크스페이스 또는 특정 사용자를 선택합니다",
|
|
"shared_target_required": "저장하기 전에 워크스페이스 또는 한 명 이상의 사용자를 선택하세요.",
|
|
"workspace_title": "워크스페이스에 공개",
|
|
"workspace_desc": "이 워크스페이스의 모든 사람이 이 에이전트를 실행할 수 있습니다",
|
|
"members_title": "특정 사용자에게 공개",
|
|
"members_desc": "선택한 사람만 이 에이전트를 실행할 수 있습니다",
|
|
"team_title": "팀에 공개",
|
|
"team_desc": "팀 전체에 접근 권한을 부여합니다",
|
|
"team_coming_soon": "출시 예정",
|
|
"members_group": "구성원",
|
|
"public_group": "공개 액세스",
|
|
"owner_only_readonly": "이 에이전트를 실행할 수 있는 대상은 소유자만 변경할 수 있습니다.",
|
|
"members_empty": "선택할 워크스페이스 구성원이 없습니다",
|
|
"composio_switch_hint": "참고 — 이 에이전트에는 Composio 앱이 활성화되어 있습니다. 공유하면 접근 권한이 있는 모든 사람이 이 에이전트를 통해 해당 앱을 사용할 수 있습니다."
|
|
},
|
|
"profile_card": {
|
|
"unavailable": "에이전트를 사용할 수 없습니다",
|
|
"detail_link": "자세히 →",
|
|
"runtime_label": "런타임",
|
|
"skills_label": "스킬",
|
|
"owner_label": "소유자",
|
|
"unknown_runtime": "알 수 없는 런타임",
|
|
"model_label": "모델",
|
|
"model_unset": "런타임 기본값"
|
|
},
|
|
"live_peek": {
|
|
"current_issue_label": "현재 작업",
|
|
"no_current_issue": "작업 없음",
|
|
"last_activity_label": "마지막 접속",
|
|
"no_recent_activity": "최근 활동 없음",
|
|
"failed_indicator": "실패"
|
|
},
|
|
"transcript": {
|
|
"dialog_title": "에이전트 실행 트랜스크립트",
|
|
"status_running": "실행 중",
|
|
"status_completed": "완료됨",
|
|
"status_failed": "실패함",
|
|
"filter": "필터",
|
|
"clear_filters": "필터 지우기",
|
|
"events_other": "이벤트 {{count}}개",
|
|
"events_filtered": "이벤트 {{total}}개 중 {{shown}}개",
|
|
"copy_all": "전체 복사",
|
|
"copy_filtered": "필터 결과 복사",
|
|
"copied": "복사했습니다",
|
|
"waiting_events": "이벤트를 기다리는 중...",
|
|
"antigravity_live_unavailable": "Antigravity는 현재 실시간 실행 이벤트를 제공하지 않습니다. 작업이 완료되면 실행 기록을 확인할 수 있습니다.",
|
|
"no_data": "기록된 실행 데이터가 없습니다.",
|
|
"sort_label": "정렬",
|
|
"sort_chronological": "오래된 순",
|
|
"sort_newest_first": "최신 순",
|
|
"density_label": "펼치기 방식",
|
|
"density_smart": "핵심 펼치기",
|
|
"density_smart_desc": "응답과 오류는 펼치고, 사고와 도구 과정은 접힌 상태 유지",
|
|
"density_expanded": "모두 펼치기",
|
|
"density_expanded_desc": "각 행의 전체 매개변수와 출력을 펼쳐 단계별 검토에 사용",
|
|
"density_collapsed": "모두 접기",
|
|
"density_collapsed_desc": "이벤트당 한 줄, 가장 간결한 보기",
|
|
"no_output": "출력 없음",
|
|
"show_all": "모두 보기",
|
|
"status_queued": "대기열",
|
|
"status_dispatched": "디스패치됨",
|
|
"status_cancelled": "취소됨",
|
|
"status_waiting": "대기 중",
|
|
"trigger_initial": "최초 실행",
|
|
"trigger_comment": "댓글에서",
|
|
"trigger_autopilot": "Autopilot",
|
|
"trigger_retry": "재시도",
|
|
"trigger_chat": "채팅에서",
|
|
"trigger_quick_create": "빠른 생성",
|
|
"trigger_direct": "직접 지정",
|
|
"run_info": "실행 세부정보",
|
|
"details_runtime": "런타임",
|
|
"details_provider": "제공자",
|
|
"details_mode": "모드",
|
|
"details_workdir": "작업 디렉터리",
|
|
"details_created": "생성",
|
|
"details_started": "시작",
|
|
"details_completed": "완료",
|
|
"copy_workdir": "작업 디렉터리 복사",
|
|
"close": "닫기",
|
|
"fact_created": "생성 {{time}}",
|
|
"fact_took": "소요 {{duration}}"
|
|
},
|
|
"task_failure": {
|
|
"agent_error": "에이전트 실행 오류",
|
|
"timeout": "작업 시간 초과",
|
|
"runtime_offline": "데몬 오프라인",
|
|
"runtime_recovery": "데몬 재시작됨",
|
|
"manual": "사용자가 취소함"
|
|
},
|
|
"last_active": {
|
|
"today": "오늘",
|
|
"days_ago_other": "{{count}}일 전",
|
|
"none": "30일간 활동 없음"
|
|
},
|
|
"toolbar": {
|
|
"result_count_title": "일치하는 에이전트 / 범위 내 전체",
|
|
"filter_label": "필터",
|
|
"filter_active_count_other": "필터 {{count}}개",
|
|
"clear_filters": "필터 지우기",
|
|
"section_availability": "가용성",
|
|
"section_access": "액세스",
|
|
"section_runtime": "런타임",
|
|
"display": "표시",
|
|
"sort_by": "정렬",
|
|
"direction_asc": "오름차순",
|
|
"direction_desc": "내림차순",
|
|
"section_columns": "열",
|
|
"section_owner": "소유자",
|
|
"section_model": "모델"
|
|
},
|
|
"creation_studio": {
|
|
"title": "에이전트 만들기",
|
|
"squad_title": "이 스쿼드용 에이전트 만들기",
|
|
"duplicate_title": "{{name}} 복제",
|
|
"back": "뒤로",
|
|
"eyebrow": "에이전트 만들기",
|
|
"choose_title": "어떻게 시작하시겠어요?",
|
|
"choose_description": "모든 항목을 직접 설정하거나, 검증된 템플릿을 수정하거나, 필요한 내용을 설명하고 대화로 만들 수 있습니다.",
|
|
"recommended": "추천",
|
|
"continue": "계속",
|
|
"step_choose": "시작 방법 선택",
|
|
"step_template": "템플릿 선택",
|
|
"step_configure": "검토 및 설정",
|
|
"step_ai": "대화로 만들기",
|
|
"modes": {
|
|
"blank": {
|
|
"title": "빈 상태로 시작",
|
|
"description": "모든 항목을 직접 설정합니다. 에이전트의 동작 방식을 정확히 알고 있을 때 적합합니다."
|
|
},
|
|
"template": {
|
|
"title": "템플릿 사용",
|
|
"description": "정리된 지침과 스킬을 바탕으로 워크스페이스에 맞게 세부 항목을 조정합니다."
|
|
},
|
|
"ai": {
|
|
"title": "AI로 만들기",
|
|
"description": "원하는 결과를 설명하면 Agent Builder가 핵심 질문을 하고 실시간 초안을 준비합니다."
|
|
}
|
|
},
|
|
"templates": {
|
|
"search": "템플릿 검색…",
|
|
"search_label": "에이전트 템플릿 검색",
|
|
"empty": "검색과 일치하는 템플릿이 없습니다.",
|
|
"select_hint": "템플릿을 선택하여 지침과 스킬을 미리 확인하세요.",
|
|
"skills": "포함된 스킬",
|
|
"instructions": "지침",
|
|
"use": "이 템플릿 사용"
|
|
},
|
|
"sections": {
|
|
"identity": "기본 정보",
|
|
"identity_hint": "알아보기 쉬운 이름과 간결한 목적을 지정하세요.",
|
|
"behavior": "동작 및 기능",
|
|
"behavior_hint": "작업 방식을 정의하고 사용할 워크스페이스 스킬을 추가하세요.",
|
|
"execution": "실행",
|
|
"execution_hint": "에이전트를 실행할 위치를 선택하고 필요하면 런타임 기본 모델을 변경하세요.",
|
|
"access": "접근 권한",
|
|
"access_hint": "이 에이전트를 실행할 수 있는 사용자를 설정합니다. 나중에 변경할 수 있습니다."
|
|
},
|
|
"access": {
|
|
"private": {
|
|
"title": "나만",
|
|
"description": "나만 이 에이전트를 실행할 수 있습니다."
|
|
},
|
|
"workspace": {
|
|
"title": "전체 워크스페이스",
|
|
"description": "모든 워크스페이스 멤버가 실행할 수 있습니다."
|
|
},
|
|
"members": {
|
|
"title": "특정 멤버",
|
|
"description": "선택한 멤버만 실행할 수 있습니다.",
|
|
"required": "멤버를 한 명 이상 선택하세요."
|
|
}
|
|
},
|
|
"builder": {
|
|
"setup_title": "Agent Builder 런타임 선택",
|
|
"setup_description": "선택한 온라인 런타임이 설정 대화를 실행하고 새 에이전트의 기본 런타임이 됩니다.",
|
|
"start": "대화 시작",
|
|
"connect_runtime": "런타임 연결",
|
|
"start_failed": "Agent Builder를 시작하지 못했습니다.",
|
|
"send_failed": "메시지를 보내지 못했습니다.",
|
|
"stop_failed": "현재 생성을 중지하지 못했습니다.",
|
|
"switch_runtime_failed": "런타임을 전환하지 못했습니다. 대화는 이전 런타임에서 계속 실행됩니다.",
|
|
"switch_runtime_pending": "현재 답변을 중지하면 런타임을 전환할 수 있습니다.",
|
|
"switch_runtime_success": "런타임을 전환했습니다. 설정 초안은 유지되며, 이후 대화는 새 런타임에서 새로운 모델 세션으로 이어집니다.",
|
|
"chat_title": "Agent Builder",
|
|
"chat_hint": "대화로 요구 사항을 정리하고 옆의 설정을 다듬으세요.",
|
|
"runtime_online": "런타임 온라인",
|
|
"runtime_offline": "런타임 오프라인",
|
|
"empty_title": "이 에이전트는 무엇을 해야 하나요?",
|
|
"empty_description": "역할, 작업 흐름, 출력 또는 제약 사항을 설명하세요. 오른쪽에 첫 초안이 표시됩니다.",
|
|
"prompt_review": "프런트엔드 Pull Request 검토",
|
|
"prompt_research": "경쟁사를 조사하고 결과 요약",
|
|
"prompt_assistant": "팀의 프로젝트 계획과 작성 지원",
|
|
"thinking": "초안 업데이트 중…",
|
|
"placeholder": "필요한 에이전트를 설명하세요…",
|
|
"send": "메시지 보내기"
|
|
},
|
|
"live_draft": "에이전트 설정",
|
|
"live_draft_hint": "대화 내용이 여기에 반영되며 각 항목을 직접 조정할 수 있습니다.",
|
|
"duplicate_env_notice": "지침, 스킬, 모델 및 명령 인수는 복사됩니다. 보안을 위해 환경 변수는 복사되지 않습니다.",
|
|
"create_and_open": "만들고 열기",
|
|
"create_and_add": "만들고 스쿼드에 추가",
|
|
"creating": "에이전트 만드는 중…",
|
|
"create_failed": "에이전트를 만들지 못했습니다.",
|
|
"name_conflict": "같은 이름의 에이전트가 이미 있습니다.",
|
|
"created": "{{name}}을(를) 만들었습니다"
|
|
},
|
|
"actions": {
|
|
"selected_other": "{{count}}개 선택됨",
|
|
"clear_selection": "선택 해제"
|
|
}
|
|
}
|