@bigduu/lotus 2026.4.2 → 2026.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/App-Ct4Iqvsg.css +1 -0
- package/dist/assets/App-Lp1tMttv.js +247 -0
- package/dist/assets/{_basePickBy-BspK35sI.js → _basePickBy-CSQjZOEH.js} +1 -1
- package/dist/assets/{_baseUniq-yd3d-av8.js → _baseUniq-DQHUo2wZ.js} +1 -1
- package/dist/assets/{architectureDiagram-VXUJARFQ-CQvKJy3I.js → architectureDiagram-VXUJARFQ-BMUh92dd.js} +1 -1
- package/dist/assets/{blockDiagram-VD42YOAC-DyFWUqNO.js → blockDiagram-VD42YOAC-Brh3I75m.js} +1 -1
- package/dist/assets/{c4Diagram-YG6GDRKO-CznZpCeX.js → c4Diagram-YG6GDRKO-DnxCjxA8.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-CT4-fTmw.js → chunk-4BX2VUAB-CixM-C1K.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-DPoGFWVp.js → chunk-55IACEB6-5l3X1dpI.js} +1 -1
- package/dist/assets/{chunk-B4BG7PRW-zd34bnG8.js → chunk-B4BG7PRW-B-EJypcR.js} +1 -1
- package/dist/assets/{chunk-DI55MBZ5-DjYfBoqF.js → chunk-DI55MBZ5-BLxvkRT3.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-BDz1nBzO.js → chunk-FMBD7UC4-xvk636Pj.js} +1 -1
- package/dist/assets/{chunk-QN33PNHL-ByHoXcdI.js → chunk-QN33PNHL-C9CiZFt0.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-B58DhLEz.js → chunk-QZHKN3VN-CV7tOA_V.js} +1 -1
- package/dist/assets/{chunk-TZMSLE5B-CE3fOJae.js → chunk-TZMSLE5B-Dj7AmZTG.js} +1 -1
- package/dist/assets/classDiagram-2ON5EDUG-BmRlHYcJ.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-BmRlHYcJ.js +1 -0
- package/dist/assets/clone-LotimydJ.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-CQMexX_7.js → cose-bilkent-S5V4N54A-BglMwVVo.js} +1 -1
- package/dist/assets/{dagre-6UL2VRFP-Nr0JTfw1.js → dagre-6UL2VRFP-B_pUYMrn.js} +1 -1
- package/dist/assets/{diagram-PSM6KHXK-2zflANlw.js → diagram-PSM6KHXK-DcFX0GIa.js} +1 -1
- package/dist/assets/{diagram-QEK2KX5R-VyZmBtmD.js → diagram-QEK2KX5R-Bf0mJKZv.js} +1 -1
- package/dist/assets/{diagram-S2PKOQOG-B2faf1Ft.js → diagram-S2PKOQOG-BRd51uCk.js} +1 -1
- package/dist/assets/{erDiagram-Q2GNP2WA-DTAG75D2.js → erDiagram-Q2GNP2WA-DtMpD_dp.js} +1 -1
- package/dist/assets/{flowDiagram-NV44I4VS-Bl2QKbsY.js → flowDiagram-NV44I4VS-T-HBCsOg.js} +1 -1
- package/dist/assets/{ganttDiagram-JELNMOA3-aVmOIbJd.js → ganttDiagram-JELNMOA3-CU32XhNJ.js} +1 -1
- package/dist/assets/{gitGraphDiagram-V2S2FVAM-B0eXnYux.js → gitGraphDiagram-V2S2FVAM-BJJ4R_BN.js} +1 -1
- package/dist/assets/{graph-D0JBNw5a.js → graph-DvuzdqtS.js} +1 -1
- package/dist/assets/{index-CYzkseBh.js → index-BpZHxkza.js} +1 -1
- package/dist/assets/{index-CMK42DTl.js → index-CF-KXsGH.js} +1 -1
- package/dist/assets/{index-Cd0gm8C7.js → index-ClgJQKFk.js} +1 -1
- package/dist/assets/{index-BOUR4S6d.js → index-DVh3FZtR.js} +1 -1
- package/dist/assets/{index-oVXhS3BO.js → index-wEBx2_Bp.js} +1 -1
- package/dist/assets/{index.es-CAbTTDez.js → index.es-DusLI-hl.js} +1 -1
- package/dist/assets/{infoDiagram-HS3SLOUP-Cii6S1my.js → infoDiagram-HS3SLOUP-CPENGo9H.js} +1 -1
- package/dist/assets/{journeyDiagram-XKPGCS4Q-C_iPmuQZ.js → journeyDiagram-XKPGCS4Q-CNU_B7N1.js} +1 -1
- package/dist/assets/{kanban-definition-3W4ZIXB7-Cczg6lpg.js → kanban-definition-3W4ZIXB7-sy_U8c_F.js} +1 -1
- package/dist/assets/{layout-DNfKd0n6.js → layout-BMsjut2n.js} +1 -1
- package/dist/assets/{main-BTCes_R0.js → main-DJkIVk5G.js} +5 -5
- package/dist/assets/{mindmap-definition-VGOIOE7T-qYnf--6q.js → mindmap-definition-VGOIOE7T-B36pEDlU.js} +1 -1
- package/dist/assets/{pieDiagram-ADFJNKIX-CKiWkeBJ.js → pieDiagram-ADFJNKIX-BbT86i-D.js} +1 -1
- package/dist/assets/{quadrantDiagram-AYHSOK5B-CWwC8LhP.js → quadrantDiagram-AYHSOK5B-L5k2W8mA.js} +1 -1
- package/dist/assets/{requirementDiagram-UZGBJVZJ--E3kDOu5.js → requirementDiagram-UZGBJVZJ-Bnucoakg.js} +1 -1
- package/dist/assets/{sankeyDiagram-TZEHDZUN-DjNk0_tw.js → sankeyDiagram-TZEHDZUN-DkMx4gl3.js} +1 -1
- package/dist/assets/{sequenceDiagram-WL72ISMW-CP99d7Wl.js → sequenceDiagram-WL72ISMW-IOZUrf8o.js} +1 -1
- package/dist/assets/{stateDiagram-FKZM4ZOC-BpDaflbT.js → stateDiagram-FKZM4ZOC-CHPy6pjS.js} +1 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-BlNgA_DM.js +1 -0
- package/dist/assets/{timeline-definition-IT6M3QCI-JLPdh86G.js → timeline-definition-IT6M3QCI-CHJ0Uu-N.js} +1 -1
- package/dist/assets/{treemap-GDKQZRPO-D7fekm60.js → treemap-GDKQZRPO-DUA2WI2l.js} +1 -1
- package/dist/assets/vendor-antd-BSy6VeYJ.js +502 -0
- package/dist/assets/{vendor-charts-B5wo7wyK.js → vendor-charts-DLRDG2Rl.js} +2 -2
- package/dist/assets/{vendor-markdown-BtOz1kLl.js → vendor-markdown-CxEpKeyh.js} +1 -1
- package/dist/assets/{vendor-mermaid-CuzF-D1I.js → vendor-mermaid-BIhXK1bF.js} +4 -4
- package/dist/assets/{vendor-pdf-DKSPuLa9.js → vendor-pdf-D0-oBWsD.js} +4 -4
- package/dist/assets/{xychartDiagram-PRI3JC2R-DFMu-kfv.js → xychartDiagram-PRI3JC2R-DwBzmyeu.js} +1 -1
- package/dist/index.html +3 -3
- package/package.json +2 -1
- package/dist/assets/App-BHPFe35o.js +0 -247
- package/dist/assets/App-CWKFDTQi.css +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-BrIAA29n.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-BrIAA29n.js +0 -1
- package/dist/assets/clone-UExS44xq.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-C4ikui-V.js +0 -1
- package/dist/assets/vendor-antd-BlMATH2j.js +0 -502
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./App-
|
|
2
|
-
import{_ as P,j as c}from"./vendor-markdown-BtOz1kLl.js";import{g as w,i as m,d as A,R as S}from"./vendor-i18n-BNURlJ23.js";import{W as F}from"./vendor-antd-BlMATH2j.js";function x(t,a){for(var i=0;i<a.length;i++){const n=a[i];if(typeof n!="string"&&!Array.isArray(n)){for(const o in n)if(o!=="default"&&!(o in t)){const s=Object.getOwnPropertyDescriptor(n,o);s&&Object.defineProperty(t,o,s.get?s:{enumerable:!0,get:()=>n[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const p of s.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&n(p)}).observe(document,{childList:!0,subtree:!0});function i(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=i(o);fetch(o.href,s)}})();var u={},v;function R(){if(v)return u;v=1;var t=F();return u.createRoot=t.createRoot,u.hydrateRoot=t.hydrateRoot,u}var C=R();const y=w(C),_=x({__proto__:null,default:y},[C]),h={"en-US":{translation:{app:{loading:"Loading...",retry:"Retry",backendNotReachable:"Backend not reachable at {{baseUrl}} (last error: {{message}})"},layout:{showSidebar:"Show sidebar"},commandPalette:{searchPlaceholder:"Search sessions, settings, and actions",navigationHint:"Use ↑↓ to navigate, Enter to open, and Esc to close.",empty:"No matching commands",groups:{quickActions:"Quick actions",settings:"System settings"},badges:{quickAction:"Action",pinned:"Pinned",running:"Running",child:"Child",childSession:"Child session",rootSession:"Session"},actions:{newSession:"Create New Session",openProviderSettings:"Open Provider Settings",openMcpSettings:"Open MCP Settings",openWorkflowSettings:"Open Workflow Settings",openSessionsSettings:"Open Session Monitor",openSchedulesSettings:"Open Schedules"},errors:{actionFailed:"Command failed"}},common:{cancel:"Cancel",ok:"OK",apply:"Apply",save:"Save",delete:"Delete",saveAnyway:"Save Anyway",yes:"Yes",no:"No",home:"Home",parentDirectory:"Parent Directory",currentPath:"Current Path:",workspace:"Workspace",server:"Server:",category:"Category:",parameters:"Parameters",approve:"Approve",reject:"Reject",download:"Download",directory:"Directory",file:"File"},setup:{welcome:{title:"Welcome",heading:"Welcome to Bodhi",description:"Let's set up your environment before entering the main app.",skipInfo:"You can skip setup now and configure proxy settings later in System Settings."},steps:{welcome:"Welcome",proxy:"Proxy Configuration"},proxy:{title:"Proxy Configuration",info:"If you're behind a corporate proxy, configure it below.",providerInfo:"Provider configuration is done later in Provider Settings. This setup step only stores network/proxy settings.",detecting:"Detecting network environment...",noProxyDetected:"No existing proxy was detected. You can leave these fields empty if your network does not require a proxy.",httpProxyLabel:"HTTP Proxy URL:",httpsProxyLabel:"HTTPS Proxy URL:",httpProxyPlaceholder:"http://proxy.company.com:8080",httpsProxyPlaceholder:"http://proxy.company.com:8080",usernameLabel:"Username",passwordLabel:"Password",rememberCredentials:"Remember credentials (encrypted)"},complete:{title:"Setup Complete!",restartMessage:"Please restart the application to apply all settings."},button:{next:"Next",skipForNow:"Skip for now",back:"Back",completeSetup:"Complete Setup",restart:"Restart"},error:{loadStatusFailed:"Unable to load setup status. You can continue with manual proxy configuration.",invalidProxy:"Proxy settings are invalid.",credentialsUsername:"To store proxy credentials, please enter a username or uncheck 'Remember credentials'.",saveProxyFailed:"Failed to save proxy configuration. Please try again.",completeFailed:"Failed to complete setup. Please try again."}},chat:{sidebar:{newSession:"New Session",createFailedTitle:"Failed to create session",createFailedUnknown:"Unknown error",searchPlaceholder:"Search sessions",filters:{all:"All",pinned:"Pinned",running:"Running",child:"Child"},empty:{noSessions:"No sessions yet",noMatches:"No matching sessions",hint:'Click "New Session" to get started',filterHint:"Try adjusting your search or filters"},dateGroups:{today:"Today",yesterday:"Yesterday",thisWeek:"This Week",thisMonth:"This Month",pinned:"Pinned",scheduled:"Scheduled"},actions:{collapseChildren:"Collapse child sessions",expandChildren:"Expand child sessions"},delete:{title:"Delete Session",confirm:"Are you sure you want to delete this session?"},deleteByDate:{title:"Delete sessions from {{date}}",confirm:"Are you sure you want to delete {{count}} sessions from {{date}}?"},newSessionWithPrompt:"New session with {{prompt}}"},workspace:{modalTitle:"Set Workspace Path",invalidTitle:"Invalid Workspace Path",issuesDetected:"Potential issues detected with the workspace path:",confirmSaveInvalid:"Do you still want to save this path?",errorEnterPath:"Please enter a workspace path",errorSaveFailed:"Failed to save workspace path",placeholder:"e.g. /Users/alice/Workspace/MyProject",label:"Workspace",browseFolder:"Browse folder",descriptionTitle:"Workspace Path Description",descriptionP1:"Set a workspace path so file references and workspace tools can resolve files reliably.",descriptionP2:"Choose an existing project folder. You can still continue with an invalid path, but related features may not work correctly.",checkTitle:"Workspace Path Check",checkDescription:"Workspace path validation failed.",recentTitle:"Recent Workspaces",suggestedTitle:"Suggested Workspaces",noRecentWorkspaces:"No recent workspaces",noSuggestions:"No suggestions",defaultWorkspaceName:"Workspace",validWorkspace:"Valid workspace",fileCount:"{{count}} files"},folderBrowser:{title:"Select Workspace Folder",selectCurrent:"Select Current Folder",emptyFolder:"This folder is empty",tip:'Tip: Click a folder to enter, click "Select Current Folder" to confirm'},input:{placeholder:"Send a message...",placeholderWithReference:"Send a message (includes reference)",placeholderWithWorkflows:"Send a message... (type '/' for workflows)",toolCallsOnly:"Tool calls only (allowed tools: {{tools}})",autoPrefixMode:"Auto-prefix mode: {{prefix}} (type '/' to select tools)",toolSpecificMode:"Tool-specific mode (allowed tools: {{tools}})",processingFiles:"Processing files…",addAttachments:"Add attachments",referenceWorkspaceFiles:"Reference workspace files",imageCountSingular:"{{count}} image",imageCountPlural:"{{count}} images",moreImages:"+{{count}} more",clearAllImages:"Clear all images",reasoningTitle:"Reasoning effort: {{label}}",reasoning:{low:"Low",medium:"Medium",high:"High",xhigh:"Very high",max:"Max"},strictToolOnlyMode:"Strict tool-only mode",toolSpecificModeLabel:"Tool-specific mode",allowedTools:"Allowed tools:",autoPrefixLabel:"Auto prefix: {{prefix}}",mustStartWithPrefix:'Message must start with "{{prefix}}"'},actions:{regenerate:"Regenerate response",retryFailed:"Retry failed request",retryOptions:"Retry options",cancelRequest:"Cancel request",sendMessage:"Send message",copyMessage:"Copy message",referenceMessage:"Reference message",unpin:"Unpin",pin:"Pin",generateTitle:"Generate AI Title"},prompt:{selectorTitle:"Select System Prompt",createButton:"Create New Session",helperText:"Select a base system prompt for the AI. You can add or edit prompts in the System Settings.",emptyDescription:"No system prompts found. Add one in System Settings.",newSessionSelectorTitle:"Select System Prompt for New Session",defaultDescription:"Default system prompt.",loadPresetsFailed:"Failed to load presets",loadCurrentInfoFailed:"Failed to load current info"},fileReference:{title:"@ File Reference",setWorkspace:"Set Workspace",noMatches:"No matching files found",emptyDirectory:"Directory is empty"},commandSelector:{loading:"Loading commands...",emptyWithSearch:'No commands found matching "{{search}}"',empty:"No commands available.",navigationHint:"Navigation: Up/Down or Ctrl+P/N | Select: Enter | Complete: Space/Tab | Cancel: Esc",types:{workflow:"Workflow",skill:"Skill",mcp:"MCP"}},model:{selectModel:"Select model",noModelSelected:"No model selected",selectModelHint:"Choose a model to start chatting.",providerNotConfigured:"Provider not configured",configureProviderHint:"Set up your provider in settings before selecting a model.",configureProvider:"Configure provider",openSettings:"Open Settings",noModelsAvailable:"No models available",selectModelBeforeSend:"Please select a model before sending.",selectModelBeforeRetry:"Please select a model before retrying."},streaming:{assistant:"Bodhi",requestCancelled:"Request cancelled",sendFailed:"Failed to send message",retryFailed:"Failed to retry request",modelConfigNotLoaded:"Model configuration not loaded",agentUnavailable:"Agent unavailable",noActiveChatTitle:"No Active Chat",noActiveChatSendContent:"Please create or select a chat before sending a message.",noActiveChatRetryContent:"Please create or select a chat before retrying.",noChatIdTitle:"Missing Chat ID",noChatIdSendContent:"Current chat is missing an ID. Please create a new chat and try again.",noChatIdRetryContent:"Current chat is missing an ID. Please create a new chat and retry."},selectionToolbar:{selectMessages:"Select messages",selectedCount:"{{selected}} selected ({{total}} total)",selectAll:"Select all",clear:"Clear",exportMarkdown:"Export Markdown",exportPdf:"Export PDF",done:"Done"},compression:{tag:"Context compressed",timelineDetail:"{{count}} messages archived",timelineAria:"{{detail}} at {{time}}",tooltip:"Latest compression at {{time}}: {{count}} messages archived",archivedShort:"{{count}} archived"},subSessions:{title:"Sub-sessions",expand:"Expand",collapse:"Collapse",continue:"Continue here",open:"Open",retry:"Retry",hiddenHint:"{{count}} sub-sessions hidden"},chatItem:{edit:"Edit",childTag:"Child"},systemPromptSelector:{defaultTag:"Default",hide:"Hide",preview:"Preview",copy:"Copy",lines:"{{count}} lines",words:"{{count}} words",chars:"{{count}} chars",noContent:"No content"},title:{updated:"Chat title updated",generateFailed:"Failed to generate chat title"},respond:{customAnswerPlaceholder:"Type your custom answer..."},emptyLauncher:{title:"Start with a task",subtitle:"Create a focused session in this pane and prefill the first message before you send it.",hint:"Nothing is sent automatically — you can edit the prompt first.",actions:{blank:{title:"Blank session",description:"Start from scratch with the default assistant and an empty composer.",sessionTitle:"New Session",prefill:""},codeReview:{title:"Code review",description:"Open a review-focused session with an editable review brief.",sessionTitle:"Code Review",prefill:"Review the relevant code changes in this workspace or repository. Start with the overall scope, then list risks, notable diffs, and the most important fixes."},tokenUsage:{title:"Token usage investigation",description:"Diagnose context growth, truncation risk, and token budget pressure.",sessionTitle:"Token Usage Investigation",prefill:"Help me investigate token usage, context growth, and truncation risk for this session or workflow. Summarize the likely drivers and recommend concrete next fixes."}},errors:{createFailed:"Failed to create session"}},multiPane:{splitHorizontal:"Split horizontally",splitVertical:"Split vertically",closePane:"Close pane",selectSessionHint:"Select a session to view messages",hoverToSplitHint:"Hover a pane to split and compare chats",selectMessagesToExport:"Select messages to export"},messageCard:{authRequired:"Authentication required",goToSettings:"Go to Settings",assistantThinking:"Assistant is thinking...",assistantCompactingContext:"Assistant is compacting context...",reasoning:"Reasoning",selected:"Selected",selectedTool:"Selected tool"},messageActions:{copy:"Copy",exportMarkdown:"Export as Markdown",exportPdf:"Export as PDF",restoreChat:"Restore chat only",restoreFilesAndChat:"Restore files and chat",deleteMessage:"Delete message",deleteFailed:"Failed to delete message",deleteNotFound:"Message no longer exists on backend. Reload and retry.",deleteConflict:"Session is running. Stop it and try deleting again.",deleteBatchFailed:"{{failed}} of {{total}} messages failed to delete.",savedFile:"Saved to {{filename}}",nothingToExport:"Nothing to export",exportFailed:"Export failed",cannotRestore:"Cannot restore this message",restorePartial:"Chat restored. {{count}} file(s) could not be restored.",restoreFilesSuccess:"Files and chat restored ({{count}} message(s) removed).",restoreSuccess:"Chat restored ({{count}} message(s) removed).",restoreFailed:"Failed to restore session",pdfUnavailable:"PDF export is unavailable in this environment",exportingPdf:"Exporting PDF..."},session:{defaultTitle:"New Session"}},settings:{page:{back:"Back",title:"System Settings",tabs:{config:"Config",prompts:"Prompts",mermaid:"Mermaid",skills:"Skills",workflows:"Workflows",mcp:"MCP",modelLimits:"Model Limits",metrics:"Metrics",schedules:"Schedules",sessions:"Sessions",app:"App",provider:"Provider",hooks:"Hooks",masking:"Masking",envVars:"Env Vars"},groups:{ai:"AI",toolsAndExtensions:"Tools & Extensions",securityAndPrivacy:"Security",monitoring:"Monitoring",system:"System"}},notifications:{deleteAllSuccess:"All sessions deleted (except pinned)",deleteEmptySuccess:"Empty sessions deleted (except pinned)",localStorageCleared:"Local storage has been cleared",resetSuccessReloading:"Application reset successful. Reloading...",resetFailed:"Failed to reset application",autoTitleEnabled:"Auto title generation enabled",autoTitleDisabled:"Auto title generation disabled",autoTitleUpdateFailed:"Failed to update auto title preference",promptEnhancementSaved:"System prompt enhancement saved"},appTab:{autoGenerateTitle:"Auto-generate Session Titles",autoGenerateTitleDesc:"When enabled, the app generates a descriptive title after the first assistant response.",switchOn:"ON",switchOff:"OFF",darkMode:"Dark Mode",vdiSafeMode:"Graphics compatibility mode",vdiSafeModeDesc:"Disables blur and glass effects that can break dropdowns and hover overlays in some virtual desktop, remote, or graphics-constrained environments.",vdiSafeModeEnabled:"Graphics compatibility mode enabled",vdiSafeModeDisabled:"Graphics compatibility mode disabled",darkModeDark:"Dark",darkModeLight:"Light",language:"Language",languageEnglish:"English",languageChinese:"Simplified Chinese",languageTraditionalChinese:"Traditional Chinese",languageFrench:"French",languageJapanese:"Japanese",languageHindi:"Hindi",deleteAllTitle:"Delete all sessions",deleteAllDescription:"Are you sure? This will delete all sessions except pinned.",deleteAllButton:"Delete All Sessions",deleteEmptyTitle:"Delete empty sessions",deleteEmptyDescription:"Are you sure? This will delete all sessions with no messages (except pinned).",deleteEmptyButton:"Delete Empty Sessions",clearLocalStorageTitle:"Clear Local Storage",clearLocalStorageDescription:"Are you sure? This will delete all local storage data and reset the application.",clearLocalStorageButton:"Clear Local Storage",confirmDeleteAll:"Yes, delete all",confirmDeleteEmpty:"Yes, delete empty",confirmClear:"Yes, clear it",cancel:"Cancel",dangerZone:"Danger Zone",dangerDescription:"These actions cannot be undone. All data will be permanently deleted.",resetApplicationTitle:"Reset Application",resetApplicationIntro:"Are you sure? This will:",resetStepDeleteAllSessions:"Delete ALL sessions (including pinned)",resetStepClearStorage:"Clear all local storage data",resetStepResetConfig:"Reset config.json to default",resetStepSetupFlow:"Trigger the initial setup flow on next launch",resetStepReload:"Reload the application",resetConfirm:"Yes, reset everything",resetButton:"Reset Application (All Data)",runningVersion:"Running version",runningVersionDesc:"This is the currently running Lotus frontend version."},configTab:{tabs:{general:"General",tools:"Tools"},loadConfigFailed:"Failed to load configuration",invalidConfig:"Invalid configuration",saveConfigSuccess:"Configuration saved successfully",saveConfigFailed:"Failed to save configuration",toolsLoadFailed:"Failed to load available tools",toolsReloadSuccess:"Tool list reloaded",toolsSaveSuccess:"Tool settings saved successfully",toolsSaveFailed:"Failed to save tool settings",backendSaved:"Backend URL saved",backendResetDefault:"Backend URL reset to default",providerMovedTitle:"Provider Configuration Moved",providerMovedDescription:"GitHub Copilot and other provider settings have been moved to the Provider Settings tab. Please configure your providers there.",backendApiBaseUrlTitle:"Backend API Base URL",backendApiPlaceholder:"http://127.0.0.1:9562/v1",backendApiHint:"Must include /v1 path",resetToDefault:"Reset to Default",save:"Save",language:"Language",languageEnglish:"English",languageChinese:"Simplified Chinese",languageTraditionalChinese:"Traditional Chinese",languageFrench:"French",languageJapanese:"Japanese",languageHindi:"Hindi",toolsTitle:"Tool Availability",toolsDescription:"Toggle whether each tool can be sent to the AI model. Disabled tools are hidden from model tool schemas.",toolsEmpty:"No tools are currently available.",reloadTools:"Reload Tools",loadBambooConfigFailed:"Failed to load Bamboo config",bambooConfigSaved:"Bamboo config saved",saveBambooConfigFailed:"Failed to save Bamboo config"},networkCard:{title:"Network Settings",httpProxy:"HTTP Proxy",httpsProxy:"HTTPS Proxy",proxyPlaceholder:"http://proxy.example.com:8080",proxyAuthTitle:"Proxy Authentication",proxyConfiguredForUser:"Configured for user: {{username}}",clearCredentials:"Clear Credentials",username:"Username",password:"Password",apply:"Apply",credentialsStorageNote:"Proxy credentials are stored encrypted in ~/.bamboo/config.json",reload:"Reload",save:"Save"},modelMappingCard:{loadProviderFailed:"Failed to load provider configuration",loadMappingsFailed:"Failed to load existing mappings",loadModelsFailed:"Failed to load models",loadModelsHint:"Failed to load models. Please check your provider configuration.",mappingSaved:"Model mapping saved",mappingSaveFailed:"Failed to save model mapping",enterModelName:"Please enter a model name",customMappingSaved:"Custom model mapping saved",customMappingSaveFailed:"Failed to save custom model mapping",collapseTitle:"Anthropic Model Mapping",description:"Configure which {{provider}} models to use when Claude CLI requests specific models.",loadModelsErrorTitle:"Failed to Load Models",retry:"Retry",loadingModels:"Loading models...",modelTypeOpus:"Opus",modelTypeOpusDescription:'matches models containing "opus"',modelTypeSonnet:"Sonnet",modelTypeSonnetDescription:'matches models containing "sonnet"',modelTypeHaiku:"Haiku",modelTypeHaikuDescription:'matches models containing "haiku"',selectModelPlaceholder:"Select {{label}} model",customModelOption:"Custom model...",mappedModelNotFound:`Mapped model "{{model}}" not found in current provider's available models`,refreshModels:"Refresh Models",currentProvider:"Current Provider",loadingProvider:"Loading...",availableModels:"Available Models",cached:"(cached)",storedIn:"Stored in",customModalTitle:"Enter Custom Model Name",customModalDescription:"Enter a custom model name for {{modelType}}",customModalPlaceholder:"e.g., gpt-4-turbo-preview",customModalNote:"Note: Make sure the model name is valid for the current provider.",save:"Save",cancel:"Cancel"},modelTab:{selectModelTitle:"Select Model",loadingModels:"Loading models...",selectModelPlaceholder:"Select a model",backendApiBaseUrlTitle:"Backend API Base URL",resetToDefault:"Reset to Default",save:"Save",backendApiHint:"Must be a full base URL including /v1 (e.g. {{example}})."},mermaidTab:{title:"Mermaid Diagram Settings",description:"Customize how Mermaid diagrams are rendered in your chats",themeCardTitle:"Theme",themeLabel:"Mermaid Theme",themeTooltip:"Choose a built-in Mermaid theme. Default and Neutral auto-switch between light and dark based on app theme.",themeOptions:{default:"Default (Auto Light/Dark)",neutral:"Neutral (Auto Light/Dark)",dark:"Dark",forest:"Forest (Green Tones)",base:"Base (Minimal)"},themeDescriptionsTitle:"Theme Descriptions:",themeDescriptions:{default:"Default: Classic Mermaid look, auto-adapts to light/dark",neutral:"Neutral: Gray tones, auto-adapts to light/dark",dark:"Dark: Always dark theme",forest:"Forest: Green color scheme, good for technical diagrams",base:"Base: Minimal styling, for custom theming"},globalCardTitle:"Global Settings",fontSizeLabel:"Font Size",fontSizeTooltip:"Base font size for all diagram text (in pixels)",defaultZoomLabel:"Default Zoom",defaultZoomTooltip:"Initial zoom level for diagrams (1.0 = 100%)",responsiveWidthLabel:"Responsive Width",responsiveWidthTooltip:"Enable to make diagrams adapt to container width. Disable for fixed-width diagrams.",switchAuto:"Auto",switchFixed:"Fixed",flowchartCardTitle:"Flowchart Settings",flowchartNodeSpacingLabel:"Node Spacing",flowchartNodeSpacingTooltip:"Horizontal spacing between nodes",flowchartRankSpacingLabel:"Rank Spacing",flowchartRankSpacingTooltip:"Vertical spacing between layers",flowchartCurveTypeLabel:"Curve Type",flowchartCurveTypeTooltip:"Type of curve for connections",flowchartCurveOptions:{basis:"Smooth (Basis)",linear:"Linear",cardinal:"Cardinal"},sequenceCardTitle:"Sequence Diagram Settings",sequenceActorMarginLabel:"Actor Margin",sequenceActorMarginTooltip:"Spacing between actors",sequenceMessageMarginLabel:"Message Margin",sequenceMessageMarginTooltip:"Spacing between messages",sequenceActorWidthLabel:"Actor Width",sequenceActorWidthTooltip:"Width of each actor box",sequenceActorHeightLabel:"Actor Height",sequenceActorHeightTooltip:"Height of each actor box",ganttCardTitle:"Gantt Chart Settings",ganttBarHeightLabel:"Bar Height",ganttBarHeightTooltip:"Height of each task bar",ganttTopPaddingLabel:"Top Padding",ganttTopPaddingTooltip:"Space at the top of the chart",resetToDefaults:"Reset to Defaults",previewTitle:"Preview",previewDescription:"Changes are applied immediately. Try creating or viewing a diagram to see your settings in action."},modelLimits:{title:"Token Budget Model Limits",descriptionPrefix:"Configure per-model token limits for context budgeting. These settings are persisted globally in Bamboo",descriptionSuffix:"and used by the backend resolver.",defaultsTitle:"Model Defaults",defaultsDescription:"Preloaded with GPT-5 / GPT-4 / Gemini / Kimi / GLM defaults. You can keep editing as needed.",migratedFromLocalStorage:"Migrated model limits from local storage to global config.",loadFailed:"Failed to load model limits settings",saveSuccess:"Model limits saved to global config",saveFailed:"Failed to save model limits settings",resetSuccess:"Model limits reset to product defaults",resetFailed:"Failed to reset model limits settings",defaults:{gpt54:"Top-tier capability with reasoning depth.",gpt53Codex:"Optimized for code refactoring workflows.",gpt52Pro:"Strong logical stability for complex tasks.",gpt5Mini:"Fast and cost-efficient general-purpose option.",gpt41:"Classic large-context model with 1M window.",gpt4o:"Low latency, suitable for everyday chat.",gemini25Pro:"Strong multimodal analysis capabilities.",kimiK25:"Preferred for long-form Chinese content.",kimiCoding:"Tuned for coding-focused scenarios.",glm5:"Good for one-shot large-document generation."},columns:{vendor:"Vendor/Series",model:"Model",contextWindow:"Context Window",maxOutput:"Max Output",notes:"Notes",actions:"Actions"},placeholders:{vendor:"OpenAI / Google / Moonshot",model:"e.g. gpt-5.4-thinking",optional:"Optional"},actions:{remove:"Remove",addRow:"Add Row",save:"Save",resetToDefaults:"Reset to Defaults",reload:"Reload"},validation:{atLeastOneRow:"Please keep at least one model limit row.",modelPatternEmpty:"Model pattern cannot be empty.",duplicateModelPattern:"Duplicate model pattern: {{pattern}}",contextWindowMin:"Context window for {{pattern}} must be at least 1000.",maxOutputMin:"Max output for {{pattern}} must be at least 1.",maxOutputExceedsContext:"Max output for {{pattern}} must be less than or equal to context window.",safetyMarginNegative:"Safety margin for {{pattern}} cannot be negative.",safetyMarginTooLarge:"Safety margin for {{pattern}} must be smaller than context window."}},common:{loading:"Loading...",successful:"Successful",failed:"Failed"},systemPromptManager:{title:"System Prompt Management",addButton:"Add Prompt",defaultPromptLocked:"Default system prompts are locked and cannot be edited.",updateSuccess:"Prompt updated successfully",addSuccess:"Prompt added successfully",saveError:"Failed to save prompt. Please try again.",deleteSuccess:"Prompt deleted successfully",deleteError:"Failed to delete prompt. Please try again.",deleteConfirm:"Are you sure to delete this prompt?",defaultTag:"Default (Locked)",editTitle:"Edit System Prompt",addTitle:"Add New System Prompt",nameLabel:"Prompt Name",nameRequired:"Please input the name of the prompt!",descriptionLabel:"Prompt Description",descriptionRequired:"Please input the description of the prompt!",contentLabel:"Prompt Content",contentRequired:"Please input the content of the prompt!"},envVars:{title:"Environment Variables",description:"Variables are injected into Bash tool processes. Secret variables are encrypted at rest.",fetchError:"Failed to load environment variables",created:"Variable created",updated:"Variable updated",saveError:"Failed to save variable",deleted:"Variable deleted",deleteError:"Failed to delete variable",addButton:"Add Variable",noVars:"No environment variables configured",addTitle:"Add Environment Variable",editTitle:"Edit Variable",save:"Save",cancel:"Cancel",name:"Name",nameRequired:"Variable name is required",nameInvalid:"Must start with a letter or underscore, followed by letters, digits, or underscores",value:"Value",valueRequired:"Value is required for new variables",valueEditHint:"Leave empty to keep the existing value",valuePlaceholder:"Enter value",valuePlaceholderEdit:"Enter new value or leave empty",secret:"Secret",secretHint:"Secret variables are encrypted on disk and masked in the UI",descriptionField:"Description",descriptionPlaceholder:"Optional description",type:"Type",plain:"Plain",descriptionCol:"Description",actions:"Actions",deleteConfirm:"Delete this variable?",yes:"Yes",no:"No",notSet:"(not set)",empty:"(empty)"},promptsTab:{title:"System Prompt Enhancement",mermaidEnhancement:"Mermaid Enhancement",taskListRules:"Shared Task Rules",copilotConclusionWithOptionsBeforeFinish:"Copilot conclusion_with_options Before Finish",copilotConclusionWithOptionsBeforeFinishDescription:"When enabled for Copilot sessions, Bamboo requires the assistant to finish by calling conclusion_with_options. If the model tries to end with plain text, Bamboo stops the completion and returns a completion policy violation.",switchOn:"ON",switchOff:"OFF",enhancementPlaceholder:"Add global enhancement text to append to every system prompt.",saveEnhancement:"Save Enhancement",description:"This text is appended first, followed by enabled system enhancements before each request is sent."},hooksTab:{title:"Image Hooks",enableImagePreflight:"Enable image preflight hook",modeLabel:"Mode",description:"Placeholder mode rewrites images into text summaries (this can break tools that expect real image data). OCR is currently Windows-only.",loadFailed:"Failed to load hooks settings",updateFailed:"Failed to update hooks",modeUpdateFailed:"Failed to update hook mode",enabled:"Image hooks enabled",disabled:"Image hooks disabled",modeUpdated:"Image hook mode set to: {{mode}}",mode:{placeholder:"Placeholder",error:"Error",ocr:"OCR (Windows)",vision:"Vision (LLM)"}},keywordMaskingTab:{title:"Keyword Masking",addKeyword:"Add Keyword",description:"Configure keywords to be masked before sending to Copilot API. Use exact match for literal strings or regex for pattern matching. All matches will be replaced with [MASKED].",empty:"No keyword masking rules configured",cancel:"Cancel",patternPlaceholder:"Enter pattern to match",examples:"Examples",exactMatch:"Exact Match",regexPattern:"Regex Pattern",enabled:"Enabled",disabled:"Disabled",sampleText:"Sample text",sampleTextPlaceholder:"Enter sample text",maskedPreview:"Masked preview",emptyPattern:"(empty)",loadFailed:"Failed to load keyword masking configuration",saveFailed:"Failed to save configuration",saveSuccess:"Keyword masking configuration saved",validationFailedPrefix:"Validation failed",patternRequired:"Pattern cannot be empty",invalidRegexPattern:"Invalid regex pattern",example:{literalToken:"Mask a literal token",githubTokens:"Mask GitHub tokens",awsKeys:"Mask AWS keys",emails:"Mask email addresses"}},schedulesTab:{loadFailed:"Failed to load schedules",loadSessionsFailed:"Failed to load schedule sessions",createFailed:"Failed to create schedule",updateFailed:"Failed to update schedule",deleteFailed:"Failed to delete schedule",runNowFailed:"Failed to run schedule",taskMessageRequired:"Task message is required when Auto Execute is enabled",created:"Schedule created",updated:"Schedule updated",deleted:"Deleted schedule",enqueuedRun:"Enqueued run",loading:"Loading...",yes:"Yes",no:"No",optional:"(optional)",defaultName:"My Schedule",createTitle:"Create Schedule",listTitle:"Schedules",scheduleSessionsTitle:"Schedule Sessions",noSessionsYet:"No sessions yet.",editTitle:"Edit Schedule",columns:{name:"Name",autoExecute:"Auto Execute",model:"Model",enabled:"Enabled",intervalSeconds:"Interval (s)",nextRun:"Next Run",lastRun:"Last Run",actions:"Actions"},form:{name:"Name",intervalSeconds:"Interval Seconds",enabled:"Enabled",taskMessage:"Task Message",taskMessagePlaceholder:"(Optional) A task to run",model:"Model",modelPlaceholder:"(Optional) e.g. gpt-4o-mini",modelRequiredIfAuto:"Required if auto execute",autoExecute:"Auto Execute",systemPrompt:"System Prompt",workspacePath:"Workspace Path",enhancePrompt:"Enhance Prompt"},validation:{nameRequired:"Name is required",intervalRequired:"Interval is required"},actions:{create:"Create",refresh:"Refresh",edit:"Edit",runNow:"Run Now",sessions:"Sessions",delete:"Delete",open:"Open",save:"Save"}},sessionsTab:{currentSessionTitle:"Current Session",id:"id",kind:"kind",clearMessages:"Clear Messages",clearMessagesTitle:"Clear Session Messages",clearMessagesContent:"This clears messages/attachments for the current session but keeps the session entry.",clear:"Clear",cancel:"Cancel",sessionCleared:"Session cleared",noActiveSession:"No active session.",bulkCleanupTitle:"Bulk Cleanup",keepPinned:"Keep pinned",deleteAll:"Delete All",deleteAllTitle:"Delete All Sessions",deleteAllKeepPinned:"Deletes all sessions except pinned.",deleteAllIncludePinned:"Deletes all sessions including pinned.",deleteEmpty:"Delete Empty",deleteEmptyTitle:"Delete Empty Sessions",deleteEmptyKeepPinned:"Deletes empty sessions except pinned.",deleteEmptyIncludePinned:"Deletes empty sessions including pinned.",deleteChildren:"Delete Children",deleteChildrenTitle:"Delete Child Sessions",deleteChildrenKeepPinned:"Deletes all child sessions except pinned.",deleteChildrenIncludePinned:"Deletes all child sessions including pinned.",delete:"Delete",cleanupComplete:"Cleanup complete",devResetTitle:"Development Reset",devResetDescription:"Greenfield reset for session storage (deletes sessions/ and resets sessions.json).",devResetAction:"Dev Reset Sessions",devResetConfirmTitle:"Reset Session Storage (Dev)",devResetConfirmContent:"This deletes ALL sessions (including pinned/child) and resets the sessions index. A new empty session will be created after refresh.",reset:"Reset",devResetDone:"Session storage reset"},workflowsTab:{title:"Workflows",description:"Workflows are stored in `~/.bamboo/workflows` as Markdown files. Use `/name` to insert a workflow in chat.",loadFailed:"Failed to load workflows",loadContentFailed:"Failed to load workflow content",invalidName:"Invalid workflow name",nameAlreadyExists:"A workflow with this name already exists",saved:"Workflow saved",saveFailed:"Failed to save workflow",deleted:"Workflow deleted",deleteFailed:"Failed to delete workflow",refresh:"Refresh",newWorkflow:"New Workflow",save:"Save",empty:"No workflows found",namePlaceholder:"Workflow name",contentPlaceholder:`# Workflow Title
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./App-Lp1tMttv.js","./vendor-markdown-CxEpKeyh.js","./vendor-i18n-BNURlJ23.js","./vendor-antd-BSy6VeYJ.js","./vendor-charts-DLRDG2Rl.js","./vendor-mermaid-BIhXK1bF.js","./App-Ct4Iqvsg.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as M,j as c}from"./vendor-markdown-CxEpKeyh.js";import{g as w,i as m,d as A,R as y}from"./vendor-i18n-BNURlJ23.js";import{W as F}from"./vendor-antd-BSy6VeYJ.js";function x(t,a){for(var i=0;i<a.length;i++){const n=a[i];if(typeof n!="string"&&!Array.isArray(n)){for(const o in n)if(o!=="default"&&!(o in t)){const s=Object.getOwnPropertyDescriptor(n,o);s&&Object.defineProperty(t,o,s.get?s:{enumerable:!0,get:()=>n[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const p of s.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&n(p)}).observe(document,{childList:!0,subtree:!0});function i(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=i(o);fetch(o.href,s)}})();var u={},v;function R(){if(v)return u;v=1;var t=F();return u.createRoot=t.createRoot,u.hydrateRoot=t.hydrateRoot,u}var S=R();const C=w(S),_=x({__proto__:null,default:C},[S]),h={"en-US":{translation:{app:{loading:"Loading...",retry:"Retry",backendNotReachable:"Backend not reachable at {{baseUrl}} (last error: {{message}})",passwordGate:{title:"Enter Access Password",description:"Password verification is required before entering the application.",passwordLabel:"Access Password",passwordPlaceholder:"Enter access password",submit:"Verify and Continue",validation:{required:"Please enter the access password",verifyFailed:"Password verification failed"}}},layout:{showSidebar:"Show sidebar"},commandPalette:{searchPlaceholder:"Search sessions, settings, and actions",navigationHint:"Use ↑↓ to navigate, Enter to open, and Esc to close.",empty:"No matching commands",groups:{quickActions:"Quick actions",settings:"System settings"},badges:{quickAction:"Action",pinned:"Pinned",running:"Running",child:"Child",childSession:"Child session",rootSession:"Session"},actions:{newSession:"Create New Session",openProviderSettings:"Open Provider Settings",openMcpSettings:"Open MCP Settings",openWorkflowSettings:"Open Workflow Settings",openSessionsSettings:"Open Session Monitor",openSchedulesSettings:"Open Schedules"},errors:{actionFailed:"Command failed"}},common:{cancel:"Cancel",ok:"OK",apply:"Apply",save:"Save",delete:"Delete",saveAnyway:"Save Anyway",yes:"Yes",no:"No",home:"Home",parentDirectory:"Parent Directory",currentPath:"Current Path:",workspace:"Workspace",server:"Server:",category:"Category:",parameters:"Parameters",approve:"Approve",reject:"Reject",download:"Download",directory:"Directory",file:"File"},setup:{welcome:{title:"Welcome",heading:"Welcome to Bodhi",description:"Let's set up your environment before entering the main app.",skipInfo:"You can skip setup now and configure proxy settings later in System Settings."},steps:{welcome:"Welcome",proxy:"Proxy Configuration"},proxy:{title:"Proxy Configuration",info:"If you're behind a corporate proxy, configure it below.",providerInfo:"Provider configuration is done later in Provider Settings. This setup step only stores network/proxy settings.",detecting:"Detecting network environment...",noProxyDetected:"No existing proxy was detected. You can leave these fields empty if your network does not require a proxy.",httpProxyLabel:"HTTP Proxy URL:",httpsProxyLabel:"HTTPS Proxy URL:",httpProxyPlaceholder:"http://proxy.company.com:8080",httpsProxyPlaceholder:"http://proxy.company.com:8080",usernameLabel:"Username",passwordLabel:"Password",rememberCredentials:"Remember credentials (encrypted)"},complete:{title:"Setup Complete!",restartMessage:"Please restart the application to apply all settings."},button:{next:"Next",skipForNow:"Skip for now",back:"Back",completeSetup:"Complete Setup",restart:"Restart"},error:{loadStatusFailed:"Unable to load setup status. You can continue with manual proxy configuration.",invalidProxy:"Proxy settings are invalid.",credentialsUsername:"To store proxy credentials, please enter a username or uncheck 'Remember credentials'.",saveProxyFailed:"Failed to save proxy configuration. Please try again.",completeFailed:"Failed to complete setup. Please try again."}},chat:{sidebar:{newSession:"New Session",createFailedTitle:"Failed to create session",createFailedUnknown:"Unknown error",searchPlaceholder:"Search sessions",filters:{all:"All",pinned:"Pinned",running:"Running",child:"Child"},empty:{noSessions:"No sessions yet",noMatches:"No matching sessions",hint:'Click "New Session" to get started',filterHint:"Try adjusting your search or filters"},dateGroups:{today:"Today",yesterday:"Yesterday",thisWeek:"This Week",thisMonth:"This Month",pinned:"Pinned",scheduled:"Scheduled"},actions:{collapseChildren:"Collapse child sessions",expandChildren:"Expand child sessions"},delete:{title:"Delete Session",confirm:"Are you sure you want to delete this session?"},deleteByDate:{title:"Delete sessions from {{date}}",confirm:"Are you sure you want to delete {{count}} sessions from {{date}}?"},newSessionWithPrompt:"New session with {{prompt}}"},workspace:{modalTitle:"Set Workspace Path",invalidTitle:"Invalid Workspace Path",issuesDetected:"Potential issues detected with the workspace path:",confirmSaveInvalid:"Do you still want to save this path?",errorEnterPath:"Please enter a workspace path",errorSaveFailed:"Failed to save workspace path",placeholder:"e.g. /Users/alice/Workspace/MyProject",label:"Workspace",browseFolder:"Browse folder",descriptionTitle:"Workspace Path Description",descriptionP1:"Set a workspace path so file references and workspace tools can resolve files reliably.",descriptionP2:"Choose an existing project folder. You can still continue with an invalid path, but related features may not work correctly.",checkTitle:"Workspace Path Check",checkDescription:"Workspace path validation failed.",recentTitle:"Recent Workspaces",suggestedTitle:"Suggested Workspaces",noRecentWorkspaces:"No recent workspaces",noSuggestions:"No suggestions",defaultWorkspaceName:"Workspace",validWorkspace:"Valid workspace",fileCount:"{{count}} files"},folderBrowser:{title:"Select Workspace Folder",selectCurrent:"Select Current Folder",emptyFolder:"This folder is empty",tip:'Tip: Click a folder to enter, click "Select Current Folder" to confirm'},input:{placeholder:"Send a message...",placeholderWithReference:"Send a message (includes reference)",placeholderWithWorkflows:"Send a message... (type '/' for workflows)",toolCallsOnly:"Tool calls only (allowed tools: {{tools}})",autoPrefixMode:"Auto-prefix mode: {{prefix}} (type '/' to select tools)",toolSpecificMode:"Tool-specific mode (allowed tools: {{tools}})",processingFiles:"Processing files…",addAttachments:"Add attachments",referenceWorkspaceFiles:"Reference workspace files",imageCountSingular:"{{count}} image",imageCountPlural:"{{count}} images",moreImages:"+{{count}} more",clearAllImages:"Clear all images",reasoningTitle:"Reasoning effort: {{label}}",reasoning:{low:"Low",medium:"Medium",high:"High",xhigh:"Very high",max:"Max"},strictToolOnlyMode:"Strict tool-only mode",toolSpecificModeLabel:"Tool-specific mode",allowedTools:"Allowed tools:",autoPrefixLabel:"Auto prefix: {{prefix}}",mustStartWithPrefix:'Message must start with "{{prefix}}"'},actions:{regenerate:"Regenerate response",retryFailed:"Retry failed request",retryOptions:"Retry options",cancelRequest:"Cancel request",sendMessage:"Send message",copyMessage:"Copy message",referenceMessage:"Reference message",unpin:"Unpin",pin:"Pin",generateTitle:"Generate AI Title",runProjectDream:"Run Project Dream",runProjectDreamRunning:"Running Project Dream...",runProjectDreamSuccess:"Project Dream updated",runProjectDreamNoChange:"No Project Dream update was needed",runProjectDreamFailed:"Failed to run Project Dream"},prompt:{selectorTitle:"Select System Prompt",createButton:"Create New Session",helperText:"Select a base system prompt for the AI. You can add or edit prompts in the System Settings.",emptyDescription:"No system prompts found. Add one in System Settings.",newSessionSelectorTitle:"Select System Prompt for New Session",defaultDescription:"Default system prompt.",loadPresetsFailed:"Failed to load presets",loadCurrentInfoFailed:"Failed to load current info",systemCard:{title:"System Prompt",viewEnhanced:"View Enhanced",viewBase:"View Base",copy:"Copy",snapshotTitle:"Prompt Snapshot",sections:{base:"Base",enhancement:"Enhancement",workspace:"Workspace",instruction:"Instruction",env:"Environment",skills:"Skills",toolGuide:"Tool Guide",dream:"Dream Notebook",sessionMemory:"Session Memory",externalMemory:"Memory Layers",taskList:"Task List",effective:"Effective Prompt"}}},fileReference:{title:"@ File Reference",setWorkspace:"Set Workspace",noMatches:"No matching files found",emptyDirectory:"Directory is empty"},commandSelector:{loading:"Loading commands...",emptyWithSearch:'No commands found matching "{{search}}"',empty:"No commands available.",navigationHint:"Navigation: Up/Down or Ctrl+P/N | Select: Enter | Complete: Space/Tab | Cancel: Esc",types:{workflow:"Workflow",skill:"Skill",mcp:"MCP"}},model:{selectModel:"Select model",noModelSelected:"No model selected",selectModelHint:"Choose a model to start chatting.",providerNotConfigured:"Provider not configured",configureProviderHint:"Set up your provider in settings before selecting a model.",configureProvider:"Configure provider",openSettings:"Open Settings",noModelsAvailable:"No models available",selectModelBeforeSend:"Please select a model before sending.",selectModelBeforeRetry:"Please select a model before retrying."},streaming:{assistant:"Bodhi",requestCancelled:"Request cancelled",sendFailed:"Failed to send message",retryFailed:"Failed to retry request",modelConfigNotLoaded:"Model configuration not loaded",agentUnavailable:"Agent unavailable",noActiveChatTitle:"No Active Chat",noActiveChatSendContent:"Please create or select a chat before sending a message.",noActiveChatRetryContent:"Please create or select a chat before retrying.",noChatIdTitle:"Missing Chat ID",noChatIdSendContent:"Current chat is missing an ID. Please create a new chat and try again.",noChatIdRetryContent:"Current chat is missing an ID. Please create a new chat and retry."},selectionToolbar:{selectMessages:"Select messages",selectedCount:"{{selected}} selected ({{total}} total)",selectAll:"Select all",clear:"Clear",exportMarkdown:"Export Markdown",exportPdf:"Export PDF",done:"Done"},compression:{tag:"Context compressed",timelineDetail:"{{count}} messages archived",timelineAria:"{{detail}} at {{time}}",tooltip:"Latest compression at {{time}}: {{count}} messages archived",archivedShort:"{{count}} archived"},subSessions:{title:"Sub-sessions",expand:"Expand",collapse:"Collapse",continue:"Continue here",open:"Open",retry:"Retry",hiddenHint:"{{count}} sub-sessions hidden"},chatItem:{edit:"Edit",childTag:"Child"},systemPromptSelector:{defaultTag:"Default",hide:"Hide",preview:"Preview",copy:"Copy",lines:"{{count}} lines",words:"{{count}} words",chars:"{{count}} chars",noContent:"No content"},title:{updated:"Chat title updated",generateFailed:"Failed to generate chat title"},respond:{customAnswerPlaceholder:"Type your custom answer..."},emptyLauncher:{title:"Start with a task",subtitle:"Create a focused session in this pane and prefill the first message before you send it.",hint:"Nothing is sent automatically — you can edit the prompt first.",actions:{blank:{title:"Blank session",description:"Start from scratch with the default assistant and an empty composer.",sessionTitle:"New Session",prefill:""},codeReview:{title:"Code review",description:"Open a review-focused session with an editable review brief.",sessionTitle:"Code Review",prefill:"Review the relevant code changes in this workspace or repository. Start with the overall scope, then list risks, notable diffs, and the most important fixes."},tokenUsage:{title:"Token usage investigation",description:"Diagnose context growth, truncation risk, and token budget pressure.",sessionTitle:"Token Usage Investigation",prefill:"Help me investigate token usage, context growth, and truncation risk for this session or workflow. Summarize the likely drivers and recommend concrete next fixes."}},errors:{createFailed:"Failed to create session"}},multiPane:{splitHorizontal:"Split horizontally",splitVertical:"Split vertically",closePane:"Close pane",selectSessionHint:"Select a session to view messages",hoverToSplitHint:"Hover a pane to split and compare chats",selectMessagesToExport:"Select messages to export"},messageCard:{authRequired:"Authentication required",goToSettings:"Go to Settings",assistantThinking:"Assistant is thinking...",assistantCompactingContext:"Assistant is compacting context...",assistantCompactingContextDegraded:"Assistant is compacting context (degraded mode)...",assistantCompactingContextFailed:"Assistant failed to compact context. Continuing...",assistantUpdatingMemory:"Assistant is updating memory...",assistantRunningTool:"Assistant is running {{tool}}...",reasoning:"Reasoning",selected:"Selected",selectedTool:"Selected tool"},messageActions:{copy:"Copy",exportMarkdown:"Export as Markdown",exportPdf:"Export as PDF",restoreChat:"Restore chat only",restoreFilesAndChat:"Restore files and chat",deleteMessage:"Delete message",deleteFailed:"Failed to delete message",deleteNotFound:"Message no longer exists on backend. Reload and retry.",deleteConflict:"Session is running. Stop it and try deleting again.",deleteBatchFailed:"{{failed}} of {{total}} messages failed to delete.",savedFile:"Saved to {{filename}}",nothingToExport:"Nothing to export",exportFailed:"Export failed",cannotRestore:"Cannot restore this message",restorePartial:"Chat restored. {{count}} file(s) could not be restored.",restoreFilesSuccess:"Files and chat restored ({{count}} message(s) removed).",restoreSuccess:"Chat restored ({{count}} message(s) removed).",restoreFailed:"Failed to restore session",pdfUnavailable:"PDF export is unavailable in this environment",exportingPdf:"Exporting PDF..."},session:{defaultTitle:"New Session"}},settings:{page:{back:"Back",title:"System Settings",tabs:{config:"Config",prompts:"Prompts",mermaid:"Mermaid",skills:"Skills",workflows:"Workflows",mcp:"MCP",modelLimits:"Model Limits",metrics:"Metrics",schedules:"Schedules",sessions:"Sessions",app:"App",provider:"Provider",hooks:"Hooks",masking:"Masking",envVars:"Env Vars"},groups:{ai:"AI",toolsAndExtensions:"Tools & Extensions",securityAndPrivacy:"Security",monitoring:"Monitoring",system:"System"}},notifications:{deleteAllSuccess:"All sessions deleted (except pinned)",deleteEmptySuccess:"Empty sessions deleted (except pinned)",localStorageCleared:"Local storage has been cleared",resetSuccessReloading:"Application reset successful. Reloading...",resetFailed:"Failed to reset application",autoTitleEnabled:"Auto title generation enabled",autoTitleDisabled:"Auto title generation disabled",autoTitleUpdateFailed:"Failed to update auto title preference",promptEnhancementSaved:"System prompt enhancement saved"},appTab:{autoGenerateTitle:"Auto-generate Session Titles",autoGenerateTitleDesc:"When enabled, the app generates a descriptive title after the first assistant response.",switchOn:"ON",switchOff:"OFF",darkMode:"Dark Mode",vdiSafeMode:"Graphics compatibility mode",vdiSafeModeDesc:"Disables blur and glass effects that can break dropdowns and hover overlays in some virtual desktop, remote, or graphics-constrained environments.",vdiSafeModeEnabled:"Graphics compatibility mode enabled",vdiSafeModeDisabled:"Graphics compatibility mode disabled",darkModeDark:"Dark",darkModeLight:"Light",language:"Language",languageEnglish:"English",languageChinese:"Simplified Chinese",languageTraditionalChinese:"Traditional Chinese",languageFrench:"French",languageJapanese:"Japanese",languageHindi:"Hindi",deleteAllTitle:"Delete all sessions",deleteAllDescription:"Are you sure? This will delete all sessions except pinned.",deleteAllButton:"Delete All Sessions",deleteEmptyTitle:"Delete empty sessions",deleteEmptyDescription:"Are you sure? This will delete all sessions with no messages (except pinned).",deleteEmptyButton:"Delete Empty Sessions",clearLocalStorageTitle:"Clear Local Storage",clearLocalStorageDescription:"Are you sure? This will delete all local storage data and reset the application.",clearLocalStorageButton:"Clear Local Storage",confirmDeleteAll:"Yes, delete all",confirmDeleteEmpty:"Yes, delete empty",confirmClear:"Yes, clear it",cancel:"Cancel",dangerZone:"Danger Zone",dangerDescription:"These actions cannot be undone. All data will be permanently deleted.",resetApplicationTitle:"Reset Application",resetApplicationIntro:"Are you sure? This will:",resetStepDeleteAllSessions:"Delete ALL sessions (including pinned)",resetStepClearStorage:"Clear all local storage data",resetStepResetConfig:"Reset config.json to default",resetStepSetupFlow:"Trigger the initial setup flow on next launch",resetStepReload:"Reload the application",resetConfirm:"Yes, reset everything",resetButton:"Reset Application (All Data)",runningVersion:"Running version",runningVersionDesc:"This is the currently running Lotus frontend version."},configTab:{tabs:{general:"General",tools:"Tools"},loadConfigFailed:"Failed to load configuration",invalidConfig:"Invalid configuration",saveConfigSuccess:"Configuration saved successfully",saveConfigFailed:"Failed to save configuration",toolsLoadFailed:"Failed to load available tools",toolsReloadSuccess:"Tool list reloaded",toolsSaveSuccess:"Tool settings saved successfully",toolsSaveFailed:"Failed to save tool settings",backendSaved:"Backend URL saved",backendResetDefault:"Backend URL reset to default",providerMovedTitle:"Provider Configuration Moved",providerMovedDescription:"GitHub Copilot and other provider settings have been moved to the Provider Settings tab. Please configure your providers there.",backendApiBaseUrlTitle:"Backend API Base URL",backendApiPlaceholder:"http://127.0.0.1:9562/v1",backendApiHint:"Must include /v1 path",accessPasswordTitle:"Access Password",accessPassword:{helperNotEnabled:"No access password is set. Once enabled, remote access requires a password while local loopback access can bypass it.",helperLocalBypass:"You are on a local connection, so you can change the access password without entering the current password.",helperRemote:"You are on a remote connection. Enter the current password before changing the access password.",loadStatusFailed:"Failed to load access status",updated:"Access password updated",enabled:"Access password set",updateFailed:"Failed to update access password",statusEnabled:"Access password enabled",statusDisabled:"Access password not enabled",currentPasswordLabel:"Current Password",newPasswordLabel:"New Password",setPasswordLabel:"Set Password",confirmPasswordLabel:"Confirm Password",updateAction:"Update Access Password",enableAction:"Enable Access Password",validation:{currentPasswordRequired:"Please enter the current password",newPasswordRequired:"Please enter a new password",confirmPasswordRequired:"Please enter the new password again",minLength:"Password must be at least 4 characters",passwordMismatch:"The passwords do not match"}},resetToDefault:"Reset to Default",save:"Save",language:"Language",languageEnglish:"English",languageChinese:"Simplified Chinese",languageTraditionalChinese:"Traditional Chinese",languageFrench:"French",languageJapanese:"Japanese",languageHindi:"Hindi",toolsTitle:"Tool Availability",toolsDescription:"Toggle whether each tool can be sent to the AI model. Disabled tools are hidden from model tool schemas.",memoryTitle:"Memory & Auto Dream",memoryDescription:"Manage Bamboo's memory layers: session memory for current-work continuity, long-term memory for durable knowledge, and Auto Dream for background Dream Notebook updates and durable memory extraction.",autoDreamEnabled:"Enable Auto Dream",autoDreamEnabledHint:"Automatically maintains the Dream Notebook and extracts long-term memory candidates in the background.",backgroundModel:"Background Memory Model",backgroundModelPlaceholder:"Leave empty to use the provider fast model",backgroundModelHint:"Optional dedicated model for memory summarization and reflection. If blank, Bamboo falls back to the current provider's fast model.",toolsEmpty:"No tools are currently available.",reloadTools:"Reload Tools",loadBambooConfigFailed:"Failed to load Bamboo config",bambooConfigSaved:"Bamboo config saved",saveBambooConfigFailed:"Failed to save Bamboo config"},networkCard:{title:"Network Settings",httpProxy:"HTTP Proxy",httpsProxy:"HTTPS Proxy",proxyPlaceholder:"http://proxy.example.com:8080",proxyAuthTitle:"Proxy Authentication",proxyConfiguredForUser:"Configured for user: {{username}}",clearCredentials:"Clear Credentials",username:"Username",password:"Password",apply:"Apply",credentialsStorageNote:"Proxy credentials are stored encrypted in ~/.bamboo/config.json",reload:"Reload",save:"Save"},modelMappingCard:{loadProviderFailed:"Failed to load provider configuration",loadMappingsFailed:"Failed to load existing mappings",loadModelsFailed:"Failed to load models",loadModelsHint:"Failed to load models. Please check your provider configuration.",mappingSaved:"Model mapping saved",mappingSaveFailed:"Failed to save model mapping",enterModelName:"Please enter a model name",customMappingSaved:"Custom model mapping saved",customMappingSaveFailed:"Failed to save custom model mapping",collapseTitle:"Provider Model Mapping",description:"Configure which {{provider}} models to use for provider-specific model alias resolution.",loadModelsErrorTitle:"Failed to Load Models",retry:"Retry",loadingModels:"Loading models...",modelTypeOpus:"Opus",modelTypeOpusDescription:'matches models containing "opus"',modelTypeSonnet:"Sonnet",modelTypeSonnetDescription:'matches models containing "sonnet"',modelTypeHaiku:"Haiku",modelTypeHaikuDescription:'matches models containing "haiku"',selectModelPlaceholder:"Select {{label}} model",customModelOption:"Custom model...",mappedModelNotFound:`Mapped model "{{model}}" not found in current provider's available models`,refreshModels:"Refresh Models",currentProvider:"Current Provider",loadingProvider:"Loading...",availableModels:"Available Models",cached:"(cached)",storedIn:"Stored in",customModalTitle:"Enter Custom Model Name",customModalDescription:"Enter a custom model name for {{modelType}}",customModalPlaceholder:"e.g., gpt-4-turbo-preview",customModalNote:"Note: Make sure the model name is valid for the current provider.",save:"Save",cancel:"Cancel"},modelTab:{selectModelTitle:"Select Model",loadingModels:"Loading models...",selectModelPlaceholder:"Select a model",backendApiBaseUrlTitle:"Backend API Base URL",resetToDefault:"Reset to Default",save:"Save",backendApiHint:"Must be a full base URL including /v1 (e.g. {{example}})."},mermaidTab:{title:"Mermaid Diagram Settings",description:"Customize how Mermaid diagrams are rendered in your chats",themeCardTitle:"Theme",themeLabel:"Mermaid Theme",themeTooltip:"Choose a built-in Mermaid theme. Default and Neutral auto-switch between light and dark based on app theme.",themeOptions:{default:"Default (Auto Light/Dark)",neutral:"Neutral (Auto Light/Dark)",dark:"Dark",forest:"Forest (Green Tones)",base:"Base (Minimal)"},themeDescriptionsTitle:"Theme Descriptions:",themeDescriptions:{default:"Default: Classic Mermaid look, auto-adapts to light/dark",neutral:"Neutral: Gray tones, auto-adapts to light/dark",dark:"Dark: Always dark theme",forest:"Forest: Green color scheme, good for technical diagrams",base:"Base: Minimal styling, for custom theming"},globalCardTitle:"Global Settings",fontSizeLabel:"Font Size",fontSizeTooltip:"Base font size for all diagram text (in pixels)",defaultZoomLabel:"Default Zoom",defaultZoomTooltip:"Initial zoom level for diagrams (1.0 = 100%)",responsiveWidthLabel:"Responsive Width",responsiveWidthTooltip:"Enable to make diagrams adapt to container width. Disable for fixed-width diagrams.",switchAuto:"Auto",switchFixed:"Fixed",flowchartCardTitle:"Flowchart Settings",flowchartNodeSpacingLabel:"Node Spacing",flowchartNodeSpacingTooltip:"Horizontal spacing between nodes",flowchartRankSpacingLabel:"Rank Spacing",flowchartRankSpacingTooltip:"Vertical spacing between layers",flowchartCurveTypeLabel:"Curve Type",flowchartCurveTypeTooltip:"Type of curve for connections",flowchartCurveOptions:{basis:"Smooth (Basis)",linear:"Linear",cardinal:"Cardinal"},sequenceCardTitle:"Sequence Diagram Settings",sequenceActorMarginLabel:"Actor Margin",sequenceActorMarginTooltip:"Spacing between actors",sequenceMessageMarginLabel:"Message Margin",sequenceMessageMarginTooltip:"Spacing between messages",sequenceActorWidthLabel:"Actor Width",sequenceActorWidthTooltip:"Width of each actor box",sequenceActorHeightLabel:"Actor Height",sequenceActorHeightTooltip:"Height of each actor box",ganttCardTitle:"Gantt Chart Settings",ganttBarHeightLabel:"Bar Height",ganttBarHeightTooltip:"Height of each task bar",ganttTopPaddingLabel:"Top Padding",ganttTopPaddingTooltip:"Space at the top of the chart",resetToDefaults:"Reset to Defaults",previewTitle:"Preview",previewDescription:"Changes are applied immediately. Try creating or viewing a diagram to see your settings in action."},modelLimits:{title:"Token Budget Model Limits",descriptionPrefix:"Configure per-model token limits for context budgeting. These settings are persisted globally in Bamboo",descriptionSuffix:"and used by the backend resolver.",defaultsTitle:"Model Defaults",defaultsDescription:"Preloaded with GPT-5 / GPT-4 / Gemini / Kimi / GLM defaults. You can keep editing as needed.",migratedFromLocalStorage:"Migrated model limits from local storage to global config.",loadFailed:"Failed to load model limits settings",saveSuccess:"Model limits saved to global config",saveFailed:"Failed to save model limits settings",resetSuccess:"Model limits reset to product defaults",resetFailed:"Failed to reset model limits settings",defaults:{gpt54:"Top-tier capability with reasoning depth.",gpt53Codex:"Optimized for code refactoring workflows.",gpt52Pro:"Strong logical stability for complex tasks.",gpt5Mini:"Fast and cost-efficient general-purpose option.",gpt41:"Classic large-context model with 1M window.",gpt4o:"Low latency, suitable for everyday chat.",gemini25Pro:"Strong multimodal analysis capabilities.",kimiK25:"Preferred for long-form Chinese content.",kimiCoding:"Tuned for coding-focused scenarios.",glm5:"Good for one-shot large-document generation."},columns:{vendor:"Vendor/Series",model:"Model",contextWindow:"Context Window",maxOutput:"Max Output",notes:"Notes",actions:"Actions"},placeholders:{vendor:"OpenAI / Google / Moonshot",model:"e.g. gpt-5.4-thinking",optional:"Optional"},actions:{remove:"Remove",addRow:"Add Row",save:"Save",resetToDefaults:"Reset to Defaults",reload:"Reload"},validation:{atLeastOneRow:"Please keep at least one model limit row.",modelPatternEmpty:"Model pattern cannot be empty.",duplicateModelPattern:"Duplicate model pattern: {{pattern}}",contextWindowMin:"Context window for {{pattern}} must be at least 1000.",maxOutputMin:"Max output for {{pattern}} must be at least 1.",maxOutputExceedsContext:"Max output for {{pattern}} must be less than or equal to context window.",safetyMarginNegative:"Safety margin for {{pattern}} cannot be negative.",safetyMarginTooLarge:"Safety margin for {{pattern}} must be smaller than context window."}},common:{loading:"Loading...",successful:"Successful",failed:"Failed"},systemPromptManager:{title:"System Prompt Management",addButton:"Add Prompt",defaultPromptLocked:"Default system prompts are locked and cannot be edited.",updateSuccess:"Prompt updated successfully",addSuccess:"Prompt added successfully",saveError:"Failed to save prompt. Please try again.",deleteSuccess:"Prompt deleted successfully",deleteError:"Failed to delete prompt. Please try again.",deleteConfirm:"Are you sure to delete this prompt?",defaultTag:"Default (Locked)",editTitle:"Edit System Prompt",addTitle:"Add New System Prompt",nameLabel:"Prompt Name",nameRequired:"Please input the name of the prompt!",descriptionLabel:"Prompt Description",descriptionRequired:"Please input the description of the prompt!",contentLabel:"Prompt Content",contentRequired:"Please input the content of the prompt!"},envVars:{title:"Environment Variables",description:"Variables are injected into Bash tool processes. Secret variables are encrypted at rest.",fetchError:"Failed to load environment variables",created:"Variable created",updated:"Variable updated",saveError:"Failed to save variable",deleted:"Variable deleted",deleteError:"Failed to delete variable",addButton:"Add Variable",noVars:"No environment variables configured",addTitle:"Add Environment Variable",editTitle:"Edit Variable",save:"Save",cancel:"Cancel",name:"Name",nameRequired:"Variable name is required",nameInvalid:"Must start with a letter or underscore, followed by letters, digits, or underscores",value:"Value",valueRequired:"Value is required for new variables",valueEditHint:"Leave empty to keep the existing value",valuePlaceholder:"Enter value",valuePlaceholderEdit:"Enter new value or leave empty",secret:"Secret",secretHint:"Secret variables are encrypted on disk and masked in the UI",descriptionField:"Description",descriptionPlaceholder:"Optional description",type:"Type",plain:"Plain",descriptionCol:"Description",actions:"Actions",deleteConfirm:"Delete this variable?",yes:"Yes",no:"No",notSet:"(not set)",empty:"(empty)"},promptsTab:{title:"System Prompt Enhancement",mermaidEnhancement:"Mermaid Enhancement",taskListRules:"Shared Task Rules",copilotConclusionWithOptionsBeforeFinish:"Copilot conclusion_with_options Before Finish",copilotConclusionWithOptionsBeforeFinishDescription:"When enabled for Copilot sessions, Bamboo requires the assistant to finish by calling conclusion_with_options. If the model tries to end with plain text, Bamboo stops the completion and returns a completion policy violation.",switchOn:"ON",switchOff:"OFF",enhancementPlaceholder:"Add global enhancement text to append to every system prompt.",saveEnhancement:"Save Enhancement",description:"This text is appended first, followed by enabled system enhancements before each request is sent."},hooksTab:{title:"Image Hooks",enableImagePreflight:"Enable image preflight hook",modeLabel:"Mode",description:"Placeholder mode rewrites images into text summaries (this can break tools that expect real image data). OCR is currently Windows-only.",loadFailed:"Failed to load hooks settings",updateFailed:"Failed to update hooks",modeUpdateFailed:"Failed to update hook mode",enabled:"Image hooks enabled",disabled:"Image hooks disabled",modeUpdated:"Image hook mode set to: {{mode}}",mode:{placeholder:"Placeholder",error:"Error",ocr:"OCR (Windows)",vision:"Vision (LLM)"}},keywordMaskingTab:{title:"Keyword Masking",addKeyword:"Add Keyword",description:"Configure keywords to be masked before sending to Copilot API. Use exact match for literal strings or regex for pattern matching. All matches will be replaced with [MASKED].",empty:"No keyword masking rules configured",cancel:"Cancel",patternPlaceholder:"Enter pattern to match",examples:"Examples",exactMatch:"Exact Match",regexPattern:"Regex Pattern",enabled:"Enabled",disabled:"Disabled",sampleText:"Sample text",sampleTextPlaceholder:"Enter sample text",maskedPreview:"Masked preview",emptyPattern:"(empty)",loadFailed:"Failed to load keyword masking configuration",saveFailed:"Failed to save configuration",saveSuccess:"Keyword masking configuration saved",validationFailedPrefix:"Validation failed",patternRequired:"Pattern cannot be empty",invalidRegexPattern:"Invalid regex pattern",example:{literalToken:"Mask a literal token",githubTokens:"Mask GitHub tokens",awsKeys:"Mask AWS keys",emails:"Mask email addresses"}},schedulesTab:{loadFailed:"Failed to load schedules",loadSessionsFailed:"Failed to load schedule sessions",createFailed:"Failed to create schedule",updateFailed:"Failed to update schedule",deleteFailed:"Failed to delete schedule",runNowFailed:"Failed to run schedule",taskMessageRequired:"Task message is required when Auto Execute is enabled",created:"Schedule created",updated:"Schedule updated",deleted:"Deleted schedule",enqueuedRun:"Enqueued run",loading:"Loading...",yes:"Yes",no:"No",optional:"(optional)",defaultName:"My Schedule",createTitle:"Create Schedule",listTitle:"Schedules",scheduleSessionsTitle:"Schedule Sessions",scheduleRunsTitle:"Schedule Run History",noSessionsYet:"No sessions yet.",noRunsYet:"No runs yet.",loadRunsFailed:"Failed to load schedule runs",editTitle:"Edit Schedule",nonIntervalReadOnly:"Quick interval editing is only available for interval triggers.",columns:{name:"Name",status:"Status",activity:"Activity",autoExecute:"Auto Execute",model:"Model",enabled:"Enabled",intervalSeconds:"Interval (s)",nextRun:"Next Run",lastRun:"Last Run",actions:"Actions"},triggerTypes:{interval:"Interval",daily:"Daily",weekly:"Weekly",monthly:"Monthly",cron:"Cron"},misfirePolicyOptions:{runOnce:"Run once",skip:"Skip",catchUpAll:"Catch up all",catchUpWindow:"Catch up window"},overlapPolicyOptions:{queueOne:"Queue one",skip:"Skip overlapping runs",allow:"Allow overlap"},form:{name:"Name",triggerType:"Trigger Type",intervalSeconds:"Interval Seconds",dailyHour:"Hour",dailyMinute:"Minute",weeklyWeekdays:"Weekdays",monthlyDays:"Days of Month",monthlyDaysPlaceholder:"e.g. 1, 15, 28",cronExpr:"Cron Expression",cronExprPlaceholder:"e.g. 0 9 * * 1-5",timezone:"Timezone",timezonePlaceholder:"e.g. Asia/Shanghai",startAt:"Start At",endAt:"End At",datetimePlaceholder:"RFC3339, e.g. 2026-04-05T09:00:00Z",misfirePolicy:"Misfire Policy",overlapPolicy:"Overlap Policy",catchUpWindowMaxRuns:"Catch-up Max Runs",catchUpWindowMaxLatenessSeconds:"Catch-up Max Lateness (s)",enabled:"Enabled",taskMessage:"Task Message",taskMessagePlaceholder:"(Optional) A task to run",model:"Model",modelPlaceholder:"(Optional) e.g. gpt-4o-mini",modelRequiredIfAuto:"Required if auto execute",autoExecute:"Auto Execute",systemPrompt:"System Prompt",workspacePath:"Workspace Path",enhancePrompt:"Enhance Prompt"},validation:{nameRequired:"Name is required",triggerRequired:"Trigger configuration is required",intervalRequired:"Interval is required",weekdaysRequired:"At least one weekday is required",monthDaysRequired:"At least one day of month is required",invalidMonthDays:"Month days must be comma-separated values between 1 and 31",cronRequired:"Cron expression is required"},actions:{create:"Create",refresh:"Refresh",edit:"Edit",runNow:"Run Now",sessions:"Sessions",runs:"Runs",delete:"Delete",open:"Open",save:"Save"},runHistory:{columns:{status:"Status",scheduledFor:"Scheduled For",startedAt:"Started At",completedAt:"Completed At",session:"Session",duration:"Duration",outcome:"Outcome"}}},sessionsTab:{currentSessionTitle:"Current Session",id:"id",kind:"kind",clearMessages:"Clear Messages",clearMessagesTitle:"Clear Session Messages",clearMessagesContent:"This clears messages/attachments for the current session but keeps the session entry.",clear:"Clear",cancel:"Cancel",sessionCleared:"Session cleared",noActiveSession:"No active session.",bulkCleanupTitle:"Bulk Cleanup",keepPinned:"Keep pinned",deleteAll:"Delete All",deleteAllTitle:"Delete All Sessions",deleteAllKeepPinned:"Deletes all sessions except pinned.",deleteAllIncludePinned:"Deletes all sessions including pinned.",deleteEmpty:"Delete Empty",deleteEmptyTitle:"Delete Empty Sessions",deleteEmptyKeepPinned:"Deletes empty sessions except pinned.",deleteEmptyIncludePinned:"Deletes empty sessions including pinned.",deleteChildren:"Delete Children",deleteChildrenTitle:"Delete Child Sessions",deleteChildrenKeepPinned:"Deletes all child sessions except pinned.",deleteChildrenIncludePinned:"Deletes all child sessions including pinned.",delete:"Delete",cleanupComplete:"Cleanup complete",devResetTitle:"Development Reset",devResetDescription:"Greenfield reset for session storage (deletes sessions/ and resets sessions.json).",devResetAction:"Dev Reset Sessions",devResetConfirmTitle:"Reset Session Storage (Dev)",devResetConfirmContent:"This deletes ALL sessions (including pinned/child) and resets the sessions index. A new empty session will be created after refresh.",reset:"Reset",devResetDone:"Session storage reset"},workflowsTab:{title:"Workflows",description:"Workflows are stored in `~/.bamboo/workflows` as Markdown files. Use `/name` to insert a workflow in chat.",loadFailed:"Failed to load workflows",loadContentFailed:"Failed to load workflow content",invalidName:"Invalid workflow name",nameAlreadyExists:"A workflow with this name already exists",saved:"Workflow saved",saveFailed:"Failed to save workflow",deleted:"Workflow deleted",deleteFailed:"Failed to delete workflow",refresh:"Refresh",newWorkflow:"New Workflow",save:"Save",empty:"No workflows found",namePlaceholder:"Workflow name",contentPlaceholder:`# Workflow Title
|
|
3
3
|
|
|
4
|
-
Describe the workflow steps here.`},providerTab:{title:"LLM Provider Configuration",description:'Configure your preferred LLM provider. Configuration will be saved and applied when you click "Save and Apply Configuration".',currentProvider:"Current Provider",activeProvider:"Active LLM Provider",selectProviderRequired:"Please select a provider",saveAndApply:"Save and Apply Configuration",loadConfigFailed:"Failed to load provider config",checkStatusFailed:"Failed to check status",startCopilotAuthFailed:"Failed to start Copilot authentication",copilotAuthSuccess:"Copilot authentication successful!",providerReloaded:"Provider reloaded with new authentication.",completeAuthFailed:"Authentication completion failed. Please try again.",userCodeCopied:"User code copied to clipboard!",copyCodeFailedPrefix:"Failed to copy code. Please manually copy:",logoutSuccess:"Logged out from Copilot",logoutFailed:"Failed to logout from Copilot",unknownError:"Unknown error",invalidConfig:"Invalid configuration",invalidConfigPrefix:"Invalid configuration",fetchModelsCopilotFailed:"Failed to fetch models. Please authenticate Copilot and try again.",fetchModelsFailed:"Failed to fetch models. Please check your API key and base URL.",noModelsReturned:"No models returned. Authenticate Copilot first, then fetch models.",foundModels:"Found {{count}} available models",fetchModelsErrorPrefix:"Failed to fetch models",saveConfigSuccess:"Configuration saved successfully",saveConfigFailed:"Failed to save configuration",saveConfigErrorPrefix:"Failed to save configuration",applyConfigSuccess:"Configuration applied successfully. Changes will take effect for new conversations.",applyConfigFailed:"Failed to apply configuration",applyConfigErrorPrefix:"Failed to apply configuration",modelUpdated:"Model updated successfully",updateModelFailed:"Failed to update model",updateModelErrorPrefix:"Failed to update model",fetchingModels:"Fetching models...",refreshModelsFrom:"Refresh available models from {{source}}",fetchModelsFrom:"Fetch available models from {{source}}",saveModelChangeFailed:"Failed to save model change",fetchModelsFailedShort:"Failed to fetch models",retry:"Retry",openaiConfigTitle:"OpenAI Configuration",openaiConfigDescription:"Enter your OpenAI API key to use GPT models. You can optionally specify a custom base URL for proxy servers.",openaiApiKey:"OpenAI API Key",openaiApiKeyRequired:"Please enter your OpenAI API key",baseUrlOptional:"Base URL (Optional)",openaiBaseUrlHelp:"Leave empty to use the default OpenAI API endpoint. Include full path (e.g., /v1) if needed.",defaultModel:"Default Model",fastModel:"Fast Model (Optional)",fastModelHelp:"Cheaper/faster model for lightweight tasks like title generation, mermaid fix, and summarization. Uses default model when not set.",visionModel:"Vision Model (Optional)",visionModelHelp:"Vision-capable model for image understanding. When hooks.image_fallback.mode is set to 'vision', this model describes images as text so text-only models can understand them. Uses default model when not set.",sameAsDefault:"Same as default model",selectModelRequired:"Please select a model",selectModel:"Select a model",responsesOnlyModelsOptional:"Responses-Only Models (Optional)",responsesOnlyHelp1:"Some models only support the OpenAI Responses API (not chat/completions). Add model ids here to force Bamboo to use upstream",responsesOnlyHelp2:"Supports exact match (e.g. gpt-5.3-codex) and prefix match with a trailing * (e.g. gpt-5*).",anthropicConfigTitle:"Anthropic Configuration",anthropicConfigDescription:"Enter your Anthropic API key to use Claude models.",anthropicApiKey:"Anthropic API Key",anthropicApiKeyRequired:"Please enter your Anthropic API key",anthropicBaseUrlHelp:"Leave empty to use the default Anthropic API endpoint. Include full path (e.g., /v1) if needed.",maxTokensOptional:"Max Tokens (Optional)",maxTokensHelp:"Maximum number of tokens to generate",geminiConfigTitle:"Google Gemini Configuration",geminiConfigDescription:"Enter your Google AI API key to use Gemini models.",geminiApiKey:"Gemini API Key",geminiApiKeyRequired:"Please enter your Gemini API key",geminiBaseUrlHelp:"Leave empty to use the default Google AI API endpoint. Include full path if needed.",copilotConfigTitle:"GitHub Copilot Configuration",copilotConfigDescription:"GitHub Copilot uses OAuth authentication. No API key is required. Make sure you have an active GitHub Copilot subscription.",authStatusTitle:"Authentication Status",authenticated:"Authenticated",notAuthenticated:"Not Authenticated",logoutCopilot:"Logout from Copilot",authenticateCopilot:"Authenticate Copilot",refreshStatus:"Refresh Status",headlessAuth:"Headless Authentication",headlessAuthHelp:"Print login URL in console instead of opening browser automatically",noModelsLoaded:'No models loaded yet. Click "Fetch available models from backend".',authFirstThenFetch:"Authenticate Copilot first, then fetch models.",copilotUsageTitle:"To use GitHub Copilot:",copilotUsageStep1:"Ensure you have an active GitHub Copilot subscription",copilotUsageStep2:'Click "Authenticate Copilot" to start the device code flow',copilotUsageStep3:"Follow the instructions in your terminal to complete authentication",copilotAuthModalTitle:"Copilot Authentication",cancel:"Cancel",completedAuthorization:"I've Completed Authorization",browserOpened:"Browser opened automatically",authStep1:"A GitHub page should have opened in your browser",authStep2:"Copy the code below and paste it on the GitHub page",authStep3:'Click "Continue" on GitHub to authorize',visitUrl:"1. Visit this URL:",enterCode:"2. Enter this code:",copied:"Copied!",copyCode:"Copy Code",afterContinueHint:`After clicking "Continue" on GitHub, click the "I've Completed Authorization" button below.`,providerNames:{openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},mcpTab:{status:{connecting:"Connecting",ready:"Ready",degraded:"Degraded",stopped:"Stopped",error:"Error"},statusGuideTitle:"Status guide:",statusHelp:{connecting:"Server is starting or reconnecting",ready:"Server is connected and serving tools normally",degraded:"Server is partially available; some tools may fail",stopped:"Server is not running",error:"Server failed to start or encountered runtime errors"},statusLastError:"Last error: {{error}}",serverDeleted:"MCP server deleted",deleteServerFailed:"Failed to delete MCP server",connectedTo:"Connected to {{name}}",connectServerFailed:"Failed to connect MCP server",disconnected:"Disconnected {{name}}",disconnectServerFailed:"Failed to disconnect MCP server",toolsRefreshedFor:"Tools refreshed for {{name}}",refreshToolsFailed:"Failed to refresh tools",statusRefreshed:"MCP status refreshed",refreshStatusFailed:"Failed to refresh MCP status",noServerForEditing:"No server selected for editing",savedServer:"Saved {{name}}",addedServer:"Added {{name}}",saveServerFailed:"Failed to save MCP server",copiedConfig:"Copied MCP config to clipboard",clipboardUnavailable:"Clipboard not available. Export is shown in the modal.",invalidJsonPrefix:"Invalid JSON",unknownError:"Unknown error",jsonMustBeObject:"JSON must be an object",missingMcpServers:`Missing 'mcpServers'. Paste a full Claude Desktop-style config chunk: { "mcpServers": { ... } }`,importSummary:"Imported {{count}} server(s) ({{added}} added, {{updated}} updated, {{removed}} removed). {{failed}} failed to start.",importStartFailures:"Some servers did not start. Config is saved; open the server list to see errors.",importFailed:"Failed to import MCP servers",overviewTitle:"MCP Overview",overviewDescription:"Configure external MCP servers and inspect registered tool aliases.",totalServers:"Total servers: {{count}}",totalTools:"Total tools: {{count}}",serversTitle:"MCP Servers",addServer:"Add Server",refreshAll:"Refresh All",export:"Export",import:"Import",importModalTitle:"Import MCP Servers",importHint:"Paste a Claude Desktop-style config chunk. Example:",importModeMerge:"Merge (Upsert)",importModeReplace:"Replace (Delete Others)",replaceWarning:"Replace mode will remove existing MCP servers not present in the imported mcpServers."},mcpServerTable:{columns:{name:"Name",transportType:"Transport Type",status:"Status",toolCount:"Tool Count",actions:"Actions"},transportOptions:{sse:"SSE",stdio:"Stdio"},deleteTitle:"Delete MCP server",deleteDescription:'Delete server "{{name}}"?',empty:"No MCP servers configured",actions:{edit:"Edit",delete:"Delete",disconnect:"Disconnect",connect:"Connect",refreshTools:"Refresh Tools"}},mcpToolList:{title:"MCP Tools",selectServerHint:"Select a server to inspect its MCP tools",empty:"No tools found for this server",noDescription:"No description available",aliasMapping:"Alias mapping",parametersSchema:"Parameters schema"},mcpServerForm:{jsonMustBeObject:"JSON must be an object",detectedBulkConfig:"Detected mcpServers (bulk config). Use the MCP tab Import button for bulk import, or paste a single server config here.",missingIdField:"Missing or invalid id field",missingTransportField:"Missing or invalid transport field",missingTransportInfo:"Missing transport info. Expected either transport (Bodhi format) or command/url (mainstream MCP format).",invalidJson:"Invalid JSON: {{message}}",unknownError:"Unknown error",editTitle:"Edit MCP Server",addTitle:"Add MCP Server",save:"Save",modeForm:"Form",modeJson:"JSON",jsonError:"JSON Error",serverId:"Server ID",serverIdRequired:"Server ID is required",serverIdPatternError:"Use only letters, numbers, underscore, and hyphen",displayName:"Display Name",enabled:"Enabled",enabledHelp:"Disabled servers stay in config but will not be started.",transportType:"Transport Type",transportTypeRequired:"Transport type is required",transportOptions:{stdio:"Stdio",sse:"SSE"},command:"Command",commandRequired:"Command is required",arguments:"Arguments",argumentsPlaceholder:"Add an argument and press Enter",envVars:"Environment Variables",addEnv:"Add Env",keyRequired:"Key required",sseUrl:"SSE URL",sseUrlRequired:"SSE URL is required",validUrlRequired:"Please enter a valid URL",headers:"Headers",addHeader:"Add Header",headerNameRequired:"Header name required"},metricsCards:{totalSessions:"Total Sessions",chatTokens:"Chat Tokens",totalToolCalls:"Total Tool Calls",avgSessionDuration:"Avg Session Duration"},forwardMetricsCards:{totalForwardRequests:"Total Forward Requests",successRate:"Success Rate",forwardTokens:"Forward Tokens",avgResponseTime:"Avg Response Time"},unifiedMetricsCards:{totalRequests:"Total Requests",totalTokens:"Total Tokens",successRate:"Success Rate",avgResponseTime:"Avg Response Time",chatSessions:"Chat Sessions",chatTokens:"Chat Tokens",toolCalls:"Tool Calls",avgSessionDuration:"Avg Session Duration",forwardRequests:"Forward Requests",forwardTokens:"Forward Tokens",successful:"Successful",failed:"Failed"},metricsTable:{session:{columns:{session:"Session",model:"Model",status:"Status",started:"Started",duration:"Duration",tokens:"Tokens",toolCalls:"Tool Calls",messages:"Messages",action:"Action"},view:"View"},forward:{columns:{id:"ID",endpoint:"Endpoint",model:"Model",type:"Type",status:"Status",tokens:"Tokens",duration:"Duration",started:"Started",error:"Error"},typeStream:"Stream",typeSync:"Sync",totalRequests:"{{total}} requests",empty:"No forward requests recorded for this range"}},metricsDashboard:{roundColumns:{round:"Round",status:"Status",duration:"Duration",tokens:"Tokens",toolCalls:"Tool Calls"},compactStats:{combinedTokens:"Combined Tokens",chatTokens:"Chat Tokens",forwardTokens:"Forward Tokens",avgTokensPerSession:"Avg Tokens / Session",estimatedTimeSaved:"Est. Time Saved",estimatedEfficiencyLift:"Est. Efficiency Lift",estimatedSpeedMultiplier:"Est. Speed Multiplier",estimatedSavedWorkdays:"Est. Saved Workdays",avgRoundsPerSession:"Avg Rounds / Session",toolCallsPerSession:"Tool Calls / Session",activeSessionRate:"Active Session Rate",avgTokensPerForward:"Avg Tokens / Forward",forwardErrorRate:"Forward Error Rate",streamingRatio:"Streaming Ratio",p95ForwardLatency:"P95 Forward Latency",modelCoverage:"Model Coverage",endpointCoverage:"Endpoint Coverage"},multiplierSuffix:"x",filtersTitle:"Filters",refresh:"Refresh",startDate:"Start date",endDate:"End date",model:"Model",daysOption:"{{value}} days",granularity:{daily:"Daily",weekly:"Weekly",monthly:"Monthly"},dashboardTitle:"Dashboard",tabs:{overview:"Overview",analysis:"Analysis",records:"Records"},derivedMetricsTitle:"Derived Metrics (Compact)",derivedMetricsSubtitle:"More dimensions without extra page length",efficiencyHint:"Efficiency estimates use conservative assumptions: {{manualTpm}} manual tokens/min + {{manualToolMinutes}} min/tool vs {{assistedTpm}} assisted tokens/min + {{assistedToolMinutes}} min/tool, then apply {{realization}}% realization and caps ({{maxLift}}% / {{maxMultiplier}}x).",toolUsageTitle:"Tool Usage Frequency",noToolUsage:"No tool calls recorded for this range.",calls:"Calls",activityHeatmapTitle:"Daily Activity Heatmap",noActivity:"No activity available for this range.",sessionsCount:"{{count}} sessions",tokensAmount:"{{value}} tokens",sessionsTabLabel:"Sessions ({{count}})",chatSessionsLabel:"Chat Sessions ({{count}})",sessionsHint:"Click a session for full round detail",forwardTabLabel:"Forward Requests ({{count}})",detailedMetricsTitle:"Detailed Metrics",sessionMetricsTitle:"Session Metrics",loadingSessionDetails:"Loading session details...",sessionDetail:{sessionId:"Session ID",model:"Model",status:"Status",duration:"Duration",messages:"Messages",totalTokens:"Total Tokens",toolCalls:"Tool Calls"},noDetail:"No detail available."},charts:{tokenUsageOverTime:"Token Usage Over Time",unifiedTokenUsageOverTime:"Token Usage Over Time (Chat + Forward)",noTokenUsage:"No token usage available",tokenUsageDescription:"Prompt, completion, and total tokens by day/period.",unifiedTokenUsageDescription:"Combined chat and forward token usage over time.",total:"Total",prompt:"Prompt",completion:"Completion",chat:"Chat",forward:"Forward",modelDistribution:"Model Distribution",noModelMetrics:"No model metrics available",modelDistributionDescription:"Share of total tokens consumed by model.",endpointDistribution:"Endpoint Distribution",noForwardMetrics:"No forward metrics available for this range."}},components:{markdown:{codeCopiedSuccess:"Code copied to clipboard",copyFailed:"Copy failed"},jsonSchema:{field:"Field",type:"Type",required:"Required",yes:"Yes",no:"No",default:"Default",description:"Description",noProperties:"No properties in schema"},workflowResult:{userWorkflow:"User Workflow",waitingForResult:"Waiting for workflow result...",executionFailed:"Workflow execution failed",retryWorkflow:"Retry workflow",copyParameters:"Copy parameters",copyResult:"Copy result",expandResult:"Expand result",collapseResult:"Collapse result"},toolResult:{waiting:"Waiting",waitingForResult:"Waiting for result...",executionFailed:"Tool execution failed",copyResult:"Copy result",checkpoint:"Checkpoint",checkpointNone:"None",diffTruncated:"Diff is too long and has been truncated",structuredToolResultHint:"Tool result · {{tool}}"},toolCall:{liveOutput:"Live output",keyParameters:"Key parameters",fullParameters:"Full parameters",copyParameters:"Copy parameters"},plan:{executionPlan:"Execution Plan",goal:"Goal",steps:"Steps",stepTitle:"Step {{number}}",reason:"Reason",estimated:"Estimated",tools:"Tools",prerequisites:"Prerequisites",potentialRisks:"Potential Risks ({{count}})",totalEstimatedTime:"Total estimated time",feedbackPlaceholder:"Tell the agent what to adjust...",sendFeedback:"Send feedback",refinePlan:"Refine plan",executePlan:"Execute plan"},question:{agentQuestion:"Agent Question",context:"Context",chooseOption:"Choose an option",recommended:"Recommended",customAnswerHint:"Need another option? Type your own answer.",customAnswerPlaceholder:"Type your custom answer...",submitAnswer:"Submit answer"},questionDialog:{selectOptionWarning:"Please select an option before submitting.",responseSubmitted:"Response submitted",responseSubmittedContinue:"Response submitted, AI will continue processing",submitFailed:"Failed to submit response",noModelConfigured:"No model configured",customAnswerTip:"Custom answer",otherTypeBelow:"Other (type below)",confirm:"Confirm"},skillManager:{title:"Skills",refresh:"Refresh",skillsRefreshed:"Skills refreshed",lastUpdated:"Last updated: {{value}}",justNow:"just now",secondsAgo:"{{count}}s ago",minutesAgo:"{{count}}m ago",searchPlaceholder:"Search skills",readOnlyHint:"Skill files remain read-only, but you can enable or disable them for prompt usage.",disabledHint:"Disabled skills stay visible here, but Bamboo filters them from system prompt skill context and blocks load_skill at runtime.",disabledTag:"Disabled",switchEnabled:"On",switchDisabled:"Off",skillStateSaved:"Skill state saved",saveFailed:"Failed to save skill state",noSkillsFound:"No skills found",noMatch:"No skills match the current search",loadFailed:"Failed to load skills",getFailed:"Failed to get skill"},skillSelector:{placeholder:"Select skills",disabledSkillsHint:"{{count}} previously selected skill is now globally disabled and has been removed."},imageGrid:{preview:"Preview",ocr:"OCR"},todoList:{title:"Task List",evaluating:"Evaluating",pin:"Pin",unpin:"Unpin",llmEvaluation:"LLM Evaluation",tools:"tools",dependsOn:"Depends on: {{deps}}",dependencies:"deps",status:{pending:"Pending",inProgress:"In Progress",completed:"Completed",blocked:"Blocked"}},tokenUsage:{title:"Token Usage",contextWindow:"Context window",summary:"Summary",system:"System",messages:"Messages",tokens:"tokens",usedPercent:"Used {{value}}%"},approval:{workflow:"Workflow",executionRequest:"Execution Request",aiWantsExecute:"AI wants to execute the following action"},toolSession:{title:"Tool Session",running:"Running",done:"Done",error:"Error",completedOnly:"{{completed}} completed",completedWithErrors:"{{completed}} completed (with errors)",completedProgress:"{{completed}} / {{total}} completed",noPersistedMessage:"No persisted output",deleteMessage:"Delete tool session"},mermaid:{loadingDiagram:"Loading diagram...",diagramError:"Mermaid Diagram Error",errorTitlePrefix:"Error",checkConsoleHint:"Check Mermaid syntax or open the console for details.",fixMermaid:"Fix Mermaid",renderingDiagram:"Rendering diagram...",exportSvg:"Export SVG",exportFailed:"Failed to export diagram"}},validation:{workspaceRequired:"Please enter a workspace path",invalidPath:"Invalid path"},error:{saveWorkspaceFailed:"Failed to save workspace path",readFolderFailed:"Unable to read folder",copyPromptFailed:"Failed to copy prompt content"},success:{promptCopied:'Copied "{{name}}" prompt'}}},"zh-CN":{translation:{app:{loading:"加载中...",retry:"重试",backendNotReachable:"无法连接后端 {{baseUrl}}(最近错误:{{message}})"},layout:{showSidebar:"显示侧边栏"},commandPalette:{searchPlaceholder:"搜索会话、设置和快捷操作",navigationHint:"使用 ↑↓ 导航,Enter 打开,Esc 关闭。",empty:"没有匹配的命令",groups:{quickActions:"快捷操作",settings:"系统设置"},badges:{quickAction:"操作",pinned:"置顶",running:"运行中",child:"子会话",childSession:"子会话",rootSession:"会话"},actions:{newSession:"创建新会话",openProviderSettings:"打开 Provider 设置",openMcpSettings:"打开 MCP 设置",openWorkflowSettings:"打开工作流设置",openSessionsSettings:"打开会话监控",openSchedulesSettings:"打开计划任务"},errors:{actionFailed:"命令执行失败"}},common:{cancel:"取消",ok:"确定",apply:"应用",save:"保存",delete:"删除",saveAnyway:"仍然保存",yes:"是",no:"否",home:"主页",parentDirectory:"上级目录",currentPath:"当前路径:",workspace:"工作区",server:"服务器:",category:"类别:",parameters:"参数",approve:"批准",reject:"拒绝",download:"下载",directory:"目录",file:"文件"},setup:{welcome:{title:"欢迎",heading:"欢迎使用 Bodhi",description:"让我们在进入主应用之前先设置您的环境。",skipInfo:"您现在可以跳过设置,稍后在系统设置中配置代理设置。"},steps:{welcome:"欢迎",proxy:"代理配置"},proxy:{title:"代理配置",info:"如果您在公司代理后面,请在下面配置。",providerInfo:"提供商配置稍后在提供商设置中完成。此设置步骤仅存储网络/代理设置。",detecting:"正在检测网络环境...",noProxyDetected:"未检测到现有代理。如果您的网络不需要代理,可以将这些字段留空。",httpProxyLabel:"HTTP 代理 URL:",httpsProxyLabel:"HTTPS 代理 URL:",httpProxyPlaceholder:"http://proxy.company.com:8080",httpsProxyPlaceholder:"http://proxy.company.com:8080",usernameLabel:"用户名",passwordLabel:"密码",rememberCredentials:"记住凭据(加密)"},complete:{title:"设置完成!",restartMessage:"请重启应用程序以应用所有设置。"},button:{next:"下一步",skipForNow:"暂时跳过",back:"返回",completeSetup:"完成设置",restart:"重启"},error:{loadStatusFailed:"无法加载设置状态。您可以继续进行手动代理配置。",invalidProxy:"代理设置无效。",credentialsUsername:"要存储代理凭据,请输入用户名或取消选中「记住凭据」。",saveProxyFailed:"保存代理配置失败。请重试。",completeFailed:"完成设置失败。请重试。"}},chat:{sidebar:{newSession:"新建会话",createFailedTitle:"创建会话失败",createFailedUnknown:"未知错误",searchPlaceholder:"搜索会话",filters:{all:"全部",pinned:"置顶",running:"运行中",child:"子会话"},empty:{noSessions:"暂无会话",noMatches:"没有匹配的会话",hint:"点击「新建会话」开始",filterHint:"请尝试调整搜索词或筛选条件"},dateGroups:{today:"今天",yesterday:"昨天",thisWeek:"本周",thisMonth:"本月",pinned:"置顶",scheduled:"计划任务"},actions:{collapseChildren:"折叠子会话",expandChildren:"展开子会话"},delete:{title:"删除会话",confirm:"确定要删除这个会话吗?"},deleteByDate:{title:"删除 {{date}} 的会话",confirm:"确定要删除 {{date}} 的 {{count}} 个会话吗?"},newSessionWithPrompt:"基于 {{prompt}} 的新会话"},workspace:{modalTitle:"设置工作区路径",invalidTitle:"无效的工作区路径",issuesDetected:"检测到工作区路径的潜在问题:",confirmSaveInvalid:"您仍要保存此路径吗?",errorEnterPath:"请输入工作区路径",errorSaveFailed:"保存工作区路径失败",placeholder:"例如:/Users/alice/Workspace/MyProject",label:"工作区",browseFolder:"浏览文件夹",descriptionTitle:"工作区路径描述",descriptionP1:"设置工作区路径后,文件引用和工作区相关工具才能稳定地定位文件。",descriptionP2:"建议选择真实存在的项目目录。即使路径无效也可继续保存,但相关功能可能不可用。",checkTitle:"工作区路径检查",checkDescription:"工作区路径校验失败。",recentTitle:"最近工作区",suggestedTitle:"推荐工作区",noRecentWorkspaces:"暂无最近工作区",noSuggestions:"暂无推荐",defaultWorkspaceName:"工作区",validWorkspace:"工作区有效",fileCount:"{{count}} 个文件"},folderBrowser:{title:"选择工作区文件夹",selectCurrent:"选择当前文件夹",emptyFolder:"此文件夹为空",tip:"提示:点击文件夹进入,点击「选择当前文件夹」确认"},input:{placeholder:"发送消息...",placeholderWithReference:"发送消息(包含引用)",placeholderWithWorkflows:"发送消息...(输入 '/' 选择工作流)",toolCallsOnly:"仅工具调用(允许的工具:{{tools}})",autoPrefixMode:"自动前缀模式:{{prefix}}(输入 '/' 选择工具)",toolSpecificMode:"工具特定模式(允许的工具:{{tools}})",processingFiles:"正在处理文件…",addAttachments:"添加附件",referenceWorkspaceFiles:"引用工作区文件",imageCountSingular:"{{count}} 张图片",imageCountPlural:"{{count}} 张图片",moreImages:"还有 {{count}} 张",clearAllImages:"清除所有图片",reasoningTitle:"推理强度:{{label}}",reasoning:{low:"低",medium:"中",high:"高",xhigh:"很高",max:"最大"},strictToolOnlyMode:"严格仅工具模式",toolSpecificModeLabel:"工具特定模式",allowedTools:"允许的工具:",autoPrefixLabel:"自动前缀:{{prefix}}",mustStartWithPrefix:"消息必须以“{{prefix}}”开头"},actions:{regenerate:"重新生成响应",retryFailed:"重试失败的请求",retryOptions:"重试选项",cancelRequest:"取消请求",sendMessage:"发送消息",copyMessage:"复制消息",referenceMessage:"引用消息",unpin:"取消置顶",pin:"置顶",generateTitle:"生成 AI 标题"},prompt:{selectorTitle:"选择系统提示词",createButton:"创建新会话",helperText:"为 AI 选择一个基础系统提示词。您可以在系统设置中添加或编辑提示词。",emptyDescription:"未找到系统提示词。在系统设置中添加一个。",newSessionSelectorTitle:"为新会话选择系统提示词",defaultDescription:"默认系统提示词。",loadPresetsFailed:"加载预设失败",loadCurrentInfoFailed:"加载当前信息失败"},fileReference:{title:"@ 文件引用",setWorkspace:"设置工作区",noMatches:"未找到匹配的文件",emptyDirectory:"目录为空"},commandSelector:{loading:"正在加载命令...",emptyWithSearch:"没有匹配“{{search}}”的命令",empty:"暂无可用命令。",navigationHint:"导航:上下键 或 Ctrl+P/N | 选择:Enter | 补全:Space/Tab | 取消:Esc",types:{workflow:"工作流",skill:"技能",mcp:"MCP"}},model:{selectModel:"选择模型",noModelSelected:"未选择模型",selectModelHint:"请选择一个模型后再开始对话。",providerNotConfigured:"提供商未配置",configureProviderHint:"请先在设置中配置提供商,然后再选择模型。",configureProvider:"配置提供商",openSettings:"打开设置",noModelsAvailable:"暂无可用模型",selectModelBeforeSend:"发送前请先选择模型。",selectModelBeforeRetry:"重试前请先选择模型。"},streaming:{assistant:"Bodhi",requestCancelled:"请求已取消",sendFailed:"发送消息失败",retryFailed:"重试请求失败",modelConfigNotLoaded:"模型配置尚未加载",agentUnavailable:"智能体不可用",noActiveChatTitle:"没有活动会话",noActiveChatSendContent:"发送前请先创建或选择一个会话。",noActiveChatRetryContent:"重试前请先创建或选择一个会话。",noChatIdTitle:"缺少会话 ID",noChatIdSendContent:"当前会话缺少 ID,请新建会话后再试。",noChatIdRetryContent:"当前会话缺少 ID,请新建会话后重试。"},selectionToolbar:{selectMessages:"选择消息",selectedCount:"已选择 {{selected}} 条(共 {{total}} 条)",selectAll:"全选",clear:"清空",exportMarkdown:"导出 Markdown",exportPdf:"导出 PDF",done:"完成"},compression:{tag:"已压缩上下文",timelineDetail:"已归档 {{count}} 条消息",timelineAria:"{{time}},{{detail}}",tooltip:"最近一次压缩:{{time}},已归档 {{count}} 条消息",archivedShort:"已归档 {{count}} 条"},subSessions:{title:"子会话",expand:"展开",collapse:"收起",continue:"在此继续",open:"打开",retry:"重试",hiddenHint:"已隐藏 {{count}} 个子会话"},chatItem:{edit:"编辑",childTag:"子会话"},systemPromptSelector:{defaultTag:"默认",hide:"隐藏",preview:"预览",copy:"复制",lines:"{{count}} 行",words:"{{count}} 词",chars:"{{count}} 字",noContent:"无内容"},title:{updated:"会话标题已更新",generateFailed:"生成会话标题失败"},respond:{customAnswerPlaceholder:"输入你的自定义回答..."},emptyLauncher:{title:"从任务开始",subtitle:"在当前分栏中创建一个聚焦会话,并先预填第一条消息,再由你决定是否发送。",hint:"不会自动发送,你可以先编辑提示词。",actions:{blank:{title:"空白会话",description:"使用默认助手从零开始,并保留空白输入框。",sessionTitle:"新建会话",prefill:""},codeReview:{title:"代码评审",description:"打开一个面向评审的会话,并预填可编辑的评审说明。",sessionTitle:"代码评审",prefill:"请审查这个工作区或仓库中的相关代码变更。先概述范围,再列出风险点、关键 diff,以及最值得优先修复的问题。"},tokenUsage:{title:"Token 使用调查",description:"诊断上下文膨胀、截断风险和 token 预算压力。",sessionTitle:"Token 使用调查",prefill:"请帮我分析这个会话或工作流的 token 使用、上下文增长和截断风险,归纳主要原因,并给出下一步最具体的优化建议。"}},errors:{createFailed:"创建会话失败"}},multiPane:{splitHorizontal:"水平拆分",splitVertical:"垂直拆分",closePane:"关闭分栏",selectSessionHint:"请选择一个会话查看消息",hoverToSplitHint:"将鼠标悬停在分栏上可进行拆分对比",selectMessagesToExport:"请选择要导出的消息"},messageCard:{authRequired:"需要身份验证",goToSettings:"前往设置",assistantThinking:"助手正在思考...",assistantCompactingContext:"助手正在压缩上下文...",reasoning:"推理",selected:"已选中",selectedTool:"已选工具"},messageActions:{copy:"复制",exportMarkdown:"导出 Markdown",exportPdf:"导出 PDF",restoreChat:"仅恢复会话",restoreFilesAndChat:"恢复文件和会话",deleteMessage:"删除消息",deleteFailed:"删除消息失败",deleteNotFound:"后端中找不到该消息,请刷新后重试",deleteConflict:"会话正在运行,请先停止后再删除",deleteBatchFailed:"共 {{total}} 条中有 {{failed}} 条删除失败",savedFile:"已保存到 {{filename}}",nothingToExport:"没有可导出的内容",exportFailed:"导出失败",cannotRestore:"无法恢复这条消息",restorePartial:"会话已恢复,但有 {{count}} 个文件未能恢复。",restoreFilesSuccess:"文件和会话已恢复(移除 {{count}} 条消息)。",restoreSuccess:"会话已恢复(移除 {{count}} 条消息)。",restoreFailed:"恢复会话失败",pdfUnavailable:"当前环境不支持导出 PDF",exportingPdf:"正在导出 PDF..."},session:{defaultTitle:"新建会话"}},settings:{page:{back:"返回",title:"系统设置",tabs:{config:"配置",prompts:"提示词",mermaid:"Mermaid",skills:"技能",workflows:"工作流",mcp:"MCP",modelLimits:"模型限制",metrics:"指标",schedules:"调度",sessions:"会话",app:"应用",provider:"提供商",hooks:"Hooks",masking:"脱敏",envVars:"环境变量"},groups:{ai:"AI",toolsAndExtensions:"工具与扩展",securityAndPrivacy:"安全",monitoring:"监控",system:"系统"}},notifications:{deleteAllSuccess:"已删除所有会话(置顶除外)",deleteEmptySuccess:"已删除空会话(置顶除外)",localStorageCleared:"本地存储已清空",resetSuccessReloading:"应用重置成功,正在重新加载...",resetFailed:"重置应用失败",autoTitleEnabled:"已启用自动标题生成",autoTitleDisabled:"已禁用自动标题生成",autoTitleUpdateFailed:"更新自动标题设置失败",promptEnhancementSaved:"系统提示增强已保存"},appTab:{autoGenerateTitle:"自动生成会话标题",autoGenerateTitleDesc:"开启后,应用会在助手首条回复后自动生成描述性标题。",switchOn:"开",switchOff:"关",darkMode:"深色模式",darkModeDark:"深色",darkModeLight:"浅色",language:"语言",languageEnglish:"English",languageChinese:"简体中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"हिन्दी",deleteAllTitle:"删除所有会话",deleteAllDescription:"确认删除?将删除所有会话(置顶除外)。",deleteAllButton:"删除所有会话",deleteEmptyTitle:"删除空会话",deleteEmptyDescription:"确认删除?将删除没有消息内容的会话(置顶除外)。",deleteEmptyButton:"删除空会话",clearLocalStorageTitle:"清空本地存储",clearLocalStorageDescription:"确认清空?将删除所有本地存储数据并重置应用。",clearLocalStorageButton:"清空本地存储",confirmDeleteAll:"确认,全部删除",confirmDeleteEmpty:"确认,删除空会话",confirmClear:"确认,清空",cancel:"取消",dangerZone:"危险操作",dangerDescription:"以下操作不可撤销,所有数据将被永久删除。",resetApplicationTitle:"重置应用",resetApplicationIntro:"确认执行以下操作:",resetStepDeleteAllSessions:"删除所有会话(包括置顶)",resetStepClearStorage:"清空所有本地存储数据",resetStepResetConfig:"将 config.json 重置为默认值",resetStepSetupFlow:"下次启动时触发初始化流程",resetStepReload:"重新加载应用",resetConfirm:"确认,重置全部",resetButton:"重置应用(清空全部数据)"},configTab:{tabs:{general:"常规",tools:"工具"},loadConfigFailed:"加载配置失败",invalidConfig:"配置无效",saveConfigSuccess:"配置保存成功",saveConfigFailed:"保存配置失败",toolsLoadFailed:"加载可用工具失败",toolsReloadSuccess:"工具列表已刷新",toolsSaveSuccess:"工具设置保存成功",toolsSaveFailed:"保存工具设置失败",backendSaved:"后端地址已保存",backendResetDefault:"后端地址已重置为默认值",providerMovedTitle:"Provider 配置已迁移",providerMovedDescription:"GitHub Copilot 和其他 Provider 配置已迁移到 Provider Settings 标签页,请前往那里进行配置。",backendApiBaseUrlTitle:"后端 API 基础地址",backendApiPlaceholder:"http://127.0.0.1:9562/v1",backendApiHint:"必须包含 /v1 路径",resetToDefault:"恢复默认",save:"保存",language:"语言",languageEnglish:"English",languageChinese:"简体中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"हिन्दी",toolsTitle:"工具可用性",toolsDescription:"控制每个工具是否可以发送给 AI 模型。关闭后,该工具不会出现在模型可用工具列表中。",toolsEmpty:"当前没有可用工具。",reloadTools:"刷新工具列表",loadBambooConfigFailed:"加载 Bamboo 配置失败",bambooConfigSaved:"Bamboo 配置已保存",saveBambooConfigFailed:"保存 Bamboo 配置失败"},networkCard:{title:"网络设置",httpProxy:"HTTP 代理",httpsProxy:"HTTPS 代理",proxyPlaceholder:"http://proxy.example.com:8080",proxyAuthTitle:"代理认证",proxyConfiguredForUser:"已为用户 {{username}} 配置认证",clearCredentials:"清除凭据",username:"用户名",password:"密码",apply:"应用",credentialsStorageNote:"代理凭据会加密存储在 ~/.bamboo/config.json",reload:"重新加载",save:"保存"},modelMappingCard:{loadProviderFailed:"加载 Provider 配置失败",loadMappingsFailed:"加载现有映射失败",loadModelsFailed:"加载模型失败",loadModelsHint:"加载模型失败,请检查 Provider 配置。",mappingSaved:"模型映射已保存",mappingSaveFailed:"保存模型映射失败",enterModelName:"请输入模型名称",customMappingSaved:"自定义模型映射已保存",customMappingSaveFailed:"保存自定义模型映射失败",collapseTitle:"Anthropic 模型映射",description:"配置当 Claude CLI 请求特定模型时,应该使用的 {{provider}} 模型。",loadModelsErrorTitle:"加载模型失败",retry:"重试",loadingModels:"模型加载中...",modelTypeOpus:"Opus",modelTypeOpusDescription:'匹配包含 "opus" 的模型',modelTypeSonnet:"Sonnet",modelTypeSonnetDescription:'匹配包含 "sonnet" 的模型',modelTypeHaiku:"Haiku",modelTypeHaikuDescription:'匹配包含 "haiku" 的模型',selectModelPlaceholder:"选择 {{label}} 模型",customModelOption:"自定义模型...",mappedModelNotFound:'映射模型 "{{model}}" 不在当前 Provider 的可用模型列表中',refreshModels:"刷新模型",currentProvider:"当前 Provider",loadingProvider:"加载中...",availableModels:"可用模型数量",cached:"(缓存)",storedIn:"存储位置",customModalTitle:"输入自定义模型名称",customModalDescription:"为 {{modelType}} 输入自定义模型名称",customModalPlaceholder:"例如:gpt-4-turbo-preview",customModalNote:"注意:请确认该模型名称对当前 Provider 有效。",save:"保存",cancel:"取消"},modelTab:{selectModelTitle:"选择模型",loadingModels:"正在加载模型...",selectModelPlaceholder:"请选择模型",backendApiBaseUrlTitle:"后端 API 基础地址",resetToDefault:"恢复默认",save:"保存",backendApiHint:"必须是包含 /v1 的完整基础地址(例如 {{example}})。"},mermaidTab:{title:"Mermaid 图表设置",description:"自定义 Mermaid 图在聊天中的渲染方式",themeCardTitle:"主题",themeLabel:"Mermaid 主题",themeTooltip:"选择内置 Mermaid 主题。Default 和 Neutral 会根据应用主题自动切换明暗。",themeOptions:{default:"Default(自动明/暗)",neutral:"Neutral(自动明/暗)",dark:"Dark",forest:"Forest(绿色调)",base:"Base(极简)"},themeDescriptionsTitle:"主题说明:",themeDescriptions:{default:"Default:经典 Mermaid 风格,自动适配明/暗主题",neutral:"Neutral:灰度风格,自动适配明/暗主题",dark:"Dark:始终使用暗色主题",forest:"Forest:绿色配色,适合技术图表",base:"Base:最小化样式,适合自定义主题"},globalCardTitle:"全局设置",fontSizeLabel:"字体大小",fontSizeTooltip:"图表文本的基础字号(像素)",defaultZoomLabel:"默认缩放",defaultZoomTooltip:"图表初始缩放比例(1.0 = 100%)",responsiveWidthLabel:"自适应宽度",responsiveWidthTooltip:"开启后图表会自适应容器宽度;关闭后使用固定宽度。",switchAuto:"自动",switchFixed:"固定",flowchartCardTitle:"流程图设置",flowchartNodeSpacingLabel:"节点间距",flowchartNodeSpacingTooltip:"节点之间的水平间距",flowchartRankSpacingLabel:"层级间距",flowchartRankSpacingTooltip:"层与层之间的垂直间距",flowchartCurveTypeLabel:"连线类型",flowchartCurveTypeTooltip:"连接线使用的曲线类型",flowchartCurveOptions:{basis:"平滑(Basis)",linear:"线性",cardinal:"Cardinal"},sequenceCardTitle:"时序图设置",sequenceActorMarginLabel:"参与者间距",sequenceActorMarginTooltip:"参与者之间的间距",sequenceMessageMarginLabel:"消息间距",sequenceMessageMarginTooltip:"消息之间的间距",sequenceActorWidthLabel:"参与者宽度",sequenceActorWidthTooltip:"每个参与者框的宽度",sequenceActorHeightLabel:"参与者高度",sequenceActorHeightTooltip:"每个参与者框的高度",ganttCardTitle:"甘特图设置",ganttBarHeightLabel:"任务条高度",ganttBarHeightTooltip:"每个任务条的高度",ganttTopPaddingLabel:"顶部留白",ganttTopPaddingTooltip:"图表顶部的留白间距",resetToDefaults:"恢复默认",previewTitle:"预览",previewDescription:"修改会立即生效。可新建或查看图表以查看效果。"},modelLimits:{title:"Token 预算模型限制",descriptionPrefix:"配置按模型划分的 token 上限。这些设置会全局保存到 Bamboo 的",descriptionSuffix:"并由后端解析器使用。",defaultsTitle:"模型默认值",defaultsDescription:"已预置 GPT-5 / GPT-4 / Gemini / Kimi / GLM 的上下文与输出默认值,可按需继续调整。",migratedFromLocalStorage:"已将本地存储中的模型限制迁移到全局配置。",loadFailed:"加载模型限制设置失败",saveSuccess:"模型限制已保存到全局配置",saveFailed:"保存模型限制设置失败",resetSuccess:"模型限制已恢复为产品默认值",resetFailed:"重置模型限制设置失败",defaults:{gpt54:"高阶推理能力,适合复杂任务。",gpt53Codex:"面向代码重构与工程场景优化。",gpt52Pro:"复杂任务下逻辑稳定性较强。",gpt5Mini:"速度快、成本低,适合通用任务。",gpt41:"经典大上下文模型,支持 1M 窗口。",gpt4o:"低延迟,适合日常对话。",gemini25Pro:"多模态分析能力较强。",kimiK25:"适合长文本中文内容处理。",kimiCoding:"针对编码场景优化。",glm5:"适合一次性大文档生成。"},columns:{vendor:"厂商/系列",model:"模型",contextWindow:"上下文窗口",maxOutput:"最大输出",notes:"备注",actions:"操作"},placeholders:{vendor:"OpenAI / Google / Moonshot",model:"例如 gpt-5.4-thinking",optional:"可选"},actions:{remove:"删除",addRow:"新增行",save:"保存",resetToDefaults:"恢复默认",reload:"重新加载"},validation:{atLeastOneRow:"至少保留一条模型限制记录。",modelPatternEmpty:"模型模式不能为空。",duplicateModelPattern:"模型模式重复:{{pattern}}",contextWindowMin:"{{pattern}} 的上下文窗口最小为 1000。",maxOutputMin:"{{pattern}} 的最大输出最小为 1。",maxOutputExceedsContext:"{{pattern}} 的最大输出必须小于或等于上下文窗口。",safetyMarginNegative:"{{pattern}} 的安全边距不能为负数。",safetyMarginTooLarge:"{{pattern}} 的安全边距必须小于上下文窗口。"}},common:{loading:"加载中...",successful:"成功",failed:"失败"},systemPromptManager:{title:"系统提示词管理",addButton:"添加提示词",defaultPromptLocked:"默认系统提示词已锁定,无法编辑。",updateSuccess:"提示词更新成功",addSuccess:"提示词添加成功",saveError:"保存提示词失败,请重试。",deleteSuccess:"提示词删除成功",deleteError:"删除提示词失败,请重试。",deleteConfirm:"确认删除此提示词吗?",defaultTag:"默认(锁定)",editTitle:"编辑系统提示词",addTitle:"新增系统提示词",nameLabel:"提示词名称",nameRequired:"请输入提示词名称!",descriptionLabel:"提示词描述",descriptionRequired:"请输入提示词描述!",contentLabel:"提示词内容",contentRequired:"请输入提示词内容!"},envVars:{title:"环境变量",description:"这些变量会注入到 Bash 工具进程。密钥变量会在存储时加密。",fetchError:"加载环境变量失败",created:"变量已创建",updated:"变量已更新",saveError:"保存变量失败",deleted:"变量已删除",deleteError:"删除变量失败",addButton:"添加变量",noVars:"尚未配置环境变量",addTitle:"添加环境变量",editTitle:"编辑变量",save:"保存",cancel:"取消",name:"名称",nameRequired:"变量名不能为空",nameInvalid:"必须以字母或下划线开头,后续仅可包含字母、数字或下划线",value:"值",valueRequired:"新建变量时必须填写值",valueEditHint:"留空则保留现有值",valuePlaceholder:"输入值",valuePlaceholderEdit:"输入新值或留空",secret:"密钥",secretHint:"密钥变量会加密存储,并在界面中脱敏显示",descriptionField:"说明",descriptionPlaceholder:"可选说明",type:"类型",plain:"普通",descriptionCol:"说明",actions:"操作",deleteConfirm:"确认删除该变量?",yes:"是",no:"否",notSet:"(未设置)",empty:"(空)"},promptsTab:{title:"系统提示增强",mermaidEnhancement:"Mermaid 增强",taskListRules:"共享任务规则",copilotConclusionWithOptionsBeforeFinish:"Copilot 结束前 conclusion_with_options",switchOn:"开",switchOff:"关",enhancementPlaceholder:"为每次系统提示追加全局增强文本。",saveEnhancement:"保存增强",description:"该文本会先追加,然后再拼接已启用的系统增强,最后再发送请求。"},hooksTab:{title:"图像 Hooks",enableImagePreflight:"启用图像预检 Hook",modeLabel:"模式",description:"Placeholder 模式会把图像改写为文本摘要(可能影响依赖真实图像数据的工具)。OCR 目前仅支持 Windows。",loadFailed:"加载 Hooks 设置失败",updateFailed:"更新 Hooks 失败",modeUpdateFailed:"更新 Hook 模式失败",enabled:"已启用图像 Hooks",disabled:"已禁用图像 Hooks",modeUpdated:"图像 Hook 模式已设置为:{{mode}}",mode:{placeholder:"占位符",error:"报错",ocr:"OCR(Windows)",vision:"视觉描述(LLM)"}},keywordMaskingTab:{title:"关键词脱敏",addKeyword:"添加关键词",description:"配置发送到 Copilot API 前需要脱敏的关键词。可使用精确匹配或正则匹配,匹配内容会被替换为 [MASKED]。",empty:"暂无关键词脱敏规则",cancel:"取消",patternPlaceholder:"输入要匹配的模式",examples:"示例",exactMatch:"精确匹配",regexPattern:"正则模式",enabled:"启用",disabled:"禁用",sampleText:"示例文本",sampleTextPlaceholder:"输入示例文本",maskedPreview:"脱敏预览",emptyPattern:"(空)",loadFailed:"加载关键词脱敏配置失败",saveFailed:"保存配置失败",saveSuccess:"关键词脱敏配置已保存",validationFailedPrefix:"校验失败",patternRequired:"匹配模式不能为空",invalidRegexPattern:"无效的正则表达式模式",example:{literalToken:"脱敏字面量 token",githubTokens:"脱敏 GitHub token",awsKeys:"脱敏 AWS Key",emails:"脱敏邮箱地址"}},schedulesTab:{loadFailed:"加载调度失败",loadSessionsFailed:"加载调度会话失败",createFailed:"创建调度失败",updateFailed:"更新调度失败",deleteFailed:"删除调度失败",runNowFailed:"立即执行失败",taskMessageRequired:"启用自动执行时必须填写任务消息",created:"调度已创建",updated:"调度已更新",deleted:"调度已删除",enqueuedRun:"已加入执行队列",loading:"加载中...",yes:"是",no:"否",optional:"(可选)",defaultName:"我的调度",createTitle:"创建调度",listTitle:"调度列表",scheduleSessionsTitle:"调度会话",noSessionsYet:"暂无会话。",editTitle:"编辑调度",columns:{name:"名称",autoExecute:"自动执行",model:"模型",enabled:"启用",intervalSeconds:"间隔(秒)",nextRun:"下次运行",lastRun:"最近运行",actions:"操作"},form:{name:"名称",intervalSeconds:"间隔秒数",enabled:"启用",taskMessage:"任务消息",taskMessagePlaceholder:"(可选)要执行的任务",model:"模型",modelPlaceholder:"(可选)例如 gpt-4o-mini",modelRequiredIfAuto:"启用自动执行时必填",autoExecute:"自动执行",systemPrompt:"系统提示词",workspacePath:"工作区路径",enhancePrompt:"增强提示"},validation:{nameRequired:"名称不能为空",intervalRequired:"间隔不能为空"},actions:{create:"创建",refresh:"刷新",edit:"编辑",runNow:"立即执行",sessions:"会话",delete:"删除",open:"打开",save:"保存"}},sessionsTab:{currentSessionTitle:"当前会话",id:"ID",kind:"类型",clearMessages:"清空消息",clearMessagesTitle:"清空会话消息",clearMessagesContent:"将清空当前会话的消息/附件,但保留会话条目。",clear:"清空",cancel:"取消",sessionCleared:"会话已清空",noActiveSession:"当前没有活跃会话。",bulkCleanupTitle:"批量清理",keepPinned:"保留置顶",deleteAll:"删除全部",deleteAllTitle:"删除所有会话",deleteAllKeepPinned:"删除所有会话(保留置顶)。",deleteAllIncludePinned:"删除所有会话(包含置顶)。",deleteEmpty:"删除空会话",deleteEmptyTitle:"删除空会话",deleteEmptyKeepPinned:"删除空会话(保留置顶)。",deleteEmptyIncludePinned:"删除空会话(包含置顶)。",deleteChildren:"删除子会话",deleteChildrenTitle:"删除子会话",deleteChildrenKeepPinned:"删除所有子会话(保留置顶)。",deleteChildrenIncludePinned:"删除所有子会话(包含置顶)。",delete:"删除",cleanupComplete:"清理完成",devResetTitle:"开发重置",devResetDescription:"会话存储绿地重置(删除 sessions/ 并重置 sessions.json)。",devResetAction:"开发重置会话",devResetConfirmTitle:"重置会话存储(开发)",devResetConfirmContent:"将删除所有会话(包含置顶/子会话)并重置会话索引。刷新后会创建一个新的空会话。",reset:"重置",devResetDone:"会话存储已重置"},workflowsTab:{title:"工作流",description:"工作流会以 Markdown 文件存储在 `~/.bamboo/workflows`。可在聊天中使用 `/name` 插入工作流。",loadFailed:"加载工作流失败",loadContentFailed:"加载工作流内容失败",invalidName:"工作流名称不合法",nameAlreadyExists:"同名工作流已存在",saved:"工作流已保存",saveFailed:"保存工作流失败",deleted:"工作流已删除",deleteFailed:"删除工作流失败",refresh:"刷新",newWorkflow:"新建工作流",save:"保存",empty:"暂无工作流",namePlaceholder:"工作流名称",contentPlaceholder:`# 工作流标题
|
|
4
|
+
Describe the workflow steps here.`},providerTab:{title:"LLM Provider Configuration",description:'Configure your preferred LLM provider. Configuration will be saved and applied when you click "Save and Apply Configuration".',currentProvider:"Current Provider",activeProvider:"Active LLM Provider",selectProviderRequired:"Please select a provider",saveAndApply:"Save and Apply Configuration",loadConfigFailed:"Failed to load provider config",checkStatusFailed:"Failed to check status",startCopilotAuthFailed:"Failed to start Copilot authentication",copilotAuthSuccess:"Copilot authentication successful!",providerReloaded:"Provider reloaded with new authentication.",completeAuthFailed:"Authentication completion failed. Please try again.",userCodeCopied:"User code copied to clipboard!",copyCodeFailedPrefix:"Failed to copy code. Please manually copy:",logoutSuccess:"Logged out from Copilot",logoutFailed:"Failed to logout from Copilot",unknownError:"Unknown error",invalidConfig:"Invalid configuration",invalidConfigPrefix:"Invalid configuration",fetchModelsCopilotFailed:"Failed to fetch models. Please authenticate Copilot and try again.",fetchModelsFailed:"Failed to fetch models. Please check your API key and base URL.",noModelsReturned:"No models returned. Authenticate Copilot first, then fetch models.",foundModels:"Found {{count}} available models",fetchModelsErrorPrefix:"Failed to fetch models",saveConfigSuccess:"Configuration saved successfully",saveConfigFailed:"Failed to save configuration",saveConfigErrorPrefix:"Failed to save configuration",applyConfigSuccess:"Configuration applied successfully. Changes will take effect for new conversations.",applyConfigFailed:"Failed to apply configuration",applyConfigErrorPrefix:"Failed to apply configuration",modelUpdated:"Model updated successfully",updateModelFailed:"Failed to update model",updateModelErrorPrefix:"Failed to update model",fetchingModels:"Fetching models...",refreshModelsFrom:"Refresh available models from {{source}}",fetchModelsFrom:"Fetch available models from {{source}}",saveModelChangeFailed:"Failed to save model change",fetchModelsFailedShort:"Failed to fetch models",retry:"Retry",openaiConfigTitle:"OpenAI Configuration",openaiConfigDescription:"Enter your OpenAI API key to use GPT models. You can optionally specify a custom base URL for proxy servers.",openaiApiKey:"OpenAI API Key",openaiApiKeyRequired:"Please enter your OpenAI API key",baseUrlOptional:"Base URL (Optional)",openaiBaseUrlHelp:"Leave empty to use the default OpenAI API endpoint. Include full path (e.g., /v1) if needed.",defaultModel:"Default Model",fastModel:"Fast Model (Optional)",fastModelHelp:"Cheaper/faster model for lightweight tasks like title generation, mermaid fix, and summarization. Uses default model when not set.",visionModel:"Vision Model (Optional)",visionModelHelp:"Vision-capable model for image understanding. When hooks.image_fallback.mode is set to 'vision', this model describes images as text so text-only models can understand them. Uses default model when not set.",sameAsDefault:"Same as default model",selectModelRequired:"Please select a model",selectModel:"Select a model",responsesOnlyModelsOptional:"Responses-Only Models (Optional)",responsesOnlyHelp1:"Some models only support the OpenAI Responses API (not chat/completions). Add model ids here to force Bamboo to use upstream",responsesOnlyHelp2:"Supports exact match (e.g. gpt-5.3-codex) and prefix match with a trailing * (e.g. gpt-5*).",anthropicConfigTitle:"Anthropic Configuration",anthropicConfigDescription:"Enter your Anthropic API key to use Claude models.",anthropicApiKey:"Anthropic API Key",anthropicApiKeyRequired:"Please enter your Anthropic API key",anthropicBaseUrlHelp:"Leave empty to use the default Anthropic API endpoint. Include full path (e.g., /v1) if needed.",maxTokensOptional:"Max Tokens (Optional)",maxTokensHelp:"Maximum number of tokens to generate",geminiConfigTitle:"Google Gemini Configuration",geminiConfigDescription:"Enter your Google AI API key to use Gemini models.",geminiApiKey:"Gemini API Key",geminiApiKeyRequired:"Please enter your Gemini API key",geminiBaseUrlHelp:"Leave empty to use the default Google AI API endpoint. Include full path if needed.",copilotConfigTitle:"GitHub Copilot Configuration",copilotConfigDescription:"GitHub Copilot uses OAuth authentication. No API key is required. Make sure you have an active GitHub Copilot subscription.",authStatusTitle:"Authentication Status",authenticated:"Authenticated",notAuthenticated:"Not Authenticated",logoutCopilot:"Logout from Copilot",authenticateCopilot:"Authenticate Copilot",refreshStatus:"Refresh Status",headlessAuth:"Headless Authentication",headlessAuthHelp:"Print login URL in console instead of opening browser automatically",noModelsLoaded:'No models loaded yet. Click "Fetch available models from backend".',authFirstThenFetch:"Authenticate Copilot first, then fetch models.",copilotUsageTitle:"To use GitHub Copilot:",copilotUsageStep1:"Ensure you have an active GitHub Copilot subscription",copilotUsageStep2:'Click "Authenticate Copilot" to start the device code flow',copilotUsageStep3:"Follow the instructions in your terminal to complete authentication",copilotAuthModalTitle:"Copilot Authentication",cancel:"Cancel",completedAuthorization:"I've Completed Authorization",browserOpened:"Browser opened automatically",authStep1:"A GitHub page should have opened in your browser",authStep2:"Copy the code below and paste it on the GitHub page",authStep3:'Click "Continue" on GitHub to authorize',visitUrl:"1. Visit this URL:",enterCode:"2. Enter this code:",copied:"Copied!",copyCode:"Copy Code",afterContinueHint:`After clicking "Continue" on GitHub, click the "I've Completed Authorization" button below.`,providerNames:{openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},mcpTab:{status:{connecting:"Connecting",ready:"Ready",degraded:"Degraded",stopped:"Stopped",error:"Error"},statusGuideTitle:"Status guide:",statusHelp:{connecting:"Server is starting or reconnecting",ready:"Server is connected and serving tools normally",degraded:"Server is partially available; some tools may fail",stopped:"Server is not running",error:"Server failed to start or encountered runtime errors"},statusLastError:"Last error: {{error}}",serverDeleted:"MCP server deleted",deleteServerFailed:"Failed to delete MCP server",connectedTo:"Connected to {{name}}",connectServerFailed:"Failed to connect MCP server",disconnected:"Disconnected {{name}}",disconnectServerFailed:"Failed to disconnect MCP server",toolsRefreshedFor:"Tools refreshed for {{name}}",refreshToolsFailed:"Failed to refresh tools",statusRefreshed:"MCP status refreshed",refreshStatusFailed:"Failed to refresh MCP status",noServerForEditing:"No server selected for editing",savedServer:"Saved {{name}}",addedServer:"Added {{name}}",saveServerFailed:"Failed to save MCP server",copiedConfig:"Copied MCP config to clipboard",clipboardUnavailable:"Clipboard not available. Export is shown in the modal.",invalidJsonPrefix:"Invalid JSON",unknownError:"Unknown error",jsonMustBeObject:"JSON must be an object",missingMcpServers:`Missing 'mcpServers'. Paste a full Claude Desktop-style config chunk: { "mcpServers": { ... } }`,importSummary:"Imported {{count}} server(s) ({{added}} added, {{updated}} updated, {{removed}} removed). {{failed}} failed to start.",importStartFailures:"Some servers did not start. Config is saved; open the server list to see errors.",importFailed:"Failed to import MCP servers",overviewTitle:"MCP Overview",overviewDescription:"Configure external MCP servers and inspect registered tool aliases.",totalServers:"Total servers: {{count}}",totalTools:"Total tools: {{count}}",serversTitle:"MCP Servers",addServer:"Add Server",refreshAll:"Refresh All",export:"Export",import:"Import",importModalTitle:"Import MCP Servers",importHint:"Paste a Claude Desktop-style config chunk. Example:",importModeMerge:"Merge (Upsert)",importModeReplace:"Replace (Delete Others)",replaceWarning:"Replace mode will remove existing MCP servers not present in the imported mcpServers."},mcpServerTable:{columns:{name:"Name",transportType:"Transport Type",status:"Status",toolCount:"Tool Count",actions:"Actions"},transportOptions:{sse:"SSE",stdio:"Stdio"},deleteTitle:"Delete MCP server",deleteDescription:'Delete server "{{name}}"?',empty:"No MCP servers configured",actions:{edit:"Edit",delete:"Delete",disconnect:"Disconnect",connect:"Connect",refreshTools:"Refresh Tools"}},mcpToolList:{title:"MCP Tools",selectServerHint:"Select a server to inspect its MCP tools",empty:"No tools found for this server",noDescription:"No description available",aliasMapping:"Alias mapping",parametersSchema:"Parameters schema"},mcpServerForm:{jsonMustBeObject:"JSON must be an object",detectedBulkConfig:"Detected mcpServers (bulk config). Use the MCP tab Import button for bulk import, or paste a single server config here.",missingIdField:"Missing or invalid id field",missingTransportField:"Missing or invalid transport field",missingTransportInfo:"Missing transport info. Expected either transport (Bodhi format) or command/url (mainstream MCP format).",invalidJson:"Invalid JSON: {{message}}",unknownError:"Unknown error",editTitle:"Edit MCP Server",addTitle:"Add MCP Server",save:"Save",modeForm:"Form",modeJson:"JSON",jsonError:"JSON Error",serverId:"Server ID",serverIdRequired:"Server ID is required",serverIdPatternError:"Use only letters, numbers, underscore, and hyphen",displayName:"Display Name",enabled:"Enabled",enabledHelp:"Disabled servers stay in config but will not be started.",transportType:"Transport Type",transportTypeRequired:"Transport type is required",transportOptions:{stdio:"Stdio",sse:"SSE"},command:"Command",commandRequired:"Command is required",arguments:"Arguments",argumentsPlaceholder:"Add an argument and press Enter",envVars:"Environment Variables",addEnv:"Add Env",keyRequired:"Key required",sseUrl:"SSE URL",sseUrlRequired:"SSE URL is required",validUrlRequired:"Please enter a valid URL",headers:"Headers",addHeader:"Add Header",headerNameRequired:"Header name required"},metricsCards:{totalSessions:"Total Sessions",chatTokens:"Chat Tokens",totalToolCalls:"Total Tool Calls",avgSessionDuration:"Avg Session Duration"},forwardMetricsCards:{totalForwardRequests:"Total Forward Requests",successRate:"Success Rate",forwardTokens:"Forward Tokens",avgResponseTime:"Avg Response Time"},unifiedMetricsCards:{totalRequests:"Total Requests",totalTokens:"Total Tokens",successRate:"Success Rate",avgResponseTime:"Avg Response Time",chatSessions:"Chat Sessions",chatTokens:"Chat Tokens",toolCalls:"Tool Calls",avgSessionDuration:"Avg Session Duration",totalMemories:"Total Memories",staleCandidates:"Stale Candidates",memoryProjects:"Memory Projects",lastReindex:"Last Reindex",forwardRequests:"Forward Requests",forwardTokens:"Forward Tokens",successful:"Successful",failed:"Failed"},metricsTable:{session:{columns:{session:"Session",model:"Model",status:"Status",started:"Started",duration:"Duration",tokens:"Tokens",toolCalls:"Tool Calls",messages:"Messages",action:"Action"},view:"View"},forward:{columns:{id:"ID",endpoint:"Endpoint",model:"Model",type:"Type",status:"Status",tokens:"Tokens",duration:"Duration",started:"Started",error:"Error"},typeStream:"Stream",typeSync:"Sync",totalRequests:"{{total}} requests",empty:"No forward requests recorded for this range"}},metricsDashboard:{roundColumns:{round:"Round",status:"Status",duration:"Duration",tokens:"Tokens",toolCalls:"Tool Calls"},compactStats:{combinedTokens:"Combined Tokens",chatTokens:"Chat Tokens",forwardTokens:"Forward Tokens",avgTokensPerSession:"Avg Tokens / Session",estimatedTimeSaved:"Est. Time Saved",estimatedEfficiencyLift:"Est. Efficiency Lift",estimatedSpeedMultiplier:"Est. Speed Multiplier",estimatedSavedWorkdays:"Est. Saved Workdays",avgRoundsPerSession:"Avg Rounds / Session",toolCallsPerSession:"Tool Calls / Session",activeSessionRate:"Active Session Rate",avgTokensPerForward:"Avg Tokens / Forward",forwardErrorRate:"Forward Error Rate",streamingRatio:"Streaming Ratio",p95ForwardLatency:"P95 Forward Latency",modelCoverage:"Model Coverage",endpointCoverage:"Endpoint Coverage"},multiplierSuffix:"x",filtersTitle:"Filters",refresh:"Refresh",startDate:"Start date",endDate:"End date",model:"Model",daysOption:"{{value}} days",granularity:{daily:"Daily",weekly:"Weekly",monthly:"Monthly"},dashboardTitle:"Dashboard",tabs:{overview:"Overview",analysis:"Analysis",records:"Records",chat:"Chat",skillsAndMcp:"Skills & MCP",forward:"Forward",memory:"Memory"},derivedMetricsTitle:"Derived Metrics (Compact)",derivedMetricsSubtitle:"More dimensions without extra page length",efficiencyHint:"Efficiency estimates use conservative assumptions: {{manualTpm}} manual tokens/min + {{manualToolMinutes}} min/tool vs {{assistedTpm}} assisted tokens/min + {{assistedToolMinutes}} min/tool, then apply {{realization}}% realization and caps ({{maxLift}}% / {{maxMultiplier}}x).",toolUsageTitle:"Tool Usage Frequency",noToolUsage:"No tool calls recorded for this range.",calls:"Calls",activityHeatmapTitle:"Daily Activity Heatmap",noActivity:"No activity available for this range.",sessionsCount:"{{count}} sessions",tokensAmount:"{{value}} tokens",sessionsTabLabel:"Sessions ({{count}})",chatSessionsLabel:"Chat Sessions ({{count}})",sessionsHint:"Click a session for full round detail",forwardTabLabel:"Forward Requests ({{count}})",detailedMetricsTitle:"Detailed Metrics",sessionMetricsTitle:"Session Metrics",loadingSessionDetails:"Loading session details...",sessionDetail:{sessionId:"Session ID",model:"Model",status:"Status",duration:"Duration",messages:"Messages",totalTokens:"Total Tokens",toolCalls:"Tool Calls"},noDetail:"No detail available.",skillsAndMcp:{cards:{skillLoadCalls:"Skill Loads",uniqueSkills:"Unique Skills",mcpCalls:"MCP Calls",uniqueMcpServers:"MCP Servers",uniqueMcpTools:"MCP Tools",coreToolCalls:"Core Tool Calls"},mix:{coreTools:"Core Tools",skillLoads:"Skill Loads",mcpCalls:"MCP Calls"},meta:{uniqueTools:"{{count}} tools"},usageMixTitle:"Usage Mix",usageMixSubtitle:"Compare core tools, skill loads, and MCP calls in one view.",noUsageMix:"No usage data available for this range.",topSkillsTitle:"Top Skills",topSkillsSubtitle:"Counted from load_skill calls during matching sessions.",noSkills:"No skills were loaded in this range.",topMcpServersTitle:"Top MCP Servers",topMcpServersSubtitle:"Server-level MCP call distribution.",noMcpServers:"No MCP activity recorded for this range.",topMcpToolsTitle:"Top MCP Tools",topMcpToolsSubtitle:"Most frequently called MCP tool aliases.",noMcpTools:"No MCP tools were called in this range.",topCoreToolsTitle:"Top Core Tools",topCoreToolsSubtitle:"Canonicalized built-in and server tool usage ranking.",noCoreTools:"No core tools were called in this range."},forward:{performanceTitle:"Forward Performance",performance:{p95Latency:"P95 Latency",errorRate:"Error Rate",streamingRatio:"Streaming Ratio",endpointCoverage:"Endpoint Coverage"}},memory:{breakdownTitle:"Memory Breakdown",byType:"By Type",byStatus:"By Status",byScope:"By Scope",lastDream:"Last Dream",lastReindex:"Last Reindex"}},charts:{tokenUsageOverTime:"Token Usage Over Time",unifiedTokenUsageOverTime:"Token Usage Over Time (Chat + Forward)",memoryTrendTitle:"Memory Trend",noTokenUsage:"No token usage available",noMemoryTrend:"No memory trend available",tokenUsageDescription:"Prompt, completion, and total tokens by day/period.",unifiedTokenUsageDescription:"Combined chat and forward token usage over time.",memoryTrendDescription:"Created memories, updated memories, and total durable memory over time.",total:"Total",prompt:"Prompt",completion:"Completion",chat:"Chat",forward:"Forward",totalMemories:"Total Memories",createdMemories:"Created Memories",updatedMemories:"Updated Memories",modelDistribution:"Model Distribution",noModelMetrics:"No model metrics available",modelDistributionDescription:"Share of total tokens consumed by model.",endpointDistribution:"Endpoint Distribution",noForwardMetrics:"No forward metrics available for this range."}},components:{markdown:{codeCopiedSuccess:"Code copied to clipboard",copyFailed:"Copy failed"},jsonSchema:{field:"Field",type:"Type",required:"Required",yes:"Yes",no:"No",default:"Default",description:"Description",noProperties:"No properties in schema"},workflowResult:{userWorkflow:"User Workflow",waitingForResult:"Waiting for workflow result...",executionFailed:"Workflow execution failed",retryWorkflow:"Retry workflow",copyParameters:"Copy parameters",copyResult:"Copy result",expandResult:"Expand result",collapseResult:"Collapse result"},toolResult:{waiting:"Waiting",waitingForResult:"Waiting for result...",executionFailed:"Tool execution failed",copyResult:"Copy result",checkpoint:"Checkpoint",checkpointNone:"None",diffTruncated:"Diff is too long and has been truncated",structuredToolResultHint:"Tool result · {{tool}}",memory:{action:{inspect:"Inspect",rebuild:"Rebuild"},totalMemories:"{{count}} memories",staleCandidates:"stale candidates: {{count}}",coverage:"Coverage",viewsLabel:"Views:",indexesLabel:"Indexes:",stateFilesLabel:"State files:",lastReindexLabel:"Last reindex:",lastDreamLabel:"Last dream:",viewFiles:"View files",indexFiles:"Index files",stateFiles:"State files",topicPaths:"Topic paths",recentMemories:"Recent memories"}},toolCall:{liveOutput:"Live output",keyParameters:"Key parameters",fullParameters:"Full parameters",copyParameters:"Copy parameters"},plan:{executionPlan:"Execution Plan",goal:"Goal",steps:"Steps",stepTitle:"Step {{number}}",reason:"Reason",estimated:"Estimated",tools:"Tools",prerequisites:"Prerequisites",potentialRisks:"Potential Risks ({{count}})",totalEstimatedTime:"Total estimated time",feedbackPlaceholder:"Tell the agent what to adjust...",sendFeedback:"Send feedback",refinePlan:"Refine plan",executePlan:"Execute plan"},question:{agentQuestion:"Agent Question",context:"Context",chooseOption:"Choose an option",recommended:"Recommended",customAnswerHint:"Need another option? Type your own answer.",customAnswerPlaceholder:"Type your custom answer...",submitAnswer:"Submit answer"},questionDialog:{selectOptionWarning:"Please select an option before submitting.",responseSubmitted:"Response submitted",responseSubmittedContinue:"Response submitted, AI will continue processing",submitFailed:"Failed to submit response",noModelConfigured:"No model configured",customAnswerTip:"Custom answer",otherTypeBelow:"Other (type below)",confirm:"Confirm"},skillManager:{title:"Skills",refresh:"Refresh",skillsRefreshed:"Skills refreshed",lastUpdated:"Last updated: {{value}}",justNow:"just now",secondsAgo:"{{count}}s ago",minutesAgo:"{{count}}m ago",searchPlaceholder:"Search skills",readOnlyHint:"Skill files remain read-only, but you can enable or disable them for prompt usage.",disabledHint:"Disabled skills stay visible here, but Bamboo filters them from system prompt skill context and blocks load_skill at runtime.",disabledTag:"Disabled",switchEnabled:"On",switchDisabled:"Off",skillStateSaved:"Skill state saved",saveFailed:"Failed to save skill state",noSkillsFound:"No skills found",noMatch:"No skills match the current search",loadFailed:"Failed to load skills",getFailed:"Failed to get skill"},skillSelector:{placeholder:"Select skills",disabledSkillsHint:"{{count}} previously selected skill is now globally disabled and has been removed."},imageGrid:{preview:"Preview",ocr:"OCR"},todoList:{title:"Task List",evaluating:"Evaluating",pin:"Pin",unpin:"Unpin",llmEvaluation:"LLM Evaluation",tools:"tools",dependsOn:"Depends on: {{deps}}",dependencies:"deps",status:{pending:"Pending",inProgress:"In Progress",completed:"Completed",blocked:"Blocked"}},tokenUsage:{title:"Token Usage",contextWindow:"Context window",summary:"Summary",system:"System",messages:"Messages",tokens:"tokens",usedPercent:"Used {{value}}%"},approval:{workflow:"Workflow",executionRequest:"Execution Request",aiWantsExecute:"AI wants to execute the following action"},toolSession:{title:"Tool Session",running:"Running",done:"Done",error:"Error",completedOnly:"{{completed}} completed",completedWithErrors:"{{completed}} completed (with errors)",completedProgress:"{{completed}} / {{total}} completed",noPersistedMessage:"No persisted output",deleteMessage:"Delete tool session"},mermaid:{loadingDiagram:"Loading diagram...",diagramError:"Mermaid Diagram Error",errorTitlePrefix:"Error",checkConsoleHint:"Check Mermaid syntax or open the console for details.",fixMermaid:"Fix Mermaid",renderingDiagram:"Rendering diagram...",exportSvg:"Export SVG",exportFailed:"Failed to export diagram"}},validation:{workspaceRequired:"Please enter a workspace path",invalidPath:"Invalid path"},error:{saveWorkspaceFailed:"Failed to save workspace path",readFolderFailed:"Unable to read folder",copyPromptFailed:"Failed to copy prompt content"},success:{promptCopied:'Copied "{{name}}" prompt'}}},"zh-CN":{translation:{app:{loading:"加载中...",retry:"重试",backendNotReachable:"无法连接后端 {{baseUrl}}(最近错误:{{message}})"},layout:{showSidebar:"显示侧边栏"},commandPalette:{searchPlaceholder:"搜索会话、设置和快捷操作",navigationHint:"使用 ↑↓ 导航,Enter 打开,Esc 关闭。",empty:"没有匹配的命令",groups:{quickActions:"快捷操作",settings:"系统设置"},badges:{quickAction:"操作",pinned:"置顶",running:"运行中",child:"子会话",childSession:"子会话",rootSession:"会话"},actions:{newSession:"创建新会话",openProviderSettings:"打开 Provider 设置",openMcpSettings:"打开 MCP 设置",openWorkflowSettings:"打开工作流设置",openSessionsSettings:"打开会话监控",openSchedulesSettings:"打开计划任务"},errors:{actionFailed:"命令执行失败"}},common:{cancel:"取消",ok:"确定",apply:"应用",save:"保存",delete:"删除",saveAnyway:"仍然保存",yes:"是",no:"否",home:"主页",parentDirectory:"上级目录",currentPath:"当前路径:",workspace:"工作区",server:"服务器:",category:"类别:",parameters:"参数",approve:"批准",reject:"拒绝",download:"下载",directory:"目录",file:"文件"},setup:{welcome:{title:"欢迎",heading:"欢迎使用 Bodhi",description:"让我们在进入主应用之前先设置您的环境。",skipInfo:"您现在可以跳过设置,稍后在系统设置中配置代理设置。"},steps:{welcome:"欢迎",proxy:"代理配置"},proxy:{title:"代理配置",info:"如果您在公司代理后面,请在下面配置。",providerInfo:"提供商配置稍后在提供商设置中完成。此设置步骤仅存储网络/代理设置。",detecting:"正在检测网络环境...",noProxyDetected:"未检测到现有代理。如果您的网络不需要代理,可以将这些字段留空。",httpProxyLabel:"HTTP 代理 URL:",httpsProxyLabel:"HTTPS 代理 URL:",httpProxyPlaceholder:"http://proxy.company.com:8080",httpsProxyPlaceholder:"http://proxy.company.com:8080",usernameLabel:"用户名",passwordLabel:"密码",rememberCredentials:"记住凭据(加密)"},complete:{title:"设置完成!",restartMessage:"请重启应用程序以应用所有设置。"},button:{next:"下一步",skipForNow:"暂时跳过",back:"返回",completeSetup:"完成设置",restart:"重启"},error:{loadStatusFailed:"无法加载设置状态。您可以继续进行手动代理配置。",invalidProxy:"代理设置无效。",credentialsUsername:"要存储代理凭据,请输入用户名或取消选中「记住凭据」。",saveProxyFailed:"保存代理配置失败。请重试。",completeFailed:"完成设置失败。请重试。"}},chat:{sidebar:{newSession:"新建会话",createFailedTitle:"创建会话失败",createFailedUnknown:"未知错误",searchPlaceholder:"搜索会话",filters:{all:"全部",pinned:"置顶",running:"运行中",child:"子会话"},empty:{noSessions:"暂无会话",noMatches:"没有匹配的会话",hint:"点击「新建会话」开始",filterHint:"请尝试调整搜索词或筛选条件"},dateGroups:{today:"今天",yesterday:"昨天",thisWeek:"本周",thisMonth:"本月",pinned:"置顶",scheduled:"计划任务"},actions:{collapseChildren:"折叠子会话",expandChildren:"展开子会话"},delete:{title:"删除会话",confirm:"确定要删除这个会话吗?"},deleteByDate:{title:"删除 {{date}} 的会话",confirm:"确定要删除 {{date}} 的 {{count}} 个会话吗?"},newSessionWithPrompt:"基于 {{prompt}} 的新会话"},workspace:{modalTitle:"设置工作区路径",invalidTitle:"无效的工作区路径",issuesDetected:"检测到工作区路径的潜在问题:",confirmSaveInvalid:"您仍要保存此路径吗?",errorEnterPath:"请输入工作区路径",errorSaveFailed:"保存工作区路径失败",placeholder:"例如:/Users/alice/Workspace/MyProject",label:"工作区",browseFolder:"浏览文件夹",descriptionTitle:"工作区路径描述",descriptionP1:"设置工作区路径后,文件引用和工作区相关工具才能稳定地定位文件。",descriptionP2:"建议选择真实存在的项目目录。即使路径无效也可继续保存,但相关功能可能不可用。",checkTitle:"工作区路径检查",checkDescription:"工作区路径校验失败。",recentTitle:"最近工作区",suggestedTitle:"推荐工作区",noRecentWorkspaces:"暂无最近工作区",noSuggestions:"暂无推荐",defaultWorkspaceName:"工作区",validWorkspace:"工作区有效",fileCount:"{{count}} 个文件"},folderBrowser:{title:"选择工作区文件夹",selectCurrent:"选择当前文件夹",emptyFolder:"此文件夹为空",tip:"提示:点击文件夹进入,点击「选择当前文件夹」确认"},input:{placeholder:"发送消息...",placeholderWithReference:"发送消息(包含引用)",placeholderWithWorkflows:"发送消息...(输入 '/' 选择工作流)",toolCallsOnly:"仅工具调用(允许的工具:{{tools}})",autoPrefixMode:"自动前缀模式:{{prefix}}(输入 '/' 选择工具)",toolSpecificMode:"工具特定模式(允许的工具:{{tools}})",processingFiles:"正在处理文件…",addAttachments:"添加附件",referenceWorkspaceFiles:"引用工作区文件",imageCountSingular:"{{count}} 张图片",imageCountPlural:"{{count}} 张图片",moreImages:"还有 {{count}} 张",clearAllImages:"清除所有图片",reasoningTitle:"推理强度:{{label}}",reasoning:{low:"低",medium:"中",high:"高",xhigh:"很高",max:"最大"},strictToolOnlyMode:"严格仅工具模式",toolSpecificModeLabel:"工具特定模式",allowedTools:"允许的工具:",autoPrefixLabel:"自动前缀:{{prefix}}",mustStartWithPrefix:"消息必须以“{{prefix}}”开头"},actions:{regenerate:"重新生成响应",retryFailed:"重试失败的请求",retryOptions:"重试选项",cancelRequest:"取消请求",sendMessage:"发送消息",copyMessage:"复制消息",referenceMessage:"引用消息",unpin:"取消置顶",pin:"置顶",generateTitle:"生成 AI 标题",runProjectDream:"运行 Project Dream",runProjectDreamRunning:"正在运行 Project Dream...",runProjectDreamSuccess:"Project Dream 已更新",runProjectDreamNoChange:"无需更新 Project Dream",runProjectDreamFailed:"运行 Project Dream 失败"},prompt:{selectorTitle:"选择系统提示词",createButton:"创建新会话",helperText:"为 AI 选择一个基础系统提示词。您可以在系统设置中添加或编辑提示词。",emptyDescription:"未找到系统提示词。在系统设置中添加一个。",newSessionSelectorTitle:"为新会话选择系统提示词",defaultDescription:"默认系统提示词。",loadPresetsFailed:"加载预设失败",loadCurrentInfoFailed:"加载当前信息失败",systemCard:{title:"系统提示词",viewEnhanced:"查看增强版",viewBase:"查看基础版",copy:"复制",snapshotTitle:"提示快照",sections:{base:"基础提示",enhancement:"增强层",workspace:"工作区",instruction:"指令层",env:"环境变量",skills:"技能",toolGuide:"工具指引",dream:"Dream Notebook",sessionMemory:"会话记忆",externalMemory:"记忆层",taskList:"任务列表",effective:"最终提示词"}}},fileReference:{title:"@ 文件引用",setWorkspace:"设置工作区",noMatches:"未找到匹配的文件",emptyDirectory:"目录为空"},commandSelector:{loading:"正在加载命令...",emptyWithSearch:"没有匹配“{{search}}”的命令",empty:"暂无可用命令。",navigationHint:"导航:上下键 或 Ctrl+P/N | 选择:Enter | 补全:Space/Tab | 取消:Esc",types:{workflow:"工作流",skill:"技能",mcp:"MCP"}},model:{selectModel:"选择模型",noModelSelected:"未选择模型",selectModelHint:"请选择一个模型后再开始对话。",providerNotConfigured:"提供商未配置",configureProviderHint:"请先在设置中配置提供商,然后再选择模型。",configureProvider:"配置提供商",openSettings:"打开设置",noModelsAvailable:"暂无可用模型",selectModelBeforeSend:"发送前请先选择模型。",selectModelBeforeRetry:"重试前请先选择模型。"},streaming:{assistant:"Bodhi",requestCancelled:"请求已取消",sendFailed:"发送消息失败",retryFailed:"重试请求失败",modelConfigNotLoaded:"模型配置尚未加载",agentUnavailable:"智能体不可用",noActiveChatTitle:"没有活动会话",noActiveChatSendContent:"发送前请先创建或选择一个会话。",noActiveChatRetryContent:"重试前请先创建或选择一个会话。",noChatIdTitle:"缺少会话 ID",noChatIdSendContent:"当前会话缺少 ID,请新建会话后再试。",noChatIdRetryContent:"当前会话缺少 ID,请新建会话后重试。"},selectionToolbar:{selectMessages:"选择消息",selectedCount:"已选择 {{selected}} 条(共 {{total}} 条)",selectAll:"全选",clear:"清空",exportMarkdown:"导出 Markdown",exportPdf:"导出 PDF",done:"完成"},compression:{tag:"已压缩上下文",timelineDetail:"已归档 {{count}} 条消息",timelineAria:"{{time}},{{detail}}",tooltip:"最近一次压缩:{{time}},已归档 {{count}} 条消息",archivedShort:"已归档 {{count}} 条"},subSessions:{title:"子会话",expand:"展开",collapse:"收起",continue:"在此继续",open:"打开",retry:"重试",hiddenHint:"已隐藏 {{count}} 个子会话"},chatItem:{edit:"编辑",childTag:"子会话"},systemPromptSelector:{defaultTag:"默认",hide:"隐藏",preview:"预览",copy:"复制",lines:"{{count}} 行",words:"{{count}} 词",chars:"{{count}} 字",noContent:"无内容"},title:{updated:"会话标题已更新",generateFailed:"生成会话标题失败"},respond:{customAnswerPlaceholder:"输入你的自定义回答..."},emptyLauncher:{title:"从任务开始",subtitle:"在当前分栏中创建一个聚焦会话,并先预填第一条消息,再由你决定是否发送。",hint:"不会自动发送,你可以先编辑提示词。",actions:{blank:{title:"空白会话",description:"使用默认助手从零开始,并保留空白输入框。",sessionTitle:"新建会话",prefill:""},codeReview:{title:"代码评审",description:"打开一个面向评审的会话,并预填可编辑的评审说明。",sessionTitle:"代码评审",prefill:"请审查这个工作区或仓库中的相关代码变更。先概述范围,再列出风险点、关键 diff,以及最值得优先修复的问题。"},tokenUsage:{title:"Token 使用调查",description:"诊断上下文膨胀、截断风险和 token 预算压力。",sessionTitle:"Token 使用调查",prefill:"请帮我分析这个会话或工作流的 token 使用、上下文增长和截断风险,归纳主要原因,并给出下一步最具体的优化建议。"}},errors:{createFailed:"创建会话失败"}},multiPane:{splitHorizontal:"水平拆分",splitVertical:"垂直拆分",closePane:"关闭分栏",selectSessionHint:"请选择一个会话查看消息",hoverToSplitHint:"将鼠标悬停在分栏上可进行拆分对比",selectMessagesToExport:"请选择要导出的消息"},messageCard:{authRequired:"需要身份验证",goToSettings:"前往设置",assistantThinking:"助手正在思考...",assistantCompactingContext:"助手正在压缩上下文...",assistantCompactingContextDegraded:"助手正在压缩上下文(降级模式)...",assistantCompactingContextFailed:"助手压缩上下文失败,继续处理中...",assistantUpdatingMemory:"助手正在更新记忆...",assistantRunningTool:"助手正在运行 {{tool}}...",reasoning:"推理",selected:"已选中",selectedTool:"已选工具"},messageActions:{copy:"复制",exportMarkdown:"导出 Markdown",exportPdf:"导出 PDF",restoreChat:"仅恢复会话",restoreFilesAndChat:"恢复文件和会话",deleteMessage:"删除消息",deleteFailed:"删除消息失败",deleteNotFound:"后端中找不到该消息,请刷新后重试",deleteConflict:"会话正在运行,请先停止后再删除",deleteBatchFailed:"共 {{total}} 条中有 {{failed}} 条删除失败",savedFile:"已保存到 {{filename}}",nothingToExport:"没有可导出的内容",exportFailed:"导出失败",cannotRestore:"无法恢复这条消息",restorePartial:"会话已恢复,但有 {{count}} 个文件未能恢复。",restoreFilesSuccess:"文件和会话已恢复(移除 {{count}} 条消息)。",restoreSuccess:"会话已恢复(移除 {{count}} 条消息)。",restoreFailed:"恢复会话失败",pdfUnavailable:"当前环境不支持导出 PDF",exportingPdf:"正在导出 PDF..."},session:{defaultTitle:"新建会话"}},settings:{page:{back:"返回",title:"系统设置",tabs:{config:"配置",prompts:"提示词",mermaid:"Mermaid",skills:"技能",workflows:"工作流",mcp:"MCP",modelLimits:"模型限制",metrics:"指标",schedules:"调度",sessions:"会话",app:"应用",provider:"提供商",hooks:"Hooks",masking:"脱敏",envVars:"环境变量"},groups:{ai:"AI",toolsAndExtensions:"工具与扩展",securityAndPrivacy:"安全",monitoring:"监控",system:"系统"}},notifications:{deleteAllSuccess:"已删除所有会话(置顶除外)",deleteEmptySuccess:"已删除空会话(置顶除外)",localStorageCleared:"本地存储已清空",resetSuccessReloading:"应用重置成功,正在重新加载...",resetFailed:"重置应用失败",autoTitleEnabled:"已启用自动标题生成",autoTitleDisabled:"已禁用自动标题生成",autoTitleUpdateFailed:"更新自动标题设置失败",promptEnhancementSaved:"系统提示增强已保存"},appTab:{autoGenerateTitle:"自动生成会话标题",autoGenerateTitleDesc:"开启后,应用会在助手首条回复后自动生成描述性标题。",switchOn:"开",switchOff:"关",darkMode:"深色模式",darkModeDark:"深色",darkModeLight:"浅色",language:"语言",languageEnglish:"English",languageChinese:"简体中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"हिन्दी",deleteAllTitle:"删除所有会话",deleteAllDescription:"确认删除?将删除所有会话(置顶除外)。",deleteAllButton:"删除所有会话",deleteEmptyTitle:"删除空会话",deleteEmptyDescription:"确认删除?将删除没有消息内容的会话(置顶除外)。",deleteEmptyButton:"删除空会话",clearLocalStorageTitle:"清空本地存储",clearLocalStorageDescription:"确认清空?将删除所有本地存储数据并重置应用。",clearLocalStorageButton:"清空本地存储",confirmDeleteAll:"确认,全部删除",confirmDeleteEmpty:"确认,删除空会话",confirmClear:"确认,清空",cancel:"取消",dangerZone:"危险操作",dangerDescription:"以下操作不可撤销,所有数据将被永久删除。",resetApplicationTitle:"重置应用",resetApplicationIntro:"确认执行以下操作:",resetStepDeleteAllSessions:"删除所有会话(包括置顶)",resetStepClearStorage:"清空所有本地存储数据",resetStepResetConfig:"将 config.json 重置为默认值",resetStepSetupFlow:"下次启动时触发初始化流程",resetStepReload:"重新加载应用",resetConfirm:"确认,重置全部",resetButton:"重置应用(清空全部数据)"},configTab:{tabs:{general:"常规",tools:"工具"},loadConfigFailed:"加载配置失败",invalidConfig:"配置无效",saveConfigSuccess:"配置保存成功",saveConfigFailed:"保存配置失败",toolsLoadFailed:"加载可用工具失败",toolsReloadSuccess:"工具列表已刷新",toolsSaveSuccess:"工具设置保存成功",toolsSaveFailed:"保存工具设置失败",backendSaved:"后端地址已保存",backendResetDefault:"后端地址已重置为默认值",providerMovedTitle:"Provider 配置已迁移",providerMovedDescription:"GitHub Copilot 和其他 Provider 配置已迁移到 Provider Settings 标签页,请前往那里进行配置。",backendApiBaseUrlTitle:"后端 API 基础地址",backendApiPlaceholder:"http://127.0.0.1:9562/v1",backendApiHint:"必须包含 /v1 路径",accessPasswordTitle:"访问密码",accessPassword:{helperNotEnabled:"未设置访问密码。设置后,远程访问需要先输入密码,本地 loopback 访问可直接绕过。",helperLocalBypass:"当前是本地访问,可直接修改访问密码,无需输入当前密码。",helperRemote:"当前是远程访问。修改访问密码前,必须先输入当前密码。",loadStatusFailed:"加载访问状态失败",updated:"访问密码已更新",enabled:"访问密码已设置",updateFailed:"更新访问密码失败",statusEnabled:"访问密码已启用",statusDisabled:"访问密码未启用",currentPasswordLabel:"当前密码",newPasswordLabel:"新密码",setPasswordLabel:"设置密码",confirmPasswordLabel:"确认密码",updateAction:"更新访问密码",enableAction:"启用访问密码",validation:{currentPasswordRequired:"请输入当前密码",newPasswordRequired:"请输入新密码",confirmPasswordRequired:"请再次输入新密码",minLength:"密码长度至少 4 位",passwordMismatch:"两次输入的密码不一致"}},resetToDefault:"恢复默认",save:"保存",language:"语言",languageEnglish:"English",languageChinese:"简体中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"हिन्दी",toolsTitle:"工具可用性",toolsDescription:"控制每个工具是否可以发送给 AI 模型。关闭后,该工具不会出现在模型可用工具列表中。",memoryTitle:"Memory 与 Auto Dream",memoryDescription:"管理 Bamboo 的记忆层:会话记忆用于当前工作连续性,长期记忆用于沉淀 durable knowledge,而 Auto Dream 负责在后台更新 Dream Notebook 并提取长期记忆候选项。",autoDreamEnabled:"启用 Auto Dream",autoDreamEnabledHint:"在后台自动维护 Dream Notebook,并提取长期记忆候选项。",backgroundModel:"后台记忆模型",backgroundModelPlaceholder:"留空则使用当前 Provider 的 fast model",backgroundModelHint:"可选的专用 memory summarization / reflection 模型。若留空,Bamboo 会回退到当前 Provider 的 fast model。",toolsEmpty:"当前没有可用工具。",reloadTools:"刷新工具列表",loadBambooConfigFailed:"加载 Bamboo 配置失败",bambooConfigSaved:"Bamboo 配置已保存",saveBambooConfigFailed:"保存 Bamboo 配置失败"},networkCard:{title:"网络设置",httpProxy:"HTTP 代理",httpsProxy:"HTTPS 代理",proxyPlaceholder:"http://proxy.example.com:8080",proxyAuthTitle:"代理认证",proxyConfiguredForUser:"已为用户 {{username}} 配置认证",clearCredentials:"清除凭据",username:"用户名",password:"密码",apply:"应用",credentialsStorageNote:"代理凭据会加密存储在 ~/.bamboo/config.json",reload:"重新加载",save:"保存"},modelMappingCard:{loadProviderFailed:"加载 Provider 配置失败",loadMappingsFailed:"加载现有映射失败",loadModelsFailed:"加载模型失败",loadModelsHint:"加载模型失败,请检查 Provider 配置。",mappingSaved:"模型映射已保存",mappingSaveFailed:"保存模型映射失败",enterModelName:"请输入模型名称",customMappingSaved:"自定义模型映射已保存",customMappingSaveFailed:"保存自定义模型映射失败",collapseTitle:"Anthropic 模型映射",description:"配置当 Claude CLI 请求特定模型时,应该使用的 {{provider}} 模型。",loadModelsErrorTitle:"加载模型失败",retry:"重试",loadingModels:"模型加载中...",modelTypeOpus:"Opus",modelTypeOpusDescription:'匹配包含 "opus" 的模型',modelTypeSonnet:"Sonnet",modelTypeSonnetDescription:'匹配包含 "sonnet" 的模型',modelTypeHaiku:"Haiku",modelTypeHaikuDescription:'匹配包含 "haiku" 的模型',selectModelPlaceholder:"选择 {{label}} 模型",customModelOption:"自定义模型...",mappedModelNotFound:'映射模型 "{{model}}" 不在当前 Provider 的可用模型列表中',refreshModels:"刷新模型",currentProvider:"当前 Provider",loadingProvider:"加载中...",availableModels:"可用模型数量",cached:"(缓存)",storedIn:"存储位置",customModalTitle:"输入自定义模型名称",customModalDescription:"为 {{modelType}} 输入自定义模型名称",customModalPlaceholder:"例如:gpt-4-turbo-preview",customModalNote:"注意:请确认该模型名称对当前 Provider 有效。",save:"保存",cancel:"取消"},modelTab:{selectModelTitle:"选择模型",loadingModels:"正在加载模型...",selectModelPlaceholder:"请选择模型",backendApiBaseUrlTitle:"后端 API 基础地址",resetToDefault:"恢复默认",save:"保存",backendApiHint:"必须是包含 /v1 的完整基础地址(例如 {{example}})。"},mermaidTab:{title:"Mermaid 图表设置",description:"自定义 Mermaid 图在聊天中的渲染方式",themeCardTitle:"主题",themeLabel:"Mermaid 主题",themeTooltip:"选择内置 Mermaid 主题。Default 和 Neutral 会根据应用主题自动切换明暗。",themeOptions:{default:"Default(自动明/暗)",neutral:"Neutral(自动明/暗)",dark:"Dark",forest:"Forest(绿色调)",base:"Base(极简)"},themeDescriptionsTitle:"主题说明:",themeDescriptions:{default:"Default:经典 Mermaid 风格,自动适配明/暗主题",neutral:"Neutral:灰度风格,自动适配明/暗主题",dark:"Dark:始终使用暗色主题",forest:"Forest:绿色配色,适合技术图表",base:"Base:最小化样式,适合自定义主题"},globalCardTitle:"全局设置",fontSizeLabel:"字体大小",fontSizeTooltip:"图表文本的基础字号(像素)",defaultZoomLabel:"默认缩放",defaultZoomTooltip:"图表初始缩放比例(1.0 = 100%)",responsiveWidthLabel:"自适应宽度",responsiveWidthTooltip:"开启后图表会自适应容器宽度;关闭后使用固定宽度。",switchAuto:"自动",switchFixed:"固定",flowchartCardTitle:"流程图设置",flowchartNodeSpacingLabel:"节点间距",flowchartNodeSpacingTooltip:"节点之间的水平间距",flowchartRankSpacingLabel:"层级间距",flowchartRankSpacingTooltip:"层与层之间的垂直间距",flowchartCurveTypeLabel:"连线类型",flowchartCurveTypeTooltip:"连接线使用的曲线类型",flowchartCurveOptions:{basis:"平滑(Basis)",linear:"线性",cardinal:"Cardinal"},sequenceCardTitle:"时序图设置",sequenceActorMarginLabel:"参与者间距",sequenceActorMarginTooltip:"参与者之间的间距",sequenceMessageMarginLabel:"消息间距",sequenceMessageMarginTooltip:"消息之间的间距",sequenceActorWidthLabel:"参与者宽度",sequenceActorWidthTooltip:"每个参与者框的宽度",sequenceActorHeightLabel:"参与者高度",sequenceActorHeightTooltip:"每个参与者框的高度",ganttCardTitle:"甘特图设置",ganttBarHeightLabel:"任务条高度",ganttBarHeightTooltip:"每个任务条的高度",ganttTopPaddingLabel:"顶部留白",ganttTopPaddingTooltip:"图表顶部的留白间距",resetToDefaults:"恢复默认",previewTitle:"预览",previewDescription:"修改会立即生效。可新建或查看图表以查看效果。"},modelLimits:{title:"Token 预算模型限制",descriptionPrefix:"配置按模型划分的 token 上限。这些设置会全局保存到 Bamboo 的",descriptionSuffix:"并由后端解析器使用。",defaultsTitle:"模型默认值",defaultsDescription:"已预置 GPT-5 / GPT-4 / Gemini / Kimi / GLM 的上下文与输出默认值,可按需继续调整。",migratedFromLocalStorage:"已将本地存储中的模型限制迁移到全局配置。",loadFailed:"加载模型限制设置失败",saveSuccess:"模型限制已保存到全局配置",saveFailed:"保存模型限制设置失败",resetSuccess:"模型限制已恢复为产品默认值",resetFailed:"重置模型限制设置失败",defaults:{gpt54:"高阶推理能力,适合复杂任务。",gpt53Codex:"面向代码重构与工程场景优化。",gpt52Pro:"复杂任务下逻辑稳定性较强。",gpt5Mini:"速度快、成本低,适合通用任务。",gpt41:"经典大上下文模型,支持 1M 窗口。",gpt4o:"低延迟,适合日常对话。",gemini25Pro:"多模态分析能力较强。",kimiK25:"适合长文本中文内容处理。",kimiCoding:"针对编码场景优化。",glm5:"适合一次性大文档生成。"},columns:{vendor:"厂商/系列",model:"模型",contextWindow:"上下文窗口",maxOutput:"最大输出",notes:"备注",actions:"操作"},placeholders:{vendor:"OpenAI / Google / Moonshot",model:"例如 gpt-5.4-thinking",optional:"可选"},actions:{remove:"删除",addRow:"新增行",save:"保存",resetToDefaults:"恢复默认",reload:"重新加载"},validation:{atLeastOneRow:"至少保留一条模型限制记录。",modelPatternEmpty:"模型模式不能为空。",duplicateModelPattern:"模型模式重复:{{pattern}}",contextWindowMin:"{{pattern}} 的上下文窗口最小为 1000。",maxOutputMin:"{{pattern}} 的最大输出最小为 1。",maxOutputExceedsContext:"{{pattern}} 的最大输出必须小于或等于上下文窗口。",safetyMarginNegative:"{{pattern}} 的安全边距不能为负数。",safetyMarginTooLarge:"{{pattern}} 的安全边距必须小于上下文窗口。"}},common:{loading:"加载中...",successful:"成功",failed:"失败"},systemPromptManager:{title:"系统提示词管理",addButton:"添加提示词",defaultPromptLocked:"默认系统提示词已锁定,无法编辑。",updateSuccess:"提示词更新成功",addSuccess:"提示词添加成功",saveError:"保存提示词失败,请重试。",deleteSuccess:"提示词删除成功",deleteError:"删除提示词失败,请重试。",deleteConfirm:"确认删除此提示词吗?",defaultTag:"默认(锁定)",editTitle:"编辑系统提示词",addTitle:"新增系统提示词",nameLabel:"提示词名称",nameRequired:"请输入提示词名称!",descriptionLabel:"提示词描述",descriptionRequired:"请输入提示词描述!",contentLabel:"提示词内容",contentRequired:"请输入提示词内容!"},envVars:{title:"环境变量",description:"这些变量会注入到 Bash 工具进程。密钥变量会在存储时加密。",fetchError:"加载环境变量失败",created:"变量已创建",updated:"变量已更新",saveError:"保存变量失败",deleted:"变量已删除",deleteError:"删除变量失败",addButton:"添加变量",noVars:"尚未配置环境变量",addTitle:"添加环境变量",editTitle:"编辑变量",save:"保存",cancel:"取消",name:"名称",nameRequired:"变量名不能为空",nameInvalid:"必须以字母或下划线开头,后续仅可包含字母、数字或下划线",value:"值",valueRequired:"新建变量时必须填写值",valueEditHint:"留空则保留现有值",valuePlaceholder:"输入值",valuePlaceholderEdit:"输入新值或留空",secret:"密钥",secretHint:"密钥变量会加密存储,并在界面中脱敏显示",descriptionField:"说明",descriptionPlaceholder:"可选说明",type:"类型",plain:"普通",descriptionCol:"说明",actions:"操作",deleteConfirm:"确认删除该变量?",yes:"是",no:"否",notSet:"(未设置)",empty:"(空)"},promptsTab:{title:"系统提示增强",mermaidEnhancement:"Mermaid 增强",taskListRules:"共享任务规则",copilotConclusionWithOptionsBeforeFinish:"Copilot 结束前 conclusion_with_options",switchOn:"开",switchOff:"关",enhancementPlaceholder:"为每次系统提示追加全局增强文本。",saveEnhancement:"保存增强",description:"该文本会先追加,然后再拼接已启用的系统增强,最后再发送请求。"},hooksTab:{title:"图像 Hooks",enableImagePreflight:"启用图像预检 Hook",modeLabel:"模式",description:"Placeholder 模式会把图像改写为文本摘要(可能影响依赖真实图像数据的工具)。OCR 目前仅支持 Windows。",loadFailed:"加载 Hooks 设置失败",updateFailed:"更新 Hooks 失败",modeUpdateFailed:"更新 Hook 模式失败",enabled:"已启用图像 Hooks",disabled:"已禁用图像 Hooks",modeUpdated:"图像 Hook 模式已设置为:{{mode}}",mode:{placeholder:"占位符",error:"报错",ocr:"OCR(Windows)",vision:"视觉描述(LLM)"}},keywordMaskingTab:{title:"关键词脱敏",addKeyword:"添加关键词",description:"配置发送到 Copilot API 前需要脱敏的关键词。可使用精确匹配或正则匹配,匹配内容会被替换为 [MASKED]。",empty:"暂无关键词脱敏规则",cancel:"取消",patternPlaceholder:"输入要匹配的模式",examples:"示例",exactMatch:"精确匹配",regexPattern:"正则模式",enabled:"启用",disabled:"禁用",sampleText:"示例文本",sampleTextPlaceholder:"输入示例文本",maskedPreview:"脱敏预览",emptyPattern:"(空)",loadFailed:"加载关键词脱敏配置失败",saveFailed:"保存配置失败",saveSuccess:"关键词脱敏配置已保存",validationFailedPrefix:"校验失败",patternRequired:"匹配模式不能为空",invalidRegexPattern:"无效的正则表达式模式",example:{literalToken:"脱敏字面量 token",githubTokens:"脱敏 GitHub token",awsKeys:"脱敏 AWS Key",emails:"脱敏邮箱地址"}},schedulesTab:{loadFailed:"加载调度失败",loadSessionsFailed:"加载调度会话失败",createFailed:"创建调度失败",updateFailed:"更新调度失败",deleteFailed:"删除调度失败",runNowFailed:"立即执行失败",taskMessageRequired:"启用自动执行时必须填写任务消息",created:"调度已创建",updated:"调度已更新",deleted:"调度已删除",enqueuedRun:"已加入执行队列",loading:"加载中...",yes:"是",no:"否",optional:"(可选)",defaultName:"我的调度",createTitle:"创建调度",listTitle:"调度列表",scheduleSessionsTitle:"调度会话",noSessionsYet:"暂无会话。",editTitle:"编辑调度",columns:{name:"名称",autoExecute:"自动执行",model:"模型",enabled:"启用",intervalSeconds:"间隔(秒)",nextRun:"下次运行",lastRun:"最近运行",actions:"操作"},form:{name:"名称",intervalSeconds:"间隔秒数",enabled:"启用",taskMessage:"任务消息",taskMessagePlaceholder:"(可选)要执行的任务",model:"模型",modelPlaceholder:"(可选)例如 gpt-4o-mini",modelRequiredIfAuto:"启用自动执行时必填",autoExecute:"自动执行",systemPrompt:"系统提示词",workspacePath:"工作区路径",enhancePrompt:"增强提示"},validation:{nameRequired:"名称不能为空",intervalRequired:"间隔不能为空"},actions:{create:"创建",refresh:"刷新",edit:"编辑",runNow:"立即执行",sessions:"会话",delete:"删除",open:"打开",save:"保存"}},sessionsTab:{currentSessionTitle:"当前会话",id:"ID",kind:"类型",clearMessages:"清空消息",clearMessagesTitle:"清空会话消息",clearMessagesContent:"将清空当前会话的消息/附件,但保留会话条目。",clear:"清空",cancel:"取消",sessionCleared:"会话已清空",noActiveSession:"当前没有活跃会话。",bulkCleanupTitle:"批量清理",keepPinned:"保留置顶",deleteAll:"删除全部",deleteAllTitle:"删除所有会话",deleteAllKeepPinned:"删除所有会话(保留置顶)。",deleteAllIncludePinned:"删除所有会话(包含置顶)。",deleteEmpty:"删除空会话",deleteEmptyTitle:"删除空会话",deleteEmptyKeepPinned:"删除空会话(保留置顶)。",deleteEmptyIncludePinned:"删除空会话(包含置顶)。",deleteChildren:"删除子会话",deleteChildrenTitle:"删除子会话",deleteChildrenKeepPinned:"删除所有子会话(保留置顶)。",deleteChildrenIncludePinned:"删除所有子会话(包含置顶)。",delete:"删除",cleanupComplete:"清理完成",devResetTitle:"开发重置",devResetDescription:"会话存储绿地重置(删除 sessions/ 并重置 sessions.json)。",devResetAction:"开发重置会话",devResetConfirmTitle:"重置会话存储(开发)",devResetConfirmContent:"将删除所有会话(包含置顶/子会话)并重置会话索引。刷新后会创建一个新的空会话。",reset:"重置",devResetDone:"会话存储已重置"},workflowsTab:{title:"工作流",description:"工作流会以 Markdown 文件存储在 `~/.bamboo/workflows`。可在聊天中使用 `/name` 插入工作流。",loadFailed:"加载工作流失败",loadContentFailed:"加载工作流内容失败",invalidName:"工作流名称不合法",nameAlreadyExists:"同名工作流已存在",saved:"工作流已保存",saveFailed:"保存工作流失败",deleted:"工作流已删除",deleteFailed:"删除工作流失败",refresh:"刷新",newWorkflow:"新建工作流",save:"保存",empty:"暂无工作流",namePlaceholder:"工作流名称",contentPlaceholder:`# 工作流标题
|
|
5
5
|
|
|
6
|
-
在这里描述工作流步骤。`},providerTab:{title:"LLM 提供商配置",description:"配置你偏好的 LLM 提供商。点击“保存并应用配置”后会保存并生效。",currentProvider:"当前提供商",activeProvider:"当前激活的 LLM 提供商",selectProviderRequired:"请选择提供商",saveAndApply:"保存并应用配置",loadConfigFailed:"加载提供商配置失败",checkStatusFailed:"检查状态失败",startCopilotAuthFailed:"启动 Copilot 认证失败",copilotAuthSuccess:"Copilot 认证成功!",providerReloaded:"提供商已使用新认证重新加载。",completeAuthFailed:"完成认证失败,请重试。",userCodeCopied:"用户代码已复制到剪贴板!",copyCodeFailedPrefix:"复制失败,请手动复制:",logoutSuccess:"已退出 Copilot",logoutFailed:"退出 Copilot 失败",unknownError:"未知错误",invalidConfig:"配置无效",invalidConfigPrefix:"配置无效",fetchModelsCopilotFailed:"获取模型失败,请先完成 Copilot 认证后重试。",fetchModelsFailed:"获取模型失败,请检查 API Key 与 Base URL。",noModelsReturned:"未返回模型,请先完成 Copilot 认证后再获取。",foundModels:"已找到 {{count}} 个可用模型",fetchModelsErrorPrefix:"获取模型失败",saveConfigSuccess:"配置保存成功",saveConfigFailed:"保存配置失败",saveConfigErrorPrefix:"保存配置失败",applyConfigSuccess:"配置应用成功,新对话将使用最新配置。",applyConfigFailed:"应用配置失败",applyConfigErrorPrefix:"应用配置失败",modelUpdated:"模型更新成功",updateModelFailed:"更新模型失败",updateModelErrorPrefix:"更新模型失败",fetchingModels:"正在获取模型...",refreshModelsFrom:"从 {{source}} 刷新可用模型",fetchModelsFrom:"从 {{source}} 获取可用模型",saveModelChangeFailed:"保存模型变更失败",fetchModelsFailedShort:"获取模型失败",retry:"重试",openaiConfigTitle:"OpenAI 配置",openaiConfigDescription:"输入 OpenAI API Key 以使用 GPT 模型。你也可以指定自定义 Base URL。",openaiApiKey:"OpenAI API Key",openaiApiKeyRequired:"请输入 OpenAI API Key",baseUrlOptional:"Base URL(可选)",openaiBaseUrlHelp:"留空将使用默认 OpenAI 接口地址;如有需要请包含完整路径(例如 /v1)。",defaultModel:"默认模型",fastModel:"快速模型(可选)",fastModelHelp:"用于标题生成、Mermaid 修复、摘要等轻量任务的低成本/快速模型。未设置时使用默认模型。",visionModel:"视觉模型(可选)",visionModelHelp:"用于图片理解的视觉模型。当 hooks.image_fallback.mode 设为 'vision' 时,此模型会将图片描述为文本,让纯文本模型也能理解图片内容。未设置时使用默认模型。",sameAsDefault:"与默认模型相同",selectModelRequired:"请选择模型",selectModel:"选择模型",responsesOnlyModelsOptional:"仅 Responses 模型(可选)",responsesOnlyHelp1:"部分模型仅支持 OpenAI Responses API(不支持 chat/completions)。可在此添加模型 ID 强制 Bamboo 使用",responsesOnlyHelp2:"支持精确匹配(如 gpt-5.3-codex)和后缀 * 的前缀匹配(如 gpt-5*)。",anthropicConfigTitle:"Anthropic 配置",anthropicConfigDescription:"输入 Anthropic API Key 以使用 Claude 模型。",anthropicApiKey:"Anthropic API Key",anthropicApiKeyRequired:"请输入 Anthropic API Key",anthropicBaseUrlHelp:"留空将使用默认 Anthropic 接口地址;如有需要请包含完整路径(例如 /v1)。",maxTokensOptional:"最大 Tokens(可选)",maxTokensHelp:"生成时允许的最大 token 数",geminiConfigTitle:"Google Gemini 配置",geminiConfigDescription:"输入 Google AI API Key 以使用 Gemini 模型。",geminiApiKey:"Gemini API Key",geminiApiKeyRequired:"请输入 Gemini API Key",geminiBaseUrlHelp:"留空将使用默认 Google AI 接口地址;必要时可填写完整路径。",copilotConfigTitle:"GitHub Copilot 配置",copilotConfigDescription:"GitHub Copilot 使用 OAuth 认证,无需 API Key。请确保账号有有效订阅。",authStatusTitle:"认证状态",authenticated:"已认证",notAuthenticated:"未认证",logoutCopilot:"退出 Copilot",authenticateCopilot:"认证 Copilot",refreshStatus:"刷新状态",headlessAuth:"无头认证",headlessAuthHelp:"在控制台输出登录链接,而不是自动打开浏览器",noModelsLoaded:"尚未加载模型,点击“从 backend 获取可用模型”。",authFirstThenFetch:"请先完成 Copilot 认证,再获取模型。",copilotUsageTitle:"使用 GitHub Copilot:",copilotUsageStep1:"确保你已开通有效的 GitHub Copilot 订阅",copilotUsageStep2:"点击“认证 Copilot”启动设备码流程",copilotUsageStep3:"按终端提示完成认证",copilotAuthModalTitle:"Copilot 认证",cancel:"取消",completedAuthorization:"我已完成授权",browserOpened:"浏览器已自动打开",authStep1:"浏览器中应已打开 GitHub 页面",authStep2:"复制下方代码并粘贴到 GitHub 页面",authStep3:"在 GitHub 点击“Continue”完成授权",visitUrl:"1. 打开该 URL:",enterCode:"2. 输入此代码:",copied:"已复制!",copyCode:"复制代码",afterContinueHint:"在 GitHub 点击 Continue 后,请点击下方“我已完成授权”。",providerNames:{openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},mcpTab:{status:{connecting:"连接中",ready:"就绪",degraded:"降级",stopped:"已停止",error:"错误"},statusGuideTitle:"状态说明:",statusHelp:{connecting:"服务器正在启动或重连中",ready:"服务器已连接,工具可正常使用",degraded:"服务器部分可用,部分工具可能失败",stopped:"服务器未运行",error:"服务器启动失败或运行时发生错误"},statusLastError:"最近错误:{{error}}",serverDeleted:"MCP 服务器已删除",deleteServerFailed:"删除 MCP 服务器失败",connectedTo:"已连接到 {{name}}",connectServerFailed:"连接 MCP 服务器失败",disconnected:"已断开 {{name}}",disconnectServerFailed:"断开 MCP 服务器失败",toolsRefreshedFor:"{{name}} 的工具已刷新",refreshToolsFailed:"刷新工具失败",statusRefreshed:"MCP 状态已刷新",refreshStatusFailed:"刷新 MCP 状态失败",noServerForEditing:"没有可编辑的服务器",savedServer:"已保存 {{name}}",addedServer:"已添加 {{name}}",saveServerFailed:"保存 MCP 服务器失败",copiedConfig:"MCP 配置已复制到剪贴板",clipboardUnavailable:"剪贴板不可用,已在弹窗中显示导出内容。",invalidJsonPrefix:"JSON 无效",unknownError:"未知错误",jsonMustBeObject:"JSON 必须是对象",missingMcpServers:'缺少 mcpServers。请粘贴完整 Claude Desktop 风格配置:{ "mcpServers": { ... } }',importSummary:"已导入 {{count}} 个服务器(新增 {{added}},更新 {{updated}},删除 {{removed}})。启动失败 {{failed}} 个。",importStartFailures:"部分服务器未成功启动,配置已保存,请在服务器列表查看错误。",importFailed:"导入 MCP 服务器失败",overviewTitle:"MCP 概览",overviewDescription:"配置外部 MCP 服务器并查看已注册的工具别名。",totalServers:"服务器总数:{{count}}",totalTools:"工具总数:{{count}}",serversTitle:"MCP 服务器",addServer:"添加服务器",refreshAll:"全部刷新",export:"导出",import:"导入",importModalTitle:"导入 MCP 服务器",importHint:"粘贴 Claude Desktop 风格配置片段,例如:",importModeMerge:"合并(Upsert)",importModeReplace:"替换(删除其余)",replaceWarning:"替换模式会删除不在导入 mcpServers 中的现有 MCP 服务器。"},mcpServerTable:{columns:{name:"名称",transportType:"传输类型",status:"状态",toolCount:"工具数",actions:"操作"},transportOptions:{sse:"SSE",stdio:"Stdio"},deleteTitle:"删除 MCP 服务器",deleteDescription:"确认删除服务器“{{name}}”?",empty:"尚未配置 MCP 服务器",actions:{edit:"编辑",delete:"删除",disconnect:"断开",connect:"连接",refreshTools:"刷新工具"}},mcpToolList:{title:"MCP 工具",selectServerHint:"请选择一个服务器以查看其 MCP 工具",empty:"该服务器没有可用工具",noDescription:"暂无描述",aliasMapping:"别名映射",parametersSchema:"参数 Schema"},mcpServerForm:{jsonMustBeObject:"JSON 必须是对象",detectedBulkConfig:"检测到 mcpServers(批量配置)。批量导入请使用 MCP 标签页中的“导入”按钮,或在这里粘贴单个服务器配置。",missingIdField:"缺少或无效的 id 字段",missingTransportField:"缺少或无效的 transport 字段",missingTransportInfo:"缺少传输信息。应包含 transport(Bodhi 格式)或 command/url(主流 MCP 格式)。",invalidJson:"JSON 无效:{{message}}",unknownError:"未知错误",editTitle:"编辑 MCP 服务器",addTitle:"添加 MCP 服务器",save:"保存",modeForm:"表单",modeJson:"JSON",jsonError:"JSON 错误",serverId:"服务器 ID",serverIdRequired:"服务器 ID 不能为空",serverIdPatternError:"仅支持字母、数字、下划线和连字符",displayName:"显示名称",enabled:"启用",enabledHelp:"禁用的服务器会保留在配置中,但不会自动启动。",transportType:"传输类型",transportTypeRequired:"传输类型不能为空",transportOptions:{stdio:"Stdio",sse:"SSE"},command:"命令",commandRequired:"命令不能为空",arguments:"参数",argumentsPlaceholder:"输入参数后按 Enter 添加",envVars:"环境变量",addEnv:"添加环境变量",keyRequired:"键不能为空",sseUrl:"SSE URL",sseUrlRequired:"SSE URL 不能为空",validUrlRequired:"请输入有效 URL",headers:"请求头",addHeader:"添加请求头",headerNameRequired:"请求头名称不能为空"},metricsCards:{totalSessions:"会话总数",chatTokens:"聊天 Tokens",totalToolCalls:"工具调用总数",avgSessionDuration:"平均会话时长"},forwardMetricsCards:{totalForwardRequests:"Forward 请求总数",successRate:"成功率",forwardTokens:"Forward Tokens",avgResponseTime:"平均响应时间"},unifiedMetricsCards:{totalRequests:"请求总数",totalTokens:"Tokens 总数",successRate:"成功率",avgResponseTime:"平均响应时间",chatSessions:"聊天会话",chatTokens:"聊天 Tokens",toolCalls:"工具调用",avgSessionDuration:"平均会话时长",forwardRequests:"Forward 请求",forwardTokens:"Forward Tokens",successful:"成功",failed:"失败"},metricsTable:{session:{columns:{session:"会话",model:"模型",status:"状态",started:"开始时间",duration:"耗时",tokens:"Tokens",toolCalls:"工具调用",messages:"消息数",action:"操作"},view:"查看"},forward:{columns:{id:"ID",endpoint:"端点",model:"模型",type:"类型",status:"状态",tokens:"Tokens",duration:"耗时",started:"开始时间",error:"错误"},typeStream:"流式",typeSync:"同步",totalRequests:"{{total}} 条请求",empty:"当前范围内暂无 forward 请求记录"}},metricsDashboard:{roundColumns:{round:"轮次",status:"状态",duration:"耗时",tokens:"Tokens",toolCalls:"工具调用"},compactStats:{combinedTokens:"合并 Tokens",chatTokens:"聊天 Tokens",forwardTokens:"Forward Tokens",avgTokensPerSession:"平均 Tokens / 会话",estimatedTimeSaved:"预估节省时长",estimatedEfficiencyLift:"预估效率提升",estimatedSpeedMultiplier:"预估速度倍率",estimatedSavedWorkdays:"预估节省工作日",avgRoundsPerSession:"平均轮次 / 会话",toolCallsPerSession:"工具调用 / 会话",activeSessionRate:"活跃会话占比",avgTokensPerForward:"平均 Tokens / Forward",forwardErrorRate:"Forward 错误率",streamingRatio:"流式占比",p95ForwardLatency:"P95 Forward 延迟",modelCoverage:"模型覆盖数",endpointCoverage:"端点覆盖数"},multiplierSuffix:"x",filtersTitle:"筛选",refresh:"刷新",startDate:"开始日期",endDate:"结束日期",model:"模型",daysOption:"{{value}} 天",granularity:{daily:"按天",weekly:"按周",monthly:"按月"},dashboardTitle:"仪表盘",tabs:{overview:"概览",analysis:"分析",records:"记录"},derivedMetricsTitle:"衍生指标(紧凑)",derivedMetricsSubtitle:"更多维度,同时保持页面紧凑",efficiencyHint:"效率估算采用保守假设:人工 {{manualTpm}} token/分钟 + {{manualToolMinutes}} 分钟/工具,对比辅助 {{assistedTpm}} token/分钟 + {{assistedToolMinutes}} 分钟/工具,再乘以 {{realization}}% 实现系数,并限制上限({{maxLift}}% / {{maxMultiplier}}x)。",toolUsageTitle:"工具使用频次",noToolUsage:"当前范围内没有工具调用记录。",calls:"调用次数",activityHeatmapTitle:"每日活跃热力图",noActivity:"当前范围内没有活跃数据。",sessionsCount:"{{count}} 个会话",tokensAmount:"{{value}} tokens",sessionsTabLabel:"会话({{count}})",chatSessionsLabel:"聊天会话({{count}})",sessionsHint:"点击会话可查看完整轮次详情",forwardTabLabel:"Forward 请求({{count}})",detailedMetricsTitle:"详细指标",sessionMetricsTitle:"会话指标",loadingSessionDetails:"正在加载会话详情...",sessionDetail:{sessionId:"会话 ID",model:"模型",status:"状态",duration:"耗时",messages:"消息数",totalTokens:"总 Tokens",toolCalls:"工具调用"},noDetail:"暂无详情。"},charts:{tokenUsageOverTime:"Token 使用趋势",unifiedTokenUsageOverTime:"Token 使用趋势(Chat + Forward)",noTokenUsage:"暂无 token 使用数据",tokenUsageDescription:"按日期/周期展示 Prompt、Completion 与总 Tokens。",unifiedTokenUsageDescription:"按时间展示 Chat 与 Forward 的合并 token 使用。",total:"总计",prompt:"Prompt",completion:"Completion",chat:"Chat",forward:"Forward",modelDistribution:"模型分布",noModelMetrics:"暂无模型指标数据",modelDistributionDescription:"按模型展示总 token 消耗占比。",endpointDistribution:"端点分布",noForwardMetrics:"当前范围内暂无 forward 指标数据。"}},components:{markdown:{codeCopiedSuccess:"代码已复制到剪贴板",copyFailed:"复制失败"},jsonSchema:{field:"字段",type:"类型",required:"必填",yes:"是",no:"否",default:"默认值",description:"描述",noProperties:"架构中无属性"},workflowResult:{userWorkflow:"用户工作流",waitingForResult:"等待工作流结果...",executionFailed:"工作流执行失败",retryWorkflow:"重试工作流",copyParameters:"复制参数",copyResult:"复制结果",expandResult:"展开结果",collapseResult:"收起结果"},toolResult:{waiting:"等待中",waitingForResult:"等待结果...",executionFailed:"工具执行失败",copyResult:"复制结果",checkpoint:"检查点",checkpointNone:"无",diffTruncated:"差异内容过长,已截断显示",structuredToolResultHint:"工具结果 · {{tool}}"},toolCall:{liveOutput:"实时输出",keyParameters:"关键参数",fullParameters:"完整参数",copyParameters:"复制参数"},plan:{executionPlan:"执行计划",goal:"目标",steps:"步骤",stepTitle:"步骤 {{number}}",reason:"原因",estimated:"预计",tools:"工具",prerequisites:"前置条件",potentialRisks:"潜在风险({{count}})",totalEstimatedTime:"总预计时长",feedbackPlaceholder:"告诉智能体你希望如何调整...",sendFeedback:"发送反馈",refinePlan:"优化计划",executePlan:"执行计划"},question:{agentQuestion:"智能体提问",context:"上下文",chooseOption:"请选择一个选项",recommended:"推荐",customAnswerHint:"没有合适选项?可输入自定义回答。",customAnswerPlaceholder:"输入你的自定义回答...",submitAnswer:"提交回答"},questionDialog:{selectOptionWarning:"提交前请先选择一个选项。",responseSubmitted:"回答已提交",responseSubmittedContinue:"回答已提交,AI 将继续处理",submitFailed:"提交回答失败",noModelConfigured:"未配置模型",customAnswerTip:"自定义回答",otherTypeBelow:"其他(在下方输入)",confirm:"确认"},skillManager:{title:"技能",refresh:"刷新",skillsRefreshed:"技能已刷新",lastUpdated:"上次更新:{{value}}",justNow:"刚刚",secondsAgo:"{{count}} 秒前",minutesAgo:"{{count}} 分钟前",searchPlaceholder:"搜索技能",readOnlyHint:"技能文件本身仍是只读的,但你可以控制它们是否参与 prompt 使用。",disabledHint:"这里会显示全部技能。被禁用的技能不会进入系统提示中的 skill context,且运行时会被禁止 load_skill。",disabledTag:"已禁用",switchEnabled:"开",switchDisabled:"关",skillStateSaved:"技能状态已保存",saveFailed:"保存技能状态失败",noSkillsFound:"未找到技能",noMatch:"没有匹配的技能",loadFailed:"加载技能失败",getFailed:"获取技能失败"},skillSelector:{placeholder:"选择技能",disabledSkillsHint:"有 {{count}} 个先前选中的技能现已被全局禁用,并已从选择中移除。"},imageGrid:{preview:"预览",ocr:"OCR"},todoList:{title:"任务列表",evaluating:"评估中",pin:"固定",unpin:"取消固定",llmEvaluation:"LLM 评估",tools:"个工具",dependsOn:"依赖:{{deps}}",dependencies:"项依赖",status:{pending:"待处理",inProgress:"进行中",completed:"已完成",blocked:"阻塞"}},tokenUsage:{title:"Token 使用",contextWindow:"上下文窗口",summary:"汇总",system:"系统",messages:"消息",tokens:"tokens",usedPercent:"已使用 {{value}}%"},approval:{workflow:"工作流",executionRequest:"执行请求",aiWantsExecute:"AI 想执行以下操作"},toolSession:{title:"工具会话",running:"运行中",done:"完成",error:"错误",completedOnly:"已完成 {{completed}} 项",completedWithErrors:"已完成 {{completed}} 项(含错误)",completedProgress:"已完成 {{completed}} / {{total}}",noPersistedMessage:"无持久化输出",deleteMessage:"删除工具会话"},mermaid:{loadingDiagram:"正在加载图表...",diagramError:"Mermaid 图表错误",errorTitlePrefix:"错误",checkConsoleHint:"请检查 Mermaid 语法,或打开控制台查看详情。",fixMermaid:"修复 Mermaid",renderingDiagram:"正在渲染图表...",exportSvg:"导出 SVG",exportFailed:"导出图表失败"}},validation:{workspaceRequired:"请输入工作区路径",invalidPath:"无效路径"},error:{saveWorkspaceFailed:"保存工作区路径失败",readFolderFailed:"无法读取文件夹",copyPromptFailed:"复制提示词内容失败"},success:{promptCopied:"已复制「{{name}}」提示词"}}}},D={common:{saveAnyway:"Enregistrer quand même",parentDirectory:"Répertoire des parents",currentPath:"Chemin actuel :",cancel:"Annuler",ok:"D'ACCORD",apply:"Appliquer",save:"Sauvegarder",delete:"Supprimer",yes:"Oui",no:"Non",home:"Maison",download:"Télécharger",directory:"Annuaire",file:"Déposer"},chat:{workspace:{modalTitle:"Définir le chemin de l'espace de travail",invalidTitle:"Chemin d'accès à l'espace de travail non valide",issuesDetected:"Problèmes potentiels détectés avec le chemin de l'espace de travail :",confirmSaveInvalid:"Voulez-vous toujours enregistrer ce chemin ?",errorEnterPath:"Veuillez saisir un chemin d'accès à l'espace de travail",errorSaveFailed:"Échec de l'enregistrement du chemin de l'espace de travail",placeholder:"par ex. /Utilisateurs/alice/Espace de travail/MonProjet",browseFolder:"Parcourir le dossier",descriptionTitle:"Description du chemin de l'espace de travail",descriptionP1:"Définissez un chemin d'accès à l'espace de travail afin que les références de fichiers et les outils de l'espace de travail puissent résoudre les fichiers de manière fiable.",descriptionP2:"Choisissez un dossier de projet existant. Vous pouvez toujours continuer avec un chemin non valide, mais les fonctionnalités associées risquent de ne pas fonctionner correctement.",checkTitle:"Vérification du chemin de l'espace de travail",checkDescription:"La validation du chemin de l'espace de travail a échoué.",label:"Espace de travail"},folderBrowser:{title:"Sélectionnez le dossier de l'espace de travail",selectCurrent:"Sélectionnez le dossier actuel",emptyFolder:"Ce dossier est vide",tip:'Astuce : cliquez sur un dossier pour y accéder, cliquez sur "Sélectionner le dossier actuel" pour confirmer'},input:{placeholder:"Envoyer un message...",placeholderWithReference:"Envoyer un message (inclut la référence)",placeholderWithWorkflows:"Envoyer un message... (tapez '/' pour les workflows)",toolCallsOnly:"Appels d'outils uniquement (outils autorisés : {{tools}})",autoPrefixMode:"Mode de préfixe automatique : {{prefix}} (tapez « / » pour sélectionner les outils)",toolSpecificMode:"Mode spécifique à l'outil (outils autorisés : {{tools}})",processingFiles:"Traitement des fichiers…",imageCountSingular:"Image {{count}}",imageCountPlural:"Images {{count}}",reasoning:{max:"Max."}},actions:{regenerate:"Régénérer la réponse",retryFailed:"Réessayer la demande ayant échoué",retryOptions:"Options de nouvelle tentative",cancelRequest:"Annuler la demande",sendMessage:"Envoyer un message",copyMessage:"Copier le message",referenceMessage:"Message de référence",generateTitle:"Générer un titre IA",unpin:"Détacher",pin:"Épingle"},fileReference:{title:"@ Référence du fichier",setWorkspace:"Définir l'espace de travail",noMatches:"Aucun fichier correspondant trouvé",emptyDirectory:"Le répertoire est vide"},commandSelector:{types:{mcp:"PCM"}},streaming:{assistant:"Assistant"}},settings:{configTab:{toolsLoadFailed:"Échec du chargement des outils disponibles",toolsReloadSuccess:"Liste d'outils rechargée",toolsSaveSuccess:"Paramètres de l'outil enregistrés avec succès",toolsSaveFailed:"Échec de l'enregistrement des paramètres de l'outil",languageHindi:"hindi"},modelLimits:{placeholders:{vendor:"OpenAI / Google / Moonshot"},columns:{notes:"Remarques",actions:"Actes"}},systemPromptManager:{title:"Gestion des invites système",addButton:"Ajouter une invite",defaultPromptLocked:"Les invites système par défaut sont verrouillées et ne peuvent pas être modifiées.",updateSuccess:"Invite mise à jour avec succès",addSuccess:"Invite ajoutée avec succès",saveError:"Échec de l'enregistrement de l'invite. Veuillez réessayer.",deleteSuccess:"Invite supprimée avec succès",deleteError:"Échec de la suppression de l'invite. Veuillez réessayer.",deleteConfirm:"Êtes-vous sûr de supprimer cette invite ?",defaultTag:"Par défaut (verrouillé)",editTitle:"Modifier l'invite système",addTitle:"Ajouter une nouvelle invite système",nameLabel:"Nom de l'invite",nameRequired:"Veuillez saisir le nom de l'invite !",descriptionLabel:"Description rapide",descriptionRequired:"Veuillez saisir la description de l'invite !",contentLabel:"Contenu rapide",contentRequired:"Veuillez saisir le contenu de l'invite !"},envVars:{title:"Variables d'environnement",description:"Les variables sont injectées dans les processus de l'outil Bash. Les variables secrètes sont chiffrées au repos.",fetchError:"Échec du chargement des variables d'environnement",created:"Variable créée",updated:"Variable mise à jour",saveError:"Échec de l'enregistrement de la variable",deleted:"Variable supprimée",deleteError:"Échec de la suppression de la variable",addButton:"Ajouter une variable",noVars:"Aucune variable d'environnement configurée",addTitle:"Ajouter une variable d'environnement",editTitle:"Modifier une variable",nameRequired:"Le nom de la variable est obligatoire",nameInvalid:"Doit commencer par une lettre ou un trait de soulignement, suivi de lettres, de chiffres ou de traits de soulignement",valueRequired:"La valeur est requise pour les nouvelles variables",valueEditHint:"Laisser vide pour conserver la valeur existante",valuePlaceholder:"Entrez la valeur",valuePlaceholderEdit:"Entrez une nouvelle valeur ou laissez vide",secretHint:"Les variables secrètes sont chiffrées sur le disque et masquées dans l'interface utilisateur",descriptionPlaceholder:"Description facultative",deleteConfirm:"Supprimer cette variable ?",notSet:"(non réglé)",empty:"(vide)",save:"Sauvegarder",cancel:"Annuler",name:"Nom",value:"Valeur",secret:"Secrète",descriptionField:"Description",type:"Taper",plain:"Plaine",descriptionCol:"Description",actions:"Actes",yes:"Oui",no:"Non"},hooksTab:{mode:{ocr:"ROC (Windows)",vision:"Vision (LLM)",placeholder:"Espace réservé"},modeLabel:"Mode"},providerTab:{fastModel:"Modèle rapide (facultatif)",fastModelHelp:"Modèle moins cher/plus rapide pour les tâches légères telles que la génération de titres, la correction de sirène et la synthèse. Utilise le modèle par défaut lorsqu'il n'est pas défini.",visionModel:"Modèle de vision (facultatif)",visionModelHelp:"Modèle capable de vision pour la compréhension des images. Lorsque hooks.image_fallback.mode est défini sur « vision », ce modèle décrit les images sous forme de texte afin que les modèles contenant uniquement du texte puissent les comprendre. Utilise le modèle par défaut lorsqu'il n'est pas défini.",sameAsDefault:"Identique au modèle par défaut",providerNames:{openai:"OpenAI",anthropic:"Anthropique",gemini:"Gémeaux",copilot:"Copilote"}},mcpTab:{statusHelp:{connecting:"Le serveur démarre ou se reconnecte",ready:"Le serveur est connecté et sert les outils normalement",degraded:"Le serveur est partiellement disponible ; certains outils peuvent échouer",stopped:"Le serveur ne fonctionne pas",error:"Le serveur n'a pas pu démarrer ou a rencontré des erreurs d'exécution"}},metricsDashboard:{sessionsCount:"{{count}} séances",tokensAmount:"{{value}} jetons",sessionsTabLabel:"Séances ({{count}})",roundColumns:{tokens:"Jetons"},multiplierSuffix:"x",sessionDetail:{messages:"Messages"}},page:{tabs:{prompts:"Invites",mermaid:"Sirène",mcp:"PCM",sessions:"Séances",hooks:"Crochets"}},appTab:{languageHindi:"hindi"},modelMappingCard:{modelTypeOpus:"Opus",modelTypeSonnet:"Sonnet",modelTypeHaiku:"Haïku"},mermaidTab:{switchAuto:"Auto",flowchartCurveOptions:{cardinal:"Cardinal"}},schedulesTab:{columns:{actions:"Actes"},actions:{sessions:"Séances"}},sessionsTab:{id:"identifiant"},mcpServerTable:{columns:{actions:"Actes"},transportOptions:{sse:"ESS",stdio:"Stdio"}},mcpServerForm:{modeJson:"JSON",transportOptions:{stdio:"Stdio",sse:"ESS"},arguments:"Arguments"},metricsTable:{session:{columns:{session:"Session",tokens:"Jetons",messages:"Messages",action:"Action"}},forward:{columns:{id:"IDENTIFIANT",type:"Taper",tokens:"Jetons"}}},charts:{total:"Total",prompt:"Rapide",chat:"Chat"}},components:{markdown:{codeCopiedSuccess:"Code copié dans le presse-papier",copyFailed:"Échec de la copie"},jsonSchema:{noProperties:"Aucune propriété dans le schéma",field:"Champ",type:"Taper",required:"Requis",yes:"Oui",no:"Non",default:"Défaut",description:"Description"},imageGrid:{ocr:"ROC"},tokenUsage:{messages:"Messages",tokens:"jetons"},approval:{workflow:"Flux de travail"}}},E={common:{saveAnyway:"फिर भी सहेजें",parentDirectory:"मूल निर्देशिका",currentPath:"वर्तमान पथ:",cancel:"रद्द करना",ok:"ठीक है",apply:"आवेदन करना",save:"बचाना",delete:"मिटाना",yes:"हाँ",no:"नहीं",home:"घर",download:"डाउनलोड करना",directory:"निर्देशिका",file:"फ़ाइल"},chat:{workspace:{placeholder:"जैसे /उपयोगकर्ता/ऐलिस/वर्कस्पेस/मायप्रोजेक्ट",descriptionP1:"एक कार्यस्थान पथ सेट करें ताकि फ़ाइल संदर्भ और कार्यस्थान उपकरण फ़ाइलों को विश्वसनीय रूप से हल कर सकें।",descriptionP2:"कोई मौजूदा प्रोजेक्ट फ़ोल्डर चुनें. आप अभी भी अमान्य पथ के साथ जारी रख सकते हैं, लेकिन हो सकता है कि संबंधित सुविधाएं ठीक से काम न करें।"},folderBrowser:{title:"कार्यस्थान फ़ोल्डर चुनें",selectCurrent:"वर्तमान फ़ोल्डर का चयन करें",emptyFolder:"यह फ़ोल्डर खाली है",tip:'युक्ति: दर्ज करने के लिए किसी फ़ोल्डर पर क्लिक करें, पुष्टि करने के लिए "वर्तमान फ़ोल्डर का चयन करें" पर क्लिक करें'},actions:{regenerate:"प्रतिक्रिया पुनः उत्पन्न करें",retryFailed:"विफल अनुरोध पुनः प्रयास करें",retryOptions:"पुनः प्रयास करें विकल्प",cancelRequest:"अनुरोध को रद्द करें",sendMessage:"मेसेज भेजें",copyMessage:"संदेश कॉपी करें",referenceMessage:"संदर्भ संदेश",generateTitle:"एआई शीर्षक उत्पन्न करें",unpin:"अनपिन",pin:"नत्थी करना"},fileReference:{title:"@फ़ाइल संदर्भ",setWorkspace:"कार्यक्षेत्र सेट करें",noMatches:"कोई मेल खाती फ़ाइलें नहीं मिलीं",emptyDirectory:"निर्देशिका खाली है"},commandSelector:{types:{mcp:"एमसीपी"}}},settings:{notifications:{deleteAllSuccess:"सभी सत्र हटा दिए गए (पिन किए गए को छोड़कर)",deleteEmptySuccess:"खाली सत्र हटा दिए गए (पिन किए गए को छोड़कर)",localStorageCleared:"स्थानीय भंडारण साफ़ कर दिया गया है",resetSuccessReloading:"Application reset successful. पुनः लोड हो रहा है...",resetFailed:"एप्लिकेशन रीसेट करने में विफल",autoTitleEnabled:"स्वतः शीर्षक निर्माण सक्षम",autoTitleDisabled:"स्वतः शीर्षक पीढ़ी अक्षम",autoTitleUpdateFailed:"स्वतः शीर्षक प्राथमिकता अद्यतन करने में विफल",promptEnhancementSaved:"सिस्टम प्रॉम्प्ट एन्हांसमेंट सहेजा गया"},appTab:{deleteAllTitle:"सभी सत्र हटाएँ",deleteAllDescription:"क्या आपको यकीन है? इससे पिन किए गए को छोड़कर सभी सत्र हटा दिए जाएंगे.",deleteAllButton:"सभी सत्र हटाएँ",deleteEmptyTitle:"खाली सत्र हटाएँ",deleteEmptyDescription:"क्या आपको यकीन है? इससे बिना किसी संदेश वाले (पिन किए गए को छोड़कर) सभी सत्र हटा दिए जाएंगे।",deleteEmptyButton:"खाली सत्र हटाएँ",clearLocalStorageTitle:"स्थानीय संग्रहण साफ़ करें",clearLocalStorageDescription:"क्या आपको यकीन है? यह सभी स्थानीय संग्रहण डेटा को हटा देगा और एप्लिकेशन को रीसेट कर देगा।",clearLocalStorageButton:"स्थानीय संग्रहण साफ़ करें",confirmDeleteAll:"हाँ, सभी हटा दें",confirmDeleteEmpty:"हां, खाली हटाएं",confirmClear:"हाँ, इसे साफ़ करें",dangerDescription:"इन कार्रवाइयों को पूर्ववत नहीं किया जा सकता. सारा डेटा स्थायी रूप से हटा दिया जाएगा.",resetApplicationTitle:"एप्लिकेशन रीसेट करें",resetApplicationIntro:"क्या आपको यकीन है? यह करेगा:",resetStepDeleteAllSessions:"सभी सत्र हटाएं (पिन किए गए सहित)",resetStepClearStorage:"सभी स्थानीय संग्रहण डेटा साफ़ करें",resetStepResetConfig:"config.json को डिफ़ॉल्ट पर रीसेट करें",resetStepSetupFlow:"अगले लॉन्च पर प्रारंभिक सेटअप प्रवाह ट्रिगर करें",resetStepReload:"एप्लिकेशन पुनः लोड करें",resetConfirm:"हाँ, सब कुछ रीसेट करें",resetButton:"एप्लिकेशन रीसेट करें (सभी डेटा)"},configTab:{loadConfigFailed:"कॉन्फ़िगरेशन लोड करने में विफल",invalidConfig:"अमान्य कॉन्फ़िगरेशन",saveConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया",saveConfigFailed:"कॉन्फ़िगरेशन सहेजने में विफल",toolsLoadFailed:"उपलब्ध उपकरण लोड करने में विफल",toolsReloadSuccess:"टूल सूची पुनः लोड की गई",toolsSaveSuccess:"टूल सेटिंग सफलतापूर्वक सहेजी गईं",toolsSaveFailed:"टूल सेटिंग सहेजने में विफल",backendSaved:"बैकएंड यूआरएल सहेजा गया",backendResetDefault:"बैकएंड यूआरएल डिफ़ॉल्ट पर रीसेट हो गया"},modelMappingCard:{loadProviderFailed:"प्रदाता कॉन्फ़िगरेशन लोड करने में विफल",loadMappingsFailed:"मौजूदा मैपिंग लोड करने में विफल",loadModelsFailed:"मॉडल लोड करने में विफल",loadModelsHint:"मॉडल लोड करने में विफल. कृपया अपने प्रदाता कॉन्फ़िगरेशन की जाँच करें।",mappingSaved:"मॉडल मैपिंग सहेजी गई",mappingSaveFailed:"मॉडल मैपिंग सहेजने में विफल",enterModelName:"कृपया एक मॉडल नाम दर्ज करें",customMappingSaved:"कस्टम मॉडल मैपिंग सहेजी गई",customMappingSaveFailed:"कस्टम मॉडल मैपिंग सहेजने में विफल",mappedModelNotFound:'मैप किया गया मॉडल "{{model}}" वर्तमान प्रदाता के उपलब्ध मॉडल में नहीं मिला',cached:"(कैश्ड)",modelTypeOpus:"ओपुस",modelTypeSonnet:"गाथा",modelTypeHaiku:"हाइकू"},modelTab:{selectModelTitle:"मॉडल का चयन करें",loadingModels:"मॉडल लोड हो रहे हैं...",selectModelPlaceholder:"एक मॉडल चुनें",backendApiBaseUrlTitle:"बैकएंड एपीआई बेस यूआरएल",resetToDefault:"वितथ पर ले जाएं",backendApiHint:"/v1 (उदा. {{example}}) सहित पूर्ण आधार URL होना चाहिए।",save:"बचाना"},mermaidTab:{title:"जलपरी आरेख सेटिंग्स",description:"अनुकूलित करें कि आपकी चैट में मरमेड आरेख कैसे प्रस्तुत किए जाते हैं",themeLabel:"जलपरी थीम",themeTooltip:"एक अंतर्निर्मित मरमेड थीम चुनें। ऐप थीम के आधार पर प्रकाश और अंधेरे के बीच डिफ़ॉल्ट और न्यूट्रल ऑटो-स्विच।",themeOptions:{default:"डिफ़ॉल्ट (ऑटो लाइट/डार्क)",neutral:"तटस्थ (ऑटो लाइट/डार्क)",forest:"वन (हरा स्वर)",base:"आधार (न्यूनतम)",dark:"अँधेरा"},themeDescriptionsTitle:"थीम विवरण:",themeDescriptions:{default:"डिफ़ॉल्ट: क्लासिक मरमेड लुक, प्रकाश/अंधेरे में स्वतः अनुकूलित",neutral:"तटस्थ: ग्रे टोन, प्रकाश/अंधेरे के लिए स्वतः अनुकूलित",dark:"डार्क: हमेशा डार्क थीम",forest:"वन: हरा रंग योजना, तकनीकी आरेखों के लिए अच्छा है",base:"आधार: कस्टम थीम के लिए न्यूनतम स्टाइल"},globalCardTitle:"वैश्विक सेटिंग्स",fontSizeLabel:"फ़ॉन्ट आकार",fontSizeTooltip:"सभी आरेख पाठ के लिए आधार फ़ॉन्ट आकार (पिक्सेल में)",defaultZoomLabel:"डिफ़ॉल्ट ज़ूम",defaultZoomTooltip:"आरेखों के लिए प्रारंभिक ज़ूम स्तर (1.0 = 100%)",responsiveWidthLabel:"प्रतिक्रियाशील चौड़ाई",responsiveWidthTooltip:"आरेखों को कंटेनर की चौड़ाई के अनुकूल बनाने में सक्षम करें। निश्चित-चौड़ाई वाले आरेखों के लिए अक्षम करें.",flowchartCardTitle:"फ़्लोचार्ट सेटिंग्स",flowchartNodeSpacingLabel:"नोड रिक्ति",flowchartNodeSpacingTooltip:"नोड्स के बीच क्षैतिज दूरी",flowchartRankSpacingLabel:"रैंक रिक्ति",flowchartRankSpacingTooltip:"परतों के बीच लंबवत दूरी",flowchartCurveTypeLabel:"वक्र प्रकार",flowchartCurveTypeTooltip:"कनेक्शन के लिए वक्र का प्रकार",flowchartCurveOptions:{basis:"चिकना (आधार)",linear:"रेखीय",cardinal:"कार्डिनल"},sequenceCardTitle:"अनुक्रम आरेख सेटिंग्स",sequenceActorMarginLabel:"अभिनेता मार्जिन",sequenceActorMarginTooltip:"अभिनेताओं के बीच अंतर",sequenceMessageMarginLabel:"संदेश मार्जिन",sequenceMessageMarginTooltip:"संदेशों के बीच अंतर",sequenceActorWidthLabel:"अभिनेता चौड़ाई",sequenceActorWidthTooltip:"प्रत्येक अभिनेता बॉक्स की चौड़ाई",sequenceActorHeightLabel:"अभिनेता की ऊंचाई",sequenceActorHeightTooltip:"प्रत्येक अभिनेता बॉक्स की ऊंचाई",ganttCardTitle:"गैंट चार्ट सेटिंग्स",ganttBarHeightLabel:"बार की ऊंचाई",ganttBarHeightTooltip:"प्रत्येक कार्य पट्टी की ऊंचाई",ganttTopPaddingLabel:"शीर्ष गद्दी",ganttTopPaddingTooltip:"चार्ट के शीर्ष पर स्थान",resetToDefaults:"डिफ़ॉल्ट पर पुनः सेट करें",previewDescription:"परिवर्तन तुरंत लागू होते हैं. अपनी सेटिंग्स को क्रियान्वित होते देखने के लिए एक आरेख बनाने या देखने का प्रयास करें।",themeCardTitle:"विषय",switchAuto:"ऑटो",switchFixed:"तय",previewTitle:"पूर्व दर्शन"},modelLimits:{title:"टोकन बजट मॉडल सीमाएँ",descriptionPrefix:"संदर्भ बजटिंग के लिए प्रति-मॉडल टोकन सीमाएं कॉन्फ़िगर करें। ये सेटिंग्स बांस में विश्व स्तर पर कायम हैं",descriptionSuffix:"और बैकएंड रिज़ॉल्वर द्वारा उपयोग किया जाता है।",defaultsTitle:"मॉडल डिफ़ॉल्ट",defaultsDescription:"GPT-5 / GPT-4 / जेमिनी / किमी / GLM डिफ़ॉल्ट के साथ प्रीलोडेड। आप आवश्यकतानुसार संपादन जारी रख सकते हैं।",migratedFromLocalStorage:"स्थानीय भंडारण से वैश्विक कॉन्फिगरेशन में स्थानांतरित मॉडल सीमाएँ।",loadFailed:"मॉडल सीमा सेटिंग लोड करने में विफल",saveSuccess:"मॉडल सीमाएँ वैश्विक कॉन्फ़िगरेशन में सहेजी गईं",saveFailed:"मॉडल सीमा सेटिंग सहेजने में विफल",resetSuccess:"मॉडल सीमाएँ उत्पाद डिफ़ॉल्ट पर रीसेट हो गईं",resetFailed:"मॉडल सीमा सेटिंग रीसेट करने में विफल",defaults:{gpt54:"तर्क की गहराई के साथ शीर्ष स्तरीय क्षमता।",gpt53Codex:"कोड रीफैक्टरिंग वर्कफ़्लोज़ के लिए अनुकूलित।",gpt52Pro:"जटिल कार्यों के लिए मजबूत तार्किक स्थिरता।",gpt5Mini:"तेज़ और लागत प्रभावी सामान्य प्रयोजन विकल्प।",gpt41:"1M विंडो वाला क्लासिक बड़े-संदर्भ वाला मॉडल।",gpt4o:"कम विलंबता, रोजमर्रा की चैट के लिए उपयुक्त।",gemini25Pro:"मजबूत मल्टीमॉडल विश्लेषण क्षमताएं।",kimiK25:"दीर्घ-रूप वाली चीनी सामग्री के लिए पसंदीदा।",kimiCoding:"कोडिंग-केंद्रित परिदृश्यों के लिए ट्यून किया गया।",glm5:"एक-शॉट बड़े-दस्तावेज़ निर्माण के लिए अच्छा है।"},columns:{contextWindow:"प्रसंग विंडो",maxOutput:"अधिकतम आउटपुट",model:"नमूना",notes:"टिप्पणियाँ",actions:"कार्रवाई"},placeholders:{vendor:"ओपनएआई/गूगल/मूनशॉट",model:"जैसे जीपीटी-5.4-सोच",optional:"वैकल्पिक"},actions:{addRow:"लाइन जोड़ो",resetToDefaults:"डिफ़ॉल्ट पर पुनः सेट करें",remove:"निकालना",save:"बचाना",reload:"पुनः लोड करें"},validation:{atLeastOneRow:"कृपया कम से कम एक मॉडल सीमा पंक्ति रखें।",modelPatternEmpty:"मॉडल पैटर्न खाली नहीं हो सकता.",duplicateModelPattern:"डुप्लिकेट मॉडल पैटर्न: {{pattern}}",contextWindowMin:"{{pattern}} के लिए संदर्भ विंडो कम से कम 1000 होनी चाहिए।",maxOutputMin:"{{pattern}} के लिए अधिकतम आउटपुट कम से कम 1 होना चाहिए।",maxOutputExceedsContext:"{{pattern}} के लिए अधिकतम आउटपुट संदर्भ विंडो से कम या उसके बराबर होना चाहिए।",safetyMarginNegative:"{{pattern}} के लिए सुरक्षा मार्जिन नकारात्मक नहीं हो सकता।",safetyMarginTooLarge:"{{pattern}} के लिए सुरक्षा मार्जिन संदर्भ विंडो से छोटा होना चाहिए।"}},systemPromptManager:{title:"सिस्टम प्रॉम्प्ट प्रबंधन",addButton:"संकेत जोड़ें",defaultPromptLocked:"डिफ़ॉल्ट सिस्टम संकेत लॉक हैं और संपादित नहीं किए जा सकते।",updateSuccess:"संकेत सफलतापूर्वक अद्यतन किया गया",addSuccess:"संकेत सफलतापूर्वक जोड़ा गया",saveError:"संकेत सहेजने में विफल. कृपया पुन: प्रयास करें।",deleteSuccess:"संकेत सफलतापूर्वक हटा दिया गया",deleteError:"संकेत हटाने में विफल. कृपया पुन: प्रयास करें।",deleteConfirm:"क्या आप निश्चित रूप से इस संकेत को हटाना चाहते हैं?",defaultTag:"डिफ़ॉल्ट (लॉक)",editTitle:"सिस्टम प्रॉम्प्ट संपादित करें",addTitle:"नया सिस्टम प्रॉम्प्ट जोड़ें",nameLabel:"शीघ्र नाम",nameRequired:"कृपया प्रॉम्प्ट का नाम इनपुट करें!",descriptionLabel:"शीघ्र विवरण",descriptionRequired:"कृपया प्रॉम्प्ट का विवरण दर्ज करें!",contentLabel:"शीघ्र सामग्री",contentRequired:"कृपया प्रॉम्प्ट की सामग्री इनपुट करें!"},envVars:{title:"पर्यावरण चर",description:"वैरिएबल को बैश टूल प्रक्रियाओं में इंजेक्ट किया जाता है। गुप्त चर आराम से एन्क्रिप्ट किए गए हैं।",fetchError:"पर्यावरण चर लोड करने में विफल",created:"वेरिएबल बनाया गया",updated:"वेरिएबल अद्यतन किया गया",saveError:"वेरिएबल सहेजने में विफल",deleted:"वेरिएबल हटा दिया गया",deleteError:"वेरिएबल हटाने में विफल",addButton:"वेरिएबल जोड़ें",noVars:"कोई पर्यावरण चर कॉन्फ़िगर नहीं किया गया",addTitle:"पर्यावरण चर जोड़ें",editTitle:"वेरिएबल संपादित करें",nameRequired:"वेरिएबल नाम आवश्यक है",nameInvalid:"एक अक्षर या अंडरस्कोर से शुरू होना चाहिए, उसके बाद अक्षर, अंक या अंडरस्कोर होना चाहिए",valueRequired:"नए वेरिएबल के लिए मान आवश्यक है",valueEditHint:"मौजूदा मान बनाए रखने के लिए खाली छोड़ें",valuePlaceholder:"मान दर्ज करें",valuePlaceholderEdit:"नया मान दर्ज करें या खाली छोड़ दें",secretHint:"गुप्त चर डिस्क पर एन्क्रिप्ट किए गए हैं और यूआई में छिपाए गए हैं",descriptionPlaceholder:"वैकल्पिक विवरण",deleteConfirm:"यह वेरिएबल हटाएं?",notSet:"(सेट नहीं)",empty:"(खाली)",save:"बचाना",cancel:"रद्द करना",name:"नाम",value:"कीमत",secret:"गुप्त",descriptionField:"विवरण",type:"प्रकार",plain:"मैदान",descriptionCol:"विवरण",actions:"कार्रवाई",yes:"हाँ",no:"नहीं"},promptsTab:{title:"सिस्टम प्रॉम्प्ट एन्हांसमेंट",mermaidEnhancement:"जलपरी संवर्धन",taskListRules:"साझा कार्य नियम",copilotConclusionWithOptionsBeforeFinish:"समाप्त होने से पहले सह-पायलट ने_उपयोगकर्ता से पूछा",enhancementPlaceholder:"प्रत्येक सिस्टम प्रॉम्प्ट में जोड़ने के लिए वैश्विक एन्हांसमेंट टेक्स्ट जोड़ें।",saveEnhancement:"संवर्द्धन सहेजें",description:"प्रत्येक अनुरोध भेजे जाने से पहले इस पाठ को पहले जोड़ा जाता है, उसके बाद सक्षम सिस्टम संवर्द्धन जोड़ा जाता है।",switchOn:"पर",switchOff:"बंद"},hooksTab:{title:"छवि हुक",enableImagePreflight:"छवि प्रीफ़्लाइट हुक सक्षम करें",description:"प्लेसहोल्डर मोड छवियों को पाठ सारांश में फिर से लिखता है (यह उन टूल को तोड़ सकता है जो वास्तविक छवि डेटा की अपेक्षा करते हैं)। OCR वर्तमान में केवल विंडोज़ है।",loadFailed:"हुक सेटिंग्स लोड करने में विफल",updateFailed:"हुक अद्यतन करने में विफल",modeUpdateFailed:"हुक मोड अपडेट करने में विफल",enabled:"छवि हुक सक्षम",disabled:"छवि हुक अक्षम किए गए",modeUpdated:"इमेज हुक मोड इस पर सेट है: {{mode}}",mode:{ocr:"ओसीआर (विंडोज़)",vision:"विजन (एलएलएम)",placeholder:"प्लेसहोल्डर",error:"गलती"},modeLabel:"तरीका"},schedulesTab:{loadFailed:"शेड्यूल लोड करने में विफल",loadSessionsFailed:"शेड्यूल सत्र लोड करने में विफल",createFailed:"शेड्यूल बनाने में विफल",updateFailed:"शेड्यूल अपडेट करने में विफल",deleteFailed:"शेड्यूल हटाने में विफल",runNowFailed:"शेड्यूल चलाने में विफल",taskMessageRequired:"ऑटो एक्ज़ीक्यूट सक्षम होने पर कार्य संदेश आवश्यक है",created:"शेड्यूल बनाया गया",updated:"शेड्यूल अपडेट किया गया",deleted:"हटाया गया शेड्यूल",enqueuedRun:"कतारबद्ध भागो",optional:"(वैकल्पिक)",defaultName:"मेरी अनुसूची",createTitle:"शेड्यूल बनाएं",scheduleSessionsTitle:"सत्र अनुसूची",noSessionsYet:"अभी तक कोई सत्र नहीं.",editTitle:"शेड्यूल संपादित करें",columns:{autoExecute:"स्वतः निष्पादित",intervalSeconds:"अंतराल",nextRun:"अगला रन",lastRun:"आखरी बार",name:"नाम",model:"नमूना",enabled:"सक्रिय",actions:"कार्रवाई"},form:{intervalSeconds:"अंतराल सेकंड",taskMessage:"कार्य संदेश",taskMessagePlaceholder:"(वैकल्पिक) चलाने के लिए एक कार्य",modelPlaceholder:"(वैकल्पिक) उदा. जीपीटी-4ओ-मिनी",modelRequiredIfAuto:"यदि स्वतः निष्पादित हो तो आवश्यक है",autoExecute:"स्वतः निष्पादित",systemPrompt:"सिस्टम प्रॉम्प्ट",workspacePath:"कार्यक्षेत्र पथ",enhancePrompt:"प्रॉम्प्ट बढ़ाएँ",name:"नाम",enabled:"सक्रिय",model:"नमूना"},validation:{nameRequired:"नाम आवश्यक है",intervalRequired:"अंतराल आवश्यक है"},actions:{runNow:"अब दौड़े",create:"बनाएं",refresh:"ताज़ा करना",edit:"संपादन करना",sessions:"सत्र",delete:"मिटाना",open:"खुला",save:"बचाना"},yes:"हाँ",no:"नहीं",listTitle:"अनुसूचियों"},sessionsTab:{currentSessionTitle:"वर्तमान सत्र",clearMessages:"संदेश साफ़ करें",clearMessagesTitle:"सत्र संदेश साफ़ करें",clearMessagesContent:"यह वर्तमान सत्र के लिए संदेश/अनुलग्नक साफ़ करता है लेकिन सत्र प्रविष्टि रखता है।",sessionCleared:"सत्र साफ़ हो गया",noActiveSession:"कोई सक्रिय सत्र नहीं.",bulkCleanupTitle:"थोक सफ़ाई",keepPinned:"पिन करके रखें",deleteAll:"सभी हटा दो",deleteAllTitle:"सभी सत्र हटाएँ",deleteAllKeepPinned:"पिन किए गए को छोड़कर सभी सत्र हटा देता है।",deleteAllIncludePinned:"पिन किए गए सहित सभी सत्र हटा देता है।",deleteEmpty:"रिक्त हटाएँ",deleteEmptyTitle:"खाली सत्र हटाएँ",deleteEmptyKeepPinned:"पिन किए गए को छोड़कर खाली सत्र हटा देता है।",deleteEmptyIncludePinned:"पिन किए गए सहित खाली सत्र हटा देता है।",deleteChildren:"बच्चों को हटाएँ",deleteChildrenTitle:"बाल सत्र हटाएँ",deleteChildrenKeepPinned:"पिन किए गए को छोड़कर सभी चाइल्ड सत्र हटा देता है।",deleteChildrenIncludePinned:"पिन किए गए सहित सभी चाइल्ड सत्र हटा देता है।",cleanupComplete:"सफ़ाई पूर्ण",devResetTitle:"विकास रीसेट",devResetDescription:"सत्र संग्रहण के लिए ग्रीनफ़ील्ड रीसेट (सत्र हटाता है/ और session.json रीसेट करता है)।",devResetAction:"देव रीसेट सत्र",devResetConfirmTitle:"सत्र संग्रहण रीसेट करें (डेव)",devResetConfirmContent:"यह सभी सत्रों (पिन किए गए/चाइल्ड सहित) को हटा देता है और सत्र सूचकांक को रीसेट कर देता है। रीफ्रेश के बाद एक नया खाली सत्र बनाया जाएगा।",devResetDone:"सत्र संग्रहण रीसेट",id:"पहचान",kind:"दयालु",clear:"स्पष्ट",cancel:"रद्द करना",delete:"मिटाना",reset:"रीसेट करें"},workflowsTab:{description:"वर्कफ़्लो को `~/.bamboo/workflows` में मार्कडाउन फ़ाइलों के रूप में संग्रहीत किया जाता है। चैट में वर्कफ़्लो सम्मिलित करने के लिए `/name` का उपयोग करें।",loadFailed:"वर्कफ़्लो लोड करने में विफल",loadContentFailed:"वर्कफ़्लो सामग्री लोड करने में विफल",invalidName:"अमान्य वर्कफ़्लो नाम",nameAlreadyExists:"इस नाम का एक वर्कफ़्लो पहले से मौजूद है",saved:"वर्कफ़्लो सहेजा गया",saveFailed:"वर्कफ़्लो सहेजने में विफल",deleted:"वर्कफ़्लो हटा दिया गया",deleteFailed:"वर्कफ़्लो हटाने में विफल",newWorkflow:"नया वर्कफ़्लो",empty:"कोई वर्कफ़्लो नहीं मिला",namePlaceholder:"वर्कफ़्लो नाम",contentPlaceholder:`# वर्कफ़्लो शीर्षक
|
|
6
|
+
在这里描述工作流步骤。`},providerTab:{title:"LLM 提供商配置",description:"配置你偏好的 LLM 提供商。点击“保存并应用配置”后会保存并生效。",currentProvider:"当前提供商",activeProvider:"当前激活的 LLM 提供商",selectProviderRequired:"请选择提供商",saveAndApply:"保存并应用配置",loadConfigFailed:"加载提供商配置失败",checkStatusFailed:"检查状态失败",startCopilotAuthFailed:"启动 Copilot 认证失败",copilotAuthSuccess:"Copilot 认证成功!",providerReloaded:"提供商已使用新认证重新加载。",completeAuthFailed:"完成认证失败,请重试。",userCodeCopied:"用户代码已复制到剪贴板!",copyCodeFailedPrefix:"复制失败,请手动复制:",logoutSuccess:"已退出 Copilot",logoutFailed:"退出 Copilot 失败",unknownError:"未知错误",invalidConfig:"配置无效",invalidConfigPrefix:"配置无效",fetchModelsCopilotFailed:"获取模型失败,请先完成 Copilot 认证后重试。",fetchModelsFailed:"获取模型失败,请检查 API Key 与 Base URL。",noModelsReturned:"未返回模型,请先完成 Copilot 认证后再获取。",foundModels:"已找到 {{count}} 个可用模型",fetchModelsErrorPrefix:"获取模型失败",saveConfigSuccess:"配置保存成功",saveConfigFailed:"保存配置失败",saveConfigErrorPrefix:"保存配置失败",applyConfigSuccess:"配置应用成功,新对话将使用最新配置。",applyConfigFailed:"应用配置失败",applyConfigErrorPrefix:"应用配置失败",modelUpdated:"模型更新成功",updateModelFailed:"更新模型失败",updateModelErrorPrefix:"更新模型失败",fetchingModels:"正在获取模型...",refreshModelsFrom:"从 {{source}} 刷新可用模型",fetchModelsFrom:"从 {{source}} 获取可用模型",saveModelChangeFailed:"保存模型变更失败",fetchModelsFailedShort:"获取模型失败",retry:"重试",openaiConfigTitle:"OpenAI 配置",openaiConfigDescription:"输入 OpenAI API Key 以使用 GPT 模型。你也可以指定自定义 Base URL。",openaiApiKey:"OpenAI API Key",openaiApiKeyRequired:"请输入 OpenAI API Key",baseUrlOptional:"Base URL(可选)",openaiBaseUrlHelp:"留空将使用默认 OpenAI 接口地址;如有需要请包含完整路径(例如 /v1)。",defaultModel:"默认模型",fastModel:"快速模型(可选)",fastModelHelp:"用于标题生成、Mermaid 修复、摘要等轻量任务的低成本/快速模型。未设置时使用默认模型。",visionModel:"视觉模型(可选)",visionModelHelp:"用于图片理解的视觉模型。当 hooks.image_fallback.mode 设为 'vision' 时,此模型会将图片描述为文本,让纯文本模型也能理解图片内容。未设置时使用默认模型。",sameAsDefault:"与默认模型相同",selectModelRequired:"请选择模型",selectModel:"选择模型",responsesOnlyModelsOptional:"仅 Responses 模型(可选)",responsesOnlyHelp1:"部分模型仅支持 OpenAI Responses API(不支持 chat/completions)。可在此添加模型 ID 强制 Bamboo 使用",responsesOnlyHelp2:"支持精确匹配(如 gpt-5.3-codex)和后缀 * 的前缀匹配(如 gpt-5*)。",anthropicConfigTitle:"Anthropic 配置",anthropicConfigDescription:"输入 Anthropic API Key 以使用 Claude 模型。",anthropicApiKey:"Anthropic API Key",anthropicApiKeyRequired:"请输入 Anthropic API Key",anthropicBaseUrlHelp:"留空将使用默认 Anthropic 接口地址;如有需要请包含完整路径(例如 /v1)。",maxTokensOptional:"最大 Tokens(可选)",maxTokensHelp:"生成时允许的最大 token 数",geminiConfigTitle:"Google Gemini 配置",geminiConfigDescription:"输入 Google AI API Key 以使用 Gemini 模型。",geminiApiKey:"Gemini API Key",geminiApiKeyRequired:"请输入 Gemini API Key",geminiBaseUrlHelp:"留空将使用默认 Google AI 接口地址;必要时可填写完整路径。",copilotConfigTitle:"GitHub Copilot 配置",copilotConfigDescription:"GitHub Copilot 使用 OAuth 认证,无需 API Key。请确保账号有有效订阅。",authStatusTitle:"认证状态",authenticated:"已认证",notAuthenticated:"未认证",logoutCopilot:"退出 Copilot",authenticateCopilot:"认证 Copilot",refreshStatus:"刷新状态",headlessAuth:"无头认证",headlessAuthHelp:"在控制台输出登录链接,而不是自动打开浏览器",noModelsLoaded:"尚未加载模型,点击“从 backend 获取可用模型”。",authFirstThenFetch:"请先完成 Copilot 认证,再获取模型。",copilotUsageTitle:"使用 GitHub Copilot:",copilotUsageStep1:"确保你已开通有效的 GitHub Copilot 订阅",copilotUsageStep2:"点击“认证 Copilot”启动设备码流程",copilotUsageStep3:"按终端提示完成认证",copilotAuthModalTitle:"Copilot 认证",cancel:"取消",completedAuthorization:"我已完成授权",browserOpened:"浏览器已自动打开",authStep1:"浏览器中应已打开 GitHub 页面",authStep2:"复制下方代码并粘贴到 GitHub 页面",authStep3:"在 GitHub 点击“Continue”完成授权",visitUrl:"1. 打开该 URL:",enterCode:"2. 输入此代码:",copied:"已复制!",copyCode:"复制代码",afterContinueHint:"在 GitHub 点击 Continue 后,请点击下方“我已完成授权”。",providerNames:{openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},mcpTab:{status:{connecting:"连接中",ready:"就绪",degraded:"降级",stopped:"已停止",error:"错误"},statusGuideTitle:"状态说明:",statusHelp:{connecting:"服务器正在启动或重连中",ready:"服务器已连接,工具可正常使用",degraded:"服务器部分可用,部分工具可能失败",stopped:"服务器未运行",error:"服务器启动失败或运行时发生错误"},statusLastError:"最近错误:{{error}}",serverDeleted:"MCP 服务器已删除",deleteServerFailed:"删除 MCP 服务器失败",connectedTo:"已连接到 {{name}}",connectServerFailed:"连接 MCP 服务器失败",disconnected:"已断开 {{name}}",disconnectServerFailed:"断开 MCP 服务器失败",toolsRefreshedFor:"{{name}} 的工具已刷新",refreshToolsFailed:"刷新工具失败",statusRefreshed:"MCP 状态已刷新",refreshStatusFailed:"刷新 MCP 状态失败",noServerForEditing:"没有可编辑的服务器",savedServer:"已保存 {{name}}",addedServer:"已添加 {{name}}",saveServerFailed:"保存 MCP 服务器失败",copiedConfig:"MCP 配置已复制到剪贴板",clipboardUnavailable:"剪贴板不可用,已在弹窗中显示导出内容。",invalidJsonPrefix:"JSON 无效",unknownError:"未知错误",jsonMustBeObject:"JSON 必须是对象",missingMcpServers:'缺少 mcpServers。请粘贴完整 Claude Desktop 风格配置:{ "mcpServers": { ... } }',importSummary:"已导入 {{count}} 个服务器(新增 {{added}},更新 {{updated}},删除 {{removed}})。启动失败 {{failed}} 个。",importStartFailures:"部分服务器未成功启动,配置已保存,请在服务器列表查看错误。",importFailed:"导入 MCP 服务器失败",overviewTitle:"MCP 概览",overviewDescription:"配置外部 MCP 服务器并查看已注册的工具别名。",totalServers:"服务器总数:{{count}}",totalTools:"工具总数:{{count}}",serversTitle:"MCP 服务器",addServer:"添加服务器",refreshAll:"全部刷新",export:"导出",import:"导入",importModalTitle:"导入 MCP 服务器",importHint:"粘贴 Claude Desktop 风格配置片段,例如:",importModeMerge:"合并(Upsert)",importModeReplace:"替换(删除其余)",replaceWarning:"替换模式会删除不在导入 mcpServers 中的现有 MCP 服务器。"},mcpServerTable:{columns:{name:"名称",transportType:"传输类型",status:"状态",toolCount:"工具数",actions:"操作"},transportOptions:{sse:"SSE",stdio:"Stdio"},deleteTitle:"删除 MCP 服务器",deleteDescription:"确认删除服务器“{{name}}”?",empty:"尚未配置 MCP 服务器",actions:{edit:"编辑",delete:"删除",disconnect:"断开",connect:"连接",refreshTools:"刷新工具"}},mcpToolList:{title:"MCP 工具",selectServerHint:"请选择一个服务器以查看其 MCP 工具",empty:"该服务器没有可用工具",noDescription:"暂无描述",aliasMapping:"别名映射",parametersSchema:"参数 Schema"},mcpServerForm:{jsonMustBeObject:"JSON 必须是对象",detectedBulkConfig:"检测到 mcpServers(批量配置)。批量导入请使用 MCP 标签页中的“导入”按钮,或在这里粘贴单个服务器配置。",missingIdField:"缺少或无效的 id 字段",missingTransportField:"缺少或无效的 transport 字段",missingTransportInfo:"缺少传输信息。应包含 transport(Bodhi 格式)或 command/url(主流 MCP 格式)。",invalidJson:"JSON 无效:{{message}}",unknownError:"未知错误",editTitle:"编辑 MCP 服务器",addTitle:"添加 MCP 服务器",save:"保存",modeForm:"表单",modeJson:"JSON",jsonError:"JSON 错误",serverId:"服务器 ID",serverIdRequired:"服务器 ID 不能为空",serverIdPatternError:"仅支持字母、数字、下划线和连字符",displayName:"显示名称",enabled:"启用",enabledHelp:"禁用的服务器会保留在配置中,但不会自动启动。",transportType:"传输类型",transportTypeRequired:"传输类型不能为空",transportOptions:{stdio:"Stdio",sse:"SSE"},command:"命令",commandRequired:"命令不能为空",arguments:"参数",argumentsPlaceholder:"输入参数后按 Enter 添加",envVars:"环境变量",addEnv:"添加环境变量",keyRequired:"键不能为空",sseUrl:"SSE URL",sseUrlRequired:"SSE URL 不能为空",validUrlRequired:"请输入有效 URL",headers:"请求头",addHeader:"添加请求头",headerNameRequired:"请求头名称不能为空"},metricsCards:{totalSessions:"会话总数",chatTokens:"聊天 Tokens",totalToolCalls:"工具调用总数",avgSessionDuration:"平均会话时长"},forwardMetricsCards:{totalForwardRequests:"Forward 请求总数",successRate:"成功率",forwardTokens:"Forward Tokens",avgResponseTime:"平均响应时间"},unifiedMetricsCards:{totalRequests:"请求总数",totalTokens:"Tokens 总数",successRate:"成功率",avgResponseTime:"平均响应时间",chatSessions:"聊天会话",chatTokens:"聊天 Tokens",toolCalls:"工具调用",avgSessionDuration:"平均会话时长",totalMemories:"记忆总数",staleCandidates:"陈旧候选项",memoryProjects:"记忆项目数",lastReindex:"上次重建索引",forwardRequests:"Forward 请求",forwardTokens:"Forward Tokens",successful:"成功",failed:"失败"},metricsTable:{session:{columns:{session:"会话",model:"模型",status:"状态",started:"开始时间",duration:"耗时",tokens:"Tokens",toolCalls:"工具调用",messages:"消息数",action:"操作"},view:"查看"},forward:{columns:{id:"ID",endpoint:"端点",model:"模型",type:"类型",status:"状态",tokens:"Tokens",duration:"耗时",started:"开始时间",error:"错误"},typeStream:"流式",typeSync:"同步",totalRequests:"{{total}} 条请求",empty:"当前范围内暂无 forward 请求记录"}},metricsDashboard:{roundColumns:{round:"轮次",status:"状态",duration:"耗时",tokens:"Tokens",toolCalls:"工具调用"},compactStats:{combinedTokens:"合并 Tokens",chatTokens:"聊天 Tokens",forwardTokens:"Forward Tokens",avgTokensPerSession:"平均 Tokens / 会话",estimatedTimeSaved:"预估节省时长",estimatedEfficiencyLift:"预估效率提升",estimatedSpeedMultiplier:"预估速度倍率",estimatedSavedWorkdays:"预估节省工作日",avgRoundsPerSession:"平均轮次 / 会话",toolCallsPerSession:"工具调用 / 会话",activeSessionRate:"活跃会话占比",avgTokensPerForward:"平均 Tokens / Forward",forwardErrorRate:"Forward 错误率",streamingRatio:"流式占比",p95ForwardLatency:"P95 Forward 延迟",modelCoverage:"模型覆盖数",endpointCoverage:"端点覆盖数"},multiplierSuffix:"x",filtersTitle:"筛选",refresh:"刷新",startDate:"开始日期",endDate:"结束日期",model:"模型",daysOption:"{{value}} 天",granularity:{daily:"按天",weekly:"按周",monthly:"按月"},dashboardTitle:"仪表盘",tabs:{overview:"概览",analysis:"分析",records:"记录"},derivedMetricsTitle:"衍生指标(紧凑)",derivedMetricsSubtitle:"更多维度,同时保持页面紧凑",efficiencyHint:"效率估算采用保守假设:人工 {{manualTpm}} token/分钟 + {{manualToolMinutes}} 分钟/工具,对比辅助 {{assistedTpm}} token/分钟 + {{assistedToolMinutes}} 分钟/工具,再乘以 {{realization}}% 实现系数,并限制上限({{maxLift}}% / {{maxMultiplier}}x)。",toolUsageTitle:"工具使用频次",noToolUsage:"当前范围内没有工具调用记录。",calls:"调用次数",activityHeatmapTitle:"每日活跃热力图",noActivity:"当前范围内没有活跃数据。",sessionsCount:"{{count}} 个会话",tokensAmount:"{{value}} tokens",sessionsTabLabel:"会话({{count}})",chatSessionsLabel:"聊天会话({{count}})",sessionsHint:"点击会话可查看完整轮次详情",forwardTabLabel:"Forward 请求({{count}})",detailedMetricsTitle:"详细指标",sessionMetricsTitle:"会话指标",loadingSessionDetails:"正在加载会话详情...",sessionDetail:{sessionId:"会话 ID",model:"模型",status:"状态",duration:"耗时",messages:"消息数",totalTokens:"总 Tokens",toolCalls:"工具调用"},noDetail:"暂无详情。"},charts:{tokenUsageOverTime:"Token 使用趋势",unifiedTokenUsageOverTime:"Token 使用趋势(Chat + Forward)",memoryTrendTitle:"记忆趋势",noTokenUsage:"暂无 token 使用数据",noMemoryTrend:"暂无记忆趋势数据",tokenUsageDescription:"按日期/周期展示 Prompt、Completion 与总 Tokens。",unifiedTokenUsageDescription:"按时间展示 Chat 与 Forward 的合并 token 使用。",memoryTrendDescription:"展示记忆新增、更新以及累计总量的时间变化。",total:"总计",prompt:"Prompt",completion:"Completion",chat:"Chat",forward:"Forward",totalMemories:"记忆总量",createdMemories:"新增记忆",updatedMemories:"更新记忆",modelDistribution:"模型分布",noModelMetrics:"暂无模型指标数据",modelDistributionDescription:"按模型展示总 token 消耗占比。",endpointDistribution:"端点分布",noForwardMetrics:"当前范围内暂无 forward 指标数据。"}},components:{markdown:{codeCopiedSuccess:"代码已复制到剪贴板",copyFailed:"复制失败"},jsonSchema:{field:"字段",type:"类型",required:"必填",yes:"是",no:"否",default:"默认值",description:"描述",noProperties:"架构中无属性"},workflowResult:{userWorkflow:"用户工作流",waitingForResult:"等待工作流结果...",executionFailed:"工作流执行失败",retryWorkflow:"重试工作流",copyParameters:"复制参数",copyResult:"复制结果",expandResult:"展开结果",collapseResult:"收起结果"},toolResult:{waiting:"等待中",waitingForResult:"等待结果...",executionFailed:"工具执行失败",copyResult:"复制结果",checkpoint:"检查点",checkpointNone:"无",diffTruncated:"差异内容过长,已截断显示",structuredToolResultHint:"工具结果 · {{tool}}",memory:{action:{inspect:"检查",rebuild:"重建"},totalMemories:"{{count}} 条记忆",staleCandidates:"候选陈旧项:{{count}}",coverage:"覆盖情况",viewsLabel:"视图:",indexesLabel:"索引:",stateFilesLabel:"状态文件:",lastReindexLabel:"上次重建索引:",lastDreamLabel:"上次梦境整理:",viewFiles:"视图文件",indexFiles:"索引文件",stateFiles:"状态文件",topicPaths:"主题路径",recentMemories:"最近记忆"}},toolCall:{liveOutput:"实时输出",keyParameters:"关键参数",fullParameters:"完整参数",copyParameters:"复制参数"},plan:{executionPlan:"执行计划",goal:"目标",steps:"步骤",stepTitle:"步骤 {{number}}",reason:"原因",estimated:"预计",tools:"工具",prerequisites:"前置条件",potentialRisks:"潜在风险({{count}})",totalEstimatedTime:"总预计时长",feedbackPlaceholder:"告诉智能体你希望如何调整...",sendFeedback:"发送反馈",refinePlan:"优化计划",executePlan:"执行计划"},question:{agentQuestion:"智能体提问",context:"上下文",chooseOption:"请选择一个选项",recommended:"推荐",customAnswerHint:"没有合适选项?可输入自定义回答。",customAnswerPlaceholder:"输入你的自定义回答...",submitAnswer:"提交回答"},questionDialog:{selectOptionWarning:"提交前请先选择一个选项。",responseSubmitted:"回答已提交",responseSubmittedContinue:"回答已提交,AI 将继续处理",submitFailed:"提交回答失败",noModelConfigured:"未配置模型",customAnswerTip:"自定义回答",otherTypeBelow:"其他(在下方输入)",confirm:"确认"},skillManager:{title:"技能",refresh:"刷新",skillsRefreshed:"技能已刷新",lastUpdated:"上次更新:{{value}}",justNow:"刚刚",secondsAgo:"{{count}} 秒前",minutesAgo:"{{count}} 分钟前",searchPlaceholder:"搜索技能",readOnlyHint:"技能文件本身仍是只读的,但你可以控制它们是否参与 prompt 使用。",disabledHint:"这里会显示全部技能。被禁用的技能不会进入系统提示中的 skill context,且运行时会被禁止 load_skill。",disabledTag:"已禁用",switchEnabled:"开",switchDisabled:"关",skillStateSaved:"技能状态已保存",saveFailed:"保存技能状态失败",noSkillsFound:"未找到技能",noMatch:"没有匹配的技能",loadFailed:"加载技能失败",getFailed:"获取技能失败"},skillSelector:{placeholder:"选择技能",disabledSkillsHint:"有 {{count}} 个先前选中的技能现已被全局禁用,并已从选择中移除。"},imageGrid:{preview:"预览",ocr:"OCR"},todoList:{title:"任务列表",evaluating:"评估中",pin:"固定",unpin:"取消固定",llmEvaluation:"LLM 评估",tools:"个工具",dependsOn:"依赖:{{deps}}",dependencies:"项依赖",status:{pending:"待处理",inProgress:"进行中",completed:"已完成",blocked:"阻塞"}},tokenUsage:{title:"Token 使用",contextWindow:"上下文窗口",summary:"汇总",system:"系统",messages:"消息",tokens:"tokens",usedPercent:"已使用 {{value}}%"},approval:{workflow:"工作流",executionRequest:"执行请求",aiWantsExecute:"AI 想执行以下操作"},toolSession:{title:"工具会话",running:"运行中",done:"完成",error:"错误",completedOnly:"已完成 {{completed}} 项",completedWithErrors:"已完成 {{completed}} 项(含错误)",completedProgress:"已完成 {{completed}} / {{total}}",noPersistedMessage:"无持久化输出",deleteMessage:"删除工具会话"},mermaid:{loadingDiagram:"正在加载图表...",diagramError:"Mermaid 图表错误",errorTitlePrefix:"错误",checkConsoleHint:"请检查 Mermaid 语法,或打开控制台查看详情。",fixMermaid:"修复 Mermaid",renderingDiagram:"正在渲染图表...",exportSvg:"导出 SVG",exportFailed:"导出图表失败"}},validation:{workspaceRequired:"请输入工作区路径",invalidPath:"无效路径"},error:{saveWorkspaceFailed:"保存工作区路径失败",readFolderFailed:"无法读取文件夹",copyPromptFailed:"复制提示词内容失败"},success:{promptCopied:"已复制「{{name}}」提示词"}}}},D={common:{saveAnyway:"Enregistrer quand même",parentDirectory:"Répertoire des parents",currentPath:"Chemin actuel :",cancel:"Annuler",ok:"D'ACCORD",apply:"Appliquer",save:"Sauvegarder",delete:"Supprimer",yes:"Oui",no:"Non",home:"Maison",download:"Télécharger",directory:"Annuaire",file:"Déposer"},chat:{workspace:{modalTitle:"Définir le chemin de l'espace de travail",invalidTitle:"Chemin d'accès à l'espace de travail non valide",issuesDetected:"Problèmes potentiels détectés avec le chemin de l'espace de travail :",confirmSaveInvalid:"Voulez-vous toujours enregistrer ce chemin ?",errorEnterPath:"Veuillez saisir un chemin d'accès à l'espace de travail",errorSaveFailed:"Échec de l'enregistrement du chemin de l'espace de travail",placeholder:"par ex. /Utilisateurs/alice/Espace de travail/MonProjet",browseFolder:"Parcourir le dossier",descriptionTitle:"Description du chemin de l'espace de travail",descriptionP1:"Définissez un chemin d'accès à l'espace de travail afin que les références de fichiers et les outils de l'espace de travail puissent résoudre les fichiers de manière fiable.",descriptionP2:"Choisissez un dossier de projet existant. Vous pouvez toujours continuer avec un chemin non valide, mais les fonctionnalités associées risquent de ne pas fonctionner correctement.",checkTitle:"Vérification du chemin de l'espace de travail",checkDescription:"La validation du chemin de l'espace de travail a échoué.",label:"Espace de travail"},folderBrowser:{title:"Sélectionnez le dossier de l'espace de travail",selectCurrent:"Sélectionnez le dossier actuel",emptyFolder:"Ce dossier est vide",tip:'Astuce : cliquez sur un dossier pour y accéder, cliquez sur "Sélectionner le dossier actuel" pour confirmer'},input:{placeholder:"Envoyer un message...",placeholderWithReference:"Envoyer un message (inclut la référence)",placeholderWithWorkflows:"Envoyer un message... (tapez '/' pour les workflows)",toolCallsOnly:"Appels d'outils uniquement (outils autorisés : {{tools}})",autoPrefixMode:"Mode de préfixe automatique : {{prefix}} (tapez « / » pour sélectionner les outils)",toolSpecificMode:"Mode spécifique à l'outil (outils autorisés : {{tools}})",processingFiles:"Traitement des fichiers…",imageCountSingular:"Image {{count}}",imageCountPlural:"Images {{count}}",reasoning:{max:"Max."}},actions:{regenerate:"Régénérer la réponse",retryFailed:"Réessayer la demande ayant échoué",retryOptions:"Options de nouvelle tentative",cancelRequest:"Annuler la demande",sendMessage:"Envoyer un message",copyMessage:"Copier le message",referenceMessage:"Message de référence",generateTitle:"Générer un titre IA",unpin:"Détacher",pin:"Épingle"},fileReference:{title:"@ Référence du fichier",setWorkspace:"Définir l'espace de travail",noMatches:"Aucun fichier correspondant trouvé",emptyDirectory:"Le répertoire est vide"},commandSelector:{types:{mcp:"PCM"}},streaming:{assistant:"Assistant"}},settings:{configTab:{toolsLoadFailed:"Échec du chargement des outils disponibles",toolsReloadSuccess:"Liste d'outils rechargée",toolsSaveSuccess:"Paramètres de l'outil enregistrés avec succès",toolsSaveFailed:"Échec de l'enregistrement des paramètres de l'outil",languageHindi:"hindi"},modelLimits:{placeholders:{vendor:"OpenAI / Google / Moonshot"},columns:{notes:"Remarques",actions:"Actes"}},systemPromptManager:{title:"Gestion des invites système",addButton:"Ajouter une invite",defaultPromptLocked:"Les invites système par défaut sont verrouillées et ne peuvent pas être modifiées.",updateSuccess:"Invite mise à jour avec succès",addSuccess:"Invite ajoutée avec succès",saveError:"Échec de l'enregistrement de l'invite. Veuillez réessayer.",deleteSuccess:"Invite supprimée avec succès",deleteError:"Échec de la suppression de l'invite. Veuillez réessayer.",deleteConfirm:"Êtes-vous sûr de supprimer cette invite ?",defaultTag:"Par défaut (verrouillé)",editTitle:"Modifier l'invite système",addTitle:"Ajouter une nouvelle invite système",nameLabel:"Nom de l'invite",nameRequired:"Veuillez saisir le nom de l'invite !",descriptionLabel:"Description rapide",descriptionRequired:"Veuillez saisir la description de l'invite !",contentLabel:"Contenu rapide",contentRequired:"Veuillez saisir le contenu de l'invite !"},envVars:{title:"Variables d'environnement",description:"Les variables sont injectées dans les processus de l'outil Bash. Les variables secrètes sont chiffrées au repos.",fetchError:"Échec du chargement des variables d'environnement",created:"Variable créée",updated:"Variable mise à jour",saveError:"Échec de l'enregistrement de la variable",deleted:"Variable supprimée",deleteError:"Échec de la suppression de la variable",addButton:"Ajouter une variable",noVars:"Aucune variable d'environnement configurée",addTitle:"Ajouter une variable d'environnement",editTitle:"Modifier une variable",nameRequired:"Le nom de la variable est obligatoire",nameInvalid:"Doit commencer par une lettre ou un trait de soulignement, suivi de lettres, de chiffres ou de traits de soulignement",valueRequired:"La valeur est requise pour les nouvelles variables",valueEditHint:"Laisser vide pour conserver la valeur existante",valuePlaceholder:"Entrez la valeur",valuePlaceholderEdit:"Entrez une nouvelle valeur ou laissez vide",secretHint:"Les variables secrètes sont chiffrées sur le disque et masquées dans l'interface utilisateur",descriptionPlaceholder:"Description facultative",deleteConfirm:"Supprimer cette variable ?",notSet:"(non réglé)",empty:"(vide)",save:"Sauvegarder",cancel:"Annuler",name:"Nom",value:"Valeur",secret:"Secrète",descriptionField:"Description",type:"Taper",plain:"Plaine",descriptionCol:"Description",actions:"Actes",yes:"Oui",no:"Non"},hooksTab:{mode:{ocr:"ROC (Windows)",vision:"Vision (LLM)",placeholder:"Espace réservé"},modeLabel:"Mode"},providerTab:{fastModel:"Modèle rapide (facultatif)",fastModelHelp:"Modèle moins cher/plus rapide pour les tâches légères telles que la génération de titres, la correction de sirène et la synthèse. Utilise le modèle par défaut lorsqu'il n'est pas défini.",visionModel:"Modèle de vision (facultatif)",visionModelHelp:"Modèle capable de vision pour la compréhension des images. Lorsque hooks.image_fallback.mode est défini sur « vision », ce modèle décrit les images sous forme de texte afin que les modèles contenant uniquement du texte puissent les comprendre. Utilise le modèle par défaut lorsqu'il n'est pas défini.",sameAsDefault:"Identique au modèle par défaut",providerNames:{openai:"OpenAI",anthropic:"Anthropique",gemini:"Gémeaux",copilot:"Copilote"}},mcpTab:{statusHelp:{connecting:"Le serveur démarre ou se reconnecte",ready:"Le serveur est connecté et sert les outils normalement",degraded:"Le serveur est partiellement disponible ; certains outils peuvent échouer",stopped:"Le serveur ne fonctionne pas",error:"Le serveur n'a pas pu démarrer ou a rencontré des erreurs d'exécution"}},metricsDashboard:{sessionsCount:"{{count}} séances",tokensAmount:"{{value}} jetons",sessionsTabLabel:"Séances ({{count}})",roundColumns:{tokens:"Jetons"},multiplierSuffix:"x",sessionDetail:{messages:"Messages"}},page:{tabs:{prompts:"Invites",mermaid:"Sirène",mcp:"PCM",sessions:"Séances",hooks:"Crochets"}},appTab:{languageHindi:"hindi"},modelMappingCard:{modelTypeOpus:"Opus",modelTypeSonnet:"Sonnet",modelTypeHaiku:"Haïku"},mermaidTab:{switchAuto:"Auto",flowchartCurveOptions:{cardinal:"Cardinal"}},schedulesTab:{columns:{actions:"Actes"},actions:{sessions:"Séances"}},sessionsTab:{id:"identifiant"},mcpServerTable:{columns:{actions:"Actes"},transportOptions:{sse:"ESS",stdio:"Stdio"}},mcpServerForm:{modeJson:"JSON",transportOptions:{stdio:"Stdio",sse:"ESS"},arguments:"Arguments"},metricsTable:{session:{columns:{session:"Session",tokens:"Jetons",messages:"Messages",action:"Action"}},forward:{columns:{id:"IDENTIFIANT",type:"Taper",tokens:"Jetons"}}},charts:{total:"Total",prompt:"Rapide",chat:"Chat"}},components:{markdown:{codeCopiedSuccess:"Code copié dans le presse-papier",copyFailed:"Échec de la copie"},jsonSchema:{noProperties:"Aucune propriété dans le schéma",field:"Champ",type:"Taper",required:"Requis",yes:"Oui",no:"Non",default:"Défaut",description:"Description"},imageGrid:{ocr:"ROC"},tokenUsage:{messages:"Messages",tokens:"jetons"},approval:{workflow:"Flux de travail"}}},E={common:{saveAnyway:"फिर भी सहेजें",parentDirectory:"मूल निर्देशिका",currentPath:"वर्तमान पथ:",cancel:"रद्द करना",ok:"ठीक है",apply:"आवेदन करना",save:"बचाना",delete:"मिटाना",yes:"हाँ",no:"नहीं",home:"घर",download:"डाउनलोड करना",directory:"निर्देशिका",file:"फ़ाइल"},chat:{workspace:{placeholder:"जैसे /उपयोगकर्ता/ऐलिस/वर्कस्पेस/मायप्रोजेक्ट",descriptionP1:"एक कार्यस्थान पथ सेट करें ताकि फ़ाइल संदर्भ और कार्यस्थान उपकरण फ़ाइलों को विश्वसनीय रूप से हल कर सकें।",descriptionP2:"कोई मौजूदा प्रोजेक्ट फ़ोल्डर चुनें. आप अभी भी अमान्य पथ के साथ जारी रख सकते हैं, लेकिन हो सकता है कि संबंधित सुविधाएं ठीक से काम न करें।"},folderBrowser:{title:"कार्यस्थान फ़ोल्डर चुनें",selectCurrent:"वर्तमान फ़ोल्डर का चयन करें",emptyFolder:"यह फ़ोल्डर खाली है",tip:'युक्ति: दर्ज करने के लिए किसी फ़ोल्डर पर क्लिक करें, पुष्टि करने के लिए "वर्तमान फ़ोल्डर का चयन करें" पर क्लिक करें'},actions:{regenerate:"प्रतिक्रिया पुनः उत्पन्न करें",retryFailed:"विफल अनुरोध पुनः प्रयास करें",retryOptions:"पुनः प्रयास करें विकल्प",cancelRequest:"अनुरोध को रद्द करें",sendMessage:"मेसेज भेजें",copyMessage:"संदेश कॉपी करें",referenceMessage:"संदर्भ संदेश",generateTitle:"एआई शीर्षक उत्पन्न करें",unpin:"अनपिन",pin:"नत्थी करना"},fileReference:{title:"@फ़ाइल संदर्भ",setWorkspace:"कार्यक्षेत्र सेट करें",noMatches:"कोई मेल खाती फ़ाइलें नहीं मिलीं",emptyDirectory:"निर्देशिका खाली है"},commandSelector:{types:{mcp:"एमसीपी"}}},settings:{notifications:{deleteAllSuccess:"सभी सत्र हटा दिए गए (पिन किए गए को छोड़कर)",deleteEmptySuccess:"खाली सत्र हटा दिए गए (पिन किए गए को छोड़कर)",localStorageCleared:"स्थानीय भंडारण साफ़ कर दिया गया है",resetSuccessReloading:"Application reset successful. पुनः लोड हो रहा है...",resetFailed:"एप्लिकेशन रीसेट करने में विफल",autoTitleEnabled:"स्वतः शीर्षक निर्माण सक्षम",autoTitleDisabled:"स्वतः शीर्षक पीढ़ी अक्षम",autoTitleUpdateFailed:"स्वतः शीर्षक प्राथमिकता अद्यतन करने में विफल",promptEnhancementSaved:"सिस्टम प्रॉम्प्ट एन्हांसमेंट सहेजा गया"},appTab:{deleteAllTitle:"सभी सत्र हटाएँ",deleteAllDescription:"क्या आपको यकीन है? इससे पिन किए गए को छोड़कर सभी सत्र हटा दिए जाएंगे.",deleteAllButton:"सभी सत्र हटाएँ",deleteEmptyTitle:"खाली सत्र हटाएँ",deleteEmptyDescription:"क्या आपको यकीन है? इससे बिना किसी संदेश वाले (पिन किए गए को छोड़कर) सभी सत्र हटा दिए जाएंगे।",deleteEmptyButton:"खाली सत्र हटाएँ",clearLocalStorageTitle:"स्थानीय संग्रहण साफ़ करें",clearLocalStorageDescription:"क्या आपको यकीन है? यह सभी स्थानीय संग्रहण डेटा को हटा देगा और एप्लिकेशन को रीसेट कर देगा।",clearLocalStorageButton:"स्थानीय संग्रहण साफ़ करें",confirmDeleteAll:"हाँ, सभी हटा दें",confirmDeleteEmpty:"हां, खाली हटाएं",confirmClear:"हाँ, इसे साफ़ करें",dangerDescription:"इन कार्रवाइयों को पूर्ववत नहीं किया जा सकता. सारा डेटा स्थायी रूप से हटा दिया जाएगा.",resetApplicationTitle:"एप्लिकेशन रीसेट करें",resetApplicationIntro:"क्या आपको यकीन है? यह करेगा:",resetStepDeleteAllSessions:"सभी सत्र हटाएं (पिन किए गए सहित)",resetStepClearStorage:"सभी स्थानीय संग्रहण डेटा साफ़ करें",resetStepResetConfig:"config.json को डिफ़ॉल्ट पर रीसेट करें",resetStepSetupFlow:"अगले लॉन्च पर प्रारंभिक सेटअप प्रवाह ट्रिगर करें",resetStepReload:"एप्लिकेशन पुनः लोड करें",resetConfirm:"हाँ, सब कुछ रीसेट करें",resetButton:"एप्लिकेशन रीसेट करें (सभी डेटा)"},configTab:{loadConfigFailed:"कॉन्फ़िगरेशन लोड करने में विफल",invalidConfig:"अमान्य कॉन्फ़िगरेशन",saveConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया",saveConfigFailed:"कॉन्फ़िगरेशन सहेजने में विफल",toolsLoadFailed:"उपलब्ध उपकरण लोड करने में विफल",toolsReloadSuccess:"टूल सूची पुनः लोड की गई",toolsSaveSuccess:"टूल सेटिंग सफलतापूर्वक सहेजी गईं",toolsSaveFailed:"टूल सेटिंग सहेजने में विफल",backendSaved:"बैकएंड यूआरएल सहेजा गया",backendResetDefault:"बैकएंड यूआरएल डिफ़ॉल्ट पर रीसेट हो गया"},modelMappingCard:{loadProviderFailed:"प्रदाता कॉन्फ़िगरेशन लोड करने में विफल",loadMappingsFailed:"मौजूदा मैपिंग लोड करने में विफल",loadModelsFailed:"मॉडल लोड करने में विफल",loadModelsHint:"मॉडल लोड करने में विफल. कृपया अपने प्रदाता कॉन्फ़िगरेशन की जाँच करें।",mappingSaved:"मॉडल मैपिंग सहेजी गई",mappingSaveFailed:"मॉडल मैपिंग सहेजने में विफल",enterModelName:"कृपया एक मॉडल नाम दर्ज करें",customMappingSaved:"कस्टम मॉडल मैपिंग सहेजी गई",customMappingSaveFailed:"कस्टम मॉडल मैपिंग सहेजने में विफल",mappedModelNotFound:'मैप किया गया मॉडल "{{model}}" वर्तमान प्रदाता के उपलब्ध मॉडल में नहीं मिला',cached:"(कैश्ड)",modelTypeOpus:"ओपुस",modelTypeSonnet:"गाथा",modelTypeHaiku:"हाइकू"},modelTab:{selectModelTitle:"मॉडल का चयन करें",loadingModels:"मॉडल लोड हो रहे हैं...",selectModelPlaceholder:"एक मॉडल चुनें",backendApiBaseUrlTitle:"बैकएंड एपीआई बेस यूआरएल",resetToDefault:"वितथ पर ले जाएं",backendApiHint:"/v1 (उदा. {{example}}) सहित पूर्ण आधार URL होना चाहिए।",save:"बचाना"},mermaidTab:{title:"जलपरी आरेख सेटिंग्स",description:"अनुकूलित करें कि आपकी चैट में मरमेड आरेख कैसे प्रस्तुत किए जाते हैं",themeLabel:"जलपरी थीम",themeTooltip:"एक अंतर्निर्मित मरमेड थीम चुनें। ऐप थीम के आधार पर प्रकाश और अंधेरे के बीच डिफ़ॉल्ट और न्यूट्रल ऑटो-स्विच।",themeOptions:{default:"डिफ़ॉल्ट (ऑटो लाइट/डार्क)",neutral:"तटस्थ (ऑटो लाइट/डार्क)",forest:"वन (हरा स्वर)",base:"आधार (न्यूनतम)",dark:"अँधेरा"},themeDescriptionsTitle:"थीम विवरण:",themeDescriptions:{default:"डिफ़ॉल्ट: क्लासिक मरमेड लुक, प्रकाश/अंधेरे में स्वतः अनुकूलित",neutral:"तटस्थ: ग्रे टोन, प्रकाश/अंधेरे के लिए स्वतः अनुकूलित",dark:"डार्क: हमेशा डार्क थीम",forest:"वन: हरा रंग योजना, तकनीकी आरेखों के लिए अच्छा है",base:"आधार: कस्टम थीम के लिए न्यूनतम स्टाइल"},globalCardTitle:"वैश्विक सेटिंग्स",fontSizeLabel:"फ़ॉन्ट आकार",fontSizeTooltip:"सभी आरेख पाठ के लिए आधार फ़ॉन्ट आकार (पिक्सेल में)",defaultZoomLabel:"डिफ़ॉल्ट ज़ूम",defaultZoomTooltip:"आरेखों के लिए प्रारंभिक ज़ूम स्तर (1.0 = 100%)",responsiveWidthLabel:"प्रतिक्रियाशील चौड़ाई",responsiveWidthTooltip:"आरेखों को कंटेनर की चौड़ाई के अनुकूल बनाने में सक्षम करें। निश्चित-चौड़ाई वाले आरेखों के लिए अक्षम करें.",flowchartCardTitle:"फ़्लोचार्ट सेटिंग्स",flowchartNodeSpacingLabel:"नोड रिक्ति",flowchartNodeSpacingTooltip:"नोड्स के बीच क्षैतिज दूरी",flowchartRankSpacingLabel:"रैंक रिक्ति",flowchartRankSpacingTooltip:"परतों के बीच लंबवत दूरी",flowchartCurveTypeLabel:"वक्र प्रकार",flowchartCurveTypeTooltip:"कनेक्शन के लिए वक्र का प्रकार",flowchartCurveOptions:{basis:"चिकना (आधार)",linear:"रेखीय",cardinal:"कार्डिनल"},sequenceCardTitle:"अनुक्रम आरेख सेटिंग्स",sequenceActorMarginLabel:"अभिनेता मार्जिन",sequenceActorMarginTooltip:"अभिनेताओं के बीच अंतर",sequenceMessageMarginLabel:"संदेश मार्जिन",sequenceMessageMarginTooltip:"संदेशों के बीच अंतर",sequenceActorWidthLabel:"अभिनेता चौड़ाई",sequenceActorWidthTooltip:"प्रत्येक अभिनेता बॉक्स की चौड़ाई",sequenceActorHeightLabel:"अभिनेता की ऊंचाई",sequenceActorHeightTooltip:"प्रत्येक अभिनेता बॉक्स की ऊंचाई",ganttCardTitle:"गैंट चार्ट सेटिंग्स",ganttBarHeightLabel:"बार की ऊंचाई",ganttBarHeightTooltip:"प्रत्येक कार्य पट्टी की ऊंचाई",ganttTopPaddingLabel:"शीर्ष गद्दी",ganttTopPaddingTooltip:"चार्ट के शीर्ष पर स्थान",resetToDefaults:"डिफ़ॉल्ट पर पुनः सेट करें",previewDescription:"परिवर्तन तुरंत लागू होते हैं. अपनी सेटिंग्स को क्रियान्वित होते देखने के लिए एक आरेख बनाने या देखने का प्रयास करें।",themeCardTitle:"विषय",switchAuto:"ऑटो",switchFixed:"तय",previewTitle:"पूर्व दर्शन"},modelLimits:{title:"टोकन बजट मॉडल सीमाएँ",descriptionPrefix:"संदर्भ बजटिंग के लिए प्रति-मॉडल टोकन सीमाएं कॉन्फ़िगर करें। ये सेटिंग्स बांस में विश्व स्तर पर कायम हैं",descriptionSuffix:"और बैकएंड रिज़ॉल्वर द्वारा उपयोग किया जाता है।",defaultsTitle:"मॉडल डिफ़ॉल्ट",defaultsDescription:"GPT-5 / GPT-4 / जेमिनी / किमी / GLM डिफ़ॉल्ट के साथ प्रीलोडेड। आप आवश्यकतानुसार संपादन जारी रख सकते हैं।",migratedFromLocalStorage:"स्थानीय भंडारण से वैश्विक कॉन्फिगरेशन में स्थानांतरित मॉडल सीमाएँ।",loadFailed:"मॉडल सीमा सेटिंग लोड करने में विफल",saveSuccess:"मॉडल सीमाएँ वैश्विक कॉन्फ़िगरेशन में सहेजी गईं",saveFailed:"मॉडल सीमा सेटिंग सहेजने में विफल",resetSuccess:"मॉडल सीमाएँ उत्पाद डिफ़ॉल्ट पर रीसेट हो गईं",resetFailed:"मॉडल सीमा सेटिंग रीसेट करने में विफल",defaults:{gpt54:"तर्क की गहराई के साथ शीर्ष स्तरीय क्षमता।",gpt53Codex:"कोड रीफैक्टरिंग वर्कफ़्लोज़ के लिए अनुकूलित।",gpt52Pro:"जटिल कार्यों के लिए मजबूत तार्किक स्थिरता।",gpt5Mini:"तेज़ और लागत प्रभावी सामान्य प्रयोजन विकल्प।",gpt41:"1M विंडो वाला क्लासिक बड़े-संदर्भ वाला मॉडल।",gpt4o:"कम विलंबता, रोजमर्रा की चैट के लिए उपयुक्त।",gemini25Pro:"मजबूत मल्टीमॉडल विश्लेषण क्षमताएं।",kimiK25:"दीर्घ-रूप वाली चीनी सामग्री के लिए पसंदीदा।",kimiCoding:"कोडिंग-केंद्रित परिदृश्यों के लिए ट्यून किया गया।",glm5:"एक-शॉट बड़े-दस्तावेज़ निर्माण के लिए अच्छा है।"},columns:{contextWindow:"प्रसंग विंडो",maxOutput:"अधिकतम आउटपुट",model:"नमूना",notes:"टिप्पणियाँ",actions:"कार्रवाई"},placeholders:{vendor:"ओपनएआई/गूगल/मूनशॉट",model:"जैसे जीपीटी-5.4-सोच",optional:"वैकल्पिक"},actions:{addRow:"लाइन जोड़ो",resetToDefaults:"डिफ़ॉल्ट पर पुनः सेट करें",remove:"निकालना",save:"बचाना",reload:"पुनः लोड करें"},validation:{atLeastOneRow:"कृपया कम से कम एक मॉडल सीमा पंक्ति रखें।",modelPatternEmpty:"मॉडल पैटर्न खाली नहीं हो सकता.",duplicateModelPattern:"डुप्लिकेट मॉडल पैटर्न: {{pattern}}",contextWindowMin:"{{pattern}} के लिए संदर्भ विंडो कम से कम 1000 होनी चाहिए।",maxOutputMin:"{{pattern}} के लिए अधिकतम आउटपुट कम से कम 1 होना चाहिए।",maxOutputExceedsContext:"{{pattern}} के लिए अधिकतम आउटपुट संदर्भ विंडो से कम या उसके बराबर होना चाहिए।",safetyMarginNegative:"{{pattern}} के लिए सुरक्षा मार्जिन नकारात्मक नहीं हो सकता।",safetyMarginTooLarge:"{{pattern}} के लिए सुरक्षा मार्जिन संदर्भ विंडो से छोटा होना चाहिए।"}},systemPromptManager:{title:"सिस्टम प्रॉम्प्ट प्रबंधन",addButton:"संकेत जोड़ें",defaultPromptLocked:"डिफ़ॉल्ट सिस्टम संकेत लॉक हैं और संपादित नहीं किए जा सकते।",updateSuccess:"संकेत सफलतापूर्वक अद्यतन किया गया",addSuccess:"संकेत सफलतापूर्वक जोड़ा गया",saveError:"संकेत सहेजने में विफल. कृपया पुन: प्रयास करें।",deleteSuccess:"संकेत सफलतापूर्वक हटा दिया गया",deleteError:"संकेत हटाने में विफल. कृपया पुन: प्रयास करें।",deleteConfirm:"क्या आप निश्चित रूप से इस संकेत को हटाना चाहते हैं?",defaultTag:"डिफ़ॉल्ट (लॉक)",editTitle:"सिस्टम प्रॉम्प्ट संपादित करें",addTitle:"नया सिस्टम प्रॉम्प्ट जोड़ें",nameLabel:"शीघ्र नाम",nameRequired:"कृपया प्रॉम्प्ट का नाम इनपुट करें!",descriptionLabel:"शीघ्र विवरण",descriptionRequired:"कृपया प्रॉम्प्ट का विवरण दर्ज करें!",contentLabel:"शीघ्र सामग्री",contentRequired:"कृपया प्रॉम्प्ट की सामग्री इनपुट करें!"},envVars:{title:"पर्यावरण चर",description:"वैरिएबल को बैश टूल प्रक्रियाओं में इंजेक्ट किया जाता है। गुप्त चर आराम से एन्क्रिप्ट किए गए हैं।",fetchError:"पर्यावरण चर लोड करने में विफल",created:"वेरिएबल बनाया गया",updated:"वेरिएबल अद्यतन किया गया",saveError:"वेरिएबल सहेजने में विफल",deleted:"वेरिएबल हटा दिया गया",deleteError:"वेरिएबल हटाने में विफल",addButton:"वेरिएबल जोड़ें",noVars:"कोई पर्यावरण चर कॉन्फ़िगर नहीं किया गया",addTitle:"पर्यावरण चर जोड़ें",editTitle:"वेरिएबल संपादित करें",nameRequired:"वेरिएबल नाम आवश्यक है",nameInvalid:"एक अक्षर या अंडरस्कोर से शुरू होना चाहिए, उसके बाद अक्षर, अंक या अंडरस्कोर होना चाहिए",valueRequired:"नए वेरिएबल के लिए मान आवश्यक है",valueEditHint:"मौजूदा मान बनाए रखने के लिए खाली छोड़ें",valuePlaceholder:"मान दर्ज करें",valuePlaceholderEdit:"नया मान दर्ज करें या खाली छोड़ दें",secretHint:"गुप्त चर डिस्क पर एन्क्रिप्ट किए गए हैं और यूआई में छिपाए गए हैं",descriptionPlaceholder:"वैकल्पिक विवरण",deleteConfirm:"यह वेरिएबल हटाएं?",notSet:"(सेट नहीं)",empty:"(खाली)",save:"बचाना",cancel:"रद्द करना",name:"नाम",value:"कीमत",secret:"गुप्त",descriptionField:"विवरण",type:"प्रकार",plain:"मैदान",descriptionCol:"विवरण",actions:"कार्रवाई",yes:"हाँ",no:"नहीं"},promptsTab:{title:"सिस्टम प्रॉम्प्ट एन्हांसमेंट",mermaidEnhancement:"जलपरी संवर्धन",taskListRules:"साझा कार्य नियम",copilotConclusionWithOptionsBeforeFinish:"समाप्त होने से पहले सह-पायलट ने_उपयोगकर्ता से पूछा",enhancementPlaceholder:"प्रत्येक सिस्टम प्रॉम्प्ट में जोड़ने के लिए वैश्विक एन्हांसमेंट टेक्स्ट जोड़ें।",saveEnhancement:"संवर्द्धन सहेजें",description:"प्रत्येक अनुरोध भेजे जाने से पहले इस पाठ को पहले जोड़ा जाता है, उसके बाद सक्षम सिस्टम संवर्द्धन जोड़ा जाता है।",switchOn:"पर",switchOff:"बंद"},hooksTab:{title:"छवि हुक",enableImagePreflight:"छवि प्रीफ़्लाइट हुक सक्षम करें",description:"प्लेसहोल्डर मोड छवियों को पाठ सारांश में फिर से लिखता है (यह उन टूल को तोड़ सकता है जो वास्तविक छवि डेटा की अपेक्षा करते हैं)। OCR वर्तमान में केवल विंडोज़ है।",loadFailed:"हुक सेटिंग्स लोड करने में विफल",updateFailed:"हुक अद्यतन करने में विफल",modeUpdateFailed:"हुक मोड अपडेट करने में विफल",enabled:"छवि हुक सक्षम",disabled:"छवि हुक अक्षम किए गए",modeUpdated:"इमेज हुक मोड इस पर सेट है: {{mode}}",mode:{ocr:"ओसीआर (विंडोज़)",vision:"विजन (एलएलएम)",placeholder:"प्लेसहोल्डर",error:"गलती"},modeLabel:"तरीका"},schedulesTab:{loadFailed:"शेड्यूल लोड करने में विफल",loadSessionsFailed:"शेड्यूल सत्र लोड करने में विफल",createFailed:"शेड्यूल बनाने में विफल",updateFailed:"शेड्यूल अपडेट करने में विफल",deleteFailed:"शेड्यूल हटाने में विफल",runNowFailed:"शेड्यूल चलाने में विफल",taskMessageRequired:"ऑटो एक्ज़ीक्यूट सक्षम होने पर कार्य संदेश आवश्यक है",created:"शेड्यूल बनाया गया",updated:"शेड्यूल अपडेट किया गया",deleted:"हटाया गया शेड्यूल",enqueuedRun:"कतारबद्ध भागो",optional:"(वैकल्पिक)",defaultName:"मेरी अनुसूची",createTitle:"शेड्यूल बनाएं",scheduleSessionsTitle:"सत्र अनुसूची",noSessionsYet:"अभी तक कोई सत्र नहीं.",editTitle:"शेड्यूल संपादित करें",columns:{autoExecute:"स्वतः निष्पादित",intervalSeconds:"अंतराल",nextRun:"अगला रन",lastRun:"आखरी बार",name:"नाम",model:"नमूना",enabled:"सक्रिय",actions:"कार्रवाई"},form:{intervalSeconds:"अंतराल सेकंड",taskMessage:"कार्य संदेश",taskMessagePlaceholder:"(वैकल्पिक) चलाने के लिए एक कार्य",modelPlaceholder:"(वैकल्पिक) उदा. जीपीटी-4ओ-मिनी",modelRequiredIfAuto:"यदि स्वतः निष्पादित हो तो आवश्यक है",autoExecute:"स्वतः निष्पादित",systemPrompt:"सिस्टम प्रॉम्प्ट",workspacePath:"कार्यक्षेत्र पथ",enhancePrompt:"प्रॉम्प्ट बढ़ाएँ",name:"नाम",enabled:"सक्रिय",model:"नमूना"},validation:{nameRequired:"नाम आवश्यक है",intervalRequired:"अंतराल आवश्यक है"},actions:{runNow:"अब दौड़े",create:"बनाएं",refresh:"ताज़ा करना",edit:"संपादन करना",sessions:"सत्र",delete:"मिटाना",open:"खुला",save:"बचाना"},yes:"हाँ",no:"नहीं",listTitle:"अनुसूचियों"},sessionsTab:{currentSessionTitle:"वर्तमान सत्र",clearMessages:"संदेश साफ़ करें",clearMessagesTitle:"सत्र संदेश साफ़ करें",clearMessagesContent:"यह वर्तमान सत्र के लिए संदेश/अनुलग्नक साफ़ करता है लेकिन सत्र प्रविष्टि रखता है।",sessionCleared:"सत्र साफ़ हो गया",noActiveSession:"कोई सक्रिय सत्र नहीं.",bulkCleanupTitle:"थोक सफ़ाई",keepPinned:"पिन करके रखें",deleteAll:"सभी हटा दो",deleteAllTitle:"सभी सत्र हटाएँ",deleteAllKeepPinned:"पिन किए गए को छोड़कर सभी सत्र हटा देता है।",deleteAllIncludePinned:"पिन किए गए सहित सभी सत्र हटा देता है।",deleteEmpty:"रिक्त हटाएँ",deleteEmptyTitle:"खाली सत्र हटाएँ",deleteEmptyKeepPinned:"पिन किए गए को छोड़कर खाली सत्र हटा देता है।",deleteEmptyIncludePinned:"पिन किए गए सहित खाली सत्र हटा देता है।",deleteChildren:"बच्चों को हटाएँ",deleteChildrenTitle:"बाल सत्र हटाएँ",deleteChildrenKeepPinned:"पिन किए गए को छोड़कर सभी चाइल्ड सत्र हटा देता है।",deleteChildrenIncludePinned:"पिन किए गए सहित सभी चाइल्ड सत्र हटा देता है।",cleanupComplete:"सफ़ाई पूर्ण",devResetTitle:"विकास रीसेट",devResetDescription:"सत्र संग्रहण के लिए ग्रीनफ़ील्ड रीसेट (सत्र हटाता है/ और session.json रीसेट करता है)।",devResetAction:"देव रीसेट सत्र",devResetConfirmTitle:"सत्र संग्रहण रीसेट करें (डेव)",devResetConfirmContent:"यह सभी सत्रों (पिन किए गए/चाइल्ड सहित) को हटा देता है और सत्र सूचकांक को रीसेट कर देता है। रीफ्रेश के बाद एक नया खाली सत्र बनाया जाएगा।",devResetDone:"सत्र संग्रहण रीसेट",id:"पहचान",kind:"दयालु",clear:"स्पष्ट",cancel:"रद्द करना",delete:"मिटाना",reset:"रीसेट करें"},workflowsTab:{description:"वर्कफ़्लो को `~/.bamboo/workflows` में मार्कडाउन फ़ाइलों के रूप में संग्रहीत किया जाता है। चैट में वर्कफ़्लो सम्मिलित करने के लिए `/name` का उपयोग करें।",loadFailed:"वर्कफ़्लो लोड करने में विफल",loadContentFailed:"वर्कफ़्लो सामग्री लोड करने में विफल",invalidName:"अमान्य वर्कफ़्लो नाम",nameAlreadyExists:"इस नाम का एक वर्कफ़्लो पहले से मौजूद है",saved:"वर्कफ़्लो सहेजा गया",saveFailed:"वर्कफ़्लो सहेजने में विफल",deleted:"वर्कफ़्लो हटा दिया गया",deleteFailed:"वर्कफ़्लो हटाने में विफल",newWorkflow:"नया वर्कफ़्लो",empty:"कोई वर्कफ़्लो नहीं मिला",namePlaceholder:"वर्कफ़्लो नाम",contentPlaceholder:`# वर्कफ़्लो शीर्षक
|
|
7
7
|
|
|
8
8
|
यहां वर्कफ़्लो चरणों का वर्णन करें.`,title:"वर्कफ़्लो",refresh:"ताज़ा करना",save:"बचाना"},providerTab:{title:"एलएलएम प्रदाता कॉन्फ़िगरेशन",description:'अपने पसंदीदा एलएलएम प्रदाता को कॉन्फ़िगर करें। जब आप "कॉन्फ़िगरेशन सहेजें और लागू करें" पर क्लिक करेंगे तो कॉन्फ़िगरेशन सहेजा और लागू किया जाएगा।',currentProvider:"वर्तमान प्रदाता",activeProvider:"सक्रिय एलएलएम प्रदाता",selectProviderRequired:"कृपया एक प्रदाता चुनें",saveAndApply:"कॉन्फ़िगरेशन सहेजें और लागू करें",loadConfigFailed:"प्रदाता कॉन्फ़िगरेशन लोड करने में विफल",checkStatusFailed:"स्थिति जाँचने में विफल",startCopilotAuthFailed:"कोपायलट प्रमाणीकरण प्रारंभ करने में विफल",copilotAuthSuccess:"सहपायलट प्रमाणीकरण सफल!",providerReloaded:"प्रदाता ने नए प्रमाणीकरण के साथ पुनः लोड किया।",completeAuthFailed:"प्रमाणीकरण पूर्ण होने में विफल रहा. कृपया पुन: प्रयास करें।",userCodeCopied:"उपयोगकर्ता कोड क्लिपबोर्ड पर कॉपी किया गया!",copyCodeFailedPrefix:"कोड कॉपी करने में विफल. कृपया मैन्युअल रूप से कॉपी करें:",logoutSuccess:"कोपायलट से लॉग आउट किया गया",logoutFailed:"कोपायलट से लॉगआउट करने में विफल",unknownError:"अज्ञात त्रुटि",invalidConfig:"अमान्य कॉन्फ़िगरेशन",invalidConfigPrefix:"अमान्य कॉन्फ़िगरेशन",fetchModelsCopilotFailed:"मॉडल लाने में विफल. कृपया कोपायलट को प्रमाणित करें और पुनः प्रयास करें।",fetchModelsFailed:"मॉडल लाने में विफल. कृपया अपनी एपीआई कुंजी और आधार यूआरएल जांचें।",noModelsReturned:"कोई मॉडल वापस नहीं आया. पहले कोपायलट को प्रमाणित करें, फिर मॉडल लाएँ।",foundModels:"{{count}} उपलब्ध मॉडल मिले",fetchModelsErrorPrefix:"मॉडल लाने में विफल",saveConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया",saveConfigFailed:"कॉन्फ़िगरेशन सहेजने में विफल",saveConfigErrorPrefix:"कॉन्फ़िगरेशन सहेजने में विफल",applyConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक लागू किया गया. नई बातचीत के लिए परिवर्तन प्रभावी होंगे.",applyConfigFailed:"कॉन्फ़िगरेशन लागू करने में विफल",applyConfigErrorPrefix:"कॉन्फ़िगरेशन लागू करने में विफल",modelUpdated:"मॉडल सफलतापूर्वक अपडेट किया गया",updateModelFailed:"मॉडल अद्यतन करने में विफल",updateModelErrorPrefix:"मॉडल अद्यतन करने में विफल",fetchingModels:"मॉडल लाये जा रहे हैं...",refreshModelsFrom:"{{source}} से उपलब्ध मॉडल ताज़ा करें",fetchModelsFrom:"{{source}} से उपलब्ध मॉडल प्राप्त करें",saveModelChangeFailed:"मॉडल परिवर्तन सहेजने में विफल",fetchModelsFailedShort:"मॉडल लाने में विफल",openaiConfigTitle:"ओपनएआई कॉन्फ़िगरेशन",openaiConfigDescription:"GPT मॉडल का उपयोग करने के लिए अपनी OpenAI API कुंजी दर्ज करें। आप वैकल्पिक रूप से प्रॉक्सी सर्वर के लिए एक कस्टम बेस यूआरएल निर्दिष्ट कर सकते हैं।",openaiApiKey:"ओपनएआई एपीआई कुंजी",openaiApiKeyRequired:"कृपया अपनी OpenAI API कुंजी दर्ज करें",baseUrlOptional:"आधार यूआरएल (वैकल्पिक)",openaiBaseUrlHelp:"डिफ़ॉल्ट OpenAI API एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें (उदाहरण के लिए, /v1)।",defaultModel:"डिफ़ॉल्ट मॉडल",fastModel:"तेज़ मॉडल (वैकल्पिक)",fastModelHelp:"शीर्षक निर्माण, जलपरी निर्धारण और सारांशीकरण जैसे हल्के कार्यों के लिए सस्ता/तेज़ मॉडल। सेट न होने पर डिफ़ॉल्ट मॉडल का उपयोग करता है।",visionModel:"विज़न मॉडल (वैकल्पिक)",visionModelHelp:"छवि समझ के लिए दृष्टि-सक्षम मॉडल। जबhooks.image_fallback.mode को 'विज़न' पर सेट किया जाता है, तो यह मॉडल छवियों को टेक्स्ट के रूप में वर्णित करता है ताकि केवल टेक्स्ट वाले मॉडल उन्हें समझ सकें। सेट न होने पर डिफ़ॉल्ट मॉडल का उपयोग करता है।",sameAsDefault:"डिफ़ॉल्ट मॉडल के समान",selectModelRequired:"कृपया एक मॉडल चुनें",selectModel:"एक मॉडल चुनें",responsesOnlyModelsOptional:"केवल प्रतिक्रियाएँ मॉडल (वैकल्पिक)",responsesOnlyHelp1:"कुछ मॉडल केवल OpenAI रिस्पॉन्स API (चैट/पूर्णता नहीं) का समर्थन करते हैं। बैम्बू को अपस्ट्रीम का उपयोग करने के लिए मजबूर करने के लिए यहां मॉडल आईडी जोड़ें",responsesOnlyHelp2:"सटीक मिलान (उदा. gpt-5.3-कोडेक्स) और अनुगामी * (उदा. gpt-5*) के साथ उपसर्ग मिलान का समर्थन करता है।",anthropicConfigTitle:"मानवशास्त्रीय विन्यास",anthropicConfigDescription:"क्लाउड मॉडल का उपयोग करने के लिए अपनी एंथ्रोपिक एपीआई कुंजी दर्ज करें।",anthropicApiKey:"एंथ्रोपिक एपीआई कुंजी",anthropicApiKeyRequired:"कृपया अपनी एंथ्रोपिक एपीआई कुंजी दर्ज करें",anthropicBaseUrlHelp:"डिफ़ॉल्ट एंथ्रोपिक एपीआई एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें (उदाहरण के लिए, /v1)।",maxTokensOptional:"अधिकतम टोकन (वैकल्पिक)",maxTokensHelp:"उत्पन्न करने के लिए टोकन की अधिकतम संख्या",geminiConfigTitle:"गूगल जेमिनी कॉन्फ़िगरेशन",geminiConfigDescription:"जेमिनी मॉडल का उपयोग करने के लिए अपनी Google AI API कुंजी दर्ज करें।",geminiApiKey:"जेमिनी एपीआई कुंजी",geminiApiKeyRequired:"कृपया अपनी जेमिनी एपीआई कुंजी दर्ज करें",geminiBaseUrlHelp:"डिफ़ॉल्ट Google AI API एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें।",copilotConfigTitle:"GitHub सहपायलट कॉन्फ़िगरेशन",copilotConfigDescription:"GitHub Copilot OAuth प्रमाणीकरण का उपयोग करता है। किसी API कुंजी की आवश्यकता नहीं है. सुनिश्चित करें कि आपके पास सक्रिय GitHub Copilot सदस्यता है।",authStatusTitle:"प्रमाणीकरण स्थिति",notAuthenticated:"प्रमाणित नहीं",logoutCopilot:"कोपायलट से लॉगआउट करें",authenticateCopilot:"सहपायलट को प्रमाणित करें",refreshStatus:"ताज़ा स्थिति",headlessAuth:"नेतृत्वहीन प्रमाणीकरण",headlessAuthHelp:"ब्राउज़र को स्वचालित रूप से खोलने के बजाय कंसोल में लॉगिन यूआरएल प्रिंट करें",noModelsLoaded:'अभी तक कोई मॉडल लोड नहीं किया गया. "बैकएंड से उपलब्ध मॉडल प्राप्त करें" पर क्लिक करें।',authFirstThenFetch:"पहले कोपायलट को प्रमाणित करें, फिर मॉडल लाएँ।",copilotUsageTitle:"GitHub Copilot का उपयोग करने के लिए:",copilotUsageStep1:"सुनिश्चित करें कि आपके पास सक्रिय GitHub Copilot सदस्यता है",copilotUsageStep2:'डिवाइस कोड प्रवाह प्रारंभ करने के लिए "प्रमाणीकृत सहपायलट" पर क्लिक करें',copilotUsageStep3:"प्रमाणीकरण पूरा करने के लिए अपने टर्मिनल में दिए गए निर्देशों का पालन करें",copilotAuthModalTitle:"सहपायलट प्रमाणीकरण",completedAuthorization:"मैंने प्राधिकरण पूरा कर लिया है",browserOpened:"ब्राउज़र अपने आप खुल गया",authStep1:"आपके ब्राउज़र में एक GitHub पेज खुल जाना चाहिए",authStep2:"नीचे दिए गए कोड को कॉपी करें और GitHub पेज पर पेस्ट करें",authStep3:'अधिकृत करने के लिए GitHub पर "जारी रखें" पर क्लिक करें',visitUrl:"1. इस यूआरएल पर जाएँ:",enterCode:"2. यह कोड दर्ज करें:",copied:"नकल की गई!",copyCode:"कोड कॉपी करें",afterContinueHint:'GitHub पर "जारी रखें" पर क्लिक करने के बाद, नीचे "मैंने प्राधिकरण पूरा कर लिया है" बटन पर क्लिक करें।',retry:"पुन: प्रयास करें",authenticated:"प्रमाणीकृत",cancel:"रद्द करना",providerNames:{openai:"ओपनएआई",anthropic:"anthropic",gemini:"मिथुन",copilot:"सह पायलट"}},mcpTab:{statusGuideTitle:"स्थिति मार्गदर्शिका:",statusHelp:{connecting:"सर्वर प्रारंभ हो रहा है या पुनः कनेक्ट हो रहा है",ready:"सर्वर जुड़ा हुआ है और उपकरण सामान्य रूप से परोस रहा है",degraded:"सर्वर आंशिक रूप से उपलब्ध है; कुछ उपकरण विफल हो सकते हैं",stopped:"सर्वर नहीं चल रहा है",error:"सर्वर प्रारंभ करने में विफल रहा या रनटाइम त्रुटियों का सामना करना पड़ा"},statusLastError:"अंतिम त्रुटि: {{error}}",serverDeleted:"एमसीपी सर्वर हटा दिया गया",deleteServerFailed:"MCP सर्वर को हटाने में विफल",connectedTo:"{{name}} से कनेक्टेड",connectServerFailed:"MCP सर्वर कनेक्ट करने में विफल",disconnected:"डिस्कनेक्ट किया गया {{name}}",disconnectServerFailed:"एमसीपी सर्वर को डिस्कनेक्ट करने में विफल",toolsRefreshedFor:"{{name}} के लिए उपकरण ताज़ा किए गए",refreshToolsFailed:"उपकरण ताज़ा करने में विफल",statusRefreshed:"एमसीपी स्थिति ताज़ा की गई",refreshStatusFailed:"MCP स्थिति ताज़ा करने में विफल",noServerForEditing:"संपादन के लिए कोई सर्वर चयनित नहीं",savedServer:"सहेजा गया{{name}}",addedServer:"जोड़ा गया{{name}}",saveServerFailed:"MCP सर्वर सहेजने में विफल",copiedConfig:"एमसीपी कॉन्फिगरेशन को क्लिपबोर्ड पर कॉपी किया गया",clipboardUnavailable:"क्लिपबोर्ड उपलब्ध नहीं है. निर्यात को मोडल में दिखाया गया है।",invalidJsonPrefix:"अमान्य JSON",unknownError:"अज्ञात त्रुटि",jsonMustBeObject:"JSON एक ऑब्जेक्ट होना चाहिए",missingMcpServers:`'mcpServers' गुम है। पूर्ण क्लाउड डेस्कटॉप-शैली कॉन्फिग भाग चिपकाएँ: { "mcpServers": {... } }`,importSummary:"आयातित {{count}} सर्वर ({{added}} जोड़ा गया, {{updated}} अद्यतन किया गया, {{removed}} हटाया गया)। {{failed}} प्रारंभ करने में विफल रहा.",importStartFailures:"कुछ सर्वर प्रारंभ नहीं हुए. कॉन्फ़िगरेशन सहेजा गया है; त्रुटियाँ देखने के लिए सर्वर सूची खोलें।",importFailed:"MCP सर्वर आयात करने में विफल",overviewTitle:"एमसीपी सिंहावलोकन",overviewDescription:"बाहरी एमसीपी सर्वर कॉन्फ़िगर करें और पंजीकृत टूल उपनामों का निरीक्षण करें।",totalServers:"कुल सर्वर: {{count}}",totalTools:"कुल उपकरण: {{count}}",serversTitle:"एमसीपी सर्वर",addServer:"सर्वर जोड़ें",refreshAll:"सभी को रीफ्रेश करें",importModalTitle:"एमसीपी सर्वर आयात करें",importHint:"क्लाउड डेस्कटॉप-शैली कॉन्फिग भाग चिपकाएँ। उदाहरण:",importModeMerge:"मर्ज (अप्सर्ट)",importModeReplace:"बदलें (अन्य हटाएं)",replaceWarning:"रिप्लेसमेंट मोड मौजूदा एमसीपी सर्वर को हटा देगा जो आयातित एमसीपी सर्वर में मौजूद नहीं हैं।",status:{connecting:"कनेक्ट",ready:"तैयार",degraded:"अपमानित",stopped:"रुक गया",error:"गलती"},export:"निर्यात",import:"आयात"},mcpServerTable:{columns:{transportType:"परिवहन प्रकार",toolCount:"उपकरण गणना",name:"नाम",status:"स्थिति",actions:"कार्रवाई"},deleteTitle:"MCP सर्वर हटाएँ",deleteDescription:'सर्वर "{{name}}" हटाएं?',empty:"कोई MCP सर्वर कॉन्फ़िगर नहीं किया गया",actions:{refreshTools:"ताज़ा उपकरण",edit:"संपादन करना",delete:"मिटाना",disconnect:"डिस्कनेक्ट",connect:"जोड़ना"},transportOptions:{sse:"एसएसई",stdio:"स्टूडियो"}},mcpToolList:{title:"एमसीपी उपकरण",selectServerHint:"इसके एमसीपी टूल्स का निरीक्षण करने के लिए एक सर्वर का चयन करें",empty:"इस सर्वर के लिए कोई उपकरण नहीं मिला",noDescription:"कोई विवरण उपलब्ध नहीं",aliasMapping:"उपनाम मानचित्रण",parametersSchema:"पैरामीटर स्कीमा"},mcpServerForm:{jsonMustBeObject:"JSON एक ऑब्जेक्ट होना चाहिए",detectedBulkConfig:"एमसीपीसर्वर (बल्क कॉन्फ़िगरेशन) का पता लगाया गया। थोक आयात के लिए एमसीपी टैब आयात बटन का उपयोग करें, या यहां एकल सर्वर कॉन्फ़िगरेशन पेस्ट करें।",missingIdField:"गुम या अमान्य आईडी फ़ील्ड",missingTransportField:"गुम या अमान्य परिवहन फ़ील्ड",missingTransportInfo:"परिवहन संबंधी जानकारी अनुपलब्ध. या तो ट्रांसपोर्ट (बोधि प्रारूप) या कमांड/यूआरएल (मुख्यधारा एमसीपी प्रारूप) अपेक्षित है।",invalidJson:"अमान्य JSON: {{message}}",unknownError:"अज्ञात त्रुटि",editTitle:"एमसीपी सर्वर संपादित करें",addTitle:"एमसीपी सर्वर जोड़ें",jsonError:"JSON त्रुटि",serverId:"सर्वर आईडी",serverIdRequired:"सर्वर आईडी आवश्यक है",serverIdPatternError:"केवल अक्षरों, संख्याओं, अंडरस्कोर और हाइफ़न का उपयोग करें",displayName:"प्रदर्शित होने वाला नाम",enabledHelp:"अक्षम सर्वर कॉन्फ़िगरेशन में बने रहेंगे लेकिन प्रारंभ नहीं होंगे।",transportType:"परिवहन प्रकार",transportTypeRequired:"परिवहन प्रकार आवश्यक है",commandRequired:"आदेश आवश्यक है",argumentsPlaceholder:"एक तर्क जोड़ें और Enter दबाएँ",envVars:"पर्यावरण चर",addEnv:"पर्यावरण जोड़ें",keyRequired:"कुंजी आवश्यक है",sseUrl:"एसएसई यूआरएल",sseUrlRequired:"एसएसई यूआरएल आवश्यक है",validUrlRequired:"क्रुपया मान्य यूआरएल दर्ज करें",addHeader:"शीर्षलेख जोड़ें",headerNameRequired:"शीर्षलेख नाम आवश्यक है",save:"बचाना",modeForm:"रूप",modeJson:"JSON",enabled:"सक्रिय",transportOptions:{stdio:"स्टूडियो",sse:"एसएसई"},command:"आज्ञा",arguments:"बहस",headers:"हेडर"},metricsCards:{totalSessions:"कुल सत्र",chatTokens:"चैट टोकन",totalToolCalls:"कुल टूल कॉल",avgSessionDuration:"औसत सत्र अवधि"},forwardMetricsCards:{totalForwardRequests:"कुल अग्रेषित अनुरोध",successRate:"सफलता दर",forwardTokens:"टोकन अग्रेषित करें",avgResponseTime:"औसत प्रतिक्रिया समय"},unifiedMetricsCards:{totalRequests:"कुल अनुरोध",totalTokens:"कुल टोकन",successRate:"सफलता दर",avgResponseTime:"औसत प्रतिक्रिया समय",chatSessions:"चैट सत्र",chatTokens:"चैट टोकन",toolCalls:"टूल कॉल",avgSessionDuration:"औसत सत्र अवधि",forwardRequests:"अग्रेषित अनुरोध",forwardTokens:"टोकन अग्रेषित करें",successful:"सफल",failed:"असफल"},metricsTable:{session:{columns:{toolCalls:"टूल कॉल",session:"सत्र",model:"नमूना",status:"स्थिति",started:"शुरू कर दिया",duration:"अवधि",tokens:"टोकन",messages:"संदेशों",action:"कार्रवाई"},view:"देखना"},forward:{totalRequests:"{{total}} अनुरोध",empty:"इस श्रेणी के लिए कोई अग्रेषित अनुरोध दर्ज नहीं किया गया",columns:{id:"पहचान",endpoint:"endpoint",model:"नमूना",type:"प्रकार",status:"स्थिति",tokens:"टोकन",duration:"अवधि",started:"शुरू कर दिया",error:"गलती"},typeStream:"धारा",typeSync:"साथ-साथ करना"}},metricsDashboard:{roundColumns:{toolCalls:"टूल कॉल",round:"गोल",status:"स्थिति",duration:"अवधि",tokens:"टोकन"},compactStats:{combinedTokens:"संयुक्त टोकन",chatTokens:"चैट टोकन",forwardTokens:"टोकन अग्रेषित करें",avgTokensPerSession:"औसत टोकन/सत्र",estimatedTimeSaved:"ईएसटी। समय की बचत हुई",estimatedEfficiencyLift:"ईएसटी। दक्षता लिफ्ट",estimatedSpeedMultiplier:"ईएसटी। गति गुणक",estimatedSavedWorkdays:"ईएसटी। सहेजे गए कार्यदिवस",avgRoundsPerSession:"औसत राउंड/सत्र",toolCallsPerSession:"टूल कॉल/सत्र",activeSessionRate:"सक्रिय सत्र दर",avgTokensPerForward:"औसत टोकन/फॉरवर्ड",forwardErrorRate:"अग्रेषित त्रुटि दर",streamingRatio:"स्ट्रीमिंग अनुपात",p95ForwardLatency:"P95 फॉरवर्ड विलंबता",modelCoverage:"मॉडल कवरेज",endpointCoverage:"समापन बिंदु कवरेज"},startDate:"आरंभ करने की तिथि",endDate:"अंतिम तिथि",daysOption:"{{value}} दिन",derivedMetricsTitle:"व्युत्पन्न मेट्रिक्स (संक्षिप्त)",derivedMetricsSubtitle:"अतिरिक्त पृष्ठ लंबाई के बिना अधिक आयाम",efficiencyHint:"दक्षता अनुमान रूढ़िवादी मान्यताओं का उपयोग करते हैं: {{manualTpm}} मैनुअल टोकन/मिनट + {{manualToolMinutes}} मिनट/टूल बनाम {{assistedTpm}} सहायता प्राप्त टोकन/मिनट + {{assistedToolMinutes}} मिनट/टूल, फिर {{realization}}% प्राप्ति और कैप्स ({{maxLift}}% / {{maxMultiplier}}x) लागू करें।",toolUsageTitle:"उपकरण उपयोग आवृत्ति",noToolUsage:"इस श्रेणी के लिए कोई टूल कॉल रिकॉर्ड नहीं की गई।",activityHeatmapTitle:"दैनिक गतिविधि हीटमैप",noActivity:"इस श्रेणी के लिए कोई गतिविधि उपलब्ध नहीं है.",sessionsCount:"{{count}} सत्र",tokensAmount:"{{value}} टोकन",sessionsTabLabel:"सत्र ({{count}})",chatSessionsLabel:"चैट सत्र ({{count}})",sessionsHint:"पूरे दौर के विवरण के लिए एक सत्र पर क्लिक करें",forwardTabLabel:"अग्रेषित अनुरोध ({{count}})",detailedMetricsTitle:"विस्तृत मेट्रिक्स",sessionMetricsTitle:"सत्र मेट्रिक्स",loadingSessionDetails:"सत्र विवरण लोड हो रहा है...",sessionDetail:{sessionId:"सत्र आईडी",totalTokens:"कुल टोकन",toolCalls:"टूल कॉल",model:"नमूना",status:"स्थिति",duration:"अवधि",messages:"संदेशों"},noDetail:"कोई विवरण उपलब्ध नहीं है.",multiplierSuffix:"एक्स",filtersTitle:"फिल्टर",refresh:"ताज़ा करना",model:"नमूना",granularity:{daily:"दैनिक",weekly:"साप्ताहिक",monthly:"महीने के"},dashboardTitle:"डैशबोर्ड",tabs:{overview:"सिंहावलोकन",analysis:"विश्लेषण",records:"अभिलेख"},calls:"कॉल"},charts:{tokenUsageOverTime:"समय के साथ टोकन का उपयोग",unifiedTokenUsageOverTime:"समय के साथ टोकन का उपयोग (चैट + फॉरवर्ड)",noTokenUsage:"कोई टोकन उपयोग उपलब्ध नहीं है",tokenUsageDescription:"दिन/अवधि के अनुसार शीघ्रता, पूर्णता और कुल टोकन।",unifiedTokenUsageDescription:"समय के साथ संयुक्त चैट और फॉरवर्ड टोकन उपयोग।",modelDistribution:"मॉडल वितरण",noModelMetrics:"कोई मॉडल मेट्रिक्स उपलब्ध नहीं है",modelDistributionDescription:"मॉडल द्वारा उपभोग किए गए कुल टोकन का हिस्सा।",endpointDistribution:"समापन बिंदु वितरण",noForwardMetrics:"इस श्रेणी के लिए कोई फ़ॉरवर्ड मेट्रिक्स उपलब्ध नहीं है।",total:"कुल",prompt:"तत्पर",completion:"समापन",chat:"बात करना",forward:"आगे"},page:{tabs:{mermaid:"जलपरी",mcp:"एमसीपी"},groups:{ai:"ऐ"}}},components:{markdown:{codeCopiedSuccess:"कोड क्लिपबोर्ड पर कॉपी किया गया",copyFailed:"प्रतिलिपि विफल"},jsonSchema:{noProperties:"स्कीमा में कोई गुण नहीं",field:"मैदान",type:"प्रकार",required:"आवश्यक",yes:"हाँ",no:"नहीं",default:"गलती करना",description:"विवरण"},imageGrid:{ocr:"ओसीआर"}}},L="lotus_ui_locale_v1",g="en-US",b=["en-US","zh-CN","zh-TW","fr-FR","ja-JP","hi-IN"],q=t=>t?b.includes(t):!1,I=()=>{var a;if(typeof window>"u")return g;try{const i=window.localStorage,n=i&&typeof i.getItem=="function"?i.getItem(L):null;if(q(n))return n}catch{}const t=((a=window.navigator.language)==null?void 0:a.toLowerCase())??"";return t.startsWith("zh")?t.includes("tw")||t.includes("hk")||t.includes("mo")||t.includes("hant")?"zh-TW":"zh-CN":t.startsWith("fr")?"fr-FR":t.startsWith("ja")?"ja-JP":t.startsWith("hi")?"hi-IN":g},e=h["en-US"].translation,r=h["zh-CN"].translation,T=t=>!!t&&typeof t=="object"&&!Array.isArray(t),f=(t,a)=>{const i={...t};for(const[n,o]of Object.entries(a)){const s=i[n];if(T(s)&&T(o)){i[n]=f(s,o);continue}i[n]=o}return i},l={...e,app:{...e.app,loading:"Chargement...",retry:"Réessayer",backendNotReachable:"Le back-end est inaccessible à {{baseUrl}} (dernière erreur : {{message}})"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"Nouvelle session",empty:{noSessions:"Pas encore de sessions",hint:'Cliquez sur "Nouvelle session" pour commencer'},dateGroups:{today:"Aujourd'hui",yesterday:"Hier",thisWeek:"Cette semaine",thisMonth:"Ce mois-ci",pinned:"Épinglé",scheduled:"Planifié"},actions:{collapseChildren:"Réduire les sessions enfants",expandChildren:"Développer les sessions enfants"}}},settings:{...e.settings,page:{...e.settings.page,back:"Retour",title:"Paramètres système",tabs:{...e.settings.page.tabs,config:"Configuration",prompts:"Prompts",mermaid:"Mermaid",skills:"Compétences",workflows:"Flux de travail",mcp:"MCP",modelLimits:"Limites des modèles",metrics:"Métriques",schedules:"Planifications",sessions:"Sessions",app:"Application",provider:"Fournisseur",hooks:"Hooks",masking:"Masquage"},groups:{...e.settings.page.groups,ai:"IA",toolsAndExtensions:"Outils & Extensions",securityAndPrivacy:"Sécurité",monitoring:"Surveillance",system:"Système"}},notifications:{...e.settings.notifications,deleteAllSuccess:"Toutes les sessions ont été supprimées (hors épinglées)",deleteEmptySuccess:"Les sessions vides ont été supprimées (hors épinglées)",localStorageCleared:"Le stockage local a été effacé",resetSuccessReloading:"Réinitialisation de l'application réussie. Rechargement...",resetFailed:"Échec de la réinitialisation de l'application",autoTitleEnabled:"Génération automatique des titres activée",autoTitleDisabled:"Génération automatique des titres désactivée",autoTitleUpdateFailed:"Échec de la mise à jour de la préférence de titre automatique",promptEnhancementSaved:"Amélioration du prompt système enregistrée"},configTab:{...e.settings.configTab,loadConfigFailed:"Échec du chargement de la configuration",invalidConfig:"Configuration invalide",saveConfigSuccess:"Configuration enregistrée avec succès",saveConfigFailed:"Échec de l'enregistrement de la configuration",backendSaved:"URL du back-end enregistrée",backendResetDefault:"URL du back-end rétablie par défaut",providerMovedTitle:"Configuration du fournisseur déplacée",providerMovedDescription:"Les paramètres GitHub Copilot et d'autres fournisseurs ont été déplacés vers l'onglet Paramètres fournisseur. Configurez-les là-bas.",backendApiBaseUrlTitle:"URL de base de l'API du back-end",backendApiHint:"Doit inclure le chemin /v1",resetToDefault:"Rétablir les valeurs par défaut",save:"Enregistrer",language:"Langue",languageEnglish:"Anglais",languageChinese:"Chinois simplifié",languageTraditionalChinese:"Chinois traditionnel",languageFrench:"Français",languageJapanese:"Japonais",languageHindi:"Hindi"},appTab:{...e.settings.appTab,autoGenerateTitle:"Générer automatiquement les titres de session",autoGenerateTitleDesc:"Lorsqu'elle est activée, l'application génère un titre descriptif après la première réponse de l'assistant.",switchOn:"ACTIVÉ",switchOff:"DÉSACTIVÉ",darkMode:"Mode sombre",darkModeDark:"Sombre",darkModeLight:"Clair",language:"Langue",languageEnglish:"Anglais",languageChinese:"Chinois simplifié",languageTraditionalChinese:"Chinois traditionnel",languageFrench:"Français",languageJapanese:"Japonais",languageHindi:"Hindi",deleteAllTitle:"Supprimer toutes les sessions",deleteAllDescription:"Voulez-vous continuer ? Cette action supprimera toutes les sessions, sauf celles épinglées.",deleteAllButton:"Supprimer toutes les sessions",deleteEmptyTitle:"Supprimer les sessions vides",deleteEmptyDescription:"Voulez-vous continuer ? Cette action supprimera toutes les sessions sans message (hors sessions épinglées).",deleteEmptyButton:"Supprimer les sessions vides",clearLocalStorageTitle:"Effacer le stockage local",clearLocalStorageDescription:"Voulez-vous continuer ? Cette action supprimera toutes les données locales et réinitialisera l'application.",clearLocalStorageButton:"Effacer le stockage local",confirmDeleteAll:"Oui, tout supprimer",confirmDeleteEmpty:"Oui, supprimer les vides",confirmClear:"Oui, effacer",cancel:"Annuler",dangerZone:"Zone dangereuse",dangerDescription:"Ces actions sont irréversibles. Toutes les données seront supprimées définitivement.",resetApplicationTitle:"Réinitialiser l'application",resetApplicationIntro:"Voulez-vous continuer ? Cette action va :",resetStepDeleteAllSessions:"Supprimer TOUTES les sessions (y compris les épinglées)",resetStepClearStorage:"Effacer toutes les données du stockage local",resetStepResetConfig:"Réinitialiser config.json aux valeurs par défaut",resetStepSetupFlow:"Relancer l'assistant de configuration au prochain démarrage",resetStepReload:"Recharger l'application",resetConfirm:"Oui, tout réinitialiser",resetButton:"Réinitialiser l'application (toutes les données)",runningVersion:"Version en cours",runningVersionDesc:"Il s'agit de la version frontend Lotus actuellement en cours d'exécution."},networkCard:{...e.settings.networkCard,title:"Paramètres réseau",httpProxy:"Proxy HTTP",httpsProxy:"Proxy HTTPS",proxyAuthTitle:"Authentification du proxy",proxyConfiguredForUser:"Configuré pour l'utilisateur : {{username}}",clearCredentials:"Effacer les identifiants",username:"Nom d'utilisateur",password:"Mot de passe",apply:"Appliquer",credentialsStorageNote:"Les identifiants du proxy sont stockés de façon chiffrée dans ~/.bamboo/config.json",reload:"Recharger",save:"Enregistrer"},modelMappingCard:{...e.settings.modelMappingCard,loadProviderFailed:"Échec du chargement de la configuration du fournisseur",loadMappingsFailed:"Échec du chargement des mappages existants",loadModelsFailed:"Échec du chargement des modèles",loadModelsHint:"Impossible de charger les modèles. Vérifiez la configuration du fournisseur.",mappingSaved:"Mappage de modèle enregistré",mappingSaveFailed:"Échec de l'enregistrement du mappage de modèle",enterModelName:"Veuillez saisir un nom de modèle",customMappingSaved:"Mappage de modèle personnalisé enregistré",customMappingSaveFailed:"Échec de l'enregistrement du mappage de modèle personnalisé",collapseTitle:"Mappage de modèles Anthropic",description:"Configurez les modèles {{provider}} à utiliser lorsque Claude CLI demande des modèles spécifiques.",loadModelsErrorTitle:"Échec du chargement des modèles",retry:"Réessayer",loadingModels:"Chargement des modèles...",modelTypeOpusDescription:'correspond aux modèles contenant "opus"',modelTypeSonnetDescription:'correspond aux modèles contenant "sonnet"',modelTypeHaikuDescription:'correspond aux modèles contenant "haiku"',selectModelPlaceholder:"Sélectionner le modèle {{label}}",customModelOption:"Modèle personnalisé...",mappedModelNotFound:'Le modèle mappé "{{model}}" est introuvable dans les modèles disponibles du fournisseur actuel',refreshModels:"Actualiser les modèles",currentProvider:"Fournisseur actuel",loadingProvider:"Chargement...",availableModels:"Modèles disponibles",cached:"(en cache)",storedIn:"Enregistré dans",customModalTitle:"Saisir un nom de modèle personnalisé",customModalDescription:"Saisissez un nom de modèle personnalisé pour {{modelType}}",customModalPlaceholder:"ex. : gpt-4-turbo-preview",customModalNote:"Note : assurez-vous que ce nom de modèle est valide pour le fournisseur actuel.",save:"Enregistrer",cancel:"Annuler"},modelTab:{...e.settings.modelTab,selectModelTitle:"Sélectionner un modèle",loadingModels:"Chargement des modèles...",selectModelPlaceholder:"Sélectionner un modèle",backendApiBaseUrlTitle:"URL de base de l'API du back-end",resetToDefault:"Rétablir les valeurs par défaut",save:"Enregistrer",backendApiHint:"Doit être une URL de base complète incluant /v1 (ex. {{example}})."},common:{...e.settings.common,loading:"Chargement...",successful:"Réussi",failed:"Échec"},promptsTab:{...e.settings.promptsTab,title:"Amélioration du prompt système",mermaidEnhancement:"Amélioration Mermaid",taskListRules:"Règles de tâches partagées",copilotConclusionWithOptionsBeforeFinish:"Copilot conclusion_with_options avant de terminer",switchOn:"ACTIVÉ",switchOff:"DÉSACTIVÉ",enhancementPlaceholder:"Ajoutez un texte d'amélioration global à ajouter à chaque prompt système.",saveEnhancement:"Enregistrer l'amélioration",description:"Ce texte est ajouté en premier, suivi des améliorations système activées, avant l'envoi de chaque requête."},hooksTab:{...e.settings.hooksTab,title:"Hooks d'images",enableImagePreflight:"Activer le hook de pré-vérification d'image",modeLabel:"Mode",description:"Le mode Placeholder réécrit les images en résumés textuels (cela peut perturber les outils qui attendent de vraies données d'image). L'OCR est actuellement disponible uniquement sous Windows.",loadFailed:"Échec du chargement des paramètres de hooks",updateFailed:"Échec de la mise à jour des hooks",modeUpdateFailed:"Échec de la mise à jour du mode de hook",enabled:"Hooks d'image activés",disabled:"Hooks d'image désactivés",modeUpdated:"Mode du hook d'image défini sur : {{mode}}",mode:{...e.settings.hooksTab.mode,error:"Erreur"}},keywordMaskingTab:{...e.settings.keywordMaskingTab,title:"Masquage de mots-clés",addKeyword:"Ajouter un mot-clé",description:"Configurez les mots-clés à masquer avant l'envoi vers l'API Copilot. Utilisez une correspondance exacte pour les chaînes littérales ou des regex pour les motifs. Toutes les correspondances seront remplacées par [MASKED].",empty:"Aucune règle de masquage de mots-clés configurée",cancel:"Annuler",patternPlaceholder:"Saisissez un motif à rechercher",examples:"Exemples",exactMatch:"Correspondance exacte",regexPattern:"Motif regex",enabled:"Activé",disabled:"Désactivé",sampleText:"Texte d'exemple",sampleTextPlaceholder:"Saisissez un texte d'exemple",maskedPreview:"Aperçu du masquage",emptyPattern:"(vide)",loadFailed:"Échec du chargement de la configuration de masquage de mots-clés",saveFailed:"Échec de l'enregistrement de la configuration",saveSuccess:"Configuration de masquage de mots-clés enregistrée",validationFailedPrefix:"Échec de validation",patternRequired:"Le motif ne peut pas être vide",example:{...e.settings.keywordMaskingTab.example,literalToken:"Masquer un jeton littéral",githubTokens:"Masquer les jetons GitHub",awsKeys:"Masquer les clés AWS",emails:"Masquer les adresses e-mail"}},workflowsTab:{...e.settings.workflowsTab,title:"Flux de travail",description:"Les workflows sont stockés dans `~/.bamboo/workflows` sous forme de fichiers Markdown. Utilisez `/nom` pour insérer un workflow dans le chat.",loadFailed:"Échec du chargement des flux de travail",loadContentFailed:"Échec du chargement du contenu du flux",invalidName:"Nom de flux invalide",nameAlreadyExists:"Un flux avec ce nom existe déjà",saved:"Flux de travail enregistré",saveFailed:"Échec de l'enregistrement du flux de travail",deleted:"Flux de travail supprimé",deleteFailed:"Échec de la suppression du flux de travail",refresh:"Actualiser",newWorkflow:"Nouveau flux",save:"Enregistrer",empty:"Aucun flux de travail trouvé",namePlaceholder:"Nom du flux",contentPlaceholder:`# Titre du flux
|
|
9
9
|
|
|
10
|
-
Décrivez ici les étapes du flux de travail.`},mermaidTab:{...e.settings.mermaidTab,title:"Paramètres des diagrammes Mermaid",description:"Personnalisez le rendu des diagrammes Mermaid dans vos conversations",themeCardTitle:"Thème",themeLabel:"Thème Mermaid",themeTooltip:"Choisissez un thème Mermaid intégré. Les thèmes Default et Neutral basculent automatiquement selon le thème clair/sombre de l'application.",themeOptions:{...e.settings.mermaidTab.themeOptions,default:"Par défaut (clair/sombre auto)",neutral:"Neutre (clair/sombre auto)",dark:"Sombre",forest:"Forêt (tons verts)",base:"Base (minimal)"},themeDescriptionsTitle:"Descriptions des thèmes :",themeDescriptions:{...e.settings.mermaidTab.themeDescriptions,default:"Par défaut : apparence Mermaid classique, s'adapte automatiquement au clair/sombre",neutral:"Neutre : tons gris, s'adapte automatiquement au clair/sombre",dark:"Sombre : thème sombre permanent",forest:"Forêt : palette verte, adaptée aux diagrammes techniques",base:"Base : style minimal, pour un thème personnalisé"},globalCardTitle:"Paramètres globaux",fontSizeLabel:"Taille de police",fontSizeTooltip:"Taille de police de base pour tout le texte du diagramme (en pixels)",defaultZoomLabel:"Zoom par défaut",defaultZoomTooltip:"Niveau de zoom initial des diagrammes (1,0 = 100 %)",responsiveWidthLabel:"Largeur adaptative",responsiveWidthTooltip:"Active l'adaptation du diagramme à la largeur du conteneur. Désactivez pour une largeur fixe.",switchAuto:"Auto",switchFixed:"Fixe",flowchartCardTitle:"Paramètres du diagramme de flux",flowchartNodeSpacingLabel:"Espacement des nœuds",flowchartNodeSpacingTooltip:"Espacement horizontal entre les nœuds",flowchartRankSpacingLabel:"Espacement des niveaux",flowchartRankSpacingTooltip:"Espacement vertical entre les couches",flowchartCurveTypeLabel:"Type de courbe",flowchartCurveTypeTooltip:"Type de courbe pour les connexions",flowchartCurveOptions:{...e.settings.mermaidTab.flowchartCurveOptions,basis:"Lisse (Basis)",linear:"Linéaire",cardinal:"Cardinal"},sequenceCardTitle:"Paramètres des diagrammes de séquence",sequenceActorMarginLabel:"Marge des acteurs",sequenceActorMarginTooltip:"Espacement entre les acteurs",sequenceMessageMarginLabel:"Marge des messages",sequenceMessageMarginTooltip:"Espacement entre les messages",sequenceActorWidthLabel:"Largeur des acteurs",sequenceActorWidthTooltip:"Largeur de chaque bloc d'acteur",sequenceActorHeightLabel:"Hauteur des acteurs",sequenceActorHeightTooltip:"Hauteur de chaque bloc d'acteur",ganttCardTitle:"Paramètres du diagramme de Gantt",ganttBarHeightLabel:"Hauteur des barres",ganttBarHeightTooltip:"Hauteur de chaque barre de tâche",ganttTopPaddingLabel:"Marge supérieure",ganttTopPaddingTooltip:"Espace en haut du graphique",resetToDefaults:"Rétablir les valeurs par défaut",previewTitle:"Aperçu",previewDescription:"Les changements sont appliqués immédiatement. Créez ou ouvrez un diagramme pour voir le résultat."},modelLimits:{...e.settings.modelLimits,title:"Limites de modèles (budget de tokens)",descriptionPrefix:"Configurez les limites de tokens par modèle pour le budget de contexte. Ces paramètres sont enregistrés globalement dans Bamboo",descriptionSuffix:"et utilisés par le résolveur du back-end.",defaultsTitle:"Valeurs par défaut des modèles",defaultsDescription:"Préchargé avec des valeurs par défaut GPT-5 / GPT-4 / Gemini / Kimi / GLM. Vous pouvez les modifier selon vos besoins.",migratedFromLocalStorage:"Limites de modèles migrées du stockage local vers la configuration globale.",loadFailed:"Échec du chargement des limites de modèles",saveSuccess:"Limites de modèles enregistrées dans la configuration globale",saveFailed:"Échec de l'enregistrement des limites de modèles",resetSuccess:"Limites de modèles réinitialisées aux valeurs par défaut",resetFailed:"Échec de la réinitialisation des limites de modèles",defaults:{...e.settings.modelLimits.defaults,gpt54:"Capacité haut de gamme avec une grande profondeur de raisonnement.",gpt53Codex:"Optimisé pour les workflows de refactorisation de code.",gpt52Pro:"Forte stabilité logique pour les tâches complexes.",gpt5Mini:"Option rapide et économique pour un usage général.",gpt41:"Modèle classique à grand contexte avec fenêtre 1M.",gpt4o:"Faible latence, adapté aux conversations quotidiennes.",gemini25Pro:"Solides capacités d'analyse multimodale.",kimiK25:"Préféré pour les contenus chinois longs.",kimiCoding:"Ajusté pour les scénarios orientés développement.",glm5:"Bon pour la génération one-shot de longs documents."},columns:{...e.settings.modelLimits.columns,vendor:"Fournisseur/Série",model:"Modèle",contextWindow:"Fenêtre de contexte",maxOutput:"Sortie maximale",notes:"Notes",actions:"Actions"},placeholders:{...e.settings.modelLimits.placeholders,vendor:"OpenAI / Google / Moonshot",model:"p. ex. gpt-5.4-thinking",optional:"Optionnel"},actions:{...e.settings.modelLimits.actions,remove:"Supprimer",addRow:"Ajouter une ligne",save:"Enregistrer",resetToDefaults:"Rétablir les valeurs par défaut",reload:"Recharger"},validation:{...e.settings.modelLimits.validation,atLeastOneRow:"Veuillez conserver au moins une ligne de limite de modèle.",modelPatternEmpty:"Le motif du modèle ne peut pas être vide.",duplicateModelPattern:"Motif de modèle dupliqué : {{pattern}}",contextWindowMin:"La fenêtre de contexte pour {{pattern}} doit être d'au moins 1000.",maxOutputMin:"La sortie maximale pour {{pattern}} doit être d'au moins 1.",maxOutputExceedsContext:"La sortie maximale pour {{pattern}} doit être inférieure ou égale à la fenêtre de contexte.",safetyMarginNegative:"La marge de sécurité pour {{pattern}} ne peut pas être négative.",safetyMarginTooLarge:"La marge de sécurité pour {{pattern}} doit être inférieure à la fenêtre de contexte."}},schedulesTab:{...e.settings.schedulesTab,loadFailed:"Échec du chargement des planifications",loadSessionsFailed:"Échec du chargement des sessions de planification",createFailed:"Échec de la création de la planification",updateFailed:"Échec de la mise à jour de la planification",deleteFailed:"Échec de la suppression de la planification",runNowFailed:"Échec de l'exécution immédiate de la planification",taskMessageRequired:"Le message de tâche est requis lorsque l'exécution automatique est activée",created:"Planification créée",updated:"Planification mise à jour",deleted:"Planification supprimée",enqueuedRun:"Exécution mise en file d'attente",loading:"Chargement...",yes:"Oui",no:"Non",optional:"(optionnel)",defaultName:"Ma tâche planifiée",createTitle:"Créer une planification",listTitle:"Tâches planifiées",scheduleSessionsTitle:"Sessions planifiées",noSessionsYet:"Aucune session pour le moment.",editTitle:"Modifier la planification",columns:{...e.settings.schedulesTab.columns,name:"Nom",autoExecute:"Exécution automatique",model:"Modèle",enabled:"Activé",intervalSeconds:"Intervalle (s)",nextRun:"Prochaine exécution",lastRun:"Dernière exécution",actions:"Actions"},form:{...e.settings.schedulesTab.form,name:"Nom",intervalSeconds:"Intervalle (secondes)",enabled:"Activé",taskMessage:"Consigne de tâche",taskMessagePlaceholder:"(Optionnel) Consigne à exécuter",model:"Modèle",modelPlaceholder:"(Optionnel) ex. gpt-4o-mini",modelRequiredIfAuto:"Requis si l'exécution automatique est activée",autoExecute:"Exécution automatique",systemPrompt:"Prompt système",workspacePath:"Chemin de l'espace de travail",enhancePrompt:"Améliorer le prompt"},validation:{...e.settings.schedulesTab.validation,nameRequired:"Le nom est requis",intervalRequired:"L'intervalle est requis"},actions:{...e.settings.schedulesTab.actions,create:"Créer",refresh:"Actualiser",edit:"Modifier",runNow:"Exécuter maintenant",sessions:"Sessions",delete:"Supprimer",open:"Ouvrir",save:"Enregistrer"}},sessionsTab:{...e.settings.sessionsTab,currentSessionTitle:"Session actuelle",id:"id",kind:"type",clearMessages:"Effacer les messages",clearMessagesTitle:"Effacer les messages de session",clearMessagesContent:"Cette action efface les messages/pièces jointes de la session actuelle, tout en conservant l'entrée de session.",clear:"Effacer",cancel:"Annuler",sessionCleared:"Session effacée",noActiveSession:"Aucune session active.",bulkCleanupTitle:"Nettoyage en lot",keepPinned:"Conserver les épinglées",deleteAll:"Supprimer tout",deleteAllTitle:"Supprimer toutes les sessions",deleteAllKeepPinned:"Supprime toutes les sessions sauf celles épinglées.",deleteAllIncludePinned:"Supprime toutes les sessions, y compris les épinglées.",deleteEmpty:"Supprimer les vides",deleteEmptyTitle:"Supprimer les sessions vides",deleteEmptyKeepPinned:"Supprime les sessions vides sauf celles épinglées.",deleteEmptyIncludePinned:"Supprime les sessions vides, y compris les épinglées.",deleteChildren:"Supprimer les enfants",deleteChildrenTitle:"Supprimer les sessions enfants",deleteChildrenKeepPinned:"Supprime toutes les sessions enfants sauf celles épinglées.",deleteChildrenIncludePinned:"Supprime toutes les sessions enfants, y compris les épinglées.",delete:"Supprimer",cleanupComplete:"Nettoyage terminé",devResetTitle:"Réinitialisation de développement",devResetDescription:"Réinitialisation complète du stockage des sessions (supprime sessions/ et réinitialise sessions.json).",devResetAction:"Réinitialiser les sessions (dev)",devResetConfirmTitle:"Réinitialiser le stockage des sessions (dev)",devResetConfirmContent:"Cette action supprime TOUTES les sessions (y compris épinglées/enfants) et réinitialise l'index des sessions. Une nouvelle session vide sera créée après rafraîchissement.",reset:"Réinitialiser",devResetDone:"Stockage des sessions réinitialisé"},providerTab:{...e.settings.providerTab,title:"Configuration du fournisseur LLM",description:"Configurez votre fournisseur LLM préféré. La configuration est enregistrée et appliquée lorsque vous cliquez sur Enregistrer et appliquer la configuration.",currentProvider:"Fournisseur actuel",activeProvider:"Fournisseur LLM actif",selectProviderRequired:"Veuillez sélectionner un fournisseur",saveAndApply:"Enregistrer et appliquer la configuration",loadConfigFailed:"Échec du chargement de la configuration du fournisseur",checkStatusFailed:"Échec de la vérification du statut",startCopilotAuthFailed:"Échec du démarrage de l'authentification Copilot",copilotAuthSuccess:"Authentification Copilot réussie !",providerReloaded:"Fournisseur rechargé avec la nouvelle authentification.",completeAuthFailed:"Échec de la finalisation de l'authentification. Veuillez réessayer.",userCodeCopied:"Code utilisateur copié dans le presse-papiers !",copyCodeFailedPrefix:"Échec de la copie du code. Veuillez copier manuellement :",logoutSuccess:"Déconnecté de Copilot",logoutFailed:"Échec de la déconnexion de Copilot",unknownError:"Erreur inconnue",invalidConfig:"Configuration invalide",invalidConfigPrefix:"Configuration invalide",fetchModelsCopilotFailed:"Échec de la récupération des modèles. Authentifiez Copilot puis réessayez.",fetchModelsFailed:"Échec de la récupération des modèles. Vérifiez votre clé API et l'URL de base.",noModelsReturned:"Aucun modèle renvoyé. Authentifiez d'abord Copilot, puis récupérez les modèles.",foundModels:"{{count}} modèles disponibles trouvés",fetchModelsErrorPrefix:"Échec de la récupération des modèles",saveConfigSuccess:"Configuration enregistrée avec succès",saveConfigFailed:"Échec de l'enregistrement de la configuration",saveConfigErrorPrefix:"Échec de l'enregistrement de la configuration",applyConfigSuccess:"Configuration appliquée avec succès. Les changements prendront effet pour les nouvelles conversations.",applyConfigFailed:"Échec de l'application de la configuration",applyConfigErrorPrefix:"Échec de l'application de la configuration",modelUpdated:"Modèle mis à jour avec succès",updateModelFailed:"Échec de la mise à jour du modèle",updateModelErrorPrefix:"Échec de la mise à jour du modèle",fetchingModels:"Récupération des modèles...",refreshModelsFrom:"Actualiser les modèles disponibles depuis {{source}}",fetchModelsFrom:"Récupérer les modèles disponibles depuis {{source}}",saveModelChangeFailed:"Échec de l'enregistrement du changement de modèle",fetchModelsFailedShort:"Échec de la récupération des modèles",retry:"Réessayer",openaiConfigTitle:"Configuration OpenAI",openaiConfigDescription:"Saisissez votre clé API OpenAI pour utiliser les modèles GPT. Vous pouvez aussi spécifier une URL de base personnalisée pour les proxys.",openaiApiKey:"Clé API OpenAI",openaiApiKeyRequired:"Veuillez saisir votre clé API OpenAI",baseUrlOptional:"URL de base (optionnel)",openaiBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API OpenAI par défaut. Incluez le chemin complet (ex. /v1) si nécessaire.",defaultModel:"Modèle par défaut",selectModelRequired:"Veuillez sélectionner un modèle",selectModel:"Sélectionner un modèle",responsesOnlyModelsOptional:"Modèles API Responses uniquement (optionnel)",responsesOnlyHelp1:"Certains modèles ne prennent en charge que l'API OpenAI Responses (pas chat/completions). Ajoutez ici des ID de modèles pour forcer Bamboo à utiliser l'API en amont.",responsesOnlyHelp2:"Prend en charge la correspondance exacte (ex. gpt-5.3-codex) et la correspondance par préfixe avec * final (ex. gpt-5*).",anthropicConfigTitle:"Configuration Anthropic",anthropicConfigDescription:"Saisissez votre clé API Anthropic pour utiliser les modèles Claude.",anthropicApiKey:"Clé API Anthropic",anthropicApiKeyRequired:"Veuillez saisir votre clé API Anthropic",anthropicBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API Anthropic par défaut. Incluez le chemin complet (ex. /v1) si nécessaire.",maxTokensOptional:"Tokens max (optionnel)",maxTokensHelp:"Nombre maximal de tokens à générer",geminiConfigTitle:"Configuration Google Gemini",geminiConfigDescription:"Saisissez votre clé API Google AI pour utiliser les modèles Gemini.",geminiApiKey:"Clé API Gemini",geminiApiKeyRequired:"Veuillez saisir votre clé API Gemini",geminiBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API Google AI par défaut. Incluez le chemin complet si nécessaire.",copilotConfigTitle:"Configuration GitHub Copilot",copilotConfigDescription:"GitHub Copilot utilise l'authentification OAuth. Aucune clé API n'est requise. Assurez-vous d'avoir un abonnement GitHub Copilot actif.",authStatusTitle:"Statut d'authentification",authenticated:"Authentifié",notAuthenticated:"Non authentifié",logoutCopilot:"Se déconnecter de Copilot",authenticateCopilot:"Authentifier Copilot",refreshStatus:"Actualiser le statut",headlessAuth:"Authentification sans interface",headlessAuthHelp:"Affiche l'URL de connexion dans la console au lieu d'ouvrir automatiquement le navigateur",noModelsLoaded:"Aucun modèle n'est encore chargé. Cliquez sur Récupérer les modèles disponibles depuis le back-end.",authFirstThenFetch:"Authentifiez d'abord Copilot, puis récupérez les modèles.",copilotUsageTitle:"Pour utiliser GitHub Copilot :",copilotUsageStep1:"Vérifiez que vous disposez d'un abonnement GitHub Copilot actif",copilotUsageStep2:"Cliquez sur Authentifier Copilot pour démarrer le flux de code appareil",copilotUsageStep3:"Suivez les instructions dans votre terminal pour finaliser l'authentification",copilotAuthModalTitle:"Authentification Copilot",cancel:"Annuler",completedAuthorization:"J'ai terminé l'autorisation",browserOpened:"Navigateur ouvert automatiquement",authStep1:"Une page GitHub devrait s'être ouverte dans votre navigateur",authStep2:"Copiez le code ci-dessous puis collez-le sur la page GitHub",authStep3:"Cliquez sur Continuer sur GitHub pour autoriser",visitUrl:"1. Ouvrez cette URL :",enterCode:"2. Saisissez ce code :",copied:"Copié !",copyCode:"Copier le code",afterContinueHint:"Après avoir cliqué sur Continuer sur GitHub, cliquez sur le bouton J'ai terminé l'autorisation ci-dessous.",providerNames:{...e.settings.providerTab.providerNames,openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},mcpTab:{...e.settings.mcpTab,status:{...e.settings.mcpTab.status,connecting:"Connexion",ready:"Prêt",degraded:"Dégradé",stopped:"Arrêté",error:"Erreur"},statusGuideTitle:"Guide des statuts :",statusLastError:"Dernière erreur : {{error}}",serverDeleted:"Serveur MCP supprimé",deleteServerFailed:"Échec de la suppression du serveur MCP",connectedTo:"Connecté à {{name}}",connectServerFailed:"Échec de la connexion au serveur MCP",disconnected:"Déconnecté de {{name}}",disconnectServerFailed:"Échec de la déconnexion du serveur MCP",toolsRefreshedFor:"Outils actualisés pour {{name}}",refreshToolsFailed:"Échec d'actualisation des outils",statusRefreshed:"Statut MCP actualisé",refreshStatusFailed:"Échec d'actualisation du statut MCP",noServerForEditing:"Aucun serveur sélectionné pour édition",savedServer:"{{name}} enregistré",addedServer:"{{name}} ajouté",saveServerFailed:"Échec de l'enregistrement du serveur MCP",copiedConfig:"Configuration MCP copiée dans le presse-papiers",clipboardUnavailable:"Presse-papiers indisponible. L'export est affiché dans la fenêtre.",invalidJsonPrefix:"JSON invalide",unknownError:"Erreur inconnue",jsonMustBeObject:"Le JSON doit être un objet",missingMcpServers:'Champ "mcpServers" manquant. Collez un bloc de configuration complet de style Claude Desktop : { "mcpServers": { ... } }',importSummary:"{{count}} serveur(s) importé(s) ({{added}} ajoutés, {{updated}} mis à jour, {{removed}} supprimés). {{failed}} échec(s) de démarrage.",importStartFailures:"Certains serveurs n'ont pas démarré. La configuration est enregistrée ; ouvrez la liste des serveurs pour voir les erreurs.",importFailed:"Échec de l'import des serveurs MCP",overviewTitle:"Vue d'ensemble MCP",overviewDescription:"Configurez des serveurs MCP externes et inspectez les alias d'outils enregistrés.",totalServers:"Total des serveurs : {{count}}",totalTools:"Total des outils : {{count}}",serversTitle:"Serveurs MCP",addServer:"Ajouter un serveur",refreshAll:"Tout actualiser",export:"Exporter",import:"Importer",importModalTitle:"Importer des serveurs MCP",importHint:"Collez un bloc de configuration style Claude Desktop. Exemple :",importModeMerge:"Fusionner (upsert)",importModeReplace:"Remplacer (supprimer les autres)",replaceWarning:"Le mode remplacement supprimera les serveurs MCP existants absents de la configuration mcpServers importée."},mcpServerTable:{...e.settings.mcpServerTable,columns:{...e.settings.mcpServerTable.columns,name:"Nom",transportType:"Type de transport",status:"Statut",toolCount:"Nombre d'outils",actions:"Actions"},transportOptions:{...e.settings.mcpServerTable.transportOptions,sse:"SSE",stdio:"Stdio"},deleteTitle:"Supprimer le serveur MCP",deleteDescription:"Supprimer le serveur {{name}} ?",empty:"Aucun serveur MCP configuré",actions:{...e.settings.mcpServerTable.actions,edit:"Modifier",delete:"Supprimer",disconnect:"Déconnecter",connect:"Connecter",refreshTools:"Actualiser les outils"}},mcpToolList:{...e.settings.mcpToolList,title:"Outils MCP",selectServerHint:"Sélectionnez un serveur pour inspecter ses outils MCP",empty:"Aucun outil trouvé pour ce serveur",noDescription:"Aucune description disponible",aliasMapping:"Mappage d'alias",parametersSchema:"Schéma des paramètres"},mcpServerForm:{...e.settings.mcpServerForm,jsonMustBeObject:"Le JSON doit être un objet",detectedBulkConfig:"Champ mcpServers détecté (configuration groupée). Utilisez le bouton Importer de l'onglet MCP pour un import groupé, ou collez ici la configuration d'un seul serveur.",missingIdField:"Champ id manquant ou invalide",missingTransportField:"Champ transport manquant ou invalide",missingTransportInfo:"Informations de transport manquantes. Attendu : transport (format Bodhi) ou commande/url (format MCP standard).",invalidJson:"JSON invalide : {{message}}",unknownError:"Erreur inconnue",editTitle:"Modifier le serveur MCP",addTitle:"Ajouter un serveur MCP",save:"Enregistrer",modeForm:"Formulaire",modeJson:"JSON",jsonError:"Erreur JSON",serverId:"ID du serveur",serverIdRequired:"L'ID du serveur est requis",serverIdPatternError:"Utilisez uniquement des lettres, des chiffres, des underscores et des tirets",displayName:"Nom d'affichage",enabled:"Activé",enabledHelp:"Les serveurs désactivés restent en configuration, mais ne seront pas démarrés.",transportType:"Type de transport",transportTypeRequired:"Le type de transport est requis",transportOptions:{...e.settings.mcpServerForm.transportOptions,stdio:"Stdio",sse:"SSE"},command:"Commande",commandRequired:"La commande est requise",arguments:"Arguments",argumentsPlaceholder:"Ajoutez un argument puis appuyez sur Entrée",envVars:"Variables d'environnement",addEnv:"Ajouter une variable",keyRequired:"Clé requise",sseUrl:"URL SSE",sseUrlRequired:"L'URL SSE est requise",validUrlRequired:"Veuillez saisir une URL valide",headers:"En-têtes",addHeader:"Ajouter un en-tête",headerNameRequired:"Nom d'en-tête requis"},metricsCards:{...e.settings.metricsCards,totalSessions:"Sessions totales",chatTokens:"Tokens chat",totalToolCalls:"Appels d'outils totaux",avgSessionDuration:"Durée moyenne des sessions"},forwardMetricsCards:{...e.settings.forwardMetricsCards,totalForwardRequests:"Requêtes de transfert totales",successRate:"Taux de réussite",forwardTokens:"Tokens de transfert",avgResponseTime:"Temps de réponse moyen"},unifiedMetricsCards:{...e.settings.unifiedMetricsCards,totalRequests:"Requêtes totales",totalTokens:"Tokens totaux",successRate:"Taux de réussite",avgResponseTime:"Temps de réponse moyen",chatSessions:"Sessions chat",chatTokens:"Tokens chat",toolCalls:"Appels d'outils",avgSessionDuration:"Durée moyenne des sessions",forwardRequests:"Requêtes de transfert",forwardTokens:"Tokens de transfert",successful:"Réussi",failed:"Échec"},metricsTable:{...e.settings.metricsTable,session:{...e.settings.metricsTable.session,columns:{...e.settings.metricsTable.session.columns,session:"Session",model:"Modèle",status:"Statut",started:"Début",duration:"Durée",tokens:"Tokens",toolCalls:"Appels d'outils",messages:"Messages",action:"Action"},view:"Voir"},forward:{...e.settings.metricsTable.forward,columns:{...e.settings.metricsTable.forward.columns,id:"ID",endpoint:"Point de terminaison",model:"Modèle",type:"Type",status:"Statut",tokens:"Tokens",duration:"Durée",started:"Début",error:"Erreur"},typeStream:"Flux",typeSync:"Synchrone",totalRequests:"{{total}} requêtes",empty:"Aucune requête de transfert enregistrée pour cette plage"}},metricsDashboard:{...e.settings.metricsDashboard,roundColumns:{...e.settings.metricsDashboard.roundColumns,round:"Tour",status:"Statut",duration:"Durée",tokens:"Tokens",toolCalls:"Appels d'outils"},compactStats:{...e.settings.metricsDashboard.compactStats,combinedTokens:"Tokens combinés",chatTokens:"Tokens chat",forwardTokens:"Tokens de transfert",avgTokensPerSession:"Tokens moyens / session",estimatedTimeSaved:"Temps estimé économisé",estimatedEfficiencyLift:"Gain d'efficacité estimé",estimatedSpeedMultiplier:"Multiplicateur de vitesse estimé",estimatedSavedWorkdays:"Jours de travail estimés économisés",avgRoundsPerSession:"Tours moyens / session",toolCallsPerSession:"Appels d'outils / session",activeSessionRate:"Taux de sessions actives",avgTokensPerForward:"Tokens moyens / transfert",forwardErrorRate:"Taux d'erreur de transfert",streamingRatio:"Ratio de streaming",p95ForwardLatency:"Latence P95 des transferts",modelCoverage:"Couverture des modèles",endpointCoverage:"Couverture des points de terminaison"},multiplierSuffix:"x",filtersTitle:"Filtres",refresh:"Actualiser",startDate:"Date de début",endDate:"Date de fin",model:"Modèle",daysOption:"{{value}} jours",granularity:{...e.settings.metricsDashboard.granularity,daily:"Quotidien",weekly:"Hebdomadaire",monthly:"Mensuel"},dashboardTitle:"Tableau de bord",tabs:{...e.settings.metricsDashboard.tabs,overview:"Vue d'ensemble",analysis:"Analyse",records:"Journaux"},derivedMetricsTitle:"Métriques dérivées (compact)",derivedMetricsSubtitle:"Plus de dimensions sans allonger la page",efficiencyHint:"Les estimations d'efficacité utilisent des hypothèses prudentes : {{manualTpm}} tokens/min en manuel + {{manualToolMinutes}} min/outil vs {{assistedTpm}} tokens/min assisté + {{assistedToolMinutes}} min/outil, puis application de {{realization}} % de réalisation et des plafonds ({{maxLift}} % / {{maxMultiplier}}x).",toolUsageTitle:"Fréquence d'utilisation des outils",noToolUsage:"Aucun appel d'outil enregistré pour cette plage.",calls:"Appels",activityHeatmapTitle:"Carte thermique d'activité quotidienne",noActivity:"Aucune activité disponible pour cette plage.",sessionsCount:"{{count}} sessions",tokensAmount:"{{value}} tokens",sessionsTabLabel:"Sessions ({{count}})",chatSessionsLabel:"Sessions chat ({{count}})",sessionsHint:"Cliquez sur une session pour voir le détail complet",forwardTabLabel:"Requêtes de transfert ({{count}})",detailedMetricsTitle:"Métriques détaillées",sessionMetricsTitle:"Métriques de session",loadingSessionDetails:"Chargement des détails de session...",sessionDetail:{...e.settings.metricsDashboard.sessionDetail,sessionId:"ID de session",model:"Modèle",status:"Statut",duration:"Durée",messages:"Messages",totalTokens:"Tokens totaux",toolCalls:"Appels d'outils"},noDetail:"Aucun détail disponible."},charts:{...e.settings.charts,tokenUsageOverTime:"Utilisation des tokens dans le temps",unifiedTokenUsageOverTime:"Utilisation des tokens dans le temps (chat + transfert)",noTokenUsage:"Aucune utilisation de tokens disponible",tokenUsageDescription:"Tokens de prompt, de réponse et totaux par jour/période.",unifiedTokenUsageDescription:"Utilisation combinée des tokens chat et transfert au fil du temps.",total:"Total",prompt:"Prompt",completion:"Réponse",chat:"Chat",forward:"Transfert",modelDistribution:"Répartition des modèles",noModelMetrics:"Aucune métrique de modèle disponible",modelDistributionDescription:"Part des tokens totaux consommés par modèle.",endpointDistribution:"Répartition des points de terminaison",noForwardMetrics:"Aucune métrique de transfert disponible pour cette plage."}}},O={...e,app:{...e.app,loading:"読み込み中...",retry:"再試行"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"新しいセッション",empty:{noSessions:"セッションはまだありません",hint:"「新しいセッション」をクリックして開始"},dateGroups:{today:"今日",yesterday:"昨日",thisWeek:"今週",thisMonth:"今月",pinned:"ピン留め",scheduled:"スケジュール済み"},actions:{collapseChildren:"子セッションを折りたたむ",expandChildren:"子セッションを展開"}}},settings:{...e.settings,page:{...e.settings.page,back:"戻る",title:"システム設定",tabs:{...e.settings.page.tabs,config:"設定",prompts:"プロンプト",skills:"スキル",workflows:"ワークフロー",modelLimits:"モデル制限",metrics:"メトリクス",schedules:"スケジュール",sessions:"セッション",app:"アプリ",provider:"プロバイダー",masking:"マスキング"}},configTab:{...e.settings.configTab,language:"言語",languageEnglish:"英語",languageChinese:"簡体字中国語",languageTraditionalChinese:"繁体字中国語",languageFrench:"フランス語",languageJapanese:"日本語",languageHindi:"ヒンディー語"},appTab:{...e.settings.appTab,language:"言語",languageEnglish:"英語",languageChinese:"簡体字中国語",languageTraditionalChinese:"繁体字中国語",languageFrench:"フランス語",languageJapanese:"日本語",languageHindi:"ヒンディー語"}}},d={...e,app:{...e.app,loading:"लोड हो रहा है...",retry:"पुनः प्रयास करें",backendNotReachable:"बैकएंड {{baseUrl}} पर उपलब्ध नहीं है (अंतिम त्रुटि: {{message}})"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"नया सत्र",empty:{noSessions:"अभी तक कोई सत्र नहीं",hint:'शुरू करने के लिए "नया सत्र" पर क्लिक करें'},dateGroups:{today:"आज",yesterday:"कल",thisWeek:"इस सप्ताह",thisMonth:"इस महीने",pinned:"पिन किया गया",scheduled:"अनुसूचित"},actions:{collapseChildren:"चाइल्ड सत्र संक्षिप्त करें",expandChildren:"चाइल्ड सत्र विस्तृत करें"}}},settings:{...e.settings,page:{...e.settings.page,back:"वापस",title:"सिस्टम सेटिंग्स",tabs:{...e.settings.page.tabs,config:"कॉन्फ़िगरेशन",prompts:"प्रॉम्प्ट्स",skills:"स्किल्स",workflows:"वर्कफ़्लोज़",modelLimits:"मॉडल सीमाएँ",metrics:"मेट्रिक्स",schedules:"शेड्यूल",sessions:"सेशंस",app:"ऐप",provider:"प्रोवाइडर",hooks:"हुक्स",masking:"मास्किंग",envVars:"पर्यावरण वेरिएबल्स"},groups:{...e.settings.page.groups,ai:"AI",toolsAndExtensions:"टूल्स और एक्सटेंशन्स",securityAndPrivacy:"सुरक्षा",monitoring:"मॉनिटरिंग",system:"सिस्टम"}},configTab:{...e.settings.configTab,tabs:{...e.settings.configTab.tabs,general:"सामान्य",tools:"टूल्स"},providerMovedTitle:"प्रोवाइडर कॉन्फ़िगरेशन स्थानांतरित किया गया",providerMovedDescription:"GitHub Copilot और अन्य प्रोवाइडर सेटिंग्स को Provider Settings टैब में स्थानांतरित कर दिया गया है। कृपया अपने प्रोवाइडर वहीं कॉन्फ़िगर करें।",backendApiBaseUrlTitle:"बैकएंड API बेस URL",backendApiHint:"/v1 पथ शामिल होना चाहिए",resetToDefault:"डिफ़ॉल्ट पर रीसेट करें",save:"सहेजें",toolsTitle:"टूल उपलब्धता",toolsDescription:"नियंत्रित करें कि कौन-सा टूल AI मॉडल को भेजा जाए। बंद किए गए टूल मॉडल टूल-स्कीमा से छिपा दिए जाते हैं।",toolsEmpty:"फिलहाल कोई टूल उपलब्ध नहीं है।",reloadTools:"टूल्स रीलोड करें",language:"भाषा",languageEnglish:"अंग्रेज़ी",languageChinese:"सरलीकृत चीनी",languageTraditionalChinese:"पारंपरिक चीनी",languageFrench:"फ़्रेंच",languageJapanese:"जापानी",languageHindi:"हिन्दी"},networkCard:{...e.settings.networkCard,title:"नेटवर्क सेटिंग्स",httpProxy:"HTTP प्रॉक्सी",httpsProxy:"HTTPS प्रॉक्सी",proxyAuthTitle:"प्रॉक्सी प्रमाणीकरण",proxyConfiguredForUser:"उपयोगकर्ता के लिए कॉन्फ़िगर: {{username}}",clearCredentials:"क्रेडेंशियल्स साफ़ करें",username:"उपयोगकर्ता नाम",password:"पासवर्ड",apply:"लागू करें",credentialsStorageNote:"प्रॉक्सी क्रेडेंशियल्स एन्क्रिप्ट होकर ~/.bamboo/config.json में सहेजे जाते हैं",reload:"रीलोड",save:"सहेजें"},modelMappingCard:{...e.settings.modelMappingCard,collapseTitle:"Anthropic मॉडल मैपिंग",description:"कॉन्फ़िगर करें कि Claude CLI जब विशिष्ट मॉडल मांगे तो कौन-से {{provider}} मॉडल उपयोग हों।",loadModelsErrorTitle:"मॉडल लोड करने में विफल",retry:"पुनः प्रयास करें",loadingModels:"मॉडल लोड हो रहे हैं...",modelTypeOpusDescription:'"opus" वाले मॉडल से मेल खाता है',modelTypeSonnetDescription:'"sonnet" वाले मॉडल से मेल खाता है',modelTypeHaikuDescription:'"haiku" वाले मॉडल से मेल खाता है',selectModelPlaceholder:"{{label}} मॉडल चुनें",customModelOption:"कस्टम मॉडल...",refreshModels:"मॉडल रीफ्रेश करें",currentProvider:"वर्तमान प्रोवाइडर",loadingProvider:"लोड हो रहा है...",availableModels:"उपलब्ध मॉडल",storedIn:"संग्रहित स्थान",customModalTitle:"कस्टम मॉडल नाम दर्ज करें",customModalDescription:"{{modelType}} के लिए कस्टम मॉडल नाम दर्ज करें",customModalPlaceholder:"उदाहरण: gpt-4-turbo-preview",customModalNote:"नोट: सुनिश्चित करें कि मॉडल नाम वर्तमान प्रोवाइडर के लिए मान्य है।",save:"सहेजें",cancel:"रद्द करें"},appTab:{...e.settings.appTab,autoGenerateTitle:"सेशन शीर्षक स्वतः बनाएं",autoGenerateTitleDesc:"सक्षम होने पर, ऐप सहायक के पहले उत्तर के बाद वर्णनात्मक शीर्षक बनाता है।",switchOn:"चालू",switchOff:"बंद",darkMode:"डार्क मोड",darkModeDark:"डार्क",darkModeLight:"लाइट",language:"भाषा",languageEnglish:"अंग्रेज़ी",languageChinese:"सरलीकृत चीनी",languageTraditionalChinese:"पारंपरिक चीनी",languageFrench:"फ़्रेंच",languageJapanese:"जापानी",languageHindi:"हिन्दी",cancel:"रद्द करें",dangerZone:"जोखिम क्षेत्र"},common:{...e.settings.common,loading:"लोड हो रहा है...",successful:"सफल",failed:"विफल"}}},H={...l,layout:{...e.layout,showSidebar:"Afficher la barre latérale"},common:{...e.common,workspace:"Espace de travail",server:"Serveur :",category:"Catégorie :",parameters:"Paramètres",approve:"Approuver",reject:"Refuser"},chat:{...l.chat,sidebar:{...l.chat.sidebar,createFailedTitle:"Échec de création de session",createFailedUnknown:"Erreur inconnue",delete:{title:"Supprimer la session",confirm:"Voulez-vous vraiment supprimer cette session ?"},deleteByDate:{title:"Supprimer les sessions du {{date}}",confirm:"Voulez-vous vraiment supprimer {{count}} session(s) du {{date}} ?"},newSessionWithPrompt:"Nouvelle session avec {{prompt}}"},workspace:{...e.chat.workspace,recentTitle:"Espaces récents",suggestedTitle:"Espaces suggérés",noRecentWorkspaces:"Aucun espace récent",noSuggestions:"Aucune suggestion",defaultWorkspaceName:"Espace de travail",validWorkspace:"Espace valide",fileCount:"{{count}} fichiers"},input:{...e.chat.input,addAttachments:"Ajouter des pièces jointes",referenceWorkspaceFiles:"Référencer des fichiers de l'espace",imageCountSingular:"{{count}} image",imageCountPlural:"{{count}} images",moreImages:"+{{count}} de plus",clearAllImages:"Effacer toutes les images",reasoningTitle:"Effort de raisonnement : {{label}}",reasoning:{...e.chat.input.reasoning,low:"Faible",medium:"Moyen",high:"Élevé",xhigh:"Très élevé",max:"Max"},strictToolOnlyMode:"Mode strict outils uniquement",toolSpecificModeLabel:"Mode spécifique à l'outil",allowedTools:"Outils autorisés :",autoPrefixLabel:"Préfixe auto : {{prefix}}",mustStartWithPrefix:'Le message doit commencer par "{{prefix}}"'},prompt:{...e.chat.prompt,selectorTitle:"Choisir un prompt système",createButton:"Créer une nouvelle session",helperText:"Choisissez un prompt système de base pour l'IA. Vous pouvez en ajouter ou modifier dans les paramètres système.",emptyDescription:"Aucun prompt système trouvé. Ajoutez-en un dans les paramètres système.",newSessionSelectorTitle:"Choisir un prompt système pour la nouvelle session",defaultDescription:"Prompt système par défaut.",loadPresetsFailed:"Échec du chargement des préréglages",loadCurrentInfoFailed:"Échec du chargement des informations actuelles"},commandSelector:{...e.chat.commandSelector,loading:"Chargement des commandes...",emptyWithSearch:'Aucune commande trouvée pour "{{search}}"',empty:"Aucune commande disponible.",navigationHint:"Navigation : Haut/Bas ou Ctrl+P/N | Sélection : Entrée | Compléter : Espace/Tab | Annuler : Échap",types:{...e.chat.commandSelector.types,workflow:"Flux de travail",skill:"Compétence",mcp:"MCP"}},model:{...e.chat.model,selectModel:"Sélectionner un modèle",noModelSelected:"Aucun modèle sélectionné",selectModelHint:"Choisissez un modèle pour commencer la discussion.",providerNotConfigured:"Fournisseur non configuré",configureProviderHint:"Configurez votre fournisseur dans les paramètres avant de choisir un modèle.",configureProvider:"Configurer le fournisseur",openSettings:"Ouvrir les paramètres",noModelsAvailable:"Aucun modèle disponible",selectModelBeforeSend:"Veuillez sélectionner un modèle avant l'envoi.",selectModelBeforeRetry:"Veuillez sélectionner un modèle avant de réessayer."},streaming:{...e.chat.streaming,assistant:"Bodhi",requestCancelled:"Requête annulée",sendFailed:"Échec de l'envoi du message",retryFailed:"Échec de la nouvelle tentative",modelConfigNotLoaded:"Configuration du modèle non chargée",agentUnavailable:"Agent indisponible",noActiveChatTitle:"Aucune conversation active",noActiveChatSendContent:"Veuillez créer ou sélectionner une conversation avant d'envoyer un message.",noActiveChatRetryContent:"Veuillez créer ou sélectionner une conversation avant de réessayer.",noChatIdTitle:"ID de conversation manquant",noChatIdSendContent:"La conversation actuelle n'a pas d'ID. Créez une nouvelle conversation puis réessayez.",noChatIdRetryContent:"La conversation actuelle n'a pas d'ID. Créez une nouvelle conversation puis réessayez."},selectionToolbar:{...e.chat.selectionToolbar,selectMessages:"Sélectionner des messages",selectedCount:"{{selected}} sélectionné(s) ({{total}} au total)",selectAll:"Tout sélectionner",clear:"Effacer",exportMarkdown:"Exporter en Markdown",exportPdf:"Exporter en PDF",done:"Terminé"},subSessions:{...e.chat.subSessions,title:"Sous-sessions",expand:"Développer",collapse:"Réduire",continue:"Continuer ici",open:"Ouvrir",retry:"Réessayer",hiddenHint:"{{count}} sous-session(s) masquée(s)"},chatItem:{...e.chat.chatItem,edit:"Modifier",childTag:"Enfant"},systemPromptSelector:{...e.chat.systemPromptSelector,defaultTag:"Par défaut",hide:"Masquer",preview:"Aperçu",copy:"Copier",lines:"{{count}} lignes",words:"{{count}} mots",chars:"{{count}} caractères",noContent:"Aucun contenu"},title:{...e.chat.title,updated:"Titre de conversation mis à jour",generateFailed:"Échec de génération du titre de conversation"},respond:{...e.chat.respond,customAnswerPlaceholder:"Saisissez votre réponse personnalisée..."},multiPane:{...e.chat.multiPane,splitHorizontal:"Diviser horizontalement",splitVertical:"Diviser verticalement",closePane:"Fermer le panneau",selectSessionHint:"Sélectionnez une session pour voir les messages",hoverToSplitHint:"Survolez un panneau pour le diviser et comparer les conversations",selectMessagesToExport:"Sélectionnez des messages à exporter"},messageCard:{...e.chat.messageCard,authRequired:"Authentification requise",goToSettings:"Aller aux paramètres",assistantThinking:"L'assistant réfléchit...",reasoning:"Raisonnement",selected:"Sélectionné",selectedTool:"Outil sélectionné"},messageActions:{...e.chat.messageActions,copy:"Copier",exportMarkdown:"Exporter en Markdown",exportPdf:"Exporter en PDF",restoreChat:"Restaurer uniquement la conversation",restoreFilesAndChat:"Restaurer les fichiers et la conversation",deleteMessage:"Supprimer le message",savedFile:"Enregistré dans {{filename}}",nothingToExport:"Rien à exporter",exportFailed:"Échec de l'export",cannotRestore:"Impossible de restaurer ce message",restorePartial:"Conversation restaurée. {{count}} fichier(s) n'ont pas pu être restaurés.",restoreFilesSuccess:"Fichiers et conversation restaurés ({{count}} message(s) supprimé(s)).",restoreSuccess:"Conversation restaurée ({{count}} message(s) supprimé(s)).",restoreFailed:"Échec de restauration de la conversation",pdfUnavailable:"L'export PDF n'est pas disponible dans cet environnement",exportingPdf:"Export PDF en cours..."},session:{...e.chat.session,defaultTitle:"Nouvelle session"}},settings:{...l.settings,page:{...l.settings.page,tabs:{...l.settings.page.tabs,hooks:"Hooks",envVars:"Variables d'environnement"}},configTab:{...l.settings.configTab,tabs:{...e.settings.configTab.tabs,general:"Général",tools:"Outils"},toolsTitle:"Disponibilité des outils",toolsDescription:"Activez/désactivez les outils pouvant être envoyés au modèle IA. Les outils désactivés sont masqués du schéma d'outils du modèle.",toolsEmpty:"Aucun outil disponible actuellement.",reloadTools:"Recharger les outils",loadBambooConfigFailed:"Échec du chargement de la configuration Bamboo",bambooConfigSaved:"Configuration Bamboo enregistrée",saveBambooConfigFailed:"Échec de l'enregistrement de la configuration Bamboo"},keywordMaskingTab:{...l.settings.keywordMaskingTab,invalidRegexPattern:"Motif regex invalide"}},components:{...e.components,workflowResult:{...e.components.workflowResult,userWorkflow:"Workflow utilisateur",waitingForResult:"En attente du résultat du workflow...",executionFailed:"Échec d'exécution du workflow",retryWorkflow:"Relancer le workflow",copyParameters:"Copier les paramètres",copyResult:"Copier le résultat",expandResult:"Développer le résultat",collapseResult:"Réduire le résultat"},toolResult:{...e.components.toolResult,waiting:"En attente",waitingForResult:"En attente du résultat...",executionFailed:"Échec d'exécution de l'outil",copyResult:"Copier le résultat",checkpoint:"Point de contrôle",checkpointNone:"Aucun",diffTruncated:"Le diff est trop long et a été tronqué"},toolCall:{...e.components.toolCall,liveOutput:"Sortie en direct",keyParameters:"Paramètres clés",fullParameters:"Paramètres complets",copyParameters:"Copier les paramètres"},plan:{...e.components.plan,executionPlan:"Plan d'exécution",goal:"Objectif",steps:"Étapes",stepTitle:"Étape {{number}}",reason:"Raison",estimated:"Estimé",tools:"Outils",prerequisites:"Prérequis",potentialRisks:"Risques potentiels ({{count}})",totalEstimatedTime:"Temps total estimé",feedbackPlaceholder:"Indiquez à l'agent ce que vous souhaitez ajuster...",sendFeedback:"Envoyer un retour",refinePlan:"Affiner le plan",executePlan:"Exécuter le plan"},question:{...e.components.question,agentQuestion:"Question de l'agent",context:"Contexte",chooseOption:"Choisir une option",recommended:"Recommandé",customAnswerHint:"Aucune option adaptée ? Saisissez votre propre réponse.",customAnswerPlaceholder:"Saisissez votre réponse personnalisée...",submitAnswer:"Soumettre la réponse"},questionDialog:{...e.components.questionDialog,selectOptionWarning:"Veuillez sélectionner une option avant de soumettre.",responseSubmitted:"Réponse soumise",responseSubmittedContinue:"Réponse soumise, l'IA va continuer le traitement",submitFailed:"Échec de soumission de la réponse",noModelConfigured:"Aucun modèle configuré",customAnswerTip:"Réponse personnalisée",otherTypeBelow:"Autre (saisir ci-dessous)",confirm:"Confirmer"},skillManager:{...e.components.skillManager,title:"Compétences",refresh:"Actualiser",skillsRefreshed:"Compétences actualisées",lastUpdated:"Dernière mise à jour : {{value}}",justNow:"à l'instant",secondsAgo:"il y a {{count}} s",minutesAgo:"il y a {{count}} min",searchPlaceholder:"Rechercher des compétences",readOnlyHint:"Mode lecture seule : les compétences ne peuvent pas être modifiées.",noSkillsFound:"Aucune compétence trouvée",noMatch:"Aucune compétence ne correspond à la recherche",loadFailed:"Échec du chargement des compétences",getFailed:"Échec de récupération de la compétence"},skillSelector:{...e.components.skillSelector,placeholder:"Sélectionner des compétences"},imageGrid:{...e.components.imageGrid,preview:"Aperçu",ocr:"OCR"},todoList:{...e.components.todoList,title:"Liste des tâches",evaluating:"Évaluation en cours",pin:"Épingler",unpin:"Désépingler",llmEvaluation:"Évaluation LLM",tools:"outils",dependsOn:"Dépend de : {{deps}}",dependencies:"dépendances",status:{...e.components.todoList.status,pending:"En attente",inProgress:"En cours",completed:"Terminée",blocked:"Bloquée"}},tokenUsage:{...e.components.tokenUsage,title:"Utilisation des tokens",summary:"Résumé",system:"Système",messages:"Messages",tokens:"tokens",usedPercent:"{{value}} % utilisés"},approval:{...e.components.approval,workflow:"Workflow",executionRequest:"Demande d'exécution",aiWantsExecute:"L'IA souhaite exécuter l'action suivante"},toolSession:{...e.components.toolSession,title:"Session d'outils",running:"En cours",done:"Terminé",error:"Erreur",completedOnly:"{{completed}} terminé(s)",completedWithErrors:"{{completed}} terminé(s) (avec erreurs)",completedProgress:"{{completed}} / {{total}} terminés",noPersistedMessage:"Aucune sortie persistée",deleteMessage:"Supprimer la session d'outils"},mermaid:{...e.components.mermaid,loadingDiagram:"Chargement du diagramme...",diagramError:"Erreur de diagramme Mermaid",errorTitlePrefix:"Erreur",checkConsoleHint:"Vérifiez la syntaxe Mermaid ou ouvrez la console pour les détails.",fixMermaid:"Corriger Mermaid",renderingDiagram:"Rendu du diagramme...",exportSvg:"Exporter en SVG",exportFailed:"Échec de l'export du diagramme"}}},N={...d,layout:{...e.layout,showSidebar:"साइडबार दिखाएँ"},common:{...e.common,workspace:"वर्कस्पेस",server:"सर्वर:",category:"श्रेणी:",parameters:"पैरामीटर्स",approve:"स्वीकृत करें",reject:"अस्वीकृत करें"},chat:{...d.chat,sidebar:{...d.chat.sidebar,createFailedTitle:"सेशन बनाने में विफल",createFailedUnknown:"अज्ञात त्रुटि",delete:{title:"सेशन हटाएँ",confirm:"क्या आप वाकई इस सेशन को हटाना चाहते हैं?"},deleteByDate:{title:"{{date}} के सेशन हटाएँ",confirm:"क्या आप {{date}} के {{count}} सेशन हटाना चाहते हैं?"},newSessionWithPrompt:"{{prompt}} के साथ नया सेशन"},workspace:{...e.chat.workspace,modalTitle:"वर्कस्पेस पथ सेट करें",invalidTitle:"अमान्य वर्कस्पेस पथ",issuesDetected:"वर्कस्पेस पथ में संभावित समस्याएँ मिलीं:",confirmSaveInvalid:"क्या आप फिर भी यह पथ सहेजना चाहते हैं?",errorEnterPath:"कृपया वर्कस्पेस पथ दर्ज करें",errorSaveFailed:"वर्कस्पेस पथ सहेजने में विफल",label:"वर्कस्पेस",browseFolder:"फ़ोल्डर ब्राउज़ करें",descriptionTitle:"वर्कस्पेस पथ विवरण",checkTitle:"वर्कस्पेस पथ जाँच",checkDescription:"वर्कस्पेस पथ सत्यापन विफल।",recentTitle:"हाल के वर्कस्पेस",suggestedTitle:"सुझाए गए वर्कस्पेस",noRecentWorkspaces:"कोई हाल का वर्कस्पेस नहीं",noSuggestions:"कोई सुझाव नहीं",defaultWorkspaceName:"वर्कस्पेस",validWorkspace:"वैध वर्कस्पेस",fileCount:"{{count}} फ़ाइलें"},input:{...e.chat.input,placeholder:"संदेश भेजें...",placeholderWithReference:"संदेश भेजें (संदर्भ सहित)",placeholderWithWorkflows:"संदेश भेजें... (वर्कफ़्लो के लिए '/' टाइप करें)",toolCallsOnly:"केवल टूल कॉल (अनुमत टूल: {{tools}})",autoPrefixMode:"ऑटो-प्रिफिक्स मोड: {{prefix}} (टूल चुनने के लिए '/' टाइप करें)",toolSpecificMode:"टूल-विशिष्ट मोड (अनुमत टूल: {{tools}})",processingFiles:"फ़ाइलें प्रोसेस की जा रही हैं…",addAttachments:"संलग्नक जोड़ें",referenceWorkspaceFiles:"वर्कस्पेस फ़ाइलों का संदर्भ दें",imageCountSingular:"{{count}} छवि",imageCountPlural:"{{count}} छवियाँ",moreImages:"+{{count}} और",clearAllImages:"सभी छवियाँ साफ़ करें",reasoningTitle:"रीज़निंग प्रयास: {{label}}",reasoning:{...e.chat.input.reasoning,low:"कम",medium:"मध्यम",high:"उच्च",xhigh:"बहुत उच्च",max:"अधिकतम"},strictToolOnlyMode:"सख्त केवल-टूल मोड",toolSpecificModeLabel:"टूल-विशिष्ट मोड",allowedTools:"अनुमत टूल:",autoPrefixLabel:"ऑटो प्रिफिक्स: {{prefix}}",mustStartWithPrefix:'संदेश "{{prefix}}" से शुरू होना चाहिए'},prompt:{...e.chat.prompt,selectorTitle:"सिस्टम प्रॉम्प्ट चुनें",createButton:"नया सेशन बनाएँ",helperText:"AI के लिए आधार सिस्टम प्रॉम्प्ट चुनें। आप सिस्टम सेटिंग्स में प्रॉम्प्ट जोड़ या संपादित कर सकते हैं।",emptyDescription:"कोई सिस्टम प्रॉम्प्ट नहीं मिला। सिस्टम सेटिंग्स में एक जोड़ें।",newSessionSelectorTitle:"नए सेशन के लिए सिस्टम प्रॉम्प्ट चुनें",defaultDescription:"डिफ़ॉल्ट सिस्टम प्रॉम्प्ट।",loadPresetsFailed:"प्रिसेट लोड करने में विफल",loadCurrentInfoFailed:"वर्तमान जानकारी लोड करने में विफल"},commandSelector:{...e.chat.commandSelector,loading:"कमांड लोड हो रहे हैं...",emptyWithSearch:'"{{search}}" से मेल खाने वाली कोई कमांड नहीं मिली',empty:"कोई कमांड उपलब्ध नहीं है।",navigationHint:"नेविगेशन: ऊपर/नीचे या Ctrl+P/N | चयन: Enter | पूर्ण करें: Space/Tab | रद्द: Esc",types:{...e.chat.commandSelector.types,workflow:"वर्कफ़्लो",skill:"स्किल",mcp:"MCP"}},model:{...e.chat.model,selectModel:"मॉडल चुनें",noModelSelected:"कोई मॉडल चयनित नहीं",selectModelHint:"चैट शुरू करने के लिए एक मॉडल चुनें।",providerNotConfigured:"प्रोवाइडर कॉन्फ़िगर नहीं है",configureProviderHint:"मॉडल चुनने से पहले सेटिंग्स में प्रोवाइडर कॉन्फ़िगर करें।",configureProvider:"प्रोवाइडर कॉन्फ़िगर करें",openSettings:"सेटिंग्स खोलें",noModelsAvailable:"कोई मॉडल उपलब्ध नहीं",selectModelBeforeSend:"भेजने से पहले मॉडल चुनें।",selectModelBeforeRetry:"पुनः प्रयास से पहले मॉडल चुनें।"},streaming:{...e.chat.streaming,assistant:"Bodhi",requestCancelled:"अनुरोध रद्द किया गया",sendFailed:"संदेश भेजने में विफल",retryFailed:"पुनः प्रयास विफल",modelConfigNotLoaded:"मॉडल कॉन्फ़िगरेशन लोड नहीं हुआ",agentUnavailable:"एजेंट उपलब्ध नहीं",noActiveChatTitle:"कोई सक्रिय चैट नहीं",noActiveChatSendContent:"संदेश भेजने से पहले चैट बनाएँ या चुनें।",noActiveChatRetryContent:"पुनः प्रयास से पहले चैट बनाएँ या चुनें।",noChatIdTitle:"चैट ID अनुपस्थित",noChatIdSendContent:"वर्तमान चैट में ID नहीं है। नया चैट बनाकर पुनः प्रयास करें।",noChatIdRetryContent:"वर्तमान चैट में ID नहीं है। नया चैट बनाकर पुनः प्रयास करें।"},selectionToolbar:{...e.chat.selectionToolbar,selectMessages:"संदेश चुनें",selectedCount:"{{selected}} चयनित (कुल {{total}})",selectAll:"सभी चुनें",clear:"साफ़ करें",exportMarkdown:"Markdown निर्यात करें",exportPdf:"PDF निर्यात करें",done:"पूर्ण"},subSessions:{...e.chat.subSessions,title:"उप-सेशन",expand:"विस्तार करें",collapse:"संक्षिप्त करें",continue:"यहीं जारी रखें",open:"खोलें",retry:"पुनः प्रयास करें",hiddenHint:"{{count}} उप-सेशन छिपे हुए"},chatItem:{...e.chat.chatItem,edit:"संपादित करें",childTag:"चाइल्ड"},systemPromptSelector:{...e.chat.systemPromptSelector,defaultTag:"डिफ़ॉल्ट",hide:"छिपाएँ",preview:"पूर्वावलोकन",copy:"कॉपी करें",lines:"{{count}} पंक्तियाँ",words:"{{count}} शब्द",chars:"{{count}} अक्षर",noContent:"कोई सामग्री नहीं"},title:{...e.chat.title,updated:"चैट शीर्षक अपडेट हुआ",generateFailed:"चैट शीर्षक बनाने में विफल"},respond:{...e.chat.respond,customAnswerPlaceholder:"अपना कस्टम उत्तर लिखें..."},multiPane:{...e.chat.multiPane,splitHorizontal:"क्षैतिज विभाजित करें",splitVertical:"ऊर्ध्वाधर विभाजित करें",closePane:"पैन बंद करें",selectSessionHint:"संदेश देखने के लिए एक सेशन चुनें",hoverToSplitHint:"चैट तुलना के लिए पैन पर होवर करके विभाजित करें",selectMessagesToExport:"निर्यात के लिए संदेश चुनें"},messageCard:{...e.chat.messageCard,authRequired:"प्रमाणीकरण आवश्यक",goToSettings:"सेटिंग्स पर जाएँ",assistantThinking:"सहायक सोच रहा है...",reasoning:"रीज़निंग",selected:"चयनित",selectedTool:"चयनित टूल"},messageActions:{...e.chat.messageActions,copy:"कॉपी करें",exportMarkdown:"Markdown के रूप में निर्यात करें",exportPdf:"PDF के रूप में निर्यात करें",restoreChat:"केवल चैट पुनर्स्थापित करें",restoreFilesAndChat:"फ़ाइलें और चैट पुनर्स्थापित करें",deleteMessage:"संदेश हटाएँ",savedFile:"{{filename}} में सहेजा गया",nothingToExport:"निर्यात करने के लिए कुछ नहीं",exportFailed:"निर्यात विफल",cannotRestore:"यह संदेश पुनर्स्थापित नहीं किया जा सकता",restorePartial:"चैट पुनर्स्थापित हुई। {{count}} फ़ाइल(ें) पुनर्स्थापित नहीं हो सकीं।",restoreFilesSuccess:"फ़ाइलें और चैट पुनर्स्थापित ({{count}} संदेश हटाए गए)।",restoreSuccess:"चैट पुनर्स्थापित ({{count}} संदेश हटाए गए)।",restoreFailed:"चैट पुनर्स्थापित करने में विफल",pdfUnavailable:"इस वातावरण में PDF निर्यात उपलब्ध नहीं है",exportingPdf:"PDF निर्यात हो रहा है..."},session:{...e.chat.session,defaultTitle:"नया सत्र"}},settings:{...d.settings,page:{...d.settings.page,tabs:{...d.settings.page.tabs,envVars:"पर्यावरण वेरिएबल्स"}},configTab:{...d.settings.configTab,loadBambooConfigFailed:"Bamboo कॉन्फ़िग लोड करने में विफल",bambooConfigSaved:"Bamboo कॉन्फ़िग सहेजा गया",saveBambooConfigFailed:"Bamboo कॉन्फ़िग सहेजने में विफल"},keywordMaskingTab:{...e.settings.keywordMaskingTab,title:"कीवर्ड मास्किंग",addKeyword:"कीवर्ड जोड़ें",description:"Copilot API को भेजने से पहले मास्क किए जाने वाले कीवर्ड कॉन्फ़िगर करें। शाब्दिक स्ट्रिंग के लिए सटीक मिलान या पैटर्न के लिए regex उपयोग करें। सभी मिलान [MASKED] से बदले जाएंगे।",empty:"कोई कीवर्ड मास्किंग नियम कॉन्फ़िगर नहीं है",cancel:"रद्द करें",patternPlaceholder:"मिलान का पैटर्न दर्ज करें",examples:"उदाहरण",exactMatch:"सटीक मिलान",regexPattern:"Regex पैटर्न",enabled:"सक्षम",disabled:"अक्षम",sampleText:"नमूना टेक्स्ट",sampleTextPlaceholder:"नमूना टेक्स्ट दर्ज करें",maskedPreview:"मास्क किया गया पूर्वावलोकन",emptyPattern:"(खाली)",loadFailed:"कीवर्ड मास्किंग कॉन्फ़िगरेशन लोड करने में विफल",saveFailed:"कॉन्फ़िगरेशन सहेजने में विफल",saveSuccess:"कीवर्ड मास्किंग कॉन्फ़िगरेशन सहेजा गया",validationFailedPrefix:"सत्यापन विफल",patternRequired:"पैटर्न खाली नहीं हो सकता",invalidRegexPattern:"अमान्य regex पैटर्न",example:{...e.settings.keywordMaskingTab.example,literalToken:"शाब्दिक टोकन मास्क करें",githubTokens:"GitHub टोकन मास्क करें",awsKeys:"AWS key मास्क करें",emails:"ईमेल पते मास्क करें"}}},components:{...e.components,workflowResult:{...e.components.workflowResult,userWorkflow:"उपयोगकर्ता वर्कफ़्लो",waitingForResult:"वर्कफ़्लो परिणाम की प्रतीक्षा...",executionFailed:"वर्कफ़्लो निष्पादन विफल",retryWorkflow:"वर्कफ़्लो पुनः चलाएँ",copyParameters:"पैरामीटर्स कॉपी करें",copyResult:"परिणाम कॉपी करें",expandResult:"परिणाम विस्तार करें",collapseResult:"परिणाम संक्षिप्त करें"},toolResult:{...e.components.toolResult,waiting:"प्रतीक्षा में",waitingForResult:"परिणाम की प्रतीक्षा...",executionFailed:"टूल निष्पादन विफल",copyResult:"परिणाम कॉपी करें",checkpoint:"चेकपॉइंट",checkpointNone:"कोई नहीं",diffTruncated:"डिफ़ बहुत लंबा है और काट दिया गया है"},toolCall:{...e.components.toolCall,liveOutput:"लाइव आउटपुट",keyParameters:"मुख्य पैरामीटर्स",fullParameters:"पूर्ण पैरामीटर्स",copyParameters:"पैरामीटर्स कॉपी करें"},plan:{...e.components.plan,executionPlan:"निष्पादन योजना",goal:"लक्ष्य",steps:"चरण",stepTitle:"चरण {{number}}",reason:"कारण",estimated:"अनुमानित",tools:"टूल्स",prerequisites:"पूर्वापेक्षाएँ",potentialRisks:"संभावित जोखिम ({{count}})",totalEstimatedTime:"कुल अनुमानित समय",feedbackPlaceholder:"एजेंट को बताएँ क्या समायोजित करना है...",sendFeedback:"फ़ीडबैक भेजें",refinePlan:"योजना परिष्कृत करें",executePlan:"योजना निष्पादित करें"},question:{...e.components.question,agentQuestion:"एजेंट प्रश्न",context:"संदर्भ",chooseOption:"एक विकल्प चुनें",recommended:"अनुशंसित",customAnswerHint:"कोई उपयुक्त विकल्प नहीं? अपना उत्तर लिखें।",customAnswerPlaceholder:"अपना कस्टम उत्तर लिखें...",submitAnswer:"उत्तर सबमिट करें"},questionDialog:{...e.components.questionDialog,selectOptionWarning:"सबमिट करने से पहले एक विकल्प चुनें।",responseSubmitted:"उत्तर सबमिट किया गया",responseSubmittedContinue:"उत्तर सबमिट किया गया, AI आगे प्रोसेस करेगा",submitFailed:"उत्तर सबमिट करने में विफल",noModelConfigured:"कोई मॉडल कॉन्फ़िगर नहीं है",customAnswerTip:"कस्टम उत्तर",otherTypeBelow:"अन्य (नीचे लिखें)",confirm:"पुष्टि करें"},skillManager:{...e.components.skillManager,title:"स्किल्स",refresh:"रीफ्रेश करें",skillsRefreshed:"स्किल्स रीफ्रेश हुईं",lastUpdated:"अंतिम अपडेट: {{value}}",justNow:"अभी-अभी",secondsAgo:"{{count}} सेकंड पहले",minutesAgo:"{{count}} मिनट पहले",searchPlaceholder:"स्किल्स खोजें",readOnlyHint:"रीड-ओनली मोड: स्किल्स संपादित नहीं की जा सकतीं।",noSkillsFound:"कोई स्किल नहीं मिली",noMatch:"खोज से मेल खाती कोई स्किल नहीं मिली",loadFailed:"स्किल्स लोड करने में विफल",getFailed:"स्किल प्राप्त करने में विफल"},skillSelector:{...e.components.skillSelector,placeholder:"स्किल्स चुनें"},imageGrid:{...e.components.imageGrid,preview:"पूर्वावलोकन",ocr:"OCR"},todoList:{...e.components.todoList,title:"कार्य सूची",evaluating:"मूल्यांकन जारी",pin:"पिन करें",unpin:"अनपिन करें",llmEvaluation:"LLM मूल्यांकन",tools:"टूल्स",dependsOn:"निर्भर करता है: {{deps}}",dependencies:"निर्भरताएँ",status:{...e.components.todoList.status,pending:"लंबित",inProgress:"प्रगति में",completed:"पूर्ण",blocked:"अवरोधित"}},tokenUsage:{...e.components.tokenUsage,title:"टोकन उपयोग",summary:"सारांश",system:"सिस्टम",messages:"संदेश",tokens:"टोकन",usedPercent:"{{value}}% उपयोग"},approval:{...e.components.approval,workflow:"वर्कफ़्लो",executionRequest:"निष्पादन अनुरोध",aiWantsExecute:"AI निम्नलिखित क्रिया निष्पादित करना चाहता है"},toolSession:{...e.components.toolSession,title:"टूल सेशन",running:"चल रहा है",done:"पूर्ण",error:"त्रुटि",completedOnly:"{{completed}} पूर्ण",completedWithErrors:"{{completed}} पूर्ण (त्रुटियों सहित)",completedProgress:"{{completed}} / {{total}} पूर्ण",noPersistedMessage:"कोई स्थायी आउटपुट नहीं",deleteMessage:"टूल सेशन हटाएँ"},mermaid:{...e.components.mermaid,loadingDiagram:"डायग्राम लोड हो रहा है...",diagramError:"Mermaid डायग्राम त्रुटि",errorTitlePrefix:"त्रुटि",checkConsoleHint:"Mermaid सिंटैक्स जाँचें या विवरण के लिए कंसोल खोलें।",fixMermaid:"Mermaid ठीक करें",renderingDiagram:"डायग्राम रेंडर हो रहा है...",exportSvg:"SVG निर्यात करें",exportFailed:"डायग्राम निर्यात विफल"}}},U=f(H,D),W=f(N,E),B={...r,app:{...r.app,loading:"載入中..."},chat:{...r.chat,sidebar:{...r.chat.sidebar,newSession:"新建會話",empty:{noSessions:"暫無會話",hint:"點擊「新建會話」開始"},dateGroups:{today:"今天",yesterday:"昨天",thisWeek:"本週",thisMonth:"本月",pinned:"置頂",scheduled:"計劃任務"},actions:{collapseChildren:"摺疊子會話",expandChildren:"展開子會話"}}},settings:{...r.settings,page:{...r.settings.page,title:"系統設定",tabs:{...r.settings.page.tabs,config:"設定",modelLimits:"模型限制",metrics:"指標",sessions:"會話",app:"應用",provider:"供應商",masking:"脫敏"},groups:{...r.settings.page.groups,ai:"AI",toolsAndExtensions:"工具與擴展",securityAndPrivacy:"安全",monitoring:"監控",system:"系統"}},configTab:{...r.settings.configTab,loadConfigFailed:"載入配置失敗",invalidConfig:"配置無效",saveConfigSuccess:"配置保存成功",saveConfigFailed:"保存配置失敗",backendSaved:"後端地址已保存",backendResetDefault:"後端地址已重設為預設值",providerMovedTitle:"Provider 配置已遷移",providerMovedDescription:"GitHub Copilot 和其他 Provider 配置已遷移到 Provider Settings 分頁,請前往該頁面設定。",backendApiBaseUrlTitle:"後端 API 基礎位址",backendApiHint:"必須包含 /v1 路徑",resetToDefault:"恢復預設",save:"保存",language:"語言",languageEnglish:"English",languageChinese:"簡體中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"印地語"},appTab:{...r.settings.appTab,language:"語言",languageEnglish:"English",languageChinese:"簡體中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"印地語"}}},z={...h,"fr-FR":{translation:U},"hi-IN":{translation:W},"ja-JP":{translation:O},"zh-TW":{translation:B}};m.isInitialized||(m.use(A),m.init({resources:z,lng:I(),fallbackLng:g,supportedLngs:b,interpolation:{escapeValue:!1},react:{useSuspense:!1},returnNull:!1}));const k=document.getElementById("root");if(!k)throw new Error("Missing #root element for Bodhi app bootstrap");const M=y.createRoot(k),G=t=>{const a=t instanceof Error?`${t.name}: ${t.message}`:String(t||"Unknown startup error");console.error("[Bodhi] Failed to bootstrap app:",t),M.render(c.jsx(S.StrictMode,{children:c.jsx("div",{style:{height:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--lotus-main-surface, #f6f6f6)",color:"var(--color-gray-800, #0f0f0f)",fontFamily:"system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"},children:c.jsxs("div",{style:{maxWidth:720,textAlign:"left"},children:[c.jsx("h2",{style:{margin:"0 0 12px"},children:"Bodhi UI failed to start"}),c.jsx("p",{style:{margin:0,lineHeight:1.5,whiteSpace:"pre-wrap"},children:a})]})})}))},j=async()=>{try{const{default:t}=await P(async()=>{const{default:a}=await import("./App-BHPFe35o.js").then(i=>i.A);return{default:a}},__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url);M.render(c.jsx(S.StrictMode,{children:c.jsx(t,{})}))}catch(t){G(t)}};j();export{L as A,_ as c,I as r};
|
|
10
|
+
Décrivez ici les étapes du flux de travail.`},mermaidTab:{...e.settings.mermaidTab,title:"Paramètres des diagrammes Mermaid",description:"Personnalisez le rendu des diagrammes Mermaid dans vos conversations",themeCardTitle:"Thème",themeLabel:"Thème Mermaid",themeTooltip:"Choisissez un thème Mermaid intégré. Les thèmes Default et Neutral basculent automatiquement selon le thème clair/sombre de l'application.",themeOptions:{...e.settings.mermaidTab.themeOptions,default:"Par défaut (clair/sombre auto)",neutral:"Neutre (clair/sombre auto)",dark:"Sombre",forest:"Forêt (tons verts)",base:"Base (minimal)"},themeDescriptionsTitle:"Descriptions des thèmes :",themeDescriptions:{...e.settings.mermaidTab.themeDescriptions,default:"Par défaut : apparence Mermaid classique, s'adapte automatiquement au clair/sombre",neutral:"Neutre : tons gris, s'adapte automatiquement au clair/sombre",dark:"Sombre : thème sombre permanent",forest:"Forêt : palette verte, adaptée aux diagrammes techniques",base:"Base : style minimal, pour un thème personnalisé"},globalCardTitle:"Paramètres globaux",fontSizeLabel:"Taille de police",fontSizeTooltip:"Taille de police de base pour tout le texte du diagramme (en pixels)",defaultZoomLabel:"Zoom par défaut",defaultZoomTooltip:"Niveau de zoom initial des diagrammes (1,0 = 100 %)",responsiveWidthLabel:"Largeur adaptative",responsiveWidthTooltip:"Active l'adaptation du diagramme à la largeur du conteneur. Désactivez pour une largeur fixe.",switchAuto:"Auto",switchFixed:"Fixe",flowchartCardTitle:"Paramètres du diagramme de flux",flowchartNodeSpacingLabel:"Espacement des nœuds",flowchartNodeSpacingTooltip:"Espacement horizontal entre les nœuds",flowchartRankSpacingLabel:"Espacement des niveaux",flowchartRankSpacingTooltip:"Espacement vertical entre les couches",flowchartCurveTypeLabel:"Type de courbe",flowchartCurveTypeTooltip:"Type de courbe pour les connexions",flowchartCurveOptions:{...e.settings.mermaidTab.flowchartCurveOptions,basis:"Lisse (Basis)",linear:"Linéaire",cardinal:"Cardinal"},sequenceCardTitle:"Paramètres des diagrammes de séquence",sequenceActorMarginLabel:"Marge des acteurs",sequenceActorMarginTooltip:"Espacement entre les acteurs",sequenceMessageMarginLabel:"Marge des messages",sequenceMessageMarginTooltip:"Espacement entre les messages",sequenceActorWidthLabel:"Largeur des acteurs",sequenceActorWidthTooltip:"Largeur de chaque bloc d'acteur",sequenceActorHeightLabel:"Hauteur des acteurs",sequenceActorHeightTooltip:"Hauteur de chaque bloc d'acteur",ganttCardTitle:"Paramètres du diagramme de Gantt",ganttBarHeightLabel:"Hauteur des barres",ganttBarHeightTooltip:"Hauteur de chaque barre de tâche",ganttTopPaddingLabel:"Marge supérieure",ganttTopPaddingTooltip:"Espace en haut du graphique",resetToDefaults:"Rétablir les valeurs par défaut",previewTitle:"Aperçu",previewDescription:"Les changements sont appliqués immédiatement. Créez ou ouvrez un diagramme pour voir le résultat."},modelLimits:{...e.settings.modelLimits,title:"Limites de modèles (budget de tokens)",descriptionPrefix:"Configurez les limites de tokens par modèle pour le budget de contexte. Ces paramètres sont enregistrés globalement dans Bamboo",descriptionSuffix:"et utilisés par le résolveur du back-end.",defaultsTitle:"Valeurs par défaut des modèles",defaultsDescription:"Préchargé avec des valeurs par défaut GPT-5 / GPT-4 / Gemini / Kimi / GLM. Vous pouvez les modifier selon vos besoins.",migratedFromLocalStorage:"Limites de modèles migrées du stockage local vers la configuration globale.",loadFailed:"Échec du chargement des limites de modèles",saveSuccess:"Limites de modèles enregistrées dans la configuration globale",saveFailed:"Échec de l'enregistrement des limites de modèles",resetSuccess:"Limites de modèles réinitialisées aux valeurs par défaut",resetFailed:"Échec de la réinitialisation des limites de modèles",defaults:{...e.settings.modelLimits.defaults,gpt54:"Capacité haut de gamme avec une grande profondeur de raisonnement.",gpt53Codex:"Optimisé pour les workflows de refactorisation de code.",gpt52Pro:"Forte stabilité logique pour les tâches complexes.",gpt5Mini:"Option rapide et économique pour un usage général.",gpt41:"Modèle classique à grand contexte avec fenêtre 1M.",gpt4o:"Faible latence, adapté aux conversations quotidiennes.",gemini25Pro:"Solides capacités d'analyse multimodale.",kimiK25:"Préféré pour les contenus chinois longs.",kimiCoding:"Ajusté pour les scénarios orientés développement.",glm5:"Bon pour la génération one-shot de longs documents."},columns:{...e.settings.modelLimits.columns,vendor:"Fournisseur/Série",model:"Modèle",contextWindow:"Fenêtre de contexte",maxOutput:"Sortie maximale",notes:"Notes",actions:"Actions"},placeholders:{...e.settings.modelLimits.placeholders,vendor:"OpenAI / Google / Moonshot",model:"p. ex. gpt-5.4-thinking",optional:"Optionnel"},actions:{...e.settings.modelLimits.actions,remove:"Supprimer",addRow:"Ajouter une ligne",save:"Enregistrer",resetToDefaults:"Rétablir les valeurs par défaut",reload:"Recharger"},validation:{...e.settings.modelLimits.validation,atLeastOneRow:"Veuillez conserver au moins une ligne de limite de modèle.",modelPatternEmpty:"Le motif du modèle ne peut pas être vide.",duplicateModelPattern:"Motif de modèle dupliqué : {{pattern}}",contextWindowMin:"La fenêtre de contexte pour {{pattern}} doit être d'au moins 1000.",maxOutputMin:"La sortie maximale pour {{pattern}} doit être d'au moins 1.",maxOutputExceedsContext:"La sortie maximale pour {{pattern}} doit être inférieure ou égale à la fenêtre de contexte.",safetyMarginNegative:"La marge de sécurité pour {{pattern}} ne peut pas être négative.",safetyMarginTooLarge:"La marge de sécurité pour {{pattern}} doit être inférieure à la fenêtre de contexte."}},schedulesTab:{...e.settings.schedulesTab,loadFailed:"Échec du chargement des planifications",loadSessionsFailed:"Échec du chargement des sessions de planification",createFailed:"Échec de la création de la planification",updateFailed:"Échec de la mise à jour de la planification",deleteFailed:"Échec de la suppression de la planification",runNowFailed:"Échec de l'exécution immédiate de la planification",taskMessageRequired:"Le message de tâche est requis lorsque l'exécution automatique est activée",created:"Planification créée",updated:"Planification mise à jour",deleted:"Planification supprimée",enqueuedRun:"Exécution mise en file d'attente",loading:"Chargement...",yes:"Oui",no:"Non",optional:"(optionnel)",defaultName:"Ma tâche planifiée",createTitle:"Créer une planification",listTitle:"Tâches planifiées",scheduleSessionsTitle:"Sessions planifiées",noSessionsYet:"Aucune session pour le moment.",editTitle:"Modifier la planification",columns:{...e.settings.schedulesTab.columns,name:"Nom",autoExecute:"Exécution automatique",model:"Modèle",enabled:"Activé",intervalSeconds:"Intervalle (s)",nextRun:"Prochaine exécution",lastRun:"Dernière exécution",actions:"Actions"},form:{...e.settings.schedulesTab.form,name:"Nom",intervalSeconds:"Intervalle (secondes)",enabled:"Activé",taskMessage:"Consigne de tâche",taskMessagePlaceholder:"(Optionnel) Consigne à exécuter",model:"Modèle",modelPlaceholder:"(Optionnel) ex. gpt-4o-mini",modelRequiredIfAuto:"Requis si l'exécution automatique est activée",autoExecute:"Exécution automatique",systemPrompt:"Prompt système",workspacePath:"Chemin de l'espace de travail",enhancePrompt:"Améliorer le prompt"},validation:{...e.settings.schedulesTab.validation,nameRequired:"Le nom est requis",intervalRequired:"L'intervalle est requis"},actions:{...e.settings.schedulesTab.actions,create:"Créer",refresh:"Actualiser",edit:"Modifier",runNow:"Exécuter maintenant",sessions:"Sessions",delete:"Supprimer",open:"Ouvrir",save:"Enregistrer"}},sessionsTab:{...e.settings.sessionsTab,currentSessionTitle:"Session actuelle",id:"id",kind:"type",clearMessages:"Effacer les messages",clearMessagesTitle:"Effacer les messages de session",clearMessagesContent:"Cette action efface les messages/pièces jointes de la session actuelle, tout en conservant l'entrée de session.",clear:"Effacer",cancel:"Annuler",sessionCleared:"Session effacée",noActiveSession:"Aucune session active.",bulkCleanupTitle:"Nettoyage en lot",keepPinned:"Conserver les épinglées",deleteAll:"Supprimer tout",deleteAllTitle:"Supprimer toutes les sessions",deleteAllKeepPinned:"Supprime toutes les sessions sauf celles épinglées.",deleteAllIncludePinned:"Supprime toutes les sessions, y compris les épinglées.",deleteEmpty:"Supprimer les vides",deleteEmptyTitle:"Supprimer les sessions vides",deleteEmptyKeepPinned:"Supprime les sessions vides sauf celles épinglées.",deleteEmptyIncludePinned:"Supprime les sessions vides, y compris les épinglées.",deleteChildren:"Supprimer les enfants",deleteChildrenTitle:"Supprimer les sessions enfants",deleteChildrenKeepPinned:"Supprime toutes les sessions enfants sauf celles épinglées.",deleteChildrenIncludePinned:"Supprime toutes les sessions enfants, y compris les épinglées.",delete:"Supprimer",cleanupComplete:"Nettoyage terminé",devResetTitle:"Réinitialisation de développement",devResetDescription:"Réinitialisation complète du stockage des sessions (supprime sessions/ et réinitialise sessions.json).",devResetAction:"Réinitialiser les sessions (dev)",devResetConfirmTitle:"Réinitialiser le stockage des sessions (dev)",devResetConfirmContent:"Cette action supprime TOUTES les sessions (y compris épinglées/enfants) et réinitialise l'index des sessions. Une nouvelle session vide sera créée après rafraîchissement.",reset:"Réinitialiser",devResetDone:"Stockage des sessions réinitialisé"},providerTab:{...e.settings.providerTab,title:"Configuration du fournisseur LLM",description:"Configurez votre fournisseur LLM préféré. La configuration est enregistrée et appliquée lorsque vous cliquez sur Enregistrer et appliquer la configuration.",currentProvider:"Fournisseur actuel",activeProvider:"Fournisseur LLM actif",selectProviderRequired:"Veuillez sélectionner un fournisseur",saveAndApply:"Enregistrer et appliquer la configuration",loadConfigFailed:"Échec du chargement de la configuration du fournisseur",checkStatusFailed:"Échec de la vérification du statut",startCopilotAuthFailed:"Échec du démarrage de l'authentification Copilot",copilotAuthSuccess:"Authentification Copilot réussie !",providerReloaded:"Fournisseur rechargé avec la nouvelle authentification.",completeAuthFailed:"Échec de la finalisation de l'authentification. Veuillez réessayer.",userCodeCopied:"Code utilisateur copié dans le presse-papiers !",copyCodeFailedPrefix:"Échec de la copie du code. Veuillez copier manuellement :",logoutSuccess:"Déconnecté de Copilot",logoutFailed:"Échec de la déconnexion de Copilot",unknownError:"Erreur inconnue",invalidConfig:"Configuration invalide",invalidConfigPrefix:"Configuration invalide",fetchModelsCopilotFailed:"Échec de la récupération des modèles. Authentifiez Copilot puis réessayez.",fetchModelsFailed:"Échec de la récupération des modèles. Vérifiez votre clé API et l'URL de base.",noModelsReturned:"Aucun modèle renvoyé. Authentifiez d'abord Copilot, puis récupérez les modèles.",foundModels:"{{count}} modèles disponibles trouvés",fetchModelsErrorPrefix:"Échec de la récupération des modèles",saveConfigSuccess:"Configuration enregistrée avec succès",saveConfigFailed:"Échec de l'enregistrement de la configuration",saveConfigErrorPrefix:"Échec de l'enregistrement de la configuration",applyConfigSuccess:"Configuration appliquée avec succès. Les changements prendront effet pour les nouvelles conversations.",applyConfigFailed:"Échec de l'application de la configuration",applyConfigErrorPrefix:"Échec de l'application de la configuration",modelUpdated:"Modèle mis à jour avec succès",updateModelFailed:"Échec de la mise à jour du modèle",updateModelErrorPrefix:"Échec de la mise à jour du modèle",fetchingModels:"Récupération des modèles...",refreshModelsFrom:"Actualiser les modèles disponibles depuis {{source}}",fetchModelsFrom:"Récupérer les modèles disponibles depuis {{source}}",saveModelChangeFailed:"Échec de l'enregistrement du changement de modèle",fetchModelsFailedShort:"Échec de la récupération des modèles",retry:"Réessayer",openaiConfigTitle:"Configuration OpenAI",openaiConfigDescription:"Saisissez votre clé API OpenAI pour utiliser les modèles GPT. Vous pouvez aussi spécifier une URL de base personnalisée pour les proxys.",openaiApiKey:"Clé API OpenAI",openaiApiKeyRequired:"Veuillez saisir votre clé API OpenAI",baseUrlOptional:"URL de base (optionnel)",openaiBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API OpenAI par défaut. Incluez le chemin complet (ex. /v1) si nécessaire.",defaultModel:"Modèle par défaut",selectModelRequired:"Veuillez sélectionner un modèle",selectModel:"Sélectionner un modèle",responsesOnlyModelsOptional:"Modèles API Responses uniquement (optionnel)",responsesOnlyHelp1:"Certains modèles ne prennent en charge que l'API OpenAI Responses (pas chat/completions). Ajoutez ici des ID de modèles pour forcer Bamboo à utiliser l'API en amont.",responsesOnlyHelp2:"Prend en charge la correspondance exacte (ex. gpt-5.3-codex) et la correspondance par préfixe avec * final (ex. gpt-5*).",anthropicConfigTitle:"Configuration Anthropic",anthropicConfigDescription:"Saisissez votre clé API Anthropic pour utiliser les modèles Claude.",anthropicApiKey:"Clé API Anthropic",anthropicApiKeyRequired:"Veuillez saisir votre clé API Anthropic",anthropicBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API Anthropic par défaut. Incluez le chemin complet (ex. /v1) si nécessaire.",maxTokensOptional:"Tokens max (optionnel)",maxTokensHelp:"Nombre maximal de tokens à générer",geminiConfigTitle:"Configuration Google Gemini",geminiConfigDescription:"Saisissez votre clé API Google AI pour utiliser les modèles Gemini.",geminiApiKey:"Clé API Gemini",geminiApiKeyRequired:"Veuillez saisir votre clé API Gemini",geminiBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API Google AI par défaut. Incluez le chemin complet si nécessaire.",copilotConfigTitle:"Configuration GitHub Copilot",copilotConfigDescription:"GitHub Copilot utilise l'authentification OAuth. Aucune clé API n'est requise. Assurez-vous d'avoir un abonnement GitHub Copilot actif.",authStatusTitle:"Statut d'authentification",authenticated:"Authentifié",notAuthenticated:"Non authentifié",logoutCopilot:"Se déconnecter de Copilot",authenticateCopilot:"Authentifier Copilot",refreshStatus:"Actualiser le statut",headlessAuth:"Authentification sans interface",headlessAuthHelp:"Affiche l'URL de connexion dans la console au lieu d'ouvrir automatiquement le navigateur",noModelsLoaded:"Aucun modèle n'est encore chargé. Cliquez sur Récupérer les modèles disponibles depuis le back-end.",authFirstThenFetch:"Authentifiez d'abord Copilot, puis récupérez les modèles.",copilotUsageTitle:"Pour utiliser GitHub Copilot :",copilotUsageStep1:"Vérifiez que vous disposez d'un abonnement GitHub Copilot actif",copilotUsageStep2:"Cliquez sur Authentifier Copilot pour démarrer le flux de code appareil",copilotUsageStep3:"Suivez les instructions dans votre terminal pour finaliser l'authentification",copilotAuthModalTitle:"Authentification Copilot",cancel:"Annuler",completedAuthorization:"J'ai terminé l'autorisation",browserOpened:"Navigateur ouvert automatiquement",authStep1:"Une page GitHub devrait s'être ouverte dans votre navigateur",authStep2:"Copiez le code ci-dessous puis collez-le sur la page GitHub",authStep3:"Cliquez sur Continuer sur GitHub pour autoriser",visitUrl:"1. Ouvrez cette URL :",enterCode:"2. Saisissez ce code :",copied:"Copié !",copyCode:"Copier le code",afterContinueHint:"Après avoir cliqué sur Continuer sur GitHub, cliquez sur le bouton J'ai terminé l'autorisation ci-dessous.",providerNames:{...e.settings.providerTab.providerNames,openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},mcpTab:{...e.settings.mcpTab,status:{...e.settings.mcpTab.status,connecting:"Connexion",ready:"Prêt",degraded:"Dégradé",stopped:"Arrêté",error:"Erreur"},statusGuideTitle:"Guide des statuts :",statusLastError:"Dernière erreur : {{error}}",serverDeleted:"Serveur MCP supprimé",deleteServerFailed:"Échec de la suppression du serveur MCP",connectedTo:"Connecté à {{name}}",connectServerFailed:"Échec de la connexion au serveur MCP",disconnected:"Déconnecté de {{name}}",disconnectServerFailed:"Échec de la déconnexion du serveur MCP",toolsRefreshedFor:"Outils actualisés pour {{name}}",refreshToolsFailed:"Échec d'actualisation des outils",statusRefreshed:"Statut MCP actualisé",refreshStatusFailed:"Échec d'actualisation du statut MCP",noServerForEditing:"Aucun serveur sélectionné pour édition",savedServer:"{{name}} enregistré",addedServer:"{{name}} ajouté",saveServerFailed:"Échec de l'enregistrement du serveur MCP",copiedConfig:"Configuration MCP copiée dans le presse-papiers",clipboardUnavailable:"Presse-papiers indisponible. L'export est affiché dans la fenêtre.",invalidJsonPrefix:"JSON invalide",unknownError:"Erreur inconnue",jsonMustBeObject:"Le JSON doit être un objet",missingMcpServers:'Champ "mcpServers" manquant. Collez un bloc de configuration complet de style Claude Desktop : { "mcpServers": { ... } }',importSummary:"{{count}} serveur(s) importé(s) ({{added}} ajoutés, {{updated}} mis à jour, {{removed}} supprimés). {{failed}} échec(s) de démarrage.",importStartFailures:"Certains serveurs n'ont pas démarré. La configuration est enregistrée ; ouvrez la liste des serveurs pour voir les erreurs.",importFailed:"Échec de l'import des serveurs MCP",overviewTitle:"Vue d'ensemble MCP",overviewDescription:"Configurez des serveurs MCP externes et inspectez les alias d'outils enregistrés.",totalServers:"Total des serveurs : {{count}}",totalTools:"Total des outils : {{count}}",serversTitle:"Serveurs MCP",addServer:"Ajouter un serveur",refreshAll:"Tout actualiser",export:"Exporter",import:"Importer",importModalTitle:"Importer des serveurs MCP",importHint:"Collez un bloc de configuration style Claude Desktop. Exemple :",importModeMerge:"Fusionner (upsert)",importModeReplace:"Remplacer (supprimer les autres)",replaceWarning:"Le mode remplacement supprimera les serveurs MCP existants absents de la configuration mcpServers importée."},mcpServerTable:{...e.settings.mcpServerTable,columns:{...e.settings.mcpServerTable.columns,name:"Nom",transportType:"Type de transport",status:"Statut",toolCount:"Nombre d'outils",actions:"Actions"},transportOptions:{...e.settings.mcpServerTable.transportOptions,sse:"SSE",stdio:"Stdio"},deleteTitle:"Supprimer le serveur MCP",deleteDescription:"Supprimer le serveur {{name}} ?",empty:"Aucun serveur MCP configuré",actions:{...e.settings.mcpServerTable.actions,edit:"Modifier",delete:"Supprimer",disconnect:"Déconnecter",connect:"Connecter",refreshTools:"Actualiser les outils"}},mcpToolList:{...e.settings.mcpToolList,title:"Outils MCP",selectServerHint:"Sélectionnez un serveur pour inspecter ses outils MCP",empty:"Aucun outil trouvé pour ce serveur",noDescription:"Aucune description disponible",aliasMapping:"Mappage d'alias",parametersSchema:"Schéma des paramètres"},mcpServerForm:{...e.settings.mcpServerForm,jsonMustBeObject:"Le JSON doit être un objet",detectedBulkConfig:"Champ mcpServers détecté (configuration groupée). Utilisez le bouton Importer de l'onglet MCP pour un import groupé, ou collez ici la configuration d'un seul serveur.",missingIdField:"Champ id manquant ou invalide",missingTransportField:"Champ transport manquant ou invalide",missingTransportInfo:"Informations de transport manquantes. Attendu : transport (format Bodhi) ou commande/url (format MCP standard).",invalidJson:"JSON invalide : {{message}}",unknownError:"Erreur inconnue",editTitle:"Modifier le serveur MCP",addTitle:"Ajouter un serveur MCP",save:"Enregistrer",modeForm:"Formulaire",modeJson:"JSON",jsonError:"Erreur JSON",serverId:"ID du serveur",serverIdRequired:"L'ID du serveur est requis",serverIdPatternError:"Utilisez uniquement des lettres, des chiffres, des underscores et des tirets",displayName:"Nom d'affichage",enabled:"Activé",enabledHelp:"Les serveurs désactivés restent en configuration, mais ne seront pas démarrés.",transportType:"Type de transport",transportTypeRequired:"Le type de transport est requis",transportOptions:{...e.settings.mcpServerForm.transportOptions,stdio:"Stdio",sse:"SSE"},command:"Commande",commandRequired:"La commande est requise",arguments:"Arguments",argumentsPlaceholder:"Ajoutez un argument puis appuyez sur Entrée",envVars:"Variables d'environnement",addEnv:"Ajouter une variable",keyRequired:"Clé requise",sseUrl:"URL SSE",sseUrlRequired:"L'URL SSE est requise",validUrlRequired:"Veuillez saisir une URL valide",headers:"En-têtes",addHeader:"Ajouter un en-tête",headerNameRequired:"Nom d'en-tête requis"},metricsCards:{...e.settings.metricsCards,totalSessions:"Sessions totales",chatTokens:"Tokens chat",totalToolCalls:"Appels d'outils totaux",avgSessionDuration:"Durée moyenne des sessions"},forwardMetricsCards:{...e.settings.forwardMetricsCards,totalForwardRequests:"Requêtes de transfert totales",successRate:"Taux de réussite",forwardTokens:"Tokens de transfert",avgResponseTime:"Temps de réponse moyen"},unifiedMetricsCards:{...e.settings.unifiedMetricsCards,totalRequests:"Requêtes totales",totalTokens:"Tokens totaux",successRate:"Taux de réussite",avgResponseTime:"Temps de réponse moyen",chatSessions:"Sessions chat",chatTokens:"Tokens chat",toolCalls:"Appels d'outils",avgSessionDuration:"Durée moyenne des sessions",forwardRequests:"Requêtes de transfert",forwardTokens:"Tokens de transfert",successful:"Réussi",failed:"Échec"},metricsTable:{...e.settings.metricsTable,session:{...e.settings.metricsTable.session,columns:{...e.settings.metricsTable.session.columns,session:"Session",model:"Modèle",status:"Statut",started:"Début",duration:"Durée",tokens:"Tokens",toolCalls:"Appels d'outils",messages:"Messages",action:"Action"},view:"Voir"},forward:{...e.settings.metricsTable.forward,columns:{...e.settings.metricsTable.forward.columns,id:"ID",endpoint:"Point de terminaison",model:"Modèle",type:"Type",status:"Statut",tokens:"Tokens",duration:"Durée",started:"Début",error:"Erreur"},typeStream:"Flux",typeSync:"Synchrone",totalRequests:"{{total}} requêtes",empty:"Aucune requête de transfert enregistrée pour cette plage"}},metricsDashboard:{...e.settings.metricsDashboard,roundColumns:{...e.settings.metricsDashboard.roundColumns,round:"Tour",status:"Statut",duration:"Durée",tokens:"Tokens",toolCalls:"Appels d'outils"},compactStats:{...e.settings.metricsDashboard.compactStats,combinedTokens:"Tokens combinés",chatTokens:"Tokens chat",forwardTokens:"Tokens de transfert",avgTokensPerSession:"Tokens moyens / session",estimatedTimeSaved:"Temps estimé économisé",estimatedEfficiencyLift:"Gain d'efficacité estimé",estimatedSpeedMultiplier:"Multiplicateur de vitesse estimé",estimatedSavedWorkdays:"Jours de travail estimés économisés",avgRoundsPerSession:"Tours moyens / session",toolCallsPerSession:"Appels d'outils / session",activeSessionRate:"Taux de sessions actives",avgTokensPerForward:"Tokens moyens / transfert",forwardErrorRate:"Taux d'erreur de transfert",streamingRatio:"Ratio de streaming",p95ForwardLatency:"Latence P95 des transferts",modelCoverage:"Couverture des modèles",endpointCoverage:"Couverture des points de terminaison"},multiplierSuffix:"x",filtersTitle:"Filtres",refresh:"Actualiser",startDate:"Date de début",endDate:"Date de fin",model:"Modèle",daysOption:"{{value}} jours",granularity:{...e.settings.metricsDashboard.granularity,daily:"Quotidien",weekly:"Hebdomadaire",monthly:"Mensuel"},dashboardTitle:"Tableau de bord",tabs:{...e.settings.metricsDashboard.tabs,overview:"Vue d'ensemble",analysis:"Analyse",records:"Journaux"},derivedMetricsTitle:"Métriques dérivées (compact)",derivedMetricsSubtitle:"Plus de dimensions sans allonger la page",efficiencyHint:"Les estimations d'efficacité utilisent des hypothèses prudentes : {{manualTpm}} tokens/min en manuel + {{manualToolMinutes}} min/outil vs {{assistedTpm}} tokens/min assisté + {{assistedToolMinutes}} min/outil, puis application de {{realization}} % de réalisation et des plafonds ({{maxLift}} % / {{maxMultiplier}}x).",toolUsageTitle:"Fréquence d'utilisation des outils",noToolUsage:"Aucun appel d'outil enregistré pour cette plage.",calls:"Appels",activityHeatmapTitle:"Carte thermique d'activité quotidienne",noActivity:"Aucune activité disponible pour cette plage.",sessionsCount:"{{count}} sessions",tokensAmount:"{{value}} tokens",sessionsTabLabel:"Sessions ({{count}})",chatSessionsLabel:"Sessions chat ({{count}})",sessionsHint:"Cliquez sur une session pour voir le détail complet",forwardTabLabel:"Requêtes de transfert ({{count}})",detailedMetricsTitle:"Métriques détaillées",sessionMetricsTitle:"Métriques de session",loadingSessionDetails:"Chargement des détails de session...",sessionDetail:{...e.settings.metricsDashboard.sessionDetail,sessionId:"ID de session",model:"Modèle",status:"Statut",duration:"Durée",messages:"Messages",totalTokens:"Tokens totaux",toolCalls:"Appels d'outils"},noDetail:"Aucun détail disponible."},charts:{...e.settings.charts,tokenUsageOverTime:"Utilisation des tokens dans le temps",unifiedTokenUsageOverTime:"Utilisation des tokens dans le temps (chat + transfert)",noTokenUsage:"Aucune utilisation de tokens disponible",tokenUsageDescription:"Tokens de prompt, de réponse et totaux par jour/période.",unifiedTokenUsageDescription:"Utilisation combinée des tokens chat et transfert au fil du temps.",total:"Total",prompt:"Prompt",completion:"Réponse",chat:"Chat",forward:"Transfert",modelDistribution:"Répartition des modèles",noModelMetrics:"Aucune métrique de modèle disponible",modelDistributionDescription:"Part des tokens totaux consommés par modèle.",endpointDistribution:"Répartition des points de terminaison",noForwardMetrics:"Aucune métrique de transfert disponible pour cette plage."}}},O={...e,app:{...e.app,loading:"読み込み中...",retry:"再試行"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"新しいセッション",empty:{noSessions:"セッションはまだありません",hint:"「新しいセッション」をクリックして開始"},dateGroups:{today:"今日",yesterday:"昨日",thisWeek:"今週",thisMonth:"今月",pinned:"ピン留め",scheduled:"スケジュール済み"},actions:{collapseChildren:"子セッションを折りたたむ",expandChildren:"子セッションを展開"}}},settings:{...e.settings,page:{...e.settings.page,back:"戻る",title:"システム設定",tabs:{...e.settings.page.tabs,config:"設定",prompts:"プロンプト",skills:"スキル",workflows:"ワークフロー",modelLimits:"モデル制限",metrics:"メトリクス",schedules:"スケジュール",sessions:"セッション",app:"アプリ",provider:"プロバイダー",masking:"マスキング"}},configTab:{...e.settings.configTab,language:"言語",languageEnglish:"英語",languageChinese:"簡体字中国語",languageTraditionalChinese:"繁体字中国語",languageFrench:"フランス語",languageJapanese:"日本語",languageHindi:"ヒンディー語"},appTab:{...e.settings.appTab,language:"言語",languageEnglish:"英語",languageChinese:"簡体字中国語",languageTraditionalChinese:"繁体字中国語",languageFrench:"フランス語",languageJapanese:"日本語",languageHindi:"ヒンディー語"}}},d={...e,app:{...e.app,loading:"लोड हो रहा है...",retry:"पुनः प्रयास करें",backendNotReachable:"बैकएंड {{baseUrl}} पर उपलब्ध नहीं है (अंतिम त्रुटि: {{message}})"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"नया सत्र",empty:{noSessions:"अभी तक कोई सत्र नहीं",hint:'शुरू करने के लिए "नया सत्र" पर क्लिक करें'},dateGroups:{today:"आज",yesterday:"कल",thisWeek:"इस सप्ताह",thisMonth:"इस महीने",pinned:"पिन किया गया",scheduled:"अनुसूचित"},actions:{collapseChildren:"चाइल्ड सत्र संक्षिप्त करें",expandChildren:"चाइल्ड सत्र विस्तृत करें"}}},settings:{...e.settings,page:{...e.settings.page,back:"वापस",title:"सिस्टम सेटिंग्स",tabs:{...e.settings.page.tabs,config:"कॉन्फ़िगरेशन",prompts:"प्रॉम्प्ट्स",skills:"स्किल्स",workflows:"वर्कफ़्लोज़",modelLimits:"मॉडल सीमाएँ",metrics:"मेट्रिक्स",schedules:"शेड्यूल",sessions:"सेशंस",app:"ऐप",provider:"प्रोवाइडर",hooks:"हुक्स",masking:"मास्किंग",envVars:"पर्यावरण वेरिएबल्स"},groups:{...e.settings.page.groups,ai:"AI",toolsAndExtensions:"टूल्स और एक्सटेंशन्स",securityAndPrivacy:"सुरक्षा",monitoring:"मॉनिटरिंग",system:"सिस्टम"}},configTab:{...e.settings.configTab,tabs:{...e.settings.configTab.tabs,general:"सामान्य",tools:"टूल्स"},providerMovedTitle:"प्रोवाइडर कॉन्फ़िगरेशन स्थानांतरित किया गया",providerMovedDescription:"GitHub Copilot और अन्य प्रोवाइडर सेटिंग्स को Provider Settings टैब में स्थानांतरित कर दिया गया है। कृपया अपने प्रोवाइडर वहीं कॉन्फ़िगर करें।",backendApiBaseUrlTitle:"बैकएंड API बेस URL",backendApiHint:"/v1 पथ शामिल होना चाहिए",resetToDefault:"डिफ़ॉल्ट पर रीसेट करें",save:"सहेजें",toolsTitle:"टूल उपलब्धता",toolsDescription:"नियंत्रित करें कि कौन-सा टूल AI मॉडल को भेजा जाए। बंद किए गए टूल मॉडल टूल-स्कीमा से छिपा दिए जाते हैं।",toolsEmpty:"फिलहाल कोई टूल उपलब्ध नहीं है।",reloadTools:"टूल्स रीलोड करें",language:"भाषा",languageEnglish:"अंग्रेज़ी",languageChinese:"सरलीकृत चीनी",languageTraditionalChinese:"पारंपरिक चीनी",languageFrench:"फ़्रेंच",languageJapanese:"जापानी",languageHindi:"हिन्दी"},networkCard:{...e.settings.networkCard,title:"नेटवर्क सेटिंग्स",httpProxy:"HTTP प्रॉक्सी",httpsProxy:"HTTPS प्रॉक्सी",proxyAuthTitle:"प्रॉक्सी प्रमाणीकरण",proxyConfiguredForUser:"उपयोगकर्ता के लिए कॉन्फ़िगर: {{username}}",clearCredentials:"क्रेडेंशियल्स साफ़ करें",username:"उपयोगकर्ता नाम",password:"पासवर्ड",apply:"लागू करें",credentialsStorageNote:"प्रॉक्सी क्रेडेंशियल्स एन्क्रिप्ट होकर ~/.bamboo/config.json में सहेजे जाते हैं",reload:"रीलोड",save:"सहेजें"},modelMappingCard:{...e.settings.modelMappingCard,collapseTitle:"Anthropic मॉडल मैपिंग",description:"कॉन्फ़िगर करें कि Claude CLI जब विशिष्ट मॉडल मांगे तो कौन-से {{provider}} मॉडल उपयोग हों।",loadModelsErrorTitle:"मॉडल लोड करने में विफल",retry:"पुनः प्रयास करें",loadingModels:"मॉडल लोड हो रहे हैं...",modelTypeOpusDescription:'"opus" वाले मॉडल से मेल खाता है',modelTypeSonnetDescription:'"sonnet" वाले मॉडल से मेल खाता है',modelTypeHaikuDescription:'"haiku" वाले मॉडल से मेल खाता है',selectModelPlaceholder:"{{label}} मॉडल चुनें",customModelOption:"कस्टम मॉडल...",refreshModels:"मॉडल रीफ्रेश करें",currentProvider:"वर्तमान प्रोवाइडर",loadingProvider:"लोड हो रहा है...",availableModels:"उपलब्ध मॉडल",storedIn:"संग्रहित स्थान",customModalTitle:"कस्टम मॉडल नाम दर्ज करें",customModalDescription:"{{modelType}} के लिए कस्टम मॉडल नाम दर्ज करें",customModalPlaceholder:"उदाहरण: gpt-4-turbo-preview",customModalNote:"नोट: सुनिश्चित करें कि मॉडल नाम वर्तमान प्रोवाइडर के लिए मान्य है।",save:"सहेजें",cancel:"रद्द करें"},appTab:{...e.settings.appTab,autoGenerateTitle:"सेशन शीर्षक स्वतः बनाएं",autoGenerateTitleDesc:"सक्षम होने पर, ऐप सहायक के पहले उत्तर के बाद वर्णनात्मक शीर्षक बनाता है।",switchOn:"चालू",switchOff:"बंद",darkMode:"डार्क मोड",darkModeDark:"डार्क",darkModeLight:"लाइट",language:"भाषा",languageEnglish:"अंग्रेज़ी",languageChinese:"सरलीकृत चीनी",languageTraditionalChinese:"पारंपरिक चीनी",languageFrench:"फ़्रेंच",languageJapanese:"जापानी",languageHindi:"हिन्दी",cancel:"रद्द करें",dangerZone:"जोखिम क्षेत्र"},common:{...e.settings.common,loading:"लोड हो रहा है...",successful:"सफल",failed:"विफल"}}},H={...l,layout:{...e.layout,showSidebar:"Afficher la barre latérale"},common:{...e.common,workspace:"Espace de travail",server:"Serveur :",category:"Catégorie :",parameters:"Paramètres",approve:"Approuver",reject:"Refuser"},chat:{...l.chat,sidebar:{...l.chat.sidebar,createFailedTitle:"Échec de création de session",createFailedUnknown:"Erreur inconnue",delete:{title:"Supprimer la session",confirm:"Voulez-vous vraiment supprimer cette session ?"},deleteByDate:{title:"Supprimer les sessions du {{date}}",confirm:"Voulez-vous vraiment supprimer {{count}} session(s) du {{date}} ?"},newSessionWithPrompt:"Nouvelle session avec {{prompt}}"},workspace:{...e.chat.workspace,recentTitle:"Espaces récents",suggestedTitle:"Espaces suggérés",noRecentWorkspaces:"Aucun espace récent",noSuggestions:"Aucune suggestion",defaultWorkspaceName:"Espace de travail",validWorkspace:"Espace valide",fileCount:"{{count}} fichiers"},input:{...e.chat.input,addAttachments:"Ajouter des pièces jointes",referenceWorkspaceFiles:"Référencer des fichiers de l'espace",imageCountSingular:"{{count}} image",imageCountPlural:"{{count}} images",moreImages:"+{{count}} de plus",clearAllImages:"Effacer toutes les images",reasoningTitle:"Effort de raisonnement : {{label}}",reasoning:{...e.chat.input.reasoning,low:"Faible",medium:"Moyen",high:"Élevé",xhigh:"Très élevé",max:"Max"},strictToolOnlyMode:"Mode strict outils uniquement",toolSpecificModeLabel:"Mode spécifique à l'outil",allowedTools:"Outils autorisés :",autoPrefixLabel:"Préfixe auto : {{prefix}}",mustStartWithPrefix:'Le message doit commencer par "{{prefix}}"'},prompt:{...e.chat.prompt,selectorTitle:"Choisir un prompt système",createButton:"Créer une nouvelle session",helperText:"Choisissez un prompt système de base pour l'IA. Vous pouvez en ajouter ou modifier dans les paramètres système.",emptyDescription:"Aucun prompt système trouvé. Ajoutez-en un dans les paramètres système.",newSessionSelectorTitle:"Choisir un prompt système pour la nouvelle session",defaultDescription:"Prompt système par défaut.",loadPresetsFailed:"Échec du chargement des préréglages",loadCurrentInfoFailed:"Échec du chargement des informations actuelles"},commandSelector:{...e.chat.commandSelector,loading:"Chargement des commandes...",emptyWithSearch:'Aucune commande trouvée pour "{{search}}"',empty:"Aucune commande disponible.",navigationHint:"Navigation : Haut/Bas ou Ctrl+P/N | Sélection : Entrée | Compléter : Espace/Tab | Annuler : Échap",types:{...e.chat.commandSelector.types,workflow:"Flux de travail",skill:"Compétence",mcp:"MCP"}},model:{...e.chat.model,selectModel:"Sélectionner un modèle",noModelSelected:"Aucun modèle sélectionné",selectModelHint:"Choisissez un modèle pour commencer la discussion.",providerNotConfigured:"Fournisseur non configuré",configureProviderHint:"Configurez votre fournisseur dans les paramètres avant de choisir un modèle.",configureProvider:"Configurer le fournisseur",openSettings:"Ouvrir les paramètres",noModelsAvailable:"Aucun modèle disponible",selectModelBeforeSend:"Veuillez sélectionner un modèle avant l'envoi.",selectModelBeforeRetry:"Veuillez sélectionner un modèle avant de réessayer."},streaming:{...e.chat.streaming,assistant:"Bodhi",requestCancelled:"Requête annulée",sendFailed:"Échec de l'envoi du message",retryFailed:"Échec de la nouvelle tentative",modelConfigNotLoaded:"Configuration du modèle non chargée",agentUnavailable:"Agent indisponible",noActiveChatTitle:"Aucune conversation active",noActiveChatSendContent:"Veuillez créer ou sélectionner une conversation avant d'envoyer un message.",noActiveChatRetryContent:"Veuillez créer ou sélectionner une conversation avant de réessayer.",noChatIdTitle:"ID de conversation manquant",noChatIdSendContent:"La conversation actuelle n'a pas d'ID. Créez une nouvelle conversation puis réessayez.",noChatIdRetryContent:"La conversation actuelle n'a pas d'ID. Créez une nouvelle conversation puis réessayez."},selectionToolbar:{...e.chat.selectionToolbar,selectMessages:"Sélectionner des messages",selectedCount:"{{selected}} sélectionné(s) ({{total}} au total)",selectAll:"Tout sélectionner",clear:"Effacer",exportMarkdown:"Exporter en Markdown",exportPdf:"Exporter en PDF",done:"Terminé"},subSessions:{...e.chat.subSessions,title:"Sous-sessions",expand:"Développer",collapse:"Réduire",continue:"Continuer ici",open:"Ouvrir",retry:"Réessayer",hiddenHint:"{{count}} sous-session(s) masquée(s)"},chatItem:{...e.chat.chatItem,edit:"Modifier",childTag:"Enfant"},systemPromptSelector:{...e.chat.systemPromptSelector,defaultTag:"Par défaut",hide:"Masquer",preview:"Aperçu",copy:"Copier",lines:"{{count}} lignes",words:"{{count}} mots",chars:"{{count}} caractères",noContent:"Aucun contenu"},title:{...e.chat.title,updated:"Titre de conversation mis à jour",generateFailed:"Échec de génération du titre de conversation"},respond:{...e.chat.respond,customAnswerPlaceholder:"Saisissez votre réponse personnalisée..."},multiPane:{...e.chat.multiPane,splitHorizontal:"Diviser horizontalement",splitVertical:"Diviser verticalement",closePane:"Fermer le panneau",selectSessionHint:"Sélectionnez une session pour voir les messages",hoverToSplitHint:"Survolez un panneau pour le diviser et comparer les conversations",selectMessagesToExport:"Sélectionnez des messages à exporter"},messageCard:{...e.chat.messageCard,authRequired:"Authentification requise",goToSettings:"Aller aux paramètres",assistantThinking:"L'assistant réfléchit...",reasoning:"Raisonnement",selected:"Sélectionné",selectedTool:"Outil sélectionné"},messageActions:{...e.chat.messageActions,copy:"Copier",exportMarkdown:"Exporter en Markdown",exportPdf:"Exporter en PDF",restoreChat:"Restaurer uniquement la conversation",restoreFilesAndChat:"Restaurer les fichiers et la conversation",deleteMessage:"Supprimer le message",savedFile:"Enregistré dans {{filename}}",nothingToExport:"Rien à exporter",exportFailed:"Échec de l'export",cannotRestore:"Impossible de restaurer ce message",restorePartial:"Conversation restaurée. {{count}} fichier(s) n'ont pas pu être restaurés.",restoreFilesSuccess:"Fichiers et conversation restaurés ({{count}} message(s) supprimé(s)).",restoreSuccess:"Conversation restaurée ({{count}} message(s) supprimé(s)).",restoreFailed:"Échec de restauration de la conversation",pdfUnavailable:"L'export PDF n'est pas disponible dans cet environnement",exportingPdf:"Export PDF en cours..."},session:{...e.chat.session,defaultTitle:"Nouvelle session"}},settings:{...l.settings,page:{...l.settings.page,tabs:{...l.settings.page.tabs,hooks:"Hooks",envVars:"Variables d'environnement"}},configTab:{...l.settings.configTab,tabs:{...e.settings.configTab.tabs,general:"Général",tools:"Outils"},toolsTitle:"Disponibilité des outils",toolsDescription:"Activez/désactivez les outils pouvant être envoyés au modèle IA. Les outils désactivés sont masqués du schéma d'outils du modèle.",toolsEmpty:"Aucun outil disponible actuellement.",reloadTools:"Recharger les outils",loadBambooConfigFailed:"Échec du chargement de la configuration Bamboo",bambooConfigSaved:"Configuration Bamboo enregistrée",saveBambooConfigFailed:"Échec de l'enregistrement de la configuration Bamboo"},keywordMaskingTab:{...l.settings.keywordMaskingTab,invalidRegexPattern:"Motif regex invalide"}},components:{...e.components,workflowResult:{...e.components.workflowResult,userWorkflow:"Workflow utilisateur",waitingForResult:"En attente du résultat du workflow...",executionFailed:"Échec d'exécution du workflow",retryWorkflow:"Relancer le workflow",copyParameters:"Copier les paramètres",copyResult:"Copier le résultat",expandResult:"Développer le résultat",collapseResult:"Réduire le résultat"},toolResult:{...e.components.toolResult,waiting:"En attente",waitingForResult:"En attente du résultat...",executionFailed:"Échec d'exécution de l'outil",copyResult:"Copier le résultat",checkpoint:"Point de contrôle",checkpointNone:"Aucun",diffTruncated:"Le diff est trop long et a été tronqué"},toolCall:{...e.components.toolCall,liveOutput:"Sortie en direct",keyParameters:"Paramètres clés",fullParameters:"Paramètres complets",copyParameters:"Copier les paramètres"},plan:{...e.components.plan,executionPlan:"Plan d'exécution",goal:"Objectif",steps:"Étapes",stepTitle:"Étape {{number}}",reason:"Raison",estimated:"Estimé",tools:"Outils",prerequisites:"Prérequis",potentialRisks:"Risques potentiels ({{count}})",totalEstimatedTime:"Temps total estimé",feedbackPlaceholder:"Indiquez à l'agent ce que vous souhaitez ajuster...",sendFeedback:"Envoyer un retour",refinePlan:"Affiner le plan",executePlan:"Exécuter le plan"},question:{...e.components.question,agentQuestion:"Question de l'agent",context:"Contexte",chooseOption:"Choisir une option",recommended:"Recommandé",customAnswerHint:"Aucune option adaptée ? Saisissez votre propre réponse.",customAnswerPlaceholder:"Saisissez votre réponse personnalisée...",submitAnswer:"Soumettre la réponse"},questionDialog:{...e.components.questionDialog,selectOptionWarning:"Veuillez sélectionner une option avant de soumettre.",responseSubmitted:"Réponse soumise",responseSubmittedContinue:"Réponse soumise, l'IA va continuer le traitement",submitFailed:"Échec de soumission de la réponse",noModelConfigured:"Aucun modèle configuré",customAnswerTip:"Réponse personnalisée",otherTypeBelow:"Autre (saisir ci-dessous)",confirm:"Confirmer"},skillManager:{...e.components.skillManager,title:"Compétences",refresh:"Actualiser",skillsRefreshed:"Compétences actualisées",lastUpdated:"Dernière mise à jour : {{value}}",justNow:"à l'instant",secondsAgo:"il y a {{count}} s",minutesAgo:"il y a {{count}} min",searchPlaceholder:"Rechercher des compétences",readOnlyHint:"Mode lecture seule : les compétences ne peuvent pas être modifiées.",noSkillsFound:"Aucune compétence trouvée",noMatch:"Aucune compétence ne correspond à la recherche",loadFailed:"Échec du chargement des compétences",getFailed:"Échec de récupération de la compétence"},skillSelector:{...e.components.skillSelector,placeholder:"Sélectionner des compétences"},imageGrid:{...e.components.imageGrid,preview:"Aperçu",ocr:"OCR"},todoList:{...e.components.todoList,title:"Liste des tâches",evaluating:"Évaluation en cours",pin:"Épingler",unpin:"Désépingler",llmEvaluation:"Évaluation LLM",tools:"outils",dependsOn:"Dépend de : {{deps}}",dependencies:"dépendances",status:{...e.components.todoList.status,pending:"En attente",inProgress:"En cours",completed:"Terminée",blocked:"Bloquée"}},tokenUsage:{...e.components.tokenUsage,title:"Utilisation des tokens",summary:"Résumé",system:"Système",messages:"Messages",tokens:"tokens",usedPercent:"{{value}} % utilisés"},approval:{...e.components.approval,workflow:"Workflow",executionRequest:"Demande d'exécution",aiWantsExecute:"L'IA souhaite exécuter l'action suivante"},toolSession:{...e.components.toolSession,title:"Session d'outils",running:"En cours",done:"Terminé",error:"Erreur",completedOnly:"{{completed}} terminé(s)",completedWithErrors:"{{completed}} terminé(s) (avec erreurs)",completedProgress:"{{completed}} / {{total}} terminés",noPersistedMessage:"Aucune sortie persistée",deleteMessage:"Supprimer la session d'outils"},mermaid:{...e.components.mermaid,loadingDiagram:"Chargement du diagramme...",diagramError:"Erreur de diagramme Mermaid",errorTitlePrefix:"Erreur",checkConsoleHint:"Vérifiez la syntaxe Mermaid ou ouvrez la console pour les détails.",fixMermaid:"Corriger Mermaid",renderingDiagram:"Rendu du diagramme...",exportSvg:"Exporter en SVG",exportFailed:"Échec de l'export du diagramme"}}},N={...d,layout:{...e.layout,showSidebar:"साइडबार दिखाएँ"},common:{...e.common,workspace:"वर्कस्पेस",server:"सर्वर:",category:"श्रेणी:",parameters:"पैरामीटर्स",approve:"स्वीकृत करें",reject:"अस्वीकृत करें"},chat:{...d.chat,sidebar:{...d.chat.sidebar,createFailedTitle:"सेशन बनाने में विफल",createFailedUnknown:"अज्ञात त्रुटि",delete:{title:"सेशन हटाएँ",confirm:"क्या आप वाकई इस सेशन को हटाना चाहते हैं?"},deleteByDate:{title:"{{date}} के सेशन हटाएँ",confirm:"क्या आप {{date}} के {{count}} सेशन हटाना चाहते हैं?"},newSessionWithPrompt:"{{prompt}} के साथ नया सेशन"},workspace:{...e.chat.workspace,modalTitle:"वर्कस्पेस पथ सेट करें",invalidTitle:"अमान्य वर्कस्पेस पथ",issuesDetected:"वर्कस्पेस पथ में संभावित समस्याएँ मिलीं:",confirmSaveInvalid:"क्या आप फिर भी यह पथ सहेजना चाहते हैं?",errorEnterPath:"कृपया वर्कस्पेस पथ दर्ज करें",errorSaveFailed:"वर्कस्पेस पथ सहेजने में विफल",label:"वर्कस्पेस",browseFolder:"फ़ोल्डर ब्राउज़ करें",descriptionTitle:"वर्कस्पेस पथ विवरण",checkTitle:"वर्कस्पेस पथ जाँच",checkDescription:"वर्कस्पेस पथ सत्यापन विफल।",recentTitle:"हाल के वर्कस्पेस",suggestedTitle:"सुझाए गए वर्कस्पेस",noRecentWorkspaces:"कोई हाल का वर्कस्पेस नहीं",noSuggestions:"कोई सुझाव नहीं",defaultWorkspaceName:"वर्कस्पेस",validWorkspace:"वैध वर्कस्पेस",fileCount:"{{count}} फ़ाइलें"},input:{...e.chat.input,placeholder:"संदेश भेजें...",placeholderWithReference:"संदेश भेजें (संदर्भ सहित)",placeholderWithWorkflows:"संदेश भेजें... (वर्कफ़्लो के लिए '/' टाइप करें)",toolCallsOnly:"केवल टूल कॉल (अनुमत टूल: {{tools}})",autoPrefixMode:"ऑटो-प्रिफिक्स मोड: {{prefix}} (टूल चुनने के लिए '/' टाइप करें)",toolSpecificMode:"टूल-विशिष्ट मोड (अनुमत टूल: {{tools}})",processingFiles:"फ़ाइलें प्रोसेस की जा रही हैं…",addAttachments:"संलग्नक जोड़ें",referenceWorkspaceFiles:"वर्कस्पेस फ़ाइलों का संदर्भ दें",imageCountSingular:"{{count}} छवि",imageCountPlural:"{{count}} छवियाँ",moreImages:"+{{count}} और",clearAllImages:"सभी छवियाँ साफ़ करें",reasoningTitle:"रीज़निंग प्रयास: {{label}}",reasoning:{...e.chat.input.reasoning,low:"कम",medium:"मध्यम",high:"उच्च",xhigh:"बहुत उच्च",max:"अधिकतम"},strictToolOnlyMode:"सख्त केवल-टूल मोड",toolSpecificModeLabel:"टूल-विशिष्ट मोड",allowedTools:"अनुमत टूल:",autoPrefixLabel:"ऑटो प्रिफिक्स: {{prefix}}",mustStartWithPrefix:'संदेश "{{prefix}}" से शुरू होना चाहिए'},prompt:{...e.chat.prompt,selectorTitle:"सिस्टम प्रॉम्प्ट चुनें",createButton:"नया सेशन बनाएँ",helperText:"AI के लिए आधार सिस्टम प्रॉम्प्ट चुनें। आप सिस्टम सेटिंग्स में प्रॉम्प्ट जोड़ या संपादित कर सकते हैं।",emptyDescription:"कोई सिस्टम प्रॉम्प्ट नहीं मिला। सिस्टम सेटिंग्स में एक जोड़ें।",newSessionSelectorTitle:"नए सेशन के लिए सिस्टम प्रॉम्प्ट चुनें",defaultDescription:"डिफ़ॉल्ट सिस्टम प्रॉम्प्ट।",loadPresetsFailed:"प्रिसेट लोड करने में विफल",loadCurrentInfoFailed:"वर्तमान जानकारी लोड करने में विफल"},commandSelector:{...e.chat.commandSelector,loading:"कमांड लोड हो रहे हैं...",emptyWithSearch:'"{{search}}" से मेल खाने वाली कोई कमांड नहीं मिली',empty:"कोई कमांड उपलब्ध नहीं है।",navigationHint:"नेविगेशन: ऊपर/नीचे या Ctrl+P/N | चयन: Enter | पूर्ण करें: Space/Tab | रद्द: Esc",types:{...e.chat.commandSelector.types,workflow:"वर्कफ़्लो",skill:"स्किल",mcp:"MCP"}},model:{...e.chat.model,selectModel:"मॉडल चुनें",noModelSelected:"कोई मॉडल चयनित नहीं",selectModelHint:"चैट शुरू करने के लिए एक मॉडल चुनें।",providerNotConfigured:"प्रोवाइडर कॉन्फ़िगर नहीं है",configureProviderHint:"मॉडल चुनने से पहले सेटिंग्स में प्रोवाइडर कॉन्फ़िगर करें।",configureProvider:"प्रोवाइडर कॉन्फ़िगर करें",openSettings:"सेटिंग्स खोलें",noModelsAvailable:"कोई मॉडल उपलब्ध नहीं",selectModelBeforeSend:"भेजने से पहले मॉडल चुनें।",selectModelBeforeRetry:"पुनः प्रयास से पहले मॉडल चुनें।"},streaming:{...e.chat.streaming,assistant:"Bodhi",requestCancelled:"अनुरोध रद्द किया गया",sendFailed:"संदेश भेजने में विफल",retryFailed:"पुनः प्रयास विफल",modelConfigNotLoaded:"मॉडल कॉन्फ़िगरेशन लोड नहीं हुआ",agentUnavailable:"एजेंट उपलब्ध नहीं",noActiveChatTitle:"कोई सक्रिय चैट नहीं",noActiveChatSendContent:"संदेश भेजने से पहले चैट बनाएँ या चुनें।",noActiveChatRetryContent:"पुनः प्रयास से पहले चैट बनाएँ या चुनें।",noChatIdTitle:"चैट ID अनुपस्थित",noChatIdSendContent:"वर्तमान चैट में ID नहीं है। नया चैट बनाकर पुनः प्रयास करें।",noChatIdRetryContent:"वर्तमान चैट में ID नहीं है। नया चैट बनाकर पुनः प्रयास करें।"},selectionToolbar:{...e.chat.selectionToolbar,selectMessages:"संदेश चुनें",selectedCount:"{{selected}} चयनित (कुल {{total}})",selectAll:"सभी चुनें",clear:"साफ़ करें",exportMarkdown:"Markdown निर्यात करें",exportPdf:"PDF निर्यात करें",done:"पूर्ण"},subSessions:{...e.chat.subSessions,title:"उप-सेशन",expand:"विस्तार करें",collapse:"संक्षिप्त करें",continue:"यहीं जारी रखें",open:"खोलें",retry:"पुनः प्रयास करें",hiddenHint:"{{count}} उप-सेशन छिपे हुए"},chatItem:{...e.chat.chatItem,edit:"संपादित करें",childTag:"चाइल्ड"},systemPromptSelector:{...e.chat.systemPromptSelector,defaultTag:"डिफ़ॉल्ट",hide:"छिपाएँ",preview:"पूर्वावलोकन",copy:"कॉपी करें",lines:"{{count}} पंक्तियाँ",words:"{{count}} शब्द",chars:"{{count}} अक्षर",noContent:"कोई सामग्री नहीं"},title:{...e.chat.title,updated:"चैट शीर्षक अपडेट हुआ",generateFailed:"चैट शीर्षक बनाने में विफल"},respond:{...e.chat.respond,customAnswerPlaceholder:"अपना कस्टम उत्तर लिखें..."},multiPane:{...e.chat.multiPane,splitHorizontal:"क्षैतिज विभाजित करें",splitVertical:"ऊर्ध्वाधर विभाजित करें",closePane:"पैन बंद करें",selectSessionHint:"संदेश देखने के लिए एक सेशन चुनें",hoverToSplitHint:"चैट तुलना के लिए पैन पर होवर करके विभाजित करें",selectMessagesToExport:"निर्यात के लिए संदेश चुनें"},messageCard:{...e.chat.messageCard,authRequired:"प्रमाणीकरण आवश्यक",goToSettings:"सेटिंग्स पर जाएँ",assistantThinking:"सहायक सोच रहा है...",reasoning:"रीज़निंग",selected:"चयनित",selectedTool:"चयनित टूल"},messageActions:{...e.chat.messageActions,copy:"कॉपी करें",exportMarkdown:"Markdown के रूप में निर्यात करें",exportPdf:"PDF के रूप में निर्यात करें",restoreChat:"केवल चैट पुनर्स्थापित करें",restoreFilesAndChat:"फ़ाइलें और चैट पुनर्स्थापित करें",deleteMessage:"संदेश हटाएँ",savedFile:"{{filename}} में सहेजा गया",nothingToExport:"निर्यात करने के लिए कुछ नहीं",exportFailed:"निर्यात विफल",cannotRestore:"यह संदेश पुनर्स्थापित नहीं किया जा सकता",restorePartial:"चैट पुनर्स्थापित हुई। {{count}} फ़ाइल(ें) पुनर्स्थापित नहीं हो सकीं।",restoreFilesSuccess:"फ़ाइलें और चैट पुनर्स्थापित ({{count}} संदेश हटाए गए)।",restoreSuccess:"चैट पुनर्स्थापित ({{count}} संदेश हटाए गए)।",restoreFailed:"चैट पुनर्स्थापित करने में विफल",pdfUnavailable:"इस वातावरण में PDF निर्यात उपलब्ध नहीं है",exportingPdf:"PDF निर्यात हो रहा है..."},session:{...e.chat.session,defaultTitle:"नया सत्र"}},settings:{...d.settings,page:{...d.settings.page,tabs:{...d.settings.page.tabs,envVars:"पर्यावरण वेरिएबल्स"}},configTab:{...d.settings.configTab,loadBambooConfigFailed:"Bamboo कॉन्फ़िग लोड करने में विफल",bambooConfigSaved:"Bamboo कॉन्फ़िग सहेजा गया",saveBambooConfigFailed:"Bamboo कॉन्फ़िग सहेजने में विफल"},keywordMaskingTab:{...e.settings.keywordMaskingTab,title:"कीवर्ड मास्किंग",addKeyword:"कीवर्ड जोड़ें",description:"Copilot API को भेजने से पहले मास्क किए जाने वाले कीवर्ड कॉन्फ़िगर करें। शाब्दिक स्ट्रिंग के लिए सटीक मिलान या पैटर्न के लिए regex उपयोग करें। सभी मिलान [MASKED] से बदले जाएंगे।",empty:"कोई कीवर्ड मास्किंग नियम कॉन्फ़िगर नहीं है",cancel:"रद्द करें",patternPlaceholder:"मिलान का पैटर्न दर्ज करें",examples:"उदाहरण",exactMatch:"सटीक मिलान",regexPattern:"Regex पैटर्न",enabled:"सक्षम",disabled:"अक्षम",sampleText:"नमूना टेक्स्ट",sampleTextPlaceholder:"नमूना टेक्स्ट दर्ज करें",maskedPreview:"मास्क किया गया पूर्वावलोकन",emptyPattern:"(खाली)",loadFailed:"कीवर्ड मास्किंग कॉन्फ़िगरेशन लोड करने में विफल",saveFailed:"कॉन्फ़िगरेशन सहेजने में विफल",saveSuccess:"कीवर्ड मास्किंग कॉन्फ़िगरेशन सहेजा गया",validationFailedPrefix:"सत्यापन विफल",patternRequired:"पैटर्न खाली नहीं हो सकता",invalidRegexPattern:"अमान्य regex पैटर्न",example:{...e.settings.keywordMaskingTab.example,literalToken:"शाब्दिक टोकन मास्क करें",githubTokens:"GitHub टोकन मास्क करें",awsKeys:"AWS key मास्क करें",emails:"ईमेल पते मास्क करें"}}},components:{...e.components,workflowResult:{...e.components.workflowResult,userWorkflow:"उपयोगकर्ता वर्कफ़्लो",waitingForResult:"वर्कफ़्लो परिणाम की प्रतीक्षा...",executionFailed:"वर्कफ़्लो निष्पादन विफल",retryWorkflow:"वर्कफ़्लो पुनः चलाएँ",copyParameters:"पैरामीटर्स कॉपी करें",copyResult:"परिणाम कॉपी करें",expandResult:"परिणाम विस्तार करें",collapseResult:"परिणाम संक्षिप्त करें"},toolResult:{...e.components.toolResult,waiting:"प्रतीक्षा में",waitingForResult:"परिणाम की प्रतीक्षा...",executionFailed:"टूल निष्पादन विफल",copyResult:"परिणाम कॉपी करें",checkpoint:"चेकपॉइंट",checkpointNone:"कोई नहीं",diffTruncated:"डिफ़ बहुत लंबा है और काट दिया गया है"},toolCall:{...e.components.toolCall,liveOutput:"लाइव आउटपुट",keyParameters:"मुख्य पैरामीटर्स",fullParameters:"पूर्ण पैरामीटर्स",copyParameters:"पैरामीटर्स कॉपी करें"},plan:{...e.components.plan,executionPlan:"निष्पादन योजना",goal:"लक्ष्य",steps:"चरण",stepTitle:"चरण {{number}}",reason:"कारण",estimated:"अनुमानित",tools:"टूल्स",prerequisites:"पूर्वापेक्षाएँ",potentialRisks:"संभावित जोखिम ({{count}})",totalEstimatedTime:"कुल अनुमानित समय",feedbackPlaceholder:"एजेंट को बताएँ क्या समायोजित करना है...",sendFeedback:"फ़ीडबैक भेजें",refinePlan:"योजना परिष्कृत करें",executePlan:"योजना निष्पादित करें"},question:{...e.components.question,agentQuestion:"एजेंट प्रश्न",context:"संदर्भ",chooseOption:"एक विकल्प चुनें",recommended:"अनुशंसित",customAnswerHint:"कोई उपयुक्त विकल्प नहीं? अपना उत्तर लिखें।",customAnswerPlaceholder:"अपना कस्टम उत्तर लिखें...",submitAnswer:"उत्तर सबमिट करें"},questionDialog:{...e.components.questionDialog,selectOptionWarning:"सबमिट करने से पहले एक विकल्प चुनें।",responseSubmitted:"उत्तर सबमिट किया गया",responseSubmittedContinue:"उत्तर सबमिट किया गया, AI आगे प्रोसेस करेगा",submitFailed:"उत्तर सबमिट करने में विफल",noModelConfigured:"कोई मॉडल कॉन्फ़िगर नहीं है",customAnswerTip:"कस्टम उत्तर",otherTypeBelow:"अन्य (नीचे लिखें)",confirm:"पुष्टि करें"},skillManager:{...e.components.skillManager,title:"स्किल्स",refresh:"रीफ्रेश करें",skillsRefreshed:"स्किल्स रीफ्रेश हुईं",lastUpdated:"अंतिम अपडेट: {{value}}",justNow:"अभी-अभी",secondsAgo:"{{count}} सेकंड पहले",minutesAgo:"{{count}} मिनट पहले",searchPlaceholder:"स्किल्स खोजें",readOnlyHint:"रीड-ओनली मोड: स्किल्स संपादित नहीं की जा सकतीं।",noSkillsFound:"कोई स्किल नहीं मिली",noMatch:"खोज से मेल खाती कोई स्किल नहीं मिली",loadFailed:"स्किल्स लोड करने में विफल",getFailed:"स्किल प्राप्त करने में विफल"},skillSelector:{...e.components.skillSelector,placeholder:"स्किल्स चुनें"},imageGrid:{...e.components.imageGrid,preview:"पूर्वावलोकन",ocr:"OCR"},todoList:{...e.components.todoList,title:"कार्य सूची",evaluating:"मूल्यांकन जारी",pin:"पिन करें",unpin:"अनपिन करें",llmEvaluation:"LLM मूल्यांकन",tools:"टूल्स",dependsOn:"निर्भर करता है: {{deps}}",dependencies:"निर्भरताएँ",status:{...e.components.todoList.status,pending:"लंबित",inProgress:"प्रगति में",completed:"पूर्ण",blocked:"अवरोधित"}},tokenUsage:{...e.components.tokenUsage,title:"टोकन उपयोग",summary:"सारांश",system:"सिस्टम",messages:"संदेश",tokens:"टोकन",usedPercent:"{{value}}% उपयोग"},approval:{...e.components.approval,workflow:"वर्कफ़्लो",executionRequest:"निष्पादन अनुरोध",aiWantsExecute:"AI निम्नलिखित क्रिया निष्पादित करना चाहता है"},toolSession:{...e.components.toolSession,title:"टूल सेशन",running:"चल रहा है",done:"पूर्ण",error:"त्रुटि",completedOnly:"{{completed}} पूर्ण",completedWithErrors:"{{completed}} पूर्ण (त्रुटियों सहित)",completedProgress:"{{completed}} / {{total}} पूर्ण",noPersistedMessage:"कोई स्थायी आउटपुट नहीं",deleteMessage:"टूल सेशन हटाएँ"},mermaid:{...e.components.mermaid,loadingDiagram:"डायग्राम लोड हो रहा है...",diagramError:"Mermaid डायग्राम त्रुटि",errorTitlePrefix:"त्रुटि",checkConsoleHint:"Mermaid सिंटैक्स जाँचें या विवरण के लिए कंसोल खोलें।",fixMermaid:"Mermaid ठीक करें",renderingDiagram:"डायग्राम रेंडर हो रहा है...",exportSvg:"SVG निर्यात करें",exportFailed:"डायग्राम निर्यात विफल"}}},U=f(H,D),B=f(N,E),W={...r,app:{...r.app,loading:"載入中..."},chat:{...r.chat,sidebar:{...r.chat.sidebar,newSession:"新建會話",empty:{noSessions:"暫無會話",hint:"點擊「新建會話」開始"},dateGroups:{today:"今天",yesterday:"昨天",thisWeek:"本週",thisMonth:"本月",pinned:"置頂",scheduled:"計劃任務"},actions:{collapseChildren:"摺疊子會話",expandChildren:"展開子會話"}}},settings:{...r.settings,page:{...r.settings.page,title:"系統設定",tabs:{...r.settings.page.tabs,config:"設定",modelLimits:"模型限制",metrics:"指標",sessions:"會話",app:"應用",provider:"供應商",masking:"脫敏"},groups:{...r.settings.page.groups,ai:"AI",toolsAndExtensions:"工具與擴展",securityAndPrivacy:"安全",monitoring:"監控",system:"系統"}},configTab:{...r.settings.configTab,loadConfigFailed:"載入配置失敗",invalidConfig:"配置無效",saveConfigSuccess:"配置保存成功",saveConfigFailed:"保存配置失敗",backendSaved:"後端地址已保存",backendResetDefault:"後端地址已重設為預設值",providerMovedTitle:"Provider 配置已遷移",providerMovedDescription:"GitHub Copilot 和其他 Provider 配置已遷移到 Provider Settings 分頁,請前往該頁面設定。",backendApiBaseUrlTitle:"後端 API 基礎位址",backendApiHint:"必須包含 /v1 路徑",resetToDefault:"恢復預設",save:"保存",language:"語言",languageEnglish:"English",languageChinese:"簡體中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"印地語"},appTab:{...r.settings.appTab,language:"語言",languageEnglish:"English",languageChinese:"簡體中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"印地語"}}},z={...h,"fr-FR":{translation:U},"hi-IN":{translation:B},"ja-JP":{translation:O},"zh-TW":{translation:W}};m.isInitialized||(m.use(A),m.init({resources:z,lng:I(),fallbackLng:g,supportedLngs:b,interpolation:{escapeValue:!1},react:{useSuspense:!1},returnNull:!1}));const k=document.getElementById("root");if(!k)throw new Error("Missing #root element for Bodhi app bootstrap");const P=C.createRoot(k),j=t=>{const a=t instanceof Error?`${t.name}: ${t.message}`:String(t||"Unknown startup error");console.error("[Bodhi] Failed to bootstrap app:",t),P.render(c.jsx(y.StrictMode,{children:c.jsx("div",{style:{height:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--lotus-main-surface, #f6f6f6)",color:"var(--color-gray-800, #0f0f0f)",fontFamily:"system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"},children:c.jsxs("div",{style:{maxWidth:720,textAlign:"left"},children:[c.jsx("h2",{style:{margin:"0 0 12px"},children:"Bodhi UI failed to start"}),c.jsx("p",{style:{margin:0,lineHeight:1.5,whiteSpace:"pre-wrap"},children:a})]})})}))},G=async()=>{try{const{default:t}=await M(async()=>{const{default:a}=await import("./App-Lp1tMttv.js").then(i=>i.A);return{default:a}},__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url);P.render(c.jsx(y.StrictMode,{children:c.jsx(t,{})}))}catch(t){j(t)}};G();export{L as A,_ as c,I as r};
|