chore: add missing translations (#28631)

This commit is contained in:
yyh
2025-11-25 14:52:17 +08:00
committed by GitHub
parent 58be008676
commit 82dac2eba0
250 changed files with 9194 additions and 324 deletions

View File

@@ -326,6 +326,7 @@ const translation = {
'both': 'ambos',
'single-file': 'En fila india',
'maxNumberOfUploads': 'Número máximo de cargas',
'maxNumberTip': 'Documento < {{docLimit}}, imagen < {{imgLimit}}, audio < {{audioLimit}}, vídeo < {{videoLimit}}',
'multi-files': 'Lista de archivos',
'jsonSchema': 'Esquema JSON',
'json': 'Código JSON',

View File

@@ -19,6 +19,7 @@ const translation = {
tokens: 'TOKENS',
user: 'USUARIO FINAL O CUENTA',
version: 'VERSIÓN',
triggered_from: 'ACTIVADO POR',
},
pagination: {
previous: 'Anterior',
@@ -97,6 +98,15 @@ const translation = {
finalProcessing: 'Procesamiento Final',
},
dateFormat: 'DD/MM/YYYY',
triggerBy: {
debugging: 'Depuración',
appRun: 'Aplicación web',
webhook: 'Webhook',
schedule: 'Horario',
plugin: 'Complemento',
ragPipelineRun: 'Pipeline RAG',
ragPipelineDebugging: 'Depuración RAG',
},
}
export default translation

View File

@@ -114,7 +114,11 @@ const translation = {
},
},
launch: 'Lanzar',
enableTooltip: {},
enableTooltip: {
description: 'Para habilitar esta función, por favor agrega un nodo de Entrada de Usuario al lienzo. (Puede que ya exista en el borrador, surte efecto después de publicar)',
learnMore: 'Aprender más',
},
title: 'Aplicación web',
},
apiInfo: {
title: 'API del servicio backend',
@@ -126,7 +130,14 @@ const translation = {
running: 'En servicio',
disable: 'Deshabilitar',
},
triggerInfo: {},
triggerInfo: {
title: 'Desencadenantes',
explanation: 'Gestión de activadores de flujo de trabajo',
triggersAdded: 'Se añadieron los disparadores de {{count}}',
noTriggerAdded: 'No se agregó ningún disparador',
triggerStatusDescription: 'El estado del nodo de activación aparece aquí. (Puede que ya exista en el borrador, surte efecto después de publicar)',
learnAboutTriggers: 'Aprende sobre los desencadenantes',
},
disableTooltip: {
triggerMode: 'La función {{feature}} no es compatible en el modo Nodo de disparo.',
},

View File

@@ -98,6 +98,8 @@ const translation = {
triggerEvents: {
unlimited: 'Eventos de Disparo Ilimitados',
tooltip: 'El número de eventos que inician automáticamente flujos de trabajo mediante desencadenadores de Plugin, Programación o Webhook.',
sandbox: '{{count,number}} Eventos de activación',
professional: '{{count,number}} Eventos activadores/mes',
},
workflowExecution: {
tooltip: 'Prioridad y velocidad de la cola de ejecución de flujos de trabajo.',
@@ -107,6 +109,11 @@ const translation = {
},
startNodes: {
unlimited: 'Disparadores/flujo de trabajo ilimitados',
limited: 'Hasta {{count}} Disparadores/flujo de trabajo',
},
title: {
plans: 'planes',
description: 'Selecciona el plan que mejor se adapte a las necesidades de tu equipo.',
},
},
plans: {
@@ -133,17 +140,7 @@ const translation = {
for: 'Para equipos de gran tamaño',
price: 'Personalizado',
priceTip: 'Facturación Anual Solo',
features: [
'Soluciones de implementación escalables a nivel empresarial',
'Autorización de licencia comercial',
'Funciones exclusivas para empresas',
'Múltiples espacios de trabajo y gestión empresarial',
'SSO (inicio de sesión único)',
'SLAs negociados con socios de Dify',
'Seguridad y controles avanzados',
'Actualizaciones y mantenimiento oficiales por parte de Dify',
'Soporte técnico profesional',
],
features: ['Soluciones de Despliegue Escalables de Nivel Empresarial', 'Autorización de Licencia Comercial', 'Funciones Exclusivas para Empresas', 'Múltiples espacios de trabajo y gestión empresarial', 'SSO', 'Acuerdos de nivel de servicio negociados por socios de Dify', 'Seguridad y Controles Avanzados', 'Actualizaciones y Mantenimiento por Dify Oficialmente', 'Soporte Técnico Profesional'],
},
community: {
includesTitle: 'Características gratuitas:',
@@ -152,11 +149,7 @@ const translation = {
btnText: 'Comienza con la Comunidad',
name: 'Comunidad',
description: 'Para usuarios individuales, pequeños equipos o proyectos no comerciales',
features: [
'Todas las funciones principales publicadas en el repositorio público',
'Espacio de trabajo único',
'Cumple con la licencia de código abierto de Dify',
],
features: ['Todas las características principales se publican en el repositorio público', 'Espacio de trabajo único', 'Cumple con la Licencia de Código Abierto de Dify'],
},
premium: {
description: 'Para organizaciones y equipos de tamaño mediano',
@@ -167,12 +160,7 @@ const translation = {
includesTitle: 'Todo de Community, además:',
name: 'Premium',
for: 'Para organizaciones y equipos de tamaño mediano',
features: [
'Fiabilidad autogestionada mediante varios proveedores de nube',
'Espacio de trabajo único',
'Personalización del logotipo y la marca de la aplicación web',
'Soporte prioritario por correo electrónico y chat',
],
features: ['Confiabilidad autogestionada por varios proveedores de la nube', 'Espacio de trabajo único', 'Personalización de Logotipo y Marca de la Aplicación Web', 'Soporte prioritario por correo electrónico y chat'],
},
},
vectorSpace: {
@@ -200,6 +188,7 @@ const translation = {
vectorSpaceTooltip: 'Los documentos con el modo de indexación de alta calidad consumirán recursos de Almacenamiento de Datos de Conocimiento. Cuando el Almacenamiento de Datos de Conocimiento alcanza el límite, no se subirán nuevos documentos.',
triggerEvents: 'Eventos desencadenantes',
perMonth: 'por mes',
resetsIn: 'Se reinicia en {{count,number}} días',
},
teamMembers: 'Miembros del equipo',
triggerLimitModal: {

View File

@@ -65,6 +65,12 @@ const translation = {
deleteConfirmTitle: '¿Eliminar?',
yes: 'Sí',
no: 'No',
noSearchResults: 'No se encontraron {{content}}',
resetKeywords: 'Restablecer palabras clave',
selectCount: '{{count}} Seleccionado',
searchCount: 'Encuentra {{count}} {{content}}',
noSearchCount: '0 {{content}}',
now: 'Ahora',
},
errorMsg: {
fieldRequired: '{{field}} es requerido',
@@ -73,6 +79,7 @@ const translation = {
placeholder: {
input: 'Por favor ingresa',
select: 'Por favor selecciona',
search: 'Buscar...',
},
voice: {
language: {
@@ -769,6 +776,13 @@ const translation = {
label: {
optional: '(opcional)',
},
noData: 'Sin datos',
dynamicSelect: {
error: 'Error al cargar las opciones',
noData: 'No hay opciones disponibles',
loading: 'Cargando opciones...',
selected: '{{count}} seleccionado',
},
}
export default translation

View File

@@ -81,7 +81,10 @@ const translation = {
ok: 'Aceptar',
},
learnMore: 'Aprende más',
sort: {},
sort: {
uploadTime: 'Hora de subida',
hitCount: 'Conteo de Recuperaciones',
},
},
metadata: {
title: 'Metadatos',

View File

@@ -34,6 +34,7 @@ const translation = {
publishPipeline: {
success: {
message: 'Publicación de Knowledge Pipeline',
tip: '<CustomLink>Ve a Documentos</CustomLink> para agregar o gestionar documentos.',
},
error: {
message: 'No se pudo publicar la canalización de conocimiento',
@@ -56,6 +57,7 @@ const translation = {
details: {
structure: 'Structure',
structureTooltip: 'La estructura de fragmentos determina cómo se dividen e indexan los documentos, ofreciendo modos General, Principal-Secundario y Preguntas y respuestas, y es única para cada base de conocimiento.',
createdBy: 'Por {{author}}',
},
testRun: {
steps: {
@@ -112,23 +114,32 @@ const translation = {
characters: 'Caracteres',
title: 'Agregar documentos',
backToDataSource: 'Fuente de datos',
selectOnlineDocumentTip: 'Procesar hasta {{count}} páginas',
selectOnlineDriveTip: 'Procesar hasta {{count}} archivos, máximo {{fileSize}} MB cada uno',
},
documentSettings: {
title: 'Parametrizaciones de documentos',
},
onlineDocument: {},
onlineDocument: {
pageSelectorTitle: '{{name}} páginas',
},
onlineDrive: {
breadcrumbs: {
allBuckets: 'Todos los depósitos de Cloud Storage',
allFiles: 'Todos los archivos',
searchPlaceholder: 'Buscar archivos...',
searchResult: 'Encontrar {{searchResultsLength}} elementos en la carpeta "{{folderName}}"',
},
emptySearchResult: 'No se encontraron artículos',
resetKeywords: 'Restablecer palabras clave',
emptyFolder: 'Esta carpeta está vacía',
notSupportedFileType: 'Este tipo de archivo no es compatible',
notConnected: '{{name}} no está conectado',
notConnectedTip: 'Para sincronizar con {{name}}, primero se debe establecer conexión con {{name}}.',
},
credentialSelector: {
name: '{{credentialName}} de {{pluginName}}',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Confirmación',
@@ -149,6 +160,7 @@ const translation = {
pipelineNameAndIcon: 'Nombre e icono de la tubería',
knowledgePermissions: 'Permisos',
editPipelineInfo: 'Editar información de canalización',
configurationTip: 'Configurar {{pluginName}}',
}
export default translation

View File

@@ -234,6 +234,10 @@ const translation = {
title: 'API de servicios',
disabled: 'Discapacitado',
},
docAllEnabled_one: 'Documento {{count}} activado',
docAllEnabled_other: 'Todos los documentos {{count}} habilitados',
partialEnabled_one: 'Total de {{count}} documentos, {{num}} disponibles',
partialEnabled_other: 'Total de {{count}} documentos, {{num}} disponibles',
}
export default translation

View File

@@ -52,6 +52,7 @@ const translation = {
},
isAboutToExpire: {
summary: 'No te preocupes, esto no afectará tu suscripción actual, pero no obtendrás el descuento educativo cuando se renueve a menos que verifiques tu estado nuevamente.',
title: 'Tu estado educativo expirará el {{date}}',
},
stillInEducation: {
title: '¿Aún en educación?',

View File

@@ -28,10 +28,12 @@ const translation = {
loading: 'Tratamiento... Espera',
viewDetails: 'Ver detalles',
error: 'Error ocurrido durante la ejecución',
footerTip: 'En modo de prueba, previsualiza hasta {{count}} fragmentos',
},
},
ragToolSuggestions: {
title: 'Sugerencias para el GAR',
noRecommendationPlugins: 'No hay complementos recomendados, encuentra más en <CustomLink>Marketplace</CustomLink>',
},
}

View File

@@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'Suscripciones',
listNum: 'suscripciones de {{num}}',
empty: {
title: 'Sin suscripciones',
button: 'Nueva suscripción',
},
createButton: {
oauth: 'Nueva suscripción con OAuth',
apiKey: 'Nueva suscripción con clave API',
manual: 'Pega la URL para crear una nueva suscripción',
},
createSuccess: 'Suscripción creada con éxito',
createFailed: 'No se pudo crear la suscripción',
maxCount: 'Máximo {{num}} suscripciones',
selectPlaceholder: 'Seleccionar suscripción',
noSubscriptionSelected: 'No se ha seleccionado ninguna suscripción',
subscriptionRemoved: 'Suscripción eliminada',
list: {
title: 'Suscripciones',
addButton: 'Agregar',
tip: 'Recibir eventos mediante suscripción',
item: {
enabled: 'Habilitado',
disabled: 'Desactivado',
credentialType: {
api_key: 'Clave de API',
oauth2: 'OAuth',
unauthorized: 'Manual',
},
actions: {
delete: 'Eliminar',
deleteConfirm: {
title: '¿Eliminar {{name}}?',
success: 'Suscripción {{name}} eliminada con éxito',
error: 'Error al eliminar la suscripción {{name}}',
content: 'Una vez eliminada, esta suscripción no se puede recuperar. Por favor, confirme.',
contentWithApps: 'La suscripción actual está referenciada por {{count}} aplicaciones. Eliminarla hará que las aplicaciones configuradas dejen de recibir eventos de suscripción.',
confirm: 'Confirmar eliminación',
cancel: 'Cancelar',
confirmInputWarning: 'Por favor, ingrese el nombre correcto para confirmar.',
confirmInputPlaceholder: 'Introduce "{{name}}" para confirmar.',
confirmInputTip: 'Por favor, introduzca “{{name}}” para confirmar.',
},
},
status: {
active: 'activo',
inactive: 'inactivo',
},
usedByNum: 'Utilizado por {{num}} flujos de trabajo',
noUsed: 'No se utilizó ningún flujo de trabajo',
},
},
addType: {
title: 'Añadir suscripción',
description: 'Elige cómo quieres crear tu suscripción de activador',
options: {
apikey: {
title: 'Crear con clave API',
description: 'Crear suscripción automáticamente usando credenciales de API',
},
oauth: {
title: 'Crear con OAuth',
description: 'Autorizar con una plataforma de terceros para crear una suscripción',
clientSettings: 'Configuración del cliente OAuth',
clientTitle: 'Cliente OAuth',
default: 'predeterminado',
custom: 'Personalizado',
},
manual: {
title: 'Configuración manual',
description: 'Pega la URL para crear una nueva suscripción',
tip: 'Configurar la URL en la plataforma de terceros manualmente',
},
},
},
},
modal: {
steps: {
verify: 'Verificar',
configuration: 'Configuración',
},
common: {
cancel: 'Cancelar',
back: 'Atrás',
next: 'Siguiente',
create: 'Crear',
verify: 'Verificar',
authorize: 'Autorizar',
creating: 'Creando...',
verifying: 'Verificando...',
authorizing: 'Autorizando...',
},
oauthRedirectInfo: 'Dado que no se encontraron secretos de cliente del sistema para este proveedor de herramientas, es necesario configurarlo manualmente; para redirect_uri, por favor use',
apiKey: {
title: 'Crear con clave API',
verify: {
title: 'Verificar credenciales',
description: 'Por favor, proporciona tus credenciales de API para verificar el acceso',
error: 'La verificación de las credenciales falló. Por favor, revisa tu clave API.',
success: 'Credenciales verificadas con éxito',
},
configuration: {
title: 'Configurar suscripción',
description: 'Configura los parámetros de tu suscripción',
},
},
oauth: {
title: 'Crear con OAuth',
authorization: {
title: 'Autorización OAuth',
description: 'Autoriza a Dify para acceder a tu cuenta',
redirectUrl: 'URL de redirección',
redirectUrlHelp: 'Utiliza esta URL en la configuración de tu aplicación OAuth',
authorizeButton: 'Autorizar con {{provider}}',
waitingAuth: 'Esperando autorización...',
authSuccess: 'Autorización exitosa',
authFailed: 'Error al obtener la información de autorización OAuth',
waitingJump: 'Autorizado, esperando para saltar',
},
configuration: {
title: 'Configurar suscripción',
description: 'Configura los parámetros de tu suscripción después de la autorización',
success: 'Configuración de OAuth exitosa',
failed: 'La configuración de OAuth falló',
},
remove: {
success: 'Eliminación de OAuth exitosa',
failed: 'Error al eliminar OAuth',
},
save: {
success: 'Configuración de OAuth guardada con éxito',
},
},
manual: {
title: 'Configuración manual',
description: 'Configura tu suscripción al webhook manualmente',
logs: {
title: 'Registros de solicitudes',
request: 'Solicitud',
loading: 'Esperando solicitud de {{pluginName}}...',
},
},
form: {
subscriptionName: {
label: 'Nombre de la suscripción',
placeholder: 'Ingrese el nombre de la suscripción',
required: 'Se requiere el nombre de la suscripción',
},
callbackUrl: {
label: 'URL de retorno de llamada',
description: 'Esta URL recibirá eventos de webhook',
tooltip: 'Proporcione un endpoint accesible públicamente que pueda recibir solicitudes de devolución de llamada del proveedor del activador.',
placeholder: 'Generando...',
privateAddressWarning: 'Esta URL parece ser una dirección interna, lo que puede hacer que las solicitudes del webhook fallen. Puede cambiar TRIGGER_URL a una dirección pública.',
},
},
errors: {
createFailed: 'No se pudo crear la suscripción',
verifyFailed: 'No se pudieron verificar las credenciales',
authFailed: 'Autorización fallida',
networkError: 'Error de red, por favor intenta de nuevo',
},
},
events: {
title: 'Eventos Disponibles',
description: 'Eventos a los que este complemento de activación puede suscribirse',
empty: 'No hay eventos disponibles',
event: 'Evento',
events: 'Eventos',
actionNum: '{{num}} {{event}} INCLUIDO',
item: {
parameters: 'parámetros {{count}}',
noParameters: 'Sin parámetros',
},
output: 'Salida',
},
node: {
status: {
warning: 'Desconectar',
},
},
}
export default translation

View File

@@ -7,6 +7,7 @@ const translation = {
agents: 'Estrategias de los agentes',
models: 'Modelos',
datasources: 'Fuentes de datos',
triggers: 'Desencadenantes',
},
categorySingle: {
bundle: 'Haz',
@@ -15,6 +16,7 @@ const translation = {
model: 'Modelo',
agent: 'Estrategia del agente',
datasource: 'Fuente de datos',
trigger: 'Disparador',
},
list: {
source: {
@@ -45,6 +47,7 @@ const translation = {
remove: 'Eliminar',
info: 'Información del plugin',
update: 'Actualizar',
back: 'Atrás',
},
toolSelector: {
toolLabel: 'Herramienta',
@@ -340,6 +343,12 @@ const translation = {
'Para cambiar la zona horaria, ve a <setTimezone>Configuración</setTimezone>.',
automaticUpdates: 'Actualizaciones automáticas',
},
readmeInfo: {
title: 'LEEME',
needHelpCheckReadme: '¿Necesitas ayuda? Revisa el README.',
noReadmeAvailable: 'No hay archivo README disponible',
failedToFetch: 'No se pudo obtener el README',
},
}
export default translation

View File

@@ -113,6 +113,15 @@ const translation = {
currentView: 'Vista actual',
currentWorkflow: 'Flujo de trabajo actual',
moreActions: 'Más acciones',
listening: 'Escucha',
chooseStartNodeToRun: 'Elige el nodo de inicio para ejecutar',
runAllTriggers: 'Ejecutar todos los desencadenadores',
features: 'Características',
featuresDescription: 'Mejorar la experiencia del usuario en la aplicación web',
featuresDocLink: 'Aprender más',
needAdd: 'Se debe añadir el nodo {{node}}',
needStartNode: 'Se debe añadir al menos un nodo de inicio',
workflowAsToolDisabledHint: 'Publica el flujo de trabajo más reciente y asegúrate de que haya un nodo de Entrada de Usuario conectado antes de configurarlo como una herramienta.',
},
env: {
envPanelTitle: 'Variables de Entorno',
@@ -219,6 +228,7 @@ const translation = {
rerankModelRequired: 'Antes de activar el modelo de reclasificación, confirme que el modelo se ha configurado correctamente en la configuración.',
toolParameterRequired: '{{campo}}: el parámetro [{{param}}] es obligatorio',
noValidTool: '{{campo}} no se ha seleccionado ninguna herramienta válida',
startNodeRequired: 'Por favor, agregue primero un nodo de inicio antes de {{operation}}',
},
singleRun: {
testRun: 'Ejecución de prueba',
@@ -250,6 +260,21 @@ const translation = {
'allAdded': 'Todo añadido',
'sources': 'Fuentes',
'searchDataSource': 'Fuente de datos de búsqueda',
'start': 'Iniciar',
'searchTrigger': 'Buscar desencadenantes...',
'allTriggers': 'Todos los desencadenantes',
'noPluginsFound': 'No se encontraron complementos',
'requestToCommunity': 'Solicitudes a la comunidad',
'featuredTools': 'Destacado',
'showMoreFeatured': 'Mostrar más',
'showLessFeatured': 'Mostrar menos',
'installed': 'Instalado',
'pluginByAuthor': 'Por {{author}}',
'usePlugin': 'Seleccionar herramienta',
'hideActions': 'Ocultar herramientas',
'noFeaturedPlugins': 'Descubre más herramientas en el Marketplace',
'noFeaturedTriggers': 'Descubre más desencadenantes en el Marketplace',
'startDisabledTip': 'El nodo activador y el nodo de entrada del usuario son mutuamente excluyentes.',
},
blocks: {
'start': 'Inicio',
@@ -276,6 +301,10 @@ const translation = {
'loop-start': 'Inicio del bucle',
'knowledge-index': 'Knowledge base',
'datasource': 'Fuente de datos',
'originalStartNode': 'nodo inicial original',
'trigger-schedule': 'Disparador de horario',
'trigger-webhook': 'Disparador de Webhook',
'trigger-plugin': 'Disparador de complemento',
},
blocksAbout: {
'start': 'Define los parámetros iniciales para iniciar un flujo de trabajo',
@@ -300,6 +329,9 @@ const translation = {
'loop': 'Ejecuta un bucle de lógica hasta que se cumpla la condición de terminación o se alcance el conteo máximo de bucles.',
'knowledge-index': 'Base de conocimientos Acerca de',
'datasource': 'Fuente de datos Acerca de',
'trigger-schedule': 'Disparador de flujo de trabajo basado en tiempo que inicia flujos de trabajo según un horario',
'trigger-webhook': 'El disparador de Webhook recibe envíos HTTP de sistemas de terceros para activar automáticamente flujos de trabajo.',
'trigger-plugin': 'Disparador de integración de terceros que inicia flujos de trabajo a partir de eventos de plataformas externas',
},
operator: {
zoomIn: 'Acercar',
@@ -340,6 +372,8 @@ const translation = {
minimize: 'Salir de pantalla completa',
scrollToSelectedNode: 'Desplácese hasta el nodo seleccionado',
optional_and_hidden: '(opcional y oculto)',
goTo: 'Ir a',
startNode: 'Nodo de inicio',
},
nodes: {
common: {
@@ -787,6 +821,8 @@ const translation = {
MaxParallelismDesc: 'El paralelismo máximo se utiliza para controlar el número de tareas ejecutadas simultáneamente en una sola iteración.',
answerNodeWarningDesc: 'Advertencia de modo paralelo: Los nodos de respuesta, las asignaciones de variables de conversación y las operaciones de lectura/escritura persistentes dentro de las iteraciones pueden provocar excepciones.',
parallelModeEnableTitle: 'Modo paralelo habilitado',
flattenOutput: 'Aplanar salida',
flattenOutputDesc: 'Cuando está habilitado, si todas las salidas de la iteración son arrays, se aplanarán en un solo array. Cuando está deshabilitado, las salidas mantendrán una estructura de array anidada.',
},
note: {
addNote: 'Agregar nota',
@@ -963,6 +999,144 @@ const translation = {
rerankingModelIsInvalid: 'El modelo de reordenación no es válido',
embeddingModelIsInvalid: 'El modelo de incrustación no es válido',
},
triggerPlugin: {
authorized: 'autorizado',
notConfigured: 'No Configurado',
notAuthorized: 'No autorizado',
selectSubscription: 'Seleccionar suscripción',
availableSubscriptions: 'Suscripciones disponibles',
addSubscription: 'Agregar nueva suscripción',
removeSubscription: 'Cancelar suscripción',
subscriptionRemoved: 'Suscripción eliminada con éxito',
error: 'Error',
configuration: 'Configuración',
remove: 'Eliminar',
or: 'O',
useOAuth: 'Usar OAuth',
useApiKey: 'Usar clave API',
authenticationFailed: 'Autenticación fallida',
authenticationSuccess: 'Autenticación exitosa',
oauthConfigFailed: 'La configuración de OAuth falló',
configureOAuthClient: 'Configurar cliente OAuth',
oauthClientDescription: 'Configura las credenciales del cliente OAuth para habilitar la autenticación',
oauthClientSaved: 'Configuración del cliente OAuth guardada correctamente',
configureApiKey: 'Configurar clave API',
apiKeyDescription: 'Configurar las credenciales de la clave API para la autenticación',
apiKeyConfigured: 'Clave API configurada correctamente',
configurationFailed: 'La configuración falló',
failedToStart: 'Error al iniciar el flujo de autenticación',
credentialsVerified: 'Credenciales verificadas con éxito',
credentialVerificationFailed: 'Verificación de credenciales fallida',
verifyAndContinue: 'Verificar y continuar',
configureParameters: 'Configurar parámetros',
parametersDescription: 'Configurar parámetros y propiedades del disparador',
configurationComplete: 'Configuración completa',
configurationCompleteDescription: 'Tu disparador se ha configurado correctamente',
configurationCompleteMessage: 'Tu configuración de activadores ya está completa y lista para usar.',
parameters: 'Parámetros',
properties: 'Propiedades',
propertiesDescription: 'Propiedades de configuración adicionales para este disparador',
noConfigurationRequired: 'No se requiere configuración adicional para este disparador.',
subscriptionName: 'Nombre de la suscripción',
subscriptionNameDescription: 'Ingresa un nombre único para esta suscripción de activador',
subscriptionNamePlaceholder: 'Ingrese el nombre de la suscripción...',
subscriptionNameRequired: 'Se requiere el nombre de la suscripción',
subscriptionRequired: 'Se requiere suscripción',
},
triggerSchedule: {
title: 'Horario',
nodeTitle: 'Disparador de horario',
notConfigured: 'No configurado',
useCronExpression: 'Usar expresión cron',
useVisualPicker: 'Usar selector visual',
frequency: {
label: 'FRECUENCIA',
hourly: 'Por hora',
daily: 'diario',
weekly: 'Semanal',
monthly: 'Mensual',
},
selectFrequency: 'Seleccionar frecuencia',
frequencyLabel: 'Frecuencia',
nextExecution: 'Próxima ejecución',
weekdays: 'Días de la semana',
time: 'Tiempo',
cronExpression: 'Expresión Cron',
nextExecutionTime: 'PRÓXIMA HORA DE EJECUCIÓN',
nextExecutionTimes: 'Próximos 5 tiempos de ejecución',
startTime: 'Hora de inicio',
executeNow: 'Ejecución ahora',
selectDateTime: 'Seleccionar fecha y hora',
hours: 'Horas',
minutes: 'Minutos',
onMinute: 'En un minuto',
days: 'Días',
lastDay: 'Último día',
lastDayTooltip: 'No todos los meses tienen 31 días. Usa la opción \'último día\' para seleccionar el último día de cada mes.',
mode: 'Modo',
timezone: 'Zona horaria',
visualConfig: 'Configuración Visual',
monthlyDay: 'Día mensual',
executionTime: 'Tiempo de ejecución',
invalidTimezone: 'Zona horaria no válida',
invalidCronExpression: 'Expresión cron inválida',
noValidExecutionTime: 'No se puede calcular un tiempo de ejecución válido',
executionTimeCalculationError: 'Error al calcular los tiempos de ejecución',
invalidFrequency: 'Frecuencia inválida',
invalidStartTime: 'Hora de inicio no válida',
startTimeMustBeFuture: 'La hora de inicio debe ser en el futuro',
invalidTimeFormat: 'Formato de hora inválido (se esperaba HH:MM AM/PM)',
invalidWeekday: 'Día de la semana no válido: {{weekday}}',
invalidMonthlyDay: 'El día del mes debe estar entre 1 y 31 o "último"',
invalidOnMinute: 'El minuto debe estar entre 0 y 59',
invalidExecutionTime: 'Tiempo de ejecución inválido',
executionTimeMustBeFuture: 'El tiempo de ejecución debe estar en el futuro',
},
triggerWebhook: {
title: 'Disparador de Webhook',
nodeTitle: '🔗 Disparador de Webhook',
configPlaceholder: 'La configuración del activador del webhook se implementará aquí',
webhookUrl: 'URL del webhook',
webhookUrlPlaceholder: 'Haz clic en generar para crear la URL del webhook',
generate: 'Generar',
copy: 'Copiar',
test: 'Prueba',
urlGenerated: 'URL del webhook generada con éxito',
urlGenerationFailed: 'No se pudo generar la URL del webhook',
urlCopied: 'URL copiada al portapapeles',
method: 'Método',
contentType: 'Tipo de contenido',
queryParameters: 'Parámetros de consulta',
headerParameters: 'Parámetros de encabezado',
requestBodyParameters: 'Parámetros del cuerpo de la solicitud',
parameterName: 'Nombre de la variable',
varName: 'Nombre de la variable',
varType: 'Tipo',
varNamePlaceholder: 'Ingrese el nombre de la variable...',
required: 'Requerido',
addParameter: 'Agregar',
addHeader: 'Agregar',
noParameters: 'No se han configurado parámetros',
noQueryParameters: 'No se han configurado parámetros de consulta',
noHeaders: 'No se han configurado encabezados',
noBodyParameters: 'No se configuraron parámetros de cuerpo',
debugUrlTitle: 'Para pruebas, siempre use esta URL',
debugUrlCopy: 'Haz clic para copiar',
debugUrlCopied: '¡Copiado!',
debugUrlPrivateAddressWarning: 'Esta URL parece ser una dirección interna, lo que puede hacer que las solicitudes del webhook fallen. Puede cambiar TRIGGER_URL a una dirección pública.',
errorHandling: 'Manejo de errores',
errorStrategy: 'Manejo de errores',
responseConfiguration: 'Respuesta',
asyncMode: 'Modo Asíncrono',
statusCode: 'Código de estado',
responseBody: 'Cuerpo de la respuesta',
responseBodyPlaceholder: 'Escribe aquí el cuerpo de tu respuesta',
headers: 'Encabezados',
validation: {
webhookUrlRequired: 'Se requiere la URL del webhook',
invalidParameterType: 'Tipo de parámetro inválido "{{type}}" para el parámetro "{{name}}"',
},
},
},
tracing: {
stopBy: 'Pásate por {{user}}',
@@ -1037,6 +1211,18 @@ const translation = {
exportToolTip: 'Exportar variable como archivo',
largeData: 'Datos grandes, vista previa de solo lectura. Exportar para verlo todo.',
largeDataNoExport: 'Datos grandes: solo vista previa parcial',
listening: {
title: 'Escuchando eventos desde los activadores...',
tip: 'Ahora puedes simular disparadores de eventos enviando solicitudes de prueba al endpoint HTTP {{nodeName}} o usarlo como una URL de retorno de llamada para la depuración de eventos en tiempo real. Todos los resultados se pueden ver directamente en el Inspector de Variables.',
tipPlugin: 'Ahora puedes crear eventos en {{- pluginName}} y obtener los resultados de estos eventos en el Inspector de Variables.',
tipSchedule: 'Escuchando eventos de los desencadenadores de programación.\nPróxima ejecución programada: {{nextTriggerTime}}',
tipFallback: 'Esperando eventos desencadenantes entrantes. Las salidas aparecerán aquí.',
defaultNodeName: 'este disparador',
defaultPluginName: 'este activador de plugin',
defaultScheduleTime: 'No configurado',
selectedTriggers: 'disparadores seleccionados',
stopButton: 'Para',
},
},
lastRunTab: 'Última ejecución',
settingsTab: 'Ajustes',
@@ -1054,11 +1240,52 @@ const translation = {
copyLastRun: 'Copiar última ejecución',
noMatchingInputsFound: 'No se encontraron entradas coincidentes de la última ejecución.',
lastOutput: 'Última salida',
lastRunInputsCopied: '{{count}} entrada(s) copiadas de la última ejecución',
},
sidebar: {
exportWarning: 'Exportar la versión guardada actual',
exportWarningDesc: 'Esto exportará la versión guardada actual de tu flujo de trabajo. Si tienes cambios no guardados en el editor, guárdalos primero utilizando la opción de exportar en el lienzo del flujo de trabajo.',
},
publishLimit: {
startNodeTitlePrefix: 'Actualizar a',
startNodeTitleSuffix: 'desbloquear disparadores ilimitados por flujo de trabajo',
startNodeDesc: 'Has alcanzado el límite de 2 desencadenadores por flujo de trabajo para este plan. Actualiza para publicar este flujo de trabajo.',
},
error: {
startNodeRequired: 'Por favor, agregue primero un nodo de inicio antes de {{operation}}',
operations: {
connectingNodes: 'conectando nodos',
addingNodes: 'agregando nodos',
modifyingWorkflow: 'modificando el flujo de trabajo',
updatingWorkflow: 'actualizando flujo de trabajo',
},
},
customWebhook: 'Webhook personalizado',
difyTeam: 'Equipo Dify',
triggerStatus: {
enabled: 'DISPARADOR',
disabled: 'DISPARADOR • DESACTIVADO',
},
entryNodeStatus: {
enabled: 'INICIAR',
disabled: 'INICIAR • DESACTIVADO',
},
onboarding: {
title: 'Selecciona un nodo de inicio para comenzar',
description: 'Los diferentes nodos iniciales tienen distintas capacidades. No te preocupes, siempre puedes cambiarlos más adelante.',
userInputFull: 'Entrada del usuario (nodo de inicio original)',
userInputDescription: 'Nodo de inicio que permite establecer variables de entrada del usuario, con capacidades de herramienta para aplicación web, API de servicio, servidor MCP y flujo de trabajo.',
trigger: 'Disparador',
triggerDescription: 'Los desencadenantes pueden servir como el nodo inicial de un flujo de trabajo, como tareas programadas, webhooks personalizados o integraciones con otras aplicaciones.',
back: 'Atrás',
learnMore: 'Aprender más',
aboutStartNode: 'sobre el nodo de inicio.',
escTip: {
press: 'Prensa',
key: 'esc',
toDismiss: 'despedir',
},
},
}
export default translation