{
  "access": {
    "unauthorized": "Non autorisé",
    "unauthorized-access": "Accès non autorisé",
    "unauthorized-access-text": "Vous devez vous connecter pour accéder à cette ressource !",
    "access-forbidden": "Accès interdit",
    "access-forbidden-text": "Vous n'avez pas les droits d'accès à cet emplacement !<br/>Essayez de vous connecter avec un autre utilisateur si vous souhaitez toujours y accéder.",
    "refresh-token-expired": "La session a expiré",
    "refresh-token-failed": "Impossible de renouveler la session",
    "permission-denied": "Permission refusée",
    "permission-denied-text": "Vous n'avez pas la permission d'effectuer cette opération !"
  },
  "account": {
    "account": "Compte",
    "notification-settings": "Paramètres de notification"
  },
  "action": {
    "activate": "Activer",
    "suspend": "Suspendre",
    "save": "Enregistrer",
    "saveAs": "Enregistrer sous",
    "move": "Déplacer",
    "cancel": "Annuler",
    "ok": "OK",
    "delete": "Supprimer",
    "add": "Ajouter",
    "yes": "Oui",
    "no": "Non",
    "update": "Mettre à jour",
    "remove": "Retirer",
    "search": "Rechercher",
    "clear-search": "Effacer la recherche",
    "assign": "Assigner",
    "unassign": "Désassigner",
    "share": "Partager",
    "make-private": "Rendre privé",
    "apply": "Appliquer",
    "apply-changes": "Appliquer les modifications",
    "edit-mode": "Mode édition",
    "enter-edit-mode": "Entrer en mode édition",
    "decline-changes": "Refuser les modifications",
    "decline": "Refuser",
    "close": "Fermer",
    "back": "Retour",
    "run": "Exécuter",
    "sign-in": "Connectez-vous !",
    "edit": "Modifier",
    "view": "Voir",
    "create": "Créer",
    "drag": "Glisser",
    "refresh": "Rafraîchir",
    "undo": "Annuler",
    "copy": "Copier",
    "paste": "Coller",
    "copy-reference": "Copier la référence",
    "paste-reference": "Coller la référence",
    "import": "Importer",
    "export": "Exporter",
    "share-via": "Partager via {{provider}}",
    "select": "Sélectionner",
    "continue": "Continuer",
    "discard-changes": "Ignorer les modifications",
    "download": "Télécharger",
    "next": "Suivant",
    "next-with-label": "Suivant : {{label}}",
    "read-more": "Lire plus",
    "hide": "Masquer",
    "test": "Tester",
    "done": "Terminé",
    "print": "Imprimer",
    "restore": "Restaurer",
    "confirm": "Confirmer",
    "more": "Plus",
    "less": "Moins",
    "skip": "Passer",
    "send": "Envoyer",
    "reset": "Réinitialiser",
    "show-more": "Afficher plus",
    "dont-show-again": "Ne plus afficher",
    "see-documentation": "Voir la documentation",
    "see-debug-events": "Voir les événements de débogage",
    "clear": "Effacer",
    "upload": "Téléverser",
    "delete-anyway": "Supprimer quand même",
    "delete-selected": "Supprimer la sélection",
    "set": "Définir"
  },
  "aggregation": {
    "aggregation": "Agrégation",
    "function": "Fonction d'agrégation des données",
    "limit": "Valeurs max",
    "group-interval": "Intervalle de regroupement",
    "min": "Min",
    "max": "Max",
    "avg": "Moyenne",
    "sum": "Somme",
    "count": "Compte",
    "none": "Aucun"
  },
  "admin": {
    "settings": "Paramètres",
    "general": "Général",
    "general-settings": "Paramètres généraux",
    "home-settings": "Paramètres d'accueil",
    "home": "Accueil",
    "outgoing-mail": "Serveur de messagerie",
    "outgoing-mail-settings": "Paramètres du serveur de messagerie sortant",
    "system-settings": "Paramètres système",
    "test-mail-sent": "E-mail de test envoyé avec succès !",
    "base-url": "URL de base",
    "base-url-required": "L'URL de base est requise.",
    "prohibit-different-url": "Interdire l'utilisation du nom d'hôte des en-têtes de requête client",
    "prohibit-different-url-hint": "Ce paramètre doit être activé pour les environnements de production. Peut entraîner des problèmes de sécurité lorsqu'il est désactivé",
    "device-connectivity": {
      "device-connectivity": "Connectivité des appareils",
      "http-s": "HTTP(s)",
      "mqtt-s": "MQTT(s)",
      "coap-s": "COAP(s)",
      "http": "HTTP",
      "https": "HTTPs",
      "mqtt": "MQTT",
      "mqtts": "MQTTs",
      "coap": "COAP",
      "coaps": "COAPs",
      "hint": "Si les champs hôte ou port sont vides, la valeur du protocole par défaut sera utilisée.",
      "host": "Hôte",
      "port": "Port",
      "port-pattern": "Le port doit être un entier positif.",
      "port-range": "Le port doit être compris entre 1 et 65535."
    },
    "mail-from": "Adresse expéditrice",
    "mail-from-required": "L'adresse expéditrice est requise.",
    "smtp-protocol": "Protocole SMTP",
    "smtp-host": "Hôte SMTP",
    "smtp-host-required": "L'hôte SMTP est requis.",
    "smtp-port": "Port SMTP",
    "smtp-port-required": "Vous devez fournir un port SMTP.",
    "smtp-port-invalid": "Ce port SMTP semble invalide.",
    "timeout-msec": "Délai d'attente (ms)",
    "timeout-required": "Le délai d'attente est requis.",
    "timeout-invalid": "Ce délai d'attente semble invalide.",
    "enable-tls": "Activer TLS",
    "tls-version": "Version TLS",
    "enable-proxy": "Activer le proxy",
    "proxy-host": "Hôte proxy",
    "proxy-host-required": "L'hôte proxy est requis.",
    "proxy-port": "Port proxy",
    "proxy-port-required": "Le port proxy est requis.",
    "proxy-port-range": "Le port proxy doit être compris entre 1 et 65535.",
    "proxy-user": "Utilisateur proxy",
    "proxy-password": "Mot de passe proxy",
    "change-password": "Changer le mot de passe",
    "send-test-mail": "Envoyer un e-mail de test",
    "sms-provider": "Fournisseur SMS",
    "sms-provider-settings": "Paramètres du fournisseur SMS",
    "sms-provider-type": "Type de fournisseur SMS",
    "sms-provider-type-required": "Le type de fournisseur SMS est requis.",
    "sms-provider-type-aws-sns": "Amazon SNS",
    "sms-provider-type-twilio": "Twilio",
    "sms-provider-type-smpp": "SMPP",
    "aws-access-key-id": "ID de clé d'accès AWS",
    "aws-access-key-id-required": "L'ID de clé d'accès AWS est requis",
    "aws-secret-access-key": "Clé d'accès secrète AWS",
    "aws-secret-access-key-required": "La clé d'accès secrète AWS est requise",
    "aws-region": "Région AWS",
    "aws-region-required": "La région AWS est requise",
    "number-from": "Numéro de téléphone expéditeur",
    "number-from-required": "Le numéro de téléphone expéditeur est requis.",
    "number-to": "Numéro de téléphone destinataire",
    "number-to-required": "Le numéro de téléphone destinataire est requis.",
    "phone-number-hint": "Numéro de téléphone au format E.164, ex. +19995550123",
    "phone-number-hint-twilio": "Numéro de téléphone au format E.164 / SID du numéro / SID du service de messagerie, ex. +19995550123/PNXXX/MGXXX",
    "phone-number-pattern": "Numéro de téléphone invalide. Doit être au format E.164, ex. +19995550123.",
    "phone-number-pattern-twilio": "Numéro de téléphone invalide. Doit être au format E.164 / SID du numéro / SID du service de messagerie, ex. +19995550123/PNXXX/MGXXX.",
    "sms-message": "Message SMS",
    "sms-message-required": "Le message SMS est requis.",
    "sms-message-max-length": "Le message SMS ne peut pas dépasser 1600 caractères",
    "twilio-account-sid": "SID du compte Twilio",
    "twilio-account-sid-required": "Le SID du compte Twilio est requis",
    "twilio-account-token": "Jeton du compte Twilio",
    "twilio-account-token-required": "Le jeton du compte Twilio est requis",
    "send-test-sms": "Envoyer un SMS de test",
    "test-sms-sent": "Le SMS de test a été envoyé avec succès !",
    "security-settings": "Paramètres de sécurité",
    "password-policy": "Politique de mot de passe",
    "minimum-password-length": "Longueur minimale du mot de passe",
    "minimum-password-length-required": "La longueur minimale du mot de passe est requise",
    "minimum-password-length-range": "La longueur minimale du mot de passe doit être comprise entre 6 et 50",
    "maximum-password-length": "Longueur maximale du mot de passe",
    "maximum-password-length-min": "La longueur maximale du mot de passe doit être d'au moins 6",
    "maximum-password-length-less-min": "La longueur maximale du mot de passe doit être supérieure à la longueur minimale",
    "minimum-uppercase-letters": "Nombre minimum de lettres majuscules",
    "minimum-uppercase-letters-range": "Le nombre minimum de lettres majuscules ne peut pas être négatif",
    "minimum-lowercase-letters": "Nombre minimum de lettres minuscules",
    "minimum-lowercase-letters-range": "Le nombre minimum de lettres minuscules ne peut pas être négatif",
    "minimum-digits": "Nombre minimum de chiffres",
    "minimum-digits-range": "Le nombre minimum de chiffres ne peut pas être négatif",
    "minimum-special-characters": "Nombre minimum de caractères spéciaux",
    "minimum-special-characters-range": "Le nombre minimum de caractères spéciaux ne peut pas être négatif",
    "password-expiration-period-days": "Période d'expiration du mot de passe (en jours)",
    "password-expiration-period-days-range": "La période d'expiration ne peut pas être négative",
    "password-reuse-frequency-days": "Fréquence de réutilisation du mot de passe (en jours)",
    "password-reuse-frequency-days-range": "La fréquence de réutilisation ne peut pas être négative",
    "allow-whitespace": "Autoriser les espaces",
    "force-reset-password-if-no-valid": "Forcer la réinitialisation du mot de passe si invalide",
    "force-reset-password-if-no-valid-hint": "Attention : cette option obligera les utilisateurs avec un mot de passe invalide à le réinitialiser par e-mail.",
    "general-policy": "Politique générale",
    "max-failed-login-attempts": "Nombre maximal de tentatives de connexion échouées avant verrouillage du compte",
    "minimum-max-failed-login-attempts-range": "Le nombre maximal de tentatives échouées ne peut pas être négatif",
    "user-lockout-notification-email": "En cas de verrouillage du compte utilisateur, envoyer une notification par e-mail",
    "user-activation-token-ttl": "Durée de validité du lien d'activation (en heures)",
    "user-activation-token-ttl-range": "La durée doit être comprise entre 1 et 24 heures",
    "password-reset-token-ttl": "Durée de validité du lien de réinitialisation (en heures)",
    "password-reset-token-ttl-range": "La durée doit être comprise entre 1 et 24 heures",
    "mobile-secret-key-length": "Longueur de la clé secrète mobile",
    "mobile-secret-key-length-range": "La longueur de la clé doit être positive",
    "domain-name": "Nom de domaine",
    "domain-name-unique": "Le nom de domaine et le protocole doivent être uniques.",
    "domain-name-max-length": "Le nom de domaine doit contenir moins de 256 caractères",
    "error-verification-url": "Un nom de domaine ne doit pas contenir les caractères '/' et ':'. Exemple : thingsboard.io",
    "connection-settings": "Paramètres de connexion",
    "oauth2": {
      "access-token-uri": "URI du jeton d'accès",
      "access-token-uri-required": "L'URI du jeton d'accès est requis.",
      "activate-user": "Activer l'utilisateur",
      "add-domain": "Ajouter un domaine",
      "delete-domain": "Supprimer le domaine",
      "add-provider": "Ajouter un fournisseur",
      "delete-provider": "Supprimer le fournisseur",
      "allow-user-creation": "Autoriser la création d'utilisateurs",
      "always-fullscreen": "Toujours en plein écran",
      "authorization-uri": "URI d'autorisation",
      "authorization-uri-required": "L'URI d'autorisation est requis.",
      "add-client": "Ajouter un client OAuth 2.0",
      "client-details": "Détails du client OAuth 2.0",
      "client": "Client OAuth 2.0",
      "clients": "Clients OAuth 2.0",
      "no-oauth2-clients": "Aucun client OAuth 2.0 trouvé",
      "search-oauth2-clients": "Rechercher des clients OAuth 2.0",
      "delete-client-title": "Êtes-vous sûr de vouloir supprimer le client OAuth 2.0 '{{clientName}}' ?",
      "delete-client-text": "Attention, après confirmation, le client et toutes les données associées seront irrécupérables.",
      "delete-mobile-app-title": "Êtes-vous sûr de vouloir supprimer l'application mobile '{{applicationName}}' ?",
      "delete-mobile-app-text": "Attention, après confirmation, l'application mobile et toutes les données associées seront irrécupérables.",
      "title": "Titre",
      "client-title-required": "Le titre est requis",
      "client-title-max-length": "Le titre doit contenir moins de 100 caractères",
      "advanced-settings": "Paramètres avancés",
      "domain-details": "Détails du domaine",
      "no-domains": "Aucun domaine trouvé",
      "search-domains": "Rechercher des domaines",
      "mobile-app-details": "Détails de l'application mobile",
      "add-mobile-app": "Ajouter une application mobile",
      "no-mobile-apps": "Aucune application mobile trouvée",
      "search-mobile-apps": "Rechercher des applications mobiles",
      "send-token": "Envoyer le jeton",
      "create-new": "Créer nouveau",
      "client-authentication-method": "Méthode d'authentification du client",
      "client-id": "ID du client",
      "client-id-required": "L'ID du client est requis.",
      "client-id-max-length": "L'ID du client doit contenir moins de 256 caractères",
      "client-secret": "Secret du client",
      "client-secret-required": "Le secret du client est requis.",
      "client-secret-max-length": "Le secret du client doit contenir moins de 2049 caractères",
      "custom-setting": "Paramètres personnalisés",
      "customer-name-pattern": "Modèle de nom de client",
      "customer-name-pattern-max-length": "Le modèle de nom de client doit contenir moins de 256 caractères",
      "default-dashboard-name": "Nom du tableau de bord par défaut",
      "default-dashboard-name-max-length": "Le nom du tableau de bord par défaut doit contenir moins de 256 caractères",
      "delete-domain-text": "Attention, après confirmation, le domaine et toutes les données du fournisseur seront indisponibles.",
      "delete-domain-title": "Êtes-vous sûr de vouloir supprimer le domaine '{{domainName}}' ?",
      "delete-registration-text": "Attention, après confirmation, les données du fournisseur seront indisponibles.",
      "delete-registration-title": "Êtes-vous sûr de vouloir supprimer le fournisseur '{{name}}' ?",
      "email-attribute-key": "Clé de l'attribut e-mail",
      "email-attribute-key-required": "La clé de l'attribut e-mail est requise.",
      "email-attribute-key-max-length": "La clé de l'attribut e-mail doit contenir moins de 32 caractères",
      "first-name-attribute-key": "Clé de l'attribut prénom",
      "first-name-attribute-key-max-length": "La clé de l'attribut prénom doit contenir moins de 32 caractères",
      "general": "Général",
      "jwk-set-uri": "URI de la clé Web JSON",
      "last-name-attribute-key": "Clé de l'attribut nom",
      "last-name-attribute-key-max-length": "La clé de l'attribut nom doit contenir moins de 32 caractères",
      "login-button-icon": "Icône du bouton de connexion",
      "login-button-label": "Libellé du fournisseur",
      "login-button-label-placeholder": "Connexion avec $(Provider label)",
      "login-button-label-required": "Le libellé est requis.",
      "login-provider": "Fournisseur de connexion",
      "mapper": "Mappeur",
      "new-domain": "Nouveau domaine",
      "oauth2": "OAuth 2.0",
      "password-max-length": "Le mot de passe doit contenir moins de 256 caractères",
      "redirect-uri-template": "Modèle d'URI de redirection",
      "copy-redirect-uri": "Copier l'URI de redirection",
      "registration-id": "ID d'enregistrement",
      "registration-id-required": "L'ID d'enregistrement est requis.",
      "registration-id-unique": "L'ID d'enregistrement doit être unique dans le système.",
      "scope": "Portée",
      "scope-required": "La portée est requise.",
      "tenant-name-pattern": "Modèle de nom du locataire",
      "tenant-name-pattern-required": "Le modèle de nom du locataire est requis.",
      "tenant-name-pattern-max-length": "Le modèle de nom du locataire doit contenir moins de 256 caractères",
      "tenant-name-strategy": "Stratégie de nom de locataire",
      "type": "Type de mappeur",
      "uri-pattern-error": "Format d'URI invalide.",
      "url": "URL",
      "url-pattern": "Format d'URL invalide.",
      "url-required": "L'URL est requise.",
      "url-max-length": "L'URL doit contenir moins de 256 caractères",
      "user-info-uri": "URI des informations utilisateur",
      "user-info-uri-required": "L'URI des informations utilisateur est requise.",
      "username-max-length": "Le nom d'utilisateur doit contenir moins de 256 caractères",
      "user-name-attribute-name": "Clé de l'attribut nom d'utilisateur",
      "user-name-attribute-name-required": "La clé de l'attribut nom d'utilisateur est requise",
      "protocol": "Protocole",
      "domain-schema-http": "HTTP",
      "domain-schema-https": "HTTPS",
      "domain-schema-mixed": "HTTP+HTTPS",
      "enable": "Activer les paramètres OAuth 2.0",
      "disable": "Désactiver les paramètres OAuth 2.0",
      "edge": "Propager vers Edge",
      "edge-enable": "Activer la propagation vers Edge",
      "edge-disable": "Désactiver la propagation vers Edge",
      "domains": "Domaines",
      "mobile-apps": "Applications mobiles",
      "mobile-package": "Package de l'application",
      "mobile-package-placeholder": "Ex. : my.example.app",
      "mobile-package-hint": "Pour Android : votre identifiant d'application unique. Pour iOS : identifiant du bundle du produit.",
      "mobile-package-unique": "Le package de l'application doit être unique.",
      "mobile-package-required": "Le package de l'application est requis.",
      "mobile-package-max-length": "Le package de l'application doit contenir moins de 256 caractères",
      "mobile-package-spaces": "Le package de l'application ne doit pas contenir d'espaces",
      "mobile-app-secret": "Secret de l'application",
      "mobile-app-secret-hint": "Chaîne encodée en base64 représentant au moins 512 bits de données.",
      "mobile-app-secret-required": "Le secret de l'application est requis.",
      "mobile-app-secret-min-length": "Le secret de l'application doit contenir au moins 512 bits de données.",
      "mobile-app-secret-base64": "Le secret de l'application doit être au format base64.",
      "invalid-mobile-app-secret": "Le secret de l'application doit contenir uniquement des caractères alphanumériques et mesurer entre 16 et 2048 caractères.",
      "copy-mobile-app-secret": "Copier le secret de l'application",
      "delete-mobile-app": "Supprimer les informations de l'application",
      "providers": "Fournisseurs",
      "platform-web": "Web",
      "platform-android": "Android",
      "platform-ios": "iOS",
      "all-platforms": "Toutes les plateformes",
      "smtp-provider": "Fournisseur SMTP",
      "allowed-platforms": "Plateformes autorisées",
      "authentication": "Authentification",
      "basic": "Basique",
      "provider": "Fournisseur",
      "redirect-url": "URI de redirection",
      "domain-name": "Nom de domaine",
      "domain-name-required": "Le nom de domaine est requis",
      "redirect-url-template": "Modèle d'URI de redirection",
      "microsoft-tenant-id": "ID du répertoire (locataire)",
      "microsoft-tenant-id-required": "L'ID du répertoire (locataire) est requis",
      "token-uri": "URI du jeton",
      "token-uri-required": "L'URI du jeton est requis",
      "redirect-uri": "URI de redirection",
      "google-provider": "Google",
      "microsoft-provider": "Office 365",
      "sendgrid-provider": "Sendgrid",
      "custom-provider": "Personnalisé",
      "generate-access-token": "Générer le jeton d'accès",
      "update-access-token": "Mettre à jour le jeton d'accès",
      "access-token-status": "Statut du jeton d'accès :",
      "token-status-generated": "généré",
      "token-status-not-generated": "non généré"
    },
    "smpp-provider": {
      "smpp-version": "Version SMPP",
      "smpp-host": "Hôte SMPP",
      "smpp-host-required": "L'hôte SMPP est requis",
      "smpp-port": "Port SMPP",
      "smpp-port-required": "Le port SMPP est requis",
      "system-id": "ID système",
      "system-id-required": "L'ID système est requis",
      "password": "Mot de passe",
      "password-required": "Le mot de passe est requis",
      "type-settings": "Paramètres de type",
      "source-settings": "Paramètres source",
      "destination-settings": "Paramètres de destination",
      "additional-settings": "Paramètres supplémentaires",
      "system-type": "Type de système",
      "bind-type": "Type de liaison",
      "service-type": "Type de service",
      "source-address": "Adresse source",
      "source-ton": "TON source",
      "source-npi": "NPI source",
      "destination-ton": "TON de destination (Type de numéro)",
      "destination-npi": "NPI de destination (Identification du plan de numérotation)",
      "address-range": "Plage d'adresses",
      "coding-scheme": "Schéma de codage",
      "bind-type-tx": "Émetteur",
      "bind-type-rx": "Récepteur",
      "bind-type-trx": "Émetteur-récepteur",
      "ton-unknown": "Inconnu",
      "ton-international": "International",
      "ton-national": "National",
      "ton-network-specific": "Spécifique au réseau",
      "ton-subscriber-number": "Numéro d'abonné",
      "ton-alphanumeric": "Alphanumérique",
      "ton-abbreviated": "Abrégé",
      "npi-unknown": "0 - Inconnu",
      "npi-isdn": "1 - Plan de numérotation ISDN/téléphonique (E163/E164)",
      "npi-data-numbering-plan": "3 - Plan de numérotation des données (X.121)",
      "npi-telex-numbering-plan": "4 - Plan de numérotation Télex (F.69)",
      "npi-land-mobile": "6 - Réseau mobile terrestre (E.212)",
      "npi-national-numbering-plan": "8 - Plan de numérotation national",
      "npi-private-numbering-plan": "9 - Plan de numérotation privé",
      "npi-ermes-numbering-plan": "10 - Plan de numérotation ERMES (ETSI DE/PS 3 01-3)",
      "npi-internet": "13 - Internet (IP)",
      "npi-wap-client-id": "18 - Identifiant client WAP (défini par le WAP Forum)",
      "scheme-smsc": "0 - Alphabet par défaut du SMSC (ASCII pour code court/long, GSM pour numéro vert)",
      "scheme-ia5": "1 - IA5 (ASCII pour code court/long, Latin 9 pour numéro vert (ISO-8859-9))",
      "scheme-octet-unspecified-2": "2 - Octet non spécifié (binaire 8 bits)",
      "scheme-latin-1": "3 - Latin 1 (ISO-8859-1)",
      "scheme-octet-unspecified-4": "4 - Octet non spécifié (binaire 8 bits)",
      "scheme-jis": "5 - JIS (X 0208-1990)",
      "scheme-cyrillic": "6 - Cyrillique (ISO-8859-5)",
      "scheme-latin-hebrew": "7 - Latin/Hébreu (ISO-8859-8)",
      "scheme-ucs-utf": "8 - UCS2/UTF-16 (ISO/IEC-10646)",
      "scheme-pictogram-encoding": "9 - Encodage pictogramme",
      "scheme-music-codes": "10 - Codes musicaux (ISO-2022-JP)",
      "scheme-extended-kanji-jis": "13 - Kanji JIS étendu (X 0212-1990)",
      "scheme-korean-graphic-character-set": "14 - Jeu de caractères graphiques coréens (KS C 5601/KS X 1001)"
    },
    "queue-select-name": "Sélectionner le nom de la file",
    "queue-name": "Nom",
    "queue-name-required": "Le nom de la file est requis !",
    "queues": "Files",
    "queue-partitions": "Partitions",
    "queue-submit-strategy": "Stratégie de soumission",
    "queue-processing-strategy": "Stratégie de traitement",
    "queue-configuration": "Configuration de la file",
    "repository-settings": "Paramètres du dépôt",
    "repository": "Dépôt",
    "repository-url": "URL du dépôt",
    "repository-url-required": "L'URL du dépôt est requise.",
    "default-branch": "Nom de la branche par défaut",
    "repository-read-only": "Lecture seule",
    "show-merge-commits": "Afficher les commits de fusion",
    "authentication-settings": "Paramètres d'authentification",
    "auth-method": "Méthode d'authentification",
    "auth-method-username-password": "Mot de passe / jeton d'accès",
    "auth-method-username-password-hint": "Les utilisateurs GitHub <b>doivent</b> utiliser des <a href='https://github.com/settings/tokens' target='_blank'>jetons</a> avec des permissions d'écriture pour le dépôt.",
    "auth-method-private-key": "Clé privée",
    "password-access-token": "Mot de passe / jeton d'accès",
    "change-password-access-token": "Modifier le mot de passe / jeton d'accès",
    "private-key": "Clé privée",
    "drop-private-key-file-or": "Glissez-déposez un fichier de clé privée ou",
    "passphrase": "Phrase secrète",
    "enter-passphrase": "Entrer la phrase secrète",
    "change-passphrase": "Changer la phrase secrète",
    "check-access": "Vérifier l'accès",
    "check-repository-access-success": "Accès au dépôt vérifié avec succès !",
    "delete-repository-settings-title": "Êtes-vous sûr de vouloir supprimer les paramètres du dépôt ?",
    "delete-repository-settings-text": "Attention, après confirmation les paramètres du dépôt seront supprimés et la fonctionnalité de contrôle de version ne sera plus disponible.",
    "auto-commit-settings": "Paramètres de commit automatique",
    "auto-commit": "Commit automatique",
    "auto-commit-entities": "Entités de commit automatique",
    "no-auto-commit-entities-prompt": "Aucune entité configurée pour le commit automatique",
    "delete-auto-commit-settings-title": "Êtes-vous sûr de vouloir supprimer les paramètres de commit automatique ?",
    "delete-auto-commit-settings-text": "Attention, après confirmation, les paramètres de commit automatique seront supprimés et la fonctionnalité sera désactivée pour toutes les entités.",
    "mobile-app": {
      "mobile-app": "Application mobile",
      "mobile-app-qr-code-widget-settings": "Paramètres du widget QR code de l'application mobile",
      "applications": "Applications",
      "default": "Par défaut",
      "custom": "Personnalisé",
      "android": "Android",
      "ios": "iOS",
      "appearance": "Apparence",
      "appearance-on-home-page": "Apparence sur la page d'accueil",
      "enabled": "Activé",
      "disabled": "Désactivé",
      "badges": "Badges",
      "label": "Étiquette",
      "label-required": "L'étiquette est requise",
      "label-max-length": "L'étiquette doit contenir au maximum 50 caractères",
      "right": "Droite",
      "left": "Gauche",
      "set": "Définir",
      "preview": "Aperçu",
      "connect-mobile-app": "Connecter l'application mobile",
      "use-system-settings": "Utiliser les paramètres système"
    },
    "2fa": {
      "2fa": "Authentification à deux facteurs",
      "available-providers": "Fournisseurs disponibles",
      "available-providers-required": "Au moins un fournisseur 2FA doit être configuré.",
      "issuer-name": "Nom de l'émetteur",
      "issuer-name-required": "Le nom de l'émetteur est requis.",
      "max-verification-failures-before-user-lockout": "Nombre maximal d'échecs de vérification avant verrouillage de l'utilisateur",
      "max-verification-failures-before-user-lockout-pattern": "Le nombre maximal d'échecs doit être un entier positif.",
      "number-of-checking-attempts": "Nombre de tentatives de vérification",
      "number-of-checking-attempts-pattern": "Le nombre de tentatives doit être un entier positif.",
      "number-of-checking-attempts-required": "Le nombre de tentatives de vérification est requis.",
      "number-of-codes": "Nombre de codes",
      "number-of-codes-pattern": "Le nombre de codes doit être un entier positif.",
      "number-of-codes-required": "Le nombre de codes est requis.",
      "provider": "Fournisseur",
      "retry-verification-code-period": "Délai de réessai du code de vérification (sec)",
      "retry-verification-code-period-pattern": "Le délai minimal est de 5 secondes",
      "retry-verification-code-period-required": "Le délai de réessai est requis.",
      "total-allowed-time-for-verification": "Durée totale autorisée pour la vérification (sec)",
      "total-allowed-time-for-verification-pattern": "La durée minimale autorisée est de 60 secondes",
      "total-allowed-time-for-verification-required": "La durée totale autorisée est requise.",
      "use-system-two-factor-auth-settings": "Utiliser les paramètres système d'authentification à deux facteurs",
      "verification-code-check-rate-limit": "Limite de fréquence de vérification du code",
      "verification-code-lifetime": "Durée de vie du code de vérification (sec)",
      "verification-code-lifetime-pattern": "La durée de vie du code doit être un entier positif.",
      "verification-code-lifetime-required": "La durée de vie du code est requise.",
      "verification-message-template": "Modèle de message de vérification",
      "verification-limitations": "Limitations de la vérification",
      "verification-message-template-pattern": "Le message de vérification doit contenir le modèle : ${code}",
      "verification-message-template-required": "Le modèle de message de vérification est requis.",
      "within-time": "Délai (sec)",
      "within-time-pattern": "Le délai doit être un entier positif.",
      "within-time-required": "Le délai est requis.",
      "force-2fa": "Appliquer l’authentification à deux facteurs",
      "enforce-for": "Appliquer à"
    },
    "jwt": {
      "security-settings": "Paramètres de sécurité JWT",
      "issuer-name": "Nom de l'émetteur",
      "issuer-name-required": "Le nom de l'émetteur est requis.",
      "signings-key": "Clé de signature",
      "signings-key-hint": "Chaîne encodée en base64 représentant au moins 512 bits de données.",
      "signings-key-required": "La clé de signature est requise.",
      "signings-key-min-length": "La clé de signature doit contenir au moins 512 bits de données.",
      "signings-key-base64": "La clé de signature doit être au format base64.",
      "expiration-time": "Durée de validité du jeton (sec)",
      "expiration-time-required": "La durée de validité du jeton est requise.",
      "expiration-time-max": "La durée maximale autorisée est de 2147483647 secondes (68 ans).",
      "expiration-time-min": "Le temps minimum est de 60 secondes (1 minute).",
      "refresh-expiration-time": "Durée de validité du jeton de rafraîchissement (sec)",
      "refresh-expiration-time-required": "La durée de validité du jeton de rafraîchissement est requise.",
      "refresh-expiration-time-max": "La durée maximale autorisée est de 2147483647 secondes (68 ans).",
      "refresh-expiration-time-min": "Le temps minimum est de 900 secondes (15 minutes).",
      "refresh-expiration-time-less-token": "Le temps du jeton de rafraîchissement doit être supérieur à celui du jeton principal.",
      "generate-key": "Générer une clé",
      "info-header": "Tous les utilisateurs devront se reconnecter",
      "info-message": "La modification de la clé de signature JWT invalidera tous les jetons émis. Tous les utilisateurs devront se reconnecter. Cela affectera également les scripts utilisant l'API REST/Websockets."
    },
    "resources": "Ressources",
    "notifications": "Notifications",
    "notifications-settings": "Paramètres des notifications",
    "slack-api-token": "Jeton API Slack",
    "slack": "Slack",
    "slack-settings": "Paramètres Slack",
    "mobile-settings": "Paramètres mobiles",
    "firebase-service-account-file": "Fichier JSON des identifiants du compte de service Firebase",
    "select-firebase-service-account-file": "Glissez-déposez votre fichier d'identifiants de compte de service Firebase ou "
  },
  "alarm": {
    "alarm": "Alarme",
    "alarm-list": "Liste des alarmes",
    "alarms": "Alarmes",
    "all-alarms": "Toutes les alarmes",
    "select-alarm": "Sélectionner une alarme",
    "no-alarms-matching": "Aucune alarme correspondant à '{{entity}}' n'a été trouvée.",
    "alarm-required": "L'alarme est requise",
    "alarm-filter": "Filtre d'alarme",
    "filter": "Filtre",
    "alarm-status": "Statut de l'alarme",
    "alarm-status-list": "Liste des statuts d'alarme",
    "any-status": "N'importe quel statut",
    "search-status": {
      "ANY": "N'importe lequel",
      "ACTIVE": "Active",
      "CLEARED": "Réinitialisée",
      "ACK": "Reconnu",
      "UNACK": "Non reconnu"
    },
    "display-status": {
      "ACTIVE_UNACK": "Active non reconnue",
      "ACTIVE_ACK": "Active reconnue",
      "CLEARED_UNACK": "Réinitialisée non reconnue",
      "CLEARED_ACK": "Réinitialisée reconnue"
    },
    "no-alarms-prompt": "Aucune alarme trouvée",
    "created-time": "Heure de création",
    "type": "Type",
    "severity": "Gravité",
    "originator": "Initiateur",
    "originator-type": "Type d'initiateur",
    "details": "Détails",
    "originator-label": "Étiquette de l'initiateur",
    "assign": "Assigner",
    "assignments": "Affectations",
    "assignee": "Assigné",
    "assignee-id": "ID de l'assigné",
    "assignee-first-name": "Prénom de l'assigné",
    "assignee-last-name": "Nom de l'assigné",
    "assignee-email": "Email de l'assigné",
    "unassigned": "Non assigné",
    "user-deleted": "Utilisateur supprimé",
    "assignee-not-set": "Tous",
    "status": "Statut",
    "alarm-details": "Détails de l'alarme",
    "start-time": "Heure de début",
    "assign-time": "Heure d'assignation",
    "end-time": "Heure de fin",
    "ack-time": "Heure de reconnaissance",
    "clear-time": "Heure de réinitialisation",
    "duration": "Durée",
    "alarm-severity": "Gravité de l'alarme",
    "alarm-severity-list": "Liste des niveaux de gravité",
    "any-severity": "N'importe quelle gravité",
    "severity-critical": "Critique",
    "severity-major": "Majeure",
    "severity-minor": "Mineure",
    "severity-warning": "Avertissement",
    "severity-indeterminate": "Indéterminée",
    "acknowledge": "Reconnaître",
    "clear": "Réinitialiser",
    "delete": "Supprimer",
    "search": "Rechercher des alarmes",
    "selected-alarms": "{ count, plural, =1 {1 alarme} other {# alarmes} } sélectionnée(s)",
    "no-data": "Aucune donnée à afficher",
    "polling-interval": "Intervalle de sondage des alarmes (sec)",
    "polling-interval-required": "L'intervalle de sondage des alarmes est requis.",
    "min-polling-interval-message": "L'intervalle minimum autorisé est de 1 seconde.",
    "aknowledge-alarms-title": "Reconnaître { count, plural, =1 {1 alarme} other {# alarmes} }",
    "aknowledge-alarms-text": "Êtes-vous sûr de vouloir reconnaître { count, plural, =1 {1 alarme} other {# alarmes} } ?",
    "aknowledge-alarm-title": "Reconnaître l'alarme",
    "aknowledge-alarm-text": "Êtes-vous sûr de vouloir reconnaître l'alarme ?",
    "selected-alarms-are-acknowledged": "Les alarmes sélectionnées sont déjà reconnues",
    "clear-alarms-title": "Réinitialiser { count, plural, =1 {1 alarme} other {# alarmes} }",
    "clear-alarms-text": "Êtes-vous sûr de vouloir réinitialiser { count, plural, =1 {1 alarme} other {# alarmes} } ?",
    "clear-alarm-title": "Réinitialiser l'alarme",
    "clear-alarm-text": "Êtes-vous sûr de vouloir réinitialiser l'alarme ?",
    "delete-alarms-title": "Supprimer { count, plural, =1 {1 alarme} other {# alarmes} }",
    "delete-alarms-text": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 alarme} other {# alarmes} } ?",
    "selected-alarms-are-cleared": "Les alarmes sélectionnées sont déjà réinitialisées",
    "alarm-status-filter": "Filtre de statut d'alarme",
    "alarm-filter-title": "Filtre d'alarme",
    "assigned": "Assigné",
    "filter-title": "Filtre",
    "max-count-load": "Nombre maximum d'alarmes à charger (0 - illimité)",
    "max-count-load-required": "Le nombre maximum d'alarmes à charger est requis.",
    "max-count-load-error-min": "La valeur minimale est 0.",
    "fetch-size": "Taille de récupération",
    "fetch-size-required": "La taille de récupération est requise.",
    "fetch-size-error-min": "La valeur minimale est 10.",
    "alarm-types": "Types d'alarmes",
    "alarm-type-list": "Liste des types d'alarmes",
    "any-type": "N'importe quel type",
    "assigned-to-current-user": "Assigné à l'utilisateur actuel",
    "assigned-to-me": "Assigné à moi",
    "search-propagated-alarms": "Rechercher les alarmes propagées",
    "comments": "Commentaires de l'alarme",
    "show-more": "Afficher plus",
    "additional-info": "Informations supplémentaires",
    "alarm-type": "Type d'alarme",
    "enter-alarm-type": "Entrer le type d'alarme",
    "no-alarm-types-matching": "Aucun type d'alarme correspondant à '{{entitySubtype}}' n'a été trouvé.",
    "alarm-type-list-empty": "Aucun type d'alarme sélectionné.",
    "system-comments": {
      "acked-by-user": "L’alarme a été acquittée par l’utilisateur {{userName}}",
      "cleared-by-user": "L’alarme a été effacée par l’utilisateur {{userName}}",
      "assigned-to-user": "L’alarme a été assignée par l’utilisateur {{userName}} à l’utilisateur {{assigneeName}}",
      "unassigned-to-user": "L’alarme a été désassignée par l’utilisateur {{userName}}",
      "unassigned-from-deleted-user": "L’alarme a été désassignée car l’utilisateur {{userName}} a été supprimé",
      "comment-deleted": "L’utilisateur {{userName}} a supprimé son commentaire",
      "severity-changed": "La sévérité de l’alarme a été mise à jour de {{oldSeverity}} à {{newSeverity}}"
    }
  },
  "alarm-activity": {
    "add": "Ajouter un commentaire...",
    "alarm-comment": "Commentaire d'alarme",
    "comments": "Commentaires",
    "delete-alarm-comment": "Voulez-vous supprimer ce commentaire ?",
    "refresh": "Rafraîchir",
    "oldest-first": "Le plus ancien en premier",
    "newest-first": "Le plus récent en premier",
    "activity": "Activité",
    "export": "Exporter au format CSV",
    "author": "Auteur",
    "created-date": "Date de création",
    "edited-date": "Date de modification",
    "text": "Texte",
    "system": "Système"
  },
  "alias": {
    "add": "Ajouter un alias",
    "edit": "Modifier l'alias",
    "name": "Nom de l'alias",
    "name-required": "Le nom de l'alias est requis",
    "duplicate-alias": "Un alias portant le même nom existe déjà.",
    "filter-type-single-entity": "Entité unique",
    "filter-type-entity-list": "Liste d'entités",
    "filter-type-entity-name": "Nom de l'entité",
    "filter-type-entity-type": "Type d'entité",
    "filter-type-state-entity": "Entité de l'état du tableau de bord",
    "filter-type-state-entity-description": "Entité prise à partir des paramètres de l'état du tableau de bord",
    "filter-type-asset-type": "Type d'actif",
    "filter-type-asset-type-description": "Actifs de type '{{assetTypes}}'",
    "filter-type-asset-type-and-name-description": "Actifs de type '{{assetTypes}}' dont le nom commence par '{{prefix}}'",
    "filter-type-device-type": "Type d'appareil",
    "filter-type-device-type-description": "Appareils de type '{{deviceTypes}}'",
    "filter-type-device-type-and-name-description": "Appareils de type '{{deviceTypes}}' dont le nom commence par '{{prefix}}'",
    "filter-type-entity-view-type": "Type de vue d'entité",
    "filter-type-entity-view-type-description": "Vues d'entité de type '{{entityViewTypes}}'",
    "filter-type-entity-view-type-and-name-description": "Vues d'entité de type '{{entityViewTypes}}' dont le nom commence par '{{prefix}}'",
    "filter-type-edge-type": "Type d'Edge",
    "filter-type-edge-type-description": "Edges de type '{{edgeTypes}}'",
    "filter-type-edge-type-and-name-description": "Edges de type '{{edgeTypes}}' dont le nom commence par '{{prefix}}'",
    "filter-type-relations-query": "Requête de relations",
    "filter-type-relations-query-description": "{{entities}} ayant une relation {{relationType}} {{direction}} {{rootEntity}}",
    "filter-type-edge-search-query": "Requête de recherche d'Edge",
    "filter-type-edge-search-query-description": "Edges de types {{edgeTypes}} ayant une relation {{relationType}} {{direction}} {{rootEntity}}",
    "filter-type-asset-search-query": "Requête de recherche d'actifs",
    "filter-type-asset-search-query-description": "Actifs de types {{assetTypes}} ayant une relation {{relationType}} {{direction}} {{rootEntity}}",
    "filter-type-device-search-query": "Requête de recherche d'appareils",
    "filter-type-device-search-query-description": "Appareils de types {{deviceTypes}} ayant une relation {{relationType}} {{direction}} {{rootEntity}}",
    "filter-type-entity-view-search-query": "Requête de recherche de vue d'entité",
    "filter-type-entity-view-search-query-description": "Vues d'entité de types {{entityViewTypes}} ayant une relation {{relationType}} {{direction}} {{rootEntity}}",
    "filter-type-apiUsageState": "État d'utilisation de l'API",
    "entity-filter": "Filtre d'entité",
    "resolve-multiple": "Résoudre en tant que plusieurs entités",
    "resolve-multiple-hint": "Activer pour afficher les données de toutes les entités filtrées simultanément.\nSi désactivé, le widget affiche uniquement les données de l'entité sélectionnée.",
    "filter-type": "Type de filtre",
    "filter-type-required": "Le type de filtre est requis.",
    "entity-filter-no-entity-matched": "Aucune entité ne correspond au filtre spécifié.",
    "no-entity-filter-specified": "Aucun filtre d'entité spécifié",
    "root-state-entity": "Utiliser l'entité d'état du tableau de bord comme racine",
    "last-level-relation": "Extraire uniquement la relation de dernier niveau",
    "root-entity": "Entité racine",
    "state-entity-parameter-name": "Nom du paramètre d'entité d'état",
    "default-state-entity": "Entité d'état par défaut",
    "default-entity-parameter-name": "Par défaut",
    "query-options": "Options de requête",
    "max-relation-level": "Niveau maximal de relation",
    "unlimited-level": "Niveau illimité",
    "state-entity": "Entité d'état du tableau de bord",
    "all-entities": "Toutes les entités",
    "any-relation": "n'importe laquelle"
  },
  "asset": {
    "asset": "Actif",
    "assets": "Actifs",
    "management": "Gestion des actifs",
    "view-assets": "Voir les actifs",
    "add": "Ajouter un actif",
    "asset-type-max-length": "Le type d'actif doit contenir moins de 256 caractères",
    "assign-to-customer": "Assigner à un client",
    "assign-asset-to-customer": "Assigner des actifs à un client",
    "assign-asset-to-customer-text": "Veuillez sélectionner les actifs à assigner au client",
    "no-assets-text": "Aucun actif trouvé",
    "assign-to-customer-text": "Veuillez sélectionner le client auquel assigner les actifs",
    "public": "Public",
    "assignedToCustomer": "Assigné au client",
    "make-public": "Rendre l'actif public",
    "make-private": "Rendre l'actif privé",
    "unassign-from-customer": "Désassigner du client",
    "delete": "Supprimer l'actif",
    "asset-public": "L'actif est public",
    "asset-type": "Type d'actif",
    "asset-type-required": "Le type d'actif est requis.",
    "select-asset-type": "Sélectionner le type d'actif",
    "enter-asset-type": "Saisir le profil d'actif",
    "any-asset": "N'importe quel actif",
    "no-asset-types-matching": "Aucun type d'actif correspondant à '{{entitySubtype}}' trouvé.",
    "asset-type-list-empty": "Aucun type d'actif sélectionné.",
    "asset-types": "Types d'actifs",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "name-max-length": "Le nom doit contenir moins de 256 caractères",
    "label-max-length": "L'étiquette doit contenir moins de 256 caractères",
    "description": "Description",
    "description-required": "La description est requise.",
    "type": "Type",
    "type-required": "Le type est requis.",
    "details": "Détails",
    "events": "Événements",
    "add-asset-text": "Ajouter un nouvel actif",
    "asset-details": "Détails de l'actif",
    "assign-assets": "Assigner des actifs",
    "assign-assets-text": "Assigner { count, plural, =1 {1 actif} other {# actifs} } à un client",
    "assign-asset-to-edge-title": "Assigner des actifs à une Edge",
    "assign-asset-to-edge-text": "Veuillez sélectionner les actifs à assigner à la Edge",
    "delete-assets": "Supprimer des actifs",
    "unassign-assets": "Désassigner des actifs",
    "unassign-assets-action-title": "Désassigner { count, plural, =1 {1 actif} other {# actifs} } du client",
    "assign-new-asset": "Assigner un nouvel actif",
    "delete-asset-title": "Êtes-vous sûr de vouloir supprimer l'actif '{{assetName}}' ?",
    "delete-asset-text": "Attention, après confirmation l'actif et toutes les données associées seront irrécupérables.",
    "delete-assets-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 actif} other {# actifs} } ?",
    "delete-assets-action-title": "Supprimer { count, plural, =1 {1 actif} other {# actifs} }",
    "delete-assets-text": "Attention, après confirmation tous les actifs sélectionnés seront supprimés ainsi que toutes les données associées.",
    "make-public-asset-title": "Êtes-vous sûr de vouloir rendre l'actif '{{assetName}}' public ?",
    "make-public-asset-text": "Après confirmation, l'actif et toutes ses données seront rendus publics et accessibles à d'autres.",
    "make-private-asset-title": "Êtes-vous sûr de vouloir rendre l'actif '{{assetName}}' privé ?",
    "make-private-asset-text": "Après confirmation, l'actif et toutes ses données seront rendus privés et ne seront plus accessibles à d'autres.",
    "unassign-asset-title": "Êtes-vous sûr de vouloir désassigner l'actif '{{assetName}}' ?",
    "unassign-asset-text": "Après confirmation, l'actif sera désassigné et ne sera plus accessible par le client.",
    "unassign-asset": "Désassigner l'actif",
    "unassign-assets-title": "Êtes-vous sûr de vouloir désassigner { count, plural, =1 {1 actif} other {# actifs} } ?",
    "unassign-assets-text": "Après confirmation, tous les actifs sélectionnés seront désassignés et ne seront plus accessibles par le client.",
    "copyId": "Copier l'identifiant de l'actif",
    "idCopiedMessage": "L'identifiant de l'actif a été copié dans le presse-papiers",
    "select-asset": "Sélectionner un actif",
    "no-assets-matching": "Aucun actif correspondant à '{{entity}}' trouvé.",
    "asset-required": "L'actif est requis",
    "name-starts-with": "Expression du nom de l'actif",
    "help-text": "Utilisez '%' selon le besoin : '%nom_actif_contient%', '%nom_actif_termine', 'actif_commence_par'.",
    "search": "Rechercher des actifs",
    "import": "Importer des actifs",
    "asset-file": "Fichier d'actifs",
    "label": "Étiquette",
    "assign-asset-to-edge": "Assigner des actifs à une Edge",
    "unassign-asset-from-edge": "Désassigner l'actif",
    "unassign-asset-from-edge-title": "Êtes-vous sûr de vouloir désassigner l'actif '{{assetName}}' ?",
    "unassign-asset-from-edge-text": "Après confirmation, l'actif sera désassigné et ne sera plus accessible par la Edge.",
    "unassign-assets-from-edge-title": "Êtes-vous sûr de vouloir désassigner { count, plural, =1 {1 actif} other {# actifs} } ?",
    "unassign-assets-from-edge-text": "Après confirmation, tous les actifs sélectionnés seront désassignés et ne seront plus accessibles par la Edge.",
    "selected-assets": "{ count, plural, =1 {1 actif} other {# actifs} } sélectionné(s)"
  },
  "attribute": {
    "attributes": "Attributs",
    "latest-telemetry": "Dernière télémétrie",
    "no-latest-telemetry": "Aucune télémétrie récente",
    "attributes-scope": "Portée des attributs d'entité",
    "scope-telemetry": "Télémétrie",
    "scope-latest-telemetry": "Dernière télémétrie",
    "scope-client": "Attributs client",
    "scope-server": "Attributs serveur",
    "scope-shared": "Attributs partagés",
    "scope-client-short": "Client",
    "scope-server-short": "Serveur",
    "scope-shared-short": "Partagé",
    "scope-latest-short": "Dernier",
    "scope-any": "N'importe quel",
    "add": "Ajouter un attribut",
    "key": "Clé",
    "key-max-length": "La clé doit contenir moins de 256 caractères",
    "last-update-time": "Dernière mise à jour",
    "key-required": "La clé de l'attribut est requise.",
    "value": "Valeur",
    "value-required": "La valeur de l'attribut est requise.",
    "telemetry-key-required": "La clé de télémétrie est requise",
    "telemetry-value-required": "La valeur de télémétrie est requise",
    "delete-attributes-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 attribut} other {# attributs} } ?",
    "delete-attributes-text": "Attention, après confirmation, tous les attributs sélectionnés seront supprimés.",
    "delete-attributes": "Supprimer les attributs",
    "enter-attribute-value": "Entrer la valeur de l'attribut",
    "show-on-widget": "Afficher sur le widget",
    "widget-mode": "Mode widget",
    "next-widget": "Widget suivant",
    "prev-widget": "Widget précédent",
    "add-to-dashboard": "Ajouter au tableau de bord",
    "add-widget-to-dashboard": "Ajouter le widget au tableau de bord",
    "selected-attributes": "{ count, plural, =1 {1 attribut} other {# attributs} } sélectionné(s)",
    "selected-telemetry": "{ count, plural, =1 {1 unité de télémétrie} other {# unités de télémétrie} } sélectionnée(s)",
    "no-attributes-text": "Aucun attribut trouvé",
    "no-telemetry-text": "Aucune télémétrie trouvée",
    "copy-key": "Copier la clé",
    "add-telemetry": "Ajouter une télémétrie",
    "copy-value": "Copier la valeur",
    "delete-timeseries": {
      "start-time": "Heure de début",
      "ends-on": "Se termine le",
      "strategy": "Stratégie",
      "delete-strategy": "Stratégie de suppression",
      "all-data": "Supprimer toutes les données",
      "all-data-except-latest-value": "Supprimer toutes les données sauf la dernière valeur",
      "latest-value": "Supprimer la dernière valeur",
      "all-data-for-time-period": "Supprimer toutes les données pour une période donnée",
      "rewrite-latest-value": "Réécrire la dernière valeur"
    }
  },
  "api-usage": {
    "api-features": "Fonctionnalités API",
    "api-usage": "Utilisation de l'API",
    "alarm": "Alarme",
    "alarms-created": "Alarmes créées",
    "queue-stats": "Statistiques de file d'attente",
    "processing-failures-and-timeouts": "Échecs et expirations de traitement",
    "exceptions": "Exceptions",
    "alarms-created-daily-activity": "Activité quotidienne des alarmes créées",
    "alarms-created-hourly-activity": "Activité horaire des alarmes créées",
    "alarms-created-monthly-activity": "Activité mensuelle des alarmes créées",
    "data-points": "Points de données",
    "data-points-storage-days": "Durée de conservation des points de données (jours)",
    "data-points-storage-days-hourly-activity": "Activité horaire des jours de stockage des points de données",
    "data-points-storage-days-daily-activity": "Activité quotidienne des jours de stockage des points de données",
    "data-points-storage-days-monthly-activity": "Activité mensuelle des jours de stockage des points de données",
    "device-api": "API des appareils",
    "email": "E-mail",
    "email-messages": "Messages e-mail",
    "email-messages-daily-activity": "Activité quotidienne des e-mails",
    "email-messages-monthly-activity": "Activité mensuelle des e-mails",
    "executions": "Exécutions",
    "scripts": "Scripts",
    "scripts-hourly-activity": "Activité horaire des scripts",
    "scripts-daily-activity": "Activité quotidienne des scripts",
    "scripts-monthly-activity": "Activité mensuelle des scripts",
    "javascript": "JavaScript",
    "javascript-executions": "Exécutions JavaScript",
    "tbel": "TBEL",
    "tbel-executions": "Exécutions TBEL",
    "latest-error": "Dernière erreur",
    "messages": "Messages",
    "notifications": "Notifications",
    "notifications-email-sms": "Notifications (E-mail/SMS)",
    "notifications-hourly-activity": "Activité horaire des notifications",
    "permanent-failures": "Échecs permanents ${entityName}",
    "permanent-timeouts": "Expirations permanentes ${entityName}",
    "processing-failures": "Échecs de traitement ${entityName}",
    "processing-timeouts": "Expirations de traitement ${entityName}",
    "rule-chain": "Chaîne de règles",
    "rule-engine": "Moteur de règles",
    "rule-engine-daily-activity": "Activité quotidienne du moteur de règles",
    "rule-engine-executions": "Exécutions du moteur de règles",
    "rule-engine-hourly-activity": "Activité horaire du moteur de règles",
    "rule-engine-monthly-activity": "Activité mensuelle du moteur de règles",
    "rule-engine-statistics": "Statistiques du moteur de règles",
    "rule-node": "Nœud de règle",
    "sms": "SMS",
    "sms-messages": "Messages SMS",
    "sms-messages-hourly-activity": "Activité horaire des messages SMS",
    "sms-messages-daily-activity": "Activité quotidienne des SMS",
    "sms-messages-monthly-activity": "Activité mensuelle des SMS",
    "successful": "${entityName} Réussis",
    "telemetry": "Télémétrie",
    "telemetry-persistence": "Persistance de la télémétrie",
    "telemetry-persistence-daily-activity": "Activité quotidienne de persistance",
    "telemetry-persistence-hourly-activity": "Activité horaire de persistance",
    "telemetry-persistence-monthly-activity": "Activité mensuelle de persistance",
    "transport": "Transport",
    "transport-msg-hourly-activity": "Activité horaire des messages de transport",
    "transport-msg-daily-activity": "Activité quotidienne des messages de transport",
    "transport-msg-monthly-activity": "Activité mensuelle des messages de transport",
    "transport-daily-activity": "Activité quotidienne de transport",
    "transport-data-points": "Points de données de transport",
    "transport-data-points-hourly-activity": "Activité horaire des points de données de transport",
    "transport-data-points-daily-activity": "Activité quotidienne des points de données de transport",
    "transport-data-points-monthly-activity": "Activité mensuelle des points de données de transport",
    "view-details": "Voir les détails",
    "view-statistics": "Voir les statistiques",
    "transport-messages": "Messages de transport",
    "transport-messages-hourly-activity": "Activité horaire des messages de transport",
    "transport-data-point-hourly-activity": "Activité horaire du point de données de transport",
    "javascript-function-executions": "Exécutions de fonctions JavaScript",
    "javascript-function-executions-hourly-activity": "Activité horaire des exécutions de fonctions JavaScript",
    "javascript-function-executions-daily-activity": "Activité quotidienne des exécutions de fonctions JavaScript",
    "javascript-function-executions-monthly-activity": "Activité mensuelle des exécutions de fonctions JavaScript",
    "tbel-function-executions": "Exécutions de fonctions TBEL",
    "tbel-function-executions-hourly-activity": "Activité horaire des exécutions de fonctions TBEL",
    "tbel-function-executions-daily-activity": "Activité quotidienne des exécutions de fonctions TBEL",
    "tbel-function-executions-monthly-activity": "Activité mensuelle des exécutions de fonctions TBEL",
    "created-reports": "Rapports créés",
    "created-reports-hourly-activity": "Activité horaire des rapports créés",
    "created-reports-daily-activity": "Activité quotidienne des rapports créés",
    "created-reports-monthly-activity": "Activité mensuelle des rapports créés",
    "emails": "Emails",
    "emails-hourly-activity": "Activité horaire des Emails",
    "emails-daily-activity": "Activité quotidienne des Emails",
    "emails-monthly-activity": "Activité mensuelle des Emails",
    "status": {
      "enabled": "Activé",
      "disabled": "Désactivé",
      "warning": "Avertissement"
    }
  },
  "api-limit": {
    "cassandra-write-queries-core": "Requêtes d’écriture Cassandra via l’API REST",
    "cassandra-read-queries-core": "Requêtes de lecture Cassandra pour la télémétrie via REST API et WebSocket",
    "cassandra-write-queries-rule-engine": "Requêtes d’écriture Cassandra pour la télémétrie du moteur de règles",
    "cassandra-read-queries-rule-engine": "Requêtes de lecture Cassandra pour la télémétrie du moteur de règles",
    "cassandra-write-queries-monolith": "Requêtes d’écriture Cassandra pour la télémétrie du monolithe",
    "cassandra-read-queries-monolith": "Requêtes de lecture Cassandra pour la télémétrie du monolithe",
    "entity-version-creation": "Création de version d’entité",
    "entity-version-load": "Chargement de version d’entité",
    "notification-requests": "Requêtes de notification",
    "notification-requests-per-rule": "Requêtes de notification par règle",
    "rest-api-requests": "Requêtes API REST",
    "rest-api-requests-per-customer": "Requêtes API REST par client",
    "transport-messages": "Messages de transport",
    "transport-messages-per-device": "Messages de transport par appareil",
    "transport-messages-per-gateway": "Messages de transport par passerelle",
    "transport-messages-per-gateway-device": "Messages de transport par appareil de passerelle",
    "ws-updates-per-session": "Mises à jour WS par session",
    "edge-events": "Événements Edge",
    "edge-events-per-edge": "Événements Edge par instance",
    "edge-uplink-messages": "Messages montants Edge",
    "edge-uplink-messages-per-edge": "Messages montants Edge par instance"
  },
  "api-key": {
    "api-key": "Clé API",
    "api-keys": "Clés API",
    "delete-api-key-title": "Êtes-vous sûr de vouloir supprimer la clé API '{{name}}' ?",
    "delete-api-key-text": "Attention : après confirmation, la clé deviendra irrécupérable.",
    "delete-api-keys-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 clé API} other {# clés API} } ?",
    "delete-api-keys-text": "Attention : après confirmation, toutes les clés sélectionnées deviendront irrécupérables.",
    "expiration-date": "Date d’expiration",
    "date": "date",
    "description": "Description",
    "disable": "Désactiver",
    "edit-description": "Modifier la description",
    "enable": "Activer la clé API ",
    "expiration-time": "Heure d’expiration",
    "expiration-time-never": "Jamais",
    "expiration-time-custom": "Personnalisé",
    "generate": "Générer",
    "generate-title": "Générer une clé API",
    "generate-text": "Remarque : la clé API hérite des autorisations de l’utilisateur pour lequel elle est créée.",
    "generated-api-key-title": "Clé API générée. Vérifions la connectivité !",
    "generated-api-key-copy": "Assurez-vous de copier et d’enregistrer votre clé API maintenant, car vous ne pourrez plus l’afficher.",
    "generated-api-key-command": "Utilisez les instructions suivantes pour vérifier la connectivité. En résultat, vous devriez recevoir les informations de l’utilisateur actuel :",
    "generated-api-key-insecure-url": "L’exécution de commandes via une connexion HTTP non sécurisée enverra votre clé API sans chiffrement, la rendant vulnérable à l’interception.",
    "list": "{ count, plural, =1 {Une clé API} other {Liste de # clés API} }",
    "manage": "Gérer",
    "manage-api-keys": "Gérer les clés API",
    "no-found": "Aucune clé API trouvée",
    "selected-api-keys": "{ count, plural, =1 {1 clé API} other {# clés API} } sélectionné(s)",
    "search": "Rechercher des clés API",
    "status": "Statut",
    "status-active": "Actif",
    "status-inactive": "Inactif",
    "status-expired": "Expiré"
  },
  "audit-log": {
    "audit": "Audit",
    "audit-logs": "Journaux d'audit",
    "timestamp": "Horodatage",
    "entity-type": "Type d'entité",
    "entity-name": "Nom de l'entité",
    "user": "Utilisateur",
    "type": "Type",
    "status": "Statut",
    "details": "Détails",
    "type-added": "Ajouté",
    "type-deleted": "Supprimé",
    "type-updated": "Mis à jour",
    "type-attributes-updated": "Attributs mis à jour",
    "type-attributes-deleted": "Attributs supprimés",
    "type-rpc-call": "Appel RPC",
    "type-credentials-updated": "Identifiants mis à jour",
    "type-assigned-to-customer": "Assigné à un client",
    "type-unassigned-from-customer": "Désassigné d'un client",
    "type-assigned-to-edge": "Assigné à une Edge",
    "type-unassigned-from-edge": "Désassigné d'un Edge",
    "type-activated": "Activé",
    "type-suspended": "Suspendu",
    "type-credentials-read": "Identifiants lus",
    "type-attributes-read": "Attributs lus",
    "type-relation-add-or-update": "Relation mise à jour",
    "type-relation-delete": "Relation supprimée",
    "type-relations-delete": "Toutes les relations supprimées",
    "type-alarm-ack": "Alarme reconnue",
    "type-alarm-clear": "Alarme réinitialisée",
    "type-alarm-delete": "Alarme supprimée",
    "type-alarm-assign": "Alarme assignée",
    "type-alarm-unassign": "Alarme désassignée",
    "type-added-comment": "Commentaire ajouté",
    "type-updated-comment": "Commentaire mis à jour",
    "type-deleted-comment": "Commentaire supprimé",
    "type-login": "Connexion",
    "type-logout": "Déconnexion",
    "type-lockout": "Verrouillage",
    "status-success": "Succès",
    "status-failure": "Échec",
    "audit-log-details": "Détails du journal d'audit",
    "no-audit-logs-prompt": "Aucun journal trouvé",
    "action-data": "Données d'action",
    "failure-details": "Détails de l'échec",
    "search": "Rechercher dans les journaux d'audit",
    "clear-search": "Effacer la recherche",
    "type-assigned-from-tenant": "Assigné depuis un tenant",
    "type-assigned-to-tenant": "Assigné à un tenant",
    "type-provision-success": "Appareil provisionné",
    "type-provision-failure": "Le provisionnement de l'appareil a échoué",
    "type-timeseries-updated": "Télémétrie mise à jour",
    "type-timeseries-deleted": "Télémétrie supprimée",
    "type-sms-sent": "SMS envoyé",
    "any-type": "Tout type",
    "audit-log-filter-title": "Filtre du journal d’audit",
    "filter-title": "Filtre",
    "filter-types": "Types de journal d’audit"
  },
  "debug-settings": {
    "label": "Configuration de débogage",
    "on-failure": "Échecs uniquement (24/7)",
    "all-messages": "Tous les messages ({{time}})",
    "failures": "Échecs",
    "entity": "entité",
    "hint": {
      "main-limited": "Pas plus de {{msg}} messages de débogage de {{entity}} par {{time}} ne seront enregistrés.",
      "on-failure": "Enregistrer uniquement les messages d'erreur.",
      "all-messages": "Enregistrer tous les messages de débogage."
    }
  },
  "calculated-fields": {
    "expression": "Expression",
    "no-found": "Aucun champ calculé trouvé",
    "list": "{ count, plural, =1 {Un champ calculé} other {Liste de # champs calculés} }",
    "selected-fields": "{ count, plural, =1 {1 champ calculé} other {# champs calculés} } sélectionné(s)",
    "type": {
      "simple": "Simple",
      "simple-hint": "Calcul arithmétique simple basé sur les arguments d’entrée.",
      "script": "Script",
      "script-hint": "Calcul sur des arguments définis à l’aide d’un script TBEL.",
      "geofencing": "Géorepérage",
      "geofencing-hint": "Évaluation de la position GPS de l’entité et des transitions par rapport aux groupes de zones de géorepérage configurés.",
      "propagation": "Propagation",
      "propagation-hint": "Propagation des données vers les entités parentes ou enfants en fonction de la direction et du type de relation.",
      "related-entities-aggregation": "Agrégation des entités associées",
      "related-entities-aggregation-hint": "Agrégation des dernières données des entités associées.",
      "time-series-data-aggregation": "Agrégation des données de séries temporelles",
      "time-series-data-aggregation-hint": "Agrégation des données historiques d’une entité actuelle."
    },
    "preview": "Aperçu",
    "arguments": "Arguments",
    "decimals-by-default": "Décimales par défaut",
    "debugging": "Débogage du champ calculé",
    "calculated-field-details": "Détails du champ calculé",
    "argument-name": "Nom de l'argument",
    "name": "Nom",
    "datasource": "Source de données",
    "add-argument": "Ajouter un argument",
    "test-script-function": "Tester la fonction script",
    "no-arguments": "Aucun argument configuré",
    "argument-settings": "Paramètres de l'argument",
    "argument-current": "Entité actuelle",
    "argument-current-tenant": "Tenant actuel",
    "argument-device": "Appareil",
    "argument-asset": "Actif",
    "argument-customer": "Client",
    "argument-tenant": "Tenant actuel",
    "argument-owner": "Propriétaire actuel",
    "argument-relation-query": "Entités associées",
    "argument-type": "Type d'argument",
    "attribute": "Attribut",
    "copy-argument-name": "Copier le nom de l'argument",
    "timeseries-key": "Clé de série temporelle",
    "device-name": "Nom de l’appareil",
    "latest-telemetry": "Dernière télémétrie",
    "rolling": "Déroulement des séries temporelles",
    "attribute-scope": "Portée de l’attribut",
    "server-attributes": "Attributs serveur",
    "client-attributes": "Attributs client",
    "shared-attributes": "Attributs partagés",
    "attribute-key": "Clé d'attribut",
    "default-value": "Valeur par défaut",
    "default-value-required": "La valeur par défaut est requise.",
    "limit": "Valeurs max.",
    "time-window": "Fenêtre temporelle",
    "customer-name": "Nom du client",
    "asset-name": "Nom de l’actif",
    "timeseries": "Séries temporelles",
    "output": "Sortie",
    "output-hint": "Définit la façon dont la sortie est traitée.",
    "create": "Créer un nouveau champ calculé",
    "file": "Fichier de champ calculé",
    "invalid-file-error": "Format de fichier invalide. Veuillez vous assurer que le fichier est un JSON valide.",
    "import": "Importer un champ calculé",
    "export": "Exporter un champ calculé",
    "export-failed-error": "Impossible d'exporter le champ calculé : {{error}}",
    "output-type": "Type de sortie",
    "delete-title": "Voulez-vous vraiment supprimer le champ calculé '{{title}}' ?",
    "delete-text": "Attention, après confirmation, le champ calculé et toutes les données associées seront irrécupérables.",
    "delete-multiple-title": "Voulez-vous vraiment supprimer { count, plural, =1 {1 champ calculé} other {# champs calculés} } ?",
    "delete-multiple-text": "Attention, après confirmation, tous les champs calculés sélectionnés seront supprimés et les données associées seront irrécupérables.",
    "test-with-this-message": "Tester avec ce message",
    "use-latest-timestamp": "Utiliser le dernier horodatage",
    "entity-coordinates": "Coordonnées de l’entité",
    "latitude-time-series-key": "Clé de série temporelle de latitude",
    "latitude-time-series-key-required": "La clé de série temporelle de latitude est requise.",
    "longitude-time-series-key": "Clé de série temporelle de longitude",
    "longitude-time-series-key-required": "La clé de série temporelle de longitude est requise.",
    "geofencing-zone-groups": "Groupes de zones de géorepérage",
    "geofencing-zone-groups-settings": "Paramètres des groupes de zones de géorepérage",
    "target-zone": "Zone cible",
    "perimeter-key": "Clé de périmètre",
    "report-strategy": "Stratégie de rapport",
    "no-zone-configured": "Au moins une zone est requise.",
    "no-zone-configured-required": "Au moins un groupe de zones doit être configuré.",
    "add-zone-group": "Ajouter un groupe de zones",
    "report-transition-event-only": "Événements de transition uniquement",
    "report-presence-status-only": "Statut de présence uniquement",
    "report-transition-event-and-presence": "Statut de présence et événements de transition",
    "perimeter-attribute-key": "Clé d’attribut de périmètre",
    "perimeter-attribute-key-required": "La clé d’attribut de périmètre est requise.",
    "perimeter-attribute-key-pattern": "La clé d’attribut de périmètre n’est pas valide.",
    "entity-zone-relationship": "Chemin de l’entité vers les zones",
    "direction": "Direction de la relation",
    "direction-from": "De l’entité vers la zone",
    "direction-to": "De la zone vers l’entité",
    "relation-type": "Type de relation",
    "create-relation-with-matched-zones": "Créer des relations pour l’entité source avec les zones correspondantes",
    "relation-level": "Niveau de relation",
    "fetch-last-available-level": "Récupérer uniquement le dernier niveau disponible",
    "zone-group-refresh-interval": "Intervalle d’actualisation des groupes de zones",
    "copy-zone-group-name": "Copier le nom du groupe de zones",
    "open-details-page": "Ouvrir la page des détails de l’entité",
    "level": "Niveau",
    "direction-level": "Direction",
    "direction-up": "Vers le haut",
    "direction-up-parent": "Vers le haut jusqu’au parent",
    "direction-down": "Vers le bas",
    "direction-down-child": "Vers le bas jusqu’à l’enfant",
    "add-level": "Ajouter un niveau",
    "delete-level": "Supprimer le niveau",
    "no-level": "Aucun niveau configuré",
    "levels-required": "Au moins un niveau doit être configuré.",
    "max-allowed-levels-error": "Le niveau de relation dépasse le maximum autorisé.",
    "propagation-path-related-entities": "Chemin de propagation vers les entités associées",
    "propagate-type": {
      "arguments-only": "Arguments uniquement",
      "expression-result": "Résultat du calcul"
    },
    "script": "Script",
    "data-propagate": "Données à propager",
    "output-key": "Clé de sortie",
    "copy-output-key": "Copier la clé de sortie",
    "aggregation-path-related-entities": "Chemin d’agrégation vers les entités associées",
    "deduplication-interval": "Intervalle de déduplication",
    "deduplication-interval-min": "L’intervalle de déduplication doit être d’au moins {{ sec }} secondes.",
    "deduplication-interval-hint": "Temps minimum entre les agrégations de télémétrie.",
    "deduplication-interval-required": "L’intervalle de déduplication est requis.",
    "calculated-field-filter-title": "Filtre des champs calculés",
    "filter-title": "Filtre",
    "calculated-field-types": "Types de champs calculés",
    "events": "Événements",
    "any-type": "Tout type",
    "metrics": {
      "metrics": "Métriques",
      "metrics-empty": "Au moins une métrique doit être configurée.",
      "metric-name": "Nom de la métrique",
      "metric-name-required": "Le nom de la métrique est requis.",
      "metric-name-pattern": "Le nom de la métrique n’est pas valide.",
      "metric-name-duplicate": "Une métrique portant ce nom existe déjà.",
      "metric-name-max-length": "Le nom de la métrique doit comporter moins de 256 caractères.",
      "metric-name-forbidden": "Le nom de la métrique est réservé et ne peut pas être utilisé.",
      "copy-metric-name": "Copier le nom de la métrique",
      "argument-name": "Nom de l’argument",
      "aggregation": "Agrégation",
      "aggregation-type": {
        "avg": "Moyenne",
        "min": "Minimum",
        "max": "Maximum",
        "sum": "Somme",
        "count": "Nombre",
        "count-unique": "Nombre d’éléments uniques"
      },
      "filtered": "Filtré",
      "value-source": "Source de la valeur",
      "value-source-hint": "Définit comment la valeur à agréger est obtenue.",
      "value-source-type": {
        "key": "Clé",
        "function": "Fonction"
      },
      "no-metrics-configured": "Au moins une métrique est requise.",
      "add-metric": "Ajouter une métrique",
      "max-metrics": "Nombre maximum de métriques atteint.",
      "metric-settings": "Paramètres de la métrique",
      "filter": "Filtre",
      "filter-hint": "Permet de filtrer les entités lors de l’agrégation. La fonction de filtre doit renvoyer une valeur booléenne et peut utiliser tous les arguments configurés."
    },
    "output-strategy": {
      "strategy": "Stratégie",
      "process-right-away": "Traiter immédiatement",
      "process-rule-chains": "Traiter via les chaînes de règles",
      "save-time-series": "Enregistrer dans les séries temporelles",
      "save-database": "Enregistrer dans la base de données",
      "save-latest-values": "Enregistrer dans les dernières valeurs",
      "send-web-sockets": "Envoyer vers WebSockets",
      "save-calculated-fields": "Envoyer vers les champs calculés",
      "update-attribute-only-on-value-change": "Mettre à jour l’attribut uniquement en cas de changement de valeur",
      "send-attributes-updated-notification": "Envoyer une notification de mise à jour des attributs",
      "ttl": "TTL personnalisé",
      "ttl-required": "Le TTL est requis",
      "ttl-min": "Seul un TTL minimum de 0 est autorisé",
      "processing-parameters": "Paramètres de traitement",
      "hint": {
        "strategy": "Contrôle si le résultat est traité immédiatement ou envoyé à une chaîne de règles pour un traitement supplémentaire.",
        "processing-options": "Options de traitement",
        "update-attribute-only-on-value-change": "Met à jour l’attribut à chaque message entrant, que la valeur ait changé ou non. Cela augmente l’utilisation de l’API et réduit les performances.",
        "update-attribute-only-on-value-change-enabled": "Met à jour l’attribut uniquement lorsque la valeur change. Si la valeur est inchangée, les horodatages ne sont pas mis à jour et les notifications ne sont pas envoyées.",
        "send-attributes-updated-notification": "Envoie un événement « Attributes Updated » à la chaîne de règles par défaut.",
        "save-time-series": "Enregistre les données de séries temporelles dans la table ts_kv de la base de données.",
        "save-database": "Enregistre les données d’attribut dans la base de données.",
        "save-latest-values": "Met à jour les données de séries temporelles dans la table ts_kv_latest de la base de données si la nouvelle valeur est plus récente.",
        "send-web-sockets-attribute": "Notifie les abonnements WebSocket des mises à jour des données d’attribut.",
        "send-web-sockets-time-series": "Notifie les abonnements WebSocket des mises à jour des données de séries temporelles.",
        "save-calculated-fields-attribute": "Notifie les champs calculés des mises à jour des données d’attribut.",
        "save-calculated-fields-time-series": "Notifie les champs calculés des mises à jour des données de séries temporelles.",
        "ttl": "Définit la durée de conservation des données de séries temporelles. Si désactivé, le TTL du profil de locataire est utilisé."
      }
    },
    "aggregate-interval-type": "Type d’intervalle d’agrégation",
    "aggregate-interval-value": "Valeur de l’intervalle d’agrégation",
    "aggregate-interval-value-required": "La valeur de l’intervalle d’agrégation est requise.",
    "aggregate-interval-value-min": "La valeur de l’intervalle d’agrégation doit être d’au moins { sec, plural, =0 {0 seconde} =1 {1 seconde} other {# secondes} }.",
    "aggregate-interval-value-step-multiple-of": "La valeur de l’intervalle d’agrégation doit être un diviseur ou un multiple d’un jour.",
    "aggregate-period": {
      "hour": "Heure",
      "day": "Jour",
      "week": "Semaine (lun. - dim.)",
      "week-sun-sat": "Semaine (dim. - sam.)",
      "month": "Mois",
      "quarter": "Trimestre",
      "year": "Année",
      "custom": "Personnalisé"
    },
    "aggregate-period-hint-offset": "Votre intervalle d’agrégation sera : {{ interval }}",
    "aggregate-period-hint-offset-and-so-on": "Votre intervalle d’agrégation sera : {{ interval }} et ainsi de suite.",
    "entity-aggregation": {
      "argument-hint": "Les données seront récupérées à partir de l’entité actuelle.",
      "argument-title-hint": "Définit les arguments d’entrée utilisés pour l’agrégation.",
      "argument-setting-hint": "La dernière télémétrie est le seul type d’argument disponible pour ce champ calculé.",
      "aggregation-interval": "Intervalle d’agrégation",
      "aggregation-interval-hint": "Définit la fréquence d’exécution de l’agrégation. Exemple : toutes les 1 heures, les données sont agrégées à 00:00, 01:00, 02:00, etc. Les résultats de l’agrégation sont stockés avec l’horodatage correspondant au début de l’intervalle d’agrégation.",
      "apply-offset": "Appliquer un décalage à l’intervalle d’agrégation",
      "apply-offset-hint": "Définit de combien décaler le début de chaque période d’agrégation (p. ex., +10 minutes – 00:10, 01:10).",
      "offset-value": "Valeur du décalage",
      "offset-value-required": "La valeur du décalage est requise.",
      "offset-value-min": "La valeur du décalage doit être un entier positif.",
      "offset-value-max": "La valeur du décalage doit être inférieure à la valeur de l’intervalle d’agrégation.",
      "wait-delay": "Appliquer un délai d’attente pour la télémétrie retardée",
      "wait-delay-hint": "Définit combien de temps attendre la télémétrie retardée après la fin de l’intervalle. Si une telle télémétrie arrive, le résultat de cet intervalle sera recalculé.",
      "duration": "Durée",
      "duration-required": "La durée est requise.",
      "duration-min": "La durée doit être d’au moins 1 minute.",
      "duration-hint": "Durée d’attente des données retardées après la fin de l’intervalle.",
      "produce-intermediate-result": "Produire un résultat intermédiaire",
      "produce-intermediate-result-hint": "Calcule les métriques pendant l’intervalle actuel afin de produire un résultat intermédiaire. Les mises à jour n’ont lieu pas plus d’une fois toutes les {{ time }}."
    },
    "hint": {
      "arguments-simple-with-rolling": "Un champ calculé de type simple ne doit pas contenir de clés avec le type « Série temporelle glissante ».",
      "arguments-propagate-arguments-with-rolling": "Le type « Série temporelle glissante » est incompatible avec la propagation « Arguments uniquement ».",
      "arguments-propagate-argument-entity-type": "Le type d’entité est incompatible avec la propagation « Arguments uniquement ».",
      "arguments-propagate-argument-must-current-entity": "Au moins un argument doit être configuré avec le type d’entité source « Entité actuelle ».",
      "arguments-empty": "Au moins un argument doit être spécifié.",
      "expression-required": "L'expression est requise.",
      "expression-invalid": "L'expression est invalide.",
      "expression-max-length": "La longueur de l'expression doit être inférieure à 255 caractères.",
      "argument-name-required": "Le nom de l'argument est requis.",
      "argument-name-pattern": "Le nom de l'argument est invalide.",
      "argument-name-duplicate": "Un argument avec ce nom existe déjà.",
      "argument-name-max-length": "Le nom de l'argument doit contenir moins de 256 caractères.",
      "argument-name-forbidden": "Ce nom d'argument est réservé et ne peut pas être utilisé.",
      "output-key-required": "La clé de sortie est requise.",
      "output-key-pattern": "La clé de sortie n’est pas valide.",
      "output-key-duplicate": "Une clé portant ce nom existe déjà.",
      "output-key-max-length": "La clé de sortie doit comporter moins de 256 caractères.",
      "output-key-forbidden": "La clé de sortie est réservée et ne peut pas être utilisée.",
      "entity-type-required": "Le type d’entité est requis.",
      "name-required": "Le nom est requis.",
      "name-pattern": "Le nom n’est pas valide.",
      "name-duplicate": "Un nom identique existe déjà.",
      "name-max-length": "Le nom doit comporter moins de 256 caractères.",
      "name-forbidden": "Le nom est réservé et ne peut pas être utilisé.",
      "argument-type-required": "Le type d'argument est requis.",
      "max-args": "Nombre maximal d'arguments atteint.",
      "decimals-range": "Le nombre de décimales par défaut doit être compris entre 0 et 15.",
      "expression": "L'expression par défaut montre comment convertir une température de Fahrenheit en Celsius.",
      "arguments-entity-not-found": "L'entité cible de l'argument est introuvable.",
      "use-latest-timestamp": "Si activé, la valeur calculée sera enregistrée avec l’horodatage le plus récent parmi la télémétrie des arguments, au lieu de celui du serveur.",
      "entity-coordinates": "Spécifiez les clés de série temporelle qui fournissent les coordonnées GPS de l’entité (latitude et longitude).",
      "geofencing-zone-groups": "Définissez un ou plusieurs groupes de zones de géorepérage à vérifier (p. ex. « allowedZones », « restrictedZones »). Chaque groupe doit avoir un nom unique, utilisé comme préfixe pour les clés de télémétrie de sortie du champ calculé.",
      "perimeter-attribute-key": "Définissez la clé d’attribut qui contient la définition du périmètre de la zone de géorepérage. Le périmètre est toujours récupéré à partir des attributs côté serveur de l’entité de zone.",
      "report-strategy": "Le statut de présence indique si l’entité est actuellement À L’INTÉRIEUR ou À L’EXTÉRIEUR du groupe de zones. Les événements de transition indiquent quand l’entité est ENTRÉE dans le groupe de zones ou l’a QUITTÉ.",
      "create-relation-with-matched-zones": "Créer et maintenir automatiquement des relations entre l’entité et les zones dans lesquelles elle se trouve actuellement. Les relations sont supprimées lorsque l’entité quitte une zone et créées lorsqu’elle entre dans une nouvelle zone.",
      "relation-type-required": "Le type de relation est requis.",
      "relation-level-required": "Le niveau de relation est requis.",
      "relation-level-min": "La valeur minimale du niveau de relation est 1.",
      "relation-level-max": "La valeur maximale du niveau de relation est {{max}}.",
      "geofencing-empty": "Au moins un groupe de zones doit être configuré.",
      "geofencing-entity-not-found": "L’entité cible de géorepérage est introuvable.",
      "max-geofencing-zone": "Nombre maximum de zones de géorepérage atteint.",
      "zone-group-refresh-interval": "Définit la fréquence d’actualisation des groupes de zones configurés via des entités associées.",
      "zone-group-refresh-interval-required": "L’intervalle d’actualisation des groupes de zones est requis.",
      "zone-group-refresh-interval-min": "L’intervalle d’actualisation des groupes de zones doit être d’au moins {{ min }} secondes.",
      "propagation-path-related-entities": "Définit un chemin direct à un seul niveau vers une entité associée, selon la direction sélectionnée et le type de relation. Seules les relations entre les entités d’appareil, d’actif, de client et de locataire sont prises en charge. Le nombre maximal d’entités résolues par le chemin de relation est de {{ max }}.",
      "data-propagate": "Définit les données à propager à partir des arguments configurés ci-dessous. « Arguments uniquement » utilise directement les données récupérées, tandis que « Résultat de l’expression » calcule une nouvelle valeur à partir de ces données.",
      "aggregation-path-related-entities": "Définit un chemin d’agrégation à un seul niveau via des relations directes avec des entités parentes ou enfants, selon la direction et le type de relation. Seules les relations entre les entités d’appareil, d’actif, de client et de locataire sont prises en charge. Le nombre maximal d’entités résolues par le chemin de relation est de {{ max }}.",
      "arguments-aggregation": "Définit les arguments d’entrée utilisés pour le filtrage et l’agrégation.",
      "setting-arguments-aggregation": "Les données seront récupérées à partir des entités associées configurées dans le chemin d’agrégation.",
      "metrics": "Définit les métriques agrégées en fonction des arguments configurés.",
      "entity-aggregation-metrics": "Définit les métriques agrégées en fonction des arguments configurés sur les intervalles de temps spécifiés.",
      "import-invalid-calculated-field-type": "Impossible d’importer le champ calculé : structure de champ calculé non valide.",
      "simple-expression-title": "Expression arithmétique qui définit la manière dont la valeur calculée est déterminée.",
      "script-title": "Script TBEL qui définit la logique de calcul et les valeurs de sortie.",
      "simple-arguments": "Expression arithmétique qui définit la manière dont la valeur calculée est déterminée.",
      "script-arguments": "Définit les arguments d’entrée disponibles pour le script."
    }
  },
  "alarm-rule": {
    "alarm-rules-tab": "Règles d’alarme",
    "alarm-rule": "Règle d’alarme",
    "alarm-rules": "Règles d’alarme",
    "alarm-rules-old": "Anciennes",
    "alarm-rules-actual": "Actuelles",
    "severities": "Sévérités",
    "cleared": "Condition d’effacement",
    "delete-title": "Êtes-vous sûr de vouloir supprimer la règle d’alarme « {{title}} » ?",
    "delete-text": "Attention : après confirmation, la règle d’alarme et toutes les données associées deviendront irrécupérables.",
    "delete-multiple-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 règle d’alarme} other {# règles d’alarme} } ?",
    "delete-multiple-text": "Attention : après confirmation, toutes les règles d’alarme sélectionnées seront supprimées et toutes les données associées deviendront irrécupérables.",
    "create": "Créer une nouvelle règle d’alarme",
    "add": "Ajouter une règle d’alarme",
    "copy": "Copier la configuration de la règle d’alarme",
    "details": "Détails de la règle d’alarme",
    "no-found": "Aucune règle d’alarme trouvée",
    "list": "{ count, plural, =1 {Une règle d’alarme} other {Liste de # règles d’alarme} }",
    "selected-fields": "{ count, plural, =1 {1 règle d’alarme} other {# règles d’alarme} } sélectionné(s)",
    "import": "Importer une règle d’alarme",
    "file": "Fichier de règle d’alarme",
    "export": "Exporter la règle d’alarme",
    "export-failed-error": "Impossible d’exporter la règle d’alarme : {{error}}",
    "entity-type": "Type d’entité",
    "entity-type-required": "Le type d’entité est requis.",
    "alarm-type": "Type d’alarme",
    "alarm-type-hint": "Identifiant unique (p. ex. HighTempAlarm) dans le périmètre de l’émetteur de l’alarme (Appareil, Actif, etc.) afin d’éviter les conflits.",
    "alarm-type-required": "Le type d’alarme est requis.",
    "alarm-type-pattern": "Le type d’alarme n’est pas valide.",
    "alarm-type-max-length": "Le type d’alarme doit comporter moins de 256 caractères.",
    "clear-alarm": "Effacer l’alarme",
    "value-argument": "Argument",
    "value-argument-required": "L’argument est requis.",
    "static-settings": "Paramètres statiques",
    "configuration": "Configuration",
    "static-schedule": "Statique",
    "dynamic-schedule": "Dynamique",
    "operation-and": "ET",
    "operation-or": "OU",
    "condition-during": "Pendant {{during}}",
    "condition-during-dynamic": "Pendant « {{ attribute }} »",
    "condition-repeat-times": "Répète { count, plural, =1 {1 fois} other {# fois} }",
    "condition-repeat-times-dynamic": "Répète « {{ attribute }} » fois",
    "filter-preview": "Aperçu du filtre",
    "condition-settings": "Paramètres de condition",
    "static": "Statique",
    "dynamic": "Dynamique",
    "argument-filters": "Filtres d’arguments",
    "argument-name": "Nom de l’argument",
    "value-type": "Type de valeur",
    "general": "Général",
    "filters": "Filtres",
    "date-time-hint": "L’argument doit être en millisecondes epoch. Exemple : 1698839340000 correspond à 2023-11-01 12:49:00 UTC.",
    "operation": "Opération",
    "value-source": "Source de la valeur",
    "value": "Valeur",
    "ignore-case": "Ignorer la casse",
    "condition": "Condition",
    "script": "Script",
    "add-filter": "Ajouter un filtre d’argument",
    "edit-filter": "Filtre d’argument",
    "remove-filter": "Supprimer le filtre d’argument",
    "no-filter": "Au moins un filtre est requis.",
    "conditions": {
      "simple": "Simple",
      "duration": "Durée",
      "repeating": "Répétition"
    },
    "schedule-title": "Planification",
    "edit-schedule": "Modifier la planification de l’alarme",
    "schedule-type": "Type de planificateur",
    "schedule-type-required": "Le type de planificateur est requis.",
    "schedule": {
      "any-time": "Active en permanence",
      "specific-time": "Active à une heure précise",
      "custom": "Personnalisé"
    },
    "schedule-day": {
      "monday": "Lundi",
      "tuesday": "Mardi",
      "wednesday": "Mercredi",
      "thursday": "Jeudi",
      "friday": "Vendredi",
      "saturday": "Samedi",
      "sunday": "Dimanche"
    },
    "schedule-days": "Jours",
    "schedule-time": "Heure",
    "schedule-time-from": "De",
    "schedule-time-to": "À",
    "schedule-days-of-week-required": "Au moins un jour de la semaine doit être sélectionné.",
    "tbel": "TBEL",
    "expression-type": {
      "simple": "Simple",
      "script": "Script"
    },
    "operation-type": {
      "and": "ET",
      "or": "OU"
    },
    "filter-predicate-type": {
      "string": "Chaîne",
      "numeric": "Numérique",
      "boolean": "Booléen",
      "complex": "Complexe"
    },
    "alarm-rule-additional-info": "Informations supplémentaires",
    "edit-alarm-rule-additional-info": "Modifier les informations supplémentaires",
    "alarm-rule-additional-info-placeholder": "Veuillez fournir ici vos commentaires et ajustements afin de les afficher dans les détails de l’alarme, sous « Informations supplémentaires »",
    "alarm-rule-additional-info-hint": "Astuce : utiliser <code><span style=\"color: #000;\">$&#123;</span>Nom de l’argument<span style=\"color: #000;\">&#125;</span></code> pour substituer les valeurs des arguments utilisés dans la condition de la règle d’alarme.",
    "alarm-rule-additional-info-icon-hint": "Utiliser le nom de l’argument pour substituer les valeurs des arguments utilisés dans la condition de la règle d’alarme.",
    "alarm-rule-mobile-dashboard": "Tableau de bord mobile",
    "alarm-rule-mobile-dashboard-hint": "Utilisé par l’application mobile comme tableau de bord des détails de l’alarme.",
    "alarm-rule-no-mobile-dashboard": "Aucun tableau de bord sélectionné",
    "alarm-rule-condition": "Condition de la règle d’alarme",
    "enter-alarm-rule-condition-prompt": "Ajouter une condition",
    "enter-alarm-rule-clear-condition-prompt": "Ajouter une condition d’effacement",
    "edit-alarm-rule-condition": "Condition d’alarme",
    "condition-type": "Type de condition",
    "condition-type-hint": "Les options \"Durée\" et \"Répétition\" ne sont pas disponibles lorsque l’opération \"Manquant pendant\" est utilisée dans le filtre.",
    "select-alarm-severity": "Sélectionner la sévérité de l’alarme",
    "add-create-alarm-rule-prompt": "Au moins une condition de déclenchement est requise.",
    "add-create-alarm-rule": "Ajouter une condition de déclenchement",
    "add-clear-alarm-rule": "Ajouter une condition d’effacement",
    "condition-duration": "Durée de la condition",
    "condition-duration-value": "Valeur de la durée",
    "condition-duration-time-unit": "Unité de temps",
    "condition-duration-value-range": "La valeur de la durée doit être comprise entre 1 et 2147483647.",
    "condition-duration-value-pattern": "La valeur de la durée doit être un entier.",
    "condition-duration-value-required": "La valeur de la durée est requise.",
    "condition-duration-time-unit-required": "L’unité de temps est requise.",
    "condition-repeating-value": "Nombre d’événements",
    "condition-repeating-value-hint": "La mise à jour de n’importe quel argument de la règle d’alarme sera comptabilisée comme un événement",
    "condition-repeating-value-range": "Le nombre d’événements doit être compris entre 1 et 2147483647.",
    "condition-repeating-value-pattern": "Le nombre d’événements doit être un entier.",
    "condition-repeating-value-required": "Le nombre d’événements est requis.",
    "create-conditions": "Conditions de déclenchement",
    "clear-condition": "Condition d’effacement",
    "no-clear-alarm-rule": "Aucune condition d’effacement configurée.",
    "advanced-settings": "Paramètres avancés",
    "propagate-alarm": "Propager l’alarme vers les entités associées",
    "alarm-rule-relation-types-list": "Types de relation",
    "alarm-rule-relation-types-list-hint": "Définit les types de relation pour filtrer les entités associées. Si non défini, l’alarme sera propagée à toutes les entités associées.",
    "propagate-alarm-to-owner": "Propager l’alarme vers le propriétaire de l’entité (Client ou Locataire)",
    "propagate-alarm-to-tenant": "Propager l’alarme vers le Locataire",
    "alarm-rule-filter-title": "Filtre de règle d’alarme",
    "filter-title": "Filtre",
    "debugging": "Débogage des règles d’alarme",
    "any-type": "Tout type",
    "enter-alarm-rule-type": "Saisir le type d’alarme",
    "no-alarm-rule-types-matching": "Aucun type d’alarme correspondant à « {{entitySubtype}} » n’a été trouvé.",
    "alarm-rule-type-list-empty": "Aucun type d’alarme sélectionné.",
    "alarm-rule-type-list": "Liste des types d’alarme",
    "alarm-rule-entity-list": "Liste des entités",
    "missing-for": "manquant pendant",
    "time-unit": "Unité",
    "mode": "Mode",
    "type": "Type",
    "value-required": "La valeur est requise.",
    "min-value": "La valeur doit être supérieure ou égale à 1.",
    "argument-in-use": "L’argument est utilisé comme argument général.",
    "import-invalid-alarm-rule-type": "Impossible d’importer la règle d’alarme : structure de règle d’alarme non valide.",
    "no-filter-preview": "Aucun filtre spécifié",
    "filter-operation": {
      "and": "ET",
      "or": "OU"
    }
  },
  "ai-models": {
    "ai-models": "Modèles d'IA",
    "ai-model": "Modèle d'IA",
    "model": "Modèle",
    "name": "Nom",
    "ai-provider": "Fournisseur d'IA",
    "no-found": "Aucun modèle d'IA trouvé",
    "list": "{ count, plural, =1 {Un modèle} other {Liste de # modèles} }",
    "selected-fields": "{ count, plural, =1 {1 modèle} other {# modèles} } sélectionné(s)",
    "add": "Ajouter un modèle",
    "delete-model-title": "Voulez-vous vraiment supprimer le modèle '{{modelName}}' ?",
    "delete-model-text": "Attention, après confirmation, le modèle et toutes les données associées seront irrécupérables.",
    "delete-models-title": "Voulez-vous vraiment supprimer { count, plural, =1 {1 modèle} other {# modèles} } ?",
    "delete-models-text": "Attention, après confirmation, tous les modèles sélectionnés seront supprimés et toutes les données associées seront irrécupérables.",
    "ai-providers": {
      "openai": "OpenAI",
      "azure-openai": "Azure OpenAI",
      "google-ai-gemini": "Google AI Gemini",
      "google-vertex-ai-gemini": "Google Vertex AI Gemini",
      "mistral-ai": "Mistral AI",
      "anthropic": "Anthropic",
      "amazon-bedrock": "Amazon Bedrock",
      "github-models": "GitHub Models",
      "ollama": "Ollama"
    },
    "name-required": "Le nom est requis.",
    "name-max-length": "Le nom doit contenir 255 caractères ou moins.",
    "provider": "Fournisseur",
    "api-key": "Clé API",
    "api-key-required": "La clé API est requise.",
    "api-key-open-ai-required": "La clé API est requise lors de l'utilisation de l'API officielle d'OpenAI.",
    "project-id": "ID du projet",
    "project-id-required": "L'ID du projet est requis",
    "location": "Emplacement",
    "location-required": "L’emplacement est requis.",
    "service-account-key-file": "Fichier de clé du compte de service",
    "service-account-key-file-required": "Le fichier de clé du compte de service est requis.",
    "no-file": "Aucun fichier sélectionné.",
    "drop-file": "Déposez un fichier ou cliquez pour en sélectionner un à téléverser.",
    "personal-access-token": "Jeton d’accès personnel",
    "personal-access-token-required": "Le jeton d’accès personnel est requis.",
    "configuration": "Configuration",
    "model-id": "ID du modèle",
    "model-id-required": "L’ID du modèle est requis.",
    "deployment-name": "Nom du déploiement",
    "deployment-name-required": "Le nom du déploiement est requis",
    "set": "Définir",
    "region": "Région",
    "region-required": "La région est requise.",
    "access-key-id": "ID de la clé d'accès",
    "access-key-id-required": "L’ID de la clé d’accès est requis.",
    "secret-access-key": "Clé d’accès secrète",
    "secret-access-key-required": "La clé d’accès secrète est requise.",
    "temperature": "Température",
    "temperature-hint": "Ajuste le niveau d’aléa dans la sortie du modèle. Une valeur élevée augmente l’aléa, tandis qu’une valeur faible le réduit.",
    "temperature-min": "Doit être supérieur ou égal à 0.",
    "top-p": "Top P",
    "top-p-hint": "Crée un ensemble de tokens les plus probables pour la sélection du modèle. Une valeur élevée élargit le choix, une valeur faible le restreint.",
    "top-p-min-max": "Doit être supérieur à 0 et inférieur ou égal à 1.",
    "top-k": "Top K",
    "top-k-hint": "Limite le choix du modèle à un ensemble fixe des K tokens les plus probables.",
    "top-k-min": "Doit être supérieur ou égal à 0.",
    "presence-penalty": "Pénalité de présence",
    "presence-penalty-hint": "Applique une pénalité fixe à la probabilité d’un token s’il est déjà apparu dans le texte.",
    "frequency-penalty": "Pénalité de fréquence",
    "frequency-penalty-hint": "Applique une pénalité à la probabilité d’un token selon sa fréquence dans le texte.",
    "max-output-tokens": "Nombre maximal de tokens en sortie",
    "max-output-tokens-hint": "Définit le nombre maximal de tokens que \nle modèle peut générer dans une réponse unique.",
    "context-length": "Longueur du contexte",
    "context-length-hint": "Définit la taille de la fenêtre de contexte en tokens. Cela inclut l'entrée utilisateur et la réponse générée.",
    "endpoint": "Point de terminaison",
    "endpoint-required": "Le point de terminaison est requis.",
    "baseurl": "URL de base",
    "baseurl-required": "L’URL de base est requise.",
    "service-version": "Version du service",
    "check-connectivity": "Vérifier la connectivité",
    "check-connectivity-success": "La requête de test a réussi",
    "check-connectivity-failed": "La requête de test a échoué",
    "no-model-matching": "Aucun modèle correspondant à '{{entity}}' n’a été trouvé.",
    "model-required": "Le modèle est requis.",
    "no-model-text": "Aucun modèle trouvé.",
    "authentication": "Authentification",
    "authentication-basic-hint": "Utilise l’authentification HTTP Basic standard. Le nom d’utilisateur et le mot de passe seront combinés, encodés en Base64 et envoyés dans l’en-tête \"Authorization\" de chaque requête vers le serveur Ollama.",
    "authentication-token-hint": "Utilise l’authentification par jeton Bearer. Le jeton fourni sera directement envoyé dans l’en-tête \"Authorization\" de chaque requête vers le serveur Ollama.",
    "authentication-type": {
      "none": "Aucune",
      "basic": "Basic",
      "token": "Jeton"
    },
    "username": "Nom d’utilisateur",
    "username-required": "Le nom d’utilisateur est requis.",
    "password": "Mot de passe",
    "password-required": "Le mot de passe est requis.",
    "token": "Jeton",
    "token-required": "Le jeton est requis."
  },
  "confirm-on-exit": {
    "message": "Des modifications non enregistrées existent. Voulez-vous vraiment quitter cette page ?",
    "html-message": "Des modifications non enregistrées existent.<br/>Voulez-vous vraiment quitter cette page ?",
    "title": "Modifications non enregistrées"
  },
  "contact": {
    "country": "Pays",
    "country-required": "Le pays est requis.",
    "country-object-required": "Veuillez sélectionner un pays valide dans la liste.",
    "city": "Ville",
    "state": "État / Province",
    "postal-code": "Code postal / ZIP",
    "postal-code-invalid": "Format de code postal / ZIP invalide.",
    "address": "Adresse",
    "address2": "Adresse 2",
    "phone": "Téléphone",
    "email": "Email",
    "no-address": "Aucune adresse",
    "no-country-found": "Aucun pays trouvé.",
    "no-country-matching": "Aucun pays correspondant à '{{country}}' n'a été trouvé.",
    "state-max-length": "La longueur de l'état doit être inférieure à 256 caractères",
    "phone-max-length": "Le numéro de téléphone doit contenir moins de 256 caractères",
    "city-max-length": "La ville spécifiée doit contenir moins de 256 caractères"
  },
  "common": {
    "name": "Nom",
    "type": "Type",
    "general": "Général",
    "username": "Nom d'utilisateur",
    "password": "Mot de passe",
    "data": "Données",
    "timestamp": "Horodatage",
    "enter-username": "Saisir le nom d'utilisateur",
    "enter-password": "Saisir le mot de passe",
    "enter-search": "Saisir une recherche",
    "created-time": "Date de création",
    "disabled": "Désactivé",
    "loading": "Chargement...",
    "proceed": "Continuer",
    "open-details-page": "Ouvrir la page de détails",
    "not-found": "Introuvable",
    "value": "Valeur",
    "documentation": "Documentation",
    "time-left": "{{time}} restantes",
    "output": "Sortie",
    "sort-asc": "Croissant",
    "sort-desc": "Décroissant",
    "suffix": {
      "s": "s",
      "ms": "ms"
    },
    "hint": {
      "name-required": "Le nom est requis.",
      "name-pattern": "Le nom est invalide.",
      "name-max-length": "Le nom doit contenir moins de 256 caractères.",
      "title-required": "Le titre est requis.",
      "title-pattern": "Le titre est invalide.",
      "title-max-length": "Le titre doit contenir moins de 256 caractères.",
      "key-required": "La clé est requise.",
      "key-pattern": "La clé est invalide.",
      "key-max-length": "La clé doit contenir moins de 256 caractères."
    },
    "required-fields": "Champs obligatoires manquants"
  },
  "content-type": {
    "json": "Json",
    "text": "Texte",
    "binary": "Binaire (Base64)"
  },
  "color": {
    "color": "Couleur"
  },
  "customer": {
    "customer": "Client",
    "customers": "Clients",
    "management": "Gestion des clients",
    "dashboard": "Tableau de bord client",
    "dashboards": "Tableaux de bord client",
    "devices": "Appareils client",
    "entity-views": "Vues d'entité client",
    "assets": "Actifs client",
    "public-dashboards": "Tableaux de bord publics",
    "public-devices": "Appareils publics",
    "public-assets": "Actifs publics",
    "public-entity-views": "Vues d'entité publiques",
    "add": "Ajouter un client",
    "delete": "Supprimer le client",
    "manage-customer-users": "Gérer les utilisateurs client",
    "manage-customer-devices": "Gérer les appareils client",
    "manage-customer-dashboards": "Gérer les tableaux de bord client",
    "manage-public-devices": "Gérer les appareils publics",
    "manage-public-dashboards": "Gérer les tableaux de bord publics",
    "manage-customer-assets": "Gérer les actifs client",
    "manage-customer-edges": "Gérer les instances Edge client",
    "manage-public-assets": "Gérer les actifs publics",
    "add-customer-text": "Ajouter un nouveau client",
    "no-customers-text": "Aucun client trouvé",
    "customer-details": "Détails du client",
    "delete-customer-title": "Êtes-vous sûr de vouloir supprimer le client '{{customerTitle}}' ?",
    "delete-customer-text": "Attention, après confirmation, le client et toutes les données associées seront irrécupérables.",
    "delete-customers-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 client} other {# clients} } ?",
    "delete-customers-action-title": "Supprimer { count, plural, =1 {1 client} other {# clients} }",
    "delete-customers-text": "Attention, après confirmation, tous les clients sélectionnés seront supprimés ainsi que toutes les données associées.",
    "manage-users": "Gérer les utilisateurs",
    "manage-assets": "Gérer les actifs",
    "manage-devices": "Gérer les appareils",
    "manage-dashboards": "Gérer les tableaux de bord",
    "title": "Titre",
    "title-required": "Le titre est requis.",
    "title-max-length": "Le titre doit contenir moins de 256 caractères",
    "description": "Description",
    "details": "Détails",
    "events": "Événements",
    "copyId": "Copier l'identifiant du client",
    "idCopiedMessage": "Identifiant du client copié dans le presse-papiers",
    "select-customer": "Sélectionner un client",
    "no-customers-matching": "Aucun client correspondant à '{{entity}}' trouvé.",
    "customer-required": "Client requis",
    "select-default-customer": "Sélectionner le client par défaut",
    "default-customer": "Client par défaut",
    "default-customer-required": "Le client par défaut est requis pour déboguer le tableau de bord au niveau du tenant",
    "search": "Rechercher des clients",
    "selected-customers": "{ count, plural, =1 {1 client} other {# clients} } sélectionné(s)",
    "edges": "Instances Edge du client",
    "manage-edges": "Gérer les instances Edge"
  },
  "css-size": {
    "size-value-required": "La valeur de taille est requise",
    "invalid-size-value": "Valeur de taille invalide"
  },
  "date": {
    "last-update-n-ago": "Dernière mise à jour il y a N",
    "last-update-n-ago-text": "Dernière mise à jour {{ agoText }}",
    "custom-date": "Date personnalisée",
    "format": "Format",
    "preview": "Aperçu",
    "auto": "Auto",
    "time-granularity-formats": "Formats de granularité temporelle",
    "unit-year": "Années",
    "unit-month": "Mois",
    "unit-day": "Jours",
    "unit-hour": "Heures",
    "unit-minute": "Minutes",
    "unit-second": "Secondes",
    "unit-millisecond": "Millisecondes"
  },
  "datetime": {
    "date-from": "Date de début",
    "time-from": "Heure de début",
    "date-to": "Date de fin",
    "time-to": "Heure de fin",
    "from": "De",
    "to": "À"
  },
  "dashboard": {
    "dashboard": "Tableau de bord",
    "dashboards": "Tableaux de bord",
    "management": "Gestion des tableaux de bord",
    "view-dashboards": "Afficher les tableaux de bord",
    "add": "Ajouter un tableau de bord",
    "assign-dashboard-to-customer": "Assigner le(s) tableau(x) de bord au client",
    "assign-dashboard-to-customer-text": "Veuillez sélectionner les tableaux de bord à assigner au client",
    "assign-to-customer-text": "Veuillez sélectionner le client auquel assigner le(s) tableau(x) de bord",
    "assign-to-customer": "Assigner au client",
    "unassign-from-customer": "Désassigner du client",
    "make-public": "Rendre le tableau de bord public",
    "make-private": "Rendre le tableau de bord privé",
    "manage-assigned-customers": "Gérer les clients assignés",
    "assigned-customers": "Clients assignés",
    "assign-to-customers": "Assigner le(s) tableau(x) de bord aux clients",
    "assign-to-customers-text": "Veuillez sélectionner les clients à qui assigner le(s) tableau(x) de bord",
    "unassign-from-customers": "Désassigner le(s) tableau(x) de bord des clients",
    "unassign-from-customers-text": "Veuillez sélectionner les clients à désassigner du/des tableau(x) de bord",
    "no-dashboards-text": "Aucun tableau de bord trouvé",
    "no-widgets": "Aucun widget configuré",
    "add-widget": "Ajouter un nouveau widget",
    "add-widget-button-text": "Ajouter un widget",
    "title": "Titre",
    "image": "Image du tableau de bord",
    "mobile-app-settings": "Paramètres de l'application mobile",
    "mobile-order": "Ordre du tableau de bord dans l'application mobile",
    "mobile-hide": "Masquer le tableau de bord dans l'application mobile",
    "update-image": "Mettre à jour l'image du tableau de bord",
    "update-new-version": "Téléverser une nouvelle version",
    "upload-file-to-update": "Téléverser le fichier pour mettre à jour",
    "take-screenshot": "Prendre une capture d’écran",
    "select-widget-title": "Sélectionner un widget",
    "select-widget-value": "{{title}} : sélectionner un widget",
    "select-widget-subtitle": "Liste des types de widgets disponibles",
    "delete": "Supprimer le tableau de bord",
    "title-required": "Le titre est requis.",
    "title-max-length": "Le titre doit contenir moins de 256 caractères",
    "description": "Description",
    "details": "Détails",
    "dashboard-details": "Détails du tableau de bord",
    "add-dashboard-text": "Ajouter un nouveau tableau de bord",
    "assign-dashboards": "Assigner les tableaux de bord",
    "assign-new-dashboard": "Assigner un nouveau tableau de bord",
    "assign-dashboards-text": "Assigner { count, plural, =1 {1 tableau de bord} other {# tableaux de bord} } aux clients",
    "unassign-dashboards-action-text": "Désassigner { count, plural, =1 {1 tableau de bord} other {# tableaux de bord} } des clients",
    "delete-dashboards": "Supprimer les tableaux de bord",
    "unassign-dashboards": "Désassigner les tableaux de bord",
    "unassign-dashboards-action-title": "Désassigner { count, plural, =1 {1 tableau de bord} other {# tableaux de bord} } du client",
    "delete-dashboard-title": "Êtes-vous sûr de vouloir supprimer le tableau de bord '{{dashboardTitle}}' ?",
    "delete-dashboard-text": "Attention, après confirmation, le tableau de bord et toutes les données associées seront irrécupérables.",
    "delete-dashboards-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 tableau de bord} other {# tableaux de bord} } ?",
    "delete-dashboards-action-title": "Supprimer { count, plural, =1 {1 tableau de bord} other {# tableaux de bord} }",
    "delete-dashboards-text": "Attention, après confirmation, tous les tableaux de bord sélectionnés seront supprimés et toutes les données associées seront irrécupérables.",
    "unassign-dashboard-title": "Êtes-vous sûr de vouloir désassigner le tableau de bord '{{dashboardTitle}}' ?",
    "unassign-dashboard-text": "Après confirmation, le tableau de bord sera désassigné et ne sera plus accessible par le client.",
    "unassign-dashboard": "Désassigner le tableau de bord",
    "unassign-dashboards-title": "Êtes-vous sûr de vouloir désassigner { count, plural, =1 {1 tableau de bord} other {# tableaux de bord} } ?",
    "unassign-dashboards-text": "Après confirmation, tous les tableaux de bord sélectionnés seront désassignés et ne seront plus accessibles par le client.",
    "public-dashboard-title": "Le tableau de bord est maintenant public",
    "public-dashboard-text": "Votre tableau de bord <b>{{dashboardTitle}}</b> est maintenant public et accessible via le <a href='{{publicLink}}' target='_blank'>lien</a> suivant :",
    "public-dashboard-notice": "<b>Remarque :</b> N'oubliez pas de rendre publics les appareils concernés afin d'accéder à leurs données.",
    "make-private-dashboard-title": "Êtes-vous sûr de vouloir rendre le tableau de bord '{{dashboardTitle}}' privé ?",
    "make-private-dashboard-text": "Après confirmation, le tableau de bord sera rendu privé et ne sera plus accessible par d'autres.",
    "make-private-dashboard": "Rendre privé le tableau de bord",
    "socialshare-text": "'{{dashboardTitle}}' propulsé par ThingsBoard",
    "socialshare-title": "'{{dashboardTitle}}' propulsé par ThingsBoard",
    "select-dashboard": "Sélectionner un tableau de bord",
    "no-dashboards-matching": "Aucun tableau de bord correspondant à '{{entity}}' trouvé.",
    "dashboard-required": "Le tableau de bord est requis.",
    "select-existing": "Sélectionner un tableau de bord existant",
    "create-new": "Créer un nouveau tableau de bord",
    "new-dashboard-title": "Titre du nouveau tableau de bord",
    "open-dashboard": "Ouvrir le tableau de bord",
    "set-background": "Définir l'arrière-plan",
    "background-color": "Couleur d'arrière-plan",
    "background-image": "Image d'arrière-plan",
    "background-size-mode": "Mode de taille d’arrière-plan",
    "no-image": "Aucune image sélectionnée",
    "empty-image": "Aucune image",
    "drop-image": "Déposez une image ou cliquez pour sélectionner un fichier à téléverser.",
    "maximum-upload-file-size": "Taille maximale de fichier : {{ size }}",
    "cannot-upload-file": "Impossible de téléverser le fichier",
    "settings": "Paramètres",
    "move-all-widgets": "Déplacer tous les widgets",
    "move-by": "Déplacer de",
    "cols": "colonnes",
    "rows": "lignes",
    "layout": "Disposition",
    "layout-type-default": "Par défaut",
    "layout-type-scada": "SCADA",
    "layout-type-divider": "Séparateur",
    "layout-settings-type": "Paramètres de disposition : point de rupture {{ type }}",
    "columns-count": "Nombre de colonnes",
    "columns-count-required": "Le nombre de colonnes est requis.",
    "min-columns-count-message": "Un minimum de 10 colonnes est requis.",
    "max-columns-count-message": "Un maximum de 1000 colonnes est autorisé.",
    "min-layout-width": "Largeur minimale de la disposition",
    "columns-suffix": "colonnes",
    "widgets-margins": "Marge entre les widgets",
    "margin-required": "La valeur de la marge est requise.",
    "min-margin-message": "0 est la seule valeur minimale autorisée pour la marge.",
    "max-margin-message": "50 est la seule valeur maximale autorisée pour la marge.",
    "horizontal-margin": "Marge horizontale",
    "horizontal-margin-required": "La valeur de la marge horizontale est requise.",
    "min-horizontal-margin-message": "0 est la seule valeur minimale autorisée pour la marge horizontale.",
    "max-horizontal-margin-message": "50 est la seule valeur maximale autorisée pour la marge horizontale.",
    "vertical-margin": "Marge verticale",
    "vertical-margin-required": "La valeur de la marge verticale est requise.",
    "min-vertical-margin-message": "0 est la seule valeur minimale autorisée pour la marge verticale.",
    "max-vertical-margin-message": "50 est la seule valeur maximale autorisée pour la marge verticale.",
    "apply-outer-margin": "Appliquer une marge sur les côtés de la disposition",
    "autofill-height": "Remplissage automatique de la hauteur de disposition",
    "mobile-layout": "Paramètres de disposition mobile",
    "mobile-row-height": "Hauteur de ligne mobile",
    "mobile-row-height-required": "La hauteur de ligne mobile est requise.",
    "min-mobile-row-height-message": "5 pixels est la seule valeur minimale autorisée pour la hauteur de ligne mobile.",
    "max-mobile-row-height-message": "200 pixels est la seule valeur maximale autorisée pour la hauteur de ligne mobile.",
    "row-height": "Hauteur de ligne",
    "row-height-required": "La hauteur de ligne est requise.",
    "min-row-height-message": "5 pixels est la seule valeur minimale autorisée pour la hauteur de ligne.",
    "max-row-height-message": "200 pixels est la seule valeur maximale autorisée pour la hauteur de ligne.",
    "display-first-in-mobile-view": "Afficher en premier dans la vue mobile",
    "title-settings": "Paramètres du titre",
    "display-title": "Afficher le titre du tableau de bord",
    "title-color": "Couleur du titre",
    "toolbar-settings": "Paramètres de la barre d’outils",
    "hide-toolbar": "Masquer la barre d’outils",
    "toolbar-always-open": "Garder la barre d’outils ouverte",
    "display-dashboards-selection": "Afficher la sélection des tableaux de bord",
    "display-entities-selection": "Afficher la sélection des entités",
    "display-filters": "Afficher les filtres",
    "display-dashboard-timewindow": "Afficher la fenêtre temporelle",
    "display-dashboard-export": "Afficher l'exportation",
    "display-update-dashboard-image": "Afficher la mise à jour de l'image du tableau de bord",
    "dashboard-logo-settings": "Paramètres du logo du tableau de bord",
    "display-dashboard-logo": "Afficher le logo en mode plein écran",
    "dashboard-logo-image": "Image du logo du tableau de bord",
    "advanced-settings": "Paramètres avancés",
    "dashboard-css": "CSS du tableau de bord",
    "import": "Importer le tableau de bord",
    "export": "Exporter le tableau de bord",
    "export-failed-error": "Impossible d’exporter le tableau de bord : {{error}}",
    "export-prompt": "Inclure les images et ressources du tableau de bord",
    "create-new-dashboard": "Créer un nouveau tableau de bord",
    "dashboard-file": "Fichier du tableau de bord",
    "invalid-dashboard-file-error": "Impossible d’importer le tableau de bord : structure de données invalide.",
    "dashboard-import-missing-aliases-title": "Configurer les alias utilisés par le tableau de bord importé",
    "create-new-widget": "Créer un nouveau widget",
    "import-widget": "Importer un widget",
    "widget-file": "Fichier du widget",
    "invalid-widget-file-error": "Impossible d’importer le widget : structure de données invalide.",
    "widget-import-missing-aliases-title": "Configurer les alias utilisés par le widget importé",
    "open-toolbar": "Ouvrir la barre d’outils du tableau de bord",
    "close-toolbar": "Fermer la barre d’outils",
    "configuration-error": "Erreur de configuration",
    "alias-resolution-error-title": "Erreur de configuration des alias du tableau de bord",
    "invalid-aliases-config": "Aucun appareil ne correspond à certains filtres d'alias.<br/>Veuillez contacter votre administrateur pour résoudre ce problème.",
    "select-devices": "Sélectionner les appareils",
    "assignedToCustomer": "Assigné à un client",
    "assignedToCustomers": "Assigné à des clients",
    "public": "Public",
    "copyId": "Copier l'identifiant du tableau de bord",
    "idCopiedMessage": "Identifiant du tableau de bord copié dans le presse-papiers",
    "public-link": "Lien public",
    "copy-public-link": "Copier le lien public",
    "public-link-copied-message": "Lien public du tableau de bord copié dans le presse-papiers",
    "manage-states": "Gérer les états du tableau de bord",
    "states": "États du tableau de bord",
    "states-short": "États",
    "search-states": "Rechercher dans les états du tableau de bord",
    "selected-states": "{ count, plural, =1 {1 état du tableau de bord} other {# états du tableau de bord} } sélectionné(s)",
    "edit-state": "Modifier l'état du tableau de bord",
    "delete-state": "Supprimer l'état du tableau de bord",
    "add-state": "Ajouter un état du tableau de bord",
    "no-states-text": "Aucun état trouvé",
    "state": "État du tableau de bord",
    "state-name": "Nom",
    "state-name-required": "Le nom de l'état est requis.",
    "state-id": "ID de l'état",
    "state-id-required": "L'ID de l'état est requis.",
    "state-id-exists": "Un état de tableau de bord avec le même ID existe déjà.",
    "is-root-state": "État racine",
    "delete-state-title": "Supprimer l'état du tableau de bord",
    "delete-state-text": "Êtes-vous sûr de vouloir supprimer l'état du tableau de bord nommé '{{stateName}}' ?",
    "show-details": "Afficher les détails",
    "hide-details": "Masquer les détails",
    "select-state": "Sélectionner l'état cible",
    "state-controller": "Contrôleur d'état",
    "state-controller-default": "statique (obsolète)",
    "search": "Rechercher des tableaux de bord",
    "selected-dashboards": "{ count, plural, =1 {1 tableau de bord} other {# tableaux de bord} } sélectionné(s)",
    "home-dashboard": "Tableau de bord d'accueil",
    "home-dashboard-hide-toolbar": "Masquer la barre d'outils du tableau de bord d'accueil",
    "unassign-dashboard-from-edge-text": "Après confirmation, le tableau de bord sera désassigné et ne sera plus accessible par l'instance edge.",
    "unassign-dashboards-from-edge-title": "Êtes-vous sûr de vouloir désassigner { count, plural, =1 {1 tableau de bord} other {# tableaux de bord} } ?",
    "unassign-dashboards-from-edge-text": "Après confirmation, tous les tableaux de bord sélectionnés seront désassignés et ne seront plus accessibles par l'instance edge.",
    "assign-dashboard-to-edge": "Assigner le(s) tableau(x) de bord à l'instance Edge",
    "assign-dashboard-to-edge-text": "Veuillez sélectionner les tableaux de bord à assigner à l'instance Edge",
    "non-existent-dashboard-state-error": "L'état du tableau de bord avec l'identifiant \"{{ stateId }}\" est introuvable",
    "edit-mode": "Mode édition",
    "duplicate-state-action": "Dupliquer l'état",
    "breakpoint-value": "Point de rupture ({{ value }})",
    "breakpoints-id": {
      "default": "Par défaut",
      "xs": "Mobile (xs)",
      "sm": "Tablette (sm)",
      "md": "Ordinateur portable (md)",
      "lg": "Bureau (lg)",
      "xl": "Bureau (xl)"
    },
    "view-format-type-grid": "Grille",
    "view-format-type-list": "Liste",
    "view-format": "Format d'affichage"
  },
  "datakey": {
    "settings": "Paramètres",
    "general": "Général",
    "advanced": "Avancé",
    "key": "Clé",
    "keys": "Clés",
    "label": "Étiquette",
    "color": "Couleur",
    "units": "Symbole spécial à afficher à côté de la valeur",
    "decimals": "Nombre de chiffres après la virgule",
    "data-generation-func": "Fonction de génération de données",
    "use-data-post-processing-func": "Utiliser une fonction de post-traitement des données",
    "configuration": "Configuration de la clé de données",
    "timeseries": "Séries temporelles",
    "attributes": "Attributs",
    "entity-field": "Champ de l'entité",
    "alarm": "Champs d'alarme",
    "timeseries-required": "Les séries temporelles de l'entité sont requises.",
    "timeseries-or-attributes-required": "Séries temporelles/attributs de l'entité requis.",
    "alarm-fields-timeseries-or-attributes-required": "Champs d'alarme ou séries temporelles/attributs de l'entité requis.",
    "maximum-timeseries-or-attributes": "Maximum { count, plural, =1 {1 série temporelle/attribut autorisé.} other {# séries temporelles/attributs autorisés} }",
    "alarm-fields-required": "Les champs d'alarme sont requis.",
    "function-types": "Types de fonctions",
    "function-type": "Type de fonction",
    "function-types-required": "Les types de fonctions sont requis.",
    "data-keys": "Clés de données",
    "data-key": "Clé de données",
    "data-keys-required": "Les clés de données sont requises.",
    "data-key-required": "La clé de données est requise.",
    "alarm-keys": "Clés de données d'alarme",
    "alarm-key": "Clé de données d'alarme",
    "alarm-key-functions": "Fonctions de clé d'alarme",
    "alarm-key-function": "Fonction de clé d'alarme",
    "latest-keys": "Dernières clés de données",
    "latest-key": "Dernière clé de données",
    "latest-key-functions": "Fonctions de dernière clé",
    "latest-key-function": "Fonction de la dernière clé",
    "timeseries-keys": "Clés de séries temporelles",
    "timeseries-key": "Clé de série temporelle",
    "timeseries-key-functions": "Fonctions de clé de série temporelle",
    "timeseries-key-function": "Fonction de clé de série temporelle",
    "maximum-function-types": "Maximum { count, plural, =1 {1 type de fonction autorisé.} other {# types de fonctions autorisés} }",
    "time-description": "horodatage de la valeur actuelle ;",
    "value-description": "la valeur actuelle ;",
    "prev-value-description": "résultat de l'appel de fonction précédent ;",
    "time-prev-description": "horodatage de la valeur précédente ;",
    "prev-orig-value-description": "valeur précédente d'origine ;",
    "aggregation": "Agrégation",
    "aggregation-type-hint-common": "Pour des raisons de performance, le calcul des valeurs agrégées est disponible uniquement pour des intervalles temporels fixes comme \"jour en cours\", \"mois en cours\", etc., et n'est pas disponible pour des fenêtres glissantes comme '30 dernières minutes' ou '24 dernières heures'.",
    "aggregation-type-none-hint": "Prendre la dernière valeur.",
    "aggregation-type-min-hint": "Trouver la valeur minimale parmi les points de données dans une fenêtre temporelle sélectionnée.",
    "aggregation-type-max-hint": "Trouver la valeur maximale parmi les points de données dans une fenêtre temporelle sélectionnée.",
    "aggregation-type-avg-hint": "Calculer la valeur moyenne parmi les points de données dans une fenêtre temporelle sélectionnée.",
    "aggregation-type-sum-hint": "Additionner toutes les valeurs des points de données dans une fenêtre temporelle sélectionnée.",
    "aggregation-type-count-hint": "Nombre total de points de données dans une fenêtre temporelle sélectionnée.",
    "delta-calculation": "Calcul du delta",
    "enable-delta-calculation": "Activer le calcul du delta",
    "enable-delta-calculation-hint": "Lorsqu'activé, la valeur de la clé de données est calculée à partir des valeurs agrégées pour une fenêtre temporelle sélectionnée et une période de comparaison définie. Pour des raisons de performance, le calcul du delta est disponible uniquement pour les fenêtres historiques, et non pour les valeurs en temps réel. Par exemple, vous pouvez calculer le delta entre la consommation énergétique d'hier et celle de l'avant-veille.",
    "delta-calculation-result": "Résultat du calcul du delta",
    "delta-calculation-result-previous-value": "Valeur précédente",
    "delta-calculation-result-delta-absolute": "Delta (absolu)",
    "delta-calculation-result-delta-percent": "Delta (en pourcentage)",
    "source": "Source",
    "latest": "Dernier",
    "latest-value": "Dernière valeur",
    "delta": "delta",
    "percent": "pourcentage",
    "absolute": "absolu"
  },
  "datasource": {
    "type": "Type de source de données",
    "name": "Nom",
    "label": "Étiquette",
    "add-datasource-prompt": "Veuillez ajouter une source de données"
  },
  "details": {
    "details": "Détails",
    "edit-mode": "Mode édition",
    "edit-json": "Éditer JSON",
    "toggle-edit-mode": "Basculer le mode édition"
  },
  "device": {
    "device": "Appareil",
    "device-required": "L'appareil est requis.",
    "devices": "Appareils",
    "management": "Gestion des appareils",
    "view-devices": "Voir les appareils",
    "device-alias": "Alias de l'appareil",
    "device-type-max-length": "Le type d'appareil doit comporter moins de 256 caractères",
    "aliases": "Alias d'appareils",
    "no-alias-matching": "'{{alias}}' introuvable.",
    "no-aliases-found": "Aucun alias trouvé.",
    "no-key-matching": "'{{key}}' introuvable.",
    "no-keys-found": "Aucune clé trouvée.",
    "create-new-alias": "Créez-en un nouveau !",
    "create-new-key": "Créez-en un nouveau !",
    "duplicate-alias-error": "Alias en double trouvé '{{alias}}'.<br>Les alias d'appareil doivent être uniques dans le tableau de bord.",
    "configure-alias": "Configurer l'alias '{{alias}}'",
    "no-devices-matching": "Aucun appareil correspondant à '{{entity}}' trouvé.",
    "alias": "Alias",
    "alias-required": "L'alias de l'appareil est requis.",
    "remove-alias": "Supprimer l'alias de l'appareil",
    "add-alias": "Ajouter un alias d'appareil",
    "name-starts-with": "Expression du nom de l'appareil",
    "help-text": "Utilisez '%' selon le besoin : '%device_name_contains%', '%device_name_ends', 'device_starts_with'.",
    "device-list": "Liste des appareils",
    "use-device-name-filter": "Utiliser un filtre",
    "device-list-empty": "Aucun appareil sélectionné.",
    "device-name-filter-required": "Le filtre de nom d'appareil est requis.",
    "device-name-filter-no-device-matched": "Aucun appareil commençant par '{{device}}' trouvé.",
    "add": "Ajouter un appareil",
    "assign-to-customer": "Attribuer au client",
    "assign-device-to-customer": "Attribuer le(s) appareil(s) au client",
    "assign-device-to-customer-text": "Veuillez sélectionner les appareils à attribuer au client",
    "make-public": "Rendre public l'appareil",
    "make-private": "Rendre privé l'appareil",
    "no-devices-text": "Aucun appareil trouvé",
    "assign-to-customer-text": "Veuillez sélectionner le client à qui attribuer le(s) appareil(s)",
    "device-details": "Détails de l'appareil",
    "add-device-text": "Ajouter un nouvel appareil",
    "credentials": "Identifiants",
    "manage-credentials": "Gérer les identifiants",
    "delete": "Supprimer l'appareil",
    "assign-devices": "Attribuer les appareils",
    "assign-devices-text": "Attribuer { count, plural, =1 {1 appareil} other {# appareils} } au client",
    "delete-devices": "Supprimer les appareils",
    "unassign-from-customer": "Désattribuer du client",
    "unassign-devices": "Désattribuer les appareils",
    "unassign-devices-action-title": "Désattribuer { count, plural, =1 {1 appareil} other {# appareils} } du client",
    "unassign-device-from-edge-title": "Êtes-vous sûr de vouloir désattribuer l'appareil '{{deviceName}}' ?",
    "unassign-device-from-edge-text": "Après confirmation, l'appareil sera désattribué et ne sera plus accessible par l'edge.",
    "unassign-devices-from-edge": "Désattribuer les appareils de l'edge",
    "assign-new-device": "Attribuer un nouvel appareil",
    "make-public-device-title": "Êtes-vous sûr de vouloir rendre l'appareil '{{deviceName}}' public ?",
    "make-public-device-text": "Après confirmation, l'appareil et toutes ses données seront rendus publics et accessibles par d'autres.",
    "make-private-device-title": "Êtes-vous sûr de vouloir rendre l'appareil '{{deviceName}}' privé ?",
    "make-private-device-text": "Après confirmation, l'appareil et toutes ses données seront rendus privés et ne seront plus accessibles par d'autres.",
    "view-credentials": "Voir les identifiants",
    "delete-device-title": "Êtes-vous sûr de vouloir supprimer l'appareil '{{deviceName}}' ?",
    "delete-device-text": "Attention, après confirmation, l'appareil et toutes les données associées seront irrécupérables.",
    "delete-devices-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 appareil} other {# appareils} } ?",
    "delete-devices-action-title": "Supprimer { count, plural, =1 {1 appareil} other {# appareils} }",
    "delete-devices-text": "Attention, après confirmation, tous les appareils sélectionnés seront supprimés et toutes les données associées seront irrécupérables.",
    "unassign-device-title": "Êtes-vous sûr de vouloir désattribuer l'appareil '{{deviceName}}' ?",
    "unassign-device-text": "Après confirmation, l'appareil sera désattribué et ne sera plus accessible par le client.",
    "unassign-device": "Désattribuer l'appareil",
    "unassign-devices-title": "Êtes-vous sûr de vouloir désattribuer { count, plural, =1 {1 appareil} other {# appareils} } ?",
    "unassign-devices-text": "Après confirmation, tous les appareils sélectionnés seront désattribués et ne seront plus accessibles par le client.",
    "device-credentials": "Identifiants de l'appareil",
    "loading-device-credentials": "Chargement des identifiants de l'appareil...",
    "credentials-type": "Type d'identifiants",
    "access-token": "Jeton d'accès",
    "access-token-required": "Le jeton d'accès est requis.",
    "access-token-invalid": "La longueur du jeton d'accès doit être comprise entre 1 et 32 caractères.",
    "certificate-pem-format": "Certificat au format PEM",
    "certificate-pem-format-required": "Le certificat est requis.",
    "copy-access-token": "Copier le jeton d'accès",
    "copy-certificate": "Copier le certificat",
    "copy-client-id": "Copier l'ID client",
    "copy-user-name": "Copier le nom d'utilisateur",
    "copy-password": "Copier le mot de passe",
    "generate-client-id": "Générer l'ID client",
    "generate-user-name": "Générer le nom d'utilisateur",
    "generate-password": "Générer le mot de passe",
    "generate-access-token": "Générer un jeton d'accès",
    "lwm2m-security-config": {
      "identity": "Identité du client",
      "identity-required": "L'identité du client est requise.",
      "identity-tooltip": "L'identifiant PSK est un identifiant PSK arbitraire jusqu'à 128 octets, comme décrit dans la norme [RFC7925].\nL'identifiant PSK DOIT d'abord être converti en chaîne de caractères, puis encodé en octets en utilisant UTF-8.",
      "client-key": "Clé du client",
      "client-key-required": "La clé du client est requise.",
      "client-key-tooltip-prk": "La clé publique ou l'identifiant RPK doit respecter la norme [RFC7250] et être encodé en Base64 !",
      "client-key-tooltip-psk": "La clé PSK doit respecter la norme [RFC4279] et être au format HexDec : 32, 64 ou 128 caractères !",
      "endpoint": "Nom de l’endpoint du client",
      "endpoint-required": "Le nom de l’endpoint du client est requis.",
      "client-public-key": "Clé publique du client",
      "client-public-key-hint": "Si la clé publique du client est vide, le certificat de confiance sera utilisé",
      "client-public-key-tooltip": "La clé publique X509 doit être au format X509v3 encodé en DER, uniquement compatible avec l'algorithme EC, puis encodée en Base64 !",
      "mode": "Mode de configuration de sécurité",
      "client-tab": "Configuration de sécurité du client",
      "client-certificate": "Certificat du client",
      "bootstrap-tab": "Client Bootstrap",
      "bootstrap-server": "Serveur Bootstrap",
      "lwm2m-server": "Serveur LwM2M",
      "client-reboot": "Déclencheur de mise à jour d’enregistrement",
      "bootstrap-reboot": "Déclencheur de requête de bootstrap",
      "client-publicKey-or-id": "Clé publique ou ID du client",
      "client-publicKey-or-id-required": "La clé publique ou l'ID du client est requis.",
      "client-publicKey-or-id-tooltip-psk": "L'identifiant PSK est un identifiant PSK arbitraire jusqu'à 128 octets, comme décrit dans la norme [RFC7925].\nL'identifiant PSK DOIT d'abord être converti en chaîne de caractères, puis encodé en octets en utilisant UTF-8.",
      "client-publicKey-or-id-tooltip-rpk": "La clé publique ou l'identifiant RPK doit respecter la norme [RFC7250] et être encodé en Base64 !",
      "client-publicKey-or-id-tooltip-x509": "La clé publique X509 doit être au format X509v3 encodé en DER, uniquement compatible avec l'algorithme EC, puis encodée en Base64.",
      "client-secret-key": "Clé secrète du client",
      "client-secret-key-required": "La clé secrète du client est requise.",
      "client-secret-key-tooltip-psk": "La clé PSK doit respecter la norme [RFC4279] et être au format HexDec : 32, 64 ou 128 caractères !",
      "client-secret-key-tooltip-prk": "La clé secrète RPK doit être au format PKCS_8 (encodage DER, norme [RFC5958]) puis encodée en Base64 !",
      "client-secret-key-tooltip-x509": "La clé secrète X509 doit être au format PKCS_8 (encodage DER, norme [RFC5958]) puis encodée en Base64 !"
    },
    "client-id": "ID du client",
    "client-id-pattern": "Contient un caractère non valide.",
    "user-name": "Nom d'utilisateur",
    "user-name-required": "Le nom d'utilisateur est requis.",
    "client-id-or-user-name-necessary": "L'ID du client et/ou le nom d'utilisateur sont nécessaires",
    "password": "Mot de passe",
    "secret": "Secret",
    "secret-required": "Le secret est requis.",
    "device-type": "Profil de l'appareil",
    "device-type-required": "Le type d'appareil est requis.",
    "select-device-type": "Sélectionner le type d'appareil",
    "enter-device-type": "Saisir le profil de l'appareil",
    "any-device": "N'importe quel appareil",
    "no-device-types-matching": "Aucun profil d'appareil correspondant à '{{entitySubtype}}' n'a été trouvé.",
    "device-type-list-empty": "Aucun profil d'appareil sélectionné !",
    "device-profile-type-list-empty": "Au moins un profil d'appareil doit être sélectionné.",
    "device-types": "Types d'appareils",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "name-max-length": "Le nom doit comporter moins de 256 caractères",
    "label-max-length": "L'étiquette doit comporter moins de 256 caractères",
    "description": "Description",
    "label": "Étiquette",
    "events": "Événements",
    "details": "Détails",
    "copyId": "Copier l'ID de l'appareil",
    "copyAccessToken": "Copier le jeton d'accès",
    "copy-mqtt-authentication": "Copier les identifiants MQTT",
    "idCopiedMessage": "L'ID de l'appareil a été copié dans le presse-papiers",
    "accessTokenCopiedMessage": "Le jeton d'accès de l'appareil a été copié dans le presse-papiers",
    "mqtt-authentication-copied-message": "Les identifiants MQTT de l'appareil ont été copiés dans le presse-papiers",
    "assignedToCustomer": "Attribué au client",
    "unable-delete-device-alias-title": "Impossible de supprimer l'alias de l'appareil",
    "unable-delete-device-alias-text": "L'alias de l'appareil '{{deviceAlias}}' ne peut pas être supprimé car il est utilisé par le(s) widget(s) suivant(s) :<br/>{{widgetsList}}",
    "is-gateway": "Est une passerelle",
    "overwrite-activity-time": "Écraser l'heure d'activité de l'appareil connecté",
    "device-filter-title": "Filtre d'appareil",
    "filter-title": "Filtre",
    "device-state": "État de l'appareil",
    "state": "État",
    "any": "N'importe quel",
    "active": "Actif",
    "inactive": "Inactif",
    "public": "Public",
    "device-public": "L'appareil est public",
    "select-device": "Sélectionner l'appareil",
    "import": "Importer l'appareil",
    "device-file": "Fichier de l'appareil",
    "search": "Rechercher des appareils",
    "selected-devices": "{ count, plural, =1 {1 appareil} other {# appareils} } sélectionné(s)",
    "device-configuration": "Configuration de l'appareil",
    "transport-configuration": "Configuration de transport",
    "wizard": {
      "device-details": "Détails de l'appareil"
    },
    "unassign-devices-from-edge-title": "Êtes-vous sûr de vouloir désassigner { count, plural, =1 {1 appareil} other {# appareils} } ?",
    "unassign-devices-from-edge-text": "Après confirmation, tous les appareils sélectionnés seront désassignés et ne seront plus accessibles par l’edge.",
    "time": "Temps",
    "connectivity": {
      "check-connectivity": "Vérifier la connectivité",
      "device-created-check-connectivity": "Appareil créé. Vérifions sa connectivité !",
      "loading-check-connectivity-command": "Chargement des commandes de vérification de connectivité...",
      "use-following-instructions": "Utilisez les instructions suivantes pour envoyer des télémesures au nom de l'appareil via le terminal",
      "execute-following-command": "Exécutez la commande suivante",
      "install-curl-windows": "Depuis Windows 10 version b17063, cURL est disponible par défaut",
      "install-curl-macos": "Depuis Mac OS X 10.2 6C115 (Jaguar), cURL est disponible par défaut",
      "install-mqtt-windows": "Utilisez les instructions pour télécharger, installer, configurer et exécuter mosquitto_pub",
      "install-coap-client": "Utilisez les instructions pour télécharger, installer, configurer et exécuter coap-client",
      "install-necessary-client-tools": "Installer les outils clients nécessaires",
      "mqtts-x509-command": "Utilisez la documentation suivante pour connecter l'appareil via MQTT avec authentification X509",
      "coaps-x509-command": "Utilisez la documentation suivante pour connecter l'appareil via CoAP sur DTLS avec authentification X509",
      "snmp-command": "Utilisez la documentation suivante pour connecter l'appareil via SNMP.",
      "sparkplug-command": "Utilisez la documentation suivante pour connecter l'appareil via MQTT Sparkplug.",
      "lwm2m-command": "Utilisez la documentation suivante pour connecter l'appareil via LWM2M."
    }
  },
  "dynamic-form": {
    "property": {
      "properties": "Propriétés",
      "property": "Propriété",
      "id": "Identifiant",
      "name": "Nom",
      "type": "Type",
      "type-text": "Texte",
      "type-password": "Mot de passe",
      "type-textarea": "Zone de texte",
      "type-number": "Nombre",
      "type-switch": "Interrupteur",
      "type-select": "Sélection",
      "type-radios": "Boutons radio",
      "type-datetime": "Date/Heure",
      "type-image": "Image",
      "type-javascript": "JavaScript",
      "type-json": "JSON",
      "type-html": "HTML",
      "type-css": "CSS",
      "type-markdown": "Markdown",
      "type-color": "Couleur",
      "type-color-settings": "Paramètres de couleur",
      "type-font": "Police",
      "type-units": "Unités",
      "type-icon": "Icône",
      "type-fieldset": "Ensemble de champs",
      "type-array": "Tableau",
      "type-html-section": "Section HTML",
      "group-title": "Titre du groupe",
      "no-properties": "Aucune propriété configurée",
      "add-property": "Ajouter une propriété",
      "property-settings": "Paramètres de la propriété",
      "remove-property": "Supprimer la propriété",
      "default-value": "Valeur par défaut",
      "value-required": "Valeur requise",
      "number-settings": "Paramètres numériques",
      "min": "Min",
      "max": "Max",
      "step": "Pas",
      "selected-options-limit": "Limite des options sélectionnées",
      "advanced-ui-settings": "Paramètres UI avancés",
      "disable-on-property": "Désactiver selon la propriété",
      "disable-on-property-none": "Aucune (champ toujours activé)",
      "display-condition-function": "Fonction de condition d'affichage",
      "sub-label": "Sous-étiquette",
      "vertical-divider-after": "Séparateur vertical après",
      "input-field-suffix": "Suffixe du champ de saisie",
      "property-row-classes": "Classes de ligne de propriété",
      "property-field-classes": "Classes de champ de propriété",
      "not-unique-property-ids-error": "Les identifiants des propriétés doivent être uniques !",
      "enable-multiple-select": "Activer la sélection multiple",
      "allow-empty-select-option": "Autoriser l'option vide",
      "select-options": "Options de sélection",
      "not-unique-select-option-value-error": "Les valeurs des options doivent être uniques !",
      "value": "Valeur",
      "label": "Étiquette",
      "add-option": "Ajouter une option",
      "no-options": "Aucune option configurée",
      "remove-option": "Supprimer l'option",
      "textarea-rows": "Lignes de la zone de texte",
      "help-id": "Identifiant d'aide",
      "buttons-direction": "Direction des boutons",
      "direction-row": "Ligne",
      "direction-column": "Colonne",
      "radio-button-options": "Options des boutons radio",
      "datetime-type": "Type de champ Date/Heure",
      "datetime-type-date": "Date",
      "datetime-type-time": "Heure",
      "datetime-type-datetime": "Date/Heure",
      "enable-clear-button": "Activer le bouton de réinitialisation",
      "html-section-settings": "Paramètres de section HTML",
      "html-section-classes": "Classes de section HTML",
      "html-section-content": "Contenu de la section HTML",
      "array-item": "Élément du tableau",
      "item-type": "Type d’élément",
      "item-name": "Nom de l’élément",
      "no-items": "Aucun élément",
      "support-unit-conversion": "Supporte la conversion d’unités"
    },
    "clear-form": "Effacer le formulaire",
    "clear-form-prompt": "Êtes-vous sûr de vouloir supprimer toutes les propriétés du formulaire ?",
    "import-form": "Importer un formulaire depuis JSON",
    "export-form": "Exporter le formulaire en JSON",
    "json-file": "Fichier JSON",
    "json-content": "Contenu JSON",
    "invalid-form-json-file-error": "Impossible d'importer le formulaire depuis JSON : Structure de données JSON invalide."
  },
  "asset-profile": {
    "asset-profile": "Profil d'actif",
    "asset-profiles": "Profils d'actifs",
    "all-asset-profiles": "Tous",
    "add": "Ajouter un profil d'actif",
    "edit": "Modifier le profil d'actif",
    "asset-profile-details": "Détails du profil d'actif",
    "no-asset-profiles-text": "Aucun profil d'actif trouvé",
    "search": "Rechercher des profils d'actifs",
    "selected-asset-profiles": "{ count, plural, =1 {1 profil d'actif} other {# profils d'actifs} } sélectionné(s)",
    "no-asset-profiles-matching": "Aucun profil d'actif correspondant à '{{entity}}' trouvé.",
    "asset-profile-required": "Le profil d'actif est requis",
    "idCopiedMessage": "L'identifiant du profil d'actif a été copié dans le presse-papiers",
    "set-default": "Définir comme profil d'actif par défaut",
    "delete": "Supprimer le profil d'actif",
    "copyId": "Copier l'identifiant du profil d'actif",
    "name-max-length": "Le nom doit contenir moins de 256 caractères",
    "new-device-profile-name": "Nom du profil d'actif",
    "new-device-profile-name-required": "Le nom du profil d'actif est requis.",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "image": "Image du profil d'actif",
    "description": "Description",
    "default": "Par défaut",
    "default-rule-chain": "Chaîne de règles par défaut",
    "default-edge-rule-chain": "Chaîne de règles Edge par défaut",
    "default-edge-rule-chain-hint": "Utilisé sur l'Edge comme chaîne de règles pour traiter les données entrantes des actifs de ce profil",
    "mobile-dashboard": "Tableau de bord mobile",
    "mobile-dashboard-hint": "Utilisé par l'application mobile comme tableau de bord des détails de l'actif",
    "select-queue-hint": "Sélectionnez dans une liste déroulante.",
    "delete-asset-profile-title": "Êtes-vous sûr de vouloir supprimer le profil d'actif '{{assetProfileName}}' ?",
    "delete-asset-profile-text": "Attention, après confirmation, le profil d'actif et toutes les données associées seront irrécupérables.",
    "delete-asset-profiles-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 profil d'actif} other {# profils d'actifs} } ?",
    "delete-asset-profiles-text": "Attention, après confirmation, tous les profils d'actifs sélectionnés seront supprimés ainsi que toutes les données associées.",
    "set-default-asset-profile-title": "Êtes-vous sûr de vouloir définir le profil d'actif '{{assetProfileName}}' comme par défaut ?",
    "set-default-asset-profile-text": "Après confirmation, ce profil d'actif sera marqué comme par défaut et utilisé pour les nouveaux actifs sans profil spécifié.",
    "no-asset-profiles-found": "Aucun profil d'actif trouvé.",
    "create-new-asset-profile": "Créer un nouveau !",
    "create-asset-profile": "Créer un nouveau profil d'actif",
    "import": "Importer un profil d'actif",
    "export": "Exporter le profil d'actif",
    "export-failed-error": "Impossible d'exporter le profil d'actif : {{error}}",
    "asset-profile-file": "Fichier de profil d'actif",
    "invalid-asset-profile-file-error": "Impossible d'importer le profil d'actif : structure de données invalide."
  },
  "device-profile": {
    "device-profile": "Profil d'appareil",
    "device-profiles": "Profils d'appareils",
    "all-device-profiles": "Tous",
    "add": "Ajouter un profil d'appareil",
    "edit": "Modifier le profil d'appareil",
    "device-profile-details": "Détails du profil d'appareil",
    "no-device-profiles-text": "Aucun profil d'appareil trouvé",
    "search": "Rechercher des profils d'appareils",
    "selected-device-profiles": "{ count, plural, =1 {1 profil d'appareil} other {# profils d'appareils} } sélectionné(s)",
    "no-device-profiles-matching": "Aucun profil d'appareil correspondant à '{{entity}}' trouvé.",
    "device-profile-required": "Le profil d'appareil est requis",
    "idCopiedMessage": "L'identifiant du profil d'appareil a été copié dans le presse-papiers",
    "set-default": "Définir comme profil d'appareil par défaut",
    "delete": "Supprimer le profil d'appareil",
    "copyId": "Copier l'identifiant du profil d'appareil",
    "name-max-length": "Le nom doit contenir moins de 256 caractères",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "type": "Type de profil",
    "type-required": "Le type de profil est requis.",
    "type-default": "Par défaut",
    "image": "Image du profil d'appareil",
    "transport-type": "Type de transport",
    "transport-type-required": "Le type de transport est requis.",
    "transport-type-default": "Par défaut",
    "transport-type-default-hint": "Prend en charge les transports MQTT, HTTP et CoAP basiques",
    "transport-type-mqtt": "MQTT",
    "transport-type-mqtt-hint": "Active les paramètres avancés de transport MQTT",
    "transport-type-coap": "CoAP",
    "transport-type-coap-hint": "Active les paramètres avancés de transport CoAP",
    "transport-type-lwm2m": "LWM2M",
    "transport-type-lwm2m-hint": "Type de transport LWM2M",
    "transport-type-snmp": "SNMP",
    "transport-type-snmp-hint": "Spécifiez la configuration du transport SNMP",
    "transport-type-http": "HTTP",
    "description": "Description",
    "default": "Par défaut",
    "profile-configuration": "Configuration du profil",
    "transport-configuration": "Configuration du transport",
    "default-rule-chain": "Chaîne de règles par défaut",
    "default-edge-rule-chain": "Chaîne de règles Edge par défaut",
    "default-edge-rule-chain-hint": "Utilisée sur l’Edge comme chaîne de règles pour traiter les données entrantes des appareils liés à ce profil d’appareil",
    "mobile-dashboard": "Tableau de bord mobile",
    "mobile-dashboard-hint": "Utilisé par l'application mobile comme tableau de bord des détails de l’appareil",
    "select-queue-hint": "Sélectionnez dans la liste déroulante.",
    "delete-device-profile-title": "Voulez-vous vraiment supprimer le profil d’appareil '{{deviceProfileName}}' ?",
    "delete-device-profile-text": "Attention, après confirmation, le profil d’appareil et toutes les données associées, y compris les mises à jour OTA, seront irrécupérables.",
    "delete-device-profiles-title": "Voulez-vous vraiment supprimer { count, plural, =1 {1 profil d’appareil} other {# profils d’appareil} } ?",
    "delete-device-profiles-text": "Attention, après confirmation, tous les profils d’appareil sélectionnés seront supprimés et toutes les données associées, y compris les mises à jour OTA, seront irrécupérables.",
    "set-default-device-profile-title": "Voulez-vous définir le profil d’appareil '{{deviceProfileName}}' comme profil par défaut ?",
    "set-default-device-profile-text": "Après confirmation, ce profil sera marqué comme par défaut et utilisé pour tout nouvel appareil sans profil spécifié.",
    "no-device-profiles-found": "Aucun profil d’appareil trouvé.",
    "create-new-device-profile": "Créer un nouveau !",
    "mqtt-device-topic-filters": "Filtres de topics MQTT pour l’appareil",
    "mqtt-device-topic-filters-unique": "Les filtres de topics MQTT doivent être uniques.",
    "mqtt-device-topic-filters-spark-plug": "Nœud Edge of Network (EoN) Sparkplug B MQTT.",
    "mqtt-device-topic-filters-spark-plug-hint": "Permet les connexions de nœuds EoN avec format de topic et charge utile Sparkplug B.",
    "mqtt-device-topic-filters-spark-plug-attribute-metric-names": "Métriques SparkPlug à stocker en tant qu’attributs.",
    "mqtt-device-topic-filters-spark-plug-attribute-metric-names-hint": "Noms des métriques SparkPlug qui seront stockées en tant qu’attributs d’appareil. Toutes les autres seront stockées comme télémétrie.",
    "mqtt-device-payload-type": "Charge utile MQTT de l’appareil",
    "mqtt-device-payload-type-json": "JSON",
    "mqtt-device-payload-type-proto": "Protobuf",
    "mqtt-enable-compatibility-with-json-payload-format": "Activer la compatibilité avec d'autres formats de charge utile.",
    "mqtt-enable-compatibility-with-json-payload-format-hint": "Lorsqu'activé, la plateforme utilisera par défaut le format de charge utile Protobuf. En cas d'échec du parsing, elle tentera d'utiliser le format JSON. Utile pour la rétrocompatibilité lors des mises à jour du firmware. Par exemple, la version initiale du firmware utilise Json, tandis que la nouvelle version utilise Protobuf. Pendant la mise à jour du parc d'appareils, il est nécessaire de supporter les deux formats simultanément. Ce mode introduit une légère dégradation des performances, il est donc recommandé de le désactiver une fois tous les appareils mis à jour.",
    "mqtt-use-json-format-for-default-downlink-topics": "Utiliser le format Json pour les topics descendants par défaut",
    "mqtt-use-json-format-for-default-downlink-topics-hint": "Lorsqu’activé, la plateforme utilisera le format de charge utile Json pour envoyer des attributs et des RPC via les topics suivants : <b>v1/devices/me/attributes/response/$request_id</b>, <b>v1/devices/me/attributes</b>, <b>v1/devices/me/rpc/request/$request_id</b>, <b>v1/devices/me/rpc/response/$request_id</b>. Ce paramètre n'affecte pas les abonnements aux attributs et RPC utilisant les nouveaux topics (v2) : <b>v2/a/res/$request_id</b>, <b>v2/a</b>, <b>v2/r/req/$request_id</b>, <b>v2/r/res/$request_id</b>. Où <b>$request_id</b> est un identifiant de requête entier.",
    "mqtt-send-ack-on-validation-exception": "Envoyer PUBACK en cas d’échec de validation de message PUBLISH",
    "mqtt-send-ack-on-validation-exception-hint": "Par défaut, la plateforme ferme la session MQTT en cas d'échec de validation du message. Lorsqu’activé, elle envoie un accusé de réception (PUBACK) au lieu de fermer la session.",
    "mqtt-protocol-version": "Version du protocole",
    "snmp-add-mapping": "Ajouter un mappage SNMP",
    "snmp-mapping-not-configured": "Aucun mappage OID vers série temporelle ou attribut configuré",
    "snmp-timseries-or-attribute-name": "Nom de série temporelle/attribut pour le mappage",
    "snmp-timseries-or-attribute-type": "Type de série temporelle/attribut pour le mappage",
    "snmp-method-pdu-type-get-request": "GetRequest",
    "snmp-method-pdu-type-get-next-request": "GetNextRequest",
    "snmp-oid": "OID",
    "transport-device-payload-type-json": "JSON",
    "transport-device-payload-type-proto": "Protobuf",
    "mqtt-payload-type-required": "Le type de charge utile est requis.",
    "coap-device-type": "Type d'appareil CoAP",
    "coap-device-payload-type": "Charge utile de l'appareil CoAP",
    "coap-device-type-required": "Le type d'appareil CoAP est requis.",
    "coap-device-type-default": "Par défaut",
    "coap-device-type-efento": "Efento NB-IoT",
    "support-level-wildcards": "Jokers à un niveau <code>[+]</code> et à plusieurs niveaux <code>[#]</code> pris en charge.",
    "telemetry-topic-filter": "Filtre de sujet de télémétrie",
    "telemetry-topic-filter-required": "Le filtre de sujet de télémétrie est requis.",
    "attributes-topic-filter": "Filtre de publication des attributs",
    "attributes-subscribe-topic-filter": "Filtre d’abonnement des attributs",
    "attributes-topic-filter-required": "Le filtre de publication des attributs est requis.",
    "attributes-subscribe-topic-filter-required": "Le filtre d’abonnement des attributs est requis.",
    "telemetry-proto-schema": "Schéma proto de télémétrie",
    "telemetry-proto-schema-required": "Le schéma proto de télémétrie est requis.",
    "attributes-proto-schema": "Schéma proto des attributs",
    "attributes-proto-schema-required": "Le schéma proto des attributs est requis.",
    "rpc-response-proto-schema": "Schéma proto de réponse RPC",
    "rpc-response-proto-schema-required": "Le schéma proto de réponse RPC est requis.",
    "rpc-response-topic-filter": "Filtre de sujet de réponse RPC",
    "rpc-response-topic-filter-required": "Le filtre de sujet de réponse RPC est requis.",
    "rpc-request-proto-schema": "Schéma proto de requête RPC",
    "rpc-request-proto-schema-required": "Le schéma proto de requête RPC est requis.",
    "rpc-request-proto-schema-hint": "Le message de requête RPC doit toujours contenir les champs : string method = 1; int32 requestId = 2; et params = 3 de n'importe quel type.",
    "not-valid-pattern-topic-filter": "Filtre de sujet avec motif non valide",
    "not-valid-single-character": "Utilisation invalide du caractère joker à un seul niveau",
    "not-valid-multi-character": "Utilisation invalide du caractère joker à plusieurs niveaux",
    "single-level-wildcards-hint": "<code>[+]</code> convient à tout niveau de filtre de sujet. Ex. : <b>v1/devices/+/telemetry</b> ou <b>+/devices/+/attributes</b>.",
    "multi-level-wildcards-hint": "<code>[#]</code> peut remplacer le filtre de sujet lui-même et doit être le dernier symbole du sujet. Ex. : <b>#</b> ou <b>v1/devices/me/#</b>.",
    "alarm-rules": "Règles d'alarme",
    "alarm-rules-with-count": "Règles d'alarme ({{count}})",
    "no-alarm-rules": "Aucune règle d'alarme configurée",
    "add-alarm-rule": "Ajouter une règle d'alarme",
    "edit-alarm-rule": "Modifier la règle d'alarme",
    "alarm-type": "Type d'alarme",
    "alarm-type-required": "Le type d'alarme est requis.",
    "alarm-type-unique": "Le type d'alarme doit être unique dans les règles d'alarme du profil.",
    "alarm-type-max-length": "Le type d'alarme doit comporter moins de 256 caractères",
    "create-alarm-pattern": "Créer une alarme <b>{{alarmType}}</b>",
    "create-alarm-rules": "Créer des règles d'alarme",
    "no-create-alarm-rules": "Aucune condition de création configurée",
    "add-create-alarm-rule-prompt": "Veuillez ajouter une règle de création d'alarme",
    "clear-alarm-rule": "Effacer la règle d'alarme",
    "no-clear-alarm-rule": "Aucune condition d'effacement configurée",
    "add-create-alarm-rule": "Ajouter une condition de création",
    "add-clear-alarm-rule": "Ajouter une condition d'effacement",
    "select-alarm-severity": "Sélectionner la gravité de l'alarme",
    "alarm-severity-required": "La gravité de l'alarme est requise.",
    "condition-duration": "Durée de la condition",
    "condition-duration-value": "Valeur de la durée",
    "condition-duration-time-unit": "Unité de temps",
    "condition-duration-value-range": "La durée doit être comprise entre 1 et 2147483647.",
    "condition-duration-value-pattern": "La durée doit être un entier.",
    "condition-duration-value-required": "La valeur de la durée est requise.",
    "condition-duration-time-unit-required": "L'unité de temps est requise.",
    "advanced-settings": "Paramètres avancés",
    "alarm-rule-additional-info": "Informations supplémentaires",
    "edit-alarm-rule-additional-info": "Modifier les informations supplémentaires",
    "alarm-rule-additional-info-placeholder": "Ajoutez ici vos commentaires ou ajustements à afficher dans les détails de l'alarme",
    "alarm-rule-additional-info-hint": "Astuce : utilisez <code><span style=\"color: #000;\">$&#123;</span>keyName<span style=\"color: #000;\">&#125;</span></code> pour insérer les valeurs des clés utilisées dans la condition.",
    "alarm-rule-mobile-dashboard": "Tableau de bord mobile",
    "alarm-rule-mobile-dashboard-hint": "Utilisé comme tableau de bord des détails de l'alarme dans l'application mobile",
    "alarm-rule-no-mobile-dashboard": "Aucun tableau de bord sélectionné",
    "propagate-alarm": "Propager l'alarme aux entités liées",
    "alarm-rule-relation-types-list": "Types de relations",
    "alarm-rule-relation-types-list-hint": "Définit les types de relations pour filtrer les entités liées. Si non défini, l'alarme sera propagée à toutes les entités liées.",
    "propagate-alarm-to-owner": "Propager l'alarme au propriétaire de l'entité (Client ou Locataire)",
    "propagate-alarm-to-tenant": "Propager l'alarme au Locataire",
    "alarm-rule-condition": "Condition de la règle d'alarme",
    "enter-alarm-rule-condition-prompt": "Veuillez ajouter une condition de règle d'alarme",
    "edit-alarm-rule-condition": "Modifier la condition de la règle d'alarme",
    "device-provisioning": "Approvisionnement de l'appareil",
    "provision-strategy": "Stratégie d'approvisionnement",
    "provision-strategy-required": "La stratégie d'approvisionnement est requise.",
    "provision-strategy-disabled": "Désactivée",
    "provision-strategy-created-new": "Permettre de créer de nouveaux appareils",
    "provision-strategy-check-pre-provisioned": "Vérifier les appareils préapprovisionnés",
    "provision-device-key": "Clé d'approvisionnement de l'appareil",
    "provision-device-key-required": "La clé d'approvisionnement de l'appareil est requise.",
    "copy-provision-key": "Copier la clé d'approvisionnement",
    "provision-key-copied-message": "La clé d'approvisionnement a été copiée dans le presse-papiers",
    "provision-device-secret": "Secret d'approvisionnement de l'appareil",
    "provision-device-secret-required": "Le secret d'approvisionnement de l'appareil est requis.",
    "copy-provision-secret": "Copier le secret d'approvisionnement",
    "provision-secret-copied-message": "Le secret d'approvisionnement a été copié dans le presse-papiers",
    "provision-strategy-x509": {
      "certificate-chain": "Chaîne de certificats X509",
      "certificate-chain-hint": "La stratégie de certificats X.509 est utilisée pour approvisionner les appareils via les certificats client en communication TLS bidirectionnelle.",
      "allow-create-new-devices": "Créer de nouveaux appareils",
      "allow-create-new-devices-hint": "Si sélectionné, de nouveaux appareils seront créés et le certificat client sera utilisé comme identifiants de l'appareil.",
      "certificate-value": "Certificat au format PEM",
      "certificate-value-required": "Le certificat au format PEM est requis",
      "cn-regex-variable": "Variable d'expression régulière CN",
      "cn-regex-variable-required": "La variable d'expression régulière CN est requise",
      "cn-regex-variable-hint": "Requis pour récupérer le nom de l'appareil depuis le nom commun du certificat X509 de l'appareil."
    },
    "condition": "Condition",
    "condition-type": "Type de condition",
    "condition-type-simple": "Simple",
    "condition-type-duration": "Durée",
    "condition-during": "Pendant {{during}}",
    "condition-during-dynamic": "Pendant \"{{ attribute }}\" ({{during}})",
    "condition-type-repeating": "Répétition",
    "condition-type-required": "Le type de condition est requis.",
    "condition-repeating-value": "Nombre d'événements",
    "condition-repeating-value-range": "Le nombre d'événements doit être compris entre 1 et 2147483647.",
    "condition-repeating-value-pattern": "Le nombre d'événements doit être un entier.",
    "condition-repeating-value-required": "Le nombre d'événements est requis.",
    "condition-repeat-times": "Se répète { count, plural, =1 {1 fois} other {# fois} }",
    "condition-repeat-times-dynamic": "Se répète \"{ attribute }\" ({ count, plural, =1 {1 fois} other {# fois} })",
    "schedule-type": "Type de planification",
    "schedule-type-required": "Le type de planification est requis.",
    "schedule": "Planification",
    "edit-schedule": "Modifier la planification de l'alarme",
    "schedule-any-time": "Actif en tout temps",
    "schedule-specific-time": "Actif à une heure spécifique",
    "schedule-custom": "Personnalisé",
    "schedule-day": {
      "monday": "Lundi",
      "tuesday": "Mardi",
      "wednesday": "Mercredi",
      "thursday": "Jeudi",
      "friday": "Vendredi",
      "saturday": "Samedi",
      "sunday": "Dimanche"
    },
    "schedule-days": "Jours",
    "schedule-time": "Heure",
    "schedule-time-from": "De",
    "schedule-time-to": "À",
    "schedule-days-of-week-required": "Au moins un jour de la semaine doit être sélectionné.",
    "create-device-profile": "Créer un nouveau profil d'appareil",
    "import": "Importer le profil d'appareil",
    "export": "Exporter le profil d'appareil",
    "export-failed-error": "Impossible d'exporter le profil d'appareil : {{error}}",
    "device-profile-file": "Fichier de profil d'appareil",
    "invalid-device-profile-file-error": "Impossible d'importer le profil d'appareil : structure de données invalide.",
    "power-saving-mode": "Mode d'économie d'énergie",
    "power-saving-mode-type": {
      "default": "Utiliser le mode d'économie d'énergie du profil d'appareil",
      "psm": "Mode d'économie d'énergie (PSM)",
      "drx": "Réception discontinue (DRX)",
      "edrx": "Réception discontinue étendue (eDRX)"
    },
    "edrx-cycle": "Cycle eDRX",
    "edrx-cycle-required": "Le cycle eDRX est requis.",
    "edrx-cycle-pattern": "Le cycle eDRX doit être un entier positif.",
    "edrx-cycle-min": "Le cycle eDRX minimum est de {{ min }} secondes.",
    "paging-transmission-window": "Fenêtre de transmission de pagination",
    "paging-transmission-window-required": "La fenêtre de transmission de pagination est requise.",
    "paging-transmission-window-pattern": "La fenêtre de transmission doit être un entier positif.",
    "paging-transmission-window-min": "Le minimum pour la fenêtre de transmission est de {{ min }} secondes.",
    "psm-activity-timer": "Minuteur d'activité PSM",
    "psm-activity-timer-required": "Le minuteur d'activité PSM est requis.",
    "psm-activity-timer-pattern": "Le minuteur PSM doit être un entier positif.",
    "psm-activity-timer-min": "Le minuteur PSM doit être au minimum de {{ min }} secondes.",
    "lwm2m": {
      "object-list": "Liste des objets",
      "object-list-empty": "Aucun objet sélectionné.",
      "no-objects-found": "Aucun objet trouvé.",
      "no-objects-matching": "Aucun objet correspondant à '{{object}}' trouvé.",
      "model-tab": "Modèle LWM2M",
      "add-new-instances": "Ajouter de nouvelles instances",
      "instances-list": "Liste des instances",
      "instances-list-required": "La liste des instances est requise.",
      "instance-id-pattern": "L'identifiant de l'instance doit être un entier positif.",
      "instance-id-max": "La valeur maximale de l'identifiant de l'instance est {{max}}.",
      "instance": "Instance",
      "resource-label": "#ID Nom de la ressource",
      "observe-label": "Observer",
      "attribute-label": "Attribut",
      "telemetry-label": "Télémétrie",
      "edit-observe-select": "Pour modifier, sélectionnez télémétrie ou attribut",
      "edit-attributes-select": "Pour modifier les attributs, sélectionnez télémétrie ou attribut",
      "no-attributes-set": "Aucun attribut défini",
      "key-name": "Nom de la clé",
      "key-name-required": "Le nom de la clé est requis",
      "attribute-name": "Nom de l'attribut",
      "attribute-name-required": "Le nom de l'attribut est requis.",
      "attribute-value": "Valeur de l'attribut",
      "attribute-value-required": "La valeur de l'attribut est requise.",
      "attribute-value-pattern": "La valeur doit être un entier positif.",
      "edit-attributes": "Modifier les attributs : {{ name }}",
      "view-attributes": "Voir les attributs : {{ name }}",
      "add-attribute": "Ajouter un attribut",
      "edit-attribute": "Modifier l'attribut",
      "view-attribute": "Voir l'attribut",
      "remove-attribute": "Supprimer l'attribut",
      "delete-server-text": "Attention, après confirmation, la configuration du serveur sera irrécupérable.",
      "delete-server-title": "Êtes-vous sûr de vouloir supprimer ce serveur ?",
      "mode": "Mode de configuration de sécurité",
      "bootstrap-tab": "Bootstrap",
      "bootstrap-server-legend": "Serveur Bootstrap (ShortId...)",
      "lwm2m-server-legend": "Serveur LwM2M (ShortId...)",
      "server": "Serveur",
      "short-id": "ID court du serveur",
      "short-id-tooltip": "ID court du serveur. Utilisé pour lier une instance d’objet serveur.\nCet identifiant identifie de manière unique chaque serveur LwM2M configuré pour le client.\nLa ressource DOIT être définie si Bootstrap-Server est à 'false'.\nLes ID :0 et ID :65535 ne DOIVENT PAS être utilisés.",
      "short-id-tooltip-bootstrap": "ID court du serveur. Utilisé pour lier une instance d’objet serveur.\nCet identifiant identifie de manière unique chaque serveur LwM2M configuré pour le client.\nLa ressource DOIT être définie si Bootstrap-Server est à 'false'.",
      "short-id-required": "L’ID court du serveur est requis.",
      "short-id-range": "L’ID court du serveur doit être compris entre {{ min }} et {{ max }}.",
      "short-id-pattern": "L’ID court doit être un entier positif.",
      "short-id-pattern-bs": "L’ID court du serveur doit être uniquement null",
      "lifetime": "Durée d’enregistrement du client",
      "lifetime-required": "La durée d’enregistrement du client est requise.",
      "lifetime-pattern": "La durée d’enregistrement doit être un entier positif.",
      "default-min-period": "Période minimale entre deux notifications (s)",
      "default-min-period-tooltip": "Valeur par défaut que le client LwM2M doit utiliser comme période minimale d'observation en l'absence de paramètre.",
      "default-min-period-required": "La période minimale est requise.",
      "default-min-period-pattern": "La période minimale doit être un entier positif.",
      "notification-storing": "Stockage des notifications en cas de désactivation ou hors ligne",
      "binding": "Liaison",
      "binding-type": {
        "u": "U : Le client est joignable via la liaison UDP à tout moment.",
        "m": "M : Le client est joignable via la liaison MQTT à tout moment.",
        "h": "H : Le client est joignable via la liaison HTTP à tout moment.",
        "t": "T : Le client est joignable via la liaison TCP à tout moment.",
        "s": "S : Le client est joignable via la liaison SMS à tout moment.",
        "n": "N : Le client DOIT envoyer la réponse via la liaison Non-IP (prise en charge depuis LWM2M 1.1).",
        "uq": "UQ : Connexion UDP en mode file d'attente (non pris en charge depuis LWM2M 1.1)",
        "uqs": "UQS : Connexions UDP et SMS actives ; UDP en mode file d'attente, SMS en mode standard (non pris en charge depuis LWM2M 1.1)",
        "tq": "TQ : Connexion TCP en mode file d'attente (non pris en charge depuis LWM2M 1.1)",
        "tqs": "TQS : Connexions TCP et SMS actives ; TCP en mode file d'attente, SMS en mode standard (non pris en charge depuis LWM2M 1.1)",
        "sq": "SQ : Connexion SMS en mode file d'attente (non pris en charge depuis LWM2M 1.1)"
      },
      "binding-tooltip": "Il s'agit de la liste dans la ressource \"binding\" de l'objet serveur LwM2M - /1/x/7.\nIndique les modes de liaison pris en charge par le client LwM2M.\nCette valeur DOIT être identique à celle de la ressource “Supported Binding and Modes” dans l’objet Device (/3/0/16).\nBien que plusieurs transports soient pris en charge, un seul peut être utilisé pendant toute la session de transport.\nPar exemple, si UDP et SMS sont disponibles, le client et le serveur peuvent communiquer uniquement via l’un des deux durant la session.",
      "bootstrap-server": "Serveur Bootstrap",
      "lwm2m-server": "Serveur LwM2M",
      "include-bootstrap-server": "Inclure les mises à jour du serveur Bootstrap",
      "bootstrap-update-title": "Un serveur Bootstrap est déjà configuré. Êtes-vous sûr de vouloir exclure les mises à jour ?",
      "bootstrap-update-text": "Attention, après confirmation, la configuration du serveur Bootstrap sera irrécupérable.",
      "server-host": "Hôte",
      "server-host-required": "L'hôte est requis.",
      "server-port": "Port",
      "server-port-required": "Le port est requis.",
      "server-port-pattern": "Le port doit être un entier positif.",
      "server-port-range": "Le port doit être compris entre 1 et 65535.",
      "server-public-key": "Clé publique du serveur",
      "server-public-key-required": "La clé publique du serveur est requise.",
      "client-hold-off-time": "Temps d'attente du client",
      "client-hold-off-time-required": "Le temps d'attente du client est requis.",
      "client-hold-off-time-pattern": "Le temps d'attente doit être un entier positif.",
      "client-hold-off-time-tooltip": "Temps d'attente utilisé uniquement avec le serveur Bootstrap",
      "account-after-timeout": "Connexion après expiration",
      "account-after-timeout-required": "La connexion après expiration est requise.",
      "account-after-timeout-pattern": "La valeur doit être un entier positif.",
      "account-after-timeout-tooltip": "Valeur de délai pour l’inscription au serveur Bootstrap.",
      "server-type": "Type de serveur",
      "add-new-server-title": "Ajouter une nouvelle configuration de serveur",
      "add-server-config": "Ajouter une configuration de serveur",
      "add-lwm2m-server-config": "Ajouter un serveur LwM2M",
      "no-config-servers": "Aucun serveur configuré",
      "others-tab": "Autres paramètres",
      "ota-update": "Mise à jour OTA",
      "use-object-19-for-ota-update": "Utiliser l'objet 19 pour les métadonnées de fichier OTA (checksum, taille, version, nom)",
      "use-object-19-for-ota-update-hint": "Utiliser l'objet de ressource ObjectId = 19 pour les mises à jour OTA : FirmWare → InstanceId = 65534, SoftWare → InstanceId = 65535. Le format des données est JSON encapsulé en Base64. Ce JSON contient les métadonnées du fichier OTA : \"Checksum\" (SHA256). Champs supplémentaires : \"Title\" (nom OTA), \"Version\" (version OTA), \"File Name\" (nom de fichier à stocker côté client), \"File Size\" (taille du fichier OTA en octets).",
      "client-strategy": "Stratégie du client lors de la connexion",
      "client-strategy-label": "Stratégie",
      "client-strategy-only-observe": "Envoyer uniquement une requête Observe après la connexion initiale",
      "client-strategy-read-all": "Lire toutes les ressources et envoyer une requête Observe après l’enregistrement",
      "fw-update": "Mise à jour du firmware",
      "fw-update-strategy": "Stratégie de mise à jour du firmware",
      "fw-update-strategy-data": "Pousser le firmware en tant que fichier binaire via Objet 19 Ressource 0 (Data)",
      "fw-update-strategy-package": "Pousser le firmware en tant que fichier binaire via Objet 5 Ressource 0 (Package)",
      "fw-update-strategy-package-uri": "Générer une URL CoAP unique et pousser le firmware via Objet 5 Ressource 1 (Package URI)",
      "sw-update": "Mise à jour du logiciel",
      "sw-update-strategy": "Stratégie de mise à jour du logiciel",
      "sw-update-strategy-package": "Pousser le fichier binaire via Objet 9 Ressource 2 (Package)",
      "sw-update-strategy-package-uri": "Générer une URL CoAP unique et pousser la mise à jour via Objet 9 Ressource 3 (Package URI)",
      "fw-update-resource": "Ressource CoAP pour mise à jour du firmware",
      "fw-update-resource-required": "La ressource de mise à jour du firmware est requise.",
      "sw-update-resource": "Ressource CoAP pour mise à jour du logiciel",
      "sw-update-resource-required": "La ressource de mise à jour du logiciel est requise.",
      "config-json-tab": "Configuration JSON du profil d’appareil",
      "attributes-name": {
        "min-period": "Période minimale",
        "max-period": "Période maximale",
        "greater-than": "Supérieur à",
        "less-than": "Inférieur à",
        "step": "Pas",
        "min-evaluation-period": "Période d’évaluation minimale",
        "max-evaluation-period": "Période d’évaluation maximale"
      },
      "default-object-id": "Version d’objet par défaut (attribut)",
      "default-object-id-ver": {
        "v1-0": "1.0",
        "v1-1": "1.1",
        "v1-2": "1.2"
      },
      "observe-strategy": {
        "observe-strategy": "Stratégie d’observation",
        "single": "Unique",
        "single-description": "Une requête Observe par ressource (meilleure précision, plus de trafic réseau)",
        "composite-all": "Composite global",
        "composite-all-description": "Toutes les ressources sont observées avec une seule requête Observe Composite (plus efficace, moins flexible)",
        "composite-by-object": "Composite par objets",
        "composite-by-object-description": "Les ressources sont regroupées par type d’objet et observées via des requêtes Observe Composite distinctes (approche équilibrée)"
      },
      "init-attr-tel-as-obs-strategy": "Initialiser les attributs et la télémétrie en utilisant la stratégie Observe",
      "init-attr-tel-as-obs-strategy-hint": "Si false - les attributs et la télémétrie sont initialisés en lisant leurs valeurs une par une.\\nSi true - les attributs et la télémétrie sont initialisés en s’abonnant à leurs valeurs via la stratégie Observe."
    },
    "snmp": {
      "add-communication-config": "Ajouter une configuration de communication",
      "add-mapping": "Ajouter une correspondance",
      "authentication-passphrase": "Phrase secrète d'authentification",
      "authentication-passphrase-required": "La phrase secrète d'authentification est requise.",
      "authentication-protocol": "Protocole d'authentification",
      "authentication-protocol-required": "Le protocole d'authentification est requis.",
      "communication-configs": "Configurations de communication",
      "community": "Chaîne de communauté",
      "community-required": "La chaîne de communauté est requise.",
      "context-name": "Nom du contexte",
      "data-key": "Clé de données",
      "data-key-required": "La clé de données est requise.",
      "data-type": "Type de données",
      "data-type-required": "Le type de données est requis.",
      "engine-id": "ID du moteur",
      "host": "Hôte",
      "host-required": "L'hôte est requis.",
      "oid": "OID",
      "oid-pattern": "Format OID invalide.",
      "oid-required": "L'OID est requis.",
      "please-add-communication-config": "Veuillez ajouter une configuration de communication",
      "please-add-mapping-config": "Veuillez ajouter une configuration de correspondance",
      "port": "Port",
      "port-format": "Format de port invalide.",
      "port-required": "Le port est requis.",
      "privacy-passphrase": "Phrase secrète de confidentialité",
      "privacy-passphrase-required": "La phrase secrète de confidentialité est requise.",
      "privacy-protocol": "Protocole de confidentialité",
      "privacy-protocol-required": "Le protocole de confidentialité est requis.",
      "protocol-version": "Version du protocole",
      "protocol-version-required": "La version du protocole est requise.",
      "querying-frequency": "Fréquence de requête, ms",
      "querying-frequency-invalid-format": "La fréquence de requête doit être un entier positif.",
      "querying-frequency-required": "La fréquence de requête est requise.",
      "retries": "Réessais",
      "retries-invalid-format": "Les réessais doivent être un entier positif.",
      "retries-required": "Les réessais sont requis.",
      "scope": "Portée",
      "scope-required": "La portée est requise.",
      "security-name": "Nom de sécurité",
      "security-name-required": "Le nom de sécurité est requis.",
      "timeout-ms": "Délai d'expiration, ms",
      "timeout-ms-invalid-format": "Le délai d'expiration doit être un entier positif.",
      "timeout-ms-required": "Le délai d'expiration est requis.",
      "user-name": "Nom d'utilisateur",
      "user-name-required": "Le nom d'utilisateur est requis."
    }
  },
  "dialog": {
    "close": "Fermer la boîte de dialogue",
    "error-message-title": "Message d'erreur :",
    "error-details-title": "Détails de l'erreur"
  },
  "direction": {
    "column": "Colonne",
    "row": "Ligne"
  },
  "edge": {
    "edge": "Edge",
    "edge-instances": "Instances Edge",
    "instances": "Instances",
    "edge-file": "Fichier Edge",
    "name-max-length": "Le nom doit contenir moins de 256 caractères",
    "label-max-length": "Le libellé doit contenir moins de 256 caractères",
    "type-max-length": "Le type doit contenir moins de 256 caractères",
    "management": "Gestion Edge",
    "no-edges-matching": "Aucun Edge correspondant à '{{entity}}' n'a été trouvé.",
    "add": "Ajouter Edge",
    "no-edges-text": "Aucun Edge trouvé",
    "edge-details": "Détails Edge",
    "add-edge-text": "Ajouter un nouveau Edge",
    "delete": "Supprimer Edge",
    "delete-edge-title": "Êtes-vous sûr de vouloir supprimer le Edge '{{edgeName}}' ?",
    "delete-edge-text": "Attention, après confirmation le Edge et toutes les données associées deviendront irrécupérables.",
    "delete-edges-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 Edge} other {# Edge} } ?",
    "delete-edges-text": "Attention, après confirmation tous les Edge sélectionnés et toutes les données associées seront supprimés définitivement.",
    "name": "Nom",
    "name-starts-with": "Le nom du Edge commence par",
    "name-required": "Le nom est requis.",
    "description": "Description",
    "details": "Détails",
    "events": "Événements",
    "copy-id": "Copier l'ID du Edge",
    "id-copied-message": "L'ID du Edge a été copié dans le presse-papiers",
    "sync": "Synchroniser Edge",
    "edge-required": "Edge requis",
    "edge-type": "Type de l'Edge",
    "edge-type-required": "Le type de l'Edge est requis.",
    "event-action": "Action d'événement",
    "entity-id": "ID de l'entité",
    "select-edge-type": "Sélectionner le type de l'Edge",
    "assign-to-customer": "Assigner à un client",
    "assign-to-customer-text": "Veuillez sélectionner le client à qui assigner le(s) Edge",
    "assign-edge-to-customer": "Assigner le(s) Edge à un client",
    "assign-edge-to-customer-text": "Veuillez sélectionner les Edge à assigner au client",
    "assignedToCustomer": "Assigné à un client",
    "edge-public": "Le Edge est public",
    "assigned-to-customer": "Assigné à : {{customerTitle}}",
    "unassign-from-customer": "Désassigner du client",
    "unassign-edge-title": "Êtes-vous sûr de vouloir désassigner le Edge '{{edgeName}}' ?",
    "unassign-edge-text": "Après confirmation, le Edge sera désassigné et ne sera plus accessible au client.",
    "unassign-edges-title": "Êtes-vous sûr de vouloir désassigner { count, plural, =1 {1 Edge} other {# Edge} } ?",
    "unassign-edges-text": "Après confirmation, tous les Edge sélectionnés seront désassignés et ne seront plus accessibles au client.",
    "make-public": "Rendre public",
    "make-public-edge-title": "Êtes-vous sûr de vouloir rendre le Edge '{{edgeName}}' public ?",
    "make-public-edge-text": "Après confirmation, le Edge et toutes ses données seront rendus publics et accessibles à tous.",
    "make-private": "Rendre privé",
    "public": "Public",
    "make-private-edge-title": "Êtes-vous sûr de vouloir rendre le Edge '{{edgeName}}' privé ?",
    "make-private-edge-text": "Après confirmation, le Edge et toutes ses données seront rendus privés et ne seront plus accessibles à d'autres.",
    "import": "Importer un Edge",
    "install-connect-instructions": "Instructions d'installation et de connexion",
    "install-connect-instructions-edge-created": "Edge créé ! Consultez les instructions d'installation et de connexion",
    "loading-edge-instructions": "Chargement des instructions pour Edge...",
    "label": "Label",
    "load-entity-error": "Échec du chargement des données. L'entité a été supprimée.",
    "assign-new-edge": "Assigner un nouvel Edge",
    "unassign-from-edge": "Désassigner de l'Edge",
    "edge-key": "Clé Edge",
    "copy-edge-key": "Copier la clé Edge",
    "edge-key-copied-message": "La clé Edge a été copiée dans le presse-papiers",
    "edge-secret": "Secret Edge",
    "copy-edge-secret": "Copier le secret Edge",
    "edge-secret-copied-message": "Le secret Edge a été copié dans le presse-papiers",
    "manage-assets": "Gérer les assets",
    "manage-devices": "Gérer les appareils",
    "manage-entity-views": "Gérer les vues d'entités",
    "manage-dashboards": "Gérer les tableaux de bord",
    "manage-rulechains": "Gérer les chaînes de règles",
    "assets": "Assets Edge",
    "devices": "Appareils Edge",
    "entity-views": "Vues d'entités Edge",
    "dashboard": "Tableau de bord Edge",
    "dashboards": "Tableaux de bord Edge",
    "rulechain-templates": "Modèles de chaînes de règles",
    "edge-rulechain-templates": "Modèles de chaînes de règles Edge",
    "rulechains": "Chaînes de règles Edge",
    "search": "Rechercher des Edge",
    "selected-edges": "{ count, plural, =1 {1 Edge} other {# Edge} } sélectionné(s)",
    "any-edge": "N’importe quel Edge",
    "no-edge-types-matching": "Aucun type d’Edge correspondant à '{{entitySubtype}}' trouvé.",
    "edge-type-list-empty": "Aucun type d’Edge sélectionné.",
    "edge-types": "Types d’Edge",
    "enter-edge-type": "Saisir un type d’Edge",
    "deployed": "Déployé",
    "pending": "En attente",
    "downlinks": "Liaisons descendantes",
    "no-downlinks-prompt": "Aucune liaison descendante trouvée",
    "sync-process-started-successfully": "Le processus de synchronisation a démarré avec succès!",
    "missing-related-rule-chains-title": "Des chaînes de règles associées manquent sur l’Edge",
    "missing-related-rule-chains-text": "Les chaînes de règles affectées à l’Edge utilisent des nœuds de règles qui transfèrent des messages vers des chaînes non affectées à cet Edge. <br><br> Liste des chaînes de règles manquantes : <br> {{missingRuleChains}}",
    "widget-datasource-error": "Ce widget prend uniquement en charge les sources de données de type EDGE",
    "upgrade-instructions": "Instructions de mise à jour",
    "connected": "Connecté",
    "disconnected": "Déconnecté"
  },
  "edge-event": {
    "type-dashboard": "Tableau de bord",
    "type-asset": "Actif",
    "type-device": "Appareil",
    "type-device-profile": "Profil de l'appareil",
    "type-asset-profile": "Profil de l'actif",
    "type-entity-view": "Vue d'entité",
    "type-alarm": "Alarme",
    "type-rule-chain": "Chaîne de règles",
    "type-rule-chain-metadata": "Métadonnées de chaîne de règles",
    "type-edge": "Edge",
    "type-user": "Utilisateur",
    "type-tenant": "Locataire",
    "type-tenant-profile": "Profil de locataire",
    "type-customer": "Client",
    "type-relation": "Relation",
    "type-widgets-bundle": "Paquet de widgets",
    "type-widgets-type": "Type de widget",
    "type-admin-settings": "Paramètres d'administration",
    "type-ota-package": "Package OTA",
    "type-queue": "File d'attente",
    "action-type-added": "Ajouté",
    "action-type-deleted": "Supprimé",
    "action-type-updated": "Mis à jour",
    "action-type-post-attributes": "Publier des attributs",
    "action-type-attributes-updated": "Attributs mis à jour",
    "action-type-attributes-deleted": "Attributs supprimés",
    "action-type-timeseries-updated": "Série temporelle mise à jour",
    "action-type-credentials-updated": "Identifiants mis à jour",
    "action-type-assigned-to-customer": "Attribué à un client",
    "action-type-unassigned-from-customer": "Désattribué d'un client",
    "action-type-relation-add-or-update": "Ajout ou mise à jour d'une relation",
    "action-type-relation-deleted": "Relation supprimée",
    "action-type-rpc-call": "Appel RPC",
    "action-type-alarm-ack": "Accusé de réception d'alarme",
    "action-type-alarm-clear": "Réinitialisation de l'alarme",
    "action-type-alarm-assigned": "Alarme attribuée",
    "action-type-alarm-unassigned": "Alarme désattribuée",
    "action-type-assigned-to-edge": "Assigné à Edge",
    "action-type-unassigned-from-edge": "Désassigné de l'Edge",
    "action-type-credentials-request": "Demande d'identifiants",
    "action-type-entity-merge-request": "Demande de fusion d'entités"
  },
  "error": {
    "unable-to-connect": "Impossible de se connecter au serveur ! Veuillez vérifier votre connexion Internet.",
    "unhandled-error-code": "Code d'erreur non géré : {{errorCode}}",
    "unknown-error": "Erreur inconnue"
  },
  "entity": {
    "entity": "Entité",
    "entities": "Entités",
    "entities-count": "Nombre d'entités",
    "alarms-count": "Nombre d'alarmes",
    "aliases": "Alias d'entités",
    "aliases-short": "Alias",
    "entity-alias": "Alias d'entité",
    "unable-delete-entity-alias-title": "Impossible de supprimer l'alias d'entité",
    "unable-delete-entity-alias-text": "L'alias d'entité '{{entityAlias}}' ne peut pas être supprimé car il est utilisé par le(s) widget(s) suivant(s) :<br/>{{widgetsList}}",
    "duplicate-alias-error": "Alias en double trouvé '{{alias}}'.<br>Les alias d'entité doivent être uniques dans le tableau de bord.",
    "missing-entity-filter-error": "Filtre manquant pour l'alias '{{alias}}'.",
    "configure-alias": "Configurer l'alias '{{alias}}'",
    "alias": "Alias",
    "alias-required": "L'alias d'entité est requis.",
    "remove-alias": "Supprimer l'alias d'entité",
    "add-alias": "Ajouter un alias d'entité",
    "edit-alias": "Modifier l'alias d'entité",
    "entity-list": "Liste des entités",
    "entity-type": "Type d'entité",
    "entity-types": "Types d'entités",
    "entity-type-list": "Liste des types d'entités",
    "any-entity": "Toute entité",
    "add-entity-type": "Ajouter un type d'entité",
    "enter-entity-type": "Saisir un type d'entité",
    "no-entities-matching": "Aucune entité correspondant à '{{entity}}' n'a été trouvée.",
    "no-entities-text": "Aucune entité trouvée",
    "no-entity-types-matching": "Aucun type d'entité correspondant à '{{entityType}}' n'a été trouvé.",
    "name-starts-with": "Expression du nom",
    "help-text": "Utilisez '%' selon le besoin : '%nom_entité_contient%', '%nom_entité_se_termine', 'entité_commence_par'.",
    "use-entity-name-filter": "Utiliser le filtre",
    "entity-list-empty": "Aucune entité sélectionnée.",
    "entity-type-list-required": "Au moins un type d'entité doit être sélectionné.",
    "entity-name-filter-required": "Le filtre de nom d'entité est requis.",
    "entity-name-filter-no-entity-matched": "Aucune entité commençant par '{{entity}}' n'a été trouvée.",
    "all-subtypes": "Tous",
    "select-entities": "Sélectionner des entités",
    "no-aliases-found": "Aucun alias trouvé.",
    "no-alias-matching": "'{{alias}}' introuvable.",
    "create-new-alias": "Créer un nouveau !",
    "create-new": "Créer un nouveau",
    "key": "Clé",
    "key-name": "Nom de la clé",
    "no-keys-found": "Aucune clé trouvée.",
    "no-key-matching": "'{{key}}' introuvable.",
    "create-new-key": "Créer une nouvelle !",
    "type": "Type",
    "type-required": "Le type d'entité est requis.",
    "type-device": "Appareil",
    "type-devices": "Appareils",
    "list-of-devices": "{ count, plural, =1 {Un appareil} other {Liste de # appareils} }",
    "device-name-starts-with": "Appareils dont les noms commencent par '{{prefix}}'",
    "type-device-profile": "Profil de l'appareil",
    "type-device-profiles": "Profils d'appareils",
    "clear-selected-profiles": "Effacer les profils sélectionnés",
    "list-of-device-profiles": "{ count, plural, =1 {Un profil d'appareil} other {Liste de # profils d'appareils} }",
    "device-profile-name-starts-with": "Profils d'appareils dont les noms commencent par '{{prefix}}'",
    "type-asset-profile": "Profil d'actif",
    "type-asset-profiles": "Profils d'actifs",
    "list-of-asset-profiles": "{ count, plural, =1 {Un profil d'actif} other {Liste de # profils d'actifs} }",
    "asset-profile-name-starts-with": "Profils d'actifs dont les noms commencent par '{{prefix}}'",
    "type-asset": "Actif",
    "type-assets": "Actifs",
    "list-of-assets": "{ count, plural, =1 {Un actif} other {Liste de # actifs} }",
    "asset-name-starts-with": "Actifs dont les noms commencent par '{{prefix}}'",
    "type-entity-view": "Vue d'entité",
    "type-entity-views": "Vues d'entité",
    "list-of-entity-views": "{ count, plural, =1 {Une vue d'entité} other {Liste de # vues d'entités} }",
    "entity-view-name-starts-with": "Vues d'entités dont les noms commencent par '{{prefix}}'",
    "type-rule": "Règle",
    "type-rules": "Règles",
    "list-of-rules": "{ count, plural, =1 {Une règle} other {Liste de # règles} }",
    "rule-name-starts-with": "Règles dont les noms commencent par '{{prefix}}'",
    "type-plugin": "Plugin",
    "type-plugins": "Plugins",
    "list-of-plugins": "{ count, plural, =1 {Un plugin} other {Liste de # plugins} }",
    "plugin-name-starts-with": "Plugins dont les noms commencent par '{{prefix}}'",
    "type-tenant": "Locataire",
    "type-tenants": "Locataires",
    "list-of-tenants": "{ count, plural, =1 {Un locataire} other {Liste de # locataires} }",
    "tenant-name-starts-with": "Locataires dont les noms commencent par '{{prefix}}'",
    "type-tenant-profile": "Profil de locataire",
    "type-tenant-profiles": "Profils de locataire",
    "list-of-tenant-profiles": "{ count, plural, =1 {Un profil de locataire} other {Liste de # profils de locataire} }",
    "tenant-profile-name-starts-with": "Profils de locataires dont les noms commencent par '{{prefix}}'",
    "type-customer": "Client",
    "type-customers": "Clients",
    "list-of-customers": "{ count, plural, =1 {Un client} other {Liste de # clients} }",
    "customer-name-starts-with": "Clients dont les noms commencent par '{{prefix}}'",
    "type-user": "Utilisateur",
    "type-users": "Utilisateurs",
    "list-of-users": "{ count, plural, =1 {Un utilisateur} other {Liste de # utilisateurs} }",
    "user-name-starts-with": "Utilisateurs dont les noms commencent par '{{prefix}}'",
    "type-dashboard": "Tableau de bord",
    "type-dashboards": "Tableaux de bord",
    "list-of-dashboards": "{ count, plural, =1 {Un tableau de bord} other {Liste de # tableaux de bord} }",
    "dashboard-name-starts-with": "Tableaux de bord dont les noms commencent par '{{prefix}}'",
    "type-alarm": "Alarme",
    "type-alarms": "Alarmes",
    "list-of-alarms": "{ count, plural, =1 {Une alarme} other {Liste de # alarmes} }",
    "alarm-name-starts-with": "Alarmes dont les noms commencent par '{{prefix}}'",
    "type-rulechain": "Chaîne de règles",
    "type-rulechains": "Chaînes de règles",
    "list-of-rulechains": "{ count, plural, =1 {Une chaîne de règles} other {Liste de # chaînes de règles} }",
    "rulechain-name-starts-with": "Chaînes de règles dont les noms commencent par '{{prefix}}'",
    "type-rulenode": "Nœud de règle",
    "type-rulenodes": "Nœuds de règle",
    "list-of-rulenodes": "{ count, plural, =1 {Un nœud de règle} other {Liste de # nœuds de règle} }",
    "rulenode-name-starts-with": "Nœuds de règle dont le nom commence par '{{prefix}}'",
    "type-api-key": "Clé API",
    "type-api-keys": "Clés API",
    "type-current-customer": "Client actuel",
    "type-current-tenant": "Locataire actuel",
    "type-current-user": "Utilisateur actuel",
    "type-current-user-owner": "Propriétaire de l'utilisateur actuel",
    "type-calculated-field": "Champ calculé",
    "type-calculated-fields": "Champs calculés",
    "type-ai-model": "Modèle IA",
    "type-ai-models": "Modèles IA",
    "type-widgets-bundle": "Lot de widgets",
    "type-widgets-bundles": "Lots de widgets",
    "list-of-widgets-bundles": "{ count, plural, =1 {Un pack de widgets} other {Liste de # packs de widgets} }",
    "type-widget": "Widget",
    "type-widgets": "Widgets",
    "list-of-widgets": "{ count, plural, =1 {Un widget} other {Liste de # widgets} }",
    "search": "Rechercher des entités",
    "selected-entities": "{ count, plural, =1 {1 entité} other {# entités} } sélectionnée(s)",
    "entity-name": "Nom de l'entité",
    "entity-label": "Étiquette de l'entité",
    "details": "Détails de l'entité",
    "no-entities-prompt": "Aucune entité trouvée",
    "no-data": "Aucune donnée à afficher",
    "show-all-columns": "Tout afficher",
    "columns-to-display": "Colonnes à afficher",
    "type-api-usage-state": "État d'utilisation de l'API",
    "type-edge": "Edge",
    "type-edges": "Edges",
    "list-of-edges": "{ count, plural, =1 {Un edge} other {Liste de # edges} }",
    "edge-name-starts-with": "Edges dont les noms commencent par '{{prefix}}'",
    "version-conflict": {
      "message": "Souhaitez-vous écraser la version existante ou annuler les modifications et charger la dernière version ?",
      "link": "Vous pouvez télécharger votre version de {{entityType}} en utilisant ce",
      "overwrite": "Écraser la version",
      "discard": "Annuler les modifications"
    },
    "type-tb-resource": "Ressource",
    "type-tb-resources": "Ressources",
    "list-of-tb-resources": "{ count, plural, =1 {Une ressource} other {Liste de # ressources} }",
    "type-ota-package": "Package OTA",
    "type-ota-packages": "Packages OTA",
    "list-of-ota-packages": "{ count, plural, =1 {Un package OTA} other {Liste de # packages OTA} }",
    "type-rpc": "RPC",
    "type-queue": "File d’attente",
    "type-queue-stats": "Statistiques de file d’attente",
    "type-queues-stats": "Statistiques des files d’attente",
    "type-notification": "Notification",
    "type-notification-rule": "Règle de notification",
    "type-notification-rules": "Règles de notification",
    "list-of-notification-rules": "{ count, plural, =1 {Une règle de notification} other {Liste de # règles de notification} }",
    "type-notification-target": "Destinataire de notification",
    "type-notification-targets": "Destinataires de notification",
    "list-of-notification-targets": "{ count, plural, =1 {Un destinataire de notification} other {Liste de # destinataires de notification} }",
    "type-notification-request": "Requête de notification",
    "type-notification-template": "Modèle de notification",
    "type-notification-templates": "Modèles de notification",
    "list-of-notification-templates": "{ count, plural, =1 {Un modèle de notification} other {Liste de # modèles de notification} }",
    "link": "lien",
    "type-oauth2-client": "Client OAuth 2.0",
    "type-oauth2-clients": "Clients OAuth 2.0",
    "list-of-oauth2-clients": "{ count, plural, =1 {Un client OAuth 2.0} other {Liste de # clients OAuth 2.0} }",
    "type-domain": "Domaine",
    "type-domains": "Domaines",
    "list-of-domains": "{ count, plural, =1 {Un domaine} other {Liste de # domaines} }",
    "type-mobile-app": "Application mobile",
    "type-mobile-apps": "Applications mobiles",
    "list-of-mobile-apps": "{ count, plural, =1 {Une application mobile} other {Liste de # applications mobiles} }",
    "type-mobile-app-bundle": "Pack mobile",
    "type-mobile-app-bundles": "Packs mobiles",
    "list-of-mobile-app-bundles": "{ count, plural, =1 {Un bundle mobile} other {Liste de # bundles mobiles} }",
    "limit-reached": "Limite atteinte",
    "limit-reached-text": "Vous avez atteint la limite de <b>{{ entities }}</b>. Pour en ajouter davantage, veuillez demander à votre administrateur système d’augmenter votre limite de {{ entity }}.",
    "request-limit-increase": "Demander une augmentation de limite",
    "request-sysadmin-text": "Êtes-vous l’administrateur système ?",
    "login-here": "Se connecter ici",
    "to-increase-limit": "pour augmenter la limite.",
    "increase-limit-request-sent-title": "Nous avons envoyé une demande automatisée à votre administrateur système pour augmenter la limite",
    "increase-limit-request-sent-text": "Veuillez leur laisser un peu de temps pour examiner la demande et mettre à jour les paramètres. Vous devrez peut-être actualiser cette page pour voir les modifications."
  },
  "entity-field": {
    "created-time": "Date de création",
    "name": "Nom",
    "type": "Type",
    "first-name": "Prénom",
    "last-name": "Nom",
    "email": "Email",
    "title": "Titre",
    "country": "Pays",
    "state": "État",
    "city": "Ville",
    "address": "Adresse",
    "address2": "Adresse 2",
    "zip": "Code postal",
    "phone": "Téléphone",
    "label": "Étiquette",
    "queue-name": "Nom de la file",
    "service-id": "ID du service",
    "owner-name": "Nom du propriétaire",
    "owner-type": "Type de propriétaire"
  },
  "entity-view": {
    "entity-view": "Vue d'entité",
    "entity-view-required": "La vue d'entité est requise.",
    "entity-views": "Vues d'entité",
    "management": "Gestion des vues d'entité",
    "view-entity-views": "Voir les vues d'entité",
    "entity-view-alias": "Alias de la vue d'entité",
    "aliases": "Alias des vues d'entité",
    "no-alias-matching": "'{{alias}}' introuvable.",
    "no-aliases-found": "Aucun alias trouvé.",
    "no-key-matching": "'{{key}}' introuvable.",
    "no-keys-found": "Aucune clé trouvée.",
    "create-new-alias": "Créer un nouveau !",
    "create-new-key": "Créer un nouveau !",
    "duplicate-alias-error": "Alias en double '{{alias}}'.<br>Les alias des vues d'entité doivent être uniques dans le tableau de bord.",
    "configure-alias": "Configurer l'alias '{{alias}}'",
    "no-entity-views-matching": "Aucune vue d'entité correspondant à '{{entity}}' trouvée.",
    "public": "Public",
    "alias": "Alias",
    "alias-required": "L'alias de la vue d'entité est requis.",
    "remove-alias": "Supprimer l'alias de la vue d'entité",
    "add-alias": "Ajouter un alias de vue d'entité",
    "name-starts-with": "Expression du nom de la vue d'entité",
    "help-text": "Utilisez '%' selon le besoin : '%entity-view_name_contains%', '%entity-view_name_ends', 'entity-view_starts_with'.",
    "entity-view-list": "Liste des vues d'entité",
    "use-entity-view-name-filter": "Utiliser un filtre",
    "entity-view-list-empty": "Aucune vue d'entité sélectionnée.",
    "entity-view-name-filter-required": "Le filtre de nom de vue d'entité est requis.",
    "entity-view-name-filter-no-entity-view-matched": "Aucune vue d'entité commençant par '{{entityView}}' trouvée.",
    "add": "Ajouter une vue d'entité",
    "entity-view-public": "La vue d'entité est publique",
    "assign-to-customer": "Assigner à un client",
    "assign-entity-view-to-customer": "Assigner des vues d'entité au client",
    "assign-entity-view-to-customer-text": "Veuillez sélectionner les vues d'entité à assigner au client",
    "no-entity-views-text": "Aucune vue d'entité trouvée",
    "assign-to-customer-text": "Veuillez sélectionner le client à qui assigner la/les vue(s) d'entité",
    "entity-view-details": "Détails de la vue d'entité",
    "add-entity-view-text": "Ajouter une nouvelle vue d'entité",
    "delete": "Supprimer la vue d'entité",
    "assign-entity-views": "Assigner des vues d'entité",
    "assign-entity-views-text": "Assigner { count, plural, =1 {1 vue d'entité} other {# vues d'entité} } au client",
    "delete-entity-views": "Supprimer les vues d'entité",
    "make-public": "Rendre la vue publique",
    "make-private": "Rendre la vue privée",
    "unassign-from-customer": "Désassigner du client",
    "unassign-entity-views": "Désassigner les vues d'entité",
    "unassign-entity-views-action-title": "Désassigner { count, plural, =1 {1 vue d'entité} other {# vues d'entité} } du client",
    "assign-new-entity-view": "Assigner une nouvelle vue d'entité",
    "delete-entity-view-title": "Voulez-vous vraiment supprimer la vue d’entité '{{entityViewName}}' ?",
    "delete-entity-view-text": "Attention, après confirmation, la vue d’entité et toutes les données associées seront irrécupérables.",
    "delete-entity-views-title": "Voulez-vous vraiment supprimer { count, plural, =1 {1 vue d’entité} other {# vues d’entité} } ?",
    "delete-entity-views-action-title": "Supprimer { count, plural, =1 {1 vue d’entité} other {# vues d’entité} }",
    "delete-entity-views-text": "Attention, après confirmation, toutes les vues d’entité sélectionnées seront supprimées et toutes les données associées seront irrécupérables.",
    "make-public-entity-view-title": "Voulez-vous vraiment rendre la vue d’entité '{{entityViewName}}' publique ?",
    "make-public-entity-view-text": "Après confirmation, la vue d’entité et toutes ses données seront rendues publiques et accessibles à d’autres utilisateurs.",
    "make-private-entity-view-title": "Voulez-vous vraiment rendre la vue d’entité '{{entityViewName}}' privée ?",
    "make-private-entity-view-text": "Après confirmation, la vue d’entité et toutes ses données seront rendues privées et ne seront plus accessibles aux autres utilisateurs.",
    "unassign-entity-view-title": "Voulez-vous vraiment désaffecter la vue d’entité '{{entityViewName}}' ?",
    "unassign-entity-view-text": "Après confirmation, la vue d’entité sera désaffectée et ne sera plus accessible par le client.",
    "unassign-entity-view": "Désaffecter la vue d’entité",
    "unassign-entity-views-title": "Voulez-vous vraiment désaffecter { count, plural, =1 {1 vue d’entité} other {# vues d’entité} } ?",
    "unassign-entity-views-text": "Après confirmation, toutes les vues d’entité sélectionnées seront désaffectées et ne seront plus accessibles par le client.",
    "entity-view-type": "Type de vue d'entité",
    "entity-view-type-required": "Le type de vue d'entité est requis.",
    "select-entity-view-type": "Sélectionner le type de vue d'entité",
    "enter-entity-view-type": "Entrer le type de vue d'entité",
    "any-entity-view": "Toute vue d'entité",
    "no-entity-view-types-matching": "Aucun type de vue d'entité correspondant à '{{entitySubtype}}' trouvé.",
    "entity-view-type-list-empty": "Aucun type de vue d'entité sélectionné.",
    "entity-view-types": "Types de vues d'entité",
    "created-time": "Date de création",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "name-max-length": "Le nom doit contenir moins de 256 caractères",
    "type-max-length": "Le type de vue d'entité doit contenir moins de 256 caractères",
    "description": "Description",
    "events": "Événements",
    "details": "Détails",
    "copyId": "Copier l'ID de la vue d'entité",
    "idCopiedMessage": "L'ID de la vue d'entité a été copié dans le presse-papiers",
    "assignedToCustomer": "Assigné à un client",
    "unable-entity-view-device-alias-title": "Impossible de supprimer l'alias de la vue d'entité",
    "unable-entity-view-device-alias-text": "L'alias de l'appareil '{{entityViewAlias}}' ne peut pas être supprimé car il est utilisé par les widgets suivants :<br/>{{widgetsList}}",
    "select-entity-view": "Sélectionner une vue d'entité",
    "start-ts": "Heure de début",
    "end-ts": "Heure de fin",
    "date-limits": "Limites de date",
    "client-attributes": "Attributs client",
    "shared-attributes": "Attributs partagés",
    "server-attributes": "Attributs serveur",
    "timeseries": "Séries temporelles",
    "client-attributes-placeholder": "Attributs client",
    "shared-attributes-placeholder": "Attributs partagés",
    "server-attributes-placeholder": "Attributs serveur",
    "timeseries-placeholder": "Séries temporelles",
    "target-entity": "Entité cible",
    "attributes-propagation": "Propagation des attributs",
    "attributes-propagation-hint": "La vue d’entité copiera automatiquement les attributs spécifiés de l’entité cible à chaque enregistrement ou mise à jour de cette vue. Pour des raisons de performance, les attributs de l’entité cible ne sont pas propagés à la vue d’entité à chaque modification. Vous pouvez activer la propagation automatique en configurant un nœud de règle \"copy to view\" dans votre chaîne de règles et en liant les messages \"Post attributes\" et \"Attributes Updated\" à ce nouveau nœud.",
    "timeseries-data": "Données de séries temporelles",
    "timeseries-data-hint": "Configurez les clés de séries temporelles de l’entité cible qui seront accessibles à la vue d’entité. Ces données sont en lecture seule.",
    "search": "Rechercher des vues d’entité",
    "selected-entity-views": "{ count, plural, =1 {1 vue d’entité} other {# vues d’entité} } sélectionnée(s)",
    "assign-entity-view-to-edge": "Assigner la(les) vue(s) d’entité à l’Edge",
    "assign-entity-view-to-edge-text": "Veuillez sélectionner les vues d’entité à assigner à l’Edge",
    "unassign-entity-view-from-edge-title": "Voulez-vous vraiment désaffecter la vue d’entité '{{entityViewName}}' ?",
    "unassign-entity-view-from-edge-text": "Après confirmation, la vue d’entité sera désaffectée et ne sera plus accessible par l’Edge.",
    "unassign-entity-views-from-edge-action-title": "Désaffecter { count, plural, =1 {1 vue d’entité} other {# vues d’entité} } de l’Edge",
    "unassign-entity-view-from-edge": "Désaffecter la vue d’entité",
    "unassign-entity-views-from-edge-title": "Voulez-vous vraiment désaffecter { count, plural, =1 {1 vue d’entité} other {# vues d’entité} } ?",
    "unassign-entity-views-from-edge-text": "Après confirmation, toutes les vues d’entité sélectionnées seront désaffectées et ne seront plus accessibles par l’Edge."
  },
  "event": {
    "event-type": "Type d'événement",
    "events-filter": "Filtre d'événements",
    "clean-events": "Effacer les événements",
    "type-error": "Erreur",
    "type-lc-event": "Événement de cycle de vie",
    "type-stats": "Statistiques",
    "type-debug-rule-node": "Débogage",
    "type-debug-rule-chain": "Débogage",
    "type-debug-calculated-field": "Débogage",
    "arguments": "Arguments",
    "result": "Résultat",
    "no-events-prompt": "Aucun événement trouvé",
    "error": "Erreur",
    "alarm": "Alarme",
    "event-time": "Heure de l'événement",
    "server": "Serveur",
    "body": "Contenu",
    "method": "Méthode",
    "type": "Type",
    "metadata": "Métadonnées",
    "message": "Message",
    "message-id": "ID du message",
    "copy-message-id": "Copier l'ID du message",
    "message-type": "Type de message",
    "data-type": "Type de données",
    "relation-type": "Type de relation",
    "data": "Données",
    "event": "Événement",
    "status": "Statut",
    "success": "Succès",
    "failed": "Échec",
    "messages-processed": "Messages traités",
    "max-messages-processed": "Messages traités max.",
    "min-messages-processed": "Messages traités min.",
    "errors-occurred": "Erreurs survenues",
    "max-errors-occurred": "Erreurs max.",
    "min-errors-occurred": "Erreurs min.",
    "min-value": "La valeur minimale est 0.",
    "all-events": "Tous",
    "has-error": "Contient une erreur",
    "entity-id": "ID de l'entité",
    "copy-entity-id": "Copier l'ID de l'entité",
    "entity-type": "Type d'entité",
    "clear-filter": "Réinitialiser le filtre",
    "clear-request-title": "Effacer tous les événements",
    "clear-request-text": "Êtes-vous sûr de vouloir effacer tous les événements ?",
    "started": "Démarré",
    "updated": "Mis à jour",
    "stopped": "Arrêté"
  },
  "extension": {
    "extensions": "Extensions",
    "selected-extensions": "{ count, plural, =1 {1 extension} other {# extensions} } sélectionnée(s)",
    "type": "Type",
    "key": "Clé",
    "value": "Valeur",
    "id": "ID",
    "extension-id": "ID de l'extension",
    "extension-type": "Type d'extension",
    "transformer-json": "JSON *",
    "unique-id-required": "L'ID de l'extension existe déjà.",
    "delete": "Supprimer l'extension",
    "add": "Ajouter une extension",
    "edit": "Modifier l'extension",
    "delete-extension-title": "Êtes-vous sûr de vouloir supprimer l'extension '{{extensionId}}' ?",
    "delete-extension-text": "Attention, après confirmation, l'extension et toutes les données associées seront irrécupérables.",
    "delete-extensions-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 extension} other {# extensions} } ?",
    "delete-extensions-text": "Attention, après confirmation, toutes les extensions sélectionnées seront supprimées.",
    "converters": "Convertisseurs",
    "converter-id": "ID du convertisseur",
    "configuration": "Configuration",
    "converter-configurations": "Configurations de convertisseur",
    "token": "Jeton de sécurité",
    "add-converter": "Ajouter un convertisseur",
    "add-config": "Ajouter une configuration de convertisseur",
    "device-name-expression": "Expression du nom de l'appareil",
    "device-type-expression": "Expression du type d'appareil",
    "custom": "Personnalisé",
    "to-double": "Convertir en double",
    "transformer": "Transformateur",
    "json-required": "Le JSON du transformateur est requis.",
    "json-parse": "Impossible d'analyser le JSON du transformateur.",
    "attributes": "Attributs",
    "add-attribute": "Ajouter un attribut",
    "add-map": "Ajouter un élément de mappage",
    "timeseries": "Séries temporelles",
    "add-timeseries": "Ajouter une série temporelle",
    "field-required": "Champ requis",
    "brokers": "Courtiers",
    "add-broker": "Ajouter un courtier",
    "host": "Hôte",
    "port": "Port",
    "port-range": "Le port doit être compris entre 1 et 65535.",
    "ssl": "Ssl",
    "credentials": "Identifiants",
    "username": "Nom d'utilisateur",
    "password": "Mot de passe",
    "retry-interval": "Intervalle de réessai en millisecondes",
    "anonymous": "Anonyme",
    "basic": "Basique",
    "pem": "PEM",
    "ca-cert": "Fichier de certificat CA *",
    "private-key": "Fichier de clé privée *",
    "cert": "Fichier de certificat *",
    "no-file": "Aucun fichier sélectionné.",
    "drop-file": "Déposez un fichier ou cliquez pour en sélectionner un à télécharger.",
    "mapping": "Mappage",
    "topic-filter": "Filtre de sujet",
    "converter-type": "Type de convertisseur",
    "converter-json": "Json",
    "json-name-expression": "Expression JSON du nom de l'appareil",
    "topic-name-expression": "Expression du nom de l'appareil dans le sujet",
    "json-type-expression": "Expression JSON du type de l'appareil",
    "topic-type-expression": "Expression du type de l'appareil dans le sujet",
    "attribute-key-expression": "Expression de la clé d'attribut",
    "attr-json-key-expression": "Expression JSON de la clé d'attribut",
    "attr-topic-key-expression": "Expression de la clé d'attribut dans le sujet",
    "request-id-expression": "Expression de l'ID de requête",
    "request-id-json-expression": "Expression JSON de l'ID de requête",
    "request-id-topic-expression": "Expression de l'ID de requête dans le sujet",
    "response-topic-expression": "Expression du sujet de réponse",
    "value-expression": "Expression de la valeur",
    "topic": "Sujet",
    "timeout": "Délai d'attente en millisecondes",
    "converter-json-required": "Le JSON du convertisseur est requis.",
    "converter-json-parse": "Impossible d'analyser le JSON du convertisseur.",
    "filter-expression": "Expression de filtre",
    "connect-requests": "Requêtes de connexion",
    "add-connect-request": "Ajouter une requête de connexion",
    "disconnect-requests": "Requêtes de déconnexion",
    "add-disconnect-request": "Ajouter une requête de déconnexion",
    "attribute-requests": "Requêtes d'attribut",
    "add-attribute-request": "Ajouter une requête d'attribut",
    "attribute-updates": "Mises à jour des attributs",
    "add-attribute-update": "Ajouter une mise à jour d'attribut",
    "server-side-rpc": "RPC côté serveur",
    "add-server-side-rpc-request": "Ajouter une requête RPC côté serveur",
    "device-name-filter": "Filtre de nom de l'appareil",
    "attribute-filter": "Filtre d'attribut",
    "method-filter": "Filtre de méthode",
    "request-topic-expression": "Expression du sujet de requête",
    "response-timeout": "Délai de réponse en millisecondes",
    "topic-expression": "Expression du sujet",
    "client-scope": "Portée du client",
    "add-device": "Ajouter un appareil",
    "opc-server": "Serveurs",
    "opc-add-server": "Ajouter un serveur",
    "opc-add-server-prompt": "Veuillez ajouter un serveur",
    "opc-application-name": "Nom de l'application",
    "opc-application-uri": "URI de l'application",
    "opc-scan-period-in-seconds": "Période de scan en secondes",
    "opc-security": "Sécurité",
    "opc-identity": "Identité",
    "opc-keystore": "Keystore",
    "opc-type": "Type",
    "opc-keystore-type": "Type",
    "opc-keystore-location": "Emplacement *",
    "opc-keystore-password": "Mot de passe",
    "opc-keystore-alias": "Alias",
    "opc-keystore-key-password": "Mot de passe de la clé",
    "opc-device-node-pattern": "Motif de nœud de l'appareil",
    "opc-device-name-pattern": "Motif du nom de l'appareil",
    "modbus-server": "Serveurs/esclaves",
    "modbus-add-server": "Ajouter un serveur/esclave",
    "modbus-add-server-prompt": "Veuillez ajouter un serveur/esclave",
    "modbus-transport": "Transport",
    "modbus-tcp-reconnect": "Reconnecter automatiquement",
    "modbus-rtu-over-tcp": "RTU sur TCP",
    "modbus-port-name": "Nom du port série",
    "modbus-encoding": "Encodage",
    "modbus-parity": "Parité",
    "modbus-baudrate": "Vitesse de transmission",
    "modbus-databits": "Bits de données",
    "modbus-stopbits": "Bits de stop",
    "modbus-databits-range": "Les bits de données doivent être compris entre 7 et 8.",
    "modbus-stopbits-range": "Les bits de stop doivent être compris entre 1 et 2.",
    "modbus-unit-id": "ID d'unité",
    "modbus-unit-id-range": "L'ID d'unité doit être compris entre 1 et 247.",
    "modbus-device-name": "Nom de l'appareil",
    "modbus-poll-period": "Période d'interrogation (ms)",
    "modbus-attributes-poll-period": "Période d'interrogation des attributs (ms)",
    "modbus-timeseries-poll-period": "Période d'interrogation des séries temporelles (ms)",
    "modbus-poll-period-range": "La période d'interrogation doit être une valeur positive.",
    "modbus-tag": "Étiquette",
    "modbus-function": "Fonction",
    "modbus-register-address": "Adresse du registre",
    "modbus-register-address-range": "L'adresse du registre doit être comprise entre 0 et 65535.",
    "modbus-register-bit-index": "Index de bit",
    "modbus-register-bit-index-range": "L'index de bit doit être compris entre 0 et 15.",
    "modbus-register-count": "Nombre de registres",
    "modbus-register-count-range": "Le nombre de registres doit être une valeur positive.",
    "modbus-byte-order": "Ordre des octets",
    "sync": {
      "status": "Statut",
      "sync": "Synchronisé",
      "not-sync": "Non synchronisé",
      "last-sync-time": "Dernière synchronisation",
      "not-available": "Non disponible"
    },
    "export-extensions-configuration": "Exporter la configuration des extensions",
    "import-extensions-configuration": "Importer la configuration des extensions",
    "import-extensions": "Importer des extensions",
    "import-extension": "Importer une extension",
    "export-extension": "Exporter une extension",
    "file": "Fichier d’extensions",
    "invalid-file-error": "Fichier d’extension invalide"
  },
  "feature": {
    "advanced-features": "Fonctionnalités avancées"
  },
  "filter": {
    "add": "Ajouter un filtre",
    "edit": "Modifier le filtre",
    "name": "Nom du filtre",
    "name-required": "Le nom du filtre est requis.",
    "duplicate-filter": "Un filtre portant le même nom existe déjà.",
    "filters": "Filtres",
    "unable-delete-filter-title": "Impossible de supprimer le filtre",
    "unable-delete-filter-text": "Le filtre '{{filter}}' ne peut pas être supprimé car il est utilisé par le(s) widget(s) suivant(s) :<br/>{{widgetsList}}",
    "duplicate-filter-error": "Filtre dupliqué détecté '{{filter}}'.<br>Les filtres doivent être uniques dans le tableau de bord.",
    "missing-key-filters-error": "Il manque des filtres clés pour le filtre '{{filter}}'.",
    "filter": "Filtre",
    "editable": "Modifiable",
    "editable-hint": "Permettre à l’utilisateur de modifier la valeur du filtre dans les tableaux de bord.",
    "no-filters-found": "Aucun filtre trouvé.",
    "no-filter-text": "Aucun filtre spécifié",
    "add-filter-prompt": "Veuillez ajouter un filtre",
    "no-filter-matching": "'{{filter}}' introuvable.",
    "create-new-filter": "Créer un nouveau filtre !",
    "create-new": "Créer",
    "filter-required": "Le filtre est requis.",
    "operation": {
      "operation": "Opération",
      "equal": "égal à",
      "not-equal": "différent de",
      "starts-with": "commence par",
      "ends-with": "se termine par",
      "contains": "contient",
      "not-contains": "ne contient pas",
      "greater": "supérieur à",
      "less": "inférieur à",
      "greater-or-equal": "supérieur ou égal à",
      "less-or-equal": "inférieur ou égal à",
      "and": "et",
      "or": "ou",
      "in": "dans",
      "not-in": "pas dans"
    },
    "ignore-case": "ignorer la casse",
    "value": "Valeur",
    "remove-filter": "Supprimer le filtre",
    "duplicate-filter-action": "Dupliquer le filtre",
    "preview": "Aperçu du filtre",
    "no-filters": "Aucun filtre configuré",
    "add-filter": "Ajouter un filtre",
    "add-complex-filter": "Ajouter un filtre complexe",
    "add-complex": "Ajouter complexe",
    "complex-filter": "Filtre complexe",
    "edit-complex-filter": "Modifier le filtre complexe",
    "edit-filter-user-params": "Modifier les paramètres utilisateur du prédicat du filtre",
    "filter-user-params": "Paramètres utilisateur du prédicat de filtre",
    "user-parameters": "Paramètres utilisateur",
    "display-label": "Libellé affiché",
    "custom-label": "Libellé personnalisé",
    "custom-label-hint": "Activer pour définir un libellé personnalisé pour le filtre. Lorsqu’il est désactivé, un libellé sera généré automatiquement.",
    "order-priority": "Ordre d’affichage",
    "key-filter": "Filtre clé",
    "key-filters": "Filtres clés",
    "key-name": "Nom de la clé",
    "key-name-required": "Le nom de la clé est requis.",
    "key-type": {
      "key-type": "Type de clé",
      "attribute": "Attribut",
      "timeseries": "Séries temporelles",
      "entity-field": "Champ d’entité",
      "constant": "Constante",
      "client-attribute": "Attribut client",
      "server-attribute": "Attribut serveur",
      "shared-attribute": "Attribut partagé"
    },
    "value-type": {
      "value-type": "Type de valeur",
      "string": "Chaîne",
      "numeric": "Numérique",
      "boolean": "Booléen",
      "date-time": "Date/Heure"
    },
    "value-type-required": "Le type de valeur de la clé est requis.",
    "key-value-type-change-title": "Voulez-vous vraiment changer le type de valeur de la clé ?",
    "key-value-type-change-message": "Si vous confirmez le nouveau type de valeur, tous les filtres clés saisis seront supprimés.",
    "no-key-filters": "Aucun filtre clé configuré",
    "add-key-filter": "Ajouter un filtre clé",
    "remove-key-filter": "Supprimer le filtre clé",
    "edit-key-filter": "Modifier le filtre clé",
    "date": "Date",
    "time": "Heure",
    "current-tenant": "Locataire actuel",
    "current-customer": "Client actuel",
    "current-user": "Utilisateur actuel",
    "current-device": "Appareil actuel",
    "default-value": "Valeur par défaut",
    "default-comma-separated-values": "Valeurs par défaut séparées par des virgules",
    "dynamic-source-type": "Type de source dynamique",
    "dynamic-value": "Valeur dynamique",
    "no-dynamic-value": "Aucune valeur dynamique",
    "source-attribute": "Attribut source",
    "switch-to-dynamic-value": "Passer à une valeur dynamique",
    "switch-to-default-value": "Revenir à la valeur par défaut",
    "inherit-owner": "Hériter du propriétaire",
    "source-attribute-not-set": "Si l’attribut source n’est pas défini",
    "unit": "Unité"
  },
  "fullscreen": {
    "expand": "Agrandir en plein écran",
    "exit": "Quitter le plein écran",
    "toggle": "Basculer en mode plein écran",
    "fullscreen": "Plein écran"
  },
  "function": {
    "function": "Fonction"
  },
  "gateway": {
    "gateway-name": "Nom de la passerelle",
    "gateway-name-required": "Le nom de la passerelle est requis.",
    "gateways": "Passerelles",
    "create-new-gateway": "Créer une nouvelle passerelle",
    "create-new-gateway-text": "Êtes-vous sûr de vouloir créer une nouvelle passerelle avec le nom : '{{gatewayName}}' ?",
    "launch-command": "Commande de lancement",
    "no-gateway-found": "Aucune passerelle trouvée.",
    "no-gateway-matching": "'{{item}}' introuvable."
  },
  "grid": {
    "delete-item-title": "Êtes-vous sûr de vouloir supprimer cet élément ?",
    "delete-item-text": "Attention, après confirmation, cet élément et toutes les données associées seront irrécupérables.",
    "delete-items-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 élément} other {# éléments} } ?",
    "delete-items-action-title": "Supprimer { count, plural, =1 {1 élément} other {# éléments} }",
    "delete-items-text": "Attention, après confirmation, tous les éléments sélectionnés seront supprimés ainsi que toutes les données associées.",
    "add-item-text": "Ajouter un nouvel élément",
    "no-items-text": "Aucun élément trouvé",
    "item-details": "Détails de l’élément",
    "delete-item": "Supprimer l’élément",
    "delete-items": "Supprimer les éléments",
    "scroll-to-top": "Retour en haut"
  },
  "help": {
    "goto-help-page": "Aller à la page d'aide",
    "show-help": "Afficher l’aide"
  },
  "home": {
    "home": "Accueil",
    "profile": "Profil",
    "logout": "Déconnexion",
    "menu": "Menu",
    "avatar": "Avatar",
    "open-user-menu": "Ouvrir le menu utilisateur"
  },
  "file-input": {
    "browse-file": "Parcourir un fichier",
    "browse-files": "Parcourir des fichiers"
  },
  "image": {
    "gallery": "Galerie d'images",
    "search": "Rechercher une image",
    "selected-images": "{ count, plural, =1 {1 image} other {# images} } sélectionnée(s)",
    "created-time": "Date de création",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "resolution": "Résolution",
    "size": "Taille",
    "system": "Système",
    "download-image": "Télécharger l'image",
    "export-image": "Exporter l'image au format JSON",
    "import-image": "Importer une image depuis un fichier JSON",
    "upload-image": "Téléverser une image",
    "edit-image": "Modifier l'image",
    "image-details": "Détails de l'image",
    "no-images": "Aucune image trouvée",
    "delete-image": "Supprimer l'image",
    "delete-image-title": "Êtes-vous sûr de vouloir supprimer l'image '{{imageTitle}}' ?",
    "delete-image-text": "Attention, après confirmation, l'image ne pourra pas être récupérée.",
    "delete-images-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 image} other {# images} } ?",
    "delete-images-text": "Attention, après confirmation, toutes les images sélectionnées seront supprimées ainsi que toutes les données associées.",
    "list-mode": "Vue en liste",
    "grid-mode": "Vue en grille",
    "image-preview": "Aperçu de l'image",
    "update-image": "Mettre à jour l'image",
    "export-failed-error": "Impossible d'exporter l'image : {{error}}",
    "image-json-file": "Fichier JSON de l’image",
    "invalid-image-json-file-error": "Impossible d’importer l’image depuis le JSON : structure de données JSON invalide.",
    "image-is-in-use": "L’image est utilisée par d’autres entités",
    "images-are-in-use": "Des images sont utilisées par d’autres entités",
    "image-is-in-use-text": "L’image <b>'{{title}}'</b> n’a pas été supprimée car elle est utilisée par les entités suivantes :",
    "images-are-in-use-text": "Toutes les images n’ont pas été supprimées car elles sont utilisées par d’autres entités.</br>Vous pouvez consulter les entités référencées en cliquant sur le bouton <b>Références</b> dans la ligne correspondante de l’image.</br>Si vous souhaitez tout de même supprimer ces images, sélectionnez-les dans le tableau ci-dessous et cliquez sur le bouton <b>Supprimer la sélection</b>.",
    "delete-image-in-use-text": "Si vous souhaitez tout de même supprimer l’image, cliquez sur le bouton <b>Supprimer quand même</b>.",
    "system-entities": "Entités système :",
    "entities": "entités :",
    "references": "Références",
    "include-system-images": "Inclure les images système",
    "clear-image": "Effacer l'image",
    "no-image": "Aucune image",
    "no-image-selected": "Aucune image sélectionnée",
    "browse-from-gallery": "Parcourir la galerie",
    "set-link": "Définir le lien",
    "image-link": "Lien de l'image",
    "link": "Lien",
    "copy-image-link": "Copier le lien de l'image",
    "embed-image": "Intégrer l'image",
    "embed-to-html": "Intégrer dans le HTML",
    "embed-to-html-hint": "Cette fonction rendra le lien accessible à tout utilisateur non autorisé.",
    "embed-to-html-text": "En utilisant le code suivant, vous pouvez intégrer une image dans des composants basés sur du HTML simple.<br/>Cela inclut les widgets de carte HTML, les fonctions de contenu de cellule, etc.",
    "embed-to-angular-template": "Intégrer dans un modèle HTML Angular",
    "embed-to-angular-template-text": "En utilisant le code suivant, vous pouvez intégrer une image dans un modèle HTML Angular utilisé pour les composants.<br/>Cela inclut le widget Markdown, la section HTML dans l'éditeur de widget, les actions personnalisées, etc."
  },
  "image-input": {
    "drop-images-or": "Glissez-déposez des images ou",
    "drag-and-drop": "Glisser & Déposer",
    "or": "ou",
    "browse": "Parcourir",
    "no-images": "Aucune image sélectionnée",
    "images": "images"
  },
  "import": {
    "no-file": "Aucun fichier sélectionné",
    "drop-file": "Déposez un fichier JSON ou cliquez pour sélectionner un fichier à téléverser.",
    "drop-json-file-or": "Glissez-déposez un fichier JSON ou",
    "drop-file-csv": "Déposez un fichier CSV ou cliquez pour sélectionner un fichier à téléverser.",
    "drop-file-csv-or": "Glissez-déposez un fichier CSV ou",
    "column-value": "Valeur",
    "column-title": "Titre",
    "column-example": "Exemple de valeur",
    "column-key": "Clé attribut/télémétrie",
    "credentials": "Identifiants",
    "csv-delimiter": "Délimiteur CSV",
    "csv-first-line-header": "La première ligne contient les noms de colonnes",
    "csv-update-data": "Mettre à jour les attributs/télémétrie",
    "details": "Détails",
    "import-csv-number-columns-error": "Un fichier doit contenir au moins deux colonnes",
    "import-csv-invalid-format-error": "Format de fichier invalide. Ligne : '{{line}}'",
    "column-type": {
      "name": "Nom",
      "type": "Type",
      "label": "Étiquette",
      "column-type": "Type de colonne",
      "client-attribute": "Attribut client",
      "shared-attribute": "Attribut partagé",
      "server-attribute": "Attribut serveur",
      "timeseries": "Série temporelle",
      "entity-field": "Champ de l'entité",
      "access-token": "Jeton d'accès",
      "x509": "X.509",
      "mqtt": {
        "client-id": "ID client MQTT",
        "user-name": "Nom d'utilisateur MQTT",
        "password": "Mot de passe MQTT"
      },
      "lwm2m": {
        "client-endpoint": "Nom du client endpoint LwM2M",
        "security-config-mode": "Mode de configuration de sécurité LwM2M",
        "client-identity": "Identité client LwM2M",
        "client-key": "Clé du client LwM2M",
        "client-cert": "Clé publique du client LwM2M",
        "bootstrap-server-security-mode": "Mode de sécurité du serveur bootstrap LwM2M",
        "bootstrap-server-secret-key": "Clé secrète du serveur bootstrap LwM2M",
        "bootstrap-server-public-key-id": "Clé publique ou ID du serveur bootstrap LwM2M",
        "lwm2m-server-security-mode": "Mode de sécurité du serveur LwM2M",
        "lwm2m-server-secret-key": "Clé secrète du serveur LwM2M",
        "lwm2m-server-public-key-id": "Clé publique ou ID du serveur LwM2M"
      },
      "snmp": {
        "host": "Hôte SNMP",
        "port": "Port SNMP",
        "version": "Version SNMP (v1, v2c ou v3)",
        "community-string": "Chaîne de communauté SNMP"
      },
      "isgateway": "Est une passerelle",
      "activity-time-from-gateway-device": "Heure d'activité depuis l'appareil passerelle",
      "description": "Description",
      "routing-key": "Clé Edge",
      "secret": "Secret Edge"
    },
    "stepper-text": {
      "select-file": "Sélectionner un fichier",
      "configuration": "Configuration d'import",
      "column-type": "Sélectionner le type de colonnes",
      "creat-entities": "Création de nouvelles entités"
    },
    "message": {
      "create-entities": "{{count}} nouvelles entités ont été créées avec succès.",
      "update-entities": "{{count}} entités ont été mises à jour avec succès.",
      "error-entities": "Une erreur est survenue lors de la création de {{count}} entités."
    }
  },
  "scada": {
    "symbols": "Symboles SCADA",
    "search": "Rechercher un symbole",
    "selected-symbols": "{ count, plural, =1 {1 symbole} other {# symboles} } sélectionné(s)",
    "download-symbol": "Télécharger le symbole SCADA",
    "export-symbol": "Exporter le symbole SCADA en JSON",
    "import-symbol": "Importer un symbole SCADA depuis un JSON",
    "upload-symbol": "Téléverser un symbole SCADA",
    "update-symbol": "Mettre à jour le symbole SCADA",
    "edit-symbol": "Éditer le symbole SCADA",
    "symbol-details": "Détails du symbole SCADA",
    "mode-svg": "SVG",
    "mode-xml": "XML",
    "no-symbols": "Aucun symbole trouvé",
    "show-hidden-elements": "Afficher les éléments masqués",
    "hide-hidden-elements": "Masquer les éléments masqués",
    "delete-symbol": "Supprimer le symbole SCADA",
    "delete-symbol-title": "Êtes-vous sûr de vouloir supprimer le symbole SCADA '{{imageTitle}}' ?",
    "delete-symbol-text": "Attention, après confirmation le symbole SCADA sera irrécupérable.",
    "delete-symbols-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 symbole SCADA} other {# symboles SCADA} } ?",
    "delete-symbols-text": "Attention, après confirmation tous les symboles SCADA sélectionnés seront supprimés et toutes les données associées seront irrécupérables.",
    "include-system-symbols": "Inclure les symboles système",
    "symbol-preview": "Aperçu du symbole",
    "general": "Général",
    "tags": "Tags",
    "properties": "Propriétés",
    "title": "Titre",
    "description": "Description",
    "search-tags": "Rechercher des tags",
    "widget-size": "Taille du widget",
    "cols": "colonnes",
    "rows": "rangées",
    "state-render-function": "Fonction de rendu d’état",
    "preview": "Aperçu",
    "preview-widget-action-text": "Action du widget '{{type}}' exécutée avec succès !",
    "no-symbol": "Aucun symbole SCADA",
    "no-symbol-selected": "Aucun symbole SCADA sélectionné",
    "clear-symbol": "Effacer le symbole SCADA",
    "browse-symbol-from-gallery": "Parcourir un symbole SCADA dans la galerie",
    "zoom-in": "Agrandir",
    "zoom-out": "Réduire",
    "create-widget": "Créer un widget",
    "create-widget-from-symbol": "Créer un widget à partir du symbole SCADA",
    "hidden": "masqué",
    "tag": {
      "tag": "Tag",
      "on-click-action": "Action au clic",
      "no-tags": "Aucun tag configuré",
      "delete-tag-text": "Êtes-vous sûr de vouloir supprimer le tag<br/><b>{{tag}}</b> de l’élément <b>{{elementType}}</b> ?",
      "update-tag": "Mettre à jour le tag",
      "enter-tag": "Saisir le tag",
      "tag-settings": "Paramètres du tag",
      "remove-tag": "Supprimer le tag",
      "add-tag": "Ajouter un tag"
    },
    "behavior": {
      "behavior": "Comportement",
      "id": "Id",
      "name": "Nom",
      "type": "Type",
      "no-behaviors": "Aucun comportement configuré",
      "add-behavior": "Ajouter un comportement",
      "type-action": "Action",
      "type-value": "Valeur",
      "type-widget-action": "Action de widget",
      "behavior-settings": "Paramètres de comportement",
      "remove-behavior": "Supprimer le comportement",
      "hint": "Indice",
      "group-title": "Titre du groupe",
      "value-type": "Type de valeur",
      "default-value": "Valeur par défaut",
      "true-label": "Étiquette vraie",
      "false-label": "Étiquette fausse",
      "state-label": "Étiquette d’état",
      "default-payload": "Charge utile par défaut",
      "not-unique-behavior-ids-error": "Les identifiants de comportement doivent être uniques !",
      "default-settings": "Paramètres par défaut"
    },
    "symbol": {
      "symbol": "Symbole SCADA",
      "fluid-presence": "Présence de fluide",
      "fluid-presence-hint": "Indique si un fluide est présent dans le tuyau.",
      "fluid-present": "Fluide présent",
      "present": "Présent",
      "absent": "Absent",
      "flow-presence": "Présence d'écoulement",
      "flow-presence-hint": "Indique si un fluide s'écoule dans le tuyau.",
      "flow-present": "Écoulement présent",
      "flow-direction": "Direction de l'écoulement",
      "flow-direction-hint": "Indique la direction de l'écoulement du fluide.",
      "forward": "Avant",
      "reverse": "Arrière",
      "flow-animation-speed": "Vitesse de l'animation de l'écoulement",
      "flow-animation-speed-hint": "Valeur décimale indiquant la vitesse de l'animation de l'écoulement. 1 - vitesse normale, 0 - pas d'animation, < 1 - animation plus lente, > 1 - animation plus rapide.",
      "leak": "Fuite",
      "leak-hint": "Indique s'il y a une fuite dans le tuyau.",
      "leak-present": "Fuite présente",
      "fluid-color": "Couleur du fluide",
      "pipe-color": "Couleur du tuyau",
      "horizontal-pipe": "Tuyau horizontal",
      "vertical-pipe": "Tuyau vertical",
      "horizontal-fluid-color": "Couleur du fluide horizontal",
      "vertical-fluid-color": "Couleur du fluide vertical",
      "left-pipe": "Tuyau gauche",
      "right-pipe": "Tuyau droit",
      "top-pipe": "Tuyau supérieur",
      "bottom-pipe": "Tuyau inférieur",
      "left-fluid-color": "Couleur du fluide gauche",
      "right-fluid-color": "Couleur du fluide droit",
      "top-fluid-color": "Couleur du fluide supérieur",
      "bottom-fluid-color": "Couleur du fluide inférieur",
      "display": "Affichage",
      "display-format": "Format d'affichage",
      "value": "Valeur",
      "decimals": "Décimales",
      "units": "Unités",
      "flow-meter-value-hint": "Valeur décimale affichée sur le débitmètre",
      "value-hint": "Valeur décimale indiquant la valeur actuelle",
      "running": "En fonctionnement",
      "running-hint": "Indique si le composant est en état de fonctionnement.",
      "warning-state": "État d'avertissement",
      "warning": "Avertissement",
      "warning-click": "Clic d'avertissement",
      "warning-state-hint": "Indique si le composant est en état d'avertissement.",
      "critical-state": "État critique",
      "critical": "Critique",
      "critical-click": "Clic critique",
      "critical-state-hint": "Indique si le composant est en état critique.",
      "critical-state-animation": "Animation en état critique",
      "critical-state-animation-hint": "Permet d'activer l'animation clignotante lorsque le composant est en état critique.",
      "warning-critical-state-animation": "Animation état avertissement/critique",
      "warning-critical-state-animation-hint": "Permet d'activer l'animation clignotante lorsque le composant est en état d'avertissement ou critique.",
      "animation": "Animation",
      "broken": "Cassé",
      "broken-hint": "Indique si le composant est cassé.",
      "on-display-click": "Au clic sur l'affichage",
      "on-display-click-hint": "Action déclenchée lorsque l'utilisateur clique sur l'affichage.",
      "pipe": "Tuyau",
      "default-border-color": "Couleur de bordure par défaut",
      "active-border-color": "Couleur de bordure active",
      "warning-border-color": "Couleur de bordure d'avertissement",
      "critical-border-color": "Couleur de bordure critique",
      "background-color": "Couleur d'arrière-plan",
      "rotation-animation-speed": "Vitesse de l'animation de rotation",
      "rotation-animation-speed-hint": "Valeur décimale indiquant la vitesse de l'animation de rotation. 1 - vitesse normale, 0 - pas d'animation, < 1 - animation plus lente, > 1 - animation plus rapide.",
      "on-click": "Au clic",
      "on-click-hint": "Action déclenchée lorsque l'utilisateur clique sur le composant.",
      "connectors-positions": "Positions des connecteurs",
      "right-connector": "Connecteur droit",
      "right-top-connector": "Connecteur supérieur droit",
      "right-bottom-connector": "Connecteur inférieur droit",
      "left-connector": "Connecteur gauche",
      "left-top-connector": "Connecteur supérieur gauche",
      "left-bottom-connector": "Connecteur inférieur gauche",
      "top-left-connector": "Connecteur en haut à gauche",
      "top-right-connector": "Connecteur en haut à droite",
      "top-connector": "Connecteur supérieur",
      "bottom-connector": "Connecteur inférieur",
      "running-color": "Couleur en fonctionnement",
      "stopped-color": "Couleur à l'arrêt",
      "stopped": "À l'arrêt",
      "warning-color": "Couleur d'avertissement",
      "critical-color": "Couleur critique",
      "opened": "Ouvert",
      "opened-hint": "Indique si le composant est à l'état ouvert.",
      "open": "Ouvrir",
      "open-hint": "Action déclenchée lorsque l'utilisateur clique pour ouvrir le composant.",
      "close": "Fermer",
      "close-hint": "Action déclenchée lorsque l'utilisateur clique pour fermer le composant.",
      "close-state-animation": "Animation en état fermé",
      "close-state-animation-hint": "Permet d'activer l'animation clignotante lorsque le composant est en état fermé.",
      "opened-color": "Couleur d'ouverture",
      "closed-color": "Couleur de fermeture",
      "opened-rotation-angle": "Angle de rotation à l'ouverture",
      "closed-rotation-angle": "Angle de rotation à la fermeture",
      "tank-capacity": "Capacité du réservoir",
      "tank-capacity-hint": "Valeur décimale indiquant la capacité totale du réservoir.",
      "current-volume": "Volume actuel",
      "current-volume-hint": "Valeur décimale indiquant le volume actuellement occupé.",
      "tank-color": "Couleur du réservoir",
      "value-box": "Boîte de valeur",
      "value-text": "Texte de valeur",
      "scale": "Échelle",
      "transparent-mode": "Mode transparent",
      "major-ticks": "Graduations principales",
      "intervals": "Intervalles",
      "major-ticks-color": "Couleur des graduations principales",
      "normal": "Normal",
      "minor-ticks": "Graduations secondaires",
      "minor-ticks-color": "Couleur des graduations secondaires",
      "temperature": "Température",
      "temperature-hint": "Valeur décimale indiquant la température actuelle.",
      "update-temperature": "Mettre à jour la température",
      "update-temperature-hint": "Action déclenchée lorsque l'utilisateur clique pour modifier la température actuelle.",
      "run": "Démarrer",
      "run-hint": "Action déclenchée lorsque l'utilisateur clique pour démarrer le composant.",
      "stop": "Arrêter",
      "stop-hint": "Action déclenchée lorsque l'utilisateur clique pour arrêter le composant.",
      "temperature-step": "Incrément de température",
      "heat-pump-color": "Couleur de la pompe à chaleur",
      "power-button-background": "Arrière-plan du bouton de mise sous tension",
      "value-box-background": "Arrière-plan de la boîte de valeur",
      "value-units": "Unités de valeur",
      "enable-units-scale": "Activer les unités sur l’échelle",
      "filtration-mode": "Mode de filtration",
      "filtration-mode-hint": "Valeur entière indiquant le mode de filtration actuel.",
      "filtration-mode-update": "Mise à jour du mode de filtration",
      "filtration-mode-update-hint": "Action déclenchée lorsque l’utilisateur clique pour changer le mode de filtration actuel.",
      "filter-mode": "Filtration",
      "waste-mode": "Déchet",
      "backwash-mode": "Contre-lavage",
      "recirculate-mode": "Recirculation",
      "rinse-mode": "Rinçage",
      "closed-mode": "Fermé",
      "sand-filter-color": "Couleur du filtre à sable",
      "mode-box-background": "Arrière-plan de la boîte de mode",
      "border-color": "Couleur de bordure",
      "label-color": "Couleur de l'étiquette",
      "water-leak-hint": "Indique s'il y a une fuite.",
      "default-color": "Couleur par défaut",
      "leak-color": "Couleur de fuite",
      "full-value": "Valeur maximale",
      "full-value-hint": "Valeur décimale indiquant la valeur maximale.",
      "label": "Étiquette",
      "icon": "Icône",
      "button-color": "Couleur du bouton",
      "on-label": "Texte de l'étiquette 'On'",
      "off-label": "Texte de l'étiquette 'Off'",
      "arrow-presence": "Présence de flèche",
      "arrow-presence-hint": "Indique si une flèche est présente dans le connecteur.",
      "arrow-present": "Flèche présente",
      "arrow-direction": "Direction de la flèche/animation",
      "arrow-direction-hint": "Indique la direction de l'écoulement.",
      "flow-animation": "Animation d'écoulement",
      "flow-animation-hint": "Indique si une animation est présente dans le connecteur.",
      "flow": "Écoulement",
      "flow-line": "Ligne",
      "flow-line-style": "Style de ligne",
      "flow-style-hint": "Définissez les valeurs de Tiret et d’Espace de manière à ce que leur somme soit divisible par 100 sans reste pour une synchronisation parfaite de l’animation.",
      "flow-dash-cap": "Extrémité des tirets d'écoulement",
      "dash-cap-butt": "Butée",
      "dash-cap-round": "Arrondi",
      "dash-cap-square": "Carré",
      "dash": "Tiret",
      "gap": "Espace",
      "main-line": "Ligne principale",
      "line": "Ligne",
      "line-color": "Couleur de ligne",
      "arrow-color": "Couleur de la flèche",
      "target-value": "Valeur cible",
      "target-value-hint": "Indique le point cible sur l'échelle.",
      "min-max-value": "Valeur min et max",
      "min-value": "Min",
      "max-value": "Max",
      "progress-bar": "Barre de progression",
      "progress-arrow": "Flèche de progression",
      "warning-scale-color": "Couleur d'échelle d'avertissement",
      "critical-scale-color": "Couleur d'échelle critique",
      "scale-color": "Couleur de l'échelle",
      "target": "Cible",
      "high-warning-state": "État d'avertissement élevé",
      "show-high-warning-scale": "Afficher l'échelle d'avertissement élevé",
      "high-warning-scale": "Échelle d'avertissement élevé",
      "high-warning-state-hint": "Une valeur décimale indique une plage d'avertissement élevé jusqu'à une valeur critique élevée ou maximale.",
      "low-warning-state": "État d'avertissement faible",
      "show-low-warning-scale": "Afficher l'échelle d'avertissement faible",
      "low-warning-scale": "Échelle d'avertissement faible",
      "low-warning-state-hint": "Une valeur décimale indique une plage d'avertissement faible jusqu'à une valeur critique faible ou minimale.",
      "high-critical-state": "État critique élevé",
      "show-high-critical-scale": "Afficher l'échelle critique élevée",
      "high-critical-scale": "Échelle critique élevée",
      "high-critical-state-hint": "Une valeur décimale indique une plage critique élevée jusqu'à la valeur maximale de l'échelle.",
      "low-critical-state": "État critique faible",
      "show-low-critical-scale": "Afficher l'état critique faible",
      "low-critical-scale": "État critique faible",
      "low-critical-state-hint": "Une valeur décimale indique une plage critique faible jusqu'à la valeur minimale de l'échelle.",
      "filter-color": "Couleur du filtre",
      "colors": "Couleurs",
      "indicator-colors": "Couleurs des indicateurs",
      "enabled": "Activé",
      "disabled": "Désactivé",
      "on": "ON",
      "off": "OFF",
      "on-off-state": "État On/Off",
      "on-off-state-hint": "Indique si le composant est en état activé ou désactivé.",
      "on-update-state": "État de mise à jour - ON",
      "on-update-state-hint": "Action déclenchée lorsque l'utilisateur clique pour passer à l'état ON.",
      "off-update-state": "État de mise à jour - OFF",
      "off-update-state-hint": "Action déclenchée lorsque l'utilisateur clique pour passer à l'état OFF.",
      "voltage": "Tension",
      "input-voltage": "Tension d'entrée",
      "input-voltage-hint": "Une valeur décimale indique la tension d'entrée.",
      "output-voltage": "Tension de sortie",
      "output-voltage-hint": "Une valeur décimale indique la tension de sortie.",
      "first-phase-voltage": "Tension de première phase",
      "second-phase-voltage": "Tension de deuxième phase",
      "third-phase-voltage": "Tension de troisième phase",
      "phase-voltage-hint": "Une valeur décimale indique la tension de la phase en cours",
      "voltage-hint": "Une valeur décimale indique la tension actuelle",
      "current-voltage-color": "Couleur de la tension actuelle",
      "phase-indicator-color": "Couleur de l'indicateur de phase",
      "measured": "Mesuré",
      "measured-hint": "Une valeur décimale indique la consommation d'énergie en kilowattheures",
      "day-rate": "Tarif jour",
      "night-rate": "Tarif nuit",
      "off-peak-rate": "Tarif heures creuses",
      "peak-rate": "Tarif de pointe",
      "export-rate": "Tarif d'exportation",
      "operating-mode": "Mode de fonctionnement",
      "bypass-mode": "Contournement",
      "operating-mode-hint": "Valeur entière indiquant le mode de fonctionnement actuel (0 - OFF, 1 - ON, 2 - BYPASS)",
      "connected": "Connecté",
      "connected-hint": "Indique si le composant est connecté.",
      "disconnected": "Déconnecté",
      "indicator": "Indicateur",
      "operation-mode": "Mode opératoire",
      "operation-mode-hint": "Indique si l'onduleur est en mode secteur ou onduleur.",
      "operation-mode-indicators-color": "Couleur des indicateurs de mode opératoire",
      "mains-on-mode": "Secteur activé",
      "inverter-on-mode": "Onduleur activé",
      "charging-mode": "Mode de charge",
      "charging-mode-hint": "Valeur entière indiquant le mode de charge actuel (1 - Bulk, 2 - Absorption, 3 - Float)",
      "charging-mode-indicators-color": "Couleur des indicateurs de charge",
      "inverter-faults": "Défauts",
      "inverter-fault-indicators-color": "Couleur des indicateurs de défaut",
      "overload-fault": "Surcharge",
      "overload-fault-hint": "Indique si l'onduleur est en surcharge.",
      "low-battery-fault": "Batterie faible",
      "low-battery-fault-hint": "Indique si la batterie est excessivement déchargée.",
      "temperature-fault": "Température",
      "temperature-fault-hint": "Indique une température élevée dans l'onduleur.",
      "triangle": "Triangle",
      "socket": "Prise",
      "left-button": "Bouton gauche",
      "right-button": "Bouton droit",
      "alarm-colors": "Couleurs d'alarme",
      "hook-color": "Couleur du crochet"
    }
  },
  "item": {
    "selected": "Sélectionné"
  },
  "js-func": {
    "no-return-error": "La fonction doit retourner une valeur !",
    "return-type-mismatch": "La fonction doit retourner une valeur de type '{{type}}' !",
    "tidy": "Propre",
    "mini": "Mini",
    "modules": "Modules",
    "remove-module": "Supprimer le module",
    "no-modules": "Aucun module configuré",
    "add-module": "Ajouter un module",
    "module-alias": "Alias",
    "invalid-module-alias-name": "Nom d'alias invalide",
    "module-resource": "Ressource du module JS",
    "not-unique-module-aliases-error": "Les alias des modules doivent être uniques !",
    "show-module-info": "Afficher les infos du module",
    "show-module-source-code": "Afficher le code source du module",
    "module-members": "Membres du module",
    "module-no-members": "Le module n'a aucun membre exporté",
    "module-load-error": "Erreur de chargement du module",
    "source-code": "Code source",
    "source-code-load-error": "Erreur de chargement du code source",
    "no-js-module-text": "Aucun module JS trouvé",
    "no-js-module-matching": "Aucun module JS correspondant à '{{module}}' trouvé."
  },
  "key-val": {
    "key": "Clé",
    "value": "Valeur",
    "remove-entry": "Supprimer l'entrée",
    "add-entry": "Ajouter une entrée",
    "no-data": "Aucune entrée"
  },
  "layout": {
    "layout": "Disposition",
    "layouts": "Dispositions",
    "manage": "Gérer les dispositions",
    "settings": "Paramètres de disposition",
    "color": "Couleur",
    "main": "Principal",
    "right": "Droite",
    "left": "Gauche",
    "select": "Sélectionner la disposition cible",
    "percentage-width": "Largeur en pourcentage (%)",
    "fixed-width": "Largeur fixe (px)",
    "left-width": "Colonne gauche (%)",
    "right-width": "Colonne droite (%)",
    "pick-fixed-side": "Côté fixe : ",
    "layout-fixed-width": "Largeur fixe (px)",
    "value-min-error": "La valeur doit être supérieure à {{min}}{{unit}}",
    "value-max-error": "La valeur doit être inférieure à {{max}}{{unit}}",
    "layout-fixed-width-required": "La largeur fixe est requise",
    "right-width-percentage-required": "Le pourcentage pour la colonne de droite est requis",
    "left-width-percentage-required": "Le pourcentage pour la colonne de gauche est requis",
    "divider": "Séparateur",
    "right-side": "Disposition côté droit",
    "left-side": "Disposition côté gauche",
    "add-new-breakpoint": "Ajouter un nouveau point de rupture",
    "breakpoint": "Point de rupture",
    "breakpoints": "Points de rupture",
    "copy-from": "Copier depuis",
    "size": "Taille",
    "delete-breakpoint-title": "Êtes-vous sûr de vouloir supprimer le point de rupture '{{name}}' ?",
    "delete-breakpoint-text": "Veuillez noter qu'après confirmation, le point de rupture sera irrécupérable et les paramètres reviendront à ceux du point de rupture par défaut."
  },
  "legend": {
    "direction": "Direction",
    "position": "Position",
    "show-values": "Afficher les valeurs",
    "min-option": "Min",
    "max-option": "Max",
    "average-option": "Moyenne",
    "total-option": "Total",
    "latest-option": "Dernière",
    "sort-legend": "Trier les clés de données dans la légende",
    "show-max": "Afficher la valeur maximale",
    "show-min": "Afficher la valeur minimale",
    "show-avg": "Afficher la moyenne",
    "show-total": "Afficher le total",
    "show-latest": "Afficher la dernière valeur",
    "settings": "Paramètres de la légende",
    "min": "min",
    "max": "max",
    "avg": "moy",
    "total": "total",
    "latest": "dernière",
    "Min": "Min",
    "Max": "Max",
    "Avg": "Moy",
    "Total": "Total",
    "Latest": "Dernière",
    "comparison-time-ago": {
      "previousInterval": "(intervalle précédent)",
      "customInterval": "(intervalle personnalisé)",
      "days": "(jour précédent)",
      "weeks": "(semaine précédente)",
      "months": "(mois précédent)",
      "years": "(année précédente)"
    },
    "column-title": "Titre de la colonne",
    "label": "Étiquette",
    "value": "Valeur"
  },
  "login": {
    "login": "Connexion",
    "request-password-reset": "Demander une réinitialisation du mot de passe",
    "reset-password": "Réinitialiser le mot de passe",
    "create-password": "Créer un mot de passe",
    "two-factor-authentication": "Authentification à deux facteurs",
    "passwords-mismatch-error": "Les mots de passe saisis doivent être identiques !",
    "password-again": "Ressaisir le mot de passe",
    "sign-in": "Veuillez vous connecter",
    "username": "Nom d'utilisateur (email)",
    "remember-me": "Se souvenir de moi",
    "forgot-password": "Mot de passe oublié ?",
    "password-reset": "Réinitialisation du mot de passe",
    "expired-password-reset-message": "Vos identifiants ont expiré ! Veuillez créer un nouveau mot de passe.",
    "new-password": "Nouveau mot de passe",
    "new-password-again": "Confirmer le nouveau mot de passe",
    "password-link-sent-message": "Le lien de réinitialisation a été envoyé",
    "email": "Email",
    "invalid-email-format": "Format d'email invalide.",
    "sign-in-with": "Se connecter avec {{name}}",
    "sign-in-to-your-account": "Se connecter à votre compte",
    "or": "ou",
    "error": "Erreur de connexion",
    "verify-your-identity": "Vérifiez votre identité",
    "select-way-to-verify": "Sélectionnez une méthode de vérification",
    "resend-code": "Renvoyer le code",
    "resend-code-wait": "Renvoyer le code dans { time, plural, =1 {1 seconde} other {# secondes} }",
    "try-another-way": "Essayer une autre méthode",
    "totp-auth-description": "Veuillez saisir le code de sécurité depuis votre application d'authentification.",
    "totp-auth-placeholder": "Code",
    "sms-auth-description": "Un code de sécurité a été envoyé sur votre téléphone au {{contact}}.",
    "sms-auth-placeholder": "Code SMS",
    "email-auth-description": "Un code de sécurité a été envoyé à votre adresse email à {{contact}}.",
    "email-auth-placeholder": "Code email",
    "backup-code-auth-description": "Veuillez saisir l’un de vos codes de secours.",
    "backup-code-auth-placeholder": "Code de secours",
    "activation-link-expired": "Le lien d'activation a expiré",
    "activation-link-expired-message": "Le lien d’activation de votre profil a expiré. Vous pouvez revenir à la page de connexion pour recevoir un nouvel email.",
    "reset-password-link-expired": "Le lien de réinitialisation du mot de passe a expiré",
    "reset-password-link-expired-message": "Le lien de réinitialisation du mot de passe a expiré. Vous pouvez revenir à la page de connexion pour recevoir un nouvel email.",
    "two-fa": "Authentification à deux facteurs",
    "two-fa-required": "L’authentification à deux facteurs est requise",
    "set-up-verification-method": "Configurer une méthode de vérification pour continuer",
    "set-up-verification-method-login": "Configurer une méthode de vérification ou se connecter",
    "enable-authenticator-app": "Activer l’application d’authentification",
    "enable-authenticator-app-description": "Veuillez saisir le code de sécurité de votre application d’authentification",
    "enable-authenticator-sms": "Activer l’authentificateur SMS",
    "enable-authenticator-sms-description": "Saisissez le code à 6 chiffres que nous venons d’envoyer à ",
    "enable-authenticator-email": "Activer l’authentificateur Email",
    "enable-authenticator-email-description": "Un code de sécurité a été envoyé à votre adresse email à ",
    "enter-key-manually": "ou saisissez manuellement cette clé à 32 chiffres :",
    "continue": "Continuer",
    "confirm": "Confirmer",
    "authenticator-app-success": "Application d’authentification activée avec succès",
    "authenticator-app-success-description": "La prochaine fois que vous vous connecterez, vous devrez fournir un code d’authentification à deux facteurs",
    "authenticator-sms-success": "Authentificateur SMS activé avec succès",
    "authenticator-sms-success-description": "La prochaine fois que vous vous connecterez, vous serez invité à saisir le code de sécurité qui sera envoyé au numéro de téléphone",
    "authenticator-email-success": "Authentificateur Email activé avec succès",
    "authenticator-email-success-description": "La prochaine fois que vous vous connecterez, vous serez invité à saisir le code de sécurité qui sera envoyé à votre adresse email",
    "authenticator-backup-code-success": "Code de secours activé avec succès",
    "authenticator-backup-code-success-description": "La prochaine fois que vous vous connecterez, vous serez invité à saisir le code de sécurité ou à utiliser l’un des codes de secours.",
    "add-verification-method": "Ajouter une méthode de vérification",
    "get-backup-code": "Obtenir un code de secours",
    "copy-key": "Copier la clé",
    "send-code": "Envoyer le code",
    "email-label": "Email",
    "email-description": "Saisissez un email à utiliser comme authentificateur.",
    "sms-description": "Saisissez un numéro de téléphone à utiliser comme authentificateur.",
    "backup-code-description": "Imprimez les codes afin de les avoir à portée de main lorsque vous en aurez besoin pour vous connecter à votre compte. Vous pouvez utiliser chaque code de secours une seule fois.",
    "backup-code-warn": "Une fois que vous quittez cette page, ces codes ne peuvent plus être affichés. Stockez-les en toute sécurité à l’aide des options ci-dessous.",
    "download-txt": "Télécharger (txt)",
    "print": "Imprimer",
    "verification-code": "Code à 6 chiffres",
    "verification-code-invalid": "Format du code de vérification non valide",
    "verification-code-incorrect": "Le code de vérification est incorrect",
    "verification-code-many-request": "Trop de demandes pour vérifier le code de vérification",
    "scan-qr-code": "Scannez ce code QR avec votre application de vérification",
    "phone-input": {
      "phone-input-label": "Numéro de téléphone",
      "phone-input-required": "Le numéro de téléphone est requis",
      "phone-input-validation": "Le numéro de téléphone n’est pas valide ou n’est pas possible",
      "phone-input-pattern": "Numéro de téléphone non valide. Doit être au format E.164, ex. {{phoneNumber}}",
      "phone-input-hint": "Numéro de téléphone au format E.164, ex. {{phoneNumber}}"
    }
  },
  "mobile": {
    "add-application": "Ajouter une application",
    "app-id": "ID de l'application",
    "app-id-required": "L'ID de l'application est requis",
    "app-id-pattern": "Format d'ID de l'application invalide",
    "app-store-link": "Lien App Store",
    "app-store-link-required": "Le lien App Store est requis",
    "application-details": "Détails de l'application",
    "application-package": "Paquet de l'application",
    "application-secret": "Clé secrète de l'application",
    "application-secret-required": "La clé secrète de l'application est requise",
    "application": "Application",
    "applications": "Applications",
    "copy-app-id": "Copier l'ID de l'application",
    "copy-app-store-link": "Copier le lien App Store",
    "copy-application-package": "Copier le paquet de l'application",
    "copy-application-secret": "Copier la clé secrète de l'application",
    "copy-google-play-link": "Copier le lien Google Play",
    "copy-sha256-certificate-fingerprints": "Copier les empreintes de certificat SHA256",
    "delete-application": "Supprimer l'application",
    "delete-application-button-text": "Je comprends les conséquences, supprimer l'application",
    "delete-application-text": "Cette action est irréversible. Cela supprimera définitivement votre application.<br/>Si vous ne souhaitez pas la supprimer définitivement, vous pouvez <b>suspendre</b> temporairement l'application.<br/><b>Pour supprimer</b> l'application quand même, veuillez saisir <b>\"{{phrase}}\"</b> pour confirmer.",
    "delete-application-title-short": "Êtes-vous sûr de vouloir supprimer l'application '{{name}}' ?",
    "delete-application-text-short": "Attention, après confirmation l'application et toutes ses données associées seront irrécupérables.",
    "delete-application-phrase": "supprimer l'application",
    "delete-applications-bundle-text": "Attention, après confirmation le bundle mobile et toutes les données associées seront irrécupérables.",
    "delete-applications-bundle-title": "Êtes-vous sûr de vouloir supprimer le bundle mobile '{{bundleName}}' ?",
    "generate-application-secret": "Générer une clé secrète",
    "google-play-link": "Lien Google Play",
    "google-play-link-required": "Le lien Google Play est requis",
    "latest-version": "Dernière version",
    "min-version": "Version minimale",
    "invalid-version-pattern": "Format de version invalide. Veuillez utiliser le format : majeur.mineur.correctif (ex. : 1.0.0).",
    "mobile-center": "Centre mobile",
    "mobile-package": "Package de l’application",
    "mobile-package-max-length": "Le package de l’application doit contenir moins de 256 caractères",
    "mobile-package-required": "Le package de l’application est requis.",
    "mobile-package-pattern": "Format du package de l’application invalide",
    "mobile-package-title": "Titre de l’application",
    "mobile-package-title-max-length": "Le titre de l’application doit contenir moins de 256 caractères",
    "no-application": "Aucune application trouvée",
    "no-bundles": "Aucun bundle trouvé",
    "platform-type": "Type de plateforme",
    "search-application": "Rechercher des applications",
    "search-bundles": "Rechercher des bundles",
    "set": "Définir",
    "sha256-certificate-fingerprints": "Empreintes de certificat SHA256",
    "sha256-certificate-fingerprints-required": "Les empreintes de certificat SHA256 sont requises",
    "sha256-certificate-fingerprints-pattern": "Format d'empreinte SHA256 invalide",
    "show-hidden-pages": "Afficher les pages cachées",
    "status": "Statut",
    "status-type": {
      "deprecated": "Obsolète",
      "draft": "Brouillon",
      "published": "Publié",
      "suspended": "Suspendu"
    },
    "store-information": "Informations sur la boutique",
    "version-information": "Informations sur la version",
    "min-version-release-notes": "Notes de version minimale",
    "latest-version-release-notes": "Notes de la dernière version",
    "bundle": "Bundle",
    "bundles": "Bundles",
    "add-bundle": "Ajouter un bundle",
    "title": "Titre",
    "title-required": "Le titre est requis",
    "title-cannot-contain-only-spaces": "Le titre ne peut pas contenir uniquement des espaces",
    "title-max-length": "Le titre doit contenir moins de 256 caractères",
    "oauth-clients": "Clients OAuth 2.0",
    "android-app": "Application Android",
    "android-application": "Application Android",
    "ios-app": "Application iOS",
    "ios-application": "Application iOS",
    "invalid-store-link": "Lien de boutique invalide",
    "enable-oauth": "Activer OAuth 2.0",
    "enable-self-registration": "Activer l'auto-enregistrement",
    "edit-bundle": "Modifier le bundle",
    "description": "Description",
    "basic-settings": "Paramètres de base",
    "no-application-matching": "Aucune application correspondant à '{{entity}}' trouvée.",
    "no-bundle-matching": "Aucun bundle correspondant à '{{entity}}' trouvé.",
    "application-required": "L'application est requise.",
    "bundle-required": "Le bundle est requis.",
    "no-application-text": "Aucune application trouvée",
    "no-bundle-text": "Aucun bundle trouvé",
    "layout": "Disposition",
    "pages": "Pages",
    "hide-all-pages": "Masquer toutes les pages",
    "reset-to-default-pages": "Réinitialiser aux pages par défaut",
    "add-specific-page": "Ajouter une page spécifique",
    "visible": "Visible",
    "hidden": "Masqué",
    "reset-to-page-default": "Réinitialiser la page à sa valeur par défaut",
    "mobile-599": "Mobile (max 599px)",
    "tablet-959": "Tablette (max 959px)",
    "max-element-number": "Nombre maximal d'éléments",
    "page-name": "Nom de la page",
    "page-name-required": "Le nom de la page est requis.",
    "page-name-cannot-contain-only-spaces": "Le nom de la page ne peut pas contenir uniquement des espaces.",
    "page-name-max-length": "Le nom de la page doit contenir moins de 256 caractères",
    "page-type": "Type de page",
    "pages-types": {
      "dashboard": "Tableau de bord",
      "web-view": "Vue Web",
      "custom": "Personnalisé"
    },
    "url": "URL",
    "invalid-url-format": "Format d'URL invalide",
    "path": "Chemin",
    "invalid-path-format": "Format de chemin invalide",
    "custom-page": "Page personnalisée",
    "edit-page": "Modifier la page",
    "edit-custom-page": "Modifier la page personnalisée",
    "delete-page": "Supprimer la page",
    "qr-code-widget": "Widget code QR",
    "type-here": "Tapez ici",
    "configuration-dialog": "Dialogue de configuration",
    "configuration-app": "Application de configuration",
    "configuration-step": {
      "prepare-environment-title": "Préparer l’environnement de développement",
      "prepare-environment-text": "L’application mobile ThingsBoard Flutter nécessite le SDK Flutter. Suivez les instructions pour configurer le SDK Flutter.",
      "get-source-code-title": "Obtenir le code source de l’application",
      "get-source-code-text": "Vous pouvez obtenir le code source de l’application mobile ThingsBoard Flutter en le clonant depuis le dépôt GitHub :",
      "configure-app-settings-title": "Configurer les paramètres de l’application",
      "configure-app-settings-text": "Téléchargez le fichier de configuration et placez-le dans le répertoire racine du projet que vous avez cloné à l’étape précédente.",
      "download-file": "Télécharger le fichier",
      "run-app-title": "Exécuter l’application",
      "run-app-text": "Exécutez l’application comme indiqué dans votre IDE.\nSi vous utilisez le terminal, lancez l’application avec la commande suivante :",
      "more-information": "Des informations détaillées sont disponibles dans notre documentation de démarrage.",
      "getting-started": "Démarrage"
    }
  },
  "notification": {
    "action-button": "Bouton d'action",
    "action-type": "Type d'action",
    "active": "Actif",
    "add-notification-recipients-group": "Ajouter un groupe de destinataires de notification",
    "add-notification-template": "Ajouter un modèle de notification",
    "add-recipient": "Ajouter un destinataire",
    "add-recipients": "Ajouter des destinataires",
    "add-rule": "Ajouter une règle",
    "add-stage": "Ajouter une étape",
    "add-template": "Ajouter un modèle",
    "after": "Après",
    "alarm-assignment-trigger-settings": "Paramètres du déclencheur d'affectation d'alarme",
    "alarm-comment-trigger-settings": "Paramètres du déclencheur de commentaire d'alarme",
    "alarm-trigger-settings": "Paramètres du déclencheur d'alarme",
    "all": "Tous",
    "api-feature-hint": "Si le champ est vide, le déclencheur s’appliquera à toutes les fonctionnalités API",
    "api-usage-trigger-settings": "Paramètres de déclenchement d’usage de l’API",
    "new-platform-version-trigger-settings": "Paramètres de déclenchement de nouvelle version de la plateforme",
    "rate-limits-trigger-settings": "Paramètres de déclenchement pour dépassement des limites de débit",
    "task-processing-failure-trigger-settings": "Paramètres de déclenchement pour échec de traitement de tâche",
    "resources-shortage-trigger-settings": "Paramètres de déclenchement pour pénurie de ressources",
    "at-least-one-should-be-selected": "Au moins une option doit être sélectionnée",
    "basic-settings": "Paramètres de base",
    "button-text": "Texte du bouton",
    "button-text-required": "Le texte du bouton est requis",
    "button-text-max-length": "Le texte du bouton doit contenir au maximum {{ length }} caractères",
    "compose": "Composer",
    "conversation": "Conversation",
    "conversation-required": "La conversation est requise",
    "copy-notification-template": "Copier le modèle de notification",
    "copy-rule": "Copier la règle",
    "copy-template": "Copier le modèle",
    "create-new": "Créer",
    "created": "Créé",
    "customize-messages": "Personnaliser les messages",
    "cpu-threshold": "Seuil CPU",
    "delete-notification-text": "Attention, après confirmation, la notification sera irrécupérable.",
    "delete-notification-title": "Êtes-vous sûr de vouloir supprimer la notification ?",
    "delete-notifications-text": "Attention, après confirmation, les notifications seront irrécupérables.",
    "delete-notifications-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 notification} other {# notifications} } ?",
    "delete-recipient-text": "Attention, après confirmation, le destinataire sera irrécupérable.",
    "delete-recipient-title": "Êtes-vous sûr de vouloir supprimer le destinataire '{{recipientName}}' ?",
    "delete-recipients-text": "Attention, après confirmation, les destinataires seront irrécupérables.",
    "delete-recipients-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 destinataire} other {# destinataires} } ?",
    "delete-request-text": "Attention, après confirmation, la requête sera irrécupérable.",
    "delete-request-title": "Êtes-vous sûr de vouloir supprimer la requête ?",
    "delete-requests-text": "Attention, après confirmation, les requêtes seront irrécupérables.",
    "delete-requests-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 requête} other {# requêtes} } ?",
    "delete-rule-text": "Attention, après confirmation, la règle sera irrécupérable.",
    "delete-rule-title": "Êtes-vous sûr de vouloir supprimer la règle '{{ruleName}}' ?",
    "delete-rules-text": "Attention, après confirmation, les règles seront irrécupérables.",
    "delete-rules-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 règle} other {# règles} } ?",
    "delete-template-text": "Attention, après confirmation, le modèle sera irrécupérable.",
    "delete-template-title": "Êtes-vous sûr de vouloir supprimer le modèle '{{templateName}}' ?",
    "delete-templates-text": "Attention, après confirmation, les modèles seront irrécupérables.",
    "delete-templates-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 modèle} other {# modèles} } ?",
    "deleted": "Supprimé",
    "delivery-method": {
      "delivery-method": "Méthode de livraison",
      "email": "Email",
      "email-preview": "Aperçu de la notification email",
      "slack": "Slack",
      "slack-preview": "Aperçu de la notification Slack",
      "microsoft-teams": "Microsoft Teams",
      "microsoft-teams-preview": "Aperçu de la notification Microsoft Teams",
      "sms": "SMS",
      "sms-preview": "Aperçu de la notification SMS",
      "web": "Web",
      "web-preview": "Aperçu de la notification Web",
      "mobile-app": "Application mobile",
      "mobile-app-preview": "Aperçu de la notification mobile"
    },
    "delivery-method-not-configure-click": "La méthode de livraison n'est pas configurée. Cliquez pour la configurer.",
    "delivery-method-not-configure-contact": "La méthode de livraison n'est pas configurée. Contactez votre administrateur système.",
    "delivery-methods": "Méthodes de livraison",
    "description": "Description",
    "device-activity-trigger-settings": "Paramètres de déclenchement d'activité de l'appareil",
    "device-list-rule-hint": "Si le champ est vide, le déclencheur s'appliquera à tous les appareils",
    "device-profiles-list-rule-hint": "Si le champ est vide, le déclencheur s'appliquera à tous les profils d'appareil",
    "disabled": "Désactivé",
    "edge-trigger-settings": "Paramètres de déclenchement Edge",
    "edge-list-rule-hint": "Si le champ est vide, le déclencheur s'appliquera à toutes les instances Edge",
    "edit-notification-recipients-group": "Modifier le groupe de destinataires des notifications",
    "edit-notification-template": "Modifier le modèle de notification",
    "edit-rule": "Modifier la règle",
    "edit-template": "Modifier le modèle",
    "enabled": "Activé",
    "entities-limit-trigger-settings": "Paramètres du déclencheur de limite d'entités",
    "entity-action-trigger-settings": "Paramètres du déclencheur d'action sur entité",
    "entity-type": "Type d'entité",
    "escalation-chain": "Chaîne d'escalade",
    "failed-send": "Échecs d'envoi",
    "fails": "{ count, plural, =1 {1 échec} other {# échecs} }",
    "filter": "Filtre",
    "first-recipient": "Premier destinataire",
    "inactive": "Inactif",
    "inbox": "Boîte de réception",
    "notification-inbox": "Notifications / Boîte de réception",
    "input-field-support-templatization": "Le champ de saisie prend en charge la templatisation.",
    "input-fields-support-templatization": "Les champs de saisie prennent en charge la templatisation.",
    "link": "Lien",
    "link-required": "Le lien est requis",
    "link-max-length": "Le lien doit comporter au maximum {{ length }} caractères",
    "link-type": {
      "dashboard": "Ouvrir le tableau de bord",
      "link": "Ouvrir le lien URL"
    },
    "loading-notifications": "Chargement des notifications...",
    "management": "Gestion des notifications",
    "mark-all-as-read": "Tout marquer comme lu",
    "mark-as-read": "Marquer comme lu",
    "message": "Message",
    "message-required": "Le message est requis",
    "message-max-length": "Le message doit comporter au maximum {{ length }} caractères",
    "name": "Nom",
    "name-required": "Le nom est requis",
    "new-notification": "Nouvelle notification",
    "no-inbox-notification": "Aucune notification trouvée",
    "no-notification-request": "Aucune demande de notification",
    "no-notification-templates": "Aucun modèle de notification trouvé",
    "no-notifications-yet": "Aucune notification pour le moment",
    "no-recipients-notification": "Aucun destinataire de notification",
    "no-recipients-matching": "Aucun destinataire correspondant à '{{entity}}' trouvé.",
    "no-recipients-text": "Aucun destinataire trouvé",
    "no-rule": "Aucune règle configurée",
    "no-rules-notification": "Aucune règle de notification",
    "no-severity-found": "Aucun niveau de gravité trouvé",
    "no-severity-matching": "'{{severity}}' introuvable.",
    "no-template-matching": "Aucune ressource correspondant à '{{template}}' trouvée.",
    "create-new-template": "Créer un nouveau modèle !",
    "not-found-slack-recipient": "Destinataire Slack introuvable",
    "notification": "Notification",
    "notification-center": "Centre de notifications",
    "notification-tap-action": "Action au clic sur la notification",
    "notification-tap-action-hint": "Si non activé, le tableau de bord d’alarme par défaut sera utilisé",
    "notify": "notifier",
    "notify-again": "Notifier de nouveau",
    "notify-alarm-action": {
      "acknowledged": "Alarme reconnue",
      "assigned": "Alarme assignée",
      "cleared": "Alarme effacée",
      "created": "Alarme créée",
      "severity-changed": "Sévérité de l’alarme modifiée",
      "unassigned": "Alarme désassignée"
    },
    "notify-on": "Notifier lors de",
    "notify-on-comment-update": "Notifier lors de la mise à jour d’un commentaire",
    "notify-on-required": "Le champ 'Notifier lors de' est requis",
    "notify-on-unassign": "Notifier lors du désassignement",
    "notify-only-user-comments": "Notifier uniquement les commentaires des utilisateurs",
    "only-rule-chain-lifecycle-failures": "Uniquement les échecs de cycle de vie de chaîne de règles",
    "only-rule-node-lifecycle-failures": "Uniquement les échecs de cycle de vie de nœud de règles",
    "platform-users": "Utilisateurs de la plateforme",
    "ram-threshold": "Seuil de RAM",
    "rate-limits": "Limites de débit",
    "rate-limits-hint": "Si le champ est vide, le déclencheur s'appliquera à toutes les limites de débit",
    "recipient": "Destinataire",
    "recipient-group": "Groupe de destinataires",
    "recipient-type": {
      "affected-tenant-administrators": "Administrateurs de locataires concernés",
      "affected-user": "Utilisateur concerné",
      "all-users": "Tous les utilisateurs",
      "customer-users": "Utilisateurs du client",
      "system-administrators": "Administrateurs système",
      "tenant-administrators": "Administrateurs de locataires",
      "user-filters": "Filtre utilisateur",
      "user-list": "Liste des utilisateurs",
      "users-entity-owner": "Utilisateurs du propriétaire de l'entité"
    },
    "recipients": "Destinataires",
    "notification-recipient": "Destinataire de la notification",
    "notification-recipient-required": "Le destinataire de la notification est requis.",
    "notification-recipients": "Notifications / Destinataires",
    "recipients-count": "{ count, plural, =1 {1 destinataire} other {# destinataires} }",
    "recipients-required": "Les destinataires sont requis",
    "refresh-allow-delivery-method": "Actualiser les méthodes de livraison autorisées",
    "request-search": "Rechercher une requête",
    "request-status": {
      "processing": "En traitement",
      "scheduled": "Planifiée",
      "sent": "Envoyée"
    },
    "review": "Vérifier",
    "rule": "Règle",
    "rule-chain-list-rule-hint": "Si le champ est vide, le déclencheur s’appliquera à toutes les chaînes de règles",
    "rule-engine-events-trigger-settings": "Paramètres du déclencheur d’événements du moteur de règles",
    "rule-engine-filter": "Filtre du moteur de règles",
    "rule-name": "Nom de la règle",
    "rule-name-required": "Le nom est requis",
    "rule-disable": "Désactiver la règle de notification",
    "rule-enable": "Activer la règle de notification",
    "rule-node-filter": "Filtre de nœud de règle",
    "rules": "Règles",
    "notification-rules": "Notifications / Règles",
    "scheduler-later": "Planifier plus tard",
    "search-notification": "Rechercher des notifications",
    "search-recipients": "Rechercher des destinataires",
    "search-rules": "Rechercher des règles",
    "search-templates": "Rechercher des modèles",
    "see-documentation": "Voir la documentation",
    "selected-notifications": "{ count, plural, =1 {1 notification} other {# notifications} } sélectionnée(s)",
    "selected-recipients": "{ count, plural, =1 {1 destinataire} other {# destinataires} } sélectionné(s)",
    "selected-requests": "{ count, plural, =1 {1 requête} other {# requêtes} } sélectionnée(s)",
    "selected-rules": "{ count, plural, =1 {1 règle} other {# règles} } sélectionnée(s)",
    "selected-template": "{ count, plural, =1 {1 modèle} other {# modèles} } sélectionné(s)",
    "send-notification": "Envoyer une notification",
    "sent": "Envoyée",
    "setup": "Configuration",
    "notification-sent": "Notifications / Envoyées",
    "set-entity-from-notification": "Définir l'entité à partir de la notification dans l'état du tableau de bord",
    "slack-chanel-type": "Type de canal Slack",
    "slack-chanel-types": {
      "direct": "Message direct",
      "private-channel": "Canal privé",
      "public-channel": "Canal public"
    },
    "start-from-scratch": "Repartir de zéro",
    "status": "Statut",
    "stop-escalation-alarm-status-become": "Arrêter l'escalade lorsque le statut de l'alarme devient :",
    "storage-threshold": "Seuil de stockage",
    "subject": "Objet",
    "subject-required": "L'objet est requis",
    "subject-max-length": "L'objet doit comporter au maximum {{ length }} caractères",
    "template": "Modèle",
    "template-name": "Nom du modèle",
    "template-required": "Le modèle est requis",
    "template-type": {
      "alarm": "Alarme",
      "alarm-assignment": "Attribution d'alarme",
      "alarm-comment": "Commentaire sur l'alarme",
      "api-usage-limit": "Limite d'utilisation de l'API",
      "device-activity": "Activité de l'appareil",
      "entities-limit": "Limite d'entités",
      "entities-limit-increase-request": "Demande d’augmentation de la limite d’entités",
      "entity-action": "Action sur l'entité",
      "general": "Général",
      "rule-engine-lifecycle-event": "Événement du cycle de vie du moteur de règles",
      "rule-node": "Nœud de règle",
      "new-platform-version": "Nouvelle version de la plateforme",
      "rate-limits": "Limites dépassées",
      "edge-communication-failure": "Échec de communication avec l'Edge",
      "edge-connection": "Connexion Edge",
      "task-processing-failure": "Échec du traitement de tâche",
      "resources-shortage": "Pénurie de ressources"
    },
    "templates": "Modèles",
    "notification-templates": "Notifications / Modèles",
    "tenant-profiles-list-rule-hint": "Si le champ est vide, le déclencheur s’appliquera à tous les profils de locataire",
    "tenants-list-rule-hint": "Si le champ est vide, le déclencheur s’appliquera à tous les locataires",
    "threshold": "Seuil",
    "theme-color": "Couleur du thème",
    "time": "Temps",
    "track-rule-node-events": "Suivre les événements des nœuds de règle",
    "trigger": {
      "alarm": "Alarme",
      "alarm-assignment": "Attribution d'alarme",
      "alarm-comment": "Commentaire sur l'alarme",
      "api-usage-limit": "Limite d'utilisation de l'API",
      "device-activity": "Activité de l'appareil",
      "entities-limit": "Limite d'entités",
      "entity-action": "Action sur l'entité",
      "rule-engine-lifecycle-event": "Événement du cycle de vie du moteur de règles",
      "new-platform-version": "Nouvelle version de la plateforme",
      "rate-limits": "Limites dépassées",
      "edge-connection": "Connexion Edge",
      "edge-communication-failure": "Échec de communication avec l'Edge",
      "task-processing-failure": "Échec du traitement de tâche",
      "resources-shortage": "Pénurie de ressources",
      "trigger": "Déclencheur",
      "trigger-required": "Le déclencheur est requis"
    },
    "type": "Type",
    "unread": "Non lu",
    "updated": "Mis à jour",
    "use-deprecated-webhook-connectors": "Utiliser les connecteurs Webhook obsolètes",
    "use-old-api": "Utiliser l’ancienne API",
    "use-template": "Utiliser le modèle",
    "view-all": "Voir tout",
    "warning": "Avertissement",
    "webhook-url": "URL du Webhook",
    "webhook-url-required": "L’URL du Webhook est requise",
    "workflow-url": "URL du workflow",
    "workflow-url-required": "L’URL du workflow est requise",
    "channel-name": "Nom du canal",
    "channel-name-required": "Le nom du canal est requis",
    "settings": {
      "notification-settings": "Paramètres de notification",
      "reset-all": "Réinitialiser tous les paramètres",
      "reset-all-title": "Êtes-vous sûr de vouloir réinitialiser le formulaire ?",
      "reset-all-text": "Après confirmation, le formulaire de paramètres sera réinitialisé aux valeurs par défaut et sauvegardé.",
      "type": "Type",
      "enable-all": "Tout activer",
      "disable-all": "Tout désactiver",
      "delivery-not-configured": "Méthode de livraison non configurée"
    }
  },
  "ota-update": {
    "add": "Ajouter un package",
    "assign-firmware": "Microprogramme assigné",
    "assign-firmware-required": "Le microprogramme assigné est requis",
    "assign-software": "Logiciel assigné",
    "assign-software-required": "Le logiciel assigné est requis",
    "auto-generate-checksum": "Générer automatiquement le checksum",
    "checksum": "Checksum",
    "checksum-hint": "Si le checksum est vide, il sera généré automatiquement",
    "checksum-algorithm": "Algorithme de checksum",
    "checksum-copied-message": "Le checksum du package a été copié dans le presse-papiers",
    "change-firmware": "La modification du microprogramme peut entraîner la mise à jour de { count, plural, =1 {1 appareil} other {# appareils} }.",
    "change-software": "La modification du logiciel peut entraîner la mise à jour de { count, plural, =1 {1 appareil} other {# appareils} }.",
    "change-ota-setting-title": "Êtes-vous sûr de vouloir modifier les paramètres OTA ?",
    "chose-compatible-device-profile": "Le package importé sera disponible uniquement pour les appareils ayant le profil sélectionné.",
    "chose-firmware-distributed-device": "Choisissez le microprogramme à distribuer aux appareils",
    "chose-software-distributed-device": "Choisissez le logiciel à distribuer aux appareils",
    "content-type": "Type de contenu",
    "copy-checksum": "Copier la somme de contrôle",
    "copy-direct-url": "Copier l'URL directe",
    "copyId": "Copier l'identifiant du paquet",
    "copied": "Copié !",
    "delete": "Supprimer le paquet",
    "delete-ota-update-text": "Attention, après confirmation, la mise à jour OTA deviendra irrécupérable.",
    "delete-ota-update-title": "Êtes-vous sûr de vouloir supprimer la mise à jour OTA '{{title}}' ?",
    "delete-ota-updates-text": "Attention, après confirmation, toutes les mises à jour OTA sélectionnées seront supprimées.",
    "delete-ota-updates-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 mise à jour OTA} other {# mises à jour OTA} } ?",
    "description": "Description",
    "direct-url": "URL directe",
    "direct-url-copied-message": "L'URL directe du paquet a été copiée dans le presse-papiers",
    "direct-url-required": "L'URL directe est requise",
    "download": "Télécharger le paquet",
    "drop-file": "Déposez un fichier de paquet ou cliquez pour en sélectionner un à téléverser.",
    "drop-package-file-or": "Glissez-déposez un fichier de paquet ou",
    "file-name": "Nom du fichier",
    "file-size": "Taille du fichier",
    "file-size-bytes": "Taille du fichier en octets",
    "idCopiedMessage": "L'identifiant du paquet a été copié dans le presse-papiers",
    "no-firmware-matching": "Aucun paquet OTA de micrologiciel compatible correspondant à '{{entity}}' trouvé.",
    "no-firmware-text": "Aucun paquet OTA de micrologiciel compatible provisionné.",
    "no-packages-text": "Aucun paquet trouvé",
    "no-software-matching": "Aucun paquet OTA de logiciel compatible correspondant à '{{entity}}' trouvé.",
    "no-software-text": "Aucun paquet OTA de logiciel compatible provisionné.",
    "ota-update": "Mise à jour OTA",
    "ota-update-details": "Détails de la mise à jour OTA",
    "ota-updates": "Mises à jour OTA",
    "package-file": "Fichier du paquet",
    "package-type": "Type de paquet",
    "packages-repository": "Dépôt de paquets",
    "search": "Rechercher des paquets",
    "selected-package": "{ count, plural, =1 {1 paquet} other {# paquets} } sélectionné",
    "title": "Titre",
    "title-required": "Le titre est requis.",
    "title-max-length": "Le titre doit comporter moins de 256 caractères",
    "types": {
      "firmware": "Micrologiciel",
      "software": "Logiciel"
    },
    "upload-binary-file": "Téléverser un fichier binaire",
    "use-external-url": "Utiliser une URL externe",
    "version": "Version",
    "version-required": "La version est requise.",
    "version-tag": "Étiquette de version",
    "version-tag-hint": "L'étiquette personnalisée doit correspondre à la version du paquet rapportée par votre appareil.",
    "version-max-length": "La version doit comporter moins de 256 caractères",
    "warning-after-save-no-edit": "Une fois le paquet téléversé, vous ne pourrez plus modifier le titre, la version, le profil de l'appareil ni le type de paquet."
  },
  "position": {
    "top": "Haut",
    "bottom": "Bas",
    "left": "Gauche",
    "right": "Droite"
  },
  "profile": {
    "profile": "Profil",
    "last-login-time": "Dernière connexion",
    "change-password": "Changer le mot de passe",
    "current-password": "Mot de passe actuel",
    "copy-jwt-token": "Copier le jeton JWT",
    "jwt-token": "Jeton JWT",
    "token-valid-till": "Le jeton est valide jusqu'au",
    "tokenCopiedSuccessMessage": "Le jeton JWT a été copié dans le presse-papiers",
    "tokenCopiedWarnMessage": "Le jeton JWT est expiré ! Veuillez rafraîchir la page."
  },
  "profiles": {
    "profiles": "Profils"
  },
  "security": {
    "security": "Sécurité",
    "general-settings": "Paramètres de sécurité généraux",
    "access-token": "Jeton d'accès",
    "access-token-required": "Le jeton d'accès est requis",
    "clientId": "ID client",
    "clientId-required": "L'ID client est requis",
    "username": "Nom d'utilisateur",
    "username-required": "Le nom d'utilisateur est requis",
    "ca-cert": "Certificat CA",
    "2fa": {
      "2fa": "Authentification à deux facteurs",
      "2fa-description": "L'authentification à deux facteurs protège votre compte contre les accès non autorisés. Il vous suffit de saisir un code de sécurité lors de votre connexion.",
      "authenticate-with": "Vous pouvez vous authentifier avec :",
      "disable-2fa-provider-text": "Désactiver {{name}} rendra votre compte moins sécurisé",
      "disable-2fa-provider-title": "Êtes-vous sûr de vouloir désactiver {{name}} ?",
      "get-new-code": "Obtenir un nouveau code",
      "main-2fa-method": "Utiliser comme méthode principale d'authentification à deux facteurs",
      "dialog": {
        "activation-step-description-email": "Lors de votre prochaine connexion, un code de sécurité vous sera demandé. Il sera envoyé à votre adresse e-mail.",
        "activation-step-description-sms": "Lors de votre prochaine connexion, un code de sécurité vous sera demandé. Il sera envoyé à votre numéro de téléphone.",
        "activation-step-description-totp": "Lors de votre prochaine connexion, vous devrez fournir un code d'authentification à deux facteurs.",
        "activation-step-label": "Activation",
        "backup-code-description": "Imprimez ces codes afin de les avoir à portée de main lorsque vous devrez vous connecter à votre compte. Chaque code de secours ne peut être utilisé qu'une seule fois.",
        "backup-code-warn": "Une fois cette page quittée, ces codes ne pourront plus être affichés. Conservez-les en toute sécurité en utilisant les options ci-dessous.",
        "download-txt": "Télécharger (txt)",
        "email-step-description": "Saisissez une adresse e-mail à utiliser comme méthode d’authentification.",
        "email-step-label": "E-mail",
        "enable-email-title": "Activer l’authentification par e-mail",
        "enable-sms-title": "Activer l’authentification par SMS",
        "enable-totp-title": "Activer l’application d’authentification",
        "enter-verification-code": "Saisissez le code à 6 chiffres ici",
        "get-backup-code-title": "Obtenir le code de secours",
        "next": "Suivant",
        "scan-qr-code": "Scannez ce QR code avec votre application d’authentification",
        "send-code": "Envoyer le code",
        "sms-step-description": "Saisissez un numéro de téléphone à utiliser comme méthode d’authentification.",
        "sms-step-label": "Numéro de téléphone",
        "success": "Succès !",
        "totp-step-description-install": "Vous pouvez installer des applications comme Google Authenticator, Authy ou Duo.",
        "totp-step-description-open": "Ouvrez l’application d’authentification sur votre téléphone mobile.",
        "totp-step-label": "Obtenir l’application",
        "verification-code": "Code à 6 chiffres",
        "verification-code-invalid": "Format de code de vérification invalide",
        "verification-code-incorrect": "Code de vérification incorrect",
        "verification-code-many-request": "Trop de demandes – vérifiez le code",
        "verification-step-description": "Saisissez le code à 6 chiffres que nous venons d’envoyer à {{address}}",
        "verification-step-label": "Vérification"
      },
      "provider": {
        "email": "Email",
        "email-description": "Utilisez un code de sécurité envoyé à votre adresse email pour vous authentifier.",
        "email-hint": "Les codes d'authentification sont envoyés par email à {{ info }}",
        "sms": "SMS",
        "sms-description": "Utilisez votre téléphone pour vous authentifier. Nous vous enverrons un code de sécurité par SMS lors de votre connexion.",
        "sms-hint": "Les codes d'authentification sont envoyés par message texte à {{ info }}",
        "totp": "Application d'authentification",
        "totp-description": "Utilisez des applications comme Google Authenticator, Authy ou Duo sur votre téléphone pour vous authentifier. Elles génèrent un code de sécurité pour vous connecter.",
        "totp-hint": "L'application d'authentification est configurée pour votre compte",
        "backup_code": "Code de secours",
        "backup-code-description": "Ces codes d'accès imprimables à usage unique vous permettent de vous connecter lorsque vous n'avez pas votre téléphone, par exemple en voyage.",
        "backup-code-hint": "{{ info }} codes à usage unique sont actifs pour le moment"
      }
    },
    "password-requirement": {
      "at-least": "Au moins :",
      "character": "{ count, plural, =1 {1 caractère} other {# caractères} }",
      "digit": "{ count, plural, =1 {1 chiffre} other {# chiffres} }",
      "password-tooltip-min-length": "Au moins {{minimumLength}} caractères",
      "password-tooltip-max-length": "Au plus {{maximumLength}} caractères",
      "password-tooltip-uppercase": "{{minimumUppercaseLetters}} caractère(s) en majuscule",
      "password-tooltip-lowercase": "{{minimumLowercaseLetters}} caractère(s) en minuscule",
      "password-tooltip-digit": "{{minimumDigits}} chiffre(s)",
      "password-tooltip-special-characters": "{{minimumSpecialCharacters}} caractère(s) spécial(s)",
      "incorrect-password-try-again": "Mot de passe incorrect. Veuillez réessayer",
      "lowercase-letter": "{ count, plural, =1 {1 lettre minuscule} other {# lettres minuscules} }",
      "new-passwords-not-match": "Les nouveaux mots de passe ne correspondent pas",
      "password-should-not-contain-spaces": "Votre mot de passe ne doit pas contenir d'espaces",
      "password-not-meet-requirements": "Le mot de passe ne respecte pas les exigences",
      "password-requirements": "Exigences du mot de passe",
      "password-should-difference": "Le nouveau mot de passe doit être différent de l'actuel",
      "special-character": "{ count, plural, =1 {1 caractère spécial} other {# caractères spéciaux} }",
      "uppercase-letter": "{ count, plural, =1 {1 lettre majuscule} other {# lettres majuscules} }",
      "at-most": "Au plus :"
    }
  },
  "relation": {
    "relations": "Relations",
    "direction": "Direction",
    "clear-relation-type": "Effacer le type de relation",
    "search-direction": {
      "FROM": "Depuis",
      "TO": "Vers"
    },
    "direction-type": {
      "FROM": "de",
      "TO": "vers"
    },
    "from-relations": "Relations sortantes",
    "to-relations": "Relations entrantes",
    "selected-relations": "{ count, plural, =1 {1 relation} other {# relations} } sélectionnée(s)",
    "type": "Type",
    "to-entity-type": "Type d'entité cible",
    "to-entity-name": "Nom de l'entité cible",
    "from-entity-type": "Type d'entité source",
    "from-entity-name": "Nom de l'entité source",
    "to-entity": "Vers l'entité",
    "from-entity": "Depuis l'entité",
    "delete": "Supprimer la relation",
    "relation-type": "Type de relation",
    "relation-type-required": "Le type de relation est requis.",
    "relation-type-max-length": "Le type de relation doit comporter moins de 256 caractères",
    "any-relation-type": "Tout type",
    "add": "Ajouter une relation",
    "edit": "Modifier la relation",
    "delete-to-relation-title": "Êtes-vous sûr de vouloir supprimer la relation vers l'entité '{{entityName}}' ?",
    "delete-to-relation-text": "Attention, après confirmation, l'entité '{{entityName}}' ne sera plus liée à l'entité actuelle.",
    "delete-to-relations-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 relation} other {# relations} } ?",
    "delete-to-relations-text": "Attention, après confirmation, toutes les relations sélectionnées seront supprimées et les entités correspondantes ne seront plus liées à l'entité actuelle.",
    "delete-from-relation-title": "Êtes-vous sûr de vouloir supprimer la relation depuis l'entité '{{entityName}}' ?",
    "delete-from-relation-text": "Attention, après confirmation, l'entité actuelle ne sera plus liée à l'entité '{{entityName}}'.",
    "delete-from-relations-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 relation} other {# relations} } ?",
    "delete-from-relations-text": "Attention, après confirmation, toutes les relations sélectionnées seront supprimées et l'entité actuelle ne sera plus liée aux entités correspondantes.",
    "remove-relation-filter": "Supprimer le filtre de relation",
    "remove-filter": "Supprimer le filtre",
    "add-relation-filter": "Ajouter un filtre de relation",
    "any-relation": "Toute relation",
    "relation-filters": "Filtres de relation",
    "relation-filter": "Filtre de relation",
    "additional-info": "Informations supplémentaires (JSON)",
    "invalid-additional-info": "Impossible d’analyser le JSON des informations supplémentaires.",
    "no-relations-text": "Aucune relation trouvée",
    "not": "Non",
    "copy-type": "Copier le type"
  },
  "resource": {
    "add": "Ajouter une ressource",
    "all-types": "Tous",
    "copyId": "Copier l'identifiant de la ressource",
    "delete": "Supprimer la ressource",
    "delete-resource-text": "Attention, après confirmation, la ressource sera irrécupérable.",
    "delete-resource-title": "Êtes-vous sûr de vouloir supprimer la ressource '{{resourceTitle}}' ?",
    "delete-resources-action-title": "Supprimer { count, plural, =1 {1 ressource} other {# ressources} }",
    "delete-resources-text": "Veuillez noter que les ressources sélectionnées, même si elles sont utilisées dans les profils d'appareil, seront supprimées.",
    "delete-resources-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 ressource} other {# ressources} } ?",
    "download": "Télécharger la ressource",
    "drop-file": "Déposez un fichier ressource ou cliquez pour en sélectionner un à téléverser.",
    "drop-resource-file-or": "Glissez-déposez un fichier ressource ou",
    "empty": "La ressource est vide",
    "file-name": "Nom du fichier",
    "idCopiedMessage": "L'identifiant de la ressource a été copié dans le presse-papiers",
    "no-resource-matching": "Aucune ressource correspondant à '{{widgetsBundle}}' n’a été trouvée.",
    "no-resource-text": "Aucune ressource trouvée",
    "open-widgets-bundle": "Ouvrir le bundle de widgets",
    "resource": "Ressource",
    "resource-file": "Fichier ressource",
    "resource-files": "Fichiers ressource",
    "resource-library-details": "Détails de la ressource",
    "resource-type": "Type de ressource",
    "resources-library": "Bibliothèque de ressources",
    "search": "Rechercher des ressources",
    "selected-resources": "{ count, plural, =1 {1 ressource} other {# ressources} } sélectionnée(s)",
    "system": "Système",
    "title": "Titre",
    "title-required": "Le titre est requis.",
    "title-max-length": "Le titre doit comporter moins de 256 caractères",
    "type": {
      "jks": "JKS",
      "js-module": "Module JS",
      "lwm2m-model": "Modèle LWM2M",
      "pkcs-12": "PKCS #12",
      "general": "Général"
    },
    "resource-sub-type": "Sous-type",
    "sub-type": {
      "image": "image",
      "scada-symbol": "Symbole SCADA",
      "extension": "Extension",
      "module": "Module"
    },
    "resource-is-in-use": "La ressource est utilisée par d'autres entités",
    "resources-are-in-use": "Les ressources sont utilisées par d'autres entités",
    "resource-is-in-use-text": "La ressource <b>'{{title}}'</b> n'a pas été supprimée car elle est utilisée par les entités suivantes :",
    "resources-are-in-use-text": "Toutes les ressources n'ont pas été supprimées car elles sont utilisées par d'autres entités.</br>Vous pouvez consulter les entités référencées en cliquant sur le bouton <b>Références</b> dans la ligne correspondante.</br>Si vous souhaitez tout de même supprimer ces ressources, sélectionnez-les dans le tableau ci-dessous et cliquez sur le bouton <b>Supprimer la sélection</b>.",
    "delete-resource-in-use-text": "Si vous souhaitez tout de même supprimer la ressource, cliquez sur le bouton <b>Supprimer quand même</b>."
  },
  "javascript": {
    "add": "Ajouter une ressource JavaScript",
    "delete": "Supprimer la ressource JavaScript",
    "delete-javascript-resource-text": "Attention, après confirmation, la ressource JavaScript ne pourra pas être récupérée.",
    "delete-javascript-resource-title": "Êtes-vous sûr de vouloir supprimer la ressource JavaScript '{{resourceTitle}}' ?",
    "delete-javascript-resources-action-title": "Supprimer { count, plural, =1 {1 ressource JavaScript} other {# ressources JavaScript} }",
    "delete-javascript-resources-text": "Veuillez noter que les ressources JavaScript sélectionnées, même si elles sont utilisées dans des fonctions JavaScript, seront supprimées.",
    "delete-javascript-resources-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 ressource JavaScript} other {# ressources JavaScript} } ?",
    "delete-javascript-resource-in-use-text": "Si vous souhaitez quand même supprimer la ressource JavaScript, cliquez sur le bouton <b>Supprimer quand même</b>.",
    "download": "Télécharger la ressource JavaScript",
    "upload-from-file": "Téléverser JavaScript depuis un fichier",
    "resource-file": "Fichier ressource JavaScript",
    "drop-file": "Déposez un fichier JavaScript ou cliquez pour en sélectionner un à téléverser.",
    "drop-resource-file-or": "Glissez-déposez un fichier JavaScript ou",
    "javascript-library": "Bibliothèque JavaScript",
    "javascript-type": "Type JavaScript",
    "javascript-resource-details": "Détails de la ressource JavaScript",
    "javascript-resource-is-in-use": "La ressource JavaScript est utilisée par d'autres entités",
    "javascript-resources-are-in-use": "Les ressources JavaScript sont utilisées par d'autres entités",
    "javascript-resource-is-in-use-text": "La ressource JavaScript <b>'{{title}}'</b> n'a pas été supprimée car elle est utilisée par les entités suivantes :",
    "javascript-resources-are-in-use-text": "Toutes les ressources JavaScript n'ont pas été supprimées car elles sont utilisées par d'autres entités.</br>Vous pouvez consulter les entités référencées en cliquant sur le bouton <b>Références</b> dans la ligne correspondante de la ressource.</br>Si vous souhaitez quand même supprimer ces ressources JavaScript, sélectionnez-les dans le tableau ci-dessous et cliquez sur le bouton <b>Supprimer la sélection</b>.",
    "search": "Rechercher des ressources JavaScript",
    "selected-javascript-resources": "{ count, plural, =1 {1 ressource JavaScript} other {# ressources JavaScript} } sélectionnée(s)",
    "no-javascript-resource-text": "Aucune ressource JavaScript trouvée",
    "all-types": "Tous",
    "module-script": "Script module"
  },
  "rpc": {
    "error": {
      "target-device-is-not-set": "L'appareil cible n'est pas défini !",
      "invalid-target-entity": "Les commandes RPC ne sont pas prises en charge par l'entité <b>{{entityType}}</b>.",
      "failed-to-resolve-target-device": "Échec de résolution de l’appareil cible !",
      "request-timeout": "Délai d'attente de la requête dépassé",
      "rpc-http-error": "Erreur : {{status}} - {{statusText}}"
    }
  },
  "rulechain": {
    "rulechain": "Chaîne de règles",
    "rulechain-events": "Événements de la chaîne de règles",
    "rulechains": "Chaînes de règles",
    "root": "Racine",
    "delete": "Supprimer la chaîne de règles",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "name-max-length": "Le nom doit contenir moins de 256 caractères",
    "description": "Description",
    "add": "Ajouter une chaîne de règles",
    "set-root": "Définir comme racine",
    "set-root-rulechain-title": "Êtes-vous sûr de vouloir définir la chaîne de règles '{{ruleChainName}}' comme racine ?",
    "set-root-rulechain-text": "Après confirmation, la chaîne de règles deviendra la racine et gérera tous les messages de transport entrants.",
    "delete-rulechain-title": "Êtes-vous sûr de vouloir supprimer la chaîne de règles '{{ruleChainName}}' ?",
    "delete-rulechain-text": "Attention, après confirmation, la chaîne de règles et toutes les données associées ne pourront pas être récupérées.",
    "delete-rulechains-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 chaîne de règles} other {# chaînes de règles} } ?",
    "delete-rulechains-action-title": "Supprimer { count, plural, =1 {1 chaîne de règles} other {# chaînes de règles} }",
    "delete-rulechains-text": "Attention, après confirmation, toutes les chaînes de règles sélectionnées seront supprimées ainsi que toutes les données associées.",
    "add-rulechain-text": "Ajouter une nouvelle chaîne de règles",
    "no-rulechains-text": "Aucune chaîne de règles trouvée",
    "rulechain-details": "Détails de la chaîne de règles",
    "details": "Détails",
    "events": "Événements",
    "system": "Système",
    "import": "Importer une chaîne de règles",
    "export": "Exporter la chaîne de règles",
    "export-failed-error": "Impossible d'exporter la chaîne de règles : {{error}}",
    "create-new-rulechain": "Créer une nouvelle chaîne de règles",
    "rulechain-file": "Fichier de chaîne de règles",
    "invalid-rulechain-file-error": "Impossible d'importer la chaîne de règles : structure de données invalide.",
    "copyId": "Copier l'identifiant de la chaîne de règles",
    "idCopiedMessage": "Identifiant de la chaîne de règles copié dans le presse-papiers",
    "select-rulechain": "Sélectionner une chaîne de règles",
    "no-rulechains-matching": "Aucune chaîne de règles correspondant à '{{entity}}' n'a été trouvée.",
    "rulechain-required": "La chaîne de règles est requise",
    "management": "Gestion des règles",
    "debug-mode": "Mode débogage",
    "search": "Rechercher des chaînes de règles",
    "selected-rulechains": "{ count, plural, =1 {1 chaîne de règles} other {# chaînes de règles} } sélectionnée(s)",
    "open-rulechain": "Ouvrir la chaîne de règles",
    "edge-template-root": "Racine du modèle Edge",
    "assign-to-edge": "Attribuer à une Edge",
    "edge-rulechain": "Chaîne de règles Edge",
    "unassign-rulechain-from-edge-text": "Après confirmation, la chaîne de règles sera désattribuée et ne sera plus accessible depuis la Edge.",
    "unassign-rulechains-from-edge-title": "Êtes-vous sûr de vouloir désattribuer { count, plural, =1 {1 chaîne de règles} other {# chaînes de règles} } ?",
    "unassign-rulechains-from-edge-text": "Après confirmation, toutes les chaînes de règles sélectionnées seront désattribuées et ne seront plus accessibles depuis la Edge.",
    "assign-rulechain-to-edge-title": "Attribuer des chaînes de règles à la Edge",
    "assign-rulechain-to-edge-text": "Veuillez sélectionner les chaînes de règles à attribuer à la Edge",
    "set-edge-template-root-rulechain": "Définir comme racine de modèle Edge",
    "set-edge-template-root-rulechain-title": "Êtes-vous sûr de vouloir définir la chaîne de règles '{{ruleChainName}}' comme racine du modèle Edge ?",
    "set-edge-template-root-rulechain-text": "Après confirmation, cette chaîne de règles sera définie comme racine de modèle pour toutes les nouvelles Edges créées.",
    "invalid-rulechain-type-error": "Impossible d'importer la chaîne de règles : type invalide. Type attendu : {{expectedRuleChainType}}.",
    "set-auto-assign-to-edge": "Attribuer automatiquement aux Edge à la création",
    "set-auto-assign-to-edge-title": "Êtes-vous sûr de vouloir attribuer automatiquement la chaîne de règles '{{ruleChainName}}' aux Edge à la création ?",
    "set-auto-assign-to-edge-text": "Après confirmation, la chaîne de règles Edge sera automatiquement attribuée aux Edge lors de leur création.",
    "unset-auto-assign-to-edge": "Ne pas attribuer automatiquement aux Edge",
    "unset-auto-assign-to-edge-title": "Êtes-vous sûr de ne pas vouloir attribuer automatiquement la chaîne de règles '{{ruleChainName}}' aux Edge à la création ?",
    "unset-auto-assign-to-edge-text": "Après confirmation, la chaîne de règles Edge ne sera plus automatiquement attribuée aux Edge lors de leur création.",
    "unassign-rulechain-title": "Êtes-vous sûr de vouloir désattribuer la chaîne de règles '{{ruleChainName}}' ?",
    "unassign-rulechains": "Désattribuer les chaînes de règles"
  },
  "rulenode": {
    "rule-node-events": "Événements du nœud de règle",
    "details": "Détails",
    "events": "Événements",
    "search": "Rechercher des nœuds",
    "open-node-library": "Ouvrir la bibliothèque de nœuds",
    "close-node-library": "Fermer la bibliothèque de nœuds",
    "add": "Ajouter un nœud de règle",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "name-max-length": "Le nom doit contenir moins de 256 caractères",
    "type": "Type",
    "rule-node-description": "Description du nœud de règle",
    "delete": "Supprimer le nœud de règle",
    "select-all-objects": "Sélectionner tous les nœuds et connexions",
    "deselect-all-objects": "Désélectionner tous les nœuds et connexions",
    "delete-selected-objects": "Supprimer les nœuds et connexions sélectionnés",
    "delete-selected": "Supprimer la sélection",
    "create-nested-rulechain": "Créer une chaîne de règles imbriquée",
    "select-all": "Tout sélectionner",
    "copy-selected": "Copier la sélection",
    "deselect-all": "Tout désélectionner",
    "rulenode-details": "Détails du nœud de règle",
    "debug-mode": "Mode débogage",
    "singleton": "Singleton",
    "configuration": "Configuration",
    "link": "Lien",
    "link-details": "Détails du lien du nœud de règle",
    "add-link": "Ajouter un lien",
    "link-label": "Étiquette du lien",
    "link-label-required": "L’étiquette du lien est requise.",
    "custom-link-label": "Étiquette de lien personnalisée",
    "custom-link-label-required": "L’étiquette de lien personnalisée est requise.",
    "link-labels": "Étiquettes de lien",
    "link-labels-required": "Les étiquettes de lien sont requises.",
    "no-link-labels-found": "Aucune étiquette de lien trouvée",
    "no-link-label-matching": "'{{label}}' introuvable.",
    "create-new-link-label": "Créer une nouvelle étiquette !",
    "type-filter": "Filtre",
    "type-filter-details": "Filtrer les messages entrants selon des conditions configurées",
    "type-enrichment": "Enrichissement",
    "type-enrichment-details": "Ajouter des informations supplémentaires dans les métadonnées du message",
    "type-transformation": "Transformation",
    "type-transformation-details": "Modifier la charge utile et les métadonnées du message",
    "type-action": "Action",
    "type-action-details": "Effectuer une action spéciale",
    "type-external": "Externe",
    "type-external-details": "Interagit avec un système externe",
    "type-rule-chain": "Chaîne de règles",
    "type-rule-chain-details": "Transmet les messages entrants à la chaîne de règles spécifiée",
    "type-flow": "Flux",
    "type-flow-details": "Organise le flux des messages",
    "type-input": "Entrée",
    "type-input-details": "Entrée logique de la chaîne de règles, transmet les messages entrants au nœud suivant",
    "type-unknown": "Inconnu",
    "type-unknown-details": "Nœud de règle non résolu",
    "directive-is-not-loaded": "La directive de configuration définie '{{directiveName}}' n'est pas disponible.",
    "ui-resources-load-error": "Échec du chargement des ressources UI de configuration.",
    "invalid-target-rulechain": "Impossible de résoudre la chaîne de règles cible !",
    "test-script-function": "Tester la fonction du script",
    "script-lang-java-script": "JavaScript",
    "script-lang-tbel": "TBEL",
    "message": "Message",
    "message-type": "Type de message",
    "select-message-type": "Sélectionner un type de message",
    "message-type-required": "Le type de message est requis",
    "metadata": "Métadonnées",
    "metadata-required": "Les entrées de métadonnées ne peuvent pas être vides.",
    "output": "Sortie",
    "test": "Test",
    "help": "Aide",
    "reset-debug-settings": "Réinitialiser les paramètres de débogage dans tous les nœuds",
    "test-with-this-message": "{{test}} avec ce message",
    "queue-hint": "Sélectionner une file pour le transfert de message vers une autre file. La file 'Main' est utilisée par défaut.",
    "queue-singleton-hint": "Sélectionner une file pour le transfert de message dans des environnements multi-instances. La file 'Main' est utilisée par défaut."
  },
  "rule-node-config": {
    "id": "Identifiant",
    "additional-info": "Informations supplémentaires",
    "advanced-settings": "Paramètres avancés",
    "create-entity-if-not-exists": "Créer une entité si elle n'existe pas",
    "create-entity-if-not-exists-hint": "Si activé, une nouvelle entité avec les paramètres spécifiés sera créée à moins qu'elle n'existe déjà. Les entités existantes seront utilisées telles quelles pour la relation.",
    "select-device-connectivity-event": "Sélectionner un événement de connectivité de l’appareil",
    "entity-name-pattern": "Modèle de nom",
    "device-name-pattern": "Nom de l’appareil",
    "asset-name-pattern": "Nom de l'actif",
    "entity-view-name-pattern": "Nom de la vue d'entité",
    "customer-title-pattern": "Titre du client",
    "dashboard-name-pattern": "Titre du tableau de bord",
    "user-name-pattern": "Email de l'utilisateur",
    "edge-name-pattern": "Nom de l'Edge",
    "entity-name-pattern-required": "Le modèle de nom est requis",
    "entity-name-pattern-hint": "Le champ modèle de nom prend en charge la templatisation. Utilisez $[messageKey] pour extraire une valeur du message et ${metadataKey} pour une valeur des métadonnées.",
    "copy-message-type": "Copier le type de message",
    "entity-type-pattern": "Modèle de type",
    "entity-type-pattern-required": "Le modèle de type est requis",
    "message-type-value": "Valeur du type de message",
    "message-type-value-required": "La valeur du type de message est requise",
    "message-type-value-max-length": "La valeur du type de message doit contenir moins de 256 caractères",
    "output-message-type": "Type de message de sortie",
    "entity-cache-expiration": "Temps d’expiration du cache des entités (s)",
    "entity-cache-expiration-hint": "Spécifie l'intervalle de temps maximal pour stocker les enregistrements d'entités trouvées. Une valeur de 0 signifie que les enregistrements n'expireront jamais.",
    "entity-cache-expiration-required": "Le temps d’expiration du cache des entités est requis.",
    "entity-cache-expiration-range": "Le temps d’expiration du cache des entités doit être supérieur ou égal à 0.",
    "customer-name-pattern": "Titre du client",
    "customer-name-pattern-required": "Le titre du client est requis",
    "customer-name-pattern-hint": "Utilisez $[messageKey] pour extraire une valeur du message et ${metadataKey} pour une valeur des métadonnées.",
    "create-customer-if-not-exists": "Créer un client s’il n’existe pas",
    "unassign-from-customer": "Détacher d’un client spécifique si l’initiateur est un tableau de bord",
    "unassign-from-customer-tooltip": "Seuls les tableaux de bord peuvent être attribués à plusieurs clients à la fois.\nSi l’initiateur du message est un tableau de bord, vous devez spécifier explicitement le titre du client pour le détacher.",
    "customer-cache-expiration": "Durée d’expiration du cache des clients (s)",
    "customer-cache-expiration-hint": "Spécifie la durée maximale pour stocker les enregistrements clients trouvés. Une valeur de 0 signifie que les enregistrements n’expireront jamais.",
    "customer-cache-expiration-required": "La durée d’expiration du cache des clients est requise.",
    "customer-cache-expiration-range": "La durée d’expiration du cache des clients doit être supérieure ou égale à 0.",
    "interval-start": "Début de l’intervalle",
    "interval-end": "Fin de l’intervalle",
    "time-unit": "Unité de temps",
    "fetch-mode": "Mode de récupération",
    "order-by-timestamp": "Trier par horodatage",
    "limit": "Limite",
    "limit-hint": "Valeur minimale de limite : 2, maximale : 1000. Pour récupérer une seule entrée, sélectionnez le mode de récupération 'Premier' ou 'Dernier'.",
    "limit-required": "La limite est requise.",
    "limit-range": "La limite doit être comprise entre 2 et 1000.",
    "time-unit-milliseconds": "Millisecondes",
    "time-unit-seconds": "Secondes",
    "time-unit-minutes": "Minutes",
    "time-unit-hours": "Heures",
    "time-unit-days": "Jours",
    "time-value-range": "Plage autorisée de 1 à 2147483647.",
    "start-interval-value-required": "Le début de l’intervalle est requis.",
    "end-interval-value-required": "La fin de l’intervalle est requise.",
    "filter": "Filtre",
    "switch": "Commutateur",
    "math-templatization-tooltip": "Ce champ prend en charge la templatisation. Utilisez $[messageKey] pour une valeur du message et ${metadataKey} pour les métadonnées.",
    "add-message-type": "Ajouter un type de message",
    "select-message-types-required": "Au moins un type de message doit être sélectionné.",
    "select-message-types": "Sélectionner des types de message",
    "no-message-types-found": "Aucun type de message trouvé",
    "no-message-type-matching": "'{{messageType}}' introuvable.",
    "create-new-message-type": "Créer un nouveau.",
    "message-types-required": "Les types de message sont requis.",
    "client-attributes": "Attributs client",
    "shared-attributes": "Attributs partagés",
    "server-attributes": "Attributs serveur",
    "attributes-keys": "Clés d’attributs",
    "attributes-keys-required": "Les clés d’attributs sont requises",
    "attributes-scope": "Portée des attributs",
    "attributes-scope-value": "Valeur de la portée des attributs",
    "attributes-scope-value-copy": "Copier la valeur de portée des attributs",
    "attributes-scope-hint": "Utilisez la clé de métadonnée 'scope' pour définir dynamiquement la portée par message. Cela remplace la portée définie dans la configuration.",
    "notify-device": "Forcer la notification à l’appareil",
    "send-attributes-updated-notification": "Envoyer une notification d’attributs mis à jour",
    "send-attributes-updated-notification-hint": "Envoyer une notification sur les attributs mis à jour comme message séparé à la file du moteur de règles.",
    "send-attributes-deleted-notification": "Envoyer une notification d’attributs supprimés",
    "send-attributes-deleted-notification-hint": "Envoyer une notification sur les attributs supprimés comme message séparé à la file du moteur de règles.",
    "update-attributes-only-on-value-change": "Mettre à jour uniquement si la valeur change",
    "update-attributes-only-on-value-change-hint": "Met à jour les attributs à chaque message entrant, même si leur valeur n’a pas changé. Cela augmente l’usage de l’API et réduit les performances.",
    "update-attributes-only-on-value-change-hint-enabled": "Met à jour les attributs uniquement si leur valeur a changé. Si aucune modification, aucune mise à jour ni notification ne sera envoyée.",
    "fetch-credentials-to-metadata": "Transférer les identifiants dans les métadonnées",
    "notify-device-on-update-hint": "Si activé, force la notification à l’appareil lors de la mise à jour des attributs partagés. Sinon, contrôlé via le paramètre 'notifyDevice' dans les métadonnées du message.",
    "notify-device-on-delete-hint": "Si activé, force la notification à l’appareil lors de la suppression des attributs partagés. Sinon, contrôlé via 'notifyDevice' dans les métadonnées du message.",
    "latest-timeseries": "Clés de données de séries temporelles récentes",
    "timeseries-keys": "Clés de séries temporelles",
    "timeseries-keys-required": "Au moins une clé de série temporelle doit être sélectionnée.",
    "add-timeseries-key": "Ajouter une clé de série temporelle",
    "add-message-field": "Ajouter un champ de message",
    "relation-search-parameters": "Paramètres de recherche de relations",
    "relation-parameters": "Paramètres de relation",
    "add-metadata-field": "Ajouter un champ de métadonnée",
    "data-keys": "Noms des champs du message",
    "copy-from": "Copier depuis",
    "data-to-metadata": "Données vers métadonnées",
    "metadata-to-data": "Métadonnées vers données",
    "use-regular-expression-hint": "Utilisez une expression régulière pour copier des clés par motif.\n\nAstuces :\nAppuyez sur 'Entrée' pour valider un champ.\nAppuyez sur 'Retour arrière' pour le supprimer. Plusieurs champs sont pris en charge.",
    "interval": "Intervalle",
    "interval-required": "L’intervalle est requis",
    "interval-hint": "Intervalle de déduplication en secondes.",
    "interval-min-error": "La valeur minimale autorisée est 1",
    "max-pending-msgs": "Nombre max. de messages en attente",
    "max-pending-msgs-hint": "Nombre maximum de messages stockés en mémoire pour chaque ID de déduplication unique.",
    "max-pending-msgs-required": "Le nombre max. de messages en attente est requis",
    "max-pending-msgs-max-error": "Valeur max. autorisée : 1000",
    "max-pending-msgs-min-error": "Valeur min. autorisée : 1",
    "max-retries": "Nombre max. de tentatives",
    "max-retries-required": "Le nombre max. de tentatives est requis",
    "max-retries-hint": "Nombre maximum de tentatives pour pousser les messages dédupliqués dans la file. Un délai de 10 secondes est appliqué entre les tentatives.",
    "max-retries-max-error": "Valeur max. autorisée : 100",
    "max-retries-min-error": "Valeur min. autorisée : 0",
    "strategy": "Stratégie",
    "strategy-required": "La stratégie est requise",
    "strategy-all-hint": "Retourne tous les messages arrivés pendant la période de déduplication sous forme de tableau JSON. Chaque élément contient les propriétés msg et metadata.",
    "strategy-first-hint": "Retourne le premier message arrivé pendant la période de déduplication.",
    "strategy-last-hint": "Retourne le dernier message arrivé pendant la période de déduplication.",
    "first": "Premier",
    "last": "Dernier",
    "all": "Tous",
    "output-msg-type-hint": "Type de message du résultat de la déduplication.",
    "queue-name-hint": "Nom de la file où publier le résultat de la déduplication.",
    "keys": "Clés",
    "keys-required": "Les clés sont requises",
    "rename-keys-in": "Renommer les clés dans",
    "data": "Données",
    "message": "Message",
    "metadata": "Métadonnées",
    "current-key-name": "Nom actuel de la clé",
    "key-name-required": "Le nom de la clé est requis",
    "new-key-name": "Nouveau nom de la clé",
    "new-key-name-required": "Le nouveau nom de la clé est requis",
    "metadata-keys": "Noms des champs de métadonnées",
    "json-path-expression": "Expression JSONPath",
    "json-path-expression-required": "L'expression JSONPath est requise",
    "json-path-expression-hint": "JSONPath indique un chemin vers un ou plusieurs éléments dans une structure JSON. '$' représente la racine.",
    "relations-query": "Requête sur les relations",
    "device-relations-query": "Requête sur les relations de l’appareil",
    "max-relation-level": "Niveau de relation max.",
    "max-relation-level-error": "La valeur doit être supérieure à 0 ou non définie.",
    "max-relation-level-invalid": "La valeur doit être un entier.",
    "relation-type": "Type de relation",
    "relation-type-pattern": "Modèle du type de relation",
    "relation-type-pattern-required": "Le modèle du type de relation est requis",
    "relation-types-list": "Types de relation à propager",
    "relation-types-list-hint": "Si aucun type de propagation n’est sélectionné, les alarmes seront propagées sans filtrage.",
    "unlimited-level": "Niveau illimité",
    "latest-telemetry": "Dernières télémétries",
    "add-telemetry-key": "Ajouter une clé de télémétrie",
    "delete-from": "Supprimer de",
    "use-regular-expression-delete-hint": "Utiliser des expressions régulières pour supprimer les clés par motif.\n\nAstuces :\nAppuyez sur 'Entrée' pour valider un champ.\nAppuyez sur 'Retour arrière' pour le supprimer. Plusieurs champs sont pris en charge.",
    "fetch-into": "Récupérer dans",
    "attr-mapping": "Correspondance des attributs :",
    "source-attribute": "Clé de l’attribut source",
    "source-attribute-required": "La clé de l’attribut source est requise.",
    "source-telemetry": "Clé de télémétrie source",
    "source-telemetry-required": "La clé de télémétrie source est requise.",
    "target-key": "Clé cible",
    "target-key-required": "La clé cible est requise.",
    "attr-mapping-required": "Au moins une correspondance d'attribut doit être spécifiée.",
    "fields-mapping": "Correspondance des champs",
    "fields-mapping-hint": "Si le champ de message est défini sur $entityId, l’ID de l’initiateur du message sera enregistré dans la colonne correspondante.",
    "relations-query-config-direction-suffix": "initiateur",
    "profile-name": "Nom du profil",
    "fetch-circle-parameter-info-from-metadata-hint": "Le champ de métadonnée '{{perimeterKeyName}}' doit être défini au format : {\"latitude\":48.196, \"longitude\":24.6532, \"radius\":100.0, \"radiusUnit\":\"METER\"}",
    "fetch-poligon-parameter-info-from-metadata-hint": "Le champ de métadonnée '{{perimeterKeyName}}' doit être défini au format : [[48.19736,24.65235],[48.19800,24.65060],...,[48.19849,24.65420]]",
    "short-templatization-tooltip": "Utilisez $[messageKey] pour extraire une valeur du message et ${metadataKey} pour une des métadonnées.",
    "fields-mapping-required": "Au moins une correspondance de champ doit être spécifiée.",
    "at-least-one-field-required": "Au moins un champ d’entrée doit avoir une valeur fournie.",
    "originator-fields-sv-map-hint": "Les champs de la clé cible prennent en charge la templatisation. Utilisez $[messageKey] pour extraire une valeur du message et ${metadataKey} pour les métadonnées.",
    "sv-map-hint": "Seuls les champs de clé cible prennent en charge la templatisation. Utilisez $[messageKey] pour extraire une valeur du message et ${metadataKey} pour les métadonnées.",
    "source-field": "Champ source",
    "source-field-required": "Le champ source est requis.",
    "originator-source": "Source de l'initiateur",
    "new-originator": "Nouvel initiateur",
    "originator-customer": "Client",
    "originator-tenant": "Tenant",
    "originator-related": "Entité liée",
    "originator-alarm-originator": "Origine de l’alarme",
    "originator-entity": "Entité par modèle de nom",
    "clone-message": "Cloner le message",
    "transform": "Transformer",
    "default-ttl": "Durée de vie (TTL) par défaut",
    "default-ttl-required": "La durée de vie (TTL) par défaut est requise.",
    "default-ttl-hint": "Le nœud de règle utilisera la valeur TTL des métadonnées du message. Si aucune valeur n'est présente, celle spécifiée dans la configuration sera utilisée. Si la valeur est 0, la valeur TTL du profil de locataire sera appliquée.",
    "default-ttl-zero-hint": "Aucun TTL ne sera appliqué si la valeur est 0.",
    "min-default-ttl-message": "Seule la valeur 0 est autorisée comme minimum TTL.",
    "generation-parameters": "Paramètres de génération",
    "message-count": "Limite de messages générés (0 - illimité)",
    "message-count-required": "La limite de messages générés est requise.",
    "min-message-count-message": "Seule la valeur minimale de 0 est autorisée.",
    "period-seconds": "Période en secondes",
    "period-seconds-required": "La période est requise.",
    "generation-frequency-seconds": "Fréquence de génération (en secondes)",
    "generation-frequency-required": "La fréquence de génération est requise.",
    "min-generation-frequency-message": "60 secondes minimum sont requises.",
    "script-lang-tbel": "TBEL",
    "script-lang-js": "JS",
    "use-metadata-period-in-seconds-patterns": "Utiliser le motif de période en secondes",
    "use-metadata-period-in-seconds-patterns-hint": "Si activé, le nœud de règle utilisera le motif de période en secondes depuis les métadonnées ou les données du message.",
    "period-in-seconds-pattern": "Motif de période en secondes",
    "period-in-seconds-pattern-required": "Le motif de période en secondes est requis",
    "min-period-seconds-message": "La période minimale autorisée est de 60 secondes.",
    "originator": "Initiateur",
    "message-body": "Corps du message",
    "message-metadata": "Métadonnées du message",
    "generate": "Générer",
    "current-rule-node": "Nœud de règle actuel",
    "current-tenant": "Locataire actuel",
    "generator-function": "Fonction génératrice",
    "test-generator-function": "Tester la fonction génératrice",
    "generator": "Générateur",
    "test-filter-function": "Tester la fonction de filtre",
    "test-switch-function": "Tester la fonction de commutation",
    "test-transformer-function": "Tester la fonction de transformation",
    "transformer": "Transformateur",
    "alarm-create-condition": "Condition de création d’alarme",
    "test-condition-function": "Tester la fonction conditionnelle",
    "alarm-clear-condition": "Condition de suppression de l’alarme",
    "alarm-details-builder": "Constructeur de détails d’alarme",
    "test-details-function": "Tester la fonction de détails",
    "alarm-type": "Type d’alarme",
    "select-entity-types": "Sélectionner les types d’entités",
    "alarm-type-required": "Le type d’alarme est requis.",
    "alarm-severity": "Gravité de l’alarme",
    "alarm-severity-required": "La gravité de l’alarme est requise",
    "alarm-severity-pattern": "Motif de gravité d’alarme",
    "alarm-status-filter": "Filtre d’état d’alarme",
    "alarm-status-list-empty": "La liste des états d’alarme est vide",
    "no-alarm-status-matching": "Aucun état d’alarme correspondant trouvé.",
    "propagate": "Propager l’alarme aux entités liées",
    "propagate-to-owner": "Propager l’alarme au propriétaire (Client ou Locataire)",
    "propagate-to-tenant": "Propager l’alarme au locataire",
    "condition": "Condition",
    "details": "Détails",
    "to-string": "Vers chaîne de caractères",
    "test-to-string-function": "Tester la fonction toString",
    "from-template": "De",
    "from-template-required": "Le champ De est requis",
    "message-to-metadata": "Du message vers les métadonnées",
    "metadata-to-message": "Des métadonnées vers le message",
    "from-message": "Depuis le message",
    "from-metadata": "Depuis les métadonnées",
    "to-template": "À",
    "to-template-required": "Le champ À est requis",
    "mail-address-list-template-hint": "Liste d’adresses séparées par des virgules, utilisez <code><span style=\"color: #000;\">$&#123;</span>metadataKey<span style=\"color: #000;\">&#125;</span></code> pour une valeur depuis les métadonnées, <code><span style=\"color: #000;\">$[</span>messageKey<span style=\"color: #000;\">]</span></code> pour une valeur depuis le corps du message",
    "cc-template": "Cc",
    "bcc-template": "Cci",
    "subject-template": "Objet",
    "subject-template-required": "Le champ Objet est requis",
    "body-template": "Corps",
    "body-template-required": "Le corps du message est requis",
    "dynamic-mail-body-type": "Type dynamique de corps de mail",
    "mail-body-type": "Type de corps de mail",
    "body-type-template": "Modèle de type de corps",
    "reply-routing-configuration": "Configuration du routage de réponse",
    "rpc-reply-routing-configuration-hint": "Ces paramètres spécifient les clés des métadonnées pour identifier le service, la session et la requête pour renvoyer la réponse.",
    "reply-routing-configuration-hint": "Ces paramètres spécifient les clés des métadonnées pour identifier le service et la requête pour renvoyer la réponse.",
    "request-id-metadata-attribute": "ID de requête",
    "service-id-metadata-attribute": "ID du service",
    "session-id-metadata-attribute": "ID de session",
    "timeout-sec": "Délai d'expiration en secondes",
    "timeout-required": "Le délai d'expiration est requis",
    "min-timeout-message": "Seule une valeur minimale de 0 est autorisée.",
    "endpoint-url-pattern": "Motif d'URL du point de terminaison",
    "endpoint-url-pattern-required": "Le motif d'URL du point de terminaison est requis",
    "request-method": "Méthode de requête",
    "use-simple-client-http-factory": "Utiliser une fabrique HTTP client simple",
    "ignore-request-body": "Sans corps de requête",
    "parse-to-plain-text": "Analyser en texte brut",
    "parse-to-plain-text-hint": "Si sélectionné, le corps du message de la requête sera transformé d'une chaîne JSON en texte brut, par exemple : msg = \"Hello,\\t\"world\"\" sera analysé comme Hello, \"world\"",
    "read-timeout": "Délai de lecture en millisecondes",
    "read-timeout-hint": "La valeur 0 signifie un délai illimité",
    "max-parallel-requests-count": "Nombre max. de requêtes parallèles",
    "max-parallel-requests-count-hint": "La valeur 0 indique qu'il n'y a pas de limite au traitement parallèle",
    "max-response-size": "Taille max. de la réponse (en Ko)",
    "max-response-size-hint": "Quantité maximale de mémoire allouée pour le tampon de données lors du décodage ou de l'encodage des messages HTTP, tels que les charges utiles JSON ou XML",
    "headers": "En-têtes",
    "headers-hint": "Utilisez <code><span style=\"color: #000;\">$&#123;</span>metadataKey<span style=\"color: #000;\">&#125;</span></code> pour une valeur issue des métadonnées, <code><span style=\"color: #000;\">$[</span>messageKey<span style=\"color: #000;\">]</span></code> pour une valeur issue du corps du message dans les champs en-tête/valeur",
    "header": "En-tête",
    "header-required": "L’en-tête est requis",
    "value": "Valeur",
    "value-required": "La valeur est requise",
    "topic-pattern": "Modèle de sujet",
    "key-pattern": "Modèle de clé",
    "key-pattern-hint": "Optionnel. Si un numéro de partition valide est spécifié, il sera utilisé lors de l'envoi de l'enregistrement. Si aucune partition n'est spécifiée, la clé sera utilisée. Sinon, une partition sera assignée en mode round-robin.",
    "topic-pattern-required": "Le modèle de sujet est requis",
    "topic": "Sujet",
    "topic-required": "Le sujet est requis",
    "bootstrap-servers": "Serveurs bootstrap",
    "bootstrap-servers-required": "Les serveurs bootstrap sont requis",
    "other-properties": "Autres propriétés",
    "key": "Clé",
    "key-required": "La clé est requise",
    "retries": "Réessais automatiques en cas d’échec",
    "min-retries-message": "Seule une valeur minimale de 0 est autorisée.",
    "batch-size-bytes": "Taille de lot produit (en octets)",
    "min-batch-size-bytes-message": "Seule une taille minimale de 0 est autorisée.",
    "linger-ms": "Temps de mise en tampon (ms)",
    "min-linger-ms-message": "Seule une valeur minimale de 0 ms est autorisée.",
    "buffer-memory-bytes": "Taille maximale du tampon client (en octets)",
    "min-buffer-memory-message": "Seule une taille minimale de 0 est autorisée.",
    "memory-buffer-size-range": "La taille du tampon doit être comprise entre 0 et {{max}} Ko",
    "acks": "Nombre d'accusés de réception",
    "topic-arn-pattern": "Motif ARN de sujet",
    "topic-arn-pattern-required": "Le motif ARN de sujet est requis",
    "aws-access-key-id": "ID de clé d'accès AWS",
    "aws-access-key-id-required": "L'ID de clé d'accès AWS est requis",
    "aws-secret-access-key": "Clé d'accès secrète AWS",
    "aws-secret-access-key-required": "La clé d'accès secrète AWS est requise",
    "aws-region": "Région AWS",
    "aws-region-required": "La région AWS est requise",
    "exchange-name-pattern": "Motif de nom d'échange",
    "routing-key-pattern": "Motif de clé de routage",
    "message-properties": "Propriétés du message",
    "host": "Hôte",
    "host-required": "L’hôte est requis",
    "port": "Port",
    "port-required": "Le port est requis",
    "port-range": "Le port doit être compris entre 1 et 65535.",
    "virtual-host": "Hôte virtuel",
    "username": "Nom d'utilisateur",
    "password": "Mot de passe",
    "automatic-recovery": "Récupération automatique",
    "connection-timeout-ms": "Délai de connexion (ms)",
    "min-connection-timeout-ms-message": "Seule une valeur minimale de 0 ms est autorisée.",
    "handshake-timeout-ms": "Délai de poignée de main (ms)",
    "min-handshake-timeout-ms-message": "Seule une valeur minimale de 0 ms est autorisée.",
    "client-properties": "Propriétés du client",
    "queue-url-pattern": "Motif d'URL de file d'attente",
    "queue-url-pattern-required": "Le motif d'URL de file d'attente est requis",
    "delay-seconds": "Délai (secondes)",
    "min-delay-seconds-message": "Seule une valeur minimale de 0 s est autorisée.",
    "max-delay-seconds-message": "La valeur maximale autorisée est de 900 secondes.",
    "name": "Nom",
    "name-required": "Le nom est requis",
    "queue-type": "Type de file d’attente",
    "sqs-queue-standard": "Standard",
    "sqs-queue-fifo": "FIFO",
    "gcp-project-id": "ID de projet GCP",
    "gcp-project-id-required": "L’ID de projet GCP est requis",
    "gcp-service-account-key": "Clé de compte de service GCP",
    "gcp-service-account-key-required": "La clé de compte de service GCP est requise",
    "pubsub-topic-name": "Nom du sujet",
    "pubsub-topic-name-required": "Le nom du sujet est requis",
    "message-attributes": "Attributs du message",
    "message-attributes-hint": "Utilisez <code><span style=\"color: #000;\">$&#123;</span>metadataKey<span style=\"color: #000000;\">&#125;</span></code> pour une valeur issue des métadonnées, <code><span style=\"color: #000;\">$[</span>messageKey<span style=\"color: #000;\">]</span></code> pour une valeur issue du corps du message dans les champs nom/valeur",
    "connect-timeout": "Délai de connexion (sec)",
    "connect-timeout-required": "Le délai de connexion est requis.",
    "connect-timeout-range": "Le délai de connexion doit être compris entre 1 et 200.",
    "client-id": "ID client",
    "client-id-hint": "Optionnel. Laissez vide pour générer automatiquement un ID client. Attention : la plupart des brokers MQTT n’autorisent pas plusieurs connexions avec le même ID client. Pour se connecter à de tels brokers, votre ID client MQTT doit être unique. Si la plateforme fonctionne en mode microservices, une copie du nœud de règle est lancée dans chaque microservice. Cela entraînera automatiquement plusieurs clients MQTT avec le même ID, ce qui peut provoquer des échecs du nœud de règle. Pour éviter ces échecs, activez l’option \"Ajouter l’ID de service comme suffixe à l’ID client\" ci-dessous.",
    "append-client-id-suffix": "Ajouter l’ID de service comme suffixe à l’ID client",
    "client-id-suffix-hint": "Optionnel. Appliqué lorsque \"Client ID\" est spécifié explicitement. Si sélectionné, l'ID du service sera ajouté en suffixe à l'ID client. Permet d'éviter les défaillances lorsque la plateforme fonctionne en mode microservices.",
    "device-id": "ID de l’appareil",
    "device-id-required": "L’ID de l’appareil est requis.",
    "clean-session": "Session propre",
    "enable-ssl": "Activer SSL",
    "credentials": "Identifiants",
    "credentials-type": "Type d'identifiants",
    "credentials-type-required": "Le type d'identifiants est requis.",
    "credentials-anonymous": "Anonyme",
    "credentials-basic": "Basique",
    "credentials-pem": "PEM",
    "credentials-pem-hint": "Au minimum, un fichier de certificat CA serveur ou une paire de fichiers de certificat client et de clé privée client sont requis",
    "credentials-sas": "Signature d'accès partagé (SAS)",
    "sas-key": "Clé SAS",
    "sas-key-required": "La clé SAS est requise.",
    "hostname": "Nom d'hôte",
    "hostname-required": "Le nom d'hôte est requis.",
    "azure-ca-cert": "Fichier de certificat CA",
    "username-required": "Le nom d'utilisateur est requis.",
    "password-required": "Le mot de passe est requis.",
    "ca-cert": "Fichier certificat CA du serveur",
    "private-key": "Fichier de clé privée du client",
    "cert": "Fichier de certificat client",
    "no-file": "Aucun fichier sélectionné.",
    "drop-file": "Déposez un fichier ou cliquez pour en sélectionner un à téléverser.",
    "private-key-password": "Mot de passe de la clé privée",
    "use-system-smtp-settings": "Utiliser les paramètres SMTP du système",
    "use-metadata-dynamic-interval": "Utiliser un intervalle dynamique",
    "metadata-dynamic-interval-hint": "Les champs de saisie de début et de fin d'intervalle prennent en charge la templatisation. Notez que la valeur du modèle substitué doit être définie en millisecondes. Utilisez $[messageKey] pour extraire la valeur du message et ${metadataKey} pour extraire la valeur des métadonnées.",
    "use-metadata-interval-patterns-hint": "Si sélectionné, le nœud de règle utilise les modèles d'intervalle de début et de fin provenant des métadonnées ou des données du message, en supposant que les intervalles sont en millisecondes.",
    "use-message-alarm-data": "Utiliser les données d'alarme du message",
    "overwrite-alarm-details": "Écraser les détails de l'alarme",
    "use-alarm-severity-pattern": "Utiliser le modèle de gravité de l'alarme",
    "check-all-keys": "Vérifier que tous les champs spécifiés sont présents",
    "check-all-keys-hint": "Si sélectionné, vérifie que toutes les clés spécifiées sont présentes dans les données et métadonnées du message.",
    "check-relation-to-specific-entity": "Vérifier la relation avec une entité spécifique",
    "check-relation-to-specific-entity-tooltip": "Si activé, vérifie la présence d'une relation avec une entité spécifique, sinon, vérifie la relation avec n'importe quelle entité. Dans les deux cas, la recherche de relation est basée sur la direction et le type configurés.",
    "check-relation-hint": "Vérifie l'existence d'une relation avec une entité spécifique ou avec n'importe quelle entité selon la direction et le type de relation.",
    "delete-relation-with-specific-entity": "Supprimer la relation avec une entité spécifique",
    "delete-relation-with-specific-entity-hint": "Si activé, supprimera uniquement la relation avec une entité spécifique. Sinon, la relation sera supprimée avec toutes les entités correspondantes.",
    "delete-relation-hint": "Supprime la relation de l'initiateur du message entrant vers l'entité ou la liste d'entités spécifiées selon la direction et le type.",
    "remove-current-relations": "Supprimer les relations actuelles",
    "remove-current-relations-hint": "Supprime les relations actuelles de l'initiateur du message entrant en fonction de la direction et du type.",
    "change-originator-to-related-entity": "Changer l'initiateur en entité liée",
    "change-originator-to-related-entity-hint": "Utilisé pour traiter le message soumis comme s'il provenait d'une autre entité.",
    "start-interval": "Début de l'intervalle",
    "end-interval": "Fin de l'intervalle",
    "start-interval-required": "Le début de l'intervalle est requis.",
    "end-interval-required": "La fin de l'intervalle est requise.",
    "smtp-protocol": "Protocole",
    "smtp-host": "Hôte SMTP",
    "smtp-host-required": "L’hôte SMTP est requis.",
    "smtp-port": "Port SMTP",
    "smtp-port-required": "Le port SMTP est requis.",
    "smtp-port-range": "Le port SMTP doit être compris entre 1 et 65535.",
    "timeout-msec": "Délai d'attente (ms)",
    "min-timeout-msec-message": "Seule une valeur minimale de 0 ms est autorisée.",
    "enter-username": "Saisir le nom d'utilisateur",
    "enter-password": "Saisir le mot de passe",
    "enable-tls": "Activer TLS",
    "tls-version": "Version TLS",
    "enable-proxy": "Activer le proxy",
    "use-system-proxy-properties": "Utiliser les paramètres proxy système",
    "proxy-host": "Hôte proxy",
    "proxy-host-required": "L’hôte proxy est requis.",
    "proxy-port": "Port proxy",
    "proxy-port-required": "Le port proxy est requis.",
    "proxy-port-range": "Le port proxy doit être entre 1 et 65535.",
    "proxy-user": "Utilisateur proxy",
    "proxy-password": "Mot de passe proxy",
    "proxy-scheme": "Schéma de proxy",
    "numbers-to-template": "Numéros de téléphone vers modèle",
    "numbers-to-template-required": "Le modèle de numéros de téléphone est requis",
    "numbers-to-template-hint": "Numéros de téléphone séparés par des virgules, utilisez <code><span style=\"color: #000;\">$&#123;</span>metadataKey<span style=\"color: #000;\">&#125;</span></code> pour une valeur provenant des métadonnées, <code><span style=\"color: #000;\">$[</span>messageKey<span style=\"color: #000;\">]</span></code> pour une valeur provenant du corps du message",
    "sms-message-template": "Modèle de message SMS",
    "sms-message-template-required": "Le modèle de message SMS est requis",
    "use-system-sms-settings": "Utiliser les paramètres SMS système",
    "min-period-0-seconds-message": "Seule une valeur minimale de 0 seconde est autorisée.",
    "max-pending-messages": "Nombre maximal de messages en attente",
    "max-pending-messages-required": "Le nombre maximal de messages en attente est requis.",
    "max-pending-messages-range": "La valeur doit être comprise entre 1 et 100000.",
    "originator-types-filter": "Filtre de types d’origine",
    "interval-seconds": "Intervalle en secondes",
    "interval-seconds-required": "L'intervalle est requis.",
    "int-range": "La valeur ne doit pas dépasser la limite entière maximale (2147483648)",
    "min-interval-seconds-message": "Seule une valeur minimale de 1 seconde est autorisée.",
    "output-timeseries-key-prefix": "Préfixe de clé des séries temporelles de sortie",
    "output-timeseries-key-prefix-required": "Le préfixe de clé de sortie est requis.",
    "separator-hint": "Appuyez sur \"Entrée\" pour valider la saisie.",
    "select-details": "Sélectionner les détails",
    "entity-details-id": "Id",
    "entity-details-title": "Titre",
    "entity-details-country": "Pays",
    "entity-details-state": "État",
    "entity-details-city": "Ville",
    "entity-details-zip": "Code postal",
    "entity-details-address": "Adresse",
    "entity-details-address2": "Adresse 2",
    "entity-details-additional_info": "Informations supplémentaires",
    "entity-details-phone": "Téléphone",
    "entity-details-email": "Email",
    "email-sender": "Expéditeur de l'email",
    "fields-to-check": "Champs à vérifier",
    "add-detail": "Ajouter un détail",
    "check-all-keys-tooltip": "Si activé, vérifie la présence de tous les champs répertoriés dans les noms de champs du message et des métadonnées dans le message entrant et ses métadonnées.",
    "fields-to-check-hint": "Appuyez sur \"Entrée\" pour compléter la saisie du nom du champ. Plusieurs noms de champs sont supportés.",
    "entity-details-list-empty": "Au moins un détail doit être sélectionné.",
    "alarm-status": "Statut de l'alarme",
    "alarm-required": "Au moins un statut d'alarme doit être sélectionné.",
    "no-entity-details-matching": "Aucun détail d'entité correspondant trouvé.",
    "custom-table-name": "Nom de la table personnalisée",
    "custom-table-name-required": "Le nom de la table est requis",
    "custom-table-hint": "La table doit être créée dans votre cluster Cassandra et son nom doit commencer par le préfixe 'cs_tb_' pour éviter l'insertion de données dans les tables communes de TB. Entrez ici le nom de la table sans le préfixe 'cs_tb_'.",
    "message-field": "Champ du message",
    "message-field-required": "Le champ du message est requis.",
    "table-col": "Colonne de la table",
    "table-col-required": "La colonne de la table est requise.",
    "latitude-field-name": "Nom du champ de latitude",
    "longitude-field-name": "Nom du champ de longitude",
    "latitude-field-name-required": "Le nom du champ de latitude est requis.",
    "longitude-field-name-required": "Le nom du champ de longitude est requis.",
    "fetch-perimeter-info-from-metadata": "Récupérer les informations de périmètre à partir des métadonnées",
    "fetch-perimeter-info-from-metadata-tooltip": "Si le type de périmètre est défini sur 'Polygon', la valeur du champ de métadonnées '{{perimeterKeyName}}' sera utilisée comme définition du périmètre sans analyse supplémentaire de la valeur. Sinon, si le type de périmètre est défini sur 'Circle', la valeur du champ de métadonnées '{{perimeterKeyName}}' sera analysée pour extraire les champs 'latitude', 'longitude', 'radius', 'radiusUnit' qui sont utilisés pour la définition du périmètre circulaire.",
    "perimeter-key-name": "Nom de clé de périmètre",
    "perimeter-key-name-hint": "Nom du champ de métadonnées contenant les infos de périmètre.",
    "perimeter-key-name-required": "Le nom de la clé de périmètre est requis.",
    "perimeter-circle": "Cercle",
    "perimeter-polygon": "Polygone",
    "perimeter-type": "Type de périmètre",
    "circle-center-latitude": "Latitude du centre",
    "circle-center-latitude-required": "Latitude du centre requise.",
    "circle-center-longitude": "Longitude du centre",
    "circle-center-longitude-required": "Longitude du centre requise.",
    "range-unit-meter": "Mètre",
    "range-unit-kilometer": "Kilomètre",
    "range-unit-foot": "Pied",
    "range-unit-mile": "Mille",
    "range-unit-nautical-mile": "Mille marin",
    "range-units": "Unités de distance",
    "range-units-required": "Les unités de distance sont requises.",
    "range": "Portée",
    "range-required": "La portée est requise.",
    "polygon-definition": "Définition du polygone",
    "polygon-definition-required": "La définition du polygone est requise.",
    "polygon-definition-hint": "Format : [[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]]",
    "min-inside-duration": "Durée minimale à l’intérieur",
    "min-inside-duration-value-required": "Durée minimale à l’intérieur requise",
    "min-inside-duration-time-unit": "Unité de temps de la durée intérieure",
    "min-outside-duration": "Durée minimale à l’extérieur",
    "min-outside-duration-value-required": "Durée minimale à l’extérieur requise",
    "min-outside-duration-time-unit": "Unité de temps de la durée extérieure",
    "tell-failure-if-absent": "Indiquer un échec",
    "tell-failure-if-absent-hint": "Si au moins une clé sélectionnée est absente, le message sortant signalera une \"Échec\".",
    "get-latest-value-with-ts": "Récupérer l’horodatage des dernières valeurs",
    "get-latest-value-with-ts-hint": "Inclura l'horodatage dans les valeurs télémétriques, ex : \"temp\": \"&#123;\"ts\":1574329385897, \"value\":42&#125;\"",
    "ignore-null-strings": "Ignorer les chaînes nulles",
    "ignore-null-strings-hint": "Ignore les champs avec valeur vide.",
    "add-metadata-key-values-as-kafka-headers": "Ajouter les métadonnées comme en-têtes Kafka",
    "add-metadata-key-values-as-kafka-headers-hint": "Les métadonnées seront ajoutées comme en-têtes en tant que tableau d'octets avec un encodage prédéfini.",
    "charset-encoding": "Encodage de caractères",
    "charset-encoding-required": "L'encodage de caractères est requis.",
    "charset-us-ascii": "US-ASCII",
    "charset-iso-8859-1": "ISO-8859-1",
    "charset-utf-8": "UTF-8",
    "charset-utf-16be": "UTF-16BE",
    "charset-utf-16le": "UTF-16LE",
    "charset-utf-16": "UTF-16",
    "select-queue-hint": "Sélectionnez un nom de file ou entrez un nom personnalisé.",
    "device-profile-node-hint": "Utile pour conserver la continuité des alarmes en cas de redémarrage.",
    "persist-alarm-rules": "Persister l'état des règles d'alarme",
    "persist-alarm-rules-hint": "Stocke l'état des règles dans la base de données.",
    "fetch-alarm-rules": "Récupérer l'état des règles d'alarme",
    "fetch-alarm-rules-hint": "Restaure l’état à l’initialisation pour gérer les alarmes même après redémarrage.",
    "input-value-key": "Clé de valeur d'entrée",
    "input-value-key-required": "La clé de valeur d'entrée est requise.",
    "output-value-key": "Clé de valeur de sortie",
    "output-value-key-required": "La clé de valeur de sortie est requise.",
    "number-of-digits-after-floating-point": "Nombre de chiffres après la virgule",
    "number-of-digits-after-floating-point-range": "Doit être compris entre 0 et 15.",
    "failure-if-delta-negative": "Signaler un échec si le delta est négatif",
    "failure-if-delta-negative-tooltip": "Force l’échec du traitement si la valeur delta est négative.",
    "use-caching": "Utiliser le cache",
    "use-caching-tooltip": "Le nœud de règle mettra en cache la valeur de \"{{inputValueKey}}\" qui arrive du message entrant pour améliorer les performances. Notez que le cache ne sera pas mis à jour si vous modifiez la valeur de \"{{inputValueKey}}\" ailleurs.",
    "add-time-difference-between-readings": "Ajouter la différence de temps entre les lectures de \"{{inputValueKey}}\"",
    "add-time-difference-between-readings-tooltip": "Si activé, le nœud de règle ajoutera le \"{{periodValueKey}}\" au message sortant.",
    "period-value-key": "Clé de la valeur de la période",
    "period-value-key-required": "La clé de la valeur de la période est requise.",
    "general-pattern-hint": "Utilisez ${metadataKey} pour la valeur provenant des métadonnées, $[messageKey] pour la valeur provenant du corps du message.",
    "alarm-severity-pattern-hint": "Utilisez <code><span style=\"color: #000;\">$&#123;</span>metadataKey<span style=\"color: #000;\">&#125;</span></code> pour la valeur provenant des métadonnées, <code><span style=\"color: #000;\">$[</span>messageKey<span style=\"color: #000;\">]</span></code> pour la valeur provenant du corps du message. La gravité de l'alarme doit être du système (CRITICAL, MAJOR, etc.).",
    "output-node-name-hint": "Le <b>nom du nœud de règle</b> correspond au <b>type de relation</b> du message sortant, et il est utilisé pour transmettre les messages à d'autres nœuds de règle dans la chaîne de règles appelante.",
    "use-server-ts": "Utiliser le timestamp du serveur",
    "use-server-ts-hint": "Utilisez le timestamp actuel du serveur pour les données de séries temporelles qui n'ont pas de timestamp explicite. Cela permet de maintenir un ordre correct lors du traitement des messages provenant de plusieurs sources ou lorsque les messages arrivent dans un ordre incorrect.",
    "kv-map-pattern-hint": "Tous les champs d'entrée prennent en charge la templatisation. Utilisez $[messageKey] pour extraire la valeur du message et ${metadataKey} pour extraire la valeur des métadonnées.",
    "kv-map-single-pattern-hint": "Le champ d'entrée prend en charge la templatisation. Utilisez $[messageKey] pour extraire la valeur du message et ${metadataKey} pour extraire la valeur des métadonnées.",
    "shared-scope": "Portée partagée",
    "server-scope": "Portée serveur",
    "client-scope": "Portée client",
    "attribute-type": "Attribut",
    "attribute-type-description": "Récupère l’attribut depuis la base de données",
    "attribute-type-result-description": "Stocke le résultat comme attribut",
    "constant-type": "Constante",
    "constant-type-description": "Définit une valeur constante",
    "time-series-type": "Série temporelle",
    "time-series-type-description": "Récupère la dernière valeur de série temporelle",
    "time-series-type-result-description": "Stocke le résultat comme série temporelle",
    "message-body-type": "Message",
    "message-body-type-description": "Valeur depuis le corps du message entrant",
    "message-body-type-result-description": "Ajoute le résultat au corps du message sortant",
    "message-metadata-type": "Métadonnée",
    "message-metadata-type-description": "Valeur depuis les métadonnées du message entrant",
    "message-metadata-result-description": "Ajoute le résultat aux métadonnées sortantes",
    "argument-tile": "Arguments",
    "no-arguments-prompt": "Aucun argument configuré",
    "result-title": "Résultat",
    "functions-field-input": "Fonctions",
    "no-option-found": "Aucune option trouvée",
    "argument-source-field-input": "Source",
    "argument-source-field-input-required": "La source de l'argument est requise.",
    "argument-key-field-input": "Clé",
    "argument-key-field-input-required": "La clé de l'argument est requise.",
    "constant-value-field-input": "Valeur constante",
    "constant-value-field-input-required": "La valeur constante est requise.",
    "attribute-scope-field-input": "Portée de l'attribut",
    "attribute-scope-field-input-required": "La portée est requise.",
    "default-value-field-input": "Valeur par défaut",
    "type-field-input": "Type",
    "type-field-input-required": "Le type est requis.",
    "key-field-input": "Clé",
    "add-entity-type": "Ajouter un type d'entité",
    "add-device-profile": "Ajouter un profil d'appareil",
    "key-field-input-required": "La clé est requise.",
    "number-floating-point-field-input": "Nombre de chiffres après la virgule",
    "number-floating-point-field-input-hint": "Utilisez <i>0</i> pour convertir en entier",
    "add-to-message-field-input": "Ajouter au message",
    "add-to-metadata-field-input": "Ajouter aux métadonnées",
    "custom-expression-field-input": "Expression mathématique",
    "custom-expression-field-input-required": "L’expression mathématique est requise",
    "custom-expression-field-input-hint": "Spécifiez une expression mathématique à évaluer.",
    "retained-message": "Retenu",
    "attributes-mapping": "Correspondance des attributs",
    "latest-telemetry-mapping": "Correspondance des dernières télémétries",
    "add-mapped-attribute-to": "Ajouter les attributs mappés à",
    "add-mapped-latest-telemetry-to": "Ajouter la télémétrie mappée à",
    "add-mapped-fields-to": "Ajouter les champs mappés à",
    "add-selected-details-to": "Ajouter les détails sélectionnés à",
    "clear-selected-types": "Effacer les types sélectionnés",
    "clear-selected-details": "Effacer les détails sélectionnés",
    "clear-selected-fields": "Effacer les champs sélectionnés",
    "clear-selected-keys": "Effacer les clés sélectionnées",
    "geofence-configuration": "Configuration de la géofence",
    "coordinate-field-names": "Noms des champs de coordonnées",
    "coordinate-field-hint": "Le nœud tente de récupérer ces champs depuis le message, sinon depuis les métadonnées.",
    "presence-monitoring-strategy": "Stratégie de suivi de présence",
    "presence-monitoring-strategy-on-first-message": "Au premier message",
    "presence-monitoring-strategy-on-each-message": "À chaque message",
    "presence-monitoring-strategy-on-first-message-hint": "Signale le statut de présence 'À l'intérieur' ou 'À l'extérieur' lors du premier message après que la durée minimale configurée soit écoulée depuis la dernière mise à jour du statut de présence 'Entré' ou 'Parti'.",
    "presence-monitoring-strategy-on-each-message-hint": "Signale le statut de présence 'À l'intérieur' ou 'À l'extérieur' à chaque message après la mise à jour du statut de présence 'Entré' ou 'Parti'.",
    "fetch-credentials-to": "Récupérer les identifiants pour",
    "add-originator-attributes-to": "Ajouter les attributs de l'initiateur à",
    "originator-attributes": "Attributs de l'initiateur",
    "fetch-latest-telemetry-with-timestamp": "Récupérer la dernière télémétrie avec timestamp",
    "fetch-latest-telemetry-with-timestamp-tooltip": "Si activé, les dernières valeurs de télémétrie seront ajoutées aux métadonnées sortantes avec un timestamp, par exemple : \"{{latestTsKeyName}}\": \"{\"ts\":1574329385897, \"value\":42}\"",
    "tell-failure": "Signaler une erreur si l'un des attributs est manquant",
    "tell-failure-tooltip": "Si au moins une clé sélectionnée n'existe pas, le message sortant signalera \"Échec\".",
    "created-time": "Heure de création",
    "chip-help": "Appuyez sur 'Entrée' pour compléter la saisie de {{inputName}}. \nAppuyez sur 'Retour arrière' pour supprimer {{inputName}}. \nPlusieurs valeurs sont supportées.",
    "detail": "détail",
    "field-name": "Nom du champ",
    "device-profile": "Profil d'appareil",
    "entity-type": "Type d'entité",
    "message-type": "Type de message",
    "timeseries-key": "Clé de série temporelle",
    "type": "Type",
    "first-name": "Prénom",
    "last-name": "Nom de famille",
    "label": "Étiquette",
    "originator-fields-mapping": "Mappage des champs de l’origine",
    "add-mapped-originator-fields-to": "Ajouter les champs de l’origine mappés à",
    "fields": "Champs",
    "skip-empty-fields": "Ignorer les champs vides",
    "skip-empty-fields-tooltip": "Les champs avec des valeurs vides ne seront pas ajoutés au message de sortie/métadonnées de sortie.",
    "fetch-interval": "Intervalle de récupération",
    "fetch-strategy": "Stratégie de récupération",
    "fetch-timeseries-from-to": "Récupérer les séries temporelles depuis {{startInterval}} {{startIntervalTimeUnit}} jusqu'à {{endInterval}} {{endIntervalTimeUnit}}.",
    "fetch-timeseries-from-to-invalid": "Récupération de séries temporelles invalide (\"Début de l'intervalle\" doit être inférieur à \"Fin de l'intervalle\").",
    "use-metadata-dynamic-interval-tooltip": "Si sélectionné, le nœud de règle utilisera des intervalles dynamiques de début et de fin basés sur les modèles de message et de métadonnées.",
    "all-mode-hint": "Si le mode de récupération \"Tout\" est sélectionné, le nœud de règle récupérera la télémétrie de l'intervalle de récupération avec des paramètres de requête configurables.",
    "first-mode-hint": "Si le mode de récupération \"Premier\" est sélectionné, le nœud de règle récupérera la télémétrie la plus proche du début de l'intervalle de récupération.",
    "last-mode-hint": "Si le mode de récupération \"Dernier\" est sélectionné, le nœud de règle récupérera la télémétrie la plus proche de la fin de l'intervalle de récupération.",
    "ascending": "Croissant",
    "descending": "Décroissant",
    "min": "Minimum",
    "max": "Maximum",
    "average": "Moyenne",
    "sum": "Somme",
    "count": "Nombre",
    "none": "Aucun",
    "last-level-relation-tooltip": "Recherche des entités liées uniquement au niveau de relation maximum défini si activé.",
    "last-level-device-relation-tooltip": "Recherche des appareils liés uniquement au niveau spécifié si activé.",
    "data-to-fetch": "Données à récupérer",
    "mapping-of-customers": "Mappage des clients",
    "map-fields-required": "Tous les champs de mappage sont requis.",
    "attributes": "Attributs",
    "related-device-attributes": "Attributs de l’appareil lié",
    "add-selected-attributes-to": "Ajouter les attributs sélectionnés à",
    "device-profiles": "Profils d'appareils",
    "mapping-of-tenant": "Mappage du locataire",
    "add-attribute-key": "Ajouter une clé d’attribut",
    "message-template": "Modèle de message",
    "message-template-required": "Le modèle de message est requis",
    "use-system-slack-settings": "Utiliser les paramètres Slack système",
    "slack-api-token": "Jeton API Slack",
    "slack-api-token-required": "Le jeton API Slack est requis",
    "keys-mapping": "Mappage des clés",
    "add-key": "Ajouter une clé",
    "recipients": "Destinataires",
    "message-subject-and-content": "Sujet et contenu du message",
    "template-rules-hint": "Les deux champs d'entrée prennent en charge la templatisation. Utilisez $[messageKey] pour extraire la valeur du message et ${metadataKey} pour extraire la valeur des métadonnées du message.",
    "originator-customer-desc": "Utiliser le client de l'initiateur du message entrant comme nouveau créateur.",
    "originator-tenant-desc": "Utiliser le locataire actuel comme nouveau créateur.",
    "originator-related-entity-desc": "Utiliser l'entité liée comme nouveau créateur. Recherche basée sur le type de relation et la direction configurés.",
    "originator-alarm-originator-desc": "Utiliser l'initiateur de l'alarme comme nouveau créateur. Seulement si l'initiateur du message entrant est une entité d'alarme.",
    "originator-entity-by-name-pattern-desc": "Utiliser l'entité récupérée de la base de données comme nouveau créateur. Recherche basée sur le type d'entité et le modèle de nom spécifié.",
    "email-from-template-hint": "Utilisez $[messageKey] pour extraire la valeur du message et ${metadataKey} pour extraire la valeur des métadonnées.",
    "recipients-block-main-hint": "Liste d'adresses séparées par des virgules. Tous les champs d'entrée prennent en charge la templatisation. Utilisez $[messageKey] pour extraire la valeur du message et ${metadataKey} pour extraire la valeur des métadonnées.",
    "forward-msg-default-rule-chain": "Transférer le message vers la chaîne de règles par défaut de l'initiateur",
    "forward-msg-default-rule-chain-tooltip": "Si activé, le message sera transféré à la chaîne de règles par défaut de l'initiateur, ou à la chaîne de règles configurée, si l'initiateur n'a pas de chaîne de règles par défaut définie dans le profil de l'entité.",
    "exclude-zero-deltas": "Exclure les deltas nuls du message sortant",
    "exclude-zero-deltas-hint": "Si activé, la clé de sortie \"{{outputValueKey}}\" sera ajoutée au message sortant si sa valeur n'est pas zéro.",
    "exclude-zero-deltas-time-difference-hint": "Si activé, les clés de sortie \"{{outputValueKey}}\" et \"{{periodValueKey}}\" seront ajoutées au message sortant uniquement si la valeur de \"{{outputValueKey}}\" n'est pas zéro.",
    "search-direction-from": "De l’origine vers l’entité cible",
    "search-direction-to": "De l’entité cible vers l’origine",
    "del-relation-direction-from": "Depuis l’origine",
    "del-relation-direction-to": "Vers l’origine",
    "target-entity": "Entité cible",
    "function-configuration": "Configuration de la fonction",
    "function-name": "Nom de la fonction",
    "function-name-required": "Le nom de la fonction est requis.",
    "qualifier": "Qualificateur",
    "qualifier-hint": "Si le qualificateur n'est pas spécifié, le qualificateur par défaut \"$LATEST\" sera utilisé.",
    "aws-credentials": "Identifiants AWS",
    "connection-timeout": "Délai de connexion",
    "connection-timeout-required": "Le délai de connexion est requis.",
    "connection-timeout-min": "Le délai de connexion minimum est de 0.",
    "connection-timeout-hint": "Le temps d'attente en secondes lors de l'établissement initial d'une connexion avant l'abandon et le délai d'attente. Une valeur de 0 signifie l'infini et n'est pas recommandée.",
    "request-timeout": "Délai d'attente de la demande",
    "request-timeout-required": "Le délai d'attente de la demande est requis",
    "request-timeout-min": "Le délai d'attente minimum pour la demande est de 0",
    "request-timeout-hint": "Le temps d'attente en secondes pour que la demande soit terminée avant l'abandon et le délai d'attente. Une valeur de 0 signifie l'infini et n'est pas recommandée.",
    "units": "Unités",
    "tell-failure-aws-lambda": "Signaler un échec si l'exécution de la fonction AWS Lambda génère une exception",
    "tell-failure-aws-lambda-hint": "Le nœud de règle force l'échec du traitement du message si l'exécution de la fonction AWS Lambda génère une exception.",
    "basic-mode": "Basique",
    "advanced-mode": "Avancé",
    "save-time-series": {
      "processing-settings": "Paramètres de traitement",
      "processing-settings-hint": "Définissez comment les messages entrants sont traités. Les paramètres de base permettent de sélectionner des stratégies préconfigurées, tandis que les paramètres avancés permettent de choisir des stratégies individuelles pour chaque action.",
      "advanced-settings-hint": "Soyez prudent lors de la configuration des stratégies de traitement. Certaines combinaisons peuvent entraîner un comportement inattendu.",
      "strategy": "Stratégie",
      "deduplication-interval": "Intervalle de déduplication",
      "deduplication-interval-required": "L'intervalle de déduplication est requis",
      "deduplication-interval-min-max-range": "L'intervalle de déduplication doit être d'au moins 1 seconde et d'au plus 1 jour",
      "strategy-type": {
        "every-message": "À chaque message",
        "skip": "Ignorer",
        "deduplicate": "Dédupliquer",
        "web-sockets-only": "WebSockets uniquement"
      },
      "time-series": "Séries temporelles",
      "latest": "Dernières valeurs",
      "web-sockets": "WebSockets",
      "calculated-fields-and-alarm-rules": "Champs calculés et règles d'alarme"
    },
    "save-attribute": {
      "processing-settings": "Paramètres de traitement",
      "processing-settings-hint": "Définissez comment les messages entrants sont traités. Les paramètres de base permettent de sélectionner des stratégies préconfigurées, tandis que les paramètres avancés permettent de choisir des stratégies individuelles pour chaque action.",
      "advanced-settings-hint": "Soyez prudent lors de la configuration des stratégies de traitement. Certaines combinaisons peuvent entraîner un comportement inattendu.",
      "strategy": "Stratégie",
      "deduplication-interval": "Intervalle de déduplication",
      "deduplication-interval-required": "L'intervalle de déduplication est requis",
      "deduplication-interval-min-max-range": "L'intervalle de déduplication doit être d'au moins 1 seconde et d'au plus 1 jour",
      "scope": "Portée",
      "strategy-type": {
        "every-message": "À chaque message",
        "skip": "Ignorer",
        "deduplicate": "Dédupliquer",
        "web-sockets-only": "WebSockets uniquement"
      },
      "attributes": "Attributs"
    },
    "key-val": {
      "key": "Clé",
      "value": "Valeur",
      "see-examples": "Voir des exemples.",
      "remove-entry": "Supprimer l'entrée",
      "remove-mapping-entry": "Supprimer le mappage",
      "add-mapping-entry": "Ajouter un mappage",
      "add-entry": "Ajouter une entrée",
      "copy-key-values-from": "Copier les paires clé-valeur depuis",
      "delete-key-values": "Supprimer les paires clé-valeur",
      "delete-key-values-from": "Supprimer les paires clé-valeur depuis",
      "at-least-one-key-error": "Au moins une clé doit être sélectionnée.",
      "unique-key-value-pair-error": "'{{keyText}}' doit être différent de '{{valText}}' !"
    },
    "mail-body-types": {
      "plain-text": "Texte brut",
      "html": "HTML",
      "dynamic": "Dynamique",
      "use-body-type-template": "Utiliser le modèle de type de corps",
      "plain-text-description": "Texte simple, non formaté, sans style ou mise en forme particulière.",
      "html-text-description": "Permet d'utiliser des balises HTML pour la mise en forme, les liens et les images dans le corps du message.",
      "dynamic-text-description": "Permet d'utiliser dynamiquement le texte brut ou HTML selon le modèle.",
      "after-template-evaluation-hint": "Après évaluation du modèle, la valeur doit être true pour HTML, et false pour Texte brut."
    },
    "ai": {
      "ai-model": "Modèle d'IA",
      "model": "Modèle",
      "ai-model-hint": "Sélectionnez le modèle d'IA préconfiguré pour traiter les demandes envoyées par ce nœud de règle, ou utilisez \"Créer un nouveau\" pour configurer un nouveau modèle.",
      "prompt-settings": "Paramètres de l'invite",
      "prompt-settings-hint": "L'invite système facultative définit le rôle général et les contraintes de l'IA, tandis que l'invite utilisateur définit la tâche spécifique à accomplir. Les deux champs prennent également en charge la templatisation.",
      "system-prompt": "Invite système",
      "system-prompt-max-length": "L'invite système doit comporter 500 000 caractères ou moins.",
      "system-prompt-blank": "L'invite système ne doit pas être vide.",
      "user-prompt": "Invite utilisateur",
      "user-prompt-required": "L'invite utilisateur est requise.",
      "user-prompt-max-length": "L'invite utilisateur doit comporter 500 000 caractères ou moins.",
      "user-prompt-blank": "L'invite utilisateur ne doit pas être vide.",
      "response-format": "Format de réponse",
      "response-text": "Texte",
      "response-json": "JSON",
      "response-json-schema": "Schéma JSON",
      "response-format-hint-TEXT": "Permet au modèle de générer un texte arbitraire, qui peut ou non être un objet JSON valide. Si la sortie n'est pas un objet JSON valide, elle sera automatiquement enveloppée dans un objet JSON sous la clé \"response\".",
      "response-format-hint-JSON": "Le modèle doit générer une réponse qui soit un JSON valide. Si la sortie n'est pas un objet JSON valide, elle sera automatiquement enveloppée dans un objet JSON sous la clé \"response\".",
      "response-format-hint-JSON_SCHEMA": "Le modèle doit générer un JSON qui correspond à la structure spécifique et aux types de données définis dans le schéma fourni. Si la sortie n'est pas un objet JSON valide, elle sera automatiquement enveloppée dans un objet JSON sous la clé \"response\".",
      "response-json-schema-hint": "Bien que tout schéma JSON valide puisse être saisi, ce nœud de règle ne prend en charge qu'un sous-ensemble limité de ses fonctionnalités. Consultez la documentation du nœud pour plus de détails.",
      "response-json-schema-required": "Le schéma JSON est requis",
      "advanced-settings": "Paramètres avancés",
      "timeout": "Délai d'attente",
      "timeout-hint": "Temps maximum à attendre pour une réponse \ndu modèle d'IA avant que la demande ne soit terminée.",
      "timeout-required": "Le délai d'attente est requis",
      "timeout-validation": "Doit être compris entre 1 seconde et 10 minutes.",
      "force-acknowledgement": "Forcer l'accusé de réception",
      "force-acknowledgement-hint": "Si activé, le message entrant est immédiatement reconnu. La réponse du modèle est ensuite mise en file d'attente en tant que message distinct.",
      "ai-resources": "Ressources IA"
    }
  },
  "timezone": {
    "timezone": "Fuseau horaire",
    "select-timezone": "Sélectionner un fuseau horaire",
    "no-timezones-matching": "Aucun fuseau horaire correspondant à '{{timezone}}' trouvé.",
    "timezone-required": "Le fuseau horaire est requis.",
    "browser-time": "Heure du navigateur"
  },
  "queue": {
    "queue-name": "File d’attente",
    "no-queues-found": "Aucune file d’attente trouvée.",
    "no-queues-matching": "Aucune file d’attente correspondant à '{{queue}}' trouvée.",
    "select-name": "Sélectionner le nom de la file d’attente",
    "name": "Nom",
    "name-required": "Le nom de la file d’attente est requis !",
    "name-unique": "Le nom de la file d’attente n’est pas unique !",
    "name-pattern": "Le nom de la file d’attente contient un caractère non autorisé (seuls les caractères ASCII alphanumériques, '.', '_' et '-' sont permis) !",
    "queue-required": "La file d’attente est requise !",
    "topic-required": "Le sujet de la file d’attente est requis !",
    "poll-interval-required": "L’intervalle d’interrogation est requis !",
    "poll-interval-min-value": "L’intervalle d’interrogation ne peut pas être inférieur à 1",
    "partitions-required": "Les partitions sont requises !",
    "partitions-min-value": "La valeur des partitions ne peut pas être inférieure à 1",
    "pack-processing-timeout-required": "Le délai de traitement est requis",
    "pack-processing-timeout-min-value": "Le délai de traitement ne peut pas être inférieur à 1",
    "batch-size-required": "La taille du lot est requise !",
    "batch-size-min-value": "La taille du lot ne peut pas être inférieure à 1",
    "retries-required": "Le nombre de tentatives est requis !",
    "retries-min-value": "Le nombre de tentatives ne peut pas être négatif",
    "failure-percentage-required": "Le pourcentage d’échec est requis !",
    "failure-percentage-min-value": "Le pourcentage d’échec ne peut pas être inférieur à 0",
    "failure-percentage-max-value": "Le pourcentage d’échec ne peut pas être supérieur à 100",
    "pause-between-retries-required": "Le délai entre les tentatives est requis !",
    "pause-between-retries-min-value": "Le délai entre les tentatives ne peut pas être inférieur à 1",
    "max-pause-between-retries-required": "Le délai maximal entre les tentatives est requis !",
    "max-pause-between-retries-min-value": "Le délai maximal entre les tentatives ne peut pas être inférieur à 1",
    "submit-strategy-type-required": "Le type de stratégie d’envoi est requis !",
    "processing-strategy-type-required": "Le type de stratégie de traitement est requis !",
    "queues": "Files d’attente",
    "selected-queues": "{ count, plural, =1 {1 file d’attente} other {# files d’attente} } sélectionnée(s)",
    "delete-queue-title": "Êtes-vous sûr de vouloir supprimer la file d’attente '{{queueName}}' ?",
    "delete-queues-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 file d’attente} other {# files d’attente} } ?",
    "delete-queue-text": "Attention, après confirmation, la file d’attente et toutes les données associées seront irrécupérables.",
    "delete-queues-text": "Après confirmation, toutes les files d’attente sélectionnées seront supprimées et ne seront plus accessibles.",
    "search": "Rechercher une file d’attente",
    "add": "Ajouter une file d’attente",
    "details": "Détails de la file d’attente",
    "topic": "Sujet",
    "submit-settings": "Paramètres d’envoi",
    "submit-strategy": "Type de stratégie *",
    "grouping-parameter": "Paramètre de regroupement",
    "processing-settings": "Paramètres de traitement des tentatives",
    "processing-strategy": "Type de traitement *",
    "retries-settings": "Paramètres de tentatives",
    "polling-settings": "Paramètres d’interrogation",
    "batch-processing": "Traitement par lots",
    "poll-interval": "Intervalle d’interrogation",
    "partitions": "Partitions",
    "immediate-processing": "Traitement immédiat",
    "consumer-per-partition": "Interroger pour chaque consommateur",
    "consumer-per-partition-hint": "Activer un consommateur distinct pour chaque partition",
    "duplicate-msg-to-all-partitions": "Dupliquer le message vers toutes les partitions",
    "processing-timeout": "Délai de traitement, ms",
    "batch-size": "Taille du lot",
    "retries": "Nombre de tentatives (0 – illimité)",
    "failure-percentage": "Échecs pour ignorer les tentatives, %",
    "pause-between-retries": "Réessayer dans, sec",
    "max-pause-between-retries": "Réessayer à nouveau dans, sec",
    "delete": "Supprimer la file d’attente",
    "copyId": "Copier l’ID de la file d’attente",
    "idCopiedMessage": "L’ID de la file d’attente a été copié dans le presse-papiers",
    "description": "Description",
    "description-hint": "Ce texte sera affiché dans la description de la file d’attente à la place de la stratégie sélectionnée",
    "alt-description": "Stratégie d’envoi : {{submitStrategy}}, Stratégie de traitement : {{processingStrategy}}",
    "custom-properties": "Propriétés personnalisées",
    "custom-properties-hint": "Propriétés personnalisées de création de file (topic), ex : 'retention.ms:604800000;retention.bytes:1048576000'",
    "strategies": {
      "sequential-by-originator-label": "Séquentiel par initiateur",
      "sequential-by-originator-hint": "Un nouveau message, par exemple pour l'appareil A, n’est pas soumis tant que le message précédent pour l'appareil A n’a pas été accusé de réception",
      "sequential-by-tenant-label": "Séquentiel par locataire",
      "sequential-by-tenant-hint": "Un nouveau message, par exemple pour le locataire A, n’est pas soumis tant que le message précédent pour le locataire A n’a pas été accusé de réception",
      "sequential-label": "Séquentiel",
      "sequential-hint": "Un nouveau message n’est pas soumis tant que le précédent n’a pas été accusé de réception",
      "burst-label": "Rafale",
      "burst-hint": "Tous les messages sont soumis aux chaînes de règles dans l’ordre de leur arrivée",
      "batch-label": "Par lot",
      "batch-hint": "Un nouveau lot n’est pas soumis tant que le lot précédent n’a pas été accusé de réception",
      "skip-all-failures-label": "Ignorer tous les échecs",
      "skip-all-failures-hint": "Ignorer tous les échecs",
      "skip-all-failures-and-timeouts-label": "Ignorer tous les échecs et expirations",
      "skip-all-failures-and-timeouts-hint": "Ignorer tous les échecs et expirations de délai",
      "retry-all-label": "Réessayer tous",
      "retry-all-hint": "Réessayer tous les messages du lot de traitement",
      "retry-failed-label": "Réessayer les échecs",
      "retry-failed-hint": "Réessayer tous les messages échoués du lot de traitement",
      "retry-timeout-label": "Réessayer les expirations",
      "retry-timeout-hint": "Réessayer tous les messages ayant expiré dans le lot de traitement",
      "retry-failed-and-timeout-label": "Réessayer les échecs et expirations",
      "retry-failed-and-timeout-hint": "Réessayer tous les messages échoués et ayant expiré dans le lot de traitement"
    }
  },
  "queue-statistics": {
    "queue-statistics": "Statistiques de file d'attente",
    "no-queue-statistics-matching": "Aucune statistique de file d'attente correspondant à '{{entity}}' n'a été trouvée.",
    "queue-statistics-required": "Les statistiques de file d'attente sont requises.",
    "list-of-queue-statistics": "{ count, plural, =1 {Une statistique de file d'attente} other {Liste de # statistiques de file d'attente} }",
    "selected-queue-statistics": "{ count, plural, =1 {1 statistique de file d'attente} other {# statistiques de file d'attente} } sélectionnée(s)",
    "no-queue-statistics-text": "Aucune statistique de file d'attente trouvée",
    "queue-statistics-starts-with": "Statistiques de file d'attente dont les noms commencent par '{{prefix}}'"
  },
  "server-error": {
    "general": "Erreur générale du serveur",
    "authentication": "Erreur d'authentification",
    "jwt-token-expired": "Jeton JWT expiré",
    "tenant-trial-expired": "Période d'essai du locataire expirée",
    "credentials-expired": "Identifiants expirés",
    "permission-denied": "Permission refusée",
    "invalid-arguments": "Arguments invalides",
    "bad-request-params": "Paramètres de requête incorrects",
    "item-not-found": "Élément introuvable",
    "too-many-requests": "Trop de requêtes",
    "too-many-updates": "Trop de mises à jour",
    "entities-limit-exceeded": "Limite d’entités dépassée"
  },
  "tenant": {
    "tenant": "Locataire",
    "tenants": "Locataires",
    "management": "Gestion des locataires",
    "add": "Ajouter un locataire",
    "admins": "Administrateurs",
    "manage-tenant-admins": "Gérer les administrateurs du locataire",
    "delete": "Supprimer le locataire",
    "add-tenant-text": "Ajouter un nouveau locataire",
    "no-tenants-text": "Aucun locataire trouvé",
    "tenant-details": "Détails du locataire",
    "title-max-length": "Le titre doit contenir moins de 256 caractères",
    "delete-tenant-title": "Êtes-vous sûr de vouloir supprimer le locataire '{{tenantTitle}}' ?",
    "delete-tenant-text": "Attention, après confirmation, le locataire et toutes les données associées seront irrécupérables.",
    "delete-tenants-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 locataire} other {# locataires} } ?",
    "delete-tenants-action-title": "Supprimer { count, plural, =1 {1 locataire} other {# locataires} }",
    "delete-tenants-text": "Attention, après confirmation, tous les locataires sélectionnés seront supprimés ainsi que toutes les données associées.",
    "title": "Titre",
    "title-required": "Le titre est requis.",
    "description": "Description",
    "details": "Détails",
    "events": "Événements",
    "copyId": "Copier l'identifiant du locataire",
    "idCopiedMessage": "Identifiant du locataire copié dans le presse-papiers",
    "select-tenant": "Sélectionner un locataire",
    "no-tenants-matching": "Aucun locataire correspondant à '{{entity}}' trouvé.",
    "tenant-required": "Le locataire est requis",
    "search": "Rechercher des locataires",
    "selected-tenants": "{ count, plural, =1 {1 locataire} other {# locataires} } sélectionné(s)",
    "isolated-tb-rule-engine": "Utiliser des files d’attente isolées pour le moteur de règles ThingsBoard",
    "isolated-tb-rule-engine-details": "Chaque locataire aura des files d’attente dédiées pour le moteur de règles"
  },
  "tenant-profile": {
    "tenant-profile": "Profil de locataire",
    "tenant-profiles": "Profils de locataire",
    "add": "Ajouter un profil de locataire",
    "add-profile": "Ajouter un profil",
    "debug": "Déboguer",
    "edit": "Modifier le profil de locataire",
    "tenant-profile-details": "Détails du profil de locataire",
    "no-tenant-profiles-text": "Aucun profil de locataire trouvé",
    "name-max-length": "Le nom doit contenir moins de 256 caractères",
    "search": "Rechercher des profils de locataire",
    "selected-tenant-profiles": "{ count, plural, =1 {1 profil de locataire} other {# profils de locataire} } sélectionné(s)",
    "no-tenant-profiles-matching": "Aucun profil de locataire correspondant à '{{entity}}' trouvé.",
    "tenant-profile-required": "Le profil de locataire est requis",
    "idCopiedMessage": "L'identifiant du profil de locataire a été copié dans le presse-papiers",
    "set-default": "Définir comme profil par défaut",
    "delete": "Supprimer le profil de locataire",
    "copyId": "Copier l'identifiant du profil de locataire",
    "name": "Nom",
    "name-required": "Le nom est requis.",
    "data": "Données du profil",
    "profile-configuration": "Configuration du profil",
    "description": "Description",
    "default": "Défaut",
    "delete-tenant-profile-title": "Êtes-vous sûr de vouloir supprimer le profil de locataire '{{tenantProfileName}}' ?",
    "delete-tenant-profile-text": "Attention, après confirmation, le profil de locataire et toutes les données associées seront irrécupérables.",
    "delete-tenant-profiles-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 profil de locataire} other {# profils de locataire} } ?",
    "delete-tenant-profiles-text": "Attention, après confirmation, tous les profils de locataire sélectionnés seront supprimés ainsi que toutes les données associées.",
    "set-default-tenant-profile-title": "Êtes-vous sûr de vouloir définir le profil de locataire '{{tenantProfileName}}' comme profil par défaut ?",
    "set-default-tenant-profile-text": "Après confirmation, le profil sera défini comme profil par défaut et sera utilisé pour les nouveaux locataires sans profil spécifié.",
    "no-tenant-profiles-found": "Aucun profil de locataire trouvé.",
    "create-new-tenant-profile": "Créer un nouveau !",
    "create-tenant-profile": "Créer un nouveau profil de locataire",
    "import": "Importer un profil de locataire",
    "export": "Exporter un profil de locataire",
    "export-failed-error": "Impossible d’exporter le profil de locataire : {{error}}",
    "tenant-profile-file": "Fichier de profil de locataire",
    "invalid-tenant-profile-file-error": "Impossible d’importer le profil : structure de données invalide.",
    "advanced-settings": "Paramètres avancés",
    "entities": "Entités",
    "rule-engine": "Moteur de règles",
    "time-to-live": "Durée de vie",
    "calculated-fields": "Champs calculés",
    "alarms-and-notifications": "Alarmes et notifications",
    "ota-files-in-bytes": "Fichiers",
    "ws-title": "WS",
    "unlimited": "(0 - illimité)",
    "maximum-devices": "Nombre maximum d'appareils",
    "maximum-devices-required": "Le nombre maximum d'appareils est requis.",
    "maximum-devices-range": "Le nombre maximum d'appareils ne peut pas être négatif",
    "maximum-assets": "Nombre maximum d'actifs",
    "maximum-assets-required": "Le nombre maximum d'actifs est requis.",
    "maximum-assets-range": "Le nombre maximum d'actifs ne peut pas être négatif",
    "maximum-customers": "Nombre maximum de clients",
    "maximum-customers-required": "Le nombre maximum de clients est requis.",
    "maximum-customers-range": "Le nombre maximum de clients ne peut pas être négatif",
    "maximum-users": "Nombre maximum d'utilisateurs",
    "maximum-users-required": "Le nombre maximum d'utilisateurs est requis.",
    "maximum-users-range": "Le nombre maximum d'utilisateurs ne peut pas être négatif",
    "maximum-dashboards": "Nombre maximum de tableaux de bord",
    "maximum-dashboards-required": "Le nombre maximum de tableaux de bord est requis.",
    "maximum-dashboards-range": "Le nombre maximum de tableaux de bord ne peut pas être négatif",
    "maximum-edges": "Nombre maximum d'edges",
    "maximum-edges-required": "Le nombre maximum d'edges est requis.",
    "maximum-edges-range": "Le nombre maximum d'edges ne peut pas être négatif",
    "maximum-rule-chains": "Nombre maximum de chaînes de règles",
    "maximum-rule-chains-required": "Le nombre maximum de chaînes de règles est requis.",
    "maximum-rule-chains-range": "Le nombre maximum de chaînes de règles ne peut pas être négatif",
    "maximum-resources-sum-data-size": "Taille maximale totale des fichiers de ressources (octets)",
    "maximum-resources-sum-data-size-required": "La taille totale maximale des fichiers de ressources est requise.",
    "maximum-resources-sum-data-size-range": "La taille totale maximale des fichiers de ressources ne peut pas être négative",
    "maximum-resource-size": "Taille maximale du fichier ressource (octets)",
    "maximum-resource-size-required": "La taille maximale du fichier ressource est requise",
    "maximum-resource-size-range": "La taille maximale du fichier ressource ne peut pas être négative",
    "maximum-ota-packages-sum-data-size": "Taille maximale totale des fichiers OTA (octets)",
    "maximum-ota-package-sum-data-size-required": "La taille maximale totale des fichiers OTA est requise.",
    "maximum-ota-package-sum-data-size-range": "La taille maximale totale des fichiers OTA ne peut pas être négative",
    "maximum-debug-duration-min": "Durée maximale de débogage (min)",
    "maximum-debug-duration-min-range": "La durée maximale de débogage ne peut pas être négative",
    "rest-requests-for-tenant": "Requêtes REST pour le locataire",
    "transport-tenant-telemetry-msg-rate-limit": "Messages de télémétrie du locataire (transport)",
    "transport-tenant-telemetry-data-points-rate-limit": "Points de données de télémétrie du locataire (transport)",
    "transport-device-msg-rate-limit": "Messages de l'appareil (transport)",
    "transport-device-telemetry-msg-rate-limit": "Messages de télémétrie de l'appareil (transport)",
    "transport-device-telemetry-data-points-rate-limit": "Points de données de télémétrie de l'appareil (transport)",
    "transport-gateway-msg-rate-limit": "Messages de la passerelle (transport)",
    "transport-gateway-telemetry-msg-rate-limit": "Messages de télémétrie de la passerelle (transport)",
    "transport-gateway-telemetry-data-points-rate-limit": "Points de données de télémétrie de la passerelle (transport)",
    "transport-gateway-device-msg-rate-limit": "Messages de l'appareil de la passerelle (transport)",
    "transport-gateway-device-telemetry-msg-rate-limit": "Messages de télémétrie de l'appareil de la passerelle (transport)",
    "transport-gateway-device-telemetry-data-points-rate-limit": "Points de données de télémétrie de l'appareil de la passerelle (transport)",
    "tenant-entity-export-rate-limit": "Création de version d'entité",
    "tenant-entity-import-rate-limit": "Chargement de version d'entité",
    "tenant-notification-request-rate-limit": "Requêtes de notification",
    "tenant-notification-requests-per-rule-rate-limit": "Requêtes de notification par règle",
    "max-calculated-fields": "Nombre maximal de champs calculés par entité",
    "max-calculated-fields-range": "Le nombre maximal de champs calculés ne peut pas être négatif",
    "max-calculated-fields-required": "Le nombre maximal de champs calculés est requis",
    "max-data-points-per-rolling-arg": "Nombre maximal de points de données dans les arguments glissants",
    "max-data-points-per-rolling-arg-range": "Le nombre ne peut pas être négatif",
    "max-data-points-per-rolling-arg-required": "Le nombre maximal de points de données est requis",
    "max-arguments-per-cf": "Nombre maximal d’arguments par champ calculé",
    "max-arguments-per-cf-range": "Le nombre maximal d’arguments ne peut pas être négatif",
    "max-arguments-per-cf-required": "Le nombre maximal d’arguments est requis",
    "max-related-level-per-argument": "Niveau de relation maximal par argument « Entités associées »",
    "max-related-level-per-argument-range": "Le nombre maximal du niveau de relation par argument « Entités associées » ne peut pas être inférieur à « 1 »",
    "max-related-level-per-argument-required": "Le nombre maximal du niveau de relation par argument « Entités associées » est requis",
    "min-allowed-scheduled-update-interval": "Intervalle minimal de mise à jour autorisé pour les arguments « Entités associées » (secondes)",
    "min-allowed-scheduled-update-interval-range": "La valeur minimale de l’intervalle de mise à jour autorisé ne peut pas être négative",
    "min-allowed-deduplication-interval": "Intervalle minimal de déduplication autorisé (secondes)",
    "min-allowed-deduplication-interval-range": "La valeur minimale de l’intervalle de déduplication autorisé ne peut pas être négative",
    "min-allowed-deduplication-interval-required": "L’intervalle minimal de déduplication autorisé est requis",
    "intermediate-aggregation-interval": "Intervalle d’agrégation intermédiaire (secondes)",
    "intermediate-aggregation-interval-range": "La valeur de l’intervalle d’agrégation intermédiaire ne peut pas être inférieure à « 1 »",
    "intermediate-aggregation-interval-required": "L’intervalle d’agrégation intermédiaire est requis",
    "reevaluation-check-interval": "Intervalle de vérification de la réévaluation (secondes)",
    "reevaluation-check-interval-range": "La valeur de l’intervalle de vérification de la réévaluation ne peut pas être inférieure à « 1 »",
    "reevaluation-check-interval-required": "L’intervalle de vérification de la réévaluation est requis",
    "alarms-reevaluation-interval": "Intervalle de réévaluation des alarmes (secondes)",
    "alarms-reevaluation-interval-range": "La valeur de l’intervalle de réévaluation des alarmes ne peut pas être inférieure à « 1 »",
    "alarms-reevaluation-interval-required": "L’intervalle de réévaluation des alarmes est requis",
    "min-allowed-aggregation-interval": "Intervalle minimal d’agrégation autorisé (secondes)",
    "min-allowed-aggregation-interval-range": "La valeur minimale de l’intervalle d’agrégation autorisé ne peut pas être négative",
    "min-allowed-aggregation-interval-required": "L’intervalle minimal d’agrégation autorisé est requis",
    "min-allowed-scheduled-update-interval-required": "La valeur minimale de l’intervalle de mise à jour autorisé est requise",
    "max-state-size": "Taille maximale de l'état (en Ko)",
    "max-state-size-range": "La taille maximale ne peut pas être négative",
    "max-state-size-required": "La taille maximale de l'état est requise",
    "max-value-argument-size": "Taille maximale d'un argument de valeur unique (en Ko)",
    "max-value-argument-size-range": "La taille maximale ne peut pas être négative",
    "max-value-argument-size-required": "La taille maximale de la valeur est requise",
    "max-transport-messages": "Nombre maximal de messages de transport",
    "max-transport-messages-required": "Le nombre maximal de messages de transport est requis.",
    "max-transport-messages-range": "Le nombre maximal de messages de transport ne peut pas être négatif",
    "max-transport-data-points": "Nombre maximal de points de données de transport",
    "max-transport-data-points-required": "Le nombre maximal de points de données est requis.",
    "max-transport-data-points-range": "Le nombre maximal de points de données ne peut pas être négatif",
    "max-r-e-executions": "Nombre maximal d'exécutions du moteur de règles",
    "max-r-e-executions-required": "Le nombre d'exécutions du moteur de règles est requis.",
    "max-r-e-executions-range": "Le nombre d'exécutions ne peut pas être négatif",
    "max-j-s-executions": "Nombre maximal d'exécutions JavaScript",
    "max-j-s-executions-required": "Le nombre maximal d'exécutions JavaScript est requis.",
    "max-j-s-executions-range": "Le nombre maximal d'exécutions JavaScript ne peut pas être négatif",
    "max-tbel-executions": "Nombre maximal d'exécutions TBEL",
    "max-tbel-executions-required": "Le nombre maximal d'exécutions TBEL est requis.",
    "max-tbel-executions-range": "Le nombre maximal d'exécutions TBEL ne peut pas être négatif",
    "max-d-p-storage-days": "Nombre maximal de jours de stockage des points de données",
    "max-d-p-storage-days-required": "Le nombre de jours est requis.",
    "max-d-p-storage-days-range": "Le nombre ne peut pas être négatif",
    "default-storage-ttl-days": "Durée de vie par défaut du stockage (en jours)",
    "default-storage-ttl-days-required": "La durée par défaut est requise.",
    "default-storage-ttl-days-range": "La durée ne peut pas être négative",
    "alarms-ttl-days": "Durée de vie des alarmes (en jours)",
    "alarms-ttl-days-required": "La durée de vie des alarmes est requise",
    "alarms-ttl-days-days-range": "La durée ne peut pas être négative",
    "rpc-ttl-days": "Durée de vie RPC (en jours)",
    "rpc-ttl-days-required": "La durée de vie RPC est requise",
    "rpc-ttl-days-days-range": "La durée ne peut pas être négative",
    "queue-stats-ttl-days": "Durée de vie des statistiques de file d'attente",
    "queue-stats-ttl-days-required": "La durée est requise",
    "queue-stats-ttl-days-range": "La durée ne peut pas être négative",
    "rule-engine-exceptions-ttl-days": "Durée de vie des exceptions du moteur de règles",
    "rule-engine-exceptions-ttl-days-required": "La durée est requise",
    "rule-engine-exceptions-ttl-days-range": "La durée ne peut pas être négative",
    "max-rule-node-executions-per-message": "Nombre maximum d'exécutions de nœud de règle par message",
    "max-rule-node-executions-per-message-required": "Le nombre maximum d'exécutions de nœud de règle par message est requis.",
    "max-rule-node-executions-per-message-range": "Le nombre maximum d'exécutions de nœud de règle par message ne peut pas être négatif",
    "max-emails": "Nombre maximum d'e-mails envoyés",
    "max-emails-required": "Le nombre maximum d'e-mails envoyés est requis.",
    "max-emails-range": "Le nombre maximum d'e-mails envoyés ne peut pas être négatif",
    "sms-enabled": "SMS activé",
    "max-sms": "Nombre maximum de SMS envoyés",
    "max-sms-required": "Le nombre maximum de SMS envoyés est requis.",
    "max-sms-range": "Le nombre maximum de SMS envoyés ne peut pas être négatif",
    "max-created-alarms": "Nombre maximum d'alarmes créées",
    "max-created-alarms-required": "Le nombre maximum d'alarmes créées est requis.",
    "max-created-alarms-range": "Le nombre maximum d'alarmes créées ne peut pas être négatif",
    "no-queue": "Aucune file d'attente configurée",
    "add-queue": "Ajouter une file d'attente",
    "queues-with-count": "Files d'attente ({{count}})",
    "tenant-rest-limits": "Requêtes REST pour le locataire",
    "customer-rest-limits": "Requêtes REST pour le client",
    "incorrect-pattern-for-rate-limits": "Le format est une liste séparée par des virgules de paires de capacité et de période (en secondes) avec un deux-points entre, par exemple 100:1,2000:60",
    "too-small-value-zero": "La valeur doit être supérieure à 0",
    "too-small-value-one": "La valeur doit être supérieure à 1",
    "queue-size-is-limited-by-system-configuration": "La taille de la file d'attente est également limitée par la configuration du système.",
    "cassandra-write-tenant-core-limits-configuration": "Requêtes d'écriture Cassandra API REST",
    "cassandra-read-tenant-core-limits-configuration": "Requêtes de lecture Cassandra API REST et WS télémétrie",
    "cassandra-write-tenant-rule-engine-limits-configuration": "Requêtes d'écriture Cassandra moteur de règles télémétrie",
    "cassandra-read-tenant-rule-engine-limits-configuration": "Requêtes de lecture Cassandra moteur de règles télémétrie",
    "ws-limit-max-sessions-per-tenant": "Nombre maximal de sessions par locataire",
    "ws-limit-max-sessions-per-customer": "Nombre maximal de sessions par client",
    "ws-limit-max-sessions-per-regular-user": "Nombre maximal de sessions par utilisateur régulier",
    "ws-limit-max-sessions-per-public-user": "Nombre maximal de sessions par utilisateur public",
    "ws-limit-queue-per-session": "Taille maximale de la file de messages par session",
    "ws-limit-max-subscriptions-per-tenant": "Nombre maximal d’abonnements par locataire",
    "ws-limit-max-subscriptions-per-customer": "Nombre maximal d’abonnements par client",
    "ws-limit-max-subscriptions-per-regular-user": "Nombre maximal d’abonnements par utilisateur régulier",
    "ws-limit-max-subscriptions-per-public-user": "Nombre maximal d’abonnements par utilisateur public",
    "ws-limit-updates-per-session": "Mises à jour WS par session",
    "relation-search-entity-limit": "Limite de recherche d’entités par relation",
    "relation-search-entity-limit-hint": "Limite le nombre d’entités résolues au dernier niveau du chemin de relation. S’applique aux arguments « Entités associées » et aux champs de propagation.",
    "relation-search-entity-limit-required": "La limite de recherche d’entités par relation est requise.",
    "relation-search-entity-limit-range": "La limite de recherche d’entités par relation ne peut pas être inférieure à « 1 »",
    "rate-limits": {
      "add-limit": "Ajouter une limite",
      "and-also-less-than": "et aussi inférieur à",
      "advanced-settings": "Paramètres avancés",
      "edit-limit": "Modifier la limite",
      "calculated-field-debug-event-rate-limit": "Événements de débogage des champs calculés",
      "edit-calculated-field-debug-event-rate-limit": "Modifier les limites de taux des événements de débogage des champs calculés",
      "edit-transport-tenant-msg-title": "Modifier les limites de taux des messages de transport pour le locataire",
      "edit-transport-tenant-telemetry-msg-title": "Modifier les limites de taux des messages de télémétrie de transport pour le locataire",
      "edit-transport-tenant-telemetry-data-points-title": "Modifier les limites de taux des points de données de télémétrie de transport pour le locataire",
      "edit-transport-device-msg-title": "Modifier les limites de taux des messages de transport pour l'appareil",
      "edit-transport-device-telemetry-msg-title": "Modifier les limites de taux des messages de télémétrie de transport pour l'appareil",
      "edit-transport-device-telemetry-data-points-title": "Modifier les limites de taux des points de données de télémétrie de transport pour l'appareil",
      "edit-transport-gateway-msg-title": "Modifier les limites de taux des messages de transport pour la passerelle",
      "edit-transport-gateway-telemetry-msg-title": "Modifier les limites de taux des messages de télémétrie de transport pour la passerelle",
      "edit-transport-gateway-telemetry-data-points-title": "Modifier les limites de taux des points de données de télémétrie de transport pour la passerelle",
      "edit-transport-gateway-device-msg-title": "Modifier les limites de taux des messages de transport pour l'appareil de la passerelle",
      "edit-transport-gateway-device-telemetry-msg-title": "Modifier les limites de taux des messages de télémétrie de transport pour l'appareil de la passerelle",
      "edit-transport-gateway-device-telemetry-data-points-title": "Modifier les limites de taux des points de données de télémétrie de transport pour l'appareil de la passerelle",
      "edit-tenant-rest-limits-title": "Modifier les limites des requêtes REST pour le locataire",
      "edit-customer-rest-limits-title": "Modifier les limites des requêtes REST pour le client",
      "edit-ws-limit-updates-per-session-title": "Modifier les limites des mises à jour WS par session",
      "edit-cassandra-write-tenant-core-limits-configuration": "Modifier les requêtes d'écriture Cassandra de l'API REST",
      "edit-cassandra-read-tenant-core-limits-configuration": "Modifier les requêtes de lecture Cassandra de l'API REST et de la télémétrie WS",
      "edit-cassandra-write-tenant-rule-engine-limits-configuration": "Modifier les requêtes d'écriture Cassandra de la télémétrie du moteur de règles",
      "edit-cassandra-read-tenant-rule-engine-limits-configuration": "Modifier les requêtes de lecture Cassandra de la télémétrie du moteur de règles",
      "edit-tenant-entity-export-rate-limit-title": "Modifier les limites de taux de création d'entités",
      "edit-tenant-entity-import-rate-limit-title": "Modifier les limites de taux de chargement d'entités",
      "edit-tenant-notification-request-rate-limit-title": "Modifier les limites de taux des demandes de notification",
      "edit-tenant-notification-requests-per-rule-rate-limit-title": "Modifier les limites de taux des demandes de notification par règle de notification",
      "edit-edge-events-rate-limit": "Modifier les limites des événements Edge",
      "edit-edge-events-per-edge-rate-limit": "Modifier les limites des événements Edge par instance",
      "edge-events-rate-limit": "Événements Edge",
      "edge-events-per-edge-rate-limit": "Événements Edge par instance",
      "edit-edge-uplink-messages-rate-limit": "Modifier les limites des messages montants Edge",
      "edit-edge-uplink-messages-per-edge-rate-limit": "Modifier les messages montants Edge conformément aux limites de débit Edge",
      "edge-uplink-messages-rate-limit": "Messages montants Edge",
      "edge-uplink-messages-per-edge-rate-limit": "Messages montants Edge par instance",
      "messages-per": "messages par",
      "not-set": "Non défini",
      "number-of-messages": "Nombre de messages",
      "number-of-messages-required": "Le nombre de messages est requis.",
      "number-of-messages-min": "La valeur minimale est 1.",
      "preview": "Aperçu",
      "per-seconds": "Par secondes",
      "per-seconds-required": "Le taux de temps est requis.",
      "per-seconds-min": "La valeur minimale est 1.",
      "per-seconds-duplicate": "Taux de temps dupliqué. Chaque intervalle de temps doit être unique.",
      "rate-limits": "Limites de taux",
      "remove-limit": "Supprimer la limite",
      "transport-tenant-msg": "Messages de transport pour le locataire",
      "transport-tenant-telemetry-msg": "Messages de télémétrie de transport pour le locataire",
      "transport-tenant-telemetry-data-points": "Points de données de télémétrie de transport pour le locataire",
      "transport-device-msg": "Messages de transport pour l'appareil",
      "transport-device-telemetry-msg": "Messages de télémétrie de transport pour l'appareil",
      "transport-device-telemetry-data-points": "Points de données de télémétrie de transport pour l'appareil",
      "transport-gateway-msg": "Messages de transport pour la passerelle",
      "transport-gateway-telemetry-msg": "Messages de télémétrie de transport pour la passerelle",
      "transport-gateway-telemetry-data-points": "Points de données de télémétrie de transport pour la passerelle",
      "transport-gateway-device-msg": "Messages de transport pour l'appareil de la passerelle",
      "transport-gateway-device-telemetry-msg": "Messages de télémétrie de transport pour l'appareil de la passerelle",
      "transport-gateway-device-telemetry-data-points": "Points de données de télémétrie de transport pour l'appareil de la passerelle",
      "sec": "sec"
    }
  },
  "timeinterval": {
    "seconds-interval": "{ seconds, plural, =1 {1 seconde} other {# secondes} }",
    "minutes-interval": "{ minutes, plural, =1 {1 minute} other {# minutes} }",
    "hours-interval": "{ hours, plural, =1 {1 heure} other {# heures} }",
    "days-interval": "{ days, plural, =1 {1 jour} other {# jours} }",
    "days": "Jours",
    "hours": "Heures",
    "minutes": "Minutes",
    "seconds": "Secondes",
    "advanced": "Avancé",
    "custom": "Personnalisé",
    "predefined": {
      "yesterday": "Hier",
      "day-before-yesterday": "Avant-hier",
      "this-day-last-week": "Ce jour la semaine dernière",
      "previous-week": "Semaine précédente (dim. - sam.)",
      "previous-week-iso": "Semaine précédente (lun. - dim.)",
      "previous-month": "Mois précédent",
      "previous-quarter": "Trimestre précédent",
      "previous-half-year": "Semestre précédent",
      "previous-year": "Année précédente",
      "current-hour": "Heure en cours",
      "current-day": "Jour en cours",
      "current-day-so-far": "Jour en cours (jusqu'à présent)",
      "current-week": "Semaine en cours (dim. - sam.)",
      "current-week-iso": "Semaine en cours (lun. - dim.)",
      "current-week-so-far": "Semaine en cours (jusqu'à présent, dim. - sam.)",
      "current-week-iso-so-far": "Semaine en cours (jusqu'à présent, lun. - dim.)",
      "current-month": "Mois en cours",
      "current-month-so-far": "Mois en cours (jusqu'à présent)",
      "current-quarter": "Trimestre en cours",
      "current-quarter-so-far": "Trimestre en cours (jusqu'à présent)",
      "current-half-year": "Semestre en cours",
      "current-half-year-so-far": "Semestre en cours (jusqu'à présent)",
      "current-year": "Année en cours",
      "current-year-so-far": "Année en cours (jusqu'à présent)"
    },
    "type": {
      "week": "Semaine (dim. - sam.)",
      "week-iso": "Semaine (lun. - dim.)",
      "month": "Mois",
      "quarter": "Trimestre"
    }
  },
  "timeunit": {
    "milliseconds": "Millisecondes",
    "seconds": "Secondes",
    "minutes": "Minutes",
    "hours": "Heures",
    "days": "Jours"
  },
  "timewindow": {
    "timewindow": "Fenêtre temporelle",
    "timewindow-settings": "Paramètres de la fenêtre temporelle",
    "years": "{ years, plural, =1 { année } other {# années } }",
    "years-short": "{{ years }}a",
    "months": "{ months, plural, =1 { mois } other {# mois } }",
    "months-short": "{{ months }}M",
    "weeks": "{ weeks, plural, =1 { semaine } other {# semaines } }",
    "weeks-short": "{{ weeks }}s",
    "days": "{ days, plural, =1 { jour } other {# jours } }",
    "days-short": "{{ days }}j",
    "hours": "{ hours, plural, =0 { heure } =1 {1 heure } other {# heures } }",
    "hr": "{{ hr }} h",
    "hr-short": "{{ hr }}h",
    "minutes": "{ minutes, plural, =0 { minute } =1 {1 minute } other {# minutes } }",
    "min": "{{ min }} min",
    "min-short": "{{ min }}m",
    "seconds": "{ seconds, plural, =0 { seconde } =1 {1 seconde } other {# secondes } }",
    "sec": "{{ sec }} sec",
    "sec-short": "{{ sec }}s",
    "short": {
      "years": "{ years, plural, =1 {1 an } other {# ans } }",
      "days": "{ days, plural, =1 {1 jour } other {# jours } }",
      "hours": "{ hours, plural, =1 {1 heure } other {# heures } }",
      "minutes": "{{minutes}} min ",
      "seconds": "{{seconds}} sec "
    },
    "realtime": "Temps réel",
    "history": "Historique",
    "last-prefix": "dernier",
    "period": "du {{ startTime }} au {{ endTime }}",
    "edit": "Modifier la fenêtre temporelle",
    "date-range": "Plage de dates",
    "for-all-time": "Tout le temps",
    "last": "Dernier",
    "time-period": "Période de temps",
    "hide": "Cacher",
    "interval": "Intervalle",
    "just-now": "À l’instant",
    "just-now-lower": "à l’instant",
    "ago": "il y a",
    "style": "Style de la fenêtre temporelle",
    "icon": "Icône",
    "icon-position": "Position de l’icône",
    "icon-position-left": "Gauche",
    "icon-position-right": "Droite",
    "font": "Police",
    "color": "Couleur",
    "displayTypePrefix": "Afficher le préfixe Temps réel / Historique",
    "preview": "Aperçu",
    "relative": "Relatif",
    "range": "Intervalle",
    "hide-timewindow-section": "Cacher la section de la fenêtre temporelle aux utilisateurs finaux",
    "hide-last-interval": "Cacher le dernier intervalle aux utilisateurs finaux",
    "hide-relative-interval": "Cacher l’intervalle relatif aux utilisateurs finaux",
    "hide-fixed-interval": "Cacher l’intervalle fixe aux utilisateurs finaux",
    "hide-aggregation": "Cacher l’agrégation aux utilisateurs finaux",
    "hide-group-interval": "Cacher l’intervalle de regroupement aux utilisateurs finaux",
    "hide-max-values": "Cacher les valeurs max aux utilisateurs finaux",
    "hide-timezone": "Cacher le fuseau horaire aux utilisateurs finaux",
    "disable-custom-interval": "Désactiver la sélection d’intervalle personnalisé",
    "edit-aggregation-functions-list": "Modifier la liste des fonctions d’agrégation",
    "edit-aggregation-functions-list-hint": "La liste des options disponibles peut être spécifiée.",
    "allowed-aggregation-functions": "Fonctions d’agrégation autorisées",
    "edit-intervals-list": "Modifier la liste des intervalles",
    "allowed-agg-intervals": "Intervalles de regroupement",
    "default-agg-interval": "Intervalle de regroupement par défaut",
    "edit-intervals-list-hint": "Il est possible de spécifier la liste des options d’intervalle disponibles.",
    "edit-grouping-intervals-list-hint": "Il est possible de configurer la liste des intervalles de regroupement et l’intervalle par défaut.",
    "all": "Tous",
    "save-current-settings-as-default": "Enregistrer les paramètres actuels comme fenêtre temporelle par défaut",
    "hide-option-from-end-users": "Masquer l’option aux utilisateurs finaux"
  },
  "tooltip": {
    "trigger": "Déclencheur",
    "trigger-point": "Point",
    "trigger-axis": "Axe",
    "label": "Étiquette",
    "value": "Valeur",
    "date": "Date",
    "show-date-time-interval": "Afficher l'intervalle de date et d'heure",
    "show-date-time-interval-hint": "Afficher l'intervalle de date et d'heure selon l'agrégation des données.",
    "hide-zero-tooltip-values": "Masquer les valeurs nulles",
    "show-stack-total": "Afficher la valeur totale en mode empilé",
    "background-color": "Couleur de fond",
    "background-blur": "Flou de fond"
  },
  "unit": {
    "set-unit-conversion": "Définir la conversion d'unités",
    "unit-settings": {
      "unit-settings": "Paramètres des unités",
      "source-unit": "Unité source",
      "source-unit-hint": "Il s'agit de l'unité de la valeur stockée. L'unité dont vous effectuez la conversion. Entrez le symbole utilisé par vos données sources (par exemple, m, km, ft, in).",
      "target-metric-unit": "Unité métrique cible",
      "target-metric-unit-hint": "Choisissez l'unité métrique (SI) dans laquelle vous souhaitez convertir votre valeur source (par exemple, cm, mm, km).",
      "target-imperial-unit": "Unité impériale cible",
      "target-imperial-unit-hint": "Choisissez l'unité impériale dans laquelle vous souhaitez convertir votre valeur source (par exemple, in, ft, yd).",
      "target-hybrid-unit": "Unité hybride cible",
      "target-hybrid-unit-hint": "Choisissez l'unité hybride dans laquelle vous souhaitez convertir votre valeur source (par exemple, cm, in, km). Les unités hybrides combinent les unités métriques ou impériales.",
      "enable-unit-conversion": "Activer la conversion d'unités",
      "enable-unit-conversion-hint": "Activez cette option pour activer la conversion. Si désactivé, votre valeur source passera inchangée. Désactivé s'il n'y a qu'une seule unité dans le groupe de mesures correspondant (par exemple, flux lumineux, AQI)."
    },
    "unit-system": "Système d'unités",
    "unit-system-type": {
      "AUTO": "Automatique",
      "METRIC": "Métrique",
      "IMPERIAL": "Impérial",
      "HYBRID": "Hybride"
    },
    "measures": {
      "absorbed-dose-rate": "Taux de dose absorbée",
      "acceleration": "Accélération",
      "acidity": "Acidité",
      "air-quality-index": "Indice de qualité de l'air",
      "amount-of-substance": "Quantité de substance",
      "angle": "Angle",
      "angular-acceleration": "Accélération angulaire",
      "area": "Surface",
      "area-density": "Densité de surface",
      "capacitance": "Capacité",
      "catalytic-activity": "Activité catalytique",
      "catalytic-concentration": "Concentration catalytique",
      "charge": "Charge",
      "current-density": "Densité de courant",
      "data-transfer-rate": "Taux de transfert de données",
      "density": "Densité",
      "digital": "Numérique",
      "dimension-ratio": "Rapport dimensionnel",
      "dynamic-viscosity": "Viscosité dynamique",
      "earthquake-magnitude": "Magnitude du séisme",
      "electric-charge-density": "Densité de charge électrique",
      "electric-current": "Courant électrique",
      "electric-dipole-moment": "Moment dipolaire électrique",
      "electric-field-strength": "Intensité du champ électrique",
      "electric-flux": "Flux électrique",
      "electric-permittivity": "Permittivité électrique",
      "electric-polarizability": "Polarizabilité électrique",
      "electrical-conductance": "Conductance électrique",
      "electrical-conductivity": "Conductivité électrique",
      "energy": "Énergie",
      "energy-density": "Densité d'énergie",
      "force": "Force",
      "frequency": "Fréquence",
      "fuel-efficiency": "Efficacité énergétique",
      "heat-capacity": "Capacité thermique",
      "illuminance": "Éclairement",
      "inductance": "Inductance",
      "kinematic-viscosity": "Viscosité cinématique",
      "length": "Longueur",
      "light-exposure": "Exposition à la lumière",
      "linear-charge-density": "Densité de charge linéaire",
      "logarithmic-ratio": "Rapport logarithmique",
      "luminous-efficacy": "Efficacité lumineuse",
      "luminous-flux": "Flux lumineux",
      "luminous-intensity": "Intensité lumineuse",
      "magnetic-field-gradient": "Gradient du champ magnétique",
      "magnetic-flux": "Flux magnétique",
      "magnetic-flux-density": "Densité de flux magnétique",
      "magnetic-moment": "Moment magnétique",
      "magnetic-permeability": "Perméabilité magnétique",
      "mass": "Masse",
      "mass-fraction": "Fraction massique",
      "molar-concentration": "Concentration molaire",
      "molar-energy": "Énergie molaire",
      "molar-heat-capacity": "Capacité thermique molaire",
      "molar-mass": "Masse molaire",
      "number-concentration": "Concentration numérique",
      "parts-per-million": "Parties par million",
      "power": "Puissance",
      "power-density": "Densité de puissance",
      "pressure": "Pression",
      "radiance": "Radiance",
      "radiant-intensity": "Intensité radiant",
      "radiation-dose": "Dose de radiation",
      "radioactive-decay": "Désintégration radioactive",
      "radioactivity": "Radioactivité",
      "radioactivity-concentration": "Concentration en radioactivité",
      "reciprocal-length": "Longueur réciproque",
      "resistance": "Résistance",
      "reynolds-number": "Nombre de Reynolds",
      "signal-level": "Niveau de signal",
      "solid-angle": "Angle solide",
      "specific-energy": "Énergie spécifique",
      "specific-heat-capacity": "Capacité thermique spécifique",
      "specific-humidity": "Humidité spécifique",
      "specific-volume": "Volume spécifique",
      "speed": "Vitesse",
      "surface-charge-density": "Densité de charge de surface",
      "surface-tension": "Tension de surface",
      "temperature": "Température",
      "thermal-conductivity": "Conductivité thermique",
      "time": "Temps",
      "torque": "Couple",
      "turbidity": "Turbidité",
      "voltage": "Tension",
      "volume": "Volume",
      "volume-flow": "Débit volumétrique"
    },
    "millimeter": "Millimètre",
    "centimeter": "Centimètre",
    "decimeter": "Décimètre",
    "angstrom": "Angström",
    "nanometer": "Nanomètre",
    "micrometer": "Micromètre",
    "meter": "Mètre",
    "kilometer": "Kilomètre",
    "inch": "Pouce",
    "foot": "Pied",
    "foot-us": "Pied (enquête US)",
    "yard": "Jarde",
    "mile": "Mille",
    "nautical-mile": "Mille nautique",
    "astronomical-unit": "Unité astronomique",
    "reciprocal-metre": "Mètre réciproque",
    "meter-per-meter": "Mètre par mètre",
    "steradian": "Stéradian",
    "thou": "Thou",
    "barleycorn": "Barleycorn",
    "hand": "Main",
    "chain": "Chaîne",
    "furlong": "Furlong",
    "league": "Lieue",
    "fathom": "Brasse",
    "cable": "Câble",
    "link": "Maillon",
    "rod": "Perche",
    "nanogram": "Nanogramme",
    "microgram": "Microgramme",
    "milligram": "Milligramme",
    "gram": "Gramme",
    "kilogram": "Kilogramme",
    "tonne": "Tonne",
    "ounce": "Once",
    "pound": "Livre",
    "stone": "Stone",
    "hundredweight-count": "Quintal",
    "short-tons": "Tonnes courtes",
    "dalton": "Dalton",
    "grain": "Grain",
    "drachm": "Drachme",
    "quarter": "Quart",
    "slug": "Slug",
    "carat": "Carat",
    "cubic-millimeter": "Millimètre cube",
    "cubic-centimeter": "Centimètre cube",
    "cubic-meter": "Mètre cube",
    "cubic-kilometer": "Kilomètre cube",
    "microliter": "Microlitre",
    "milliliter": "Millilitre",
    "liter": "Litre",
    "hectoliter": "Hectolitre",
    "cubic-inch": "Pouce cube",
    "cubic-foot": "Pied cube",
    "cubic-yard": "Yard cube",
    "fluid-ounce": "Once fluide",
    "fluid-ounce-per-second": "Once fluide par seconde",
    "pint": "Pinte",
    "quart": "Quart",
    "gallon": "Gallon",
    "oil-barrels": "Baril de pétrole",
    "cubic-meter-per-kilogram": "Mètre cube par kilogramme",
    "gill": "Gill",
    "hogshead": "Hogshead",
    "teaspoon": "Cuillère à café",
    "tablespoon": "Cuillère à soupe",
    "cup": "Tasse",
    "celsius": "Celsius",
    "kelvin": "Kelvin",
    "rankine": "Rankine",
    "fahrenheit": "Fahrenheit",
    "percent": "Pourcent",
    "meter-per-second": "Mètre par seconde",
    "kilometer-per-hour": "Kilomètre par heure",
    "foot-per-second": "Pied par seconde",
    "foot-per-minute": "Pied par minute",
    "mile-per-hour": "Mille par heure",
    "knot": "Nœud",
    "inch-per-second": "Pouce par seconde",
    "inch-per-hour": "Pouce par heure",
    "millimeters-per-minute": "Millimètres par minute",
    "meter-per-minute": "Mètre par minute",
    "kilometer-per-hour-squared": "Kilomètre par heure carrée",
    "foot-per-second-squared": "Pied par seconde carrée",
    "pascal": "Pascal",
    "kilopascal": "Kilopascal",
    "megapascal": "Mégapascal",
    "gigapascal": "Gigapascal",
    "millibar": "Millibar",
    "bar": "Bar",
    "kilobar": "Kilobar",
    "newton": "Newton",
    "newton-meter": "Newton-mètre",
    "foot-pounds": "Pieds-livres",
    "inch-pounds": "Pouces-livres",
    "newton-per-meter": "Newton par mètre",
    "atmospheres": "Atmosphères",
    "pounds-per-square-inch": "Livres par pouce carré",
    "kilopound-per-square-inch": "Kilolivre par pouce carré",
    "torr": "Torr",
    "inches-of-mercury": "Pouces de mercure",
    "pascal-per-square-meter": "Pascal par mètre carré",
    "pound-per-square-inch": "Livre par pouce carré",
    "newton-per-square-meter": "Newton par mètre carré",
    "kilogram-force-per-square-meter": "Force de kilogramme par mètre carré",
    "pascal-per-square-centimeter": "Pascal par centimètre carré",
    "ton-force-per-square-inch": "Force en tonne par pouce carré",
    "kilonewton-per-square-meter": "Kilonewton par mètre carré",
    "newton-per-square-millimeter": "Newton par millimètre carré",
    "microjoule": "Microjoule",
    "millijoule": "Millijoule",
    "joule": "Joule",
    "kilojoule": "Kilojoule",
    "megajoule": "Mégajoule",
    "gigajoule": "Gigajoule",
    "watt-hour": "Watt-heure",
    "watt-minute": "Watt-minute",
    "kilowatt-hour": "Kilowatt-heure",
    "milliwatt-hour": "Milliwatt-heure",
    "megawatt-hour": "Mégawatt-heure",
    "gigawatt-hour": "Gigawatt-heure",
    "electron-volts": "Volts électroniques",
    "joules-per-coulomb": "Joules par coulomb",
    "british-thermal-unit": "Unité thermique britannique",
    "thousand-british-thermal-unit": "Mille unités thermiques britanniques",
    "million-british-thermal-unit": "Million d'unités thermiques britanniques",
    "foot-pound": "Pied-livre",
    "calorie": "Calorie",
    "small-calorie": "Petite calorie",
    "kilocalorie": "Kilocalorie",
    "joule-per-kelvin": "Joule par kelvin",
    "joule-per-kilogram-kelvin": "Joule par kilogramme-kelvin",
    "joule-per-kilogram": "Joule par kilogramme",
    "watt-per-meter-kelvin": "Watt par mètre-kelvin",
    "joule-per-cubic-meter": "Joule par mètre cube",
    "therm": "Thermie",
    "electric-dipole-moment": "Moment dipolaire électrique",
    "magnetic-dipole-moment": "Moment dipolaire magnétique",
    "debye": "Debye",
    "coulomb-per-square-meter-per-volt": "Coulomb par mètre carré par volt",
    "milliwatt": "Milliwatt",
    "microwatt": "Microwatt",
    "watt": "Watt",
    "kilowatt": "Kilowatt",
    "megawatt": "Mégawatt",
    "gigawatt": "Gigawatt",
    "metric-horsepower": "Cheval-vapeur métrique",
    "milliwatt-per-square-centimeter": "Milliwatt par centimètre carré",
    "watt-per-square-centimeter": "Watt par centimètre carré",
    "kilowatt-per-square-centimeter": "Kilowatt par centimètre carré",
    "milliwatt-per-square-meter": "Milliwatt par mètre carré",
    "watt-per-square-meter": "Watt par mètre carré",
    "kilowatt-per-square-meter": "Kilowatt par mètre carré",
    "watt-per-square-inch": "Watt par pouce carré",
    "kilowatt-per-square-inch": "Kilowatt par pouce carré",
    "horsepower": "Chevaux-vapeur",
    "btu-per-hour": "Unités thermiques britanniques par heure",
    "btu-per-second": "Unités thermiques britanniques par seconde",
    "btu-per-day": "Unités thermiques britanniques par jour",
    "mbtu-per-hour": "Mille unités thermiques britanniques par heure",
    "mbtu-per-second": "Mille unités thermiques britanniques par seconde",
    "mbtu-per-day": "Mille unités thermiques britanniques par jour",
    "mmbtu-per-hour": "Million d'unités thermiques britanniques par heure",
    "mmbtu-per-second": "Million d'unités thermiques britanniques par seconde",
    "mmbtu-per-day": "Million d'unités thermiques britanniques par jour",
    "foot-pound-per-second": "Pied-livre par seconde",
    "coulomb": "Coulomb",
    "millicoulomb": "Millicoulomb",
    "microcoulomb": "Microcoulomb",
    "nanocoulomb": "Nanocoulomb",
    "picocoulomb": "Picocoulomb",
    "coulomb-per-meter": "Coulomb par mètre",
    "coulomb-per-cubic-meter": "Coulomb par mètre cube",
    "coulomb-per-square-meter": "Coulomb par mètre carré",
    "square-millimeter": "Millimètre carré",
    "square-centimeter": "Centimètre carré",
    "square-meter": "Mètre carré",
    "hectare": "Hectare",
    "square-kilometer": "Kilomètre carré",
    "square-inch": "Pouce carré",
    "square-foot": "Pied carré",
    "square-yard": "Yard carré",
    "acre": "Acre",
    "square-mile": "Mille carré",
    "are": "Are",
    "barn": "Barn",
    "circular-inch": "Pouce circulaire",
    "milliampere-hour": "Milliampère-heure",
    "ampere-hours": "Ampère-heures",
    "kiloampere-hours": "Kiloampère-heures",
    "nanoampere": "Nanoampère",
    "picoampere": "Picoampère",
    "microampere": "Microampère",
    "milliampere": "Milliampère",
    "ampere": "Ampère",
    "kiloampere": "Kiloampère",
    "megaampere": "Mégaampère",
    "gigaampere": "Gigaampère",
    "microampere-per-square-centimeter": "Microampère par centimètre carré",
    "ampere-per-square-meter": "Ampère par mètre carré",
    "ampere-per-meter": "Ampère par mètre",
    "oersted": "Oersted",
    "bohr-magneton": "Magnéton de Bohr",
    "ampere-meter-squared": "Ampère-mètre carré",
    "nanovolt": "Nanovolt",
    "picovolt": "Picovolt",
    "millivolt": "Millivolt",
    "microvolt": "Microvolt",
    "volt": "Volt",
    "kilovolt": "Kilovolt",
    "megavolt": "Mégavolt",
    "dbmV": "Décibel volt",
    "dbm": "Décibel-milliwatts",
    "volt-meter": "Volt-mètre",
    "kilovolt-meter": "Kilovolt-mètre",
    "megavolt-meter": "Mégavolt-mètre",
    "microvolt-meter": "Microvolt-mètre",
    "millivolt-meter": "Millivolt-mètre",
    "nanovolt-meter": "Nanovolt-mètre",
    "ohm": "Ohm",
    "microohm": "Microohm",
    "milliohm": "Milliohm",
    "kilohm": "Kilohm",
    "megohm": "Mégohm",
    "gigohm": "Gigoohm",
    "millihertz": "Millihertz",
    "hertz": "Hertz",
    "kilohertz": "Kilohertz",
    "megahertz": "Mégahertz",
    "gigahertz": "Gigahertz",
    "terahertz": "Terahertz",
    "rpm": "Révolutions par minute",
    "candela-per-square-meter": "Candela par mètre carré",
    "candela": "Candela",
    "lumen": "Lumen",
    "lux": "Lux",
    "foot-candle": "Bougie-pied",
    "lumen-per-square-meter": "Lumen par mètre carré",
    "lux-second": "Lux-seconde",
    "lumen-second": "Lumen-seconde",
    "lumens-per-watt": "Lumens par watt",
    "mole": "Mole",
    "nanomole": "Nanomole",
    "micromole": "Micromole",
    "millimole": "Millimole",
    "kilomole": "Kilomole",
    "mole-per-cubic-meter": "Mole par mètre cube",
    "rssi": "Indicateur de la puissance du signal reçu",
    "ppm": "Parties par million",
    "ppb": "Parties par milliard",
    "micrograms-per-cubic-meter": "Microgrammes par mètre cube",
    "aqi": "AQI",
    "gram-per-cubic-meter": "Gramme par mètre cube",
    "gram-per-kilogram": "Grammes par kilogramme",
    "millimeters-per-second": "Millimètres par seconde",
    "neper": "Neper",
    "bel": "Bel",
    "decibel": "Décibel",
    "meters-per-second-squared": "Mètres par seconde au carré",
    "becquerel": "Becquerel",
    "curie": "Curie",
    "gray": "Gray",
    "sievert": "Sievert",
    "roentgen": "Roentgen",
    "cps": "Comptes par seconde",
    "rad": "Rad",
    "rem": "Rem",
    "dps": "Désintégrations par seconde",
    "rutherford": "Rutherford",
    "coulombs-per-kilogram": "Coulombs par kilogramme",
    "becquerels-per-cubic-meter": "Becquerels par mètre cube",
    "curies-per-liter": "Curies par litre",
    "becquerels-per-second": "Becquerels par seconde",
    "curies-per-second": "Curies par seconde",
    "gy-per-second": "Gray par seconde",
    "watt-per-steradian": "Watt par stéradian",
    "watt-per-square-metre-steradian": "Watt par mètre carré-stéradian",
    "ph-level": "Niveau de pH",
    "turbidity": "Turbidité",
    "mg-per-liter": "Milligrammes par litre",
    "microsiemens-per-centimeter": "Microsiemens par centimètre",
    "millisiemens-per-meter": "Millisiemens par mètre",
    "siemens-per-meter": "Siemens par mètre",
    "kilogram-per-cubic-meter": "Kilogramme par mètre cube",
    "gram-per-cubic-centimeter": "Gramme par centimètre cube",
    "kilogram-per-square-meter": "Kilogramme par mètre carré",
    "milligram-per-milliliter": "Milligramme par millilitre",
    "milligram-per-cubic-meter": "Milligramme par mètre cube",
    "pound-per-cubic-foot": "Livre par pied cube",
    "ounces-per-cubic-inch": "Onces par pouce cube",
    "tons-per-cubic-yard": "Tonnes par mètre cube",
    "particle-density": "Densité des particules",
    "kilometers-per-liter": "Kilomètres par litre",
    "miles-per-gallon": "Miles par gallon",
    "liters-per-100-km": "Litres par 100 km",
    "gallons-per-mile": "Gallons par mile",
    "liters-per-hour": "Litres par heure",
    "gallons-per-hour": "Gallons par heure",
    "beats-per-minute": "Battements par minute",
    "millimeters-of-mercury": "Millimètres de mercure",
    "milligrams-per-deciliter": "Milligrammes par décilitre",
    "g-force": "Force G",
    "kilonewton": "Kilonewton",
    "kilogram-force": "Force kilogramme",
    "pound-force": "Force livre",
    "kilopound-force": "Force kilolivre",
    "dyne": "Dyne",
    "poundal": "Poundal",
    "kip": "Kip",
    "gal": "Gal",
    "gravity": "Gravité",
    "hectopascal": "Hectopascal",
    "atmosphere": "Atmosphère",
    "millibars": "Millibars",
    "inch-of-mercury": "Pouce de mercure",
    "richter-scale": "Échelle de Richter",
    "nanosecond": "Nanoseconde",
    "microsecond": "Microseconde",
    "millisecond": "Milliseconde",
    "second": "Seconde",
    "minute": "Minute",
    "hour": "Heure",
    "day": "Jour",
    "week": "Semaine",
    "month": "Mois",
    "year": "An",
    "cubic-foot-per-minute": "Pied cube par minute",
    "cubic-meters-per-hour": "Mètres cubes par heure",
    "cubic-meters-per-second": "Mètres cubes par seconde",
    "liter-per-second": "Litre par seconde",
    "liter-per-minute": "Litre par minute",
    "gallons-per-minute": "Gallons par minute",
    "cubic-foot-per-second": "Pied cube par seconde",
    "milliliters-per-minute": "Millilitres par minute",
    "cubic-decimeter-per-second": "Décimètre cube par seconde",
    "bit": "Bit",
    "byte": "Octet",
    "kilobyte": "Kilooctet",
    "megabyte": "Mégaoctet",
    "gigabyte": "Gigaoctet",
    "terabyte": "Téraoctet",
    "petabyte": "Pétaoctet",
    "exabyte": "Exaoctet",
    "zettabyte": "Zettaoctet",
    "yottabyte": "Yottaoctet",
    "bit-per-second": "Bit par seconde",
    "kilobit-per-second": "Kilobit par seconde",
    "megabit-per-second": "Mégabit par seconde",
    "gigabit-per-second": "Gigabit par seconde",
    "terabit-per-second": "Térabit par seconde",
    "byte-per-second": "Octet par seconde",
    "kilobyte-per-second": "Kilooctet par seconde",
    "megabyte-per-second": "Mégaoctet par seconde",
    "gigabyte-per-second": "Gigaoctet par seconde",
    "degree": "Degré",
    "radian": "Radian",
    "gradian": "Gradian",
    "arcminute": "Arcminute",
    "arcsecond": "Arcseconde",
    "milliradian": "Milliradian",
    "revolution": "Révolution",
    "siemens": "Siemens",
    "millisiemens": "Millisiemens",
    "microsiemens": "Microsiemens",
    "kilosiemens": "Kilosiemens",
    "megasiemens": "Mégasiemens",
    "gigasiemens": "Gigasiemens",
    "farad": "Farad",
    "millifarad": "Millifarad",
    "microfarad": "Microfarad",
    "nanofarad": "Nanofarad",
    "picofarad": "Picofarad",
    "kilofarad": "Kilofarad",
    "megafarad": "Mégafarad",
    "gigafarad": "Gigafarad",
    "terfarad": "Terafarad",
    "farad-per-meter": "Farad par mètre",
    "tesla": "Tesla",
    "gauss": "Gauss",
    "kilogauss": "Kilogauss",
    "millitesla": "Millitesla",
    "microtesla": "Microtesla",
    "nanotesla": "Nanotesla",
    "kilotesla": "Kilotesla",
    "megatesla": "Mégatesla",
    "millitesla-square-meters": "Millitesla mètres carrés",
    "gamma": "Gamma",
    "lambda": "Lambda",
    "square-meter-per-second": "Mètre carré par seconde",
    "square-centimeter-per-second": "Centimètre carré par seconde",
    "stoke": "Stoke",
    "centistokes": "Centistokes",
    "square-foot-per-second": "Pied carré par seconde",
    "square-inch-per-second": "Pouce carré par seconde",
    "pascal-second": "Pascal-seconde",
    "centipoise": "Centipoise",
    "poise": "Poise",
    "reynolds": "Reynolds",
    "pound-per-foot-hour": "Livre par pied-heure",
    "newton-second-per-square-meter": "Newton-seconde par mètre carré",
    "dyne-second-per-square-centimeter": "Dyne-seconde par centimètre carré",
    "kilogram-per-meter-second": "Kilogramme par mètre-seconde",
    "tesla-square-meters": "Tesla mètres carrés",
    "maxwell": "Maxwell",
    "tesla-per-meter": "Tesla par mètre",
    "gauss-per-centimeter": "Gauss par centimètre",
    "weber": "Weber",
    "microweber": "Microweber",
    "milliweber": "Milliweber",
    "gauss-square-centimeter": "Gauss-centimètre carré",
    "kilogauss-square-centimeter": "Kilogauss-centimètre carré",
    "henry": "Henry",
    "millihenry": "Millihenry",
    "microhenry": "Microhenry",
    "nanohenry": "Nanohenry",
    "henry-per-meter": "Henry par mètre",
    "tesla-meter-per-ampere": "Tesla mètre par ampère",
    "gauss-per-oersted": "Gauss par oersted",
    "kilogram-per-mole": "Kilogramme par mole",
    "gram-per-mole": "Gramme par mole",
    "milligram-per-mole": "Milligramme par mole",
    "joule-per-mole": "Joule par mole",
    "joule-per-mole-kelvin": "Joule par mole-kelvin",
    "millivolts-per-meter": "Millivolts par mètre",
    "volts-per-meter": "Volts par mètre",
    "kilovolts-per-meter": "Kilovolts par mètre",
    "radian-per-second": "Radian par seconde",
    "radian-per-second-squared": "Radian par seconde au carré",
    "revolutions-per-minute-per-second": "Accélération angulaire",
    "deg-per-second": "Degrés par seconde",
    "rotation-per-minute": "Rotation par minute",
    "degrees-brix": "Degrés Brix",
    "katal": "Katal",
    "katal-per-cubic-metre": "Katal par mètre cube",
    "paris-inch": "Pouce Paris"
  },
  "user": {
    "user": "Utilisateur",
    "users": "Utilisateurs",
    "customer-users": "Utilisateurs client",
    "tenant-admins": "Administrateurs locataire",
    "sys-admin": "Administrateur système",
    "tenant-admin": "Administrateur locataire",
    "customer": "Client",
    "anonymous": "Anonyme",
    "add": "Ajouter un utilisateur",
    "delete": "Supprimer l'utilisateur",
    "add-user-text": "Ajouter un nouvel utilisateur",
    "no-users-text": "Aucun utilisateur trouvé",
    "user-details": "Détails de l'utilisateur",
    "delete-user-title": "Êtes-vous sûr de vouloir supprimer l'utilisateur '{{userEmail}}' ?",
    "delete-user-text": "Attention, après confirmation, l'utilisateur et toutes les données associées seront irrécupérables.",
    "delete-users-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 utilisateur} other {# utilisateurs} } ?",
    "delete-users-action-title": "Supprimer { count, plural, =1 {1 utilisateur} other {# utilisateurs} }",
    "delete-users-text": "Attention, après confirmation, tous les utilisateurs sélectionnés seront supprimés et toutes les données associées seront irrécupérables.",
    "activation-email-sent-message": "L'email d'activation a été envoyé avec succès !",
    "resend-activation": "Renvoyer l'activation",
    "email": "Email",
    "email-required": "L'email est requis.",
    "invalid-email-format": "Format d'email invalide.",
    "first-name": "Prénom",
    "last-name": "Nom",
    "description": "Description",
    "default-dashboard": "Tableau de bord par défaut",
    "always-fullscreen": "Toujours en plein écran",
    "select-user": "Sélectionner un utilisateur",
    "no-users-matching": "Aucun utilisateur correspondant à '{{entity}}' trouvé.",
    "user-required": "L'utilisateur est requis",
    "activation-method": "Méthode d'activation",
    "display-activation-link": "Afficher le lien d'activation",
    "send-activation-mail": "Envoyer l'email d'activation",
    "activation-link": "Lien d'activation utilisateur",
    "activation-link-text": "Pour activer l'utilisateur, utilisez le <a href='{{activationLink}}' target='_blank'>lien d'activation</a> suivant (expire dans {{activationLinkTtl}}) :",
    "copy-activation-link": "Copier le lien d'activation",
    "activation-link-copied-message": "Le lien d'activation de l'utilisateur a été copié dans le presse-papiers",
    "details": "Détails",
    "login-as-tenant-admin": "Se connecter en tant qu'administrateur locataire",
    "login-as-customer-user": "Se connecter en tant qu'utilisateur client",
    "search": "Rechercher des utilisateurs",
    "selected-users": "{ count, plural, =1 {1 utilisateur} other {# utilisateurs} } sélectionné(s)",
    "disable-account": "Désactiver le compte utilisateur",
    "enable-account": "Activer le compte utilisateur",
    "enable-account-message": "Le compte utilisateur a été activé avec succès !",
    "disable-account-message": "Le compte utilisateur a été désactivé avec succès !",
    "copyId": "Copier l'identifiant de l'utilisateur",
    "idCopiedMessage": "L'identifiant de l'utilisateur a été copié dans le presse-papiers",
    "user-list": "Liste des utilisateurs",
    "user-list-required": "La liste des utilisateurs est requise"
  },
  "value": {
    "type": "Type de valeur",
    "string": "Chaîne",
    "string-value": "Valeur chaîne",
    "string-value-required": "La valeur chaîne est requise",
    "integer": "Entier",
    "integer-value": "Valeur entière",
    "integer-value-required": "La valeur entière est requise",
    "invalid-integer-value": "Valeur entière invalide",
    "double": "Double",
    "double-value": "Valeur double",
    "double-value-required": "La valeur double est requise",
    "boolean": "Booléen",
    "boolean-value": "Valeur booléenne",
    "false": "Faux",
    "true": "Vrai",
    "long": "Long",
    "json": "JSON",
    "json-value": "Valeur JSON",
    "json-value-invalid": "Le format de la valeur JSON est invalide",
    "json-value-required": "La valeur JSON est requise."
  },
  "version-control": {
    "version-control": "Contrôle de version",
    "management": "Gestion du contrôle de version",
    "search": "Rechercher des versions",
    "branch": "Branche",
    "default": "Par défaut",
    "select-branch": "Sélectionner une branche",
    "branch-required": "La branche est requise",
    "create-entity-version": "Créer une version d'entité",
    "version-name": "Nom de la version",
    "version-name-required": "Le nom de la version est requis",
    "author": "Auteur",
    "export-relations": "Exporter les relations",
    "export-attributes": "Exporter les attributs",
    "export-credentials": "Exporter les identifiants",
    "export-calculated-fields": "Exporter les champs calculés \net les règles d’alarme",
    "export-alarm-rules": "Exporter les règles d’alarme",
    "entity-versions": "Versions des entités",
    "versions": "Versions",
    "created-time": "Date de création",
    "version-id": "ID de version",
    "no-entity-versions-text": "Aucune version d'entité trouvée",
    "no-versions-text": "Aucune version trouvée",
    "copy-full-version-id": "Copier l'ID complet de la version",
    "create-version": "Créer une version",
    "creating-version": "Création de la version... Veuillez patienter",
    "nothing-to-commit": "Aucune modification à valider",
    "restore-version": "Restaurer la version",
    "restore-entity-from-version": "Restaurer l'entité depuis la version '{{versionName}}'",
    "restoring-entity-version": "Restauration de la version de l'entité... Veuillez patienter",
    "load-relations": "Charger les relations",
    "load-attributes": "Charger les attributs",
    "load-credentials": "Charger les identifiants",
    "load-calculated-fields": "Charger les champs calculés",
    "load-alarm-rules": "Charger les règles d’alarme",
    "compare-with-current": "Comparer avec l'actuel",
    "diff-entity-with-version": "Comparer avec la version d'entité '{{versionName}}'",
    "previous-difference": "Différence précédente",
    "next-difference": "Différence suivante",
    "current": "Actuel",
    "differences": "{ count, plural, =1 {1 différence} other {# différences} }",
    "create-entities-version": "Créer une version d'entités",
    "default-sync-strategy": "Stratégie de synchronisation par défaut",
    "sync-strategy-merge": "Fusionner",
    "sync-strategy-overwrite": "Écraser",
    "entities-to-export": "Entités à exporter",
    "entities-to-restore": "Entités à restaurer",
    "sync-strategy": "Stratégie de synchronisation",
    "all-entities": "Toutes les entités",
    "no-entities-to-export-prompt": "Veuillez spécifier les entités à exporter",
    "no-entities-to-restore-prompt": "Veuillez spécifier les entités à restaurer",
    "add-entity-type": "Ajouter un type d'entité",
    "remove-all": "Tout supprimer",
    "version-create-result": "{ added, plural, =0 {Aucune entité} =1 {1 entité} other {# entités} } ajoutée(s).<br/>{ modified, plural, =0 {Aucune entité} =1 {1 entité} other {# entités} } modifiée(s).<br/>{ removed, plural, =0 {Aucune entité} =1 {1 entité} other {# entités} } supprimée(s).",
    "remove-other-entities": "Supprimer les autres entités",
    "find-existing-entity-by-name": "Trouver une entité existante par nom",
    "restore-entities-from-version": "Restaurer les entités depuis la version '{{versionName}}'",
    "restoring-entities-from-version": "Restauration des entités... Veuillez patienter",
    "no-entities-restored": "Aucune entité restaurée",
    "created": "{{created}} créée(s)",
    "updated": "{{updated}} mise(s) à jour",
    "deleted": "{{deleted}} supprimée(s)",
    "remove-other-entities-confirm-text": "Attention ! Cela <b>supprimera</b> de manière permanente <b>toutes</b> les entités actuelles<br/>non présentes dans la version que vous souhaitez restaurer.<br/><br/>Veuillez taper <b>\"remove other entities\"</b> pour confirmer.",
    "auto-commit-to-branch": "auto-validation sur la branche <b>{{ branch }}</b>",
    "default-create-entity-version-name": "Mise à jour de {{entityName}}",
    "sync-strategy-merge-hint": "Crée ou met à jour les entités sélectionnées dans le dépôt. Toutes les autres entités du dépôt ne sont <b>pas modifiées</b>.",
    "sync-strategy-overwrite-hint": "Crée ou met à jour les entités sélectionnées dans le dépôt. Toutes les autres entités du dépôt sont <b>supprimées</b>.",
    "device-credentials-conflict": "Échec du chargement de l'appareil avec l'id externe <b>{{entityId}}</b><br/>car les mêmes identifiants sont déjà présents dans la base de données pour un autre appareil.<br/>Veuillez envisager de désactiver l'option <b>charger les identifiants</b> dans le formulaire de restauration.",
    "missing-referenced-entity": "Échec du chargement du <b>{{sourceEntityTypeName}}</b> avec l'id externe <b>{{sourceEntityId}}</b><br/>car il fait référence à un <b>{{targetEntityTypeName}}</b> manquant avec l'id <b>{{targetEntityId}}</b>.",
    "runtime-failed": "<b>Échec :</b> {{message}}",
    "auto-commit-settings-read-only-hint": "La fonctionnalité d'auto-validation ne fonctionne pas avec l'option lecture seule activée dans les paramètres du dépôt.",
    "rollback-on-error": "Annuler en cas d’erreur",
    "rollback-on-error-hint": "Si vous avez un grand nombre d’entités à restaurer, envisagez de désactiver cette option pour améliorer les performances.\n Note : en cas d’erreur pendant le chargement de la version, les entités déjà persistées (avec relations, attributs, etc.) resteront telles quelles."
  },
  "widget": {
    "widget-library": "Bibliothèque de widgets",
    "widget-bundle": "Bundle de widgets",
    "all-bundles": "Tous les bundles",
    "select-widgets-bundle": "Sélectionner un bundle de widgets",
    "widgets": "Widgets",
    "all-widgets": "Tous les widgets",
    "widget": "Widget",
    "select-widget": "Sélectionner un widget",
    "no-widgets-matching": "Aucun widget correspondant à '{{entity}}' trouvé.",
    "no-widgets": "Aucun widget pour l'instant",
    "no-widgets-text": "Aucun widget trouvé",
    "management": "Gestion des widgets",
    "editor": "Éditeur de widget",
    "confirm-to-exit-editor-html": "Vous avez des paramètres de widget non enregistrés.<br>Êtes-vous sûr de vouloir quitter cette page ?",
    "widget-type-not-found": "Problème de chargement de la configuration du widget.<br>Probablement que le type de widget associé\n    a été supprimé.",
    "widget-type-load-error": "Le widget n'a pas été chargé en raison des erreurs suivantes :",
    "remove": "Supprimer le widget",
    "delete": "Supprimer le widget",
    "edit": "Éditer le widget",
    "remove-widget-title": "Êtes-vous sûr de vouloir supprimer le widget '{{widgetTitle}}' ?",
    "remove-widget-text": "Après confirmation, le widget et toutes les données associées deviendront irrécupérables.",
    "replace-reference-with-widget-copy": "Remplacer la référence par une copie du widget",
    "timeseries": "Séries temporelles",
    "search-data": "Rechercher des données",
    "no-data-found": "Aucune donnée trouvée",
    "latest": "Valeurs récentes",
    "rpc": "Widget de contrôle",
    "alarm": "Widget d'alarme",
    "static": "Widget statique",
    "timeseries-short": "séries",
    "latest-short": "récent",
    "rpc-short": "contrôle",
    "alarm-short": "alarme",
    "static-short": "statique",
    "select-widget-type": "Sélectionner le type de widget",
    "missing-widget-title-error": "Le titre du widget doit être spécifié !",
    "widget-saved": "Widget enregistré",
    "unable-to-save-widget-error": "Impossible d’enregistrer le widget ! Le widget contient des erreurs !",
    "save": "Enregistrer le widget",
    "saveAs": "Enregistrer le widget sous",
    "move": "Déplacer le widget",
    "save-widget-as": "Enregistrer le widget sous",
    "save-widget-as-text": "Veuillez saisir un nouveau titre pour le widget",
    "toggle-fullscreen": "Basculer en plein écran",
    "run": "Exécuter le widget",
    "widget-title": "Titre du widget",
    "title": "Titre",
    "title-required": "Le titre du widget est requis.",
    "title-max-length": "Le titre doit contenir moins de 256 caractères",
    "system": "Système",
    "type": "Type de widget",
    "resources": "Ressources",
    "resource-url": "URL JavaScript/CSS",
    "resource-is-extension": "Est une extension",
    "remove-resource": "Supprimer la ressource",
    "add-resource": "Ajouter une ressource",
    "html": "HTML",
    "tidy": "Nettoyer",
    "css": "CSS",
    "settings-form": "Formulaire de paramètres",
    "data-key-settings-form": "Formulaire des paramètres de clé de données",
    "latest-data-key-settings-form": "Formulaire des paramètres de la dernière clé de données",
    "widget-settings": "Paramètres du widget",
    "description": "Description",
    "tags": "Étiquettes",
    "image-preview": "Aperçu de l’image",
    "settings-form-selector": "Sélecteur de formulaire de paramètres",
    "data-key-settings-form-selector": "Sélecteur de formulaire de clé de données",
    "latest-data-key-settings-form-selector": "Sélecteur de formulaire des dernières données",
    "all": "Tous",
    "actual": "Actuel",
    "scada": "Symbole SCADA",
    "deprecated": "Obsolète",
    "has-basic-mode": "Mode basique disponible",
    "basic-mode-form-selector": "Sélecteur de formulaire du mode basique",
    "basic-mode": "Basique",
    "advanced-mode": "Avancé",
    "javascript": "Javascript",
    "js": "JS",
    "delete-widget-title": "Êtes-vous sûr de vouloir supprimer le widget '{{widgetName}}' ?",
    "delete-widget-text": "Après confirmation, le widget et toutes les données associées seront irrécupérables.",
    "delete-widgets-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 widget} other {# widgets} } ?",
    "delete-widgets-text": "Attention, après confirmation tous les widgets sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
    "delete-widget": "Supprimer le widget",
    "widget-template-load-failed-error": "Échec du chargement du modèle de widget !",
    "details": "Détails",
    "widget-details": "Détails du widget",
    "add": "Ajouter un widget",
    "add-existing-widget": "Ajouter un widget existant",
    "add-new-widget": "Ajouter un nouveau widget",
    "search-widgets": "Rechercher des widgets",
    "selected-widgets": "{ count, plural, =1 {1 widget} other {# widgets} } sélectionné(s)",
    "undo": "Annuler les modifications du widget",
    "export": "Exporter le widget",
    "export-prompt": "Intégrer les images et ressources du widget",
    "export-widgets": "Exporter les widgets",
    "export-widgets-prompt": "Intégrer les images et ressources des widgets",
    "import": "Importer un widget",
    "no-data": "Aucune donnée à afficher sur le widget",
    "data-overflow": "Le widget affiche {{count}} sur {{total}} entités",
    "alarm-data-overflow": "Le widget affiche les alarmes pour {{allowedEntities}} entités (maximum autorisé) sur un total de {{totalEntities}} entités",
    "search": "Rechercher un widget",
    "filter": "Type de filtre de widget",
    "loading-widgets": "Chargement des widgets...",
    "widget-template-error": "Modèle HTML du widget invalide.",
    "reference": "Référence"
  },
  "widget-action": {
    "header-button": "Bouton d'en-tête du widget",
    "do-nothing": "Ne rien faire",
    "open-dashboard-state": "Naviguer vers un nouvel état du tableau de bord",
    "update-dashboard-state": "Mettre à jour l'état actuel du tableau de bord",
    "open-dashboard": "Naviguer vers un autre tableau de bord",
    "custom": "Action personnalisée",
    "custom-pretty": "Action personnalisée (avec modèle HTML)",
    "custom-pretty-error-title": "Erreur de dialogue personnalisé",
    "custom-pretty-template-error": "Modèle de dialogue personnalisé invalide.",
    "custom-pretty-controller-error": "Une erreur s'est produite lors de l'évaluation de la fonction de dialogue personnalisé.",
    "mobile-action": "Action mobile",
    "target-dashboard-state": "État cible du tableau de bord",
    "target-dashboard-state-required": "L'état cible du tableau de bord est requis",
    "set-entity-from-widget": "Définir l'entité à partir du widget",
    "target-dashboard": "Tableau de bord cible",
    "select-target-dashboard": "Sélectionner un tableau de bord cible",
    "target-dashboard-required": "Le tableau de bord cible est requis.",
    "open-right-layout": "Ouvrir la disposition droite du tableau de bord (vue mobile)",
    "state-display-type": "Option d'affichage de l'état du tableau de bord",
    "open-normal": "Normal",
    "open-in-separate-dialog": "Ouvrir dans une boîte de dialogue séparée",
    "open-in-popover": "Ouvrir dans une infobulle",
    "dialog-title": "Titre du dialogue",
    "dialog-hide-dashboard-toolbar": "Masquer la barre d'outils du tableau de bord dans le dialogue",
    "dialog-width": "Largeur du dialogue en pourcentage par rapport à la largeur de la fenêtre",
    "dialog-height": "Hauteur du dialogue en pourcentage par rapport à la hauteur de la fenêtre",
    "dialog-size-range-error": "La valeur en pourcentage de la taille du dialogue doit être comprise entre 1 et 100.",
    "popover-preferred-placement": "Placement préféré du popover",
    "popover-placement-top": "Haut",
    "popover-placement-topLeft": "Haut gauche",
    "popover-placement-topRight": "Haut droite",
    "popover-placement-right": "Droite",
    "popover-placement-rightTop": "Droite haut",
    "popover-placement-rightBottom": "Droite bas",
    "popover-placement-bottom": "Bas",
    "popover-placement-bottomLeft": "Bas gauche",
    "popover-placement-bottomRight": "Bas droite",
    "popover-placement-left": "Gauche",
    "popover-placement-leftTop": "Gauche haut",
    "popover-placement-leftBottom": "Gauche bas",
    "popover-hide-on-click-outside": "Masquer le popover lors d'un clic en dehors",
    "popover-hide-dashboard-toolbar": "Masquer la barre d'outils du tableau de bord dans le popover",
    "popover-width": "Largeur du popover",
    "popover-height": "Hauteur du popover",
    "popover-style": "Style du popover",
    "open-new-browser-tab": "Ouvrir dans un nouvel onglet du navigateur",
    "open-URL": "Ouvrir une URL",
    "URL": "URL",
    "url-required": "L'URL est requise.",
    "mobile": {
      "device-provision": "Provisionnement de l'appareil",
      "action-type": "Type d'action mobile",
      "select-action-type": "Sélectionner le type d'action mobile",
      "action-type-required": "Le type d'action mobile est requis",
      "take-picture-from-gallery": "Prendre une photo depuis la galerie",
      "take-photo": "Prendre une photo",
      "map-direction": "Ouvrir les directions sur la carte",
      "map-location": "Ouvrir l'emplacement sur la carte",
      "scan-qr-code": "Scanner le code QR",
      "make-phone-call": "Passer un appel téléphonique",
      "get-location": "Obtenir la localisation du téléphone",
      "take-screenshot": "Faire une capture d'écran",
      "handle-provision-success-function": "Gérer la fonction de succès du provisionnement",
      "get-location-function": "Obtenir la fonction de localisation",
      "process-launch-result-function": "Traiter la fonction de résultat de lancement",
      "get-phone-number-function": "Obtenir la fonction de numéro de téléphone",
      "process-image-function": "Traiter la fonction d’image",
      "process-qr-code-function": "Traiter la fonction de code QR",
      "process-location-function": "Traiter la fonction de localisation",
      "handle-empty-result-function": "Gérer la fonction de résultat vide",
      "handle-error-function": "Gérer la fonction d’erreur",
      "handle-non-mobile-fallback-function": "Gérer la fonction de repli non mobile",
      "save-to-gallery": "Enregistrer dans la galerie",
      "provision-type": "Type de provisionnement",
      "auto": "Auto",
      "wi-fi": "Wi-Fi",
      "ble": "BLE",
      "soft-ap": "Soft AP"
    },
    "custom-action-function": "Fonction d'action personnalisée",
    "custom-pretty-function": "Fonction d'action personnalisée (avec modèle HTML)",
    "map-item-type": "Type d'élément cartographique",
    "map-item": {
      "marker": "Marqueur",
      "polygon": "Polygone",
      "rectangle": "Rectangle",
      "circle": "Cercle",
      "polyline": "Polyligne"
    },
    "place-map-item": "Placer un élément cartographique",
    "map-item-tooltip": {
      "customize-map-item-tooltips": "Personnaliser les infobulles des éléments cartographiques",
      "place-marker": "Placer un marqueur",
      "start-draw-rectangle": "Commencer à dessiner un rectangle",
      "finish-draw-rectangle": "Terminer le dessin du rectangle",
      "start-draw-polygon": "Commencer à dessiner un polygone",
      "continue-draw-polygon": "Continuer le dessin du polygone",
      "finish-draw-polygon": "Terminer le dessin du polygone",
      "start-draw-circle": "Commencer à dessiner un cercle",
      "finish-draw-circle": "Terminer le dessin du cercle",
      "start-draw-polyline": "Commencer à dessiner une polyligne",
      "finish-draw-polyline": "Terminer le dessin de la polyligne"
    }
  },
  "widgets-bundle": {
    "current": "Bundle actuel",
    "widgets-bundles": "Bundles de widgets",
    "widgets-bundle-widgets": "Widgets du bundle",
    "add": "Ajouter un bundle de widgets",
    "delete": "Supprimer le bundle de widgets",
    "title": "Titre",
    "title-required": "Le titre est requis.",
    "title-max-length": "Le titre doit contenir moins de 256 caractères",
    "description": "Description",
    "image-preview": "Aperçu de l'image",
    "scada": "Bundle de widgets SCADA",
    "order": "Ordre",
    "add-widgets-bundle-text": "Ajouter un nouveau bundle de widgets",
    "no-widgets-bundles-text": "Aucun bundle de widgets trouvé",
    "empty": "Le bundle de widgets est vide",
    "details": "Détails",
    "widgets-bundle-details": "Détails du bundle de widgets",
    "delete-widgets-bundle-title": "Êtes-vous sûr de vouloir supprimer le bundle de widgets '{{widgetsBundleTitle}}' ?",
    "delete-widgets-bundle-text": "Attention, après confirmation, le bundle et toutes ses données associées seront définitivement supprimés.",
    "delete-widgets-bundles-title": "Êtes-vous sûr de vouloir supprimer { count, plural, =1 {1 bundle de widgets} other {# bundles de widgets} } ?",
    "delete-widgets-bundles-action-title": "Supprimer { count, plural, =1 {1 bundle de widgets} other {# bundles de widgets} }",
    "delete-widgets-bundles-text": "Attention, après confirmation, tous les bundles sélectionnés seront supprimés ainsi que toutes les données associées.",
    "no-widgets-bundles-matching": "Aucun bundle de widgets correspondant à '{{widgetsBundle}}' trouvé.",
    "widgets-bundle-required": "Le bundle de widgets est requis.",
    "system": "Système",
    "import": "Importer un bundle de widgets",
    "export": "Exporter un bundle de widgets",
    "export-widgets-bundle-widgets-prompt": "Inclure les widgets du bundle dans les données exportées (sinon seuls les FQN de widgets référencés seront exportés)",
    "export-failed-error": "Impossible d’exporter le bundle de widgets : {{error}}",
    "create-new-widgets-bundle": "Créer un nouveau bundle de widgets",
    "widgets-bundle-file": "Fichier du bundle de widgets",
    "invalid-widgets-bundle-file-error": "Impossible d'importer le bundle de widgets : structure de données invalide.",
    "search": "Rechercher des bundles de widgets",
    "selected-widgets-bundles": "{ count, plural, =1 {1 bundle de widgets} other {# bundles de widgets} } sélectionné(s)",
    "open-widgets-bundle": "Ouvrir le bundle de widgets",
    "loading-widgets-bundles": "Chargement des bundles de widgets...",
    "create-new": "Créer un nouveau bundle de widgets"
  },
  "widget-config": {
    "data": "Données",
    "settings": "Paramètres",
    "advanced": "Avancé",
    "appearance": "Apparence",
    "widget-card": "Carte du widget",
    "mobile": "Mobile",
    "title": "Titre",
    "title-tooltip": "Info-bulle du titre",
    "general-settings": "Paramètres généraux",
    "display-title": "Afficher le titre du widget",
    "card-title": "Titre de la carte",
    "drop-shadow": "Ombre portée",
    "enable-fullscreen": "Activer le mode plein écran",
    "background-color": "Couleur de fond",
    "text-color": "Couleur du texte",
    "border-radius": "Rayon de la bordure",
    "padding": "Espacement interne (padding)",
    "margin": "Marge",
    "widget-style": "Style du widget",
    "widget-css": "CSS du widget",
    "title-style": "Style du titre",
    "mobile-mode-settings": "Mode mobile",
    "order": "Ordre",
    "height": "Hauteur",
    "mobile-hide": "Masquer le widget en mode mobile",
    "desktop-hide": "Masquer le widget en mode bureau",
    "units": "Symbole spécial à afficher à côté de la valeur",
    "units-by-default": "Unités par défaut",
    "decimals": "Nombre de chiffres après la virgule",
    "decimals-by-default": "Décimales par défaut",
    "default-data-key-parameter-hint": "Ce paramètre s’applique à toutes les valeurs du widget sauf si redéfini par la configuration de la clé de données",
    "units-short": "Unités",
    "decimals-short": "Décimales",
    "decimals-suffix": "décimales",
    "digits-suffix": "chiffres",
    "timewindow": "Fenêtre temporelle",
    "use-dashboard-timewindow": "Utiliser la fenêtre temporelle du tableau de bord",
    "use-widget-timewindow": "Utiliser la fenêtre temporelle du widget",
    "display-timewindow": "Afficher la fenêtre temporelle",
    "legend": "Légende",
    "display-legend": "Afficher la légende",
    "datasources": "Sources de données",
    "datasource": "Source de données",
    "maximum-datasources": "Maximum { count, plural, =1 {1 source de données autorisée.} other {# sources de données autorisées} }",
    "timeseries-key-error": "Au moins une clé de série temporelle doit être spécifiée",
    "datasource-type": "Type",
    "datasource-parameters": "Paramètres",
    "remove-datasource": "Supprimer la source de données",
    "add-datasource": "Ajouter une source de données",
    "target-device": "Appareil cible",
    "alarm-source": "Source d'alarme",
    "actions": "Actions",
    "action": "Action",
    "add-action": "Ajouter une action",
    "search-actions": "Rechercher des actions",
    "no-actions-text": "Aucune action trouvée",
    "action-source": "Source de l'action",
    "select-action-source": "Sélectionner la source de l'action",
    "action-source-required": "La source de l'action est requise.",
    "column-index": "Index de la colonne",
    "select-column-index": "Sélectionner l'index de la colonne",
    "column-index-required": "L’index de colonne est requis.",
    "not-set": "Non défini",
    "action-name": "Nom",
    "action-name-required": "Le nom de l'action est requis.",
    "action-name-not-unique": "Une autre action avec le même nom existe déjà.\nLe nom de l'action doit être unique dans la même source d'action.",
    "action-icon": "Icône",
    "header-button": {
      "button-settings": "Paramètres du bouton",
      "button-type": "Type de bouton",
      "button-type-basic": "De base",
      "button-type-raised": "Élevé",
      "button-type-stroked": "Contourné",
      "button-type-flat": "Plat",
      "button-type-icon": "Icône",
      "button-type-mini-fab": "FAB",
      "colors": "Couleurs",
      "color": "Couleur",
      "background": "Arrière-plan",
      "border": "Bordure",
      "advanced-button-style": "Style de bouton avancé",
      "button-style": "Style du bouton"
    },
    "show-hide-action-using-function": "Afficher/masquer l’action via une fonction",
    "show-action-function": "Fonction d’affichage de l’action",
    "action-type": "Type",
    "action-type-required": "Le type d’action est requis.",
    "edit-action": "Modifier l’action",
    "delete-action": "Supprimer l’action",
    "delete-action-title": "Supprimer l’action du widget",
    "delete-action-text": "Êtes-vous sûr de vouloir supprimer l’action du widget nommée '{{actionName}}' ?",
    "title-icon": "Icône du titre",
    "display-icon": "Afficher l’icône du titre",
    "card-icon": "Icône de la carte",
    "icon": "Icône",
    "icon-color": "Couleur de l’icône",
    "icon-size": "Taille de l’icône",
    "advanced-settings": "Paramètres avancés",
    "data-settings": "Paramètres de données",
    "limits": "Limites",
    "no-data-display-message": "\"Aucune donnée à afficher\" message alternatif",
    "data-page-size": "Nombre maximum d'entités par source de données",
    "settings-component-not-found": "Composant de formulaire de paramètres non trouvé pour le sélecteur '{{selector}}'",
    "preview": "Aperçu",
    "set": "Définir",
    "set-message": "Définir le message",
    "advanced-title-style": "Style avancé du titre",
    "card-style": "Style de la carte",
    "text": "Texte",
    "background": "Arrière-plan",
    "advanced-widget-style": "Style avancé du widget",
    "card-buttons": "Boutons de la carte",
    "show-card-buttons": "Afficher les boutons de la carte",
    "card-border-radius": "Rayon de bordure de la carte",
    "card-padding": "Espacement interne de la carte",
    "card-appearance": "Apparence de la carte",
    "color": "Couleur",
    "tooltip": "Info-bulle",
    "units-required": "L’unité est requise.",
    "list-layout": "Disposition en liste",
    "layout": "Disposition",
    "resize-options": "Options de redimensionnement",
    "resizable": "Redimensionnable",
    "preserve-aspect-ratio": "Préserver les proportions"
  },
  "widget-type": {
    "import": "Importer le type de widget",
    "export": "Exporter le type de widget",
    "export-failed-error": "Impossible d’exporter le widget : {{error}}",
    "widget-file": "Fichier de widget",
    "invalid-widget-file-error": "Impossible d’importer le widget : structure de données invalide."
  },
  "markdown": {
    "edit": "Éditer",
    "preview": "Aperçu",
    "copy-code": "Cliquez pour copier",
    "copied": "Copié !"
  },
  "widgets": {
    "mobile-app-qr-code": {
      "configuration-hint": "La configuration dépend du widget de code QR de l'application mobile dans les paramètres principaux de la plateforme",
      "get-it-on-google-play": "Disponible sur Google Play",
      "download-on-the-app-store": "Télécharger sur l'App Store"
    },
    "action-button": {
      "behavior": "Comportement",
      "on-click": "Au clic",
      "on-click-hint": "Action déclenchée lors du clic sur le bouton",
      "first-button-click": "Premier clic sur le bouton",
      "first-button-click-hint": "Action lors de l’appui sur le premier bouton.",
      "second-button-click": "Deuxième clic sur le bouton",
      "second-button-click-hint": "Action lors de l’appui sur le deuxième bouton.",
      "button-click-hint": "Action lors de l’appui sur le widget."
    },
    "command-button": {
      "behavior": "Comportement",
      "on-click": "Au clic",
      "on-click-hint": "Action effectuée lors du clic sur le bouton."
    },
    "power-button": {
      "behavior": "Comportement",
      "power-on": "Allumer",
      "power-on-hint": "Action effectuée pour allumer le composant.",
      "power-off": "Éteindre",
      "power-off-hint": "Action effectuée pour éteindre le composant.",
      "on-label": "Marche",
      "off-label": "Arrêt",
      "layout": "Disposition",
      "layout-default": "Par défaut",
      "layout-simplified": "Simplifié",
      "layout-outlined": "Contour",
      "layout-default-volume": "Par défaut.Volume",
      "layout-simplified-volume": "Simplifié.Volume",
      "layout-outlined-volume": "Contour.Volume",
      "layout-default-icon": "Par défaut.Icône",
      "layout-simplified-icon": "Simplifié.Icône",
      "layout-outlined-icon": "Contour.Icône",
      "main": "Principal",
      "background": "Arrière-plan",
      "button-icon-on": "Icône du bouton 'Marche'",
      "button-icon-off": "Icône du bouton 'Arrêt'",
      "power-on-colors": "Couleurs 'Marche'",
      "power-off-colors": "Couleurs 'Arrêt'",
      "disabled-colors": "Couleurs désactivées",
      "button": "Bouton"
    },
    "toggle-button": {
      "behavior": "Comportement",
      "checked": "Coché",
      "unchecked": "Décoché",
      "check": "Cocher",
      "check-hint": "Action effectuée pour cocher le composant.",
      "uncheck": "Décocher",
      "uncheck-hint": "Action effectuée pour décocher le composant.",
      "auto-scale": "Redimensionnement automatique",
      "horizontal-fill": "Remplissage horizontal",
      "vertical-fill": "Remplissage vertical",
      "button-appearance": "Apparence du bouton"
    },
    "segmented-button": {
      "layout": "Disposition",
      "layout-squared": "Carrée",
      "layout-rounded": "Arrondie",
      "card-border": "Bordure de carte",
      "button-appearance": "Apparence du bouton",
      "first": "Premier",
      "second": "Deuxième",
      "color-styles": "Styles de couleur",
      "selected": "Sélectionné",
      "unselected": "Non sélectionné"
    },
    "button": {
      "layout": "Disposition",
      "outlined": "Contour",
      "filled": "Rempli",
      "underlined": "Souligné",
      "basic": "Basique",
      "auto-scale": "Redimensionnement automatique",
      "label": "Libellé",
      "icon": "Icône",
      "border-radius": "Rayon de bordure",
      "color-palette": "Palette de couleurs",
      "main": "Principal",
      "background": "Arrière-plan",
      "border": "Bordure",
      "custom-styles": "Styles personnalisés",
      "clear-style": "Effacer le style",
      "shadow": "Ombre",
      "enabled": "Activé",
      "disabled": "Désactivé",
      "preview": "Aperçu",
      "copy-style-from": "Copier le style de"
    },
    "value-stepper": {
      "behavior": "Comportement",
      "simplified": "Simplifié",
      "filled": "Rempli",
      "outlined": "Contour",
      "volume": "Volume",
      "initial-state": "État initial",
      "initial-state-hint": "Action pour obtenir la valeur initiale.",
      "disabled-state": "État désactivé",
      "disabled-state-hint": "Configurer la condition de désactivation du composant.",
      "right-button-click": "Clic bouton droit",
      "right-button-click-hint": "Action lors de l’appui sur le bouton droit.",
      "left-button-click": "Clic bouton gauche",
      "left-button-click-hint": "Action lors de l’appui sur le bouton gauche.",
      "auto-scale": "Redimensionnement automatique",
      "value-range": "Plage de valeurs",
      "min-range": "Min",
      "max-range": "Max",
      "value-increment-decrement-step": "Pas d'incrément/décrément",
      "value": "Valeur",
      "value-box-background": "Arrière-plan de la boîte de valeur",
      "border": "Bordure",
      "button-appearance": "Apparence du bouton",
      "left": "Gauche",
      "right": "Droite",
      "left-button": "Bouton gauche",
      "right-button": "Bouton droit",
      "icon": "Icône",
      "color-palette": "Palette de couleurs",
      "main": "Principal",
      "background": "Arrière-plan",
      "button-icon-on": "Icône du bouton 'Marche'",
      "button-on-colors": "Couleurs 'Marche'",
      "disabled-colors": "Couleurs désactivées"
    },
    "button-state": {
      "activated-state": "État activé",
      "activated-state-hint": "Configurer la condition d’activation du bouton.",
      "disabled-state": "État désactivé",
      "disabled-state-hint": "Configurer la condition de désactivation du bouton.",
      "selected-state": "Sélection du bouton",
      "selected-state-hint": "Configurer la condition de sélection du bouton.",
      "enabled": "Activé",
      "hovered": "Survolé",
      "pressed": "Pressé",
      "activated": "Activé",
      "disabled": "Désactivé",
      "initial": "Premier bouton",
      "first": "Premier",
      "second": "Deuxième"
    },
    "background": {
      "background": "Arrière-plan",
      "background-settings": "Paramètres de l'arrière-plan",
      "background-type-image": "Image",
      "background-type-color": "Couleur",
      "image-url": "URL de l'image",
      "overlay": "Superposition",
      "enable-overlay": "Activer la superposition",
      "blur": "Flou",
      "preview": "Aperçu"
    },
    "bar-chart": {
      "bar-appearance": "Apparence de la barre",
      "label-on-bar": "Étiquette sur la barre",
      "value-on-bar": "Valeur sur la barre",
      "bar-chart-style": "Style du diagramme à barres",
      "bar-axis": "Axe de la barre"
    },
    "polar-area-chart": {
      "polar-axis": "Axe polaire",
      "start-angle": "Angle de départ",
      "polar-area-chart-style": "Style du diagramme en aires polaires"
    },
    "battery-level": {
      "layout": "Disposition",
      "layout-vertical-solid": "Vertical. Plein",
      "layout-horizontal-solid": "Horizontal. Plein",
      "layout-vertical-divided": "Vertical. Divisé",
      "layout-horizontal-divided": "Horizontal. Divisé",
      "icon": "Icône",
      "value": "Valeur",
      "auto-scale": "Redimensionnement automatique",
      "battery-level-color": "Couleur du niveau de batterie",
      "battery-shape-color": "Couleur de la forme de la batterie",
      "battery-level-card-style": "Style de la carte du niveau de batterie",
      "sections-count": "Nombre de sections"
    },
    "signal-strength": {
      "value": "Valeur",
      "last-update": "Dernière mise à jour",
      "no-signal": "Pas de signal",
      "layout": "Disposition",
      "layout-wifi": "Wi-Fi",
      "layout-cellular-bar": "Barre cellulaire",
      "icon": "Icône",
      "date": "Date",
      "active-bars-color": "Couleur des barres actives",
      "inactive-bars-color": "Couleur des barres inactives",
      "signal-strength-card-style": "Style de la carte de signal",
      "no-signal-rssi-value": "Valeur RSSI pour \"Pas de signal\""
    },
    "status-widget": {
      "behavior": "Comportement",
      "layout": "Disposition",
      "layout-default": "Défaut",
      "layout-center": "Centré",
      "layout-icon": "Icône",
      "on": "Activé",
      "off": "Désactivé",
      "label": "Libellé",
      "status": "Statut",
      "icon": "Icône",
      "color-palette": "Palette de couleurs",
      "disabled-color-palette": "Palette de couleurs désactivée",
      "primary": "Principal",
      "primary-color-hint": "Couleur de l’icône et du libellé",
      "secondary": "Secondaire",
      "secondary-color-hint": "Couleur du statut",
      "background": "Arrière-plan"
    },
    "chart": {
      "common-settings": "Paramètres communs",
      "enable-stacking-mode": "Activer le mode empilé",
      "selection": "Sélection de la plage temporelle",
      "enable-selection-mode": "Activer le mode de sélection",
      "line-shadow-size": "Taille de l’ombre de la ligne",
      "display-smooth-lines": "Afficher les lignes lisses (courbes)",
      "default-bar-width": "Largeur de barre par défaut pour les données non agrégées (en millisecondes)",
      "bar-alignment": "Alignement des barres",
      "bar-alignment-left": "Gauche",
      "bar-alignment-right": "Droite",
      "bar-alignment-center": "Centre",
      "default-font": "Police par défaut",
      "default-font-size": "Taille de police par défaut",
      "default-font-color": "Couleur de police par défaut",
      "thresholds-line-width": "Épaisseur de ligne par défaut pour tous les seuils",
      "tooltip-settings": "Paramètres de l'infobulle",
      "tooltip": "Infobulle",
      "show-tooltip": "Afficher l’infobulle",
      "hover-individual-points": "Survoler les points individuels",
      "show-cumulative-values": "Afficher les valeurs cumulées en mode empilé",
      "hide-zero-false-values": "Masquer les valeurs nulles/faux de l’infobulle",
      "tooltip-value-format-function": "Fonction de formatage des valeurs de l’infobulle",
      "grid-settings": "Paramètres de la grille",
      "show-vertical-lines": "Afficher les lignes verticales",
      "show-horizontal-lines": "Afficher les lignes horizontales",
      "grid-outline-border-width": "Épaisseur du contour/de la bordure de la grille (px)",
      "primary-color": "Couleur principale",
      "background-color": "Couleur d’arrière-plan",
      "ticks-color": "Couleur des graduations",
      "xaxis-settings": "Paramètres de l’axe X",
      "axis-title": "Titre de l’axe",
      "xaxis-tick-labels-settings": "Paramètres des étiquettes de graduation de l’axe X",
      "show-tick-labels": "Afficher les étiquettes des graduations",
      "yaxis-settings": "Paramètres de l’axe Y",
      "min-scale-value": "Valeur minimale de l’échelle",
      "max-scale-value": "Valeur maximale de l’échelle",
      "yaxis-tick-labels-settings": "Paramètres des étiquettes de graduation de l’axe Y",
      "tick-step-size": "Pas entre les graduations",
      "number-of-decimals": "Nombre de décimales à afficher",
      "ticks-formatter-function": "Fonction de formatage des graduations",
      "comparison-settings": "Paramètres de comparaison",
      "enable-comparison": "Activer la comparaison",
      "time-for-comparison": "Période de comparaison",
      "time-for-comparison-previous-interval": "Intervalle précédent (par défaut)",
      "time-for-comparison-days": "Il y a un jour",
      "time-for-comparison-weeks": "Il y a une semaine",
      "time-for-comparison-months": "Il y a un mois",
      "time-for-comparison-years": "Il y a un an",
      "time-for-comparison-custom-interval": "Intervalle personnalisé",
      "custom-interval-value": "Valeur d’intervalle personnalisé (ms)",
      "comparison-x-axis-settings": "Paramètres de l’axe X pour la comparaison",
      "axis-position": "Position de l’axe",
      "axis-position-top": "En haut (par défaut)",
      "axis-position-bottom": "En bas",
      "custom-legend-settings": "Paramètres personnalisés de la légende",
      "enable-custom-legend": "Activer la légende personnalisée (permet d'utiliser des attributs/valeurs de séries temporelles dans les libellés)",
      "key-name": "Nom de la clé",
      "key-name-required": "Le nom de la clé est requis",
      "key-type": "Type de clé",
      "key-type-attribute": "Attribut",
      "key-type-timeseries": "Série temporelle",
      "label-keys-list": "Liste des clés à utiliser dans les libellés",
      "no-label-keys": "Aucune clé configurée",
      "add-label-key": "Ajouter une nouvelle clé",
      "line-width": "Épaisseur de la ligne",
      "color": "Couleur",
      "data-is-hidden-by-default": "Les données sont masquées par défaut",
      "disable-data-hiding": "Désactiver le masquage des données",
      "remove-from-legend": "Supprimer la clé de la légende",
      "exclude-from-stacking": "Exclure de l'empilement (disponible en mode \"Empilé\")",
      "line-settings": "Paramètres de la ligne",
      "show-line": "Afficher la ligne",
      "fill-line": "Remplir la ligne",
      "fill-line-opacity": "Opacité du remplissage",
      "points-settings": "Paramètres des points",
      "show-points": "Afficher les points",
      "points-line-width": "Épaisseur de la ligne des points",
      "points-radius": "Rayon des points",
      "point-shape": "Forme du point",
      "point-shape-circle": "Cercle",
      "point-shape-cross": "Croix",
      "point-shape-diamond": "Losange",
      "point-shape-square": "Carré",
      "point-shape-triangle": "Triangle",
      "point-shape-custom": "Fonction personnalisée",
      "point-shape-draw-function": "Fonction de dessin de la forme du point",
      "show-separate-axis": "Afficher un axe séparé",
      "axis-position-left": "Gauche",
      "axis-position-right": "Droite",
      "thresholds": "Seuils",
      "no-thresholds": "Aucun seuil configuré",
      "add-threshold": "Ajouter un seuil",
      "show-values-for-comparison": "Afficher les valeurs historiques pour la comparaison",
      "comparison-values-label": "Étiquette des valeurs historiques",
      "comparison-line-color": "Couleur de la ligne de comparaison",
      "threshold-settings": "Paramètres des seuils",
      "use-as-threshold": "Utiliser la valeur de la clé comme seuil",
      "threshold-line-width": "Épaisseur de la ligne du seuil",
      "threshold-color": "Couleur du seuil",
      "common-pie-settings": "Paramètres communs du diagramme circulaire",
      "radius": "Rayon",
      "inner-radius": "Rayon intérieur",
      "tilt": "Inclinaison",
      "common-pie-settings-range-error": "La valeur doit être comprise entre 0 et 1",
      "stroke-settings": "Paramètres du contour",
      "width-pixels": "Largeur (pixels)",
      "show-labels": "Afficher les étiquettes",
      "animation-settings": "Paramètres d'animation",
      "animated-pie": "Activer l’animation du diagramme (expérimental)",
      "border-settings": "Paramètres de bordure",
      "border-width": "Épaisseur de la bordure",
      "border-color": "Couleur de la bordure",
      "legend-settings": "Paramètres de la légende",
      "display-legend": "Afficher la légende",
      "labels-font-color": "Couleur de la police des étiquettes",
      "series": "Séries",
      "add-series": "Ajouter une série",
      "series-settings": "Paramètres de la série",
      "remove-series": "Supprimer la série",
      "no-series": "Aucune série configurée",
      "no-series-error": "Au moins une série doit être spécifiée",
      "chart-appearance": "Apparence du graphique",
      "vertical-grid-lines": "Lignes de la grille verticale",
      "horizontal-grid-lines": "Lignes de la grille horizontale",
      "chart-background": "Arrière-plan du graphique",
      "grid-lines-color": "Couleur des lignes de la grille",
      "border": "Bordure",
      "axis": "Axe",
      "vertical-axis": "Axe vertical",
      "ticks": "Graduations",
      "horizontal-axis": "Axe horizontal",
      "shape-empty-circle": "Cercle vide",
      "shape-circle": "Cercle",
      "shape-rect": "Rectangle",
      "shape-round-rect": "Rectangle arrondi",
      "shape-triangle": "Triangle",
      "shape-diamond": "Losange",
      "shape-pin": "Épingle",
      "shape-arrow": "Flèche",
      "shape-none": "Aucune",
      "line-type-solid": "Solide",
      "line-type-dashed": "Tiretée",
      "line-type-dotted": "Pointillée",
      "label-position-top": "Haut",
      "label-position-bottom": "Bas",
      "label-position-outside": "Extérieur",
      "label-position-inside": "Intérieur",
      "fill": "Remplissage",
      "fill-type-none": "Aucun",
      "fill-type-solid": "Solide",
      "fill-type-opacity": "Opacité",
      "fill-type-gradient": "Dégradé",
      "background": "Arrière-plan",
      "opacity": "Opacité",
      "gradient-stops": "Points d’arrêt du dégradé",
      "gradient-start": "début",
      "gradient-end": "fin",
      "animation": {
        "animation": "Animation",
        "animation-threshold": "Seuil d’animation",
        "animation-duration": "Durée de l’animation",
        "animation-easing": "Courbe d’animation",
        "animation-delay": "Délai de l’animation",
        "update-animation-duration": "Durée de l’animation de mise à jour",
        "update-animation-easing": "Courbe de l’animation de mise à jour",
        "update-animation-delay": "Délai de l’animation de mise à jour"
      },
      "chart-axis": {
        "limit": "Limite",
        "source": "Source",
        "key-value": "Clé / valeur",
        "value-required": "La valeur est requise.",
        "entity-key-required": "La clé d’entité est requise.",
        "key-required": "La clé est requise.",
        "scale-limits": "Limites d’échelle",
        "scale-appearance": "Apparence de l’échelle",
        "scale": "Échelle",
        "scale-min": "min",
        "scale-max": "max",
        "scale-auto": "Auto"
      },
      "bar": {
        "show-border": "Afficher la bordure",
        "border-width": "Épaisseur de la bordure",
        "border-radius": "Rayon de la bordure",
        "bar-width": "Largeur de la barre",
        "label": "Étiquette",
        "label-hint": "Afficher l’étiquette au-dessus de la barre.",
        "series-label-hint": "Afficher l’étiquette avec la valeur au-dessus de la barre.",
        "label-background": "Arrière-plan de l’étiquette"
      }
    },
    "color": {
      "color-settings": "Paramètres de couleur",
      "color-type-constant": "Constante",
      "color-type-gradient": "Dégradé",
      "color-type-range": "Plage",
      "color-type-function": "Fonction",
      "color": "Couleur",
      "value-range": "Plage de valeurs",
      "from": "De",
      "to": "À",
      "color-function": "Fonction de couleur",
      "copy-color-settings-from": "Copier les paramètres de couleur depuis",
      "copy-from": "Copier depuis",
      "settings-type": "Type de paramètres",
      "basic-mode": "Basique",
      "advanced-mode": "Avancé",
      "entity-alias": "Alias d'entité",
      "entity-attribute": "Attribut d'entité",
      "gradient-color": "Couleur du dégradé",
      "gradient-color-min": "Couleur",
      "gradient-start": "Couleur de début du dégradé",
      "gradient-start-min": "Début",
      "gradient-end": "Couleur de fin du dégradé",
      "gradient-end-min": "Fin",
      "start-value": "Valeur de départ",
      "end-value": "Valeur de fin",
      "gradient-type": "Type de dégradé"
    },
    "dashboard-state": {
      "dashboard-state-settings": "Paramètres de l'état du tableau de bord",
      "dashboard-state": "ID de l'état du tableau de bord",
      "autofill-state-layout": "Remplir automatiquement la hauteur de la disposition de l'état par défaut",
      "default-margin": "Marge par défaut des widgets",
      "default-background-color": "Couleur de fond par défaut",
      "sync-parent-state-params": "Synchroniser les paramètres d'état avec le tableau de bord parent"
    },
    "date-range-navigator": {
      "date-range-picker-settings": "Paramètres du sélecteur de plage de dates",
      "hide-date-range-picker": "Masquer le sélecteur de plage de dates",
      "picker-one-panel": "Sélecteur de plage de dates à un panneau",
      "picker-auto-confirm": "Confirmation automatique du sélecteur de plage de dates",
      "picker-show-template": "Afficher le modèle de sélecteur de plage de dates",
      "first-day-of-week": "Premier jour de la semaine",
      "interval-settings": "Paramètres d'intervalle",
      "hide-interval": "Masquer l'intervalle",
      "initial-interval": "Intervalle initial",
      "interval-hour": "Heure",
      "interval-day": "Jour",
      "interval-week": "Semaine",
      "interval-two-weeks": "2 semaines",
      "interval-month": "Mois",
      "interval-three-months": "3 mois",
      "interval-six-months": "6 mois",
      "step-settings": "Paramètres du pas",
      "hide-step-size": "Masquer la taille du pas",
      "initial-step-size": "Taille du pas initiale",
      "hide-labels": "Masquer les étiquettes",
      "use-session-storage": "Utiliser le stockage de session",
      "localizationMap": {
        "Sun": "Dim",
        "Mon": "Lun",
        "Tue": "Mar",
        "Wed": "Mer",
        "Thu": "Jeu",
        "Fri": "Ven",
        "Sat": "Sam",
        "Jan": "Jan",
        "Feb": "Fév",
        "Mar": "Mar",
        "Apr": "Avr",
        "May": "Mai",
        "Jun": "Juin",
        "Jul": "Juil",
        "Aug": "Août",
        "Sep": "Sep",
        "Oct": "Oct",
        "Nov": "Nov",
        "Dec": "Déc",
        "January": "Janvier",
        "February": "Février",
        "March": "Mars",
        "April": "Avril",
        "June": "Juin",
        "July": "Juillet",
        "August": "Août",
        "September": "Septembre",
        "October": "Octobre",
        "November": "Novembre",
        "December": "Décembre",
        "Custom Date Range": "Plage de dates personnalisée",
        "Date Range Template": "Modèle de plage de dates",
        "Today": "Aujourd'hui",
        "Yesterday": "Hier",
        "This Week": "Cette semaine",
        "Last Week": "Semaine dernière",
        "This Month": "Ce mois-ci",
        "Last Month": "Mois dernier",
        "Year": "Année",
        "This Year": "Cette année",
        "Last Year": "Année dernière",
        "Date picker": "Sélecteur de date",
        "Hour": "Heure",
        "Day": "Jour",
        "Week": "Semaine",
        "2 weeks": "2 semaines",
        "Month": "Mois",
        "3 months": "3 mois",
        "6 months": "6 mois",
        "Custom interval": "Intervalle personnalisé",
        "Interval": "Intervalle",
        "Step size": "Taille du pas",
        "Ok": "OK"
      }
    },
    "doughnut": {
      "doughnut-appearance": "Apparence du diagramme en anneau",
      "layout": "Disposition",
      "layout-default": "Par défaut",
      "layout-with-total": "Avec total",
      "central-total-value": "Valeur totale centrale",
      "doughnut-card-style": "Style de carte du diagramme en anneau"
    },
    "entities-hierarchy": {
      "hierarchy-data-settings": "Paramètres des données hiérarchiques",
      "relations-query-function": "Fonction de requête des relations des nœuds",
      "has-children-function": "Fonction indiquant si le nœud a des enfants",
      "node-state-settings": "Paramètres d'état du nœud",
      "node-opened-function": "Fonction pour ouvrir le nœud par défaut",
      "node-disabled-function": "Fonction désactivant le nœud",
      "display-settings": "Paramètres d'affichage",
      "node-icon-function": "Fonction d'icône de nœud",
      "node-text-function": "Fonction de texte de nœud",
      "sort-settings": "Paramètres de tri",
      "nodes-sort-function": "Fonction de tri des nœuds"
    },
    "edge": {
      "display-default-title": "Afficher le titre par défaut"
    },
    "gateway": {
      "general-settings": "Paramètres généraux",
      "widget-title": "Titre du widget",
      "default-archive-file-name": "Nom de fichier d'archive par défaut",
      "device-type-for-new-gateway": "Type d'appareil pour une nouvelle passerelle",
      "messages-settings": "Paramètres des messages",
      "save-config-success-message": "Message texte sur la configuration de passerelle enregistrée avec succès",
      "device-name-exists-message": "Message texte indiquant qu'un appareil portant ce nom existe déjà",
      "gateway-title": "Formulaire de passerelle",
      "read-only": "Lecture seule",
      "events-title": "Titre du formulaire des événements de passerelle",
      "events-filter": "Filtre des événements",
      "event-key-contains": "Clé d'événement contient...",
      "show-connector": "Afficher pour le connecteur",
      "connector-state-param-key": "Clé de paramètre d'état du connecteur",
      "message": "Message",
      "level": "Niveau",
      "created-time": "Date de création"
    },
    "gauge": {
      "default-color": "Couleur par défaut",
      "radial-gauge-settings": "Paramètres du jauge radial",
      "ticks-settings": "Paramètres des graduations",
      "min-value": "Valeur minimale",
      "max-value": "Valeur maximale",
      "min-value-short": "min",
      "max-value-short": "max",
      "start-ticks-angle": "Angle de départ des graduations",
      "ticks-angle": "Angle des graduations",
      "major-ticks": "Graduations majeures",
      "major-ticks-count": "Nombre de graduations majeures",
      "major-ticks-color": "Couleur des graduations majeures",
      "minor-ticks": "Graduations mineures",
      "minor-ticks-count": "Nombre de graduations mineures",
      "minor-ticks-color": "Couleur des graduations mineures",
      "tick-numbers-font": "Police des nombres de graduation",
      "unit-title-settings": "Paramètres du titre de l'unité",
      "show-unit-title": "Titre des unités",
      "unit-title": "Titre de l'unité",
      "title-font": "Police du titre",
      "units-settings": "Paramètres des unités",
      "units-font": "Police du texte des unités",
      "value-box-settings": "Paramètres de la boîte de valeur",
      "show-value-box": "Afficher la boîte de valeur",
      "value-box": "Boîte de valeur",
      "value-int": "Nombre de chiffres pour la partie entière",
      "value-text": "Texte de la valeur",
      "value-text-shadow": "Ombre du texte de valeur",
      "value-font": "Police du texte de valeur",
      "rect-stroke-color-start": "Couleur de début du contour du rectangle",
      "rect-stroke-color-end": "Couleur de fin du contour du rectangle",
      "background-color": "Couleur de fond",
      "shadow-color": "Couleur de l'ombre",
      "value-box-rect-stroke-color": "Couleur du contour de la boîte de valeur",
      "value-box-rect-stroke-color-end": "Couleur de fin du contour de la boîte de valeur",
      "value-box-background-color": "Couleur de fond de la boîte de valeur",
      "value-box-shadow-color": "Couleur de l'ombre de la boîte de valeur",
      "plate-settings": "Paramètres de la plaque",
      "show-plate-border": "Bordure de la plaque",
      "plate-color": "Couleur de la plaque",
      "needle-settings": "Paramètres de l'aiguille",
      "needle-circle-size": "Taille du cercle de l'aiguille",
      "needle-color": "Couleur de l'aiguille",
      "needle-color-start": "Couleur de l'aiguille - début du gradient",
      "needle-color-end": "Couleur de l'aiguille - fin du gradient",
      "needle-color-shadow-up": "Couleur de l'ombre supérieure de l'aiguille",
      "needle-color-shadow-down": "Ombre portée",
      "highlights-settings": "Paramètres des surlignages",
      "highlights-width": "Largeur des surlignages",
      "highlights": "Surlignages",
      "highlight-from": "De",
      "highlight-to": "À",
      "highlight-color": "Couleur",
      "no-highlights": "Aucun surlignage configuré",
      "add-highlight": "Ajouter un surlignage",
      "animation-settings": "Paramètres d'animation",
      "enable-animation": "Animation",
      "animation-duration-rule": "Durée et règle d'animation",
      "animation-duration": "Durée de l'animation",
      "animation-rule": "Règle d'animation",
      "animation-linear": "Linéaire",
      "animation-quad": "Quad",
      "animation-quint": "Quint",
      "animation-cycle": "Cycle",
      "animation-bounce": "Rebond",
      "animation-elastic": "Élastique",
      "animation-dequad": "Déquad",
      "animation-dequint": "Déquint",
      "animation-decycle": "Décyle",
      "animation-debounce": "Dérebon",
      "animation-delastic": "Délastic",
      "linear-gauge-settings": "Paramètres de jauge linéaire",
      "bar-stroke": "Contour de la barre",
      "bar-stroke-width": "Largeur du contour de la barre",
      "bar-stroke-color": "Couleur du contour de la barre",
      "bar-background-color": "Couleur de fond de la barre - début du gradient",
      "bar-background-color-end": "Couleur de fond de la barre - fin du gradient",
      "progress-bar-color": "Couleur de la barre de progression",
      "progress-bar": "Barre de progression",
      "progress-bar-color-start": "Couleur de la barre de progression - début du gradient",
      "progress-bar-color-end": "Couleur de la barre de progression - fin du gradient",
      "major-ticks-names": "Noms des graduations majeures",
      "show-stroke-ticks": "Afficher les traits des graduations",
      "major-ticks-font": "Police des graduations majeures",
      "border-color": "Couleur de bordure",
      "border-width": "Largeur de bordure",
      "needle-circle": "Cercle de l'aiguille",
      "needle-circle-color": "Couleur du cercle de l'aiguille",
      "animation-target": "Cible d'animation",
      "animation-target-needle": "Aiguille",
      "animation-target-plate": "Plaque",
      "common-settings": "Paramètres communs de jauge",
      "gauge-type": "Type de jauge",
      "gauge-type-arc": "Arc",
      "gauge-type-donut": "Donut",
      "gauge-type-horizontal-bar": "Barre horizontale",
      "gauge-type-vertical-bar": "Barre verticale",
      "donut-start-angle": "Angle de départ (degrés)",
      "bar-settings": "Paramètres de barre de jauge",
      "relative-bar-width": "Largeur relative de la barre",
      "neon-glow-brightness": "Luminosité de l'effet néon (0-100)",
      "neon-glow-brightness-hint": "0 - désactiver l'effet",
      "stripes-thickness": "Épaisseur des rayures",
      "stripes-thickness-hint": "0 - pas de rayures",
      "rounded-line-cap": "Extrémités arrondies",
      "bar-color-settings": "Paramètres de couleur de barre",
      "use-precise-level-color-values": "Utiliser des niveaux de couleur précis",
      "bar-colors": "Couleurs de la barre, du plus bas au plus haut",
      "color": "Couleur",
      "no-bar-colors": "Aucune couleur de barre configurée",
      "add-bar-color": "Ajouter une couleur de barre",
      "from": "De",
      "to": "À",
      "fixed-level-colors": "Couleurs de barre utilisant des valeurs limites",
      "gauge-title-settings": "Paramètres du titre de jauge",
      "show-gauge-title": "Afficher le titre de la jauge",
      "gauge-title": "Titre de la jauge",
      "gauge-title-font": "Police du titre de la jauge",
      "unit-title-and-timestamp-settings": "Paramètres du titre d'unité et de l'horodatage",
      "show-timestamp": "Horodatage",
      "timestamp-format": "Format d'horodatage",
      "label-font": "Police de l'étiquette sous la valeur",
      "value-settings": "Paramètres de valeur",
      "show-value": "Afficher le texte de valeur",
      "min-max-settings": "Paramètres des étiquettes min/max",
      "show-min-max": "Afficher les valeurs min et max",
      "min-max-font": "Police des étiquettes min et max",
      "show-ticks": "Afficher les graduations",
      "tick-width": "Largeur des graduations",
      "tick-color": "Couleur des graduations",
      "tick-values": "Valeurs de graduation",
      "no-tick-values": "Aucune valeur de graduation configurée",
      "add-tick-value": "Ajouter une valeur de graduation",
      "gauge-appearance": "Apparence de la jauge",
      "units-title": "Titre des unités",
      "value": "Valeur",
      "ticks": "Graduations",
      "arrow-and-scale-color": "Couleur par défaut de la flèche et de l'échelle",
      "scale-settings": "Paramètres de l'échelle",
      "scale": "Échelle",
      "scale-color": "Couleurs de l'échelle",
      "compass-appearance": "Apparence de la boussole",
      "label": "Étiquette",
      "labels": "Étiquettes",
      "label-style": "Style de l'étiquette",
      "simple-gauge-type": "Type",
      "gauge-bar-background": "Fond de la barre de jauge",
      "bar-color": "Couleur de la barre",
      "min-and-max-value": "Valeur min et max",
      "min-and-max-label": "Étiquette min et max",
      "font": "Police",
      "tick-width-and-color": "Largeur et couleur des graduations",
      "min-max-validation-text": "La valeur maximale doit être supérieure à la valeur minimale"
    },
    "gpio": {
      "pin": "Broche",
      "label": "Étiquette",
      "row": "Ligne",
      "column": "Colonne",
      "color": "Couleur",
      "panel-settings": "Paramètres du panneau",
      "background-color": "Couleur de fond",
      "gpio-switches": "Interrupteurs GPIO",
      "no-gpio-switches": "Aucun interrupteur GPIO configuré",
      "add-gpio-switch": "Ajouter un interrupteur GPIO",
      "gpio-status-request": "Requête de statut GPIO",
      "method-name": "Nom de la méthode",
      "method-body": "Corps de la méthode",
      "gpio-status-change-request": "Requête de changement de statut GPIO",
      "parse-gpio-status-function": "Fonction de traitement du statut GPIO",
      "gpio-leds": "LEDs GPIO",
      "no-gpio-leds": "Aucune LED GPIO configurée",
      "add-gpio-led": "Ajouter une LED GPIO"
    },
    "html-card": {
      "html": "HTML",
      "css": "CSS"
    },
    "input-widgets": {
      "attribute-not-allowed": "Le paramètre d'attribut ne peut pas être utilisé dans ce widget",
      "blocked-location": "La géolocalisation est bloquée dans votre navigateur",
      "claim-device": "Réclamer l'appareil",
      "claim-failed": "Échec de la réclamation de l'appareil !",
      "claim-not-found": "Appareil introuvable !",
      "claim-successful": "L'appareil a été réclamé avec succès !",
      "date": "Date",
      "device-name": "Nom de l'appareil",
      "device-name-required": "Le nom de l'appareil est requis",
      "discard-changes": "Annuler les modifications",
      "entity-attribute-required": "L'attribut d'entité est requis",
      "entity-coordinate-required": "Les deux champs, latitude et longitude, sont requis",
      "entity-timeseries-required": "La série temporelle de l'entité est requise",
      "get-location": "Obtenir la position actuelle",
      "invalid-date": "Date invalide",
      "latitude": "Latitude",
      "longitude": "Longitude",
      "min-value-error": "Valeur minimale : {{value}}",
      "max-value-error": "Valeur maximale : {{value}}",
      "not-allowed-entity": "L'entité sélectionnée ne peut pas avoir d'attributs partagés",
      "no-attribute-selected": "Aucun attribut sélectionné",
      "no-datakey-selected": "Aucune clé de données sélectionnée",
      "no-coordinate-specified": "La clé de données pour latitude/longitude n'est pas spécifiée",
      "no-entity-selected": "Aucune entité sélectionnée",
      "no-image": "Aucune image",
      "no-support-geolocation": "Votre navigateur ne prend pas en charge la géolocalisation",
      "no-support-web-camera": "Votre navigateur ne prend pas en charge les caméras",
      "enable-https-use-widget": "Veuillez activer HTTPS pour utiliser ce widget",
      "no-found-your-camera": "Impossible de trouver votre caméra",
      "no-permission-camera": "Permission refusée / Ce site n'a pas l'autorisation d'utiliser la caméra",
      "no-timeseries-selected": "Aucune série temporelle sélectionnée",
      "secret-key": "Clé secrète",
      "secret-key-required": "La clé secrète est requise",
      "switch-attribute-value": "Basculer la valeur de l'attribut de l'entité",
      "switch-camera": "Changer de caméra",
      "switch-timeseries-value": "Basculer la valeur de la série temporelle de l'entité",
      "take-photo": "Prendre une photo",
      "time": "Heure",
      "timeseries-not-allowed": "Le paramètre de série temporelle ne peut pas être utilisé dans ce widget",
      "update-failed": "Échec de la mise à jour",
      "update-successful": "Mise à jour réussie",
      "update-attribute": "Mettre à jour l'attribut",
      "update-timeseries": "Mettre à jour la série temporelle",
      "value": "Valeur",
      "general-settings": "Paramètres généraux",
      "widget-title": "Titre du widget",
      "claim-button-label": "Étiquette du bouton de réclamation",
      "show-secret-key-field": "Afficher le champ de saisie 'Clé secrète'",
      "labels-settings": "Paramètres des étiquettes",
      "show-labels": "Afficher les étiquettes",
      "device-name-label": "Étiquette pour le champ de nom d'appareil",
      "secret-key-label": "Étiquette pour le champ de clé secrète",
      "messages-settings": "Paramètres des messages",
      "claim-device-success-message": "Message de succès pour la réclamation de l'appareil",
      "claim-device-not-found-message": "Message lorsque l'appareil est introuvable",
      "claim-device-failed-message": "Message d'échec pour la réclamation de l'appareil",
      "claim-device-name-required-message": "Message d'erreur 'Nom de l'appareil requis'",
      "claim-device-secret-key-required-message": "Message d'erreur 'Clé secrète requise'",
      "show-label": "Afficher l'étiquette",
      "label": "Étiquette",
      "required": "Requis",
      "required-error-message": "Message d'erreur 'Requis'",
      "show-result-message": "Afficher le message de résultat",
      "integer-field-settings": "Paramètres du champ entier",
      "min-value": "Valeur minimale",
      "max-value": "Valeur maximale",
      "double-field-settings": "Paramètres du champ double",
      "text-field-settings": "Paramètres du champ texte",
      "min-length": "Longueur minimale",
      "max-length": "Longueur maximale",
      "checkbox-settings": "Paramètres de la case à cocher",
      "true-label": "Étiquette cochée",
      "false-label": "Étiquette décochée",
      "image-input-settings": "Paramètres d'entrée d'image",
      "display-preview": "Afficher l’aperçu",
      "display-clear-button": "Afficher le bouton de réinitialisation",
      "display-apply-button": "Afficher le bouton d’application",
      "display-discard-button": "Afficher le bouton d’annulation",
      "datetime-field-settings": "Paramètres du champ date/heure",
      "display-time-input": "Afficher le champ d'heure",
      "latitude-key-name": "Nom de la clé latitude",
      "longitude-key-name": "Nom de la clé longitude",
      "show-get-location-button": "Afficher le bouton 'Obtenir la position actuelle'",
      "use-high-accuracy": "Utiliser une haute précision",
      "location-fields-settings": "Paramètres des champs de localisation",
      "latitude-label": "Étiquette de latitude",
      "longitude-label": "Étiquette de longitude",
      "input-fields-alignment": "Alignement des champs de saisie",
      "input-fields-alignment-column": "Colonne (par défaut)",
      "input-fields-alignment-row": "Ligne",
      "layout": "Disposition",
      "row-gap": "Espace entre les lignes (en pixels)",
      "column-gap": "Espace entre les colonnes (en pixels)",
      "latitude-field-required": "Le champ latitude est requis",
      "longitude-field-required": "Le champ longitude est requis",
      "attribute-settings": "Paramètres des attributs",
      "widget-mode": "Mode du widget",
      "widget-mode-update-attribute": "Mettre à jour l’attribut",
      "widget-mode-update-timeseries": "Mettre à jour la série temporelle",
      "attribute-scope": "Portée de l’attribut",
      "attribute-scope-server": "Attribut serveur",
      "attribute-scope-shared": "Attribut partagé",
      "value-required": "Valeur requise",
      "image-settings": "Paramètres de l’image",
      "image-format": "Format d’image",
      "image-format-jpeg": "JPEG",
      "image-format-png": "PNG",
      "image-format-webp": "WEBP",
      "image-quality": "Qualité d’image (utilise la compression avec perte pour jpeg/webp)",
      "max-image-width": "Largeur maximale de l’image",
      "max-image-height": "Hauteur maximale de l’image",
      "action-buttons": "Boutons d'action",
      "show-action-buttons": "Afficher les boutons d'action",
      "update-all-values": "Mettre à jour toutes les valeurs, pas seulement les modifiées",
      "save-button-label": "Étiquette du bouton 'ENREGISTRER'",
      "reset-button-label": "Étiquette du bouton 'ANNULER'",
      "group-settings": "Paramètres de groupe",
      "show-group-title": "Afficher le titre du groupe de champs liés à différentes entités",
      "group-title": "Titre du groupe",
      "fields-alignment": "Alignement des champs",
      "fields-alignment-row": "Ligne (par défaut)",
      "fields-alignment-column": "Colonne",
      "fields-in-row": "Nombre de champs par ligne",
      "option-value": "Valeur (écrire 'null' pour créer une option vide)",
      "option-label": "Étiquette",
      "hide-input-field": "Masquer le champ de saisie",
      "datakey-type": "Type de clé de données",
      "datakey-type-server": "Attribut serveur (par défaut)",
      "datakey-type-shared": "Attribut partagé",
      "datakey-type-timeseries": "Série temporelle",
      "datakey-value-type": "Type de valeur de la clé de données",
      "datakey-value-type-string": "Chaîne",
      "datakey-value-type-double": "Double",
      "datakey-value-type-integer": "Entier",
      "datakey-value-type-json": "JSON",
      "datakey-value-type-boolean-checkbox": "Booléen (Case à cocher)",
      "datakey-value-type-boolean-switch": "Booléen (Interrupteur)",
      "datakey-value-type-date-time": "Date et heure",
      "datakey-value-type-date": "Date",
      "datakey-value-type-time": "Heure",
      "datakey-value-type-select": "Liste déroulante",
      "datakey-value-type-radio": "Boutons radio",
      "datakey-value-type-color": "Couleur",
      "value-is-required": "La valeur est requise",
      "ability-to-edit-attribute": "Capacité à modifier l’attribut",
      "ability-to-edit-attribute-editable": "Modifiable (par défaut)",
      "ability-to-edit-attribute-disabled": "Désactivé",
      "ability-to-edit-attribute-readonly": "Lecture seule",
      "disable-on-datakey-name": "Désactiver selon la valeur 'false' d’une autre clé (spécifiez le nom de la clé)",
      "field-appearance": "Apparence du champ",
      "appearance-fill": "Remplissage",
      "appearance-outline": "Contour",
      "subscript-sizing": "Taille des indices",
      "subscript-sizing-fixed": "Fixe",
      "subscript-sizing-dynamic": "Dynamique",
      "slide-toggle-settings": "Paramètres de l’interrupteur coulissant",
      "slide-toggle-label-position": "Position de l’étiquette de l’interrupteur",
      "slide-toggle-label-position-after": "Après",
      "slide-toggle-label-position-before": "Avant",
      "select-options": "Options de sélection",
      "no-select-options": "Aucune option de sélection configurée",
      "add-select-option": "Ajouter une option de sélection",
      "numeric-field-settings": "Paramètres du champ numérique",
      "step-interval": "Intervalle entre les valeurs",
      "error-messages": "Messages d’erreur",
      "min-value-error-message": "Message d’erreur de la 'valeur minimale'",
      "max-value-error-message": "Message d’erreur de la 'valeur maximale'",
      "invalid-date-error-message": "Message d’erreur de 'date invalide'",
      "invalid-JSON-error-message": "Message d’erreur de 'JSON invalide'",
      "icon-settings": "Paramètres de l’icône",
      "dialog-editor-settings": "Paramètres de l’éditeur de dialogue",
      "use-custom-icon": "Utiliser une icône personnalisée",
      "input-cell-icon": "Icône à afficher avant le champ de saisie",
      "value-conversion-settings": "Paramètres de conversion de valeur",
      "get-value-settings": "Paramètres de récupération de valeur",
      "use-get-value-function": "Utiliser la fonction getValue",
      "get-value-function": "Fonction getValue",
      "set-value-settings": "Paramètres de définition de valeur",
      "use-set-value-function": "Utiliser la fonction setValue",
      "set-value-function": "Fonction setValue",
      "json-invalid": "Le format de la valeur JSON est invalide",
      "title": "Titre",
      "cancel-button-label": "Étiquette du bouton 'Annuler'",
      "radio-button-settings": "Paramètres des boutons radio",
      "color": "Couleur",
      "columns": "Colonnes",
      "radio-options": "Options radio",
      "no-radio-options": "Aucune option radio configurée",
      "add-radio-option": "Ajouter une option radio",
      "radio-label-position": "Position de l’étiquette",
      "radio-label-position-before": "Avant",
      "radio-label-position-after": "Après",
      "save-image": "Enregistrer l’image",
      "save-to-gallery": "Enregistrer automatiquement les images capturées dans la galerie d’images",
      "public-image": "Rendre l’image disponible pour tout utilisateur non autorisé"
    },
    "invalid-qr-code-text": "Texte saisi invalide pour le code QR. L'entrée doit être une chaîne de caractères",
    "qr-code": {
      "use-qr-code-text-function": "Utiliser une fonction de texte pour le code QR",
      "qr-code-text-pattern": "Modèle de texte du code QR (par ex. '${entityName} | ${keyName} - texte.')",
      "qr-code-text-pattern-hint": "Le modèle de texte du code QR utilise la valeur de la première clé trouvée dans les entités de l'alias d'entité.",
      "qr-code-text-pattern-required": "Le modèle de texte du code QR est requis.",
      "qr-code-text-function": "Fonction de texte du code QR"
    },
    "label-widget": {
      "label-pattern": "Modèle",
      "label-pattern-hint": "Astuce: par ex. 'Texte <code><span style=\"color: #000;\">$&#123;</span>keyName<span style=\"color: #000;\">&#125;</span></code> unités.' ou <code><span style=\"color: #000;\">$&#123;</span>#&lt;key index&gt;<span style=\"color: #000;\">&#125;</span></code> unités",
      "label-pattern-required": "Le modèle est requis",
      "label-position": "Position (pourcentage par rapport à l’arrière-plan)",
      "x-pos": "X",
      "y-pos": "Y",
      "background-color": "Couleur de fond",
      "font-settings": "Paramètres de la police",
      "background-image": "Image de fond",
      "labels": "Étiquettes",
      "no-labels": "Aucune étiquette configurée",
      "add-label": "Ajouter une étiquette"
    },
    "navigation": {
      "title": "Titre",
      "navigation-path": "Chemin de navigation",
      "filter-type": "Type de filtre",
      "filter-type-all": "Tous les éléments",
      "filter-type-include": "Inclure les éléments",
      "filter-type-exclude": "Exclure les éléments",
      "items": "Éléments",
      "enter-urls-to-filter": "Saisissez les URLs à filtrer..."
    },
    "persistent-table": {
      "rpc-id": "ID RPC",
      "message-type": "Type de message",
      "method": "Méthode",
      "params": "Paramètres",
      "created-time": "Heure de création",
      "expiration-time": "Date d’expiration",
      "retries": "Tentatives",
      "status": "Statut",
      "filter": "Filtrer",
      "refresh": "Actualiser",
      "add": "Ajouter une requête RPC",
      "details": "Détails",
      "delete": "Supprimer",
      "delete-request-title": "Supprimer la requête RPC persistante",
      "delete-request-text": "Êtes-vous sûr de vouloir supprimer cette requête ?",
      "details-title": "Détails ID RPC : ",
      "additional-info": "Informations supplémentaires",
      "response": "Réponse",
      "any-status": "Tous les statuts",
      "rpc-status-list": "Liste des statuts RPC",
      "no-request-prompt": "Aucune requête à afficher",
      "send-request": "Envoyer la requête",
      "add-title": "Créer une requête RPC persistante",
      "method-error": "La méthode est requise.",
      "timeout-error": "La valeur minimale du délai d’attente est de 5000 (5 secondes).",
      "white-space-error": "Les espaces ne sont pas autorisés.",
      "rpc-status": {
        "QUEUED": "EN FILE",
        "SENT": "ENVOYÉ",
        "DELIVERED": "LIVRÉ",
        "SUCCESSFUL": "RÉUSSI",
        "TIMEOUT": "DÉLAI DÉPASSÉ",
        "EXPIRED": "EXPIRÉ",
        "FAILED": "ÉCHOUÉ"
      },
      "rpc-search-status-all": "TOUS",
      "message-types": {
        "false": "Bidirectionnel",
        "true": "Unidirectionnel"
      },
      "general-settings": "Paramètres généraux",
      "enable-filter": "Activer le filtre",
      "enable-sticky-header": "Afficher l’en-tête pendant le défilement",
      "enable-sticky-action": "Afficher la colonne des actions pendant le défilement",
      "display-request-details": "Afficher les détails de la requête",
      "allow-send-request": "Autoriser l’envoi de requêtes RPC",
      "allow-delete-request": "Autoriser la suppression de requêtes",
      "columns-settings": "Paramètres des colonnes",
      "display-columns": "Colonnes à afficher",
      "column": "Colonne",
      "no-columns-found": "Aucune colonne trouvée",
      "no-columns-matching": "'{{column}}' introuvable."
    },
    "range-chart": {
      "chart": "Graphique",
      "data-zoom": "Zoom des données",
      "range-chart-appearance": "Apparence du graphique à plages",
      "range-colors": "Couleurs de plage",
      "out-of-range-color": "Couleur hors plage",
      "show-range-thresholds": "Afficher les seuils de plage",
      "range-thresholds-settings": "Paramètres des seuils de plage",
      "fill-area": "Remplir la zone",
      "fill-area-opacity": "Opacité de la zone remplie",
      "range-chart-style": "Style du graphique à plages"
    },
    "knob": {
      "behavior": "Comportement",
      "initial-value": "Valeur initiale",
      "initial-value-hint": "Action permettant d'obtenir la valeur initiale du bouton rotatif.",
      "on-value-change": "Lors du changement de valeur",
      "on-value-change-hint": "Action déclenchée lorsque la valeur du bouton rotatif est modifiée.",
      "range": "Plage",
      "min": "min",
      "max": "max",
      "value": "Valeur",
      "fallback-initial-value": "Valeur initiale de secours"
    },
    "rpc": {
      "value-settings": "Paramètres de la valeur",
      "initial-value": "Valeur initiale",
      "retrieve-value-settings": "Paramètres de récupération de la valeur marche/arrêt",
      "retrieve-value-method": "Récupérer la valeur via la méthode",
      "retrieve-value-method-none": "Ne pas récupérer",
      "retrieve-value-method-rpc": "Appeler la méthode RPC de récupération",
      "retrieve-value-method-attribute": "S'abonner à un attribut",
      "retrieve-value-method-timeseries": "S'abonner à une série temporelle",
      "attribute-value-key": "Clé de l'attribut",
      "timeseries-value-key": "Clé de la série temporelle",
      "get-value-method": "Méthode RPC de récupération",
      "parse-value-function": "Fonction d'analyse de la valeur",
      "update-value-settings": "Paramètres de mise à jour de la valeur",
      "set-value-method": "Méthode RPC de mise à jour",
      "convert-value-function": "Fonction de conversion de la valeur",
      "rpc-settings": "Paramètres RPC",
      "request-timeout": "Délai d'attente de la requête RPC (ms)",
      "persistent-rpc-settings": "Paramètres RPC persistants",
      "request-persistent": "Requête RPC persistante",
      "persistent-polling-interval": "Intervalle de sondage (ms) pour la réponse RPC persistante",
      "common-settings": "Paramètres communs",
      "switch-title": "Titre de l'interrupteur",
      "show-on-off-labels": "Afficher les étiquettes marche/arrêt",
      "slide-toggle-label": "Étiquette du curseur",
      "label-position": "Position de l’étiquette",
      "label-position-before": "Avant",
      "label-position-after": "Après",
      "slider-color": "Couleur du curseur",
      "slider-color-primary": "Principal",
      "slider-color-accent": "Accent",
      "slider-color-warn": "Avertissement",
      "button-style": "Style de bouton",
      "button-raised": "Bouton en relief",
      "button-primary": "Couleur principale",
      "button-background-color": "Couleur d’arrière-plan du bouton",
      "button-text-color": "Couleur du texte du bouton",
      "widget-title": "Titre du widget",
      "button-label": "Étiquette du bouton",
      "device-attribute-scope": "Portée de l'attribut de l'appareil",
      "server-attribute": "Attribut serveur",
      "shared-attribute": "Attribut partagé",
      "device-attribute-parameters": "Paramètres d’attribut de l’appareil",
      "is-one-way-command": "Commande à sens unique",
      "rpc-method": "Méthode RPC",
      "rpc-method-params": "Paramètres de la méthode RPC",
      "show-rpc-error": "Afficher les erreurs d’exécution RPC",
      "led-title": "Titre LED",
      "led-color": "Couleur LED",
      "check-status-settings": "Paramètres de vérification de statut",
      "perform-rpc-status-check": "Effectuer une vérification de statut de l’appareil via RPC",
      "retrieve-led-status-value-method": "Méthode de récupération de l'état LED",
      "led-status-value-attribute": "Attribut de l’appareil contenant l’état LED",
      "led-status-value-timeseries": "Série temporelle contenant l’état LED",
      "check-status-method": "Méthode RPC de vérification de l’état de l’appareil",
      "parse-led-status-value-function": "Fonction d’analyse de l’état LED",
      "knob-title": "Titre du bouton rotatif"
    },
    "maps": {
      "map-type": {
        "type": "Type de carte",
        "map": "Carte",
        "image": "Image"
      },
      "image": {
        "image-source": "Source de l’image",
        "image-source-image": "Image",
        "image-source-entity-key": "Clé d’entité",
        "source-entity-alias": "Alias d'entité source",
        "image-url-key": "Clé de l’URL de l’image",
        "image-url-key-required": "La clé de l’URL de l’image est requise"
      },
      "control": {
        "map-controls": "Contrôles de la carte",
        "position": "Position",
        "position-topleft": "En haut à gauche",
        "position-topright": "En haut à droite",
        "position-bottomleft": "En bas à gauche",
        "position-bottomright": "En bas à droite",
        "zoom-actions": "Actions de zoom",
        "zoom-scroll": "Défilement",
        "zoom-double-click": "Double-clic",
        "zoom-control-buttons": "Boutons de contrôle",
        "scale": "Échelle",
        "scale-metric": "Métrique",
        "scale-imperial": "Impérial",
        "switch-to-drag-mode-using-button": "Basculer en mode glisser via le bouton"
      },
      "timeline": {
        "control-panel": "Panneau de contrôle de la chronologie",
        "time-step": "Intervalle de temps",
        "speed-options": "Options de vitesse",
        "timestamp": "Horodatage",
        "snap-to-real-location": "Aligner sur la position réelle",
        "location-snap-filter-function": "Fonction de filtrage pour alignement de position",
        "no-trips-data-available": "Aucune donnée de trajet disponible"
      },
      "map-action": {
        "map-action-buttons": "Boutons d’action sur la carte",
        "label": "Étiquette",
        "icon": "Icône",
        "color": "Couleur",
        "action": "Action",
        "add-button": "Ajouter un bouton",
        "no-action-buttons-configured": "Aucun bouton d'action configuré",
        "remove-action-button": "Supprimer le bouton d'action",
        "map-action-button": "Bouton d’action sur la carte",
        "button-requires": "Le bouton nécessite une étiquette ou une icône"
      },
      "common": {
        "common-map-settings": "Paramètres de carte communs",
        "fit-map-bounds": "Ajuster les limites de la carte pour couvrir tous les marqueurs",
        "default-map-center-position": "Position centrale par défaut de la carte",
        "default-map-zoom-level": "Niveau de zoom par défaut",
        "entities-limit": "Limite d’entités à charger"
      },
      "layer": {
        "label": "Étiquette",
        "layer": "Couche",
        "layers": "Couches",
        "map-layers": "Couches de carte",
        "add-layer": "Ajouter une couche",
        "layer-settings": "Paramètres de la couche",
        "remove-layer": "Supprimer la couche",
        "no-layers": "Aucune couche configurée",
        "roadmap": "Plan",
        "satellite": "Satellite",
        "hybrid": "Hybride",
        "reference": {
          "reference-layer": "Couche de référence",
          "no-layer": "Aucune couche",
          "openstreetmap-hybrid": "Hybride OpenStreetMap",
          "world-edition-hybrid": "Hybride Édition Mondiale",
          "enhanced-contrast-hybrid": "Hybride à contraste amélioré"
        },
        "provider": {
          "provider": "Fournisseur",
          "openstreet": {
            "title": "OpenStreet",
            "mapnik": "Mapnik",
            "hot": "HOT",
            "esri-street": "WorldStreetMap",
            "esri-topo": "WorldTopoMap",
            "esri-imagery": "WorldImagery",
            "cartodb-positron": "Positron",
            "cartodb-dark-matter": "DarkMatter"
          },
          "google": {
            "title": "Google",
            "roadmap": "Plan",
            "satellite": "Satellite",
            "hybrid": "Hybride",
            "terrain": "Relief"
          },
          "here": {
            "title": "HERE",
            "normal-day": "Jour normal",
            "normal-night": "Nuit normale",
            "hybrid-day": "Hybride jour",
            "terrain-day": "Relief jour"
          },
          "tencent": {
            "title": "Tencent",
            "normal": "Normal",
            "satellite": "Satellite",
            "terrain": "Relief"
          },
          "custom": {
            "title": "Personnalisé",
            "tile-url": "URL des tuiles"
          }
        },
        "credentials": {
          "credentials": "Identifiants",
          "api-key": "Clé API"
        }
      },
      "overlays": {
        "overlays": "Superpositions",
        "overlays-hint": "Configurer les sources de données, l’apparence, le comportement, les options d’édition et le regroupement pour les entités cartographiques",
        "trips": "Trajets",
        "markers": "Marqueurs",
        "polygons": "Polygones",
        "circles": "Cercles",
        "polylines": "Polylignes"
      },
      "data-layer": {
        "source": "Source",
        "filter": "Filtre",
        "additional-data-keys": "Clés de données supplémentaires",
        "additional-datasources": "Sources de données supplémentaires",
        "additional-datasources-hint": "Source de données pour accéder aux attributs ou à la télémétrie d'entités non affichées sur la carte, utilisable dans les fonctions de superposition.",
        "more-datasources": "Plus de sources de données",
        "data-keys": "Clés de données",
        "add-datasource": "Ajouter une source de données",
        "no-datasources": "Aucune source de données configurée",
        "remove-datasource": "Supprimer la source de données",
        "behavior": "Comportement",
        "on-click": "Au clic",
        "on-click-hint": "Action déclenchée lors d’un clic sur l’élément de la carte.",
        "groups": "Groupes",
        "groups-hint": "Liste des noms de groupes attribués à la superposition, utilisée pour basculer sa visibilité sur la carte.",
        "color": "Couleur",
        "color-settings": "Paramètres de couleur",
        "color-type-constant": "Constante",
        "color-type-range": "Plage",
        "color-type-function": "Fonction",
        "color-range-source-key": "Clé source de la plage de couleurs",
        "color-range-source-key-required": "La clé source de la plage de couleurs est requise",
        "color-range": "Plage de couleurs",
        "color-function": "Fonction de couleur",
        "label": "Étiquette",
        "tooltip": "Infobulle",
        "pattern-type-pattern": "Motif",
        "pattern-type-function": "Fonction",
        "label-pattern": "Étiquette (exemples de motifs : '${entityName}', '${entityName}: (Texte ${keyName} unités.)' )",
        "label-function": "Fonction d’étiquette",
        "tooltip-pattern": "Infobulle (ex. 'Texte ${keyName} unités.' ou <link-act name='my-action'>Texte du lien</link-act>)",
        "tooltip-function": "Fonction d’infobulle",
        "tooltip-trigger": "Déclencheur d’infobulle",
        "tooltip-trigger-click": "Afficher l’infobulle au clic",
        "tooltip-trigger-hover": "Afficher l’infobulle au survol",
        "auto-close-tooltips": "Fermeture automatique des infobulles",
        "tooltip-offset": "Décalage de l’infobulle",
        "tooltip-offset-horizontal": "Horizontal",
        "tooltip-offset-vertical": "Vertical",
        "tooltip-tag-actions": "Actions de balise",
        "add-tooltip-tag-action": "Ajouter une action de balise",
        "edit-tooltip-tag-action": "Modifier l’action de balise",
        "remove-tooltip-tag-action": "Supprimer l’action de balise",
        "action-add": "Ajouter",
        "action-edit": "Modifier",
        "action-move": "Déplacer",
        "action-remove": "Supprimer",
        "edit-instruments": "Outils d’édition",
        "persist-location-attribute-scope": "Portée de l’attribut pour la persistance de la position",
        "enable-snapping": "Activer l’alignement sur d’autres sommets pour un dessin précis",
        "enable-snapping-hint": "Aligne automatiquement les nouveaux points avec les formes existantes pour faciliter le dessin.",
        "drag-drop-mode": "Mode glisser-déposer",
        "trip": {
          "no-trips": "Aucun trajet configuré",
          "add-trip": "Ajouter un trajet",
          "trip-configuration": "Configuration du trajet",
          "remove-trip": "Supprimer le trajet"
        },
        "marker": {
          "marker": "Marqueur",
          "latitude-key": "Clé de latitude",
          "longitude-key": "Clé de longitude",
          "x-pos-key": "Clé de position X",
          "y-pos-key": "Clé de position Y",
          "latitude-key-required": "Clé de latitude requise",
          "longitude-key-required": "Clé de longitude requise",
          "x-pos-key-required": "Clé de position X requise",
          "y-pos-key-required": "Clé de position Y requise",
          "no-markers": "Aucun marqueur configuré",
          "add-marker": "Ajouter un marqueur",
          "marker-configuration": "Configuration du marqueur",
          "remove-marker": "Supprimer le marqueur",
          "marker-type": "Type de marqueur",
          "marker-type-shape": "Forme",
          "marker-type-icon": "Icône",
          "marker-type-image": "Image",
          "shape": "Forme",
          "icon": "Icône",
          "image": "Image",
          "marker-shapes": "Formes de marqueur",
          "marker-icon": "Icône du marqueur",
          "marker-appearance": "Apparence du marqueur",
          "marker-image": "Image du marqueur",
          "marker-image-type-image": "Image",
          "marker-image-type-function": "Fonction",
          "custom-marker-image-size": "Taille personnalisée de l’image du marqueur",
          "marker-image-function": "Fonction d’image du marqueur",
          "marker-images": "Images du marqueur",
          "marker-offset": "Décalage du marqueur",
          "offset-horizontal": "Horizontal",
          "offset-vertical": "Vertical",
          "rotate-marker": "Faire pivoter le marqueur",
          "offset-angle": "Angle de décalage",
          "position-conversion": "Conversion de position",
          "position-conversion-function": "Fonction de conversion de position, doit renvoyer les coordonnées x, y entre 0 et 1",
          "clustering": {
            "use-map-markers-clustering": "Utiliser le regroupement des marqueurs sur la carte",
            "zoom-on-cluster-click": "Zoom lors du clic sur un cluster",
            "max-zoom": "Niveau de zoom maximal pour faire partie d’un cluster (0 - 18)",
            "max-radius": "Rayon maximal couvert par un cluster",
            "zoom-animation": "Animation des marqueurs lors du zoom",
            "bounds-on-cluster-mouse-over": "Délimitation des marqueurs lors du survol du cluster",
            "spiderfy-max-zoom-level": "Déplier au niveau de zoom max (afficher tous les marqueurs du cluster)",
            "load-optimization": "Optimisation du chargement",
            "chunked-load": "Utiliser un chargement en morceaux pour éviter le gel de la page",
            "lazy-load": "Utiliser un chargement différé des marqueurs",
            "use-cluster-marker-color-function": "Utiliser une fonction de couleur pour les clusters",
            "marker-color-function": "Fonction de couleur du marqueur"
          },
          "edit": "Modifier le marqueur",
          "remove-marker-for": "Supprimer le marqueur pour '{{entityName}}'",
          "place-marker": "Placer un marqueur",
          "place-marker-hint": "Cliquez pour placer un marqueur",
          "place-marker-hint-with-entity": "Cliquez pour placer l’entité '{{entityName}}'"
        },
        "path": {
          "path": "Chemin",
          "path-decorator": "Décorateur de chemin",
          "decorator-symbol": "Symbole décoratif",
          "decorator-symbol-arrow-head": "Flèche",
          "decorator-symbol-dash": "Tiret",
          "decorator-arrangement": "Disposition du décorateur",
          "decorator-offset": "Début",
          "decorator-end-offset": "Fin",
          "decorator-repeat": "Répétition"
        },
        "points": {
          "points": "Points",
          "point-tooltip": "Infobulle du point"
        },
        "shape": {
          "fill": "Remplissage",
          "fill-type-color": "Couleur",
          "fill-type-stripe": "Rayure",
          "fill-type-image": "Image",
          "color": "Couleur",
          "stripe": "Rayure",
          "image": "Image",
          "stroke": "Contour",
          "fill-image": "Image de remplissage",
          "fill-image-type-image": "Image",
          "fill-image-type-function": "Fonction",
          "preserve-aspect-ratio": "Préserver le ratio",
          "opacity": "Opacité",
          "angle": "Angle de rotation",
          "scale": "Échelle",
          "fill-image-function": "Fonction d’image de remplissage",
          "fill-images": "Images de remplissage",
          "stripe-pattern": "Motif de rayure",
          "first-stripe": "Première rayure",
          "second-stripe": "Deuxième rayure"
        },
        "polygon": {
          "polygon-key": "Clé du polygone",
          "polygon-key-required": "Clé du polygone requise",
          "no-polygons": "Aucun polygone configuré",
          "add-polygon": "Ajouter un polygone",
          "polygon-configuration": "Configuration du polygone",
          "remove-polygon": "Supprimer le polygone",
          "edit": "Modifier le polygone",
          "remove-polygon-for": "Supprimer le polygone pour '{{entityName}}'",
          "cut": "Découper la zone du polygone",
          "rotate": "Faire pivoter le polygone",
          "draw-rectangle": "Dessiner un rectangle",
          "draw-polygon": "Dessiner un polygone",
          "polygon-place-first-point-cut-hint": "Cliquez pour placer le premier point",
          "continue-polygon-cut-hint": "Cliquez pour continuer à dessiner",
          "finish-polygon-cut-hint": "Cliquez sur le premier marqueur pour terminer et enregistrer",
          "polygon-place-first-point-hint": "Polygone : cliquez pour placer le premier point",
          "polygon-place-first-point-hint-with-entity": "Polygone pour '{{entityName}}' : cliquez pour placer le premier point",
          "continue-polygon-hint": "Polygone : cliquez pour continuer à dessiner",
          "continue-polygon-hint-with-entity": "Polygone pour '{{entityName}}' : cliquez pour continuer à dessiner",
          "finish-polygon-hint": "Polygone : cliquez sur le premier marqueur pour terminer le dessin",
          "finish-polygon-hint-with-entity": "Polygone pour '{{entityName}}' : cliquez sur le premier marqueur pour terminer et enregistrer",
          "rectangle-place-first-point-hint": "Rectangle : cliquez pour placer le premier point",
          "rectangle-place-first-point-hint-with-entity": "Rectangle pour '{{entityName}}' : cliquez pour placer le premier point",
          "finish-rectangle-hint": "Rectangle : cliquez pour terminer le dessin",
          "finish-rectangle-hint-with-entity": "Rectangle pour '{{entityName}}' : cliquez pour terminer et enregistrer"
        },
        "circle": {
          "circle-key": "Clé du cercle",
          "circle-key-required": "Clé du cercle requise",
          "no-circles": "Aucun cercle configuré",
          "add-circle": "Ajouter un cercle",
          "circle-configuration": "Configuration du cercle",
          "remove-circle": "Supprimer le cercle",
          "edit": "Modifier le cercle",
          "remove-circle-for": "Supprimer le cercle pour '{{entityName}}'",
          "draw-circle": "Dessiner un cercle",
          "place-circle-center-hint-with-entity": "Cercle pour '{{entityName}}' : cliquez pour placer le centre",
          "place-circle-center-hint": "Cercle : cliquez pour placer le centre",
          "finish-circle-hint-with-entity": "Cercle pour '{{entityName}}' : cliquez pour terminer et enregistrer le cercle",
          "finish-circle-hint": "Cercle : cliquez pour terminer le dessin"
        },
        "polyline": {
          "polyline-key": "Clé de polyligne",
          "polyline-key-required": "La clé de polyligne est requise",
          "no-polylines": "Aucune polyligne configurée",
          "add-polylines": "Ajouter une polyligne",
          "polyline-configuration": "Configuration de la polyligne",
          "remove-polyline": "Supprimer la polyligne",
          "edit": "Modifier la polyligne",
          "cut": "Couper la zone de polyligne",
          "rotate": "Faire pivoter la polyligne",
          "remove-polyline-for": "Supprimer la polyligne pour « {{entityName}} »",
          "draw-polyline": "Dessiner une polyligne",
          "polyline-place-first-point-hint-with-entity": "Polyligne pour « {{entityName}} » : cliquer pour placer le premier point",
          "polyline-place-first-point-hint": "Polyligne : cliquer pour placer le premier point",
          "finish-polyline-hint-with-entity": "Polyligne pour « {{entityName}} » : cliquer pour terminer le dessin",
          "finish-polyline-hint": "Polyligne : cliquer pour terminer le dessin",
          "polyline-place-first-point-cut-hint": "Cliquer pour placer le premier point",
          "finish-polyline-cut-hint": "Cliquer sur le premier marqueur pour terminer et enregistrer"
        },
        "select-entity": "Sélectionner une entité",
        "select-entity-hint": "Astuce : après la sélection, cliquer sur la carte pour définir la position"
      },
      "select-entity": "Sélectionner une entité",
      "select-entity-hint": "Astuce : après la sélection, cliquer sur la carte pour définir la position",
      "tooltips": {
        "placeMarker": "Cliquez pour placer l’entité '{{entityName}}'",
        "firstVertex": "Polygone pour '{{entityName}}' : cliquez pour placer le premier point",
        "firstVertex-cut": "Cliquez pour placer le premier point",
        "continueLine": "Polygone pour '{{entityName}}' : cliquez pour continuer à dessiner",
        "continueLine-cut": "Cliquez pour continuer à dessiner",
        "finishLine": "Cliquez sur un marqueur existant pour terminer",
        "finishPoly": "Polygone pour '{{entityName}}' : cliquez sur le premier marqueur pour terminer et enregistrer",
        "finishPoly-cut": "Cliquez sur le premier marqueur pour terminer et enregistrer",
        "finishRect": "Polygone pour '{{entityName}}' : cliquez pour terminer et enregistrer",
        "startCircle": "Cercle pour '{{entityName}}' : cliquez pour placer le centre",
        "finishCircle": "Cercle pour '{{entityName}}' : cliquez pour terminer le cercle",
        "placeCircleMarker": "Cliquez pour placer le marqueur de cercle"
      },
      "actions": {
        "finish": "Terminer",
        "cancel": "Annuler",
        "removeLastVertex": "Supprimer le dernier point"
      },
      "buttonTitles": {
        "drawMarkerButton": "Placer une entité",
        "drawPolyButton": "Créer un polygone",
        "drawLineButton": "Créer une ligne",
        "drawCircleButton": "Créer un cercle",
        "drawRectButton": "Créer un rectangle",
        "editButton": "Mode édition",
        "dragButton": "Mode glisser-déposer",
        "cutButton": "Découper la zone du polygone",
        "deleteButton": "Supprimer",
        "drawCircleMarkerButton": "Créer un marqueur circulaire",
        "rotateButton": "Faire pivoter le polygone"
      },
      "map-provider-settings": "Paramètres du fournisseur de cartes",
      "map-provider": "Fournisseur de cartes",
      "map-provider-google": "Google Maps",
      "map-provider-openstreet": "OpenStreet Maps",
      "map-provider-here": "HERE Maps",
      "map-provider-image": "Carte image",
      "map-provider-tencent": "Tencent Maps",
      "openstreet-provider": "Fournisseur de cartes OpenStreet",
      "openstreet-provider-mapnik": "OpenStreetMap.Mapnik (Par défaut)",
      "openstreet-provider-hot": "OpenStreetMap.HOT",
      "openstreet-provider-esri-street": "Esri.WorldStreetMap",
      "openstreet-provider-esri-topo": "Esri.WorldTopoMap",
      "openstreet-provider-esri-imagery": "Esri.WorldImagery",
      "openstreet-provider-cartodb-positron": "CartoDB.Positron",
      "openstreet-provider-cartodb-dark-matter": "CartoDB.DarkMatter",
      "use-custom-provider": "Utiliser un fournisseur personnalisé",
      "custom-provider-tile-url": "URL des tuiles du fournisseur personnalisé",
      "google-maps-api-key": "Clé API Google Maps",
      "default-map-type": "Type de carte par défaut",
      "google-map-type-roadmap": "Plan",
      "google-map-type-satelite": "Satellite",
      "google-map-type-hybrid": "Hybride",
      "google-map-type-terrain": "Relief",
      "map-layer": "Couche de carte",
      "here-map-normal-day": "HERE.normalDay (Par défaut)",
      "here-map-normal-night": "HERE.normalNight",
      "here-map-hybrid-day": "HERE.hybridDay",
      "here-map-terrain-day": "HERE.terrainDay",
      "credentials": "Identifiants",
      "here-app-id": "ID de l'application HERE",
      "here-app-code": "Code de l'application HERE",
      "here-api-key": "Clé API HERE",
      "here-use-new-version-api-3": "Utiliser l'API version 3",
      "tencent-maps-api-key": "Clé API Tencent Maps",
      "tencent-map-type-roadmap": "Plan",
      "tencent-map-type-satelite": "Satellite",
      "tencent-map-type-hybrid": "Hybride",
      "image-map-background": "Fond de carte image",
      "image-map-background-from-entity-attribute": "Utiliser l'attribut d'entité comme fond de carte image",
      "image-url-source-entity-alias": "Alias d'entité source de l'URL de l'image",
      "image-url-source-entity-attribute": "Attribut d'entité source de l'URL de l'image",
      "common-map-settings": "Paramètres communs de la carte",
      "x-pos-key-name": "Nom de la clé de position X",
      "y-pos-key-name": "Nom de la clé de position Y",
      "latitude-key-name": "Nom de la clé de latitude",
      "longitude-key-name": "Nom de la clé de longitude",
      "default-map-zoom-level": "Niveau de zoom par défaut (0 - 20)",
      "default-map-center-position": "Position centrale de la carte par défaut (0,0)",
      "disable-scroll-zooming": "Désactiver le zoom à la molette",
      "disable-double-click-zooming": "Désactiver le zoom au double-clic",
      "disable-zoom-control-buttons": "Désactiver les boutons de zoom",
      "fit-map-bounds": "Ajuster les limites de la carte pour couvrir tous les marqueurs",
      "use-default-map-center-position": "Utiliser la position centrale par défaut de la carte",
      "entities-limit": "Limite d'entités à charger",
      "markers-settings": "Paramètres des marqueurs",
      "marker-offset-x": "Décalage X du marqueur par rapport à la position, multiplié par la largeur du marqueur",
      "marker-offset-y": "Décalage Y du marqueur par rapport à la position, multiplié par la hauteur du marqueur",
      "position-function": "Fonction de conversion de position, doit retourner les coordonnées x,y entre 0 et 1",
      "draggable-marker": "Marqueur déplaçable",
      "label": "Étiquette",
      "show-label": "Afficher l'étiquette",
      "use-label-function": "Utiliser une fonction d'étiquette",
      "label-pattern": "Étiquette (exemples de modèles : '${entityName}', '${entityName}: (Texte ${keyName} unités.)')",
      "label-function": "Fonction d'étiquette",
      "tooltip": "Info-bulle",
      "show-tooltip": "Afficher l'info-bulle",
      "show-tooltip-action": "Action d'affichage de l'info-bulle",
      "show-tooltip-action-click": "Afficher l'info-bulle au clic (Par défaut)",
      "show-tooltip-action-hover": "Afficher l'info-bulle au survol",
      "auto-close-tooltips": "Fermeture automatique des info-bulles",
      "use-tooltip-function": "Utiliser une fonction d'info-bulle",
      "tooltip-pattern": "Info-bulle (ex. : 'Texte ${keyName} unités.' ou <link-act name='my-action'>Texte du lien</link-act>)",
      "tooltip-function": "Fonction d'info-bulle",
      "tooltip-offset-x": "Décalage X de l'info-bulle par rapport à l'ancrage du marqueur, multiplié par la largeur du marqueur",
      "tooltip-offset-y": "Décalage Y de l'info-bulle par rapport à l'ancrage du marqueur, multiplié par la hauteur du marqueur",
      "color": "Couleur",
      "use-color-function": "Utiliser une fonction de couleur",
      "color-function": "Fonction de couleur",
      "marker-image": "Image du marqueur",
      "use-marker-image-function": "Utiliser une fonction d'image du marqueur",
      "custom-marker-image": "Image personnalisée du marqueur",
      "custom-marker-image-size": "Taille de l'image personnalisée du marqueur (px)",
      "marker-image-function": "Fonction d'image du marqueur",
      "marker-images": "Images du marqueur",
      "polygon-settings": "Paramètres du polygone",
      "show-polygon": "Afficher le polygone",
      "polygon-key-name": "Nom de la clé du polygone",
      "enable-polygon-edit": "Activer la modification du polygone",
      "polygon-label": "Étiquette du polygone",
      "show-polygon-label": "Afficher l'étiquette du polygone",
      "use-polygon-label-function": "Utiliser une fonction pour l'étiquette du polygone",
      "polygon-label-pattern": "Étiquette du polygone (exemples de modèles : '${entityName}', '${entityName}: (Texte ${keyName} unités.)')",
      "polygon-label-function": "Fonction de l'étiquette du polygone",
      "polygon-tooltip": "Info-bulle du polygone",
      "show-polygon-tooltip": "Afficher l'info-bulle du polygone",
      "auto-close-polygon-tooltips": "Fermeture automatique des info-bulles du polygone",
      "use-polygon-tooltip-function": "Utiliser une fonction pour l'info-bulle du polygone",
      "polygon-tooltip-pattern": "Info-bulle (ex. : 'Texte ${keyName} unités.' ou <link-act name='my-action'>Texte du lien</link-act>)",
      "polygon-tooltip-function": "Fonction d'info-bulle du polygone",
      "polygon-color": "Couleur du polygone",
      "polygon-opacity": "Opacité du polygone",
      "use-polygon-color-function": "Utiliser une fonction pour la couleur du polygone",
      "polygon-color-function": "Fonction de couleur du polygone",
      "polygon-stroke": "Contour du polygone",
      "stroke-color": "Couleur du contour",
      "stroke-opacity": "Opacité du contour",
      "stroke-weight": "Épaisseur du contour",
      "use-polygon-stroke-color-function": "Utiliser une fonction pour la couleur du contour",
      "polygon-stroke-color-function": "Fonction de couleur du contour du polygone",
      "circle-settings": "Paramètres du cercle",
      "show-circle": "Afficher le cercle",
      "circle-key-name": "Nom de la clé du cercle",
      "enable-circle-edit": "Activer la modification du cercle",
      "circle-label": "Étiquette du cercle",
      "show-circle-label": "Afficher l'étiquette du cercle",
      "use-circle-label-function": "Utiliser une fonction pour l'étiquette du cercle",
      "circle-label-pattern": "Étiquette du cercle (exemples de modèles : '${entityName}', '${entityName}: (Texte ${keyName} unités.)')",
      "circle-label-function": "Fonction de l'étiquette du cercle",
      "circle-tooltip": "Info-bulle du cercle",
      "show-circle-tooltip": "Afficher l'info-bulle du cercle",
      "auto-close-circle-tooltips": "Fermeture automatique des info-bulles du cercle",
      "use-circle-tooltip-function": "Utiliser une fonction pour l'info-bulle du cercle",
      "circle-tooltip-pattern": "Info-bulle (ex. : 'Texte ${keyName} unités.' ou <link-act name='my-action'>Texte du lien</link-act>)",
      "circle-tooltip-function": "Fonction d'info-bulle du cercle",
      "circle-fill-color": "Couleur de remplissage du cercle",
      "circle-fill-color-opacity": "Opacité de la couleur de remplissage du cercle",
      "use-circle-fill-color-function": "Utiliser une fonction pour la couleur de remplissage",
      "circle-fill-color-function": "Fonction de couleur de remplissage du cercle",
      "circle-stroke": "Contour du cercle",
      "use-circle-stroke-color-function": "Utiliser une fonction pour la couleur du contour",
      "circle-stroke-color-function": "Fonction de couleur du contour du cercle",
      "markers-clustering-settings": "Paramètres de regroupement des marqueurs",
      "use-map-markers-clustering": "Utiliser le regroupement des marqueurs sur la carte",
      "zoom-on-cluster-click": "Zoomer lors du clic sur un cluster",
      "max-cluster-zoom": "Niveau de zoom maximum pour inclure un marqueur dans un cluster (0 - 18)",
      "max-cluster-radius-pixels": "Rayon maximal d’un cluster en pixels",
      "cluster-zoom-animation": "Afficher une animation lors du zoom sur les marqueurs",
      "show-markers-bounds-on-cluster-mouse-over": "Afficher les limites des marqueurs au survol d’un cluster",
      "spiderfy-max-zoom-level": "Affichage de type araignée au niveau de zoom max (pour voir tous les marqueurs du cluster)",
      "load-optimization": "Optimisation du chargement",
      "cluster-chunked-loading": "Utiliser des lots pour l’ajout de marqueurs afin d’éviter le gel de la page",
      "cluster-markers-lazy-load": "Utiliser le chargement paresseux pour l’ajout de marqueurs",
      "editor-settings": "Paramètres de l’éditeur",
      "enable-snapping": "Activer l'accrochage aux autres sommets pour un dessin précis",
      "init-draggable-mode": "Initialiser la carte en mode déplaçable",
      "hide-all-edit-buttons": "Masquer tous les boutons de contrôle d’édition",
      "hide-draw-buttons": "Masquer les boutons de dessin",
      "hide-edit-buttons": "Masquer les boutons d’édition",
      "hide-remove-button": "Masquer le bouton de suppression",
      "route-map-settings": "Paramètres de la carte des trajets",
      "trip-animation-settings": "Paramètres de l’animation des trajets",
      "normalization-step": "Étape de normalisation des données (ms)",
      "tooltip-background-color": "Couleur de fond de l'info-bulle",
      "tooltip-font-color": "Couleur de la police de l’info-bulle",
      "tooltip-opacity": "Opacité de l’info-bulle (0-1)",
      "auto-close-tooltip": "Fermeture automatique de l’info-bulle",
      "rotation-angle": "Définir un angle de rotation supplémentaire pour le marqueur (degrés)",
      "path-settings": "Paramètres du chemin",
      "path-color": "Couleur du chemin",
      "use-path-color-function": "Utiliser une fonction de couleur pour le chemin",
      "path-color-function": "Fonction de couleur du chemin",
      "path-decorator": "Décorateur de chemin",
      "use-path-decorator": "Utiliser un décorateur de chemin",
      "decorator-symbol": "Symbole du décorateur",
      "decorator-symbol-arrow-head": "Flèche",
      "decorator-symbol-dash": "Tiret",
      "decorator-symbol-size": "Taille du symbole du décorateur (px)",
      "use-path-decorator-custom-color": "Utiliser une couleur personnalisée pour le décorateur",
      "decorator-custom-color": "Couleur personnalisée du décorateur",
      "decorator-offset": "Décalage du décorateur",
      "end-decorator-offset": "Décalage de fin du décorateur",
      "decorator-repeat": "Répétition du décorateur",
      "points-settings": "Paramètres des points",
      "show-points": "Afficher les points",
      "point-color": "Couleur du point",
      "point-size": "Taille du point (px)",
      "use-point-color-function": "Utiliser une fonction de couleur pour les points",
      "point-color-function": "Fonction de couleur des points",
      "use-point-as-anchor": "Utiliser le point comme ancre",
      "point-as-anchor-function": "Fonction de point comme ancre",
      "independent-point-tooltip": "Info-bulle de point indépendante",
      "clustering-markers": "Regroupement des marqueurs",
      "use-icon-create-function": "Utiliser une fonction de couleur pour les marqueurs",
      "marker-color-function": "Fonction de couleur du marqueur"
    },
    "markdown": {
      "use-markdown-text-function": "Utiliser une fonction de valeur markdown/HTML",
      "markdown-text-function": "Fonction de valeur markdown/HTML",
      "markdown-text-pattern": "Modèle markdown/HTML (markdown ou HTML avec variables, par ex. '${entityName} ou ${keyName} - du texte.')",
      "apply-default-markdown-style": "Appliquer le style markdown par défaut",
      "markdown-css": "CSS pour markdown/HTML"
    },
    "simple-card": {
      "label": "Étiquette",
      "label-position": "Position de l’étiquette",
      "label-position-left": "Gauche",
      "label-position-top": "Haut"
    },
    "single-switch": {
      "behavior": "Comportement",
      "layout": "Disposition",
      "layout-right": "Droite",
      "layout-left": "Gauche",
      "layout-centered": "Centré",
      "auto-scale": "Ajustement automatique",
      "label": "Étiquette",
      "icon": "Icône",
      "switch-color": "Couleur de l’interrupteur",
      "on": "Activé",
      "off": "Désactivé",
      "disabled": "Désactivé",
      "tumbler-color": "Couleur du curseur",
      "on-label": "Étiquette pour Activé",
      "off-label": "Étiquette pour Désactivé",
      "switch": "Interrupteur"
    },
    "slider": {
      "behavior": "Comportement",
      "initial-value": "Valeur initiale",
      "initial-value-hint": "Action pour obtenir la valeur initiale du curseur.",
      "on-value-change": "Au changement de valeur",
      "on-value-change-hint": "Action déclenchée lorsque la valeur du curseur change.",
      "layout": "Disposition",
      "layout-default": "Par défaut",
      "layout-extended": "Étendu",
      "layout-simplified": "Simplifié",
      "auto-scale": "Ajustement automatique",
      "icon": "Icône",
      "value": "Valeur",
      "range": "Plage",
      "min": "min",
      "max": "max",
      "range-ticks": "Graduations",
      "tick-marks": "Repères",
      "colors": "Couleurs",
      "main": "Principal",
      "background": "Arrière-plan",
      "left-icon": "Icône gauche",
      "right-icon": "Icône droite",
      "slider": "Curseur"
    },
    "value-card": {
      "layout": "Disposition",
      "layout-square": "Carré",
      "layout-vertical": "Vertical",
      "layout-centered": "Centré",
      "layout-simplified": "Simplifié",
      "layout-horizontal": "Horizontal",
      "layout-horizontal-reversed": "Horizontal inversé",
      "label": "Étiquette",
      "icon": "Icône",
      "value": "Valeur",
      "date": "Date",
      "value-card-style": "Style de la carte de valeur",
      "auto-scale": "Ajustement automatique"
    },
    "label-card": {
      "auto-scale": "Ajustement automatique",
      "label": "Étiquette",
      "icon": "Icône",
      "label-card-style": "Style de la carte d’étiquette"
    },
    "label-value-card": {
      "value": "Valeur",
      "label-value-card-style": "Style de la carte étiquette & valeur"
    },
    "liquid-level-card": {
      "layout-simple": "Simple",
      "layout-percentage": "Pourcentage",
      "layout-absolute": "Absolu",
      "layout": "Disposition",
      "background-overlay": "Superposition de l'arrière-plan de la valeur",
      "total-volume": "Volume total",
      "total-volume-units": "Unités du volume total",
      "tank": "Réservoir",
      "shape": "Forme",
      "datasource-units": "Unités de la source",
      "widget-units": "Unités du widget",
      "decimals": "Décimales",
      "liquid": "Liquide",
      "liquid-color": "Couleur du liquide",
      "value": "Valeur",
      "value-font": "Police de la valeur",
      "level": "Niveau",
      "last-update": "Dernière mise à jour",
      "shape-by-attribute": "Définir la forme du réservoir via le nom d'attribut",
      "tooltip-background": "Couleur d’arrière-plan",
      "background-blur": "Flou d’arrière-plan",
      "tank-color": "Couleur du réservoir",
      "static": "Statique",
      "see-examples": "Voir des exemples",
      "attribute": "Attribut",
      "shape-type": "Type",
      "v-oval": "Ovale vertical",
      "v-cylinder": "Cylindre vertical",
      "v-capsule": "Capsule verticale",
      "rectangle": "Rectangle",
      "h-oval": "Ovale horizontal",
      "h-ellipse": "Ellipse horizontale",
      "h-dish-ends": "Extrémités concaves horizontales",
      "h-cylinder": "Cylindre horizontal",
      "h-capsule": "Capsule horizontale",
      "h-elliptical_2_1": "Ellipse horizontale 2:1",
      "icon": "Icône de la carte",
      "title": "Titre de la carte",
      "units": "Unités",
      "color-and-font": "Couleur et police",
      "shape-attribute-name": "Nom de l'attribut",
      "total-volume-required": "Le volume total est requis.",
      "attribute-name-required": "Le nom de l'attribut est requis.",
      "attribute-key-not-set": "La clé de l'attribut '{{attributeName}}' n'est pas définie",
      "attribute-key-invalid": "La clé de l'attribut '{{attributeName}}' est invalide"
    },
    "aggregated-value-card": {
      "subtitle": "Sous-titre",
      "chart": "Graphique",
      "values": "Valeurs",
      "value-appearance": "Apparence de la valeur",
      "position": "Position",
      "position-center": "Centre",
      "position-right-top": "En haut à droite",
      "position-right-bottom": "En bas à droite",
      "position-left-top": "En haut à gauche",
      "position-left-bottom": "En bas à gauche",
      "font": "Police",
      "color": "Couleur",
      "arrow": "Flèche",
      "display-up-down-arrow": "Afficher les flèches haut/bas",
      "add-value": "Ajouter une valeur",
      "remove-value": "Supprimer la valeur",
      "no-values": "Aucune valeur configurée",
      "aggregation": "Agrégation",
      "aggregated-value-card-style": "Style de carte de valeur agrégée",
      "auto-scale": "Mise à l'échelle automatique"
    },
    "value-chart-card": {
      "layout": "Disposition",
      "layout-left": "Gauche",
      "layout-right": "Droite",
      "auto-scale": "Mise à l'échelle automatique",
      "icon": "Icône",
      "value": "Valeur",
      "chart": "Graphique",
      "value-chart-card-style": "Style de carte de tableau de valeurs"
    },
    "progress-bar": {
      "layout": "Disposition",
      "layout-default": "Par défaut",
      "layout-simplified": "Simplifiée",
      "auto-scale": "Mise à l'échelle automatique",
      "icon": "Icône",
      "value": "Valeur",
      "range": "Plage",
      "min": "min",
      "max": "max",
      "range-ticks": "Graduations de la plage",
      "bar": "Barre",
      "bar-color": "Couleur de la barre",
      "bar-background": "Fond de la barre",
      "progress-bar-card-style": "Style de carte barre de progression"
    },
    "notification": {
      "max-notification-display": "Nombre maximum de notifications à afficher",
      "counter": "Compteur",
      "counter-hint": "Le compteur sera affiché si le \"Titre du widget\" est activé",
      "icon": "Icône",
      "counter-value": "Valeur",
      "counter-color": "Couleur",
      "notification-button": "Boutons de notification",
      "button-view-all": "Tout voir",
      "button-filter": "Filtrer",
      "type-filter": "Filtre de type",
      "button-mark-read": "Tout marquer comme lu",
      "notification-types": "Types de notification",
      "notification-type": "Type de notification",
      "search-type": "Type de recherche",
      "any-type": "Tout type"
    },
    "alarm-count": {
      "alarm-count-card-style": "Style de carte de compteur d'alarmes"
    },
    "entity-count": {
      "entity-count-card-style": "Style de carte de compteur d'entités"
    },
    "count": {
      "layout": "Disposition",
      "layout-column": "Colonne",
      "layout-row": "Ligne",
      "label": "Étiquette",
      "icon": "Icône",
      "icon-background": "Fond de l'icône",
      "value": "Valeur",
      "chevron": "Chevron",
      "auto-scale": "Mise à l'échelle automatique"
    },
    "table": {
      "common-table-settings": "Paramètres généraux du tableau",
      "enable-search": "Activer la recherche",
      "enable-sticky-header": "Toujours afficher l'en-tête",
      "enable-sticky-action": "Toujours afficher la colonne des actions",
      "hidden-cell-button-display-mode": "Mode d'affichage des actions des boutons de cellule masqués",
      "show-empty-space-hidden-action": "Afficher un espace vide à la place du bouton d'action masqué",
      "dont-reserve-space-hidden-action": "Ne pas réserver d'espace pour les boutons d'action masqués",
      "display-timestamp": "Horodatage",
      "timestamp-column-name": "Horodatage",
      "display-pagination": "Afficher la pagination",
      "default-page-size": "Taille de page par défaut",
      "page-step-settings": "Paramètres de pas de page",
      "page-step-count": "Nombre d'étapes",
      "page-step-increment": "Incrément de pas",
      "page-step-count-format-message": "Doit être une valeur entière, comprise entre 1 et 100.",
      "page-step-increment-format-message": "Doit être une valeur entière supérieure ou égale à 1.",
      "use-entity-label-tab-name": "Utiliser le libellé de l'entité dans le nom de l'onglet",
      "hide-empty-lines": "Masquer les lignes vides",
      "row-style": "Style de ligne",
      "use-row-style-function": "Utiliser une fonction de style de ligne",
      "row-style-function": "Fonction de style de ligne",
      "cell-style": "Style de cellule",
      "use-cell-style-function": "Utiliser une fonction de style de cellule",
      "cell-style-function": "Fonction de style de cellule",
      "cell-content": "Contenu de la cellule",
      "use-cell-content-function": "Utiliser une fonction de contenu de cellule",
      "cell-content-function": "Fonction de contenu de cellule",
      "show-latest-data-column": "Afficher la colonne de données les plus récentes",
      "latest-data-column-order": "Ordre de la colonne de données les plus récentes",
      "entities-table-title": "Titre du tableau des entités",
      "enable-select-column-display": "Activer la sélection des colonnes à afficher",
      "display-entity-name": "Afficher la colonne du nom de l'entité",
      "entity-name-column-title": "Titre de la colonne du nom de l'entité",
      "display-entity-label": "Afficher la colonne du libellé de l'entité",
      "entity-label-column-title": "Titre de la colonne du libellé de l'entité",
      "display-entity-type": "Afficher la colonne du type d'entité",
      "default-sort-order": "Ordre de tri par défaut",
      "custom-title": "Titre personnalisé de l'en-tête",
      "column-width": "Largeur de colonne (px ou %)",
      "default-column-visibility": "Visibilité par défaut de la colonne",
      "column-visibility-visible": "Visible",
      "column-visibility-hidden": "Masquée",
      "column-visibility-hidden-mobile": "Masquée en mode mobile",
      "column-selection-to-display": "Sélection de colonne dans 'Colonnes à afficher'",
      "column-selection-to-display-enabled": "Activée",
      "column-selection-to-display-disabled": "Désactivée",
      "alarms-table-title": "Titre du tableau des alarmes",
      "enable-alarms-selection": "Activer la sélection des alarmes",
      "enable-alarms-search": "Activer la recherche d'alarmes",
      "enable-alarm-filter": "Activer le filtre d'alarme",
      "display-alarm-details": "Afficher les détails de l'alarme",
      "allow-alarms-ack": "Autoriser l'accusé de réception des alarmes",
      "allow-alarms-clear": "Autoriser l'effacement des alarmes",
      "display-alarm-activity": "Afficher l'activité de l'alarme",
      "allow-alarms-assign": "Autoriser l'assignation des alarmes",
      "columns": "Colonnes",
      "column-settings": "Paramètres des colonnes",
      "remove-column": "Supprimer la colonne",
      "add-column": "Ajouter une colonne",
      "no-columns": "Aucune colonne configurée",
      "columns-to-display": "Colonnes à afficher",
      "table-header": "En-tête du tableau",
      "header-buttons": "Boutons d'en-tête",
      "table-buttons": "Boutons du tableau",
      "pagination": "Pagination",
      "rows": "Lignes",
      "timeseries-column-error": "Au moins une colonne de séries temporelles doit être spécifiée",
      "alarm-column-error": "Au moins une colonne d'alarme doit être spécifiée",
      "table-tabs": "Onglets du tableau",
      "show-cell-actions-menu-mobile": "Afficher le menu déroulant d'actions des cellules en mode mobile",
      "disable-sorting": "Désactiver le tri",
      "sort-by": "Trier les onglets par",
      "sort-timestamp-option": "Date de création"
    },
    "latest-chart": {
      "total": "Total",
      "auto-scale": "Mise à l'échelle automatique",
      "clockwise-layout": "Disposition dans le sens horaire",
      "sort-series": "Trier les séries par libellé",
      "tooltip-value-type-absolute": "Absolu",
      "tooltip-value-type-percentage": "Pourcentage"
    },
    "pie-chart": {
      "pie-chart-appearance": "Apparence du graphique en secteurs",
      "label": "Libellé",
      "border": "Bordure",
      "radius": "Rayon",
      "pie-chart-card-style": "Style de la carte graphique en secteurs"
    },
    "radar-chart": {
      "radar-appearance": "Apparence radar",
      "shape": "Forme",
      "shape-polygon": "Polygone",
      "shape-circle": "Cercle",
      "color": "Couleur",
      "line": "Ligne",
      "points": "Points",
      "points-label": "Étiquette des points",
      "radar-axis": "Axe radar",
      "axis-label": "Étiquette de l'axe",
      "ticks-label": "Étiquette des graduations",
      "radar-chart-style": "Style du graphique radar",
      "max-axes-scaling": "Échelle maximale des axes",
      "max-axes-scaling-hint": "Choisissez si chaque axe radar a sa propre valeur maximale (Séparé) ou partage la valeur la plus élevée de l'ensemble des axes selon les données du widget (Commun).",
      "separate": "Séparé",
      "common": "Commun"
    },
    "time-series-chart": {
      "chart": "Graphique",
      "chart-style": "Style du graphique",
      "data-zoom": "Zoom sur les données",
      "stack-mode": "Mode empilé",
      "stack-mode-hint": "Empile les séries sur le graphique. Les séries ayant la même unité seront superposées.",
      "axes": "Axes",
      "y-axes": "Axes Y",
      "line-type": "Type de ligne",
      "line-width": "Épaisseur de ligne",
      "type-line": "Ligne",
      "type-bar": "Barre",
      "type-point": "Point",
      "no-aggregation-bar-width-strategy": "Stratégie de largeur de barre pour les données non agrégées",
      "no-aggregation-bar-width-strategy-group": "Grouper",
      "no-aggregation-bar-width-strategy-separate": "Séparer",
      "bar-group-width": "Largeur du groupe de barres",
      "bar-width": "Largeur de la barre",
      "bar-width-relative": "Pourcentage de la fenêtre temporelle",
      "bar-width-absolute": "Absolue (ms)",
      "comparison": {
        "comparison": "Comparaison",
        "comparison-hint": "La comparaison fonctionne uniquement avec les données historiques !",
        "show": "Afficher",
        "settings": "Paramètres de comparaison",
        "show-values-for-comparison": "Afficher les données historiques pour la comparaison",
        "comparison-values-label": "Libellé de la clé de comparaison",
        "comparison-values-label-auto": "Auto",
        "comparison-data-color": "Couleur des données de comparaison"
      },
      "threshold": {
        "thresholds": "Seuils",
        "source": "Source",
        "key-value": "Clé / Valeur",
        "no-thresholds": "Aucun seuil configuré",
        "add-threshold": "Ajouter un seuil",
        "type-constant": "Constante",
        "type-latest-key": "Clé",
        "type-entity": "Entité",
        "threshold-settings": "Paramètres des seuils",
        "remove-threshold": "Supprimer le seuil",
        "threshold-value-required": "La valeur du seuil est requise.",
        "key-required": "La clé est requise.",
        "entity-key-required": "La clé de l'entité est requise.",
        "line-appearance": "Apparence de la ligne",
        "line-color": "Couleur de la ligne",
        "start-symbol": "Symbole de début",
        "end-symbol": "Symbole de fin",
        "symbol-size": "Taille",
        "label": "Libellé",
        "label-position-start": "Début",
        "label-position-middle": "Milieu",
        "label-position-end": "Fin",
        "label-position-inside-start": "Intérieur début",
        "label-position-inside-start-top": "Intérieur début haut",
        "label-position-inside-start-bottom": "Intérieur début bas",
        "label-position-inside-middle": "Intérieur milieu",
        "label-position-inside-middle-top": "Intérieur milieu haut",
        "label-position-inside-middle-bottom": "Intérieur milieu bas",
        "label-position-inside-end": "Intérieur fin",
        "label-position-inside-end-top": "Intérieur fin haut",
        "label-position-inside-end-bottom": "Intérieur fin bas",
        "label-background": "Fond du libellé"
      },
      "state": {
        "states": "États",
        "label": "Libellé",
        "ticks-value": "Valeur des graduations",
        "source": "Source",
        "value-range": "Valeur / Plage",
        "no-states": "Aucun état configuré",
        "add-state": "Ajouter un état",
        "type-constant": "Constante",
        "type-range": "Plage",
        "from": "De",
        "to": "À",
        "remove-state": "Supprimer l'état"
      },
      "grid": {
        "grid": "Grille",
        "background-color": "Couleur de fond",
        "border": "Bordure"
      },
      "axis": {
        "axes": "Axes",
        "x-axis": "Axe X",
        "y-axis": "Axe Y",
        "y-axis-settings": "Paramètres de l'axe Y",
        "comparison-x-axis-settings": "Paramètres de l'axe X de comparaison",
        "remove-y-axis": "Supprimer l'axe Y",
        "id": "ID",
        "label": "Libellé",
        "position": "Position",
        "position-left": "Gauche",
        "position-right": "Droite",
        "position-top": "Haut",
        "position-bottom": "Bas",
        "tick-labels": "Libellés des graduations",
        "ticks-formatter-function": "Fonction de formatage des graduations",
        "ticks-generator-function": "Fonction de génération des graduations",
        "show-ticks": "Afficher les graduations",
        "show-line": "Afficher la ligne",
        "show-split-lines": "Afficher les lignes de séparation",
        "show-split-lines-x-axis-hint": "Si activé, les lignes verticales seront affichées sur le graphique.",
        "show-split-lines-y-axis-hint": "Si activé, les lignes horizontales seront affichées sur le graphique.",
        "ticks-interval": "Intervalle des graduations",
        "ticks-interval-hint": "Définit de manière forcée l'intervalle de segmentation de l'axe.",
        "split-number": "Nombre de divisions",
        "split-number-hint": "Nombre de segments dans lesquels l'axe est divisé.",
        "min": "Min",
        "max": "Max",
        "show": "Afficher",
        "add-y-axis": "Ajouter un axe Y"
      },
      "series": {
        "legend-settings": "Paramètres de la légende",
        "show-in-legend": "Afficher dans la légende",
        "show-in-legend-hint": "Afficher le nom de la série et les données dans la légende.",
        "hidden-by-default": "Masqué par défaut",
        "hidden-by-default-hint": "Masquer la série dans la légende par défaut.",
        "series-type": "Type de série",
        "type": "Type",
        "type-line": "Ligne",
        "type-bar": "Barre",
        "line": {
          "line": "Ligne",
          "show-line": "Afficher la ligne",
          "step-line": "Ligne par étapes",
          "step-type-start": "Début",
          "step-type-middle": "Milieu",
          "step-type-end": "Fin",
          "smooth-line": "Ligne lissée"
        },
        "point": {
          "points": "Points",
          "show-points": "Afficher les points",
          "point-label": "Libellé du point",
          "point-label-hint": "Afficher un libellé avec la valeur sur le point de la série.",
          "point-label-background": "Fond du libellé du point",
          "point-shape": "Forme du point",
          "point-size": "Taille du point"
        }
      }
    },
    "wind-speed-direction": {
      "layout": "Disposition",
      "layout-default": "Par défaut",
      "layout-advanced": "Avancé",
      "layout-simplified": "Simplifié",
      "values": "Valeurs",
      "wind-direction": "Direction du vent",
      "center-value": "Valeur centrale",
      "icon": "Icône",
      "arrow": "Flèche",
      "ticks": "Graduations",
      "labels-type": "Type de libellés",
      "directional-names": "Noms directionnels",
      "degrees": "Degrés",
      "major-ticks": "Graduations majeures",
      "minor-ticks": "Graduations mineures",
      "wind-speed-direction-card-style": "Style de carte vitesse et direction du vent",
      "ticks-color": "Couleur des graduations",
      "ticks-labels-type": "Type de libellés des graduations",
      "arrow-color": "Couleur de la flèche"
    },
    "value-source": {
      "value-source": "Source de valeur",
      "predefined-value": "Constante",
      "entity-attribute": "Attribut de l'entité",
      "value": "Valeur",
      "value-required": "La valeur est requise.",
      "key-required": "La clé est requise.",
      "entity-key-required": "La clé de l'entité est requise.",
      "source-entity-alias": "Alias de l'entité source",
      "source-entity-attribute": "Attribut de l'entité source",
      "type-constant": "Constante",
      "type-latest-key": "Clé",
      "type-entity": "Entité"
    },
    "rpc-state": {
      "initial-state": "État initial",
      "initial-state-hint": "Action pour obtenir l'état initial (Activé/Désactivé) du composant.",
      "disabled-state": "État désactivé",
      "disabled-state-hint": "Configurer la condition dans laquelle le composant est désactivé.",
      "turn-on": "Allumer",
      "turn-on-hint": "Action déclenchée lorsque le curseur passe sur 'Activé'",
      "turn-off": "Éteindre",
      "turn-off-hint": "Action déclenchée lorsque le curseur passe sur 'Désactivé'",
      "on": "Activé",
      "off": "Désactivé",
      "disabled": "Désactivé"
    },
    "value-action": {
      "do-nothing": "Ne rien faire",
      "execute-rpc": "Exécuter RPC",
      "get-attribute": "Obtenir un attribut",
      "set-attribute": "Définir un attribut",
      "get-time-series": "Obtenir une série temporelle",
      "get-alarm-status": "Obtenir le statut de l'alarme",
      "get-dashboard-state": "Obtenir l'identifiant de l'état du tableau de bord",
      "get-dashboard-state-object": "Obtenir l'objet d'état du tableau de bord",
      "add-time-series": "Ajouter une série temporelle",
      "execute-rpc-text": "Exécuter la méthode RPC '{{methodName}}'",
      "get-time-series-text": "Utiliser la série temporelle '{{key}}'",
      "get-attribute-text": "Utiliser l’attribut '{{key}}'",
      "get-alarm-status-text": "Utiliser l’état de l’alarme",
      "get-dashboard-state-text": "Utiliser l’état du tableau de bord",
      "get-dashboard-state-object-text": "Utiliser l’objet d’état du tableau de bord",
      "when-dashboard-state-is-text": "Lorsque l’identifiant d’état du tableau de bord est '{{state}}'",
      "when-dashboard-state-function-is-text": "Lorsque f(identifiant d’état du tableau de bord) est '{{state}}'",
      "when-dashboard-state-object-function-is-text": "Lorsque f(objet d’état du tableau de bord) est '{{state}}'",
      "set-attribute-to-value-text": "Définir l’attribut '{{key}}' sur : {{value}}",
      "add-time-series-value-text": "Ajouter la valeur de série temporelle '{{key}}' : {{value}}",
      "set-attribute-text": "Définir l’attribut '{{key}}'",
      "add-time-series-text": "Ajouter la série temporelle '{{key}}'",
      "action": "Action",
      "value": "Valeur",
      "init-value-hint": "Valeur qui sera définie jusqu'à ce que l'appareil envoie des données.",
      "method": "Méthode",
      "method-name-required": "Le nom de la méthode est requis.",
      "request-timeout-ms": "Délai d'attente de la requête RPC (ms)",
      "request-timeout-required": "Le délai d'attente est requis.",
      "min-request-timeout-error": "La valeur du délai d'attente doit être supérieure ou égale à 5000 ms (5 secondes).",
      "request-persistent": "Requête RPC persistante",
      "persistent-polling-interval": "Intervalle d'interrogation persistant (ms)",
      "persistent-polling-interval-hint": "Intervalle (ms) pour obtenir une réponse de commande RPC persistante",
      "persistent-polling-interval-required": "L'intervalle d'interrogation persistant est requis.",
      "min-persistent-polling-interval-error": "L'intervalle d'interrogation persistant doit être supérieur ou égal à 1000 ms (1 seconde).",
      "attribute-scope": "Portée de l'attribut",
      "attribute-key": "Clé de l'attribut",
      "attribute-key-required": "La clé de l'attribut est requise.",
      "time-series-key": "Clé de la série temporelle",
      "time-series-key-required": "La clé de la série temporelle est requise.",
      "action-result-converter": "Convertisseur de résultat d'action",
      "converter-none": "Aucun",
      "converter-function": "Fonction",
      "converter-constant": "Constante",
      "converter-value": "Valeur",
      "parse-value-function": "Fonction d'analyse de la valeur",
      "state-when-result-is": "'{{state}}' lorsque le résultat est",
      "parameters": "Paramètres",
      "convert-value-function": "Fonction de conversion de la valeur",
      "error": {
        "target-entity-is-not-set": "L'entité cible n'est pas définie !",
        "failed-to-perform-action": "Échec de l'exécution de l'action <b>{{ actionLabel }}</b>.",
        "invalid-attribute-scope": "La portée de l'attribut '{{scope}}' n'est pas prise en charge pour l'entité <b>{{entityType}}</b>."
      }
    },
    "widget-font": {
      "font-settings": "Paramètres de police",
      "font-family": "Famille de police",
      "size": "Taille",
      "relative-font-size": "Taille de police relative (pourcentage)",
      "font-style": "Style",
      "font-style-normal": "Normal",
      "font-style-italic": "Italique",
      "font-style-oblique": "Oblique",
      "font-weight": "Poids",
      "font-weight-normal": "Normal",
      "font-weight-bold": "Gras",
      "font-weight-bolder": "Plus gras",
      "font-weight-lighter": "Plus léger",
      "color": "Couleur",
      "shadow-color": "Couleur de l'ombre",
      "preview": "Aperçu",
      "line-height": "Hauteur de ligne",
      "auto": "Auto"
    },
    "home": {
      "no-data-available": "Aucune donnée disponible"
    },
    "system-info": {
      "cpu": "CPU",
      "ram": "RAM",
      "disk": "Disque",
      "cpu-warning-text": "Utilisation élevée du processeur. Pour éviter une panne du système, optimisez les performances.",
      "cpu-critical-text": "Utilisation critique du processeur. Pour éviter une panne du système, optimisez les performances.",
      "ram-warning-text": "Réserve de RAM faible. Pour éviter une panne du système, optimisez les performances ou augmentez la taille de la RAM.",
      "ram-critical-text": "Réserve critique de RAM. Pour éviter une panne du système, optimisez les performances ou augmentez la taille de la RAM.",
      "disk-warning-text": "Espace disque faible. Pour éviter une perte de données, libérez ou augmentez l'espace disque.",
      "disk-critical-text": "Espace disque critique. Pour éviter une perte de données, libérez ou augmentez l'espace disque."
    },
    "cluster-info": {
      "service-id": "ID du service",
      "service-type": "Type de service",
      "no-data": "Aucune donnée"
    },
    "transport-messages": {
      "title": "Messages de transport",
      "info": "Tous les messages provenant des appareils"
    },
    "activity": {
      "title": "Activité"
    },
    "documentation": {
      "title": "Documentation",
      "add-link": "Ajouter un lien",
      "add-link-title": "Ajouter un lien de documentation",
      "name": "Nom",
      "name-required": "Le nom est requis.",
      "link": "Lien",
      "link-required": "Le lien est requis.",
      "columns": "Colonnes"
    },
    "quick-links": {
      "title": "Liens rapides",
      "add-link": "Ajouter un lien",
      "add-link-title": "Ajouter un lien rapide",
      "quick-link": "Lien rapide",
      "quick-link-required": "Le lien rapide est requis.",
      "no-links-matching": "Aucun lien correspondant à '{{name}}' trouvé.",
      "columns": "Colonnes"
    },
    "recent-dashboards": {
      "title": "Tableaux de bord",
      "last": "Dernière consultation",
      "starred": "Favoris",
      "name": "Nom",
      "last-viewed": "Dernière consultation",
      "no-last-viewed-dashboards": "Aucun tableau de bord consulté récemment"
    },
    "configured-features": {
      "title": "Fonctionnalités configurées",
      "info": "Statut des fonctionnalités nécessitant une configuration",
      "email-feature": "E-mail",
      "sms-feature": "SMS",
      "slack-feature": "Slack",
      "oauth2-feature": "OAuth 2",
      "2fa-feature": "Authentification à deux facteurs",
      "feature-configured": "Fonctionnalité configurée.\nCliquez pour configurer",
      "feature-not-configured": "Fonctionnalité non configurée.\nCliquez pour configurer"
    },
    "version-info": {
      "title": "Version",
      "contact-us": "Contactez-nous",
      "current-version": "Version actuelle",
      "current": "Actuelle",
      "available-version": "Version disponible",
      "available": "Disponible",
      "upgrade": "Mettre à jour",
      "version-is-up-to-date": "La version est à jour"
    },
    "usage-info": {
      "title": "Utilisation",
      "entities": "Entités",
      "api-calls": "Appels API"
    },
    "functions": {
      "title": "Fonctions",
      "pe-feature-tooltip": "Disponible uniquement dans ThingsBoard\nÉdition Professionnelle",
      "switch-to-pe": "Passer à l'Édition Pro",
      "alarms": "Alarmes",
      "dashboards": "Tableaux de bord",
      "entities-and-relations": "Entités et relations",
      "profiles": "Profils",
      "advanced-features": "Fonctionnalités avancées",
      "notification-center": "Centre de notifications",
      "api-usage": "Utilisation de l'API",
      "customers": "Clients",
      "customers-hierarchy": "Hiérarchie des clients",
      "roles-and-permissions": "Rôles et permissions",
      "groups": "Groupes",
      "integrations": "Intégrations",
      "solution-templates": "Modèles de solution",
      "scheduler": "Planificateur",
      "white-labeling": "Personnalisation de marque"
    },
    "devices": {
      "view-docs": "Voir la documentation",
      "inactive": "Inactif",
      "active": "Actif",
      "total": "Total"
    },
    "alarms": {
      "critical": "Critique",
      "assigned-to-me": "Assignées à moi",
      "total": "Total"
    },
    "getting-started": {
      "get-started": "Commencer",
      "finish": "Terminer",
      "done-welcome-title": "Bienvenue à bord",
      "done-welcome-text": "Vous avez réussi avec brio !",
      "sys-admin": {
        "step1": {
          "title": "Créer un Locataire et un Administrateur de Locataire",
          "content": "<p>Un locataire est une personne ou une organisation qui possède ou produit des appareils et des actifs. Le locataire peut avoir plusieurs administrateurs, clients, appareils et actifs.</p><p>L'administrateur de locataire peut créer et gérer des appareils, actifs, clients et tableaux de bord dans le compte du locataire.</p><p>Suivez la documentation pour savoir comment procéder :</p>",
          "how-to-create-tenant": "Comment créer un Locataire et un Administrateur de Locataire"
        },
        "step2": {
          "title": "Configurer la fonctionnalité : Serveur de messagerie",
          "content": "<p>La configuration du serveur de messagerie est essentielle pour l'activation des utilisateurs, la récupération de mot de passe et la livraison des notifications d'alarme.</p><p>Suivez la documentation pour savoir comment procéder :</p>",
          "how-to-configure-mail-server": "Comment configurer le serveur de messagerie"
        },
        "step3": {
          "title": "Configurer la fonctionnalité : Fournisseur SMS",
          "content": "<p>Configurez les fournisseurs SMS pour notifier les clients des alarmes par SMS.</p><p>Suivez la documentation pour savoir comment procéder :</p>",
          "how-to-configure-sms-provider": "Comment configurer le fournisseur SMS"
        },
        "step4": {
          "title": "Configurer la fonctionnalité : Marque blanche",
          "content": "<p>Personnalisez facilement le logo et le schéma de couleurs de votre entreprise ou produit, sans codage et sans redémarrer le service.</p><p>Suivez la documentation pour savoir comment procéder :</p>"
        },
        "step5": {
          "title": "Configurer la fonctionnalité : 2FA",
          "content": "<p>Améliorez la sécurité des comptes de la plateforme avec l'authentification à deux facteurs.</p><p>Suivez la documentation pour savoir comment procéder :</p>"
        },
        "step6": {
          "title": "Configurer la fonctionnalité : OAuth 2",
          "content": "<p>Simplifiez la connexion pour les utilisateurs locataires et clients avec la fonctionnalité Single Sign-On via OAuth 2.0.</p><p>Suivez la documentation pour savoir comment procéder :</p>"
        }
      },
      "tenant-admin": {
        "step1": {
          "title": "Créer un appareil",
          "content": "<p>Approvisionnons votre premier appareil sur la plateforme via l'interface utilisateur. Suivez la documentation pour savoir comment procéder :</p>",
          "how-to-create-device": "Comment créer un appareil"
        },
        "step2": {
          "title": "Connecter l’appareil",
          "content-before": "<p>Pour connecter l’appareil, vous devez obtenir ses identifiants. Nous recommandons d'utiliser les identifiants auto-générés par défaut, à savoir le jeton d'accès pour ce guide.</p><ul><li>Allez dans le tableau des appareils</li><li>Cliquez sur la ligne de l’appareil pour ouvrir les détails</li><li>Appuyez sur le bouton \"Copier le jeton d'accès\"</li></ul><p>Utilisez les commandes simples suivantes pour publier des données via HTTP. N'oubliez pas de remplacer <em>$ACCESS_TOKEN</em> par le jeton d'accès de votre appareil :</p>",
          "ubuntu": {
            "install-curl": "Installer cURL pour Ubuntu :"
          },
          "macos": {
            "install-curl": "Installer cURL pour macOS :"
          },
          "windows": {
            "install-curl": "Depuis Windows 10 b17063, cURL est disponible par défaut."
          },
          "replace-access-token": "Remplacez <em>$ACCESS_TOKEN</em> par le jeton de votre appareil :",
          "content-after": "<p>Vous pouvez également utiliser d'autres protocoles tels que MQTT, CoAP, etc.</p><p>Suivez la documentation pour savoir comment procéder :</p>",
          "how-to-connect-device": "Comment connecter un appareil"
        },
        "step3": {
          "title": "Créer un tableau de bord",
          "content": "<p>Créez un tableau de bord pour visualiser les données des entités telles que les appareils, les actifs, etc.</p><p>Suivez la documentation pour savoir comment procéder :</p>",
          "how-to-create-dashboard": "Comment créer un tableau de bord"
        },
        "step4": {
          "title": "Configurer des règles d'alarme",
          "alarm-rules": "Règles d'alarme",
          "content": "<p>Déclenchons une alarme lorsque la température atteint 25°C. Suivez la documentation pour savoir comment procéder :</p>",
          "how-to-configure-alarm-rules": "Comment configurer des règles d'alarme"
        },
        "step5": {
          "title": "Créer une alarme",
          "content-before": "<p>Pour déclencher l'alarme, envoyez une nouvelle valeur de télémétrie de 26°C ou plus.</p>",
          "replace-access-token": "Remplacez <em>$ACCESS_TOKEN</em> par le jeton de votre appareil :",
          "content-after": "<p>Suivez la documentation pour savoir comment procéder :</p>",
          "how-to-create-alarm": "Comment créer une alarme"
        },
        "step6": {
          "title": "Créer un client et partager le tableau de bord",
          "content": "<p>En créant des tableaux de bord pour les utilisateurs finaux, un utilisateur client ne peut voir que ses propres appareils. Les données d'autres clients lui seront invisibles.</p><p>Suivez la documentation pour savoir comment procéder :</p>"
        }
      }
    },
    "api-usage": {
      "api-usage": "Utilisation de l’API",
      "label": "Libellé",
      "state-name": "Nom de l’état",
      "status": "Statut",
      "status-required": "Le statut est requis.",
      "limit": "Limite max",
      "limit-required": "La limite max est requise.",
      "current-number": "Nombre actuel",
      "current-number-required": "Le nombre actuel est requis.",
      "add-key": "Ajouter une clé",
      "no-key": "Aucune clé",
      "delete-key": "Supprimer la clé",
      "target-dashboard-state": "État cible du tableau de bord",
      "go-to-main-state": "Aller à la vue par défaut"
    }
  },
  "icon": {
    "icon": "Icône",
    "icons": "Icônes",
    "custom": "Personnalisé",
    "select-icon": "Sélectionner une icône",
    "material-icons": "Icônes Material",
    "show-all": "Afficher toutes les icônes",
    "search-icon": "Rechercher une icône",
    "no-icons-found": "Aucune icône trouvée pour '{{iconSearch}}'"
  },
  "phone-input": {
    "phone-input-label": "Numéro de téléphone",
    "phone-input-required": "Le numéro de téléphone est requis",
    "phone-input-validation": "Le numéro de téléphone est invalide ou impossible",
    "phone-input-pattern": "Numéro de téléphone invalide. Doit être au format E.164, ex. {{phoneNumber}}",
    "phone-input-hint": "Numéro de téléphone au format E.164, ex. {{phoneNumber}}"
  },
  "custom": {
    "widget-action": {
      "action-cell-button": "Bouton d'action de cellule",
      "row-click": "Au clic sur la ligne",
      "cell-click": "Au clic sur la cellule",
      "polygon-click": "Au clic sur le polygone",
      "marker-click": "Au clic sur le marqueur",
      "circle-click": "Au clic sur le cercle",
      "tooltip-tag-action": "Action de balise info-bulle",
      "node-selected": "Lorsqu'un nœud est sélectionné",
      "element-click": "Au clic sur l'élément HTML",
      "pie-slice-click": "Au clic sur une tranche",
      "row-double-click": "Double clic sur la ligne",
      "cell-double-click": "Double clic sur la cellule",
      "card-click": "Au clic sur la carte",
      "click": "Au clic"
    }
  },
  "paginator": {
    "items-per-page": "Éléments par page :",
    "first-page-label": "Première page",
    "last-page-label": "Dernière page",
    "next-page-label": "Page suivante",
    "previous-page-label": "Page précédente",
    "items-per-page-separator": "sur"
  },
  "language": {
    "auto": "Auto",
    "language": "Langue"
  }
}