mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-14 03:30:19 +00:00
70e7e441b2
* ✨ 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>
637 lines
44 KiB
JSON
637 lines
44 KiB
JSON
{
|
||
"arguments.moreParams": "{{count}} paramètres au total",
|
||
"arguments.title": "Arguments",
|
||
"builtins.lobe-activator.apiName.activateTools": "Activer les Outils",
|
||
"builtins.lobe-activator.inspector.activateTools.notFoundCount": "{{count}} introuvable(s)",
|
||
"builtins.lobe-agent-builder.apiName.getAvailableModels": "Obtenir les modèles disponibles",
|
||
"builtins.lobe-agent-builder.apiName.getAvailableTools": "Obtenir les Compétences disponibles",
|
||
"builtins.lobe-agent-builder.apiName.getConfig": "Obtenir la configuration",
|
||
"builtins.lobe-agent-builder.apiName.getMeta": "Obtenir les métadonnées",
|
||
"builtins.lobe-agent-builder.apiName.getPrompt": "Obtenir l'invite système",
|
||
"builtins.lobe-agent-builder.apiName.installPlugin": "Installer la compétence",
|
||
"builtins.lobe-agent-builder.apiName.searchMarketTools": "Rechercher dans le marché des Compétences",
|
||
"builtins.lobe-agent-builder.apiName.searchOfficialTools": "Rechercher les Compétences officielles",
|
||
"builtins.lobe-agent-builder.apiName.setModel": "Définir le modèle",
|
||
"builtins.lobe-agent-builder.apiName.setOpeningMessage": "Définir le message d'ouverture",
|
||
"builtins.lobe-agent-builder.apiName.setOpeningQuestions": "Définir les questions d'ouverture",
|
||
"builtins.lobe-agent-builder.apiName.togglePlugin": "Activer/Désactiver la Compétence",
|
||
"builtins.lobe-agent-builder.apiName.updateChatConfig": "Mettre à jour la configuration du chat",
|
||
"builtins.lobe-agent-builder.apiName.updateConfig": "Mettre à jour la configuration",
|
||
"builtins.lobe-agent-builder.apiName.updateMeta": "Mettre à jour les métadonnées",
|
||
"builtins.lobe-agent-builder.apiName.updatePrompt": "Mettre à jour l'invite système",
|
||
"builtins.lobe-agent-builder.inspector.chars": " caractères",
|
||
"builtins.lobe-agent-builder.inspector.disablePlugin": "Désactiver",
|
||
"builtins.lobe-agent-builder.inspector.enablePlugin": "Activer",
|
||
"builtins.lobe-agent-builder.inspector.modelsCount": "{{count}} modèles",
|
||
"builtins.lobe-agent-builder.inspector.noResults": "Aucun résultat",
|
||
"builtins.lobe-agent-builder.inspector.togglePlugin": "Basculer",
|
||
"builtins.lobe-agent-builder.title": "Expert en création d'agents",
|
||
"builtins.lobe-agent-documents.apiName.copyDocument": "Copier le document",
|
||
"builtins.lobe-agent-documents.apiName.createDocument": "Créer un document",
|
||
"builtins.lobe-agent-documents.apiName.editDocument": "Modifier le document",
|
||
"builtins.lobe-agent-documents.apiName.listDocuments": "Lister les documents",
|
||
"builtins.lobe-agent-documents.apiName.patchDocument": "Modifier le document",
|
||
"builtins.lobe-agent-documents.apiName.readDocument": "Lire le document",
|
||
"builtins.lobe-agent-documents.apiName.readDocumentByFilename": "Lire le document par nom de fichier",
|
||
"builtins.lobe-agent-documents.apiName.removeDocument": "Supprimer le document",
|
||
"builtins.lobe-agent-documents.apiName.renameDocument": "Renommer le document",
|
||
"builtins.lobe-agent-documents.apiName.updateLoadRule": "Mettre à jour la règle de chargement",
|
||
"builtins.lobe-agent-documents.apiName.upsertDocumentByFilename": "Insérer ou mettre à jour le document par nom de fichier",
|
||
"builtins.lobe-agent-documents.title": "Documents de l'agent",
|
||
"builtins.lobe-agent-management.apiName.callAgent": "Appeler un agent",
|
||
"builtins.lobe-agent-management.apiName.createAgent": "Créer un agent",
|
||
"builtins.lobe-agent-management.apiName.deleteAgent": "Supprimer un agent",
|
||
"builtins.lobe-agent-management.apiName.duplicateAgent": "Dupliquer l’agent",
|
||
"builtins.lobe-agent-management.apiName.getAgentDetail": "Obtenir les détails de l’agent",
|
||
"builtins.lobe-agent-management.apiName.installPlugin": "Installer le plugin",
|
||
"builtins.lobe-agent-management.apiName.searchAgent": "Rechercher des agents",
|
||
"builtins.lobe-agent-management.apiName.updateAgent": "Mettre à jour un agent",
|
||
"builtins.lobe-agent-management.apiName.updatePrompt": "Mettre à jour l’invite",
|
||
"builtins.lobe-agent-management.inspector.callAgent.sync": "Appel en cours :",
|
||
"builtins.lobe-agent-management.inspector.callAgent.task": "Attribuer une tâche à :",
|
||
"builtins.lobe-agent-management.inspector.createAgent.title": "Création de l'agent :",
|
||
"builtins.lobe-agent-management.inspector.duplicateAgent.title": "Duplication de l’agent :",
|
||
"builtins.lobe-agent-management.inspector.getAgentDetail.title": "Récupération des détails :",
|
||
"builtins.lobe-agent-management.inspector.installPlugin.title": "Installation du plugin :",
|
||
"builtins.lobe-agent-management.inspector.searchAgent.all": "Rechercher des agents :",
|
||
"builtins.lobe-agent-management.inspector.searchAgent.market": "Rechercher sur le marché :",
|
||
"builtins.lobe-agent-management.inspector.searchAgent.results": "{{count}} résultats",
|
||
"builtins.lobe-agent-management.inspector.searchAgent.user": "Rechercher mes agents :",
|
||
"builtins.lobe-agent-management.inspector.updateAgent.title": "Mise à jour de l'agent :",
|
||
"builtins.lobe-agent-management.inspector.updatePrompt.title": "Mise à jour de l’invite :",
|
||
"builtins.lobe-agent-management.render.duplicateAgent.newId": "Nouvel ID d’agent",
|
||
"builtins.lobe-agent-management.render.duplicateAgent.sourceId": "ID de l’agent source",
|
||
"builtins.lobe-agent-management.render.installPlugin.failed": "Échec de l’installation",
|
||
"builtins.lobe-agent-management.render.installPlugin.plugin": "Plugin",
|
||
"builtins.lobe-agent-management.render.installPlugin.success": "Installé avec succès",
|
||
"builtins.lobe-agent-management.title": "Gestionnaire d'agents",
|
||
"builtins.lobe-claude-code.agent.instruction": "Consigne",
|
||
"builtins.lobe-claude-code.agent.result": "Résultat",
|
||
"builtins.lobe-claude-code.todoWrite.allDone": "Toutes les tâches sont terminées",
|
||
"builtins.lobe-claude-code.todoWrite.currentStep": "Étape actuelle",
|
||
"builtins.lobe-claude-code.todoWrite.todos": "Tâches",
|
||
"builtins.lobe-cloud-sandbox.apiName.editLocalFile": "Modifier le fichier",
|
||
"builtins.lobe-cloud-sandbox.apiName.executeCode": "Exécuter le code",
|
||
"builtins.lobe-cloud-sandbox.apiName.exportFile": "Exporter le fichier",
|
||
"builtins.lobe-cloud-sandbox.apiName.getCommandOutput": "Obtenir la sortie de la commande",
|
||
"builtins.lobe-cloud-sandbox.apiName.globLocalFiles": "Rechercher des fichiers (glob)",
|
||
"builtins.lobe-cloud-sandbox.apiName.grepContent": "Rechercher dans le contenu",
|
||
"builtins.lobe-cloud-sandbox.apiName.killCommand": "Terminer la commande",
|
||
"builtins.lobe-cloud-sandbox.apiName.listLocalFiles": "Lister les fichiers",
|
||
"builtins.lobe-cloud-sandbox.apiName.moveLocalFiles": "Déplacer les fichiers",
|
||
"builtins.lobe-cloud-sandbox.apiName.readLocalFile": "Lire le contenu du fichier",
|
||
"builtins.lobe-cloud-sandbox.apiName.renameLocalFile": "Renommer",
|
||
"builtins.lobe-cloud-sandbox.apiName.runCommand": "Exécuter la commande",
|
||
"builtins.lobe-cloud-sandbox.apiName.searchLocalFiles": "Rechercher des fichiers",
|
||
"builtins.lobe-cloud-sandbox.apiName.writeLocalFile": "Écrire dans le fichier",
|
||
"builtins.lobe-cloud-sandbox.inspector.noResults": "Aucun résultat",
|
||
"builtins.lobe-cloud-sandbox.title": "Bac à sable Cloud",
|
||
"builtins.lobe-group-agent-builder.apiName.batchCreateAgents": "Créer des agents en lot",
|
||
"builtins.lobe-group-agent-builder.apiName.createAgent": "Créer un agent",
|
||
"builtins.lobe-group-agent-builder.apiName.createGroup": "Créer un groupe",
|
||
"builtins.lobe-group-agent-builder.apiName.getAgentInfo": "Obtenir les informations du membre",
|
||
"builtins.lobe-group-agent-builder.apiName.getAvailableModels": "Obtenir les modèles disponibles",
|
||
"builtins.lobe-group-agent-builder.apiName.installPlugin": "Installer la Compétence",
|
||
"builtins.lobe-group-agent-builder.apiName.inviteAgent": "Inviter un membre",
|
||
"builtins.lobe-group-agent-builder.apiName.removeAgent": "Supprimer un membre",
|
||
"builtins.lobe-group-agent-builder.apiName.searchAgent": "Rechercher des agents",
|
||
"builtins.lobe-group-agent-builder.apiName.searchMarketTools": "Rechercher dans le marché des Compétences",
|
||
"builtins.lobe-group-agent-builder.apiName.updateAgentConfig": "Mettre à jour la configuration de l'agent",
|
||
"builtins.lobe-group-agent-builder.apiName.updateAgentPrompt": "Mettre à jour l'invite de l'agent",
|
||
"builtins.lobe-group-agent-builder.apiName.updateGroup": "Mettre à jour le groupe",
|
||
"builtins.lobe-group-agent-builder.apiName.updateGroupPrompt": "Mettre à jour l'invite du groupe",
|
||
"builtins.lobe-group-agent-builder.apiName.updateSupervisorPrompt": "Mettre à jour l'invite du superviseur",
|
||
"builtins.lobe-group-agent-builder.inspector.agents": "agents",
|
||
"builtins.lobe-group-agent-builder.inspector.avatar": "Avatar",
|
||
"builtins.lobe-group-agent-builder.inspector.backgroundColor": "Couleur d’arrière-plan",
|
||
"builtins.lobe-group-agent-builder.inspector.description": "Description",
|
||
"builtins.lobe-group-agent-builder.inspector.noResults": "Aucun résultat",
|
||
"builtins.lobe-group-agent-builder.inspector.openingMessage": "Message d’accueil",
|
||
"builtins.lobe-group-agent-builder.inspector.openingQuestions": "Questions d’accueil",
|
||
"builtins.lobe-group-agent-builder.inspector.title": "Titre",
|
||
"builtins.lobe-group-agent-builder.title": "Expert en création de groupe",
|
||
"builtins.lobe-group-management.apiName.broadcast": "Tous parlent",
|
||
"builtins.lobe-group-management.apiName.createWorkflow": "Planifier le flux de travail",
|
||
"builtins.lobe-group-management.apiName.executeAgentTask": "Exécuter la tâche de l'agent",
|
||
"builtins.lobe-group-management.apiName.executeAgentTasks": "Exécuter les tâches parallèles des agents",
|
||
"builtins.lobe-group-management.apiName.getAgentInfo": "Obtenir les infos du membre",
|
||
"builtins.lobe-group-management.apiName.interrupt": "Interrompre la tâche",
|
||
"builtins.lobe-group-management.apiName.speak": "Membre désigné parle",
|
||
"builtins.lobe-group-management.apiName.summarize": "Résumer la conversation",
|
||
"builtins.lobe-group-management.apiName.vote": "Lancer un vote",
|
||
"builtins.lobe-group-management.inspector.broadcast.title": "Les agents suivants parlent :",
|
||
"builtins.lobe-group-management.inspector.executeAgentTask.assignTo": "Attribuer",
|
||
"builtins.lobe-group-management.inspector.executeAgentTask.task": "tâche :",
|
||
"builtins.lobe-group-management.inspector.executeAgentTasks.title": "Attribution des tâches à :",
|
||
"builtins.lobe-group-management.inspector.speak.title": "L'agent désigné parle :",
|
||
"builtins.lobe-group-management.title": "Coordinateur de groupe",
|
||
"builtins.lobe-gtd.apiName.clearTodos": "Effacer les tâches",
|
||
"builtins.lobe-gtd.apiName.clearTodos.modeAll": "toutes",
|
||
"builtins.lobe-gtd.apiName.clearTodos.modeCompleted": "terminées",
|
||
"builtins.lobe-gtd.apiName.clearTodos.result": "Effacer les tâches <mode>{{mode}}</mode>",
|
||
"builtins.lobe-gtd.apiName.completeTodos": "Marquer les tâches comme terminées",
|
||
"builtins.lobe-gtd.apiName.createPlan": "Créer un plan",
|
||
"builtins.lobe-gtd.apiName.createPlan.result": "Plan créé : <goal>{{goal}}</goal>",
|
||
"builtins.lobe-gtd.apiName.createTodos": "Créer des tâches",
|
||
"builtins.lobe-gtd.apiName.execTask": "Exécuter la tâche",
|
||
"builtins.lobe-gtd.apiName.execTask.completed": "Tâche créée : ",
|
||
"builtins.lobe-gtd.apiName.execTask.loading": "Création de la tâche : ",
|
||
"builtins.lobe-gtd.apiName.execTasks": "Exécuter les tâches",
|
||
"builtins.lobe-gtd.apiName.removeTodos": "Supprimer les tâches",
|
||
"builtins.lobe-gtd.apiName.updatePlan": "Mettre à jour le plan",
|
||
"builtins.lobe-gtd.apiName.updatePlan.completed": "Terminé",
|
||
"builtins.lobe-gtd.apiName.updatePlan.modified": "Modifié",
|
||
"builtins.lobe-gtd.apiName.updateTodos": "Mettre à jour les tâches",
|
||
"builtins.lobe-gtd.title": "Outils de tâches",
|
||
"builtins.lobe-knowledge-base.apiName.readKnowledge": "Lire le contenu de la Bibliothèque",
|
||
"builtins.lobe-knowledge-base.apiName.searchKnowledgeBase": "Rechercher dans la Bibliothèque",
|
||
"builtins.lobe-knowledge-base.inspector.andMoreFiles": "et {{count}} de plus",
|
||
"builtins.lobe-knowledge-base.inspector.noResults": "Aucun résultat",
|
||
"builtins.lobe-knowledge-base.title": "Bibliothèque",
|
||
"builtins.lobe-local-system.apiName.editLocalFile": "Modifier le fichier",
|
||
"builtins.lobe-local-system.apiName.getCommandOutput": "Obtenir la sortie de la commande",
|
||
"builtins.lobe-local-system.apiName.globLocalFiles": "Rechercher des fichiers (glob)",
|
||
"builtins.lobe-local-system.apiName.grepContent": "Rechercher dans le contenu",
|
||
"builtins.lobe-local-system.apiName.killCommand": "Terminer la commande",
|
||
"builtins.lobe-local-system.apiName.listLocalFiles": "Lister les fichiers",
|
||
"builtins.lobe-local-system.apiName.moveLocalFiles": "Déplacer les fichiers",
|
||
"builtins.lobe-local-system.apiName.readLocalFile": "Lire le contenu du fichier",
|
||
"builtins.lobe-local-system.apiName.renameLocalFile": "Renommer",
|
||
"builtins.lobe-local-system.apiName.runCommand": "Exécuter la commande",
|
||
"builtins.lobe-local-system.apiName.searchLocalFiles": "Rechercher des fichiers",
|
||
"builtins.lobe-local-system.apiName.writeLocalFile": "Écrire dans le fichier",
|
||
"builtins.lobe-local-system.inspector.noResults": "Aucun résultat",
|
||
"builtins.lobe-local-system.inspector.rename.result": "<old>{{oldName}}</old> → <new>{{newName}}</new>",
|
||
"builtins.lobe-local-system.title": "Système local",
|
||
"builtins.lobe-notebook.actions.collapse": "Réduire",
|
||
"builtins.lobe-notebook.actions.copy": "Copier",
|
||
"builtins.lobe-notebook.actions.creating": "Création du document...",
|
||
"builtins.lobe-notebook.actions.edit": "Modifier",
|
||
"builtins.lobe-notebook.actions.expand": "Développer",
|
||
"builtins.lobe-notebook.apiName.createDocument": "Créer un document",
|
||
"builtins.lobe-notebook.apiName.deleteDocument": "Supprimer le document",
|
||
"builtins.lobe-notebook.apiName.getDocument": "Obtenir le document",
|
||
"builtins.lobe-notebook.apiName.updateDocument": "Mettre à jour le document",
|
||
"builtins.lobe-notebook.title": "Carnet de notes",
|
||
"builtins.lobe-page-agent.apiName.batchUpdate": "Mettre à jour plusieurs nœuds",
|
||
"builtins.lobe-page-agent.apiName.compareSnapshots": "Comparer les instantanés",
|
||
"builtins.lobe-page-agent.apiName.convertToList": "Convertir en liste",
|
||
"builtins.lobe-page-agent.apiName.createNode": "Créer un nœud",
|
||
"builtins.lobe-page-agent.apiName.cropImage": "Rogner l'image",
|
||
"builtins.lobe-page-agent.apiName.deleteNode": "Supprimer le nœud",
|
||
"builtins.lobe-page-agent.apiName.deleteSnapshot": "Supprimer l'instantané",
|
||
"builtins.lobe-page-agent.apiName.deleteTableColumn": "Supprimer la colonne",
|
||
"builtins.lobe-page-agent.apiName.deleteTableRow": "Supprimer la ligne",
|
||
"builtins.lobe-page-agent.apiName.duplicateNode": "Dupliquer le nœud",
|
||
"builtins.lobe-page-agent.apiName.editTitle": "Renommer le titre de la page",
|
||
"builtins.lobe-page-agent.apiName.editTitle.result": "Titre renommé en \"<title>{{title}}</title>\"",
|
||
"builtins.lobe-page-agent.apiName.getPageContent": "Obtenir la structure du document",
|
||
"builtins.lobe-page-agent.apiName.indentListItem": "Indenter l'élément de liste",
|
||
"builtins.lobe-page-agent.apiName.initPage": "Commencer à rédiger le contenu",
|
||
"builtins.lobe-page-agent.apiName.initPage.chars": " caractères",
|
||
"builtins.lobe-page-agent.apiName.initPage.creating": "Création du document",
|
||
"builtins.lobe-page-agent.apiName.initPage.lines": " lignes",
|
||
"builtins.lobe-page-agent.apiName.initPage.result": "Document créé",
|
||
"builtins.lobe-page-agent.apiName.insertTableColumn": "Insérer une colonne",
|
||
"builtins.lobe-page-agent.apiName.insertTableRow": "Insérer une ligne",
|
||
"builtins.lobe-page-agent.apiName.listSnapshots": "Lister les instantanés",
|
||
"builtins.lobe-page-agent.apiName.mergeNodes": "Fusionner les nœuds",
|
||
"builtins.lobe-page-agent.apiName.modifyNodes": "Modifier la page",
|
||
"builtins.lobe-page-agent.apiName.modifyNodes.addNodes": "Ajouter du contenu",
|
||
"builtins.lobe-page-agent.apiName.modifyNodes.deleteNodes": "Supprimer du contenu",
|
||
"builtins.lobe-page-agent.apiName.modifyNodes.init": "Préparation à la modification",
|
||
"builtins.lobe-page-agent.apiName.modifyNodes.result": "+{{insert}} / ~{{modify}} / -{{remove}}",
|
||
"builtins.lobe-page-agent.apiName.moveNode": "Déplacer le nœud",
|
||
"builtins.lobe-page-agent.apiName.outdentListItem": "Désindenter l'élément de liste",
|
||
"builtins.lobe-page-agent.apiName.replaceText": "Remplacer le texte",
|
||
"builtins.lobe-page-agent.apiName.replaceText.count": "{{count}} remplacements",
|
||
"builtins.lobe-page-agent.apiName.replaceText.empty": "(vide)",
|
||
"builtins.lobe-page-agent.apiName.replaceText.init": "Préparation au remplacement",
|
||
"builtins.lobe-page-agent.apiName.resizeImage": "Redimensionner l'image",
|
||
"builtins.lobe-page-agent.apiName.restoreSnapshot": "Restaurer l'instantané",
|
||
"builtins.lobe-page-agent.apiName.rotateImage": "Faire pivoter l'image",
|
||
"builtins.lobe-page-agent.apiName.saveSnapshot": "Enregistrer l'instantané",
|
||
"builtins.lobe-page-agent.apiName.setImageAlt": "Définir le texte alternatif de l'image",
|
||
"builtins.lobe-page-agent.apiName.splitNode": "Diviser le nœud",
|
||
"builtins.lobe-page-agent.apiName.toggleListType": "Changer le type de liste",
|
||
"builtins.lobe-page-agent.apiName.unwrapNode": "Dissocier le nœud",
|
||
"builtins.lobe-page-agent.apiName.updateNode": "Mettre à jour le nœud",
|
||
"builtins.lobe-page-agent.apiName.wrapNodes": "Associer les nœuds",
|
||
"builtins.lobe-page-agent.title": "Page",
|
||
"builtins.lobe-skill-store.apiName.importFromMarket": "Importer depuis le Marché",
|
||
"builtins.lobe-skill-store.apiName.importSkill": "Importer une Compétence",
|
||
"builtins.lobe-skill-store.apiName.searchSkill": "Rechercher des Compétences",
|
||
"builtins.lobe-skill-store.inspector.noResults": "Aucun résultat",
|
||
"builtins.lobe-skill-store.render.installs": "Installations",
|
||
"builtins.lobe-skill-store.render.repository": "Référentiel",
|
||
"builtins.lobe-skill-store.render.version": "Version",
|
||
"builtins.lobe-skill-store.title": "Boutique de Compétences",
|
||
"builtins.lobe-skills.apiName.activateSkill": "Activer la compétence",
|
||
"builtins.lobe-skills.apiName.execScript": "Exécuter le Script",
|
||
"builtins.lobe-skills.apiName.exportFile": "Exporter le Fichier",
|
||
"builtins.lobe-skills.apiName.importFromMarket": "Importer depuis le Marché",
|
||
"builtins.lobe-skills.apiName.importSkill": "Importer une Compétence",
|
||
"builtins.lobe-skills.apiName.readReference": "Lire la Référence",
|
||
"builtins.lobe-skills.apiName.runCommand": "Exécuter la commande",
|
||
"builtins.lobe-skills.apiName.searchSkill": "Rechercher des Compétences",
|
||
"builtins.lobe-skills.title": "Compétences",
|
||
"builtins.lobe-topic-reference.apiName.getTopicContext": "Obtenir le contexte du sujet",
|
||
"builtins.lobe-topic-reference.title": "Référence de sujet",
|
||
"builtins.lobe-user-interaction.apiName.askUserQuestion": "Poser une question à l'utilisateur",
|
||
"builtins.lobe-user-interaction.apiName.cancelUserResponse": "Annuler la réponse de l'utilisateur",
|
||
"builtins.lobe-user-interaction.apiName.getInteractionState": "Obtenir l'état de l'interaction",
|
||
"builtins.lobe-user-interaction.apiName.skipUserResponse": "Ignorer la réponse de l'utilisateur",
|
||
"builtins.lobe-user-interaction.apiName.submitUserResponse": "Soumettre la réponse de l'utilisateur",
|
||
"builtins.lobe-user-interaction.title": "Interaction utilisateur",
|
||
"builtins.lobe-user-memory.apiName.addContextMemory": "Ajouter une mémoire de contexte",
|
||
"builtins.lobe-user-memory.apiName.addExperienceMemory": "Ajouter une mémoire d'expérience",
|
||
"builtins.lobe-user-memory.apiName.addIdentityMemory": "Ajouter une mémoire d'identité",
|
||
"builtins.lobe-user-memory.apiName.addPreferenceMemory": "Ajouter une mémoire de préférence",
|
||
"builtins.lobe-user-memory.apiName.queryTaxonomyOptions": "Rechercher une taxonomie",
|
||
"builtins.lobe-user-memory.apiName.removeIdentityMemory": "Supprimer la mémoire d'identité",
|
||
"builtins.lobe-user-memory.apiName.searchUserMemory": "Rechercher dans la mémoire",
|
||
"builtins.lobe-user-memory.apiName.updateIdentityMemory": "Mettre à jour la mémoire d'identité",
|
||
"builtins.lobe-user-memory.inspector.noResults": "Aucun résultat",
|
||
"builtins.lobe-user-memory.render.contexts": "Contextes",
|
||
"builtins.lobe-user-memory.render.experiences": "Expériences",
|
||
"builtins.lobe-user-memory.render.preferences": "Préférences",
|
||
"builtins.lobe-user-memory.title": "Mémoire",
|
||
"builtins.lobe-web-browsing.apiName.crawlMultiPages": "Lire plusieurs pages",
|
||
"builtins.lobe-web-browsing.apiName.crawlSinglePage": "Lire le contenu de la page",
|
||
"builtins.lobe-web-browsing.apiName.search": "Rechercher des pages",
|
||
"builtins.lobe-web-browsing.inspector.noResults": "Aucun résultat",
|
||
"builtins.lobe-web-browsing.title": "Recherche Web",
|
||
"builtins.lobe-web-onboarding.apiName.finishOnboarding": "Terminer l'intégration",
|
||
"builtins.lobe-web-onboarding.apiName.getOnboardingState": "Lire l'état de l'intégration",
|
||
"builtins.lobe-web-onboarding.apiName.readDocument": "Lire le document",
|
||
"builtins.lobe-web-onboarding.apiName.saveUserQuestion": "Enregistrer la question de l'utilisateur",
|
||
"builtins.lobe-web-onboarding.apiName.updateDocument": "Mettre à jour le document",
|
||
"builtins.lobe-web-onboarding.apiName.writeDocument": "Rédiger le document",
|
||
"builtins.lobe-web-onboarding.title": "Intégration utilisateur",
|
||
"confirm": "Confirmer",
|
||
"debug.arguments": "Arguments",
|
||
"debug.error": "Journal des Erreurs",
|
||
"debug.function_call": "Appel de fonction",
|
||
"debug.intervention": "Intervention de compétence",
|
||
"debug.off": "Débogage désactivé",
|
||
"debug.on": "Afficher les infos d’appel de compétence",
|
||
"debug.payload": "Charge utile de la compétence",
|
||
"debug.pluginState": "État de la compétence",
|
||
"debug.response": "Réponse",
|
||
"debug.title": "Détails de la compétence",
|
||
"debug.tool_call": "Requête d’appel de compétence",
|
||
"detailModal.customPlugin.description": "Voir les détails sur la page d’édition",
|
||
"detailModal.customPlugin.editBtn": "Modifier maintenant",
|
||
"detailModal.customPlugin.title": "Ceci est une compétence personnalisée",
|
||
"detailModal.emptyState.description": "Installez cette compétence pour voir ses fonctionnalités et paramètres",
|
||
"detailModal.emptyState.title": "Installer pour voir les détails de la compétence",
|
||
"detailModal.info.description": "Description de l’API",
|
||
"detailModal.info.name": "Nom de l’API",
|
||
"detailModal.tabs.info": "Fonctionnalités",
|
||
"detailModal.tabs.manifest": "Manifeste",
|
||
"detailModal.tabs.settings": "Paramètres",
|
||
"detailModal.title": "Détails de la compétence",
|
||
"dev.confirmDeleteDevPlugin": "Cette compétence locale sera supprimée définitivement. Continuer ?",
|
||
"dev.customParams.useProxy.label": "Installer via proxy (activer en cas d’erreurs CORS, puis réessayer)",
|
||
"dev.deleteSuccess": "Compétence supprimée",
|
||
"dev.manifest.identifier.desc": "Identifiant unique de la compétence",
|
||
"dev.manifest.identifier.label": "Identifiant",
|
||
"dev.manifest.mode.claude": "Compétence Claude",
|
||
"dev.manifest.mode.claudeWip": "Bientôt disponible",
|
||
"dev.manifest.mode.mcp": "MCP",
|
||
"dev.manifest.name.desc": "Titre de la compétence",
|
||
"dev.manifest.name.label": "Titre",
|
||
"dev.manifest.name.placeholder": "Moteur de recherche",
|
||
"dev.mcp.advanced.title": "Avancé",
|
||
"dev.mcp.args.desc": "Arguments passés à la commande, généralement le nom du serveur MCP ou le chemin du script",
|
||
"dev.mcp.args.label": "Arguments",
|
||
"dev.mcp.args.placeholder": "ex. mcp-hello-world",
|
||
"dev.mcp.args.required": "Saisir les arguments",
|
||
"dev.mcp.auth.bear": "Clé API",
|
||
"dev.mcp.auth.desc": "Sélectionner la méthode d’authentification pour le serveur MCP",
|
||
"dev.mcp.auth.label": "Type d’authentification",
|
||
"dev.mcp.auth.none": "Pas d’authentification",
|
||
"dev.mcp.auth.placeholder": "Sélectionner le type d’authentification",
|
||
"dev.mcp.auth.token.desc": "Saisir votre clé API ou jeton Bearer",
|
||
"dev.mcp.auth.token.label": "Clé API",
|
||
"dev.mcp.auth.token.placeholder": "sk-xxxxx",
|
||
"dev.mcp.auth.token.required": "Saisir le jeton d’authentification",
|
||
"dev.mcp.avatar.label": "Icône de la compétence",
|
||
"dev.mcp.command.desc": "Exécutable ou script pour démarrer le serveur MCP STDIO",
|
||
"dev.mcp.command.label": "Commande",
|
||
"dev.mcp.command.placeholder": "ex. npx / uv / docker",
|
||
"dev.mcp.command.required": "Saisir la commande",
|
||
"dev.mcp.desc.desc": "Ajouter une description de la compétence",
|
||
"dev.mcp.desc.label": "Description",
|
||
"dev.mcp.desc.placeholder": "Instructions d’utilisation et scénarios",
|
||
"dev.mcp.endpoint.desc": "Saisir l’adresse de votre serveur MCP Streamable HTTP",
|
||
"dev.mcp.endpoint.label": "URL de point de terminaison MCP",
|
||
"dev.mcp.env.add": "Ajouter une ligne",
|
||
"dev.mcp.env.desc": "Saisir les variables d’environnement pour le serveur MCP",
|
||
"dev.mcp.env.duplicateKeyError": "Les clés doivent être uniques",
|
||
"dev.mcp.env.formValidationFailed": "Échec de la validation du formulaire, vérifier le format",
|
||
"dev.mcp.env.keyRequired": "Clé requise",
|
||
"dev.mcp.env.label": "Variables d’environnement du serveur MCP",
|
||
"dev.mcp.env.stringifyError": "Impossible de sérialiser, vérifier le format",
|
||
"dev.mcp.headers.add": "Ajouter une ligne",
|
||
"dev.mcp.headers.desc": "Saisir les en-têtes HTTP",
|
||
"dev.mcp.headers.label": "En-têtes HTTP",
|
||
"dev.mcp.identifier.desc": "Nom de ce MCP (caractères anglais uniquement)",
|
||
"dev.mcp.identifier.invalid": "L’identifiant ne doit contenir que des lettres, chiffres, tirets ou underscores",
|
||
"dev.mcp.identifier.label": "Nom du MCP",
|
||
"dev.mcp.identifier.placeholder": "ex. mon-plugin-mcp",
|
||
"dev.mcp.identifier.required": "Saisir l’identifiant du MCP",
|
||
"dev.mcp.previewManifest": "Aperçu du manifeste",
|
||
"dev.mcp.quickImport": "Importer la configuration JSON",
|
||
"dev.mcp.quickImportError.empty": "Le contenu ne peut pas être vide",
|
||
"dev.mcp.quickImportError.invalidJson": "JSON invalide",
|
||
"dev.mcp.quickImportError.invalidStructure": "Structure JSON invalide",
|
||
"dev.mcp.stdioNotSupported": "STDIO MCP non pris en charge dans l’environnement actuel",
|
||
"dev.mcp.testConnection": "Tester la connexion",
|
||
"dev.mcp.testConnectionTip": "Le MCP sera disponible après un test de connexion réussi",
|
||
"dev.mcp.type.desc": "Sélectionner le type de MCP, le web ne prend en charge que Streamable HTTP",
|
||
"dev.mcp.type.httpFeature1": "Compatible web et bureau",
|
||
"dev.mcp.type.httpFeature2": "Connexion à un serveur MCP distant, aucune configuration requise",
|
||
"dev.mcp.type.httpShortDesc": "Protocole HTTP diffusé",
|
||
"dev.mcp.type.label": "Type de MCP",
|
||
"dev.mcp.type.stdioFeature1": "Latence réduite, pour exécution locale",
|
||
"dev.mcp.type.stdioFeature2": "Nécessite l’installation d’un serveur MCP local",
|
||
"dev.mcp.type.stdioNotAvailable": "STDIO disponible uniquement sur bureau",
|
||
"dev.mcp.type.stdioShortDesc": "Protocole d’entrée/sortie standard",
|
||
"dev.mcp.type.title": "Type de MCP",
|
||
"dev.mcp.url.desc": "Saisir l’URL HTTP Streamable du serveur MCP (SSE non pris en charge)",
|
||
"dev.mcp.url.invalid": "Saisir une URL valide",
|
||
"dev.mcp.url.label": "URL de point de terminaison HTTP Streamable",
|
||
"dev.mcp.url.required": "Saisir l’URL du serveur MCP",
|
||
"dev.meta.author.desc": "Auteur de la compétence",
|
||
"dev.meta.author.label": "Auteur",
|
||
"dev.meta.avatar.desc": "Icône de la compétence (emoji ou URL)",
|
||
"dev.meta.avatar.label": "Icône",
|
||
"dev.meta.description.desc": "Description de la compétence",
|
||
"dev.meta.description.label": "Description",
|
||
"dev.meta.description.placeholder": "Moteur de recherche d’informations",
|
||
"dev.meta.formFieldRequired": "Champ requis",
|
||
"dev.meta.homepage.desc": "Page d’accueil de la compétence",
|
||
"dev.meta.homepage.label": "Page d’accueil",
|
||
"dev.meta.identifier.desc": "Identifiant unique, détecté automatiquement depuis le manifeste",
|
||
"dev.meta.identifier.errorDuplicate": "Conflit d’identifiant avec une compétence existante",
|
||
"dev.meta.identifier.label": "Identifiant",
|
||
"dev.meta.identifier.pattenErrorMessage": "Seuls les lettres, chiffres, tirets et underscores sont autorisés",
|
||
"dev.meta.lobe": "Compétence {{appName}}",
|
||
"dev.meta.manifest.desc": "{{appName}} installera la compétence via cette URL",
|
||
"dev.meta.manifest.label": "URL du manifeste",
|
||
"dev.meta.manifest.preview": "Aperçu du manifeste",
|
||
"dev.meta.manifest.refresh": "Rafraîchir",
|
||
"dev.meta.openai": "Compétence OpenAI",
|
||
"dev.meta.title.desc": "Titre de la compétence",
|
||
"dev.meta.title.label": "Titre",
|
||
"dev.meta.title.placeholder": "Moteur de recherche",
|
||
"dev.metaConfig": "Configuration méta",
|
||
"dev.modalDesc": "Les compétences personnalisées peuvent être utilisées pour le développement ou directement dans les conversations. Voir <1>la documentation↗</1>",
|
||
"dev.openai.importUrl": "Importer depuis une URL",
|
||
"dev.openai.schema": "Schéma",
|
||
"dev.preview.api.noParams": "Aucun paramètre",
|
||
"dev.preview.api.noResults": "Aucune API trouvée",
|
||
"dev.preview.api.params": "Paramètres :",
|
||
"dev.preview.api.searchPlaceholder": "Rechercher des compétences…",
|
||
"dev.preview.card": "Aperçu de la carte de compétence",
|
||
"dev.preview.desc": "Aperçu de la description",
|
||
"dev.preview.empty.desc": "Complétez la configuration pour prévisualiser les fonctionnalités de la compétence",
|
||
"dev.preview.empty.title": "Configurer pour prévisualiser",
|
||
"dev.preview.title": "Aperçu du nom de la compétence",
|
||
"dev.save": "Installer",
|
||
"dev.saveError": "L'installation a échoué, veuillez réessayer",
|
||
"dev.saveSuccess": "Paramètres enregistrés",
|
||
"dev.tabs.manifest": "Manifeste",
|
||
"dev.tabs.meta": "Infos méta",
|
||
"dev.title.create": "Ajouter une Compétence MCP Personnalisée",
|
||
"dev.title.edit": "Modifier une Compétence MCP Personnalisée",
|
||
"dev.title.editCommunity": "Modifier la compétence communautaire",
|
||
"dev.title.skillDetails": "Détails de la compétence",
|
||
"dev.title.skillSettings": "Paramètres de la compétence",
|
||
"dev.type.lobe": "Compétence {{appName}}",
|
||
"dev.type.openai": "Compétence OpenAI",
|
||
"dev.update": "Mettre à jour",
|
||
"dev.updateSuccess": "Paramètres mis à jour",
|
||
"empty.description": "Parcourez la boutique de compétences. Installez-en une pour commencer, ajoutez-en d’autres plus tard.",
|
||
"empty.search": "Aucune compétence correspondante",
|
||
"empty.title": "Aucune compétence",
|
||
"error.details": "Détails de l’erreur",
|
||
"error.fetchError": "Échec de récupération du manifeste. Vérifiez l’URL et l’accès CORS",
|
||
"error.installError": "Échec de l’installation de {{name}}",
|
||
"error.manifestInvalid": "Manifeste invalide : \n\n {{error}}",
|
||
"error.noManifest": "Manifeste introuvable",
|
||
"error.openAPIInvalid": "Échec de l’analyse OpenAPI : \n\n {{error}}",
|
||
"error.reinstallError": "Échec de l’actualisation de {{name}}",
|
||
"error.renderError": "Erreur d’affichage",
|
||
"error.testConnectionFailed": "Échec de récupération du manifeste : {{error}}",
|
||
"error.unknownError": "Erreur inconnue",
|
||
"error.urlError": "L’URL n’a pas retourné de JSON, vérifiez le lien",
|
||
"inspector.args": "Voir les arguments",
|
||
"inspector.delete": "Supprimer l’appel",
|
||
"inspector.orphanedToolCall": "Appel de compétence orphelin détecté, peut affecter l’exécution de l’agent. Supprimez-le.",
|
||
"inspector.pluginRender": "Voir l’interface de la compétence",
|
||
"list.item.deprecated.title": "Supprimée",
|
||
"list.item.local.config": "Configuration",
|
||
"list.item.local.title": "Personnalisée",
|
||
"loading.content": "Appel de la compétence…",
|
||
"loading.plugin": "Compétence en cours d’exécution…",
|
||
"localSystem.workingDirectory.agentDescription": "Répertoire de travail par défaut pour toutes les conversations avec cet agent",
|
||
"localSystem.workingDirectory.agentLevel": "Répertoire de travail de l'agent",
|
||
"localSystem.workingDirectory.aheadBehindTooltip": "{{ahead}} à pousser · {{behind}} à récupérer ({{upstream}})",
|
||
"localSystem.workingDirectory.aheadTooltip": "{{count}} commit(s) à pousser vers {{upstream}}",
|
||
"localSystem.workingDirectory.behindTooltip": "{{count}} commit(s) à récupérer depuis {{upstream}}",
|
||
"localSystem.workingDirectory.branchSearchPlaceholder": "Rechercher des branches",
|
||
"localSystem.workingDirectory.branchesEmpty": "Aucune branche locale",
|
||
"localSystem.workingDirectory.branchesHeading": "Branches",
|
||
"localSystem.workingDirectory.branchesLoading": "Chargement des branches…",
|
||
"localSystem.workingDirectory.branchesNoMatch": "Aucune branche correspondante",
|
||
"localSystem.workingDirectory.cancel": "Annuler",
|
||
"localSystem.workingDirectory.checkoutAction": "Changer de branche",
|
||
"localSystem.workingDirectory.checkoutFailed": "Échec du changement de branche",
|
||
"localSystem.workingDirectory.chooseDifferentFolder": "Choisir un autre dossier",
|
||
"localSystem.workingDirectory.createBranchAction": "Créer et changer de branche…",
|
||
"localSystem.workingDirectory.current": "Répertoire de travail actuel",
|
||
"localSystem.workingDirectory.detachedHead": "HEAD détachée à {{sha}}",
|
||
"localSystem.workingDirectory.diffStatTooltip": "Ajouté {{added}} · Modifié {{modified}} · Supprimé {{deleted}}",
|
||
"localSystem.workingDirectory.filesAdded": "Ajouté",
|
||
"localSystem.workingDirectory.filesDeleted": "Supprimé",
|
||
"localSystem.workingDirectory.filesEmpty": "Aucune modification non validée",
|
||
"localSystem.workingDirectory.filesLoading": "Chargement des modifications…",
|
||
"localSystem.workingDirectory.filesModified": "Modifié",
|
||
"localSystem.workingDirectory.ghMissing": "Installez et connectez-vous au CLI GitHub (« gh ») pour voir les pull requests liées",
|
||
"localSystem.workingDirectory.newBranchPlaceholder": "feature/nouvelle-branche",
|
||
"localSystem.workingDirectory.noRecent": "Aucun répertoire récent",
|
||
"localSystem.workingDirectory.notSet": "Cliquez pour définir le répertoire de travail",
|
||
"localSystem.workingDirectory.placeholder": "Saisissez le chemin du répertoire, par ex. /Users/nom/projets",
|
||
"localSystem.workingDirectory.prTooltipWithExtra": "{{title}} (+{{count}} autres PR ouvertes sur cette branche)",
|
||
"localSystem.workingDirectory.recent": "Récents",
|
||
"localSystem.workingDirectory.refreshGitStatus": "Actualiser l’état de la branche et des PR",
|
||
"localSystem.workingDirectory.removeRecent": "Supprimer des récents",
|
||
"localSystem.workingDirectory.selectFolder": "Sélectionner un dossier",
|
||
"localSystem.workingDirectory.title": "Répertoire de travail",
|
||
"localSystem.workingDirectory.topicDescription": "Remplacer le répertoire par défaut de l'agent uniquement pour cette conversation",
|
||
"localSystem.workingDirectory.topicLevel": "Remplacement pour la conversation",
|
||
"localSystem.workingDirectory.topicOverride": "Remplacement pour cette conversation",
|
||
"localSystem.workingDirectory.uncommittedChanges_one": "Modifications non validées : {{count}} fichier",
|
||
"localSystem.workingDirectory.uncommittedChanges_other": "Modifications non validées : {{count}} fichiers",
|
||
"mcpEmpty.deployment": "Aucune option de déploiement",
|
||
"mcpEmpty.prompts": "Aucune invite",
|
||
"mcpEmpty.resources": "Aucune ressource",
|
||
"mcpEmpty.tools": "Aucun outil",
|
||
"mcpInstall.CHECKING_INSTALLATION": "Vérification de l’installation…",
|
||
"mcpInstall.COMPLETED": "Terminé",
|
||
"mcpInstall.CONFIGURATION_REQUIRED": "Complétez la configuration pour continuer",
|
||
"mcpInstall.ERROR": "Erreur d’installation",
|
||
"mcpInstall.FETCHING_MANIFEST": "Récupération du manifeste…",
|
||
"mcpInstall.GETTING_SERVER_MANIFEST": "Initialisation du serveur MCP…",
|
||
"mcpInstall.INSTALLING_PLUGIN": "Installation de la compétence…",
|
||
"mcpInstall.configurationDescription": "Configurer les paramètres requis pour ce MCP",
|
||
"mcpInstall.configurationRequired": "Configurer les paramètres",
|
||
"mcpInstall.continueInstall": "Continuer",
|
||
"mcpInstall.dependenciesDescription": "Installer les dépendances requises, puis revérifier pour continuer.",
|
||
"mcpInstall.dependenciesRequired": "Installer les dépendances système",
|
||
"mcpInstall.dependencyStatus.installed": "Installé",
|
||
"mcpInstall.dependencyStatus.notInstalled": "Non installé",
|
||
"mcpInstall.dependencyStatus.requiredVersion": "Requis : {{version}}",
|
||
"mcpInstall.errorDetails.args": "Arguments",
|
||
"mcpInstall.errorDetails.command": "Commande",
|
||
"mcpInstall.errorDetails.connectionParams": "Paramètres de connexion",
|
||
"mcpInstall.errorDetails.env": "Variables d’environnement",
|
||
"mcpInstall.errorDetails.errorOutput": "Journal d’erreurs",
|
||
"mcpInstall.errorDetails.exitCode": "Code de sortie",
|
||
"mcpInstall.errorDetails.hideDetails": "Masquer les détails",
|
||
"mcpInstall.errorDetails.originalError": "Erreur d’origine",
|
||
"mcpInstall.errorDetails.showDetails": "Voir les détails",
|
||
"mcpInstall.errorTypes.AUTHORIZATION_ERROR": "Erreur d’authentification",
|
||
"mcpInstall.errorTypes.CONNECTION_FAILED": "Échec de la connexion",
|
||
"mcpInstall.errorTypes.INITIALIZATION_TIMEOUT": "Délai d’initialisation dépassé",
|
||
"mcpInstall.errorTypes.PROCESS_SPAWN_ERROR": "Échec du démarrage du processus",
|
||
"mcpInstall.errorTypes.UNKNOWN_ERROR": "Erreur inconnue",
|
||
"mcpInstall.errorTypes.VALIDATION_ERROR": "Échec de la validation",
|
||
"mcpInstall.installError": "Échec de l’installation du MCP : {{detail}}",
|
||
"mcpInstall.installMethods.manual": "Manuel :",
|
||
"mcpInstall.installMethods.recommended": "Recommandé :",
|
||
"mcpInstall.recheckDependencies": "Revérifier",
|
||
"mcpInstall.skipDependencies": "Ignorer",
|
||
"pluginList": "Compétences",
|
||
"protocolInstall.actions.install": "Installer",
|
||
"protocolInstall.actions.installAnyway": "Installer quand même",
|
||
"protocolInstall.actions.installed": "Installée",
|
||
"protocolInstall.config.addEnv": "Ajouter une variable d’environnement",
|
||
"protocolInstall.config.addHeaders": "Ajouter un en-tête",
|
||
"protocolInstall.config.args": "Arguments",
|
||
"protocolInstall.config.command": "Commande",
|
||
"protocolInstall.config.env": "Environnement",
|
||
"protocolInstall.config.headers": "En-têtes",
|
||
"protocolInstall.config.title": "Configuration",
|
||
"protocolInstall.config.type.http": "Type : HTTP",
|
||
"protocolInstall.config.type.label": "Type",
|
||
"protocolInstall.config.type.stdio": "Type : Stdio",
|
||
"protocolInstall.config.url": "URL du serveur",
|
||
"protocolInstall.custom.badge": "Compétence personnalisée",
|
||
"protocolInstall.custom.security.description": "Compétence non officielle, peut présenter des risques de sécurité. Vérifiez la source avant l’installation.",
|
||
"protocolInstall.custom.security.title": "Sécurité",
|
||
"protocolInstall.custom.title": "Installer une compétence personnalisée",
|
||
"protocolInstall.install.title": "Infos d’installation",
|
||
"protocolInstall.marketplace.title": "Installer une compétence tierce",
|
||
"protocolInstall.marketplace.trustedBy": "Par {{name}}",
|
||
"protocolInstall.marketplace.unverified.title": "Compétence tierce non vérifiée",
|
||
"protocolInstall.marketplace.unverified.warning": "Vérifiez la source avant d’installer cette compétence communautaire.",
|
||
"protocolInstall.marketplace.verified": "Vérifiée",
|
||
"protocolInstall.messages.connectionTestFailed": "Échec du test de connexion",
|
||
"protocolInstall.messages.installError": "Échec de l’installation, réessayer",
|
||
"protocolInstall.messages.installSuccess": "{{name}} installée. Activez-la maintenant ou configurez-la plus tard.",
|
||
"protocolInstall.messages.manifestError": "Échec de récupération des infos de la compétence. Vérifiez votre réseau ou réessayez plus tard.",
|
||
"protocolInstall.messages.manifestNotFound": "Manifeste introuvable",
|
||
"protocolInstall.meta.author": "Auteur",
|
||
"protocolInstall.meta.homepage": "Page d’accueil",
|
||
"protocolInstall.meta.identifier": "Identifiant",
|
||
"protocolInstall.meta.source": "Source",
|
||
"protocolInstall.meta.version": "Version",
|
||
"protocolInstall.official.badge": "Compétence officielle LobeHub",
|
||
"protocolInstall.official.description": "Compétence officielle LobeHub, vérifiée et sécurisée.",
|
||
"protocolInstall.official.loadingMessage": "Chargement des détails de la compétence…",
|
||
"protocolInstall.official.loadingTitle": "Chargement",
|
||
"protocolInstall.official.title": "Installer une compétence officielle",
|
||
"protocolInstall.title": "Installer MCP",
|
||
"protocolInstall.warning": "Vérifiez la source de la compétence. Vous pouvez la désactiver ou la supprimer à tout moment dans les paramètres.",
|
||
"search.config.addKey": "Ajouter une clé",
|
||
"search.config.close": "Supprimer",
|
||
"search.config.confirm": "Terminé, réessayer",
|
||
"search.crawPages.crawling": "Identification des liens",
|
||
"search.crawPages.detail.preview": "Aperçu",
|
||
"search.crawPages.detail.raw": "Texte brut",
|
||
"search.crawPages.detail.tooLong": "Texte tronqué à {{characters}} caractères pour le contexte, l’excédent est omis.",
|
||
"search.crawPages.meta.crawler": "Mode crawler",
|
||
"search.crawPages.meta.words": "Caractères",
|
||
"search.searchxng.baseURL": "Saisir l’URL",
|
||
"search.searchxng.description": "Saisir l’URL SearchXNG pour démarrer la recherche web",
|
||
"search.searchxng.keyPlaceholder": "Saisir la clé",
|
||
"search.searchxng.title": "Configurer SearchXNG",
|
||
"search.searchxng.unconfiguredDesc": "Contactez l’administrateur pour configurer SearchXNG",
|
||
"search.searchxng.unconfiguredTitle": "SearchXNG non configuré",
|
||
"search.title": "Recherche Web",
|
||
"setting": "Paramètres",
|
||
"settings.capabilities.prompts": "Invites",
|
||
"settings.capabilities.resources": "Ressources",
|
||
"settings.capabilities.title": "Compétences",
|
||
"settings.capabilities.tools": "Outils",
|
||
"settings.configuration.title": "Configuration",
|
||
"settings.connection.args": "Arguments",
|
||
"settings.connection.command": "Commande",
|
||
"settings.connection.title": "Connexion",
|
||
"settings.connection.type": "Type",
|
||
"settings.connection.url": "URL du serveur",
|
||
"settings.edit": "Modifier",
|
||
"settings.envConfigDescription": "Transmises comme variables d’environnement au démarrage du serveur MCP",
|
||
"settings.httpTypeNotice": "Le MCP HTTP n’a pas de variables d’environnement à configurer",
|
||
"settings.indexUrl.title": "Index communautaire",
|
||
"settings.indexUrl.tooltip": "Modifier via les variables d’environnement de déploiement",
|
||
"settings.messages.connectionUpdateFailed": "Échec de la mise à jour de la connexion",
|
||
"settings.messages.connectionUpdateSuccess": "Connexion mise à jour",
|
||
"settings.messages.envUpdateFailed": "Échec de l’enregistrement des variables d’environnement",
|
||
"settings.messages.envUpdateSuccess": "Variables d’environnement enregistrées",
|
||
"settings.modalDesc": "Configurer l’URL communautaire pour utiliser une communauté de compétences personnalisée.",
|
||
"settings.rules.argsRequired": "Saisir les arguments",
|
||
"settings.rules.commandRequired": "Saisir la commande",
|
||
"settings.rules.urlRequired": "Saisir l’URL du serveur",
|
||
"settings.saveSettings": "Enregistrer",
|
||
"settings.title": "Paramètres de la communauté de compétences",
|
||
"showInPortal": "Voir les détails dans l’espace de travail",
|
||
"skillDetail.author": "Auteur",
|
||
"skillDetail.details": "Détails",
|
||
"skillDetail.developedBy": "Développé par",
|
||
"skillDetail.networkError": "Échec du chargement des données. Vérifiez votre connexion réseau et réessayez.",
|
||
"skillDetail.noAgents": "Aucun agent n'utilise encore cette compétence",
|
||
"skillDetail.tabs.agents": "Agents utilisant cette compétence",
|
||
"skillDetail.tabs.overview": "Aperçu",
|
||
"skillDetail.tabs.tools": "Fonctionnalités",
|
||
"skillDetail.tools": "Outils",
|
||
"skillDetail.trustWarning": "N'utilisez que des connecteurs provenant de développeurs de confiance. LobeHub ne contrôle pas les outils mis à disposition par les développeurs et ne peut garantir leur bon fonctionnement ni qu'ils ne seront pas modifiés.",
|
||
"skillInstallBanner.dismiss": "Ignorer",
|
||
"skillInstallBanner.title": "Ajouter des compétences à Lobe AI",
|
||
"store.actions.cancel": "Annuler",
|
||
"store.actions.configure": "Configurer",
|
||
"store.actions.confirmUninstall": "La désinstallation effacera la configuration de la compétence. Continuer ?",
|
||
"store.actions.detail": "Détails",
|
||
"store.actions.install": "Installer",
|
||
"store.actions.manifest": "Modifier le manifeste",
|
||
"store.actions.settings": "Paramètres",
|
||
"store.actions.uninstall": "Désinstaller",
|
||
"store.communityPlugin": "Communauté",
|
||
"store.customPlugin": "Personnalisée",
|
||
"store.empty": "Aucune compétence installée",
|
||
"store.emptySelectHint": "Sélectionnez une compétence pour voir les détails",
|
||
"store.installAllPlugins": "Tout installer",
|
||
"store.networkError": "Échec de récupération de la boutique de compétences. Vérifiez votre réseau et réessayez.",
|
||
"store.placeholder": "Rechercher des compétences par nom ou mot-clé…",
|
||
"store.releasedAt": "Publié le {{createdAt}}",
|
||
"store.tabs.installed": "Installées",
|
||
"store.tabs.mcp": "MCP",
|
||
"store.tabs.old": "Compétences LobeHub",
|
||
"store.title": "Boutique de compétences",
|
||
"unknownError": "Erreur inconnue",
|
||
"unknownPlugin": "Compétence inconnue"
|
||
}
|