@bigduu/lotus 2026.5.11 → 2026.5.13
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-D9R-_Pem.css → App-DNZiQHSs.css} +1 -1
- package/dist/assets/App-bVqmFSlk.js +224 -0
- package/dist/assets/{FeatureGuide-BNBq_PLn.js → FeatureGuide-BlFyQEho.js} +1 -1
- package/dist/assets/MetricsService-PUxHq4VE.js +1 -0
- package/dist/assets/SubAgentsPanel-B1pN_aEg.js +1 -0
- package/dist/assets/{_baseUniq-DVrw3Tro.js → _baseUniq-Rkm-pzcz.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-BZE_2gaA.js → architectureDiagram-Q4EWVU46-Dr89vzdU.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-CI8uSrzU.js → blockDiagram-DXYQGD6D-TGOxvREa.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-DYfj69gY.js → c4Diagram-AHTNJAMY-CBv5o-M1.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-Cw-2rap4.js → chunk-4BX2VUAB-CxLevY_l.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-jxTPHq0D.js → chunk-4TB4RGXK-CZ85N7UX.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-DmAIxchJ.js → chunk-55IACEB6-CyMcswjM.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-FvClTRCF.js → chunk-EDXVE4YY-KspsFgAM.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Dv-f6b4O.js → chunk-FMBD7UC4-BH440Lco.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-CUAa_Yz6.js → chunk-OYMX7WX6-D5KuKqj-.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-D1FDs1aQ.js → chunk-QZHKN3VN-CYjk1VsY.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-C2iPLYG9.js → chunk-YZCP3GAM-D1Ua-1JA.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-D76pdmuK.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-D76pdmuK.js +1 -0
- package/dist/assets/clone-L6_2PEie.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-CidaofdU.js → cose-bilkent-S5V4N54A-DBcT_Wx0.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-B5okAMLc.js → dagre-KV5264BT-DXZkFF5A.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-DqlBY-17.js → diagram-5BDNPKRD-BsQPI1ko.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-BuAFDD-X.js → diagram-G4DWMVQ6-BO9UfQRh.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-CFv_32_w.js → diagram-MMDJMWI5-DkWy2py4.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-CEU-9NCq.js → diagram-TYMM5635-DkuaI_3A.js} +1 -1
- package/dist/assets/en-US-CnZu52UQ.js +3 -0
- package/dist/assets/{erDiagram-SMLLAGMA-BGcZ-Hfc.js → erDiagram-SMLLAGMA-5BQBJx-k.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-CCSeCjR1.js → flowDiagram-DWJPFMVM-CBv8eO1S.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-BqAoxnNO.js → ganttDiagram-T4ZO3ILL-CkWwjmoY.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-DJ0V7_Rv.js → gitGraphDiagram-UUTBAWPF-Cq7iSNVm.js} +1 -1
- package/dist/assets/{graph-BxbYGKIB.js → graph-DP71R45G.js} +1 -1
- package/dist/assets/index-BBEDlZ5R.js +1 -0
- package/dist/assets/index-Bcpx4-c6.js +1 -0
- package/dist/assets/{index-Dgw8qH4q.js → index-BfCdANOc.js} +1 -1
- package/dist/assets/index-C1smAwgR.js +1 -0
- package/dist/assets/index-CIgS9N5-.js +1 -0
- package/dist/assets/index-CWTKRCxw.js +21 -0
- package/dist/assets/index-D9ODTr93.css +1 -0
- package/dist/assets/index-Dyeykeg3.js +8 -0
- package/dist/assets/index-GggL5P0b.js +1 -0
- package/dist/assets/index-Y7yrhp6h.js +1 -0
- package/dist/assets/{index-DJeQeDwp.js → index-YqZv5PIH.js} +1 -1
- package/dist/assets/index-ZWAEbTDI.js +1 -0
- package/dist/assets/index-oQX-HGAT.js +1 -0
- package/dist/assets/index-rcVNW1p_.js +1 -0
- package/dist/assets/{index.es-BhiHSeCT.js → index.es-usLOUMSp.js} +1 -1
- package/dist/assets/{infoDiagram-42DDH7IO-Cemw9omR.js → infoDiagram-42DDH7IO-Cs719lD3.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-BYRE-suN.js → ishikawaDiagram-UXIWVN3A-zTI5fHSR.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-BRkAfzxG.js → journeyDiagram-VCZTEJTY-DINdIE0t.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-DrTcKNPa.js → kanban-definition-6JOO6SKY-BWZUu9_H.js} +1 -1
- package/dist/assets/{layout-B2E_GeCC.js → layout-QZEMSKRD.js} +1 -1
- package/dist/assets/main-BEVjNwcv.js +8 -0
- package/dist/assets/{min-5KBdYKFY.js → min-BB314uX0.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-sq4qw8uy.js → mindmap-definition-QFDTVHPH-GgqTvonx.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-C8vOtX53.js → pieDiagram-DEJITSTG-wmUFaxVG.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-LV5yQE3M.js → quadrantDiagram-34T5L4WZ-Bt7Nxjyo.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-Bq6y8VCF.js → requirementDiagram-MS252O5E-4eb0TnXV.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-DvABiNaK.js → sankeyDiagram-XADWPNL6-H6jXqw4X.js} +1 -1
- package/dist/assets/{sequenceDiagram-FGHM5R23-Bv9Ckauz.js → sequenceDiagram-FGHM5R23-DgqfEZPw.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-CwYUsnc5.js → stateDiagram-FHFEXIEX-CZrwRbTi.js} +1 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-CwhUMrAy.js +1 -0
- package/dist/assets/{timeline-definition-GMOUNBTQ-BgidC49j.js → timeline-definition-GMOUNBTQ-CMjl6c48.js} +1 -1
- package/dist/assets/vendor-antd-C8lKwvI6.js +502 -0
- package/dist/assets/{vendor-charts-BYce7JXy.js → vendor-charts-bhMup2Pu.js} +1 -1
- package/dist/assets/{vendor-markdown-DzaXAW9Q.js → vendor-markdown-DZuK0SxV.js} +1 -1
- package/dist/assets/{vendor-mermaid-De-Yacw-.js → vendor-mermaid-C1Gk9PtT.js} +4 -4
- package/dist/assets/{vendor-pdf-DHgAFQ2M.js → vendor-pdf-DB-djSmA.js} +4 -4
- package/dist/assets/{vennDiagram-DHZGUBPP-Bzkbjibi.js → vennDiagram-DHZGUBPP-CJuHv1C-.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-CBRp4POe.js → wardley-RL74JXVD-3f0MBifK.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-DAhT4-uz.js → wardleyDiagram-NUSXRM2D-DsfJX8FP.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-CXfA4uSx.js → xychartDiagram-5P7HB3ND-DnywOWSH.js} +1 -1
- package/dist/assets/zh-CN-NcKxgANL.js +3 -0
- package/dist/index.html +4 -4
- package/package.json +2 -2
- package/dist/assets/App-BocqxYkX.js +0 -223
- package/dist/assets/SubAgentsPanel-XAgdP-xO.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-DVvX4wPS.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-DVvX4wPS.js +0 -1
- package/dist/assets/clone-DRAA6Q7k.js +0 -1
- package/dist/assets/en-US-DLwJLted.js +0 -3
- package/dist/assets/index-BEkwZ-K8.js +0 -1
- package/dist/assets/index-C8GkXwzS.js +0 -1
- package/dist/assets/index-CucuFwVZ.css +0 -1
- package/dist/assets/index-DC9Ggtrl.js +0 -1
- package/dist/assets/index-DHJJSQ2h.js +0 -1
- package/dist/assets/index-DMaXHadP.js +0 -21
- package/dist/assets/index-DRVv9Wt_.js +0 -1
- package/dist/assets/index-DaK9qR94.js +0 -1
- package/dist/assets/index-dBIF9Wdr.js +0 -1
- package/dist/assets/index-o5s-6ubE.js +0 -8
- package/dist/assets/index-pOHcR4B7.js +0 -1
- package/dist/assets/index-rWoFDRGk.js +0 -1
- package/dist/assets/main-TSfsr__P.js +0 -6
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-aegiqwuH.js +0 -1
- package/dist/assets/vendor-antd-DODjfilb.js +0 -502
- package/dist/assets/zh-CN-B74Ip0pW.js +0 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./App-bVqmFSlk.js","./vendor-markdown-DZuK0SxV.js","./vendor-i18n-BNURlJ23.js","./vendor-antd-C8lKwvI6.js","./vendor-mermaid-C1Gk9PtT.js","./App-DNZiQHSs.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as m}from"./vendor-mermaid-C1Gk9PtT.js";import{j as l}from"./vendor-markdown-DZuK0SxV.js";import{g as V,i as r,d as K,R as U}from"./vendor-i18n-BNURlJ23.js";import{au as J}from"./vendor-antd-C8lKwvI6.js";function _(e,t){for(var s=0;s<t.length;s++){const i=t[s];if(typeof i!="string"&&!Array.isArray(i)){for(const o in i)if(o!=="default"&&!(o in e)){const a=Object.getOwnPropertyDescriptor(i,o);a&&Object.defineProperty(e,o,a.get?a:{enumerable:!0,get:()=>i[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const d of a.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&i(d)}).observe(document,{childList:!0,subtree:!0});function s(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(o){if(o.ep)return;o.ep=!0;const a=s(o);fetch(o.href,a)}})();var p={},q;function Z(){if(q)return p;q=1;var e=J();return p.createRoot=e.createRoot,p.hydrateRoot=e.hydrateRoot,p}var H=Z();const B=V(H),fe=_({__proto__:null,default:B},[H]),Y={"en-US":()=>m(async()=>{const{enUsTranslation:e}=await import("./en-US-CnZu52UQ.js");return{enUsTranslation:e}},[],import.meta.url).then(({enUsTranslation:e})=>e),"zh-CN":()=>m(async()=>{const{zhCnTranslation:e}=await import("./zh-CN-NcKxgANL.js");return{zhCnTranslation:e}},[],import.meta.url).then(({zhCnTranslation:e})=>e)},D=new Map,u=e=>{let t=D.get(e);return t||(t=Y[e](),D.set(e,t)),t},Q={app:{errorBoundary:{title:"Un problème est survenu",description:"Une erreur inattendue s'est produite dans cette section. Vous pouvez réessayer ou recharger la page si le problème persiste.",tryAgain:"Réessayer",showDetails:"Afficher les détails",hideDetails:"Masquer les détails"},passwordGate:{title:"Entrez le mot de passe d'accès",description:"Une vérification du mot de passe est requise avant d'accéder à l'application.",passwordLabel:"Mot de passe d'accès",passwordPlaceholder:"Entrez le mot de passe d'accès",submit:"Vérifier et continuer",validation:{required:"Veuillez entrer le mot de passe d'accès",verifyFailed:"Échec de la vérification du mot de passe"}},notifications:{toolApproval:{title:"Approbation requise : {{tool}}",body:"L'outil {{tool}} nécessite votre approbation avant exécution",unknownTool:"Outil inconnu"},contextPressure:{title:"Fenêtre de contexte presque épuisée"},backgroundTask:{completedTitle:"Tâche en arrière-plan terminée",completedBody:"« {{title}} » est terminé",completedFallback:"Une tâche en arrière-plan est terminée"},clarification:{title:"Bodhi AI attend votre réponse",fallbackBody:"L'agent attend une réponse à une question"},conversationSummarized:"Conversation résumée : {{messages}} messages compressés, {{tokens}} jetons économisés",allTasksCompleted:"Toutes les tâches sont terminées ! Tours totaux : {{rounds}}, Appels d'outils : {{toolCalls}}",evaluatingTasks:"Évaluation de {{count}} tâche(s)...",evaluationCompleteUpdated:"Évaluation terminée : {{count}} tâche(s) mise(s) à jour.",evaluationCompleteNoUpdates:"Évaluation terminée : aucune mise à jour nécessaire"}},commandPalette:{searchPlaceholder:"Rechercher sessions, paramètres et actions",navigationHint:"Utilisez ↑↓ pour naviguer, Entrée pour ouvrir, Échap pour fermer.",empty:"Aucune commande correspondante",groups:{quickActions:"Actions rapides",settings:"Paramètres système"},badges:{quickAction:"Action",pinned:"Épinglé",running:"En cours",child:"Enfant",childSession:"Session enfant",rootSession:"Session"},actions:{newSession:"Créer une nouvelle session",openProviderSettings:"Ouvrir les paramètres fournisseur",openMcpSettings:"Ouvrir les paramètres MCP",openWorkflowSettings:"Ouvrir les paramètres de flux de travail",openSessionsSettings:"Ouvrir le moniteur de sessions",openSchedulesSettings:"Ouvrir les planifications"},errors:{actionFailed:"Échec de la commande"}},setup:{welcome:{heading:"Bienvenue dans Bodhi",description:"Bodhi est votre assistant de développement alimenté par l'IA. Configurez un fournisseur IA pour commencer, ou lancez-vous directement.",providerHint:"Pour commencer à discuter, vous devez configurer un fournisseur IA (ex. OpenAI, Anthropic) avec une clé API.",proxyHint:"Derrière un proxy d'entreprise ? Vous pouvez configurer les paramètres proxy plus tard dans Paramètres système > Réseau."},button:{getStarted:"Commencer",configureProvider:"Configurer le fournisseur"},complete:{title:"Tout est prêt !",restartMessage:"Rechargement de l'application..."},error:{completeFailed:"Échec de la configuration. Veuillez réessayer."}},onboarding:{welcome:{title:"Bienvenue dans Bodhi !",description:"Bodhi est votre assistant de développement alimenté par l'IA. Faisons un rapide tour d'horizon."},newSession:{title:"Nouvelle session",description:"Cliquez ici pour démarrer une nouvelle session de chat avec l'assistant IA."},taskTemplates:{title:"Modèles de tâches",description:"Choisissez parmi des modèles prédéfinis : revue de code, investigation de bug, refactoring, etc."},modelPicker:{title:"Sélection du modèle",description:"Changez de modèle IA et de fournisseur à tout moment depuis ici."},sidebar:{title:"Barre latérale des sessions",description:"Recherchez, filtrez, épinglez et naviguez entre vos conversations."},settings:{title:"Paramètres",description:"Configurez les fournisseurs IA, proxy, mappages de modèles, serveurs MCP et plus encore."}},common:{saveAnyway:"Enregistrer quand même",parentDirectory:"Répertoire parent",currentPath:"Chemin actuel :",cancel:"Annuler",ok:"OK",apply:"Appliquer",save:"Enregistrer",delete:"Supprimer",yes:"Oui",no:"Non",home:"Accueil",download:"Télécharger",directory:"Répertoire",file:"Fichier"},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",folderSelected:"Dossier sélectionné avec succès"},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',readFolderError:"Impossible de lire le dossier"},input:{placeholder:"Envoyer un message...",placeholderWithReference:"Envoyer un message (inclut la référence)",placeholderWithWorkflows:"Envoyer un message... (saisissez '/' pour les workflows)",toolCallsOnly:"Appels d'outils uniquement (outils autorisés : {{tools}})",autoPrefixMode:"Mode de préfixe automatique : {{prefix}} (saisissez « / » 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:"Épingler"},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:"MCP"}},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",backendUrlEmpty:"L'URL du back-end ne peut pas être vide",backendUrlInvalidProtocol:"L'URL du back-end doit commencer par http:// ou https://",backendUrlInvalidUrl:"L'URL du back-end n'est pas une URL valide",backendUrlMustEndWithV1:`L'URL du back-end doit se terminer par "/v1"`,accessPassword:{validation:{currentPasswordRequired:"Veuillez entrer le mot de passe actuel",newPasswordRequired:"Veuillez entrer un nouveau mot de passe",confirmPasswordRequired:"Veuillez entrer le nouveau mot de passe à nouveau",minLength:"Le mot de passe doit contenir au moins 4 caractères",passwordMismatch:"Les mots de passe ne correspondent pas"}}},modelLimits:{placeholders:{vendor:"OpenAI / Google / Moonshot"},columns:{notes:"Notes",actions:"Actions"}},systemPromptManager:{title:"Gestion des prompts système",addButton:"Ajouter un prompt",defaultPromptLocked:"Les prompts système par défaut sont verrouillés et ne peuvent pas être modifiés.",updateSuccess:"Prompt mis à jour avec succès",addSuccess:"Prompt ajouté avec succès",saveError:"Échec de l'enregistrement du prompt. Veuillez réessayer.",deleteSuccess:"Prompt supprimé avec succès",deleteError:"Échec de la suppression du prompt. Veuillez réessayer.",deleteConfirm:"Êtes-vous sûr de supprimer ce prompt ?",defaultTag:"Par défaut (verrouillé)",editTitle:"Modifier le prompt système",addTitle:"Ajouter un nouveau prompt système",nameLabel:"Nom du prompt",nameRequired:"Veuillez saisir le nom du prompt !",descriptionLabel:"Description du prompt",descriptionRequired:"Veuillez saisir la description du prompt !",contentLabel:"Contenu du prompt",contentRequired:"Veuillez saisir le contenu du prompt !"},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:"Enregistrer",cancel:"Annuler",name:"Nom",value:"Valeur",secret:"Secrète",descriptionField:"Description",type:"Type",plain:"Texte brut",descriptionCol:"Description",actions:"Actions",yes:"Oui",no:"Non"},hooksTab:{mode:{ocr:"OCR (Windows)",vision:"Vision (LLM)",placeholder:"Placeholder"},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 Mermaid 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:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},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}} sessions",tokensAmount:"{{value}} jetons",sessionsTabLabel:"Sessions ({{count}})",roundColumns:{tokens:"Jetons"},multiplierSuffix:"x",sessionDetail:{messages:"Messages"}},page:{tabs:{prompts:"Prompts",mermaid:"Mermaid",mcp:"MCP",sessions:"Sessions",hooks:"Hooks"}},appTab:{languageHindi:"Hindi"},modelMappingCard:{modelTypeOpus:"Opus",modelTypeSonnet:"Sonnet",modelTypeHaiku:"Haïku"},mermaidTab:{switchAuto:"Auto",flowchartCurveOptions:{cardinal:"Cardinal"}},schedulesTab:{columns:{actions:"Actions"},actions:{sessions:"Sessions"},triggerTypes:{interval:"Intervalle",daily:"Quotidien",weekly:"Hebdomadaire",monthly:"Mensuel",cron:"Cron"},weekdays:{mon:"Lun",tue:"Mar",wed:"Mer",thu:"Jeu",fri:"Ven",sat:"Sam",sun:"Dim"},statusLabels:{running:"En cours",queued:"En file d'attente",failing:"En échec",disabled:"Désactivé",healthy:"Sain",idle:"Inactif"},statusDetails:{active:"{{count}} actif(s)",pending:"{{count}} en attente",consecutiveFailures:"{{count}} échecs consécutifs",lastRunSucceeded:"Dernière exécution réussie"},activityLabels:{queued:"En file : {{count}}",running:"En cours : {{count}}",ok:"OK : {{count}}",fail:"Échec : {{count}}"}},sessionsTab:{id:"Identifiant"},mcpServerTable:{columns:{actions:"Actions"},transportOptions:{sse:"SSE",stdio:"Stdio"}},mcpServerForm:{modeJson:"JSON",transportOptions:{stdio:"Stdio",sse:"SSE"},arguments:"Arguments"},metricsTable:{session:{columns:{session:"Session",tokens:"Jetons",messages:"Messages",action:"Action"}},forward:{columns:{id:"Identifiant",type:"Type",tokens:"Jetons"}}},charts:{total:"Total",prompt:"Prompt",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:"Type",required:"Requis",yes:"Oui",no:"Non",default:"Défaut",description:"Description"},imageGrid:{ocr:"OCR"},tokenUsage:{messages:"Messages",tokens:"jetons"},approval:{workflow:"Flux de travail"}}},$={app:{errorBoundary:{title:"कुछ गलत हो गया",description:"इस अनुभाग में एक अप्रत्याशित त्रुटि हुई। आप पुनः प्रयास कर सकते हैं या समस्या बनी रहने पर पृष्ठ पुनः लोड कर सकते हैं।",tryAgain:"पुनः प्रयास करें",showDetails:"विवरण दिखाएँ",hideDetails:"विवरण छिपाएँ"},passwordGate:{title:"एक्सेस पासवर्ड दर्ज करें",description:"एप्लिकेशन में प्रवेश करने से पहले पासवर्ड सत्यापन आवश्यक है।",passwordLabel:"एक्सेस पासवर्ड",passwordPlaceholder:"एक्सेस पासवर्ड दर्ज करें",submit:"सत्यापित करें और जारी रखें",validation:{required:"कृपया एक्सेस पासवर्ड दर्ज करें",verifyFailed:"पासवर्ड सत्यापन विफल"}},notifications:{toolApproval:{title:"अनुमोदन आवश्यक: {{tool}}",body:"टूल {{tool}} को निष्पादित करने के लिए आपकी मंजूरी चाहिए",unknownTool:"अज्ञात टूल"},contextPressure:{title:"कॉन्टेक्स्ट विंडो लगभग भर गई है"},backgroundTask:{completedTitle:"बैकग्राउंड टास्क पूरा हुआ",completedBody:"「{{title}}」 पूरा हुआ",completedFallback:"बैकग्राउंड टास्क पूरा हुआ"},clarification:{title:"Bodhi AI आपका जवाब दे रहा है",fallbackBody:"एजेंट एक सवाल का जवाब दे रहा है"},conversationSummarized:"वार्तालाप सारांशित: {{messages}} संदेश संपीड़ित, {{tokens}} टोकन बचाए गए",allTasksCompleted:"सभी कार्य पूरे हुए! कुल राउंड: {{rounds}}, टूल कॉल: {{toolCalls}}",evaluatingTasks:"{{count}} कार्यों का मूल्यांकन हो रहा है...",evaluationCompleteUpdated:"मूल्यांकन पूर्ण: {{count}} कार्य अद्यतन किए गए।",evaluationCompleteNoUpdates:"मूल्यांकन पूर्ण: कोई अद्यतन आवश्यक नहीं"}},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:"AI शीर्षक उत्पन्न करें",unpin:"अनपिन",pin:"नत्थी करें"},fileReference:{title:"@फ़ाइल संदर्भ",setWorkspace:"वर्कस्पेस सेट करें",noMatches:"कोई मेल खाती फ़ाइलें नहीं मिलीं",emptyDirectory:"निर्देशिका खाली है"},commandSelector:{types:{mcp:"MCP"}}},settings:{notifications:{deleteAllSuccess:"सभी सत्र हटा दिए गए (पिन किए गए को छोड़कर)",deleteEmptySuccess:"खाली सत्र हटा दिए गए (पिन किए गए को छोड़कर)",localStorageCleared:"स्थानीय भंडारण साफ़ कर दिया गया है",resetSuccessReloading:"एप्लिकेशन रीसेट सफल. पुनः लोड हो रहा है...",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:"बैकएंड URL सहेजा गया",backendResetDefault:"बैकएंड URL डिफ़ॉल्ट पर रीसेट हो गया",backendUrlEmpty:"बैकएंड URL खाली नहीं हो सकता",backendUrlInvalidProtocol:"बैकएंड URL http:// या https:// से शुरू होना चाहिए",backendUrlInvalidUrl:"बैकएंड URL एक मान्य URL नहीं है",backendUrlMustEndWithV1:'बैकएंड URL को "/v1" पर समाप्त होना चाहिए',accessPassword:{validation:{currentPasswordRequired:"कृपया वर्तमान पासवर्ड दर्ज करें",newPasswordRequired:"कृपया नया पासवर्ड दर्ज करें",confirmPasswordRequired:"कृपया नया पासवर्ड दोबारा दर्ज करें",minLength:"पासवर्ड कम से कम 4 अक्षरों का होना चाहिए",passwordMismatch:"पासवर्ड मेल नहीं खाते"}}},modelMappingCard:{loadProviderFailed:"प्रदाता कॉन्फ़िगरेशन लोड करने में विफल",loadMappingsFailed:"मौजूदा मैपिंग लोड करने में विफल",loadModelsFailed:"मॉडल लोड करने में विफल",loadModelsHint:"मॉडल लोड करने में विफल. कृपया अपने प्रदाता कॉन्फ़िगरेशन की जाँच करें।",mappingSaved:"मॉडल मैपिंग सहेजी गई",mappingSaveFailed:"मॉडल मैपिंग सहेजने में विफल",enterModelName:"कृपया एक मॉडल नाम दर्ज करें",customMappingSaved:"कस्टम मॉडल मैपिंग सहेजी गई",customMappingSaveFailed:"कस्टम मॉडल मैपिंग सहेजने में विफल",mappedModelNotFound:'मैप किया गया मॉडल "{{model}}" वर्तमान प्रदाता के उपलब्ध मॉडल में नहीं मिला',cached:"(कैश्ड)",modelTypeOpus:"Opus",modelTypeSonnet:"Sonnet",modelTypeHaiku:"Haiku"},modelTab:{selectModelTitle:"मॉडल का चयन करें",loadingModels:"मॉडल लोड हो रहे हैं...",selectModelPlaceholder:"एक मॉडल चुनें",backendApiBaseUrlTitle:"बैकएंड API बेस URL",resetToDefault:"डिफ़ॉल्ट पर रीसेट करें",backendApiHint:"/v1 (उदा. {{example}}) सहित पूर्ण आधार URL होना चाहिए।",save:"सहेजें"},mermaidTab:{title:"Mermaid आरेख सेटिंग्स",description:"अनुकूलित करें कि आपकी चैट में Mermaid आरेख कैसे प्रस्तुत किए जाते हैं",themeLabel:"Mermaid थीम",themeTooltip:"एक अंतर्निर्मित Mermaid थीम चुनें। ऐप थीम के आधार पर प्रकाश और अंधेरे के बीच डिफ़ॉल्ट और न्यूट्रल ऑटो-स्विच।",themeOptions:{default:"डिफ़ॉल्ट (स्वतः लाइट/डार्क)",neutral:"तटस्थ (स्वतः लाइट/डार्क)",forest:"वन (हरा थीम)",base:"आधार (न्यूनतम)",dark:"अँधेरा"},themeDescriptionsTitle:"थीम डिस्क्रिप्शन:",themeDescriptions:{default:"डिफ़ॉल्ट: क्लासिक Mermaid लुक, प्रकाश/अंधेरे में स्वतः अनुकूलित",neutral:"तटस्थ: ग्रे टोन, प्रकाश/अंधेरे के लिए स्वतः अनुकूलित",dark:"डार्क: हमेशा डार्क थीम",forest:"वन: हरा रंग योजना, तकनीकी आरेखों के लिए उपयुक्त",base:"आधार: अनुकूलित थीम के लिए न्यूनतम शैली"},globalCardTitle:"वैश्विक सेटिंग्स",fontSizeLabel:"फ़ॉन्ट आकार",fontSizeTooltip:"सभी आरेख पाठ के लिए आधार फ़ॉन्ट आकार (पिक्सेल में)",defaultZoomLabel:"डिफ़ॉल्ट ज़ूम",defaultZoomTooltip:"आरेखों के लिए प्रारंभिक ज़ूम स्तर (1.0 = 100%)",responsiveWidthLabel:"प्रतिक्रियाशील चौड़ाई",responsiveWidthTooltip:"आरेखों को कंटेनर की चौड़ाई के अनुकूल बनाने में सक्षम करें। निश्चित-चौड़ाई वाले आरेखों के लिए अक्षम करें.",flowchartCardTitle:"Flowchart सेटिंग्स",flowchartNodeSpacingLabel:"नोड रिक्ति",flowchartNodeSpacingTooltip:"नोड्स के बीच क्षैतिज दूरी",flowchartRankSpacingLabel:"रैंक रिक्ति",flowchartRankSpacingTooltip:"परतों के बीच लंबवत दूरी",flowchartCurveTypeLabel:"वक्र प्रकार",flowchartCurveTypeTooltip:"कनेक्शन के लिए वक्र का प्रकार",flowchartCurveOptions:{basis:"Basis (स्मूथ)",linear:"रेखीय",cardinal:"Cardinal"},sequenceCardTitle:"Sequence Diagram सेटिंग्स",sequenceActorMarginLabel:"एक्टर मार्जिन",sequenceActorMarginTooltip:"एक्टरों के बीच अंतर",sequenceMessageMarginLabel:"संदेश मार्जिन",sequenceMessageMarginTooltip:"संदेश के बीच अंतर",sequenceActorWidthLabel:"एक्टर चौड़ाई",sequenceActorWidthTooltip:"प्रत्येक एक्टर बॉक्स की चौड़ाई",sequenceActorHeightLabel:"एक्टर की ऊंचाई",sequenceActorHeightTooltip:"प्रत्येक एक्टर बॉक्स की ऊंचाई",ganttCardTitle:"Gantt चार्ट सेटिंग्स",ganttBarHeightLabel:"बार की ऊंचाई",ganttBarHeightTooltip:"प्रत्येक कार्य पट्टी की ऊंचाई",ganttTopPaddingLabel:"शीर्ष गद्दी",ganttTopPaddingTooltip:"चार्ट के शीर्ष पर स्थान",resetToDefaults:"डिफ़ॉल्ट पर पुनः सेट करें",previewDescription:"परिवर्तन तुरंत लागू होते हैं. अपनी सेटिंग्स को क्रियान्वित होते देखने के लिए एक आरेख बनाने या देखने का प्रयास करें।",themeCardTitle:"विषय",switchAuto:"ऑटो",switchFixed:"तय",previewTitle:"पूर्व दर्शन"},modelLimits:{title:"टोकन बजट मॉडल सीमाएँ",descriptionPrefix:"संदर्भ बजटिंग के लिए प्रति-मॉडल टोकन सीमाएं कॉन्फ़िगर करें। ये सेटिंग्स 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:{contextWindow:"Context Window",maxOutput:"अधिकतम आउटपुट",model:"मॉडल",notes:"टिप्पणियाँ",actions:"कार्रवाई"},placeholders:{vendor:"OpenAI/Google/Moonshot",model:"जैसे gpt-5.4-think",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:"वैरिएबल को Bash टूल प्रक्रियाओं में इंजेक्ट किया जाता है। गुप्त चर आराम से एन्क्रिप्ट किए गए हैं।",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:"Mermaid एन्हांसमेंट",taskListRules:"साझा कार्य नियम",copilotConclusionWithOptionsBeforeFinish:"समाप्त होने से पहले Copilot ने उपयोगकर्ता से पूछा",enhancementPlaceholder:"प्रत्येक सिस्टम प्रॉम्प्ट में जोड़ने के लिए वैश्विक एन्हांसमेंट टेक्स्ट जोड़ें।",saveEnhancement:"एन्हांसमेंट सहेजें",description:"प्रत्येक अनुरोध भेजे जाने से पहले इस पाठ को पहले जोड़ा जाता है, उसके बाद सक्षम सिस्टम एन्हांसमेंट जोड़ा जाता है।",switchOn:"पर",switchOff:"बंद"},hooksTab:{title:"छवि हुक",enableImagePreflight:"छवि प्रीफ़्लाइट हुक सक्षम करें",description:"प्लेसहोल्डर मोड छवियों को पाठ सारांश में फिर से लिखता है (यह उन टूल को तोड़ सकता है जो वास्तविक छवि डेटा की अपेक्षा करते हैं)। OCR वर्तमान में केवल विंडोज़ है।",loadFailed:"हुक सेटिंग्स लोड करने में विफल",updateFailed:"हुक अद्यतन करने में विफल",modeUpdateFailed:"हुक मोड अपडेट करने में विफल",enabled:"छवि हुक सक्षम",disabled:"छवि हुक अक्षम किए गए",modeUpdated:"इमेज हुक मोड इस पर सेट है: {{mode}}",mode:{ocr:"OCR (Windows)",vision:"Vision (LLM)",placeholder:"प्लेसहोल्डर",error:"त्रुटि"},modeLabel:"मोड"},schedulesTab:{triggerTypes:{interval:"अंतराल",daily:"दैनिक",weekly:"साप्ताहिक",monthly:"मासिक",cron:"Cron"},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:"(वैकल्पिक) उदा. gpt-4o-mini",modelRequiredIfAuto:"यदि स्वतः निष्पादित हो तो आवश्यक है",autoExecute:"स्वतः निष्पादित",systemPrompt:"सिस्टम प्रॉम्प्ट",workspacePath:"वर्कस्पेस पथ",enhancePrompt:"प्रॉम्प्ट बढ़ाएँ",name:"नाम",enabled:"सक्रिय",model:"मॉडल"},validation:{nameRequired:"नाम आवश्यक है",intervalRequired:"अंतराल आवश्यक है"},actions:{runNow:"अब चलाएँ",create:"बनाएं",refresh:"ताज़ा करें",edit:"संपादन करें",sessions:"सत्र",delete:"हटाएँ",open:"खोलें",save:"सहेजें"},yes:"हाँ",no:"नहीं",listTitle:"अनुसूचियों",weekdays:{mon:"सोम",tue:"मंगल",wed:"बुध",thu:"गुरु",fri:"शुक्र",sat:"शनि",sun:"रवि"},statusLabels:{running:"चल रहा है",queued:"कतार में",failing:"विफल हो रहा है",disabled:"अक्षम",healthy:"स्वस्थ",idle:"निष्क्रिय"},statusDetails:{active:"{{count}} सक्रिय",pending:"{{count}} लंबित",consecutiveFailures:"{{count}} लगातार विफलताएँ",lastRunSucceeded:"अंतिम रन सफल रहा"},activityLabels:{queued:"कतार: {{count}}",running:"चल रहे: {{count}}",ok:"सफल: {{count}}",fail:"विफल: {{count}}"}},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:"ID",kind:"प्रकार",clear:"साफ़ करें",cancel:"रद्द करें",delete:"हटाएँ",reset:"रीसेट करें"},workflowsTab:{description:"वर्कफ़्लो को `~/.bamboo/workflows` में मार्कडाउन फ़ाइलों के रूप में संग्रहीत किया जाता है। चैट में वर्कफ़्लो सम्मिलित करने के लिए `/name` का उपयोग करें।",loadFailed:"वर्कफ़्लो लोड करने में विफल",loadContentFailed:"वर्कफ़्लो सामग्री लोड करने में विफल",invalidName:"अमान्य वर्कफ़्लो नाम",nameAlreadyExists:"इस नाम का एक वर्कफ़्लो पहले से मौजूद है",saved:"वर्कफ़्लो सहेजा गया",saveFailed:"वर्कफ़्लो सहेजने में विफल",deleted:"वर्कफ़्लो हटा दिया गया",deleteFailed:"वर्कफ़्लो हटाने में विफल",newWorkflow:"नया वर्कफ़्लो",empty:"कोई वर्कफ़्लो नहीं मिला",namePlaceholder:"वर्कफ़्लो नाम",contentPlaceholder:`# वर्कफ़्लो शीर्षक
|
|
3
|
+
|
|
4
|
+
यहां वर्कफ़्लो चरणों का वर्णन करें.`,title:"वर्कफ़्लो",refresh:"ताज़ा करें",save:"सहेजें"},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:"अमान्य कॉन्फ़िगरेशन",invalidRequestOverridesJson:"{{provider}} के लिए अमान्य request_overrides JSON: {{error}}",fetchModelsCopilotFailed:"मॉडल लाने में विफल. कृपया Copilot को प्रमाणित करें और पुनः प्रयास करें।",fetchModelsFailed:"मॉडल लाने में विफल. कृपया अपनी API कुंजी और आधार URL जांचें।",noModelsReturned:"कोई मॉडल वापस नहीं आया. पहले Copilot को प्रमाणित करें, फिर मॉडल लाएँ।",foundModels:"{{count}} उपलब्ध मॉडल मिले",fetchModelsErrorPrefix:"मॉडल लाने में विफल",saveConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया",saveConfigFailed:"कॉन्फ़िगरेशन सहेजने में विफल",saveConfigErrorPrefix:"कॉन्फ़िगरेशन सहेजने में विफल",applyConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक लागू किया गया। परिवर्तन नए सत्रों में प्रभावी होंगे।",applyConfigFailed:"कॉन्फ़िगरेशन लागू करने में विफल",applyConfigErrorPrefix:"कॉन्फ़िगरेशन लागू करने में विफल",modelUpdated:"मॉडल सफलतापूर्वक अपडेट किया गया",updateModelFailed:"मॉडल अद्यतन करने में विफल",updateModelErrorPrefix:"मॉडल अद्यतन करने में विफल",fetchingModels:"मॉडल लाये जा रहे हैं...",refreshModelsFrom:"{{source}} से उपलब्ध मॉडल ताज़ा करें",fetchModelsFrom:"{{source}} से उपलब्ध मॉडल प्राप्त करें",saveModelChangeFailed:"मॉडल परिवर्तन सहेजने में विफल",fetchModelsFailedShort:"मॉडल लाने में विफल",openaiConfigTitle:"OpenAI कॉन्फ़िगरेशन",openaiConfigDescription:"GPT मॉडल का उपयोग करने के लिए अपनी OpenAI API कुंजी दर्ज करें। आप वैकल्पिक रूप से प्रॉक्सी सर्वर के लिए एक कस्टम बेस URL निर्दिष्ट कर सकते हैं।",openaiApiKey:"OpenAI API कुंजी",openaiApiKeyRequired:"कृपया अपनी OpenAI API कुंजी दर्ज करें",baseUrlOptional:"आधार URL (वैकल्पिक)",openaiBaseUrlHelp:"डिफ़ॉल्ट OpenAI API एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें (उदाहरण के लिए, /v1)।",defaultModel:"डिफ़ॉल्ट मॉडल",fastModel:"तेज़ मॉडल (वैकल्पिक)",fastModelHelp:"शीर्षक निर्माण, Mermaid रेंडरिंग और सारांशीकरण जैसे हल्के कार्यों के लिए सस्ता/तेज़ मॉडल। सेट न होने पर डिफ़ॉल्ट मॉडल का उपयोग करता है।",visionModel:"विज़न मॉडल (वैकल्पिक)",visionModelHelp:"छवि समझ के लिए दृष्टि-सक्षम मॉडल। जब hooks.image_fallback.mode को 'vision' पर सेट किया जाता है, तो यह मॉडल छवियों को टेक्स्ट के रूप में वर्णित करता है ताकि केवल टेक्स्ट वाले मॉडल उन्हें समझ सकें। सेट न होने पर डिफ़ॉल्ट मॉडल का उपयोग करता है।",sameAsDefault:"डिफ़ॉल्ट मॉडल के समान",selectModelRequired:"कृपया एक मॉडल चुनें",selectModel:"एक मॉडल चुनें",responsesOnlyModelsOptional:"केवल प्रतिक्रियाएँ मॉडल (वैकल्पिक)",responsesOnlyHelp1:"कुछ मॉडल केवल OpenAI रिस्पॉन्स API (चैट/पूर्णता नहीं) का समर्थन करते हैं। Bamboo को अपस्ट्रीम का उपयोग करने के लिए मजबूर करने के लिए यहां मॉडल आईडी जोड़ें",responsesOnlyHelp2:"सटीक मिलान (उदा. gpt-5.3-codex) और अनुगामी * (उदा. gpt-5*) के साथ उपसर्ग मिलान का समर्थन करता है।",anthropicConfigTitle:"Anthropic कॉन्फ़िगरेशन",anthropicConfigDescription:"Claude मॉडल का उपयोग करने के लिए अपनी Anthropic API कुंजी दर्ज करें।",anthropicApiKey:"Anthropic API कुंजी",anthropicApiKeyRequired:"कृपया अपनी एंथ्रोपिक API कुंजी दर्ज करें",anthropicBaseUrlHelp:"डिफ़ॉल्ट एंथ्रोपिक API एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें (उदाहरण के लिए, /v1)।",maxTokensOptional:"अधिकतम टोकन (वैकल्पिक)",maxTokensHelp:"उत्पन्न करने के लिए टोकन की अधिकतम संख्या",geminiConfigTitle:"Google Gemini कॉन्फ़िगरेशन",geminiConfigDescription:"Gemini मॉडल का उपयोग करने के लिए अपनी Google AI API कुंजी दर्ज करें।",geminiApiKey:"Gemini API कुंजी",geminiApiKeyRequired:"कृपया अपनी Gemini API कुंजी दर्ज करें",geminiBaseUrlHelp:"डिफ़ॉल्ट Google AI API एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें।",copilotConfigTitle:"GitHub Copilot कॉन्फ़िगरेशन",copilotConfigDescription:"GitHub Copilot OAuth प्रमाणीकरण का उपयोग करता है। किसी API कुंजी की आवश्यकता नहीं है. सुनिश्चित करें कि आपके पास सक्रिय GitHub Copilot सदस्यता है।",authStatusTitle:"प्रमाणीकरण स्थिति",notAuthenticated:"प्रमाणित नहीं",logoutCopilot:"Copilot से लॉगआउट करें",authenticateCopilot:"Copilot को प्रमाणित करें",refreshStatus:"ताज़ा स्थिति",headlessAuth:"हेडलेस प्रमाणीकरण",headlessAuthHelp:"ब्राउज़र को स्वतः खोलने के बजाय कंसोल में लॉगिन URL प्रिंट करें",noModelsLoaded:'अभी तक कोई मॉडल लोड नहीं हुआ। "बैकएंड से मॉडल लाएँ" पर क्लिक करें।',authFirstThenFetch:"पहले Copilot को प्रमाणित करें, फिर मॉडल लाएँ।",copilotUsageTitle:"GitHub Copilot का उपयोग करने के लिए:",copilotUsageStep1:"सुनिश्चित करें कि आपके पास सक्रिय GitHub Copilot सदस्यता है",copilotUsageStep2:'डिवाइस कोड प्रवाह प्रारंभ करने के लिए "प्रमाणीकृत Copilot" पर क्लिक करें',copilotUsageStep3:"प्रमाणीकरण पूरा करने के लिए अपने टर्मिनल में दिए गए निर्देशों का पालन करें",copilotAuthModalTitle:"Copilot प्रमाणीकरण",completedAuthorization:"मैंने प्राधिकरण पूरा कर लिया है",browserOpened:"ब्राउज़र अपने आप खुल गया",authStep1:"आपके ब्राउज़र में एक GitHub पेज खुल जाना चाहिए",authStep2:"नीचे दिए गए कोड को कॉपी करें और GitHub पेज पर पेस्ट करें",authStep3:'अधिकृत करने के लिए GitHub पर "जारी रखें" पर क्लिक करें',visitUrl:"1. इस URL पर जाएँ:",enterCode:"2. यह कोड दर्ज करें:",copied:"कॉपी किया गया!",copyCode:"कोड कॉपी करें",afterContinueHint:'GitHub पर "जारी रखें" पर क्लिक करने के बाद, नीचे "मैंने प्राधिकरण पूरा कर लिया है" बटन पर क्लिक करें।',retry:"पुनः प्रयास करें",authenticated:"प्रमाणीकृत",cancel:"रद्द करें",providerNames:{openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},mcpTab:{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' गुम है। पूर्ण क्लाउड डेस्कटॉप-शैली कॉन्फिग भाग चिपकाएँ: { "mcpServers": {... } }`,importSummary:"आयातित {{count}} सर्वर ({{added}} जोड़ा गया, {{updated}} अद्यतन किया गया, {{removed}} हटाया गया)। {{failed}} सर्वर प्रारंभ करने में विफल रहे।",importStartFailures:"कुछ सर्वर प्रारंभ नहीं हुए. कॉन्फ़िगरेशन सहेजा गया है; त्रुटियाँ देखने के लिए सर्वर सूची खोलें।",importFailed:"MCP सर्वर आयात करने में विफल",overviewTitle:"MCP अवलोकन",overviewDescription:"बाहरी MCP सर्वर कॉन्फ़िगर करें और पंजीकृत टूल उपनामों का निरीक्षण करें।",totalServers:"कुल सर्वर: {{count}}",totalTools:"कुल टूल: {{count}}",serversTitle:"MCP सर्वर",addServer:"सर्वर जोड़ें",refreshAll:"सभी को ताज़ा करें",importModalTitle:"MCP सर्वर आयात करें",importHint:"क्लाउड डेस्कटॉप-शैली कॉन्फिग भाग चिपकाएँ। उदाहरण:",importModeMerge:"मर्ज (अप्सर्ट)",importModeReplace:"बदलें (अन्य हटाएं)",replaceWarning:"रिप्लेसमेंट मोड मौजूदा MCP सर्वर को हटा देगा जो आयातित MCP सर्वर में मौजूद नहीं हैं।",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:"SSE",stdio:"Stdio"}},mcpToolList:{title:"MCP टूल्स",selectServerHint:"इसके MCP टूल्स का निरीक्षण करने के लिए एक सर्वर का चयन करें",empty:"इस सर्वर के लिए कोई टूल्स नहीं मिले",noDescription:"कोई डिस्क्रिप्शन उपलब्ध नहीं",aliasMapping:"उपनाम मैपिंग",parametersSchema:"पैरामीटर स्कीमा"},mcpServerForm:{jsonMustBeObject:"JSON एक ऑब्जेक्ट होना चाहिए",detectedBulkConfig:"MCPसर्वर (बल्क कॉन्फ़िगरेशन) का पता लगाया गया। थोक आयात के लिए MCP टैब आयात बटन का उपयोग करें, या यहां एकल सर्वर कॉन्फ़िगरेशन पेस्ट करें।",missingIdField:"गुम या अमान्य आईडी फ़ील्ड",missingTransportField:"गुम या अमान्य परिवहन फ़ील्ड",missingTransportInfo:"परिवहन संबंधी जानकारी अनुपलब्ध. या तो ट्रांसपोर्ट (बोधि प्रारूप) या कमांड/URL (मुख्यधारा MCP प्रारूप) अपेक्षित है।",invalidJson:"अमान्य JSON: {{message}}",unknownError:"अज्ञात त्रुटि",editTitle:"MCP सर्वर संपादित करें",addTitle:"MCP सर्वर जोड़ें",jsonError:"JSON त्रुटि",serverId:"सर्वर ID",serverIdRequired:"सर्वर ID आवश्यक है",serverIdPatternError:"केवल अक्षरों, संख्याओं, अंडरस्कोर और हाइफ़न का उपयोग करें",displayName:"प्रदर्शित होने वाला नाम",enabledHelp:"अक्षम सर्वर कॉन्फ़िगरेशन में बने रहेंगे लेकिन प्रारंभ नहीं होंगे।",transportType:"ट्रांसपोर्ट प्रकार",transportTypeRequired:"ट्रांसपोर्ट प्रकार आवश्यक है",commandRequired:"कमांड आवश्यक है",argumentsPlaceholder:"एक तर्क जोड़ें और Enter दबाएँ",envVars:"एनवायरमेंट वेरिएबल",addEnv:"एनवायरमेंट वेरिएबल जोड़ें",keyRequired:"कुंजी आवश्यक है",sseUrl:"SSE URL",sseUrlRequired:"SSE URL आवश्यक है",validUrlRequired:"कृपया मान्य URL दर्ज करें",addHeader:"हेडर जोड़ें",headerNameRequired:"हेडर नाम आवश्यक है",save:"सहेजें",modeForm:"फॉर्म",modeJson:"JSON",enabled:"सक्रिय",transportOptions:{stdio:"Stdio",sse:"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:"ID",endpoint:"एंडपॉइंट",model:"मॉडल",type:"प्रकार",status:"स्थिति",tokens:"टोकन",duration:"अवधि",started:"शुरू कर दिया",error:"एरर"},typeStream:"स्ट्रीम",typeSync:"सिंक"}},metricsDashboard:{roundColumns:{toolCalls:"टूल कॉल",round:"राउंड",status:"स्थिति",duration:"अवधि",tokens:"टोकन"},compactStats:{combinedTokens:"संयुक्त टोकन",chatTokens:"चैट टोकन",forwardTokens:"फॉरवर्ड टोकन",avgTokensPerSession:"औसत टोकन/सत्र",estimatedTimeSaved:"Est. समय बचत",estimatedEfficiencyLift:"Est. दक्षता वृद्धि",estimatedSpeedMultiplier:"Est. गति गुणक",estimatedSavedWorkdays:"Est. बचत कार्यदिवस",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:"Completion",chat:"चैट",forward:"फॉरवर्ड"},page:{tabs:{mermaid:"Mermaid",mcp:"MCP"},groups:{ai:"AI"}}},components:{markdown:{codeCopiedSuccess:"कोड क्लिपबोर्ड पर कॉपी किया गया",copyFailed:"कॉपी विफल"},jsonSchema:{noProperties:"स्कीमा में कोई प्रॉपर्टी नहीं",field:"फ़ील्ड",type:"प्रकार",required:"आवश्यक",yes:"हाँ",no:"नहीं",default:"डिफ़ॉल्ट",description:"डिस्क्रिप्शन"},imageGrid:{ocr:"OCR"}}},X="lotus_ui_locale_v1",c="en-US",N=["en-US","zh-CN","zh-TW","fr-FR","ja-JP","hi-IN"],ee=e=>e?N.includes(e):!1,te=()=>{var t;if(typeof window>"u")return c;try{const s=window.localStorage,i=s&&typeof s.getItem=="function"?s.getItem(X):null;if(ee(i))return i}catch{}const e=((t=window.navigator.language)==null?void 0:t.toLowerCase())??"";return e.startsWith("zh")?e.includes("tw")||e.includes("hk")||e.includes("mo")||e.includes("hant")?"zh-TW":"zh-CN":e.startsWith("fr")?"fr-FR":e.startsWith("ja")?"ja-JP":e.startsWith("hi")?"hi-IN":c},I=e=>!!e&&typeof e=="object"&&!Array.isArray(e),g=(e,t)=>{const s={...e};for(const[i,o]of Object.entries(t)){const a=s[i];if(I(a)&&I(o)){s[i]=g(a,o);continue}s[i]=o}return s},oe=e=>({...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",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,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
|
|
5
|
+
|
|
6
|
+
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",triggerType:"Type de déclencheur",intervalSeconds:"Intervalle (secondes)",dailyHour:"Heure",dailyMinute:"Minute",weeklyWeekdays:"Jours de la semaine",monthlyDays:"Jours du mois",monthlyDaysPlaceholder:"ex. 1, 15, 28",cronExpr:"Expression Cron",cronExprPlaceholder:"ex. 0 9 * * 1-5",timezone:"Fuseau horaire",timezonePlaceholder:"ex. Europe/Paris",startAt:"Date de début",endAt:"Date de fin",datetimePlaceholder:"Format RFC3339, ex. 2026-04-05T09:00:00Z",misfirePolicy:"Politique de retard",overlapPolicy:"Politique de chevauchement",catchUpWindowMaxRuns:"Rattrapage max exécutions",catchUpWindowMaxLatenessSeconds:"Rattrapage max retard (s)",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",triggerRequired:"Le déclencheur est requis",intervalRequired:"L'intervalle est requis",weekdaysRequired:"Sélectionnez au moins un jour",monthDaysRequired:"Sélectionnez au moins un jour du mois",invalidMonthDays:"Les jours du mois doivent être des valeurs 1-31 séparées par des virgules",cronRequired:"L'expression Cron est requise"},triggerLabels:{interval:"Toutes les {{seconds}} secondes",daily:"Chaque jour à {{time}}",weekly:"Chaque semaine {{weekdays}} à {{time}}",monthly:"Chaque mois le {{days}} à {{time}}",cron:"Cron : {{expression}}"},misfirePolicyOptions:{runOnce:"Exécuter une fois",skip:"Ignorer",catchUpAll:"Rattraper tout",catchUpWindow:"Fenêtre de rattrapage"},overlapPolicyOptions:{queueOne:"Mettre en file d'attente",skip:"Ignorer les chevauchements",allow:"Autoriser le chevauchement"},runHistory:{columns:{status:"Statut",scheduledFor:"Planifié pour",startedAt:"Début",completedAt:"Fin",session:"Session",duration:"Durée",outcome:"Résultat"}},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."}}}),se=e=>{var t,s,i,o,a;return{...e,app:{...e.app,loading:"読み込み中...",retry:"再試行",errorBoundary:{title:"問題が発生しました",description:"このセクションで予期しないエラーが発生しました。再試行するか、問題が続く場合はページを再読み込みしてください。",tryAgain:"再試行",showDetails:"詳細を表示",hideDetails:"詳細を非表示"},passwordGate:{title:"アクセスパスワードを入力",description:"アプリケーションを使用する前にパスワード認証が必要です。",passwordLabel:"アクセスパスワード",passwordPlaceholder:"アクセスパスワードを入力",submit:"認証して続行",validation:{required:"アクセスパスワードを入力してください",verifyFailed:"パスワード認証に失敗しました"}},defaultSessionTitle:"新しいセッション",notifications:{toolApproval:{title:"承認が必要: {{tool}}",body:"ツール {{tool}} の実行には承認が必要です",unknownTool:"不明なツール"},contextPressure:{title:"コンテキストウィンドウがほぼ一杯です"},backgroundTask:{completedTitle:"バックグラウンドタスク完了",completedBody:"「{{title}}」が完了しました",completedFallback:"バックグラウンドタスクが完了しました"},clarification:{title:"Bodhi AI が回答を待っています",fallbackBody:"エージェントが質問への回答を待っています"},conversationSummarized:"会話が要約されました:{{messages}} 件のメッセージを圧縮し、{{tokens}} トークンを節約しました",allTasksCompleted:"すべてのタスクが完了しました!合計ラウンド:{{rounds}}、ツール呼び出し:{{toolCalls}}",evaluatingTasks:"{{count}} 件のタスクを評価中...",evaluationCompleteUpdated:"評価完了:{{count}} 件のタスクを更新しました。",evaluationCompleteNoUpdates:"評価完了:更新は不要です"}},commandPalette:{searchPlaceholder:"セッション、設定、アクションを検索",navigationHint:"↑↓ でナビゲーション、Enter で開く、Esc で閉じる",empty:"一致するコマンドがありません",groups:{quickActions:"クイックアクション",settings:"システム設定"},badges:{quickAction:"アクション",pinned:"ピン留め",running:"実行中",child:"子セッション",childSession:"子セッション",rootSession:"セッション"},actions:{newSession:"新しいセッションを作成",openProviderSettings:"プロバイダー設定を開く",openMcpSettings:"MCP 設定を開く",openWorkflowSettings:"ワークフロー設定を開く",openSessionsSettings:"セッションモニターを開く",openSchedulesSettings:"スケジュールを開く"},errors:{actionFailed:"コマンドの実行に失敗しました"}},setup:{welcome:{heading:"Bodhi へようこそ",description:"Bodhi は AI 駆動の開発アシスタントです。AI プロバイダーを設定して開始するか、そのまま進んでください。",providerHint:"チャットを開始するには、AI プロバイダー(例: OpenAI、Anthropic)を API キーで設定する必要があります。",proxyHint:"企業プロキシを使用していますか?後でシステム設定 > ネットワークでプロキシを設定できます。"},button:{getStarted:"開始",configureProvider:"プロバイダーを設定"},complete:{title:"設定完了!",restartMessage:"アプリケーションを再読み込み中..."},error:{completeFailed:"セットアップの完了に失敗しました。再試行してください。"}},onboarding:{welcome:{title:"Bodhi へようこそ!",description:"Bodhi は AI 駆動の開発アシスタントです。簡単に操作をご紹介します。"},newSession:{title:"新しいセッション",description:"ここをクリックして AI アシスタントとの新しいチャットを開始します。"},taskTemplates:{title:"タスクテンプレート",description:"コードレビュー、Bug 調査、リファクタリングなどのテンプレートから選択できます。"},modelPicker:{title:"モデル選択",description:"いつでもここから AI モデルとプロバイダーを切り替えられます。"},sidebar:{title:"セッションサイドバー",description:"セッションの検索、フィルタリング、ピン留め、切り替えができます。"},settings:{title:"設定",description:"AI プロバイダー、プロキシ、モデルマッピング、MCP サーバーなどを設定します。"}},layout:{...e.layout,showSidebar:"サイドバーを表示"},common:{...e.common,cancel:"キャンセル",ok:"OK",apply:"適用",save:"保存",delete:"削除",saveAnyway:"とにかく保存",yes:"はい",no:"いいえ",home:"ホーム",parentDirectory:"親ディレクトリ",currentPath:"現在のパス:",workspace:"ワークスペース",server:"サーバー:",category:"カテゴリー:",parameters:"パラメータ",approve:"承認",reject:"拒否",download:"ダウンロード",directory:"ディレクトリ",file:"ファイル"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"新しいセッション",empty:{noSessions:"セッションはまだありません",hint:"「新しいセッション」をクリックして開始"},dateGroups:{today:"今日",yesterday:"昨日",thisWeek:"今週",thisMonth:"今月",pinned:"ピン留め",scheduled:"スケジュール済み"},actions:{collapseChildren:"子セッションを折りたたむ",expandChildren:"子セッションを展開"}},input:{...e.chat.input,placeholder:"メッセージを送信...",placeholderWithReference:"メッセージを送信(参照付き)",placeholderWithWorkflows:"メッセージを送信...('/' でワークフロー)",processingFiles:"ファイルを処理中…",dropImagesHere:"ここに画像をドロップ",referencing:"参照中",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}}" で始まる必要があります'},actions:{...e.chat.actions,regenerate:"回答を再生成",retryFailed:"失敗したリクエストを再試行",retryOptions:"再試行オプション",cancelRequest:"リクエストをキャンセル",sendMessage:"メッセージを送信",copyMessage:"メッセージをコピー",referenceMessage:"メッセージを参照",unpin:"ピン留めを解除",pin:"ピン留め",generateTitle:"AIタイトルを生成"},streaming:{...e.chat.streaming,assistant:"Bodhi",requestCancelled:"リクエストがキャンセルされました",sendFailed:"メッセージの送信に失敗しました",retryFailed:"再試行に失敗しました",modelConfigNotLoaded:"モデル設定が読み込まれていません",agentUnavailable:"エージェントが利用できません",noActiveChatTitle:"アクティブなチャットがありません",noActiveChatSendContent:"メッセージを送信する前にチャットを作成または選択してください。",noActiveChatRetryContent:"再試行する前にチャットを作成または選択してください。"},subAgents:{...e.chat.subAgents,title:"サブエージェント",expand:"展開",collapse:"折りたたむ",continue:"ここで続行",open:"開く",retry:"再試行",hiddenHint:"{{count}} 件のサブエージェントが非表示"},selectionToolbar:{...e.chat.selectionToolbar,selectMessages:"メッセージを選択",selectedCount:"{{selected}} 件選択(全 {{total}} 件)",selectAll:"すべて選択",clear:"クリア",exportMarkdown:"Markdownでエクスポート",exportPdf:"PDFでエクスポート",done:"完了"},messageCard:{...e.chat.messageCard,authRequired:"認証が必要です",goToSettings:"設定へ",assistantThinking:"アシスタントが考え中...",assistantCompactingContext:"アシスタントがコンテキストを圧縮中...",assistantCompactingContextDegraded:"アシスタントがコンテキストを圧縮中(劣化モード)...",assistantCompactingContextFailed:"コンテキスト圧縮に失敗しました。続行中...",assistantUpdatingMemory:"アシスタントがメモリを更新中...",assistantRunningTool:"アシスタントが {{tool}} を実行中...",reasoning:"推論",selected:"選択済み",selectedTool:"選択済みツール"},messageActions:{...e.chat.messageActions,copy:"コピー",exportMarkdown:"Markdownでエクスポート",exportPdf:"PDFでエクスポート",restoreChat:"チャットのみ復元",restoreFilesAndChat:"ファイルとチャットを復元",deleteMessage:"メッセージを削除",deleteFailed:"メッセージの削除に失敗しました",nothingToExport:"エクスポートするものがありません",exportFailed:"エクスポートに失敗しました",restoreFailed:"チャットの復元に失敗しました",savedFile:"{{filename}} に保存しました",cannotRestore:"このメッセージは復元できません",restorePartial:"チャットを復元しました。{{count}} 件のファイルを復元できませんでした。",restoreFilesSuccess:"ファイルとチャットを復元しました({{count}} 件のメッセージを削除)。",restoreSuccess:"チャットを復元しました({{count}} 件のメッセージを削除)。",pdfUnavailable:"この環境では PDF エクスポートは利用できません",exportingPdf:"PDF をエクスポート中..."},chatItem:{edit:"編集",childTag:"子"},title:{updated:"チャットタイトルを更新しました",generateFailed:"チャットタイトルの生成に失敗しました"},respond:{customAnswerPlaceholder:"カスタム回答を入力..."},multiPane:{splitHorizontal:"水平に分割",splitVertical:"垂直に分割",closePane:"ペインを閉じる",selectSessionHint:"セッションを選択してメッセージを表示",hoverToSplitHint:"ペインにホバーして分割し、チャットを比較",selectMessagesToExport:"エクスポートするメッセージを選択"},fileReference:{title:"@ ファイル参照",setWorkspace:"ワークスペースを設定",noMatches:"一致するファイルが見つかりません",emptyDirectory:"ディレクトリは空です"},commandSelector:{...e.chat.commandSelector,loading:"コマンドを読み込み中...",emptyWithSearch:"「{{search}}」に一致するコマンドがありません",empty:"コマンドがありません。",navigationHint:"ナビゲーション: ↑↓ または Ctrl+P/N | 選択: Enter | 補完: Space/Tab | キャンセル: Esc",types:{workflow:"ワークフロー",skill:"スキル",mcp:"MCP"}},systemPromptSelector:{defaultTag:"デフォルト",hide:"非表示",preview:"プレビュー",copy:"コピー",lines:"{{count}} 行",words:"{{count}} 単語",chars:"{{count}} 文字",noContent:"コンテンツなし"}},settings:{...e.settings,page:{...e.settings.page,back:"戻る",title:"システム設定",tabs:{...e.settings.page.tabs,config:"設定",prompts:"プロンプト",mermaid:"Mermaid",skills:"スキル",workflows:"ワークフロー",mcp:"MCP",modelLimits:"モデル制限",metrics:"メトリクス",schedules:"スケジュール",sessions:"セッション",app:"アプリ",provider:"プロバイダー",hooks:"Hooks",masking:"マスキング",envVars:"環境変数"},groups:{...e.settings.page.groups,ai:"AI",toolsAndExtensions:"ツール & 拡張",securityAndPrivacy:"セキュリティ",monitoring:"モニタリング",system:"システム"}},notifications:{...e.settings.notifications,deleteAllSuccess:"すべてのセッションを削除しました(ピン留め除く)",deleteEmptySuccess:"空のセッションを削除しました(ピン留め除く)",localStorageCleared:"ローカルストレージをクリアしました",resetSuccessReloading:"アプリケーションをリセットしました。再読み込み中...",resetFailed:"アプリケーションのリセットに失敗しました",promptEnhancementSaved:"システムプロンプト拡張を保存しました"},configTab:{...e.settings.configTab,loadConfigFailed:"設定の読み込みに失敗しました",invalidConfig:"設定が無効です",saveConfigSuccess:"設定を保存しました",saveConfigFailed:"設定の保存に失敗しました",backendSaved:"バックエンドURLを保存しました",backendResetDefault:"バックエンドURLをデフォルトに戻しました",providerMovedTitle:"プロバイダー設定が移動しました",providerMovedDescription:"GitHub Copilot などのプロバイダー設定は [プロバイダー設定] タブに移動しました。そちらで設定してください。",backendApiBaseUrlTitle:"バックエンド API ベースURL",backendApiHint:"/v1 パスを含めてください",resetToDefault:"デフォルトに戻す",save:"保存",language:"言語",languageEnglish:"英語",languageChinese:"簡体字中国語",languageTraditionalChinese:"繁体字中国語",languageFrench:"フランス語",languageJapanese:"日本語",languageHindi:"ヒンディー語",backendUrlEmpty:"バックエンド URL を入力してください",backendUrlInvalidProtocol:"バックエンド URL は http:// または https:// で始める必要があります",backendUrlInvalidUrl:"バックエンド URL が無効です",backendUrlMustEndWithV1:'バックエンド URL は "/v1" で終わる必要があります',accessPassword:{validation:{currentPasswordRequired:"現在のパスワードを入力してください",newPasswordRequired:"新しいパスワードを入力してください",confirmPasswordRequired:"新しいパスワードを再度入力してください",minLength:"パスワードは4文字以上にしてください",passwordMismatch:"パスワードが一致しません"}}},promptsTab:{...e.settings.promptsTab,title:"システムプロンプト拡張",mermaidEnhancement:"Mermaid 拡張",taskListRules:"タスクリストルール",enhancementPlaceholder:"各システムプロンプトに追加するグローバル拡張テキストを入力してください。",saveEnhancement:"拡張を保存",description:"このテキストは各リクエスト送信前に追加され、その後有効なシステム拡張が適用されます。",switchOn:"オン",switchOff:"オフ"},appTab:{...e.settings.appTab,switchOn:"オン",switchOff:"オフ",darkMode:"ダークモード",darkModeDark:"ダーク",darkModeLight:"ライト",language:"言語",languageEnglish:"英語",languageChinese:"簡体字中国語",languageTraditionalChinese:"繁体字中国語",languageFrench:"フランス語",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:"アプリケーションをリセット(全データ)"},common:{...e.settings.common,loading:"読み込み中...",successful:"成功",failed:"失敗"},schedulesTab:{...e.settings.schedulesTab,loadFailed:"スケジュールの読み込みに失敗しました",loadSessionsFailed:"スケジュールセッションの読み込みに失敗しました",createFailed:"スケジュールの作成に失敗しました",updateFailed:"スケジュールの更新に失敗しました",deleteFailed:"スケジュールの削除に失敗しました",runNowFailed:"スケジュールの実行に失敗しました",taskMessageRequired:"自動実行が有効な場合、タスクメッセージは必須です",created:"スケジュールを作成しました",updated:"スケジュールを更新しました",deleted:"スケジュールを削除しました",enqueuedRun:"実行をキューに追加しました",optional:"(任意)",defaultName:"マイスケジュール",createTitle:"スケジュール作成",editTitle:"スケジュール編集",listTitle:"スケジュール一覧",scheduleSessionsTitle:"セッションスケジュール",scheduleRunsTitle:"スケジュール実行履歴",noSessionsYet:"まだセッションがありません",noRunsYet:"まだ実行履歴がありません",loadRunsFailed:"実行履歴の読み込みに失敗しました",nonIntervalReadOnly:"間隔以外のトリガーは読み取り専用です",columns:{...(t=e.settings.schedulesTab)==null?void 0:t.columns,autoExecute:"自動実行",intervalSeconds:"間隔",nextRun:"次回実行",lastRun:"最終実行",name:"名前",model:"モデル",enabled:"有効",actions:"操作"},triggerTypes:{interval:"間隔",daily:"毎日",weekly:"毎週",monthly:"毎月",cron:"Cron"},weekdays:{mon:"月",tue:"火",wed:"水",thu:"木",fri:"金",sat:"土",sun:"日"},triggerLabels:{interval:"{{seconds}}秒ごと",daily:"毎日 {{time}}",weekly:"毎週 {{weekdays}} {{time}}",monthly:"毎月 {{days}}日 {{time}}",cron:"Cron: {{expression}}"},statusLabels:{running:"実行中",queued:"待機中",failing:"失敗中",disabled:"無効",healthy:"正常",idle:"アイドル"},statusDetails:{active:"{{count}}回実行済み",pending:"次回実行: {{time}}",consecutiveFailures:"{{count}}回連続失敗",lastRunSucceeded:"最終実行成功"},activityLabels:{queued:"待機中",running:"実行中",ok:"成功",fail:"失敗"},form:{...(s=e.settings.schedulesTab)==null?void 0:s.form,triggerType:"トリガー種別",intervalSeconds:"間隔(秒)",dailyHour:"時",dailyMinute:"分",weeklyWeekdays:"曜日",monthlyDays:"日付",cronExpr:"Cron 式",timezone:"タイムゾーン",startAt:"開始日時",endAt:"終了日時",datetimePlaceholder:"日時を選択",misfirePolicy:"ミスファイヤーポリシー",overlapPolicy:"重複ポリシー",catchUpWindow:"キャッチアップウィンドウ(秒)",taskMessage:"タスクメッセージ",taskMessagePlaceholder:"(任意)実行するタスク",modelPlaceholder:"(任意)例: gpt-4o-mini",modelRequiredIfAuto:"自動実行の場合は必須",autoExecute:"自動実行",systemPrompt:"システムプロンプト",workspacePath:"ワークスペースパス",enhancePrompt:"プロンプトを強化",name:"名前",enabled:"有効",model:"モデル"},misfirePolicyOptions:{fireNow:"即時実行",doNothing:"何もしない"},overlapPolicyOptions:{allow:"許可",block:"ブロック",replace:"置換"},validation:{nameRequired:"名前は必須です",intervalRequired:"間隔は必須です"},actions:{runNow:"今すぐ実行",create:"作成",refresh:"更新",edit:"編集",sessions:"セッション",runs:"実行履歴",delete:"削除",open:"開く",save:"保存"},runHistory:{columns:{runAt:"実行時刻",status:"状態",duration:"所要時間",triggerType:"トリガー種別",message:"メッセージ",actions:"操作"}},yes:"はい",no:"いいえ"},modelLimits:{...e.settings.modelLimits,title:"トークン予算モデル制限",defaultsTitle:"モデル初期値",loadFailed:"モデル制限設定の読み込みに失敗しました",saveSuccess:"モデル制限をグローバル設定に保存しました",saveFailed:"モデル制限設定の保存に失敗しました",resetSuccess:"モデル制限を初期値に戻しました",resetFailed:"モデル制限設定のリセットに失敗しました",defaults:{...e.settings.modelLimits.defaults},columns:{contextWindow:"コンテキストウィンドウ",maxOutput:"最大出力",model:"モデル",notes:"備考",actions:"操作"},actions:{addRow:"行を追加",resetToDefaults:"初期値に戻す",remove:"削除",save:"保存",reload:"再読み込み"},validation:{atLeastOneRow:"1行以上のモデル制限を保持してください。",modelPatternEmpty:"モデルパターンは空にできません。",duplicateModelPattern:"重複モデルパターン: {{pattern}}",contextWindowMin:"{{pattern}} のコンテキストウィンドウは1000以上必要です。",maxOutputMin:"{{pattern}} の最大出力は1以上必要です。",maxOutputExceedsContext:"{{pattern}} の最大出力はコンテキストウィンドウ以下にしてください。"}},modelMappingCard:{...e.settings.modelMappingCard,loadProviderFailed:"プロバイダー設定の読み込みに失敗しました",loadMappingsFailed:"既存のマッピングの読み込みに失敗しました",loadModelsFailed:"モデルの読み込みに失敗しました",mappingSaved:"モデルマッピングを保存しました",mappingSaveFailed:"モデルマッピングの保存に失敗しました",enterModelName:"モデル名を入力してください",customMappingSaved:"カスタムモデルマッピングを保存しました",customMappingSaveFailed:"カスタムモデルマッピングの保存に失敗しました",modelTypeOpus:"Opus",modelTypeSonnet:"Sonnet",modelTypeHaiku:"Haiku"},keywordMaskingTab:{...e.settings.keywordMaskingTab,title:"キーワードマスキング",addKeyword:"キーワードを追加",empty:"キーワードマスキングルールが設定されていません",exactMatch:"完全一致",regexPattern:"正規表現パターン",enabled:"有効",disabled:"無効",sampleText:"サンプルテキスト",maskedPreview:"マスキングプレビュー",loadFailed:"キーワードマスキング設定の読み込みに失敗しました",saveSuccess:"キーワードマスキング設定を保存しました",patternRequired:"パターンは空にできません",invalidRegexPattern:"無効な正規表現パターンです"},metricsCards:{totalSessions:"セッション総数",chatTokens:"チャットトークン",totalToolCalls:"ツール呼び出し総数",avgSessionDuration:"平均セッション時間"},forwardMetricsCards:{totalForwardRequests:"Forward リクエスト総数",successRate:"成功率",forwardTokens:"Forward トークン",avgResponseTime:"平均応答時間"},unifiedMetricsCards:{...e.settings.unifiedMetricsCards,totalRequests:"リクエスト総数",totalTokens:"トークン総数",successRate:"成功率",avgResponseTime:"平均応答時間",chatSessions:"チャットセッション",chatTokens:"チャットトークン",toolCalls:"ツール呼び出し",forwardRequests:"Forward リクエスト",forwardTokens:"Forward トークン",successful:"成功",failed:"失敗"},metricsTable:{...e.settings.metricsTable,session:{...(i=e.settings.metricsTable)==null?void 0:i.session,columns:{session:"セッション",model:"モデル",status:"状態",started:"開始時刻",duration:"所要時間",tokens:"トークン",toolCalls:"ツール呼び出し",messages:"メッセージ",action:"操作"},view:"表示"},forward:{...(o=e.settings.metricsTable)==null?void 0:o.forward,columns:{id:"ID",endpoint:"エンドポイント",model:"モデル",type:"種別",status:"状態",tokens:"トークン",duration:"所要時間",started:"開始時刻",error:"エラー"},typeStream:"ストリーム",typeSync:"同期"}},mcpToolList:{...e.settings.mcpToolList,title:"MCP ツール",selectServerHint:"MCP ツールを確認するサーバーを選択してください",empty:"このサーバーにツールが見つかりません",noDescription:"説明がありません",aliasMapping:"エイリアスマッピング",parametersSchema:"パラメータスキーマ"},mcpServerTable:{...e.settings.mcpServerTable,columns:{name:"名前",transportType:"転送種別",status:"状態",toolCount:"ツール数",actions:"操作"},deleteTitle:"MCP サーバーを削除",empty:"MCP サーバーが設定されていません",actions:{edit:"編集",delete:"削除",disconnect:"切断",connect:"接続",refreshTools:"ツールを更新"},transportOptions:{sse:"SSE",stdio:"Stdio"}},mcpServerForm:{...e.settings.mcpServerForm,editTitle:"MCP サーバーを編集",addTitle:"MCP サーバーを追加",save:"保存",modeForm:"フォーム",modeJson:"JSON",serverId:"サーバー ID",serverIdRequired:"サーバー ID は必須です",displayName:"表示名",enabled:"有効",transportType:"転送種別",transportTypeRequired:"転送種別は必須です",command:"コマンド",commandRequired:"コマンドは必須です",arguments:"引数",argumentsPlaceholder:"引数を追加して Enter を押してください",envVars:"環境変数",addEnv:"環境変数を追加",keyRequired:"キーは必須です",sseUrl:"SSE URL",sseUrlRequired:"SSE URL は必須です",validUrlRequired:"有効な URL を入力してください",headers:"ヘッダー",addHeader:"ヘッダーを追加",headerNameRequired:"ヘッダー名は必須です",transportOptions:{stdio:"Stdio",sse:"SSE"}},providerTab:{...e.settings.providerTab,title:"LLM プロバイダー設定",description:"使用する LLM プロバイダーを設定します。「保存して適用」をクリックすると設定が保存・反映されます。",currentProvider:"現在のプロバイダー",activeProvider:"アクティブな LLM プロバイダー",selectProviderRequired:"プロバイダーを選択してください",saveAndApply:"保存して適用",loadConfigFailed:"プロバイダー設定の読み込みに失敗しました",saveConfigSuccess:"設定を保存しました",saveConfigFailed:"設定の保存に失敗しました",applyConfigSuccess:"設定を適用しました。新しいセッションから反映されます。",applyConfigFailed:"設定の適用に失敗しました",modelUpdated:"モデルを更新しました",updateModelFailed:"モデルの更新に失敗しました",fetchingModels:"モデルを取得中...",fetchModelsFailed:"モデルの取得に失敗しました。API Key と Base URL を確認してください。",noModelsReturned:"モデルが返されませんでした。先に Copilot 認証を完了してください。",foundModels:"{{count}} 個のモデルが見つかりました",retry:"再試行",defaultModel:"デフォルトモデル",modelPreferences:"モデル設定",fastModel:"高速モデル(任意)",fastModelHelp:"タイトル生成、Mermaid 修正、要約などの軽量タスク用の低コスト/高速モデル。未設定時はデフォルトモデルを使用。",subAgentModel:"サブエージェントモデル(任意)",subAgentModelHelp:"新しいサブエージェントのデフォルトモデル。未設定時は高速モデル、さらにデフォルトモデルにフォールバック。",visionModel:"ビジョンモデル(任意)",visionModelHelp:"画像理解用のビジョンモデル。hooks.image_fallback.mode が 'vision' の場合、画像をテキストとして記述します。未設定時はデフォルトモデルを使用。",sameAsDefault:"デフォルトと同じ",selectModelRequired:"モデルを選択してください",selectModel:"モデルを選択",openaiConfigTitle:"OpenAI 設定",openaiConfigDescription:"OpenAI API Key を入力して GPT モデルを使用します。カスタム Base URL も指定可能です。",openaiApiKey:"OpenAI API Key",openaiApiKeyRequired:"OpenAI API Key を入力してください",baseUrlOptional:"Base URL(任意)",openaiBaseUrlHelp:"空欄の場合はデフォルトの OpenAI API エンドポイントを使用します。必要に応じてフルパス(例: /v1)を含めてください。",anthropicConfigTitle:"Anthropic 設定",anthropicConfigDescription:"Anthropic API Key を入力して Claude モデルを使用します。",anthropicApiKey:"Anthropic API Key",anthropicApiKeyRequired:"Anthropic API Key を入力してください",anthropicBaseUrlHelp:"空欄の場合はデフォルトの Anthropic API エンドポイントを使用します。必要に応じてフルパスを含めてください。",maxTokensOptional:"最大 Tokens(任意)",maxTokensHelp:"生成時の最大トークン数",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 は不要です。有効な GitHub Copilot サブスクリプションが必要です。",authStatusTitle:"認証状態",authenticated:"認証済み",notAuthenticated:"未認証",logoutCopilot:"Copilot からログアウト",authenticateCopilot:"Copilot を認証",refreshStatus:"状態を更新",headlessAuth:"ヘッドレス認証",headlessAuthHelp:"ブラウザを自動で開かず、コンソールにログインリンクを出力します",providerNames:{openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"},checkStatusFailed:"ステータスの確認に失敗しました",startCopilotAuthFailed:"Copilot 認証の開始に失敗しました",copilotAuthSuccess:"Copilot 認証に成功しました!",providerReloaded:"新しい認証情報でプロバイダーを再読み込みしました。",completeAuthFailed:"認証の完了に失敗しました。再試行してください。",userCodeCopied:"ユーザーコードをクリップボードにコピーしました!",copyCodeFailedPrefix:"コピーに失敗しました。手動でコピーしてください:",logoutSuccess:"Copilot からログアウトしました",logoutFailed:"Copilot のログアウトに失敗しました",unknownError:"不明なエラー",invalidConfig:"設定が無効です",invalidConfigPrefix:"設定が無効です",invalidRequestOverridesJson:"{{provider}} の request_overrides JSON が無効です:{{error}}",fetchModelsCopilotFailed:"モデルの取得に失敗しました。先に Copilot 認証を完了してください。",fetchModelsErrorPrefix:"モデルの取得に失敗しました",saveModelChangeFailed:"モデル変更の保存に失敗しました",fetchModelsFailedShort:"モデルの取得に失敗しました",refreshModelsFrom:"{{source}} からモデルを更新",fetchModelsFrom:"{{source}} からモデルを取得",noModelsLoaded:"モデルがまだ読み込まれていません。「すべてのモデルを取得」をクリックしてください。",authFirstThenFetch:"先に Copilot 認証を完了してからモデルを取得してください。",openaiApiKeyPlaceholder:"sk-...",openaiBaseUrlPlaceholder:"https://api.openai.com/v1",anthropicApiKeyPlaceholder:"sk-ant-...",anthropicBaseUrlPlaceholder:"https://api.anthropic.com",maxTokensPlaceholder:"例: 4096",geminiApiKeyPlaceholder:"AI...",geminiBaseUrlPlaceholder:"https://generativelanguage.googleapis.com",responsesOnlyModelsOptional:"Responses 専用モデル(任意)",responsesOnlyModelsPlaceholder:'例: "gpt-5.3-codex", "gpt-5*"',responsesOnlyHelp1:"一部のモデルは OpenAI Responses API のみをサポートします(chat/completions は不可)。ここにモデル ID を追加すると、Bamboo に",responsesOnlyHelp2:"完全一致(例: gpt-5.3-codex)とサフィックス * のプレフィックス一致(例: gpt-5*)をサポートします。",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 をクリックした後、下の「認証を完了しました」をクリックしてください。",providerModelRef:"プロバイダーモデルカタログ",providerModelRefHelp:"バックエンド提供のモデルカタログを使用してモデルを選択します。有効にすると、手動設定ではなくカタログのモデルが表示されます。",catalogModeInfo:"モデルはプロバイダーカタログから取得されます。",fetchAllModels:"すべてのモデルを取得",fetchingAllModels:"モデルを取得中...",fetchModelsSuccess:"{{count}} プロバイダーのモデルを取得しました",fetchModelsPartialSuccess:"{{success}}/{{total}} プロバイダーのモデルを取得しました",providerNotConfigured:"プロバイダー未設定",capabilityVision:"ビジョン",capabilityTools:"ツール",capabilityReasoning:"推論",refreshCatalog:"カタログを更新",noCatalogModels:"カタログにモデルがありません",reasoningEffortDefault:"デフォルト",reasoningEffortOptional:"推論の労力(任意)",reasoningEffortHelp:"モデルの推論レベルを設定します。未設定時はプロバイダーのデフォルトを使用。",activeProviderReasoningEffort:"アクティブな推論レベル",reasoningEffortUpdated:"推論レベルを更新しました",updateReasoningEffortErrorPrefix:"推論レベルの更新に失敗しました",updateReasoningEffortFailed:"推論レベルの更新に失敗しました",advancedRequestOverrides:"高度なリクエストオーバーライド",advancedRequestOverridesHelp:"各リクエストに適用するカスタム JSON オーバーライド。",envVarInjection:"環境変数インジェクション"}},components:{...e.components,workflowResult:{...e.components.workflowResult,userWorkflow:"ユーザーワークフロー",waitingForResult:"ワークフロー結果を待機中...",executionFailed:"ワークフローの実行に失敗しました",retryWorkflow:"ワークフローを再実行",copyParameters:"パラメータをコピー",copyResult:"結果をコピー",expandResult:"結果を展開",collapseResult:"結果を折りたたむ"},toolResult:{...e.components.toolResult,waiting:"待機中",waitingForResult:"結果を待機中...",executionFailed:"ツールの実行に失敗しました",copyResult:"結果をコピー"},todoList:{...e.components.todoList,title:"タスクリスト",evaluating:"評価中",pin:"ピン留め",unpin:"ピン留めを解除",llmEvaluation:"LLM 評価",tools:"ツール",dependsOn:"依存: {{deps}}",dependencies:"依存",status:{...e.components.todoList.status,pending:"保留中",inProgress:"進行中",completed:"完了",blocked:"ブロック",skipped:"スキップ",failed:"失敗"},listStatus:{active:"アクティブ",completed:"完了",abandoned:"放棄"},percentComplete:"{{percent}}% 完了",progressLabel:"{{completed}} / {{total}} タスク完了",currentLabel:"現在: {{description}}"},toolSession:{...(a=e.components)==null?void 0:a.toolSession,title:"ツールセッション",running:"実行中",done:"完了",error:"エラー",completedOnly:"{{completed}} 完了",completedWithErrors:"{{completed}} 完了(エラーあり)",completedProgress:"{{completed}} / {{total}} 完了",noPersistedMessage:"永続化された出力がありません",deleteMessage:"ツールセッションを削除"},tokenUsage:{...e.components.tokenUsage,title:"トークン使用量",summary:"サマリー",system:"システム",messages:"メッセージ",tokens:"トークン",usedPercent:"{{value}}% 使用"},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:"回答を送信"},skillManager:{...e.components.skillManager,title:"スキル",refresh:"更新",skillsRefreshed:"スキルを更新しました",lastUpdated:"最終更新: {{value}}",justNow:"たった今",secondsAgo:"{{count}} 秒前",minutesAgo:"{{count}} 分前",searchPlaceholder:"スキルを検索",noSkillsFound:"スキルが見つかりません",loadFailed:"スキルの読み込みに失敗しました",getFailed:"スキルの取得に失敗しました"},mermaid:{...e.components.mermaid,loadingDiagram:"図を読み込み中...",diagramError:"Mermaid図エラー",errorTitlePrefix:"エラー",checkConsoleHint:"Mermaidの構文を確認するか、コンソールを開いて詳細を確認してください。",fixMermaid:"Mermaidを修正",renderingDiagram:"図をレンダリング中...",exportSvg:"SVGでエクスポート",exportFailed:"図のエクスポートに失敗しました"}}}},ie=e=>({...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,switchOn:"चालू",switchOff:"बंद",darkMode:"डार्क मोड",darkModeDark:"डार्क",darkModeLight:"लाइट",language:"भाषा",languageEnglish:"अंग्रेज़ी",languageChinese:"सरलीकृत चीनी",languageTraditionalChinese:"पारंपरिक चीनी",languageFrench:"फ़्रेंच",languageJapanese:"जापानी",languageHindi:"हिन्दी",cancel:"रद्द करें",dangerZone:"जोखिम क्षेत्र"},common:{...e.settings.common,loading:"लोड हो रहा है...",successful:"सफल",failed:"विफल"}},commandPalette:{searchPlaceholder:"सत्र, सेटिंग्स और कार्रवाइयाँ खोजें",navigationHint:"नेविगेट करने के लिए ↑↓, खोलने के लिए Enter, बंद करने के लिए Esc दबाएँ",empty:"कोई मेल खाती कमांड नहीं",groups:{quickActions:"त्वरित कार्रवाइयाँ",settings:"सिस्टम सेटिंग्स"},badges:{quickAction:"कार्रवाई",pinned:"पिन किया",running:"चल रहा है",child:"चाइल्ड",childSession:"चाइल्ड सत्र",rootSession:"सत्र"},actions:{newSession:"नया सत्र बनाएँ",openProviderSettings:"प्रोवाइडर सेटिंग्स खोलें",openMcpSettings:"MCP सेटिंग्स खोलें",openWorkflowSettings:"वर्कफ़्लो सेटिंग्स खोलें",openSessionsSettings:"सत्र मॉनिटर खोलें",openSchedulesSettings:"अनुसूचियाँ खोलें"},errors:{actionFailed:"कमांड विफल हुई"}},setup:{welcome:{heading:"Bodhi में आपका स्वागत है",description:"Bodhi आपका AI-संचालित विकास सहायक है। एक AI प्रोवाइडर कॉन्फ़िगर करें और शुरू करें, या सीधे आगे बढ़ें।",providerHint:"चैट शुरू करने के लिए, आपको एक AI प्रोवाइडर (जैसे OpenAI, Anthropic) को API कुंजी के साथ कॉन्फ़िगर करना होगा।",proxyHint:"कॉर्पोरेट प्रॉक्सी के पीछे हैं? आप बाद में सिस्टम सेटिंग्स > नेटवर्क में प्रॉक्सी सेटिंग्स कॉन्फ़िगर कर सकते हैं।"},button:{getStarted:"शुरू करें",configureProvider:"प्रोवाइडर कॉन्फ़िगर करें"},complete:{title:"सब तैयार है!",restartMessage:"एप्लिकेशन पुनः लोड हो रहा है..."},error:{completeFailed:"सेटअप पूरा करने में विफल। कृपया पुनः प्रयास करें।"}},onboarding:{welcome:{title:"Bodhi में आपका स्वागत है!",description:"Bodhi आपका AI-संचालित विकास सहायक है। आइए जल्दी से परिचित होते हैं।"},newSession:{title:"नया सत्र",description:"AI सहायक के साथ नई चैट सत्र शुरू करने के लिए यहाँ क्लिक करें।"},taskTemplates:{title:"कार्य टेम्पलेट",description:"कोड समीक्षा, Bug जाँच, रिफैक्टर आदि पूर्व-निर्मित टेम्पलेट्स से चुनें।"},modelPicker:{title:"मॉडल चयन",description:"यहाँ से कभी भी AI मॉडल और प्रोवाइडर बदलें।"},sidebar:{title:"सत्र साइडबार",description:"अपने सत्र प्रबंधित करें — खोजें, फ़िल्टर करें, पिन करें और स्विच करें।"},settings:{title:"सेटिंग्स",description:"AI प्रोवाइडर, प्रॉक्सी, मॉडल मैपिंग, MCP सर्वर और बहुत कुछ कॉन्फ़िगर करें।"}}}),ae=e=>{const t=oe(e);return{...t,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:{...t.chat,sidebar:{...t.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",dropImagesHere:"Déposez les images ici",referencing:"Référencement",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é"},subAgents:{...e.chat.subAgents,title:"Sous-agents",expand:"Développer",collapse:"Réduire",continue:"Continuer ici",open:"Ouvrir",retry:"Réessayer",hiddenHint:"{{count}} sous-agent(s) masqué(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:{...t.settings,page:{...t.settings.page,tabs:{...t.settings.page.tabs,hooks:"Hooks",envVars:"Variables d'environnement"}},configTab:{...t.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:{...t.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",skipped:"Ignorée",failed:"Échouée"},listStatus:{active:"Active",completed:"Terminée",abandoned:"Abandonnée"},percentComplete:"{{percent}} % terminé",progressLabel:"{{completed}} / {{total}} tâches terminées",currentLabel:"En cours : {{description}}"},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"}}}},re=e=>{const t=ie(e);return{...t,layout:{...e.layout,showSidebar:"साइडबार दिखाएँ"},common:{...e.common,workspace:"वर्कस्पेस",server:"सर्वर:",category:"श्रेणी:",parameters:"पैरामीटर्स",approve:"स्वीकृत करें",reject:"अस्वीकृत करें"},chat:{...t.chat,sidebar:{...t.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:"पूर्ण"},subAgents:{...e.chat.subAgents,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:{...t.settings,page:{...t.settings.page,tabs:{...t.settings.page.tabs,envVars:"पर्यावरण वेरिएबल्स"}},configTab:{...t.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:"डायग्राम निर्यात विफल"}}}},ne=e=>{var t,s,i,o,a,d,f,v,S,y,b,C,M,P,A,k,T,w,R,F,x,L,E;return{...e,common:{...e.common,saveAnyway:"仍然儲存",parentDirectory:"上層目錄",currentPath:"目前路徑:",cancel:"取消",ok:"確定",apply:"套用",save:"儲存",delete:"刪除",yes:"是",no:"否",home:"首頁",download:"下載",directory:"目錄",file:"檔案"},app:{...e.app,loading:"載入中...",errorBoundary:{title:"出了點問題",description:"此區域發生了意外錯誤。您可以重試,或者如果問題持續存在,請重新載入頁面。",tryAgain:"重試",showDetails:"顯示詳情",hideDetails:"隱藏詳情"},passwordGate:{...e.app.passwordGate,title:"請輸入訪問密碼",description:"當前訪問需要先通過密碼驗證,驗證成功後才會進入應用。",passwordLabel:"訪問密碼",passwordPlaceholder:"請輸入訪問密碼",submit:"驗證並進入",validation:{required:"請輸入訪問密碼",verifyFailed:"密碼驗證失敗"}},notifications:{...e.app.notifications,toolApproval:{title:"需要批准:{{tool}}",body:"工具 {{tool}} 需要您的批准才能執行",unknownTool:"未知工具"},contextPressure:{title:"上下文視窗即將耗盡"},backgroundTask:{completedTitle:"後台任務已完成",completedBody:"「{{title}}」已完成",completedFallback:"後台任務已完成"},clarification:{title:"Bodhi AI 需要您的回覆",fallbackBody:"代理需要您回答一個問題"},conversationSummarized:"對話已摘要:壓縮了 {{messages}} 條訊息,節省了 {{tokens}} 個 token",allTasksCompleted:"所有任務已完成!總輪次:{{rounds}},工具呼叫:{{toolCalls}}",evaluatingTasks:"正在評估 {{count}} 個任務...",evaluationCompleteUpdated:"評估完成:已更新 {{count}} 個任務。",evaluationCompleteNoUpdates:"評估完成:無需更新"},defaultSessionTitle:"新會話"},commandPalette:{...e.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:"指令執行失敗"}},setup:{welcome:{heading:"歡迎使用 Bodhi",description:"Bodhi 是您的 AI 驅動開發助手。配置一個 AI 供應商即可開始,或直接進入應用。",providerHint:"要開始對話,您需要配置一個 AI 供應商(如 OpenAI、Anthropic)並提供 API 金鑰。",proxyHint:"在公司代理後面?您可以稍後在系統設定 > 網路中配置代理。"},button:{getStarted:"開始使用",configureProvider:"配置 Provider"},complete:{title:"一切就緒!",restartMessage:"正在重新載入應用..."},error:{completeFailed:"完成設定失敗,請重試。"}},onboarding:{welcome:{title:"歡迎使用 Bodhi!",description:"Bodhi 是您的 AI 驅動開發助手。讓我們快速了解一下介面。"},newSession:{title:"新建會話",description:"點擊這裡開始一個與 AI 助手的新對話。"},taskTemplates:{title:"任務模板",description:"從預置模板中選擇,如程式碼審查、Bug 調查、重構等,快速啟動工作。"},modelPicker:{title:"模型選擇",description:"隨時在此切換 AI 模型和供應商。"},sidebar:{title:"會話側邊欄",description:"在此管理您的會話——搜尋、過濾、置頂和切換對話。"},settings:{title:"設定",description:"配置 AI 供應商、代理設定、模型映射、MCP 伺服器等。"}},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"新建會話",searchPlaceholder:"搜尋會話",empty:{noSessions:"暫無會話",hint:"點擊「新建會話」開始"},dateGroups:{today:"今天",yesterday:"昨天",thisWeek:"本週",thisMonth:"本月",pinned:"置頂",scheduled:"計劃任務"},actions:{collapseChildren:"摺疊子會話",expandChildren:"展開子會話"}},input:{...e.chat.input,placeholder:"傳送訊息...",placeholderWithReference:"傳送訊息(包含引用)",placeholderWithWorkflows:"傳送訊息...(輸入 '/' 使用工作流程)",addAttachments:"新增附件",processingFiles:"正在處理檔案…",imageCountSingular:"{{count}} 張圖片",imageCountPlural:"{{count}} 張圖片",clearAllImages:"清除所有圖片",dropImagesHere:"將圖片拖放到此處",referencing:"引用中",reasoning:{...(t=e.chat.input)==null?void 0:t.reasoning,max:"最大"}},actions:{...e.chat.actions,regenerate:"重新生成回應",retryFailed:"重試失敗的請求",cancelRequest:"取消請求",sendMessage:"傳送訊息",copyMessage:"複製訊息",referenceMessage:"引用訊息",generateTitle:"生成 AI 標題",pin:"置頂",unpin:"取消置頂"},workspace:{...e.chat.workspace,placeholder:"例如 /Users/alice/workspace/myproject"},folderBrowser:{...e.chat.folderBrowser,title:"選擇工作區資料夾",selectCurrent:"選擇目前資料夾",emptyFolder:"此資料夾為空"},streaming:{...e.chat.streaming,assistant:"助手"},model:{selectModel:"選擇模型",noModelSelected:"未選擇模型",selectModelHint:"選擇一個模型以開始對話。",providerNotConfigured:"供應商未配置",configureProviderHint:"請先在設定中配置供應商,再選擇模型。",configureProvider:"配置供應商",openSettings:"開啟設定",noModelsAvailable:"無可用模型",selectModelBeforeSend:"請在傳送前選擇模型。",selectModelBeforeRetry:"請在重試前選擇模型。"},scroll:{jumpToTop:"跳到頂部",backToLatest:"回到最新",newMessages:"新訊息",newMessagesWithCount_one:"{{count}} 條新訊息",newMessagesWithCount_other:"{{count}} 條新訊息"},selectionToolbar:{selectMessages:"選擇訊息",selectedCount:"已選 {{selected}} 條(共 {{total}} 條)",selectAll:"全選",clear:"清除",exportMarkdown:"匯出 Markdown",exportPdf:"匯出 PDF",done:"完成"},subAgents:{title:"子代理",expand:"展開",collapse:"摺疊",continue:"在此繼續",open:"開啟",retry:"重試",hiddenHint:"{{count}} 個子代理已隱藏"},messageCard:{...e.chat.messageCard,assistantCompactingContext:"助手正在壓縮上下文...",assistantCompactingContextDegraded:"助手正在壓縮上下文(降級模式)...",assistantCompactingContextFailed:"助手壓縮上下文失敗,繼續中...",assistantUpdatingMemory:"助手正在更新記憶...",assistantRunningTool:"助手正在執行 {{tool}}..."},messageActions:{...e.chat.messageActions,restoreChat:"僅恢復聊天",restoreFilesAndChat:"恢復檔案和聊天",deleteFailed:"刪除訊息失敗",savedFile:"已儲存至 {{filename}}",cannotRestore:"無法恢復此訊息",restorePartial:"聊天已恢復。{{count}} 個檔案無法恢復。",restoreFilesSuccess:"檔案和聊天已恢復(已刪除 {{count}} 則訊息)。",restoreSuccess:"聊天已恢復(已刪除 {{count}} 則訊息)。",pdfUnavailable:"此環境不支援 PDF 匯出",exportingPdf:"正在匯出 PDF..."},prompt:{...e.chat.prompt,systemCard:{title:"系統提示詞",viewEnhanced:"查看增強版",viewBase:"查看基礎版",copy:"複製",snapshotTitle:"提示快照",sections:{base:"基礎提示",enhancement:"增強層",workspace:"工作區",instruction:"指令層",env:"環境變數",skills:"技能",toolGuide:"工具指引",dream:"Dream Notebook",sessionMemory:"會話記憶",externalMemory:"記憶層",taskList:"任務列表",effective:"最終提示詞"}}},compression:{tag:"已壓縮上下文",timelineDetail:"已歸檔 {{count}} 條訊息",timelineAria:"{{time}},{{detail}}",tooltip:"最近一次壓縮:{{time}},已歸檔 {{count}} 條訊息",archivedShort:"已歸檔 {{count}} 條"},emptyLauncher:{title:"從任務開始",subtitle:"在目前分欄中建立一個聚焦會話,並先預填第一條訊息,再由你決定是否發送。",hint:"不會自動發送,你可以先編輯提示詞。",actions:{blank:{title:"空白會話",description:"使用預設助手從零開始,並保留空白輸入框。",sessionTitle:"新建會話"},codeReview:{title:"程式碼審查",description:"開啟一個面向審查的會話,並預填可編輯的審查說明。",sessionTitle:"程式碼審查"},tokenUsage:{title:"Token 使用調查",description:"診斷上下文膨脹、截斷風險和 token 預算壓力。",sessionTitle:"Token 使用調查"}},errors:{createFailed:"建立會話失敗"}},fileReference:{title:"@ 檔案引用",setWorkspace:"設定工作區",noMatches:"未找到符合的檔案",emptyDirectory:"目錄為空"},commandSelector:{...e.chat.commandSelector,loading:"正在載入指令...",emptyWithSearch:"沒有符合「{{search}}」的指令",empty:"沒有可用的指令。",navigationHint:"導航:↑↓ 或 Ctrl+P/N | 選擇:Enter | 完成:Space/Tab | 取消:Esc",types:{workflow:"工作流程",skill:"技能",mcp:"MCP"}},systemPromptSelector:{defaultTag:"預設",hide:"隱藏",preview:"預覽",copy:"複製",lines:"{{count}} 行",words:"{{count}} 詞",chars:"{{count}} 字元",noContent:"無內容"},chatItem:{edit:"編輯",childTag:"子"},title:{updated:"會話標題已更新",generateFailed:"生成會話標題失敗"},respond:{customAnswerPlaceholder:"輸入自訂回答..."},multiPane:{splitHorizontal:"水平分割",splitVertical:"垂直分割",closePane:"關閉面板",selectSessionHint:"選擇會話以查看訊息",hoverToSplitHint:"將游標移至面板上方以分割並比較會話",selectMessagesToExport:"選擇要匯出的訊息"}},settings:{...e.settings,page:{...e.settings.page,title:"系統設定",tabs:{...e.settings.page.tabs,config:"設定",prompts:"提示詞",mermaid:"Mermaid",mcp:"MCP",modelLimits:"模型限制",metrics:"指標",sessions:"會話",schedules:"排程",app:"應用",provider:"供應商",hooks:"Hooks",masking:"脫敏",envVars:"環境變數",workflows:"工作流程",skills:"技能"},groups:{...e.settings.page.groups,ai:"AI",toolsAndExtensions:"工具與擴展",securityAndPrivacy:"安全",monitoring:"監控",system:"系統"}},configTab:{...e.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:"印地語",backendUrlEmpty:"後端位址不能為空",backendUrlInvalidProtocol:"後端位址必須以 http:// 或 https:// 開頭",backendUrlInvalidUrl:"後端位址不是有效的 URL",backendUrlMustEndWithV1:'後端位址必須以 "/v1" 結尾',accessPassword:{validation:{currentPasswordRequired:"請輸入目前密碼",newPasswordRequired:"請輸入新密碼",confirmPasswordRequired:"請再次輸入新密碼",minLength:"密碼至少需要 4 個字元",passwordMismatch:"兩次輸入的密碼不一致"}}},appTab:{...e.settings.appTab,language:"語言",languageEnglish:"English",languageChinese:"簡體中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"印地語",darkMode:"深色模式",dangerZone:"危險操作",dangerDescription:"以下操作不可撤銷,所有資料將被永久刪除。",deleteAllTitle:"刪除所有會話",deleteAllDescription:"確認刪除?將刪除所有會話(置頂除外)。",deleteAllButton:"刪除所有會話",deleteEmptyTitle:"刪除空白會話",deleteEmptyDescription:"確認刪除?將刪除所有空白會話(置頂除外)。",deleteEmptyButton:"刪除空白會話",clearLocalStorageTitle:"清除本地儲存",clearLocalStorageDescription:"確認清除?這將刪除所有本地儲存資料並重置應用。",clearLocalStorageButton:"清除本地儲存",confirmDeleteAll:"確認,刪除全部",confirmDeleteEmpty:"確認,刪除空白",confirmClear:"確認,清除",resetApplicationTitle:"重置應用",resetApplicationIntro:"確認重置?這將執行以下操作:",resetStepDeleteAllSessions:"刪除所有會話(包括置頂)",resetStepClearStorage:"清除所有本地儲存資料",resetStepResetConfig:"將 config.json 重置為預設值",resetStepSetupFlow:"下次啟動時觸發初始設定流程",resetStepReload:"重新載入應用",resetConfirm:"確認,重置全部",resetButton:"重置應用(清空全部資料)"},schedulesTab:{...e.settings.schedulesTab,loadFailed:"載入排程失敗",loadSessionsFailed:"載入排程會話失敗",createFailed:"建立排程失敗",updateFailed:"更新排程失敗",deleteFailed:"刪除排程失敗",runNowFailed:"立即執行失敗",taskMessageRequired:"啟用自動執行時必須填寫任務訊息",created:"排程已建立",updated:"排程已更新",deleted:"排程已刪除",enqueuedRun:"已加入執行佇列",loading:"載入中...",yes:"是",no:"否",optional:"(可選)",defaultName:"我的排程",createTitle:"建立排程",listTitle:"排程列表",scheduleSessionsTitle:"排程會話",scheduleRunsTitle:"排程執行記錄",noSessionsYet:"暫無會話。",noRunsYet:"暫無執行記錄。",loadRunsFailed:"載入排程執行記錄失敗",editTitle:"編輯排程",nonIntervalReadOnly:"僅間隔觸發器支援快速間隔編輯。",columns:{...(s=e.settings.schedulesTab)==null?void 0:s.columns,name:"名稱",status:"狀態",activity:"活動",autoExecute:"自動執行",model:"模型",enabled:"啟用",intervalSeconds:"間隔(秒)",nextRun:"下次執行",lastRun:"最近執行",actions:"操作"},triggerTypes:{interval:"間隔",daily:"每天",weekly:"每週",monthly:"每月",cron:"Cron"},misfirePolicyOptions:{runOnce:"執行一次",skip:"跳過",catchUpAll:"補執行全部",catchUpWindow:"補執行視窗"},overlapPolicyOptions:{queueOne:"排隊一個",skip:"跳過重疊執行",allow:"允許重疊"},form:{...(i=e.settings.schedulesTab)==null?void 0:i.form,name:"名稱",triggerType:"觸發類型",intervalSeconds:"間隔秒數",dailyHour:"時",dailyMinute:"分",weeklyWeekdays:"工作日",monthlyDays:"月份天數",monthlyDaysPlaceholder:"例如 1, 15, 28",cronExpr:"Cron 表示式",cronExprPlaceholder:"例如 0 9 * * 1-5",timezone:"時區",timezonePlaceholder:"例如 Asia/Taipei",startAt:"開始時間",endAt:"結束時間",datetimePlaceholder:"RFC3339 格式,例如 2026-04-05T09:00:00Z",misfirePolicy:"錯過策略",overlapPolicy:"重疊策略",catchUpWindowMaxRuns:"補執行最大執行次數",catchUpWindowMaxLatenessSeconds:"補執行最大延遲(秒)",enabled:"啟用",taskMessage:"任務訊息",taskMessagePlaceholder:"(可選)要執行的任務",model:"模型",modelPlaceholder:"(可選)例如 gpt-4o-mini",modelRequiredIfAuto:"啟用自動執行時必填",autoExecute:"自動執行",systemPrompt:"系統提示詞",workspacePath:"工作區路徑",enhancePrompt:"增強提示"},validation:{...(o=e.settings.schedulesTab)==null?void 0:o.validation,nameRequired:"名稱不能為空",triggerRequired:"觸發設定不能為空",intervalRequired:"間隔不能為空",weekdaysRequired:"至少選擇一個工作日",monthDaysRequired:"至少選擇一個月份天數",invalidMonthDays:"月份天數必須是 1-31 之間的逗號分隔值",cronRequired:"Cron 表示式不能為空"},actions:{...(a=e.settings.schedulesTab)==null?void 0:a.actions,create:"建立",refresh:"重新整理",edit:"編輯",runNow:"立即執行",sessions:"會話",runs:"執行記錄",delete:"刪除",open:"開啟",save:"儲存"},runHistory:{columns:{status:"狀態",scheduledFor:"計劃時間",startedAt:"開始時間",completedAt:"完成時間",session:"會話",duration:"耗時",outcome:"結果"}}},sessionsTab:{...e.settings.sessionsTab,currentSessionTitle:"目前會話",clearMessages:"清除訊息",id:"ID",kind:"類型",clear:"清除"},metricsDashboard:{...e.settings.metricsDashboard,sessionsCount:"{{count}} 個會話",tokensAmount:"{{value}} Token",sessionsTabLabel:"會話 ({{count}})",refresh:"重新整理",sessionDetail:{...(d=e.settings.metricsDashboard)==null?void 0:d.sessionDetail,messages:"訊息",tokens:"Token"},granularity:{daily:"每日",weekly:"每週",monthly:"每月"},compactStats:{...(f=e.settings.metricsDashboard)==null?void 0:f.compactStats,combinedTokens:"合併 Token",chatTokens:"聊天 Token",forwardTokens:"Forward Token",avgTokensPerSession:"平均 Token/會話",estimatedTimeSaved:"預估節省時間",estimatedEfficiencyLift:"預估效率提升",estimatedSpeedMultiplier:"預估速度倍率",estimatedSavedWorkdays:"預估節省工作日",avgRoundsPerSession:"平均回合/會話",toolCallsPerSession:"工具呼叫/會話",activeSessionRate:"活躍會話率",avgTokensPerForward:"平均 Token/Forward",forwardErrorRate:"Forward 錯誤率",streamingRatio:"串流比率",p95ForwardLatency:"P95 Forward 延遲",modelCoverage:"模型覆蓋",endpointCoverage:"端點覆蓋"},derivedMetricsTitle:"衍生指標(摘要)",derivedMetricsSubtitle:"無需額外捲動即可查看更多維度"},charts:{...e.settings.charts,tokenUsageOverTime:"Token 使用趨勢",unifiedTokenUsageOverTime:"Token 使用趨勢(Chat + Forward)",noTokenUsage:"暫無 Token 使用資料",tokenUsageDescription:"按日期/週期展示 Prompt、Completion 與總 Tokens。",unifiedTokenUsageDescription:"按時間展示 Chat 與 Forward 的合併 Token 使用。",modelDistribution:"模型分布",noModelMetrics:"暫無模型指標資料",modelDistributionDescription:"按模型展示總 Token 消耗佔比。",endpointDistribution:"端點分布",noForwardMetrics:"目前範圍內暫無 Forward 指標資料。",total:"總計",prompt:"提示",completion:"補全",chat:"聊天",forward:"Forward"},providerTab:{...e.settings.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 修復、摘要等輕量任務的低成本/快速模型。未設定時使用預設模型。",subAgentModel:"Sub Agent 模型(可選)",subAgentModelHelp:"新建 Sub Agent 時預設使用的模型。未設定時使用快速模型,再回退到預設模型。",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 後,請點擊下方「我已完成授權」。",providerModelRef:"供應商模型目錄",providerModelRefHelp:"使用後端提供的模型目錄進行模型選擇。啟用後,模型選擇器將顯示供應商目錄中的可用模型,而非手動配置的模型。",catalogModeInfo:"模型來自供應商目錄。",fetchAllModels:"取得所有模型",fetchingAllModels:"正在取得模型...",fetchModelsSuccess:"成功取得 {{count}} 個供應商的模型",fetchModelsPartialSuccess:"已取得 {{success}}/{{total}} 個供應商的模型",providerNotConfigured:"未配置",capabilityVision:"視覺",capabilityTools:"工具",capabilityReasoning:"推理",refreshCatalog:"重新整理目錄",noCatalogModels:"未發現模型,點擊「取得所有模型」載入。"},mcpTab:{...e.settings.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:{...e.settings.mcpServerTable,columns:{name:"名稱",transportType:"傳輸類型",status:"狀態",toolCount:"工具數",actions:"操作"},transportOptions:{sse:"SSE",stdio:"Stdio"},deleteTitle:"刪除 MCP 伺服器",deleteDescription:"確認刪除伺服器「{{name}}」?",empty:"尚未配置 MCP 伺服器",actions:{edit:"編輯",delete:"刪除",disconnect:"斷開",connect:"連接",refreshTools:"重新整理工具"}},mcpServerForm:{...e.settings.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:"請求頭名稱不能為空"},mcpToolList:{...e.settings.mcpToolList,title:"MCP 工具",selectServerHint:"請選擇一個伺服器以查看其 MCP 工具",empty:"該伺服器沒有可用工具",noDescription:"暫無描述",aliasMapping:"別名對應",parametersSchema:"參數 Schema"},envVars:{...e.settings.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:"(空)"},hooksTab:{...e.settings.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)"}},modelTab:{...e.settings.modelTab,selectModelTitle:"選擇模型",loadingModels:"正在載入模型...",selectModelPlaceholder:"請選擇模型",backendApiBaseUrlTitle:"後端 API 基礎位址",resetToDefault:"恢復預設",save:"儲存",backendApiHint:"必須是包含 /v1 的完整基礎位址(例如 {{example}})。"},modelLimits:{...e.settings.modelLimits,title:"Token 預算模型限制",descriptionPrefix:"配置按模型劃分的 token 上限。這些設定會全域儲存到 Bamboo 的",descriptionSuffix:"並由後端解析器使用。",defaultsTitle:"模型預設值",defaultsDescription:"已預置 GPT-5 / GPT-4 / Gemini / Kimi / GLM 的上下文與輸出預設值,可按需繼續調整。",migratedFromLocalStorage:"已將本地儲存中的模型限制遷移到全域配置。",loadFailed:"載入模型限制設定失敗",saveSuccess:"模型限制已儲存到全域配置",saveFailed:"儲存模型限制設定失敗",resetSuccess:"模型限制已恢復為產品預設值",resetFailed:"重置模型限制設定失敗",columns:{...(v=e.settings.modelLimits)==null?void 0:v.columns,vendor:"廠商/系列",model:"模型",contextWindow:"上下文視窗",maxOutput:"最大輸出",notes:"備註",actions:"操作"},placeholders:{...(S=e.settings.modelLimits)==null?void 0:S.placeholders,vendor:"OpenAI / Google / Moonshot",model:"例如 gpt-5.4-thinking",optional:"可選"},actions:{...(y=e.settings.modelLimits)==null?void 0:y.actions,remove:"刪除",addRow:"新增行",save:"儲存",resetToDefaults:"恢復預設",reload:"重新載入"},validation:{...(b=e.settings.modelLimits)==null?void 0:b.validation,atLeastOneRow:"至少保留一條模型限制記錄。",modelPatternEmpty:"模型模式不能為空。",duplicateModelPattern:"模型模式重複:{{pattern}}",contextWindowMin:"{{pattern}} 的上下文視窗最小為 1000。",maxOutputMin:"{{pattern}} 的最大輸出最小為 1。",maxOutputExceedsContext:"{{pattern}} 的最大輸出必須小於或等於上下文視窗。",safetyMarginNegative:"{{pattern}} 的安全邊距不能為負數。",safetyMarginTooLarge:"{{pattern}} 的安全邊距必須小於上下文視窗。"}},modelMappingCard:{...e.settings.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:"取消"},systemPromptManager:{...e.settings.systemPromptManager,title:"系統提示詞管理",addButton:"新增提示詞",defaultPromptLocked:"預設系統提示詞已鎖定,無法編輯。",updateSuccess:"提示詞更新成功",addSuccess:"提示詞新增成功",saveError:"儲存提示詞失敗,請重試。",deleteSuccess:"提示詞刪除成功",deleteError:"刪除提示詞失敗,請重試。",deleteConfirm:"確認刪除此提示詞嗎?",defaultTag:"預設(鎖定)",editTitle:"編輯系統提示詞",addTitle:"新增系統提示詞",nameLabel:"提示詞名稱",nameRequired:"請輸入提示詞名稱!",descriptionLabel:"提示詞描述",descriptionRequired:"請輸入提示詞描述!",contentLabel:"提示詞內容",contentRequired:"請輸入提示詞內容!"},promptsTab:{...e.settings.promptsTab,title:"系統提示增強",mermaidEnhancement:"Mermaid 增強",taskListRules:"共享任務規則",copilotConclusionWithOptionsBeforeFinish:"Copilot 結束前 conclusion_with_options",switchOn:"開",switchOff:"關",enhancementPlaceholder:"為每次系統提示追加全域增強文本。",saveEnhancement:"儲存增強",description:"該文本會先追加,然後再拼接已啟用的系統增強,最後再發送請求。"},workflowsTab:{...e.settings.workflowsTab,title:"工作流程",description:"工作流程會以 Markdown 檔案儲存在 `~/.bamboo/workflows`。可在聊天中使用 `/name` 插入工作流程。",loadFailed:"載入工作流程失敗",loadContentFailed:"載入工作流程內容失敗",invalidName:"工作流程名稱不合法",nameAlreadyExists:"同名工作流程已存在",saved:"工作流程已儲存",saveFailed:"儲存工作流程失敗",deleted:"工作流程已刪除",deleteFailed:"刪除工作流程失敗",refresh:"重新整理",newWorkflow:"新增工作流程",save:"儲存",empty:"暫無工作流程",namePlaceholder:"工作流程名稱",contentPlaceholder:`# 工作流程標題
|
|
7
|
+
|
|
8
|
+
在這裡描述工作流程步驟。`},metricsCards:{...e.settings.metricsCards,totalSessions:"會話總數",chatTokens:"聊天 Token",totalToolCalls:"工具呼叫總數",avgSessionDuration:"平均會話時長"},forwardMetricsCards:{...e.settings.forwardMetricsCards,totalForwardRequests:"Forward 請求總數",successRate:"成功率",forwardTokens:"Forward Token",avgResponseTime:"平均回應時間"},unifiedMetricsCards:{...e.settings.unifiedMetricsCards,totalRequests:"請求總數",totalTokens:"Token 總數",successRate:"成功率",avgResponseTime:"平均回應時間",chatSessions:"聊天會話",chatTokens:"聊天 Token",toolCalls:"工具呼叫",avgSessionDuration:"平均會話時長",totalMemories:"記憶總數",staleCandidates:"陳舊候選項",memoryProjects:"記憶專案數",lastReindex:"上次重建索引",forwardRequests:"Forward 請求",forwardTokens:"Forward Token",successful:"成功",failed:"失敗"},metricsTable:{...e.settings.metricsTable,session:{...(C=e.settings.metricsTable)==null?void 0:C.session,columns:{...(P=(M=e.settings.metricsTable)==null?void 0:M.session)==null?void 0:P.columns,session:"會話",model:"模型",status:"狀態",started:"開始時間",duration:"耗時",tokens:"Token",toolCalls:"工具呼叫",messages:"訊息數",action:"操作"},view:"查看"},forward:{...(A=e.settings.metricsTable)==null?void 0:A.forward,columns:{...(T=(k=e.settings.metricsTable)==null?void 0:k.forward)==null?void 0:T.columns,id:"ID",endpoint:"端點",model:"模型",type:"類型",status:"狀態",tokens:"Token",duration:"耗時",started:"開始時間",error:"錯誤"},typeStream:"流式",typeSync:"同步",totalRequests:"{{total}} 條請求",empty:"目前範圍內暫無 forward 請求記錄"}},keywordMaskingTab:{...e.settings.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:{...(w=e.settings.keywordMaskingTab)==null?void 0:w.example,literalToken:"脫敏字面量 token",githubTokens:"脫敏 GitHub token",awsKeys:"脫敏 AWS Key",emails:"脫敏郵件位址"}}},components:{...e.components,markdown:{codeCopiedSuccess:"程式碼已複製到剪貼簿",copyFailed:"複製失敗"},jsonSchema:{...e.components.jsonSchema,field:"欄位",type:"類型",required:"必填",default:"預設",description:"描述"},tokenUsage:{...e.components.tokenUsage,messages:"訊息",tokens:"Token"},workflowResult:{...(R=e.components)==null?void 0:R.workflowResult,waitingForResult:"等待工作流程結果...",executionFailed:"工作流程執行失敗",retryWorkflow:"重試工作流程",copyParameters:"複製參數",copyResult:"複製結果"},toolResult:{...(F=e.components)==null?void 0:F.toolResult,waitingForResult:"等待結果...",executionFailed:"工具執行失敗",copyResult:"複製結果"},mermaid:{...(x=e.components)==null?void 0:x.mermaid,loadingDiagram:"正在載入圖表...",diagramError:"Mermaid 圖表錯誤",fixMermaid:"修復 Mermaid",exportSvg:"匯出 SVG",exportFailed:"匯出圖表失敗"},approval:{...(L=e.components)==null?void 0:L.approval,workflow:"工作流程"},todoList:{...e.components.todoList,llmEvaluation:"LLM 評估",tools:"個工具",dependsOn:"依賴:{{deps}}",dependencies:"項依賴"},toolSession:{...(E=e.components)==null?void 0:E.toolSession,title:"工具會話",running:"執行中",done:"完成",error:"錯誤",completedOnly:"{{completed}} 已完成",completedWithErrors:"{{completed}} 已完成(有錯誤)",completedProgress:"{{completed}} / {{total}} 已完成",noPersistedMessage:"無持久化輸出",deleteMessage:"刪除工具會話"}}}},le={"fr-FR":async()=>{const e=(await u("en-US")).translation;return{translation:g(ae(e),Q)}},"hi-IN":async()=>{const e=(await u("en-US")).translation;return{translation:g(re(e),$)}},"ja-JP":async()=>{const e=(await u("en-US")).translation;return{translation:se(e)}},"zh-TW":async()=>{const e=(await u("zh-CN")).translation;return{translation:ne(e)}}},de=new Set(["en-US","zh-CN"]),O=new Map,h=e=>{const t=O.get(e);if(t)return t;const s=(async()=>{if(de.has(e))return await u(e);const i=le[e];if(!i)throw new Error(`No i18n resource loader registered for locale: ${e}`);return i()})();return O.set(e,s),s},G=async e=>{if(r.hasResourceBundle(e,"translation"))return;const t=await h(e);r.addResourceBundle(e,"translation",t.translation,!0,!1)},n=te(),z=(async()=>{const e={};if(e[c]=await h(c),n!==c&&(e[n]=await h(n)),!r.isInitialized){r.use(K),await r.init({resources:e,lng:n,fallbackLng:c,supportedLngs:N,interpolation:{escapeValue:!1},react:{useSuspense:!1},returnNull:!1});return}await G(n),r.language!==n&&await r.changeLanguage(n)})(),ve=async e=>(await z,await G(e),r.changeLanguage(e)),W=document.getElementById("root");if(!W)throw new Error("Missing #root element for Bodhi app bootstrap");const j=B.createRoot(W),ce=e=>{const t=e instanceof Error?`${e.name}: ${e.message}`:String(e||"Unknown startup error");console.error("[Bodhi] Failed to bootstrap app:",e),j.render(l.jsx(U.StrictMode,{children:l.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:l.jsxs("div",{style:{maxWidth:720,textAlign:"left"},children:[l.jsx("h2",{style:{margin:"0 0 12px"},children:"Bodhi UI failed to start"}),l.jsx("p",{style:{margin:0,lineHeight:1.5,whiteSpace:"pre-wrap"},children:t})]})})}))},ue=async()=>{try{await z;const{default:e}=await m(async()=>{const{default:t}=await import("./App-bVqmFSlk.js").then(s=>s.aa);return{default:t}},__vite__mapDeps([0,1,2,3,4,5]),import.meta.url);j.render(l.jsx(U.StrictMode,{children:l.jsx(e,{})}))}catch(e){ce(e)}};ue();export{X as A,ve as a,fe as c,te as r};
|