feat: knowledge pipeline (#25360)

Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: twwu <twwu@dify.ai>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: jyong <718720800@qq.com>
Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com>
Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com>
Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: quicksand <quicksandzn@gmail.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com>
Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: zxhlyh <jasonapring2015@outlook.com>
Co-authored-by: Yongtao Huang <yongtaoh2022@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: nite-knite <nkCoding@gmail.com>
Co-authored-by: Hanqing Zhao <sherry9277@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Harry <xh001x@hotmail.com>
This commit is contained in:
-LAN-
2025-09-18 12:49:10 +08:00
committed by GitHub
parent 7dadb33003
commit 85cda47c70
1772 changed files with 102407 additions and 31710 deletions

View File

@@ -334,6 +334,19 @@ const translation = {
'json': 'Código JSON',
'checkbox': 'Checkbox',
'optional': 'opcional',
'placeholder': 'Marcador',
'uploadMethod': 'Método de carga',
'displayName': 'Nombre para mostrar',
'startSelectedOption': 'Iniciar opción seleccionada',
'noDefaultSelected': 'No seleccionar',
'startChecked': 'Empezar marcado',
'placeholderPlaceholder': 'Introduzca el texto que se mostrará cuando el campo esté vacío',
'defaultValuePlaceholder': 'Introduzca el valor predeterminado para rellenar previamente el campo',
'tooltips': 'Información sobre herramientas',
'tooltipsPlaceholder': 'Ingrese el texto útil que se muestra al pasar el cursor sobre la etiqueta',
'unitPlaceholder': 'Mostrar unidades después de números, por ejemplo, fichas',
'showAllSettings': 'Mostrar todas las configuraciones',
'unit': 'Unidad',
},
vision: {
name: 'Visión',

View File

@@ -80,6 +80,7 @@ const translation = {
chatbotUserDescription: 'Cree rápidamente un chatbot basado en LLM con una configuración sencilla. Puedes cambiar a Chatflow más tarde.',
completionUserDescription: 'Cree rápidamente un asistente de IA para tareas de generación de texto con una configuración sencilla.',
dropDSLToCreateApp: 'Suelta el archivo DSL aquí para crear la aplicación',
import: 'Importación',
},
editApp: 'Editar información',
editAppTitle: 'Editar información de la app',

View File

@@ -93,6 +93,7 @@ const translation = {
freeTrialTipPrefix: 'Regístrate y obtén un',
apiRateLimitTooltip: 'El límite de tasa de la API se aplica a todas las solicitudes realizadas a través de la API de Dify, incluidos la generación de texto, las conversaciones de chat, las ejecuciones de flujo de trabajo y el procesamiento de documentos.',
documentsRequestQuotaTooltip: 'Especifica el número total de acciones que un espacio de trabajo puede realizar por minuto dentro de la base de conocimientos, incluyendo la creación, eliminación, actualización de conjuntos de datos, carga de documentos, modificaciones, archivo y consultas a la base de conocimientos. Esta métrica se utiliza para evaluar el rendimiento de las solicitudes a la base de conocimientos. Por ejemplo, si un usuario de Sandbox realiza 10 pruebas consecutivas en un minuto, su espacio de trabajo será temporalmente restringido de realizar las siguientes acciones durante el siguiente minuto: creación de conjuntos de datos, eliminación, actualizaciones y carga o modificaciones de documentos.',
startBuilding: 'Empezar a construir',
},
plans: {
sandbox: {

View File

@@ -494,6 +494,15 @@ const translation = {
modelCredentials: 'Credenciales del modelo',
addCredential: 'Agregar credencial',
configLoadBalancing: 'Configuración de balanceo de carga',
modelCredential: 'Credencial modelo',
selectModelCredential: 'Seleccione una credencial de modelo',
addModel: 'Agregar modelo',
removeModel: 'Eliminar modelo',
customModelCredentials: 'Credenciales de modelo personalizadas',
addNewModelCredential: 'Agregar nueva credencial de modelo',
manageCredentials: 'Administrar credenciales',
customModelCredentialsDeleteTip: 'La credencial está en uso y no se puede eliminar',
editModelCredential: 'Editar credencial de modelo',
},
},
dataSource: {
@@ -593,6 +602,7 @@ const translation = {
viewDoc: 'Ver documentación',
relatedApp: 'aplicaciones vinculadas',
noRelatedApp: 'No hay aplicaciones vinculadas',
pipeline: 'Tubería',
},
voiceInput: {
speaking: 'Habla ahora...',
@@ -748,6 +758,9 @@ const translation = {
placeholder: 'Por favor, describe qué salió mal o cómo podemos mejorar...',
content: 'Contenido de retroalimentación',
},
label: {
optional: '(opcional)',
},
}
export default translation

View File

@@ -92,6 +92,7 @@ const translation = {
configureJinaReader: 'Configurar Jina Reader',
configureWatercrawl: 'Configurar Watercrawl',
waterCrawlNotConfiguredDescription: 'Configura Watercrawl con la clave de API para usarlo.',
running: 'Corriente',
},
cancel: 'Cancelar',
},
@@ -177,6 +178,7 @@ const translation = {
qaSwitchHighQualityTipTitle: 'El formato de preguntas y respuestas requiere un método de indexación de alta calidad',
previewChunkCount: '{{conteo}} Fragmentos estimados',
general: 'General',
qaTip: 'Al usar datos estructurados de preguntas y respuestas, puede crear documentos que combinen preguntas con respuestas. Estos documentos se indexan en función de la parte de la pregunta, lo que permite que el sistema recupere respuestas relevantes en función de la similitud de la consulta.',
},
stepThree: {
creationTitle: '🎉 Conocimiento creado',

View File

@@ -99,6 +99,9 @@ const translation = {
upload_file: 'Subir archivo',
notion: 'Sincronizar desde Notion',
github: 'Sincronizar desde GitHub',
online_document: 'Documento en línea',
local_file: 'Archivo local',
website_crawl: 'Rastreo del sitio web',
},
type: {
book: 'Libro',
@@ -336,6 +339,7 @@ const translation = {
childMaxTokens: 'Niño',
hierarchical: 'Padre-hijo',
parentMaxTokens: 'Padre',
waiting: 'Esperando incrustación...',
},
segment: {
paragraphs: 'Párrafos',

View File

@@ -0,0 +1,154 @@
const translation = {
creation: {
createFromScratch: {
title: 'Canalización de conocimiento en blanco',
description: 'Cree una canalización personalizada desde cero con control total sobre el procesamiento y la estructura de datos.',
},
caution: 'Cautela',
backToKnowledge: 'Volver al conocimiento',
successTip: 'Creó con éxito una base de conocimientos',
createKnowledge: 'Crear conocimiento',
errorTip: 'No se pudo crear una base de conocimiento',
importDSL: 'Importar desde un archivo DSL',
},
templates: {
customized: 'Personalizado',
},
operations: {
preview: 'Vista previa',
details: 'Detalles',
dataSource: 'Fuente de datos',
convert: 'Convertir',
choose: 'Elegir',
process: 'Proceso',
backToDataSource: 'Volver a la fuente de datos',
editInfo: 'Editar información',
exportPipeline: 'Canalización de exportación',
useTemplate: 'Utilice esta canalización de conocimiento',
saveAndProcess: 'Guardar y procesar',
},
deletePipeline: {
content: 'La eliminación de la plantilla de canalización es irreversible.',
title: '¿Está seguro de eliminar esta plantilla de canalización?',
},
publishPipeline: {
success: {
message: 'Publicación de Knowledge Pipeline',
},
error: {
message: 'No se pudo publicar la canalización de conocimiento',
},
},
publishTemplate: {
success: {
learnMore: 'Aprende más',
message: 'Plantilla de canalización publicada',
tip: 'Puede usar esta plantilla en la página de creación.',
},
error: {
message: 'No se pudo publicar la plantilla de canalización',
},
},
exportDSL: {
successTip: 'Exportar DSL de canalización correctamente',
errorTip: 'No se pudo exportar DSL de canalización',
},
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.',
},
testRun: {
steps: {
documentProcessing: 'Procesamiento de documentos',
dataSource: 'Fuente de datos',
},
dataSource: {
localFiles: 'Archivos locales',
},
notion: {
docTitle: 'Documentos de Notion',
title: 'Elegir páginas de nociones',
},
title: 'Ejecución de prueba',
tooltip: 'En el modo de ejecución de prueba, solo se permite importar un documento a la vez para facilitar la depuración y la observación.',
},
inputFieldPanel: {
uniqueInputs: {
title: 'Entradas únicas para cada entrada',
tooltip: 'Las entradas únicas solo son accesibles para la fuente de datos seleccionada y sus nodos posteriores. Los usuarios no tendrán que rellenarlo al elegir otros orígenes de datos. Solo los campos de entrada a los que hacen referencia las variables de origen de datos aparecerán en el primer paso (Origen de datos). Todos los demás campos se mostrarán en el segundo paso (Procesar documentos).',
},
globalInputs: {
title: 'Entradas globales para todas las entradas',
tooltip: 'Las entradas globales se comparten entre todos los nodos. Los usuarios deberán completarlos al seleccionar cualquier fuente de datos. Por ejemplo, campos como el delimitador y la longitud máxima del fragmento se pueden aplicar de manera uniforme en varias fuentes de datos. Solo los campos de entrada a los que hacen referencia las variables de origen de datos aparecen en el primer paso (origen de datos). Todos los demás campos aparecen en el segundo paso (Procesar documentos).',
},
preview: {
stepTwoTitle: 'Documentos de proceso',
stepOneTitle: 'Fuente de datos',
},
error: {
variableDuplicate: 'El nombre de la variable ya existe. Por favor, elija un nombre diferente.',
},
addInputField: 'Agregar campo de entrada',
title: 'Campos de entrada de usuario',
editInputField: 'Editar campo de entrada',
description: 'Los campos de entrada del usuario se utilizan para definir y recopilar las variables necesarias durante el proceso de ejecución de la canalización. Los usuarios pueden personalizar el tipo de campo y configurar de forma flexible el valor de entrada para satisfacer las necesidades de diferentes fuentes de datos o pasos de procesamiento de documentos.',
},
addDocuments: {
steps: {
processingDocuments: 'Procesamiento de documentos',
processDocuments: 'Documentos de proceso',
chooseDatasource: 'Elegir una fuente de datos',
},
stepOne: {
preview: 'Vista previa',
},
stepTwo: {
chunkSettings: 'Configuración de fragmentos',
previewChunks: 'Vista previa de fragmentos',
},
stepThree: {
learnMore: 'Aprende más',
},
characters: 'Caracteres',
title: 'Agregar documentos',
backToDataSource: 'Fuente de datos',
},
documentSettings: {
title: 'Parametrizaciones de documentos',
},
onlineDocument: {},
onlineDrive: {
breadcrumbs: {
allBuckets: 'Todos los depósitos de Cloud Storage',
allFiles: 'Todos los archivos',
searchPlaceholder: 'Buscar archivos...',
},
emptySearchResult: 'No se encontraron artículos',
resetKeywords: 'Restablecer palabras clave',
emptyFolder: 'Esta carpeta está vacía',
notSupportedFileType: 'Este tipo de archivo no es compatible',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Confirmación',
content: 'Esta acción es permanente. No podrá volver al método anterior. Por favor, confirme para convertir.',
},
title: 'Convertir en canalización de conocimiento',
successMessage: 'Convertir correctamente el conjunto de datos en una canalización',
warning: 'Esta acción no se puede deshacer.',
errorMessage: 'No se pudo convertir el conjunto de datos en una canalización',
descriptionChunk2: '— un enfoque más abierto y flexible con acceso a complementos de nuestro mercado. Esto aplicará el nuevo método de procesamiento a todos los documentos futuros.',
descriptionChunk1: 'Ahora puede convertir su base de conocimientos existente para usar la canalización de conocimientos para el procesamiento de documentos',
},
knowledgeDescription: 'Descripción del conocimiento',
knowledgeNameAndIcon: 'Nombre e icono de conocimiento',
inputField: 'Campo de entrada',
knowledgeNameAndIconPlaceholder: 'Ingrese el nombre de la base de conocimientos',
knowledgeDescriptionPlaceholder: 'Describa lo que hay en esta base de conocimientos. Una descripción detallada permite a la IA acceder al contenido del conjunto de datos con mayor precisión. Si está vacío, Dify usará la estrategia de golpe predeterminada. (Opcional)',
pipelineNameAndIcon: 'Nombre e icono de la tubería',
knowledgePermissions: 'Permisos',
editPipelineInfo: 'Editar información de canalización',
}
export default translation

View File

@@ -37,6 +37,14 @@ const translation = {
helpText: 'Aprenda a escribir una buena descripción del conjunto de datos.',
upgradeHighQualityTip: 'Una vez que se actualiza al modo de alta calidad, no está disponible volver al modo económico',
searchModel: 'Buscar modelo',
chunkStructure: {
learnMore: 'Aprende más',
description: 'sobre la estructura de fragmentos.',
title: 'Estructura de fragmentos',
},
numberOfKeywords: 'Número de palabras clave',
nameAndIcon: 'Nombre e icono',
onSearchResults: 'Ningún miembro coincide con su consulta de búsqueda.\nIntente su búsqueda nuevamente.',
},
}

View File

@@ -42,6 +42,10 @@ const translation = {
},
change: 'Cambiar',
changeRetrievalMethod: 'Cambiar método de recuperación',
keyword_search: {
title: 'Índice invertido',
description: 'El índice invertido es una estructura utilizada para una recuperación eficiente. Organizado por términos, cada término apunta a documentos o páginas web que lo contienen.',
},
},
docsFailedNotice: 'no se pudieron indexar los documentos',
retry: 'Reintentar',
@@ -149,6 +153,8 @@ const translation = {
chunkingMode: {
parentChild: 'Padre-hijo',
general: 'General',
graph: 'gráfico',
qa: 'Preguntas y respuestas',
},
parentMode: {
fullDoc: 'Documento completo',
@@ -217,6 +223,9 @@ const translation = {
addMetadata: 'Agregar Metadatos',
},
embeddingModelNotAvailable: 'El modelo de embeddings no está disponible.',
externalKnowledgeBase: 'Base de conocimientos externa',
createFromPipeline: 'Crear desde Knowledge Pipeline',
updated: 'Actualizado',
}
export default translation

View File

@@ -1,4 +1,8 @@
const translation = {
sidebar: {
collapseSidebar: 'Contraer barra lateral',
expandSidebar: 'Expandir barra lateral',
},
}
export default translation

View File

@@ -0,0 +1,38 @@
const translation = {
common: {
publishAsPipeline: {
name: 'Nombre e icono de la tubería',
description: 'Descripción del conocimiento',
namePlaceholder: 'Ingrese el nombre de esta canalización de conocimiento. (Obligatorio)',
descriptionPlaceholder: 'Ingrese la descripción de este canal de conocimiento. (Opcional)',
},
reRun: 'Repetición',
processing: 'Tratamiento',
publishAs: 'Publicar como una canalización de conocimiento',
confirmPublish: 'Confirmar publicación',
goToAddDocuments: 'Ir a agregar documentos',
confirmPublishContent: 'Después de publicar correctamente la canalización de conocimiento, la estructura de fragmentos de esta base de conocimiento no se puede modificar. ¿Estás seguro de que quieres publicarlo?',
preparingDataSource: 'Preparar el origen de datos',
testRun: 'Ejecución de prueba',
},
inputField: {
manage: 'Gestionar',
create: 'Crear campo de entrada de usuario',
},
publishToast: {
title: 'Este pipeline aún no se ha publicado',
desc: 'Cuando la canalización no se publica, puede modificar la estructura de fragmentos en el nodo de la base de conocimiento y la orquestación y los cambios de la canalización se guardarán automáticamente como borrador.',
},
result: {
resultPreview: {
loading: 'Tratamiento... Espera',
viewDetails: 'Ver detalles',
error: 'Error ocurrido durante la ejecución',
},
},
ragToolSuggestions: {
title: 'Sugerencias para el GAR',
},
}
export default translation

View File

@@ -17,6 +17,7 @@ const translation = {
business: 'Negocio',
other: 'Otro',
productivity: 'Productividad',
rag: 'TRAPO',
},
allTags: 'Todas las etiquetas',
searchTags: 'Etiquetas de búsqueda',

View File

@@ -6,6 +6,7 @@ const translation = {
tools: 'Herramientas',
agents: 'Estrategias de los agentes',
models: 'Modelos',
datasources: 'Fuentes de datos',
},
categorySingle: {
bundle: 'Haz',
@@ -13,6 +14,7 @@ const translation = {
tool: 'Herramienta',
model: 'Modelo',
agent: 'Estrategia del agente',
datasource: 'Fuente de datos',
},
list: {
source: {
@@ -49,21 +51,27 @@ const translation = {
paramsTip1: 'Controla los parámetros de inferencia de LLM.',
settings: 'CONFIGURACIÓN DEL USUARIO',
unsupportedContent2: 'Haga clic para cambiar de versión.',
descriptionPlaceholder: 'Breve descripción del propósito de la herramienta, por ejemplo, obtener la temperatura para una ubicación específica.',
empty: 'Haga clic en el botón \'+\' para agregar herramientas. Puede agregar varias herramientas.',
paramsTip2: 'Cuando \'Auto\' está desactivado, se utiliza el valor predeterminado.',
descriptionPlaceholder:
'Breve descripción del propósito de la herramienta, por ejemplo, obtener la temperatura para una ubicación específica.',
empty:
'Haga clic en el botón \'+\' para agregar herramientas. Puede agregar varias herramientas.',
paramsTip2:
'Cuando \'Auto\' está desactivado, se utiliza el valor predeterminado.',
uninstalledTitle: 'Herramienta no instalada',
descriptionLabel: 'Descripción de la herramienta',
unsupportedContent: 'La versión del plugin instalado no proporciona esta acción.',
unsupportedContent:
'La versión del plugin instalado no proporciona esta acción.',
auto: 'Auto',
title: 'Agregar herramienta',
placeholder: 'Seleccione una herramienta...',
uninstalledContent: 'Este plugin se instala desde el repositorio local/GitHub. Úselo después de la instalación.',
uninstalledContent:
'Este plugin se instala desde el repositorio local/GitHub. Úselo después de la instalación.',
unsupportedTitle: 'Acción no admitida',
params: 'CONFIGURACIÓN DE RAZONAMIENTO',
uninstalledLink: 'Administrar en Plugins',
toolSetting: 'Configuraciones de la herramienta',
unsupportedMCPTool: 'La versión actual del plugin de estrategia del agente seleccionado no es compatible con las herramientas MCP.',
unsupportedMCPTool:
'La versión actual del plugin de estrategia del agente seleccionado no es compatible con las herramientas MCP.',
},
endpointDeleteContent: '¿Te gustaría eliminar {{nombre}}?',
endpointDisableTip: 'Deshabilitar punto de conexión',
@@ -73,16 +81,19 @@ const translation = {
serviceOk: 'Servicio OK',
endpointDisableContent: '¿Te gustaría desactivar {{name}}?',
switchVersion: 'Versión del interruptor',
endpointsTip: 'Este complemento proporciona funcionalidades específicas a través de puntos finales, y puede configurar varios conjuntos de puntos finales para el espacio de trabajo actual.',
endpointsTip:
'Este complemento proporciona funcionalidades específicas a través de puntos finales, y puede configurar varios conjuntos de puntos finales para el espacio de trabajo actual.',
configureModel: 'Configurar modelo',
actionNum: '{{num}} {{acción}} INCLUIDO',
configureTool: 'Herramienta de configuración',
endpointModalDesc: 'Una vez configurado, se pueden utilizar las funciones proporcionadas por el complemento a través de los puntos finales de la API.',
endpointModalDesc:
'Una vez configurado, se pueden utilizar las funciones proporcionadas por el complemento a través de los puntos finales de la API.',
modelNum: '{{num}} MODELOS INCLUIDOS',
endpoints: 'Extremos',
endpointModalTitle: 'Punto de conexión de configuración',
endpointsDocLink: 'Ver el documento',
endpointsEmpty: 'Haga clic en el botón \'+\' para agregar un punto de conexión',
endpointsEmpty:
'Haga clic en el botón \'+\' para agregar un punto de conexión',
configureApp: 'Configurar la aplicación',
deprecation: {
reason: {
@@ -90,9 +101,12 @@ const translation = {
noMaintainer: 'sin mantenedor',
businessAdjustments: 'ajustes comerciales',
},
noReason: 'Este complemento ha sido descontinuado y ya no se actualizará.',
onlyReason: 'Este complemento ha sido desaprobado debido a {{deprecatedReason}} y ya no se actualizará.',
fullMessage: 'Este complemento ha sido descontinuado debido a {{deprecatedReason}}, y ya no será actualizado. Por favor, utilice <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> en su lugar.',
noReason:
'Este complemento ha sido descontinuado y ya no se actualizará.',
onlyReason:
'Este complemento ha sido desaprobado debido a {{deprecatedReason}} y ya no se actualizará.',
fullMessage:
'Este complemento ha sido descontinuado debido a {{deprecatedReason}}, y ya no será actualizado. Por favor, utilice <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> en su lugar.',
},
},
debugInfo: {
@@ -132,20 +146,23 @@ const translation = {
uploadingPackage: 'Subiendo {{packageName}}...',
installComplete: 'Instalación completa',
installFailed: 'Error de instalación',
fromTrustSource: 'Por favor, asegúrate de que sólo instalas plugins de una <trustSource>fuente de confianza</trustSource>.',
fromTrustSource:
'Por favor, asegúrate de que sólo instalas plugins de una <trustSource>fuente de confianza</trustSource>.',
installedSuccessfullyDesc: 'El plugin se ha instalado correctamente.',
back: 'Atrás',
installFailedDesc: 'El plugin ha fallado en la instalación.',
installing: 'Instalar...',
next: 'Próximo',
readyToInstallPackages: 'A punto de instalar los siguientes plugins {{num}}',
readyToInstallPackages:
'A punto de instalar los siguientes plugins {{num}}',
cancel: 'Cancelar',
uploadFailed: 'Error de carga',
install: 'Instalar',
pluginLoadError: 'Error de carga del plugin',
pluginLoadErrorDesc: 'Este plugin no se instalará',
readyToInstall: 'A punto de instalar el siguiente plugin',
dropPluginToInstall: 'Suelte el paquete del complemento aquí para instalarlo',
dropPluginToInstall:
'Suelte el paquete del complemento aquí para instalarlo',
readyToInstallPackage: 'A punto de instalar el siguiente plugin',
installedSuccessfully: 'Instalación exitosa',
installWarning: 'Este plugin no está permitido para instalar.',
@@ -155,7 +172,8 @@ const translation = {
updatePlugin: 'Actualizar plugin desde GitHub',
selectPackagePlaceholder: 'Por favor, seleccione un paquete',
installedSuccessfully: 'Instalación exitosa',
installNote: 'Por favor, asegúrate de que sólo instalas plugins de una fuente de confianza.',
installNote:
'Por favor, asegúrate de que sólo instalas plugins de una fuente de confianza.',
gitHubRepo: 'Repositorio de GitHub',
selectPackage: 'Seleccionar paquete',
selectVersion: 'Seleccionar versión',
@@ -173,9 +191,12 @@ const translation = {
usedInApps: 'Usado en aplicaciones {{num}}',
},
error: {
fetchReleasesError: 'No se pueden recuperar las versiones. Por favor, inténtelo de nuevo más tarde.',
noReleasesFound: 'No se han encontrado versiones. Compruebe el repositorio de GitHub o la URL de entrada.',
inValidGitHubUrl: 'URL de GitHub no válida. Introduzca una URL válida en el formato: https://github.com/owner/repo',
fetchReleasesError:
'No se pueden recuperar las versiones. Por favor, inténtelo de nuevo más tarde.',
noReleasesFound:
'No se han encontrado versiones. Compruebe el repositorio de GitHub o la URL de entrada.',
inValidGitHubUrl:
'URL de GitHub no válida. Introduzca una URL válida en el formato: https://github.com/owner/repo',
},
marketplace: {
sortOption: {
@@ -199,10 +220,13 @@ const translation = {
task: {
installing: 'Instalando plugins {{installingLength}}, 0 hecho.',
clearAll: 'Borrar todo',
installingWithSuccess: 'Instalando plugins {{installingLength}}, {{successLength}} éxito.',
installingWithSuccess:
'Instalando plugins {{installingLength}}, {{successLength}} éxito.',
installedError: 'Los complementos {{errorLength}} no se pudieron instalar',
installError: 'Los complementos {{errorLength}} no se pudieron instalar, haga clic para ver',
installingWithError: 'Instalando plugins {{installingLength}}, {{successLength}} éxito, {{errorLength}} fallido',
installError:
'Los complementos {{errorLength}} no se pudieron instalar, haga clic para ver',
installingWithError:
'Instalando plugins {{installingLength}}, {{successLength}} éxito, {{errorLength}} fallido',
},
fromMarketplace: 'De Marketplace',
endpointsEnabled: '{{num}} conjuntos de puntos finales habilitados',
@@ -221,7 +245,8 @@ const translation = {
metadata: {
title: 'Complementos',
},
difyVersionNotCompatible: 'La versión actual de Dify no es compatible con este plugin, por favor actualiza a la versión mínima requerida: {{minimalDifyVersion}}',
difyVersionNotCompatible:
'La versión actual de Dify no es compatible con este plugin, por favor actualiza a la versión mínima requerida: {{minimalDifyVersion}}',
requestAPlugin: 'Solicitar un plugin',
publishPlugins: 'Publicar plugins',
auth: {
@@ -241,15 +266,21 @@ const translation = {
custom: 'Personalizado',
useOAuth: 'Usa OAuth',
setDefault: 'Establecer como predeterminado',
useApiAuthDesc: 'Después de configurar las credenciales, todos los miembros dentro del espacio de trabajo pueden usar esta herramienta al orquestar aplicaciones.',
useApiAuthDesc:
'Después de configurar las credenciales, todos los miembros dentro del espacio de trabajo pueden usar esta herramienta al orquestar aplicaciones.',
saveOnly: 'Guardar solo',
clientInfo: 'Como no se encontraron secretos de cliente del sistema para este proveedor de herramientas, se requiere configurarlo manualmente. Para redirect_uri, por favor utiliza',
clientInfo:
'Como no se encontraron secretos de cliente del sistema para este proveedor de herramientas, se requiere configurarlo manualmente. Para redirect_uri, por favor utiliza',
oauthClientSettings: 'Configuración del cliente OAuth',
default: 'Predeterminado',
customCredentialUnavailable: 'Las credenciales personalizadas no están disponibles actualmente.',
customCredentialUnavailable:
'Las credenciales personalizadas no están disponibles actualmente.',
unavailable: 'No disponible',
credentialUnavailable: 'Credenciales actualmente no disponibles. Por favor, contacte al administrador.',
credentialUnavailable:
'Credenciales actualmente no disponibles. Por favor, contacte al administrador.',
credentialUnavailableInButton: 'Credencial no disponible',
emptyAuth: 'Configure la autenticación',
connectedWorkspace: 'Espacio de trabajo conectado',
},
deprecated: 'Obsoleto',
autoUpdate: {
@@ -260,8 +291,10 @@ const translation = {
},
fixOnly: {
name: 'Arreglar Solo',
selectedDescription: 'Actualización automática solo para versiones de parches',
description: 'Actualización automática solo para versiones de parche (por ejemplo, 1.0.1 → 1.0.2). Los cambios de versión menor no activarán actualizaciones.',
selectedDescription:
'Actualización automática solo para versiones de parches',
description:
'Actualización automática solo para versiones de parche (por ejemplo, 1.0.1 → 1.0.2). Los cambios de versión menor no activarán actualizaciones.',
},
latest: {
selectedDescription: 'Siempre actualiza a la última versión',
@@ -276,7 +309,8 @@ const translation = {
},
upgradeModePlaceholder: {
exclude: 'Los plugins seleccionados no se actualizarán automáticamente',
partial: 'Solo los plugins seleccionados se actualizarán automáticamente. Actualmente no hay plugins seleccionados, por lo que no se actualizarán automáticamente.',
partial:
'Solo los plugins seleccionados se actualizarán automáticamente. Actualmente no hay plugins seleccionados, por lo que no se actualizarán automáticamente.',
},
operation: {
clearAll: 'Borrar todo',
@@ -286,7 +320,8 @@ const translation = {
title: 'Degradar plugin',
exclude: 'Excluir de la actualización automática',
downgrade: 'De todas formas, degradar',
description: 'La actualización automática está actualmente habilitada para este complemento. Downgradear la versión puede hacer que tus cambios se sobrescriban durante la próxima actualización automática.',
description:
'La actualización automática está actualmente habilitada para este complemento. Downgradear la versión puede hacer que tus cambios se sobrescriban durante la próxima actualización automática.',
},
noPluginPlaceholder: {
noFound: 'No se encontraron complementos',
@@ -297,9 +332,12 @@ const translation = {
specifyPluginsToUpdate: 'Especifique qué complementos actualizar',
updateTime: 'Actualizar tiempo',
updateSettings: 'Actualizar configuraciones',
excludeUpdate: 'Los siguientes {{num}} complementos no se actualizarán automáticamente',
partialUPdate: 'Solo los siguientes {{num}} complementos se actualizarán automáticamente',
changeTimezone: 'Para cambiar la zona horaria, ve a <setTimezone>Configuración</setTimezone>.',
excludeUpdate:
'Los siguientes {{num}} complementos no se actualizarán automáticamente',
partialUPdate:
'Solo los siguientes {{num}} complementos se actualizarán automáticamente',
changeTimezone:
'Para cambiar la zona horaria, ve a <setTimezone>Configuración</setTimezone>.',
automaticUpdates: 'Actualizaciones automáticas',
},
}

View File

@@ -244,6 +244,7 @@ const translation = {
publishTip: 'App no publicada. Publícala primero.',
},
},
allTools: 'Todas las herramientas',
}
export default translation

View File

@@ -86,7 +86,6 @@ const translation = {
limit: 'El paralelismo se limita a {{num}} ramas.',
depthLimit: 'Límite de capa de anidamiento paralelo de capas {{num}}',
},
parallelRun: 'Ejecución paralela',
disconnect: 'Desconectar',
jumpToNode: 'Saltar a este nodo',
addParallelNode: 'Agregar nodo paralelo',
@@ -218,6 +217,8 @@ const translation = {
back: 'Atrás',
iteration: 'Iteración',
loop: 'Bucle',
preparingDataSource: 'Preparar el origen de datos',
reRun: 'Repetición',
},
tabs: {
'tools': 'Herramientas',
@@ -236,6 +237,8 @@ const translation = {
'blocks': 'Nodos',
'addAll': 'Agregar todo',
'allAdded': 'Todo añadido',
'sources': 'Fuentes',
'searchDataSource': 'Fuente de datos de búsqueda',
},
blocks: {
'start': 'Inicio',
@@ -260,6 +263,8 @@ const translation = {
'loop-end': 'Salir del bucle',
'loop': 'Bucle',
'loop-start': 'Inicio del bucle',
'knowledge-index': 'Knowledge base',
'datasource': 'Fuente de datos',
},
blocksAbout: {
'start': 'Define los parámetros iniciales para iniciar un flujo de trabajo',
@@ -282,6 +287,8 @@ const translation = {
'agent': 'Invocar modelos de lenguaje de gran tamaño para responder preguntas o procesar el lenguaje natural',
'loop-end': 'Equivalente a "romper". Este nodo no tiene elementos de configuración. Cuando el cuerpo del bucle alcanza este nodo, el bucle termina.',
'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',
},
operator: {
zoomIn: 'Acercar',
@@ -382,6 +389,7 @@ const translation = {
input: 'Valor de entrada',
variable: 'Usa la variable',
},
inputVars: 'Variables de entrada',
},
start: {
required: 'requerido',
@@ -916,6 +924,27 @@ const translation = {
variableName: 'Nombre de Variable',
input: 'Entrada',
},
dataSource: {
supportedFileFormats: 'Formatos de archivo compatibles',
add: 'Agregar origen de datos',
supportedFileFormatsPlaceholder: 'Extensión de archivo, e.g. doc',
},
knowledgeBase: {
chunkStructureTip: {
learnMore: 'Aprende más',
title: 'Elija una estructura de fragmentos',
message: 'La base de conocimientos de Dify admite tres estructuras de fragmentación: General, Padre-hijo y Preguntas y respuestas. Cada base de conocimiento solo puede tener una estructura. La salida del nodo anterior debe alinearse con la estructura de fragmentos seleccionada. Tenga en cuenta que la elección de la estructura de fragmentación afecta a los métodos de índice disponibles.',
},
chooseChunkStructure: 'Elegir una estructura de fragmentos',
indexMethodIsRequired: 'Se requiere el método de índice',
aboutRetrieval: 'sobre el método de recuperación.',
changeChunkStructure: 'Cambiar la estructura de fragmentos',
retrievalSettingIsRequired: 'Se requiere configuración de recuperación',
chunkStructure: 'Estructura de fragmentos',
chunkIsRequired: 'Se requiere una estructura de fragmentos',
chunksInput: 'Trozo',
chunksInputTip: 'La variable de entrada del nodo de la base de conocimientos es Chunks. El tipo de variable es un objeto con un esquema JSON específico que debe ser consistente con la estructura del fragmento seleccionado.',
},
},
tracing: {
stopBy: 'Pásate por {{user}}',
@@ -986,6 +1015,10 @@ const translation = {
clearNode: 'Limpiar variable en caché',
emptyTip: 'Después de recorrer un nodo en el lienzo o ejecutar un nodo paso a paso, puedes ver el valor actual de la variable del nodo en Inspección de Variables.',
edited: 'Editado',
export: 'exportar',
exportToolTip: 'Exportar variable como archivo',
largeData: 'Datos grandes, vista previa de solo lectura. Exportar para verlo todo.',
largeDataNoExport: 'Datos grandes: solo vista previa parcial',
},
lastRunTab: 'Última ejecución',
settingsTab: 'Ajustes',