mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-02 03:55:55 +00:00
2135 lines
88 KiB
TypeScript
2135 lines
88 KiB
TypeScript
const esES = {
|
|
sidebar: {
|
|
home: 'Inicio',
|
|
extensions: 'Extensiones',
|
|
installedPlugins: 'Plugins instalados',
|
|
pluginMarket: 'Tienda',
|
|
mcpServers: 'Servidores MCP',
|
|
pluginPages: 'Páginas de plugins',
|
|
pluginPagesTooltip:
|
|
'Páginas visuales proporcionadas por los plugins instalados',
|
|
quickStart: 'Inicio rápido',
|
|
},
|
|
common: {
|
|
login: 'Iniciar sesión',
|
|
logout: 'Cerrar sesión',
|
|
accountOptions: 'Configuración',
|
|
account: 'Cuenta',
|
|
integration: 'Integración',
|
|
email: 'Correo electrónico',
|
|
password: 'Contraseña',
|
|
welcome: 'Bienvenido de nuevo a LangBot 👋',
|
|
continueToLogin: 'Inicia sesión para continuar',
|
|
loginSuccess: 'Inicio de sesión exitoso',
|
|
loginFailed:
|
|
'Error de inicio de sesión, por favor verifica tu correo y contraseña',
|
|
loginLoadError: 'No se puede conectar al servidor',
|
|
loginLoadErrorDesc:
|
|
'No se puede conectar al backend de LangBot. Asegúrate de que el servicio esté en ejecución e inténtalo de nuevo.',
|
|
retry: 'Reintentar',
|
|
enterEmail: 'Introduce la dirección de correo electrónico',
|
|
enterPassword: 'Introduce la contraseña',
|
|
invalidEmail:
|
|
'Por favor, introduce una dirección de correo electrónico válida',
|
|
emptyPassword: 'Por favor, introduce tu contraseña',
|
|
language: 'Idioma',
|
|
helpDocs: 'Obtener ayuda',
|
|
featureRequest: 'Solicitar función',
|
|
starOnGitHub: 'Dar estrella en GitHub',
|
|
create: 'Crear',
|
|
edit: 'Editar',
|
|
delete: 'Eliminar',
|
|
add: 'Añadir',
|
|
select: 'Seleccionar',
|
|
cancel: 'Cancelar',
|
|
submit: 'Enviar',
|
|
error: 'Error',
|
|
success: 'Éxito',
|
|
save: 'Guardar',
|
|
saving: 'Guardando...',
|
|
confirm: 'Confirmar',
|
|
confirmDelete: 'Confirmar eliminación',
|
|
deleteConfirmation: '¿Estás seguro de que deseas eliminar esto?',
|
|
selectOption: 'Selecciona una opción',
|
|
selectPreset: 'Seleccionar preajuste',
|
|
required: 'Obligatorio',
|
|
enable: 'Activar',
|
|
name: 'Nombre',
|
|
description: 'Descripción',
|
|
icon: 'Icono',
|
|
close: 'Cerrar',
|
|
deleteSuccess: 'Eliminado correctamente',
|
|
deleteError: 'Error al eliminar: ',
|
|
addRound: 'Añadir ronda',
|
|
copy: 'Copiar',
|
|
undo: 'Deshacer',
|
|
redo: 'Rehacer',
|
|
copySuccess: 'Copiado correctamente',
|
|
copyFailed: 'Error al copiar',
|
|
test: 'Probar',
|
|
forgotPassword: '¿Olvidaste tu contraseña?',
|
|
agreementNotice: 'Al continuar, aceptas nuestra',
|
|
privacyPolicy: 'Política de privacidad',
|
|
and: 'y',
|
|
dataCollectionPolicy: 'Política de recopilación de datos',
|
|
dataCollectionPolicyUrl: 'https://link.langbot.app/en/docs/data-policy',
|
|
loading: 'Cargando...',
|
|
fieldRequired: 'Este campo es obligatorio',
|
|
or: 'o',
|
|
loginWithSpace: 'Iniciar sesión con Space',
|
|
spaceLoginRecommended:
|
|
'Recomendado: Usa API de modelos oficiales estables y servicios en la nube',
|
|
loginLocal: 'Iniciar sesión con cuenta local',
|
|
loginWithPassword: 'Iniciar sesión con contraseña',
|
|
spaceLoginTitle: 'Iniciar sesión con Space',
|
|
spaceLoginDescription:
|
|
'Escanea el código QR o visita el enlace para autorizar',
|
|
spaceLoginUserCode: 'Tu código',
|
|
spaceLoginExpires: 'El código expira en {{seconds}} segundos',
|
|
spaceLoginWaiting: 'Esperando autorización...',
|
|
spaceLoginSuccess: 'Autorización exitosa',
|
|
spaceLoginFailed: 'Error de inicio de sesión con Space',
|
|
spaceLoginExpired:
|
|
'El código de autorización ha expirado, por favor inténtalo de nuevo',
|
|
spaceLoginCancel: 'Cancelar',
|
|
spaceLoginVisitLink: 'Visitar enlace',
|
|
spaceLoginProcessing: 'Iniciando sesión con Space',
|
|
spaceLoginProcessingDescription:
|
|
'Por favor espera mientras completamos tu inicio de sesión...',
|
|
spaceLoginSuccessDescription: 'Redirigiendo a LangBot...',
|
|
spaceLoginError: 'Error de inicio de sesión',
|
|
spaceLoginNoCode: 'Falta el código de autorización',
|
|
backToLogin: 'Volver al inicio de sesión',
|
|
backToHome: 'Volver al inicio',
|
|
spaceAccountCannotChangePassword:
|
|
'Las cuentas de Space no pueden cambiar la contraseña aquí',
|
|
theme: 'Tema',
|
|
changePassword: 'Cambiar contraseña',
|
|
currentPassword: 'Contraseña actual',
|
|
newPassword: 'Nueva contraseña',
|
|
confirmNewPassword: 'Confirmar nueva contraseña',
|
|
enterCurrentPassword: 'Introduce la contraseña actual',
|
|
enterNewPassword: 'Introduce la nueva contraseña',
|
|
enterConfirmPassword: 'Confirma la nueva contraseña',
|
|
currentPasswordRequired: 'La contraseña actual es obligatoria',
|
|
newPasswordRequired: 'La nueva contraseña es obligatoria',
|
|
confirmPasswordRequired: 'La confirmación de contraseña es obligatoria',
|
|
passwordsDoNotMatch: 'Las contraseñas no coinciden',
|
|
changePasswordSuccess: 'Contraseña cambiada correctamente',
|
|
changePasswordFailed:
|
|
'Error al cambiar la contraseña, por favor verifica tu contraseña actual',
|
|
apiIntegration: 'Integración API',
|
|
apiKeys: 'Claves API',
|
|
manageApiIntegration: 'Gestionar integración API',
|
|
manageApiKeys: 'Gestionar claves API',
|
|
createApiKey: 'Crear clave API',
|
|
apiKeyName: 'Nombre de la clave API',
|
|
apiKeyDescription: 'Descripción de la clave API',
|
|
apiKeyValue: 'Valor de la clave API',
|
|
apiKeyCreated: 'Clave API creada correctamente',
|
|
apiKeyDeleted: 'Clave API eliminada correctamente',
|
|
apiKeyDeleteConfirm: '¿Estás seguro de que deseas eliminar esta clave API?',
|
|
apiKeyNameRequired: 'El nombre de la clave API es obligatorio',
|
|
copyApiKey: 'Copiar clave API',
|
|
apiKeyCopied: 'Clave API copiada al portapapeles',
|
|
noApiKeys: 'No hay claves API configuradas',
|
|
apiKeyHint:
|
|
'Las claves API permiten a sistemas externos acceder a las API del servicio LangBot',
|
|
webhooks: 'Webhooks',
|
|
createWebhook: 'Crear Webhook',
|
|
webhookName: 'Nombre del Webhook',
|
|
webhookUrl: 'URL del Webhook',
|
|
webhookDescription: 'Descripción del Webhook',
|
|
webhookEnabled: 'Activado',
|
|
webhookCreated: 'Webhook creado correctamente',
|
|
webhookDeleted: 'Webhook eliminado correctamente',
|
|
webhookDeleteConfirm: '¿Estás seguro de que deseas eliminar este Webhook?',
|
|
webhookNameRequired: 'El nombre del Webhook es obligatorio',
|
|
webhookUrlRequired: 'La URL del Webhook es obligatoria',
|
|
noWebhooks: 'No hay Webhooks configurados',
|
|
webhookHint:
|
|
'Los Webhooks permiten a LangBot enviar eventos de mensajes personales y grupales a sistemas externos',
|
|
actions: 'Acciones',
|
|
apiKeyCreatedMessage:
|
|
'Por favor copia esta clave API, si el botón no funciona, cópiala manualmente.',
|
|
none: 'Ninguno',
|
|
more: 'Más ({{count}})',
|
|
less: 'Menos',
|
|
noItems: 'Sin elementos',
|
|
},
|
|
notFound: {
|
|
title: 'Página no encontrada',
|
|
description: 'La página que buscas no existe.',
|
|
back: 'Volver',
|
|
home: 'Inicio',
|
|
help: 'Obtener ayuda',
|
|
},
|
|
models: {
|
|
title: 'Modelos',
|
|
description:
|
|
'Configura y gestiona los modelos que se pueden usar en los Pipelines',
|
|
createModel: 'Crear modelo',
|
|
editModel: 'Editar modelo',
|
|
getModelListError: 'Error al obtener la lista de modelos: ',
|
|
modelName: 'Nombre del modelo',
|
|
modelProvider: 'Proveedor del modelo',
|
|
modelBaseURL: 'URL base',
|
|
modelAbilities: 'Capacidades del modelo',
|
|
saveSuccess: 'Guardado correctamente',
|
|
saveError: 'Error al guardar: ',
|
|
createSuccess: 'Creado correctamente',
|
|
createError: 'Error al crear: ',
|
|
deleteSuccess: 'Eliminado correctamente',
|
|
deleteError: 'Error al eliminar: ',
|
|
deleteConfirmation: '¿Estás seguro de que deseas eliminar este modelo?',
|
|
modelNameRequired: 'El nombre del modelo no puede estar vacío',
|
|
modelProviderRequired: 'El proveedor del modelo no puede estar vacío',
|
|
requestURLRequired: 'La URL de solicitud no puede estar vacía',
|
|
apiKeyRequired: 'La clave API no puede estar vacía',
|
|
keyNameRequired: 'El nombre de la clave no puede estar vacío',
|
|
mustBeValidNumber: 'Debe ser un número válido',
|
|
mustBeTrueOrFalse: 'Debe ser verdadero o falso',
|
|
requestURL: 'URL de solicitud',
|
|
scanURL: 'URL de escaneo de modelos',
|
|
scanURLPlaceholder: 'Déjalo vacío para usar URL de solicitud + /models',
|
|
scanURLDescription:
|
|
'Ingresa el endpoint real de la lista de modelos cuando el escaneo de modelos no utiliza la misma dirección que la invocación del modelo.',
|
|
apiKey: 'Clave API',
|
|
abilities: 'Capacidades',
|
|
selectModelAbilities: 'Seleccionar capacidades del modelo',
|
|
visionAbility: 'Capacidad de visión',
|
|
functionCallAbility: 'Llamada a funciones',
|
|
extraParameters: 'Parámetros adicionales',
|
|
addParameter: 'Añadir parámetro',
|
|
keyName: 'Nombre de la clave',
|
|
type: 'Tipo',
|
|
value: 'Valor',
|
|
string: 'Cadena',
|
|
number: 'Número',
|
|
boolean: 'Booleano',
|
|
object: 'Objeto',
|
|
objectJsonPlaceholder: '{ "type": "disabled" }',
|
|
invalidJsonObject: 'El valor debe ser un objeto JSON válido',
|
|
selectModelProvider: 'Seleccionar proveedor del modelo',
|
|
modelProviderDescription:
|
|
'Por favor, introduce el nombre del modelo proporcionado por el proveedor',
|
|
modelManufacturer: 'Fabricante del modelo',
|
|
aggregationPlatform: 'Plataforma de agregación',
|
|
selfDeployed: 'Autoalojado',
|
|
builtin: 'Integrado',
|
|
selectModel: 'Seleccionar modelo',
|
|
testSuccess: 'Prueba exitosa',
|
|
testError:
|
|
'Error en la prueba, por favor verifica la configuración del modelo',
|
|
llmModels: 'Modelos LLM',
|
|
localProvider: 'Local',
|
|
localProviderDescription: 'Modelos configurados y gestionados localmente',
|
|
spaceProviderDescription: 'Modelos sincronizados desde tu cuenta de Space',
|
|
spaceDisabledForLocalAccount:
|
|
'Inicia sesión con Space para usar modelos en la nube',
|
|
syncModels: 'Sincronizar',
|
|
syncSuccess:
|
|
'Sincronización completa: {{created}} creados, {{updated}} actualizados',
|
|
syncError: 'Error de sincronización: ',
|
|
spaceModelReadOnly: 'Los modelos de Space son de solo lectura',
|
|
noSpaceModels:
|
|
'No hay modelos de Space. Haz clic en Sincronizar para obtener modelos de Space.',
|
|
noLocalModels:
|
|
'No hay modelos locales. Haz clic en Crear para añadir un modelo.',
|
|
providerCount: '{{count}} proveedores',
|
|
// New keys for provider-based structure
|
|
addModel: 'Añadir modelo',
|
|
manualAdd: 'Manual',
|
|
scanAdd: 'Escanear',
|
|
scanModels: 'Escanear modelos',
|
|
scanModelsHint:
|
|
'Lee los modelos disponibles del proveedor actual y luego elige cuáles agregar.',
|
|
scannedModels: 'Modelos detectados',
|
|
scanDebug: 'Información de depuración',
|
|
searchScannedModels: 'Buscar modelos detectados',
|
|
noScannedModels:
|
|
'Todavía no hay resultados. Pulsa el botón superior para escanear.',
|
|
noScannedModelsMatch: 'No hay modelos coincidentes',
|
|
addSelectedModels: 'Agregar seleccionados',
|
|
addSelectedModelsSuccess: 'Se agregaron {{count}} modelo(s)',
|
|
selectAll: 'Seleccionar todo',
|
|
alreadyAdded: 'Ya agregado',
|
|
addLLMModel: 'Añadir modelo LLM',
|
|
addEmbeddingModel: 'Añadir modelo Embedding',
|
|
provider: 'Proveedor',
|
|
existingProvider: 'Proveedor existente',
|
|
newProvider: 'Nuevo proveedor',
|
|
selectProvider: 'Seleccionar proveedor',
|
|
requester: 'Tipo de proveedor',
|
|
selectRequester: 'Seleccionar tipo de proveedor',
|
|
langbotModelsDescription: 'Modelos en la nube impulsados por LangBot Space',
|
|
credits: 'Créditos',
|
|
loginWithSpace: 'Iniciar sesión con Space',
|
|
loginToUseModels: 'Inicia sesión con Space para usar modelos en la nube',
|
|
noModels: 'No hay modelos configurados',
|
|
langbotModels: 'Modelos LangBot',
|
|
spaceTrialTooltip:
|
|
'¡Créditos de prueba gratuitos disponibles! Inicia sesión con Space para acceder a modelos en la nube sin configuración.',
|
|
unlockModels: 'Inicia sesión para usar',
|
|
editProvider: 'Editar proveedor',
|
|
addProvider: 'Añadir proveedor',
|
|
addProviderHint: 'Añade proveedores para usar modelos de otras fuentes',
|
|
addProviderHintSimple: 'Añade proveedores para usar modelos',
|
|
noProviders: 'Aún no hay proveedores',
|
|
providerName: 'Nombre del proveedor',
|
|
providerNameRequired: 'El nombre del proveedor es obligatorio',
|
|
requesterRequired: 'El tipo de proveedor es obligatorio',
|
|
providerSaved: 'Proveedor guardado',
|
|
providerCreated: 'Proveedor creado',
|
|
providerSaveError: 'Error al guardar el proveedor: ',
|
|
providerDeleted: 'Proveedor eliminado',
|
|
providerDeleteError: 'Error al eliminar el proveedor: ',
|
|
deleteProviderConfirmation:
|
|
'¿Estás seguro de que deseas eliminar este proveedor?',
|
|
loadError: 'Error al cargar datos',
|
|
chat: 'Chat',
|
|
embedding: 'Embedding',
|
|
rerank: 'Reordenar',
|
|
rerankUrlTooltip:
|
|
'URL completa para el endpoint de reordenación (ej: https://dashscope.aliyuncs.com/compatible-api/v1/reranks)',
|
|
rerankPathTooltip:
|
|
'Ruta añadida a la URL base (predeterminado: rerank, algunos servicios usan reranks)',
|
|
modelsCount: '{{count}} modelo(s)',
|
|
expandModels: 'Expandir',
|
|
collapseModels: 'Contraer',
|
|
fallback: {
|
|
primary: 'Modelo principal',
|
|
fallbackList: 'Modelos de respaldo',
|
|
addFallback: 'Añadir modelo de respaldo',
|
|
},
|
|
},
|
|
bots: {
|
|
title: 'Bots',
|
|
description:
|
|
'Crea y gestiona Bots, que son los puntos de entrada para que LangBot se conecte con diversas plataformas',
|
|
createBot: 'Crear Bot',
|
|
selectFromSidebar: 'Selecciona un Bot de la barra lateral',
|
|
editBot: 'Editar Bot',
|
|
getBotListError: 'Error al obtener la lista de Bots: ',
|
|
botName: 'Nombre del Bot',
|
|
botDescription: 'Descripción del Bot',
|
|
botNameRequired: 'El nombre del Bot no puede estar vacío',
|
|
botDescriptionRequired: 'La descripción del Bot no puede estar vacía',
|
|
adapterRequired: 'El adaptador no puede estar vacío',
|
|
defaultDescription: 'Un Bot',
|
|
getBotConfigError: 'Error al obtener la configuración del Bot: ',
|
|
saveSuccess: 'Guardado correctamente',
|
|
saveError: 'Error al guardar: ',
|
|
createSuccess:
|
|
'Creado correctamente. Por favor, activa o modifica el Pipeline vinculado',
|
|
createError: 'Error al crear: ',
|
|
deleteSuccess: 'Eliminado correctamente',
|
|
deleteError: 'Error al eliminar: ',
|
|
deleteConfirmation: '¿Estás seguro de que deseas eliminar este Bot?',
|
|
platformAdapter: 'Selección de plataforma/adaptador',
|
|
selectAdapter: 'Seleccionar adaptador',
|
|
adapterConfig: 'Configuración del adaptador',
|
|
viewAdapterDocs: 'Ver documentación',
|
|
bindPipeline: 'Vincular Pipeline',
|
|
selectPipeline: 'Seleccionar Pipeline',
|
|
selectBot: 'Seleccionar Bot',
|
|
botLogTitle: 'Registro del Bot',
|
|
enableAutoRefresh: 'Activar actualización automática',
|
|
session: 'Sesión',
|
|
yesterday: 'Ayer',
|
|
earlier: 'Anterior',
|
|
dateFormat: '{{day}}/{{month}}',
|
|
setBotEnableError: 'Error al establecer el estado de activación del Bot',
|
|
log: 'Registro',
|
|
configuration: 'Configuración',
|
|
logs: 'Registros',
|
|
basicInfo: 'Información básica',
|
|
basicInfoDescription: 'Establece el nombre y la descripción del Bot',
|
|
routingConnection: 'Enrutamiento y conexión',
|
|
routingConnectionDescription:
|
|
'Vincula el Pipeline que procesa los mensajes de este Bot',
|
|
routingRules: 'Reglas de enrutamiento condicional',
|
|
routingRulesDescription:
|
|
'Las reglas se evalúan en orden; la primera coincidencia enruta a su pipeline. Si ninguna coincide, se usa el pipeline predeterminado.',
|
|
addRoutingRule: 'Agregar regla',
|
|
ruleTypeLauncherType: 'Tipo de sesión',
|
|
ruleTypeLauncherId: 'ID de sesión',
|
|
ruleTypeMessageContent: 'Contenido del mensaje',
|
|
operatorEq: 'Igual a',
|
|
operatorNeq: 'No igual a',
|
|
operatorContains: 'Contiene',
|
|
operatorNotContains: 'No contiene',
|
|
operatorStartsWith: 'Comienza con',
|
|
operatorRegex: 'Regex',
|
|
operatorHas: 'Tiene',
|
|
operatorNotHas: 'No tiene',
|
|
ruleTypeMessageHasElement: 'Elemento del mensaje',
|
|
ruleValueElementPlaceholder: 'Seleccionar tipo de elemento',
|
|
elementImage: 'Imagen',
|
|
elementVoice: 'Voz',
|
|
elementFile: 'Archivo',
|
|
elementForward: 'Reenvío',
|
|
elementFace: 'Emoji',
|
|
elementAt: '@Mención',
|
|
elementAtAll: '@Todos',
|
|
elementQuote: 'Cita',
|
|
ruleValuePlaceholder: 'Valor de coincidencia',
|
|
ruleValueLauncherIdPlaceholder: 'ID de grupo o usuario',
|
|
ruleValueMessagePlaceholder: 'Texto del mensaje',
|
|
ruleValuePrefixPlaceholder: 'ej. !draw',
|
|
ruleValueRegexpPlaceholder: 'ej. ^/help',
|
|
pipelineDiscard: 'Descartar mensaje',
|
|
sessionTypePerson: 'Chat privado',
|
|
sessionTypeGroup: 'Chat grupal',
|
|
adapterConfigDescription:
|
|
'Configura el adaptador de plataforma seleccionado',
|
|
dangerZone: 'Zona de peligro',
|
|
dangerZoneDescription: 'Acciones irreversibles y destructivas',
|
|
deleteBotAction: 'Eliminar este Bot',
|
|
deleteBotHint:
|
|
'Una vez eliminado, toda la configuración asociada se eliminará permanentemente.',
|
|
webhookUrl: 'URL de callback Webhook',
|
|
webhookUrlCopied: 'URL del Webhook copiada',
|
|
webhookUrlHint:
|
|
'Haz clic en el campo para seleccionar todo, luego presiona Ctrl+C (Mac: Cmd+C) para copiar, o haz clic en el botón',
|
|
webhookUrlHintEither:
|
|
'Usa cualquiera de las dos URL anteriores en la configuración de tu plataforma',
|
|
webhookSaasHint:
|
|
'Webhook requiere un dominio accesible públicamente. LangBot Cloud proporciona un punto de acceso público listo para usar para tu Bot.',
|
|
webhookSaasLink: 'Más información sobre LangBot Cloud',
|
|
adapterCategory: {
|
|
popular: 'Popular',
|
|
china: 'China',
|
|
global: 'Global',
|
|
protocol: 'Protocolo',
|
|
},
|
|
logLevel: 'Nivel de registro',
|
|
allLevels: 'Todos los niveles',
|
|
selectLevel: 'Seleccionar nivel',
|
|
levelsSelected: 'niveles seleccionados',
|
|
viewDetailedLogs: 'Ver registros detallados',
|
|
viewDetails: 'Detalles',
|
|
collapse: 'Contraer',
|
|
imagesAttached: 'imagen(es) adjunta(s)',
|
|
noLogs: 'Aún no hay registros',
|
|
sessionMonitor: {
|
|
title: 'Sesiones',
|
|
sessions: 'Sesiones',
|
|
noSessions: 'No se encontraron sesiones',
|
|
selectSession: 'Selecciona una sesión para ver los mensajes',
|
|
noMessages: 'No hay mensajes en esta sesión',
|
|
messages: 'mensajes',
|
|
messageCount: '{{count}} mensajes',
|
|
loading: 'Cargando...',
|
|
loadingSessions: 'Cargando sesiones...',
|
|
loadingMessages: 'Cargando mensajes...',
|
|
user: 'Usuario',
|
|
variables: 'Variables',
|
|
platform: 'Plataforma',
|
|
lastActive: 'Última actividad',
|
|
refresh: 'Actualizar',
|
|
active: 'Activo',
|
|
inactive: 'Inactivo',
|
|
discarded: 'Descartado',
|
|
userMessage: 'Usuario',
|
|
botMessage: 'Asistente',
|
|
},
|
|
},
|
|
plugins: {
|
|
title: 'Extensiones',
|
|
description:
|
|
'Instala y configura plugins para ampliar la funcionalidad, selecciónalos en la configuración del Pipeline',
|
|
createPlugin: 'Crear plugin',
|
|
editPlugin: 'Editar plugin',
|
|
installed: 'Instalados',
|
|
marketplace: 'Tienda',
|
|
arrange: 'Ordenar plugins',
|
|
install: 'Instalar',
|
|
installPlugin: 'Instalar plugin',
|
|
onlySupportGithub: 'Actualmente solo se admite la instalación desde GitHub',
|
|
enterGithubLink: 'Introduce el enlace de GitHub del plugin',
|
|
installing: 'Instalando plugin...',
|
|
installSuccess: 'Plugin instalado correctamente',
|
|
installFailed: 'Error en la instalación del plugin:',
|
|
searchPlugin: 'Buscar plugins',
|
|
sortBy: 'Ordenar por',
|
|
mostStars: 'Más estrellas',
|
|
recentlyAdded: 'Añadidos recientemente',
|
|
recentlyUpdated: 'Actualizados recientemente',
|
|
noMatchingPlugins: 'No se encontraron plugins coincidentes',
|
|
loading: 'Cargando...',
|
|
getPluginListError: 'Error al obtener la lista de plugins:',
|
|
noPluginInstalled: 'No hay plugins instalados',
|
|
pluginConfig: 'Configuración del plugin',
|
|
pluginSort: 'Orden de plugins',
|
|
pluginSortDescription:
|
|
'El orden de los plugins afecta el orden de procesamiento dentro del mismo evento, arrastra la tarjeta del plugin para ordenar',
|
|
pluginSortSuccess: 'Orden de plugins aplicado correctamente',
|
|
pluginSortError: 'Error al ordenar plugins: ',
|
|
pluginNoConfig: 'El plugin no tiene elementos de configuración.',
|
|
systemDisabled: 'Sistema de plugins desactivado',
|
|
systemDisabledDesc:
|
|
'El sistema de plugins no está activado, por favor modifica la configuración según la documentación',
|
|
connectionError: 'Error de conexión del sistema de plugins',
|
|
connectionErrorDesc:
|
|
'Verifica la configuración del sistema de plugins o contacta al administrador.',
|
|
errorDetails: 'Detalles del error',
|
|
loadingStatus: 'Comprobando el estado del sistema de plugins...',
|
|
failedToGetStatus: 'Error al obtener el estado del sistema de plugins',
|
|
pluginSystemNotReady:
|
|
'El sistema de plugins no está listo, no se puede realizar esta operación',
|
|
debugInfo: 'Información de depuración',
|
|
debugInfoTitle: 'Información de depuración del plugin',
|
|
debugUrl: 'URL de depuración',
|
|
debugKey: 'Clave de depuración',
|
|
noDebugKey: '(No establecida)',
|
|
debugKeyDisabled:
|
|
'La clave de depuración no está configurada, la depuración del plugin no requiere autenticación',
|
|
failedToGetDebugInfo: 'Error al obtener la información de depuración',
|
|
copiedToClipboard: 'Copiado al portapapeles',
|
|
deleting: 'Eliminando...',
|
|
deletePlugin: 'Eliminar plugin',
|
|
cancel: 'Cancelar',
|
|
saveConfig: 'Guardar configuración',
|
|
saving: 'Guardando...',
|
|
confirmDeletePlugin:
|
|
'¿Estás seguro de que deseas eliminar el plugin ({{author}}/{{name}})?',
|
|
deleteDataCheckbox:
|
|
'También eliminar la configuración y el almacenamiento persistente del plugin',
|
|
confirmDelete: 'Confirmar eliminación',
|
|
deleteError: 'Error al eliminar: ',
|
|
close: 'Cerrar',
|
|
deleteConfirm: 'Confirmación de eliminación',
|
|
deleteSuccess: 'Eliminación exitosa',
|
|
modifyFailed: 'Error al modificar: ',
|
|
componentName: {
|
|
Tool: 'Herramienta',
|
|
EventListener: 'Listener de eventos',
|
|
Command: 'Comando',
|
|
KnowledgeEngine: 'Motor de conocimiento',
|
|
Parser: 'Analizador',
|
|
Page: 'Página',
|
|
},
|
|
uploadLocal: 'Subir local',
|
|
debugging: 'Depuración',
|
|
uploadLocalPlugin: 'Subir plugin local',
|
|
dragToUpload: 'Arrastra el archivo del plugin aquí para subirlo',
|
|
unsupportedFileType:
|
|
'Tipo de archivo no soportado, solo se admiten archivos .lbpkg y .zip',
|
|
uploadingPlugin: 'Subiendo plugin...',
|
|
uploadSuccess: 'Subida exitosa',
|
|
uploadFailed: 'Error en la subida',
|
|
selectFileToUpload: 'Selecciona el archivo del plugin para subir',
|
|
askConfirm: '¿Estás seguro de instalar el plugin "{{name}}" ({{version}})?',
|
|
fromGithub: 'Desde GitHub',
|
|
fromLocal: 'Desde local',
|
|
fromMarketplace: 'Desde la tienda',
|
|
componentsList: 'Componentes: ',
|
|
noComponents: 'Sin componentes',
|
|
delete: 'Eliminar plugin',
|
|
update: 'Actualizar plugin',
|
|
new: 'Nuevo',
|
|
updateConfirm: 'Confirmación de actualización',
|
|
confirmUpdatePlugin:
|
|
'¿Estás seguro de que deseas actualizar el plugin ({{author}}/{{name}})?',
|
|
confirmUpdate: 'Confirmar actualización',
|
|
updating: 'Actualizando...',
|
|
updateSuccess: 'Plugin actualizado correctamente',
|
|
updateError: 'Error al actualizar: ',
|
|
saveConfigSuccessNormal: 'Configuración guardada correctamente',
|
|
saveConfigError: 'Error al guardar la configuración: ',
|
|
config: 'Configuración',
|
|
readme: 'Documentación',
|
|
viewSource: 'Ver código fuente',
|
|
loadingReadme: 'Cargando documentación...',
|
|
noReadme: 'Este plugin no proporciona documentación README',
|
|
fileUpload: {
|
|
tooLarge: 'El tamaño del archivo supera el límite de 10MB',
|
|
success: 'Archivo subido correctamente',
|
|
failed: 'Error al subir el archivo',
|
|
uploading: 'Subiendo...',
|
|
chooseFile: 'Elegir archivo',
|
|
addFile: 'Añadir archivo',
|
|
},
|
|
installFromGithub: 'Desde GitHub',
|
|
enterRepoUrl: 'Introduce la URL del repositorio de GitHub',
|
|
repoUrlPlaceholder: 'p. ej., https://github.com/owner/repo',
|
|
fetchingReleases: 'Obteniendo versiones...',
|
|
selectRelease: 'Seleccionar versión',
|
|
noReleasesFound: 'No se encontraron versiones',
|
|
fetchReleasesError: 'Error al obtener versiones: ',
|
|
selectAsset: 'Seleccionar archivo a instalar',
|
|
noAssetsFound: 'No hay archivos .lbpkg disponibles en esta versión',
|
|
fetchAssetsError: 'Error al obtener archivos: ',
|
|
backToReleases: 'Volver a versiones',
|
|
backToRepoUrl: 'Volver a la URL del repositorio',
|
|
backToAssets: 'Volver a archivos',
|
|
releaseTag: 'Etiqueta: {{tag}}',
|
|
releaseName: 'Nombre: {{name}}',
|
|
publishedAt: 'Publicado el: {{date}}',
|
|
prerelease: 'Pre-lanzamiento',
|
|
assetSize: 'Tamaño: {{size}}',
|
|
confirmInstall: 'Confirmar instalación',
|
|
installFromGithubDesc: 'Instalar plugin desde GitHub Release',
|
|
goToMarketplace: 'Ir a la tienda',
|
|
installProgress: {
|
|
title: 'Instalando {{name}}',
|
|
titleGeneric: 'Instalación de Plugin',
|
|
overallProgress: 'Progreso general',
|
|
downloading: 'Descargando Plugin',
|
|
installingDeps: 'Instalando dependencias',
|
|
initializing: 'Inicializando configuración',
|
|
launching: 'Iniciando Plugin',
|
|
completed: 'Completado',
|
|
failed: 'Fallido',
|
|
downloadSize: 'Tamaño del paquete: {{size}}',
|
|
depsInfo: '{{count}} dependencias por instalar',
|
|
depsProgress:
|
|
'{{installed}}/{{total}} instaladas · {{remaining}} restantes',
|
|
installComplete: 'Plugin instalado correctamente',
|
|
dismiss: 'Descartar',
|
|
background: 'Ejecutar en segundo plano',
|
|
taskQueue: 'Tareas de instalación',
|
|
clearCompleted: 'Limpiar completados',
|
|
noTasks: 'No hay tareas de instalación',
|
|
},
|
|
},
|
|
market: {
|
|
searchPlaceholder: 'Buscar plugins...',
|
|
searchResults: 'Se encontraron {{count}} plugins',
|
|
totalPlugins: 'Total {{count}} plugins',
|
|
noPlugins: 'No hay plugins disponibles',
|
|
noResults: 'No se encontraron plugins relevantes',
|
|
loadingMore: 'Cargando más...',
|
|
loading: 'Cargando...',
|
|
allLoaded: 'Todos los plugins mostrados',
|
|
install: 'Instalar',
|
|
installConfirm:
|
|
'¿Estás seguro de que deseas instalar el plugin "{{name}}" ({{version}})?',
|
|
downloadComplete: 'Descarga del plugin "{{name}}" completada',
|
|
installFailed: 'Error en la instalación, por favor inténtalo más tarde',
|
|
loadFailed:
|
|
'Error al obtener la lista de plugins, por favor inténtalo más tarde',
|
|
noDescription: 'No hay descripción disponible',
|
|
notFound: 'No se encontró la información del plugin',
|
|
sortBy: 'Ordenar por',
|
|
sort: {
|
|
recentlyAdded: 'Añadidos recientemente',
|
|
recentlyUpdated: 'Actualizados recientemente',
|
|
mostDownloads: 'Más descargas',
|
|
leastDownloads: 'Menos descargas',
|
|
},
|
|
downloads: 'descargas',
|
|
download: 'Descargar',
|
|
repository: 'Repositorio',
|
|
downloadFailed: 'Error en la descarga',
|
|
noReadme: 'Este plugin no proporciona documentación README',
|
|
description: 'Descripción',
|
|
tagLabel: 'Etiquetas',
|
|
submissionTitle: 'Tienes un envío de plugin en revisión: {{name}}',
|
|
submissionPending: 'Tu envío de plugin está en revisión: {{name}}',
|
|
submissionApproved: 'Tu envío de plugin ha sido aprobado: {{name}}',
|
|
submissionRejected: 'Tu envío de plugin ha sido rechazado: {{name}}',
|
|
clickToRevoke: 'Revocar',
|
|
revokeSuccess: 'Revocación exitosa',
|
|
revokeFailed: 'Error en la revocación',
|
|
submissionDetails: 'Detalles del envío del plugin',
|
|
markAsRead: 'Marcar como leído',
|
|
markAsReadSuccess: 'Marcado como leído',
|
|
markAsReadFailed: 'Error al marcar como leído',
|
|
filterByComponent: 'Componente',
|
|
allComponents: 'Todos los componentes',
|
|
requestPlugin: 'Solicitar plugin',
|
|
viewDetails: 'Ver detalles',
|
|
deprecated: 'Obsoleto',
|
|
deprecatedTooltip:
|
|
'Por favor, instala el plugin de motor de conocimiento correspondiente.',
|
|
tags: {
|
|
filterByTags: 'Filtrar por etiquetas',
|
|
selected: 'seleccionadas',
|
|
selectTags: 'Seleccionar etiquetas',
|
|
clearAll: 'Borrar todo',
|
|
noTags: 'No hay etiquetas disponibles',
|
|
},
|
|
},
|
|
mcp: {
|
|
title: 'MCP',
|
|
createServer: 'Añadir servidor MCP',
|
|
editServer: 'Editar servidor MCP',
|
|
deleteServer: 'Eliminar servidor MCP',
|
|
confirmDeleteServer:
|
|
'¿Estás seguro de que deseas eliminar este servidor MCP?',
|
|
confirmDeleteTitle: 'Eliminar servidor MCP',
|
|
getServerListError: 'Error al obtener la lista de servidores MCP: ',
|
|
serverName: 'Nombre del servidor',
|
|
serverMode: 'Modo de conexión',
|
|
selectMode: 'Seleccionar modo',
|
|
stdio: 'Modo Stdio',
|
|
sse: 'Modo SSE',
|
|
http: 'Modo HTTP',
|
|
noServerInstalled: 'No hay servidores MCP configurados',
|
|
serverNameRequired: 'El nombre del servidor no puede estar vacío',
|
|
commandRequired: 'El comando no puede estar vacío',
|
|
urlRequired: 'La URL no puede estar vacía',
|
|
timeoutMustBePositive: 'El tiempo de espera debe ser un número positivo',
|
|
command: 'Comando',
|
|
args: 'Argumentos',
|
|
env: 'Variables de entorno',
|
|
url: 'URL',
|
|
headers: 'Encabezados',
|
|
timeout: 'Tiempo de espera',
|
|
addArgument: 'Añadir argumento',
|
|
addEnvVar: 'Añadir variable de entorno',
|
|
addHeader: 'Añadir encabezado',
|
|
keyName: 'Nombre de la clave',
|
|
value: 'Valor',
|
|
testing: 'Probando...',
|
|
connecting: 'Conectando...',
|
|
testSuccess: 'Prueba exitosa',
|
|
testFailed: 'Error en la prueba: ',
|
|
testError: 'Error de prueba',
|
|
refreshSuccess: 'Actualización exitosa',
|
|
refreshFailed: 'Error en la actualización: ',
|
|
connectionSuccess: 'Conexión exitosa',
|
|
connectionFailed: 'Error de conexión, por favor verifica la URL',
|
|
connectionFailedStatus: 'Conexión fallida',
|
|
toolsFound: 'herramientas',
|
|
unknownError: 'Error desconocido',
|
|
noToolsFound: 'No se encontraron herramientas',
|
|
parseResultFailed: 'Error al analizar el resultado de la prueba',
|
|
noResultReturned: 'La prueba no devolvió resultados',
|
|
getTaskFailed: 'Error al obtener el estado de la tarea',
|
|
noTaskId: 'No se obtuvo el ID de la tarea',
|
|
deleteSuccess: 'Eliminado correctamente',
|
|
deleteFailed: 'Error al eliminar: ',
|
|
deleteError: 'Error al eliminar: ',
|
|
saveSuccess: 'Guardado correctamente',
|
|
saveError: 'Error al guardar: ',
|
|
createSuccess: 'Creado correctamente',
|
|
createFailed: 'Error al crear: ',
|
|
createError: 'Error al crear: ',
|
|
loadFailed: 'Error al cargar',
|
|
modifyFailed: 'Error al modificar: ',
|
|
toolCount: 'Herramientas: {{count}}',
|
|
statusConnected: 'Conectado',
|
|
statusDisconnected: 'Desconectado',
|
|
statusError: 'Error de conexión',
|
|
statusDisabled: 'Desactivado',
|
|
loading: 'Cargando...',
|
|
starCount: 'Estrellas: {{count}}',
|
|
install: 'Instalar',
|
|
installFromGithub: 'Instalar servidor MCP desde GitHub',
|
|
add: 'Añadir',
|
|
name: 'Nombre',
|
|
nameRequired: 'El nombre no puede estar vacío',
|
|
sseTimeout: 'Tiempo de espera SSE',
|
|
sseTimeoutDescription: 'Tiempo de espera para establecer la conexión SSE',
|
|
extraParametersDescription:
|
|
'Parámetros adicionales para configurar el comportamiento específico del servidor MCP',
|
|
timeoutMustBeNumber: 'El tiempo de espera debe ser un número',
|
|
timeoutNonNegative: 'El tiempo de espera no puede ser negativo',
|
|
sseTimeoutMustBeNumber: 'El tiempo de espera SSE debe ser un número',
|
|
sseTimeoutNonNegative: 'El tiempo de espera SSE no puede ser negativo',
|
|
updateSuccess: 'Actualizado correctamente',
|
|
updateFailed: 'Error al actualizar: ',
|
|
selectFromSidebar: 'Selecciona un servidor MCP de la barra lateral',
|
|
dangerZone: 'Zona de peligro',
|
|
dangerZoneDescription:
|
|
'Acciones irreversibles y destructivas para este servidor MCP.',
|
|
deleteMCPAction: 'Eliminar este servidor MCP',
|
|
deleteMCPHint:
|
|
'Una vez eliminada, la configuración de este servidor MCP no se podrá recuperar.',
|
|
},
|
|
pipelines: {
|
|
title: 'Pipelines',
|
|
description:
|
|
'Los Pipelines definen el flujo de procesamiento de eventos de mensajes, se usan para vincular a los Bots',
|
|
createPipeline: 'Crear Pipeline',
|
|
selectFromSidebar: 'Selecciona un Pipeline de la barra lateral',
|
|
editPipeline: 'Editar Pipeline',
|
|
chat: 'Chat',
|
|
configuration: 'Configuración',
|
|
debugChat: 'Chat de depuración',
|
|
getPipelineListError: 'Error al obtener la lista de Pipelines: ',
|
|
daysAgo: 'días atrás',
|
|
today: 'Hoy',
|
|
updateTime: 'Actualizado ',
|
|
defaultBadge: 'Predeterminado',
|
|
sortBy: 'Ordenar por',
|
|
newestCreated: 'Más recientes',
|
|
earliestCreated: 'Más antiguos',
|
|
recentlyEdited: 'Editados recientemente',
|
|
earliestEdited: 'Editados más antiguos',
|
|
basicInfo: 'Información básica',
|
|
basicInfoDescription:
|
|
'Establece el nombre, icono y descripción del Pipeline',
|
|
aiCapabilities: 'IA',
|
|
triggerConditions: 'Disparador',
|
|
safetyControls: 'Seguridad',
|
|
outputProcessing: 'Salida',
|
|
nameRequired: 'El nombre no puede estar vacío',
|
|
descriptionRequired: 'La descripción no puede estar vacía',
|
|
createSuccess:
|
|
'Creado correctamente. Por favor, edita los parámetros del Pipeline',
|
|
createError: 'Error al crear: ',
|
|
saveSuccess: 'Guardado correctamente',
|
|
saveError: 'Error al guardar: ',
|
|
copySuffix: ' Copia',
|
|
deleteConfirmation:
|
|
'¿Estás seguro de que deseas eliminar este Pipeline? Los Bots vinculados a este Pipeline dejarán de funcionar.',
|
|
defaultPipelineCannotDelete:
|
|
'El Pipeline predeterminado no se puede eliminar',
|
|
deleteSuccess: 'Eliminado correctamente',
|
|
deleteError: 'Error al eliminar: ',
|
|
copyConfirmTitle: 'Confirmar copia',
|
|
copyConfirmation:
|
|
'¿Estás seguro de que deseas copiar este Pipeline? Esto creará un nuevo Pipeline con todas las configuraciones.',
|
|
unsavedChanges: 'Tienes cambios sin guardar',
|
|
dangerZone: 'Zona de peligro',
|
|
dangerZoneDescription: 'Acciones irreversibles y destructivas',
|
|
deletePipelineAction: 'Eliminar este Pipeline',
|
|
deletePipelineHint:
|
|
'Una vez eliminado, los Bots vinculados a este Pipeline dejarán de funcionar.',
|
|
copyPipelineAction: 'Copiar este Pipeline',
|
|
copyPipelineHint:
|
|
'Crear un nuevo Pipeline con todas las configuraciones duplicadas.',
|
|
extensions: {
|
|
title: 'Extensiones',
|
|
loadError: 'Error al cargar plugins',
|
|
saveSuccess: 'Guardado correctamente',
|
|
saveError: 'Error al guardar',
|
|
noPluginsAvailable: 'No hay plugins disponibles',
|
|
disabled: 'Desactivado',
|
|
noPluginsSelected: 'No hay plugins seleccionados',
|
|
addPlugin: 'Añadir plugin',
|
|
selectPlugins: 'Seleccionar plugins',
|
|
pluginsTitle: 'Plugins',
|
|
mcpServersTitle: 'Servidores MCP',
|
|
noMCPServersSelected: 'No hay servidores MCP seleccionados',
|
|
addMCPServer: 'Añadir servidor MCP',
|
|
selectMCPServers: 'Seleccionar servidores MCP',
|
|
toolCount: '{{count}} herramientas',
|
|
noPluginsInstalled: 'No hay plugins instalados',
|
|
noMCPServersConfigured: 'No hay servidores MCP configurados',
|
|
selectAll: 'Seleccionar todo',
|
|
enableAllPlugins: 'Activar todos los plugins',
|
|
enableAllMCPServers: 'Activar todos los servidores MCP',
|
|
allPluginsEnabled: 'Todos los plugins activados',
|
|
allMCPServersEnabled: 'Todos los servidores MCP activados',
|
|
},
|
|
debugDialog: {
|
|
title: 'Chat del Pipeline',
|
|
selectPipeline: 'Seleccionar Pipeline',
|
|
sessionType: 'Tipo de sesión',
|
|
privateChat: 'Chat privado',
|
|
groupChat: 'Chat grupal',
|
|
send: 'Enviar',
|
|
reset: 'Reiniciar conversación',
|
|
inputPlaceholder: 'Enviar mensaje {{type}}...',
|
|
noMessages: 'Sin mensajes',
|
|
userMessage: 'Usuario',
|
|
botMessage: 'Bot',
|
|
sendFailed: 'Error al enviar',
|
|
resetSuccess: 'Conversación reiniciada correctamente',
|
|
resetFailed: 'Error al reiniciar',
|
|
loadMessagesFailed: 'Error al cargar mensajes',
|
|
loadPipelinesFailed: 'Error al cargar Pipelines',
|
|
atTips: 'Mencionar al Bot',
|
|
streaming: 'Transmisión',
|
|
streamOutput: 'Transmisión',
|
|
connected: 'WebSocket conectado',
|
|
disconnected: 'WebSocket desconectado',
|
|
connectionError: 'Error de conexión WebSocket',
|
|
connectionFailed: 'Conexión WebSocket fallida',
|
|
notConnected: 'WebSocket no conectado, por favor inténtalo más tarde',
|
|
imageUploadFailed: 'Error al subir imagen',
|
|
reply: 'Responder',
|
|
replyTo: 'Responder a',
|
|
showMarkdown: 'Mostrar Markdown',
|
|
showRaw: 'Mostrar sin formato',
|
|
allMembers: 'Todos los miembros',
|
|
file: 'Archivo',
|
|
voice: 'Voz',
|
|
uploadImage: 'Subir imagen',
|
|
uploading: 'Subiendo...',
|
|
},
|
|
monitoring: {
|
|
title: 'Panel de control',
|
|
description:
|
|
'Ver registros de ejecución y errores de este Pipeline (últimas 24 horas)',
|
|
detailedLogs: 'Registros detallados',
|
|
},
|
|
},
|
|
knowledge: {
|
|
title: 'Conocimiento',
|
|
createKnowledgeBase: 'Crear base de conocimiento',
|
|
selectFromSidebar:
|
|
'Selecciona una base de conocimiento de la barra lateral',
|
|
editKnowledgeBase: 'Editar base de conocimiento',
|
|
selectKnowledgeBase: 'Seleccionar base de conocimiento',
|
|
selectKnowledgeBases: 'Seleccionar bases de conocimiento',
|
|
addKnowledgeBase: 'Añadir base de conocimiento',
|
|
noKnowledgeBaseSelected: 'No hay bases de conocimiento seleccionadas',
|
|
empty: 'Vacío',
|
|
editDocument: 'Documentos',
|
|
description:
|
|
'Configurar bases de conocimiento para mejorar las respuestas del LLM',
|
|
metadata: 'Metadatos',
|
|
documents: 'Documentos',
|
|
kbNameRequired: 'El nombre de la base de conocimiento no puede estar vacío',
|
|
kbDescriptionRequired:
|
|
'La descripción de la base de conocimiento no puede estar vacía',
|
|
embeddingModelUUIDRequired: 'El modelo Embedding no puede estar vacío',
|
|
daysAgo: 'días atrás',
|
|
today: 'Hoy',
|
|
kbName: 'Nombre de la base de conocimiento',
|
|
kbDescription: 'Descripción de la base de conocimiento',
|
|
topK: 'Top K',
|
|
topKRequired: 'Top K no puede estar vacío',
|
|
topKMax: 'El valor máximo de Top K es 30',
|
|
topKdescription:
|
|
'Se usa para especificar el número de documentos relevantes a recuperar, con un rango de 1 a 30.',
|
|
defaultDescription: 'Una base de conocimiento',
|
|
embeddingModelUUID: 'Modelo Embedding',
|
|
selectEmbeddingModel: 'Seleccionar modelo Embedding',
|
|
embeddingModelDescription:
|
|
'Se usa para vectorizar el texto, puedes configurarlo en la página de Modelos',
|
|
updateTime: 'Actualizado ',
|
|
cannotChangeEmbeddingModel:
|
|
'El modelo Embedding no se puede modificar una vez creada la base de conocimiento',
|
|
updateKnowledgeBaseSuccess:
|
|
'Base de conocimiento actualizada correctamente',
|
|
updateKnowledgeBaseFailed: 'Error al actualizar la base de conocimiento: ',
|
|
documentsTab: {
|
|
name: 'Nombre',
|
|
status: 'Estado',
|
|
noResults: 'No hay documentos',
|
|
dragAndDrop: 'Arrastra y suelta archivos aquí o haz clic para subir',
|
|
uploading: 'Subiendo...',
|
|
supportedFormats:
|
|
'Admite PDF, Word, TXT, Markdown, HTML, ZIP y otros formatos de documentos',
|
|
uploadSuccess: '¡Archivo subido correctamente!',
|
|
uploadError: 'Error al subir el archivo: ',
|
|
uploadingFile: 'Subiendo archivo...',
|
|
fileSizeExceeded:
|
|
'El tamaño del archivo supera el límite de 10MB. Por favor, divídelo en archivos más pequeños.',
|
|
actions: 'Acciones',
|
|
delete: 'Eliminar archivo',
|
|
fileDeleteSuccess: 'Archivo eliminado correctamente',
|
|
fileDeleteFailed: 'Error al eliminar el archivo: ',
|
|
processing: 'Procesando',
|
|
completed: 'Completado',
|
|
failed: 'Fallido',
|
|
selectParser: 'Seleccionar analizador',
|
|
builtInParser: 'Proporcionado por el motor de conocimiento',
|
|
noParserAvailable:
|
|
'Ningún analizador admite este tipo de archivo. Por favor, instala un plugin de analizador que pueda manejar este formato.',
|
|
installParserHint: 'Buscar plugins de analizador en el Marketplace →',
|
|
confirmUpload: 'Subir',
|
|
cancelUpload: 'Cancelar',
|
|
},
|
|
deleteKnowledgeBaseConfirmation:
|
|
'¿Estás seguro de que deseas eliminar esta base de conocimiento? Todos los documentos de esta base se eliminarán.',
|
|
retrieve: 'Prueba de recuperación',
|
|
retrieveTest: 'Prueba de recuperación',
|
|
query: 'Consulta',
|
|
queryPlaceholder: 'Introduce el texto de consulta...',
|
|
distance: 'Distancia',
|
|
content: 'Contenido',
|
|
fileName: 'Nombre del archivo',
|
|
noResults: 'Sin resultados',
|
|
retrieveError: 'Error en la recuperación: ',
|
|
unknownEngine: 'Motor desconocido',
|
|
knowledgeEngine: 'Motor de conocimiento',
|
|
knowledgeEngineRequired: 'El motor de conocimiento es obligatorio',
|
|
selectKnowledgeEngine: 'Seleccionar motor de conocimiento',
|
|
builtInEngine: 'Motor integrado',
|
|
cannotChangeKnowledgeEngine:
|
|
'El motor de conocimiento no se puede cambiar después de la creación',
|
|
basicInfo: 'Información básica',
|
|
basicInfoDescription:
|
|
'Establece el nombre, icono y descripción de la base de conocimiento',
|
|
engineSettings: 'Configuración del motor',
|
|
engineSettingsDescription:
|
|
'Configuración del motor de conocimiento seleccionado',
|
|
engineSettingsReadonly: 'solo lectura en modo de edición',
|
|
retrievalSettings: 'Configuración de recuperación',
|
|
retrievalSettingsDescription:
|
|
'Configura cómo se recuperan los documentos de esta base de conocimiento',
|
|
dangerZone: 'Zona de peligro',
|
|
dangerZoneDescription: 'Acciones irreversibles y destructivas',
|
|
deleteKbAction: 'Eliminar esta base de conocimiento',
|
|
deleteKbHint:
|
|
'Una vez eliminada, todos los documentos y datos de esta base de conocimiento se eliminarán permanentemente.',
|
|
noEnginesAvailable: 'No hay motores de base de conocimiento disponibles',
|
|
installEngineHint:
|
|
'Por favor, instala primero un plugin de "Motor de conocimiento"',
|
|
createKnowledgeBaseFailed: 'Error al crear la base de conocimiento: ',
|
|
loadKnowledgeBaseFailed: 'Error al cargar la base de conocimiento: ',
|
|
deleteKnowledgeBaseFailed: 'Error al eliminar la base de conocimiento: ',
|
|
getKnowledgeBaseListError:
|
|
'Error al obtener la lista de bases de conocimiento: ',
|
|
embeddingModel: 'Modelo Embedding',
|
|
embeddingModelRequired:
|
|
'El modelo Embedding es obligatorio para este motor',
|
|
addExternal: 'Añadir base de conocimiento externa',
|
|
createExternalSuccess: 'Base de conocimiento externa creada correctamente',
|
|
updateExternalSuccess:
|
|
'Base de conocimiento externa actualizada correctamente',
|
|
deleteExternalSuccess:
|
|
'Base de conocimiento externa eliminada correctamente',
|
|
retriever: 'Recuperador',
|
|
selectRetriever: 'Seleccionar un recuperador...',
|
|
retrieverConfiguration: 'Configuración del recuperador',
|
|
retrieverInstallInfo:
|
|
'Puedes instalar plugins de recuperador de conocimiento desde',
|
|
retrieverMarketLink: 'aquí',
|
|
migration: {
|
|
title: 'Migración de base de conocimiento',
|
|
description:
|
|
'La nueva versión ha refactorizado la base de conocimiento en una arquitectura basada en plugins, unificando las bases de conocimiento internas y externas como plugins de "Motor de conocimiento". Se requiere la migración de los datos heredados. Tus datos antiguos se han respaldado automáticamente en la base de datos.',
|
|
detected:
|
|
'Se encontraron {{total}} base(s) de conocimiento para migrar ({{internal}} internas, {{external}} externas).',
|
|
startWithInstall: 'Auto-instalar plugin y migrar',
|
|
startDataOnly: 'Migrar solo datos',
|
|
dataOnlyHint:
|
|
'"Migrar solo datos" es para entornos sin conexión/intranet. Instala el plugin correspondiente manualmente después de la migración.',
|
|
dismiss: 'Descartar datos originales',
|
|
running: 'Migrando bases de conocimiento, por favor espera...',
|
|
success: 'Migración de base de conocimiento completada',
|
|
error: 'Error en la migración de base de conocimiento: ',
|
|
dismissError: 'Error en la operación',
|
|
retry: 'Reintentar',
|
|
},
|
|
},
|
|
register: {
|
|
title: 'Inicializar LangBot 👋',
|
|
description: 'Es tu primera vez iniciando LangBot',
|
|
adminAccountNote:
|
|
'La cuenta que uses aquí se establecerá como cuenta de administrador',
|
|
register: 'Registrarse',
|
|
initWithSpace: 'Inicializar con Space',
|
|
spaceRecommended:
|
|
'Recomendado: Usa API de modelos oficiales estables y servicios en la nube',
|
|
spaceInfoTip1:
|
|
'Space proporciona servicios de autenticación unificada de cuentas sin subir ninguna de tu información sensible.',
|
|
spaceInfoTip2:
|
|
'Iniciar sesión con una cuenta de Space te da acceso a los modelos de LangBot y otros servicios en la nube, incluyendo créditos gratuitos de llamadas a modelos para ayudarte a comenzar rápidamente.',
|
|
spaceInfoTip3:
|
|
'Tu método de inicio de sesión no afecta otras funciones. Puedes configurar y usar modelos de otras fuentes en cualquier momento.',
|
|
registerLocal: 'Registrar cuenta local',
|
|
registerWithPassword: 'Registrarse con correo electrónico y contraseña',
|
|
initSuccess: 'Inicialización exitosa, por favor inicia sesión',
|
|
initFailed: 'Error en la inicialización: ',
|
|
},
|
|
resetPassword: {
|
|
title: 'Restablecer contraseña 🔐',
|
|
description:
|
|
'Introduce tu clave de recuperación y nueva contraseña para restablecer la contraseña de tu cuenta',
|
|
recoveryKey: 'Clave de recuperación',
|
|
recoveryKeyDescription:
|
|
'Almacenada en `system.recovery_key` del archivo de configuración `data/config.yaml`',
|
|
newPassword: 'Nueva contraseña',
|
|
enterRecoveryKey: 'Introduce la clave de recuperación',
|
|
enterNewPassword: 'Introduce la nueva contraseña',
|
|
recoveryKeyRequired: 'La clave de recuperación no puede estar vacía',
|
|
newPasswordRequired: 'La nueva contraseña no puede estar vacía',
|
|
resetPassword: 'Restablecer contraseña',
|
|
resetting: 'Restableciendo...',
|
|
resetSuccess:
|
|
'Contraseña restablecida correctamente, por favor inicia sesión',
|
|
resetFailed:
|
|
'Error al restablecer la contraseña, por favor verifica tu correo y clave de recuperación',
|
|
backToLogin: 'Volver al inicio de sesión',
|
|
},
|
|
embedding: {
|
|
description: 'Gestionar modelos Embedding para la vectorización de texto',
|
|
createModel: 'Crear modelo Embedding',
|
|
editModel: 'Editar modelo Embedding',
|
|
getModelListError: 'Error al obtener la lista de modelos Embedding: ',
|
|
embeddingModels: 'Embedding',
|
|
extraParametersDescription:
|
|
'Se adjuntarán al cuerpo de la solicitud, como encoding_format, dimensions, etc.',
|
|
},
|
|
llm: {
|
|
description: 'Gestionar modelos LLM para la generación de conversaciones',
|
|
llmModels: 'LLM',
|
|
extraParametersDescription:
|
|
'Se adjuntarán al cuerpo de la solicitud, como max_tokens, temperature, top_p, etc.',
|
|
},
|
|
version: {
|
|
newVersionAvailable: 'Nueva versión disponible',
|
|
viewUpdateGuide: 'Ver guía de actualización',
|
|
noReleaseNotes: 'No hay notas de la versión disponibles',
|
|
},
|
|
account: {
|
|
settings: 'Configuración de la cuenta',
|
|
setPassword: 'Establecer contraseña',
|
|
passwordSetSuccess: 'Contraseña establecida correctamente',
|
|
passwordStatus: 'Contraseña local',
|
|
passwordSet: 'Establecida',
|
|
passwordNotSet: 'No establecida',
|
|
passwordSetDescription:
|
|
'La contraseña está establecida, puedes iniciar sesión con correo y contraseña',
|
|
spaceStatus: 'Cuenta de Space',
|
|
spaceBound: 'Vinculada',
|
|
spaceNotBound: 'No vinculada',
|
|
spaceBoundDescription:
|
|
'Cuenta de Space vinculada, API de modelos oficiales y servicios en la nube disponibles',
|
|
bindSpace: 'Vincular cuenta de Space',
|
|
bindSpaceDescription:
|
|
'Vincular para usar API de modelos oficiales y servicios en la nube',
|
|
bindSpaceButton: 'Vincular',
|
|
bindSpaceConfirmTitle: 'Confirmar vinculación',
|
|
bindSpaceConfirmDescription:
|
|
'Estás a punto de vincular tu instancia local a una cuenta de Space',
|
|
bindSpaceWarning:
|
|
'Después de vincular, tu correo de inicio de sesión se cambiará de {{localEmail}} al correo de la cuenta de Space.',
|
|
bindSpaceSuccess: 'Cuenta de Space vinculada correctamente',
|
|
bindSpaceFailed: 'Error al vincular la cuenta de Space',
|
|
bindSpaceInvalidState:
|
|
'Solicitud de vinculación no válida. Por favor, inténtalo de nuevo desde la configuración de la cuenta.',
|
|
setPasswordHint:
|
|
'Establece una contraseña para iniciar sesión con correo y contraseña',
|
|
spaceEmailMismatch:
|
|
'El correo de inicio de sesión de Space no coincide con el correo de la cuenta local',
|
|
},
|
|
monitoring: {
|
|
title: 'Panel de control',
|
|
description:
|
|
'Monitorea las actividades de los Bots, llamadas LLM y rendimiento del sistema',
|
|
overview: 'Resumen',
|
|
totalMessages: 'Total de mensajes',
|
|
llmCallsCount: 'Llamadas LLM',
|
|
modelCallsCount: 'Llamadas a modelos',
|
|
successRate: 'Tasa de éxito',
|
|
activeSessions: 'Sesiones activas',
|
|
last24Hours: 'Últimas 24 horas',
|
|
filters: {
|
|
title: 'Filtros',
|
|
bot: 'Bot',
|
|
pipeline: 'Pipeline',
|
|
allBots: 'Todos los Bots',
|
|
selectBot: 'Seleccionar Bot',
|
|
allPipelines: 'Todos los Pipelines',
|
|
selectPipeline: 'Seleccionar Pipeline',
|
|
loading: 'Cargando...',
|
|
timeRange: 'Rango de tiempo',
|
|
customRange: 'Rango personalizado',
|
|
from: 'Desde',
|
|
to: 'Hasta',
|
|
apply: 'Aplicar',
|
|
reset: 'Restablecer filtros',
|
|
lastHour: 'Última hora',
|
|
last6Hours: 'Últimas 6 horas',
|
|
last24Hours: 'Últimas 24 horas',
|
|
last7Days: 'Últimos 7 días',
|
|
last30Days: 'Últimos 30 días',
|
|
},
|
|
tabs: {
|
|
messages: 'Registros de mensajes',
|
|
llmCalls: 'Llamadas LLM',
|
|
embeddingCalls: 'Llamadas Embedding',
|
|
modelCalls: 'Llamadas a modelos',
|
|
sessions: 'Análisis de sesiones',
|
|
feedback: 'Comentarios de usuarios',
|
|
errors: 'Registros de errores',
|
|
},
|
|
messageList: {
|
|
timestamp: 'Marca de tiempo',
|
|
bot: 'Bot',
|
|
pipeline: 'Pipeline',
|
|
message: 'Mensaje',
|
|
sessionId: 'ID de sesión',
|
|
status: 'Estado',
|
|
actions: 'Acciones',
|
|
viewDetails: 'Ver detalles',
|
|
copyId: 'Copiar ID',
|
|
noMessages: 'No se encontraron mensajes',
|
|
noMessagesDescription:
|
|
'Intenta ajustar los filtros o vuelve a comprobarlo más tarde',
|
|
loading: 'Cargando mensajes...',
|
|
loadMore: 'Cargar más',
|
|
autoRefresh: 'Actualización automática',
|
|
platform: 'Rol',
|
|
user: 'Usuario',
|
|
level: 'Nivel',
|
|
runner: 'Ejecutor',
|
|
viewConversation: 'Ver conversación',
|
|
},
|
|
llmCalls: {
|
|
title: 'Llamadas LLM',
|
|
model: 'Modelo',
|
|
tokens: 'Tokens',
|
|
duration: 'Duración',
|
|
cost: 'Coste',
|
|
noData: 'No se encontraron llamadas LLM',
|
|
inputTokens: 'Tokens de entrada',
|
|
outputTokens: 'Tokens de salida',
|
|
totalTokens: 'Tokens totales',
|
|
avgDuration: 'Duración promedio',
|
|
calls: 'Llamadas',
|
|
},
|
|
embeddingCalls: {
|
|
title: 'Llamadas Embedding',
|
|
model: 'Modelo',
|
|
tokens: 'Tokens',
|
|
duration: 'Duración',
|
|
noData: 'No se encontraron llamadas Embedding',
|
|
promptTokens: 'Tokens de prompt',
|
|
totalTokens: 'Tokens totales',
|
|
inputCount: 'Cantidad de entradas',
|
|
knowledgeBase: 'Base de conocimiento',
|
|
queryText: 'Consulta',
|
|
},
|
|
modelCalls: {
|
|
title: 'Llamadas a modelos',
|
|
llmModel: 'LLM',
|
|
embeddingModel: 'Embedding',
|
|
embeddingCall: 'Embedding',
|
|
retrieveCall: 'Recuperación',
|
|
noData: 'No se encontraron llamadas a modelos',
|
|
},
|
|
sessions: {
|
|
sessionId: 'ID de sesión',
|
|
messageCount: 'Mensajes',
|
|
duration: 'Duración',
|
|
lastActivity: 'Última actividad',
|
|
noSessions: 'No se encontraron sesiones',
|
|
startTime: 'Hora de inicio',
|
|
messageStats: 'Estadísticas de mensajes',
|
|
totalMessages: 'Total de mensajes',
|
|
successMessages: 'Exitosos',
|
|
errorMessages: 'Fallidos',
|
|
llmStats: 'Estadísticas LLM',
|
|
noData: 'Sesión no encontrada',
|
|
},
|
|
errors: {
|
|
title: 'Errores',
|
|
errorType: 'Tipo de error',
|
|
errorMessage: 'Mensaje de error',
|
|
occurredAt: 'Ocurrido el',
|
|
noErrors: 'No se encontraron errores',
|
|
stackTrace: 'Traza de pila',
|
|
},
|
|
feedback: {
|
|
title: 'Comentarios de usuarios',
|
|
totalFeedback: 'Total de comentarios',
|
|
totalLikes: 'Me gusta',
|
|
totalDislikes: 'No me gusta',
|
|
satisfactionRate: 'Tasa de satisfacción',
|
|
like: 'Me gusta',
|
|
dislike: 'No me gusta',
|
|
noFeedback: 'Aún no hay comentarios',
|
|
noFeedbackDescription: 'Los comentarios de los usuarios aparecerán aquí',
|
|
feedbackList: 'Lista de comentarios',
|
|
feedbackContent: 'Contenido del comentario',
|
|
contextInfo: 'Información de contexto',
|
|
userId: 'ID de usuario',
|
|
messageId: 'ID de mensaje',
|
|
streamId: 'ID de consulta relacionada',
|
|
inaccurateReasons: 'Razones de inexactitud',
|
|
platform: 'Plataforma',
|
|
exportFeedback: 'Exportar comentarios',
|
|
},
|
|
queries: {
|
|
title: 'Consultas',
|
|
},
|
|
messageDetails: {
|
|
noData: 'No hay llamadas LLM ni errores para esta consulta',
|
|
},
|
|
queryVariables: {
|
|
title: 'Variables de consulta',
|
|
},
|
|
trafficChart: {
|
|
title: 'Resumen de tráfico',
|
|
messages: 'Mensajes',
|
|
llmCalls: 'Llamadas LLM',
|
|
noData: 'No hay datos de tráfico disponibles',
|
|
},
|
|
viewMonitoring: 'Ver monitoreo',
|
|
refreshData: 'Actualizar datos',
|
|
exportData: 'Exportar datos',
|
|
export: {
|
|
title: 'Exportar datos',
|
|
exporting: 'Exportando...',
|
|
messages: 'Mensajes',
|
|
llmCalls: 'Llamadas LLM',
|
|
embeddingCalls: 'Llamadas Embedding',
|
|
errors: 'Registros de errores',
|
|
sessions: 'Sesiones',
|
|
feedback: 'Comentarios de usuarios',
|
|
},
|
|
},
|
|
storageAnalysis: {
|
|
title: 'Análisis de almacenamiento',
|
|
description:
|
|
'Inspecciona el uso de almacenamiento y los candidatos de limpieza',
|
|
openDialog: 'Ver análisis',
|
|
dialogTitle: 'Análisis de almacenamiento',
|
|
generatedAt: 'Generado el {{time}}',
|
|
loading: 'Cargando...',
|
|
refresh: 'Actualizar',
|
|
totalSize: 'Tamaño total',
|
|
binaryStorage: 'Almacenamiento binario de plugins',
|
|
uploadCleanup: 'Subidas caducadas',
|
|
logCleanup: 'Registros caducados',
|
|
sections: 'Secciones de almacenamiento',
|
|
monitoringTables: 'Tablas de monitoreo',
|
|
runtimeTasks: 'Tareas en ejecución',
|
|
cleanupPolicy: 'Política de limpieza',
|
|
uploadRetention: 'Retención de subidas',
|
|
logRetention: 'Retención de registros',
|
|
databaseType: 'Tipo de base de datos',
|
|
days: 'días',
|
|
missing: 'Falta',
|
|
expiredUploads: 'Subidas caducadas',
|
|
expiredLogs: 'Registros caducados',
|
|
noExpiredUploads: 'No hay archivos subidos caducados',
|
|
noExpiredLogs: 'No hay registros caducados',
|
|
sectionNames: {
|
|
database: 'Base de datos',
|
|
logs: 'Registros',
|
|
storage: 'Archivos subidos',
|
|
vector_store: 'Almacén vectorial',
|
|
plugins: 'Plugins',
|
|
mcp: 'MCP',
|
|
temp: 'Archivos temporales',
|
|
},
|
|
},
|
|
limitation: {
|
|
maxBotsReached:
|
|
'Se ha alcanzado el número máximo de Bots ({{max}}). Por favor, elimina un Bot existente antes de crear uno nuevo.',
|
|
maxPipelinesReached:
|
|
'Se ha alcanzado el número máximo de Pipelines ({{max}}). Por favor, elimina un Pipeline existente antes de crear uno nuevo.',
|
|
maxExtensionsReached:
|
|
'Se ha alcanzado el número máximo de extensiones ({{max}}). Por favor, elimina un servidor MCP o plugin existente antes de añadir uno nuevo.',
|
|
},
|
|
wizard: {
|
|
sidebarDescription: 'Crea un Bot con pasos guiados',
|
|
loading: 'Cargando asistente...',
|
|
loadError: 'Error al cargar los datos del asistente',
|
|
skip: 'Omitir',
|
|
skipConfirmMessage:
|
|
'Puedes volver a acceder al asistente de inicio rápido desde el menú de cuenta más tarde, o crear un Bot manualmente.',
|
|
skipConfirmOk: 'Aceptar',
|
|
prev: 'Anterior',
|
|
next: 'Siguiente',
|
|
finish: 'Crear y desplegar',
|
|
confirmCreateBot: 'Confirmar, crear Bot',
|
|
createSuccess: '¡Pipeline creado y vinculado al Bot correctamente!',
|
|
botCreateSuccess: '¡Bot creado correctamente!',
|
|
botSaveSuccess: '¡Configuración del Bot guardada y activada!',
|
|
createError: 'Error al crear los recursos',
|
|
spaceAuthError: 'Error al iniciar la autorización de Space',
|
|
skipSaveError:
|
|
'Error al guardar el estado de omisión. Por favor, inténtalo de nuevo.',
|
|
completeSaveError:
|
|
'Error al guardar el estado de finalización. Por favor, inténtalo de nuevo.',
|
|
step: {
|
|
platform: 'Plataforma',
|
|
botConfig: 'Configuración del Bot',
|
|
aiEngine: 'Motor de IA',
|
|
done: 'Listo',
|
|
},
|
|
platform: {
|
|
title: 'Selecciona una plataforma',
|
|
description:
|
|
'Elige la plataforma de mensajería a la que se conectará tu Bot.',
|
|
},
|
|
botConfig: {
|
|
title: 'Configura tu Bot',
|
|
description:
|
|
'Configura tu Bot y verifica que funcione antes de continuar.',
|
|
saveBot: 'Guardar y activar Bot',
|
|
resaveBot: 'Volver a guardar configuración',
|
|
botSaved:
|
|
'Configuración del Bot guardada y activada. Consulta los registros para verificar la conexión.',
|
|
logsTitle: 'Registros del Bot',
|
|
logsDescription:
|
|
'Monitorea la actividad del Bot para verificar que la conexión con la plataforma funcione.',
|
|
},
|
|
aiEngine: {
|
|
title: 'Selecciona un motor de IA',
|
|
description:
|
|
'Elige el motor de IA que impulsará la inteligencia de tu Bot.',
|
|
},
|
|
spaceBanner: {
|
|
message:
|
|
'¡Conéctate a LangBot Space para obtener créditos de prueba gratuitos y configuración instantánea sin esfuerzo!',
|
|
action: 'Autorizar con Space',
|
|
},
|
|
config: {
|
|
botInfo: 'Información del Bot',
|
|
botNamePlaceholder: 'Introduce el nombre del Bot',
|
|
botDescPlaceholder: 'Introduce la descripción del Bot (opcional)',
|
|
platformConfig: 'Configuración de {{platform}}',
|
|
aiConfig: 'Configuración de {{engine}}',
|
|
},
|
|
done: {
|
|
title: '¡Todo listo!',
|
|
description:
|
|
'Tu Bot ha sido creado y conectado al Pipeline de IA. Ahora puedes gestionarlo desde el panel de trabajo.',
|
|
backToWorkbench: 'Volver al panel de trabajo',
|
|
},
|
|
},
|
|
workflows: {
|
|
title: 'Conversación de Flujo de Trabajo',
|
|
description:
|
|
'Descripción',
|
|
createWorkflow: 'Crear Flujo de Trabajo',
|
|
selectFromSidebar: 'Seleccione un flujo de trabajo de la barra lateral',
|
|
editWorkflow: 'Editar Flujo de Trabajo',
|
|
newWorkflow: 'Nuevo Flujo de Trabajo',
|
|
getWorkflowListError: 'Error al obtener la lista de flujos de trabajo:',
|
|
workflowName: 'Nombre del Flujo de Trabajo',
|
|
workflowDescription: 'Descripción del Flujo de Trabajo',
|
|
workflowNameRequired: 'El nombre del flujo de trabajo no puede estar vacío',
|
|
defaultDescription: 'Un flujo de trabajo',
|
|
getWorkflowError: 'Error al obtener el flujo de trabajo:',
|
|
loadError: 'Error al cargar el flujo de trabajo',
|
|
saveSuccess: 'Guardado exitosamente',
|
|
saveError: 'Error al guardar:',
|
|
createSuccess: 'Flujo de trabajo creado exitosamente',
|
|
createError: 'Error al crear:',
|
|
deleteSuccess: 'Eliminado exitosamente',
|
|
deleteError: 'Error al eliminar:',
|
|
deleteConfirmation: '¿Está seguro de que desea eliminar este flujo de trabajo?',
|
|
copySuccess: 'Copiado exitosamente',
|
|
copyError: 'Error al copiar:',
|
|
export: 'Exportar',
|
|
import: 'Importar',
|
|
exportSuccess: 'Flujo de trabajo exportado',
|
|
importSuccess: 'Flujo de trabajo importado',
|
|
importError: 'Error al importar: formato de archivo inválido',
|
|
publish: 'Publicar',
|
|
publishSuccess: 'Publicado exitosamente',
|
|
publishError: 'Error al publicar',
|
|
configuration: 'Configuración',
|
|
executions: 'Registros de ejecución',
|
|
editor: 'Editor',
|
|
debugChat: 'ConversaciónDepurar',
|
|
basicInfo: 'Información básica',
|
|
basicInfoDesc: 'Configurar nombre, icono y descripción del flujo de trabajo',
|
|
basicInfoDescription: 'Configurar nombre y descripción del flujo de trabajo',
|
|
dangerZone: 'Zona peligrosa',
|
|
dangerZoneDesc: 'Operaciones irreversibles',
|
|
dangerZoneDescription: 'Operaciones irreversibles',
|
|
deleteWorkflowAction: 'Eliminar este flujo de trabajo',
|
|
deleteWorkflowHint:
|
|
'Después de eliminar, todas las configuraciones asociadas se eliminarán permanentemente y no se podrán recuperar.',
|
|
deleteWorkflow: 'EliminarFlujo de Trabajo',
|
|
deleteConfirm: 'ConfirmarEliminar',
|
|
deleteConfirmDesc:
|
|
'¿Está seguro de que desea eliminar el flujo de trabajo "{{name}}"? Esta operación no se puede deshacer.',
|
|
// Form component
|
|
name: 'Nombre',
|
|
namePlaceholder: 'EntradaFlujo de TrabajoNombre',
|
|
descriptionPlaceholder: 'Ingrese la descripción del flujo de trabajo (opcional)',
|
|
enabled: 'Habilitar',
|
|
enabledDesc: 'Una vez habilitado, el flujo de trabajo podrá ser activado para su ejecución',
|
|
loading: 'Cargando...',
|
|
info: 'Flujo de TrabajoInformación',
|
|
uuid: 'UUID',
|
|
version: 'Versión',
|
|
createdAt: 'Fecha de creación',
|
|
updatedAt: 'Fecha de actualización',
|
|
// Executions tab
|
|
totalExecutions: 'Total de {{count}} registros de ejecución',
|
|
statistics: 'Análisis estadístico',
|
|
successfulCount: '{{count}} éxitos',
|
|
successRate: 'Tasa de éxito',
|
|
averageDuration: 'Duración promedio',
|
|
perExecution: 'Por ejecución',
|
|
failedExecutions: 'Número de fallos',
|
|
lastExecution: 'Última ejecución',
|
|
filterByStatus: 'Filtrar por estado',
|
|
allStatuses: 'Todos los estados',
|
|
manualTrigger: 'Activación manual',
|
|
executionId: 'Ejecutar ID',
|
|
status: 'Estado',
|
|
triggerType: 'Tipo de activación',
|
|
startedAt: 'Hora de inicio',
|
|
duration: 'Tiempo de espera',
|
|
noExecutions: 'No hay registros de ejecución',
|
|
executionDetails: 'Detalles de ejecución',
|
|
error: 'Error',
|
|
nodeExecutions: 'Registros de ejecución de nodos',
|
|
result: 'Resultado',
|
|
'status.pending': 'Pending',
|
|
'status.running': 'Running',
|
|
'status.completed': 'Completed',
|
|
'status.failed': 'Failed',
|
|
'status.cancelled': 'Cancelled',
|
|
// Editor component translations
|
|
nodePalette: 'Panel de nodos',
|
|
properties: 'Propiedades',
|
|
zoomIn: 'Acercar',
|
|
zoomOut: 'Alejar',
|
|
fitView: 'Ajustar vista',
|
|
unsavedChanges: 'Hay cambios sin guardar',
|
|
paste: 'Pegar',
|
|
deleted: 'Eliminado',
|
|
nothingToCopy: 'No hay nodos seleccionados para copiar',
|
|
nothingToPaste: 'El portapapeles está vacío',
|
|
copied: 'Se copiaron {{count}} nodos',
|
|
pasted: 'Se pegaron {{count}} nodos',
|
|
nodesSelected: '{{count}} nodos seleccionados',
|
|
edgesSelected: 'Seleccionado {{count}} conexiones',
|
|
// Node palette
|
|
searchNodes: 'Buscar nodos...',
|
|
loadingNodeTypes: 'Cargando tipos de nodos...',
|
|
noNodesFound: 'No se encontraron nodos coincidentes',
|
|
clearSearch: 'Limpiar búsqueda',
|
|
dragToAdd: 'Arrastrar nodo al lienzo para agregar',
|
|
// Property panel
|
|
selectNodeOrEdge: 'Seleccionar un nodo o conexión',
|
|
selectNodeOrEdgeHint:
|
|
'Haga clic en un nodo o conexión del lienzo para ver y editar sus propiedades',
|
|
edgeProperties: 'Propiedades de conexión',
|
|
nodeProperties: 'Propiedades del nodo',
|
|
condition: 'Rama de condición',
|
|
hasCondition: 'Configurado',
|
|
conditionPlaceholder:
|
|
'Ingrese expresión de condición, por ejemplo: output.success == true',
|
|
conditionHelp:
|
|
'Cuando la condición está vacía, esta conexión siempre se ejecutará. Soporta usar {{nombre de variable}} para referenciar variables de contexto.',
|
|
deleteEdge: 'Eliminar conexión',
|
|
deleteEdgeConfirm: '¿Está seguro de eliminar esta conexión?',
|
|
deleteEdgeConfirmDesc: 'Una vez eliminada, la conexión se eliminará permanentemente.',
|
|
nodeLabel: 'Nombre del nodo',
|
|
nodeLabelPlaceholder: 'Ingrese el nombre visible del nodo',
|
|
nodeId: 'ID del nodo',
|
|
inputOutputVariables: 'Variables de entrada/salida',
|
|
inputs: 'Entrada',
|
|
outputs: 'Salida',
|
|
availableVariables: 'Variables disponibles',
|
|
globalVariables: 'Variables globales',
|
|
messageContent: 'Mensaje simulado',
|
|
messageSender: 'Remitente',
|
|
platform: 'Plataforma',
|
|
sessionId: 'Sesión ID',
|
|
timestamp: 'Marca de tiempo',
|
|
nodeConfig: 'Configuración del nodo',
|
|
noConfigOptions: 'Este tipo de nodo no tiene opciones de configuración',
|
|
deleteNode: 'Eliminar nodo',
|
|
deleteNodeConfirm: '¿Está seguro de eliminar este nodo?',
|
|
deleteNodeConfirmDesc:
|
|
'Una vez eliminado, el nodo y todas sus conexiones se eliminarán permanentemente.',
|
|
// Node inputs/outputs i18n (for port labels)
|
|
nodeInputs: {
|
|
// Common inputs
|
|
input: 'Entrada',
|
|
message: 'Mensaje',
|
|
text: 'Texto',
|
|
query: 'Consulta SQL',
|
|
data: 'Datos',
|
|
condition: 'Rama de condición',
|
|
value: 'Valor',
|
|
// Trigger inputs
|
|
content: 'Contenido',
|
|
context: 'Contexto de depuración',
|
|
body: 'Cuerpo de la solicitud',
|
|
variables: 'Variables monitoreadas',
|
|
items: 'Lista de elementos',
|
|
arguments: 'Parámetro',
|
|
// AI/Process inputs
|
|
question: 'Pregunta del usuario',
|
|
parameters: 'Definición de parámetros',
|
|
key: 'Clave',
|
|
// Control inputs
|
|
case_1: 'Rama 1',
|
|
case_2: 'Rama 2',
|
|
branch_1: 'Salida de rama 1',
|
|
branch_2: 'Salida de rama 2',
|
|
// Action inputs
|
|
notification_id: 'ID de notificación',
|
|
// Integration inputs
|
|
key_template: 'Plantilla de clave',
|
|
hash_field: 'Campo hash',
|
|
server_name: 'Nombre del servidor',
|
|
tool_name: 'Nombre de herramienta',
|
|
arguments_template: 'Plantilla de parámetros',
|
|
scope: 'Ámbito',
|
|
payload: 'Carga útil',
|
|
input_value: 'Valor de entrada',
|
|
},
|
|
// Data type labels
|
|
'type.string': 'String',
|
|
'type.object': 'Object',
|
|
'type.array': 'Array',
|
|
'type.boolean': 'Boolean',
|
|
'type.number': 'Number',
|
|
'type.any': 'Any',
|
|
'type.datetime': 'DateTime',
|
|
nodes: {
|
|
trigger: 'Disparador',
|
|
triggerDescription: 'Nodo inicial del flujo de trabajo',
|
|
messageTrigger: 'Disparador de mensaje',
|
|
messageTriggerDescription: 'Se activa cuando se recibe un mensaje',
|
|
scheduleTrigger: 'Disparador programado',
|
|
scheduleTriggerDescription: 'Se activa según la programación',
|
|
cronTrigger: 'Disparador programado',
|
|
cronTriggerDescription: 'Activa el flujo de trabajo según un horario programado',
|
|
webhookTrigger: 'Activador Webhook',
|
|
webhookTriggerDescription: 'Se activa mediante solicitud HTTP',
|
|
eventTrigger: 'Disparador de evento',
|
|
eventTriggerDescription: 'Se activa cuando ocurre un evento del sistema',
|
|
process: 'IA/Procesamiento',
|
|
processDescription: 'Nodo de procesamiento de datos',
|
|
aiProcess: 'Procesamiento IA',
|
|
aiProcessDescription: 'Procesar mensajes usando modelo de IA',
|
|
llmCall: 'Llamada LLM',
|
|
llmCallDescription:
|
|
'Llamar al modelo de lenguaje grande para conversación o generación',
|
|
codeProcess: 'Procesamiento de código',
|
|
codeProcessDescription: 'Ejecutar código personalizado',
|
|
codeExecutor: 'Ejecutor de código',
|
|
codeExecutorDescription: 'Ejecutar código Python/JavaScript',
|
|
templateProcess: 'Procesamiento de plantilla',
|
|
templateProcessDescription: 'Formatear salida usando plantilla',
|
|
httpRequest: 'Solicitud HTTP',
|
|
httpRequestDescription: 'Enviar solicitud HTTP',
|
|
dataTransform: 'Transformación de datos',
|
|
dataTransformDescription: 'Transformar formato de datos',
|
|
questionClassifier: 'Clasificador de preguntas',
|
|
questionClassifierDescription:
|
|
'Usar LLM para clasificar preguntas del usuario en categorías predefinidas',
|
|
parameterExtractor: 'Extractor de parámetros',
|
|
parameterExtractorDescription:
|
|
'Usar LLM para extraer parámetros estructurados del texto',
|
|
knowledgeRetrieval: 'Recuperación de conocimiento',
|
|
knowledgeRetrievalDescription:
|
|
'Recuperar contenido relevante de la base de conocimiento',
|
|
textTemplate: 'Plantilla de texto',
|
|
textTemplateDescription:
|
|
'Generar texto usando plantilla',
|
|
jsonTransform: 'Transformación JSON',
|
|
jsonTransformDescription: 'Transformar datos JSON',
|
|
dataAggregator: 'Agregador de datos',
|
|
dataAggregatorDescription: 'Agregar múltiples fuentes de datos',
|
|
textSplitter: 'Divisor de texto',
|
|
textSplitterDescription: 'Dividir texto en fragmentos',
|
|
variableAssignment: 'Asignación de variable',
|
|
variableAssignmentDescription: 'Asignar valor a variable del flujo de trabajo',
|
|
control: 'Flujo de control',
|
|
controlDescription: 'Nodo de control de flujo',
|
|
condition: 'Rama de condición',
|
|
conditionDescription: 'Bifurcar según condición',
|
|
switch: 'Rama múltiple',
|
|
switchDescription: 'Selección de rama por múltiples condiciones',
|
|
loop: 'Bucle',
|
|
loopDescription: 'Ejecución repetida',
|
|
iterator: 'Iterador',
|
|
iteratorDescription: 'Iterar sobre elementos del array',
|
|
parallel: 'Procesamiento paralelo',
|
|
parallelDescription: 'Ejecutar múltiples ramas en paralelo',
|
|
wait: 'Esperar',
|
|
waitDescription: 'Esperar un tiempo especificado',
|
|
delay: 'Retraso',
|
|
delayDescription: 'Esperar un tiempo especificado',
|
|
merge: 'Fusionar',
|
|
mergeDescription: 'Fusionar múltiples ramas',
|
|
variableAggregator: 'Agregador de variables',
|
|
variableAggregatorDescription:
|
|
'Agregar salidas de variables de múltiples ramas',
|
|
action: 'Acción',
|
|
actionDescription: 'Nodo de ejecución de acciones',
|
|
sendMessage: 'Enviar mensaje',
|
|
sendMessageDescription: 'Enviar mensaje a la plataforma',
|
|
replyMessage: 'Responder mensaje',
|
|
replyMessageDescription:
|
|
'Responder al mensaje que activó el flujo de trabajo',
|
|
storeData: 'Almacenar datos',
|
|
storeDataDescription: 'Almacenar datos en la base de datos',
|
|
callPipeline: 'Llamar Pipeline',
|
|
callPipelineDescription: 'Llamar a un Pipeline existente',
|
|
setVariable: 'Establecer variable',
|
|
setVariableDescription: 'Establecer variable de contexto',
|
|
openingStatement: 'Mensaje de apertura',
|
|
openingStatementDescription:
|
|
'Proporcionar mensaje de apertura y preguntas sugeridas',
|
|
end: 'Fin',
|
|
endDescription: 'Marcar el fin de la ejecución del flujo de trabajo',
|
|
log: 'Registro',
|
|
logDescription: 'Registrar información en el log',
|
|
integration: 'Integración',
|
|
integrationDescription: 'Nodo de integración con plataformas de terceros',
|
|
difyWorkflow: 'Flujo de trabajo Dify',
|
|
difyWorkflowDescription: 'Llamar al flujo de trabajo de la plataforma Dify',
|
|
difyKnowledgeQuery: 'Base de conocimiento Dify',
|
|
difyKnowledgeQueryDescription: 'Consultar base de conocimiento Dify',
|
|
n8nWorkflow: 'Flujo de trabajo n8n',
|
|
n8nWorkflowDescription: 'Llamar al flujo de trabajo n8n',
|
|
langflowFlow: 'Flujo Langflow',
|
|
langflowFlowDescription: 'Llamar al flujo de Langflow',
|
|
cozeBot: 'Bot Coze',
|
|
cozeBotDescription: 'Llamar al Bot de Coze',
|
|
// Data & Tools integration nodes
|
|
databaseQuery: 'Consulta de base de datos',
|
|
databaseQueryDescription: 'Ejecutar consulta de base de datos',
|
|
redisOperation: 'Operación Redis',
|
|
redisOperationDescription: 'Ejecutar operación de caché Redis',
|
|
mcpTool: 'Herramienta MCP',
|
|
mcpToolDescription: 'Llamar herramienta MCP',
|
|
memoryStore: 'Almacén de memoria',
|
|
memoryStoreDescription: 'Almacenar y recuperar datos de la memoria del flujo de trabajo',
|
|
},
|
|
executionHistory: {
|
|
title: 'Conversación de Flujo de Trabajo',
|
|
noExecutions: 'No hay registros de ejecución',
|
|
status: 'Estado',
|
|
startTime: 'Hora de inicio',
|
|
duration: 'Duración',
|
|
running: 'Ejecutando',
|
|
completed: 'Completado',
|
|
failed: 'Fallido',
|
|
cancelled: 'Cancelado',
|
|
viewDetails: 'Ver detalles',
|
|
cancel: 'Cancelar ejecución',
|
|
retry: 'Reintentar',
|
|
nodeResults: 'Resultados de ejecución de nodos',
|
|
},
|
|
versions: {
|
|
title: 'Versiones del flujo de trabajo',
|
|
current: 'Versión actual',
|
|
rollback: 'Revertir a esta versión',
|
|
rollbackConfirm:
|
|
'¿Está seguro de revertir a esta versión? Los cambios actuales se perderán.',
|
|
rollbackSuccess: 'Reversión exitosa',
|
|
rollbackError: 'Error al revertir:',
|
|
},
|
|
// Debug and monitoring
|
|
debug: 'Debug',
|
|
debugMode: 'Modo de depuración',
|
|
debugPanel: 'Panel de depuración',
|
|
startDebug: 'Iniciar depuración',
|
|
pauseDebug: 'Pausar',
|
|
resumeDebug: 'Continuar',
|
|
stepDebug: 'Ejecución paso a paso',
|
|
stopDebug: 'Detener',
|
|
debugContext: 'Contexto de depuración',
|
|
simulatedMessage: 'Mensaje simulado',
|
|
simulatedMessagePlaceholder: 'Ingrese el contenido del mensaje a simular',
|
|
senderId: 'ID del remitente',
|
|
senderIdPlaceholder: 'Identificador único del remitente',
|
|
senderName: 'Nombre del remitente',
|
|
senderNamePlaceholder: 'Nombre visible del remitente',
|
|
conversationId: 'ID de sesión',
|
|
conversationIdPlaceholder: 'Identificador único de sesión',
|
|
isGroup: 'Chat grupal',
|
|
customVariables: 'Variables personalizadas',
|
|
addVariable: 'Agregar variable',
|
|
variableName: 'Nombre de variable',
|
|
variableValue: 'Valor de variable',
|
|
watchedVariables: 'Variables monitoreadas',
|
|
addWatchVariable: 'Agregar monitoreo',
|
|
nodeStates: 'Estado del nodo',
|
|
breakpoints: 'Puntos de interrupción',
|
|
toggleBreakpoint: 'Alternar punto de interrupción',
|
|
breakpointSet: 'Punto de interrupción configurado',
|
|
breakpointRemoved: 'Punto de interrupción eliminado',
|
|
debugLogs: 'Registros de depuración',
|
|
noLogs: 'Sin registros',
|
|
clearLogs: 'Limpiar registros',
|
|
autoScroll: 'Desplazamiento automático',
|
|
debugState: {
|
|
idle: 'Inactivo',
|
|
running: 'Ejecutando',
|
|
paused: 'Pausado',
|
|
completed: 'Completado',
|
|
error: 'Error',
|
|
},
|
|
nodeStatus: {
|
|
pending: 'Pendiente',
|
|
running: 'Ejecutando',
|
|
completed: 'Completado',
|
|
failed: 'Fallido',
|
|
skipped: 'Omitido',
|
|
},
|
|
debugDialog: {
|
|
title: 'Conversación de flujo de trabajo',
|
|
selectWorkflow: 'Seleccionar flujo de trabajo',
|
|
sessionType: 'Tipo de sesión',
|
|
privateChat: 'Chat privado',
|
|
groupChat: 'Chat grupal',
|
|
send: 'Enviar',
|
|
reset: 'Reiniciar conversación',
|
|
inputPlaceholder: 'Enviar mensaje de {{type}}...',
|
|
noMessages: 'Sin mensajes',
|
|
userMessage: 'Usuario',
|
|
botMessage: 'Bot',
|
|
sendFailed: 'Error al enviar',
|
|
resetSuccess: 'Conversación reiniciada',
|
|
resetFailed: 'Error al reiniciar',
|
|
loadMessagesFailed: 'Error al cargar mensajes',
|
|
loadWorkflowsFailed: 'Error al cargar flujos de trabajo',
|
|
atTips: 'Mencionar bot',
|
|
streaming: 'Transmisión',
|
|
streamOutput: 'Streaming',
|
|
connected: 'WebSocket conectado',
|
|
disconnected: 'WebSocket desconectado',
|
|
connectionError: 'Error de conexión WebSocket',
|
|
connectionFailed: 'Error de conexión WebSocket',
|
|
notConnected: 'WebSocket no conectado, por favor reintente más tarde',
|
|
imageUploadFailed: 'Error al subir imagen',
|
|
reply: 'Responder',
|
|
replyTo: 'Responder a',
|
|
showMarkdown: 'Renderizar',
|
|
showRaw: 'Texto sin formato',
|
|
allMembers: 'Todos los miembros',
|
|
file: 'Archivo',
|
|
voice: 'Voz',
|
|
uploadImage: 'Subir imagen',
|
|
uploading: 'Subiendo...',
|
|
},
|
|
// Execution history and monitoring
|
|
filterByDate: 'Filtrar por fecha',
|
|
allTime: 'Todo el tiempo',
|
|
today: 'Hoy',
|
|
lastWeek: 'Última semana',
|
|
lastMonth: 'Último mes',
|
|
showingExecutions: 'Mostrando {{shown}} / {{total}} registros',
|
|
rerun: 'Reejecutar',
|
|
rerunExecution: 'Reejecutar',
|
|
logs: 'Registros',
|
|
details: 'Detalles',
|
|
completedAt: 'Tiempo de finalización',
|
|
noNodeExecutions: 'Sin registros de ejecución de nodos',
|
|
// Node config field labels (used by DynamicFormComponent)
|
|
nodeConfigFields: {
|
|
// trigger.py - MessageTriggerNode
|
|
conditions: 'Condiciones de activación',
|
|
keyword_filter: 'Filtro de palabras clave',
|
|
regex_filter: 'Filtro de expresión regular',
|
|
min_length: 'Longitud mínima',
|
|
max_length: 'Longitud máxima',
|
|
require_mention: 'Requiere mencionar bot',
|
|
respond_rules: 'Reglas de respuesta grupal',
|
|
access_control: 'Control de acceso',
|
|
// trigger.py - CronTriggerNode
|
|
cron: 'Expresión Cron',
|
|
timezone: 'Zona horaria',
|
|
// trigger.py - WebhookTriggerNode
|
|
path: 'Ruta Webhook',
|
|
allowed_methods: 'Métodos HTTP permitidos',
|
|
content_type: 'Content-Type',
|
|
auth_type: 'Tipo de autenticación',
|
|
auth_key: 'Clave de autenticación',
|
|
validation: 'Validación de solicitud',
|
|
timeout: 'Tiempo de espera',
|
|
// trigger.py - EventTriggerNode
|
|
event_types: 'Tipo de evento',
|
|
filter: 'Filtro de evento',
|
|
debounce_ms: 'Tiempo de antirrebote',
|
|
// process.py - LLMCallNode
|
|
model: 'Modelo',
|
|
prompt_template: 'Plantilla de prompt',
|
|
system_prompt: 'Prompt del sistema',
|
|
temperature: 'Temperatura',
|
|
top_p: 'Top P',
|
|
frequency_penalty: 'Penalización de frecuencia',
|
|
presence_penalty: 'Penalización de presencia',
|
|
max_tokens: 'Máximo de tokens',
|
|
stop_sequences: 'Secuencias de parada',
|
|
seed: 'Semilla aleatoria',
|
|
stream: 'Salida en streaming',
|
|
use_conversation_history: 'Usar historial de conversación',
|
|
// process.py - CodeExecutorNode
|
|
language: 'Lenguaje de programación',
|
|
code: 'Código',
|
|
// process.py - HTTPRequestNode
|
|
url: 'URL de solicitud',
|
|
method: 'Método de solicitud',
|
|
auth_config: 'Configuración de autenticación',
|
|
// process.py - DataTransformNode
|
|
transform_type: 'Tipo de transformación',
|
|
template: 'Plantilla',
|
|
expression: 'Expresión',
|
|
output_type: 'Tipo de salida',
|
|
// process.py - QuestionClassifierNode
|
|
categories: 'Categorías',
|
|
instruction: 'Instrucción',
|
|
// process.py - ParameterExtractorNode
|
|
parameters: 'Definición de parámetros',
|
|
// process.py - KnowledgeRetrievalNode
|
|
knowledge_bases: 'Base de conocimiento',
|
|
top_k: 'Cantidad a devolver',
|
|
score_threshold: 'Umbral de similitud',
|
|
search_method: 'Método de búsqueda',
|
|
enable_citations: 'Habilitar citas',
|
|
// control.py - ConditionNode
|
|
condition_type: 'Tipo de condición',
|
|
condition_expression: 'Expresión de condición',
|
|
left_value: 'Valor izquierdo',
|
|
operator: 'Operador de comparación',
|
|
right_value: 'Valor derecho',
|
|
// control.py - SwitchNode
|
|
cases: 'Condiciones de rama',
|
|
// control.py - LoopNode
|
|
max_iterations: 'Máximo de iteraciones',
|
|
break_condition: 'Condición de interrupción',
|
|
// control.py - IteratorNode
|
|
parallel: 'Procesamiento paralelo',
|
|
max_concurrency: 'Máximo de concurrencia',
|
|
// control.py - ParallelNode
|
|
branches: 'Configuración de ramas',
|
|
wait_all: 'Esperar todas',
|
|
fail_fast: 'Fallo rápido',
|
|
// control.py - WaitNode
|
|
duration: 'Tiempo de espera',
|
|
duration_type: 'Unidad de tiempo',
|
|
// control.py - MergeNode
|
|
merge_strategy: 'Estrategia de fusión',
|
|
// control.py - VariableAggregatorNode
|
|
variable_mappings: 'Mapeo de variables',
|
|
aggregation_mode: 'Modo de agregación',
|
|
// action.py - SendMessageNode
|
|
target_type: 'Tipo de destino',
|
|
target_id: 'ID de destino',
|
|
platform: 'Plataforma',
|
|
message_type: 'Tipo de mensaje',
|
|
// action.py - ReplyMessageNode
|
|
reply_mode: 'Modo de respuesta',
|
|
message_template: 'Plantilla de mensaje',
|
|
long_text_processing: 'Procesamiento de texto largo',
|
|
force_delay: 'Retraso forzado',
|
|
// action.py - CallPipelineNode
|
|
pipeline_uuid: 'Pipeline',
|
|
inherit_context: 'Heredar contexto',
|
|
// action.py - StoreDataNode
|
|
storage_type: 'Tipo de almacenamiento',
|
|
ttl: 'Tiempo de expiración',
|
|
key_prefix: 'Prefijo de clave',
|
|
// action.py - SetVariableNode
|
|
variable_name: 'Nombre de variable',
|
|
variable_scope: 'Ámbito de variable',
|
|
set_variable_operation: 'Tipo de operación',
|
|
// action.py - OpeningStatementNode
|
|
statement: 'Declaración de apertura',
|
|
suggested_questions: 'Preguntas sugeridas',
|
|
show_suggestions: 'Mostrar sugerencias',
|
|
// action.py - EndNode
|
|
output_format: 'Formato de salida',
|
|
success_message: 'Mensaje de éxito',
|
|
// integration.py - DatabaseQueryNode
|
|
connection_type: 'Tipo de base de datos',
|
|
connection_string: 'Cadena de conexión',
|
|
query: 'Consulta SQL',
|
|
query_type: 'Tipo de consulta',
|
|
// integration.py - RedisOperationNode
|
|
connection_url: 'URL de conexión',
|
|
operation: 'Tipo de operación',
|
|
key_template: 'Plantilla de clave',
|
|
hash_field: 'Campo hash',
|
|
// integration.py - MCPToolNode
|
|
server_name: 'Nombre del servidor',
|
|
tool_name: 'Nombre de herramienta',
|
|
arguments_template: 'Plantilla de parámetros',
|
|
// integration.py - MemoryStoreNode
|
|
scope: 'Ámbito',
|
|
// integration.py - DifyWorkflowNode
|
|
'base-url': 'Base URL',
|
|
'api-key': 'API Key',
|
|
'app-type': 'App Type',
|
|
// integration.py - DifyKnowledgeQueryNode
|
|
dataset_id: 'ID de base de conocimiento',
|
|
// integration.py - N8nWorkflowNode
|
|
'webhook-url': 'Webhook URL',
|
|
// integration.py - LangflowFlowNode
|
|
'flow-id': 'Flow ID',
|
|
// integration.py - CozeBotNode
|
|
'bot-id': 'Bot ID',
|
|
'api-base': 'API Base URL',
|
|
},
|
|
// Node outputs i18n
|
|
nodeOutputs: {
|
|
// trigger.py - MessageTriggerNode
|
|
message: 'Mensaje',
|
|
sender_id: 'ID del remitente',
|
|
sender_name: 'Nombre del remitente',
|
|
platform: 'Plataforma',
|
|
conversation_id: 'ID de sesión',
|
|
is_group: 'Es chat grupal',
|
|
context: 'Contexto de depuración',
|
|
// trigger.py - CronTriggerNode
|
|
timestamp: 'Marca de tiempo',
|
|
schedule: 'Programación',
|
|
cron_timestamp: 'Marca de tiempo Cron',
|
|
cron_schedule: 'Expresión de programación Cron',
|
|
cron_context: 'Contexto Cron',
|
|
// trigger.py - WebhookTriggerNode
|
|
body: 'Cuerpo de la solicitud',
|
|
headers: 'Encabezados',
|
|
query: 'Consulta SQL',
|
|
method: 'Método de solicitud',
|
|
webhook_body: 'Cuerpo de solicitud Webhook',
|
|
webhook_headers: 'Encabezados de solicitud Webhook',
|
|
webhook_query: 'Parámetro de consulta Webhook',
|
|
webhook_method: 'Método de solicitud Webhook',
|
|
// trigger.py - EventTriggerNode
|
|
event_type: 'Tipo de evento',
|
|
event_data: 'Datos del evento',
|
|
event_timestamp: 'Marca de tiempo del evento',
|
|
// process.py - LLMCallNode
|
|
response: 'Respuesta',
|
|
usage: 'Estadísticas de uso de tokens',
|
|
prompt: 'Prompt/pregunta',
|
|
context_info: 'Información de contexto',
|
|
// process.py - CodeExecutorNode
|
|
output: 'Salida',
|
|
console: 'Salida de consola',
|
|
code_input: 'Entrada de código',
|
|
code_output: 'Salida de código',
|
|
// process.py - HTTPRequestNode
|
|
status_code: 'Código de estado',
|
|
http_body: 'Cuerpo de solicitud HTTP',
|
|
http_headers: 'Encabezados de solicitud HTTP',
|
|
http_response: 'Respuesta HTTP',
|
|
response_headers: 'Encabezados de respuesta',
|
|
// process.py - DataTransformNode
|
|
result: 'Resultado',
|
|
transform_input: 'Entrada de transformación',
|
|
transform_result: 'Resultado de transformación',
|
|
// process.py - QuestionClassifierNode
|
|
category: 'Resultado de categoría',
|
|
confidence: 'Confianza',
|
|
all_scores: 'Todas las puntuaciones',
|
|
question: 'Pregunta del usuario',
|
|
// process.py - ParameterExtractorNode
|
|
parameters: 'Definición de parámetros',
|
|
extraction_success: 'Extracción exitosa',
|
|
extract_text: 'Texto de entrada',
|
|
// process.py - KnowledgeRetrievalNode
|
|
documents: 'Documentos recuperados',
|
|
citations: 'Información de citas',
|
|
knowledge_context: 'Contexto fusionado',
|
|
knowledge_query: 'Consulta de recuperación',
|
|
// control.py - ConditionNode
|
|
true: 'Salida cuando la condición es verdadera',
|
|
false: 'Salida cuando la condición es falsa',
|
|
condition_input: 'Entrada de condición',
|
|
// control.py - SwitchNode
|
|
matched_case: 'Rama coincidente',
|
|
default: 'Rama predeterminada',
|
|
switch_input: 'Entrada del interruptor',
|
|
// control.py - LoopNode
|
|
item: 'Elemento actual',
|
|
index: 'Índice actual',
|
|
results: 'Resultado',
|
|
completed: 'Completado',
|
|
loop_items: 'Elementos de iteración',
|
|
// control.py - IteratorNode
|
|
is_first: '¿Es el primero?',
|
|
is_last: '¿Es el último?',
|
|
iterator_array: 'Array de entrada',
|
|
iterator_item: 'Elemento actual',
|
|
iterator_index: 'Índice actual',
|
|
// control.py - ParallelNode
|
|
errors: 'Lista de errores',
|
|
parallel_input: 'Entrada paralela',
|
|
parallel_results: 'Resultados de todas las ramas',
|
|
// control.py - WaitNode
|
|
wait_input: 'Entrada de paso',
|
|
wait_output: 'Salida de paso',
|
|
// control.py - MergeNode
|
|
merged: 'Resultado de fusión',
|
|
merge_array: 'Resultado de array',
|
|
merge_input_1: 'Entrada 1',
|
|
merge_input_2: 'Entrada 2',
|
|
merge_input_3: 'Entrada 3',
|
|
merge_input_4: 'Entrada 4',
|
|
// control.py - VariableAggregatorNode
|
|
aggregated: 'Variables agregadas',
|
|
aggregator_variables: 'Entrada de variable',
|
|
// action.py - SendMessageNode
|
|
status: 'Estado',
|
|
message_id: 'ID de mensaje',
|
|
target: 'ID de destino',
|
|
// action.py - ReplyMessageNode
|
|
reply_message: 'Contenido de respuesta',
|
|
// action.py - CallPipelineNode
|
|
pipeline_response: 'Respuesta del Pipeline',
|
|
pipeline_result: 'Resultado completo',
|
|
pipeline_query: 'Contenido de consulta',
|
|
context_data: 'Datos de contexto',
|
|
// action.py - StoreDataNode
|
|
store_status: 'Estado de almacenamiento',
|
|
store_key: 'Clave de almacenamiento',
|
|
store_value: 'Valor almacenado',
|
|
// action.py - SetVariableNode
|
|
variable_value: 'Valor de variable',
|
|
variable_result: 'Resultado de establecer variable',
|
|
// action.py - OpeningStatementNode
|
|
statement: 'Declaración de apertura',
|
|
suggested_questions: 'Preguntas sugeridas',
|
|
// action.py - EndNode
|
|
workflow_output: 'Salida del flujo de trabajo',
|
|
final_result: 'Resultado final',
|
|
// integration.py - DatabaseQueryNode
|
|
query_results: 'Resultados de consulta',
|
|
row_count: 'Número de filas',
|
|
query_success: 'Consulta exitosa',
|
|
query_params: 'Parámetros de consulta',
|
|
// integration.py - RedisOperationNode
|
|
redis_result: 'Resultado de Redis',
|
|
redis_success: 'Éxito de Redis',
|
|
redis_key: 'Clave de Redis',
|
|
redis_value: 'Valor de Redis',
|
|
error: 'Error',
|
|
plugin_input: 'Entrada del plugin',
|
|
// integration.py - MCPToolNode
|
|
tool_result: 'Resultado de herramienta',
|
|
tool_success: 'Éxito de herramienta',
|
|
mcp_arguments: 'Parámetro de herramienta',
|
|
// integration.py - MemoryStoreNode
|
|
memory_result: 'Resultado de memoria',
|
|
memory_success: 'Éxito de memoria',
|
|
memory_value: 'Valor almacenado',
|
|
// integration.py - DifyWorkflowNode
|
|
answer: 'Respuesta',
|
|
dify_success: 'Éxito de Dify',
|
|
dify_query: 'Entrada/consulta del usuario',
|
|
dify_conversation_id: 'ID de sesión',
|
|
// integration.py - DifyKnowledgeQueryNode
|
|
search_results: 'Resultados de búsqueda',
|
|
knowledge_base_query: 'Contenido de consulta',
|
|
// integration.py - N8nWorkflowNode
|
|
n8n_result: 'Resultado de N8n',
|
|
n8n_success: 'Éxito de N8n',
|
|
n8n_payload: 'Datos de entrada del flujo de trabajo',
|
|
// integration.py - LangflowFlowNode
|
|
flow_result: 'Resultado del flujo',
|
|
flow_success: 'Éxito del flujo',
|
|
langflow_input: 'Contenido de entrada',
|
|
// integration.py - CozeBotNode
|
|
bot_answer: 'Respuesta del bot',
|
|
bot_success: 'Éxito del bot',
|
|
coze_query: 'Entrada/consulta del usuario',
|
|
coze_conversation_id: 'ID de sesión',
|
|
bot_conversation_id: 'ID de sesión',
|
|
sender: 'Remitente',
|
|
event: 'Evento',
|
|
trigger_time: 'Tiempo de activación',
|
|
scores: 'Puntuaciones',
|
|
missing: 'Parámetro faltante',
|
|
parsed: 'Resultado analizado',
|
|
chunks: 'Fragmentos de texto',
|
|
count: 'Cantidad',
|
|
execution_id: 'ID de ejecución',
|
|
suggestions: 'Preguntas sugeridas',
|
|
embedding: 'Vector',
|
|
dimensions: 'Dimensiones',
|
|
intent: 'Intención',
|
|
entities: 'Entidades',
|
|
},
|
|
},
|
|
|
|
pluginPages: {
|
|
selectFromSidebar: 'Selecciona una página de plugin en la barra lateral',
|
|
invalidPage: 'Página de plugin no válida',
|
|
},
|
|
};
|
|
|
|
export default esES;
|