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
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
667 lines
27 KiB
JSON
667 lines
27 KiB
JSON
{
|
||
"profile": {
|
||
"tabs": {
|
||
"profile": "Profil",
|
||
"security": "Sécurité",
|
||
"sso": "SSO",
|
||
"apiKeys": "Clés API",
|
||
"notifications": "Notifications",
|
||
"calendar": "Calendrier",
|
||
"keyboardShortcuts": "Keyboard Shortcuts"
|
||
},
|
||
"basicInfo": {
|
||
"title": "Informations de base"
|
||
},
|
||
"fields": {
|
||
"firstName": {
|
||
"label": "Prénom *"
|
||
},
|
||
"lastName": {
|
||
"label": "Nom *"
|
||
},
|
||
"email": {
|
||
"label": "Courriel *"
|
||
},
|
||
"phoneNumber": {
|
||
"label": "Numéro de téléphone"
|
||
},
|
||
"timeZone": {
|
||
"label": "Fuseau horaire"
|
||
}
|
||
},
|
||
"actions": {
|
||
"saveChanges": "Enregistrer les modifications"
|
||
},
|
||
"notifications": {
|
||
"title": "Préférences de notification",
|
||
"viewSwitcher": {
|
||
"email": "Courriel",
|
||
"internal": "Interne"
|
||
}
|
||
},
|
||
"loading": "Chargement du profil...",
|
||
"messages": {
|
||
"success": {
|
||
"profileUpdated": "Profil mis à jour avec succès"
|
||
},
|
||
"error": {
|
||
"userNotFound": "Utilisateur introuvable",
|
||
"fillRequiredFields": "Veuillez remplir tous les champs obligatoires",
|
||
"loadFailed": "Échec du chargement du profil",
|
||
"saveFailed": "Échec de l'enregistrement du profil",
|
||
"errorPrefix": "Erreur : {{error}}"
|
||
}
|
||
},
|
||
"validation": {
|
||
"firstNameRequired": "Le prénom est obligatoire",
|
||
"lastNameRequired": "Le nom est obligatoire"
|
||
},
|
||
"pageTitle": "Votre profil",
|
||
"changePassword": {
|
||
"title": "Changer le mot de passe",
|
||
"current": "Mot de passe actuel",
|
||
"new": "Nouveau mot de passe",
|
||
"confirm": "Confirmer le nouveau mot de passe",
|
||
"requirements": "Le mot de passe doit contenir au moins 8 caractères",
|
||
"submit": "Changer le mot de passe",
|
||
"success": "Mot de passe modifié avec succès",
|
||
"error": "Échec de la modification du mot de passe",
|
||
"passwordMismatch": "Les nouveaux mots de passe ne correspondent pas",
|
||
"unknownError": "Une erreur est survenue lors du changement de mot de passe",
|
||
"validationFailed": "Le mot de passe ne respecte pas toutes les exigences"
|
||
},
|
||
"loadingStates": {
|
||
"sso": {
|
||
"title": "Authentification unique",
|
||
"description": "Chargement des paramètres SSO..."
|
||
},
|
||
"calendar": {
|
||
"title": "Calendrier",
|
||
"description": "Chargement des paramètres du calendrier..."
|
||
}
|
||
}
|
||
},
|
||
"security": {
|
||
"title": "Paramètres de sécurité",
|
||
"tabs": {
|
||
"roles": "Rôles",
|
||
"sessions": "Sessions",
|
||
"sso": "SSO",
|
||
"permissions": "Autorisations",
|
||
"userRoles": "Rôles des utilisateurs",
|
||
"policies": "Politiques",
|
||
"apiKeys": "Clés API",
|
||
"webhooks": "Webhooks"
|
||
},
|
||
"loading": {
|
||
"roles": "Chargement de la configuration des rôles...",
|
||
"permissions": "Chargement de la configuration des permissions...",
|
||
"userRoles": "Chargement de la configuration des rôles des utilisateurs...",
|
||
"policies": "Chargement de la configuration des politiques...",
|
||
"apiKeys": "Chargement de la configuration des clés API...",
|
||
"webhooks": "Chargement de la configuration des webhooks...",
|
||
"sso": "Chargement des outils de gestion SSO...",
|
||
"sessions": "Chargement des sessions actives..."
|
||
},
|
||
"userRoles": {
|
||
"title": "Attribuer des rôles aux utilisateurs",
|
||
"description": {
|
||
"msp": "Gérer les attributions de rôles pour les utilisateurs MSP",
|
||
"client": "Gérer les attributions de rôles pour les utilisateurs du portail client"
|
||
},
|
||
"viewSwitcher": {
|
||
"msp": "MSP",
|
||
"clientPortal": "Portail client"
|
||
},
|
||
"showInactive": "Afficher les utilisateurs inactifs",
|
||
"fields": {
|
||
"selectUser": "Sélectionner un utilisateur",
|
||
"selectRole": "Sélectionner un rôle"
|
||
},
|
||
"actions": {
|
||
"assignRole": "Attribuer un rôle"
|
||
},
|
||
"table": {
|
||
"user": "Utilisateur",
|
||
"email": "Courriel",
|
||
"roles": "Rôles",
|
||
"actions": "Actions"
|
||
},
|
||
"noRolesAssigned": "Aucun rôle attribué",
|
||
"removeRole": "Supprimer {{role}}",
|
||
"emptyState": {
|
||
"noUsers": "Aucun utilisateur {{type}} trouvé",
|
||
"inactiveHidden": "(utilisateurs inactifs masqués)"
|
||
},
|
||
"inactiveTag": "(Inactif)",
|
||
"unnamedUser": "Utilisateur sans nom",
|
||
"messages": {
|
||
"success": {
|
||
"roleAssigned": "Rôle attribué avec succès",
|
||
"roleRemoved": "Rôle supprimé avec succès"
|
||
},
|
||
"error": {
|
||
"assignFailed": "Échec de l'attribution du rôle. Veuillez réessayer.",
|
||
"removeFailed": "Échec de la suppression du rôle. Veuillez réessayer.",
|
||
"permissionDenied": "Vous n'avez pas la permission de modifier les rôles des utilisateurs."
|
||
}
|
||
}
|
||
},
|
||
"sessions": {
|
||
"title": "Toutes les sessions utilisateur",
|
||
"filters": {
|
||
"search": "Rechercher",
|
||
"searchPlaceholder": "Rechercher par nom, courriel, appareil ou IP...",
|
||
"user": "Utilisateur",
|
||
"allUsers": "Tous les utilisateurs",
|
||
"loginMethod": "Méthode de connexion",
|
||
"allMethods": "Toutes les méthodes",
|
||
"userType": "Type d'utilisateur",
|
||
"allTypes": "Tous les types",
|
||
"from": "Du",
|
||
"to": "Au",
|
||
"selectDate": "Sélectionner une date",
|
||
"reset": "Réinitialiser"
|
||
},
|
||
"loginMethods": {
|
||
"password": "Mot de passe",
|
||
"google": "Google OAuth",
|
||
"microsoft": "Microsoft OAuth",
|
||
"keycloak": "Keycloak"
|
||
},
|
||
"userTypes": {
|
||
"internal": "Interne",
|
||
"client": "Client"
|
||
},
|
||
"session": {
|
||
"yourSession": "Votre session",
|
||
"unknownDevice": "Appareil inconnu",
|
||
"lastActive": "Dernière activité {{time}}",
|
||
"logout": "Déconnexion",
|
||
"revoke": "Révoquer",
|
||
"revoking": "Révocation..."
|
||
},
|
||
"oauthWarning": "La révocation de cette session ne révoquera pas l'accès OAuth {{provider}}. Révoquez l'accès depuis les paramètres de votre compte {{provider}}.",
|
||
"confirmLogout": "Êtes-vous sûr de vouloir vous déconnecter de cet appareil ?",
|
||
"messages": {
|
||
"loggingOut": "Déconnexion en cours...",
|
||
"revoked": "Session révoquée avec succès",
|
||
"loadFailed": "Échec du chargement des sessions",
|
||
"revokeFailed": "Échec de la révocation de la session"
|
||
},
|
||
"emptyState": {
|
||
"loading": "Chargement des sessions...",
|
||
"noMatch": "Aucune session ne correspond à votre recherche",
|
||
"noSessions": "Aucune session active trouvée"
|
||
},
|
||
"subtitle_one": "{{sessionCount}} session active pour {{userCount}} utilisateur",
|
||
"subtitle_other": "{{sessionCount}} sessions actives pour {{userCount}} utilisateurs"
|
||
},
|
||
"webhooks": {
|
||
"title": "Webhooks sortants",
|
||
"description": "Créez des abonnements signés au cycle de vie des tickets, filtrez-les par identifiants de ticket spécifiques, inspectez l'historique des livraisons et faites tourner les secrets sans quitter les paramètres.",
|
||
"newWebhook": "Nouveau webhook",
|
||
"tabs": {
|
||
"configuration": "Configuration",
|
||
"deliveries": "Livraisons",
|
||
"inbound": "Entrants",
|
||
"outbound": "Sortants"
|
||
},
|
||
"inbound": {
|
||
"title": "Webhooks entrants",
|
||
"description": "Acceptez les requêtes authentifiées de systèmes externes et dispatchez-les vers des actions directes ou des workflows.",
|
||
"placeholder": "Configurez des endpoints de webhooks entrants qui vérifient les requêtes, déduisent les livraisons et dispatchent vers des actions ou des workflows.",
|
||
"newWebhook": "Nouveau webhook",
|
||
"list": {
|
||
"title": "Webhooks entrants configurés",
|
||
"loading": "Chargement…",
|
||
"configuredCount": "{{count}} configurés",
|
||
"empty": "Aucun webhook entrant configuré.",
|
||
"columns": {
|
||
"name": "Nom",
|
||
"handler": "Gestionnaire",
|
||
"lastDelivery": "Dernière livraison",
|
||
"active": "Actif",
|
||
"actions": "Actions"
|
||
}
|
||
},
|
||
"handlers": {
|
||
"directAction": "Action directe",
|
||
"workflow": "Workflow"
|
||
},
|
||
"status": {
|
||
"active": "Actif",
|
||
"inactive": "Inactif"
|
||
},
|
||
"messages": {
|
||
"loadFailed": "Échec du chargement des webhooks entrants.",
|
||
"nameRequired": "Le nom est requis.",
|
||
"slugRequired": "Le slug est requis.",
|
||
"actionRequired": "Sélectionnez une action avant d'enregistrer.",
|
||
"workflowRequired": "Sélectionnez un workflow avant d'enregistrer.",
|
||
"missingRequiredFields": "Mappez une valeur pour les champs requis : {{fields}}"
|
||
},
|
||
"dialog": {
|
||
"createTitle": "Créer un webhook entrant",
|
||
"editTitle": "Modifier le webhook entrant",
|
||
"cancel": "Annuler",
|
||
"create": "Créer le webhook",
|
||
"save": "Enregistrer les modifications",
|
||
"saveUnavailable": "Continuer"
|
||
},
|
||
"identity": {
|
||
"title": "Identité",
|
||
"help": "Nommez le webhook et choisissez le slug compatible URL utilisé dans son endpoint récepteur.",
|
||
"name": "Nom",
|
||
"namePlaceholder": "Alertes RMM critiques",
|
||
"slug": "Slug",
|
||
"slugPlaceholder": "alertes-rmm-critiques",
|
||
"description": "Description",
|
||
"descriptionPlaceholder": "Notes optionnelles sur le système source et la charge utile."
|
||
},
|
||
"auth": {
|
||
"title": "Authentification",
|
||
"help": "Choisissez comment les requêtes entrantes prouvent qu'elles sont autorisées à utiliser cet endpoint.",
|
||
"method": "Méthode d'authentification",
|
||
"types": {
|
||
"hmacSha256": "HMAC-SHA256",
|
||
"bearer": "Jeton Bearer",
|
||
"ipAllowlist": "Liste blanche IP",
|
||
"pathToken": "Secret partagé dans le chemin"
|
||
},
|
||
"signatureHeader": "En-tête de signature",
|
||
"signatureHeaderPlaceholder": "X-Alga-Signature",
|
||
"bearerToken": "Jeton Bearer",
|
||
"bearerTokenPlaceholder": "Collez le jeton ou laissez vide pour en générer un",
|
||
"secretUnchangedPlaceholder": "Laissez vide pour conserver le secret actuel",
|
||
"ipCidrs": "IPs / CIDRs autorisés",
|
||
"ipCidrsPlaceholder": "203.0.113.10\n198.51.100.0/24",
|
||
"queryParam": "Paramètre de requête",
|
||
"queryParamPlaceholder": "token",
|
||
"pathToken": "Jeton de chemin",
|
||
"pathTokenPlaceholder": "Collez le jeton ou laissez vide pour en générer un"
|
||
},
|
||
"secret": {
|
||
"label": "Secret du webhook",
|
||
"warning": "Cette valeur n'est affichée que maintenant. Enregistrez-la dans le système source avant de fermer cette boîte de dialogue.",
|
||
"copy": "Copier",
|
||
"download": "Télécharger en .txt",
|
||
"close": "Fermer"
|
||
},
|
||
"idempotency": {
|
||
"title": "Idempotence",
|
||
"help": "Utilisez une clé stable pour détecter les livraisons en double dans la fenêtre configurée.",
|
||
"source": "Source de la clé",
|
||
"types": {
|
||
"header": "En-tête HTTP",
|
||
"jsonata": "Expression JSONata"
|
||
},
|
||
"headerName": "Nom de l'en-tête",
|
||
"headerNamePlaceholder": "X-Idempotency-Key",
|
||
"jsonataExpression": "Expression JSONata",
|
||
"jsonataExpressionPlaceholder": "alert.id",
|
||
"windowSeconds": "Fenêtre de doublons (secondes)"
|
||
},
|
||
"active": {
|
||
"title": "État actif",
|
||
"help": "Mettez en pause l'endpoint sans supprimer son URL, ses mappages ou son historique de livraison.",
|
||
"toggle": "Webhook actif",
|
||
"autoDisabled": "Désactivé automatiquement le {{date}} après des échecs répétés.",
|
||
"updateFailed": "Échec de la mise à jour de l'état du webhook entrant."
|
||
},
|
||
"handler": {
|
||
"title": "Gestionnaire",
|
||
"help": "Choisissez ce qu'Alga doit faire après que la requête est vérifiée et déduisée.",
|
||
"type": "Type de gestionnaire",
|
||
"types": {
|
||
"directAction": "Action directe",
|
||
"workflow": "Workflow"
|
||
},
|
||
"directActionTitle": "Action directe",
|
||
"directActionHelp": "Sélectionnez une action entrante et mappez les champs de la charge utile à ses champs cibles.",
|
||
"action": "Action",
|
||
"actionPlaceholder": "Sélectionnez une action",
|
||
"actionEmpty": "Aucune action entrante enregistrée. Assurez-vous que le serveur a initialisé le registre d'actions avant d'enregistrer.",
|
||
"targetFields": "Champs cibles",
|
||
"required": "Requis",
|
||
"optional": "Optionnel",
|
||
"mappingPlaceholder": "Saisissez une expression JSONata, par ex. payload.field",
|
||
"workflowTitle": "Workflow",
|
||
"workflowHelp": "Sélectionnez un workflow à démarrer avec l'enveloppe normalisée du webhook.",
|
||
"workflow": "Workflow",
|
||
"workflowPlaceholder": "Sélectionnez un workflow",
|
||
"workflowEmpty": "Aucun workflow visible dans ce locataire. Publiez ou affichez un workflow pour utiliser le gestionnaire de workflow.",
|
||
"envelopeTitle": "Enveloppe d'entrée du workflow",
|
||
"fieldTypes": {
|
||
"string": "chaîne",
|
||
"int": "entier",
|
||
"number": "nombre",
|
||
"boolean": "booléen",
|
||
"enum": "énumération",
|
||
"json": "json",
|
||
"ref": "référence"
|
||
}
|
||
},
|
||
"sample": {
|
||
"title": "Charge utile exemple",
|
||
"help": "Capturez la prochaine requête vérifiée pour l'autocomplétion du mappage.",
|
||
"createFirst": "Enregistrez le webhook avant de capturer une requête exemple.",
|
||
"captureButton": "Capturer la requête exemple",
|
||
"captureActive": "Fenêtre de capture active jusqu'à {{expiresAt}}.",
|
||
"sampleAvailable": "Charge utile exemple capturée.",
|
||
"noSample": "Aucun exemple capturé pour le moment.",
|
||
"captureFailed": "Échec de l'activation de la capture d'exemple."
|
||
},
|
||
"sampleTree": {
|
||
"title": "Chemins exemples",
|
||
"help": "Cliquez sur un chemin pour l'insérer dans {{field}}.",
|
||
"focusHelp": "Focalisez un champ de mappage, puis cliquez sur un chemin pour l'insérer.",
|
||
"empty": "Capturez une charge utile exemple pour parcourir les champs."
|
||
},
|
||
"mapping": {
|
||
"modeStatic": "Valeur statique",
|
||
"modeExpression": "Mapper depuis la charge utile",
|
||
"unknownReference": "référence inconnue",
|
||
"loading": "Chargement…",
|
||
"errors": {
|
||
"INVALID_INT": "La valeur \"{{value}}\" doit être un entier.",
|
||
"INVALID_NUMBER": "La valeur \"{{value}}\" doit être un nombre.",
|
||
"INVALID_BOOLEAN": "La valeur doit être \"true\" ou \"false\".",
|
||
"INVALID_JSON": "La valeur doit être un JSON valide."
|
||
}
|
||
},
|
||
"deliveryLog": {
|
||
"title": "Journal des livraisons",
|
||
"help": "Livraisons vérifiées récentes pour ce webhook entrant.",
|
||
"empty": "Aucune livraison enregistrée.",
|
||
"loadFailed": "Échec du chargement des livraisons.",
|
||
"pageSummary": "Page {{page}} sur {{total}}",
|
||
"durationMs": "{{duration}} ms",
|
||
"allStatuses": "Tous les statuts",
|
||
"columns": {
|
||
"received": "Reçu",
|
||
"status": "Statut",
|
||
"response": "Réponse",
|
||
"duration": "Durée",
|
||
"actions": "Actions"
|
||
},
|
||
"view": "Voir",
|
||
"status": {
|
||
"pending": "en attente",
|
||
"dispatched": "livré",
|
||
"duplicate": "doublon",
|
||
"failed": "échec"
|
||
}
|
||
},
|
||
"deliveryDetail": {
|
||
"title": "Détail de la livraison",
|
||
"close": "Fermer",
|
||
"replay": "Rejouer",
|
||
"replayConfirm": "Renvoyer cette livraison via la configuration actuelle du webhook ? Tous les effets secondaires (création de tickets, changements de statut, etc.) seront à nouveau exécutés.",
|
||
"replayFailed": "Échec du rejeu de la livraison.",
|
||
"received": "Reçu",
|
||
"status": "Statut",
|
||
"responseStatus": "Statut de la réponse",
|
||
"duration": "Durée",
|
||
"sections": {
|
||
"headers": "En-têtes de la requête",
|
||
"requestBody": "Corps de la requête",
|
||
"responseBody": "Corps de la réponse",
|
||
"handlerOutcome": "Résultat du gestionnaire"
|
||
}
|
||
},
|
||
"test": {
|
||
"openButton": "Envoyer un test",
|
||
"title": "Envoyer une requête de test",
|
||
"body": "Corps JSON de la requête",
|
||
"headers": "En-têtes",
|
||
"cancel": "Annuler",
|
||
"send": "Envoyer le test",
|
||
"sendFailed": "Échec de l'envoi de la requête de test du webhook."
|
||
}
|
||
},
|
||
"stats": {
|
||
"total": "Total des webhooks",
|
||
"active": "Actifs",
|
||
"autoDisabled": "Désactivés automatiquement"
|
||
},
|
||
"secret": {
|
||
"label": "Clé de signature",
|
||
"warning": "Cette valeur n'est affichée qu'une seule fois. Enregistrez-la dans le récepteur avant de quitter la page.",
|
||
"copy": "Copier",
|
||
"copied": "Secret de signature copié dans le presse-papiers",
|
||
"copyFailed": "Échec de la copie du secret de signature dans le presse-papiers",
|
||
"close": "Fermer",
|
||
"download": "Télécharger en .txt"
|
||
},
|
||
"form": {
|
||
"createTitle": "Créer un webhook",
|
||
"editTitle": "Modifier le webhook",
|
||
"helper": "La configuration des nouvelles tentatives est stockée au format JSON ; la cadence de livraison utilise toujours le calendrier de backoff standard de la plateforme en v1.",
|
||
"name": "Nom",
|
||
"namePlaceholder": "Flux d'attribution des tickets",
|
||
"url": "URL",
|
||
"urlPlaceholder": "https://example.com/hooks/alga",
|
||
"events": "Événements",
|
||
"customHeaders": "En-têtes personnalisés",
|
||
"customHeadersPlaceholder": "Authorization: Bearer abc123\nX-Source: alga-psa",
|
||
"ticketFilter": "Filtre de tickets",
|
||
"ticketFilterPlaceholder": "Un UUID de ticket par ligne. Laissez vide pour recevoir tous les événements de ticket correspondants.",
|
||
"retryConfig": "Configuration des nouvelles tentatives (JSON)",
|
||
"verifySsl": "Vérifier les certificats SSL",
|
||
"webhookActive": "Le webhook est actif",
|
||
"save": "Enregistrer les modifications",
|
||
"saving": "Enregistrement…",
|
||
"create": "Créer le webhook",
|
||
"clear": "Effacer",
|
||
"delete": "Supprimer",
|
||
"payloadFields": "Champs envoyés",
|
||
"payloadFieldsHelp": "Tous les champs sont envoyés par défaut. Décochez pour exclure un champ de la livraison. La clé de corrélation de l’entité (p. ex. ticket_id) est toujours incluse.",
|
||
"payloadFieldsSelectAll": "Tout sélectionner",
|
||
"payloadFieldsClear": "Effacer"
|
||
},
|
||
"list": {
|
||
"title": "Webhooks configurés",
|
||
"loading": "Chargement…",
|
||
"configuredCount": "{{count}} configurés",
|
||
"empty": "Aucun webhook configuré pour le moment.",
|
||
"columns": {
|
||
"name": "Nom",
|
||
"status": "Statut",
|
||
"lastDelivery": "Dernière livraison",
|
||
"success": "Réussite",
|
||
"actions": "Actions"
|
||
},
|
||
"actions": {
|
||
"selected": "Sélectionné",
|
||
"manage": "Gérer",
|
||
"pause": "Suspendre",
|
||
"resume": "Reprendre",
|
||
"view": "Voir",
|
||
"edit": "Modifier"
|
||
}
|
||
},
|
||
"detail": {
|
||
"summary": "{{total}} livraisons, {{successful}} réussies, {{failed}} échouées.",
|
||
"sendTest": "Envoyer un test",
|
||
"sending": "Envoi…",
|
||
"rotateSecret": "Faire tourner la clé",
|
||
"rotating": "Rotation…",
|
||
"back": "Retour aux webhooks"
|
||
},
|
||
"deliveries": {
|
||
"title": "Historique des livraisons",
|
||
"page": "Page {{page}} sur {{total}}",
|
||
"empty": "Aucune livraison enregistrée pour le moment.",
|
||
"columns": {
|
||
"event": "Événement",
|
||
"status": "Statut",
|
||
"attempted": "Tenté",
|
||
"response": "Réponse",
|
||
"action": "Action"
|
||
},
|
||
"testBadge": "Livraison de test",
|
||
"attempt": "Tentative {{number}}",
|
||
"noResponseCode": "s.o.",
|
||
"noResponseBody": "Aucun corps de réponse capturé.",
|
||
"retry": "Réessayer",
|
||
"previous": "Précédent",
|
||
"next": "Suivant"
|
||
},
|
||
"messages": {
|
||
"loadFailed": "Impossible de charger les paramètres du webhook.",
|
||
"loadDeliveriesFailed": "Impossible de charger les livraisons du webhook.",
|
||
"saveFailed": "Impossible d'enregistrer le webhook.",
|
||
"createSuccess": "Webhook créé.",
|
||
"updateSuccess": "Webhook mis à jour.",
|
||
"deleteConfirm": "Supprimer le webhook \"{{name}}\" ?",
|
||
"deleteSuccess": "Webhook supprimé.",
|
||
"deleteFailed": "Impossible de supprimer le webhook.",
|
||
"testSuccess": "Test envoyé avec succès ({{statusCode}}).",
|
||
"testFailed": "Échec du test : {{message}}",
|
||
"testRunFailed": "Impossible d'envoyer le test de webhook.",
|
||
"unknownError": "Erreur inconnue",
|
||
"secretRotated": "Clé de signature renouvelée.",
|
||
"rotateFailed": "Impossible de faire tourner la clé du webhook.",
|
||
"resumed": "Webhook repris.",
|
||
"paused": "Webhook suspendu.",
|
||
"stateChangeFailed": "Impossible de mettre à jour l'état du webhook.",
|
||
"retryQueued": "Nouvelle tentative en file d'attente pour l'événement {{eventId}}.",
|
||
"retryFailed": "Impossible de réessayer la livraison.",
|
||
"invalidHeaderLine": "Ligne d'en-tête non valide : \"{{line}}\"",
|
||
"invalidRetryConfig": "La configuration des nouvelles tentatives doit être un objet JSON"
|
||
},
|
||
"common": {
|
||
"never": "Jamais"
|
||
},
|
||
"health": {
|
||
"healthy": "sain",
|
||
"failing": "en échec",
|
||
"disabled": "désactivé"
|
||
},
|
||
"deliveryStatus": {
|
||
"delivered": "livré",
|
||
"retrying": "nouvelle tentative",
|
||
"abandoned": "abandonné",
|
||
"pending": "en attente"
|
||
}
|
||
},
|
||
"apiKeys": {
|
||
"rateLimit": {
|
||
"columnTitle": "Limite de débit",
|
||
"loading": "Chargement…",
|
||
"summary": "{{maxTokens}} en rafale / {{refillPerMin}} par min",
|
||
"source": "Source : {{label}}",
|
||
"sourceLabels": {
|
||
"key": "Remplacement",
|
||
"tenant": "Valeur par défaut du tenant",
|
||
"default": "Valeur par défaut du système"
|
||
},
|
||
"remaining": " • Restant : {{remaining}}/{{maxTokens}}",
|
||
"remainingUnavailable": " • Restant : indisponible",
|
||
"actions": {
|
||
"edit": "Modifier",
|
||
"override": "Remplacer",
|
||
"save": "Enregistrer",
|
||
"cancel": "Annuler",
|
||
"reset": "Réinitialiser"
|
||
},
|
||
"errors": {
|
||
"saveFailed": "Impossible d'enregistrer le remplacement de la limite de débit de l'API.",
|
||
"clearFailed": "Impossible de supprimer le remplacement de la limite de débit de l'API."
|
||
}
|
||
},
|
||
"generate": {
|
||
"title": "Générer une clé API",
|
||
"description": "Description",
|
||
"descriptionPlaceholder": "p. ex. Clé API de développement",
|
||
"expiration": "Date d'expiration (facultatif)",
|
||
"submit": "Générer une nouvelle clé API"
|
||
},
|
||
"list": {
|
||
"title": "Vos clés API",
|
||
"searchPlaceholder": "Rechercher par description",
|
||
"filters": {
|
||
"allStatuses": "Tous les statuts",
|
||
"active": "Active",
|
||
"inactive": "Inactive",
|
||
"lastUsedAfter": "Dernière utilisation après",
|
||
"expiresBefore": "Expire avant",
|
||
"reset": "Réinitialiser"
|
||
},
|
||
"columns": {
|
||
"description": "Description",
|
||
"created": "Créée",
|
||
"lastUsed": "Dernière utilisation",
|
||
"expires": "Expiration",
|
||
"status": "Statut",
|
||
"actions": "Actions"
|
||
},
|
||
"never": "Jamais",
|
||
"status": {
|
||
"active": "Active",
|
||
"inactive": "Inactive"
|
||
},
|
||
"deactivate": "Désactiver"
|
||
},
|
||
"newKeyDialog": {
|
||
"title": "Clé API générée",
|
||
"warning": "Veuillez copier votre clé API maintenant. Pour des raisons de sécurité, elle ne sera plus affichée.",
|
||
"copy": "Copier dans le presse-papiers",
|
||
"download": "Télécharger en .txt",
|
||
"copySuccess": "Clé API copiée dans le presse-papiers !",
|
||
"copyFailed": "Échec de la copie de la clé API dans le presse-papiers",
|
||
"downloadFailed": "Échec du téléchargement de la clé API"
|
||
}
|
||
}
|
||
},
|
||
"platformUpdates": {
|
||
"detail": {
|
||
"back": "Retour",
|
||
"labels": {
|
||
"info": "Info",
|
||
"warning": "Avertissement",
|
||
"destructive": "Critique",
|
||
"success": "Succès",
|
||
"default": "Avis"
|
||
}
|
||
}
|
||
},
|
||
"connectSso": {
|
||
"verify": {
|
||
"title": "Sécurisez votre compte avec le SSO",
|
||
"description": "Liez Azure AD ou Google Workspace pour réutiliser les politiques de l'organisation et éviter les invites d'authentification à deux facteurs locales.",
|
||
"signedInAs": "Connecté en tant que",
|
||
"currentPassword": "Mot de passe actuel",
|
||
"twoFactorCode": "Code d'authentification à deux facteurs",
|
||
"twoFactorPlaceholder": "123456",
|
||
"verifyCredentials": "Vérifier les identifiants",
|
||
"verifying": "Vérification...",
|
||
"reset": "Réinitialiser",
|
||
"linkedSuccess": "Fournisseur lié avec succès.",
|
||
"credentialsVerified": "Identifiants vérifiés. Choisissez un fournisseur ci-dessous pour finaliser la liaison de votre compte.",
|
||
"verifyFailed": "Impossible de vérifier les identifiants.",
|
||
"verifyBeforeProvider": "Vérifiez votre mot de passe (et le code d'authentification à deux facteurs si requis) avant de connecter un fournisseur."
|
||
},
|
||
"providers": {
|
||
"title": "Connecter un fournisseur",
|
||
"description": "Choisissez un fournisseur pour finaliser la liaison SSO. Vous serez redirigé vers le flux de connexion du fournisseur.",
|
||
"noneConfigured": "Aucun fournisseur SSO n'est configuré pour cet environnement. Demandez à votre administrateur de configurer les identifiants Google ou Microsoft.",
|
||
"notConfigured": "Non configuré",
|
||
"branding": {
|
||
"google": "Continuer avec Google",
|
||
"microsoft": "Continuer avec Microsoft",
|
||
"default": "Continuer"
|
||
}
|
||
},
|
||
"linked": {
|
||
"title": "Comptes liés",
|
||
"description": "Nous actualiserons la liaison la prochaine fois que vous vous connecterez via un fournisseur connecté.",
|
||
"empty": "Aucun fournisseur SSO lié pour le moment. Suivez les étapes ci-dessus pour en connecter un.",
|
||
"linkedAt": "Lié le {{date}}",
|
||
"lastUsed": "Dernière utilisation le {{date}}",
|
||
"notUsedYet": "Pas encore utilisé"
|
||
}
|
||
}
|
||
}
|