import type { TranslationMap } from "../lib/types.ts";
// Generated by scripts/control-ui-i18n.ts.
export const es: TranslationMap = {
common: {
health: "Estado",
ok: "Correcto",
yes: "Sí",
no: "No",
active: "Activo",
loading: "Cargando…",
refreshing: "Actualizando…",
online: "En línea",
offline: "Desconectado",
connect: "Conectar",
connected: "Conectado",
refresh: "Actualizar",
reload: "Recargar",
probe: "Probar",
call: "Llamada",
confirm: "Confirmar",
cancel: "Cancelar",
unselect: "Deseleccionar",
enabled: "Habilitado",
disabled: "Deshabilitado",
na: "n/d",
configured: "Configurado",
running: "En ejecución",
linked: "Vinculado",
mode: "Modo",
baseUrl: "URL base",
lastStart: "Último inicio",
lastProbe: "Última prueba",
lastInbound: "Última entrada",
lastConnect: "Última conexión",
lastMessage: "Último mensaje",
authAge: "Antigüedad de autenticación",
credential: "Credencial",
audience: "Audiencia",
publicKey: "Clave pública",
probeOk: "Prueba correcta",
probeFailed: "Prueba fallida",
reloadConfig: "Recargar configuración",
loadConfig: "Cargar configuración",
loadApprovals: "Cargar aprobaciones",
settingsSections: "Secciones de configuración",
version: "Versión",
docs: "Documentación",
theme: "Tema",
resources: "Recursos",
search: "Buscar",
save: "Guardar",
saving: "Guardando…",
saveAndPublish: "Guardar y publicar",
importing: "Importando…",
importFromRelays: "Importar desde relays",
showAdvanced: "Mostrar opciones avanzadas",
hideAdvanced: "Ocultar opciones avanzadas",
unsavedChanges: "Tienes cambios sin guardar",
secondsAgo: "hace {count}s",
working: "Trabajando…",
showQr: "Mostrar QR",
relink: "Volver a vincular",
waitForScan: "Esperar escaneo",
logout: "Cerrar sesión",
},
channels: {
health: {
title: "Estado del canal",
subtitle: "Instantáneas del estado del canal desde el Gateway.",
noSnapshotYet: "Aún no hay instantáneas.",
},
generic: {
subtitle: "Estado y configuración del canal.",
},
gatewayUrlConfirmation: {
title: "Cambiar URL del Gateway",
subtitle: "Esto volverá a conectarse a un servidor Gateway diferente",
warning: "Confirma solo si confías en esta URL. Las URL maliciosas pueden comprometer tu sistema.",
},
nostr: {
profile: "Perfil",
editProfile: "Editar perfil",
profilePicture: "Foto de perfil",
noProfile: "No hay un perfil configurado.",
noProfileHint: 'Haz clic en "Editar perfil" para agregar tu nombre, biografía y avatar.',
name: "Nombre",
displayName: "Nombre para mostrar",
about: "Acerca de",
advanced: "Avanzado",
profilePicturePreview: "Vista previa de la foto de perfil",
account: "Cuenta",
username: "Nombre de usuario",
usernameHelp: "Nombre de usuario corto (p. ej., satoshi)",
bio: "Biografía",
bioPlaceholder: "Cuéntale a la gente sobre ti...",
bioHelp: "Una breve biografía o descripción",
displayNameHelp: "Tu nombre para mostrar completo",
avatarUrl: "URL del avatar",
avatarHelp: "URL HTTPS de tu foto de perfil",
bannerUrl: "URL del banner",
bannerHelp: "URL HTTPS de una imagen de banner",
website: "Sitio web",
websiteHelp: "Tu sitio web personal",
nip05Identifier: "Identificador NIP-05",
nip05Help: "Identificador verificable (p. ej., you@domain.com)",
lightningAddress: "Dirección Lightning",
lightningHelp: "Dirección Lightning para propinas (LUD-16)",
},
},
nodes: {
binding: {
loadConfigHint: "Carga la configuración para editar las vinculaciones.",
formModeHint: "Cambia la pestaña Config al modo Form para editar las vinculaciones aquí.",
execNodeBinding: "Vinculación de nodo exec",
execNodeBindingSubtitle: "Fija los agentes a un nodo específico cuando uses exec host=node.",
defaultBinding: "Vinculación predeterminada",
defaultBindingHint: "Se usa cuando los agentes no reemplazan una vinculación de nodo.",
node: "Nodo",
},
},
instances: {
title: "Instancias conectadas",
subtitle: "Balizas de presencia del Gateway y los clientes.",
showHosts: "Mostrar hosts e IP",
hideHosts: "Ocultar hosts e IP",
toggleHostVisibility: "Alternar visibilidad de hosts",
noInstances: "Aún no se informó ninguna instancia.",
lastInput: "Última entrada {time}",
reason: "Motivo {reason}",
},
agentTools: {
connectedSource: "Conectado: {id}",
connected: "Conectado",
channelSource: "Canal: {id}",
channel: "Canal",
builtIn: "Integrado",
},
nav: {
chat: "Chat",
control: "Control",
agent: "Agente",
settings: "Ajustes",
expand: "Expandir barra lateral",
collapse: "Contraer barra lateral",
resize: "Redimensionar la barra lateral",
},
tabs: {
agents: "Agentes",
overview: "Resumen",
channels: "Canales",
instances: "Instancias",
sessions: "Sesiones",
usage: "Uso",
cron: "Tareas Cron",
skills: "Habilidades",
nodes: "Nodos",
chat: "Chat",
config: "Configuración",
communications: "Comunicaciones",
appearance: "Apariencia",
automation: "Automatización",
infrastructure: "Infraestructura",
aiAgents: "IA y agentes",
debug: "Depuración",
logs: "Registros",
dreams: "Sueños",
},
subtitles: {
agents: "Gestionar espacios de trabajo, herramientas e identidades de agentes.",
overview: "Estado de la puerta de enlace, puntos de entrada y lectura rápida de salud.",
channels: "Gestionar canales y ajustes.",
instances: "Balizas de presencia de clientes y nodos conectados.",
sessions: "Inspeccionar sesiones activas y ajustar valores predeterminados por sesión.",
usage: "Monitorear uso de API y costes.",
cron: "Programar despertares y ejecuciones recurrentes de agentes.",
skills: "Gestionar disponibilidad de habilidades e inyección de claves API.",
nodes: "Dispositivos emparejados, capacidades y exposición de comandos.",
chat: "Sesión de chat directa con la puerta de enlace para intervenciones rápidas.",
config: "Editar ~/.openclaw/openclaw.json de forma segura.",
communications: "Canales, mensajes y configuración de audio.",
appearance: "Configuración del tema, la UI y el asistente de configuración.",
automation: "Comandos, hooks, cron y plugins.",
infrastructure: "Configuración de Gateway, web, navegador y medios.",
aiAgents: "Agentes, modelos, Skills, herramientas, memoria, sesión.",
debug: "Instantáneas de la puerta de enlace, eventos y llamadas RPC manuales.",
logs: "Seguimiento en vivo de los registros de la puerta de enlace.",
dreams: "Consolidación de la memoria durante el sueño.",
},
overview: {
access: {
title: "Acceso a la puerta de enlace",
subtitle: "Dónde se conecta el panel y cómo se autentica.",
wsUrl: "URL de WebSocket",
token: "Token de la puerta de enlace",
password: "Contraseña (no se guarda)",
passwordPlaceholder: "contraseña del sistema o compartida",
sessionKey: "Clave de sesión predeterminada",
language: "Idioma",
connectHint: "Haz clic en Conectar para aplicar los cambios de conexión.",
trustedProxy: "Autenticado mediante proxy de confianza.",
showToken: "Mostrar token",
hideToken: "Ocultar token",
toggleTokenVisibility: "Alternar visibilidad del token",
showPassword: "Mostrar contraseña",
hidePassword: "Ocultar contraseña",
togglePasswordVisibility: "Alternar visibilidad de la contraseña",
},
snapshot: {
title: "Instantánea",
subtitle: "Información más reciente del saludo con la puerta de enlace.",
status: "Estado",
uptime: "Tiempo de actividad",
tickInterval: "Intervalo de tick",
lastChannelsRefresh: "Última actualización de canales",
channelsHint: "Usa Canales para vincular WhatsApp, Telegram, Discord, Signal o iMessage.",
},
stats: {
instances: "Instancias",
instancesHint: "Balizas de presencia en los últimos 5 minutos.",
sessions: "Sesiones",
sessionsHint: "Claves de sesión recientes rastreadas por la puerta de enlace.",
cron: "Cron",
cronNext: "Próximo despertar {time}",
},
notes: {
title: "Notas",
subtitle: "Recordatorios rápidos para configuraciones de control remoto.",
tailscaleTitle: "Tailscale serve",
tailscaleText: "Prefiere el modo serve para mantener la puerta de enlace en loopback con autenticación tailnet.",
sessionTitle: "Higiene de sesión",
sessionText: "Usa /new o sessions.patch para reiniciar el contexto.",
cronTitle: "Recordatorios de Cron",
cronText: "Usa sesiones aisladas para ejecuciones recurrentes.",
},
auth: {
required: "Esta puerta de enlace requiere autenticación. Añade un token o contraseña y haz clic en Conectar.",
failed: "Autenticación fallida. Vuelve a copiar una URL con token mediante {command}, o actualiza el token y haz clic en Conectar.",
},
pairing: {
hint: "Este dispositivo necesita aprobación de emparejamiento del host de la puerta de enlace.",
scopeUpgradeTitle: "Ampliación del alcance pendiente de aprobación.",
scopeUpgradeSummary: "Este dispositivo ya está emparejado, pero el alcance más amplio solicitado está pendiente de aprobación.",
roleUpgradeTitle: "Actualización del rol pendiente de aprobación.",
roleUpgradeSummary: "Este dispositivo ya está emparejado, pero el cambio de rol solicitado está pendiente de aprobación.",
metadataUpgradeTitle: "Cambio de metadatos del dispositivo pendiente de aprobación.",
metadataUpgradeSummary: "Este dispositivo ya está emparejado, pero el cambio de metadatos está pendiente de aprobación.",
mobileHint: "¿En el móvil? Copia la URL completa (incluyendo #token=...) desde openclaw dashboard --no-open en tu escritorio.",
docsTitle: "Documentación de emparejamiento de dispositivos (se abre en una pestaña nueva)",
docsLink: "Documentación: Emparejamiento de dispositivos",
},
insecure: {
hint: "Esta página es HTTP, por lo que el navegador bloquea el acceso a la identidad del dispositivo. Usa HTTPS (Tailscale Serve) o abre {url} en el equipo host.",
stayHttp: "Si debes permanecer en HTTP, utiliza {config} (solo token).",
},
connection: {
title: "Cómo conectarse",
step1: "Inicia el gateway en tu máquina host:",
step2: "Obtén una URL del panel con token:",
step3: "Pega la URL de WebSocket y el token arriba, o abre directamente la URL con token.",
step4: "O genera un token reutilizable:",
docsHint: "Para el acceso remoto, se recomienda Tailscale Serve. ",
docsLink: "Leer la documentación →",
authDocsTitle: "Documentación de autenticación de Control UI (se abre en una pestaña nueva)",
authDocsLink: "Documentación: Autenticación de Control UI",
tailscaleDocsTitle: "Documentación de Tailscale Serve (se abre en una pestaña nueva)",
tailscaleDocsLink: "Documentación: Tailscale Serve",
insecureHttpDocsTitle: "Documentación de HTTP inseguro (se abre en una pestaña nueva)",
insecureHttpDocsLink: "Documentación: HTTP inseguro",
},
cards: {
cost: "Costo",
skills: "Skills",
recentSessions: "Sesiones recientes",
modelAuth: "Autenticación del modelo",
modelAuthOk: "{count} ok",
modelAuthExpired: "{count} caducadas",
modelAuthExpiring: "{count} por caducar",
modelAuthProviders: "{count} proveedores",
modelAuthUsageLeft: "{pct}% restante",
modelAuthExpiresIn: "caduca {when}",
modelAuthAttentionExpiredTitle: "La autenticación del modelo ha caducado",
modelAuthAttentionExpiringTitle: "La autenticación del modelo caducará pronto",
modelAuthAttentionExpiredDesc: "{providers} — vuelve a autenticarte con openclaw models auth",
modelAuthAttentionExpiringEntry: "{provider} ({when})",
},
attention: {
title: "Atención",
},
eventLog: {
title: "Registro de eventos",
},
logTail: {
title: "Logs de Gateway",
},
quickActions: {
newSession: "Nueva sesión",
automation: "Automatización",
refreshAll: "Actualizar todo",
terminal: "Terminal",
},
palette: {
placeholder: "Escribe un comando…",
noResults: "Sin resultados",
},
},
dreaming: {
tabs: {
scene: "Escena",
diary: "Diario",
advanced: "Avanzado",
},
header: {
refresh: "Actualizar",
refreshing: "Actualizando…",
on: "Sueño activado",
off: "Sueño desactivado",
},
status: {
active: "Sueño activo",
idle: "Sueño inactivo",
promotedSuffix: "promovido",
nextSweepPrefix: "próximo barrido",
},
scene: {
backfill: "Rellenar",
dedupeDiary: "Diario de deduplicación",
reset: "Restablecer",
clearGrounded: "Borrar Grounded",
repairCache: "Reparar caché de sueños",
working: "Trabajando…",
},
phase: {
light: "Ligero",
deep: "Profundo",
rem: "Rem",
off: "apagado",
},
advanced: {
eyebrow: "Revisión",
title: "Revisión del registro diario",
description: "Revisa lo que proviene del registro diario, lo que está esperando promoción y lo que fue promovido recientemente.",
summaryFromDailyLog: "del registro diario",
summaryWaiting: "en espera",
summaryPromotedToday: "promovido hoy",
stagedTitle: "Del registro diario",
stagedDescription: "Volver a reproducir candidatos extraídos de entradas anteriores del registro diario.",
shortTermTitle: "Esperando promoción",
shortTermDescription: "Candidatos actuales a corto plazo que esperan ascender a memoria real.",
sortRecent: "Más reciente",
sortSignals: "Mayor respaldo",
originDailyLog: "reproducido",
originLive: "en vivo",
originMixed: "mixto",
promotedTitle: "Promociones recientes",
promotedDescription: "Elementos que ya pasaron por la promoción.",
emptyGrounded: "No hay entradas de reproducción fundamentada preparadas en este momento.",
emptyShortTerm: "No hay entradas a corto plazo para inspeccionar.",
emptyPromoted: "No hay promociones recientes para inspeccionar.",
updatedPrefix: "actualizado",
},
stats: {
shortTerm: "Corto plazo",
grounded: "Grounded",
signals: "Señales",
promoted: "Promovidos",
phaseHits: "Aciertos de fase",
},
trace: {
shortTerm: "Corto plazo",
grounded: "Grounded",
signals: "Señales",
promoted: "Promovidos",
groundedLed: "grounded-led",
emptyShortTerm: "No hay elementos activos a corto plazo.",
emptyGrounded: "No hay elementos Grounded preparados.",
emptySignals: "No hay señales activas.",
emptyPromoted: "Todavía no se ha promovido nada hoy.",
},
diary: {
title: "Diario de sueños",
noDreamsYet: "Aún no hay sueños",
noDreamsHint: "Los sueños aparecerán aquí después de que se ejecute el primer ciclo de sueño.",
waitingTitle: "El diario está esperando",
waitingHint: "Las entradas narrativas aparecerán después del próximo ciclo de sueño.",
older: "Anteriores",
newer: "Más recientes",
reload: "Recargar",
reloading: "Recargando…",
},
phrases: {
consolidatingMemories: "consolidando recuerdos…",
tidyingKnowledgeGraph: "ordenando el grafo de conocimiento…",
replayingConversations: "reproduciendo las conversaciones de hoy…",
weavingShortTerm: "entretejiendo el corto plazo con el largo plazo…",
defragmentingMindPalace: "desfragmentando el palacio mental…",
filingLooseThoughts: "archivando pensamientos sueltos…",
connectingDots: "conectando puntos distantes…",
compostingContext: "convirtiendo en compost las ventanas de contexto antiguas…",
alphabetizingSubconscious: "poniendo el subconsciente en orden alfabético…",
promotingHunches: "promoviendo corazonadas prometedoras…",
forgettingNoise: "olvidando lo que no importa…",
dreamingEmbeddings: "soñando en embeddings…",
reorganizingAttic: "reorganizando el ático de la memoria…",
indexingDay: "indexando suavemente el día…",
nurturingInsights: "nutriendo ideas incipientes…",
simmeringIdeas: "dejando hervir a fuego lento ideas a medio formar…",
whisperingVectorStore: "susurrándole al vector store…",
},
},
usage: {
page: {
subtitle: "Consulta adónde van los tokens, cuándo aumentan las sesiones y qué impulsa el costo.",
},
common: {
emptyValue: "—",
unknown: "desconocido",
},
loading: {
title: "Resumen de uso",
badge: "Cargando",
},
metrics: {
tokens: "Tokens",
cost: "Costo",
session: "sesión",
sessions: "sesiones",
},
presets: {
today: "Hoy",
last7d: "7d",
last30d: "30d",
},
filters: {
title: "Filtros",
to: "a",
startDate: "Fecha de inicio",
endDate: "Fecha de fin",
timeZone: "Zona horaria",
timeZoneLocal: "Local",
timeZoneUtc: "UTC",
pin: "Fijar",
pinned: "Fijado",
unpin: "Desfijar filtros",
selectAll: "Seleccionar todo",
clear: "Borrar",
clearAll: "Borrar todo",
remove: "Quitar filtro",
all: "Todos",
days: "Días",
hours: "Horas",
session: "Sesión",
agent: "Agente",
channel: "Canal",
provider: "Proveedor",
model: "Modelo",
tool: "Herramienta",
daysCount: "{count} días",
hoursCount: "{count} horas",
sessionsCount: "{count} sesiones",
},
query: {
placeholder: "Filtra sesiones (p. ej., key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
apply: "Filtrar (del lado del cliente)",
matching: "{shown} de {total} sesiones coinciden",
inRange: "{total} sesiones en el rango",
tip: "Consejo: usa filtros o haz clic en las barras para ajustar los días.",
},
export: {
label: "Exportar",
sessionsCsv: "CSV de sesiones",
dailyCsv: "CSV diario",
json: "JSON",
},
empty: {
title: "Comienza con un rango de fechas",
subtitle: "Carga datos de uso para comparar costos, inspeccionar sesiones y explorar cronologías sin salir del panel.",
hint: "Selecciona un rango de fechas y haz clic en Actualizar para cargar el uso.",
noData: "Sin datos",
featureOverview: "Tarjetas de resumen",
featureSessions: "Clasificación de sesiones",
featureTimeline: "Exploración de cronología",
},
daily: {
title: "Uso diario",
total: "Total",
byType: "Por tipo",
tokensTitle: "Uso diario de tokens",
costTitle: "Costo diario",
},
breakdown: {
output: "Salida",
input: "Entrada",
cacheWrite: "Escritura en caché",
cacheRead: "Lectura de caché",
total: "Total",
tokensByType: "Tokens por tipo",
costByType: "Costo por tipo",
},
overview: {
title: "Resumen de uso",
messages: "Mensajes",
messagesHint: "Total de mensajes del usuario y del asistente dentro del rango.",
messagesAbbrev: "msgs",
user: "usuario",
assistant: "asistente",
toolCalls: "Llamadas a herramientas",
toolCallsHint: "Recuento total de llamadas a herramientas en las sesiones.",
toolsUsed: "herramientas usadas",
errors: "Errores",
errorsHint: "Total de errores de mensajes y herramientas dentro del rango.",
toolResults: "resultados de herramientas",
avgTokens: "Prom. de tokens / mensaje",
avgTokensHint: "Promedio de tokens por mensaje en este rango.",
avgCost: "Costo prom. / mensaje",
avgCostHint: "Costo promedio por mensaje cuando los proveedores informan costos.",
avgCostHintMissing: "Costo promedio por mensaje cuando los proveedores informan costos. Faltan datos de costo para algunas o todas las sesiones de este rango.",
acrossMessages: "En {count} mensajes",
sessions: "Sesiones",
sessionsHint: "Sesiones distintas dentro del rango.",
sessionsInRange: "de {count} en el rango",
throughput: "Rendimiento",
throughputHint: "El rendimiento muestra tokens por minuto durante el tiempo activo. Cuanto más alto, mejor.",
tokensPerMinute: "tok/min",
perMinute: "/ min",
errorRate: "Tasa de errores",
errorHint: "Tasa de errores = errores / mensajes totales. Cuanto más baja, mejor.",
avgSession: "sesión prom.",
cacheHitRate: "Tasa de aciertos de caché",
cacheHint: "Tasa de aciertos de caché = lectura de caché / (entrada + lectura de caché). Cuanto más alta, mejor.",
cached: "en caché",
prompt: "prompt",
calls: "llamadas",
topModels: "Modelos principales",
topProviders: "Proveedores principales",
topTools: "Herramientas principales",
topAgents: "Agentes principales",
topChannels: "Canales principales",
peakErrorDays: "Días con más errores",
peakErrorHours: "Horas con más errores",
noModelData: "No hay datos de modelos",
noProviderData: "No hay datos de proveedores",
noToolCalls: "No hay llamadas a herramientas",
noAgentData: "No hay datos de agentes",
noChannelData: "No hay datos de canales",
noErrorData: "No hay datos de errores",
},
sessions: {
title: "Sesiones",
shown: "{count} mostradas",
total: "{count} en total",
avg: "prom.",
all: "Todas",
recent: "Vistas recientemente",
recentShort: "Recientes",
sort: "Ordenar",
ascending: "Ascendente",
descending: "Descendente",
clearSelection: "Borrar selección",
noRecent: "No hay sesiones recientes",
noneInRange: "No hay sesiones en el rango",
more: "+{count} más",
selected: "Seleccionadas ({count})",
copy: "Copiar",
copyName: "Copiar nombre de la sesión",
limitReached: "Mostrando las primeras 1,000 sesiones. Reduce el rango de fechas para ver los resultados completos.",
},
details: {
noUsageData: "No hay datos de uso para esta sesión.",
duration: "Duración",
modelMix: "Combinación de modelos",
filtered: "(filtrado)",
close: "Cerrar detalles de la sesión",
noTimeline: "No hay datos de cronología",
noDataInRange: "No hay datos en el rango",
usageOverTime: "Uso a lo largo del tiempo",
reset: "Restablecer",
perTurn: "Por turno",
cumulative: "Acumulado",
turnRange: "Turnos {start}–{end} de {total}",
assistantOutputTokens: "Tokens de salida del asistente",
userToolInputTokens: "Tokens de entrada del usuario + herramientas",
tokensWrittenToCache: "Tokens escritos en caché",
tokensReadFromCache: "Tokens leídos de caché",
noContextData: "No hay datos de contexto",
systemPromptBreakdown: "Desglose del prompt del sistema",
collapse: "Contraer",
collapseAll: "Contraer todo",
expandAll: "Expandir todo",
baseContextPerMessage: "Contexto base por mensaje",
system: "Sistema",
systemShort: "Sis",
skills: "Skills",
tools: "Herramientas",
files: "Archivos",
ofInput: "de la entrada",
of: "de",
timelineFiltered: "cronología filtrada",
conversation: "Conversación",
noMessages: "No hay mensajes",
tool: "Herramienta",
toolResult: "Resultado de la herramienta",
hasTools: "Tiene herramientas",
searchConversation: "Buscar en la conversación",
you: "Tú",
noMessagesMatch: "Ningún mensaje coincide con los filtros.",
},
mosaic: {
title: "Actividad por hora",
subtitleEmpty: "Las estimaciones requieren marcas de tiempo de las sesiones.",
subtitle: "Estimado a partir de los intervalos de las sesiones (primera/última actividad). Zona horaria: {zone}.",
noTimelineData: "Todavía no hay datos de cronología.",
dayOfWeek: "Día de la semana",
midnight: "Medianoche",
fourAm: "4 a. m.",
eightAm: "8 a. m.",
noon: "Mediodía",
fourPm: "4 p. m.",
eightPm: "8 p. m.",
legend: "Baja → Alta densidad de tokens",
sun: "Dom",
mon: "Lun",
tue: "Mar",
wed: "Mié",
thu: "Jue",
fri: "Vie",
sat: "Sáb",
},
},
login: {
subtitle: "Panel de Gateway",
passwordPlaceholder: "opcional",
showToken: "Mostrar token",
hideToken: "Ocultar token",
toggleTokenVisibility: "Alternar visibilidad del token",
showPassword: "Mostrar contraseña",
hidePassword: "Ocultar contraseña",
togglePasswordVisibility: "Alternar visibilidad de la contraseña",
},
chat: {
disconnected: "Desconectado de la puerta de enlace.",
refreshTitle: "Actualizar datos del chat",
thinkingToggle: "Alternar salida de pensamiento/trabajo del asistente",
toolCallsToggle: "Alternar llamadas a herramientas y resultados de herramientas",
focusToggle: "Alternar modo de enfoque (ocultar barra lateral + cabecera)",
hideCronSessions: "Ocultar sesiones de cron",
showCronSessions: "Mostrar sesiones de cron",
showCronSessionsHidden: "Mostrar sesiones de cron ({count} ocultas)",
onboardingDisabled: "Deshabilitado durante el inicio guiado",
},
languages: {
en: "Inglés (English)",
zhCN: "Chino simplificado (简体中文)",
zhTW: "Chino tradicional (繁體中文)",
ptBR: "Portugués brasileño (Português)",
de: "Deutsch (Alemán)",
es: "Español",
jaJP: "日本語 (japonés)",
ko: "한국어 (coreano)",
fr: "Français (francés)",
tr: "Türkçe (turco)",
uk: "Українська (ucraniano)",
id: "Bahasa Indonesia (indonesio)",
pl: "Polski (polaco)",
th: "ไทย (tailandés)",
},
cron: {
summary: {
enabled: "Habilitado",
yes: "Sí",
no: "No",
jobs: "Tareas",
nextWake: "Próxima activación",
refreshing: "Actualizando...",
refresh: "Actualizar",
},
jobs: {
title: "Tareas",
subtitle: "Todas las tareas programadas almacenadas en la puerta de enlace.",
shownOf: "{shown} mostradas de {total}",
searchJobs: "Buscar tareas",
searchPlaceholder: "Nombre, descripción o agente",
enabled: "Habilitado",
schedule: "Programación",
lastRun: "Última ejecución",
all: "Todas",
sort: "Ordenar",
nextRun: "Próxima ejecución",
recentlyUpdated: "Actualizadas recientemente",
name: "Nombre",
direction: "Dirección",
ascending: "Ascendente",
descending: "Descendente",
reset: "Restablecer",
noMatching: "No hay tareas coincidentes.",
loading: "Cargando...",
loadMore: "Cargar más tareas",
},
runs: {
title: "Historial de ejecuciones",
subtitleAll: "Últimas ejecuciones de todas las tareas.",
subtitleJob: "Últimas ejecuciones de {title}.",
scope: "Alcance",
allJobs: "Todas las tareas",
selectedJob: "Tarea seleccionada",
searchRuns: "Buscar ejecuciones",
searchPlaceholder: "Resumen, error o tarea",
newestFirst: "Más recientes primero",
oldestFirst: "Más antiguas primero",
status: "Estado",
delivery: "Entrega",
clear: "Limpiar",
allStatuses: "Todos los estados",
allDelivery: "Todas las entregas",
selectJobHint: "Selecciona una tarea para ver su historial de ejecuciones.",
noMatching: "No hay ejecuciones coincidentes.",
loadMore: "Cargar más ejecuciones",
runStatusOk: "OK",
runStatusError: "Error",
runStatusSkipped: "Omitida",
runStatusUnknown: "Desconocido",
deliveryDelivered: "Entregado",
deliveryNotDelivered: "No entregado",
deliveryUnknown: "Desconocido",
deliveryNotRequested: "No solicitado",
},
form: {
editJob: "Editar tarea",
newJob: "Nueva tarea",
updateSubtitle: "Actualiza la tarea programada seleccionada.",
createSubtitle: "Crea una activación programada o ejecución de agente.",
required: "Requerido",
requiredSr: "requerido",
basics: "Básico",
basicsSub: "Asigna un nombre, elige el asistente y define si está habilitada.",
fieldName: "Nombre",
description: "Descripción",
agentId: "ID de agente",
namePlaceholder: "Resumen matutino",
descriptionPlaceholder: "Contexto opcional para esta tarea",
agentPlaceholder: "main u ops",
agentHelp: "Comienza a escribir para seleccionar un agente conocido o ingresa uno personalizado.",
schedule: "Programación",
scheduleSub: "Controla cuándo se ejecuta esta tarea.",
every: "Cada",
at: "A las",
cronOption: "Cron",
runAt: "Ejecutar a las",
unit: "Unidad",
minutes: "Minutos",
hours: "Horas",
days: "Días",
expression: "Expresión",
expressionPlaceholder: "0 7 * * *",
everyAmountPlaceholder: "30",
timezoneOptional: "Zona horaria (opcional)",
timezonePlaceholder: "America/Los_Angeles",
timezoneHelp: "Selecciona una zona horaria común o ingresa cualquier zona IANA válida.",
jitterHelp: "¿Necesitas variación? Usa Avanzado → Ventana de escalonamiento / Unidad de escalonamiento.",
execution: "Ejecución",
executionSub: "Elige cuándo activar y qué debe hacer esta tarea.",
session: "Sesión",
main: "Principal",
isolated: "Aislada",
sessionHelp: "Principal publica un evento del sistema. Aislada ejecuta un turno dedicado del agente.",
wakeMode: "Modo de activación",
now: "Ahora",
nextHeartbeat: "Próximo latido",
wakeModeHelp: "Ahora se activa inmediatamente. Próximo latido espera el siguiente ciclo.",
payloadKind: "¿Qué debe ejecutarse?",
systemEvent: "Publicar mensaje en la línea de tiempo principal",
agentTurn: "Ejecutar tarea del asistente (aislada)",
systemEventHelp: "Envía tu texto a la línea de tiempo principal de la puerta de enlace (ideal para recordatorios/activadores).",
agentTurnHelp: "Inicia una ejecución del asistente en su propia sesión usando tu indicación.",
timeoutSeconds: "Tiempo de espera (segundos)",
timeoutPlaceholder: "Opcional, ej. 90",
timeoutHelp: "Opcional. Déjalo en blanco para usar el comportamiento de tiempo de espera predeterminado de la puerta de enlace para esta ejecución.",
mainTimelineMessage: "Mensaje de la línea de tiempo principal",
assistantTaskPrompt: "Indicación para la tarea del asistente",
deliverySection: "Entrega",
deliverySub: "Elige dónde se envían los resúmenes de ejecución.",
resultDelivery: "Entrega de resultados",
announceDefault: "Anunciar resumen (predeterminado)",
webhookPost: "Webhook POST",
noneInternal: "Ninguna (interno)",
deliveryHelp: "Anunciar publica un resumen en el chat. Ninguna mantiene la ejecución interna.",
webhookUrl: "URL del webhook",
channel: "Canal",
webhookPlaceholder: "https://example.com/cron",
channelHelp: "Elige qué canal conectado recibe el resumen.",
webhookHelp: "Envía resúmenes de ejecución a un endpoint webhook.",
to: "Para",
toPlaceholder: "+1555... o ID de chat",
toHelp: "Anulación opcional del destinatario (ID de chat, teléfono o ID de usuario).",
advanced: "Avanzado",
advancedHelp: "Anulaciones opcionales para garantías de entrega, variación de programación y controles del modelo.",
deleteAfterRun: "Eliminar después de ejecutar",
deleteAfterRunHelp: "Ideal para recordatorios de un solo uso que deben limpiarse automáticamente.",
clearAgentOverride: "Limpiar anulación de agente",
clearAgentHelp: "Forza a esta tarea a usar el asistente predeterminado de la puerta de enlace.",
exactTiming: "Tiempo exacto (sin escalonamiento)",
exactTimingHelp: "Ejecutar en límites exactos de cron sin dispersión.",
staggerWindow: "Ventana de escalonamiento",
staggerUnit: "Unidad de escalonamiento",
staggerPlaceholder: "30",
seconds: "Segundos",
model: "Modelo",
modelPlaceholder: "openai/gpt-5.2",
modelHelp: "Comienza a escribir para seleccionar un modelo conocido o ingresa uno personalizado.",
thinking: "Pensamiento",
thinkingPlaceholder: "bajo",
thinkingHelp: "Usa un nivel sugerido o ingresa un valor específico del proveedor.",
bestEffortDelivery: "Entrega de mejor esfuerzo",
bestEffortHelp: "No fallar la tarea si la entrega misma falla.",
cantAddYet: "Aún no se puede agregar la tarea",
fillRequired: "Completa los campos requeridos a continuación para habilitar el envío.",
fixFields: "Corrige {count} campo para continuar.",
fixFieldsPlural: "Corrige {count} campos para continuar.",
saving: "Guardando...",
saveChanges: "Guardar cambios",
addJob: "Agregar tarea",
cancel: "Cancelar",
},
jobList: {
allJobs: "todas las tareas",
selectJob: "(selecciona una tarea)",
enabled: "habilitada",
disabled: "deshabilitada",
edit: "Editar",
clone: "Clonar",
disable: "Deshabilitar",
enable: "Habilitar",
run: "Ejecutar",
history: "Historial",
remove: "Eliminar",
},
jobDetail: {
system: "Sistema",
prompt: "Indicación",
delivery: "Entrega",
agent: "Agente",
},
jobState: {
status: "Estado",
next: "Próxima",
last: "Última",
},
runEntry: {
noSummary: "Sin resumen.",
runAt: "Ejecutada a las",
openRunChat: "Abrir chat de ejecución",
next: "Próxima {rel}",
due: "Programada {rel}",
},
errors: {
nameRequired: "El nombre es requerido.",
scheduleAtInvalid: "Ingresa una fecha/hora válida.",
everyAmountInvalid: "El intervalo debe ser mayor a 0.",
cronExprRequired: "La expresión Cron es requerida.",
staggerAmountInvalid: "El escalonamiento debe ser mayor a 0.",
systemTextRequired: "El texto del sistema es requerido.",
agentMessageRequired: "El mensaje del agente es requerido.",
timeoutInvalid: "Si se establece, el tiempo de espera debe ser mayor a 0 segundos.",
webhookUrlRequired: "La URL del webhook es requerida.",
webhookUrlInvalid: "La URL del webhook debe comenzar con http:// o https://.",
invalidRunTime: "Tiempo de ejecución inválido.",
invalidIntervalAmount: "Cantidad de intervalo inválida.",
cronExprRequiredShort: "Expresión Cron requerida.",
invalidStaggerAmount: "Cantidad de escalonamiento inválida.",
systemEventTextRequired: "Texto de evento del sistema requerido.",
agentMessageRequiredShort: "Mensaje del agente requerido.",
nameRequiredShort: "Nombre requerido.",
},
},
};
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-05-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.