PSA/server/public/locales/fr/msp/workflows.json
Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

2644 lines
103 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"page": {
"title": "Workflows"
},
"nav": {
"designer": "Concepteur",
"runs": "Exécutions",
"control": "Contrôle des workflows",
"tasks": "Tâches"
},
"sections": {
"definitions": "Définitions de workflow",
"runStudio": "Studio dexécution"
},
"empty": {
"title": "Aucun workflow trouvé",
"description": "Les workflows apparaîtront ici une fois créés."
},
"filters": {
"allStatuses": "Tous les statuts",
"allLevels": "Tous les niveaux",
"allTypes": "Tous les types"
},
"actions": {
"create": "Créer un workflow",
"open": "Ouvrir",
"close": "Fermer",
"print": "Imprimer",
"printOptions": "Options d'impression",
"printSelected": "Imprimer la sélection ({{count}})"
},
"runList": {
"shareTooltip": "Imprimer et exporter",
"quickRanges": {
"last24h": "Dernières 24 h",
"last7d": "7 derniers jours"
},
"summary": {
"total": "Total",
"activeWorkflows": "Workflows actifs",
"runCount": "{{count}} exécutions"
},
"filters": {
"all": "Tous",
"allWorkflows": "Tous les workflows",
"searchLabel": "ID dexécution ou clé de corrélation",
"searchPlaceholder": "Rechercher par ID dexécution ou clé de corrélation",
"statusLabel": "Statut",
"workflowLabel": "Workflow",
"versionLabel": "Version du workflow",
"versionPlaceholder": "Toute version",
"fromLabel": "De",
"toLabel": "À",
"sortLabel": "Trier"
},
"actions": {
"applyFilters": "Appliquer les filtres",
"reset": "Réinitialiser",
"viewLatestRun": "Voir la dernière exécution",
"runNow": "Exécuter maintenant",
"exportCsv": "Exporter en CSV",
"refresh": "Actualiser",
"cancelSelected": "Annuler la sélection ({{count}})",
"clearSelection": "Effacer la sélection",
"details": "Détails",
"loadMore": "Charger plus",
"preview": "Aperçu"
},
"table": {
"runId": "ID dexécution",
"workflow": "Workflow",
"version": "Version",
"tenant": "Locataire",
"triggerPayload": "Charge utile du déclencheur",
"status": "Statut",
"started": "Démarré",
"updated": "Mis à jour",
"duration": "Durée",
"emptyValue": "—",
"trigger": {
"manual": "Manuel",
"mapped": "Mappé",
"identity": "Identité"
}
},
"states": {
"loading": "Chargement des exécutions…",
"empty": "Aucune exécution ne correspond aux filtres."
},
"bulk": {
"cancelTitle": "Annuler les exécutions sélectionnées",
"cancelMessage": "Annuler {{count}} exécution(s) sélectionnée(s) ? Cette action est irréversible.",
"reasonLabel": "Motif",
"cancelReasonPlaceholder": "Indiquez un motif pour lannulation",
"cancelConfirm": "Annuler les exécutions"
},
"toasts": {
"loadRunsFailed": "Échec du chargement des exécutions",
"selectWorkflowForLatestRun": "Sélectionnez un workflow pour voir sa dernière exécution.",
"noRunsFoundForWorkflow": "Aucune exécution trouvée pour ce workflow.",
"loadLatestRunFailed": "Échec du chargement de la dernière exécution",
"selectWorkflowToRun": "Sélectionnez un workflow à exécuter.",
"exportReady": "Export dexécution prêt",
"exportFailed": "Échec de lexportation des exécutions",
"selectRunsForBulkAction": "Sélectionnez des exécutions pour effectuer cette action.",
"bulkReasonTooShort": "Le motif doit comporter au moins 3 caractères.",
"noEligibleRuns": "Aucune des exécutions sélectionnées nest éligible pour cette action.",
"bulkCancelFailedCount": "Échec de lannulation de {{count}} exécution(s).",
"bulkCancelSuccessCount": "{{count}} exécution(s) annulée(s).",
"bulkSkippedIneligibleCount": "{{count}} exécution(s) non éligible(s) ignorée(s).",
"bulkActionFailed": "Échec de laction groupée"
},
"print": {
"title": "Exécutions de workflow",
"selectedTitle": "Exécutions sélectionnées",
"subtitle": "{{count}} exécutions",
"noRuns": "Aucune exécution de workflow à imprimer",
"columns": {
"run": "Exécution",
"workflow": "Workflow",
"version": "Version",
"status": "Statut",
"started": "Démarré",
"updated": "Mis à jour",
"duration": "Durée"
},
"optionsDialog": {
"title": "Options d'impression",
"description": "Choisissez les colonnes à inclure lors de l'impression des exécutions de workflow."
}
},
"preview": {
"close": "Fermer",
"next": "Suivant",
"openFullPage": "Ouvrir en pleine page",
"position": "{{current}} sur {{total}} exécutions chargées",
"previous": "Précédent",
"selectedRun": "Exécution sélectionnée",
"title": "Aperçu de l'exécution"
}
},
"runDetails": {
"common": {
"emptyValue": "—"
},
"header": {
"runIdLabel": "ID dexécution",
"workflowIdLabel": "ID du workflow :",
"triggerLabel": "Déclencheur :"
},
"actions": {
"cancel": "Annuler",
"export": "Exporter",
"replay": "Rejouer",
"close": "Fermer",
"view": "Voir",
"apply": "Appliquer",
"reset": "Réinitialiser",
"exportCsv": "Exporter en CSV",
"loadMore": "Charger plus",
"exportAuditCsv": "Exporter laudit en CSV"
},
"summary": {
"statusLabel": "Statut",
"startedLabel": "Démarré",
"updatedLabel": "Mis à jour",
"completedLabel": "Terminé",
"triggerLabel": "Déclencheur",
"scheduleStateLabel": "État de la planification",
"scheduledForLabel": "Planifié pour",
"cronLabel": "Cron",
"nodePathLabel": "Chemin du nœud :",
"eventTypeLabel": "Type dévénement :",
"triggerPayloadSchemaLabel": "Schéma de charge utile du déclencheur :",
"mapped": "Mappé",
"identity": "Identité",
"runErrorFallback": "Erreur dexécution",
"errorCategoryFallback": "Erreur",
"technicalDetailLabel": "Détail technique :"
},
"stepTimeline": {
"title": "Chronologie des étapes",
"description": "Tentatives, durées et erreurs par étape.",
"loading": "Chargement…",
"stepStatusLabel": "Statut de létape",
"nodeTypeLabel": "Type de nœud",
"collapseNestedLabel": "Réduire les blocs imbriqués",
"columns": {
"stepPath": "Chemin de létape",
"type": "Type",
"status": "Statut",
"attempt": "Tentative",
"duration": "Durée",
"nextRetry": "Nouvelle tentative",
"started": "Démarré",
"error": "Erreur",
"action": "Action"
},
"empty": "Aucun historique détape pour linstant."
},
"stepDetails": {
"title": "Détails de létape",
"statusLabel": "Statut",
"attemptLabel": "Tentative",
"startedLabel": "Démarré",
"completedLabel": "Terminé",
"durationLabel": "Durée",
"nodeTypeLabel": "Type de nœud",
"definitionStepIdLabel": "ID détape de définition",
"nextRetryLabel": "Nouvelle tentative",
"errorTitle": "Erreur",
"stepErrorFallback": "Erreur détape",
"errorCategoryFallback": "Erreur",
"technicalDetailLabel": "Détail technique :"
},
"waitHistory": {
"title": "Historique des attentes",
"eventLine": "Événement : {{event}} · Clé : {{key}} · Filtres : {{count}}",
"timeLine": "Mode : {{mode}} · Reprise planifiée : {{scheduledResume}}",
"timeoutLine": "Délai : {{timeout}} · Résolu : {{resolved}}"
},
"envelope": {
"title": "Données denveloppe",
"description": "Charge utile, variables, métadonnées et erreurs du dernier instantané.",
"redactedNotice": "Les valeurs occultées sont affichées comme {{marker}}.",
"noSnapshot": "Aucun instantané disponible.",
"tabs": {
"payload": "Charge utile",
"vars": "Variables",
"meta": "Méta",
"error": "Erreur",
"raw": "Brut"
}
},
"invocations": {
"title": "Invocations daction",
"redactedNotice": "Les valeurs occultées sont affichées comme {{marker}}.",
"empty": "Aucun appel daction enregistré pour cette étape.",
"attemptLine": "Tentative {{count}}",
"durationLine": "Durée : {{duration}}",
"sizeLine": "Taille entrée : {{inputSize}}{{inputSuffix}} · Taille sortie : {{outputSize}}{{outputSuffix}}",
"truncatedSuffix": " (tronqué)",
"inputLabel": "Entrée",
"outputLabel": "Sortie"
},
"logs": {
"title": "Journaux dexécution",
"description": "Événements de journal opérationnel pour cette exécution.",
"searchLabel": "Recherche",
"searchPlaceholder": "Rechercher dans les journaux",
"levelLabel": "Niveau",
"empty": "Aucune entrée de journal trouvée.",
"columns": {
"timestamp": "Horodatage",
"level": "Niveau",
"message": "Message",
"step": "Étape",
"event": "Événement",
"correlation": "Corrélation"
},
"loading": "Chargement des journaux..."
},
"audit": {
"title": "Journal daudit",
"description": "Actions administratives pour cette exécution.",
"empty": "Aucune entrée daudit pour linstant.",
"systemUser": "système",
"columns": {
"timestamp": "Horodatage",
"operation": "Opération",
"user": "Utilisateur",
"details": "Détails"
},
"loading": "Chargement de la piste d'audit...",
"unknownUser": "Utilisateur inconnu"
},
"dialogs": {
"reasonLabel": "Motif",
"cancelTitle": "Annuler lexécution du workflow",
"cancelMessage": "Annuler cette exécution ? Cette action est irréversible.",
"cancelReasonPlaceholder": "Indiquez un motif pour lannulation",
"cancelConfirm": "Annuler lexécution",
"replayTitle": "Rejouer lexécution du workflow",
"replayMessage": "Rejouer cette exécution avec une nouvelle charge utile.",
"replayReasonPlaceholder": "Indiquez un motif pour la relecture",
"payloadLabel": "Charge utile (JSON)",
"replayConfirm": "Rejouer lexécution"
},
"toasts": {
"loadRunDetailsFailed": "Échec du chargement des détails de lexécution",
"loadLogsFailed": "Échec du chargement des journaux",
"loadAuditLogsFailed": "Échec du chargement des journaux daudit",
"logExportReady": "Export des journaux prêt",
"exportLogsFailed": "Échec de lexportation des journaux",
"reasonTooShort": "Le motif doit comporter au moins 3 caractères.",
"runCanceled": "Exécution annulée",
"cancelRunFailed": "Échec de lannulation de lexécution",
"runExportReady": "Export dexécution prêt",
"exportRunFailed": "Échec de lexportation de lexécution",
"replayPayloadInvalid": "La charge utile de relecture doit être un JSON valide.",
"runReplayStarted": "Relecture de lexécution démarrée",
"replayRunFailed": "Échec de la relecture de lexécution",
"auditExportReady": "Export daudit prêt",
"exportAuditLogsFailed": "Échec de lexportation des journaux daudit"
},
"queuedWarning": {
"title": "En file dattente — en attente dun worker de workflow",
"description": "Cette exécution a démarré il y a plus dune minute, mais aucune étape na encore été exécutée. Vérifiez que le service worker de workflow est en cours dexécution et connecté à Temporal."
}
},
"runDialog": {
"title": "Exécuter le workflow",
"description": "Fournissez une charge utile synthétique pour prévisualiser (et exécuter) un workflow.",
"descriptionEvent": "Événement : {{name}}.",
"draftWarning": "La version brouillon diffère de la version publiée (v{{version}}).",
"concurrencyLimit": "Limite de concurrence : {{count}} exécution(s) simultanée(s).",
"common": {
"emptyValue": "—"
},
"actions": {
"addField": "Ajouter un champ",
"addItem": "Ajouter un élément",
"cloneLatestRun": "Cloner la dernière exécution",
"close": "Fermer",
"copyPayload": "Copier la charge utile",
"formBuilder": "Générateur de formulaire",
"hide": "Masquer",
"jsonEditor": "Éditeur JSON",
"openEventCatalog": "Ouvrir le catalogue dévénements",
"publishDraft": "Publier le brouillon",
"publishLatest": "Publier la dernière version",
"remove": "Supprimer",
"reset": "Réinitialiser",
"resetToDefaults": "Réinitialiser",
"savePreset": "Enregistrer le préréglage",
"show": "Afficher",
"startRun": "Démarrer lexécution",
"starting": "Démarrage…"
},
"eventCatalog": {
"title": "Catalogue dévénements",
"description": "Choisissez un type dévénement pour initialiser les schémas.",
"searchLabel": "Rechercher des événements",
"searchPlaceholder": "Rechercher par nom, type ou catégorie",
"eventTypeLabel": "Type dévénement",
"loadingEvents": "Chargement des événements…",
"selectEventType": "Sélectionner un type dévénement",
"systemBadge": "Système",
"tenantBadge": "Locataire",
"systemEvent": "Événement système",
"tenantEvent": "Événement locataire",
"uncategorized": "Non catégorisé"
},
"fields": {
"workflowLabel": "Workflow",
"publishedVersionLabel": "Version publiée",
"triggerLabel": "Déclencheur",
"manualTrigger": "Manuel",
"workflowStatusLabel": "Statut du workflow",
"statusActive": "actif",
"statusPaused": "en pause"
},
"form": {
"booleanTrue": "Vrai",
"booleanFalse": "Faux",
"mapEntriesTitle": "Entrées de carte",
"mapEntriesPrompt": "Saisissez une clé/un chemin de champ",
"mapEntriesDescription": "Pour les objets de type carte, ajoutez des clés et définissez chaque valeur.",
"mapEntriesEmpty": "Aucune entrée de carte ajoutée.",
"noSchema": "Aucun schéma disponible pour afficher un formulaire."
},
"noPublishedVersion": {
"title": "Aucune version publiée",
"description": "Vous pouvez prévisualiser le générateur de charge utile, mais vous devez publier le workflow avant de démarrer une exécution."
},
"payload": {
"largePayloadWarning": "La charge utile dépasse 256 Ko ; les exécutions peuvent être plus lentes.",
"payloadJsonLabel": "Charge utile (JSON)",
"payloadLabel": "charge utile",
"payloadSize": "Taille de la charge utile : {{size}} Ko"
},
"presets": {
"presetNameLabel": "Nom du préréglage",
"presetNamePlaceholder": "ex. Charge utile de régression",
"savedPresets": "Préréglages enregistrés"
},
"schema": {
"sourceLabel": "Source du schéma",
"workflowSchema": "Schéma de workflow",
"eventSchema": "Schéma dévénement",
"schemaRef": "Réf. de schéma",
"schemaRefLabel": "Réf. de schéma",
"selectSchema": "Sélectionner un schéma…",
"noSchemasFound": "Aucun schéma trouvé",
"unknownSchemaRef": "Référence de schéma inconnue.",
"useEventSchema": "Utiliser le schéma de lévénement",
"viewSchemaDiff": "Voir la différence de schéma",
"hideSchemaDiff": "Masquer la différence de schéma",
"onlyInEvent": "Uniquement dans le schéma dévénement",
"requiredOnlyInEvent": "Requis uniquement dans lévénement",
"onlyInWorkflow": "Uniquement dans le schéma de workflow",
"requiredOnlyInWorkflow": "Requis uniquement dans le workflow",
"typeMismatches": "Incompatibilités de type",
"typeMismatchLine": "{{field}} : événement {{eventType}} vs workflow {{payloadType}}",
"selectedEventWarningPrefix": "Lévénement sélectionné ({{selectedEventType}}) peut ne pas correspondre au déclencheur du workflow ({{triggerEventName}}). ",
"matchOptional": "Les références de schéma correspondent ; un mappage de déclencheur sera appliqué (optionnel).",
"matchIdentity": "Les références de schéma correspondent ; un mappage identité sera utilisé (aucun mappage requis).",
"diffWillApply": "Les références de schéma diffèrent ({{eventSchemaRef}} → {{payloadSchemaRef}}) ; un mappage de déclencheur sera appliqué.",
"diffRequiredMissing": "Les références de schéma diffèrent ({{eventSchemaRef}} → {{payloadSchemaRef}}) ; un mappage de déclencheur est requis mais non configuré.",
"triggerEventDiffers": "Le schéma dévénement du déclencheur diffère du schéma de charge utile du workflow. Passez à « Schéma dévénement » si vous voulez saisir une charge utile dévénement.",
"eventUnavailable": "Schéma dévénement indisponible ; utilisation du schéma de workflow.",
"mapping": {
"identityOptional": "Mappage identité (aucun mappage requis)",
"requiredMissing": "Un mappage de déclencheur est requis mais non configuré",
"willApply": "Un mappage de déclencheur sera appliqué",
"willApplyOptional": "Un mappage de déclencheur sera appliqué (optionnel)"
}
},
"systemWorkflowWarning": "Ceci est un workflow système. Lexécuter peut affecter lautomatisation principale.",
"systemWorkflowConfirm": "Je comprends et souhaite lexécuter.",
"templates": {
"exampleLabel": "Exemple {{count}}",
"eventTemplates": "Modèles dévénements",
"sampleTemplates": "Modèles dexemple",
"emailTemplate": "E-mail entrant",
"webhookTemplate": "Événement Webhook"
},
"toasts": {
"confirmSystemRun": "Confirmez que vous voulez exécuter ce workflow système.",
"eventMissingSchemaRef": "Lévénement sélectionné na pas de référence de schéma ; impossible dexécuter avec un mappage de déclencheur.",
"loadLatestRunFailed": "Échec du chargement de la dernière exécution",
"mapEntryExists": "Cette clé existe déjà.",
"noPriorPayload": "Aucune charge utile dexécution précédente.",
"payloadCopied": "Charge utile copiée dans le presse-papiers.",
"presetSaved": "Préréglage enregistré.",
"providePresetName": "Indiquez un nom de préréglage.",
"startRunFailed": "Échec du démarrage de lexécution",
"triggerMappingMissing": "Un mappage de déclencheur est requis pour ce schéma dévénement mais nest pas configuré sur le workflow."
},
"validation": {
"invalidJson": "JSON invalide",
"summaryTitle": "La charge utile nécessite encore des champs dévénement requis avant le démarrage.",
"summaryDescription": "Remplissez les champs manquants ci-dessous, passez au générateur de formulaire ou utilisez un bouton dexemple de charge utile.",
"moreErrors": "+{{count}} autres…"
},
"sampleEmailBody": "Exemple de corps d'e-mail"
},
"eventList": {
"common": {
"emptyValue": "—"
},
"summary": {
"total": "Total",
"matched": "Correspondant",
"unmatched": "Non associé",
"errors": "Erreurs"
},
"filters": {
"eventNameLabel": "Nom de lévénement",
"eventNamePlaceholder": "workflow.event",
"correlationKeyLabel": "Clé de corrélation",
"correlationKeyPlaceholder": "corr-123",
"statusLabel": "Statut",
"fromLabel": "De",
"toLabel": "À"
},
"actions": {
"applyFilters": "Appliquer les filtres",
"reset": "Réinitialiser",
"exportCsv": "Exporter en CSV",
"exportJson": "Exporter en JSON",
"close": "Fermer",
"viewRunDetails": "Voir les détails de lexécution"
},
"table": {
"schemaConflict": "catalogue ≠ soumission",
"columns": {
"event": "Événement",
"correlation": "Corrélation",
"schema": "Schéma",
"status": "Statut",
"matchedRun": "Exécution associée",
"payload": "Charge utile",
"created": "Créé"
}
},
"states": {
"loading": "Chargement des événements…",
"empty": "Aucun événement trouvé."
},
"detail": {
"title": "Détail de lévénement",
"loading": "Chargement du détail de lévénement…",
"eventIdLabel": "ID de lévénement",
"statusLabel": "Statut",
"eventNameLabel": "Nom de lévénement",
"correlationKeyLabel": "Clé de corrélation",
"payloadSchemaRefLabel": "Réf. de schéma de charge utile",
"schemaConflict": "Conflit de référence de schéma : catalogue {{catalog}} vs soumission {{submission}}",
"createdLabel": "Créé",
"processedLabel": "Traité",
"errorLine": "Erreur : {{message}}",
"waitLabel": "Attente",
"waitIdLine": "ID dattente : {{waitId}}",
"waitStatusLine": "Statut : {{status}}",
"waitTimeoutLine": "Délai dattente : {{value}}",
"waitResolvedLine": "Résolu : {{value}}",
"waitStepLine": "Étape : {{value}}",
"matchedRunLabel": "Exécution associée",
"runStatusLine": "Statut : {{status}}",
"payloadLabel": "Charge utile"
},
"toasts": {
"loadEventsFailed": "Échec du chargement des événements",
"loadEventDetailFailed": "Échec du chargement du détail de lévénement",
"exportReady": "Export des événements prêt",
"exportFailed": "Échec de lexportation des événements"
}
},
"deadLetter": {
"common": {
"emptyValue": "—"
},
"filters": {
"minimumRetriesLabel": "Nombre minimal de tentatives",
"minimumRetriesPlaceholder": "3"
},
"actions": {
"refresh": "Actualiser",
"loadMore": "Charger plus"
},
"table": {
"columns": {
"runId": "ID dexécution",
"workflow": "Workflow",
"version": "Version",
"status": "Statut",
"retries": "Tentatives",
"failedSteps": "Étapes en échec",
"updated": "Mis à jour"
}
},
"states": {
"empty": "Aucune exécution en lettre morte.",
"loading": "Chargement des exécutions en lettre morte…"
},
"toasts": {
"loadFailed": "Échec du chargement des exécutions en lettre morte"
}
},
"audit": {
"common": {
"emptyValue": "—"
},
"header": {
"title": "Audit du workflow"
},
"actions": {
"exportCsv": "Exporter en CSV",
"loadMore": "Charger plus",
"refresh": "Actualiser"
},
"table": {
"columns": {
"timestamp": "Horodatage",
"operation": "Opération",
"user": "Utilisateur",
"details": "Détails"
}
},
"states": {
"selectWorkflow": "Sélectionnez un workflow pour voir lhistorique.",
"empty": "Aucune entrée daudit pour linstant.",
"loading": "Chargement des entrées d'audit..."
},
"values": {
"system": "système"
},
"toasts": {
"loadFailed": "Échec du chargement des journaux daudit",
"exportReady": "Export daudit prêt",
"exportFailed": "Échec de lexportation des journaux daudit"
}
},
"designer": {
"page": {
"controlPanelTitle": "Panneau de contrôle des workflows",
"controlPanelDescription": "Gérez les planifications, les exécutions, les événements et le catalogue.",
"designerTitle": "Concepteur de workflow",
"designerDescription": "Construisez et maintenez des automatisations de workflow.",
"editorTitle": "Éditeur de workflow",
"editorDescription": "Choisissez un workflow à modifier ou créez-en un nouveau."
},
"controlPanel": {
"tabs": {
"schedules": "Planifications",
"runs": "Exécutions",
"events": "Événements",
"eventCatalog": "Catalogue dévénements",
"deadLetter": "Lettre morte"
},
"quota": {
"consumedLabel": "Consommé",
"consumedUnit": "consommées",
"loading": "Chargement...",
"planLimit": "Limite : {{limit}}",
"remainingLabel": "Restant",
"remainingUnit": "restantes",
"resetsOn": "Réinitialisation le {{date}}",
"title": "Actions de workflow",
"unavailable": "Indisponible",
"unlimitedPlan": "Forfait illimité",
"unlimitedRemaining": "Illimité"
}
},
"toolbar": {
"backToList": "Retour aux workflows",
"newWorkflow": "Nouveau workflow",
"saveDraft": "Enregistrer le brouillon",
"saving": "Enregistrement...",
"publish": "Publier",
"publishing": "Publication...",
"run": "Exécuter",
"previewOnly": "Aperçu uniquement jusquà la publication dune version.",
"validation": {
"lastValidated": "Dernière validation : {{timestamp}}",
"unknown": "Statut de validation inconnu"
}
},
"form": {
"nameLabel": "Nom du workflow",
"versionLabel": "Version",
"descriptionLabel": "Description",
"latestPublishedVersion": "Dernière version publiée : {{version}}",
"triggerTypeLabel": "Type de déclencheur",
"triggerTypePlaceholder": "Sélectionner le type de déclencheur",
"triggerTypeHelp": "Choisissez si ce workflow démarre manuellement ou depuis un événement. Les planifications réutilisables se gèrent dans le panneau de contrôle.",
"manualTriggerNote": "Ce workflow na pas de déclencheur. Il peut être exécuté manuellement et planifié depuis le panneau de contrôle dès quil a un schéma de charge utile épinglé et une version publiée.",
"eventCategoryLabel": "Catégorie dévénement",
"eventLabel": "Événement",
"selectEventCategory": "Sélectionner une catégorie",
"selectEvent": "Sélectionner un événement",
"selectCategoryFirst": "Sélectionnez dabord une catégorie",
"inputDataLabel": "Données dentrée du workflow",
"inputDataEvent": "Vos étapes lisent les données depuis le déclencheur sélectionné.",
"inputDataTimePrefix": "Ce workflow reçoit une charge utile dhorloge synthétique fixe. Le contrat est épinglé à",
"inputDataManualPrefix": "Aucun déclencheur utilise",
"inputDataManualSuffix": "par défaut. Modifiez-le dans les paramètres de schéma avancés si ce workflow a besoin dun contrat manuel différent.",
"triggerMappingRequired": "Un mappage de déclencheur est requis. Ouvrez les paramètres de schéma avancés pour le configurer.",
"schemaLocked": "Version de schéma verrouillée",
"schemaAutoSelected": "Sélectionné automatiquement depuis le déclencheur",
"schemaSuffixClock": " au contrat de charge utile dhorloge fixe.",
"schemaSuffixPinned": " pour garder ce workflow stable si les schémas de déclencheur changent.",
"chooseTriggerHint": "Choisissez un déclencheur pour définir les champs disponibles.",
"schemaLoadErrorPrefix": "Impossible de charger les informations de schéma pour",
"schemaLoadErrorSuffix": "Vérifiez lentrée du catalogue dévénements.",
"draftDifferent": "Le contrat du brouillon diffère du contrat publié",
"publishedUsesPrefix": "La version publiée utilise",
"draftResolvesTo": "Ce brouillon se résout actuellement en",
"lockToPublished": "Verrouiller sur le contrat publié",
"advancedSchemaSettings": "Paramètres de schéma avancés",
"inferredSchemaPrefix": "Schéma inféré actuel :",
"noSchemaInferred": "Aucun schéma inféré pour linstant.",
"unknownSchemaRef": "Référence de schéma inconnue. Ouvrez les paramètres de schéma avancés et choisissez une version valide.",
"workflowStepsHeading": "Étapes du workflow",
"workflowStepsListHint": "Faites glisser les étapes pour les réordonner ou les déplacer entre les pipelines.",
"workflowStepsGraphHint": "Déplacez/zoomez dans le graphe. Les branches saffichent dans des voies séparées.",
"workflowStepsViewAria": "Vue des étapes du workflow",
"warningsCount": "{{count}} avertissements"
},
"stepPanel": {
"readOnly": "Accès en lecture seule : lédition des étapes est désactivée.",
"selectPrompt": "Sélectionnez une étape pour modifier sa configuration.",
"readOnlyNotice": "Accès en lecture seule : l'édition des étapes est désactivée.",
"contractMode": "Mode contrat :",
"catalogSchema": "Schéma du catalogue :"
},
"stepConfig": {
"eventLabel": "Événement",
"selectEvent": "Sélectionner un événement",
"correlationKey": "Expression de clé de corrélation",
"payloadFilters": "Filtres de charge utile",
"addFilter": "Ajouter un filtre",
"noFiltersConfigured": "Aucun filtre configuré.",
"loadingEventSchema": "Chargement des champs de schéma dévénement...",
"timeoutMs": "Délai dattente (ms)",
"assignOnResume": "Assigner à la reprise",
"fieldLabel": "Champ",
"fieldPathLabel": "Chemin du champ",
"dataContextToggle": "À quelles données puis-je accéder ici ?",
"condition": "Condition",
"itemsExpression": "Expression d'éléments",
"itemVariable": "Variable d'élément",
"concurrency": "Concurrence",
"onItemError": "En cas d'erreur d'élément",
"captureErrorAs": "Capturer l'erreur comme",
"workflowId": "ID du workflow",
"workflowVersion": "Version du workflow",
"inputMapping": "Mappage d'entrée",
"outputMapping": "Mappage de sortie",
"value": "Valeur",
"mode": "Mode",
"days": "Jours",
"hours": "Heures",
"minutes": "Minutes",
"seconds": "Secondes",
"untilInput": "Entrée jusqu'à",
"specificDateTime": "Date et heure spécifiques",
"untilExpression": "Expression jusqu'à",
"returnNotice": "Return arrête l'exécution du workflow."
},
"mappingExpr": {
"add": "Ajouter",
"remove": "Supprimer",
"empty": "Aucun mappage pour linstant.",
"expressionLabel": "Expression"
},
"schemaForm": {
"sectionTitle": "Configuration du nœud",
"stepSettings": "Paramètres de létape",
"missingRequired": "Champs requis manquants : {{fields}}"
},
"fieldMetadata": {
"actionId": {
"label": "Action",
"description": "Laction à invoquer"
},
"version": {
"label": "Version",
"description": "Numéro de version de laction"
},
"inputMapping": {
"label": "Mappage des entrées",
"description": "Mapper les données aux entrées de laction"
},
"saveAs": {
"label": "Enregistrer le résultat sous",
"description": "Nom de variable ou chemin daffectation (ex. result, vars.result, payload.result)"
},
"idempotencyKey": {
"label": "Clé didempotence",
"description": "Expression produisant une clé unique pour éviter les exécutions dupliquées. Si la même clé apparaît deux fois, le résultat mis en cache est renvoyé."
},
"onError": {
"label": "Gestion des erreurs",
"description": "Comment gérer les erreurs"
},
"eventName": {
"label": "Nom de lévénement",
"description": "Nom de lévénement à attendre"
},
"correlationKey": {
"label": "Clé de corrélation",
"description": "Expression pour associer les événements entrants"
},
"filters": {
"label": "Filtres de charge utile",
"description": "Filtres facultatifs sur la charge utile (sémantique ET)"
},
"timeoutMs": {
"label": "Délai dattente (ms)",
"description": "Temps dattente maximal en millisecondes"
},
"mode": {
"label": "Mode dattente",
"description": "Durée ou jusquà une date"
},
"durationMs": {
"label": "Durée",
"description": "Durée relative stockée en millisecondes"
},
"until": {
"label": "Jusquà",
"description": "Expression se résolvant en une date/heure absolue"
},
"state": {
"label": "Nom de létat",
"description": "Létat vers lequel basculer"
},
"assign": {
"label": "Affectations",
"description": "Variables à assigner"
},
"taskType": {
"label": "Type de tâche",
"description": "Type de tâche humaine"
},
"title": {
"label": "Titre",
"description": "Titre de la tâche affiché à lassigné"
},
"contextData": {
"label": "Données de contexte",
"description": "Données supplémentaires à inclure avec la tâche"
}
},
"actions": {
"ai.infer": {
"label": "Inférer une sortie structurée",
"description": "Générer des données structurées de workflow à partir dune invite via le fournisseur dIA configuré."
},
"store.get": {
"label": "Obtenir la valeur stockée",
"description": "Lire une entrée clé/valeur de workflow persistée."
},
"store.set": {
"label": "Définir la valeur stockée",
"description": "Persister une entrée clé/valeur de workflow."
},
"store.delete": {
"label": "Supprimer la valeur stockée",
"description": "Supprimer une entrée clé/valeur de workflow persistée."
},
"store.increment": {
"label": "Incrémenter le nombre stocké",
"description": "Incrémenter de façon atomique un nombre de workflow persisté."
},
"store.list": {
"label": "Lister les valeurs stockées",
"description": "Lister les entrées clé/valeur de workflow persistées dans un espace de noms."
},
"store.list_namespaces": {
"label": "Lister les espaces de noms du magasin",
"description": "Lister les espaces de noms du magasin de données de workflow utilisés par ce locataire."
},
"links.upsert": {
"label": "Créer ou mettre à jour un lien d'entité",
"description": "Créer ou mettre à jour un lien persisté entre deux entités de workflow."
},
"links.lookup": {
"label": "Rechercher des liens d'entité",
"description": "Rechercher des liens d'entité persistés par entité source et direction."
},
"links.delete": {
"label": "Supprimer des liens d'entité",
"description": "Supprimer des liens d'entité persistés par côté et relation facultative."
},
"links.list": {
"label": "Lister les liens d'entité",
"description": "Lister les liens d'entité persistés dans un espace de noms."
},
"links.list_namespaces": {
"label": "Lister les espaces de noms de liens",
"description": "Lister les espaces de noms de liens d'entité de workflow utilisés par ce locataire."
},
"ai": {
"infer": {
"label": "Inférer une sortie structurée",
"description": "Générer des données de workflow structurées à partir d'un prompt en utilisant le fournisseur d'IA configuré."
}
},
"store": {
"get": {
"label": "Obtenir une valeur stockée",
"description": "Lire une entrée clé/valeur de workflow persistée."
},
"set": {
"label": "Définir une valeur stockée",
"description": "Persister une entrée clé/valeur de workflow."
},
"delete": {
"label": "Supprimer une valeur stockée",
"description": "Supprimer une entrée clé/valeur de workflow persistée."
},
"increment": {
"label": "Incrémenter un nombre stocké",
"description": "Incrémenter de façon atomique un nombre de workflow persisté."
},
"list": {
"label": "Lister les valeurs stockées",
"description": "Lister les entrées clé/valeur de workflow persistées dans un espace de noms."
},
"list_namespaces": {
"label": "Lister les espaces de noms du magasin",
"description": "Lister les espaces de noms du magasin de données de workflow utilisés par ce locataire."
}
},
"links": {
"upsert": {
"label": "Créer ou mettre à jour un lien d'entité",
"description": "Créer ou mettre à jour un lien persisté entre deux entités de workflow."
},
"lookup": {
"label": "Rechercher des liens d'entité",
"description": "Trouver des liens d'entité persistés par entité source et direction."
},
"delete": {
"label": "Supprimer des liens d'entité",
"description": "Supprimer des liens d'entité persistés par côté et relation facultative."
},
"list": {
"label": "Lister les liens d'entité",
"description": "Lister les liens d'entité persistés dans un espace de noms."
},
"list_namespaces": {
"label": "Lister les espaces de noms de liens",
"description": "Lister les espaces de noms de liens d'entité utilisés par ce locataire."
}
}
},
"validation": {
"badge": {
"invalid": "Invalide",
"warnings": "Avertissements",
"valid": "Valide",
"unknown": "Inconnu"
},
"errors": "Erreurs de validation"
},
"discardDialog": {
"title": "Abandonner les modifications non enregistrées ?",
"message": "Ce workflow contient des modifications non enregistrées. Les abandonner et continuer ?",
"confirm": "Abandonner les modifications",
"cancel": "Continuer la modification"
},
"eventSchemaDialog": {
"title": "Changer le schéma dentrée du workflow ?",
"messageWithEvent": "Lévénement sélectionné {{eventName}} utilise {{schemaRef}}. Voulez-vous basculer ce workflow sur ce schéma dévénement ?",
"messageFallback": "Voulez-vous passer ce workflow au schéma dévénement sélectionné ?",
"confirm": "Utiliser le schéma de lévénement",
"cancel": "Conserver le schéma actuel"
},
"blockSection": {
"then": "ALORS",
"else": "SINON",
"try": "ESSAI",
"catch": "CAPTURE",
"body": "CORPS"
},
"palette": {
"showPalette": "Afficher la palette",
"hidePalette": "Masquer la palette",
"searchPlaceholder": "Recherche",
"dragHint": "Déposez sur le pipeline pour ajouter",
"chooseAction": "Choisissez une action après avoir ajouté cette étape",
"returnsSummary": "Retourne : {{list}}{{suffix}}",
"categories": {
"Control": "Contrôle",
"Core": "Cœur",
"Transform": "Transformer",
"AI": "IA",
"Apps": "Applications",
"Action": "Action",
"Email": "E-mail",
"Nodes": "Nœuds"
},
"controlBlocks": {
"control.if": {
"label": "Si",
"description": "Branchement conditionnel"
},
"control.forEach": {
"label": "Pour chaque",
"description": "Itérer sur les éléments"
},
"control.tryCatch": {
"label": "Tenter/Capturer",
"description": "Gérer les erreurs"
},
"control.callWorkflow": {
"label": "Appeler un workflow",
"description": "Invoquer un autre workflow"
},
"control.return": {
"label": "Retour",
"description": "Arrêter lexécution"
},
"control": {
"if": {
"label": "Si",
"description": "Branchement conditionnel"
},
"forEach": {
"label": "Pour chaque",
"description": "Itérer sur les éléments"
},
"tryCatch": {
"label": "Tenter/Capturer",
"description": "Gérer les erreurs"
},
"callWorkflow": {
"label": "Appeler un workflow",
"description": "Invoquer un autre workflow"
},
"return": {
"label": "Retour",
"description": "Arrêter lexécution"
}
}
},
"nodes": {
"state.set": {
"label": "Définir létat",
"description": "Mettre à jour létat du workflow"
},
"event.wait": {
"label": "Attendre un événement",
"description": "Attendre un événement externe"
},
"time.wait": {
"label": "Attendre un délai",
"description": "Attendre une durée ou jusquà une date/heure"
},
"transform.assign": {
"label": "Assigner",
"description": "Assigner des valeurs à la charge utile ou aux variables"
},
"action.call": {
"label": "Appeler une action",
"description": "Invoquer une action enregistrée"
},
"email.parseBody": {
"label": "Analyser le corps de le-mail",
"description": "Analyser et nettoyer le corps de la réponse par e-mail"
},
"email.renderCommentBlocks": {
"label": "Restituer les blocs de commentaire",
"description": "Restituer les blocs de commentaire depuis le contenu de le-mail"
},
"human.task": {
"label": "Tâche utilisateur",
"description": "Suspendre jusquà lachèvement dune tâche utilisateur"
},
"state": {
"set": {
"label": "Définir létat",
"description": "Mettre à jour létat du workflow"
}
},
"event": {
"wait": {
"label": "Attendre un événement",
"description": "Attendre un événement externe"
}
},
"time": {
"wait": {
"label": "Attendre un délai",
"description": "Attendre une durée ou jusquà une date/heure"
}
},
"transform": {
"assign": {
"label": "Assigner",
"description": "Assigner des valeurs à la charge utile ou aux variables"
}
},
"action": {
"call": {
"label": "Appeler une action",
"description": "Invoquer une action enregistrée"
}
},
"email": {
"parseBody": {
"label": "Analyser le corps de le-mail",
"description": "Analyser et nettoyer le corps de la réponse par e-mail"
},
"renderCommentBlocks": {
"label": "Restituer les blocs de commentaire",
"description": "Restituer les blocs de commentaire depuis le contenu de le-mail"
}
},
"human": {
"task": {
"label": "Tâche utilisateur",
"description": "Suspendre jusquà lachèvement dune tâche utilisateur"
}
}
},
"groups": {
"ticket": {
"label": "Ticket",
"description": "Actions de ticket"
},
"contact": {
"label": "Contact",
"description": "Actions de contact"
},
"client": {
"label": "Client",
"description": "Actions client"
},
"communication": {
"label": "Communication",
"description": "Actions de communication"
},
"scheduling": {
"label": "Planification",
"description": "Actions de planification"
},
"project": {
"label": "Projet",
"description": "Actions de projet"
},
"time": {
"label": "Temps",
"description": "Actions de temps"
},
"crm": {
"label": "CRM",
"description": "Actions CRM"
},
"transform": {
"label": "Transformer",
"description": "Actions de transformation"
},
"ai": {
"label": "IA",
"description": "Actions IA"
},
"data-store": {
"label": "Magasin de données",
"description": "Lire et écrire un état de workflow durable d'une exécution à l'autre."
}
}
},
"stepCard": {
"selectAriaLabel": "Sélectionner létape {{label}}",
"badges": {
"if": "Si",
"loop": "Boucle",
"try": "Tenter",
"block": "Bloc",
"disconnected": "Déconnecté"
},
"mapping": {
"unmappedTitle": "{{count}} champs requis non mappés",
"unmappedBadge": "{{count}} requis non mappé",
"allMappedTitle": "Les {{count}} champs requis sont mappés",
"allMappedAria": "Tous les champs requis sont mappés"
},
"errorCount": "{{count}} {{noun}}",
"errorSingular": "erreur",
"errorPlural": "erreurs",
"actions": {
"duplicate": "Dupliquer létape",
"duplicateAriaLabel": "Dupliquer létape {{label}}",
"delete": "Supprimer létape"
},
"forEachSummary": "Élément : {{itemVar}} | Concurrence : {{concurrency}}",
"disconnectedTitle": "{{group}} n'est pas connecté ; cette étape échouera à l'exécution tant qu'il n'est pas reconnecté."
},
"toasts": {
"loadRegistriesFailed": "Échec du chargement des registres de workflow",
"loadPermissionsFailed": "Échec du chargement des autorisations",
"loadWorkflowsFailed": "Échec du chargement des workflows",
"loadEventCatalogFailed": "Échec du chargement du catalogue dévénements",
"settingsUpdated": "Paramètres du workflow mis à jour",
"settingsUpdateFailed": "Échec de la mise à jour des paramètres",
"created": "Workflow créé",
"saved": "Workflow enregistré",
"saveFailed": "Échec de lenregistrement du workflow",
"saveBeforePublish": "Enregistrez le workflow avant de le publier",
"published": "Workflow publié",
"publishFailed": "Échec de la publication du workflow",
"publishValidationErrors": "Échec de la publication — corrigez les erreurs de validation",
"systemEventMissingSchema": "Cet événement système na pas de schéma valide et ne peut pas être sélectionné tant quil nest pas corrigé."
},
"propsPanel": {
"resizeAria": "Redimensionner le panneau des propriétés",
"settingsTitle": "Paramètres du workflow",
"settingsSubtitle": "Contrôles de visibilité, de mise en pause et de sécurité.",
"visibleToUsers": "Visible aux utilisateurs",
"paused": "En pause (arrêter les nouvelles exécutions)",
"concurrencyLimit": "Limite de concurrence",
"unlimited": "Illimité",
"autoPauseFailureRate": "Mise en pause automatique sur taux d'échec",
"failureRateThreshold": "Seuil de taux d'échec",
"minRunsBeforeAutoPause": "Exécutions minimum avant mise en pause automatique"
},
"trigger": {
"summary": "Résumé du déclencheur",
"actionNeeded": "Action requise",
"noMappingNeeded": "Aucun mappage requis",
"sourceSchemaOverride": "Remplacer le schéma source du déclencheur",
"useCatalogSchemaDefault": "Utiliser le schéma du catalogue (par défaut)",
"useCatalogSchemaPlaceholder": "Utiliser le schéma du catalogue…",
"noSchemasFound": "Aucun schéma trouvé",
"mappingTitle": "Mappage du déclencheur",
"mappingNotRequired": "Mappage : Non requis.",
"mappingErrors": "Erreurs de mappage",
"mappingWarnings": "Avertissements de mappage"
},
"schemaSettings": {
"lockVersion": "Verrouiller la version du schéma",
"lockVersionHelp": "Verrouillez la version du schéma pour empêcher les futurs changements du déclencheur d'affecter ce workflow.",
"lockedVersion": "Version de schéma verrouillée",
"manualRef": "Référence de schéma manuelle",
"fixedForTimeTriggers": "Fixé pour les déclencheurs temporels",
"availableFieldsPreview": "Aperçu des champs disponibles",
"payloadContract": "Schéma de contrat de charge utile du workflow",
"ref": "Référence du schéma :",
"loadFailed": "Échec du chargement du schéma.",
"notLoaded": "Schéma pas encore chargé.",
"loadPreviewFailed": "Échec du chargement de l'aperçu du schéma.",
"selectVersionPlaceholder": "Sélectionner la version du schéma…",
"payloadRefAdvanced": "Référence du schéma de charge utile (avancé)"
},
"expression": {
"insertField": "Insérer un champ",
"enterPlaceholder": "Entrer l'expression..."
},
"dataContext": {
"availableDataAtStep": "Données disponibles à cette étape",
"payload": "Charge utile",
"noPayloadFields": "Aucun champ de charge utile",
"payloadSchemaRefHint": "Définissez 'Référence du schéma de charge utile' pour définir la structure de la charge utile",
"stepOutputs": "Sorties d'étape (vars)",
"outputSchemaUnavailable": "Schéma de sortie non disponible",
"noFields": "Aucun champ",
"copyAllPaths": "Copier tous les chemins",
"copyAllFieldPaths": "Copier tous les chemins de champ"
}
},
"actionInputFieldInfo": {
"required": "Requis",
"requiredTitle": "Requis",
"requiredMissingTitle": "Ce champ requis na pas de valeur",
"format": "Format : {{value}}",
"eachItem": "Chaque élément : {{value}}",
"length": "Longueur : {{min}} - {{max}}",
"range": "Plage : {{min}} - {{max}}",
"any": "nimporte quel",
"defaultPrefix": "Par défaut :",
"examplePrefix": "Exemple :"
},
"actionInputSection": {
"heading": "Entrées daction"
},
"actionInputFixedPicker": {
"loadingOptions": "Chargement des options…",
"ticketSearchPlaceholder": "Rechercher des tickets par numéro ou titre",
"ticketSelect": "Sélectionner un ticket",
"ticketTypeAbove": "Saisissez au-dessus pour rechercher des tickets",
"placeholders": {
"board": "Sélectionner un tableau",
"client": "Sélectionner un client",
"contact": "Sélectionner un contact",
"user": "Sélectionner un utilisateur",
"userOrTeam": "Sélectionner un utilisateur ou une équipe"
},
"errors": {
"loadTicket": "Échec du chargement du ticket",
"searchTickets": "Échec de la recherche de tickets",
"loadOptions": "Échec du chargement des options"
},
"dependencyHints": {
"contact": {
"client_id": "Choisissez dabord un client fixe pour charger les options de contact."
},
"client-location": {
"client_id": "Choisissez dabord un client fixe pour charger les options demplacement."
},
"ticket-category": {
"board_id": "Choisissez dabord un tableau fixe pour charger les options de catégorie."
},
"ticket-status": {
"board_id": "Choisissez dabord un tableau fixe pour charger les options de statut.",
"ticket_id": "Choisissez dabord un ticket fixe pour charger les options de statut."
},
"ticket-subcategory": {
"board_id": "Choisissez dabord un tableau fixe pour charger les options de sous-catégorie.",
"category_id": "Choisissez dabord une catégorie fixe pour charger les options de sous-catégorie."
}
}
},
"serverErrors": {
"forbidden": "Vous navez pas la permission deffectuer cette action.",
"unauthorized": "Vous devez être connecté pour effectuer cette action.",
"notFound": "Introuvable.",
"workflowNotFound": "Workflow introuvable.",
"workflowVersionNotFound": "Version de workflow introuvable.",
"workflowVersionExists": "La version {{version}} du workflow existe déjà. Actualisez et réessayez.",
"workflowValidationFailed": "La validation du workflow a échoué.",
"noPublishedVersions": "Ce workflow na pas encore de version publiée.",
"workflowPaused": "Ce workflow est en pause.",
"concurrencyLimitReached": "La limite de concurrence du workflow est atteinte.",
"rateLimitExceeded": "La limite de fréquence dexécution du workflow est dépassée.",
"payloadNotSerializable": "La charge utile doit être sérialisable en JSON.",
"payloadTooLarge": "La charge utile dépasse la taille maximale autorisée.",
"payloadValidationFailed": "La charge utile na pas passé la validation.",
"missingPayloadSchemaRef": "Ce workflow na pas de référence de schéma de charge utile.",
"missingSourcePayloadSchemaRef": "La charge utile de lévénement na pas de référence de schéma source.",
"triggerMappingRequired": "Un mappage de déclencheur est requis pour cette exécution.",
"runNotFailed": "Lexécution nest pas en état déchec.",
"failedStepNotFound": "Létape en échec est introuvable.",
"noEventWaitFound": "Aucune attente dévénement trouvée pour cette exécution.",
"cancelTemporalRunFailed": "Échec de lannulation de lexécution sur le moteur dexécution.",
"noDefinitionToPublish": "Aucune définition de workflow à publier.",
"deleteActiveRunsBlocked": "Ce workflow a des exécutions actives. Annulez-les avant de le supprimer.",
"scheduleOneTimeRunAtRequired": "Les planifications ponctuelles nécessitent un horodatage dexécution.",
"scheduleOneTimeInvalidTimestamp": "Les planifications ponctuelles nécessitent un horodatage ISO 8601 valide.",
"scheduleOneTimeMustBeFuture": "Les planifications ponctuelles doivent être planifiées dans le futur.",
"scheduleOneTimeDayOfWeek": "Les planifications ponctuelles ne prennent en charge que « Tous les jours ».",
"scheduleOneTimeBusinessHours": "Les planifications ponctuelles ne peuvent pas remplacer les horaires douverture.",
"scheduleRecurringCronRequired": "Les planifications récurrentes nécessitent une expression cron.",
"scheduleRecurringCronFields": "Les planifications récurrentes nécessitent une expression cron à 5 champs.",
"scheduleRecurringTimezone": "Les planifications récurrentes nécessitent un fuseau horaire IANA valide.",
"cronTooLong": "Lexpression cron est trop longue.",
"cronUnsupportedCharacters": "Lexpression cron contient des caractères non pris en charge.",
"cronDayConflict": "Une expression cron ne peut pas définir à la fois le jour du mois et le jour de la semaine.",
"cronTooFrequent": "Cette planification cron est trop fréquente (intervalle minimal de 5 minutes).",
"schedulePublishedRequired": "Les planifications ne peuvent être créées que pour des workflows publiés.",
"schedulePinnedSchemaRequired": "Les planifications ne sont prises en charge que pour les workflows avec un schéma de charge utile épinglé.",
"scheduleSchemaNotRegistered": "La dernière version publiée du workflow na pas de schéma de charge utile épinglé enregistré.",
"schedulePayloadInvalid": "La charge utile de la planification na pas été validée par rapport au schéma du workflow.",
"processEventFailed": "Échec du traitement de lévénement du workflow."
},
"taskInbox": {
"title": "Boîte de tâches",
"backToList": "← Retour à la liste",
"tabs": {
"pending": "En attente",
"claimed": "Pris en charge",
"completed": "Terminé",
"all": "Toutes les tâches"
}
},
"taskList": {
"pagination": {
"previous": "Précédent",
"next": "Suivant",
"pageLabel": "Page {{current}} sur {{total}}"
},
"errors": {
"loadFailed": "Échec du chargement des tâches. Veuillez réessayer.",
"claimFailed": "Échec de la prise en charge de la tâche : {{error}}",
"unclaimFailed": "Échec de la libération de la tâche : {{error}}",
"unknown": "Erreur inconnue"
},
"actions": {
"claim": "Prendre en charge",
"unclaim": "Libérer"
},
"noDueDate": "Aucune échéance",
"overdueSuffix": "(En retard)",
"empty": "Aucune tâche trouvée",
"duePrefix": "Échéance :"
},
"taskDetails": {
"notAvailable": "N/D",
"notFound": "Tâche introuvable",
"retry": "Réessayer",
"youPronoun": "Vous",
"noForm": "Aucun formulaire disponible pour cette tâche.",
"contextData": "Données de contexte",
"responseData": "Données de réponse",
"fields": {
"status": "Statut",
"priority": "Priorité",
"created": "Créé",
"dueDate": "Date déchéance",
"claimedBy": "Pris en charge par",
"completedBy": "Terminé par"
},
"tabs": {
"details": "Détails",
"form": "Formulaire",
"history": "Historique"
},
"actions": {
"claim": "Prendre en charge la tâche",
"unclaim": "Libérer la tâche"
},
"errors": {
"loadFailed": "Échec du chargement des détails de la tâche. Veuillez réessayer.",
"claimFailed": "Échec de la prise en charge de la tâche : {{error}}",
"unclaimFailed": "Échec de la libération de la tâche : {{error}}",
"unknown": "Erreur inconnue"
}
},
"taskHistory": {
"empty": "Aucun historique disponible pour cette tâche.",
"byPrefix": "Par :",
"system": "Système",
"detailsLabel": "Détails",
"actions": {
"created": "Créé",
"claimed": "Pris en charge",
"unclaimed": "Libéré",
"completed": "Terminé",
"canceled": "Annulé",
"expired": "Expiré"
},
"errors": {
"loadFailed": "Échec du chargement de lhistorique de la tâche. Veuillez réessayer."
}
},
"taskForm": {
"actions": {
"complete": "Terminer la tâche",
"cancel": "Annuler"
}
},
"dynamicForm": {
"actions": {
"submit": "Soumettre",
"cancel": "Annuler"
},
"errors": {
"generic": "Une erreur est survenue"
}
},
"embeddedTaskInbox": {
"title": "Mes tâches",
"viewAll": "Voir tout",
"backToTasks": "← Retour aux tâches"
},
"actionButton": {
"processing": "Traitement...",
"confirm": "Confirmer",
"cancel": "Annuler",
"confirmTitle": "Confirmer laction"
},
"stepNameField": {
"label": "Nom de létape"
},
"stepSaveOutput": {
"toggleLabel": "Enregistrer la sortie",
"placeholder": "ex. ticketDefaults",
"copyPathTitle": "Copier le chemin complet",
"accessibleAs": "Accessible via :"
},
"aiSchemaSection": {
"heading": "Format de réponse de lIA",
"headingDescription": "Choisissez ce que la réponse de lIA doit inclure pour les étapes suivantes.",
"modeSimple": "Simple",
"modeAdvanced": "Avancé",
"addField": "Ajouter un champ",
"addNested": "Ajouter un champ imbriqué",
"remove": "Supprimer",
"nameLabel": "Nom",
"answerType": "Type de réponse",
"arrayItems": "Éléments du tableau",
"required": "Requis",
"descriptionLabel": "Description",
"objectItemFields": "Champs des éléments dobjet",
"nestedFields": "Champs imbriqués",
"jsonSchemaLabel": "Schéma JSON",
"advancedHelperText": "Le mode Avancé prend en charge les schémas enracinés sur un objet, les objets imbriqués, les tableaux, les descriptions, les contraintes et additionalProperties.",
"validationHeading": "Validation du schéma",
"advancedFallback": "Ce schéma enregistré utilise des fonctionnalités JSON Schema avancées, il est donc affiché en mode Avancé.",
"simpleModeUnsupported": "Ce schéma ne peut pas être représenté en mode simple.",
"errors": {
"jsonRequired": "Le JSON de schéma de sortie IA est requis."
}
},
"composeText": {
"heading": "Sorties de texte composé",
"headingDescription": "Créez une ou plusieurs sorties markdown avec des clés de référence stables.",
"addOutput": "Ajouter une sortie",
"untitled": "Sortie sans titre",
"outputFallback": "sortie {{index}}",
"moveUpAria": "Déplacer {{label}} vers le haut",
"moveDownAria": "Déplacer {{label}} vers le bas",
"deleteAria": "Supprimer {{label}}",
"outputLabel": "Libellé de la sortie",
"stableKeyLabel": "Clé stable",
"keyHintSafe": "Clé sûre en aval",
"keyHintInvalid": "Utilisez uniquement des lettres minuscules, des chiffres et des tirets bas.",
"regenerate": "Régénérer",
"validationHeading": "Validation",
"downstreamPathLabel": "Chemin de référence en aval",
"pathFallback": "Enregistrez la sortie pour voir un chemin de référence.",
"copied": "Copié",
"copyPath": "Copier le chemin",
"contentHeading": "Composer le contenu",
"contentDescription": "Utilisez une mise en forme compatible markdown et des puces de référence en ligne.",
"insertReference": "Insérer une référence",
"insertReferenceHeading": "Insérer une référence de workflow",
"errors": {
"noCodeBlock": "Impossible dinsérer une référence dans un bloc de code. Déplacez le curseur dans un autre bloc et réessayez."
}
},
"referenceSelector": {
"placeholders": {
"scope": "Sélectionner la portée source...",
"step": "Sélectionner une étape...",
"field": "Sélectionner un champ..."
}
},
"pipeline": {
"stepCount_one": "({{count}} étape)",
"stepCount_other": "({{count}} étapes)",
"start": "Début",
"insertStepHere": "Insérer une étape ici",
"emptyDisabled": "Aucune étape pour linstant.",
"emptySelectPrompt": "Sélectionnez une étape dans le panneau pour commencer."
},
"expressionEditor": {
"ariaLabel": "Éditeur dexpression",
"autocompleteAria": "Suggestions dauto-complétion dexpression",
"textAreaPlaceholder": "Saisir une expression JSONata...",
"field": {
"placeholder": "Saisir une expression...",
"insertFieldPlaceholder": "Insérer un champ"
}
},
"sourceDataTree": {
"searchPlaceholder": "Rechercher des champs...",
"sections": {
"payload": "Charge utile",
"vars": "Sorties détape (vars)",
"loopContext": "Contexte de la boucle",
"workflowMeta": "Métadonnées du workflow",
"errorContext": "Contexte derreur"
},
"vars": {
"emptyPrefix": "Aucune variable pour linstant. Utilisez",
"saveOutput": "Enregistrer la sortie",
"emptyConjunction": "ou une étape",
"assignStep": "Assigner",
"emptySuffix": "pour peupler"
},
"loop": {
"currentItem": "élément courant",
"loopIndex": "indice de boucle"
}
},
"validationBadge": {
"status": {
"valid": "Valide",
"warning": "Avertissements",
"error": "Erreurs",
"incomplete": "Incomplet"
},
"tooltip": {
"valid": "Toutes les entrées requises sont mappées",
"incomplete": "Configurer les mappages dentrée",
"mappingCount": "{{mapped}} sur {{required}} champs requis mappés"
},
"openEditor": "Ouvrir léditeur de mappage",
"errorsHeading": "Erreurs ({{count}})",
"warningsHeading": "Avertissements ({{count}})",
"moreErrors": "+{{count}} autres erreurs",
"moreWarnings": "+{{count}} autres avertissements"
},
"inputMappingEditor": {
"empty": "Cette action na pas de champs dentrée.",
"browseSources": "Parcourir les sources",
"objectFields": "Champs dobjet",
"itemTitle": "Élément {{index}}",
"reset": "Réinitialiser",
"addItem": "Ajouter un élément",
"fill": "Remplir",
"clearValues": "Effacer les valeurs",
"applySuggestions": "Appliquer les suggestions ({{count}})",
"applySuggestionTitle": "Appliquer la suggestion : {{sourcePath}}",
"fuzzySuffix": "(approximatif)",
"removeMapping": "Supprimer le mappage (Suppr./Retour)",
"invalidJson": "JSON invalide",
"stringPlaceholder": "Saisir une valeur...",
"aria": {
"listbox": "Champs dentrée daction",
"fieldList": "Liste des champs dentrée daction"
},
"summary": {
"filledCount": "{{filled}} sur {{total}} champs remplis",
"missingCount": "{{count}} requis manquants",
"missingTitle": "Des champs requis nont pas de valeur"
},
"mode": {
"structured": "Structuré",
"rawJson": "JSON brut"
},
"nullable": {
"useValue": "Utiliser une valeur",
"setNull": "Définir à null"
},
"primitiveList": {
"placeholder": "Saisissez une valeur par ligne, ou séparées par une virgule",
"helperText": "Utilisez la ligne, la virgule ou le point-virgule comme séparateur."
},
"structuredGroup": {
"collapseAria": "Réduire {{title}}",
"expandAria": "Développer {{title}}"
},
"legacy": {
"title": "Mappage hérité non pris en charge ici",
"description": "Ce champ utilise une expression enregistrée ou un secret. Remplacez-le par une référence structurée ou une valeur fixe.",
"useReference": "Utiliser une référence",
"useFixedValue": "Utiliser une valeur fixe"
},
"fixedValueDialog": {
"title": "Modifier {{fieldName}}",
"description": "Utilisez léditeur agrandi pour un contenu plus long.",
"openEditor": "Ouvrir léditeur",
"apply": "Appliquer",
"cancel": "Annuler"
},
"askAi": {
"ariaLabel": "Demander de laide à lIA pour les transformations",
"title": "Demander à lIA",
"shortcutHint": "Ouvrir Quick Ask pour laide sur les transformations"
},
"softEnumPlaceholder": "Sélectionner ou saisir une valeur",
"softEnumSearchPlaceholder": "Rechercher ou saisir une valeur personnalisée",
"softEnumNoResults": "Aucune suggestion",
"softEnumUseCustom": "Utiliser « {{value}} »",
"expression": {
"placeholder": "ex. : payload.body.task_name"
}
},
"schemaReference": {
"selectAction": "Sélectionnez une action pour voir son schéma dentrée/sortie",
"viewDetails": "Voir les détails du schéma",
"hideDetails": "Masquer les détails du schéma",
"inputSchemaTitle": "Schéma dentrée",
"outputSchemaTitle": "Schéma de sortie",
"noInputParameters": "Aucun paramètre dentrée",
"noOutputFields": "Aucun champ de sortie",
"noFields": "Aucun champ",
"outputAvailablePrefix": "Sortie disponible à",
"showRawJson": "Afficher le schéma JSON brut",
"hideRawJson": "Masquer le schéma JSON brut",
"exportSchema": "Exporter le schéma",
"exportSchemaTitle": "Télécharger le schéma en JSON",
"rawInputComment": "// Schéma dentrée",
"rawOutputComment": "// Schéma de sortie",
"copyPathTitle": "Copier {{path}}",
"copyAllPaths": "Copier tous les chemins",
"copyAllPathsTitle": "Copier tous les chemins de champs",
"copied": "Copié !",
"pathsCopied": "{{count}} chemins copiés",
"nullableSuffix": "| null",
"constraints": {
"values": "Valeurs : {{list}}{{suffix}}",
"min": "Min : {{value}}",
"max": "Max : {{value}}",
"minLength": "Longueur min : {{value}}",
"maxLength": "Longueur max : {{value}}",
"pattern": "Motif : {{value}}",
"format": "Format : {{value}}",
"examples": "Exemples : {{list}}",
"default": "Par défaut : {{value}}"
}
},
"groupedAction": {
"groupHeading": "Groupe",
"actionLabel": "Action",
"actionPlaceholder": "Sélectionner une action {{group}}",
"required": {
"title": "Action requise",
"message": "Sélectionnez une action {{group}} avant de configurer les entrées ou de publier ce workflow."
},
"tileKind": {
"core-object": "Cœur",
"transform": "Transformer",
"app": "Application",
"ai": "IA"
},
"disconnected": {
"title": "{{group}} n'est pas connecté",
"message": "Les étapes utilisant ses actions échoueront à l'exécution tant que l'intégration n'est pas reconnectée dans Paramètres > Intégrations."
}
},
"trigger": {
"manual": "Manuel",
"event": "Événement",
"eventWithType": "Événement : {{eventType}}",
"oneTimeSchedule": "Planification ponctuelle",
"recurringSchedule": "Planification récurrente"
},
"scheduleStatus": {
"unknown": "Inconnu",
"scheduled": "Planifié",
"paused": "En pause",
"disabled": "Désactivé",
"completed": "Terminé",
"failed": "Échec"
},
"graph": {
"start": {
"label": "Début"
},
"states": {
"buildingGraph": "Construction du graphe…"
},
"errors": {
"buildFailed": "Échec de la construction du graphe du workflow.",
"renderErrorTitle": "Erreur de rendu du graphe",
"switchToList": "Passez à la vue Liste pour continuer la modification."
},
"empty": {
"readonly": "Sélectionnez une étape dans le panneau pour commencer.",
"dropFirst": "Déposez pour ajouter comme première étape",
"dragPrompt": "Faites glisser une étape depuis le panneau, ou sélectionnez-en une pour commencer."
},
"mapping": {
"unmappedTitle": "{{count}} champs requis non mappés",
"unmappedBadge": "{{count}} requis non mappé",
"allMapped": "Tous les champs requis sont mappés"
},
"insert": {
"title": "Déposer une étape ici"
},
"actions": {
"deleteStep": "Supprimer létape"
}
},
"runStudio": {
"header": {
"kicker": "Studio dexécution",
"fallbackTitle": "Exécution de workflow",
"version": "Version {{version}}",
"updated": "Mis à jour à {{time}}",
"backToWorkflows": "← Retour aux workflows"
},
"actions": {
"replay": "Rejouer",
"cancel": "Annuler",
"refresh": "Actualiser"
},
"status": {
"running": "En cours",
"succeeded": "Réussi",
"retrying": "Nouvelle tentative",
"failed": "Échec",
"pending": "En attente",
"canceled": "Annulé",
"loading": "Chargement"
},
"failure": {
"title": "Échec de lexécution",
"lastSuccessfulStep": "Dernière étape réussie : {{label}}"
},
"pipeline": {
"title": "Pipeline dexécution",
"emptyBranch": "Aucune étape dans cette branche.",
"view": {
"graph": "Graphe",
"list": "Liste"
},
"states": {
"loadingDefinition": "Chargement de la définition du workflow…",
"loadingDefinitionPlain": "Chargement de la définition du workflow...",
"noSteps": "Aucune étape à afficher."
},
"selectPrompt": "Sélectionnez une étape pour la mettre en surbrillance.",
"selectedStep": "Sélection : {{label}}"
},
"details": {
"title": "Détails de lexécution",
"fields": {
"runId": "ID dexécution",
"started": "Démarré",
"duration": "Durée",
"tenant": "Locataire",
"trigger": "Déclencheur",
"eventType": "Type dévénement",
"scheduleState": "État de la planification",
"scheduledFor": "Planifié pour",
"cron": "Cron",
"waitingFor": "En attente de",
"counts": "Compteurs"
},
"values": {
"resumeEvent": "Événement de reprise",
"counts": "{{steps}} étapes · {{logs}} journaux · {{waits}} attentes"
}
},
"errors": {
"title": "Erreurs dexécution",
"runErrorPayload": "Charge utile derreur",
"resumeEventPayload": "Charge utile de lévénement de reprise"
},
"stepDetails": {
"title": "Détails de létape",
"empty": "Sélectionnez une étape dans le pipeline pour inspecter les entrées, sorties et instantanés.",
"fields": {
"step": "Étape"
},
"panels": {
"configuration": "Configuration de létape",
"inputResolved": "Entrée (résolue)",
"output": "Sortie",
"envelopeSnapshot": "Instantané de lenveloppe"
}
},
"timeline": {
"title": "Chronologie dexécution",
"searchLabel": "Rechercher dans la chronologie",
"searchPlaceholder": "Rechercher chemin, type dattente, statut",
"empty": "Aucune entrée dans la chronologie.",
"waitTitle": "Attente · {{waitType}}",
"attempt": "Tentative {{attempt}} · {{status}}",
"inProgress": "En cours",
"statusLine": "Statut : {{status}}",
"eventSegment": " · Événement : {{eventName}}",
"keySegment": " · Clé : {{key}}",
"createdLine": "Créé : {{createdAt}}",
"resolvedSegment": " · Résolu : {{resolvedAt}}",
"actions": {
"jump": "Aller à"
}
},
"logs": {
"title": "Journaux dexécution",
"searchLabel": "Rechercher dans les journaux",
"searchPlaceholder": "Rechercher un message ou un chemin détape",
"empty": "Aucun journal pour linstant.",
"actions": {
"clear": "Effacer"
}
},
"dialog": {
"title": {
"cancel": "Annuler lexécution",
"replay": "Rejouer lexécution"
},
"heading": {
"cancel": "Annuler lexécution du workflow",
"replay": "Rejouer lexécution du workflow"
},
"description": {
"cancel": "Lannulation arrêtera toutes les étapes en cours ou en attente de cette exécution.",
"replay": "La relecture lancera une nouvelle exécution avec la charge utile ci-dessous."
},
"fields": {
"reason": "Motif",
"reasonPlaceholder": "ex. Annulation pour ajuster les entrées",
"payloadJson": "Charge utile (JSON)"
},
"actions": {
"close": "Fermer",
"confirmCancel": "Confirmer lannulation",
"startReplay": "Démarrer la relecture",
"working": "En cours..."
},
"errors": {
"invalidJson": "JSON invalide"
}
},
"stepLabels": {
"action": "Action : {{actionId}}",
"ifCondition": "Condition Si",
"forEach": "Pour chaque",
"tryCatch": "Tenter/Capturer",
"waitForEvent": "Attendre un événement",
"waitForTime": "Attendre un délai",
"humanTask": "Tâche utilisateur",
"setState": "Définir létat",
"assign": "Assigner"
},
"stepCard": {
"lastStatus": "Dernier statut : {{status}} ({{timestamp}})",
"attempt": "Tentative {{attempt}}",
"forEachSummary": "Élément : {{itemVar}} | Concurrence : {{concurrency}}",
"badges": {
"if": "Si",
"loop": "Boucle",
"try": "Tenter",
"block": "Bloc"
},
"sections": {
"then": "ALORS",
"else": "SINON",
"try": "ESSAI",
"catch": "CAPTURE",
"body": "CORPS"
}
},
"jsonPanel": {
"serializeFailed": "Impossible de sérialiser la valeur."
},
"toasts": {
"reasonRequired": "Le motif est requis (min. 3 caractères).",
"canceled": "Exécution annulée.",
"replayStarted": "Relecture de lexécution démarrée.",
"actionFailed": "Échec de laction.",
"loadFailed": "Échec du chargement du studio d'exécution"
},
"lastRefreshed": "Dernière actualisation {{time}}",
"navigation": {
"backToRuns": "← Retour aux exécutions de workflow"
},
"title": "Studio d'exécution de workflow"
},
"schedules": {
"common": {
"emptyValue": "—",
"entityName": "planification"
},
"heading": {
"reflectionLabel": "Planifications de workflow",
"title": "Planifications",
"description": "Gérez des planifications de workflow réutilisables et leurs charges utiles enregistrées."
},
"actions": {
"new": "Nouvelle planification",
"edit": "Modifier",
"pause": "Suspendre",
"resume": "Reprendre",
"delete": "Supprimer",
"cancel": "Annuler",
"saving": "Enregistrement…",
"saveChanges": "Enregistrer les modifications",
"create": "Créer une planification",
"rowMenu": "Actions de planification pour {{name}}"
},
"filters": {
"allWorkflows": "Tous les workflows",
"allStatuses": "Tous les statuts",
"allTriggers": "Tous les déclencheurs",
"searchPlaceholder": "Rechercher des planifications…"
},
"status": {
"enabled": "Activé",
"paused": "En pause",
"failed": "Échec",
"completed": "Terminé",
"disabled": "Désactivé"
},
"triggerType": {
"schedule": "Ponctuel",
"recurring": "Récurrent"
},
"dayType": {
"any": "Nimporte quel jour",
"business": "Jours ouvrés",
"nonBusiness": "Jours non ouvrés"
},
"table": {
"workflowVersion": "Workflow v{{version}}",
"columns": {
"schedule": "Planification",
"workflow": "Workflow",
"triggerType": "Type de déclencheur",
"nextFire": "Prochaine exécution",
"lastFire": "Dernière exécution",
"status": "Statut",
"lastError": "Dernière erreur",
"actions": "Actions"
}
},
"states": {
"loadingReflection": "Chargement des planifications",
"loading": "Chargement des planifications…",
"never": "Jamais",
"calendarMisconfigured": "Calendrier mal configuré",
"noEligibleUpcomingRun": "Aucune exécution éligible à venir",
"unknownWorkflow": "Workflow inconnu",
"empty": "Aucune planification trouvée",
"emptyDescription": "Créez une planification ponctuelle ou récurrente pour exécuter un workflow publié avec des données dentrée enregistrées."
},
"errors": {
"loadFailed": "Échec du chargement des planifications.",
"updateFailed": "Échec de la mise à jour de la planification.",
"deleteFailed": "Échec de la suppression de la planification."
},
"timezone": {
"browseAll": "Parcourir tous les fuseaux horaires…",
"custom": "Personnalisé…",
"browseHelp": "Choisissez dans la liste complète des fuseaux horaires IANA.",
"customLabel": "Fuseau horaire personnalisé",
"customPlaceholder": "Etc/GMT+5"
},
"dialog": {
"title": {
"edit": "Modifier la planification",
"create": "Créer une planification"
},
"description": "Configurez le calendrier et les données statiques pour une planification de workflow.",
"states": {
"loading": "Chargement des détails…"
},
"fields": {
"workflow": "Workflow",
"workflowPlaceholder": "Choisissez un workflow",
"name": "Nom de la planification",
"namePlaceholder": "Synchronisation AP de fin de mois",
"triggerType": "Type de déclencheur",
"enabled": "Activé",
"enabledHelp": "La planification sexécutera lorsquelle sera valide.",
"disabledHelp": "La planification restera suspendue jusquà sa reprise.",
"runAt": "Exécuter à",
"runOn": "Exécuté le",
"businessDaysOnly": "Jours ouvrés uniquement",
"nonBusinessDaysOnly": "Jours non ouvrés uniquement",
"calendarSource": "Source du calendrier",
"businessHoursSchedule": "Horaires douverture",
"businessHoursSchedulePlaceholder": "Choisir des horaires douverture",
"frequency": "Fréquence",
"time": "Temps",
"dayOfMonth": "Jour du mois",
"weekdays": "Jours ouvrés",
"cron": "Cron",
"timezone": "Fuseau horaire"
},
"workflow": {
"badges": {
"unpublished": "Non publié",
"inferredSchema": "Schéma inféré"
}
},
"eligibility": {
"chooseWorkflow": "Choisissez un workflow avant denregistrer.",
"unpublished": "Les planifications ne peuvent être créées que pour des workflows publiés.",
"pinnedOnly": "Les planifications ne sont prises en charge que pour les workflows avec un schéma de charge utile épinglé.",
"noPinnedSchema": "Le workflow sélectionné nexpose pas de schéma de charge utile épinglé.",
"unavailableSchemaRef": "Le workflow sélectionné utilise une référence de schéma indisponible : {{schemaRef}}."
},
"calendarSource": {
"tenantDefault": "Horaires douverture par défaut du locataire",
"tenantDefaultMissing": "Horaires douverture par défaut du locataire (non configurés)",
"tenantDefaultHint": "Définissez dabord des horaires douverture par défaut pour le locataire, ou choisissez une plage spécifique.",
"specific": "Plage dhoraires douverture spécifique",
"specificHint": "Créez dabord une plage dhoraires douverture.",
"tenantDefaultMissingDescription": "Aucun horaire douverture par défaut nest configuré pour le locataire. Choisissez une plage spécifique ou définissez dabord une valeur par défaut.",
"holidaysNote": "Les jours fériés sont toujours considérés comme des jours non ouvrés."
},
"businessHours": {
"defaultSuffix": " (Par défaut)",
"noneConfigured": "Aucune plage dhoraires douverture nest encore configurée.",
"usingTenantDefault": "Utilise les horaires douverture par défaut du locataire.",
"noTenantDefault": "Aucun horaire douverture par défaut nest configuré pour le locataire."
},
"recurring": {
"title": "Planification récurrente",
"description": "Choisissez un motif de récurrence courant. Le cron avancé est disponible pour des planifications personnalisées.",
"builderMode": "Concepteur de planification",
"advancedMode": "Cron avancé",
"dailyHelper": "Sexécute chaque jour à lheure sélectionnée.",
"weeklyHelper": "Choisissez un ou plusieurs jours de la semaine ci-dessous.",
"customCronWarning": "Cette planification utilise une expression cron personnalisée. Continuez à la modifier ici ou revenez au concepteur pour la remplacer par un motif courant.",
"cronPreview": "Cron : {{cron}}"
},
"payload": {
"title": "Charge utile",
"description": "Saisissez une entrée statique qui sera transmise à chaque exécution planifiée.",
"rootLabel": "Charge utile",
"rootKey": "charge utile",
"mode": {
"form": "Mode formulaire",
"json": "Mode JSON"
},
"actions": {
"addItem": "Ajouter un élément",
"removeItem": "Supprimer"
},
"states": {
"noItems": "Aucun élément pour linstant."
},
"boolean": {
"true": "Vrai",
"false": "Faux"
},
"noSchema": {
"title": "Aucun schéma de charge utile nest disponible pour ce workflow.",
"description": "Les champs de formulaire apparaîtront ici une fois que ce workflow publiera un schéma de charge utile épinglé."
}
},
"validation": {
"title": "Erreurs de validation de la charge utile",
"more": "+{{count}} autres…",
"invalidValue": "Valeur invalide",
"valueMustBeAllowed": "La valeur doit être lune des options autorisées.",
"expectedObject": "Objet attendu.",
"requiredFieldMissing": "Champ requis manquant.",
"unknownProperty": "Propriété inconnue.",
"expectedArray": "Tableau attendu.",
"expectedString": "Chaîne attendue.",
"expectedNumber": "Nombre attendu.",
"expectedBoolean": "Valeur booléenne attendue.",
"payloadMustBeObject": "La charge utile de la planification doit être un objet JSON.",
"invalidJson": "JSON invalide"
},
"errors": {
"loadScheduleFailed": "Échec du chargement de la planification.",
"saveFailed": "Échec de lenregistrement de la planification."
}
},
"recurrence": {
"andWord": "et",
"frequency": {
"daily": "Quotidien",
"weekly": "Hebdomadaire",
"monthly": "Mensuel"
},
"validation": {
"validTime": "Choisissez une heure valide.",
"weekdayRequired": "Choisissez au moins un jour de la semaine.",
"dayOfMonthRange": "Choisissez un jour du mois entre 1 et 31."
},
"summary": {
"daily": "Sexécute chaque jour à {{timeLabel}} {{timezoneLabel}}",
"weekly": "Sexécute tous les {{weekdayLabels}} à {{timeLabel}} {{timezoneLabel}}",
"monthly": "Sexécute le jour {{dayOfMonth}} de chaque mois à {{timeLabel}} {{timezoneLabel}}"
},
"weekdays": {
"0": {
"short": "Dim",
"long": "Dimanche"
},
"1": {
"short": "Lun",
"long": "Lundi"
},
"2": {
"short": "Mar",
"long": "Mardi"
},
"3": {
"short": "Mer",
"long": "Mercredi"
},
"4": {
"short": "Jeu",
"long": "Jeudi"
},
"5": {
"short": "Ven",
"long": "Vendredi"
},
"6": {
"short": "Sam",
"long": "Samedi"
}
}
}
},
"enums": {
"workflowRunStatus": {
"RUNNING": "En cours",
"WAITING": "En attente",
"SUCCEEDED": "Réussi",
"FAILED": "Échec",
"CANCELED": "Annulé"
},
"workflowRunSort": {
"started_at:desc": "Les plus récents dabord",
"started_at:asc": "Les plus anciens dabord",
"updated_at:desc": "Récemment mis à jour",
"updated_at:asc": "Les moins récemment mis à jour"
},
"workflowEventStatus": {
"matched": "Correspondant",
"unmatched": "Non associé",
"error": "Erreur"
},
"workflowStepStatus": {
"STARTED": "Démarré",
"SUCCEEDED": "Réussi",
"FAILED": "Échec",
"RETRY_SCHEDULED": "Nouvelle tentative planifiée",
"CANCELED": "Annulé"
},
"workflowLogLevel": {
"DEBUG": "Débogage",
"INFO": "Info",
"WARN": "Avertissement",
"ERROR": "Erreur"
},
"workflowAiSchemaType": {
"string": "Chaîne",
"number": "Nombre",
"integer": "Entier",
"boolean": "Booléen",
"object": "Objet",
"array": "Tableau"
},
"workflowInputSourceMode": {
"reference": "Référence",
"fixed": "Valeur fixe"
},
"workflowReferenceSection": {
"payload": "Charge utile",
"vars": "Résultats des étapes",
"meta": "Détails du workflow",
"error": "Erreur",
"forEach": "Contexte de boucle"
},
"workflowTriggerMode": {
"manual": "Aucun déclencheur",
"event": "Événement"
},
"workflowCanvasView": {
"list": "Liste",
"graph": "Graphe"
},
"workflowOnError": {
"continue": "Continuer",
"fail": "Échec"
},
"workflowWaitMode": {
"duration": "Durée",
"until": "Jusquà"
},
"workflowWaitTiming": {
"fixed": "Date et heure précises",
"expression": "Expression avancée"
},
"workflowEntityType": {
"project_task": "Tâche de projet",
"ticket": "Ticket",
"contact": "Contact",
"client": "Client",
"project": "Projet",
"appointment": "Rendez-vous",
"quote": "Devis"
},
"workflowLinkRelation": {
"related": "Associé",
"mirrors": "Reflète",
"maps_to": "Correspond à",
"blocks": "Bloque",
"duplicate_of": "Doublon de",
"synced_with": "Synchronisé avec"
}
},
"automation": {
"createWorkflow": {
"dialogTitle": "Créer un nouveau workflow",
"fields": {
"name": "Nom du workflow",
"namePlaceholder": "p. ex., Envoyer un e-mail de bienvenue",
"triggerType": "Type de déclencheur"
},
"validation": {
"nameRequired": "Le nom du workflow est obligatoire",
"nameTooShort": "Le nom doit contenir au moins 3 caractères"
},
"actions": {
"cancel": "Annuler",
"create": "Créer le workflow"
},
"triggers": {
"event": {
"title": "Basé sur un événement",
"description": "Déclenché automatiquement lorsque des événements spécifiques se produisent (p. ex., ticket créé, facture payée)."
},
"scheduled": {
"title": "Planifié",
"description": "S'exécute selon un calendrier récurrent à l'aide d'expressions cron (p. ex., quotidien, hebdomadaire)."
},
"manual": {
"title": "Manuel",
"description": "Lancé à la demande par les utilisateurs ou via des appels d'API. Aucun déclencheur automatique."
}
}
},
"workflowList": {
"header": "Workflows",
"stats": {
"total": "{{count}} au total",
"active": "{{count}} actifs",
"draft": "{{count}} en brouillon",
"paused": "{{count}} en pause"
},
"actions": {
"eventCatalog": "Catalogue d'événements",
"newWorkflow": "Nouveau workflow",
"createFirst": "Créez votre premier workflow",
"retry": "Réessayer",
"resetFilters": "Réinitialiser"
},
"searchPlaceholder": "Rechercher des workflows...",
"statusFilter": {
"all": "Tous les statuts",
"active": "Actif",
"draft": "Brouillon",
"paused": "En pause",
"archived": "Archivé"
},
"triggerFilter": {
"all": "Tous les déclencheurs",
"event": "Basé sur un événement",
"schedule": "Planification ponctuelle",
"recurring": "Planification récurrente",
"manual": "Manuel"
},
"triggerLabels": {
"manual": "Manuel",
"schedule": "Planification ponctuelle",
"recurring": "Planification récurrente",
"event": "Événement"
},
"bulk": {
"selectedSingular": "{{count}} workflow sélectionné",
"selectedPlural": "{{count}} workflows sélectionnés",
"pause": "Mettre en pause",
"resume": "Reprendre",
"delete": "Supprimer",
"clearSelection": "Effacer la sélection",
"deleteDialogTitle": "Supprimer les workflows sélectionnés",
"deleteConfirmSingular": "Supprimer {{count}} workflow",
"deleteConfirmPlural": "Supprimer {{count}} workflows",
"deleteClose": "Fermer",
"deleteCancel": "Annuler",
"selectedSummarySingular": "Vous avez sélectionné <1>{{count}}</1> workflow.",
"selectedSummaryPlural": "Vous avez sélectionné <1>{{count}}</1> workflows.",
"willBeDeleted": "<1>{{count}}</1> sera supprimé.",
"willBeSkipped": "<1>{{count}}</1> sera ignoré.",
"skippedHeading": "Workflows ignorés",
"systemWorkflowReason": "Workflow système"
},
"columns": {
"name": "Nom",
"status": "Statut",
"version": "Version",
"trigger": "Déclencheur",
"lastModified": "Dernière modification",
"actions": "Actions"
},
"statusLabels": {
"active": "Actif",
"draft": "Brouillon",
"archived": "Archivé",
"paused": "En pause"
},
"tableValues": {
"system": "Système",
"draftVersion": "Brouillon : v{{version}}"
},
"rowMenu": {
"ariaLabel": "Actions du workflow",
"resume": "Reprendre",
"pause": "Mettre en pause",
"duplicate": "Dupliquer",
"viewRuns": "Voir les exécutions",
"delete": "Supprimer"
},
"states": {
"errorTitle": "Échec du chargement des workflows",
"errorFallback": "Échec de la récupération des workflows",
"validationFailed": "Échec de la validation de la suppression. Veuillez réessayer.",
"emptyTitle": "Aucun workflow pour le moment",
"emptyDescription": "Créez votre premier workflow pour automatiser des tâches, réagir à des événements et fluidifier vos processus.",
"noResultsTitle": "Aucun workflow trouvé",
"noResultsDescription": "Essayez d'ajuster votre recherche ou vos filtres pour trouver ce que vous cherchez."
},
"deleteDialog": {
"fallbackEntityName": "ce workflow"
}
},
"eventsCatalog": {
"header": {
"title": "Catalogue d'événements de workflow",
"subtitle": "Explorez, gérez et concevez des workflows pour les événements et déclencheurs système.",
"defineCustomEvent": "Définir un événement personnalisé",
"managePermissionTitle": "Nécessite l'autorisation workflow:manage"
},
"filters": {
"searchPlaceholder": "Rechercher des événements (p. ex., ticket.create, email.receive)...",
"allCategories": "Toutes les catégories",
"status": "Statut",
"statusOptions": {
"all": "Tous les statuts",
"active": "Actif",
"beta": "Bêta",
"draft": "Brouillon",
"deprecated": "Déprécié"
},
"source": "Source",
"sourceOptions": {
"all": "Toutes les sources",
"system": "Système",
"tenant": "Tenant"
},
"sort": "Tri",
"sortOptions": {
"categoryName": "Catégorie · Nom",
"mostActive": "Plus actifs (7 j)"
},
"apply": "Appliquer",
"clear": "Effacer",
"viewGrid": "Vue grille",
"viewList": "Vue liste"
},
"card": {
"workflowsCount": "{{count}} workflows",
"actions": {
"simulate": "Simuler",
"metrics": "Métriques",
"attachTitle": "Attacher (nouveau workflow)"
},
"metrics": {
"executions": "Exécutions",
"successRate": "Taux de réussite",
"avgLatency": "Latence moyenne"
}
},
"states": {
"noEventsTitle": "Aucun événement trouvé",
"noEventsDescription": "Essayez d'ajuster vos filtres.",
"noEventsInRange": "Aucun événement dans cet intervalle.",
"noDataAvailable": "Aucune donnée disponible.",
"loading": "Chargement…"
},
"pagination": {
"showing": "Affichage de {{start}} à {{end}} sur {{total}} résultats",
"prev": "Préc.",
"next": "Suiv.",
"page": "Page {{page}} / {{total}}"
},
"badges": {
"system": "Système",
"tenant": "Tenant",
"noSchema": "Aucun schéma",
"unknownSchema": "Schéma inconnu",
"schema": "Schéma"
},
"details": {
"title": "Détails de l'événement",
"close": "Fermer",
"simulate": "Simuler",
"metrics": "Métriques",
"attach": "Attacher",
"schema": {
"heading": "Schéma",
"viewFull": "Voir le schéma complet",
"managedNotice": "Le schéma est géré par le registre de schémas.",
"missingNotice": "Aucun schemaRef défini ; l'événement peut ne pas être utilisable comme déclencheur de workflow.",
"topLevelFields": "Champs de premier niveau",
"required": "obligatoire",
"moreFieldsHint": "Affichage des 12 premiers champs. Utilisez « Voir le schéma complet » pour en voir plus."
},
"attached": {
"heading": "Workflows attachés",
"loading": "Chargement…",
"empty": "Aucun workflow attaché.",
"publishedBadge": "Publié",
"systemBadge": "Système",
"pausedBadge": "En pause",
"hiddenBadge": "Masqué",
"open": "Ouvrir",
"detach": "Détacher",
"publishTooltip": "Nécessite l'autorisation workflow:publish",
"adminTooltip": "Nécessite workflow:admin pour les workflows système"
}
},
"schemaModal": {
"title": "Schéma",
"close": "Fermer",
"headerTitle": "Schéma de payload",
"loading": "Chargement…",
"unavailable": "Schéma non disponible.",
"copy": "Copier",
"copySuccess": "Copié",
"copyFailed": "Échec de la copie"
},
"metricsDialog": {
"title": "Métriques",
"close": "Fermer",
"headerTitle": "Métriques · {{eventType}}",
"from": "Du",
"to": "Au",
"refresh": "Actualiser",
"openWorkflowEditor": "Ouvrir l'éditeur de workflow",
"loading": "Chargement…",
"totals": {
"totalEvents": "Événements totaux",
"matched": "Correspondants",
"unmatched": "Non correspondants",
"errors": "Erreurs",
"runsStarted": "Exécutions lancées",
"runSuccessRate": "Taux de réussite des exécutions",
"avgRunDuration": "Durée moyenne d'exécution"
},
"executionsOverTime": "Exécutions dans le temps",
"recentEvents": "Événements récents",
"viewInEvents": "Voir dans les événements",
"openRun": "Exécution",
"loadFailed": "Échec du chargement des métriques",
"rangeShowing": "Affichage de {{start}}{{end}} sur {{total}}",
"prev": "Préc.",
"next": "Suiv."
},
"simulateDialog": {
"title": "Simuler un événement",
"headerTitle": "Simuler · {{eventType}}",
"submit": "Simuler",
"submitting": "Envoi…",
"close": "Fermer",
"fields": {
"correlationKey": "Clé de corrélation (facultatif)",
"correlationKeyPlaceholder": "Utilisée pour résoudre les attentes d'événement",
"schemaRef": "Référence du schéma de payload de l'événement (avancé)",
"schemaRefPlaceholderEmpty": "Aucun schemaRef pour cet événement",
"payloadJson": "Payload (JSON)",
"payload": "Payload"
},
"modes": {
"form": "Formulaire",
"json": "JSON",
"noSchema": "Aucun schéma disponible ; mode formulaire désactivé."
},
"errors": {
"schemaValidationTitle": "Erreurs de validation du schéma",
"moreErrors": "+{{count}} de plus",
"fixBeforeSubmit": "Corrigez les erreurs de validation du schéma avant de soumettre.",
"simulationTitle": "Erreur de simulation",
"submitFallback": "Échec de la simulation",
"submitToast": "Échec de la simulation",
"invalidJson": "JSON non valide.",
"valueMustBeAllowed": "La valeur doit être l'une des options autorisées.",
"expectedObject": "Objet attendu.",
"expectedArray": "Tableau attendu.",
"expectedString": "Chaîne attendue.",
"expectedNumber": "Nombre attendu.",
"expectedBoolean": "Booléen attendu.",
"requiredField": "Champ obligatoire manquant."
},
"result": {
"title": "Résultat",
"status": "Statut",
"eventId": "ID d'événement",
"startedRuns": "Exécutions lancées",
"open": "Ouvrir",
"resumedRun": "Exécution reprise",
"openResumedRun": "Ouvrir l'exécution reprise"
},
"toasts": {
"success": "Événement simulé"
},
"form": {
"remove": "Supprimer",
"addItem": "Ajouter un élément",
"rootLabel": "Payload",
"payloadJsonLabel": "Payload (JSON)",
"true": "Vrai",
"false": "Faux"
}
},
"defineEventDialog": {
"title": "Définir un événement personnalisé",
"headerTitle": "Définir un événement personnalisé",
"cancel": "Annuler",
"submit": "Créer l'événement",
"submitting": "Création…",
"fields": {
"eventType": "Type d'événement",
"eventTypePlaceholder": "p. ex., ticket.created",
"name": "Nom",
"namePlaceholder": "Nom convivial",
"category": "Catégorie",
"categoryPlaceholder": "p. ex., Tickets",
"description": "Description",
"descriptionPlaceholder": "Description facultative",
"useSchemaRef": "Utiliser une référence de schéma",
"useInline": "Schéma en ligne (avancé)",
"selectSchemaRef": "Sélectionner une référence de schéma de payload",
"selectPlaceholder": "Sélectionner…",
"payloadSchemaJson": "Schéma de payload (JSON)"
},
"footer": "Les événements personnalisés sont limités au tenant et peuvent servir de déclencheurs de workflow.",
"validation": {
"typeAndNameRequired": "Le type d'événement et le nom sont obligatoires.",
"schemaRefRequired": "Sélectionnez une référence de schéma de payload (ou utilisez un schéma en ligne).",
"invalidJson": "Le schéma de payload doit être un JSON valide."
},
"toasts": {
"createSuccess": "Événement personnalisé créé",
"createFailed": "Échec de la création de l'événement"
}
},
"toasts": {
"loadEventsFailed": "Échec du chargement des événements",
"workflowCreated": "Workflow créé",
"createWorkflowFailed": "Échec de la création du workflow",
"detachConfirm": "Détacher ce workflow de l'événement ? Cela publie une nouvelle version sans le déclencheur.",
"detachValidationFailed": "Échec du détachement (erreurs de validation)",
"detached": "Détaché",
"detachFailed": "Échec du détachement"
}
},
"actionInput": {
"fallbacks": {
"loadingOptions": "Chargement des options...",
"selectName": "Sélectionner {{name}}",
"ticketSearchPlaceholder": "Rechercher des tickets par numéro ou titre",
"ticketSelect": "Sélectionner un ticket",
"ticketTypeAbove": "Saisissez ci-dessus pour rechercher des tickets",
"selectBoard": "Sélectionner un tableau",
"selectClient": "Sélectionner un client",
"selectContact": "Sélectionner un contact",
"selectUser": "Sélectionner un utilisateur",
"selectUserOrTeam": "Sélectionner un utilisateur ou une équipe"
},
"errors": {
"loadTicket": "Échec du chargement du ticket",
"searchTickets": "Échec de la recherche de tickets",
"loadOptions": "Échec du chargement des options"
},
"dependencyHints": {
"contactClient": "Choisissez d'abord un client fixe pour charger les options de contact.",
"locationClient": "Choisissez d'abord un client fixe pour charger les options de site.",
"categoryBoard": "Choisissez d'abord un tableau fixe pour charger les options de catégorie.",
"statusBoard": "Choisissez d'abord un tableau fixe pour charger les options de statut.",
"statusTicket": "Choisissez d'abord un ticket fixe pour charger les options de statut.",
"subcategoryBoard": "Choisissez d'abord un tableau fixe pour charger les options de sous-catégorie.",
"subcategoryCategory": "Choisissez d'abord une catégorie fixe pour charger les options de sous-catégorie."
}
}
},
"automationGate": {
"loading": "Chargement de l'automatisation des workflows..."
},
"flow": {
"designer": {
"title": "Concepteur de workflow"
},
"sidebar": {
"dragHint": "Faites glisser ces nœuds sur le canevas :"
},
"picker": {
"searchPlaceholder": "Rechercher..."
},
"fields": {
"selectInputField": "Sélectionner un champ d'entrée",
"customFieldReference": "Référence de champ personnalisée",
"selectOrEnterReference": "Sélectionnez ou saisissez une référence de champ"
},
"delete": {
"confirmTitle": "Confirmer la suppression",
"confirmMessage": "Êtes-vous sûr de vouloir supprimer ce workflow ?"
},
"topBar": {
"workflowName": "Nom du workflow",
"workflowDescription": "Description du workflow"
},
"nodes": {
"classifier": {
"newClassification": "Nouvelle classification"
},
"selector": {
"defaultInput": "Entrée par défaut"
},
"decision": {
"type": "Type",
"conditionValue": "Valeur de condition",
"defaultOutput": "Sortie par défaut",
"defaultOutputProp": "Sortie par défaut"
},
"ticketCreator": {
"ticketTitle": "Titre du ticket :",
"ticketDescription": "Description du ticket :",
"selectBoard": "Sélectionnez ou saisissez un tableau",
"selectPriority": "Sélectionnez ou saisissez une priorité"
}
}
}
}