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

@@ -281,7 +281,7 @@ const translation = {
'addModalTitle': 'Add Input Field',
'editModalTitle': 'Edit Input Field',
'description': 'Setting for variable {{varName}}',
'fieldType': 'Field type',
'fieldType': 'Field Type',
'string': 'Short Text',
'text-input': 'Short Text',
'paragraph': 'Paragraph',
@@ -289,7 +289,7 @@ const translation = {
'number': 'Number',
'notSet': 'Not set, try typing {{input}} in the prefix prompt',
'stringTitle': 'Form text box options',
'maxLength': 'Max length',
'maxLength': 'Max Length',
'options': 'Options',
'addOption': 'Add option',
'apiBasedVar': 'API-based Variable',
@@ -338,6 +338,19 @@ const translation = {
'checkbox': 'Checkbox',
'jsonSchema': 'Schéma JSON',
'json': 'Code JSON',
'unit': 'Unité',
'placeholder': 'Espace réservé',
'startChecked': 'Démarrer vérifié',
'displayName': 'Nom daffichage',
'startSelectedOption': 'Démarrer loption sélectionnée',
'uploadMethod': 'Méthode de téléchargement',
'showAllSettings': 'Afficher tous les paramètres',
'defaultValuePlaceholder': 'Entrez la valeur par défaut pour pré-remplir le champ',
'placeholderPlaceholder': 'Saisissez le texte à afficher lorsque le champ est vide',
'tooltips': 'Infobulles',
'tooltipsPlaceholder': 'Entrez le texte utile affiché lorsque vous passez la souris sur létiquette',
'unitPlaceholder': 'Affichage des unités après les nombres, par exemple les jetons',
'noDefaultSelected': 'Ne sélectionnez pas',
},
vision: {
name: 'Vision',

View File

@@ -80,6 +80,7 @@ const translation = {
optional: 'Optionnel',
advancedShortDescription: 'Workflow amélioré pour conversations multi-tours',
dropDSLToCreateApp: 'Déposez le fichier DSL ici pour créer une application',
import: 'Importation',
},
editApp: 'Modifier les informations',
editAppTitle: 'Modifier les informations de l\'application',

View File

@@ -93,6 +93,7 @@ const translation = {
apiRateLimitTooltip: 'La limite de taux de l\'API s\'applique à toutes les demandes effectuées via l\'API Dify, y compris la génération de texte, les conversations de chat, les exécutions de flux de travail et le traitement de documents.',
documents: '{{count,number}} Documents de connaissance',
documentsRequestQuotaTooltip: 'Spécifie le nombre total d\'actions qu\'un espace de travail peut effectuer par minute dans la base de connaissances, y compris la création, la suppression, les mises à jour de jeux de données, le téléchargement de documents, les modifications, l\'archivage et les requêtes de la base de connaissances. Ce paramètre est utilisé pour évaluer les performances des requêtes de la base de connaissances. Par exemple, si un utilisateur de Sandbox effectue 10 tests de validité consécutifs en une minute, son espace de travail sera temporairement restreint dans l\'exécution des actions suivantes pendant la minute suivante : création, suppression, mises à jour de jeux de données, et téléchargements ou modifications de documents.',
startBuilding: 'Commencez à construire',
},
plans: {
sandbox: {

View File

@@ -491,6 +491,15 @@ const translation = {
unAuthorized: 'Non autorisé',
specifyModelCredentialTip: 'Utilisez un identifiant de modèle configuré.',
providerManagedTip: 'La configuration actuelle est hébergée par le fournisseur.',
customModelCredentials: 'Informations didentification du modèle personnalisé',
manageCredentials: 'Gérer les informations didentification',
modelCredential: 'Références du modèle',
addModel: 'Ajouter un modèle',
addNewModelCredential: 'Ajouter de nouvelles informations didentification de modèle',
selectModelCredential: 'Sélectionnez les informations didentification dun modèle',
customModelCredentialsDeleteTip: 'Les informations didentification sont en cours dutilisation et ne peuvent pas être supprimées',
removeModel: 'Supprimer le modèle',
editModelCredential: 'Modifier les informations didentification du modèle',
},
},
dataSource: {
@@ -590,6 +599,7 @@ const translation = {
viewDoc: 'Voir la documentation',
relatedApp: 'applications liées',
noRelatedApp: 'Pas dapplications liées',
pipeline: 'Pipeline',
},
voiceInput: {
speaking: 'Parle maintenant...',
@@ -749,6 +759,9 @@ const translation = {
placeholder: 'Veuillez décrire ce qui n\'a pas fonctionné ou comment nous pourrions nous améliorer...',
subtitle: 'Veuillez nous dire ce qui n\'a pas fonctionné avec cette réponse.',
},
label: {
optional: '(facultatif)',
},
}
export default translation

View File

@@ -89,6 +89,7 @@ const translation = {
configureWatercrawl: 'Configurer Watercrawl',
waterCrawlNotConfigured: 'Watercrawl n\'est pas configuré',
configureFirecrawl: 'Configurer Firecrawl',
running: 'Course',
},
cancel: 'Annuler',
},
@@ -174,6 +175,7 @@ const translation = {
previewChunkTip: 'Cliquez sur le bouton « Preview Chunk » sur la gauche pour charger laperçu',
parentChildChunkDelimiterTip: 'Un délimiteur est le caractère utilisé pour séparer le texte. \\n est recommandé pour diviser les blocs parents en petits blocs enfants. Vous pouvez également utiliser des délimiteurs spéciaux définis par vous-même.',
generalTip: 'Mode général de segmentation du texte, les morceaux récupérés et rappelés sont les mêmes.',
qaTip: 'Lorsque vous utilisez des données de questions-réponses structurées, vous pouvez créer des documents qui associent des questions et des réponses. Ces documents sont indexés en fonction de la partie question, ce qui permet au système de récupérer des réponses pertinentes en fonction de la similarité des requêtes.',
},
stepThree: {
creationTitle: '🎉 Connaissance créée',

View File

@@ -100,6 +100,9 @@ const translation = {
upload_file: 'Télécharger le fichier',
notion: 'Synchroniser le formulaire depuis Notion',
github: 'Synchroniser à partir de Github',
local_file: 'Fichier local',
online_document: 'Document en ligne',
website_crawl: 'Exploration du site Web',
},
type: {
book: 'Livre',
@@ -337,6 +340,7 @@ const translation = {
hierarchical: 'Parent-enfant',
pause: 'Pause',
parentMaxTokens: 'Parent',
waiting: 'En attente d\'incorporation...',
},
segment: {
paragraphs: 'Paragraphes',

View File

@@ -0,0 +1,154 @@
const translation = {
creation: {
createFromScratch: {
title: 'Pipeline de connaissances vide',
description: 'Créez un pipeline personnalisé à partir de zéro avec un contrôle total sur le traitement et la structure des données.',
},
caution: 'Prudence',
createKnowledge: 'Créer des connaissances',
successTip: 'Création réussie dune base de connaissances',
backToKnowledge: 'Retour à la page Connaissances',
importDSL: 'Importation à partir dun fichier DSL',
errorTip: 'Échec de la création dune base de connaissances',
},
templates: {
customized: 'Personnalisé',
},
operations: {
preview: 'Aperçu',
process: 'Processus',
convert: 'Convertir',
exportPipeline: 'Pipeline dexportation',
choose: 'Choisir',
details: 'Détails',
saveAndProcess: 'Enregistrer et traiter',
editInfo: 'Modifier les infos',
useTemplate: 'Utiliser ce pipeline de connaissances',
dataSource: 'Source des données',
backToDataSource: 'Retour à la source de données',
},
deletePipeline: {
title: 'Êtes-vous sûr de supprimer ce modèle de pipeline ?',
content: 'La suppression du modèle de pipeline est irréversible.',
},
publishPipeline: {
success: {
message: 'Pipeline de connaissances publié',
},
error: {
message: 'Échec de la publication du pipeline de connaissances',
},
},
publishTemplate: {
success: {
learnMore: 'Pour en savoir plus',
tip: 'Vous pouvez utiliser ce modèle sur la page de création.',
message: 'Modèle de pipeline publié',
},
error: {
message: 'Échec de la publication du modèle de pipeline',
},
},
exportDSL: {
errorTip: 'Echec de lexportation du DSL du pipeline',
successTip: 'Pipeline dexportation DSL réussi',
},
details: {
structure: 'Structure',
structureTooltip: 'La structure par blocs détermine la façon dont les documents sont divisés et indexés (en proposant les modes Général, Parent-Enfant et Q&R) et est unique à chaque base de connaissances.',
},
testRun: {
steps: {
dataSource: 'Source des données',
documentProcessing: 'Traitement des documents',
},
dataSource: {
localFiles: 'Fichiers locaux',
},
notion: {
title: 'Choisissez les pages Notion',
docTitle: 'Docs Notion',
},
title: 'Série dessai',
tooltip: 'En mode de test, un seul document peut être importé à la fois pour faciliter le débogage et lobservation.',
},
inputFieldPanel: {
uniqueInputs: {
title: 'Entrées uniques pour chaque entrée',
tooltip: 'Les entrées uniques ne sont accessibles quà la source de données sélectionnée et à ses nœuds en aval. Les utilisateurs nauront pas besoin de le remplir lorsquils choisiront dautres sources de données. Seuls les champs de saisie référencés par les variables de source de données apparaîtront dans la première étape (Source de données). Tous les autres champs seront affichés à la deuxième étape (Traiter les documents).',
},
globalInputs: {
title: 'Entrées globales pour toutes les entrées',
tooltip: 'Les entrées globales sont partagées entre tous les nœuds. Les utilisateurs devront les remplir lors de la sélection dune source de données. Par exemple, des champs tels que le délimiteur et la longueur maximale des morceaux peuvent être appliqués uniformément à plusieurs sources de données. Seuls les champs de saisie référencés par les variables de source de données apparaissent dans la première étape (Source de données). Tous les autres champs saffichent à la deuxième étape (Traiter les documents).',
},
preview: {
stepTwoTitle: 'Documents de processus',
stepOneTitle: 'Source des données',
},
error: {
variableDuplicate: 'Le nom de la variable existe déjà. Veuillez choisir un autre nom.',
},
editInputField: 'Modifier le champ de saisie',
title: 'Champs de saisie utilisateur',
addInputField: 'Ajouter un champ de saisie',
description: 'Les champs de saisie utilisateur sont utilisés pour définir et collecter les variables requises pendant le processus dexécution du pipeline. Les utilisateurs peuvent personnaliser le type de champ et configurer de manière flexible la valeur dentrée pour répondre aux besoins des différentes sources de données ou étapes de traitement des documents.',
},
addDocuments: {
steps: {
processDocuments: 'Documents de processus',
processingDocuments: 'Traitement des documents',
chooseDatasource: 'Choisissez une source de données',
},
stepOne: {
preview: 'Aperçu',
},
stepTwo: {
previewChunks: 'Prévisualiser les morceaux',
chunkSettings: 'Paramètres de bloc',
},
stepThree: {
learnMore: 'Pour en savoir plus',
},
characters: 'caractères',
title: 'Ajouter des documents',
backToDataSource: 'Source des données',
},
documentSettings: {
title: 'Paramètres du document',
},
onlineDocument: {},
onlineDrive: {
breadcrumbs: {
searchPlaceholder: 'Rechercher des fichiers...',
allBuckets: 'Tous les compartiments de stockage dans le cloud',
allFiles: 'Tous les fichiers',
},
notSupportedFileType: 'Ce type de fichier nest pas pris en charge',
emptySearchResult: 'Aucun objet na été trouvé',
emptyFolder: 'Ce dossier est vide',
resetKeywords: 'Réinitialiser les mots-clés',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Confirmation',
content: 'Cette action est permanente. Vous ne pourrez pas revenir à la méthode précédente. Veuillez confirmer la conversion.',
},
title: 'Convertir vers le pipeline de connaissances',
warning: 'Cette action ne peut pas être annulée.',
successMessage: 'Conversion réussie du jeu de données en pipeline',
errorMessage: 'Échec de la conversion du jeu de données en pipeline',
descriptionChunk2: '— une approche plus ouverte et plus flexible avec un accès aux plugins de notre Marketplace. Cela appliquera la nouvelle méthode de traitement à tous les documents futurs.',
descriptionChunk1: 'Vous pouvez désormais convertir votre base de connaissances existante pour utiliser le pipeline de connaissances pour le traitement des documents',
},
knowledgePermissions: 'Autorisations',
editPipelineInfo: 'Modifier les informations sur le pipeline',
knowledgeNameAndIconPlaceholder: 'Entrez le nom de la base de connaissances',
pipelineNameAndIcon: 'Nom et icône du pipeline',
knowledgeDescription: 'Description des connaissances',
knowledgeNameAndIcon: 'Nom et icône de la connaissance',
inputField: 'Champ de saisie',
knowledgeDescriptionPlaceholder: 'Décrivez le contenu de cette base de connaissances. Une description détaillée permet à lIA daccéder plus précisément au contenu de lensemble de données. Sil est vide, Dify utilisera la stratégie daccès par défaut. (Facultatif)',
}
export default translation

View File

@@ -37,6 +37,14 @@ const translation = {
upgradeHighQualityTip: 'Une fois la mise à niveau vers le mode Haute Qualité, il nest pas possible de revenir au mode Économique',
helpText: 'Apprenez à rédiger une bonne description de jeu de données.',
searchModel: 'Rechercher un modèle',
chunkStructure: {
learnMore: 'Pour en savoir plus',
title: 'Structure de morceaux',
description: 'sur la structure des morceaux.',
},
numberOfKeywords: 'Nombre de mots-clés',
onSearchResults: 'Aucun membre ne correspond à votre recherche.\nRéessayez votre recherche.',
nameAndIcon: 'Nom et icône',
},
}

View File

@@ -42,6 +42,10 @@ const translation = {
},
change: 'Changer',
changeRetrievalMethod: 'Changer la méthode de récupération',
keyword_search: {
title: 'Index inversé',
description: 'Lindice inversé est une structure utilisée pour une récupération efficace. Organisé par termes, chaque terme pointe vers des documents ou des pages web qui le contiennent.',
},
},
docsFailedNotice: 'Les documents n\'ont pas pu être indexés',
retry: 'Réessayer',
@@ -149,6 +153,8 @@ const translation = {
chunkingMode: {
general: 'Généralités',
parentChild: 'Parent-enfant',
graph: 'Graphique',
qa: 'Q&R',
},
parentMode: {
paragraph: 'Paragraphe',
@@ -217,6 +223,9 @@ const translation = {
chooseTime: 'Choisissez un moment...',
},
embeddingModelNotAvailable: 'Le modèle d\'embedding n\'est pas disponible.',
updated: 'Actualisé',
createFromPipeline: 'Créer à partir du pipeline de connaissances',
externalKnowledgeBase: 'Base de connaissances externe',
}
export default translation

View File

@@ -1,4 +1,8 @@
const translation = {
sidebar: {
collapseSidebar: 'Réduire la barre latérale',
expandSidebar: 'Développer la barre latérale',
},
}
export default translation

View File

@@ -0,0 +1,38 @@
const translation = {
common: {
publishAsPipeline: {
description: 'Description des connaissances',
name: 'Nom et icône du pipeline',
namePlaceholder: 'Entrez le nom de ce pipeline de connaissances. (Obligatoire)',
descriptionPlaceholder: 'Entrez la description de ce pipeline de connaissances. (Facultatif)',
},
processing: 'Traitement',
testRun: 'Série dessai',
confirmPublish: 'Confirmer la publication',
publishAs: 'Publier en tant que pipeline de connaissances',
goToAddDocuments: 'Aller à ajouter des documents',
reRun: 'Relancer',
confirmPublishContent: 'Une fois le pipeline de connaissances publié avec succès, la structure de blocs de cette base de connaissances ne peut pas être modifiée. Êtes-vous sûr de vouloir le publier ?',
preparingDataSource: 'Préparation de la source de données',
},
inputField: {
manage: 'Gérer',
create: 'Créer un champ de saisie utilisateur',
},
publishToast: {
title: 'Ce pipeline na pas encore été publié',
desc: 'Lorsque le pipeline nest pas publié, vous pouvez modifier la structure des blocs dans le nœud de la base de connaissances, et lorchestration et les modifications du pipeline seront automatiquement enregistrées en tant que brouillon.',
},
result: {
resultPreview: {
loading: 'Traitement... Veuillez patienter',
viewDetails: 'Voir les détails',
error: 'Une erreur sest produite lors de lexécution',
},
},
ragToolSuggestions: {
title: 'Suggestions pour RAG',
},
}
export default translation

View File

@@ -17,6 +17,7 @@ const translation = {
medical: 'Médical',
other: 'Autre',
utilities: 'Utilitaires',
rag: 'CHIFFON',
},
searchTags: 'Mots-clés de recherche',
allTags: 'Tous les mots-clés',

View File

@@ -6,6 +6,7 @@ const translation = {
tools: 'Outils',
bundles: 'Paquets',
all: 'Tout',
datasources: 'Sources des données',
},
categorySingle: {
extension: 'Extension',
@@ -13,6 +14,7 @@ const translation = {
model: 'Modèle',
agent: 'Stratégie dagent',
bundle: 'Paquet',
datasource: 'Source des données',
},
list: {
source: {
@@ -47,23 +49,29 @@ const translation = {
toolSelector: {
uninstalledLink: 'Gérer dans les plugins',
title: 'Ajouter un outil',
uninstalledContent: 'Ce plugin est installé à partir du référentiel local/GitHub. Veuillez utiliser après linstallation.',
uninstalledContent:
'Ce plugin est installé à partir du référentiel local/GitHub. Veuillez utiliser après linstallation.',
unsupportedTitle: 'Action non soutenue',
descriptionLabel: 'Description de loutil',
placeholder: 'Sélectionnez un outil...',
params: 'CONFIGURATION DE RAISONNEMENT',
unsupportedContent: 'La version du plugin installée ne fournit pas cette action.',
unsupportedContent:
'La version du plugin installée ne fournit pas cette action.',
auto: 'Auto',
descriptionPlaceholder: 'Brève description de lobjectif de loutil, par exemple, obtenir la température dun endroit spécifique.',
descriptionPlaceholder:
'Brève description de lobjectif de loutil, par exemple, obtenir la température dun endroit spécifique.',
unsupportedContent2: 'Cliquez pour changer de version.',
uninstalledTitle: 'Outil non installé',
empty: 'Cliquez sur le bouton « + » pour ajouter des outils. Vous pouvez ajouter plusieurs outils.',
empty:
'Cliquez sur le bouton « + » pour ajouter des outils. Vous pouvez ajouter plusieurs outils.',
toolLabel: 'Outil',
settings: 'PARAMÈTRES UTILISATEUR',
paramsTip2: 'Lorsque « Auto » est désactivé, la valeur par défaut est utilisée.',
paramsTip2:
'Lorsque « Auto » est désactivé, la valeur par défaut est utilisée.',
paramsTip1: 'Contrôle les paramètres dinférence LLM.',
toolSetting: 'Paramètres de l\'outil',
unsupportedMCPTool: 'La version actuelle du plugin de stratégie d\'agent sélectionné ne prend pas en charge les outils MCP.',
unsupportedMCPTool:
'La version actuelle du plugin de stratégie d\'agent sélectionné ne prend pas en charge les outils MCP.',
},
modelNum: '{{num}} MODÈLES INCLUS',
endpointDeleteTip: 'Supprimer le point de terminaison',
@@ -74,16 +82,19 @@ const translation = {
configureTool: 'Configurer loutil',
endpointDeleteContent: 'Souhaitez-vous supprimer {{name}} ?',
disabled: 'Handicapé',
endpointsTip: 'Ce plug-in fournit des fonctionnalités spécifiques via des points de terminaison, et vous pouvez configurer plusieurs ensembles de points de terminaison pour lespace de travail actuel.',
endpointsTip:
'Ce plug-in fournit des fonctionnalités spécifiques via des points de terminaison, et vous pouvez configurer plusieurs ensembles de points de terminaison pour lespace de travail actuel.',
configureModel: 'Configurer le modèle',
configureApp: 'Configurer lapplication',
endpointsEmpty: 'Cliquez sur le bouton « + » pour ajouter un point de terminaison',
endpointsEmpty:
'Cliquez sur le bouton « + » pour ajouter un point de terminaison',
actionNum: '{{num}} {{action}} INCLUS',
endpointDisableContent: 'Souhaitez-vous désactiver {{name}} ?',
endpointDisableTip: 'Désactiver le point de terminaison',
endpointModalTitle: 'Configurer le point de terminaison',
serviceOk: 'Service OK',
endpointModalDesc: 'Une fois configuré, les fonctionnalités fournies par le plugin via les points de terminaison de lAPI peuvent être utilisées.',
endpointModalDesc:
'Une fois configuré, les fonctionnalités fournies par le plugin via les points de terminaison de lAPI peuvent être utilisées.',
deprecation: {
reason: {
ownershipTransferred: 'propriété transférée',
@@ -91,8 +102,10 @@ const translation = {
noMaintainer: 'aucun mainteneur',
},
noReason: 'Ce plugin a été abandonné et ne sera plus mis à jour.',
onlyReason: 'Ce plugin a été déprécié en raison de {{deprecatedReason}} et ne sera plus mis à jour.',
fullMessage: 'Ce plugin a été déprécié en raison de {{deprecatedReason}}, et ne sera plus mis à jour. Veuillez utiliser <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> à la place.',
onlyReason:
'Ce plugin a été déprécié en raison de {{deprecatedReason}} et ne sera plus mis à jour.',
fullMessage:
'Ce plugin a été déprécié en raison de {{deprecatedReason}}, et ne sera plus mis à jour. Veuillez utiliser <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> à la place.',
},
},
debugInfo: {
@@ -131,13 +144,15 @@ const translation = {
uploadingPackage: 'Téléchargement de {{packageName}}...',
readyToInstallPackage: 'Sur le point dinstaller le plugin suivant',
back: 'Précédent',
fromTrustSource: 'Assurez-vous de ninstaller que des plugins provenant dune <trustSource>source fiable</trustSource>.',
fromTrustSource:
'Assurez-vous de ninstaller que des plugins provenant dune <trustSource>source fiable</trustSource>.',
close: 'Fermer',
installing: 'Installation...',
pluginLoadErrorDesc: 'Ce plugin ne sera pas installé',
cancel: 'Annuler',
installFailed: 'Échec de linstallation',
readyToInstallPackages: 'Sur le point dinstaller les plugins {{num}} suivants',
readyToInstallPackages:
'Sur le point dinstaller les plugins {{num}} suivants',
install: 'Installer',
uploadFailed: 'Échec du téléchargement',
installComplete: 'Installation terminée',
@@ -157,7 +172,8 @@ const translation = {
selectPackage: 'Sélectionnez le forfait',
selectVersion: 'Sélectionner la version',
uploadFailed: 'Échec du téléchargement',
installNote: 'Assurez-vous de ninstaller que des plugins provenant dune source fiable.',
installNote:
'Assurez-vous de ninstaller que des plugins provenant dune source fiable.',
selectVersionPlaceholder: 'Veuillez sélectionner une version',
installedSuccessfully: 'Installation réussie',
updatePlugin: 'Mettre à jour le plugin à partir de GitHub',
@@ -173,9 +189,12 @@ const translation = {
successfulTitle: 'Installation réussie',
},
error: {
noReleasesFound: 'Aucune version na été trouvée. Vérifiez le référentiel GitHub ou lURL dentrée.',
inValidGitHubUrl: 'URL GitHub non valide. Entrez une URL valide au format : https://github.com/owner/repo',
fetchReleasesError: 'Impossible de récupérer les versions. Veuillez réessayer plus tard.',
noReleasesFound:
'Aucune version na été trouvée. Vérifiez le référentiel GitHub ou lURL dentrée.',
inValidGitHubUrl:
'URL GitHub non valide. Entrez une URL valide au format : https://github.com/owner/repo',
fetchReleasesError:
'Impossible de récupérer les versions. Veuillez réessayer plus tard.',
},
marketplace: {
sortOption: {
@@ -197,9 +216,12 @@ const translation = {
verifiedTip: 'Vérifié par Dify',
},
task: {
installError: '{{errorLength}} les plugins nont pas pu être installés, cliquez pour voir',
installingWithSuccess: 'Installation des plugins {{installingLength}}, succès de {{successLength}}.',
installingWithError: 'Installation des plugins {{installingLength}}, succès de {{successLength}}, échec de {{errorLength}}',
installError:
'{{errorLength}} les plugins nont pas pu être installés, cliquez pour voir',
installingWithSuccess:
'Installation des plugins {{installingLength}}, succès de {{successLength}}.',
installingWithError:
'Installation des plugins {{installingLength}}, succès de {{successLength}}, échec de {{errorLength}}',
installedError: '{{errorLength}} les plugins nont pas pu être installés',
clearAll: 'Effacer tout',
installing: 'Installation des plugins {{installingLength}}, 0 fait.',
@@ -221,7 +243,8 @@ const translation = {
metadata: {
title: 'Plugins',
},
difyVersionNotCompatible: 'La version actuelle de Dify n\'est pas compatible avec ce plugin, veuillez mettre à niveau vers la version minimale requise : {{minimalDifyVersion}}',
difyVersionNotCompatible:
'La version actuelle de Dify n\'est pas compatible avec ce plugin, veuillez mettre à niveau vers la version minimale requise : {{minimalDifyVersion}}',
requestAPlugin: 'Demander un plugin',
publishPlugins: 'Publier des plugins',
auth: {
@@ -241,15 +264,21 @@ const translation = {
useOAuth: 'Utilisez OAuth',
oauthClientSettings: 'Paramètres du client OAuth',
useOAuthAuth: 'Utilisez l\'autorisation OAuth',
useApiAuthDesc: 'Après avoir configuré les identifiants, tous les membres de l\'espace de travail peuvent utiliser cet outil lors de l\'orchestration des applications.',
clientInfo: 'Comme aucun secret client du système n\'a été trouvé pour ce fournisseur d\'outils, une configuration manuelle est requise. Pour redirect_uri, veuillez utiliser',
useApiAuthDesc:
'Après avoir configuré les identifiants, tous les membres de l\'espace de travail peuvent utiliser cet outil lors de l\'orchestration des applications.',
clientInfo:
'Comme aucun secret client du système n\'a été trouvé pour ce fournisseur d\'outils, une configuration manuelle est requise. Pour redirect_uri, veuillez utiliser',
setDefault: 'Définir comme par défaut',
authorization: 'Autorisation',
useApi: 'Utilisez la clé API',
customCredentialUnavailable: 'Les identifiants personnalisés ne sont actuellement pas disponibles.',
credentialUnavailable: 'Les informations d\'identification ne sont actuellement pas disponibles. Veuillez contacter l\'administrateur.',
customCredentialUnavailable:
'Les identifiants personnalisés ne sont actuellement pas disponibles.',
credentialUnavailable:
'Les informations d\'identification ne sont actuellement pas disponibles. Veuillez contacter l\'administrateur.',
unavailable: 'Non disponible',
credentialUnavailableInButton: 'Identifiant indisponible',
connectedWorkspace: 'Espace de travail connecté',
emptyAuth: 'Veuillez configurer lauthentification',
},
deprecated: 'Obsolète',
autoUpdate: {
@@ -259,9 +288,11 @@ const translation = {
name: 'désactivé',
},
fixOnly: {
selectedDescription: 'Mise à jour automatique uniquement pour les versions de correctif',
selectedDescription:
'Mise à jour automatique uniquement pour les versions de correctif',
name: 'Réparer seulement',
description: 'Mise à jour automatique uniquement pour les versions de correctif (par exemple, 1.0.1 → 1.0.2). Les changements de version mineure ne déclencheront pas de mises à jour.',
description:
'Mise à jour automatique uniquement pour les versions de correctif (par exemple, 1.0.1 → 1.0.2). Les changements de version mineure ne déclencheront pas de mises à jour.',
},
latest: {
name: 'Dernier',
@@ -275,8 +306,10 @@ const translation = {
partial: 'Seulement sélectionné',
},
upgradeModePlaceholder: {
partial: 'Seuls les plugins sélectionnés se mettront à jour automatiquement. Aucun plugin n\'est actuellement sélectionné, donc aucun plugin ne se mettra à jour automatiquement.',
exclude: 'Les plugins sélectionnés ne se mettront pas à jour automatiquement.',
partial:
'Seuls les plugins sélectionnés se mettront à jour automatiquement. Aucun plugin n\'est actuellement sélectionné, donc aucun plugin ne se mettra à jour automatiquement.',
exclude:
'Les plugins sélectionnés ne se mettront pas à jour automatiquement.',
},
operation: {
clearAll: 'Tout effacer',
@@ -286,7 +319,8 @@ const translation = {
title: 'Baisse de version du plugin',
exclude: 'Exclure de la mise à jour automatique',
downgrade: 'Dégradez de toute façon',
description: 'La mise à jour automatique est actuellement activée pour ce plugin. Le fait de rétrograder la version peut entraîner la perte de vos modifications lors de la prochaine mise à jour automatique.',
description:
'La mise à jour automatique est actuellement activée pour ce plugin. Le fait de rétrograder la version peut entraîner la perte de vos modifications lors de la prochaine mise à jour automatique.',
},
noPluginPlaceholder: {
noInstalled: 'Aucun plugin installé',
@@ -295,11 +329,14 @@ const translation = {
updateTime: 'Temps de mise à jour',
specifyPluginsToUpdate: 'Spécifiez les plugins à mettre à jour',
updateTimeTitle: 'Temps de mise à jour',
changeTimezone: 'Pour changer de fuseau horaire, allez dans <setTimezone>Paramètres</setTimezone>',
changeTimezone:
'Pour changer de fuseau horaire, allez dans <setTimezone>Paramètres</setTimezone>',
automaticUpdates: 'Mises à jour automatiques',
updateSettings: 'Mettre à jour les paramètres',
excludeUpdate: 'Les {{num}} plugins suivants ne se mettront pas à jour automatiquement',
partialUPdate: 'Seuls les {{num}} plugins suivants se mettront à jour automatiquement',
excludeUpdate:
'Les {{num}} plugins suivants ne se mettront pas à jour automatiquement',
partialUPdate:
'Seuls les {{num}} plugins suivants se mettront à jour automatiquement',
nextUpdateTime: 'Prochaine mise à jour automatique : {{time}}',
},
}

View File

@@ -244,6 +244,7 @@ const translation = {
publishTip: 'Application non publiée. Merci de publier l\'application en premier.',
},
},
allTools: 'Tous les outils',
}
export default translation

View File

@@ -86,7 +86,6 @@ const translation = {
limit: 'Le parallélisme est limité aux branches {{num}}.',
depthLimit: 'Limite de couches dimbrication parallèle de {{num}} couches',
},
parallelRun: 'Exécution parallèle',
disconnect: 'Déconnecter',
jumpToNode: 'Aller à ce nœud',
addParallelNode: 'Ajouter un nœud parallèle',
@@ -218,6 +217,8 @@ const translation = {
back: 'Retour',
iteration: 'Itération',
loop: 'Boucle',
reRun: 'Relancer',
preparingDataSource: 'Préparation de la source de données',
},
tabs: {
'tools': 'Outils',
@@ -236,6 +237,8 @@ const translation = {
'searchBlock': 'Nœud de recherche',
'addAll': 'Ajouter tout',
'allAdded': 'Tout ajouté',
'sources': 'Sources',
'searchDataSource': 'Source de données de recherche',
},
blocks: {
'start': 'Début',
@@ -260,6 +263,8 @@ const translation = {
'loop-end': 'Sortir de la boucle',
'loop': 'Boucle',
'loop-start': 'Début de boucle',
'knowledge-index': 'Base de connaissances',
'datasource': 'Source des données',
},
blocksAbout: {
'start': 'Définir les paramètres initiaux pour lancer un flux de travail',
@@ -282,6 +287,8 @@ const translation = {
'agent': 'Appel de grands modèles de langage pour répondre à des questions ou traiter le langage naturel',
'loop': 'Exécutez une boucle de logique jusqu\'à ce que la condition de terminaison soit remplie ou que le nombre maximum de boucles soit atteint.',
'loop-end': 'Équivalent à "break". Ce nœud n\'a pas d\'éléments de configuration. Lorsque le corps de la boucle atteint ce nœud, la boucle se termine.',
'datasource': 'Source de données À propos',
'knowledge-index': 'Base de connaissances À propos',
},
operator: {
zoomIn: 'Zoomer',
@@ -382,6 +389,7 @@ const translation = {
input: 'Valeur d\'entrée',
variable: 'Utilisez une variable',
},
inputVars: 'Variables dentrée',
},
start: {
required: 'requis',
@@ -916,6 +924,27 @@ const translation = {
loopVariables: 'Variables de boucle',
deleteTitle: 'Supprimer le nœud de boucle ?',
},
dataSource: {
supportedFileFormatsPlaceholder: 'Extension de fichier, e.g. doc',
add: 'Ajouter une source de données',
supportedFileFormats: 'Formats de fichiers pris en charge',
},
knowledgeBase: {
chunkStructureTip: {
learnMore: 'Pour en savoir plus',
title: 'Veuillez choisir une structure de morceaux',
message: 'La base de connaissances Dify prend en charge trois structures de segmentation : Général, Parent-enfant et Q&R. Chaque base de connaissances ne peut avoir quune seule structure. La sortie du nœud précédent doit saligner sur la structure de blocs sélectionnée. Notez que le choix de la structure de segmentation affecte les méthodes dindex disponibles.',
},
chunkStructure: 'Structure de morceaux',
chunkIsRequired: 'Une structure de morceaux est requise',
chooseChunkStructure: 'Choisir une structure de blocs',
aboutRetrieval: 'À propos de la méthode de récupération.',
changeChunkStructure: 'Modifier la structure des morceaux',
indexMethodIsRequired: 'La méthode dindexation est requise',
retrievalSettingIsRequired: 'Le paramètre de récupération est requis',
chunksInput: 'Morceaux',
chunksInputTip: 'La variable d\'entrée du nœud de la base de connaissances est Chunks. Le type de variable est un objet avec un schéma JSON spécifique qui doit être cohérent avec la structure de morceau sélectionnée.',
},
},
tracing: {
stopBy: 'Arrêté par {{user}}',
@@ -986,6 +1015,10 @@ const translation = {
edited: 'Édité',
resetConversationVar: 'Réinitialiser la variable de conversation à la valeur par défaut',
emptyTip: 'Après avoir dessiné un nœud sur le canevas ou exécuté un nœud étape par étape, vous pouvez voir la valeur actuelle de la variable du nœud dans l\'Inspecteur de Variables.',
export: 'exportation',
exportToolTip: 'Exporter la variable en tant que fichier',
largeData: 'Données volumineuses, aperçu en lecture seule. Exporter pour tout afficher.',
largeDataNoExport: 'Données volumineuses - aperçu partiel uniquement',
},
settingsTab: 'Paramètres',
lastRunTab: 'Dernière Exécution',