Merge remote-tracking branch 'origin/main' into port-2619

# Conflicts:
#	packages/ui/src/components/sections/openchamber/OpenChamberVisualSettings.tsx
This commit is contained in:
Bohdan Triapitsyn
2026-08-29 00:26:49 +03:00
1318 changed files with 118125 additions and 30528 deletions
+166 -43
View File
@@ -1,8 +1,10 @@
import { thirdPartyIntegrationI18n } from './third-party-integrations.i18n';
export const settingsDict = {
'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.apiKey': 'Clave API',
'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',
@@ -40,7 +42,20 @@ export const settingsDict = {
"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.applyAndRestartOpenCode": "Aplicar y reiniciar",
"settings.view.actions.applyAndRestartOpenCodeTooltipSingle": "Aplicar 1 cambio de configuración pendiente y reiniciar OpenCode.",
"settings.view.actions.applyAndRestartOpenCodeTooltipPlural": "Aplicar {count} cambios de configuración pendientes y reiniciar OpenCode.",
"settings.view.pendingRestart.applying": "Reiniciando…",
"settings.view.pendingRestart.applied": "OpenCode se reinició con los cambios de configuración pendientes.",
"settings.view.pendingRestart.applyFailed": "No se pudieron aplicar los cambios de configuración.",
"settings.view.pendingRestart.manualRestartRequired": "Guardado en disco. Reinicia el servidor OpenCode conectado para aplicar los cambios.",
"settings.view.pendingRestart.saved": "Guardado. Reinicia OpenCode para aplicar.",
"settings.view.pendingRestart.confirm.title": "¿Aplicar y reiniciar?",
"settings.view.pendingRestart.confirm.description": "Reiniciar OpenCode detendrá cualquier chat en ejecución. Los cambios de configuración guardados se aplicarán después del reinicio.",
"settings.view.pendingRestart.confirm.dontShowAgain": "No volver a mostrar",
"settings.view.pendingRestart.confirm.cancel": "Cancelar", "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}+,)",
@@ -359,14 +374,14 @@ export const settingsDict = {
"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.preferredRemotePort": "Puerto en la máquina remota",
"settings.remoteInstances.page.field.preferredRemotePortHint": "Puerto que OpenChamber usa en la máquina remota. Déjalo vacío para elegir uno automáticamente.",
"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.keepServerRunningHint": "Dejar el servidor remoto en marcha tras desconectar. Si está desactivado, se detiene al desconectar y se inicia de nuevo la próxima vez que conectes.",
"settings.remoteInstances.page.field.bindHost": "Quién puede acceder",
"settings.remoteInstances.page.field.bindHostHint": "Quién puede abrir la dirección reenviada en este equipo. La máquina remota sigue siendo accesible únicamente por el túnel SSH en cualquier caso.",
"settings.remoteInstances.page.field.preferredLocalPort": "Puerto en este equipo",
"settings.remoteInstances.page.field.preferredLocalPortHint": "Puerto que se abre en este equipo para el túnel. Déjalo vacío para elegir uno automáticamente.",
"settings.remoteInstances.page.field.forwardType": "Tipo de redirección",
"settings.remoteInstances.page.field.localHostPlaceholder": "127.0.0.1",
"settings.remoteInstances.page.field.remoteHostPlaceholder": "127.0.0.1",
@@ -386,6 +401,10 @@ export const settingsDict = {
"settings.common.actions.cancel": "Cancelar",
"settings.common.actions.create": "Crear",
"settings.common.actions.delete": "Eliminar",
"settings.openchamber.appLinks.title": "Enlaces de aplicaciones de confianza",
"settings.openchamber.appLinks.info": "Los enlaces de esta lista se abren sin volver a preguntar en este dispositivo. Los demás enlaces de aplicaciones siempre piden confirmación.",
"settings.openchamber.appLinks.empty": "No hay enlaces de aplicaciones de confianza en este dispositivo. Elige \"Confiar y abrir\" al abrir un enlace para añadirlo aquí.",
"settings.openchamber.appLinks.removeAria": "Quitar los enlaces {scheme} de confianza",
"settings.common.actions.reset": "Restablecer",
"settings.common.actions.rename": "Cambiar nombre",
"settings.common.actions.duplicate": "Duplicar",
@@ -431,6 +450,9 @@ export const settingsDict = {
"settings.openchamber.about.title": "Acerca de OpenChamber",
"settings.openchamber.about.field.version": "Versión",
"settings.openchamber.about.field.openCodeVersion": "Versión de OpenCode",
"settings.openchamber.about.field.instanceUrls": "URLs de la instancia",
"settings.openchamber.about.field.applicationUrl": "Aplicación",
"settings.openchamber.about.field.tunnelUrl": "Túnel",
"settings.openchamber.about.state.checking": "Comprobando...",
"settings.openchamber.about.state.upToDate": "Actualizado",
"settings.openchamber.about.state.unknown": "desconocido",
@@ -847,16 +869,26 @@ export const settingsDict = {
"settings.skills.catalog.page.mode.manual": "Manual",
"settings.skills.catalog.page.mode.external": "Externo",
"settings.skills.catalog.page.title": "Catálogo de habilidades",
'settings.skills.catalog.page.subtitle': 'Instala skills listos desde repositorios curados o añade tu propia fuente.',
'settings.skills.catalog.page.section.sources': 'Fuentes',
'settings.skills.catalog.page.searchAllPlaceholder': 'Buscar skills en todas las fuentes…',
'settings.skills.catalog.page.search.clear': 'Borrar búsqueda',
'settings.skills.catalog.page.source.skillsCount': 'Skills: {count}',
'settings.skills.catalog.page.source.stars': 'Estrellas: {count}',
'settings.skills.catalog.page.source.updated': 'Actualizado {time}',
'settings.skills.catalog.page.source.addOwnTitle': 'Añadir tu propia fuente',
'settings.skills.catalog.page.source.addOwnDescription': 'Cualquier repositorio Git con skills',
'settings.skills.catalog.page.source.viewRepo': 'Abrir repositorio en GitHub',
'settings.skills.catalog.page.skill.viewOnGithub': 'Ver skill en GitHub',
'settings.skills.catalog.page.list.searchTitle': 'Resultados de búsqueda',
"settings.skills.catalog.page.section.sourceRepository": "Repositorio de origen",
"settings.skills.catalog.page.field.selectSourcePlaceholder": "Seleccionar origen",
"settings.skills.catalog.page.actions.refreshTitle": "Actualizar",
"settings.skills.catalog.page.actions.removeCatalogTitle": "Eliminar catálogo",
"settings.skills.catalog.page.actions.addCatalog": "Añadir catálogo",
"settings.skills.catalog.page.actions.removeCatalog": "Eliminar catálogo",
"settings.skills.catalog.page.actions.loadMoreSkills": "Cargar más habilidades",
"settings.skills.catalog.page.loading.catalog": "Cargando...",
"settings.skills.catalog.page.loading.skills": "Cargando habilidades...",
"settings.skills.catalog.page.loading.more": "Cargando...",
"settings.skills.catalog.page.foundCount": "{count} habilidad(es) encontrada(s)",
"settings.skills.catalog.page.error.catalogTitle": "Error del catálogo",
"settings.skills.catalog.page.empty.noSkillsTitle": "No se encontraron habilidades",
@@ -864,7 +896,6 @@ export const settingsDict = {
"settings.skills.catalog.page.badge.installed": "instalado ({scope})",
"settings.skills.catalog.page.badge.notInstallable": "no instalable",
"settings.skills.catalog.page.badge.unknown": "desconocido",
"settings.skills.catalog.page.byOwnerPrefix": "por",
"settings.skills.catalog.page.removeDialog.title": "Eliminar catálogo",
"settings.skills.catalog.page.removeDialog.description": "¿Estás seguro de que quieres eliminar este catálogo?",
"settings.openchamber.passkeys.title": "Claves de paso",
@@ -927,9 +958,9 @@ export const settingsDict = {
"settings.openchamber.desktopNetwork.field.macMenuBarAria": "Mostrar OpenChamber en la barra de menús de macOS",
"settings.openchamber.desktopNetwork.field.macMenuBar": "Mostrar OpenChamber en la barra de menús",
"settings.openchamber.desktopNetwork.field.macMenuBarDescription": "Requiere reiniciar la aplicación. Al desactivarlo, OpenChamber no crea el elemento de la barra de menús ni ejecuta sus actualizaciones de sesiones, aprobaciones y uso.",
"settings.openchamber.desktopNetwork.field.minimizeToTrayAria": "Minimizar y cerrar OpenChamber a la bandeja del sistema",
"settings.openchamber.desktopNetwork.field.minimizeToTray": "Minimizar y cerrar a la bandeja del sistema",
"settings.openchamber.desktopNetwork.field.minimizeToTrayDescription": "Mantiene OpenChamber en ejecución en la bandeja del sistema cuando la ventana principal se minimiza o se cierra.",
"settings.openchamber.desktopNetwork.field.minimizeToTrayAria": "Cerrar OpenChamber a la bandeja del sistema",
"settings.openchamber.desktopNetwork.field.minimizeToTray": "Cerrar a la bandeja del sistema",
"settings.openchamber.desktopNetwork.field.minimizeToTrayDescription": "Mantiene OpenChamber en ejecución en la bandeja del sistema cuando se cierra la ventana principal. Al minimizar, la ventana sigue en la barra de tareas.",
"settings.openchamber.desktopNetwork.field.keepAwakeAria": "Mantener el ordenador activo mientras OpenChamber está en ejecución",
"settings.openchamber.desktopNetwork.field.keepAwake": "Mantener el ordenador activo mientras OpenChamber está en ejecución",
"settings.openchamber.desktopNetwork.field.keepAwakeDescription": "Para que los teléfonos puedan seguir abriendo esta app. La pantalla aún puede apagarse.",
@@ -956,15 +987,22 @@ export const settingsDict = {
"settings.openchamber.desktopNetwork.error.keepAwakeUnsupported": "Evitar la suspensión no es compatible con este sistema",
"settings.openchamber.desktopNetwork.error.keepAwakeSaveFailed": "No se pudo actualizar la opción de mantener activo",
"settings.openchamber.opencodeCli.title": "CLI de OpenCode",
"settings.openchamber.tools.title": "Herramientas de OpenChamber",
"settings.openchamber.tools.field.agentControlTool": "Herramienta de control para agentes",
"settings.openchamber.tools.field.agentControlToolAria": "Activar la herramienta de control para agentes",
"settings.openchamber.tools.field.agentControlToolInfo": "Permite que los agentes orquesten tu trabajo desde el chat: crear sesiones y worktrees, delegar prompts a otros agentes y gestionar tareas programadas. Añade una pequeña descripción de herramienta a cada sesión. Se aplica tras reiniciar OpenCode.",
"settings.openchamber.tools.field.agentWebTool": "Herramienta OpenChamber Web",
"settings.openchamber.tools.field.agentWebToolAria": "Activar la herramienta OpenChamber Web",
"settings.openchamber.tools.field.agentWebToolInfo": "Permite que los agentes vean la página en el panel de navegador de OpenChamber e interactúen con ella: abrir una URL, leer el contenido, hacer clic, escribir, desplazarse y alternar entre diseño móvil y de escritorio. Añade una pequeña descripción de herramienta a cada sesión. Se aplica tras reiniciar OpenCode.",
"settings.openchamber.tools.field.agentMemoryTool": "Herramienta de memoria del agente",
"settings.openchamber.tools.field.agentMemoryToolAria": "Herramienta de memoria del agente",
"settings.openchamber.tools.field.agentMemoryToolInfo": "Permite que los agentes conserven lo aprendido entre sesiones, en dos almacenes: lo que es cierto sobre ti y lo que es cierto sobre cada proyecto. Las sesiones reciben los títulos guardados para que el agente pueda leer una entrada cuando resulte relevante. Al desactivarla se retiran la herramienta, la pestaña Memoria y el índice de sesión. Se aplica tras reiniciar OpenCode.",
"settings.openchamber.opencodeCli.tooltipPrefix": "Ruta absoluta opcional al",
"settings.openchamber.opencodeCli.tooltipSuffix": "ejecutable.",
"settings.openchamber.opencodeCli.field.binaryPath": "Ruta del ejecutable de OpenCode",
"settings.openchamber.opencodeCli.field.binaryPathPlaceholder": "/Users/you/.bun/bin/opencode",
"settings.openchamber.opencodeCli.field.showUpdateNotifications": "Mostrar notificaciones de actualización de OpenCode",
"settings.openchamber.opencodeCli.field.showUpdateNotificationsAria": "Mostrar notificaciones de actualización de OpenCode",
"settings.openchamber.opencodeCli.field.agentControlTool": "Herramienta de control para agentes",
"settings.openchamber.opencodeCli.field.agentControlToolAria": "Activar la herramienta de control para agentes",
"settings.openchamber.opencodeCli.field.agentControlToolInfo": "Permite que los agentes orquesten tu trabajo desde el chat: crear sesiones y worktrees, delegar prompts a otros agentes y gestionar tareas programadas. Añade una pequeña descripción de herramienta a cada sesión. Se aplica tras Save + Reload.",
"settings.openchamber.opencodeCli.actions.browseAria": "Buscar ruta del ejecutable de OpenCode",
"settings.openchamber.opencodeCli.actions.browse": "Buscar",
"settings.openchamber.opencodeCli.actions.saveAndReload": "Guardar + Recargar",
@@ -1063,7 +1101,7 @@ export const settingsDict = {
"settings.openchamber.keyboardShortcuts.overwritePrompt": "Esta combinación ya está usada por otro atajo. ¿Sobrescribir y limpiar esa otra asignación?",
"settings.openchamber.keyboardShortcuts.field.pressKeys": "Pulsa las teclas...",
"settings.openchamber.keyboardShortcuts.error.captureFirst": "Captura un atajo primero.",
"settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut": "Este atajo puede entrar en conflicto con los predeterminados del navegador. Todavía se guarda.",
"settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut": "Este atajo puede entrar en conflicto con los predeterminados del navegador. Aun así, puedes guardarlo.",
"settings.openchamber.keyboardShortcuts.action.open_go_to_line.label": "Ir a línea (editor de archivos)",
"settings.openchamber.keyboardShortcuts.action.open_command_palette.label": "Abrir paleta de comandos",
"settings.openchamber.keyboardShortcuts.action.focus_input.label": "Enfocar entrada",
@@ -1072,16 +1110,20 @@ export const settingsDict = {
"settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label": "Expandir o contraer terminal",
"settings.openchamber.keyboardShortcuts.action.add_selection_to_chat.label": "Agregar selección al chat",
"settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label": "Mostrar u ocultar barra lateral",
"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label": 'Alternar panel de contexto',
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label": 'Abrir superficie de Git',
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label": 'Abrir superficie de archivos',
"settings.openchamber.keyboardShortcuts.action.switch_session_tab.label": "Cambiar pestaña de sesión",
"settings.openchamber.keyboardShortcuts.action.switch_session_tab.suffix": " + 1…9",
"settings.openchamber.keyboardShortcuts.action.switch_context_surface.label": "Cambiar superficie del panel de contexto",
"settings.openchamber.keyboardShortcuts.action.switch_context_surface.suffix": " + 1…0",
"settings.openchamber.keyboardShortcuts.action.new_chat.label": "Nueva sesión",
"settings.openchamber.keyboardShortcuts.action.switch_session_previous.label": "Sesión anterior",
"settings.openchamber.keyboardShortcuts.action.switch_session_next.label": "Sesión siguiente",
"settings.openchamber.keyboardShortcuts.action.rename_current_session.label": "Renombrar sesión actual",
"settings.openchamber.keyboardShortcuts.action.toggle_permission_auto_accept.label": "Alternar aprobación automática",
"settings.openchamber.keyboardShortcuts.action.close_session_tab.label": "Cerrar pestaña de sesión",
"settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label": "Nuevo borrador de worktree",
"settings.openchamber.keyboardShortcuts.action.new_mini_chat.label": "Nueva ventana Mini Chat",
"settings.openchamber.keyboardShortcuts.action.open_help.label": "Abrir atajos de teclado",
"settings.openchamber.keyboardShortcuts.action.toggle_context_plan.label": "Alternar panel de plan de contexto",
"settings.openchamber.keyboardShortcuts.action.toggle_services_menu.label": "Mostrar u ocultar menú de servicios",
"settings.openchamber.keyboardShortcuts.action.cycle_services_tab.label": "Cambiar pestaña de servicios",
"settings.openchamber.keyboardShortcuts.action.cycle_theme.label": "Cambiar tema",
"settings.openchamber.keyboardShortcuts.action.cycle_agent.label": "Cambiar agente",
"settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_forward.label": "Siguiente modelo favorito",
@@ -1090,15 +1132,39 @@ export const settingsDict = {
"settings.openchamber.keyboardShortcuts.action.expand_input.label": "Expandir entrada",
"settings.openchamber.keyboardShortcuts.action.open_timeline_dialog.label": "Abrir línea de tiempo de conversación",
"settings.openchamber.keyboardShortcuts.action.toggle_prompt_navigator.label": "Mostrar u ocultar navegador de prompts",
"settings.openchamber.keyboardShortcuts.warning.contextualPrefix": "Esta secuencia comparte un prefijo contextual con {action}. Cuando su contexto está activo, esa acción tiene prioridad.",
"settings.openchamber.keyboardShortcuts.category.session": "Controles de sesión",
"settings.openchamber.keyboardShortcuts.category.models": "Modelos y agentes",
"settings.openchamber.keyboardShortcuts.category.panels": "Paneles y herramientas",
"settings.openchamber.keyboardShortcuts.category.navigation": "Navegación",
"settings.openchamber.keyboardShortcuts.category.application": "Aplicación",
"settings.openchamber.keyboardShortcuts.actions.edit": "Editar",
"settings.openchamber.keyboardShortcuts.actions.confirm": "Confirmar",
"settings.openchamber.keyboardShortcuts.dialog.title": "Editar {action}",
"settings.openchamber.keyboardShortcuts.dialog.instructions": "Pulse hasta dos combinaciones de teclas, con un máximo de tres teclas cada una. Tras la primera, espere hasta 3 segundos por una segunda combinación. Use Confirmar para aplicar o Cancelar para descartar. Retroceso elimina la última.",
"settings.openchamber.keyboardShortcuts.dialog.firstChord": "Primera combinación",
"settings.openchamber.keyboardShortcuts.dialog.secondChord": "Segunda combinación",
"settings.openchamber.keyboardShortcuts.dialog.recording": "Pulse las teclas…",
"settings.openchamber.keyboardShortcuts.unassigned": "Sin asignar",
"settings.openchamber.keyboardShortcuts.error.prefixConflict": "Esto entra en conflicto con la secuencia usada por {action}. Elija otra combinación.",
"settings.openchamber.keyboardShortcuts.error.exactConflict": "Esta combinación ya la usa {action}.",
"settings.openchamber.keyboardShortcuts.error.internalConflict": "Esta combinación entra en conflicto con un atajo integrado, que no se puede reemplazar.",
"settings.openchamber.keyboardShortcuts.action.open_draft_project_picker.label": "Abrir selector de proyecto de borrador",
"settings.openchamber.keyboardShortcuts.action.open_draft_worktree_picker.label": "Abrir selector de árbol de trabajo de borrador",
"settings.openchamber.keyboardShortcuts.action.open_session_list.label": "Abrir sesiones recientes",
"settings.openchamber.keyboardShortcuts.action.toggle_dictation.label": "Entrada de voz",
"settings.projects.sidebar.total": "Total {count}",
"settings.projects.sidebar.actions.addProject": "Añadir proyecto",
"settings.projects.page.empty.noProjects": "No hay proyectos disponibles.",
"settings.projects.page.title.default": "Configuración del proyecto",
"settings.projects.page.section.worktree": "Worktree",
"settings.projects.page.field.projectName": "Nombre del proyecto",
"settings.projects.page.field.projectModel": "Modelo del proyecto",
"settings.projects.page.field.projectThinking": "Razonamiento del proyecto",
"settings.projects.page.section.chatDefaults": "Valores por defecto para chats nuevos",
"settings.projects.page.section.chatDefaultsDescription": "Se usa al iniciar un chat nuevo en este proyecto. Si está vacío, se aplican los valores globales. El razonamiento solo aparece en modelos que ofrecen niveles.",
"settings.projects.page.field.projectNamePlaceholder": "Nombre del proyecto",
"settings.projects.page.field.defaultModel": "Modelo predeterminado para chats nuevos",
"settings.projects.page.field.defaultModelDescription": "Se usa al iniciar un chat nuevo en este proyecto. Si no se define, se usan los valores globales.",
"settings.projects.page.option.thinkingDefault": "El del modelo",
"settings.projects.page.field.accentColor": "Color de énfasis",
"settings.projects.page.field.projectIcon": "Icono del proyecto",
"settings.projects.page.field.projectIconBackgroundAria": "Color de fondo del icono del proyecto",
@@ -1132,15 +1198,15 @@ export const settingsDict = {
"settings.usage.sidebar.field.displayModePlaceholder": "Modo de visualización",
"settings.usage.sidebar.field.displayModeUsage": "Uso",
"settings.usage.sidebar.field.displayModeRemaining": "Cuota restante",
"settings.usage.sidebar.field.showPredictions": "Mostrar predicciones",
"settings.usage.sidebar.status.notSet": "No establecido",
"settings.usage.page.empty.selectProvider": "Selecciona un proveedor para ver detalles de uso.",
"settings.usage.page.header.providerUsage": "Uso de {provider}",
"settings.usage.page.header.refreshing": "Actualizando uso...",
"settings.usage.page.header.lastUpdated": "Última actualización: {time}",
"settings.usage.page.options.showInHeaderAria": "Mostrar en menú de encabezado",
"settings.usage.page.options.showInHeader": "Mostrar en el menú del encabezado",
"settings.usage.page.options.showInHeaderTooltip": "Cuando esté habilitado, el uso de este proveedor será visible en el menú de acceso rápido del encabezado de la aplicación.",
"settings.usage.page.header.lastUpdatedWithPlan": "Plan: {plan} · Última actualización: {time}",
"settings.usage.page.options.showInWorkStatusAria": "Mostrar en el panel de estado del trabajo",
"settings.usage.page.options.showInWorkStatus": "Mostrar en el panel de estado del trabajo",
"settings.usage.page.options.showInWorkStatusTooltip": "Cuando esté habilitado, el uso de este proveedor será visible en el panel de estado del trabajo.",
"settings.usage.page.state.noData": "No hay datos de uso disponibles aún.",
"settings.usage.page.state.refreshFailedTitle": "No se pudo actualizar los datos de uso",
"settings.usage.page.state.providerNotConfiguredTitle": "Proveedor no configurado",
@@ -1167,8 +1233,8 @@ export const settingsDict = {
"settings.remoteInstances.page.section.actionsDescription": "Conecta, reconecta, revisa registros o elimina esta conexión.",
"settings.remoteInstances.page.section.remoteServer": "OpenChamber en la máquina remota",
"settings.remoteInstances.page.section.remoteServerDescription": "Elige cómo debe ejecutarse OpenChamber después de conectar por SSH.",
"settings.remoteInstances.page.section.mainTunnel": "Acceso local",
"settings.remoteInstances.page.section.mainTunnelDescription": "Elige la dirección local que se usará para abrir este servidor remoto de OpenChamber.",
"settings.remoteInstances.page.section.mainTunnel": "Acceso desde este equipo",
"settings.remoteInstances.page.section.mainTunnelDescription": "OpenChamber se ejecuta en la máquina remota. Estos ajustes solo controlan la dirección de este equipo que lleva hasta ella por el túnel SSH.",
"settings.remoteInstances.page.section.authentication": "Autenticación",
"settings.remoteInstances.page.section.authenticationDescription": "Credenciales opcionales para SSH y la interfaz de usuario de OpenChamber remoto.",
"settings.remoteInstances.page.section.portForwards": "Redirecciones de puerto",
@@ -1181,8 +1247,6 @@ export const settingsDict = {
"settings.remoteInstances.page.field.installMethod": "Método de instalación",
"settings.remoteInstances.page.field.installMethodHint": "Cómo debe colocarse OpenChamber en la máquina remota cuando esta app lo inicia por ti.",
"settings.remoteInstances.page.field.selectInstallMethodPlaceholder": "Seleccionar método de instalación",
"settings.remoteInstances.page.field.installMethodDownloadRelease": "Descargar versión",
"settings.remoteInstances.page.field.installMethodUploadBundle": "Subir paquete",
"settings.remoteInstances.page.field.selectBindHostPlaceholder": "Seleccionar host de enlace",
"settings.remoteInstances.page.field.sshPasswordOptional": "Contraseña SSH (opcional)",
"settings.remoteInstances.page.field.sshPasswordPlaceholder": "Introducir contraseña SSH",
@@ -1206,7 +1270,44 @@ export const settingsDict = {
"settings.remoteInstances.page.actions.enableForwardAria": "Habilitar redirección",
"settings.remoteInstances.page.actions.openLocal": "Abrir local",
"settings.remoteInstances.page.actions.addForward": "Añadir redirección",
"settings.remoteInstances.page.import.sectionTitle": "Hosts SSH guardados",
"settings.remoteInstances.page.addDialog.description": "Elige un host de tu configuración SSH o escribe la conexión tú mismo.",
"settings.remoteInstances.page.addDialog.sourceLabel": "De dónde viene la conexión",
"settings.remoteInstances.page.addDialog.tab.saved": "Desde la configuración SSH",
"settings.remoteInstances.page.addDialog.tab.manual": "Escribirla yo",
"settings.remoteInstances.page.addDialog.searchPlaceholder": "Buscar hosts",
"settings.remoteInstances.page.addDialog.emptySaved": "No se encontraron hosts en tu configuración SSH. Escribe la conexión tú mismo.",
"settings.remoteInstances.page.addDialog.searchEmpty": "Ningún host coincide con esta búsqueda.",
"settings.remoteInstances.page.addDialog.use": "Usar",
"settings.remoteInstances.page.state.notConnected": "Sin conexión",
"settings.remoteInstances.page.state.connecting": "Conectando",
"settings.remoteInstances.page.state.ready": "Conectado",
"settings.remoteInstances.page.state.problem": "Requiere atención",
"settings.remoteInstances.page.section.advanced": "Ajustes avanzados",
"settings.remoteInstances.page.section.advancedHint": "Puertos, método de instalación, contraseñas y reenvíos adicionales. Los valores predeterminados sirven para casi todas las conexiones.",
"settings.remoteInstances.page.field.installMethodAuto": "Automático",
"settings.remoteInstances.page.error.hint.noRuntime": "La máquina remota no tiene ni bun ni npm. Instala uno de ellos allí o cambia esta conexión a «Ya está en ejecución».",
"settings.remoteInstances.page.error.hint.noOpencode": "La CLI de opencode no está instalada en la máquina remota. Instálala allí (consulta opencode.ai) y vuelve a conectar.",
"settings.remoteInstances.page.error.action.setUiPassword": "Definir contraseña de la interfaz",
"settings.remoteInstances.page.error.action.pickRandomPort": "Usar otro puerto local",
"settings.remoteInstances.page.error.action.setRemotePort": "Definir el puerto remoto",
"settings.remoteInstances.page.validation.externalPortRequired": "Primero indica un puerto remoto. En el modo «Ya está en ejecución», OpenChamber necesita saber en qué puerto escucha el servidor.",
"settings.remoteInstances.page.empty.noInstances": "Aún no hay conexiones SSH.",
"settings.remoteInstances.page.field.uiPasswordRequired": "Contraseña de la interfaz (obligatoria)",
"settings.remoteInstances.page.field.uiPasswordMissingForLan": "Obligatoria mientras el servidor remoto sea accesible en su red.",
"settings.remoteInstances.page.field.remoteLanAccess": "Accesible en la red remota",
"settings.remoteInstances.page.field.remoteLanAccessHint": "Permitir también que otros dispositivos de la red de la máquina remota abran este OpenChamber directamente, sin el túnel SSH. Requiere contraseña de la interfaz.",
"settings.remoteInstances.page.field.remoteLanAccessWarning": "Cualquiera en esa red puede llegar al OpenChamber remoto. Solo lo protege la contraseña de la interfaz de abajo.",
"settings.remoteInstances.page.validation.remoteLanNeedsPassword": "Define primero una contraseña de la interfaz. Sin ella, el OpenChamber remoto quedaría abierto a todos los dispositivos de esa red.",
"settings.remoteInstances.page.field.bindHostOption.loopback": "Solo este equipo (127.0.0.1)",
"settings.remoteInstances.page.field.bindHostOption.localhost": "Solo este equipo (localhost)",
"settings.remoteInstances.page.field.bindHostOption.lan": "Cualquier dispositivo de mi red (0.0.0.0)",
"settings.remoteInstances.page.field.sshPasswordHint": "Solo hace falta cuando este host pide contraseña en lugar de aceptar una clave SSH.",
"settings.remoteInstances.page.field.uiPasswordHintManaged": "Contraseña con la que se protegerá la interfaz remota de OpenChamber. OpenChamber la aplica al servidor que inicia por ti.",
"settings.remoteInstances.page.field.uiPasswordHintExternal": "Contraseña del servidor OpenChamber que ya se ejecuta en la máquina remota, usada para iniciar sesión.",
"settings.remoteInstances.page.tunnelPreview.caption": "Esta conexión reenvía:",
"settings.remoteInstances.page.empty.noInstancesWithOneImport": "Aún no hay conexiones SSH. Hay 1 host disponible para importar desde tu configuración SSH.",
"settings.remoteInstances.page.empty.noInstancesWithImports": "Aún no hay conexiones SSH. Hay {count} hosts disponibles para importar desde tu configuración SSH.",
"settings.remoteInstances.page.state.loadingInstances": "Cargando conexiones...",
"settings.remoteInstances.page.import.loading": "Cargando hosts SSH...",
"settings.remoteInstances.page.import.noneFound": "No se encontraron hosts SSH.",
"settings.remoteInstances.page.import.noneAvailable": "No hay hosts SSH disponibles para importar.",
@@ -1304,13 +1405,18 @@ export const settingsDict = {
"settings.providers.page.custom.title": "Proveedor personalizado",
"settings.providers.page.custom.editTitle": "Editar proveedor personalizado",
"settings.providers.page.custom.description": "Añade un proveedor compatible con OpenAI con URL base, credenciales y lista de modelos. Se guarda en la configuración de OpenCode para usarlo en el chat como cualquier otro proveedor.",
"settings.providers.page.custom.description": "Añade un proveedor con URL base, credenciales, lista de modelos y un protocolo de API compatible. Se guarda en la configuración de OpenCode para usarlo en el chat.",
"settings.providers.page.custom.field.providerID.label": "ID del proveedor",
"settings.providers.page.custom.field.providerID.placeholder": "mi-proveedor",
"settings.providers.page.custom.field.providerID.info": "Minúsculas, números, guiones y guiones bajos. Se usa como ID de proveedor de OpenCode.",
"settings.providers.page.custom.field.name.label": "Nombre visible",
"settings.providers.page.custom.field.name.placeholder": "Mi proveedor",
"settings.providers.page.custom.field.name.info": "Se muestra en los selectores de proveedor y modelo.",
"settings.providers.page.custom.field.protocol.label": "Protocolo de API",
"settings.providers.page.custom.field.protocol.info": "Elige el formato de solicitud que implementa esta API.",
"settings.providers.page.custom.field.protocol.openaiChat": "OpenAI Chat Completions",
"settings.providers.page.custom.field.protocol.openaiResponses": "OpenAI Responses",
"settings.providers.page.custom.field.protocol.anthropicMessages": "Anthropic Messages",
"settings.providers.page.custom.field.baseURL.label": "URL base",
"settings.providers.page.custom.field.baseURL.placeholder": "https://api.example.com/v1",
"settings.providers.page.custom.field.baseURL.info": "URL base de la API compatible con OpenAI. Debe empezar por http:// o https://.",
@@ -1359,6 +1465,17 @@ export const settingsDict = {
"settings.providers.page.auth.apiKeyPlaceholder": "sk-...",
"settings.providers.page.auth.oauthMethodFallback": "Método OAuth {index}",
"settings.providers.page.auth.pasteAuthorizationCodePlaceholder": "Pegar código de autorización",
"settings.providers.page.auth.oauth.starting": "Iniciando la autorización…",
"settings.providers.page.auth.oauth.waiting": "Esperando la autorización…",
"settings.providers.page.auth.oauth.waitingHint": "Termina de iniciar sesión en el navegador. Mantén esta página abierta: la conexión se completará sola.",
"settings.providers.page.auth.oauth.codeHint": "Copia el código de autorización del navegador y pégalo aquí.",
"settings.providers.page.auth.oauth.deviceCodeLabel": "Código del dispositivo",
"settings.providers.page.auth.oauth.linkLabel": "Enlace de autorización",
"settings.providers.page.auth.oauth.promptRequired": "Completa «{field}» para continuar",
"settings.providers.page.auth.oauth.error.sessionExpired": "La solicitud de autorización caducó. Vuelve a conectar para reiniciarla.",
"settings.providers.page.auth.oauth.error.codeRequired": "Este proveedor necesita el código de autorización de tu navegador.",
"settings.providers.page.auth.oauth.error.declined": "La autorización se rechazó o no se completó.",
"settings.providers.page.auth.oauth.error.invalidInput": "Se rechazaron los datos introducidos.",
"settings.providers.page.auth.connected": "Conectado",
"settings.providers.page.auth.incomplete": "Faltan credenciales",
"settings.providers.page.auth.incompleteHint": "· Añade una clave API o {env:VAR} antes de usar este proveedor en el chat",
@@ -1391,6 +1508,9 @@ export const settingsDict = {
"settings.providers.page.actions.open": "Abrir",
"settings.providers.page.actions.copy": "Copiar",
"settings.providers.page.actions.complete": "Completar",
"settings.providers.page.actions.continue": "Continuar",
"settings.providers.page.actions.cancel": "Cancelar",
"settings.providers.page.actions.tryAgain": "Reintentar",
"settings.providers.page.actions.hide": "Ocultar",
"settings.providers.page.actions.reconnect": "Reconectar",
"settings.providers.page.actions.edit": "Editar",
@@ -1406,7 +1526,6 @@ export const settingsDict = {
"settings.providers.page.toast.apiKeySaved": "Clave API guardada",
"settings.providers.page.toast.oauthStartFailed": "No se pudo iniciar el flujo OAuth",
"settings.providers.page.toast.oauthDetailsMissing": "No se devolvieron detalles de OAuth",
"settings.providers.page.toast.completeOAuthInBrowser": "Completa el flujo OAuth en tu navegador",
"settings.providers.page.toast.oauthCompleteFailed": "No se pudo completar el flujo OAuth",
"settings.providers.page.toast.oauthCompleted": "Conexión OAuth completada",
"settings.providers.page.toast.oauthLinkCopied": "Enlace de OAuth copiado",
@@ -1428,6 +1547,8 @@ export const settingsDict = {
"settings.mcp.page.status.label.failed": "Fallido",
"settings.mcp.page.status.label.needsAuth": "Necesita autenticación",
"settings.mcp.page.status.label.needsRegistration": "Necesita registro",
"settings.mcp.page.status.label.awaitingRestart": "Esperando reinicio",
"settings.mcp.page.status.description.awaitingRestart": "Este servidor está guardado pero aún no aplicado. Usa «Apply & Restart» para cargarlo en OpenCode; después estarán disponibles la conexión y la autorización.",
"settings.mcp.page.status.description.connected": "Conectado y listo para que OpenCode descubra herramientas y recursos.",
"settings.mcp.page.status.description.failedDefault": "OpenCode no pudo alcanzar este servidor MCP.",
"settings.mcp.page.status.description.needsAuth": "Este servidor MCP remoto requiere autorización antes de poder conectarse.",
@@ -1792,9 +1913,6 @@ export const settingsDict = {
"settings.voice.page.field.ttsInputModeSummarized": "resumido",
"settings.openchamber.visual.section.colorMode": "Modo de color",
"settings.openchamber.visual.section.colorModeAndTheme": "Modo de color y tema",
"settings.openchamber.visual.section.mobileLayout": "Diseño móvil",
"settings.openchamber.visual.option.mobileLayout.default": "Anterior",
"settings.openchamber.visual.option.mobileLayout.new": "Nuevo",
"settings.openchamber.visual.section.localization": "Localización",
"settings.openchamber.visual.section.spacingAndLayout": "Espaciado y diseño",
"settings.openchamber.visual.section.densityAndType": "Densidad y tipografía",
@@ -1811,6 +1929,10 @@ export const settingsDict = {
"settings.openchamber.visual.section.showToolsOpenedByDefault": "Mostrar herramientas abiertas por defecto",
"settings.openchamber.visual.section.sessionAssistance": "Asistencia de sesión",
"settings.openchamber.visual.section.reasoning": "Razonamiento",
"settings.openchamber.visual.section.streaming": "Streaming",
"settings.openchamber.visual.field.streamingAutoFollow": "Seguir el contenido nuevo durante el streaming",
"settings.openchamber.visual.field.streamingAutoFollowAria": "Seguir automáticamente el contenido nuevo mientras se transmite una respuesta",
"settings.openchamber.visual.field.streamingAutoFollowInfo": "Mientras llega una respuesta, la vista se desplaza hacia el contenido más reciente. Desactívalo para mantener la vista quieta y desplazarte manualmente; enviar un mensaje desde la mitad del chat tampoco moverá la vista.",
"settings.openchamber.visual.section.messageAppearance": "Apariencia de los mensajes",
"settings.openchamber.visual.section.toolsAndFiles": "Herramientas y archivos",
"settings.openchamber.visual.section.composer": "Compositor",
@@ -1831,8 +1953,6 @@ export const settingsDict = {
"settings.openchamber.visual.field.selectTimeFormatAria": "Seleccionar formato de hora",
"settings.openchamber.visual.field.selectWeekStartAria": "Seleccionar inicio de la semana",
"settings.openchamber.visual.actions.reloadThemes": "Recargar temas",
"settings.openchamber.visual.field.macVibrancy": "Transparencia de la ventana",
"settings.openchamber.visual.field.macVibrancyHint": "Usa el desenfoque nativo de macOS (vibrancy) detrás de la barra lateral. Desactívalo para superficies totalmente sólidas y opacas.",
"settings.openchamber.visual.field.dockBadge": "Insignia en el Dock",
"settings.openchamber.visual.field.dockBadgeHint": "Muestra en el icono del Dock de macOS el número de chats con actividad sin ver.",
"settings.openchamber.visual.actions.saveAndRestart": "Guardar y reiniciar",
@@ -1879,6 +1999,10 @@ export const settingsDict = {
"settings.openchamber.visual.actions.resetInputBarOffsetAria": "Restablecer desplazamiento de la barra de entrada",
"settings.openchamber.visual.field.terminalQuickKeysAria": "Teclas rápidas del terminal",
"settings.openchamber.visual.field.terminalQuickKeys": "Teclas rápidas del terminal",
"settings.openchamber.visual.field.sessionTabsGroup": "Pestañas de sesión",
"settings.openchamber.visual.field.sessionTabs": "Mostrar las sesiones como pestañas en el encabezado",
"settings.openchamber.visual.field.sessionTabsAria": "Alternar las pestañas de sesión en el encabezado",
"settings.openchamber.visual.field.sessionTabsInfo": "Las sesiones que abres se alinean como pestañas en el encabezado. Al desactivarlo, el encabezado vuelve a mostrar solo el título de la sesión.",
"settings.openchamber.visual.field.terminalQuickKeysTooltip": "Mostrar Esc, Ctrl y flechas en la vista del terminal",
"settings.openchamber.visual.field.fileEditorKeymap": "Mapa de teclas del editor de archivos",
"settings.openchamber.visual.option.fileEditorKeymap.default": "Predeterminado",
@@ -1911,8 +2035,6 @@ export const settingsDict = {
"settings.openchamber.visual.field.stickyUserHeader": "Encabezado de usuario fijo",
"settings.openchamber.visual.field.promptNavigatorEnabledAria": "Navegador de prompts",
"settings.openchamber.visual.field.promptNavigatorEnabled": "Navegador de prompts",
"settings.openchamber.visual.field.expandedEditorToolbarAria": "Mostrar siempre la barra de herramientas del editor",
"settings.openchamber.visual.field.expandedEditorToolbar": "Mostrar siempre la barra de herramientas del editor (anclada bajo las pestañas)",
"settings.openchamber.visual.field.autoSaveEnabledAria": "Guardado automático de archivos",
"settings.openchamber.visual.field.autoSaveEnabled": "Guardado automático de archivos",
"settings.openchamber.visual.field.autoSaveEnabledInfo": "Guarda automáticamente las ediciones del archivo después de dejar de escribir. Desactívalo para exigir un guardado manual.",
@@ -2105,4 +2227,5 @@ export const settingsDict = {
"settings.openchamber.visual.field.followUpBehaviorDescription": "Choose what happens when you press Enter on a follow-up message while the agent is still responding.",
"settings.openchamber.visual.option.followUpBehavior.steer.label": "Steer",
"settings.openchamber.visual.option.followUpBehavior.queue.label": "Queue",
...thirdPartyIntegrationI18n.es,
} as const;