@openchambery/web 1.19.13-beta.7 → 1.19.13-beta.9
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/{AgentAvatar-Bk-m9q6w.js → AgentAvatar-m1jNq4bX.js} +1 -1
- package/dist/assets/{AssistantView-DhV6GhFz.js → AssistantView-CBDDjjMR.js} +1 -1
- package/dist/assets/{DiagramView-DZc-OYOG.js → DiagramView-vme4USA5.js} +1 -1
- package/dist/assets/{MarkdownRenderer-Ck0GdWsh.js → MarkdownRenderer-yZjjvjP5.js} +2 -2
- package/dist/assets/{MarkdownRendererImpl-DVQVI5vx.js → MarkdownRendererImpl-DQTrsoC7.js} +1 -1
- package/dist/assets/{MarkstreamRendererImpl-BfNDXMOp.js → MarkstreamRendererImpl-Cf4ufcLU.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-DsDo9Wi_.js → MobileDetailNavigation-CWSZlARw.js} +1 -1
- package/dist/assets/{MobileShareBridge-71toeoY_.js → MobileShareBridge-RK-UX1Gp.js} +1 -1
- package/dist/assets/MobileSurface-CsSGKcXw.js +2 -0
- package/dist/assets/{MultiRunWindow-WmoZ6nx8.js → MultiRunWindow-IsGcpWbh.js} +1 -1
- package/dist/assets/{OnboardingScreen-Ql6mH4XV.js → OnboardingScreen-bIWeMLVx.js} +1 -1
- package/dist/assets/SettingsView-Dyz09wUL.js +25 -0
- package/dist/assets/{SettingsWindow-DC7meuIP.js → SettingsWindow-Bsk95ieL.js} +1 -1
- package/dist/assets/{TerminalView-D75fVyUc.js → TerminalView-DuAvbU4a.js} +1 -1
- package/dist/assets/{ToolOutputDialog-BkUqgPvz.js → ToolOutputDialog-DaWxdXgV.js} +1 -1
- package/dist/assets/{appThemeRegistry-BRuvElyv.js → appThemeRegistry-CoXLoSy2.js} +1 -1
- package/dist/assets/{clipboard-CzXos-TI.js → clipboard-GUUNlWIv.js} +1 -1
- package/dist/assets/{dialog-gtFLyacK.js → dialog-DhMGbF_B.js} +1 -1
- package/dist/assets/{es-BtC17YQH.js → es-BQb6I8gl.js} +1 -1
- package/dist/assets/{fileMentionTouchSelection-BHGsKCxs.js → fileMentionTouchSelection-Blwr6zeo.js} +1 -1
- package/dist/assets/{fr-DPohCCUO.js → fr-BjGouC_l.js} +1 -1
- package/dist/assets/{gitApi-CL2Myx_e.js → gitApi-ZsJLtXe_.js} +1 -1
- package/dist/assets/{insertionBoundaries-D7rBkplR.js → insertionBoundaries-DYao7L7I.js} +1 -1
- package/dist/assets/{ja-CflPxUNi.js → ja-Cw9zliYY.js} +1 -1
- package/dist/assets/{ko-CuSU80xd.js → ko-Dyz0Dk9b.js} +1 -1
- package/dist/assets/{main-DguaBQR-.js → main-J9ONSKnb.js} +21 -21
- package/dist/assets/{main-B4hVU-l2.js → main-xljv0NtB.js} +2 -2
- package/dist/assets/{miniChat-oSX3inOA.js → miniChat-4Z5Qw2CN.js} +2 -2
- package/dist/assets/{mobile-D4M85fxw.js → mobile-BgAbYJFM.js} +2 -2
- package/dist/assets/{multirun-DZJk1_Zk.js → multirun-DhMfc8JC.js} +1 -1
- package/dist/assets/{pl-eJvVbQ74.js → pl-C7EY-dTH.js} +1 -1
- package/dist/assets/{projectMeta-OucjgJJr.js → projectMeta-B69nzi1W.js} +1 -1
- package/dist/assets/{pt-BR-DSejAksY.js → pt-BR-B1uHpjFW.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-CCVDhPaw.js → renderElectronMiniChatApp-VEK1cEbA.js} +2 -2
- package/dist/assets/{renderMobileApp-BrtjHPwj.js → renderMobileApp-CFlML1KZ.js} +7 -7
- package/dist/assets/{runtimeConfig-CPYy2HWF.js → runtimeConfig-CSZ8-5Ft.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-OyMKgGCH.js → runtimeEndpointReset-JR1QnJ4F.js} +4 -4
- package/dist/assets/{sessionChangeSummary-DKJxz5er.js → sessionChangeSummary-BAzU2J1H.js} +1 -1
- package/dist/assets/{sessionLookup-Bzs-d6ek.js → sessionLookup-uPiPlYmx.js} +1 -1
- package/dist/assets/{sortable-tabs-strip-BSzFYDAO.js → sortable-tabs-strip-dYW6SH62.js} +1 -1
- package/dist/assets/{store-DHdMj3y4.js → store-ClnJdJSj.js} +2 -2
- package/dist/assets/{textarea-DE1UrdtK.js → textarea-B9CmN13Z.js} +1 -1
- package/dist/assets/{uk-DV9OgOAg.js → uk-DgG8v2md.js} +1 -1
- package/dist/assets/{useAppFontEffects-PwYVhdyQ.js → useAppFontEffects-TAUwcCLW.js} +43 -43
- package/dist/assets/useDesktopWindowControlsLayout-rfwTznN7.js +1 -0
- package/dist/assets/{useEffectiveDirectory-1LhqeRsH.js → useEffectiveDirectory-CIYv682Y.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-CNpuVBEn.js → useMobileNavigationStore-Dj7oxHMY.js} +4 -4
- package/dist/assets/useSessionAutoCleanup-vgvGNZd1.js +2 -0
- package/dist/assets/{useWorkerHighlightedLines-z7yMKbSr.js → useWorkerHighlightedLines-skoDPLMx.js} +1 -1
- package/dist/assets/{zh-CN-92n_rGTt.js → zh-CN-C6OFKjeT.js} +1 -1
- package/dist/assets/{zh-TW-CwVxwJCj.js → zh-TW-BVP99aMr.js} +1 -1
- package/dist/index.html +2 -2
- package/dist/mini-chat.html +2 -2
- package/dist/mobile.html +2 -2
- package/package.json +1 -1
- package/dist/assets/MobileSurface-DQ7ckeN6.js +0 -2
- package/dist/assets/SettingsView-B8DTddcL.js +0 -25
- package/dist/assets/useDesktopWindowControlsLayout-DbVLYP--.js +0 -1
- package/dist/assets/useSessionAutoCleanup-hiDGV_VZ.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e={"settings.globalConfig.title":`Configuración global`,"settings.globalConfig.description":`Edita los archivos de configuración activos en ~/.config/opencode.`,"settings.globalConfig.actions.reload":`Recargar archivo`,"settings.globalConfig.restartHint":`Reinicia OpenCode después de guardar para aplicar los cambios de configuración.`,"settings.globalConfig.toast.loadFailed":`No se pudo cargar el archivo de configuración`,"settings.globalConfig.toast.saveFailed":`No se pudo guardar el archivo de configuración`,"settings.globalConfig.toast.saved":`Configuración guardada. Reinicia OpenCode para aplicarla.`,"settings.providers.page.openCodeGo.title":`Seguimiento de uso de OpenCode Go`,"settings.providers.page.openCodeGo.description":`Conecta el panel de OpenCode Go para ver las cuotas móvil, semanal y mensual.`,"settings.providers.page.openCodeGo.workspaceId":`ID del espacio de trabajo`,"settings.providers.page.openCodeGo.authCookie":`Cookie de autenticación`,"settings.providers.page.openCodeGo.help":`Copia el ID desde la URL del panel y la cookie auth desde las herramientas del navegador. OpenChamber nunca examina las cookies del navegador.`,"settings.providers.page.openCodeGo.save":`Guardar y validar`,"settings.providers.page.openCodeGo.replace":`Reemplazar`,"settings.providers.page.openCodeGo.validate":`Validar`,"settings.providers.page.openCodeGo.delete":`Eliminar`,"settings.providers.page.quotaCredentials.saved":`Credenciales de {provider} guardadas.`,"settings.providers.page.openCodeGo.saveFailed":`No se pudieron validar las credenciales de OpenCode Go.`,"settings.providers.page.openCodeGo.valid":`Las credenciales de OpenCode Go son válidas.`,"settings.providers.page.openCodeGo.invalid":`Las credenciales de OpenCode Go no son válidas o han caducado.`,"settings.providers.page.openCodeGo.deleted":`Credenciales de OpenCode Go eliminadas.`,"settings.providers.page.openCodeGo.deleteFailed":`No se pudieron eliminar las credenciales de OpenCode Go.`,"settings.appearance.language.label":`Idioma`,"settings.appearance.language.description":`Elige el idioma de la interfaz.`,"settings.appearance.language.select":`Seleccionar idioma`,"settings.window.description":`Ventana de configuración de OpenChamber.`,"settings.view.home.title":`Configuración`,"settings.view.home.description":`Saltar a páginas comunes.`,"settings.view.home.cards.providers.title":`Proveedores`,"settings.view.home.cards.providers.description":`Conectar modelos + credenciales`,"settings.view.home.cards.agents.title":`Agentes`,"settings.view.home.cards.agents.description":`Prompts, herramientas, permisos`,"settings.view.home.cards.skillsCatalog.title":`Catálogo de habilidades`,"settings.view.home.cards.skillsCatalog.description":`Instalar habilidades desde catálogos`,"settings.view.home.cards.mcp.title":`MCP`,"settings.view.home.cards.mcp.description":`Configurar servidores + conexiones MCP`,"settings.view.home.cards.plugins.title":`Plugins`,"settings.view.home.cards.plugins.description":`Manage opencode plugins`,"settings.view.home.cards.usage.title":`Uso`,"settings.view.home.cards.usage.description":`Cuota + visibilidad del gasto`,"settings.view.unavailable.title":`No disponible`,"settings.view.unavailable.description":`Esta página de configuración no está disponible en este entorno de ejecución.`,"settings.view.badge.beta":`beta`,"settings.view.actions.reloadOpenCode":`Recargar OpenCode`,"settings.view.actions.reloadOpenCodeTooltip":`Restablecer OpenCode y recargar su configuración.`,"settings.view.actions.backToSettings":`Volver a Configuración`,"settings.view.actions.closeSettings":`Cerrar configuración`,"settings.view.actions.openSectionList":`Abrir lista de secciones`,"settings.view.actions.closeSettingsWithShortcut":`Cerrar configuración ({shortcut}+,)`,"settings.view.actions.back":`Atrás`,"settings.view.actions.resizeNavigation":`Ajustar tamaño de la navegación`,"settings.view.navigation.groups.connection":`Conexión`,"settings.view.navigation.groups.personalization":`Personalización`,"settings.view.navigation.groups.workspace":`Espacio de trabajo`,"settings.view.navigation.groups.opencode":`OpenCode`,"settings.view.navigation.groups.content":`Contenido y automatización`,"settings.view.navigation.groups.system":`Sistema`,"settings.view.search.placeholder":`Buscar configuración`,"settings.view.search.aria":`Buscar configuración`,"settings.view.search.clear":`Borrar búsqueda de configuración`,"settings.view.search.noResults":`No hay configuraciones coincidentes`,"settings.page.projects.title":`Proyectos`,"settings.page.remoteInstances.title":`Instancias remotas`,"settings.page.providers.title":`Proveedores`,"settings.page.usage.title":`Uso`,"settings.page.agents.title":`Agentes`,"settings.page.commands.title":`Comandos`,"settings.page.mcp.title":`MCP`,"settings.page.plugins.title":`Plugins`,"settings.page.skills.title":`Habilidades`,"settings.page.skillsCatalog.title":`Catálogo de habilidades`,"settings.page.git.title":`Git`,"settings.page.appearance.title":`Apariencia`,"settings.page.chat.title":`Chat`,"settings.page.shortcuts.title":`Atajos`,"settings.page.sessions.title":`Sesiones`,"settings.page.summaryAI.title":`Resúmenes de IA`,"settings.page.magicPrompts.title":`Prompts mágicos`,"settings.page.notifications.title":`Notificaciones`,"settings.page.voice.title":`Voz`,"settings.page.about.title":`Acerca de`,"settings.page.snippets.title":`Snippets`,"settings.snippets.sidebar.title":`Snippets`,"settings.snippets.sidebar.total":`Total: {count}`,"settings.snippets.sidebar.actions.create":`Crear snippet`,"settings.snippets.sidebar.actions.more":`Más acciones para {name}`,"settings.snippets.sidebar.toast.deleted":`Snippet eliminado`,"settings.snippets.sidebar.toast.deleteFailed":`No se pudo eliminar el snippet`,"settings.snippets.sidebar.dialog.deleteTitle":`¿Eliminar snippet?`,"settings.snippets.sidebar.dialog.deleteDescription":`Esto eliminará permanentemente #{name}.`,"settings.snippets.page.empty.title":`Selecciona un snippet`,"settings.snippets.page.empty.description":`Elige un snippet de la barra lateral para editarlo.`,"settings.snippets.page.title.new":`Nuevo snippet`,"settings.snippets.page.field.namePlaceholder":`snippet-name`,"settings.snippets.page.field.descriptionPlaceholder":`Qué hace este snippet`,"settings.snippets.page.field.aliases":`Alias`,"settings.snippets.page.field.aliasesPlaceholder":`safe, careful`,"settings.snippets.page.field.content":`Contenido`,"settings.snippets.page.field.contentPlaceholder":`Markdown del snippet...`,"settings.snippets.page.hint":`Usa #name en los prompts. Admite alias y bloques prepend/append compatibles con opencode-snippets.`,"settings.snippets.page.toast.nameRequired":`El nombre del snippet es obligatorio`,"settings.snippets.page.toast.contentRequired":`El contenido del snippet es obligatorio`,"settings.snippets.page.toast.saveFailed":`No se pudo guardar el snippet`,"settings.snippets.page.toast.saved":`Snippet guardado`,"settings.magicPrompts.sidebar.title":`Prompts mágicos`,"settings.magicPrompts.sidebar.description":`Selecciona una plantilla de prompt para editar.`,"settings.magicPrompts.sidebar.group.git":`Git`,"settings.magicPrompts.sidebar.group.github":`GitHub`,"settings.magicPrompts.sidebar.group.session":`Sesión`,"settings.magicPrompts.sidebar.item.gitCommitGenerate":`Generación de commit`,"settings.magicPrompts.sidebar.item.gitPrGenerate":`Generación de PR`,"settings.magicPrompts.sidebar.item.gitConflictResolve":`Resolución de conflicto de merge/rebase`,"settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve":`Resolución de conflicto de cherry-pick`,"settings.magicPrompts.sidebar.item.githubPrReview":`Revisión de PR`,"settings.magicPrompts.sidebar.item.githubIssueReview":`Revisión de issue`,"settings.magicPrompts.sidebar.item.githubPrFailedChecksReview":`Revisión de PR con comprobaciones fallidas`,"settings.magicPrompts.sidebar.item.githubPrCommentsReview":`Revisión de comentarios de PR`,"settings.magicPrompts.sidebar.item.githubSinglePrCommentReview":`Revisión de comentario único de PR`,"settings.magicPrompts.sidebar.item.sessionSummary":`Resumen de sesión`,"settings.magicPrompts.sidebar.item.sessionWorkspaceReview":`Revisión del espacio de trabajo`,"settings.magicPrompts.sidebar.item.sessionExplore":`Recorrido del código`,"settings.magicPrompts.sidebar.item.sessionCraftGoal":`Creación de Goal`,"settings.magicPrompts.page.group.sessionCraftGoal.title":`Creación de Goal`,"settings.magicPrompts.page.group.sessionCraftGoal.description":`Prompts usados por el comando /craft-goal: mensaje visible del usuario + instrucciones ocultas. Convierte una idea o tarea en un Goal claro y verificable mediante un diálogo guiado.`,"settings.magicPrompts.sidebar.item.sessionCatchUp":`Ponerse al día`,"settings.magicPrompts.sidebar.item.sessionDebug":`Depuración`,"settings.magicPrompts.sidebar.item.sessionWeigh":`Comparar enfoques`,"settings.magicPrompts.sidebar.item.sessionFusion":`Fusion`,"settings.remoteInstances.sidebar.title":`Instancias remotas`,"settings.remoteInstances.sidebar.description":`Conéctate a otros servidores de OpenChamber con un enlace de importación o SSH.`,"settings.remoteInstances.sidebar.empty":`Aún no hay instancias remotas. Importa un enlace o añade una conexión SSH.`,"settings.remoteInstances.channel.link":`Enlace`,"settings.remoteInstances.channel.ssh":`SSH`,"settings.remoteInstances.sidebar.total":`Total {count}`,"settings.remoteInstances.sidebar.newSshInstanceName":`Nueva conexión SSH`,"settings.remoteInstances.sidebar.actions.addSshInstance":`Añadir conexión SSH`,"settings.remoteInstances.sidebar.actions.connect":`Conectar`,"settings.remoteInstances.sidebar.actions.disconnect":`Desconectar`,"settings.remoteInstances.sidebar.actions.retry":`Reintentar`,"settings.remoteInstances.sidebar.actions.remove":`Eliminar`,"settings.remoteInstances.sidebar.confirm.localPortInUseRetry":`El puerto local ya está en uso. ¿Elegir un puerto libre aleatorio y reintentar?`,"settings.remoteInstances.sidebar.toast.createFailed":`No se pudo crear la conexión SSH`,"settings.remoteInstances.sidebar.toast.retriedWithRandomPort":`Reintentado con un puerto local aleatorio`,"settings.remoteInstances.sidebar.toast.connectFailed":`No se pudo conectar la instancia`,"settings.remoteInstances.sidebar.toast.disconnectFailed":`No se pudo desconectar la instancia`,"settings.remoteInstances.sidebar.toast.retryFailed":`No se pudo reintentar la conexión`,"settings.remoteInstances.sidebar.toast.removeFailed":`No se pudo eliminar la instancia`,"settings.remoteInstances.direct.sidebarTitle":`Enlaces a servidores`,"settings.remoteInstances.direct.sidebarDescription":`Conecta con un enlace de emparejamiento`,"settings.remoteInstances.direct.title":`Otros servidores de OpenChamber`,"settings.remoteInstances.direct.description":`Servidores a los que esta aplicación puede cambiar. Importa un enlace de conexión de otro servidor.`,"settings.remoteInstances.direct.import.description":`Pega un enlace de conexión de otro servidor de OpenChamber.`,"settings.remoteInstances.direct.import.placeholder":`openchamber://connect?...`,"settings.remoteInstances.direct.import.action":`Importar enlace`,"settings.remoteInstances.direct.error.invalidConnectLink":`Enlace de conexión de OpenChamber no válido.`,"settings.remoteInstances.direct.state.loading":`Cargando servidores...`,"settings.remoteInstances.direct.state.empty":`Todavía no se han importado otros servidores.`,"settings.remoteInstances.clientAuth.title":`Conectarse a este servidor`,"settings.remoteInstances.clientAuth.description":`Crea un enlace o token seguro para que OpenChamber Desktop pueda conectarse a este servidor.`,"settings.remoteInstances.clientAuth.field.labelPlaceholder":`Nombre de la instancia — p. ej. Mac de casa`,"settings.remoteInstances.clientAuth.field.labelHint":`El otro dispositivo mostrará este nombre para este servidor.`,"settings.remoteInstances.clientAuth.actions.create":`Crear token`,"settings.remoteInstances.clientAuth.actions.pair":`Crear enlace`,"settings.remoteInstances.clientAuth.actions.revoke":`Revocar`,"settings.remoteInstances.clientAuth.actions.clearRevoked":`Borrar revocados`,"settings.remoteInstances.clientAuth.qrAlt":`OpenChamber connection QR code`,"settings.remoteInstances.clientAuth.qrEnlarge":`Ampliar código QR`,"settings.remoteInstances.clientAuth.qrScanHint":`Escanéalo con la app de OpenChamber en tu otro dispositivo. Es de un solo uso y caduca.`,"settings.remoteInstances.clientAuth.qrDialogTitle":`Escanear para conectar`,"settings.remoteInstances.clientAuth.actions.addDevice":`Añadir un dispositivo`,"settings.remoteInstances.clientAuth.actions.copied":`Copiado`,"settings.remoteInstances.clientAuth.addDevice.transportLabel":`¿Dónde usarás este dispositivo?`,"settings.remoteInstances.clientAuth.addDevice.subtitle":`Crea un código QR de un solo uso que conecta otro dispositivo a este servidor.`,"settings.remoteInstances.clientAuth.addDevice.transport.local":`Solo este equipo`,"settings.remoteInstances.clientAuth.addDevice.transport.localHint":`Para aplicaciones en esta misma máquina.`,"settings.remoteInstances.clientAuth.addDevice.transport.lan":`Solo red doméstica`,"settings.remoteInstances.clientAuth.addDevice.transport.lanHint":`Se conecta directamente por tu Wi-Fi. No funciona fuera de esta red.`,"settings.remoteInstances.clientAuth.addDevice.transport.relay":`En cualquier lugar`,"settings.remoteInstances.clientAuth.addDevice.transport.relayHint":`Funciona en casa y fuera. Fuera de casa el tráfico pasa por OpenChamber Private Relay, un túnel cifrado de extremo a extremo. Sin configuración.`,"settings.remoteInstances.clientAuth.addDevice.fallback.relay":`Permitir también el relay cifrado fuera de casa`,"settings.remoteInstances.clientAuth.addDevice.fallback.preferLocal":`Preferir la conexión doméstica directa cuando esté disponible`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLabel":`Servidor Relay`,"settings.remoteInstances.clientAuth.addDevice.relayUrlHint":`Usa el Relay oficial de OpenChamber o introduce tu propio endpoint ws:// o wss://. El dispositivo guardará el endpoint incluido en el código QR.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlDeployLink":`Despliega tu propio Relay.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLockedHint":`Este servidor fija el endpoint Relay mediante OPENCHAMBER_RELAY_URL.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlRemoteHostHint":`Lo define el host conectado. El emparejamiento usa el endpoint Relay actual de ese host.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlCustomOption":`Endpoint personalizado…`,"settings.remoteInstances.clientAuth.addDevice.relayUrlInvalid":`Introduce un endpoint Relay válido que empiece por ws:// o wss://.`,"settings.remoteInstances.clientAuth.addDevice.create":`Crear código QR`,"settings.remoteInstances.clientAuth.addDevice.targetLabel":`Instancia de destino`,"settings.remoteInstances.clientAuth.addDevice.target.local":`Este escritorio`,"settings.remoteInstances.clientAuth.addDevice.target.sshEmpty":`No hay instancias SSH conectadas`,"settings.remoteInstances.clientAuth.addDevice.target.sshNotReady":`Conecta primero la instancia SSH`,"settings.remoteInstances.sidebar.actions.switchInstanceDisabled":`Conecta esta instancia SSH antes de cambiar`,"settings.remoteInstances.sidebar.actions.syncConfigDisabled":`Conecta esta instancia para sincronizar su configuración`,"settings.remoteInstances.sidebar.actions.syncConfig":`Sincronizar configuración`,"settings.remoteInstances.clientAuth.addDevice.done":`Listo`,"settings.remoteInstances.clientAuth.addDevice.connectedToast":`Dispositivo conectado.`,"settings.remoteInstances.clientAuth.pairingUrl":`Enlace de conexión`,"settings.remoteInstances.clientAuth.createdToken":`Copia este token ahora. Por seguridad, no se volverá a mostrar.`,"settings.remoteInstances.clientAuth.state.loading":`Cargando tokens...`,"settings.remoteInstances.clientAuth.state.empty":`Todavía no hay dispositivos conectados.`,"settings.remoteInstances.clientAuth.state.revoked":`Revocado`,"settings.remoteInstances.clientAuth.state.thisDevice":`Este dispositivo`,"settings.remoteInstances.clientAuth.state.pending":`Esperando conexión…`,"settings.remoteInstances.clientAuth.state.viaRelay":`Relay`,"settings.remoteInstances.clientAuth.state.connectedDirect":`Conectado · Red local`,"settings.remoteInstances.clientAuth.state.connectedRelay":`Conectado · Relay`,"settings.remoteInstances.clientAuth.lastUsed":`Último uso {date}`,"settings.remoteInstances.clientAuth.neverUsed":`Nunca usado`,"settings.remoteInstances.relay.title":`OpenChamber Relay`,"settings.remoteInstances.relay.autoHint":`Se activa automáticamente al vincular un dispositivo por relay.`,"settings.remoteInstances.relay.description":`Permite que tus otros dispositivos se conecten desde cualquier lugar sin abrir puertos. El tráfico está cifrado de extremo a extremo: el relay no puede leerlo.`,"settings.remoteInstances.relay.enableHint":`No se comparte nada hasta que actives el relay en este servidor.`,"settings.remoteInstances.relay.actions.enable":`Activar Relay`,"settings.remoteInstances.relay.actions.disable":`Desactivar`,"settings.remoteInstances.relay.confirm.disable":`¿Desactivar el relay? Los dispositivos conectados a través de él se desconectarán de inmediato.`,"settings.remoteInstances.relay.state.loading":`Comprobando el estado del relay...`,"settings.remoteInstances.relay.state.disabled":`Desactivado`,"settings.remoteInstances.relay.state.connecting":`Conectando`,"settings.remoteInstances.relay.state.connected":`Conectado`,"settings.remoteInstances.relay.state.reconnecting":`Reconectando`,"settings.remoteInstances.relay.state.error":`Error`,"settings.remoteInstances.relay.status.clientsOne":`{count} dispositivo conectado`,"settings.remoteInstances.relay.status.clientsMany":`{count} dispositivos conectados`,"settings.remoteInstances.relay.pair.title":`Emparejar un dispositivo`,"settings.remoteInstances.relay.pair.labelPlaceholder":`Nombre del dispositivo (opcional)`,"settings.remoteInstances.relay.pair.includeToken":`Incluir token de acceso (emparejamiento con un solo escaneo)`,"settings.remoteInstances.relay.pair.noTokenHint":`Sin token, el dispositivo inicia sesión con la contraseña de la interfaz de este servidor tras conectarse.`,"settings.remoteInstances.relay.pair.generate":`Crear enlace de emparejamiento`,"settings.remoteInstances.relay.pair.requiresConnected":`El emparejamiento estará disponible cuando el relay esté conectado.`,"settings.remoteInstances.relay.pair.linkLabel":`Enlace de emparejamiento`,"settings.remoteInstances.relay.pair.warning":`Este enlace concede acceso a este servidor. No lo compartas.`,"settings.remoteInstances.relay.pair.qrAlt":`Código QR de emparejamiento del relay`,"settings.remoteInstances.relay.pair.showQr":`Mostrar código QR`,"settings.remoteInstances.relay.pair.qrDialogTitle":`Escanear para emparejar`,"settings.remoteInstances.relay.pair.qrDialogDescription":`Escanea este código QR con la app de OpenChamber en tu otro dispositivo.`,"settings.remoteInstances.relay.pair.manageHint":`Gestiona o revoca los dispositivos emparejados en la lista «Conexión a este servidor» de arriba.`,"settings.remoteInstances.relay.toast.enableFailed":`No se pudo activar el relay`,"settings.remoteInstances.relay.toast.disableFailed":`No se pudo desactivar el relay`,"settings.remoteInstances.relay.toast.offerFailed":`No se pudo crear el enlace de emparejamiento`,"settings.remoteInstances.relay.toast.linkCopied":`Enlace de emparejamiento copiado`,"settings.remoteInstances.sidebar.phase.ready":`Listo`,"settings.remoteInstances.sidebar.phase.error":`Error`,"settings.remoteInstances.sidebar.phase.reconnect":`Reconectar`,"settings.remoteInstances.sidebar.phase.installing":`Instalando`,"settings.remoteInstances.sidebar.phase.updating":`Actualizando`,"settings.remoteInstances.sidebar.phase.forwarding":`Redirigiendo`,"settings.remoteInstances.sidebar.phase.starting":`Iniciando`,"settings.remoteInstances.sidebar.phase.connecting":`Conectando`,"settings.remoteInstances.sidebar.phase.idle":`Inactivo`,"settings.remoteInstances.page.section.instance":`Instancia`,"settings.remoteInstances.page.section.instanceDescription":`Choose the SSH command and a display name for this connection.`,"settings.remoteInstances.page.field.mode":`Modo`,"settings.remoteInstances.page.field.modeHint":`Elige si OpenChamber debe iniciar el servidor por ti o conectarse a uno que ya está en marcha.`,"settings.remoteInstances.page.field.modePlaceholder":`Seleccionar modo`,"settings.remoteInstances.page.field.modeManaged":`Iniciarlo por mí`,"settings.remoteInstances.page.field.modeExternal":`Ya está en marcha`,"settings.remoteInstances.page.field.preferredRemotePort":`Puerto remoto preferido`,"settings.remoteInstances.page.field.preferredRemotePortHint":`Port to use on the remote machine. Leave empty to choose one automatically.`,"settings.remoteInstances.page.field.keepServerRunning":`Mantener servidor en ejecución`,"settings.remoteInstances.page.field.keepServerRunningHint":`Keep OpenChamber running on the remote machine after you disconnect.`,"settings.remoteInstances.page.field.bindHost":`Host de enlace`,"settings.remoteInstances.page.field.bindHostHint":`Where the local connection should listen. Use 127.0.0.1 or localhost unless you need LAN access.`,"settings.remoteInstances.page.field.preferredLocalPort":`Puerto local preferido`,"settings.remoteInstances.page.field.preferredLocalPortHint":`Local port to open for this connection. Leave empty to choose one automatically.`,"settings.remoteInstances.page.field.forwardType":`Tipo de redirección`,"settings.remoteInstances.page.field.localListen":`Escucha local`,"settings.remoteInstances.page.field.localTarget":`Destino local`,"settings.remoteInstances.page.field.remoteListen":`Escucha remota`,"settings.remoteInstances.page.field.remoteTarget":`Destino remoto`,"settings.remoteInstances.page.field.localHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.remoteHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.auto":`Automático`,"settings.remoteInstances.page.confirm.bindAllInterfaces":`Vincular a 0.0.0.0 expone los puertos redirigidos a tu red local. ¿Continuar?`,"settings.remoteInstances.page.preview.localSocks5":`(local SOCKS5)`,"settings.remoteInstances.page.preview.local":`(local)`,"settings.remoteInstances.page.preview.remote":`(remoto)`,"settings.remoteInstances.page.toast.openLocalEndpointFailed":`No se pudo abrir la dirección local`,"settings.remoteInstances.page.toast.localUrlCopied":`URL local copiada`,"settings.remoteInstances.page.actions.copyLocalUrl":`Copiar URL local`,"settings.remoteInstances.page.actions.open":`Abrir`,"settings.remoteInstances.page.logsDialog.selectedInstanceFallback":`Instancia seleccionada`,"settings.remoteInstances.page.patternDialog.descriptionWithHost":`{host} requiere un destino concreto.`,"settings.remoteInstances.page.patternDialog.description":`Introduce destino.`,"settings.common.actions.cancel":`Cancelar`,"settings.common.actions.create":`Crear`,"settings.common.actions.delete":`Eliminar`,"settings.common.actions.reset":`Restablecer`,"settings.common.actions.rename":`Cambiar nombre`,"settings.common.actions.duplicate":`Duplicar`,"settings.common.actions.import":`Importar`,"settings.common.actions.copyAll":`Copiar todo`,"settings.common.actions.clear":`Limpiar`,"settings.common.actions.saving":`Guardando...`,"settings.common.actions.saveChanges":`Guardar cambios`,"settings.common.scope.global":`Global`,"settings.common.scope.project":`Proyecto`,"settings.common.field.description":`Descripción`,"settings.common.badge.new":`Nuevo`,"settings.common.badge.modified":`Modificado`,"settings.common.permission.allow":`Permitir`,"settings.common.permission.ask":`Preguntar`,"settings.common.permission.deny":`Denegar`,"settings.common.state.comingSoon":`Próximamente...`,"settings.projects.actions.title":`Acciones`,"settings.projects.actions.description":`Comandos por proyecto mostrados en el encabezado junto al nombre del proyecto.`,"settings.projects.actions.validation.fillNameAndCommand":`Completa el nombre de la acción y el comando antes de guardar.`,"settings.projects.actions.state.loading":`Cargando...`,"settings.projects.actions.state.empty":`No hay acciones configuradas aún.`,"settings.projects.actions.state.untitled":`Acción sin título`,"settings.projects.actions.state.noDesktopSshForwards":`No hay forwards SSH locales habilitados disponibles.`,"settings.projects.actions.field.selectIconAria":`Seleccionar icono`,"settings.projects.actions.field.iconAria":`Icono {icon}`,"settings.projects.actions.field.actionNamePlaceholder":`Nombre de la acción`,"settings.projects.actions.field.command":`Comando`,"settings.projects.actions.field.commandPlaceholder":`p. ej. bun run lint`,"settings.projects.actions.field.autoOpenUrl":`Abrir URL automáticamente`,"settings.projects.actions.field.autoOpenUrlForAria":`Abrir URL automáticamente para {title}`,"settings.projects.actions.field.autoOpenUrlDescription":`Abrir URL desde la salida o la URL personalizada de abajo`,"settings.projects.actions.field.overrideUrlPlaceholder":`URL de reemplazo (opcional)`,"settings.projects.actions.field.overrideUrlTooltip":`Si este campo está lleno, se usa la URL personalizada. Si está vacío, la aplicación abre la mejor URL de la salida.`,"settings.projects.actions.field.desktopSshForward":`Forward SSH de escritorio`,"settings.projects.actions.field.useOutputManualUrl":`Usar URL de salida/manual`,"settings.projects.actions.actions.add":`Añadir acción`,"settings.projects.actions.actions.save":`Guardar acciones`,"settings.projects.actions.toast.saveFailed":`No se pudieron guardar las acciones`,"settings.projects.actions.toast.saved":`Acciones del proyecto guardadas`,"settings.openchamber.about.title":`Acerca de OpenChamber`,"settings.openchamber.about.field.version":`Versión`,"settings.openchamber.about.field.clientVersion":`Cliente`,"settings.openchamber.about.field.webBundle":`Paquete web`,"settings.openchamber.about.field.instanceOpenChamberVersion":`OpenChamber`,"settings.openchamber.about.field.instanceOpenCodeVersion":`OpenCode`,"settings.openchamber.about.field.openCodeVersion":`Versión de OpenCode`,"settings.openchamber.about.state.checking":`Comprobando...`,"settings.openchamber.about.state.upToDate":`Actualizado`,"settings.openchamber.about.state.unknown":`desconocido`,"settings.openchamber.about.state.builtin":`integrado`,"settings.openchamber.about.actions.checkUpdates":`Comprobar actualizaciones`,"settings.openchamber.about.actions.update":`Actualizar`,"settings.openchamber.about.actions.updateToVersion":`Actualizar a {version}`,"settings.openchamber.about.actions.applyOtaToVersion":`Actualizar ahora a {version}`,"settings.openchamber.about.actions.installNativeToVersion":`Instalar {version}`,"settings.openchamber.about.actions.checkForUpdates":`Comprobar actualizaciones`,"settings.openchamber.about.actions.submitFeedback":`Enviar comentarios`,"settings.openchamber.about.toast.latestVersion":`Ya estás en la última versión`,"settings.openchamber.about.toast.checkFailed":`No se pudo comprobar actualizaciones`,"settings.openchamber.about.betaUpdates.label":`Unirse a las actualizaciones beta`,"settings.openchamber.about.betaUpdates.description":`Recibe antes las actualizaciones de la aplicación en este dispositivo.`,"settings.openchamber.about.betaUpdates.rollback.title":`¿Volver a la versión estable?`,"settings.openchamber.about.betaUpdates.rollback.description":`Estás usando una versión beta. Al desactivar las actualizaciones beta, OpenChamber volverá a la versión estable v{version}. Reinicia la aplicación para aplicar el cambio.`,"settings.openchamber.about.betaUpdates.rollback.actions.cancel":`Mantener beta`,"settings.openchamber.about.betaUpdates.rollback.actions.confirm":`Volver a estable`,"settings.openchamber.about.diagnostics.label":`Registro de diagnóstico`,"settings.openchamber.about.diagnostics.description":`Exporta los feat de diagnóstico locales para analizar problemas de visualización y sincronización. No incluye cuerpos de mensajes ni tokens.`,"settings.openchamber.about.diagnostics.export":`Exportar registro`,"settings.openchamber.about.diagnostics.exporting":`Exportando…`,"settings.openchamber.about.diagnostics.enable":`Registrar feat de diagnóstico`,"settings.openchamber.about.diagnostics.enableHint":`Disponible en versiones beta. Registra en este dispositivo el ciclo de sincronización y visualización de la sesión, sin el cuerpo del mensaje.`,"settings.openchamber.about.diagnostics.toast.exported":`Registro de diagnóstico exportado`,"settings.openchamber.about.diagnostics.toast.failed":`No se pudo exportar el registro de diagnóstico`,"settings.openchamber.about.diagnostics.toast.empty":`Registro de diagnóstico exportado. Aún no se registró ningún evento.`,"settings.agents.sidebar.title":`Agentes`,"settings.agents.sidebar.total":`Total {count}`,"settings.agents.sidebar.empty.title":`No hay agentes configurados`,"settings.agents.sidebar.empty.description":`Usa el botón + arriba para crear uno`,"settings.agents.sidebar.section.builtIn":`Agentes incorporados`,"settings.agents.sidebar.section.custom":`Agentes personalizados`,"settings.agents.sidebar.badge.system":`sistema`,"settings.agents.sidebar.dialog.deleteTitle":`Eliminar agente`,"settings.agents.sidebar.dialog.resetTitle":`Restablecer agente`,"settings.agents.sidebar.dialog.deleteDescription":`¿Seguro que quieres eliminar el agente "{name}"?`,"settings.agents.sidebar.dialog.resetDescription":`¿Seguro que quieres restablecer el agente "{name}" a su configuración predeterminada?`,"settings.agents.sidebar.renameDialog.title":`Cambiar nombre del agente`,"settings.agents.sidebar.renameDialog.description":`Introduce un nuevo nombre para el agente "@{name}"`,"settings.agents.sidebar.renameDialog.placeholder":`Nuevo nombre del agente...`,"settings.agents.sidebar.toast.builtInCannotDelete":`Los agentes incorporados no pueden eliminarse`,"settings.agents.sidebar.toast.agentDeleted":`Agente "{name}" eliminado correctamente`,"settings.agents.sidebar.toast.agentReset":`Agente "{name}" restablecido a la configuración predeterminada`,"settings.agents.sidebar.toast.deleteFailed":`No se pudo eliminar el agente`,"settings.agents.sidebar.toast.definitionNotFound":`No se encontró la definición del agente. No se cambió nada.`,"settings.agents.sidebar.toast.resetFailed":`No se pudo restablecer el agente`,"settings.agents.sidebar.toast.agentNameRequired":`Se requiere el nombre del agente`,"settings.agents.sidebar.toast.agentExists":`Ya existe un agente con este nombre`,"settings.agents.sidebar.toast.removeOldAfterRenameFailed":`No se pudo eliminar el antiguo agente después del cambio de nombre`,"settings.agents.sidebar.toast.renameFailed":`No se pudo cambiar el nombre del agente`,"settings.agents.sidebar.toast.agentRenamed":`Agente renombrado a "{name}"`,"settings.agents.page.toast.permissionNameRequired":`Se requiere el nombre del permiso`,"settings.agents.page.toast.created":`Agente creado correctamente`,"settings.agents.page.toast.updated":`Agente actualizado correctamente`,"settings.agents.page.toast.createFailed":`No se pudo crear el agente`,"settings.agents.page.toast.updateFailed":`No se pudo actualizar el agente`,"settings.agents.page.toast.saveUnexpectedError":`Ocurrió un error al guardar`,"settings.agents.page.toast.savedManualRestart":`Guardado en disco. Reinicia tu servidor OpenCode conectado para aplicar los cambios.`,"settings.agents.page.empty.title":`Selecciona un agente desde la barra lateral`,"settings.agents.page.empty.description":`o crea uno nuevo`,"settings.agents.page.title.new":`Nuevo agente`,"settings.agents.page.subtitle.new":`Configura una nueva asistente`,"settings.agents.page.subtitle.edit":`Editar configuración del agente`,"settings.agents.page.section.identityRole":`Identidad y rol`,"settings.agents.page.section.modelParameters":`Modelo y parámetros`,"settings.agents.page.section.systemPrompt":`Prompt del sistema`,"settings.agents.page.section.toolPermissions":`Permisos de herramientas`,"settings.agents.page.field.agentName":`Nombre del agente`,"settings.agents.page.field.agentNamePlaceholder":`nombre-agente`,"settings.agents.page.field.scopePlaceholder":`Ámbito`,"settings.agents.page.field.descriptionPlaceholder":`¿Qué hace este agente?`,"settings.agents.page.field.mode":`Modo`,"settings.agents.page.field.modeTooltip":`Visibilidad principal vs subagente`,"settings.agents.page.field.overrideModel":`Sobrescribir modelo`,"settings.agents.page.field.variant":`Variante de pensamiento`,"settings.agents.page.field.variantTooltip":`Opcional. Si el modelo admite razonamiento, la variante controla la profundidad del razonamiento.`,"settings.agents.page.field.variantHint":`Específico del modelo (p. ej. variante de Anthropic)`,"settings.agents.page.field.variantPlaceholder":`p. ej. high, max, low, none`,"settings.agents.page.field.temperature":`Temperatura`,"settings.agents.page.field.temperatureTooltip":`Controla la aleatoriedad. Mayor = más creativo, menor = más enfocado.`,"settings.agents.page.field.temperatureRange":`0.0 a 2.0`,"settings.agents.page.field.clearTemperatureAria":`Limpiar sobrescritura de temperatura`,"settings.agents.page.field.topP":`Top P`,"settings.agents.page.field.topPTooltip":`Diversidad de muestreo del núcleo. Más bajo = solo tokens más probables.`,"settings.agents.page.field.topPRange":`0.0 a 1.0`,"settings.agents.page.field.clearTopPAria":`Limpiar sobrescritura de top p`,"settings.agents.page.field.systemPromptPlaceholder":`Eres un asistente experto en programación...`,"settings.agents.page.mode.primary":`Primario`,"settings.agents.page.mode.subagent":`Subagente`,"settings.agents.page.mode.all":`Todos`,"settings.agents.page.permissions.defaultLabel":`Predeterminado`,"settings.agents.page.permissions.hideEditor":`Ocultar editor`,"settings.agents.page.permissions.advancedEditor":`Editor avanzado`,"settings.agents.page.permissions.globalSummary":`Global: {summary}`,"settings.agents.page.permissions.rulesSummary":`Reglas: {summary}`,"settings.agents.page.permissions.globalDefault":`Predeterminado global`,"settings.agents.page.permissions.pattern":`Patrón`,"settings.agents.page.permissions.addCustomRule":`Añadir regla personalizada`,"settings.agents.page.permissions.permissionPlaceholder":`Permiso...`,"settings.agents.page.permissions.patternPlaceholder":`Patrón (ej. *)`,"settings.page.behavior.title":`Comportamiento`,"settings.behavior.page.title":`Comportamiento`,"settings.behavior.page.warning.title":`Las reglas globales se combinan con las reglas del proyecto`,"settings.behavior.page.warning.description":`Los cambios realizados aquí actualizan {path}. OpenCode también incluye cualquier AGENTS.md a nivel de proyecto cuando existe.`,"settings.behavior.page.section.systemPrompt":`AGENTS.md global`,"settings.behavior.page.field.systemPromptPlaceholder":`Eres un asistente de IA útil...
|
|
1
|
+
var e={"settings.globalConfig.title":`Configuración global`,"settings.globalConfig.description":`Edita los archivos de configuración activos en ~/.config/opencode.`,"settings.globalConfig.actions.reload":`Recargar archivo`,"settings.globalConfig.restartHint":`Reinicia OpenCode después de guardar para aplicar los cambios de configuración.`,"settings.globalConfig.toast.loadFailed":`No se pudo cargar el archivo de configuración`,"settings.globalConfig.toast.saveFailed":`No se pudo guardar el archivo de configuración`,"settings.globalConfig.toast.saved":`Configuración guardada. Reinicia OpenCode para aplicarla.`,"settings.providers.page.openCodeGo.title":`Seguimiento de uso de OpenCode Go`,"settings.providers.page.openCodeGo.description":`Conecta el panel de OpenCode Go para ver las cuotas móvil, semanal y mensual.`,"settings.providers.page.openCodeGo.workspaceId":`ID del espacio de trabajo`,"settings.providers.page.openCodeGo.authCookie":`Cookie de autenticación`,"settings.providers.page.openCodeGo.help":`Copia el ID desde la URL del panel y la cookie auth desde las herramientas del navegador. OpenChamber nunca examina las cookies del navegador.`,"settings.providers.page.openCodeGo.save":`Guardar y validar`,"settings.providers.page.openCodeGo.replace":`Reemplazar`,"settings.providers.page.openCodeGo.validate":`Validar`,"settings.providers.page.openCodeGo.delete":`Eliminar`,"settings.providers.page.quotaCredentials.saved":`Credenciales de {provider} guardadas.`,"settings.providers.page.openCodeGo.saveFailed":`No se pudieron validar las credenciales de OpenCode Go.`,"settings.providers.page.openCodeGo.valid":`Las credenciales de OpenCode Go son válidas.`,"settings.providers.page.openCodeGo.invalid":`Las credenciales de OpenCode Go no son válidas o han caducado.`,"settings.providers.page.openCodeGo.deleted":`Credenciales de OpenCode Go eliminadas.`,"settings.providers.page.openCodeGo.deleteFailed":`No se pudieron eliminar las credenciales de OpenCode Go.`,"settings.appearance.language.label":`Idioma`,"settings.appearance.language.description":`Elige el idioma de la interfaz.`,"settings.appearance.language.select":`Seleccionar idioma`,"settings.window.description":`Ventana de configuración de OpenChamber.`,"settings.view.home.title":`Configuración`,"settings.view.home.description":`Saltar a páginas comunes.`,"settings.view.home.cards.providers.title":`Proveedores`,"settings.view.home.cards.providers.description":`Conectar modelos + credenciales`,"settings.view.home.cards.agents.title":`Agentes`,"settings.view.home.cards.agents.description":`Prompts, herramientas, permisos`,"settings.view.home.cards.skillsCatalog.title":`Catálogo de habilidades`,"settings.view.home.cards.skillsCatalog.description":`Instalar habilidades desde catálogos`,"settings.view.home.cards.mcp.title":`MCP`,"settings.view.home.cards.mcp.description":`Configurar servidores + conexiones MCP`,"settings.view.home.cards.plugins.title":`Plugins`,"settings.view.home.cards.plugins.description":`Manage opencode plugins`,"settings.view.home.cards.usage.title":`Uso`,"settings.view.home.cards.usage.description":`Cuota + visibilidad del gasto`,"settings.view.unavailable.title":`No disponible`,"settings.view.unavailable.description":`Esta página de configuración no está disponible en este entorno de ejecución.`,"settings.view.badge.beta":`beta`,"settings.view.actions.reloadOpenCode":`Recargar OpenCode`,"settings.view.actions.reloadOpenCodeTooltip":`Restablecer OpenCode y recargar su configuración.`,"settings.view.actions.backToSettings":`Volver a Configuración`,"settings.view.actions.closeSettings":`Cerrar configuración`,"settings.view.actions.openSectionList":`Abrir lista de secciones`,"settings.view.actions.closeSettingsWithShortcut":`Cerrar configuración ({shortcut}+,)`,"settings.view.actions.back":`Atrás`,"settings.view.actions.resizeNavigation":`Ajustar tamaño de la navegación`,"settings.view.navigation.groups.connection":`Conexión`,"settings.view.navigation.groups.personalization":`Personalización`,"settings.view.navigation.groups.workspace":`Espacio de trabajo`,"settings.view.navigation.groups.opencode":`OpenCode`,"settings.view.navigation.groups.content":`Contenido y automatización`,"settings.view.navigation.groups.system":`Sistema`,"settings.view.search.placeholder":`Buscar configuración`,"settings.view.search.aria":`Buscar configuración`,"settings.view.search.clear":`Borrar búsqueda de configuración`,"settings.view.search.noResults":`No hay configuraciones coincidentes`,"settings.page.projects.title":`Proyectos`,"settings.page.remoteInstances.title":`Instancias remotas`,"settings.page.providers.title":`Proveedores`,"settings.page.usage.title":`Uso`,"settings.page.agents.title":`Agentes`,"settings.page.commands.title":`Comandos`,"settings.page.mcp.title":`MCP`,"settings.page.plugins.title":`Plugins`,"settings.page.skills.title":`Habilidades`,"settings.page.skillsCatalog.title":`Catálogo de habilidades`,"settings.page.git.title":`Git`,"settings.page.appearance.title":`Apariencia`,"settings.page.chat.title":`Chat`,"settings.page.shortcuts.title":`Atajos`,"settings.page.sessions.title":`Sesiones`,"settings.page.archivedSessions.title":`Sesiones archivadas`,"settings.page.summaryAI.title":`Resúmenes de IA`,"settings.page.magicPrompts.title":`Prompts mágicos`,"settings.page.notifications.title":`Notificaciones`,"settings.page.voice.title":`Voz`,"settings.page.about.title":`Acerca de`,"settings.page.snippets.title":`Snippets`,"settings.snippets.sidebar.title":`Snippets`,"settings.snippets.sidebar.total":`Total: {count}`,"settings.snippets.sidebar.actions.create":`Crear snippet`,"settings.snippets.sidebar.actions.more":`Más acciones para {name}`,"settings.snippets.sidebar.toast.deleted":`Snippet eliminado`,"settings.snippets.sidebar.toast.deleteFailed":`No se pudo eliminar el snippet`,"settings.snippets.sidebar.dialog.deleteTitle":`¿Eliminar snippet?`,"settings.snippets.sidebar.dialog.deleteDescription":`Esto eliminará permanentemente #{name}.`,"settings.snippets.page.empty.title":`Selecciona un snippet`,"settings.snippets.page.empty.description":`Elige un snippet de la barra lateral para editarlo.`,"settings.snippets.page.title.new":`Nuevo snippet`,"settings.snippets.page.field.namePlaceholder":`snippet-name`,"settings.snippets.page.field.descriptionPlaceholder":`Qué hace este snippet`,"settings.snippets.page.field.aliases":`Alias`,"settings.snippets.page.field.aliasesPlaceholder":`safe, careful`,"settings.snippets.page.field.content":`Contenido`,"settings.snippets.page.field.contentPlaceholder":`Markdown del snippet...`,"settings.snippets.page.hint":`Usa #name en los prompts. Admite alias y bloques prepend/append compatibles con opencode-snippets.`,"settings.snippets.page.toast.nameRequired":`El nombre del snippet es obligatorio`,"settings.snippets.page.toast.contentRequired":`El contenido del snippet es obligatorio`,"settings.snippets.page.toast.saveFailed":`No se pudo guardar el snippet`,"settings.snippets.page.toast.saved":`Snippet guardado`,"settings.magicPrompts.sidebar.title":`Prompts mágicos`,"settings.magicPrompts.sidebar.description":`Selecciona una plantilla de prompt para editar.`,"settings.magicPrompts.sidebar.group.git":`Git`,"settings.magicPrompts.sidebar.group.github":`GitHub`,"settings.magicPrompts.sidebar.group.session":`Sesión`,"settings.magicPrompts.sidebar.item.gitCommitGenerate":`Generación de commit`,"settings.magicPrompts.sidebar.item.gitPrGenerate":`Generación de PR`,"settings.magicPrompts.sidebar.item.gitConflictResolve":`Resolución de conflicto de merge/rebase`,"settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve":`Resolución de conflicto de cherry-pick`,"settings.magicPrompts.sidebar.item.githubPrReview":`Revisión de PR`,"settings.magicPrompts.sidebar.item.githubIssueReview":`Revisión de issue`,"settings.magicPrompts.sidebar.item.githubPrFailedChecksReview":`Revisión de PR con comprobaciones fallidas`,"settings.magicPrompts.sidebar.item.githubPrCommentsReview":`Revisión de comentarios de PR`,"settings.magicPrompts.sidebar.item.githubSinglePrCommentReview":`Revisión de comentario único de PR`,"settings.magicPrompts.sidebar.item.sessionSummary":`Resumen de sesión`,"settings.magicPrompts.sidebar.item.sessionWorkspaceReview":`Revisión del espacio de trabajo`,"settings.magicPrompts.sidebar.item.sessionExplore":`Recorrido del código`,"settings.magicPrompts.sidebar.item.sessionCraftGoal":`Creación de Goal`,"settings.magicPrompts.page.group.sessionCraftGoal.title":`Creación de Goal`,"settings.magicPrompts.page.group.sessionCraftGoal.description":`Prompts usados por el comando /craft-goal: mensaje visible del usuario + instrucciones ocultas. Convierte una idea o tarea en un Goal claro y verificable mediante un diálogo guiado.`,"settings.magicPrompts.sidebar.item.sessionCatchUp":`Ponerse al día`,"settings.magicPrompts.sidebar.item.sessionDebug":`Depuración`,"settings.magicPrompts.sidebar.item.sessionWeigh":`Comparar enfoques`,"settings.magicPrompts.sidebar.item.sessionFusion":`Fusion`,"settings.remoteInstances.sidebar.title":`Instancias remotas`,"settings.remoteInstances.sidebar.description":`Conéctate a otros servidores de OpenChamber con un enlace de importación o SSH.`,"settings.remoteInstances.sidebar.empty":`Aún no hay instancias remotas. Importa un enlace o añade una conexión SSH.`,"settings.remoteInstances.channel.link":`Enlace`,"settings.remoteInstances.channel.ssh":`SSH`,"settings.remoteInstances.sidebar.total":`Total {count}`,"settings.remoteInstances.sidebar.newSshInstanceName":`Nueva conexión SSH`,"settings.remoteInstances.sidebar.actions.addSshInstance":`Añadir conexión SSH`,"settings.remoteInstances.sidebar.actions.connect":`Conectar`,"settings.remoteInstances.sidebar.actions.disconnect":`Desconectar`,"settings.remoteInstances.sidebar.actions.retry":`Reintentar`,"settings.remoteInstances.sidebar.actions.remove":`Eliminar`,"settings.remoteInstances.sidebar.confirm.localPortInUseRetry":`El puerto local ya está en uso. ¿Elegir un puerto libre aleatorio y reintentar?`,"settings.remoteInstances.sidebar.toast.createFailed":`No se pudo crear la conexión SSH`,"settings.remoteInstances.sidebar.toast.retriedWithRandomPort":`Reintentado con un puerto local aleatorio`,"settings.remoteInstances.sidebar.toast.connectFailed":`No se pudo conectar la instancia`,"settings.remoteInstances.sidebar.toast.disconnectFailed":`No se pudo desconectar la instancia`,"settings.remoteInstances.sidebar.toast.retryFailed":`No se pudo reintentar la conexión`,"settings.remoteInstances.sidebar.toast.removeFailed":`No se pudo eliminar la instancia`,"settings.remoteInstances.direct.sidebarTitle":`Enlaces a servidores`,"settings.remoteInstances.direct.sidebarDescription":`Conecta con un enlace de emparejamiento`,"settings.remoteInstances.direct.title":`Otros servidores de OpenChamber`,"settings.remoteInstances.direct.description":`Servidores a los que esta aplicación puede cambiar. Importa un enlace de conexión de otro servidor.`,"settings.remoteInstances.direct.import.description":`Pega un enlace de conexión de otro servidor de OpenChamber.`,"settings.remoteInstances.direct.import.placeholder":`openchamber://connect?...`,"settings.remoteInstances.direct.import.action":`Importar enlace`,"settings.remoteInstances.direct.error.invalidConnectLink":`Enlace de conexión de OpenChamber no válido.`,"settings.remoteInstances.direct.state.loading":`Cargando servidores...`,"settings.remoteInstances.direct.state.empty":`Todavía no se han importado otros servidores.`,"settings.remoteInstances.clientAuth.title":`Conectarse a este servidor`,"settings.remoteInstances.clientAuth.description":`Crea un enlace o token seguro para que OpenChamber Desktop pueda conectarse a este servidor.`,"settings.remoteInstances.clientAuth.field.labelPlaceholder":`Nombre de la instancia — p. ej. Mac de casa`,"settings.remoteInstances.clientAuth.field.labelHint":`El otro dispositivo mostrará este nombre para este servidor.`,"settings.remoteInstances.clientAuth.actions.create":`Crear token`,"settings.remoteInstances.clientAuth.actions.pair":`Crear enlace`,"settings.remoteInstances.clientAuth.actions.revoke":`Revocar`,"settings.remoteInstances.clientAuth.actions.clearRevoked":`Borrar revocados`,"settings.remoteInstances.clientAuth.qrAlt":`OpenChamber connection QR code`,"settings.remoteInstances.clientAuth.qrEnlarge":`Ampliar código QR`,"settings.remoteInstances.clientAuth.qrScanHint":`Escanéalo con la app de OpenChamber en tu otro dispositivo. Es de un solo uso y caduca.`,"settings.remoteInstances.clientAuth.qrDialogTitle":`Escanear para conectar`,"settings.remoteInstances.clientAuth.actions.addDevice":`Añadir un dispositivo`,"settings.remoteInstances.clientAuth.actions.copied":`Copiado`,"settings.remoteInstances.clientAuth.addDevice.transportLabel":`¿Dónde usarás este dispositivo?`,"settings.remoteInstances.clientAuth.addDevice.subtitle":`Crea un código QR de un solo uso que conecta otro dispositivo a este servidor.`,"settings.remoteInstances.clientAuth.addDevice.transport.local":`Solo este equipo`,"settings.remoteInstances.clientAuth.addDevice.transport.localHint":`Para aplicaciones en esta misma máquina.`,"settings.remoteInstances.clientAuth.addDevice.transport.lan":`Solo red doméstica`,"settings.remoteInstances.clientAuth.addDevice.transport.lanHint":`Se conecta directamente por tu Wi-Fi. No funciona fuera de esta red.`,"settings.remoteInstances.clientAuth.addDevice.transport.relay":`En cualquier lugar`,"settings.remoteInstances.clientAuth.addDevice.transport.relayHint":`Funciona en casa y fuera. Fuera de casa el tráfico pasa por OpenChamber Private Relay, un túnel cifrado de extremo a extremo. Sin configuración.`,"settings.remoteInstances.clientAuth.addDevice.fallback.relay":`Permitir también el relay cifrado fuera de casa`,"settings.remoteInstances.clientAuth.addDevice.fallback.preferLocal":`Preferir la conexión doméstica directa cuando esté disponible`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLabel":`Servidor Relay`,"settings.remoteInstances.clientAuth.addDevice.relayUrlHint":`Usa el Relay oficial de OpenChamber o introduce tu propio endpoint ws:// o wss://. El dispositivo guardará el endpoint incluido en el código QR.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlDeployLink":`Despliega tu propio Relay.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLockedHint":`Este servidor fija el endpoint Relay mediante OPENCHAMBER_RELAY_URL.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlRemoteHostHint":`Lo define el host conectado. El emparejamiento usa el endpoint Relay actual de ese host.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlCustomOption":`Endpoint personalizado…`,"settings.remoteInstances.clientAuth.addDevice.relayUrlInvalid":`Introduce un endpoint Relay válido que empiece por ws:// o wss://.`,"settings.remoteInstances.clientAuth.addDevice.create":`Crear código QR`,"settings.remoteInstances.clientAuth.addDevice.targetLabel":`Instancia de destino`,"settings.remoteInstances.clientAuth.addDevice.target.local":`Este escritorio`,"settings.remoteInstances.clientAuth.addDevice.target.sshEmpty":`No hay instancias SSH conectadas`,"settings.remoteInstances.clientAuth.addDevice.target.sshNotReady":`Conecta primero la instancia SSH`,"settings.remoteInstances.sidebar.actions.switchInstanceDisabled":`Conecta esta instancia SSH antes de cambiar`,"settings.remoteInstances.sidebar.actions.syncConfigDisabled":`Conecta esta instancia para sincronizar su configuración`,"settings.remoteInstances.sidebar.actions.syncConfig":`Sincronizar configuración`,"settings.remoteInstances.clientAuth.addDevice.done":`Listo`,"settings.remoteInstances.clientAuth.addDevice.connectedToast":`Dispositivo conectado.`,"settings.remoteInstances.clientAuth.pairingUrl":`Enlace de conexión`,"settings.remoteInstances.clientAuth.createdToken":`Copia este token ahora. Por seguridad, no se volverá a mostrar.`,"settings.remoteInstances.clientAuth.state.loading":`Cargando tokens...`,"settings.remoteInstances.clientAuth.state.empty":`Todavía no hay dispositivos conectados.`,"settings.remoteInstances.clientAuth.state.revoked":`Revocado`,"settings.remoteInstances.clientAuth.state.thisDevice":`Este dispositivo`,"settings.remoteInstances.clientAuth.state.pending":`Esperando conexión…`,"settings.remoteInstances.clientAuth.state.viaRelay":`Relay`,"settings.remoteInstances.clientAuth.state.connectedDirect":`Conectado · Red local`,"settings.remoteInstances.clientAuth.state.connectedRelay":`Conectado · Relay`,"settings.remoteInstances.clientAuth.lastUsed":`Último uso {date}`,"settings.remoteInstances.clientAuth.neverUsed":`Nunca usado`,"settings.remoteInstances.relay.title":`OpenChamber Relay`,"settings.remoteInstances.relay.autoHint":`Se activa automáticamente al vincular un dispositivo por relay.`,"settings.remoteInstances.relay.description":`Permite que tus otros dispositivos se conecten desde cualquier lugar sin abrir puertos. El tráfico está cifrado de extremo a extremo: el relay no puede leerlo.`,"settings.remoteInstances.relay.enableHint":`No se comparte nada hasta que actives el relay en este servidor.`,"settings.remoteInstances.relay.actions.enable":`Activar Relay`,"settings.remoteInstances.relay.actions.disable":`Desactivar`,"settings.remoteInstances.relay.confirm.disable":`¿Desactivar el relay? Los dispositivos conectados a través de él se desconectarán de inmediato.`,"settings.remoteInstances.relay.state.loading":`Comprobando el estado del relay...`,"settings.remoteInstances.relay.state.disabled":`Desactivado`,"settings.remoteInstances.relay.state.connecting":`Conectando`,"settings.remoteInstances.relay.state.connected":`Conectado`,"settings.remoteInstances.relay.state.reconnecting":`Reconectando`,"settings.remoteInstances.relay.state.error":`Error`,"settings.remoteInstances.relay.status.clientsOne":`{count} dispositivo conectado`,"settings.remoteInstances.relay.status.clientsMany":`{count} dispositivos conectados`,"settings.remoteInstances.relay.pair.title":`Emparejar un dispositivo`,"settings.remoteInstances.relay.pair.labelPlaceholder":`Nombre del dispositivo (opcional)`,"settings.remoteInstances.relay.pair.includeToken":`Incluir token de acceso (emparejamiento con un solo escaneo)`,"settings.remoteInstances.relay.pair.noTokenHint":`Sin token, el dispositivo inicia sesión con la contraseña de la interfaz de este servidor tras conectarse.`,"settings.remoteInstances.relay.pair.generate":`Crear enlace de emparejamiento`,"settings.remoteInstances.relay.pair.requiresConnected":`El emparejamiento estará disponible cuando el relay esté conectado.`,"settings.remoteInstances.relay.pair.linkLabel":`Enlace de emparejamiento`,"settings.remoteInstances.relay.pair.warning":`Este enlace concede acceso a este servidor. No lo compartas.`,"settings.remoteInstances.relay.pair.qrAlt":`Código QR de emparejamiento del relay`,"settings.remoteInstances.relay.pair.showQr":`Mostrar código QR`,"settings.remoteInstances.relay.pair.qrDialogTitle":`Escanear para emparejar`,"settings.remoteInstances.relay.pair.qrDialogDescription":`Escanea este código QR con la app de OpenChamber en tu otro dispositivo.`,"settings.remoteInstances.relay.pair.manageHint":`Gestiona o revoca los dispositivos emparejados en la lista «Conexión a este servidor» de arriba.`,"settings.remoteInstances.relay.toast.enableFailed":`No se pudo activar el relay`,"settings.remoteInstances.relay.toast.disableFailed":`No se pudo desactivar el relay`,"settings.remoteInstances.relay.toast.offerFailed":`No se pudo crear el enlace de emparejamiento`,"settings.remoteInstances.relay.toast.linkCopied":`Enlace de emparejamiento copiado`,"settings.remoteInstances.sidebar.phase.ready":`Listo`,"settings.remoteInstances.sidebar.phase.error":`Error`,"settings.remoteInstances.sidebar.phase.reconnect":`Reconectar`,"settings.remoteInstances.sidebar.phase.installing":`Instalando`,"settings.remoteInstances.sidebar.phase.updating":`Actualizando`,"settings.remoteInstances.sidebar.phase.forwarding":`Redirigiendo`,"settings.remoteInstances.sidebar.phase.starting":`Iniciando`,"settings.remoteInstances.sidebar.phase.connecting":`Conectando`,"settings.remoteInstances.sidebar.phase.idle":`Inactivo`,"settings.remoteInstances.page.section.instance":`Instancia`,"settings.remoteInstances.page.section.instanceDescription":`Choose the SSH command and a display name for this connection.`,"settings.remoteInstances.page.field.mode":`Modo`,"settings.remoteInstances.page.field.modeHint":`Elige si OpenChamber debe iniciar el servidor por ti o conectarse a uno que ya está en marcha.`,"settings.remoteInstances.page.field.modePlaceholder":`Seleccionar modo`,"settings.remoteInstances.page.field.modeManaged":`Iniciarlo por mí`,"settings.remoteInstances.page.field.modeExternal":`Ya está en marcha`,"settings.remoteInstances.page.field.preferredRemotePort":`Puerto remoto preferido`,"settings.remoteInstances.page.field.preferredRemotePortHint":`Port to use on the remote machine. Leave empty to choose one automatically.`,"settings.remoteInstances.page.field.keepServerRunning":`Mantener servidor en ejecución`,"settings.remoteInstances.page.field.keepServerRunningHint":`Keep OpenChamber running on the remote machine after you disconnect.`,"settings.remoteInstances.page.field.bindHost":`Host de enlace`,"settings.remoteInstances.page.field.bindHostHint":`Where the local connection should listen. Use 127.0.0.1 or localhost unless you need LAN access.`,"settings.remoteInstances.page.field.preferredLocalPort":`Puerto local preferido`,"settings.remoteInstances.page.field.preferredLocalPortHint":`Local port to open for this connection. Leave empty to choose one automatically.`,"settings.remoteInstances.page.field.forwardType":`Tipo de redirección`,"settings.remoteInstances.page.field.localListen":`Escucha local`,"settings.remoteInstances.page.field.localTarget":`Destino local`,"settings.remoteInstances.page.field.remoteListen":`Escucha remota`,"settings.remoteInstances.page.field.remoteTarget":`Destino remoto`,"settings.remoteInstances.page.field.localHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.remoteHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.auto":`Automático`,"settings.remoteInstances.page.confirm.bindAllInterfaces":`Vincular a 0.0.0.0 expone los puertos redirigidos a tu red local. ¿Continuar?`,"settings.remoteInstances.page.preview.localSocks5":`(local SOCKS5)`,"settings.remoteInstances.page.preview.local":`(local)`,"settings.remoteInstances.page.preview.remote":`(remoto)`,"settings.remoteInstances.page.toast.openLocalEndpointFailed":`No se pudo abrir la dirección local`,"settings.remoteInstances.page.toast.localUrlCopied":`URL local copiada`,"settings.remoteInstances.page.actions.copyLocalUrl":`Copiar URL local`,"settings.remoteInstances.page.actions.open":`Abrir`,"settings.remoteInstances.page.logsDialog.selectedInstanceFallback":`Instancia seleccionada`,"settings.remoteInstances.page.patternDialog.descriptionWithHost":`{host} requiere un destino concreto.`,"settings.remoteInstances.page.patternDialog.description":`Introduce destino.`,"settings.common.actions.cancel":`Cancelar`,"settings.common.actions.create":`Crear`,"settings.common.actions.delete":`Eliminar`,"settings.common.actions.reset":`Restablecer`,"settings.common.actions.rename":`Cambiar nombre`,"settings.common.actions.duplicate":`Duplicar`,"settings.common.actions.import":`Importar`,"settings.common.actions.copyAll":`Copiar todo`,"settings.common.actions.clear":`Limpiar`,"settings.common.actions.saving":`Guardando...`,"settings.common.actions.saveChanges":`Guardar cambios`,"settings.common.scope.global":`Global`,"settings.common.scope.project":`Proyecto`,"settings.common.field.description":`Descripción`,"settings.common.badge.new":`Nuevo`,"settings.common.badge.modified":`Modificado`,"settings.common.permission.allow":`Permitir`,"settings.common.permission.ask":`Preguntar`,"settings.common.permission.deny":`Denegar`,"settings.common.state.comingSoon":`Próximamente...`,"settings.projects.actions.title":`Acciones`,"settings.projects.actions.description":`Comandos por proyecto mostrados en el encabezado junto al nombre del proyecto.`,"settings.projects.actions.validation.fillNameAndCommand":`Completa el nombre de la acción y el comando antes de guardar.`,"settings.projects.actions.state.loading":`Cargando...`,"settings.projects.actions.state.empty":`No hay acciones configuradas aún.`,"settings.projects.actions.state.untitled":`Acción sin título`,"settings.projects.actions.state.noDesktopSshForwards":`No hay forwards SSH locales habilitados disponibles.`,"settings.projects.actions.field.selectIconAria":`Seleccionar icono`,"settings.projects.actions.field.iconAria":`Icono {icon}`,"settings.projects.actions.field.actionNamePlaceholder":`Nombre de la acción`,"settings.projects.actions.field.command":`Comando`,"settings.projects.actions.field.commandPlaceholder":`p. ej. bun run lint`,"settings.projects.actions.field.autoOpenUrl":`Abrir URL automáticamente`,"settings.projects.actions.field.autoOpenUrlForAria":`Abrir URL automáticamente para {title}`,"settings.projects.actions.field.autoOpenUrlDescription":`Abrir URL desde la salida o la URL personalizada de abajo`,"settings.projects.actions.field.overrideUrlPlaceholder":`URL de reemplazo (opcional)`,"settings.projects.actions.field.overrideUrlTooltip":`Si este campo está lleno, se usa la URL personalizada. Si está vacío, la aplicación abre la mejor URL de la salida.`,"settings.projects.actions.field.desktopSshForward":`Forward SSH de escritorio`,"settings.projects.actions.field.useOutputManualUrl":`Usar URL de salida/manual`,"settings.projects.actions.actions.add":`Añadir acción`,"settings.projects.actions.actions.save":`Guardar acciones`,"settings.projects.actions.toast.saveFailed":`No se pudieron guardar las acciones`,"settings.projects.actions.toast.saved":`Acciones del proyecto guardadas`,"settings.openchamber.about.title":`Acerca de OpenChamber`,"settings.openchamber.about.field.version":`Versión`,"settings.openchamber.about.field.clientVersion":`Cliente`,"settings.openchamber.about.field.webBundle":`Paquete web`,"settings.openchamber.about.field.instanceOpenChamberVersion":`OpenChamber`,"settings.openchamber.about.field.instanceOpenCodeVersion":`OpenCode`,"settings.openchamber.about.field.openCodeVersion":`Versión de OpenCode`,"settings.openchamber.about.state.checking":`Comprobando...`,"settings.openchamber.about.state.upToDate":`Actualizado`,"settings.openchamber.about.state.unknown":`desconocido`,"settings.openchamber.about.state.builtin":`integrado`,"settings.openchamber.about.actions.checkUpdates":`Comprobar actualizaciones`,"settings.openchamber.about.actions.update":`Actualizar`,"settings.openchamber.about.actions.updateToVersion":`Actualizar a {version}`,"settings.openchamber.about.actions.applyOtaToVersion":`Actualizar ahora a {version}`,"settings.openchamber.about.actions.installNativeToVersion":`Instalar {version}`,"settings.openchamber.about.actions.checkForUpdates":`Comprobar actualizaciones`,"settings.openchamber.about.actions.submitFeedback":`Enviar comentarios`,"settings.openchamber.about.toast.latestVersion":`Ya estás en la última versión`,"settings.openchamber.about.toast.checkFailed":`No se pudo comprobar actualizaciones`,"settings.openchamber.about.betaUpdates.label":`Unirse a las actualizaciones beta`,"settings.openchamber.about.betaUpdates.description":`Recibe antes las actualizaciones de la aplicación en este dispositivo.`,"settings.openchamber.about.betaUpdates.rollback.title":`¿Volver a la versión estable?`,"settings.openchamber.about.betaUpdates.rollback.description":`Estás usando una versión beta. Al desactivar las actualizaciones beta, OpenChamber volverá a la versión estable v{version}. Reinicia la aplicación para aplicar el cambio.`,"settings.openchamber.about.betaUpdates.rollback.actions.cancel":`Mantener beta`,"settings.openchamber.about.betaUpdates.rollback.actions.confirm":`Volver a estable`,"settings.openchamber.about.diagnostics.label":`Registro de diagnóstico`,"settings.openchamber.about.diagnostics.description":`Exporta los feat de diagnóstico locales para analizar problemas de visualización y sincronización. No incluye cuerpos de mensajes ni tokens.`,"settings.openchamber.about.diagnostics.export":`Exportar registro`,"settings.openchamber.about.diagnostics.exporting":`Exportando…`,"settings.openchamber.about.diagnostics.enable":`Registrar feat de diagnóstico`,"settings.openchamber.about.diagnostics.enableHint":`Disponible en versiones beta. Registra en este dispositivo el ciclo de sincronización y visualización de la sesión, sin el cuerpo del mensaje.`,"settings.openchamber.about.diagnostics.toast.exported":`Registro de diagnóstico exportado`,"settings.openchamber.about.diagnostics.toast.failed":`No se pudo exportar el registro de diagnóstico`,"settings.openchamber.about.diagnostics.toast.empty":`Registro de diagnóstico exportado. Aún no se registró ningún evento.`,"settings.agents.sidebar.title":`Agentes`,"settings.agents.sidebar.total":`Total {count}`,"settings.agents.sidebar.empty.title":`No hay agentes configurados`,"settings.agents.sidebar.empty.description":`Usa el botón + arriba para crear uno`,"settings.agents.sidebar.section.builtIn":`Agentes incorporados`,"settings.agents.sidebar.section.custom":`Agentes personalizados`,"settings.agents.sidebar.badge.system":`sistema`,"settings.agents.sidebar.dialog.deleteTitle":`Eliminar agente`,"settings.agents.sidebar.dialog.resetTitle":`Restablecer agente`,"settings.agents.sidebar.dialog.deleteDescription":`¿Seguro que quieres eliminar el agente "{name}"?`,"settings.agents.sidebar.dialog.resetDescription":`¿Seguro que quieres restablecer el agente "{name}" a su configuración predeterminada?`,"settings.agents.sidebar.renameDialog.title":`Cambiar nombre del agente`,"settings.agents.sidebar.renameDialog.description":`Introduce un nuevo nombre para el agente "@{name}"`,"settings.agents.sidebar.renameDialog.placeholder":`Nuevo nombre del agente...`,"settings.agents.sidebar.toast.builtInCannotDelete":`Los agentes incorporados no pueden eliminarse`,"settings.agents.sidebar.toast.agentDeleted":`Agente "{name}" eliminado correctamente`,"settings.agents.sidebar.toast.agentReset":`Agente "{name}" restablecido a la configuración predeterminada`,"settings.agents.sidebar.toast.deleteFailed":`No se pudo eliminar el agente`,"settings.agents.sidebar.toast.definitionNotFound":`No se encontró la definición del agente. No se cambió nada.`,"settings.agents.sidebar.toast.resetFailed":`No se pudo restablecer el agente`,"settings.agents.sidebar.toast.agentNameRequired":`Se requiere el nombre del agente`,"settings.agents.sidebar.toast.agentExists":`Ya existe un agente con este nombre`,"settings.agents.sidebar.toast.removeOldAfterRenameFailed":`No se pudo eliminar el antiguo agente después del cambio de nombre`,"settings.agents.sidebar.toast.renameFailed":`No se pudo cambiar el nombre del agente`,"settings.agents.sidebar.toast.agentRenamed":`Agente renombrado a "{name}"`,"settings.agents.page.toast.permissionNameRequired":`Se requiere el nombre del permiso`,"settings.agents.page.toast.created":`Agente creado correctamente`,"settings.agents.page.toast.updated":`Agente actualizado correctamente`,"settings.agents.page.toast.createFailed":`No se pudo crear el agente`,"settings.agents.page.toast.updateFailed":`No se pudo actualizar el agente`,"settings.agents.page.toast.saveUnexpectedError":`Ocurrió un error al guardar`,"settings.agents.page.toast.savedManualRestart":`Guardado en disco. Reinicia tu servidor OpenCode conectado para aplicar los cambios.`,"settings.agents.page.empty.title":`Selecciona un agente desde la barra lateral`,"settings.agents.page.empty.description":`o crea uno nuevo`,"settings.agents.page.title.new":`Nuevo agente`,"settings.agents.page.subtitle.new":`Configura una nueva asistente`,"settings.agents.page.subtitle.edit":`Editar configuración del agente`,"settings.agents.page.section.identityRole":`Identidad y rol`,"settings.agents.page.section.modelParameters":`Modelo y parámetros`,"settings.agents.page.section.systemPrompt":`Prompt del sistema`,"settings.agents.page.section.toolPermissions":`Permisos de herramientas`,"settings.agents.page.field.agentName":`Nombre del agente`,"settings.agents.page.field.agentNamePlaceholder":`nombre-agente`,"settings.agents.page.field.scopePlaceholder":`Ámbito`,"settings.agents.page.field.descriptionPlaceholder":`¿Qué hace este agente?`,"settings.agents.page.field.mode":`Modo`,"settings.agents.page.field.modeTooltip":`Visibilidad principal vs subagente`,"settings.agents.page.field.overrideModel":`Sobrescribir modelo`,"settings.agents.page.field.variant":`Variante de pensamiento`,"settings.agents.page.field.variantTooltip":`Opcional. Si el modelo admite razonamiento, la variante controla la profundidad del razonamiento.`,"settings.agents.page.field.variantHint":`Específico del modelo (p. ej. variante de Anthropic)`,"settings.agents.page.field.variantPlaceholder":`p. ej. high, max, low, none`,"settings.agents.page.field.temperature":`Temperatura`,"settings.agents.page.field.temperatureTooltip":`Controla la aleatoriedad. Mayor = más creativo, menor = más enfocado.`,"settings.agents.page.field.temperatureRange":`0.0 a 2.0`,"settings.agents.page.field.clearTemperatureAria":`Limpiar sobrescritura de temperatura`,"settings.agents.page.field.topP":`Top P`,"settings.agents.page.field.topPTooltip":`Diversidad de muestreo del núcleo. Más bajo = solo tokens más probables.`,"settings.agents.page.field.topPRange":`0.0 a 1.0`,"settings.agents.page.field.clearTopPAria":`Limpiar sobrescritura de top p`,"settings.agents.page.field.systemPromptPlaceholder":`Eres un asistente experto en programación...`,"settings.agents.page.mode.primary":`Primario`,"settings.agents.page.mode.subagent":`Subagente`,"settings.agents.page.mode.all":`Todos`,"settings.agents.page.permissions.defaultLabel":`Predeterminado`,"settings.agents.page.permissions.hideEditor":`Ocultar editor`,"settings.agents.page.permissions.advancedEditor":`Editor avanzado`,"settings.agents.page.permissions.globalSummary":`Global: {summary}`,"settings.agents.page.permissions.rulesSummary":`Reglas: {summary}`,"settings.agents.page.permissions.globalDefault":`Predeterminado global`,"settings.agents.page.permissions.pattern":`Patrón`,"settings.agents.page.permissions.addCustomRule":`Añadir regla personalizada`,"settings.agents.page.permissions.permissionPlaceholder":`Permiso...`,"settings.agents.page.permissions.patternPlaceholder":`Patrón (ej. *)`,"settings.page.behavior.title":`Comportamiento`,"settings.behavior.page.title":`Comportamiento`,"settings.behavior.page.warning.title":`Las reglas globales se combinan con las reglas del proyecto`,"settings.behavior.page.warning.description":`Los cambios realizados aquí actualizan {path}. OpenCode también incluye cualquier AGENTS.md a nivel de proyecto cuando existe.`,"settings.behavior.page.section.systemPrompt":`AGENTS.md global`,"settings.behavior.page.field.systemPromptPlaceholder":`Eres un asistente de IA útil...
|
|
2
2
|
|
|
3
3
|
Usa este espacio para definir reglas absolutas sobre cómo la IA debe comportarse en todas las sesiones y proveedores.`,"settings.behavior.page.section.responseStyle":`Estilo de respuesta`,"settings.behavior.page.responseStyle.tooltip":`Cuando está habilitado, estas instrucciones guían cómo responde el asistente en cada conversación nueva. Se envían con tu primer mensaje y no cambian tus reglas globales de AGENTS.md.`,"settings.behavior.page.responseStyle.enableAria":`Habilitar instrucciones de estilo de respuesta`,"settings.behavior.page.responseStyle.enable":`Agregar instrucciones de estilo de respuesta a conversaciones nuevas`,"settings.behavior.page.responseStyle.preset":`Preset`,"settings.behavior.page.responseStyle.option.concise":`Conciso`,"settings.behavior.page.responseStyle.option.detailed":`Detallado`,"settings.behavior.page.responseStyle.option.mentor":`Mentor`,"settings.behavior.page.responseStyle.option.pushback":`Réplica`,"settings.behavior.page.responseStyle.option.noFiller":`Sin relleno`,"settings.behavior.page.responseStyle.option.matchEnergy":`Igualar mi tono`,"settings.behavior.page.responseStyle.option.warmPeer":`Colega cercano`,"settings.behavior.page.responseStyle.option.custom":`Personalizado`,"settings.behavior.page.responseStyle.customPlaceholder":`Escribe la instrucción que se agregará al primer mensaje...`,"settings.behavior.page.toast.saved":`Comportamiento guardado correctamente`,"settings.behavior.page.toast.saveFailed":`Error al guardar el comportamiento`,"settings.commands.sidebar.title":`Comandos`,"settings.commands.sidebar.total":`Total {count}`,"settings.commands.sidebar.empty.title":`No hay comandos configurados`,"settings.commands.sidebar.empty.description":`Usa el botón + arriba para crear uno`,"settings.commands.sidebar.section.builtIn":`Comandos incorporados`,"settings.commands.sidebar.section.custom":`Comandos personalizados`,"settings.commands.sidebar.dialog.deleteTitle":`Eliminar comando`,"settings.commands.sidebar.dialog.resetTitle":`Restablecer comando`,"settings.commands.sidebar.dialog.deleteDescription":`¿Estás seguro de que quieres eliminar el comando "{name}"?`,"settings.commands.sidebar.dialog.resetDescription":`¿Estás seguro de que quieres restablecer el comando "{name}" a su configuración predeterminada?`,"settings.commands.sidebar.renameDialog.title":`Cambiar nombre del comando`,"settings.commands.sidebar.renameDialog.description":`Introduce un nuevo nombre para el comando "/{name}"`,"settings.commands.sidebar.renameDialog.placeholder":`Nuevo nombre del comando...`,"settings.commands.sidebar.toast.builtInCannotDelete":`Los comandos incorporados no pueden eliminarse`,"settings.commands.sidebar.toast.commandDeleted":`Comando "{name}" eliminado`,"settings.commands.sidebar.toast.commandReset":`Comando "{name}" restablecido al valor predeterminado`,"settings.commands.sidebar.toast.deleteFailed":`No se pudo eliminar el comando`,"settings.commands.sidebar.toast.resetFailed":`No se pudo restablecer el comando`,"settings.commands.sidebar.toast.commandNameRequired":`Se requiere nombre del comando`,"settings.commands.sidebar.toast.commandExists":`Ya existe un comando con este nombre`,"settings.commands.sidebar.toast.removeOldAfterRenameFailed":`No se pudo eliminar el comando antiguo después del cambio de nombre`,"settings.commands.sidebar.toast.renameFailed":`No se pudo cambiar el nombre del comando`,"settings.commands.page.toast.templateRequired":`Se requiere plantilla del comando`,"settings.commands.page.toast.created":`Comando creado`,"settings.commands.page.toast.updated":`Comando actualizado`,"settings.commands.page.toast.createFailed":`No se pudo crear el comando`,"settings.commands.page.toast.updateFailed":`No se pudo actualizar el comando`,"settings.commands.page.toast.saveUnexpectedError":`Ocurrió un error al guardar`,"settings.commands.page.empty.title":`Selecciona un comando de la barra lateral`,"settings.commands.page.empty.description":`o crea uno nuevo`,"settings.commands.page.title.new":`Nuevo comando`,"settings.commands.page.subtitle.new":`Configura un nuevo comando slash`,"settings.commands.page.subtitle.edit":`Editar configuración del comando`,"settings.commands.page.section.identity":`Identidad`,"settings.commands.page.section.executionContext":`Contexto de ejecución`,"settings.commands.page.section.template":`Plantilla del comando`,"settings.commands.page.field.commandName":`Nombre del comando`,"settings.commands.page.field.commandNamePlaceholder":`nombre-del-comando`,"settings.commands.page.field.descriptionPlaceholder":`¿Qué hace este comando?`,"settings.commands.page.field.overrideAgent":`Sobrescribir agente`,"settings.commands.page.field.templatePlaceholder":`Tu plantilla de comando aquí...
|
|
4
4
|
|
package/dist/assets/{fileMentionTouchSelection-BHGsKCxs.js → fileMentionTouchSelection-Blwr6zeo.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{ct as t}from"./persistence-DwRBC4zl.js";import{nt as n,rt as r,tt as i}from"./vendor-base-ui-CnHfUmDN.js";import{n as a}from"./vendor-react-DLPElpoQ.js";import{at as o}from"./useMobileNavigationStore-
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{ct as t}from"./persistence-DwRBC4zl.js";import{nt as n,rt as r,tt as i}from"./vendor-base-ui-CnHfUmDN.js";import{n as a}from"./vendor-react-DLPElpoQ.js";import{at as o}from"./useMobileNavigationStore-Dj7oxHMY.js";import{t as s}from"./utils-2ZK8yboQ.js";import{r as c,t as l}from"./Icon-D1BcR8Tz.js";var u=32,d=(e,t)=>{let n=c[e];return typeof n!=`string`||n.length===0?null:`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="${t}" stroke-width="${l}" stroke-linecap="round" stroke-linejoin="round">${n}</svg>`},f=(e,t)=>{let n=d(e,t);return!n||typeof document>`u`?Promise.resolve(null):new Promise(e=>{let t=new Image;t.decoding=`async`,t.onload=()=>{try{let n=document.createElement(`canvas`);n.width=u,n.height=u;let r=n.getContext(`2d`);if(!r){e(null);return}r.clearRect(0,0,u,u),r.drawImage(t,0,0,u,u);let i=n.toDataURL(`image/png`),a=i.indexOf(`,`);e(a>=0?i.slice(a+1):null)}catch{e(null)}},t.onerror=()=>e(null),t.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(n)}`})},p=(e,n)=>{if(!e.includes(`/`)||n.size===0)return[];let r=RegExp(`(^|\\s)/(${t})?([A-Za-z0-9][A-Za-z0-9_-]*)(?=$|\\s)`,`g`),i=[],a;for(;(a=r.exec(e))!==null;){let e=a[3]??``;if(!n.has(e.toLowerCase()))continue;let t=a[2]??``,r=a.index+(a[1]?.length??0);i.push({start:r,end:r+1+t.length+e.length,name:e,hasSlot:t.length>0})}return i},m=(e,n,r=e.length)=>{let i=p(e,n).filter(e=>!e.hasSlot);if(i.length===0)return null;let a=e,o=r;for(let e=i.length-1;e>=0;--e){let n=i[e].start+1;a=`${a.slice(0,n)}${t}${a.slice(n)}`,o>n&&(o+=t.length)}return a===e?null:{text:a,caret:o}},h=e=>e.startsWith(t)?e.slice(t.length):e,g=e=>{if(e.inputMode===`shell`)return null;let t=e.text,n=Math.max(0,Math.min(e.cursor,t.length));if(t.startsWith(`/`)){let e=t.indexOf(` `),r=t.indexOf(`
|
|
2
2
|
`),i=Math.min(e===-1?t.length:e,r===-1?t.length:r);if(n<=i&&e===-1)return{kind:`slash-command`,query:h(t.substring(1,i)),tokenStart:0,tokenEnd:i}}let r=t.substring(0,n),i=r.lastIndexOf(`/`);if(i!==-1){let e=i>0?r[i-1]:null,t=h(r.substring(i+1)),a=t.includes(` `)||t.includes(`
|
|
3
3
|
`);if((!e||/\s/.test(e))&&!a)return{kind:`slash-skill`,query:t,tokenStart:i,tokenEnd:n}}let a=r.lastIndexOf(`#`);if(a!==-1){let e=a>0?r[a-1]:null,t=r.substring(a+1);if((!e||/\s/.test(e))&&!t.includes(` `)&&!t.includes(`
|
|
4
4
|
`))return{kind:`snippet`,query:t,tokenStart:a,tokenEnd:n}}let s=o({value:t,cursorPosition:n,inputSource:e.mentionInputSource??`manual`,insertedText:e.insertedText});return s===null?null:{kind:`mention`,query:s,tokenStart:r.lastIndexOf(`@`),tokenEnd:n}},_=e=>e===`mention`?`@`:e===`snippet`?`#`:`/`,v=(e,t,n)=>{if(n&&n.tokenStart>=0&&n.tokenEnd>=n.tokenStart&&n.tokenEnd<=e.length&&e.startsWith(_(n.kind),n.tokenStart))return{start:n.tokenStart,end:n.tokenEnd};let r=g({text:e,cursor:t});return r?{start:r.tokenStart,end:r.tokenEnd}:null},y=e(r(),1),b=a(),x=e(i(),1),S=`absolute z-[100] min-w-0 w-full bottom-full mb-2 left-0 flex flex-col rounded-xl`,C=`pointer-events-auto absolute z-[100] min-w-0 flex flex-col rounded-xl`;function w(e,t){return s(e?C:S,e?`oc-mobile-overlay-surface oc-mobile-overlay-surface--translucent oc-composer-autocomplete-surface`:`bg-background border-2 border-border/60 shadow-none`,t)}function T(e,t){return e?`oc-composer-autocomplete-row`:t?`bg-interactive-selection`:void 0}var E=.4,D=e=>{let t=e.gap??8,n=Math.min(e.composerTop-t,e.visibleBottom-t);return{left:e.composerLeft,width:e.composerWidth,bottom:Math.max(0,e.fixedContainingBottom-n),maxHeight:O({popupBottom:n,boundaryTop:e.boundaryTop,viewportHeight:e.viewportHeight,gap:t})}},O=e=>{let t=e.gap??8,n=Math.max(0,e.popupBottom-e.boundaryTop-t),r=e.viewportHeight*E,i=Math.floor(Math.min(n,r));return n>=120?Math.min(n,Math.max(120,i)):i},k=(e,t=0)=>{let n=e.closest(`main`);if(!n)return null;let r=(e.closest(`.mobile-chat-screen__content`)?.parentElement??n.parentElement?.closest(`main`)??n).querySelector(`:scope > .oc-mobile-detail-navigation`)?.getBoundingClientRect().bottom,i=n.getBoundingClientRect().top;return Math.max(r===void 0?i:Math.max(r,i),t)},A=(e,t)=>{let n=(0,b.c)(5),[r,i]=y.useState(void 0),a;n[0]!==t||n[1]!==e?(a=()=>{if(!t){i(void 0);return}let n=0,r=0,a=()=>{let t=e.current?.parentElement;if(!t)return;let n=t.getBoundingClientRect(),r=window.visualViewport,a=r?.offsetTop??0,o=r?.height??window.innerHeight,s=window.innerHeight,c=a+o,l=k(t,a)??a,u=D({composerTop:n.top,composerLeft:n.left,composerWidth:n.width,fixedContainingBottom:s,visibleBottom:c,boundaryTop:l,viewportHeight:o});i(e=>e&&e.left===u.left&&e.width===u.width&&e.bottom===u.bottom&&e.maxHeight===u.maxHeight?e:u)},o=()=>{a(),n&&window.cancelAnimationFrame(n),r&&window.clearTimeout(r),n=window.requestAnimationFrame(()=>{a(),r=window.setTimeout(a,220)})};return a(),window.addEventListener(`resize`,a),window.addEventListener(`oc:keyboard-settled`,o),window.addEventListener(`oc:keyboard-anim`,o),window.visualViewport?.addEventListener(`resize`,a),window.visualViewport?.addEventListener(`scroll`,a),()=>{n&&window.cancelAnimationFrame(n),r&&window.clearTimeout(r),window.removeEventListener(`resize`,a),window.removeEventListener(`oc:keyboard-settled`,o),window.removeEventListener(`oc:keyboard-anim`,o),window.visualViewport?.removeEventListener(`resize`,a),window.visualViewport?.removeEventListener(`scroll`,a)}},n[0]=t,n[1]=e,n[2]=a):a=n[2];let o;return n[3]===t?o=n[4]:(o=[t],n[3]=t,n[4]=o),y.useLayoutEffect(a,o),t?r:void 0},j=n(),M=y.forwardRef((e,t)=>{let n=(0,b.c)(24),{isMobile:r,className:i,style:a,children:o}=e,s=y.useRef(null),c=A(s,r),l=typeof document<`u`?document.body:null;if(!r){let e;n[0]===i?e=n[1]:(e=w(!1,i),n[0]=i,n[1]=e);let r;return n[2]!==o||n[3]!==t||n[4]!==a||n[5]!==e?(r=(0,j.jsx)(`div`,{ref:t,className:e,style:a,children:o}),n[2]=o,n[3]=t,n[4]=a,n[5]=e,n[6]=r):r=n[6],r}let u;n[7]===i?u=n[8]:(u=w(!0,i),n[7]=i,n[8]=u);let d;n[9]===c?d=n[10]:(d=c?{left:c.left,width:c.width,bottom:c.bottom,maxHeight:c.maxHeight,overflow:`hidden`}:{visibility:`hidden`},n[9]=c,n[10]=d);let f;n[11]!==a||n[12]!==d?(f={...a,...d},n[11]=a,n[12]=d,n[13]=f):f=n[13];let p;n[14]!==o||n[15]!==t||n[16]!==u||n[17]!==f?(p=(0,j.jsx)(`div`,{className:`pointer-events-none fixed inset-0 z-[100]`,children:(0,j.jsx)(`div`,{ref:t,className:u,style:f,children:o})}),n[14]=o,n[15]=t,n[16]=u,n[17]=f,n[18]=p):p=n[18];let m=p,h;n[19]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,j.jsx)(`span`,{ref:s,className:`hidden`,"aria-hidden":!0}),n[19]=h):h=n[19];let g;n[20]===m?g=n[21]:(g=l?(0,x.createPortal)(m,l):m,n[20]=m,n[21]=g);let _;return n[22]===g?_=n[23]:(_=(0,j.jsxs)(j.Fragment,{children:[h,g]}),n[22]=g,n[23]=_),_});M.displayName=`ComposerAutocompleteLayer`;var N=()=>{let e=null,t=!1,n=!1;return{pointerDown:(n,r)=>{e={x:n,y:r},t=!1},pointerMove:(n,r)=>{e&&Math.hypot(n-e.x,r-e.y)>6&&(t=!0)},pointerCancel:()=>{e=null,t=!1},pointerUp:r=>{if(!e)return!1;let i=!t;return e=null,t=!1,i?(n=!0,r(),!0):(n=!0,!1)},click:e=>n?(n=!1,!1):(e(),!0)}};export{g as a,f as c,v as i,M as n,m as o,T as r,h as s,N as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e={"settings.globalConfig.title":`Configuration globale`,"settings.globalConfig.description":`Modifiez les fichiers de configuration actifs dans ~/.config/opencode.`,"settings.globalConfig.actions.reload":`Recharger le fichier`,"settings.globalConfig.restartHint":`Redémarrez OpenCode après l’enregistrement pour appliquer les modifications de configuration.`,"settings.globalConfig.toast.loadFailed":`Échec du chargement du fichier de configuration`,"settings.globalConfig.toast.saveFailed":`Échec de l’enregistrement du fichier de configuration`,"settings.globalConfig.toast.saved":`Configuration enregistrée. Redémarrez OpenCode pour l’appliquer.`,"settings.providers.page.openCodeGo.title":`Suivi de l’utilisation d’OpenCode Go`,"settings.providers.page.openCodeGo.description":`Connectez le tableau de bord OpenCode Go pour afficher les quotas glissant, hebdomadaire et mensuel.`,"settings.providers.page.openCodeGo.workspaceId":`ID de l’espace de travail`,"settings.providers.page.openCodeGo.authCookie":`Cookie d’authentification`,"settings.providers.page.openCodeGo.help":`Copiez l’ID depuis l’URL du tableau de bord et le cookie auth depuis les outils du navigateur. OpenChamber n’analyse jamais les cookies du navigateur.`,"settings.providers.page.openCodeGo.save":`Enregistrer et valider`,"settings.providers.page.openCodeGo.replace":`Remplacer`,"settings.providers.page.openCodeGo.validate":`Valider`,"settings.providers.page.openCodeGo.delete":`Supprimer`,"settings.providers.page.quotaCredentials.saved":`Identifiants de {provider} enregistrés.`,"settings.providers.page.openCodeGo.saveFailed":`Impossible de valider les identifiants OpenCode Go.`,"settings.providers.page.openCodeGo.valid":`Les identifiants OpenCode Go sont valides.`,"settings.providers.page.openCodeGo.invalid":`Les identifiants OpenCode Go sont invalides ou expirés.`,"settings.providers.page.openCodeGo.deleted":`Identifiants OpenCode Go supprimés.`,"settings.providers.page.openCodeGo.deleteFailed":`Impossible de supprimer les identifiants OpenCode Go.`,"settings.appearance.language.label":`Langue`,"settings.appearance.language.description":`Choisissez la langue de l'interface.`,"settings.appearance.language.select":`Sélectionnez la langue`,"settings.window.description":`Fenêtre des paramètres OpenChamber.`,"settings.view.home.title":`Paramètres`,"settings.view.home.description":`Accédez aux pages communes.`,"settings.view.home.cards.providers.title":`Fournisseurs`,"settings.view.home.cards.providers.description":`Connecter les modèles + les identifiants`,"settings.view.home.cards.agents.title":`Agents`,"settings.view.home.cards.agents.description":`Invites, outils, autorisations`,"settings.view.home.cards.skillsCatalog.title":`Catalogue de skills`,"settings.view.home.cards.skillsCatalog.description":`Installer des skills depuis des catalogues`,"settings.view.home.cards.mcp.title":`MCP`,"settings.view.home.cards.mcp.description":`Configurer les serveurs MCP + connexions`,"settings.view.home.cards.plugins.title":`Plugins`,"settings.view.home.cards.plugins.description":`Gérer les plugins OpenCode`,"settings.view.home.cards.usage.title":`Usage`,"settings.view.home.cards.usage.description":`Quota + visibilité des dépenses`,"settings.view.unavailable.title":`Pas disponible`,"settings.view.unavailable.description":`Cette page de paramètres n'est pas disponible dans ce runtime.`,"settings.view.badge.beta":`bêta`,"settings.view.actions.reloadOpenCode":`Recharger OpenCode`,"settings.view.actions.reloadOpenCodeTooltip":`Redémarrez OpenCode et rechargez sa configuration.`,"settings.view.actions.backToSettings":`Retour aux paramètres`,"settings.view.actions.closeSettings":`Fermer les paramètres`,"settings.view.actions.openSectionList":`Ouvrir la liste des sections`,"settings.view.actions.closeSettingsWithShortcut":`Fermer les paramètres ({shortcut}+,)`,"settings.view.actions.back":`Retour`,"settings.view.actions.resizeNavigation":`Redimensionner la navigation dans les paramètres`,"settings.view.navigation.groups.connection":`Connexion`,"settings.view.navigation.groups.personalization":`Personnalisation`,"settings.view.navigation.groups.workspace":`Espace de travail`,"settings.view.navigation.groups.opencode":`OpenCode`,"settings.view.navigation.groups.content":`Contenu et automatisation`,"settings.view.navigation.groups.system":`Système`,"settings.page.projects.title":`Projets`,"settings.page.remoteInstances.title":`Instances distantes`,"settings.page.providers.title":`Fournisseurs`,"settings.page.usage.title":`Usage`,"settings.page.agents.title":`Agents`,"settings.page.commands.title":`Commandes`,"settings.page.mcp.title":`MCP`,"settings.page.plugins.title":`Plugins`,"settings.page.skills.title":`Skills`,"settings.page.skillsCatalog.title":`Catalogue de skills`,"settings.page.git.title":`Git`,"settings.page.appearance.title":`Apparence`,"settings.page.chat.title":`Chat`,"settings.page.shortcuts.title":`Raccourcis`,"settings.page.sessions.title":`Sessions`,"settings.page.summaryAI.title":`Résumés IA`,"settings.page.magicPrompts.title":`Prompts magiques`,"settings.page.notifications.title":`Notifications`,"settings.page.voice.title":`Voix`,"settings.page.snippets.title":`Extraits`,"settings.snippets.sidebar.title":`Extraits`,"settings.snippets.sidebar.total":`Total : {count}`,"settings.snippets.sidebar.actions.create":`Créer un extrait`,"settings.snippets.sidebar.actions.more":`Plus de propositions pour {name}`,"settings.snippets.sidebar.toast.deleted":`Extrait supprimé`,"settings.snippets.sidebar.toast.deleteFailed":`Échec de la suppression de l'extrait`,"settings.snippets.sidebar.dialog.deleteTitle":`Supprimer l'extrait ?`,"settings.snippets.sidebar.dialog.deleteDescription":`Cela supprimera définitivement #{name}.`,"settings.snippets.page.empty.title":`Sélectionnez un extrait`,"settings.snippets.page.empty.description":`Choisissez un extrait dans la barre latérale pour le modifier.`,"settings.snippets.page.title.new":`Nouvel extrait`,"settings.snippets.page.field.namePlaceholder":`nom de l'extrait`,"settings.snippets.page.field.descriptionPlaceholder":`À quoi sert cet extrait`,"settings.snippets.page.field.aliases":`Alias`,"settings.snippets.page.field.aliasesPlaceholder":`en sécurité, prudent`,"settings.snippets.page.field.content":`Contenu`,"settings.snippets.page.field.contentPlaceholder":`Markdown de l'extrait...`,"settings.snippets.page.hint":`Utilisez #name dans les prompts. Prend en charge les alias et les blocs de pré-ajout/ajout compatibles avec les extraits de code opencode.`,"settings.snippets.page.toast.nameRequired":`Le nom de l'extrait est obligatoire`,"settings.snippets.page.toast.contentRequired":`Le contenu de l'extrait est requis`,"settings.snippets.page.toast.saveFailed":`Échec de l'enregistrement de l'extrait`,"settings.snippets.page.toast.saved":`Extrait enregistré`,"settings.page.promptTemplates.title":`Modèles de prompt`,"settings.promptTemplates.sidebar.title":`Modèles de prompt`,"settings.promptTemplates.sidebar.total":`Total : {count}`,"settings.promptTemplates.sidebar.empty.title":`Aucun modèle de prompt`,"settings.promptTemplates.sidebar.empty.description":`Créez un modèle de prompt pour commencer.`,"settings.promptTemplates.sidebar.toast.deleted":`Modèle "{name}" supprimé`,"settings.promptTemplates.sidebar.toast.deleteFailed":`Échec de la suppression du modèle`,"settings.promptTemplates.sidebar.toast.nameRequired":`Le nom du modèle est obligatoire`,"settings.promptTemplates.sidebar.toast.renamed":`Modèle renommé`,"settings.promptTemplates.sidebar.toast.renameFailed":`Échec du changement de nom du modèle`,"settings.promptTemplates.sidebar.dialog.deleteTitle":`Supprimer le modèle ?`,"settings.promptTemplates.sidebar.dialog.deleteDescription":`Cela supprimera définitivement "{name}". Cette action ne peut pas être annulée.`,"settings.promptTemplates.sidebar.renameDialog.title":`Renommer le modèle`,"settings.promptTemplates.sidebar.renameDialog.description":`Entrez un nouveau nom pour "{name}".`,"settings.promptTemplates.sidebar.renameDialog.placeholder":`Nom du modèle`,"settings.promptTemplates.sidebar.badge.default":`défaut`,"settings.promptTemplates.page.empty.title":`Sélectionnez un modèle`,"settings.promptTemplates.page.empty.description":`Choisissez un modèle dans la barre latérale pour le modifier.`,"settings.promptTemplates.page.title.new":`Nouveau modèle`,"settings.promptTemplates.page.subtitle.edit":`Modifier le modèle`,"settings.promptTemplates.page.subtitle.new":`Créer un nouveau modèle de prompt`,"settings.promptTemplates.page.section.identity":`Identité`,"settings.promptTemplates.page.field.name":`Nom`,"settings.promptTemplates.page.field.namePlaceholder":`Nom du modèle`,"settings.promptTemplates.page.section.template":`Modèle`,"settings.promptTemplates.page.field.templatePlaceholder":`Saisissez le texte du modèle de prompt...`,"settings.promptTemplates.page.templateHint":`Ce texte sera ajouté au début du prompt de l'utilisateur lorsqu'il est sélectionné dans un groupe multi-run.`,"settings.promptTemplates.page.toast.nameRequired":`Le nom du modèle est obligatoire`,"settings.promptTemplates.page.toast.updated":`Modèle mis à jour`,"settings.promptTemplates.page.toast.updateFailed":`Échec de la mise à jour du modèle`,"settings.promptTemplates.page.toast.created":`Modèle créé`,"settings.promptTemplates.page.toast.createFailed":`Échec de la création du modèle`,"settings.promptTemplates.page.toast.saveUnexpectedError":`Une erreur inattendue s'est produite lors de l'enregistrement`,"settings.magicPrompts.sidebar.title":`Prompts magiques`,"settings.magicPrompts.sidebar.description":`Sélectionnez un modèle de prompt à modifier.`,"settings.magicPrompts.sidebar.group.git":`Git`,"settings.magicPrompts.sidebar.group.github":`GitHub`,"settings.magicPrompts.sidebar.group.session":`Session`,"settings.magicPrompts.sidebar.item.gitCommitGenerate":`Génération de commit`,"settings.magicPrompts.sidebar.item.gitPrGenerate":`Génération de PR`,"settings.magicPrompts.sidebar.item.gitConflictResolve":`Résolution des conflits de fusion/rebase`,"settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve":`Résolution des conflits par sélection`,"settings.magicPrompts.sidebar.item.githubPrReview":`Revue de PR`,"settings.magicPrompts.sidebar.item.githubIssueReview":`Examen du problème`,"settings.magicPrompts.sidebar.item.githubPrFailedChecksReview":`Examen des checks PR en échec`,"settings.magicPrompts.sidebar.item.githubPrCommentsReview":`Examen des commentaires PR`,"settings.magicPrompts.sidebar.item.githubSinglePrCommentReview":`Examen des commentaires PR uniques`,"settings.magicPrompts.sidebar.item.sessionSummary":`Résumé de la session`,"settings.magicPrompts.sidebar.item.sessionWorkspaceReview":`Examen de l'espace de travail`,"settings.magicPrompts.sidebar.item.sessionFusion":`Fusion`,"settings.remoteInstances.sidebar.title":`Instances distantes`,"settings.remoteInstances.sidebar.description":`Connectez-vous à d’autres serveurs OpenChamber via un lien d’import ou SSH.`,"settings.remoteInstances.sidebar.empty":`Aucune instance distante pour le moment. Importez un lien ou ajoutez une connexion SSH.`,"settings.remoteInstances.channel.link":`Lien`,"settings.remoteInstances.channel.ssh":`SSH`,"settings.remoteInstances.sidebar.total":`Total {count}`,"settings.remoteInstances.sidebar.newSshInstanceName":`Nouvelle instance SSH`,"settings.remoteInstances.sidebar.actions.addSshInstance":`Ajouter une instance SSH`,"settings.remoteInstances.sidebar.actions.connect":`Connecter`,"settings.remoteInstances.sidebar.actions.disconnect":`Déconnecter`,"settings.remoteInstances.sidebar.actions.retry":`Réessayer`,"settings.remoteInstances.sidebar.actions.remove":`Retirer`,"settings.remoteInstances.sidebar.confirm.localPortInUseRetry":`Le port local est déjà utilisé. Choisir un port local gratuit et réessayer ?`,"settings.remoteInstances.sidebar.toast.createFailed":`Échec de la création de l'instance SSH`,"settings.remoteInstances.sidebar.toast.retriedWithRandomPort":`Réessayé avec un port local aléatoire`,"settings.remoteInstances.sidebar.toast.connectFailed":`Échec de la connexion de l'instance`,"settings.remoteInstances.sidebar.toast.disconnectFailed":`Échec de la déconnexion de l'instance`,"settings.remoteInstances.sidebar.toast.retryFailed":`Échec de la nouvelle tentative de connexion`,"settings.remoteInstances.sidebar.toast.removeFailed":`Échec de la suppression de l'instance`,"settings.remoteInstances.sidebar.phase.ready":`Prêt`,"settings.remoteInstances.sidebar.phase.error":`Erreur`,"settings.remoteInstances.sidebar.phase.reconnect":`Reconnecter`,"settings.remoteInstances.sidebar.phase.installing":`Installation`,"settings.remoteInstances.sidebar.phase.updating":`Mise à jour`,"settings.remoteInstances.sidebar.phase.forwarding":`Transfert`,"settings.remoteInstances.sidebar.phase.starting":`Démarrage`,"settings.remoteInstances.sidebar.phase.connecting":`Connexion`,"settings.remoteInstances.sidebar.phase.idle":`Inactif`,"settings.remoteInstances.page.section.instance":`Instance`,"settings.remoteInstances.page.section.instanceDescription":`Paramètres de base du SSH.`,"settings.remoteInstances.page.field.mode":`Mode`,"settings.remoteInstances.page.field.modeHint":`Installations/mises à jour gérées et démarrage de OpenChamber à distance. Externe suppose qu'il est déjà en cours d'exécution.`,"settings.remoteInstances.page.field.modePlaceholder":`Sélectionnez le mode`,"settings.remoteInstances.page.field.modeManaged":`Géré (démarrage automatique)`,"settings.remoteInstances.page.field.modeExternal":`Externe (déjà en cours d'exécution)`,"settings.remoteInstances.page.field.preferredRemotePort":`Port distant préféré`,"settings.remoteInstances.page.field.preferredRemotePortHint":`Le port OpenChamber doit être utilisé sur l'hôte distant. Laissez vide pour laisser le runtime choisir.`,"settings.remoteInstances.page.field.keepServerRunning":`Maintenir le serveur en marche`,"settings.remoteInstances.page.field.keepServerRunningHint":`S'il est activé, le démon OpenChamber continue de s'exécuter à distance lorsque vous vous déconnectez.`,"settings.remoteInstances.page.field.bindHost":`Lier l'hôte`,"settings.remoteInstances.page.field.bindHostHint":`Interface réseau pour l’URL locale principale. Utilisez 127.0.0.1/localhost pour un accès uniquement local.`,"settings.remoteInstances.page.field.preferredLocalPort":`Port local préféré`,"settings.remoteInstances.page.field.preferredLocalPortHint":`Port local préféré pour le tunnel principal OpenChamber. Laissez vide pour la sélection automatique.`,"settings.remoteInstances.page.field.forwardType":`Type de transfert`,"settings.remoteInstances.page.field.localListen":`Écoute locale`,"settings.remoteInstances.page.field.localTarget":`Cible locale`,"settings.remoteInstances.page.field.remoteListen":`Écoute distante`,"settings.remoteInstances.page.field.remoteTarget":`Cible distante`,"settings.remoteInstances.page.field.localHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.remoteHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.auto":`Auto`,"settings.remoteInstances.page.confirm.bindAllInterfaces":`La liaison à 0.0.0.0 expose les ports transférés à votre réseau local. Continuer?`,"settings.remoteInstances.page.preview.localSocks5":`(SOCKS5 local)`,"settings.remoteInstances.page.preview.local":`(local)`,"settings.remoteInstances.page.preview.remote":`(hôte distant)`,"settings.remoteInstances.page.toast.openLocalEndpointFailed":`Échec de l'ouverture du point de terminaison local`,"settings.remoteInstances.page.toast.localUrlCopied":`URL locale copiée`,"settings.remoteInstances.page.actions.copyLocalUrl":`Copier l’URL locale`,"settings.remoteInstances.page.actions.open":`Ouvrir`,"settings.remoteInstances.page.logsDialog.selectedInstanceFallback":`Instance sélectionnée`,"settings.remoteInstances.page.patternDialog.descriptionWithHost":`{host} nécessite une destination concrète.`,"settings.remoteInstances.page.patternDialog.description":`Entrez la destination.`,"settings.common.actions.cancel":`Annuler`,"settings.common.actions.create":`Créer`,"settings.common.actions.delete":`Supprimer`,"settings.common.actions.reset":`Réinitialiser`,"settings.common.actions.rename":`Rebaptiser`,"settings.common.actions.duplicate":`Dupliquer`,"settings.common.actions.import":`Importer`,"settings.common.actions.copyAll":`Copier tout`,"settings.common.actions.clear":`Effacer`,"settings.common.actions.saving":`Enregistrement...`,"settings.common.actions.saveChanges":`Enregistrer les modifications`,"settings.common.scope.global":`Mondial`,"settings.common.scope.project":`Projet`,"settings.common.field.description":`Description`,"settings.common.badge.new":`Nouveau`,"settings.common.badge.modified":`Modifié`,"settings.common.permission.allow":`Permettre`,"settings.common.permission.ask":`Demander`,"settings.common.permission.deny":`Refuser`,"settings.common.state.comingSoon":`À venir...`,"settings.projects.actions.title":`Actions`,"settings.projects.actions.description":`Commandes par projet affichées dans l'en-tête à côté du nom du projet.`,"settings.projects.actions.validation.fillNameAndCommand":`Remplissez le nom de l'action et la commande avant d'enregistrer.`,"settings.projects.actions.state.loading":`Chargement...`,"settings.projects.actions.state.empty":`Aucune action configurée pour le moment.`,"settings.projects.actions.state.untitled":`Action sans titre`,"settings.projects.actions.state.noDesktopSshForwards":`Aucun transfert local SSH activé disponible.`,"settings.projects.actions.field.selectIconAria":`Sélectionner l'icône`,"settings.projects.actions.field.iconAria":`Icône {icon}`,"settings.projects.actions.field.actionNamePlaceholder":`Nom de l'action`,"settings.projects.actions.field.command":`Commande`,"settings.projects.actions.field.commandPlaceholder":`p. ex. bun install`,"settings.projects.actions.field.autoOpenUrl":`Ouverture automatique de l’URL`,"settings.projects.actions.field.autoOpenUrlForAria":`Ouverture automatique de l’URL pour {title}`,"settings.projects.actions.field.autoOpenUrlDescription":`Ouvrir l’URL détectée dans la sortie, ou l’URL personnalisée ci-dessous`,"settings.projects.actions.field.overrideUrlPlaceholder":`Remplacer URL (facultatif)`,"settings.projects.actions.field.overrideUrlTooltip":`Si ce champ est rempli, l’URL personnalisée est utilisée. Sinon, l'application ouvre la meilleure URL détectée dans la sortie.`,"settings.projects.actions.field.desktopSshForward":`Transfert SSH local`,"settings.projects.actions.field.useOutputManualUrl":`Utiliser l’URL de sortie ou l’URL manuelle`,"settings.projects.actions.actions.add":`Ajouter une action`,"settings.projects.actions.actions.save":`Enregistrer les actions`,"settings.projects.actions.toast.saveFailed":`Échec de l'enregistrement des actions`,"settings.projects.actions.toast.saved":`Actions du projet enregistrées`,"settings.openchamber.about.title":`À propos de OpenChamber`,"settings.openchamber.about.field.version":`Version`,"settings.openchamber.about.field.clientVersion":`Client`,"settings.openchamber.about.field.webBundle":`Bundle web`,"settings.openchamber.about.field.instanceOpenChamberVersion":`OpenChamber`,"settings.openchamber.about.field.instanceOpenCodeVersion":`OpenCode`,"settings.openchamber.about.state.checking":`Vérification...`,"settings.openchamber.about.state.upToDate":`À jour`,"settings.openchamber.about.state.builtin":`intégré`,"settings.openchamber.about.actions.checkUpdates":`Vérifier les mises à jour`,"settings.openchamber.about.actions.update":`Mise à jour`,"settings.openchamber.about.actions.updateToVersion":`Mise à jour vers {version}`,"settings.openchamber.about.actions.applyOtaToVersion":`Mettre à jour vers {version}`,"settings.openchamber.about.actions.installNativeToVersion":`Installer {version}`,"settings.openchamber.about.actions.checkForUpdates":`Vérifier les mises à jour`,"settings.openchamber.about.actions.submitFeedback":`Envoyer des commentaires`,"settings.openchamber.about.toast.latestVersion":`Vous êtes sur la dernière version`,"settings.openchamber.about.toast.checkFailed":`Impossible de vérifier les mises à jour`,"settings.openchamber.about.betaUpdates.label":`Rejoindre les mises à jour bêta`,"settings.openchamber.about.betaUpdates.description":`Recevez les mises à jour de l’application en avant-première sur cet appareil.`,"settings.openchamber.about.betaUpdates.rollback.title":`Revenir à la version stable ?`,"settings.openchamber.about.betaUpdates.rollback.description":`Vous utilisez une version bêta. La désactivation des mises à jour bêta ramènera OpenChamber à la version stable v{version}. Redémarrez l’application pour appliquer ce changement.`,"settings.openchamber.about.betaUpdates.rollback.actions.cancel":`Garder la bêta`,"settings.openchamber.about.betaUpdates.rollback.actions.confirm":`Revenir à la version stable`,"settings.openchamber.about.diagnostics.label":`Journal de diagnostic`,"settings.openchamber.about.diagnostics.description":`Exporte les feat de diagnostic locaux pour analyser les problèmes d’affichage et de synchronisation. Aucun corps de message ni jeton n’est inclus.`,"settings.openchamber.about.diagnostics.export":`Exporter le journal`,"settings.openchamber.about.diagnostics.exporting":`Exportation…`,"settings.openchamber.about.diagnostics.enable":`Enregistrer les feat de diagnostic`,"settings.openchamber.about.diagnostics.enableHint":`Disponible dans les versions bêta. Enregistre sur cet appareil le cycle de synchronisation et d’affichage de la session, sans le corps du message.`,"settings.openchamber.about.diagnostics.toast.exported":`Journal de diagnostic exporté`,"settings.openchamber.about.diagnostics.toast.failed":`Impossible d’exporter le journal de diagnostic`,"settings.openchamber.about.diagnostics.toast.empty":`Journal de diagnostic exporté. Aucun événement n’a encore été enregistré.`,"settings.agents.sidebar.title":`Agents`,"settings.agents.sidebar.total":`Total {count}`,"settings.agents.sidebar.empty.title":`Aucun agent configuré`,"settings.agents.sidebar.empty.description":`Utilisez le bouton + ci-dessus pour en créer un`,"settings.agents.sidebar.section.builtIn":`Agents intégrés`,"settings.agents.sidebar.section.custom":`Agents personnalisés`,"settings.agents.sidebar.badge.system":`système`,"settings.agents.sidebar.dialog.deleteTitle":`Supprimer un agent`,"settings.agents.sidebar.dialog.resetTitle":`Agent de réinitialisation`,"settings.agents.sidebar.dialog.deleteDescription":`Etes-vous sûr de vouloir supprimer l'agent "{name}" ?`,"settings.agents.sidebar.dialog.resetDescription":`Êtes-vous sûr de vouloir réinitialiser l'agent «\xA0{name}\xA0» à sa configuration par défaut ?`,"settings.agents.sidebar.renameDialog.title":`Renommer l'agent`,"settings.agents.sidebar.renameDialog.description":`Entrez un nouveau nom pour l'agent "@{name}"`,"settings.agents.sidebar.renameDialog.placeholder":`Nouveau nom d'agent...`,"settings.agents.sidebar.toast.builtInCannotDelete":`Les agents intégrés ne peuvent pas être supprimés`,"settings.agents.sidebar.toast.agentDeleted":`Agent "{name}" supprimé avec succès`,"settings.agents.sidebar.toast.agentReset":`Agent "{name}" réinitialisé aux valeurs par défaut`,"settings.agents.sidebar.toast.deleteFailed":`Échec de la suppression de l'agent`,"settings.agents.sidebar.toast.definitionNotFound":`Définition de l’agent introuvable. Aucune modification effectuée.`,"settings.agents.sidebar.toast.resetFailed":`Échec de la réinitialisation de l'agent`,"settings.agents.sidebar.toast.agentNameRequired":`Le nom de l'agent est requis`,"settings.agents.sidebar.toast.agentExists":`Un agent portant ce nom existe déjà`,"settings.agents.sidebar.toast.removeOldAfterRenameFailed":`Échec de la suppression de l'ancien agent après le changement de nom`,"settings.agents.sidebar.toast.renameFailed":`Échec du changement de nom de l'agent`,"settings.agents.sidebar.toast.agentRenamed":`Agent renommé en "{name}"`,"settings.agents.page.toast.permissionNameRequired":`Le nom de l'autorisation est requis`,"settings.agents.page.toast.created":`Agent créé avec succès`,"settings.agents.page.toast.updated":`Agent mis à jour avec succès`,"settings.agents.page.toast.createFailed":`Échec de la création de l'agent`,"settings.agents.page.toast.updateFailed":`Échec de la mise à jour de l'agent`,"settings.agents.page.toast.saveUnexpectedError":`Une erreur s'est produite lors de l'enregistrement`,"settings.agents.page.toast.savedManualRestart":`Enregistré sur le disque. Redémarrez votre serveur OpenCode connecté pour appliquer les modifications.`,"settings.agents.page.empty.title":`Sélectionnez un agent dans la barre latérale`,"settings.agents.page.empty.description":`ou créez-en un nouveau`,"settings.agents.page.title.new":`Nouvel agent`,"settings.agents.page.subtitle.new":`Configurer un nouveau personnage d'assistant`,"settings.agents.page.subtitle.edit":`Modifier les paramètres de l'agent`,"settings.agents.page.section.identityRole":`Identité et rôle`,"settings.agents.page.section.modelParameters":`Modèle et paramètres`,"settings.agents.page.section.systemPrompt":`Prompt système`,"settings.agents.page.section.toolPermissions":`Autorisations des outils`,"settings.agents.page.field.agentName":`Nom de l'agent`,"settings.agents.page.field.agentNamePlaceholder":`nom-agent`,"settings.agents.page.field.scopePlaceholder":`Portée`,"settings.agents.page.field.descriptionPlaceholder":`Que fait cet agent ?`,"settings.agents.page.field.mode":`Mode`,"settings.agents.page.field.modeTooltip":`Visibilité principale et sous-agent`,"settings.agents.page.field.overrideModel":`Remplacer le modèle`,"settings.agents.page.field.variant":`Variante de réflexion`,"settings.agents.page.field.variantTooltip":`Optionnel. Si le modèle prend en charge le raisonnement, la variante contrôle la profondeur du raisonnement.`,"settings.agents.page.field.variantHint":`Spécifique au modèle (par ex. variante Anthropic)`,"settings.agents.page.field.variantPlaceholder":`par ex. high, max, low, none`,"settings.agents.page.field.temperature":`Température`,"settings.agents.page.field.temperatureTooltip":`Contrôle le caractère aléatoire. Plus élevé = créatif, Inférieur = concentré.`,"settings.agents.page.field.temperatureRange":`0.0 à 2.0`,"settings.agents.page.field.clearTemperatureAria":`Effacer le remplacement de la température`,"settings.agents.page.field.topP":`Haut P`,"settings.agents.page.field.topPTooltip":`Diversité d'échantillonnage du noyau. Inférieur = jetons probables uniquement.`,"settings.agents.page.field.topPRange":`0.0 à 1.0`,"settings.agents.page.field.clearTopPAria":`Effacer le remplacement p supérieur`,"settings.agents.page.field.systemPromptPlaceholder":`Vous êtes un assistant expert en codage...`,"settings.agents.page.mode.primary":`Primaire`,"settings.agents.page.mode.subagent":`Sous-agent`,"settings.agents.page.mode.all":`Tous`,"settings.agents.page.permissions.defaultLabel":`Défaut`,"settings.agents.page.permissions.hideEditor":`Masquer l'éditeur`,"settings.agents.page.permissions.advancedEditor":`Éditeur avancé`,"settings.agents.page.permissions.globalSummary":`Mondial : {summary}`,"settings.agents.page.permissions.rulesSummary":`Règles : {summary}`,"settings.agents.page.permissions.globalDefault":`Valeur par défaut globale`,"settings.agents.page.permissions.pattern":`Modèle`,"settings.agents.page.permissions.addCustomRule":`Ajouter une règle personnalisée`,"settings.agents.page.permissions.permissionPlaceholder":`Autorisation...`,"settings.agents.page.permissions.patternPlaceholder":`Modèle (e.g. *)`,"settings.page.behavior.title":`Comportement`,"settings.behavior.page.title":`Comportement`,"settings.behavior.page.warning.title":`Les règles globales sont combinées avec les règles du projet`,"settings.behavior.page.warning.description":`Les modifications apportées ici mettent à jour {path}. OpenCode inclut également toutes les règles AGENTS.md au niveau du projet lorsqu'elles existent.`,"settings.behavior.page.section.systemPrompt":`Mondial AGENTS.md`,"settings.behavior.page.field.systemPromptPlaceholder":`Vous êtes un assistant IA utile...
|
|
1
|
+
var e={"settings.globalConfig.title":`Configuration globale`,"settings.globalConfig.description":`Modifiez les fichiers de configuration actifs dans ~/.config/opencode.`,"settings.globalConfig.actions.reload":`Recharger le fichier`,"settings.globalConfig.restartHint":`Redémarrez OpenCode après l’enregistrement pour appliquer les modifications de configuration.`,"settings.globalConfig.toast.loadFailed":`Échec du chargement du fichier de configuration`,"settings.globalConfig.toast.saveFailed":`Échec de l’enregistrement du fichier de configuration`,"settings.globalConfig.toast.saved":`Configuration enregistrée. Redémarrez OpenCode pour l’appliquer.`,"settings.providers.page.openCodeGo.title":`Suivi de l’utilisation d’OpenCode Go`,"settings.providers.page.openCodeGo.description":`Connectez le tableau de bord OpenCode Go pour afficher les quotas glissant, hebdomadaire et mensuel.`,"settings.providers.page.openCodeGo.workspaceId":`ID de l’espace de travail`,"settings.providers.page.openCodeGo.authCookie":`Cookie d’authentification`,"settings.providers.page.openCodeGo.help":`Copiez l’ID depuis l’URL du tableau de bord et le cookie auth depuis les outils du navigateur. OpenChamber n’analyse jamais les cookies du navigateur.`,"settings.providers.page.openCodeGo.save":`Enregistrer et valider`,"settings.providers.page.openCodeGo.replace":`Remplacer`,"settings.providers.page.openCodeGo.validate":`Valider`,"settings.providers.page.openCodeGo.delete":`Supprimer`,"settings.providers.page.quotaCredentials.saved":`Identifiants de {provider} enregistrés.`,"settings.providers.page.openCodeGo.saveFailed":`Impossible de valider les identifiants OpenCode Go.`,"settings.providers.page.openCodeGo.valid":`Les identifiants OpenCode Go sont valides.`,"settings.providers.page.openCodeGo.invalid":`Les identifiants OpenCode Go sont invalides ou expirés.`,"settings.providers.page.openCodeGo.deleted":`Identifiants OpenCode Go supprimés.`,"settings.providers.page.openCodeGo.deleteFailed":`Impossible de supprimer les identifiants OpenCode Go.`,"settings.appearance.language.label":`Langue`,"settings.appearance.language.description":`Choisissez la langue de l'interface.`,"settings.appearance.language.select":`Sélectionnez la langue`,"settings.window.description":`Fenêtre des paramètres OpenChamber.`,"settings.view.home.title":`Paramètres`,"settings.view.home.description":`Accédez aux pages communes.`,"settings.view.home.cards.providers.title":`Fournisseurs`,"settings.view.home.cards.providers.description":`Connecter les modèles + les identifiants`,"settings.view.home.cards.agents.title":`Agents`,"settings.view.home.cards.agents.description":`Invites, outils, autorisations`,"settings.view.home.cards.skillsCatalog.title":`Catalogue de skills`,"settings.view.home.cards.skillsCatalog.description":`Installer des skills depuis des catalogues`,"settings.view.home.cards.mcp.title":`MCP`,"settings.view.home.cards.mcp.description":`Configurer les serveurs MCP + connexions`,"settings.view.home.cards.plugins.title":`Plugins`,"settings.view.home.cards.plugins.description":`Gérer les plugins OpenCode`,"settings.view.home.cards.usage.title":`Usage`,"settings.view.home.cards.usage.description":`Quota + visibilité des dépenses`,"settings.view.unavailable.title":`Pas disponible`,"settings.view.unavailable.description":`Cette page de paramètres n'est pas disponible dans ce runtime.`,"settings.view.badge.beta":`bêta`,"settings.view.actions.reloadOpenCode":`Recharger OpenCode`,"settings.view.actions.reloadOpenCodeTooltip":`Redémarrez OpenCode et rechargez sa configuration.`,"settings.view.actions.backToSettings":`Retour aux paramètres`,"settings.view.actions.closeSettings":`Fermer les paramètres`,"settings.view.actions.openSectionList":`Ouvrir la liste des sections`,"settings.view.actions.closeSettingsWithShortcut":`Fermer les paramètres ({shortcut}+,)`,"settings.view.actions.back":`Retour`,"settings.view.actions.resizeNavigation":`Redimensionner la navigation dans les paramètres`,"settings.view.navigation.groups.connection":`Connexion`,"settings.view.navigation.groups.personalization":`Personnalisation`,"settings.view.navigation.groups.workspace":`Espace de travail`,"settings.view.navigation.groups.opencode":`OpenCode`,"settings.view.navigation.groups.content":`Contenu et automatisation`,"settings.view.navigation.groups.system":`Système`,"settings.page.projects.title":`Projets`,"settings.page.remoteInstances.title":`Instances distantes`,"settings.page.providers.title":`Fournisseurs`,"settings.page.usage.title":`Usage`,"settings.page.agents.title":`Agents`,"settings.page.commands.title":`Commandes`,"settings.page.mcp.title":`MCP`,"settings.page.plugins.title":`Plugins`,"settings.page.skills.title":`Skills`,"settings.page.skillsCatalog.title":`Catalogue de skills`,"settings.page.git.title":`Git`,"settings.page.appearance.title":`Apparence`,"settings.page.chat.title":`Chat`,"settings.page.shortcuts.title":`Raccourcis`,"settings.page.sessions.title":`Sessions`,"settings.page.archivedSessions.title":`Sessions archivées`,"settings.page.summaryAI.title":`Résumés IA`,"settings.page.magicPrompts.title":`Prompts magiques`,"settings.page.notifications.title":`Notifications`,"settings.page.voice.title":`Voix`,"settings.page.snippets.title":`Extraits`,"settings.snippets.sidebar.title":`Extraits`,"settings.snippets.sidebar.total":`Total : {count}`,"settings.snippets.sidebar.actions.create":`Créer un extrait`,"settings.snippets.sidebar.actions.more":`Plus de propositions pour {name}`,"settings.snippets.sidebar.toast.deleted":`Extrait supprimé`,"settings.snippets.sidebar.toast.deleteFailed":`Échec de la suppression de l'extrait`,"settings.snippets.sidebar.dialog.deleteTitle":`Supprimer l'extrait ?`,"settings.snippets.sidebar.dialog.deleteDescription":`Cela supprimera définitivement #{name}.`,"settings.snippets.page.empty.title":`Sélectionnez un extrait`,"settings.snippets.page.empty.description":`Choisissez un extrait dans la barre latérale pour le modifier.`,"settings.snippets.page.title.new":`Nouvel extrait`,"settings.snippets.page.field.namePlaceholder":`nom de l'extrait`,"settings.snippets.page.field.descriptionPlaceholder":`À quoi sert cet extrait`,"settings.snippets.page.field.aliases":`Alias`,"settings.snippets.page.field.aliasesPlaceholder":`en sécurité, prudent`,"settings.snippets.page.field.content":`Contenu`,"settings.snippets.page.field.contentPlaceholder":`Markdown de l'extrait...`,"settings.snippets.page.hint":`Utilisez #name dans les prompts. Prend en charge les alias et les blocs de pré-ajout/ajout compatibles avec les extraits de code opencode.`,"settings.snippets.page.toast.nameRequired":`Le nom de l'extrait est obligatoire`,"settings.snippets.page.toast.contentRequired":`Le contenu de l'extrait est requis`,"settings.snippets.page.toast.saveFailed":`Échec de l'enregistrement de l'extrait`,"settings.snippets.page.toast.saved":`Extrait enregistré`,"settings.page.promptTemplates.title":`Modèles de prompt`,"settings.promptTemplates.sidebar.title":`Modèles de prompt`,"settings.promptTemplates.sidebar.total":`Total : {count}`,"settings.promptTemplates.sidebar.empty.title":`Aucun modèle de prompt`,"settings.promptTemplates.sidebar.empty.description":`Créez un modèle de prompt pour commencer.`,"settings.promptTemplates.sidebar.toast.deleted":`Modèle "{name}" supprimé`,"settings.promptTemplates.sidebar.toast.deleteFailed":`Échec de la suppression du modèle`,"settings.promptTemplates.sidebar.toast.nameRequired":`Le nom du modèle est obligatoire`,"settings.promptTemplates.sidebar.toast.renamed":`Modèle renommé`,"settings.promptTemplates.sidebar.toast.renameFailed":`Échec du changement de nom du modèle`,"settings.promptTemplates.sidebar.dialog.deleteTitle":`Supprimer le modèle ?`,"settings.promptTemplates.sidebar.dialog.deleteDescription":`Cela supprimera définitivement "{name}". Cette action ne peut pas être annulée.`,"settings.promptTemplates.sidebar.renameDialog.title":`Renommer le modèle`,"settings.promptTemplates.sidebar.renameDialog.description":`Entrez un nouveau nom pour "{name}".`,"settings.promptTemplates.sidebar.renameDialog.placeholder":`Nom du modèle`,"settings.promptTemplates.sidebar.badge.default":`défaut`,"settings.promptTemplates.page.empty.title":`Sélectionnez un modèle`,"settings.promptTemplates.page.empty.description":`Choisissez un modèle dans la barre latérale pour le modifier.`,"settings.promptTemplates.page.title.new":`Nouveau modèle`,"settings.promptTemplates.page.subtitle.edit":`Modifier le modèle`,"settings.promptTemplates.page.subtitle.new":`Créer un nouveau modèle de prompt`,"settings.promptTemplates.page.section.identity":`Identité`,"settings.promptTemplates.page.field.name":`Nom`,"settings.promptTemplates.page.field.namePlaceholder":`Nom du modèle`,"settings.promptTemplates.page.section.template":`Modèle`,"settings.promptTemplates.page.field.templatePlaceholder":`Saisissez le texte du modèle de prompt...`,"settings.promptTemplates.page.templateHint":`Ce texte sera ajouté au début du prompt de l'utilisateur lorsqu'il est sélectionné dans un groupe multi-run.`,"settings.promptTemplates.page.toast.nameRequired":`Le nom du modèle est obligatoire`,"settings.promptTemplates.page.toast.updated":`Modèle mis à jour`,"settings.promptTemplates.page.toast.updateFailed":`Échec de la mise à jour du modèle`,"settings.promptTemplates.page.toast.created":`Modèle créé`,"settings.promptTemplates.page.toast.createFailed":`Échec de la création du modèle`,"settings.promptTemplates.page.toast.saveUnexpectedError":`Une erreur inattendue s'est produite lors de l'enregistrement`,"settings.magicPrompts.sidebar.title":`Prompts magiques`,"settings.magicPrompts.sidebar.description":`Sélectionnez un modèle de prompt à modifier.`,"settings.magicPrompts.sidebar.group.git":`Git`,"settings.magicPrompts.sidebar.group.github":`GitHub`,"settings.magicPrompts.sidebar.group.session":`Session`,"settings.magicPrompts.sidebar.item.gitCommitGenerate":`Génération de commit`,"settings.magicPrompts.sidebar.item.gitPrGenerate":`Génération de PR`,"settings.magicPrompts.sidebar.item.gitConflictResolve":`Résolution des conflits de fusion/rebase`,"settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve":`Résolution des conflits par sélection`,"settings.magicPrompts.sidebar.item.githubPrReview":`Revue de PR`,"settings.magicPrompts.sidebar.item.githubIssueReview":`Examen du problème`,"settings.magicPrompts.sidebar.item.githubPrFailedChecksReview":`Examen des checks PR en échec`,"settings.magicPrompts.sidebar.item.githubPrCommentsReview":`Examen des commentaires PR`,"settings.magicPrompts.sidebar.item.githubSinglePrCommentReview":`Examen des commentaires PR uniques`,"settings.magicPrompts.sidebar.item.sessionSummary":`Résumé de la session`,"settings.magicPrompts.sidebar.item.sessionWorkspaceReview":`Examen de l'espace de travail`,"settings.magicPrompts.sidebar.item.sessionFusion":`Fusion`,"settings.remoteInstances.sidebar.title":`Instances distantes`,"settings.remoteInstances.sidebar.description":`Connectez-vous à d’autres serveurs OpenChamber via un lien d’import ou SSH.`,"settings.remoteInstances.sidebar.empty":`Aucune instance distante pour le moment. Importez un lien ou ajoutez une connexion SSH.`,"settings.remoteInstances.channel.link":`Lien`,"settings.remoteInstances.channel.ssh":`SSH`,"settings.remoteInstances.sidebar.total":`Total {count}`,"settings.remoteInstances.sidebar.newSshInstanceName":`Nouvelle instance SSH`,"settings.remoteInstances.sidebar.actions.addSshInstance":`Ajouter une instance SSH`,"settings.remoteInstances.sidebar.actions.connect":`Connecter`,"settings.remoteInstances.sidebar.actions.disconnect":`Déconnecter`,"settings.remoteInstances.sidebar.actions.retry":`Réessayer`,"settings.remoteInstances.sidebar.actions.remove":`Retirer`,"settings.remoteInstances.sidebar.confirm.localPortInUseRetry":`Le port local est déjà utilisé. Choisir un port local gratuit et réessayer ?`,"settings.remoteInstances.sidebar.toast.createFailed":`Échec de la création de l'instance SSH`,"settings.remoteInstances.sidebar.toast.retriedWithRandomPort":`Réessayé avec un port local aléatoire`,"settings.remoteInstances.sidebar.toast.connectFailed":`Échec de la connexion de l'instance`,"settings.remoteInstances.sidebar.toast.disconnectFailed":`Échec de la déconnexion de l'instance`,"settings.remoteInstances.sidebar.toast.retryFailed":`Échec de la nouvelle tentative de connexion`,"settings.remoteInstances.sidebar.toast.removeFailed":`Échec de la suppression de l'instance`,"settings.remoteInstances.sidebar.phase.ready":`Prêt`,"settings.remoteInstances.sidebar.phase.error":`Erreur`,"settings.remoteInstances.sidebar.phase.reconnect":`Reconnecter`,"settings.remoteInstances.sidebar.phase.installing":`Installation`,"settings.remoteInstances.sidebar.phase.updating":`Mise à jour`,"settings.remoteInstances.sidebar.phase.forwarding":`Transfert`,"settings.remoteInstances.sidebar.phase.starting":`Démarrage`,"settings.remoteInstances.sidebar.phase.connecting":`Connexion`,"settings.remoteInstances.sidebar.phase.idle":`Inactif`,"settings.remoteInstances.page.section.instance":`Instance`,"settings.remoteInstances.page.section.instanceDescription":`Paramètres de base du SSH.`,"settings.remoteInstances.page.field.mode":`Mode`,"settings.remoteInstances.page.field.modeHint":`Installations/mises à jour gérées et démarrage de OpenChamber à distance. Externe suppose qu'il est déjà en cours d'exécution.`,"settings.remoteInstances.page.field.modePlaceholder":`Sélectionnez le mode`,"settings.remoteInstances.page.field.modeManaged":`Géré (démarrage automatique)`,"settings.remoteInstances.page.field.modeExternal":`Externe (déjà en cours d'exécution)`,"settings.remoteInstances.page.field.preferredRemotePort":`Port distant préféré`,"settings.remoteInstances.page.field.preferredRemotePortHint":`Le port OpenChamber doit être utilisé sur l'hôte distant. Laissez vide pour laisser le runtime choisir.`,"settings.remoteInstances.page.field.keepServerRunning":`Maintenir le serveur en marche`,"settings.remoteInstances.page.field.keepServerRunningHint":`S'il est activé, le démon OpenChamber continue de s'exécuter à distance lorsque vous vous déconnectez.`,"settings.remoteInstances.page.field.bindHost":`Lier l'hôte`,"settings.remoteInstances.page.field.bindHostHint":`Interface réseau pour l’URL locale principale. Utilisez 127.0.0.1/localhost pour un accès uniquement local.`,"settings.remoteInstances.page.field.preferredLocalPort":`Port local préféré`,"settings.remoteInstances.page.field.preferredLocalPortHint":`Port local préféré pour le tunnel principal OpenChamber. Laissez vide pour la sélection automatique.`,"settings.remoteInstances.page.field.forwardType":`Type de transfert`,"settings.remoteInstances.page.field.localListen":`Écoute locale`,"settings.remoteInstances.page.field.localTarget":`Cible locale`,"settings.remoteInstances.page.field.remoteListen":`Écoute distante`,"settings.remoteInstances.page.field.remoteTarget":`Cible distante`,"settings.remoteInstances.page.field.localHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.remoteHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.auto":`Auto`,"settings.remoteInstances.page.confirm.bindAllInterfaces":`La liaison à 0.0.0.0 expose les ports transférés à votre réseau local. Continuer?`,"settings.remoteInstances.page.preview.localSocks5":`(SOCKS5 local)`,"settings.remoteInstances.page.preview.local":`(local)`,"settings.remoteInstances.page.preview.remote":`(hôte distant)`,"settings.remoteInstances.page.toast.openLocalEndpointFailed":`Échec de l'ouverture du point de terminaison local`,"settings.remoteInstances.page.toast.localUrlCopied":`URL locale copiée`,"settings.remoteInstances.page.actions.copyLocalUrl":`Copier l’URL locale`,"settings.remoteInstances.page.actions.open":`Ouvrir`,"settings.remoteInstances.page.logsDialog.selectedInstanceFallback":`Instance sélectionnée`,"settings.remoteInstances.page.patternDialog.descriptionWithHost":`{host} nécessite une destination concrète.`,"settings.remoteInstances.page.patternDialog.description":`Entrez la destination.`,"settings.common.actions.cancel":`Annuler`,"settings.common.actions.create":`Créer`,"settings.common.actions.delete":`Supprimer`,"settings.common.actions.reset":`Réinitialiser`,"settings.common.actions.rename":`Rebaptiser`,"settings.common.actions.duplicate":`Dupliquer`,"settings.common.actions.import":`Importer`,"settings.common.actions.copyAll":`Copier tout`,"settings.common.actions.clear":`Effacer`,"settings.common.actions.saving":`Enregistrement...`,"settings.common.actions.saveChanges":`Enregistrer les modifications`,"settings.common.scope.global":`Mondial`,"settings.common.scope.project":`Projet`,"settings.common.field.description":`Description`,"settings.common.badge.new":`Nouveau`,"settings.common.badge.modified":`Modifié`,"settings.common.permission.allow":`Permettre`,"settings.common.permission.ask":`Demander`,"settings.common.permission.deny":`Refuser`,"settings.common.state.comingSoon":`À venir...`,"settings.projects.actions.title":`Actions`,"settings.projects.actions.description":`Commandes par projet affichées dans l'en-tête à côté du nom du projet.`,"settings.projects.actions.validation.fillNameAndCommand":`Remplissez le nom de l'action et la commande avant d'enregistrer.`,"settings.projects.actions.state.loading":`Chargement...`,"settings.projects.actions.state.empty":`Aucune action configurée pour le moment.`,"settings.projects.actions.state.untitled":`Action sans titre`,"settings.projects.actions.state.noDesktopSshForwards":`Aucun transfert local SSH activé disponible.`,"settings.projects.actions.field.selectIconAria":`Sélectionner l'icône`,"settings.projects.actions.field.iconAria":`Icône {icon}`,"settings.projects.actions.field.actionNamePlaceholder":`Nom de l'action`,"settings.projects.actions.field.command":`Commande`,"settings.projects.actions.field.commandPlaceholder":`p. ex. bun install`,"settings.projects.actions.field.autoOpenUrl":`Ouverture automatique de l’URL`,"settings.projects.actions.field.autoOpenUrlForAria":`Ouverture automatique de l’URL pour {title}`,"settings.projects.actions.field.autoOpenUrlDescription":`Ouvrir l’URL détectée dans la sortie, ou l’URL personnalisée ci-dessous`,"settings.projects.actions.field.overrideUrlPlaceholder":`Remplacer URL (facultatif)`,"settings.projects.actions.field.overrideUrlTooltip":`Si ce champ est rempli, l’URL personnalisée est utilisée. Sinon, l'application ouvre la meilleure URL détectée dans la sortie.`,"settings.projects.actions.field.desktopSshForward":`Transfert SSH local`,"settings.projects.actions.field.useOutputManualUrl":`Utiliser l’URL de sortie ou l’URL manuelle`,"settings.projects.actions.actions.add":`Ajouter une action`,"settings.projects.actions.actions.save":`Enregistrer les actions`,"settings.projects.actions.toast.saveFailed":`Échec de l'enregistrement des actions`,"settings.projects.actions.toast.saved":`Actions du projet enregistrées`,"settings.openchamber.about.title":`À propos de OpenChamber`,"settings.openchamber.about.field.version":`Version`,"settings.openchamber.about.field.clientVersion":`Client`,"settings.openchamber.about.field.webBundle":`Bundle web`,"settings.openchamber.about.field.instanceOpenChamberVersion":`OpenChamber`,"settings.openchamber.about.field.instanceOpenCodeVersion":`OpenCode`,"settings.openchamber.about.state.checking":`Vérification...`,"settings.openchamber.about.state.upToDate":`À jour`,"settings.openchamber.about.state.builtin":`intégré`,"settings.openchamber.about.actions.checkUpdates":`Vérifier les mises à jour`,"settings.openchamber.about.actions.update":`Mise à jour`,"settings.openchamber.about.actions.updateToVersion":`Mise à jour vers {version}`,"settings.openchamber.about.actions.applyOtaToVersion":`Mettre à jour vers {version}`,"settings.openchamber.about.actions.installNativeToVersion":`Installer {version}`,"settings.openchamber.about.actions.checkForUpdates":`Vérifier les mises à jour`,"settings.openchamber.about.actions.submitFeedback":`Envoyer des commentaires`,"settings.openchamber.about.toast.latestVersion":`Vous êtes sur la dernière version`,"settings.openchamber.about.toast.checkFailed":`Impossible de vérifier les mises à jour`,"settings.openchamber.about.betaUpdates.label":`Rejoindre les mises à jour bêta`,"settings.openchamber.about.betaUpdates.description":`Recevez les mises à jour de l’application en avant-première sur cet appareil.`,"settings.openchamber.about.betaUpdates.rollback.title":`Revenir à la version stable ?`,"settings.openchamber.about.betaUpdates.rollback.description":`Vous utilisez une version bêta. La désactivation des mises à jour bêta ramènera OpenChamber à la version stable v{version}. Redémarrez l’application pour appliquer ce changement.`,"settings.openchamber.about.betaUpdates.rollback.actions.cancel":`Garder la bêta`,"settings.openchamber.about.betaUpdates.rollback.actions.confirm":`Revenir à la version stable`,"settings.openchamber.about.diagnostics.label":`Journal de diagnostic`,"settings.openchamber.about.diagnostics.description":`Exporte les feat de diagnostic locaux pour analyser les problèmes d’affichage et de synchronisation. Aucun corps de message ni jeton n’est inclus.`,"settings.openchamber.about.diagnostics.export":`Exporter le journal`,"settings.openchamber.about.diagnostics.exporting":`Exportation…`,"settings.openchamber.about.diagnostics.enable":`Enregistrer les feat de diagnostic`,"settings.openchamber.about.diagnostics.enableHint":`Disponible dans les versions bêta. Enregistre sur cet appareil le cycle de synchronisation et d’affichage de la session, sans le corps du message.`,"settings.openchamber.about.diagnostics.toast.exported":`Journal de diagnostic exporté`,"settings.openchamber.about.diagnostics.toast.failed":`Impossible d’exporter le journal de diagnostic`,"settings.openchamber.about.diagnostics.toast.empty":`Journal de diagnostic exporté. Aucun événement n’a encore été enregistré.`,"settings.agents.sidebar.title":`Agents`,"settings.agents.sidebar.total":`Total {count}`,"settings.agents.sidebar.empty.title":`Aucun agent configuré`,"settings.agents.sidebar.empty.description":`Utilisez le bouton + ci-dessus pour en créer un`,"settings.agents.sidebar.section.builtIn":`Agents intégrés`,"settings.agents.sidebar.section.custom":`Agents personnalisés`,"settings.agents.sidebar.badge.system":`système`,"settings.agents.sidebar.dialog.deleteTitle":`Supprimer un agent`,"settings.agents.sidebar.dialog.resetTitle":`Agent de réinitialisation`,"settings.agents.sidebar.dialog.deleteDescription":`Etes-vous sûr de vouloir supprimer l'agent "{name}" ?`,"settings.agents.sidebar.dialog.resetDescription":`Êtes-vous sûr de vouloir réinitialiser l'agent «\xA0{name}\xA0» à sa configuration par défaut ?`,"settings.agents.sidebar.renameDialog.title":`Renommer l'agent`,"settings.agents.sidebar.renameDialog.description":`Entrez un nouveau nom pour l'agent "@{name}"`,"settings.agents.sidebar.renameDialog.placeholder":`Nouveau nom d'agent...`,"settings.agents.sidebar.toast.builtInCannotDelete":`Les agents intégrés ne peuvent pas être supprimés`,"settings.agents.sidebar.toast.agentDeleted":`Agent "{name}" supprimé avec succès`,"settings.agents.sidebar.toast.agentReset":`Agent "{name}" réinitialisé aux valeurs par défaut`,"settings.agents.sidebar.toast.deleteFailed":`Échec de la suppression de l'agent`,"settings.agents.sidebar.toast.definitionNotFound":`Définition de l’agent introuvable. Aucune modification effectuée.`,"settings.agents.sidebar.toast.resetFailed":`Échec de la réinitialisation de l'agent`,"settings.agents.sidebar.toast.agentNameRequired":`Le nom de l'agent est requis`,"settings.agents.sidebar.toast.agentExists":`Un agent portant ce nom existe déjà`,"settings.agents.sidebar.toast.removeOldAfterRenameFailed":`Échec de la suppression de l'ancien agent après le changement de nom`,"settings.agents.sidebar.toast.renameFailed":`Échec du changement de nom de l'agent`,"settings.agents.sidebar.toast.agentRenamed":`Agent renommé en "{name}"`,"settings.agents.page.toast.permissionNameRequired":`Le nom de l'autorisation est requis`,"settings.agents.page.toast.created":`Agent créé avec succès`,"settings.agents.page.toast.updated":`Agent mis à jour avec succès`,"settings.agents.page.toast.createFailed":`Échec de la création de l'agent`,"settings.agents.page.toast.updateFailed":`Échec de la mise à jour de l'agent`,"settings.agents.page.toast.saveUnexpectedError":`Une erreur s'est produite lors de l'enregistrement`,"settings.agents.page.toast.savedManualRestart":`Enregistré sur le disque. Redémarrez votre serveur OpenCode connecté pour appliquer les modifications.`,"settings.agents.page.empty.title":`Sélectionnez un agent dans la barre latérale`,"settings.agents.page.empty.description":`ou créez-en un nouveau`,"settings.agents.page.title.new":`Nouvel agent`,"settings.agents.page.subtitle.new":`Configurer un nouveau personnage d'assistant`,"settings.agents.page.subtitle.edit":`Modifier les paramètres de l'agent`,"settings.agents.page.section.identityRole":`Identité et rôle`,"settings.agents.page.section.modelParameters":`Modèle et paramètres`,"settings.agents.page.section.systemPrompt":`Prompt système`,"settings.agents.page.section.toolPermissions":`Autorisations des outils`,"settings.agents.page.field.agentName":`Nom de l'agent`,"settings.agents.page.field.agentNamePlaceholder":`nom-agent`,"settings.agents.page.field.scopePlaceholder":`Portée`,"settings.agents.page.field.descriptionPlaceholder":`Que fait cet agent ?`,"settings.agents.page.field.mode":`Mode`,"settings.agents.page.field.modeTooltip":`Visibilité principale et sous-agent`,"settings.agents.page.field.overrideModel":`Remplacer le modèle`,"settings.agents.page.field.variant":`Variante de réflexion`,"settings.agents.page.field.variantTooltip":`Optionnel. Si le modèle prend en charge le raisonnement, la variante contrôle la profondeur du raisonnement.`,"settings.agents.page.field.variantHint":`Spécifique au modèle (par ex. variante Anthropic)`,"settings.agents.page.field.variantPlaceholder":`par ex. high, max, low, none`,"settings.agents.page.field.temperature":`Température`,"settings.agents.page.field.temperatureTooltip":`Contrôle le caractère aléatoire. Plus élevé = créatif, Inférieur = concentré.`,"settings.agents.page.field.temperatureRange":`0.0 à 2.0`,"settings.agents.page.field.clearTemperatureAria":`Effacer le remplacement de la température`,"settings.agents.page.field.topP":`Haut P`,"settings.agents.page.field.topPTooltip":`Diversité d'échantillonnage du noyau. Inférieur = jetons probables uniquement.`,"settings.agents.page.field.topPRange":`0.0 à 1.0`,"settings.agents.page.field.clearTopPAria":`Effacer le remplacement p supérieur`,"settings.agents.page.field.systemPromptPlaceholder":`Vous êtes un assistant expert en codage...`,"settings.agents.page.mode.primary":`Primaire`,"settings.agents.page.mode.subagent":`Sous-agent`,"settings.agents.page.mode.all":`Tous`,"settings.agents.page.permissions.defaultLabel":`Défaut`,"settings.agents.page.permissions.hideEditor":`Masquer l'éditeur`,"settings.agents.page.permissions.advancedEditor":`Éditeur avancé`,"settings.agents.page.permissions.globalSummary":`Mondial : {summary}`,"settings.agents.page.permissions.rulesSummary":`Règles : {summary}`,"settings.agents.page.permissions.globalDefault":`Valeur par défaut globale`,"settings.agents.page.permissions.pattern":`Modèle`,"settings.agents.page.permissions.addCustomRule":`Ajouter une règle personnalisée`,"settings.agents.page.permissions.permissionPlaceholder":`Autorisation...`,"settings.agents.page.permissions.patternPlaceholder":`Modèle (e.g. *)`,"settings.page.behavior.title":`Comportement`,"settings.behavior.page.title":`Comportement`,"settings.behavior.page.warning.title":`Les règles globales sont combinées avec les règles du projet`,"settings.behavior.page.warning.description":`Les modifications apportées ici mettent à jour {path}. OpenCode inclut également toutes les règles AGENTS.md au niveau du projet lorsqu'elles existent.`,"settings.behavior.page.section.systemPrompt":`Mondial AGENTS.md`,"settings.behavior.page.field.systemPromptPlaceholder":`Vous êtes un assistant IA utile...
|
|
2
2
|
|
|
3
3
|
Utilisez cet espace pour définir des règles absolues sur la façon dont l'IA doit se comporter dans toutes les sessions et tous les fournisseurs.`,"settings.behavior.page.section.responseStyle":`Style de réponse`,"settings.behavior.page.responseStyle.tooltip":`Lorsqu'elles sont activées, ces instructions guident la manière dont l'assistant répond à chaque nouvelle conversation. Ils sont envoyés avec votre premier message et ne modifient pas vos règles globales AGENTS.md.`,"settings.behavior.page.responseStyle.enableAria":`Activer les instructions de style de réponse`,"settings.behavior.page.responseStyle.enable":`Ajouter des instructions de style de réponse aux nouvelles conversations`,"settings.behavior.page.responseStyle.preset":`Préréglage`,"settings.behavior.page.responseStyle.option.concise":`Concis`,"settings.behavior.page.responseStyle.option.detailed":`Détaillé`,"settings.behavior.page.responseStyle.option.mentor":`Mentor`,"settings.behavior.page.responseStyle.option.pushback":`Repoussement`,"settings.behavior.page.responseStyle.option.noFiller":`Pas de remplissage`,"settings.behavior.page.responseStyle.option.matchEnergy":`Correspond à mon énergie`,"settings.behavior.page.responseStyle.option.warmPeer":`Pair chaleureux`,"settings.behavior.page.responseStyle.option.custom":`Personnalisé`,"settings.behavior.page.responseStyle.customPlaceholder":`Écrivez l'instruction à ajouter au premier message...`,"settings.behavior.page.toast.saved":`Comportement enregistré avec succès`,"settings.behavior.page.toast.saveFailed":`Échec de l'enregistrement du comportement`,"settings.commands.sidebar.title":`Commandes`,"settings.commands.sidebar.total":`Total {count}`,"settings.commands.sidebar.empty.title":`Aucune commande configurée`,"settings.commands.sidebar.empty.description":`Utilisez le bouton + ci-dessus pour en créer un`,"settings.commands.sidebar.section.builtIn":`Commandes intégrées`,"settings.commands.sidebar.section.custom":`Commandes personnalisées`,"settings.commands.sidebar.dialog.deleteTitle":`Supprimer la commande`,"settings.commands.sidebar.dialog.resetTitle":`Commande de réinitialisation`,"settings.commands.sidebar.dialog.deleteDescription":`Etes-vous sûr de vouloir supprimer la commande «\xA0{name}\xA0» ?`,"settings.commands.sidebar.dialog.resetDescription":`Êtes-vous sûr de vouloir réinitialiser la commande «\xA0{name}\xA0» à sa configuration par défaut ?`,"settings.commands.sidebar.renameDialog.title":`Commande Renommer`,"settings.commands.sidebar.renameDialog.description":`Entrez un nouveau nom pour la commande "/{name}"`,"settings.commands.sidebar.renameDialog.placeholder":`Nouveau nom de commande...`,"settings.commands.sidebar.toast.builtInCannotDelete":`Les commandes intégrées ne peuvent pas être supprimées`,"settings.commands.sidebar.toast.commandDeleted":`Commande "{name}" supprimée avec succès`,"settings.commands.sidebar.toast.commandReset":`Commande "{name}" réinitialisée aux valeurs par défaut`,"settings.commands.sidebar.toast.deleteFailed":`Échec de la suppression de la commande`,"settings.commands.sidebar.toast.resetFailed":`Échec de la réinitialisation de la commande`,"settings.commands.sidebar.toast.commandNameRequired":`Le nom de la commande est obligatoire`,"settings.commands.sidebar.toast.commandExists":`Une commande portant ce nom existe déjà`,"settings.commands.sidebar.toast.removeOldAfterRenameFailed":`Échec de la suppression de l'ancienne commande après le changement de nom`,"settings.commands.sidebar.toast.renameFailed":`Échec du renommage de la commande`,"settings.commands.page.toast.templateRequired":`Le modèle de commande est requis`,"settings.commands.page.toast.created":`Commande créée avec succès`,"settings.commands.page.toast.updated":`Commande mise à jour avec succès`,"settings.commands.page.toast.createFailed":`Échec de la création de la commande`,"settings.commands.page.toast.updateFailed":`Échec de la mise à jour de la commande`,"settings.commands.page.toast.saveUnexpectedError":`Une erreur s'est produite lors de l'enregistrement`,"settings.commands.page.empty.title":`Sélectionnez une commande dans la barre latérale`,"settings.commands.page.empty.description":`ou créez-en un nouveau`,"settings.commands.page.title.new":`Nouvelle commande`,"settings.commands.page.subtitle.new":`Configurer une nouvelle commande slash`,"settings.commands.page.subtitle.edit":`Modifier les paramètres de la commande`,"settings.commands.page.section.identity":`Identité`,"settings.commands.page.section.executionContext":`Contexte d'exécution`,"settings.commands.page.section.template":`Modèle de commande`,"settings.commands.page.field.commandName":`Nom de la commande`,"settings.commands.page.field.commandNamePlaceholder":`nom-commande`,"settings.commands.page.field.descriptionPlaceholder":`Que fait cette commande ?`,"settings.commands.page.field.overrideAgent":`Remplacer l'agent`,"settings.commands.page.field.templatePlaceholder":`Votre modèle de commande ici...
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./runtime-fetch-zIalUnbb.js";import{Cn as n}from"./persistence-DwRBC4zl.js";import{$ as r,A as i,C as a,F as o,G as s,J as c,K as l,L as u,M as d,N as f,Nt as p,O as m,Q as h,R as ee,S as te,T as ne,X as re,Y as g,Z as ie,_ as ae,at as oe,b as se,c as ce,d as le,gt as ue,h as de,ht as fe,it as pe,lt as me,m as he,nt as ge,o as _e,pt as ve,rt as ye,u as be,ut as xe,v as Se,vt as Ce,w as we,x as Te,xt as Ee,yt as De,z as Oe}from"./platform-DQ5_LNKO.js";import{Ia as ke,Qi as _,Wi as v,c as y,o as Ae}from"./useMobileNavigationStore-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./runtime-fetch-zIalUnbb.js";import{Cn as n}from"./persistence-DwRBC4zl.js";import{$ as r,A as i,C as a,F as o,G as s,J as c,K as l,L as u,M as d,N as f,Nt as p,O as m,Q as h,R as ee,S as te,T as ne,X as re,Y as g,Z as ie,_ as ae,at as oe,b as se,c as ce,d as le,gt as ue,h as de,ht as fe,it as pe,lt as me,m as he,nt as ge,o as _e,pt as ve,rt as ye,u as be,ut as xe,v as Se,vt as Ce,w as we,x as Te,xt as Ee,yt as De,z as Oe}from"./platform-DQ5_LNKO.js";import{Ia as ke,Qi as _,Wi as v,c as y,o as Ae}from"./useMobileNavigationStore-Dj7oxHMY.js";var je=e({applyGitStash:()=>G,checkIsGitRepository:()=>S,checkoutCommit:()=>Ke,cherryPick:()=>qe,countGitStashFiles:()=>U,createBranch:()=>J,createGitIdentity:()=>Z,createGitWorktree:()=>z,deleteGitIdentity:()=>$,deleteGitWorktree:()=>B,deleteRemoteBranch:()=>j,discoverGitCredentials:()=>He,discoverGitRepositories:()=>C,dropGitStash:()=>q,generateCommitMessage:()=>N,getCommitFileDiff:()=>Y,getConflictDetails:()=>Xe,getGitBranches:()=>A,getGitIdentities:()=>X,getGitStatus:()=>w,getGitWorktreeBootstrapStatus:()=>L,getGlobalGitIdentity:()=>Ue,git:()=>V,listGitStashes:()=>H,listGitWorktrees:()=>F,merge:()=>Ge,popGitStash:()=>K,previewGitWorktree:()=>R,rebase:()=>We,resetToCommit:()=>Ye,resolveGitPrimaryRoot:()=>T,resolveGitTopLevel:()=>E,revertCommit:()=>Je,stageGitFile:()=>D,stageGitFiles:()=>O,stashGitChanges:()=>W,unstageGitFile:()=>Pe,unstageGitFiles:()=>k,updateGitIdentity:()=>Q,validateGitWorktree:()=>I}),b=()=>n()?.git??null,Me=e=>{typeof window>`u`||window.dispatchEvent(new CustomEvent(`openchamber:chat-force-scroll-bottom`,{detail:{sessionId:e}}))},x=e=>{let t=e.trim(),n=(t.match(/```(?:json)?\s*([\s\S]*?)```/i)?.[1]??t).trim(),r=[n.indexOf(`{`)].filter(e=>e>=0);for(let e of r)for(let t=n.length;t>e;--t)if(n[t-1]===`}`)try{let r=JSON.parse(n.slice(e,t));if(r&&typeof r==`object`&&!Array.isArray(r))return r}catch{}return null},Ne=e=>{let t=e?.data;return(Array.isArray(t?.parts)?t.parts:[]).map(e=>{let t=e;return t.type===`text`?typeof t.text==`string`?t.text:typeof t.content==`string`?t.content:typeof t.value==`string`?t.value:``:``}).filter(e=>e.trim().length>0).join(`
|
|
2
2
|
`).trim()};async function S(e){let t=b();return t?t.checkIsGitRepository(e):ce(e)}async function C(e){return we(e)}async function w(e,t){let n=b();return n?n.getGitStatus(e,t):u(e,t)}async function T(e){return(await ye(e)).root}async function E(e){return(await pe(e)).root}async function D(e,t){let n=b();return n?.stageGitFile?n.stageGitFile(e,t):me(e,t)}async function O(e,t){let n=b();return n?.stageGitFiles?n.stageGitFiles(e,t):xe(e,t)}async function Pe(e,t){let n=b();return n?.unstageGitFile?n.unstageGitFile(e,t):fe(e,t)}async function k(e,t){let n=b();return n?.unstageGitFiles?n.unstageGitFiles(e,t):ue(e,t)}async function A(e,t){let n=b();if(t?.signal?.throwIfAborted(),n){let r=await n.getGitBranches(e,t);return t?.signal?.throwIfAborted(),r}return d(e,t)}async function j(e,t){let n=b();return n?n.deleteRemoteBranch(e,t):te(e,t)}var Fe=30,Ie=12e4,Le=async(e,t)=>{let n=t.slice(0,Fe),r=await Promise.all(n.map(async t=>{try{let[n,r]=await Promise.all([f(e,{path:t,staged:!0}).catch(()=>null),f(e,{path:t,staged:!1}).catch(()=>null)]);return[n?.diff,r?.diff].filter(e=>typeof e==`string`&&e.trim().length>0).join(`
|
|
3
3
|
`)||`--- ${t} (no textual diff available)`}catch{return`--- ${t} (diff unavailable)`}})),i=``;for(let e of r){if(i.length+e.length>Ie){i+=`
|
|
4
4
|
[remaining diffs truncated]`;break}i+=(i?`
|