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

@@ -329,6 +329,7 @@ const translation = {
'multi-files': 'Liste des fichiers',
'both': 'Les deux',
'maxNumberOfUploads': 'Nombre maximal de téléchargements',
'maxNumberTip': 'Document < {{docLimit}}, image < {{imgLimit}}, audio < {{audioLimit}}, vidéo < {{videoLimit}}',
'localUpload': 'Téléchargement local',
'single-file': 'En file indienne',
'optional': 'optionnel',
@@ -540,10 +541,7 @@ const translation = {
generate: 'Générer',
tryIt: 'Essaie',
overwriteTitle: 'Remplacer la configuration existante ?',
noDataLine2: 'L’aperçu de l’orchestration s’affichera ici.',
overwriteMessage: 'L’application de cette invite remplacera la configuration existante.',
noDataLine1: 'Décrivez votre cas d’utilisation sur la gauche,',
instructionPlaceHolder: 'Rédigez des instructions claires et précises.',
title: 'Générateur d’invites',
apply: 'Appliquer',
resTitle: 'Invite générée',

View File

@@ -19,6 +19,7 @@ const translation = {
tokens: 'JETONS',
user: 'UTILISATEUR FINAL OU COMPTE',
version: 'VERSION',
triggered_from: 'DÉCLENCHÉ PAR',
},
pagination: {
previous: 'Précédent',
@@ -97,6 +98,15 @@ const translation = {
finalProcessing: 'Traitement final',
},
dateFormat: 'JJ/MM/YYYY',
triggerBy: {
debugging: 'Débogage',
appRun: 'Application Web',
webhook: 'Webhook',
schedule: 'Programme',
plugin: 'Plugin',
ragPipelineRun: 'Pipeline RAG',
ragPipelineDebugging: 'Débogage RAG',
},
}
export default translation

View File

@@ -114,7 +114,11 @@ const translation = {
},
},
launch: 'Lancer',
enableTooltip: {},
enableTooltip: {
description: 'Pour activer cette fonctionnalité, veuillez ajouter un nœud d\'entrée utilisateur sur le canevas. (Peut déjà exister dans le brouillon, prend effet après publication)',
learnMore: 'En savoir plus',
},
title: 'Application Web',
},
apiInfo: {
title: 'API de service Backend',
@@ -126,7 +130,14 @@ const translation = {
running: 'En service',
disable: 'Désactiver',
},
triggerInfo: {},
triggerInfo: {
title: 'Déclencheurs',
explanation: 'Gestion des déclencheurs de flux de travail',
triggersAdded: 'Déclencheurs ajoutés',
noTriggerAdded: 'Aucun déclencheur ajouté',
triggerStatusDescription: 'L\'état du nœud de déclenchement apparaît ici. (Peut déjà exister dans le brouillon, prend effet après publication)',
learnAboutTriggers: 'En savoir plus sur les déclencheurs',
},
disableTooltip: {
triggerMode: 'La fonctionnalité {{feature}} n\'est pas prise en charge en mode Nœud Déclencheur.',
},

View File

@@ -98,6 +98,8 @@ const translation = {
triggerEvents: {
unlimited: 'Événements Déclencheurs Illimités',
tooltip: 'Le nombre d\'événements qui déclenchent automatiquement des flux de travail via des déclencheurs Plugin, Planification ou Webhook.',
sandbox: '{{count,number}} Déclencher des événements',
professional: '{{count,number}} Déclenchements par mois',
},
workflowExecution: {
priority: 'Exécution du flux de travail prioritaire',
@@ -107,6 +109,11 @@ const translation = {
},
startNodes: {
unlimited: 'Déclencheurs/workflows illimités',
limited: 'Jusqu\'à {{count}} déclencheurs/workflow',
},
title: {
plans: 'plans',
description: 'Sélectionnez le plan qui correspond le mieux aux besoins de votre équipe.',
},
},
plans: {
@@ -129,16 +136,14 @@ const translation = {
name: 'Entreprise',
description: 'Obtenez toutes les capacités et le support pour les systèmes à grande échelle et critiques pour la mission.',
includesTitle: 'Tout ce qui est inclus dans le plan Équipe, plus :',
features: {
},
features: ['Solutions de déploiement évolutives de niveau entreprise', 'Autorisation de licence commerciale', 'Fonctionnalités exclusives pour les entreprises', 'Espaces de travail multiples et gestion d\'entreprise', 'SSO', 'Accords sur les SLA négociés par les partenaires Dify', 'Sécurité et Contrôles Avancés', 'Mises à jour et maintenance par Dify Officiellement', 'Assistance technique professionnelle'],
for: 'Pour les équipes de grande taille',
btnText: 'Contacter les ventes',
priceTip: 'Facturation Annuel Seulement',
price: 'Personnalisé',
},
community: {
features: {
},
features: ['Toutes les fonctionnalités principales publiées dans le dépôt public', 'Espace de travail unique', 'Conforme à la licence open source Dify'],
name: 'Communauté',
btnText: 'Commencez avec la communauté',
for: 'Pour les utilisateurs individuels, les petites équipes ou les projets non commerciaux',
@@ -147,8 +152,7 @@ const translation = {
description: 'Pour les utilisateurs individuels, les petites équipes ou les projets non commerciaux',
},
premium: {
features: {
},
features: ['Fiabilité autonome par divers fournisseurs de cloud', 'Espace de travail unique', 'Personnalisation du logo et de l\'identité visuelle de l\'application web', 'Assistance prioritaire par e-mail et chat'],
for: 'Pour les organisations et les équipes de taille moyenne',
includesTitle: 'Tout de la communauté, en plus :',
name: 'Premium',
@@ -184,6 +188,7 @@ const translation = {
documentsUploadQuota: 'Quota de téléchargement de documents',
perMonth: 'par mois',
triggerEvents: 'Événements déclencheurs',
resetsIn: 'Réinitialisations dans {{count,number}} jours',
},
teamMembers: 'Membres de l\'équipe',
triggerLimitModal: {

View File

@@ -65,10 +65,17 @@ const translation = {
confirmAction: 'Veuillez confirmer votre action.',
deleteConfirmTitle: 'Supprimer ?',
yes: 'Oui',
noSearchResults: 'Aucun {{content}} n\'a été trouvé',
resetKeywords: 'Réinitialiser les mots-clés',
selectCount: '{{count}} Sélectionné',
searchCount: 'Trouver {{count}} {{content}}',
noSearchCount: '0 {{content}}',
now: 'Maintenant',
},
placeholder: {
input: 'Veuillez entrer',
select: 'Veuillez sélectionner',
search: 'Rechercher...',
},
voice: {
language: {
@@ -203,7 +210,6 @@ const translation = {
showAppLength: 'Afficher {{length}} applications',
delete: 'Supprimer le compte',
deleteTip: 'La suppression de votre compte effacera définitivement toutes vos données et elles ne pourront pas être récupérées.',
deleteConfirmTip: 'Pour confirmer, veuillez envoyer ce qui suit depuis votre adresse e-mail enregistrée à ',
myAccount: 'Mon compte',
account: 'Compte',
studio: 'Dify Studio',
@@ -770,6 +776,13 @@ const translation = {
label: {
optional: '(facultatif)',
},
noData: 'Aucune donnée',
dynamicSelect: {
error: 'Échec du chargement des options',
noData: 'Aucune option disponible',
loading: 'Chargement des options...',
selected: '{{count}} sélectionné',
},
}
export default translation

View File

@@ -1,8 +1,6 @@
const translation = {
steps: {
header: {
creation: 'Créer des Connaissances',
update: 'Ajouter des données',
fallbackRoute: 'Connaissance',
},
one: 'Choisissez la source de données',

View File

@@ -30,7 +30,6 @@ const translation = {
sync: 'Synchroniser',
pause: 'Pause',
resume: 'Reprendre',
download: 'Télécharger le fichier',
},
index: {
enable: 'Activer',
@@ -82,7 +81,10 @@ const translation = {
},
addUrl: 'Ajouter une URL',
learnMore: 'Pour en savoir plus',
sort: {},
sort: {
uploadTime: 'Heure de téléchargement',
hitCount: 'Nombre de récupérations',
},
},
metadata: {
title: 'Métadonnées',
@@ -348,7 +350,6 @@ const translation = {
keywords: 'Mots Clés',
addKeyWord: 'Ajouter un mot-clé',
keywordError: 'La longueur maximale du mot-clé est de 20',
characters: 'personnages',
hitCount: 'Nombre de récupérations',
vectorHash: 'Vector hash: ',
questionPlaceholder: 'ajoutez la question ici',

View File

@@ -2,7 +2,6 @@ const translation = {
title: 'Test de Récupération',
desc: 'Testez l\'effet d\'impact de la Connaissance basée sur le texte de la requête donnée.',
dateTimeFormat: 'JJ/MM/AAAA hh:mm A',
recents: 'Récents',
table: {
header: {
source: 'Source',

View File

@@ -34,6 +34,7 @@ const translation = {
publishPipeline: {
success: {
message: 'Pipeline de connaissances publié',
tip: '<CustomLink>Allez dans Documents</CustomLink> pour ajouter ou gérer des documents.',
},
error: {
message: 'Échec de la publication du pipeline de connaissances',
@@ -56,6 +57,7 @@ const translation = {
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.',
createdBy: 'Par {{author}}',
},
testRun: {
steps: {
@@ -112,23 +114,32 @@ const translation = {
characters: 'caractères',
title: 'Ajouter des documents',
backToDataSource: 'Source des données',
selectOnlineDocumentTip: 'Traiter jusqu\'à {{count}} pages',
selectOnlineDriveTip: 'Traiter jusqu\'à {{count}} fichiers, maximum {{fileSize}} Mo chacun',
},
documentSettings: {
title: 'Paramètres du document',
},
onlineDocument: {},
onlineDocument: {
pageSelectorTitle: '{{name}} pages',
},
onlineDrive: {
breadcrumbs: {
searchPlaceholder: 'Rechercher des fichiers...',
allBuckets: 'Tous les compartiments de stockage dans le cloud',
allFiles: 'Tous les fichiers',
searchResult: 'Trouver {{searchResultsLength}} éléments dans le dossier « {{folderName}} »',
},
notSupportedFileType: 'Ce type de fichier n’est pas pris en charge',
emptySearchResult: 'Aucun objet n’a été trouvé',
emptyFolder: 'Ce dossier est vide',
resetKeywords: 'Réinitialiser les mots-clés',
notConnected: '{{name}} n\'est pas connecté',
notConnectedTip: 'Pour se synchroniser avec {{name}}, une connexion à {{name}} doit d\'abord être établie.',
},
credentialSelector: {
name: '{{credentialName}} de {{pluginName}}',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Confirmation',
@@ -149,6 +160,7 @@ const translation = {
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 à l’IA d’accéder plus précisément au contenu de l’ensemble de données. S’il est vide, Dify utilisera la stratégie d’accès par défaut. (Facultatif)',
configurationTip: 'Configurer {{pluginName}}',
}
export default translation

View File

@@ -234,6 +234,10 @@ const translation = {
title: 'API de service',
disabled: 'désactivé',
},
docAllEnabled_one: 'Document {{count}} activé',
docAllEnabled_other: 'Tous les documents {{count}} activés',
partialEnabled_one: 'Total de {{count}} documents, {{num}} disponibles',
partialEnabled_other: 'Total de {{count}} documents, {{num}} disponibles',
}
export default translation

View File

@@ -52,6 +52,7 @@ const translation = {
},
isAboutToExpire: {
summary: 'Ne vous inquiétez pas — cela n\'affectera pas votre abonnement actuel, mais vous n\'obtiendrez pas la remise éducative lors de son renouvellement à moins que vous ne vérifiiez à nouveau votre statut.',
title: 'Votre statut éducatif expirera le {{date}}',
},
stillInEducation: {
title: 'Encore dans l\'éducation ?',

View File

@@ -28,10 +28,12 @@ const translation = {
loading: 'Traitement... Veuillez patienter',
viewDetails: 'Voir les détails',
error: 'Une erreur s’est produite lors de l’exécution',
footerTip: 'En mode de test, prévisualisez jusqu\'à {{count}} morceaux',
},
},
ragToolSuggestions: {
title: 'Suggestions pour RAG',
noRecommendationPlugins: 'Aucun plugin recommandé, trouvez-en plus dans le <CustomLink>Marketplace</CustomLink>',
},
}

View File

@@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'Abonnements',
listNum: 'abonnements {{num}}',
empty: {
title: 'Aucun abonnement',
button: 'Nouvel abonnement',
},
createButton: {
oauth: 'Nouvelle abonnement avec OAuth',
apiKey: 'Nouvel abonnement avec clé API',
manual: 'Collez l\'URL pour créer un nouvel abonnement',
},
createSuccess: 'Abonnement créé avec succès',
createFailed: 'Échec de la création de l\'abonnement',
maxCount: 'Nombre maximal d\'abonnements {{num}}',
selectPlaceholder: 'Sélectionner un abonnement',
noSubscriptionSelected: 'Aucun abonnement sélectionné',
subscriptionRemoved: 'Abonnement supprimé',
list: {
title: 'Abonnements',
addButton: 'Ajouter',
tip: 'Recevoir des événements via abonnement',
item: {
enabled: 'Activé',
disabled: 'désactivé',
credentialType: {
api_key: 'Clé API',
oauth2: 'OAuth',
unauthorized: 'Manuel',
},
actions: {
delete: 'Supprimer',
deleteConfirm: {
title: 'Supprimer {{name}} ?',
success: 'Abonnement {{name}} supprimé avec succès',
error: 'Échec de la suppression de l\'abonnement {{name}}',
content: 'Une fois supprimé, cet abonnement ne peut pas être récupéré. Veuillez confirmer.',
contentWithApps: 'L\'abonnement actuel est référencé par {{count}} applications. Le supprimer fera en sorte que les applications configurées ne reçoivent plus d\'événements d\'abonnement.',
confirm: 'Confirmer la suppression',
cancel: 'Annuler',
confirmInputWarning: 'Veuillez entrer le nom correct pour confirmer.',
confirmInputPlaceholder: 'Entrez "{{name}}" pour confirmer.',
confirmInputTip: 'Veuillez entrer « {{name}} » pour confirmer.',
},
},
status: {
active: 'actif',
inactive: 'Inactif',
},
usedByNum: 'Utilisé par {{num}} flux de travail',
noUsed: 'Aucun flux de travail utilisé',
},
},
addType: {
title: 'Ajouter un abonnement',
description: 'Choisissez comment vous souhaitez créer votre abonnement de déclenchement',
options: {
apikey: {
title: 'Créer avec la clé API',
description: 'Créer automatiquement un abonnement en utilisant les identifiants API',
},
oauth: {
title: 'Créer avec OAuth',
description: 'Autoriser la plateforme tierce à créer un abonnement',
clientSettings: 'Paramètres du client OAuth',
clientTitle: 'Client OAuth',
default: 'Par défaut',
custom: 'Personnalisé',
},
manual: {
title: 'Configuration manuelle',
description: 'Collez l\'URL pour créer un nouvel abonnement',
tip: 'Configurer l\'URL sur une plateforme tierce manuellement',
},
},
},
},
modal: {
steps: {
verify: 'Vérifier',
configuration: 'Configuration',
},
common: {
cancel: 'Annuler',
back: 'Retour',
next: 'Suivant',
create: 'Créer',
verify: 'Vérifier',
authorize: 'Autoriser',
creating: 'Création...',
verifying: 'Vérification...',
authorizing: 'Autorisation en cours...',
},
oauthRedirectInfo: 'Comme aucun secret client système n\'a été trouvé pour ce fournisseur d\'outil, une configuration manuelle est requise ; pour redirect_uri, veuillez utiliser',
apiKey: {
title: 'Créer avec la clé API',
verify: {
title: 'Vérifier les identifiants',
description: 'Veuillez fournir vos identifiants API pour vérifier l\'accès',
error: 'Échec de la vérification des identifiants. Veuillez vérifier votre clé API.',
success: 'Identifiants vérifiés avec succès',
},
configuration: {
title: 'Configurer l\'abonnement',
description: 'Configurez les paramètres de votre abonnement',
},
},
oauth: {
title: 'Créer avec OAuth',
authorization: {
title: 'Autorisation OAuth',
description: 'Autorisez Dify à accéder à votre compte',
redirectUrl: 'URL de redirection',
redirectUrlHelp: 'Utilisez cette URL dans la configuration de votre application OAuth',
authorizeButton: 'Autoriser avec {{provider}}',
waitingAuth: 'En attente d\'autorisation...',
authSuccess: 'Autorisation réussie',
authFailed: 'Échec de l’obtention des informations d’autorisation OAuth',
waitingJump: 'Autorisé, en attente du saut',
},
configuration: {
title: 'Configurer l\'abonnement',
description: 'Configurez les paramètres de votre abonnement après l\'autorisation',
success: 'Configuration OAuth réussie',
failed: 'Échec de la configuration OAuth',
},
remove: {
success: 'Suppression d\'OAuth réussie',
failed: 'Échec de la suppression d\'OAuth',
},
save: {
success: 'Configuration OAuth enregistrée avec succès',
},
},
manual: {
title: 'Configuration manuelle',
description: 'Configurez votre abonnement webhook manuellement',
logs: {
title: 'Journaux des requêtes',
request: 'Demande',
loading: 'En attente de la demande de {{pluginName}}...',
},
},
form: {
subscriptionName: {
label: 'Nom de l\'abonnement',
placeholder: 'Entrez le nom de l\'abonnement',
required: 'Le nom de l\'abonnement est requis',
},
callbackUrl: {
label: 'URL de rappel',
description: 'Cette URL recevra des événements webhook',
tooltip: 'Fournissez un point de terminaison accessible publiquement qui peut recevoir des requêtes de rappel du fournisseur de déclenchement.',
placeholder: 'Génération...',
privateAddressWarning: 'Cette URL semble être une adresse interne, ce qui peut provoquer l\'échec des requêtes webhook. Vous pouvez changer TRIGGER_URL pour une adresse publique.',
},
},
errors: {
createFailed: 'Échec de la création de l\'abonnement',
verifyFailed: 'Échec de la vérification des identifiants',
authFailed: 'Autorisation échouée',
networkError: 'Erreur réseau, veuillez réessayer',
},
},
events: {
title: 'Événements disponibles',
description: 'Événements auxquels ce plugin de déclenchement peut s\'abonner',
empty: 'Aucun événement disponible',
event: 'Événement',
events: 'Événements',
actionNum: '{{num}} {{event}} INCLUS',
item: {
parameters: 'paramètres {{count}}',
noParameters: 'Aucun paramètre',
},
output: 'Sortie',
},
node: {
status: {
warning: 'Se déconnecter',
},
},
}
export default translation

View File

@@ -7,6 +7,7 @@ const translation = {
bundles: 'Paquets',
all: 'Tout',
datasources: 'Sources des données',
triggers: 'Déclencheurs',
},
categorySingle: {
extension: 'Extension',
@@ -15,6 +16,7 @@ const translation = {
agent: 'Stratégie d’agent',
bundle: 'Paquet',
datasource: 'Source des données',
trigger: 'Déclencheur',
},
list: {
source: {
@@ -45,6 +47,7 @@ const translation = {
install: 'Installer',
remove: 'Enlever',
detail: 'Détails',
back: 'Retour',
},
toolSelector: {
uninstalledLink: 'Gérer dans les plugins',
@@ -339,6 +342,12 @@ const translation = {
'Seuls les {{num}} plugins suivants se mettront à jour automatiquement',
nextUpdateTime: 'Prochaine mise à jour automatique : {{time}}',
},
readmeInfo: {
title: 'Lisez-moi',
needHelpCheckReadme: 'Besoin d\'aide ? Consultez le README.',
noReadmeAvailable: 'Aucun README disponible',
failedToFetch: 'Échec de la récupération du README',
},
}
export default translation

View File

@@ -113,6 +113,15 @@ const translation = {
currentView: 'Vue actuelle',
currentWorkflow: 'Flux de travail actuel',
moreActions: 'Plus d’actions',
listening: 'Écouter',
chooseStartNodeToRun: 'Choisissez le nœud de départ pour lancer',
runAllTriggers: 'Exécuter tous les déclencheurs',
features: 'Fonctionnalités',
featuresDescription: 'Améliorer l\'expérience utilisateur de l\'application web',
featuresDocLink: 'En savoir plus',
needAdd: 'Le nœud {{node}} doit être ajouté',
needStartNode: 'Au moins un nœud de départ doit être ajouté',
workflowAsToolDisabledHint: 'Publiez le dernier flux de travail et assurez-vous qu\'un nœud d\'entrée utilisateur est connecté avant de le configurer comme outil.',
},
env: {
envPanelTitle: 'Variables d\'Environnement',
@@ -219,6 +228,7 @@ const translation = {
rerankModelRequired: 'Avant d’activer le modèle de reclassement, veuillez confirmer que le modèle a été correctement configuré dans les paramètres.',
noValidTool: '{{field}} aucun outil valide sélectionné',
toolParameterRequired: '{{field}} : le paramètre [{{param}}] est obligatoire',
startNodeRequired: 'Veuillez d\'abord ajouter un nœud de départ avant {{operation}}',
},
singleRun: {
testRun: 'Exécution de test',
@@ -250,6 +260,21 @@ const translation = {
'allAdded': 'Tout ajouté',
'sources': 'Sources',
'searchDataSource': 'Source de données de recherche',
'start': 'Démarrer',
'searchTrigger': 'Déclencheurs de recherche...',
'allTriggers': 'Tous les déclencheurs',
'noPluginsFound': 'Aucun plugin n\'a été trouvé',
'requestToCommunity': 'Demandes à la communauté',
'featuredTools': 'En vedette',
'showMoreFeatured': 'Afficher plus',
'showLessFeatured': 'Afficher moins',
'installed': 'Installé',
'pluginByAuthor': 'Par {{author}}',
'usePlugin': 'Sélectionner l\'outil',
'hideActions': 'Cacher les outils',
'noFeaturedPlugins': 'Découvrez plus d\'outils dans le Marketplace',
'noFeaturedTriggers': 'Découvrez plus de déclencheurs dans le Marketplace',
'startDisabledTip': 'Le nœud de déclenchement et le nœud d\'entrée utilisateur sont mutuellement exclusifs.',
},
blocks: {
'start': 'Début',
@@ -276,6 +301,10 @@ const translation = {
'loop-start': 'Début de boucle',
'knowledge-index': 'Base de connaissances',
'datasource': 'Source des données',
'originalStartNode': 'nœud de départ original',
'trigger-schedule': 'Déclencheur de programmation',
'trigger-webhook': 'Déclencheur Webhook',
'trigger-plugin': 'Déclencheur de plugin',
},
blocksAbout: {
'start': 'Définir les paramètres initiaux pour lancer un flux de travail',
@@ -300,6 +329,9 @@ const translation = {
'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',
'trigger-schedule': 'Déclencheur de flux de travail basé sur le temps qui démarre les flux de travail selon un calendrier',
'trigger-webhook': 'Le déclencheur Webhook reçoit des pushs HTTP provenant de systèmes tiers pour déclencher automatiquement des flux de travail.',
'trigger-plugin': 'Déclencheur d’intégration tierce qui démarre des flux de travail à partir d’événements d’une plateforme externe',
},
operator: {
zoomIn: 'Zoomer',
@@ -340,6 +372,8 @@ const translation = {
minimize: 'Sortir du mode plein écran',
scrollToSelectedNode: 'Faites défiler jusqu’au nœud sélectionné',
optional_and_hidden: '(optionnel et caché)',
goTo: 'Aller à',
startNode: 'Nœud de départ',
},
nodes: {
common: {
@@ -787,6 +821,8 @@ const translation = {
answerNodeWarningDesc: 'Avertissement en mode parallèle : les nœuds de réponse, les affectations de variables de conversation et les opérations de lecture/écriture persistantes au sein des itérations peuvent provoquer des exceptions.',
parallelModeEnableTitle: 'Mode parallèle activé',
parallelMode: 'Mode parallèle',
flattenOutput: 'Aplatir la sortie',
flattenOutputDesc: 'Lorsqu\'il est activé, si toutes les sorties d\'itération sont des tableaux, elles seront aplaties en un seul tableau. Lorsqu\'il est désactivé, les sorties conserveront une structure de tableau imbriqué.',
},
note: {
addNote: 'Ajouter note',
@@ -963,6 +999,144 @@ const translation = {
rerankingModelIsInvalid: 'Le modèle de rerank est invalide',
embeddingModelIsInvalid: 'Le modèle d\'intégration est invalide',
},
triggerPlugin: {
authorized: 'autorisé',
notConfigured: 'Non configuré',
notAuthorized: 'Non autorisé',
selectSubscription: 'Sélectionner un abonnement',
availableSubscriptions: 'Abonnements disponibles',
addSubscription: 'Ajouter un nouvel abonnement',
removeSubscription: 'Supprimer l\'abonnement',
subscriptionRemoved: 'Abonnement supprimé avec succès',
error: 'Erreur',
configuration: 'Configuration',
remove: 'Supprimer',
or: 'OU',
useOAuth: 'Utiliser OAuth',
useApiKey: 'Utiliser la clé API',
authenticationFailed: 'Échec de l\'authentification',
authenticationSuccess: 'Authentification réussie',
oauthConfigFailed: 'Échec de la configuration OAuth',
configureOAuthClient: 'Configurer le client OAuth',
oauthClientDescription: 'Configurez les identifiants du client OAuth pour activer l\'authentification',
oauthClientSaved: 'Configuration du client OAuth enregistrée avec succès',
configureApiKey: 'Configurer la clé API',
apiKeyDescription: 'Configurer les identifiants de clé API pour l\'authentification',
apiKeyConfigured: 'Clé API configurée avec succès',
configurationFailed: 'Échec de la configuration',
failedToStart: 'Échec du démarrage du processus d\'authentification',
credentialsVerified: 'Identifiants vérifiés avec succès',
credentialVerificationFailed: 'Échec de la vérification des identifiants',
verifyAndContinue: 'Vérifier et continuer',
configureParameters: 'Configurer les paramètres',
parametersDescription: 'Configurer les paramètres et les propriétés du déclencheur',
configurationComplete: 'Configuration terminée',
configurationCompleteDescription: 'Votre déclencheur a été configuré avec succès',
configurationCompleteMessage: 'La configuration de votre déclencheur est maintenant complète et prête à l\'emploi.',
parameters: 'Paramètres',
properties: 'Propriétés',
propertiesDescription: 'Propriétés de configuration supplémentaires pour ce déclencheur',
noConfigurationRequired: 'Aucune configuration supplémentaire n\'est requise pour ce déclencheur.',
subscriptionName: 'Nom de l\'abonnement',
subscriptionNameDescription: 'Entrez un nom unique pour cet abonnement de déclencheur',
subscriptionNamePlaceholder: 'Entrez le nom de l\'abonnement...',
subscriptionNameRequired: 'Le nom de l\'abonnement est requis',
subscriptionRequired: 'L\'abonnement est requis',
},
triggerSchedule: {
title: 'Programme',
nodeTitle: 'Déclencheur de programmation',
notConfigured: 'Non configuré',
useCronExpression: 'Utiliser une expression cron',
useVisualPicker: 'Utiliser le sélecteur visuel',
frequency: {
label: 'FRÉQUENCE',
hourly: 'Horaire',
daily: 'Quotidien',
weekly: 'Hebdomadaire',
monthly: 'mensuel',
},
selectFrequency: 'Sélectionner la fréquence',
frequencyLabel: 'Fréquence',
nextExecution: 'Prochaine exécution',
weekdays: 'Jours de la semaine',
time: 'Temps',
cronExpression: 'Expression Cron',
nextExecutionTime: 'PROCHAINE HEURE D\'EXÉCUTION',
nextExecutionTimes: 'Prochaines 5 exécutions',
startTime: 'Heure de début',
executeNow: 'Exécution maintenant',
selectDateTime: 'Sélectionner la date et l\'heure',
hours: 'Heures',
minutes: 'Minutes',
onMinute: 'Une minute',
days: 'Jours',
lastDay: 'Dernier jour',
lastDayTooltip: 'Tous les mois n\'ont pas 31 jours. Utilisez l\'option « dernier jour » pour sélectionner le dernier jour de chaque mois.',
mode: 'Mode',
timezone: 'Fuseau horaire',
visualConfig: 'Configuration visuelle',
monthlyDay: 'Jour mensuel',
executionTime: 'Temps d\'exécution',
invalidTimezone: 'Fuseau horaire invalide',
invalidCronExpression: 'Expression cron invalide',
noValidExecutionTime: 'Aucun temps d\'exécution valide ne peut être calculé',
executionTimeCalculationError: 'Échec du calcul des temps d\'exécution',
invalidFrequency: 'Fréquence invalide',
invalidStartTime: 'Heure de début invalide',
startTimeMustBeFuture: 'L\'heure de début doit être dans le futur',
invalidTimeFormat: 'Format d\'heure invalide (attendu HH:MM AM/PM)',
invalidWeekday: 'Jour de la semaine invalide : {{weekday}}',
invalidMonthlyDay: 'Le jour du mois doit être compris entre 1 et 31 ou "dernier"',
invalidOnMinute: 'Une minute doit être comprise entre 0 et 59',
invalidExecutionTime: 'Heure d\'exécution invalide',
executionTimeMustBeFuture: 'Le délai d\'exécution doit être dans le futur',
},
triggerWebhook: {
title: 'Déclencheur Webhook',
nodeTitle: '🔗 Déclencheur Webhook',
configPlaceholder: 'La configuration du déclencheur webhook sera implémentée ici',
webhookUrl: 'URL du webhook',
webhookUrlPlaceholder: 'Cliquez sur générer pour créer l\'URL du webhook',
generate: 'Générer',
copy: 'Copier',
test: 'Test',
urlGenerated: 'URL du webhook générée avec succès',
urlGenerationFailed: 'Échec de la génération de l’URL du webhook',
urlCopied: 'URL copiée dans le presse-papiers',
method: 'Méthode',
contentType: 'Type de contenu',
queryParameters: 'Paramètres de requête',
headerParameters: 'Paramètres d\'en-tête',
requestBodyParameters: 'Paramètres du corps de la requête',
parameterName: 'Nom de variable',
varName: 'Nom de variable',
varType: 'Type',
varNamePlaceholder: 'Entrez le nom de la variable...',
required: 'Requis',
addParameter: 'Ajouter',
addHeader: 'Ajouter',
noParameters: 'Aucun paramètre configuré',
noQueryParameters: 'Aucun paramètre de requête configuré',
noHeaders: 'Aucun en-tête configuré',
noBodyParameters: 'Aucun paramètre de corps configuré',
debugUrlTitle: 'Pour les tests, utilisez toujours cette URL',
debugUrlCopy: 'Cliquez pour copier',
debugUrlCopied: 'Copié !',
debugUrlPrivateAddressWarning: 'Cette URL semble être une adresse interne, ce qui peut provoquer l\'échec des requêtes webhook. Vous pouvez changer TRIGGER_URL pour une adresse publique.',
errorHandling: 'Gestion des erreurs',
errorStrategy: 'Gestion des erreurs',
responseConfiguration: 'Réponse',
asyncMode: 'Mode asynchrone',
statusCode: 'Code d\'état',
responseBody: 'Corps de la réponse',
responseBodyPlaceholder: 'Écrivez ici le corps de votre réponse',
headers: 'En-têtes',
validation: {
webhookUrlRequired: 'L\'URL du webhook est requise',
invalidParameterType: 'Type de paramètre invalide "{{type}}" pour le paramètre "{{name}}"',
},
},
},
tracing: {
stopBy: 'Arrêté par {{user}}',
@@ -1037,6 +1211,18 @@ const translation = {
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',
listening: {
title: 'En attente d\'événements provenant des déclencheurs...',
tip: 'Vous pouvez maintenant simuler des déclencheurs d\'événements en envoyant des requêtes de test au point de terminaison HTTP {{nodeName}} ou l\'utiliser comme URL de rappel pour le débogage en direct des événements. Toutes les sorties peuvent être consultées directement dans l\'Inspecteur de Variables.',
tipPlugin: 'Vous pouvez maintenant créer des événements dans {{- pluginName}} et récupérer les résultats de ces événements dans l\'Inspecteur de Variables.',
tipSchedule: 'Écoute des événements des déclencheurs de planification.\nProchaine exécution planifiée : {{nextTriggerTime}}',
tipFallback: 'Attendez les événements de déclenchement entrants. Les sorties apparaîtront ici.',
defaultNodeName: 'ce déclencheur',
defaultPluginName: 'ce plugin déclenche',
defaultScheduleTime: 'Non configuré',
selectedTriggers: 'déclencheurs sélectionnés',
stopButton: 'Arrête',
},
},
settingsTab: 'Paramètres',
lastRunTab: 'Dernière Exécution',
@@ -1054,11 +1240,52 @@ const translation = {
noMatchingInputsFound: 'Aucune entrée correspondante trouvée dans la dernière exécution.',
copyLastRunError: 'Échec de la copie des entrées de la dernière exécution',
lastOutput: 'Dernière sortie',
lastRunInputsCopied: '{{count}} entrée(s) copiée(s) de la dernière exécution',
},
sidebar: {
exportWarning: 'Exporter la version enregistrée actuelle',
exportWarningDesc: 'Cela exportera la version actuelle enregistrée de votre flux de travail. Si vous avez des modifications non enregistrées dans l\'éditeur, veuillez d\'abord les enregistrer en utilisant l\'option d\'exportation dans le canevas du flux de travail.',
},
publishLimit: {
startNodeTitlePrefix: 'Mettre à niveau vers',
startNodeTitleSuffix: 'débloquez des déclencheurs illimités par flux de travail',
startNodeDesc: 'Vous avez atteint la limite de 2 déclencheurs par flux de travail pour ce plan. Passez à une version supérieure pour publier ce flux de travail.',
},
error: {
startNodeRequired: 'Veuillez d\'abord ajouter un nœud de départ avant {{operation}}',
operations: {
connectingNodes: 'connecter des nœuds',
addingNodes: 'ajout de nœuds',
modifyingWorkflow: 'modification du flux de travail',
updatingWorkflow: 'mise à jour du flux de travail',
},
},
customWebhook: 'Webhook personnalisé',
difyTeam: 'Équipe Dify',
triggerStatus: {
enabled: 'DÉCLENCHEUR',
disabled: 'DÉCLENCHEUR • DÉSACTIVÉ',
},
entryNodeStatus: {
enabled: 'DÉMARRER',
disabled: 'DÉMARRER • DÉSACTIVÉ',
},
onboarding: {
title: 'Sélectionnez un nœud de départ pour commencer',
description: 'Différents nœuds de départ ont différentes capacités. Ne vous inquiétez pas, vous pouvez toujours les changer plus tard.',
userInputFull: 'Entrée utilisateur (nœud de départ original)',
userInputDescription: 'Nœud de démarrage qui permet de définir des variables de saisie utilisateur, avec comme capacités d\'outil l\'application web, l\'API de service, le serveur MCP et le workflow.',
trigger: 'Déclencheur',
triggerDescription: 'Les déclencheurs peuvent servir de nœud de départ d\'un flux de travail, comme les tâches planifiées, les webhooks personnalisés ou les intégrations avec d\'autres applications.',
back: 'Retour',
learnMore: 'En savoir plus',
aboutStartNode: 'à propos du nœud de départ.',
escTip: {
press: 'Appuyer',
key: 'Échap',
toDismiss: 'rejeter',
},
},
}
export default translation