Files
lobe-chat/locales/ko-KR/plugin.json
T
Tsuki 70e7e441b2 🔨 chore: premerge Task detail page UI (#13653)
*  feat: add AgentTaskList component on agent welcome page (LOBE-6597)

- AgentTaskList with TaskListHeader, TaskItem, and styles
- Embedded in AgentWelcome below ToolAuthAlert
- Each task rendered as independent rounded card with status badge
- Status: green filled circle (Done), blue circle (In progress)
- Card width matches chat input (960px)
- i18n keys for taskList.title and taskList.viewAll
- Fix updateReview type to use TRPC-inferred type

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add Tasks page at /agent/:aid/tasks with route, breadcrumb, and view toggle (LOBE-6597)

- Register tasks route in both desktopRouter.config.tsx and .desktop.tsx
- Thin route page at src/routes/(main)/agent/tasks/index.tsx
- Feature components in src/features/AgentTasks/: page, breadcrumb, header with list/kanban toggle, full task list
- Wire up "View All Tasks" navigation from AgentTaskList welcome card
- Add i18n keys (taskList.activeTasks, taskList.breadcrumb.task) and generate translations via pnpm i18n

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add Task detail page at /agent/:aid/tasks/:taskId (LOBE-6597)

- Register :taskId child route in both desktopRouter configs
- TaskDetailPage with auto-save hint, breadcrumb, and scrollable content
- TaskDetailHeader: editable title (borderless Input), Run/Pause button, status/priority tags, delete
- TaskInstruction: click-to-edit Markdown with debounced auto-save
- TaskSubtasks: sub-issues list with status badges
- TaskActivities: timeline with topic/brief/comment icons
- TaskItem now navigates to detail page instead of just setting activeTaskId
- Add taskDetail.* i18n keys with generated translations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add TaskModelConfig, TaskScheduleConfig, and refine Task detail UI (LOBE-6597)

Add model/provider selector and periodic execution config to Task detail page.
Refine TaskDetailHeader, TaskInstruction with auto-save and i18n support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: refine Task detail UI with Linear-style design (LOBE-6597)

- Redesign SubTasks with collapsible header, progress circle, hover + click navigation
- Redesign Activities with agent avatar, comment input box, and Linear-style layout
- Add TaskParentBar showing parent task relationship with sibling navigation popover
- Add delete confirmation modal using App.useApp().modal.confirm
- Move ModelSelect to separate row below action bar
- Fix zustand selector recreation in ActivityItem
- Replace hardcoded colors with cssVar tokens

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add Properties panel, parent link hover, activity icon, and lifecycle save status (LOBE-6597)

- Add TaskProperties sidebar with collapsible status/priority dropdowns
- Parent bar: clickable parent link with hover, sibling navigation popover on progress
- Activity title: add BotMessageSquare icon
- Fix lifecycle actions not updating taskSaveStatus (saving/saved indicator)
- Filter status dropdown to only user-selectable states (backlog/completed/canceled)
- Add test task creation script for dev

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add recursive tree view for subtasks with Linear-style connecting lines (LOBE-6597)

- Add buildTaskTree utility to convert flat getTaskTree API response into nested tree
- Implement SubtaskTreeItem recursive component with CSS connecting lines (├─ and └─)
- Fetch full task tree via taskService.getTaskTree for nested subtask display
- Show loading spinner during tree fetch, fallback to flat list on error
- Remove padding-inline from AgentTaskList container

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 🐛 fix: address PR review — delete redirect, debounce cleanup, schedule resync (LOBE-6597)

- Redirect to task list after successful delete (P1)
- Clean up instruction debounce timer on unmount/task switch to prevent stale writes (P1)
- Resync TaskScheduleConfig local state when active task changes (P2)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ♻️ refactor: use backend nested subtasks directly, remove buildTaskTree (LOBE-6597)

Backend now returns nested subtasks in task.detail (LOBE-6814).
Remove buildTaskTree utility, getTaskTree API call, and loading state.
Use TaskDetailSubtask from @lobechat/types instead of local interface.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  perf: add optimistic update and save status for model config change (LOBE-6597)

updateTaskModelConfig now immediately reflects new model/provider in UI
via optimistic store dispatch, and tracks taskSaveStatus (saving/saved).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  perf: skip redundant refreshTaskDetail on successful model config update (LOBE-6597)

Optimistic update is trusted on success — no need for full detail re-fetch.
Aligns with updateTask pattern. Refresh kept only in error path for revert.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: use backend author info for activities, fix AgentTaskList after AgentHome refactor (LOBE-6597)

- Activity: use act.author (TaskDetailActivityAuthor) from backend instead of agentMap lookup (LOBE-7013)
- AgentTaskList: fix agentId from useParams instead of useAgentStore.activeAgentId (was undefined)
- AgentHome: integrate AgentTaskList into new AgentHome layout (replaces old AgentWelcome)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: show participant avatars on task cards, use backend author for activities (LOBE-6597)

- TaskItem: display up to 3 participant avatars next to task title (LOBE-6805)
- Activity: use act.author from backend instead of agentMap lookup (LOBE-7013)
- AgentHome: integrate AgentTaskList into new AgentHome layout
- Revert AgentTaskList/TaskItem agentId back to useAgentStore (works correctly when mounted)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ♻️ refactor: fix type safety, memoize participants filter, extract avatar styles (LOBE-6597)

- Use TaskParticipant type instead of `any` in filter/map
- Compute displayParticipants once with useMemo (was filtering twice per render)
- Move avatar overlap styles to CSS classes (was inline objects per render)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 🔇 chore: hide kanban view toggle until implemented (LOBE-6597)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ♻️ refactor: export TaskStatus/TaskPriority/TaskActivityType from @lobechat/types (LOBE-6597)

Replace hardcoded string/number types with shared type aliases:
- TaskStatus: 'backlog' | 'canceled' | 'completed' | 'failed' | 'paused' | 'running'
- TaskPriority: 0 | 1 | 2 | 3 | 4
- TaskActivityType: 'brief' | 'comment' | 'topic'

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* style: update

* style: update

* style: update

* style: update

* style: update

* style: update

* style: update

* style: update

* style: update

* style: update

*  feat: add Daily Brief module to homepage (#13851)

*  feat: add Daily Brief module to homepage

Add a Daily Brief section below the chat input on the homepage that
displays unresolved briefs from the Agent Tasks system. Users can
resolve, comment, and provide feedback directly from the brief cards.

- Service: BriefService with listUnresolved, resolve, markRead, addComment
- Store: Independent Zustand store (src/store/brief/) with SWR data fetching
- Components: BriefCard, BriefCardActions (dynamic action buttons),
  BriefCardSummary (Markdown with expand/collapse), CommentInput (@lobehub/editor)
- Three action types: resolve (closes brief), comment (resolve with text),
  link (safe URL navigation with protocol validation)
- Fixed feedback button: adds task comment without resolving the brief
- Inline success state ("Feedback sent") with 1.5s auto-restore
- i18n: zh-CN + en-US translations
- Tests: 21 tests across service, store selectors, and components
- CLI: Register task and brief commands for local development

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add agent avatars to Daily Brief cards

Display stacked agent avatars next to brief card titles using the
new `agents` data from Arvin's enriched listUnresolved API (#13489).

- Add AgentAvatarInfo type and agents field to BriefItem
- Render overlapping circular avatars (20px, -6px overlap)
- Use cssVar.colorBgContainer for border (dark mode compatible)
- Extract avatar style to function to avoid inline object creation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ♻️ refactor: clean up Daily Brief components

- Extract duplicate success state JSX into reusable SuccessTag component
- Remove redundant comments that describe what code does
- Use DEFAULT_AVATAR from @lobechat/const instead of hardcoded emoji

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 🐛 fix: address PR review feedback for Daily Brief

- Use cssVar.colorBgBase instead of hardcoded #fff for primary button
  text color (dark mode contrast fix)
- Add submitting state to CommentInput to prevent duplicate submissions
  (disable buttons + show loading during async submit)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 🌐 chore: generate i18n translations for Daily Brief

Run pnpm i18n to generate translations for all 18 locales.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ♻️ refactor: use shared BriefType from @lobechat/types

Export BriefType union from packages/types and use it in
BRIEF_TYPE_COLOR and BRIEF_TYPE_ICON records for compile-time
key validation. Adding a new brief type now requires updating
the shared type, and TypeScript will flag missing mappings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* style: update

* style: update

* style: update

---------

Co-authored-by: Tsuki <976499226@qq.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* style: update

* style: update

* style: update

* style: update

* fix: stopPropagation

* fix: i18n

* 🐛 fix: wire comment inputs to editor instance so Send actually submits

CommentInput in AgentTasks and DailyBrief used antd TextArea inside
@lobehub/editor's ChatInput while reading content via
editor.getDocument('markdown'). The TextArea was never connected to the
editor instance, so getDocument always returned empty and handleSubmit
short-circuited silently — Send appeared to do nothing (no network
request fired).

Replace the TextArea with <Editor editor={editor} type="text"
variant="chat" /> so useEditor() actually drives the editable surface.
Keep plain-text behavior via markdownOption={false} +
enablePasteMarkdown={false}, and bind Cmd/Ctrl+Enter submit via
onPressEnter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 🐛 fix: use participant.title after TaskParticipant schema rename (#13877)

PR #13877 renamed TaskParticipant.name → .title and added
.backgroundColor. Our branch's UI code (AgentAvatars, listViewOptions,
TaskList group header, Breadcrumb) was already written against the new
schema, but TaskProperties still read firstParticipant?.name — update
the last remaining call site so the type matches post-rebase.

backgroundColor is already plumbed through everywhere it applies within
#13877's scope; TaskActivities' TaskDetailActivityAuthor is a separate
type untouched by the PR and kept as-is.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 🐛 fix: resolve type-check errors exposed after canary rebase

canary upgraded react-i18next to a version with typed i18n keys and
tightened @lobehub/editor's SendButton + IEditor APIs. Rebase pulled
these in, surfacing latent type errors in LOBE-6597 code.

- CommentInput: use editor.cleanDocument() (IEditor's actual API;
  clearContent never existed).
- TaskActivities / TaskLatestActivity / TaskTriggerTag: type t as
  TFunction<'chat'> so typed i18n accepts the known-literal keys used
  inside module-level helpers.
- TaskPriorityTag / TaskStatusTag / listViewOptions: add
  defaultValue: '' to dynamic-key t() calls (template literals and
  Record lookups) to match the broad-key i18n overload.
- BriefCardActions: swap unusable <SendButton> (no children, no
  iconPlacement) for <Button>; add defaultValue to the dynamic
  brief-action key lookup; drop stale @ts-ignore.
- DailyBrief/CommentInput: drop unsupported children on SendButton;
  keep label via title attribute.
- Recents/Item: type TYPE_ICON_MAP as Partial<Record<...>> so 'task'
  (rendered via TaskStatusIcon elsewhere) is a safe absent key.
- brief/slices/list/action: cast briefService.listUnresolved() result
  back to BriefItem[] (TRPC serialization widens BriefType to string).
- AgentTasks/TasksHeader: delete dead file — no importers and its
  ./style module was removed by an earlier refactor.

Also ran pnpm install to materialize the newly-extracted
@lobechat/agent-gateway-client workspace package (canary #13866),
clearing ~7 "cannot find module" errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ♻️ refactor(builtin-tool-task): polish task tool paths (#13869)

*  feat: navigate to task detail when clicking brief card header

Clicking the header row of a Daily Brief card (icon + title + time +
agent avatars) now jumps straight to the associated task, using the
brief's task-tree agent (with activeAgent / inbox as fallback).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: show parent task ids as clickable breadcrumb trail

Walk the cached parent chain from taskDetailMap and insert each ancestor's
identifier as a link between the "任务" entry and the current task name in
the task detail breadcrumb.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add cross-agent /tasks page with View All Tasks on Daily Brief

- Register `/tasks` route in desktop (web + Electron) and mobile router configs
- `useFetchTaskList` supports `allAgents` mode via options object API to fetch
  tasks without agent filter; backend already supports optional assigneeAgentId
- `Breadcrumb` accepts optional `agentId`, renders "All tasks" crumb when absent
- `AgentTaskItem` navigation uses `task.assigneeAgentId` so clicks work from
  the cross-agent page (falls back to `activeAgentId` for unassigned tasks)
- Extract `useScenarioEnabledTools` hook to share layout effect between
  `/tasks/_layout` and `/agent/:aid/tasks/_layout`

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* ♻️ refactor: use assigneeAgentId for task avatar instead of participants array

Replace AgentAvatars (took participants[]) with AssigneeAvatar (takes agentId,
resolves meta from agent store). This correctly represents that a task is
assigned to a single agent via assigneeAgentId/detail.agentId.

- New AssigneeAvatar component reads agent meta from agent store by ID
- TaskProperties reads activeTaskAgentId from task detail store
- listViewOptions uses task.assigneeAgentId directly for groupBy/sort
- Extract shared isInboxAgentId helper to eliminate 4x inline duplication
- Group headers resolve agent title at render time via AssigneeLabel component

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 🐛 fix: enable vertical scrolling on cross-agent tasks page

Add overflowY and flex to WideScreenContainer wrapper so the task list
can scroll when content exceeds viewport height.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add re-assign task agent with popover selector

- Add AssigneeAgentSelector component with Popover agent list
- Extract useAgentDisplayMeta hook for consistent agent name/avatar resolution
- Fix optimistic update mapping assigneeAgentId → agentId in task store
- Disable reassignment for running tasks with tooltip hint
- Integrate selector into task list and task detail property panel

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: reuse BriefCard in task detail activities & fix raw-id navigation

Render brief-type activities as full BriefCard (same as homepage) instead of
plain tree rows. Decouple BriefCardActions from useBriefStore for actions
lookup so it can be reused across pages. Fix infinite loading when navigating
to task detail via raw DB id (task_xxx) by storing detail under both the
identifier and the raw id key in taskDetailMap.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add TopicCard component for task detail activities

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: allow re-running completed tasks with dedicated button

Completed tasks now show a "Re-run" button (with rotate icon) instead of
hiding the action. The backend already supported this — only the frontend
selector gate needed updating.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add create task modal with markdown editor

Add a "+" button on the tasks list page that opens a Linear-style modal
for manually creating tasks. The modal features a title input, a markdown
editor (EditorCanvas), and a bottom toolbar with priority and assignee
selectors. Existing tag components (TaskStatusTag, TaskPriorityTag,
AssigneeAgentSelector) are extended with an `onChange` controlled mode
so they can be used in creation context where no task exists yet.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 🐛 fix: suppress spurious updateTask on Task Detail page load

EditorDataMode was missing the contentChangeLockRef pattern that
DocumentIdMode already uses, causing Lexical's registerUpdateListener
to treat programmatic content hydration as a user edit and fire
onContentChange → updateTask on every page visit.

- Add contentChangeLockRef + lockIdRef staleness guard
- Extract loadContentWithLock to deduplicate lock/load/unlock logic
- Pass contentChangeLockRef to InternalEditor
- Remove unreachable dead code in loadEditorContent

Closes LOBE-7362

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: task detail comment CRUD and various UX improvements

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 🐛 fix: move canceled status group to the end of task list

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 💄 style: polish task detail layout, title, and run button

- Title switched to auto-sizing TextArea so long names wrap (like Linear)
- Reduce title font-size from 32px to 24px and tighten paddings
- Make "运行任务" button small-sized to match the denser header
- Add 120px bottom padding for end-of-content scroll breathing room
- Default EditorCanvas paddingBottom trimmed from 64 to 32

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 💄 style: refine task assignee, priority, and comment input

- Assignee block uses filled variant in dark mode for better contrast
- Urgent priority (level 1) renders in orange for quick scanning
- Comment input keeps SendButton slot reserved to prevent layout shift

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

*  feat: task detail — inline subtasks, automation mode, chronological activity

- Inline subtask creation under a task via CreateTaskInlineEntry
  (parentTaskId/autoFocus/onCollapse/placeholder), refreshes parent on create
- Track agent-created tasks via createdByAgentId through service, router,
  types, and the builtin task executor
- Replace scheduler Segmented-only UI with an Enable switch + heartbeat/
  schedule mode; persist via automationMode on the task
- Sort detail activities oldest → newest for a natural timeline reading
- Reducer patches nested subtask entries on updateTaskDetail so in-place
  edits reflect in the parent's subtask tree

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 💄 style: render activate-tool chips as rounded pills

Switch inspector tool chips from monospace code tags to filled rounded
pills with ellipsis overflow, making multi-tool rows scan better in tight
headers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 🐛 fix: keep finished tool call out of loading state while siblings run

The message-level isAssistantMessageBusy flag stays true while sibling
tool calls are still running. Without guarding on this tool's own
result, a finished tool would flip back to "loading". Now a tool that
has a real result or error is never shown as calling.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 💄 style: use small Segmented in schedule config popover

Keeps the automation mode switcher visually aligned with the denser
popover controls.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

*  feat: agent profile hover card on task activity author

- Extract shared AgentProfileCard + unified AgentProfilePopup (click / hover)
  with lazy agent fetch; move out of group sidebar path.
- Wire activity author avatar + name to a hover card; brighten title on hover;
  keep a small "agent" tag on the author row.
- Show inline skeletons (description + footer stats) while loading.
- Enrich subtask payload with assignee agent info for cleaner UI.

*  feat: open task topic chat in side drawer

Click a topic row in the task detail activities to open a right-side drawer
showing the topic's full chat history. Messages stream in live via the existing
agent gateway pipeline (gateway events land in chatStore.dbMessagesMap keyed by
the topic context), so a running topic refreshes its drawer in real time without
a dedicated subscription.

Reuses the Conversation feature (ConversationProvider + ChatList) with an
isolated context (agentId + topicId + isolatedTopic), so the drawer never
touches the global active topic and multiple panels coexist cleanly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 💄 style: outline activate-tool chip with subtle border

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

*  feat: show topic handoff summary on activity card

Pull `handoff.summary` through the task service into TaskDetailActivity and
render it under the title in TopicCard so completed topics surface what was
accomplished without opening the drawer.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 🎸 chore: gate agent task feature behind agent_task flag

Hide every client-side entry point to the Agent Task feature when the
`agent_task` flag (default `isDev`, off in prod) is disabled:

- Sidebar: task tab in the agent sidebar nav
- Routes: `/agent/:aid/tasks/*` and `/tasks/*` layouts redirect to `/` when
  the flag is off (mobile router reuses the same layout)
- Home Recents: filter out `type='task'` items in both the list and the
  "all recents" drawer
- Daily Brief: skip fetch + hide the entire panel (all briefs link to tasks)

Backend TRPC / lifecycle stays on — the feature is already live for CLI
usage. Flag name mirrors `agent_onboarding` for consistency.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* 🐛 fix: prioritize includeTriggers in topic queries

* 🐛 fix: normalize task detail activity payloads

*  feat: add Kanban board view for task list with drag-and-drop

LOBE-7493

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* 💄 style: shorten schedule tag labels & fix time width in task cards

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* update i18n

* 💄 style: hide task tool from user selectors

* 💄 style: hide task skill from user selectors

---------

Co-authored-by: canisminor1990 <i@canisminor.cc>
Co-authored-by: YuTengjing <ytj2713151713@gmail.com>
Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2026-04-23 02:10:45 +08:00

637 lines
45 KiB
JSON

{
"arguments.moreParams": "총 {{count}}개의 매개변수가 있습니다",
"arguments.title": "매개변수 목록",
"builtins.lobe-activator.apiName.activateTools": "도구 활성화",
"builtins.lobe-activator.inspector.activateTools.notFoundCount": "{{count}}개를 찾을 수 없음",
"builtins.lobe-agent-builder.apiName.getAvailableModels": "사용 가능한 모델 가져오기",
"builtins.lobe-agent-builder.apiName.getAvailableTools": "사용 가능한 도구 가져오기",
"builtins.lobe-agent-builder.apiName.getConfig": "설정 가져오기",
"builtins.lobe-agent-builder.apiName.getMeta": "메타데이터 가져오기",
"builtins.lobe-agent-builder.apiName.getPrompt": "시스템 프롬프트 가져오기",
"builtins.lobe-agent-builder.apiName.installPlugin": "스킬 설치",
"builtins.lobe-agent-builder.apiName.searchMarketTools": "기능 마켓 검색",
"builtins.lobe-agent-builder.apiName.searchOfficialTools": "공식 도구 검색",
"builtins.lobe-agent-builder.apiName.setModel": "모델 설정",
"builtins.lobe-agent-builder.apiName.setOpeningMessage": "시작 메시지 설정",
"builtins.lobe-agent-builder.apiName.setOpeningQuestions": "시작 질문 설정",
"builtins.lobe-agent-builder.apiName.togglePlugin": "기능 전환",
"builtins.lobe-agent-builder.apiName.updateChatConfig": "채팅 설정 업데이트",
"builtins.lobe-agent-builder.apiName.updateConfig": "설정 업데이트",
"builtins.lobe-agent-builder.apiName.updateMeta": "메타데이터 업데이트",
"builtins.lobe-agent-builder.apiName.updatePrompt": "시스템 프롬프트 업데이트",
"builtins.lobe-agent-builder.inspector.chars": "자",
"builtins.lobe-agent-builder.inspector.disablePlugin": "비활성화",
"builtins.lobe-agent-builder.inspector.enablePlugin": "활성화",
"builtins.lobe-agent-builder.inspector.modelsCount": "{{count}}개 모델",
"builtins.lobe-agent-builder.inspector.noResults": "결과 없음",
"builtins.lobe-agent-builder.inspector.togglePlugin": "전환",
"builtins.lobe-agent-builder.title": "도우미 빌더",
"builtins.lobe-agent-documents.apiName.copyDocument": "문서 복사",
"builtins.lobe-agent-documents.apiName.createDocument": "문서 생성",
"builtins.lobe-agent-documents.apiName.editDocument": "문서 편집",
"builtins.lobe-agent-documents.apiName.listDocuments": "문서 목록",
"builtins.lobe-agent-documents.apiName.patchDocument": "문서 패치",
"builtins.lobe-agent-documents.apiName.readDocument": "문서 읽기",
"builtins.lobe-agent-documents.apiName.readDocumentByFilename": "파일 이름으로 문서 읽기",
"builtins.lobe-agent-documents.apiName.removeDocument": "문서 삭제",
"builtins.lobe-agent-documents.apiName.renameDocument": "문서 이름 변경",
"builtins.lobe-agent-documents.apiName.updateLoadRule": "로드 규칙 업데이트",
"builtins.lobe-agent-documents.apiName.upsertDocumentByFilename": "파일 이름으로 문서 삽입 또는 업데이트",
"builtins.lobe-agent-documents.title": "에이전트 문서",
"builtins.lobe-agent-management.apiName.callAgent": "통화 에이전트",
"builtins.lobe-agent-management.apiName.createAgent": "에이전트 생성",
"builtins.lobe-agent-management.apiName.deleteAgent": "에이전트 삭제",
"builtins.lobe-agent-management.apiName.duplicateAgent": "에이전트 복제",
"builtins.lobe-agent-management.apiName.getAgentDetail": "에이전트 상세 정보 가져오기",
"builtins.lobe-agent-management.apiName.installPlugin": "플러그인 설치",
"builtins.lobe-agent-management.apiName.searchAgent": "에이전트 검색",
"builtins.lobe-agent-management.apiName.updateAgent": "에이전트 업데이트",
"builtins.lobe-agent-management.apiName.updatePrompt": "프롬프트 업데이트",
"builtins.lobe-agent-management.inspector.callAgent.sync": "통화 중:",
"builtins.lobe-agent-management.inspector.callAgent.task": "작업 할당 대상:",
"builtins.lobe-agent-management.inspector.createAgent.title": "에이전트 생성 중:",
"builtins.lobe-agent-management.inspector.duplicateAgent.title": "에이전트 복제 중:",
"builtins.lobe-agent-management.inspector.getAgentDetail.title": "세부 정보 가져오는 중:",
"builtins.lobe-agent-management.inspector.installPlugin.title": "플러그인 설치 중:",
"builtins.lobe-agent-management.inspector.searchAgent.all": "에이전트 검색:",
"builtins.lobe-agent-management.inspector.searchAgent.market": "시장 검색:",
"builtins.lobe-agent-management.inspector.searchAgent.results": "{{count}} 결과",
"builtins.lobe-agent-management.inspector.searchAgent.user": "내 에이전트 검색:",
"builtins.lobe-agent-management.inspector.updateAgent.title": "에이전트 업데이트 중:",
"builtins.lobe-agent-management.inspector.updatePrompt.title": "프롬프트 업데이트 중:",
"builtins.lobe-agent-management.render.duplicateAgent.newId": "새 에이전트 ID",
"builtins.lobe-agent-management.render.duplicateAgent.sourceId": "원본 에이전트 ID",
"builtins.lobe-agent-management.render.installPlugin.failed": "설치 실패",
"builtins.lobe-agent-management.render.installPlugin.plugin": "플러그인",
"builtins.lobe-agent-management.render.installPlugin.success": "설치 완료",
"builtins.lobe-agent-management.title": "에이전트 관리자",
"builtins.lobe-claude-code.agent.instruction": "지시사항",
"builtins.lobe-claude-code.agent.result": "결과",
"builtins.lobe-claude-code.todoWrite.allDone": "모든 작업이 완료되었습니다",
"builtins.lobe-claude-code.todoWrite.currentStep": "현재 단계",
"builtins.lobe-claude-code.todoWrite.todos": "할 일",
"builtins.lobe-cloud-sandbox.apiName.editLocalFile": "파일 편집",
"builtins.lobe-cloud-sandbox.apiName.executeCode": "코드 실행",
"builtins.lobe-cloud-sandbox.apiName.exportFile": "파일 내보내기",
"builtins.lobe-cloud-sandbox.apiName.getCommandOutput": "명령어 출력 가져오기",
"builtins.lobe-cloud-sandbox.apiName.globLocalFiles": "파일 글롭 검색",
"builtins.lobe-cloud-sandbox.apiName.grepContent": "내용 검색",
"builtins.lobe-cloud-sandbox.apiName.killCommand": "명령어 종료",
"builtins.lobe-cloud-sandbox.apiName.listLocalFiles": "파일 목록",
"builtins.lobe-cloud-sandbox.apiName.moveLocalFiles": "파일 이동",
"builtins.lobe-cloud-sandbox.apiName.readLocalFile": "파일 내용 읽기",
"builtins.lobe-cloud-sandbox.apiName.renameLocalFile": "이름 변경",
"builtins.lobe-cloud-sandbox.apiName.runCommand": "명령어 실행",
"builtins.lobe-cloud-sandbox.apiName.searchLocalFiles": "파일 검색",
"builtins.lobe-cloud-sandbox.apiName.writeLocalFile": "파일 쓰기",
"builtins.lobe-cloud-sandbox.inspector.noResults": "결과 없음",
"builtins.lobe-cloud-sandbox.title": "클라우드 샌드박스",
"builtins.lobe-group-agent-builder.apiName.batchCreateAgents": "에이전트 일괄 생성",
"builtins.lobe-group-agent-builder.apiName.createAgent": "에이전트 생성",
"builtins.lobe-group-agent-builder.apiName.createGroup": "그룹 생성",
"builtins.lobe-group-agent-builder.apiName.getAgentInfo": "구성원 정보 가져오기",
"builtins.lobe-group-agent-builder.apiName.getAvailableModels": "사용 가능한 모델 가져오기",
"builtins.lobe-group-agent-builder.apiName.installPlugin": "기능 설치",
"builtins.lobe-group-agent-builder.apiName.inviteAgent": "멤버 초대",
"builtins.lobe-group-agent-builder.apiName.removeAgent": "멤버 제거",
"builtins.lobe-group-agent-builder.apiName.searchAgent": "에이전트 검색",
"builtins.lobe-group-agent-builder.apiName.searchMarketTools": "기능 마켓 검색",
"builtins.lobe-group-agent-builder.apiName.updateAgentConfig": "도우미 설정 업데이트",
"builtins.lobe-group-agent-builder.apiName.updateAgentPrompt": "에이전트 프롬프트 업데이트",
"builtins.lobe-group-agent-builder.apiName.updateGroup": "그룹 업데이트",
"builtins.lobe-group-agent-builder.apiName.updateGroupPrompt": "그룹 프롬프트 업데이트",
"builtins.lobe-group-agent-builder.apiName.updateSupervisorPrompt": "감독자 프롬프트 업데이트",
"builtins.lobe-group-agent-builder.inspector.agents": "에이전트",
"builtins.lobe-group-agent-builder.inspector.avatar": "아바타",
"builtins.lobe-group-agent-builder.inspector.backgroundColor": "배경색",
"builtins.lobe-group-agent-builder.inspector.description": "설명",
"builtins.lobe-group-agent-builder.inspector.noResults": "결과 없음",
"builtins.lobe-group-agent-builder.inspector.openingMessage": "시작 메시지",
"builtins.lobe-group-agent-builder.inspector.openingQuestions": "시작 질문",
"builtins.lobe-group-agent-builder.inspector.title": "제목",
"builtins.lobe-group-agent-builder.title": "그룹 도우미 빌더",
"builtins.lobe-group-management.apiName.broadcast": "모두에게 발언",
"builtins.lobe-group-management.apiName.createWorkflow": "워크플로우 계획",
"builtins.lobe-group-management.apiName.executeAgentTask": "에이전트 작업 실행",
"builtins.lobe-group-management.apiName.executeAgentTasks": "병렬 에이전트 작업 실행",
"builtins.lobe-group-management.apiName.getAgentInfo": "팀원 정보 가져오기",
"builtins.lobe-group-management.apiName.interrupt": "작업 중단",
"builtins.lobe-group-management.apiName.speak": "지정 팀원 발언",
"builtins.lobe-group-management.apiName.summarize": "대화 요약",
"builtins.lobe-group-management.apiName.vote": "투표 시작",
"builtins.lobe-group-management.inspector.broadcast.title": "다음 에이전트가 말합니다:",
"builtins.lobe-group-management.inspector.executeAgentTask.assignTo": "할당",
"builtins.lobe-group-management.inspector.executeAgentTask.task": "작업:",
"builtins.lobe-group-management.inspector.executeAgentTasks.title": "작업 할당 대상:",
"builtins.lobe-group-management.inspector.speak.title": "지정된 에이전트가 말합니다:",
"builtins.lobe-group-management.title": "팀 조율",
"builtins.lobe-gtd.apiName.clearTodos": "할 일 비우기",
"builtins.lobe-gtd.apiName.clearTodos.modeAll": "전체",
"builtins.lobe-gtd.apiName.clearTodos.modeCompleted": "완료됨",
"builtins.lobe-gtd.apiName.clearTodos.result": "<mode>{{mode}}</mode> 할 일 삭제",
"builtins.lobe-gtd.apiName.completeTodos": "할 일 완료",
"builtins.lobe-gtd.apiName.createPlan": "계획 만들기",
"builtins.lobe-gtd.apiName.createPlan.result": "계획 생성: <goal>{{goal}}</goal>",
"builtins.lobe-gtd.apiName.createTodos": "할 일 만들기",
"builtins.lobe-gtd.apiName.execTask": "작업 실행",
"builtins.lobe-gtd.apiName.execTask.completed": "작업이 생성되었습니다: ",
"builtins.lobe-gtd.apiName.execTask.loading": "작업 생성 중: ",
"builtins.lobe-gtd.apiName.execTasks": "작업들 실행",
"builtins.lobe-gtd.apiName.removeTodos": "할 일 삭제",
"builtins.lobe-gtd.apiName.updatePlan": "계획 업데이트",
"builtins.lobe-gtd.apiName.updatePlan.completed": "완료됨",
"builtins.lobe-gtd.apiName.updatePlan.modified": "수정됨",
"builtins.lobe-gtd.apiName.updateTodos": "할 일 업데이트",
"builtins.lobe-gtd.title": "GTD 도구",
"builtins.lobe-knowledge-base.apiName.readKnowledge": "지식 베이스 내용 읽기",
"builtins.lobe-knowledge-base.apiName.searchKnowledgeBase": "지식 베이스 검색",
"builtins.lobe-knowledge-base.inspector.andMoreFiles": "외에 {{count}}개 더",
"builtins.lobe-knowledge-base.inspector.noResults": "결과 없음",
"builtins.lobe-knowledge-base.title": "지식 베이스",
"builtins.lobe-local-system.apiName.editLocalFile": "파일 편집",
"builtins.lobe-local-system.apiName.getCommandOutput": "코드 출력 가져오기",
"builtins.lobe-local-system.apiName.globLocalFiles": "파일 검색",
"builtins.lobe-local-system.apiName.grepContent": "내용 검색",
"builtins.lobe-local-system.apiName.killCommand": "코드 실행 중지",
"builtins.lobe-local-system.apiName.listLocalFiles": "파일 목록 보기",
"builtins.lobe-local-system.apiName.moveLocalFiles": "파일 이동",
"builtins.lobe-local-system.apiName.readLocalFile": "파일 내용 읽기",
"builtins.lobe-local-system.apiName.renameLocalFile": "파일 이름 변경",
"builtins.lobe-local-system.apiName.runCommand": "코드 실행",
"builtins.lobe-local-system.apiName.searchLocalFiles": "파일 검색",
"builtins.lobe-local-system.apiName.writeLocalFile": "파일 쓰기",
"builtins.lobe-local-system.inspector.noResults": "결과 없음",
"builtins.lobe-local-system.inspector.rename.result": "<old>{{oldName}}</old> → <new>{{newName}}</new>",
"builtins.lobe-local-system.title": "로컬 시스템",
"builtins.lobe-notebook.actions.collapse": "접기",
"builtins.lobe-notebook.actions.copy": "복사",
"builtins.lobe-notebook.actions.creating": "문서 생성 중...",
"builtins.lobe-notebook.actions.edit": "편집",
"builtins.lobe-notebook.actions.expand": "확장",
"builtins.lobe-notebook.apiName.createDocument": "문서 생성",
"builtins.lobe-notebook.apiName.deleteDocument": "문서 삭제",
"builtins.lobe-notebook.apiName.getDocument": "문서 가져오기",
"builtins.lobe-notebook.apiName.updateDocument": "문서 업데이트",
"builtins.lobe-notebook.title": "노트북",
"builtins.lobe-page-agent.apiName.batchUpdate": "노드 일괄 업데이트",
"builtins.lobe-page-agent.apiName.compareSnapshots": "스냅샷 비교",
"builtins.lobe-page-agent.apiName.convertToList": "목록으로 변환",
"builtins.lobe-page-agent.apiName.createNode": "노드 생성",
"builtins.lobe-page-agent.apiName.cropImage": "이미지 자르기",
"builtins.lobe-page-agent.apiName.deleteNode": "노드 삭제",
"builtins.lobe-page-agent.apiName.deleteSnapshot": "스냅샷 삭제",
"builtins.lobe-page-agent.apiName.deleteTableColumn": "표 열 삭제",
"builtins.lobe-page-agent.apiName.deleteTableRow": "표 행 삭제",
"builtins.lobe-page-agent.apiName.duplicateNode": "노드 복제",
"builtins.lobe-page-agent.apiName.editTitle": "페이지 제목 변경",
"builtins.lobe-page-agent.apiName.editTitle.result": "제목을 \"<title>{{title}}</title>\"(으)로 변경",
"builtins.lobe-page-agent.apiName.getPageContent": "문서 구조 가져오기",
"builtins.lobe-page-agent.apiName.indentListItem": "목록 항목 들여쓰기",
"builtins.lobe-page-agent.apiName.initPage": "내용 작성 시작",
"builtins.lobe-page-agent.apiName.initPage.chars": "자",
"builtins.lobe-page-agent.apiName.initPage.creating": "문서 생성 중",
"builtins.lobe-page-agent.apiName.initPage.lines": "줄",
"builtins.lobe-page-agent.apiName.initPage.result": "문서가 생성되었습니다",
"builtins.lobe-page-agent.apiName.insertTableColumn": "표 열 삽입",
"builtins.lobe-page-agent.apiName.insertTableRow": "표 행 삽입",
"builtins.lobe-page-agent.apiName.listSnapshots": "스냅샷 목록",
"builtins.lobe-page-agent.apiName.mergeNodes": "노드 병합",
"builtins.lobe-page-agent.apiName.modifyNodes": "문서 수정",
"builtins.lobe-page-agent.apiName.modifyNodes.addNodes": "내용 추가",
"builtins.lobe-page-agent.apiName.modifyNodes.deleteNodes": "내용 삭제",
"builtins.lobe-page-agent.apiName.modifyNodes.init": "수정 준비 중",
"builtins.lobe-page-agent.apiName.modifyNodes.result": "+{{insert}} / ~{{modify}} / -{{remove}}",
"builtins.lobe-page-agent.apiName.moveNode": "노드 이동",
"builtins.lobe-page-agent.apiName.outdentListItem": "목록 항목 내어쓰기",
"builtins.lobe-page-agent.apiName.replaceText": "텍스트 교체",
"builtins.lobe-page-agent.apiName.replaceText.count": "{{count}}개 교체됨",
"builtins.lobe-page-agent.apiName.replaceText.empty": "(비어 있음)",
"builtins.lobe-page-agent.apiName.replaceText.init": "교체 준비 중",
"builtins.lobe-page-agent.apiName.resizeImage": "이미지 크기 조정",
"builtins.lobe-page-agent.apiName.restoreSnapshot": "스냅샷 복원",
"builtins.lobe-page-agent.apiName.rotateImage": "이미지 회전",
"builtins.lobe-page-agent.apiName.saveSnapshot": "스냅샷 저장",
"builtins.lobe-page-agent.apiName.setImageAlt": "이미지 대체 텍스트 설정",
"builtins.lobe-page-agent.apiName.splitNode": "노드 분할",
"builtins.lobe-page-agent.apiName.toggleListType": "목록 유형 전환",
"builtins.lobe-page-agent.apiName.unwrapNode": "노드 풀기",
"builtins.lobe-page-agent.apiName.updateNode": "노드 업데이트",
"builtins.lobe-page-agent.apiName.wrapNodes": "노드 감싸기",
"builtins.lobe-page-agent.title": "문서",
"builtins.lobe-skill-store.apiName.importFromMarket": "마켓에서 가져오기",
"builtins.lobe-skill-store.apiName.importSkill": "스킬 가져오기",
"builtins.lobe-skill-store.apiName.searchSkill": "스킬 검색",
"builtins.lobe-skill-store.inspector.noResults": "결과 없음",
"builtins.lobe-skill-store.render.installs": "설치 수",
"builtins.lobe-skill-store.render.repository": "저장소",
"builtins.lobe-skill-store.render.version": "버전",
"builtins.lobe-skill-store.title": "스킬 스토어",
"builtins.lobe-skills.apiName.activateSkill": "스킬 활성화",
"builtins.lobe-skills.apiName.execScript": "스크립트 실행",
"builtins.lobe-skills.apiName.exportFile": "파일 내보내기",
"builtins.lobe-skills.apiName.importFromMarket": "마켓에서 가져오기",
"builtins.lobe-skills.apiName.importSkill": "스킬 가져오기",
"builtins.lobe-skills.apiName.readReference": "참조 읽기",
"builtins.lobe-skills.apiName.runCommand": "명령 실행",
"builtins.lobe-skills.apiName.searchSkill": "스킬 검색",
"builtins.lobe-skills.title": "스킬",
"builtins.lobe-topic-reference.apiName.getTopicContext": "토픽 컨텍스트 가져오기",
"builtins.lobe-topic-reference.title": "토픽 참조",
"builtins.lobe-user-interaction.apiName.askUserQuestion": "사용자 질문 요청",
"builtins.lobe-user-interaction.apiName.cancelUserResponse": "사용자 응답 취소",
"builtins.lobe-user-interaction.apiName.getInteractionState": "상호작용 상태 가져오기",
"builtins.lobe-user-interaction.apiName.skipUserResponse": "사용자 응답 건너뛰기",
"builtins.lobe-user-interaction.apiName.submitUserResponse": "사용자 응답 제출",
"builtins.lobe-user-interaction.title": "사용자 상호작용",
"builtins.lobe-user-memory.apiName.addContextMemory": "상황 기억 추가",
"builtins.lobe-user-memory.apiName.addExperienceMemory": "경험 기억 추가",
"builtins.lobe-user-memory.apiName.addIdentityMemory": "신원 기억 추가",
"builtins.lobe-user-memory.apiName.addPreferenceMemory": "선호 기억 추가",
"builtins.lobe-user-memory.apiName.queryTaxonomyOptions": "분류 체계 조회",
"builtins.lobe-user-memory.apiName.removeIdentityMemory": "신원 기억 삭제",
"builtins.lobe-user-memory.apiName.searchUserMemory": "기억 검색",
"builtins.lobe-user-memory.apiName.updateIdentityMemory": "신원 기억 업데이트",
"builtins.lobe-user-memory.inspector.noResults": "결과 없음",
"builtins.lobe-user-memory.render.contexts": "상황",
"builtins.lobe-user-memory.render.experiences": "경험",
"builtins.lobe-user-memory.render.preferences": "선호",
"builtins.lobe-user-memory.title": "기억",
"builtins.lobe-web-browsing.apiName.crawlMultiPages": "여러 페이지 내용 읽기",
"builtins.lobe-web-browsing.apiName.crawlSinglePage": "페이지 내용 읽기",
"builtins.lobe-web-browsing.apiName.search": "웹 페이지 검색",
"builtins.lobe-web-browsing.inspector.noResults": "결과 없음",
"builtins.lobe-web-browsing.title": "인터넷 검색",
"builtins.lobe-web-onboarding.apiName.finishOnboarding": "온보딩 완료",
"builtins.lobe-web-onboarding.apiName.getOnboardingState": "온보딩 상태 읽기",
"builtins.lobe-web-onboarding.apiName.readDocument": "문서 읽기",
"builtins.lobe-web-onboarding.apiName.saveUserQuestion": "사용자 질문 저장",
"builtins.lobe-web-onboarding.apiName.updateDocument": "문서 업데이트",
"builtins.lobe-web-onboarding.apiName.writeDocument": "문서 작성",
"builtins.lobe-web-onboarding.title": "사용자 온보딩",
"confirm": "확인",
"debug.arguments": "호출 인자",
"debug.error": "오류 로그",
"debug.function_call": "함수 호출",
"debug.intervention": "기능 개입",
"debug.off": "디버그 끄기",
"debug.on": "기능 호출 정보 보기",
"debug.payload": "기능 페이로드",
"debug.pluginState": "기능 상태",
"debug.response": "응답 결과",
"debug.title": "기능 상세 정보",
"debug.tool_call": "도구 호출 요청",
"detailModal.customPlugin.description": "자세한 내용은 편집 페이지에서 확인하세요",
"detailModal.customPlugin.editBtn": "지금 편집",
"detailModal.customPlugin.title": "사용자 정의 기능입니다",
"detailModal.emptyState.description": "이 기능을 설치한 후 기능 및 설정 옵션을 확인할 수 있습니다",
"detailModal.emptyState.title": "설치 후 기능 상세 보기",
"detailModal.info.description": "API 설명",
"detailModal.info.name": "API 이름",
"detailModal.tabs.info": "기능 기능",
"detailModal.tabs.manifest": "설치 파일",
"detailModal.tabs.settings": "설정",
"detailModal.title": "기능 상세 정보",
"dev.confirmDeleteDevPlugin": "이 로컬 기능을 삭제하려고 합니다. 삭제 후 복구할 수 없습니다. 삭제하시겠습니까?",
"dev.customParams.useProxy.label": "프록시를 통해 설치 (CORS 오류 발생 시 이 옵션을 활성화한 후 다시 시도하세요)",
"dev.deleteSuccess": "기능이 성공적으로 삭제되었습니다",
"dev.manifest.identifier.desc": "기능의 고유 식별자",
"dev.manifest.identifier.label": "식별자",
"dev.manifest.mode.claude": "Claude 스킬",
"dev.manifest.mode.claudeWip": "곧 출시 예정",
"dev.manifest.mode.mcp": "MCP 기능",
"dev.manifest.name.desc": "기능 제목",
"dev.manifest.name.label": "제목",
"dev.manifest.name.placeholder": "검색 엔진",
"dev.mcp.advanced.title": "고급 설정",
"dev.mcp.args.desc": "명령 실행 시 전달할 인자 목록. 일반적으로 MCP 서버 이름 또는 시작 스크립트 경로를 입력합니다",
"dev.mcp.args.label": "명령 인자",
"dev.mcp.args.placeholder": "예: mcp-hello-world",
"dev.mcp.args.required": "시작 인자를 입력하세요",
"dev.mcp.auth.bear": "API Key",
"dev.mcp.auth.desc": "MCP 서버의 인증 방식을 선택하세요",
"dev.mcp.auth.label": "인증 유형",
"dev.mcp.auth.none": "인증 없음",
"dev.mcp.auth.placeholder": "인증 유형을 선택하세요",
"dev.mcp.auth.token.desc": "API Key 또는 Bearer Token을 입력하세요",
"dev.mcp.auth.token.label": "API Key",
"dev.mcp.auth.token.placeholder": "sk-xxxxx",
"dev.mcp.auth.token.required": "인증 토큰을 입력하세요",
"dev.mcp.avatar.label": "기능 아이콘",
"dev.mcp.command.desc": "MCP STDIO 서버를 시작할 실행 파일 또는 스크립트",
"dev.mcp.command.label": "명령어",
"dev.mcp.command.placeholder": "예: npx / uv / docker 등",
"dev.mcp.command.required": "시작 명령어를 입력하세요",
"dev.mcp.desc.desc": "기능 설명 추가",
"dev.mcp.desc.label": "기능 설명",
"dev.mcp.desc.placeholder": "기능 사용법 및 사용 시나리오 등",
"dev.mcp.endpoint.desc": "MCP Streamable HTTP 서버 주소를 입력하세요",
"dev.mcp.endpoint.label": "MCP 엔드포인트 URL",
"dev.mcp.env.add": "행 추가",
"dev.mcp.env.desc": "MCP 서버에 필요한 환경 변수를 입력하세요",
"dev.mcp.env.duplicateKeyError": "키는 고유해야 합니다",
"dev.mcp.env.formValidationFailed": "폼 유효성 검사 실패. 인자 형식을 확인하세요",
"dev.mcp.env.keyRequired": "키는 비워둘 수 없습니다",
"dev.mcp.env.label": "MCP 서버 환경 변수",
"dev.mcp.env.stringifyError": "인자를 직렬화할 수 없습니다. 형식을 확인하세요",
"dev.mcp.headers.add": "행 추가",
"dev.mcp.headers.desc": "요청 헤더를 입력하세요",
"dev.mcp.headers.label": "HTTP 헤더",
"dev.mcp.identifier.desc": "영문으로 MCP 기능 이름을 지정하세요",
"dev.mcp.identifier.invalid": "식별자는 영문, 숫자, 하이픈(-), 밑줄(_)만 사용할 수 있습니다",
"dev.mcp.identifier.label": "MCP 기능 이름",
"dev.mcp.identifier.placeholder": "예: my-mcp-plugin",
"dev.mcp.identifier.required": "MCP 서비스 식별자를 입력하세요",
"dev.mcp.previewManifest": "기능 설명 파일 미리보기",
"dev.mcp.quickImport": "JSON 설정 빠른 가져오기",
"dev.mcp.quickImportError.empty": "입력 내용은 비워둘 수 없습니다",
"dev.mcp.quickImportError.invalidJson": "유효하지 않은 JSON 형식",
"dev.mcp.quickImportError.invalidStructure": "JSON 구조가 유효하지 않습니다",
"dev.mcp.stdioNotSupported": "현재 환경에서는 stdio 유형의 MCP 기능을 지원하지 않습니다",
"dev.mcp.testConnection": "연결 테스트",
"dev.mcp.testConnectionTip": "연결 테스트에 성공해야 MCP 기능을 정상적으로 사용할 수 있습니다",
"dev.mcp.type.desc": "MCP 기능의 통신 방식을 선택하세요. 웹 버전은 Streamable HTTP만 지원합니다",
"dev.mcp.type.httpFeature1": "웹 및 데스크탑 모두 지원",
"dev.mcp.type.httpFeature2": "원격 MCP 서버 연결, 별도 설치 불필요",
"dev.mcp.type.httpShortDesc": "스트리밍 HTTP 기반 통신 프로토콜",
"dev.mcp.type.label": "MCP 기능 유형",
"dev.mcp.type.stdioFeature1": "낮은 지연 시간, 로컬 실행에 적합",
"dev.mcp.type.stdioFeature2": "로컬에 MCP 서버 설치 필요",
"dev.mcp.type.stdioNotAvailable": "STDIO 모드는 데스크탑 버전에서만 사용 가능합니다",
"dev.mcp.type.stdioShortDesc": "표준 입출력 기반 통신 프로토콜",
"dev.mcp.type.title": "MCP 기능 유형",
"dev.mcp.url.desc": "MCP 서버의 Streamable HTTP 주소를 입력하세요. SSE 모드는 지원하지 않습니다",
"dev.mcp.url.invalid": "유효한 URL을 입력하세요",
"dev.mcp.url.label": "Streamable HTTP 엔드포인트 URL",
"dev.mcp.url.required": "MCP 서비스 URL을 입력하세요",
"dev.meta.author.desc": "기능 작성자",
"dev.meta.author.label": "작성자",
"dev.meta.avatar.desc": "기능 아이콘. 이모지 또는 URL 사용 가능",
"dev.meta.avatar.label": "아이콘",
"dev.meta.description.desc": "기능 설명",
"dev.meta.description.label": "설명",
"dev.meta.description.placeholder": "검색 엔진에서 정보 검색",
"dev.meta.formFieldRequired": "이 필드는 필수입니다",
"dev.meta.homepage.desc": "기능 홈페이지",
"dev.meta.homepage.label": "홈페이지",
"dev.meta.identifier.desc": "기능의 고유 식별자. manifest에서 자동 인식됩니다",
"dev.meta.identifier.errorDuplicate": "식별자가 기존 기능과 중복됩니다. 수정해주세요",
"dev.meta.identifier.label": "식별자",
"dev.meta.identifier.pattenErrorMessage": "영문, 숫자, 하이픈(-), 밑줄(_)만 입력 가능합니다",
"dev.meta.lobe": "{{appName}} 기능",
"dev.meta.manifest.desc": "{{appName}}는 이 링크를 통해 기능을 설치합니다",
"dev.meta.manifest.label": "기능 설명 파일 (Manifest) URL",
"dev.meta.manifest.preview": "Manifest 미리보기",
"dev.meta.manifest.refresh": "새로고침",
"dev.meta.openai": "OpenAI 기능",
"dev.meta.title.desc": "기능 제목",
"dev.meta.title.label": "제목",
"dev.meta.title.placeholder": "검색 엔진",
"dev.metaConfig": "기능 메타 정보 설정",
"dev.modalDesc": "사용자 정의 기능을 추가하면 개발 테스트 및 대화에서 직접 사용할 수 있습니다. 개발 문서는 <1>여기↗</>를 참고하세요",
"dev.openai.importUrl": "URL에서 가져오기",
"dev.openai.schema": "스키마",
"dev.preview.api.noParams": "이 도구에는 인자가 없습니다",
"dev.preview.api.noResults": "조건에 맞는 API를 찾을 수 없습니다",
"dev.preview.api.params": "인자:",
"dev.preview.api.searchPlaceholder": "도구 검색...",
"dev.preview.card": "기능 미리보기",
"dev.preview.desc": "기능 설명 미리보기",
"dev.preview.empty.desc": "구성이 완료되면 이곳에서 기능이 지원하는 도구 기능을 미리볼 수 있습니다",
"dev.preview.empty.title": "기능 구성 후 미리보기 시작",
"dev.preview.title": "기능 이름 미리보기",
"dev.save": "기능 설치",
"dev.saveError": "설치에 실패했습니다. 다시 시도해 주세요.",
"dev.saveSuccess": "기능 설정이 성공적으로 저장되었습니다",
"dev.tabs.manifest": "기능 설명 파일 (Manifest)",
"dev.tabs.meta": "기능 메타 정보",
"dev.title.create": "사용자 정의 MCP 스킬 추가",
"dev.title.edit": "사용자 정의 MCP 스킬 편집",
"dev.title.editCommunity": "커뮤니티 스킬 편집",
"dev.title.skillDetails": "스킬 세부정보",
"dev.title.skillSettings": "스킬 설정",
"dev.type.lobe": "{{appName}} 기능",
"dev.type.openai": "OpenAI 기능",
"dev.update": "업데이트",
"dev.updateSuccess": "기능 설정이 성공적으로 업데이트되었습니다",
"empty.description": "기능 스토어에는 다양한 도구가 준비되어 있습니다. 스토어를 방문하여 탐색을 시작하세요.",
"empty.search": "일치하는 기능을 찾을 수 없습니다.",
"empty.title": "기능이 없습니다.",
"error.details": "오류 세부정보",
"error.fetchError": "manifest 링크 요청 실패. 링크가 유효한지, CORS 허용 여부를 확인하세요",
"error.installError": "기능 {{name}} 설치 실패",
"error.manifestInvalid": "manifest 형식이 올바르지 않습니다. 검증 결과:\n\n{{error}}",
"error.noManifest": "설명 파일이 존재하지 않습니다",
"error.openAPIInvalid": "OpenAPI 파싱 실패. 오류:\n\n{{error}}",
"error.reinstallError": "기능 {{name}} 새로고침 실패",
"error.renderError": "도구 렌더링 오류",
"error.testConnectionFailed": "Manifest 가져오기 실패: {{error}}",
"error.unknownError": "알 수 없는 오류가 발생했습니다",
"error.urlError": "이 링크는 JSON 형식의 콘텐츠를 반환하지 않습니다. 유효한 링크인지 확인하세요",
"inspector.args": "인자 목록 보기",
"inspector.delete": "도구 호출 삭제",
"inspector.orphanedToolCall": "이 도구 호출 메시지는 예기치 않은 이유로 고립되었을 수 있으며, 이는 도우미의 정상적인 실행에 영향을 줄 수 있습니다. 제거해 주세요.",
"inspector.pluginRender": "기능 인터페이스 보기",
"list.item.deprecated.title": "삭제됨",
"list.item.local.config": "설정",
"list.item.local.title": "사용자 정의",
"loading.content": "기능 호출 중...",
"loading.plugin": "기능 실행 중...",
"localSystem.workingDirectory.agentDescription": "이 에이전트와의 모든 대화에 대한 기본 작업 디렉터리입니다",
"localSystem.workingDirectory.agentLevel": "에이전트 작업 디렉터리",
"localSystem.workingDirectory.aheadBehindTooltip": "푸시할 {{ahead}} · 풀할 {{behind}} ({{upstream}})",
"localSystem.workingDirectory.aheadTooltip": "{{upstream}}에 푸시할 커밋 {{count}}개",
"localSystem.workingDirectory.behindTooltip": "{{upstream}}에서 풀할 커밋 {{count}}개",
"localSystem.workingDirectory.branchSearchPlaceholder": "브랜치 검색",
"localSystem.workingDirectory.branchesEmpty": "로컬 브랜치 없음",
"localSystem.workingDirectory.branchesHeading": "브랜치",
"localSystem.workingDirectory.branchesLoading": "브랜치 불러오는 중…",
"localSystem.workingDirectory.branchesNoMatch": "일치하는 브랜치 없음",
"localSystem.workingDirectory.cancel": "취소",
"localSystem.workingDirectory.checkoutAction": "체크아웃",
"localSystem.workingDirectory.checkoutFailed": "체크아웃 실패",
"localSystem.workingDirectory.chooseDifferentFolder": "다른 폴더 선택",
"localSystem.workingDirectory.createBranchAction": "새 브랜치 체크아웃…",
"localSystem.workingDirectory.current": "현재 작업 디렉터리",
"localSystem.workingDirectory.detachedHead": "분리된 HEAD ({{sha}})",
"localSystem.workingDirectory.diffStatTooltip": "추가 {{added}} · 수정 {{modified}} · 삭제 {{deleted}}",
"localSystem.workingDirectory.filesAdded": "추가됨",
"localSystem.workingDirectory.filesDeleted": "삭제됨",
"localSystem.workingDirectory.filesEmpty": "커밋되지 않은 변경 없음",
"localSystem.workingDirectory.filesLoading": "변경 사항 불러오는 중…",
"localSystem.workingDirectory.filesModified": "수정됨",
"localSystem.workingDirectory.ghMissing": "연결된 PR을 보려면 GitHub CLI(`gh`)를 설치하고 로그인하세요",
"localSystem.workingDirectory.newBranchPlaceholder": "feature/new-branch-name",
"localSystem.workingDirectory.noRecent": "최근 디렉토리 없음",
"localSystem.workingDirectory.notSet": "작업 디렉터리를 설정하려면 클릭하세요",
"localSystem.workingDirectory.placeholder": "디렉터리 경로를 입력하세요. 예: /Users/name/projects",
"localSystem.workingDirectory.prTooltipWithExtra": "{{title}} (추가 {{count}}개의 오픈 PR 있음)",
"localSystem.workingDirectory.recent": "최근",
"localSystem.workingDirectory.refreshGitStatus": "브랜치 및 PR 상태 새로 고침",
"localSystem.workingDirectory.removeRecent": "최근 항목에서 제거",
"localSystem.workingDirectory.selectFolder": "폴더 선택",
"localSystem.workingDirectory.title": "작업 디렉터리",
"localSystem.workingDirectory.topicDescription": "이 대화에만 적용되는 에이전트 기본값 재정의",
"localSystem.workingDirectory.topicLevel": "대화 재정의",
"localSystem.workingDirectory.topicOverride": "이 대화에 대한 재정의",
"localSystem.workingDirectory.uncommittedChanges_one": "커밋되지 않은 변경: {{count}}개 파일",
"localSystem.workingDirectory.uncommittedChanges_other": "커밋되지 않은 변경: {{count}}개 파일",
"mcpEmpty.deployment": "배포 옵션이 없습니다.",
"mcpEmpty.prompts": "이 기능에는 프롬프트가 없습니다.",
"mcpEmpty.resources": "이 기능에는 리소스가 없습니다.",
"mcpEmpty.tools": "이 기능에는 도구 기능이 없습니다.",
"mcpInstall.CHECKING_INSTALLATION": "설치 환경 확인 중...",
"mcpInstall.COMPLETED": "설치 완료",
"mcpInstall.CONFIGURATION_REQUIRED": "설정을 완료한 후 설치를 계속 진행해 주세요",
"mcpInstall.ERROR": "설치 오류",
"mcpInstall.FETCHING_MANIFEST": "기능 설명 파일 가져오는 중...",
"mcpInstall.GETTING_SERVER_MANIFEST": "MCP 서버 초기화 중...",
"mcpInstall.INSTALLING_PLUGIN": "기능 설치 중...",
"mcpInstall.configurationDescription": "이 MCP 기능은 정상적으로 사용하기 위해 설정이 필요합니다. 필수 설정 정보를 입력해 주세요.",
"mcpInstall.configurationRequired": "기능 설정",
"mcpInstall.continueInstall": "설치 계속",
"mcpInstall.dependenciesDescription": "이 기능을 정상적으로 사용하려면 다음 시스템 종속 항목이 필요합니다. 안내에 따라 누락된 종속 항목을 설치한 후, 다시 확인을 클릭하여 설치를 계속하세요.",
"mcpInstall.dependenciesRequired": "기능의 시스템 종속 항목을 설치해 주세요",
"mcpInstall.dependencyStatus.installed": "설치됨",
"mcpInstall.dependencyStatus.notInstalled": "설치되지 않음",
"mcpInstall.dependencyStatus.requiredVersion": "필요 버전: {{version}}",
"mcpInstall.errorDetails.args": "매개변수",
"mcpInstall.errorDetails.command": "명령어",
"mcpInstall.errorDetails.connectionParams": "연결 매개변수",
"mcpInstall.errorDetails.env": "환경 변수",
"mcpInstall.errorDetails.errorOutput": "오류 로그",
"mcpInstall.errorDetails.exitCode": "종료 코드",
"mcpInstall.errorDetails.hideDetails": "세부 정보 숨기기",
"mcpInstall.errorDetails.originalError": "원본 오류",
"mcpInstall.errorDetails.showDetails": "세부 정보 보기",
"mcpInstall.errorTypes.AUTHORIZATION_ERROR": "인증 오류",
"mcpInstall.errorTypes.CONNECTION_FAILED": "연결 실패",
"mcpInstall.errorTypes.INITIALIZATION_TIMEOUT": "초기화 시간 초과",
"mcpInstall.errorTypes.PROCESS_SPAWN_ERROR": "프로세스 시작 실패",
"mcpInstall.errorTypes.UNKNOWN_ERROR": "알 수 없는 오류",
"mcpInstall.errorTypes.VALIDATION_ERROR": "매개변수 검증 실패",
"mcpInstall.installError": "MCP 기능 설치 실패, 실패 원인: {{detail}}",
"mcpInstall.installMethods.manual": "수동 설치:",
"mcpInstall.installMethods.recommended": "권장 설치 방법:",
"mcpInstall.recheckDependencies": "다시 확인",
"mcpInstall.skipDependencies": "확인 건너뛰기",
"pluginList": "기능 목록",
"protocolInstall.actions.install": "설치",
"protocolInstall.actions.installAnyway": "강제 설치",
"protocolInstall.actions.installed": "설치됨",
"protocolInstall.config.addEnv": "환경 변수 추가",
"protocolInstall.config.addHeaders": "요청 헤더 추가",
"protocolInstall.config.args": "매개변수",
"protocolInstall.config.command": "명령어",
"protocolInstall.config.env": "환경 변수",
"protocolInstall.config.headers": "요청 헤더",
"protocolInstall.config.title": "설정 정보",
"protocolInstall.config.type.http": "유형: HTTP",
"protocolInstall.config.type.label": "유형",
"protocolInstall.config.type.stdio": "유형: Stdio",
"protocolInstall.config.url": "서비스 주소",
"protocolInstall.custom.badge": "사용자 정의 기능",
"protocolInstall.custom.security.description": "이 기능은 공식 인증을 받지 않았으며, 설치 시 보안 위험이 있을 수 있습니다. 기능 출처를 신뢰할 수 있는지 확인해 주세요.",
"protocolInstall.custom.security.title": "⚠️ 보안 위험 경고",
"protocolInstall.custom.title": "사용자 정의 기능 설치",
"protocolInstall.install.title": "설치 정보",
"protocolInstall.marketplace.title": "서드파티 기능 설치",
"protocolInstall.marketplace.trustedBy": "{{name}} 제공",
"protocolInstall.marketplace.unverified.title": "검증되지 않은 서드파티 기능",
"protocolInstall.marketplace.unverified.warning": "이 기능은 검증되지 않은 제3자 커뮤니티에서 제공되며, 설치 전에 해당 출처를 신뢰할 수 있는지 확인하십시오.",
"protocolInstall.marketplace.verified": "검증됨",
"protocolInstall.messages.connectionTestFailed": "연결 테스트 실패",
"protocolInstall.messages.installError": "기능 설치 실패, 다시 시도해 주세요",
"protocolInstall.messages.installSuccess": "기능 {{name}} 설치 성공!",
"protocolInstall.messages.manifestError": "기능 세부 정보 가져오기 실패, 네트워크 연결을 확인한 후 다시 시도해 주세요",
"protocolInstall.messages.manifestNotFound": "기능 설명 파일을 가져올 수 없습니다",
"protocolInstall.meta.author": "작성자",
"protocolInstall.meta.homepage": "홈페이지",
"protocolInstall.meta.identifier": "식별자",
"protocolInstall.meta.source": "출처",
"protocolInstall.meta.version": "버전",
"protocolInstall.official.badge": "LobeHub 공식 기능",
"protocolInstall.official.description": "이 기능은 LobeHub에서 공식적으로 개발 및 유지 관리하며, 엄격한 보안 검토를 거쳐 안심하고 사용할 수 있습니다.",
"protocolInstall.official.loadingMessage": "기능 세부 정보 가져오는 중...",
"protocolInstall.official.loadingTitle": "로딩 중",
"protocolInstall.official.title": "공식 기능 설치",
"protocolInstall.title": "MCP 기능 설치",
"protocolInstall.warning": "⚠️ 이 기능의 출처를 신뢰할 수 있는지 확인해 주세요. 악성 기능은 시스템 보안에 위협이 될 수 있습니다.",
"search.config.addKey": "API 키 추가",
"search.config.close": "삭제",
"search.config.confirm": "설정 완료 및 재시도",
"search.crawPages.crawling": "링크 분석 중",
"search.crawPages.detail.preview": "미리보기",
"search.crawPages.detail.raw": "원본 텍스트",
"search.crawPages.detail.tooLong": "텍스트가 너무 길어 대화 맥락에는 앞 {{characters}}자만 포함되며, 초과된 부분은 제외됩니다",
"search.crawPages.meta.crawler": "크롤링 모드",
"search.crawPages.meta.words": "문자 수",
"search.searchxng.baseURL": "URL을 입력해 주세요",
"search.searchxng.description": "SearchXNG 주소를 입력하면 온라인 검색을 시작할 수 있습니다",
"search.searchxng.keyPlaceholder": "API 키를 입력해 주세요",
"search.searchxng.title": "SearchXNG 검색 엔진 설정",
"search.searchxng.unconfiguredDesc": "관리자에게 문의하여 SearchXNG 검색 엔진 설정을 완료한 후 온라인 검색을 시작할 수 있습니다",
"search.searchxng.unconfiguredTitle": "SearchXNG 검색 엔진이 아직 설정되지 않았습니다",
"search.title": "온라인 검색",
"setting": "기능 설정",
"settings.capabilities.prompts": "프롬프트",
"settings.capabilities.resources": "리소스",
"settings.capabilities.title": "기능 기능",
"settings.capabilities.tools": "도구",
"settings.configuration.title": "기능 설정",
"settings.connection.args": "시작 매개변수",
"settings.connection.command": "시작 명령어",
"settings.connection.title": "연결 정보",
"settings.connection.type": "연결 유형",
"settings.connection.url": "서비스 주소",
"settings.edit": "편집",
"settings.envConfigDescription": "이 설정은 MCP 서버 시작 시 환경 변수로 프로세스에 전달됩니다",
"settings.httpTypeNotice": "HTTP 유형의 MCP 기능은 별도의 환경 변수 설정이 필요하지 않습니다",
"settings.indexUrl.title": "커뮤니티 인덱스",
"settings.indexUrl.tooltip": "온라인 편집은 지원되지 않으며, 배포 시 환경 변수로 설정해 주세요",
"settings.messages.connectionUpdateFailed": "연결 정보 업데이트 실패",
"settings.messages.connectionUpdateSuccess": "연결 정보 업데이트 성공",
"settings.messages.envUpdateFailed": "환경 변수 저장 실패",
"settings.messages.envUpdateSuccess": "환경 변수 저장 성공",
"settings.modalDesc": "기능 커뮤니티의 주소를 설정하면 사용자 정의 커뮤니티를 사용할 수 있습니다.",
"settings.rules.argsRequired": "시작 매개변수를 입력해 주세요",
"settings.rules.commandRequired": "시작 명령어를 입력해 주세요",
"settings.rules.urlRequired": "서비스 주소를 입력해 주세요",
"settings.saveSettings": "설정 저장",
"settings.title": "기능 커뮤니티 설정",
"showInPortal": "워크스페이스에서 자세히 보기",
"skillDetail.author": "작성자",
"skillDetail.details": "세부 정보",
"skillDetail.developedBy": "개발자",
"skillDetail.networkError": "데이터를 불러오지 못했습니다. 네트워크를 확인한 후 다시 시도하세요.",
"skillDetail.noAgents": "아직 이 스킬을 사용하는 에이전트가 없습니다.",
"skillDetail.tabs.agents": "이 스킬을 사용하는 에이전트",
"skillDetail.tabs.overview": "개요",
"skillDetail.tabs.tools": "기능",
"skillDetail.tools": "도구",
"skillDetail.trustWarning": "신뢰할 수 있는 개발자의 커넥터만 사용하세요. LobeHub은 개발자가 제공하는 도구를 통제하지 않으며, 해당 도구가 의도한 대로 작동하거나 변경되지 않을 것이라는 보장을 할 수 없습니다.",
"skillInstallBanner.dismiss": "닫기",
"skillInstallBanner.title": "Lobe AI에 스킬 추가",
"store.actions.cancel": "설치 취소",
"store.actions.configure": "구성",
"store.actions.confirmUninstall": "이 기능을 제거하려고 합니다. 제거 시 설정 정보도 함께 삭제됩니다. 계속하시겠습니까?",
"store.actions.detail": "상세 정보",
"store.actions.install": "설치",
"store.actions.manifest": "설치 파일 편집",
"store.actions.settings": "설정",
"store.actions.uninstall": "제거",
"store.communityPlugin": "서드파티 커뮤니티",
"store.customPlugin": "사용자 정의",
"store.empty": "설치된 기능이 없습니다",
"store.emptySelectHint": "기능을 선택하여 상세 정보를 미리보세요",
"store.installAllPlugins": "전체 설치",
"store.networkError": "기능 스토어를 불러오지 못했습니다. 네트워크 연결을 확인한 후 다시 시도해 주세요",
"store.placeholder": "기능 이름, 설명 또는 키워드 검색...",
"store.releasedAt": "{{createdAt}}에 출시됨",
"store.tabs.installed": "설치됨",
"store.tabs.mcp": "MCP 기능",
"store.tabs.old": "LobeHub 기능",
"store.title": "기능 스토어",
"unknownError": "알 수 없는 오류",
"unknownPlugin": "알 수 없는 기능"
}