diff --git a/ui-ngx/src/assets/locale/locale.constant-fr_FR.json b/ui-ngx/src/assets/locale/locale.constant-fr_FR.json
index bf9b25df6b..ce66154f10 100644
--- a/ui-ngx/src/assets/locale/locale.constant-fr_FR.json
+++ b/ui-ngx/src/assets/locale/locale.constant-fr_FR.json
@@ -4,9 +4,11 @@
"access-forbidden-text": "Vous n'avez pas accès à cet emplacement!
Essayez de vous connecter avec un autre utilisateur si vous souhaitez toujours accéder à cet emplacement.",
"refresh-token-expired": "La session a expiré",
"refresh-token-failed": "Impossible de rafraîchir la session",
- "unauthorized": "non autorisé",
- "unauthorized-access": "accès non autorisé",
- "unauthorized-access-text": "Vous devez vous connecter pour avoir accès à cette ressource!"
+ "unauthorized": "Non autorisé",
+ "unauthorized-access": "Accès non autorisé",
+ "unauthorized-access-text": "Vous devez vous connecter pour avoir accès à cette ressource!",
+ "permission-denied": "Permission refusée",
+ "permission-denied-text": "Vous n'avez pas la permission de faire l'opération demandée!"
},
"action": {
"activate": "Activer",
@@ -14,11 +16,11 @@
"apply": "Appliquer",
"apply-changes": "Appliquer les modifications",
"assign": "Attribuer",
- "back": "retour",
+ "back": "Retour",
"cancel": "Annuler",
"clear-search": "Effacer la recherche",
"close": "Fermer",
- "continue": "Continue",
+ "continue": "Continuer",
"copy": "Copier",
"copy-reference": "Copier la référence",
"create": "Créer",
@@ -48,22 +50,27 @@
"suspend": "Suspendre",
"unassign": "Retirer",
"undo": "Annuler",
- "update": "mise à jour",
+ "update": "Mise à jour",
"view": "Afficher",
- "yes": "Oui"
+ "yes": "Oui",
+ "select": "Sélectionner",
+ "download": "Télécharger",
+ "next-with-label": "Suivant: {{label}}",
+ "read-more": "En savoir plus",
+ "hide": "Masquer"
},
"admin": {
"base-url": "URL de base",
- "base-url-required": "L'URL de base est requise.",
+ "base-url-required": "L'URL de base est requis.",
"enable-tls": "Activer TLS",
"tls-version": "Version TLS",
"general": "Général",
"general-settings": "Paramètres généraux",
- "mail-from": "Mail de",
- "mail-from-required": "Mail de est requis.",
+ "mail-from": "Courriel de",
+ "mail-from-required": "Courriel de est requis.",
"outgoing-mail": "courrier sortant",
"outgoing-mail-settings": "Paramètres de courrier sortant",
- "send-test-mail": "Envoyer un mail de test",
+ "send-test-mail": "Envoyer un courriel de test",
"smtp-host": "Hôte SMTP",
"smtp-host-required": "L'hôte SMTP est requis.",
"smtp-port": "Port SMTP",
@@ -71,7 +78,7 @@
"smtp-port-required": "Vous devez fournir un port smtp.",
"smtp-protocol": "Protocole SMTP",
"system-settings": "Paramètres système",
- "test-mail-sent": "Le courrier de test a été envoyé avec succés!",
+ "test-mail-sent": "Le courrier de test a été envoyé avec succès!",
"timeout-invalid": "Cela ne ressemble pas à un délai d'expiration valide.",
"timeout-msec": "Délai (msec)",
"timeout-required": "Le délai est requis.",
@@ -95,7 +102,131 @@
"general-policy": "Politique générale",
"max-failed-login-attempts": "Nombre maximal de tentatives de connexion infructueuses avant que le compte ne soit verrouillé",
"minimum-max-failed-login-attempts-range": "Le nombre maximal de tentatives de connexion ayant échoué ne peut pas être négatif",
- "user-lockout-notification-email": "En cas de verrouillage du compte d'utilisateur, envoyez une notification par courrier électronique."
+ "user-lockout-notification-email": "En cas de verrouillage du compte d'utilisateur, envoyez une notification par courrier électronique.",
+ "prohibit-different-url": "Interdire d'utiliser le nom d'hôte à partir des en-têtes de requête client",
+ "prohibit-different-url-hint": "Ce paramètre doit être activé pour les environnements de production. Peut causer des problèmes de sécurité lorsqu'il est désactivé.",
+ "enable-proxy": "Activer proxy",
+ "proxy-host": "Hôte proxy",
+ "proxy-host-required": "L'hôte proxy est requis.",
+ "proxy-port": "Port du proxy",
+ "proxy-port-required": "Port du 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 mot de passe",
+ "sms-provider": "Fournisseur SMS",
+ "sms-provider-settings": "Paramètres du fournisseur de SMS",
+ "sms-provider-type": "Type de fournisseur de SMS",
+ "sms-provider-type-required": "Le type de fournisseur de SMS 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 obligatoire",
+ "number-from": "Numéro de téléphone de",
+ "number-from-required": "Numéro de téléphone de est requis",
+ "number-to": "Numéro de téléphone à",
+ "number-to-required": "Numéro de téléphone à 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 de téléphone/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 de téléphone/SID du service de messagerie, ex. +19995550123/PNXXX/MGXXX.",
+ "sms-message": "Message SMS",
+ "sms-message-required": "Message SMS requis.",
+ "sms-message-max-length": "Le message SMS ne peut pas contenir plus de 1600 caractères",
+ "twilio-account-sid": "SID du compte Twilio",
+ "twilio-account-sid-required": "SID du compte Twilio requis",
+ "twilio-account-token": "Jeton du compte Twilio",
+ "twilio-account-token-required": "Jeton du compte Twilio est requis",
+ "send-test-sms": "Envoyer SMS test",
+ "test-sms-sent": "Le SMS de test a été envoyé avec succès !",
+ "allow-whitespace": "Autoriser les espaces",
+ "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 être inférieur à 256",
+ "error-verification-url": "Un nom de domaine ne doit pas contenir les symboles '/' et ':'. Exemple : Thingsboard.io",
+ "oauth2": {
+ "access-token-uri": "URI du jeton d'accès",
+ "access-token-uri-required": "URI du jeton d'accès requis.",
+ "activate-user": "Activer l'utilisateur",
+ "add-domain": "Ajouter un domaine",
+ "delete-domain": "Supprimer un domaine",
+ "add-provider": "Ajouter un fournisseur",
+ "delete-provider": "Supprimer un fournisseur",
+ "allow-user-creation": "Autoriser la création d'utilisateurs",
+ "always-fullscreen": "Toujours plein écran",
+ "authorization-uri": "URI d'autorisation",
+ "authorization-uri-required": "L'URI d'autorisation est obligatoire.",
+ "client-authentication-method": "Méthode d'authentification client",
+ "client-id": "Identifiant du client",
+ "client-id-required": "L'identifiant client est requis.",
+ "client-id-max-length": "L'ID client doit être inférieur à 256",
+ "client-secret": "Secret client",
+ "client-secret-required": "Secret client requis.",
+ "client-secret-max-length": "Le secret client doit être inférieur à 2049",
+ "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 être inférieur à 256",
+ "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 être inférieur à 256",
+ "delete-domain-text": "Attention, après la confirmation un domaine et toutes les données du fournisseur seront indisponibles.",
+ "delete-domain-title": "Voulez-vous vraiment supprimer les paramètres du domaine '{{domainName}}'?",
+ "delete-registration-text": "Attention, après la confirmation, les données d'un fournisseur seront indisponibles.",
+ "delete-registration-title": "Êtes-vous sûr de vouloir supprimer le fournisseur'{{name}}'?",
+ "email-attribute-key": "Clé d'attribut de courriel",
+ "email-attribute-key-required": "La clé d'attribut de courriel est requise.",
+ "email-attribute-key-max-length": "La clé d'attribut de courriel doit être inférieure à 32",
+ "first-name-attribute-key": "Clé d'attribut du prénom",
+ "general": "Général",
+ "jwk-set-uri": "URI de la clé Web JSON",
+ "last-name-attribute-key": "Clé d'attribut du nom de famille",
+ "login-button-icon": "Icône du bouton de connexion",
+ "login-button-label": "Libellé du fournisseur",
+ "login-button-label-placeholder": "Connectez-vous avec $(Provider label)",
+ "login-button-label-required": "L'étiquette est obligatoire.",
+ "login-provider": "Fournisseur de connexion",
+ "new-domain": "Nouveau domaine",
+ "password-max-length": "Le mot de passe doit être inférieur à 256",
+ "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'identifiant d'enregistrement est requis.",
+ "registration-id-unique": "L'ID d'enregistrement doit être unique pour le système.",
+ "scope": "Portée",
+ "scope-required": "La portée est requise.",
+ "tenant-name-pattern": "Modèle de nom du Tenant ",
+ "tenant-name-pattern-required": "Un modèle de nom de Tenant est requis.",
+ "tenant-name-pattern-max-length": "Le modèle de nom de Tenant doit être inférieur à 256",
+ "tenant-name-strategy": "Stratégie de nom de Tenant",
+ "type": "Type de Mapper",
+ "uri-pattern-error": "Format d'URI invalide.",
+ "url-pattern": "Format d'URL non valide.",
+ "url-required": "L'URL est requis.",
+ "url-max-length": "L'URL doit être inférieure à 256",
+ "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 être inférieur à 256",
+ "user-name-attribute-name": "Clé d'attribut de nom d'utilisateur",
+ "user-name-attribute-name-required": "La clé d'attribut du nom d'utilisateur est requise",
+ "protocol": "Protocole",
+ "enable": "Activer les paramètres OAuth2",
+ "domains": "Domainse",
+ "mobile-apps": "Applications mobiles",
+ "no-mobile-apps": "Aucune application configurée",
+ "mobile-package": "Package d'application",
+ "mobile-package-placeholder": "Ex. : mon.exemple.app",
+ "mobile-package-hint": "Pour Android : votre propre ID d'application unique. Pour iOS : identifiant du groupe de produits.",
+ "mobile-package-unique": "Le package d'application doit être unique.",
+ "mobile-app-secret": "Secret d'application",
+ "invalid-mobile-app-secret": "Le secret d'application ne doit contenir que des caractères alphanumériques et doit comporter entre 16 et 2 048 caractères.",
+ "copy-mobile-app-secret": "Copier le secret de l'application",
+ "add-mobile-app": "Ajouter une application",
+ "delete-mobile-app": "Supprimer les informations sur l'application",
+ "providers": "Fournisseurs",
+ "all-platforms": "Toutes les plateformes",
+ "allowed-platforms": "Plates-formes autorisées"
+ }
},
"aggregation": {
"aggregation": "agrégation",
@@ -163,7 +294,21 @@
"severity-warning": "Avertissement",
"start-time": "Heure de début",
"status": "État",
- "type": "Type"
+ "type": "Type",
+ "alarm-status-list": "Liste d'état des alarmes",
+ "any-status": "Tout statut",
+ "alarm-severity-list": "Liste de gravité des alarmes",
+ "any-severity": "Toute gravité",
+ "alarm-filter": "Filtre d'alarme",
+ "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 la requête",
+ "fetch-size-required": "La taille de la requête est requise.",
+ "fetch-size-error-min": "La valeur minimale est 10.",
+ "alarm-type-list": "Liste des types d'alarme",
+ "any-type": "N'importe quel type",
+ "search-propagated-alarms": "Rechercher les alarmes propagées"
},
"alias": {
"add": "Ajouter un alias",
@@ -176,7 +321,7 @@
"entity-filter": "Filtre d'entité",
"entity-filter-no-entity-matched": "Aucune entité correspondant au filtre spécifié n'a été trouvée.",
"filter-type": "Type de filtre",
- "filter-type-asset-search-query": "requête de recherche d'actifs",
+ "filter-type-asset-search-query": "Requête de recherche d'actifs",
"filter-type-asset-search-query-description": "Actifs de types {{assetTypes}} ayant {{relationType}} relation {{direction}} {{rootEntity}}",
"filter-type-asset-type": "type d'actif",
"filter-type-asset-type-and-name-description": "Actifs de type '{{assetType}}' et dont le nom commence par '{{prefix}}'",
@@ -190,13 +335,13 @@
"filter-type-entity-name": "Nom d'entité",
"filter-type-entity-view-search-query": "Requête de recherche vue d'entité",
"filter-type-entity-view-search-query-description": "Vues d'entité avec les types {{entityViewTypes}} ayant {{relationType}} relation {{direction}} {{rootEntity}}",
- "filter-type-edge-search-query": "Requête de recherche de bordure",
- "filter-type-edge-search-query-description": "Bordures de types {{edgeTypes}} ayant {{relationType}} relation {{direction}} {{rootEntity}}",
+ "filter-type-edge-search-query": "Requête de recherche de Edge",
+ "filter-type-edge-search-query-description": "Edges avec types {{edgeTypes}} qui ont {{relationType}} relation {{direction}} {{rootEntity}}",
"filter-type-entity-view-type": "Type de vue d'entité",
"filter-type-entity-view-type-and-name-description": "Vues d'entité de type '{{entityView}}' et dont le nom commence par '{{prefix}}'",
"filter-type-entity-view-type-description": "Vues d'entité de type '{{entityView}}'",
- "filter-type-edge-type": "Type de la bordure",
- "filter-type-edge-type-description": "Dispositifs de type '{{edgeType}}'",
+ "filter-type-edge-type": "Types de Edge",
+ "filter-type-edge-type-description": "Edges de type '{{edgeType}}'",
"filter-type-relations-query": "Interrogation des relations",
"filter-type-relations-query-description": "{{entities}} ayant {{relationType}} relation {{direction}} {{rootEntity}}",
"filter-type-required": "Le type de filtre est requis.",
@@ -212,7 +357,11 @@
"root-state-entity": "Utiliser l'entité d'état du tableau de bord en tant que racine",
"state-entity": "Entité d'état du tableau de bord",
"state-entity-parameter-name": "Nom du paramétre d'entité d'état",
- "unlimited-level": "niveau illimité"
+ "unlimited-level": "Niveau illimité",
+ "filter-type-entity-type": "Type d'entité",
+ "filter-type-edge-type-and-name-description": "Edges de type '{{edgeType}}' et dont le nom commence par '{{prefix}}'",
+ "filter-type-apiUsageState": "État d'utilisation de l'API",
+ "last-level-relation": "Récupérer uniquement la relation de dernier niveau"
},
"asset": {
"add": "Ajouter un actif",
@@ -220,7 +369,7 @@
"any-asset": "Tout actif",
"asset": "Actif",
"asset-details": "Détails de l'actif",
- "asset-file": "Actif file",
+ "asset-file": "Fichier d'actif",
"asset-public": "L'actif est public",
"asset-required": "Actif requis",
"asset-type": "Type d'actif",
@@ -248,8 +397,8 @@
"details": "Détails",
"enter-asset-type": "Entrez le type d'actif",
"events": "Evénements",
- "idCopiedMessage": "L'Id d'asset a été copié dans le presse-papier",
- "import": "Import actifs",
+ "idCopiedMessage": "L'Id d'actif a été copié dans le presse-papier",
+ "import": "Importer des actifs",
"make-private": "Rendre l'actif privé",
"make-private-asset-text": "Après la confirmation, l'actif et toutes ses données seront rendus privés et ne seront pas accessibles par d'autres.",
"make-private-asset-title": "Êtes-vous sûr de vouloir rendre l'actif '{{assetName}}' privé '?",
@@ -277,15 +426,21 @@
"unassign-assets-title": "Êtes-vous sûr de vouloir retirer l'attribution de {count, plural, 1 {1 asset} other {# assets} }?",
"unassign-from-customer": "Retirer du client",
"view-assets": "Afficher les actifs",
- "label": "Label",
- "assign-asset-to-edge": "Attribuer des actifs a la bordure",
+ "label": "Étiquette (label)",
+ "assign-asset-to-edge": "Attribuer des actifs à Edge",
"assign-asset-to-edge-text": "Veuillez sélectionner les actifs à attribuer a la bordure",
- "unassign-asset-from-edge": "Retirer de la bordure",
- "unassign-asset-from-edge-title": "Êtes-vous sûr de vouloir retirer l'attribution de l'actif '{{assetName}}'?",
- "unassign-asset-from-edge-text": "Après la confirmation, l'actif sera non attribué et ne sera pas accessible a la bordure.",
- "unassign-assets-from-edge-action-title": "Retirer {count, plural, 1 {1 asset} other {# assets}} de la bordure",
- "unassign-assets-from-edge-title": "Êtes-vous sûr de vouloir retirer l'attribution de {count, plural, 1 {1 asset} other {# assets}}?",
- "unassign-assets-from-edge-text": "Après la confirmation, tous les actifs sélectionnés ne seront pas attribués et ne seront pas accessibles a la bordure."
+ "unassign-asset-from-edge": "Désattribuer l'actif",
+ "unassign-asset-from-edge-title": "Voulez-vous vraiment annuler l'attribution de l'actif '{{assetName}}'?",
+ "unassign-asset-from-edge-text": "Après la confirmation, l'actif sera désaffecté et ne sera pas accessible par le edge.",
+ "unassign-assets-from-edge-action-title": "Retirer {count, plural, 1 {1 asset} other {# assets} } de la bordure",
+ "unassign-assets-from-edge-title": "Êtes-vous sûr de vouloir désattribuer { count, plural, 1 {1 asset} other {# assets} }?",
+ "unassign-assets-from-edge-text": "Après la confirmation, tous les actifs sélectionnés seront désaffectés et ne seront pas accessibles par le edge.",
+ "asset-type-max-length": "Le type d'actif doit être inférieur à 256",
+ "name-max-length": "Le nom doit être inférieur à 256",
+ "label-max-length": "L'étiquette doit être inférieure à 256",
+ "help-text": "Use '%' selon besoin : '%asset_name_contains%', '%asset_name_ends', 'asset_starts_with'.",
+ "search": "Rechercher des actifs",
+ "selected-assets": "{ count, plural, 1 {1 asset} other {# assets} } sélectionnés"
},
"attribute": {
"add": "Ajouter un attribut",
@@ -312,10 +467,66 @@
"show-on-widget": "Afficher sur le widget",
"value": "Valeur",
"value-required": "La valeur d'attribut est obligatoire.",
- "widget-mode": "Mode du widget"
+ "widget-mode": "Mode du widget",
+ "key-max-length": "La clé doit être inférieure à 256",
+ "no-attributes-text": "Aucun attribut trouvé",
+ "no-telemetry-text": "Aucune télémétrie trouvée"
+ },
+ "api-usage": {
+ "api-usage": "Usage de l'Api",
+ "alarm": "Alarme",
+ "alarms-created": "Alarmes créées",
+ "alarms-created-daily-activity": "Activité hebdomadaire d'alarmes créées",
+ "alarms-created-hourly-activity": "Activité horaire d'alarmes créées",
+ "alarms-created-monthly-activity": "Activités mensuelle d'alarmes créées",
+ "data-points": "Données",
+ "data-points-storage-days": "Jours de storage des données",
+ "email": "Courriel",
+ "email-messages": "Messages courriel",
+ "email-messages-daily-activity": "Activité hebdomadaire de courriels",
+ "email-messages-monthly-activity": "Activité menuselle de courriels",
+ "executions": "Exécutions",
+ "javascript-executions": "Exécutions JavaScript",
+ "javascript-functions": "Fonctions JavaScript",
+ "javascript-functions-daily-activity": "Activité hebdomadaire de fonctions JavaScript",
+ "javascript-functions-hourly-activity": "Activité horaire de fonctions JavaScript",
+ "javascript-functions-monthly-activity": "Activité mensuelle de fonctions JavaScript",
+ "latest-error": "Dernière erreur",
+ "notifications-email-sms": "Notifications (Coourriel/SMS)",
+ "notifications-hourly-activity": "Activité horaire de notifications",
+ "permanent-failures": "${entityName} Échecs permanents",
+ "permanent-timeouts": "${entityName} Temps d'arrêt permanents",
+ "processing-failures": "${entityName} Erreurs d'exécution",
+ "processing-failures-and-timeouts": "Erreurs d'exécution et temps d'arrêt",
+ "processing-timeouts": "${entityName} Temps d'arrêt d'exécution",
+ "queue-stats": "Stats de queue",
+ "rule-chain": "Chaîne de règles",
+ "rule-engine": "Engin de règles",
+ "rule-engine-daily-activity": "Activité hebdomadaire de l'engin de règles",
+ "rule-engine-executions": "Exécutions de l'engin de règles",
+ "rule-engine-hourly-activity": "Activité horaire de l'engin de règles",
+ "rule-engine-monthly-activity": "Activité mensuelle de l'engin de règles",
+ "rule-engine-statistics": "Statistiques de l'engin de règles",
+ "rule-node": "Node de règle",
+ "sms-messages": "Messages texte",
+ "sms-messages-daily-activity": "Activité hebdomadaire de messages texte",
+ "sms-messages-monthly-activity": "Activité mensuelle de messages texte",
+ "successful": "${entityName} réussi",
+ "telemetry": "Télémétrie",
+ "telemetry-persistence": "Persistance de télémétrie",
+ "telemetry-persistence-daily-activity": "Activité hebdomadaire de persistance de télémétrie",
+ "telemetry-persistence-hourly-activity": "Activité horaire de persistance de télémétrie",
+ "telemetry-persistence-monthly-activity": "Activité mensuelle de persistance de télémétrie",
+ "transport-daily-activity": "Activité hebdomadaire de transport",
+ "transport-data-points": "Données de transport",
+ "transport-hourly-activity": "Activité horaire de transport",
+ "transport-messages": "Messages de transport",
+ "transport-monthly-activity": "Activité mensuelle de transport",
+ "view-details": "Voir détails",
+ "view-statistics": "Voir statistiques"
},
"audit-log": {
- "action-data": "Action data",
+ "action-data": "Donnée d'action",
"audit": "Audit",
"audit-log-details": "Détails du journal d'audit",
"audit-logs": "Journaux d'audit",
@@ -336,25 +547,31 @@
"type-alarm-ack": "Acquitté",
"type-alarm-clear": "Effacé",
"type-assigned-to-customer": "Attribué au client",
- "type-assigned-to-edge": "Attribué a la bordure",
- "type-unassigned-from-edge": "Non attribué de la bordure",
+ "type-assigned-to-edge": "Assigné au Edge",
+ "type-unassigned-from-edge": "Attribution retirée du Edge",
"type-attributes-deleted": "Attributs supprimés",
"type-attributes-read": "Attributs lus",
"type-attributes-updated": "Attributs mis à jour",
"type-credentials-read": "Lecture des informations d'identification",
"type-credentials-updated": "Informations d'identification actualisées",
"type-deleted": "Supprimé",
- "type-login": "Login",
- "type-logout": "Connectez - Out",
+ "type-login": "Connexion",
+ "type-logout": "Déconnexion",
"type-lockout": "Verrouillage",
"type-relation-add-or-update": "Relation mise à jour",
"type-relation-delete": "Relation supprimée",
"type-relations-delete": "Toutes les relations ont été supprimées",
"type-rpc-call": "Appel RPC",
"type-suspended": "Suspendu",
- "type-unassigned-from-customer": "Non attribué du client",
+ "type-unassigned-from-customer": "Attribution retirée du client",
"type-updated": "Mise à jour",
- "user": "Utilisateur"
+ "user": "Utilisateur",
+ "type-assigned-from-tenant": "Assigné par le Tenant",
+ "type-assigned-to-tenant": "Assigné au Tenant",
+ "type-provision-success": "Dispositif mis en service",
+ "type-provision-failure": "La mise en service du dispositif a échoué",
+ "type-timeseries-updated": "Telemetrie mise à jour",
+ "type-timeseries-deleted": "Telemetrie supprimée"
},
"common": {
"enter-password": "Entrez le mot de passe",
@@ -362,7 +579,10 @@
"enter-username": "Entrez le nom d'utilisateur",
"password": "Mot de passe",
"username": "Nom d'utilisateur",
- "created-time": "Heure de création"
+ "created-time": "Heure de création",
+ "loading": "Chargement en cours...",
+ "proceed": "Procéder",
+ "open-details-page": "Ouvrir la page détails"
},
"confirm-on-exit": {
"html-message": "Vous avez des modifications non enregistrées.
Êtes-vous sûr de vouloir quitter cette page?",
@@ -371,15 +591,18 @@
},
"contact": {
"address": "Adresse",
- "address2": "adresse 2",
+ "address2": "Adresse 2",
"city": "Ville",
"country": "Pays",
- "email": "Email",
+ "email": "Courriel",
"no-address": "Pas d'adresse",
"phone": "Téléphone",
"postal-code": "Code postal",
"postal-code-invalid": "Format de code postal / code postal invalide",
- "state": "Province"
+ "state": "Province",
+ "state-max-length": "La longueur de l'état doit être moins que 256",
+ "phone-max-length": "La longueur du téléphone doit être moins que 256",
+ "city-max-length": "La ville spécifiée doit être moins que 256"
},
"content-type": {
"binary": "Binaire (Base64)",
@@ -421,7 +644,7 @@
"description": "Description",
"details": "Détails",
"devices": "Dispositifs du client",
- "edges": "Bordures du client",
+ "edges": "Instances Edge du client",
"entity-views": "Vues de l'entité client",
"events": "Événements",
"idCopiedMessage": "L'Id du client a été copié dans le presse-papier",
@@ -449,7 +672,11 @@
"select-customer": "Sélectionner un client",
"select-default-customer": "Sélectionnez le client par défaut",
"title": "Titre",
- "title-required": "Le titre est requis."
+ "title-required": "Le titre est requis.",
+ "title-max-length": "La longueur du titre doit être moins que 256",
+ "search": "Rechercher clients",
+ "selected-customers": "{ count, plural, 1 {1 customer} other {# customers} } sélectionnés",
+ "manage-edges": "Gérer les edges"
},
"dashboard": {
"add": "Ajouter un tableau de bord",
@@ -458,7 +685,7 @@
"add-widget": "Ajouter un nouveau widget",
"alias-resolution-error-title": "Erreur de configuration des alias de tableau de bord",
"assign-dashboard-to-customer": "Attribuer des tableaux de bord au client",
- "assign-dashboard-to-customer-text": "Veuillez sélectionner les tableaux de bord à affecter au client",
+ "assign-dashboard-to-customer-text": "Veuillez sélectionner les tableaux de bord à attribuer au client",
"assign-dashboards": "Attribuer des tableaux de bord",
"assign-dashboards-text": "Attribuer {count, plural, 1 {1 tableau de bord} other {# tableaux de bord} } aux clients",
"assign-new-dashboard": "Attribuer un nouveau tableau de bord",
@@ -466,9 +693,9 @@
"assign-to-customer-text": "Veuillez sélectionner le client pour attribuer le ou les tableaux de bord",
"assign-to-customers": "Attribuer des tableaux de bord aux clients",
"assign-to-customers-text": "Veuillez sélectionner les clients pour attribuer les tableaux de bord",
- "assigned-customers": "clients affectés",
+ "assigned-customers": "clients attribués",
"assignedToCustomer": "Attribué au client",
- "assignedToCustomers": "attribué aux clients",
+ "assignedToCustomers": "Attribué aux clients",
"autofill-height": "Hauteur de remplissage automatique",
"background-color": "Couleur de fond",
"background-image": "Image d'arriére-plan",
@@ -500,7 +727,7 @@
"description": "Description",
"details": "Détails",
"display-dashboard-export": "Afficher l'exportation",
- "display-dashboard-timewindow": "Afficher fenêtre de temps",
+ "display-dashboard-timewindow": "Afficher la fenêtre de temps",
"display-dashboards-selection": "Afficher la sélection des tableaux de bord",
"display-entities-selection": "Afficher la sélection des entités",
"display-title": "Afficher le titre du tableau de bord",
@@ -522,17 +749,17 @@
"make-private-dashboard-text": "Après la confirmation, le tableau de bord sera rendu privé et ne sera plus accessible aux autres.",
"make-private-dashboard-title": "Êtes-vous sûr de vouloir rendre le tableau de bord '{{dashboardTitle}}' privé?",
"make-public": "Rendre public le tableau de bord",
- "manage-assigned-customers": "Gérer les clients affectés",
+ "manage-assigned-customers": "Gérer les clients attribués",
"manage-states": "Gérer les états du tableau de bord",
"management": "Gestion du tableau de bord",
"max-columns-count-message": "Seulement 1000 colonnes maximum sont autorisées.",
- "max-horizontal-margin-message": "Seulement 50 sont autorisés en tant que valeur de marge horizontale maximale.",
- "max-mobile-row-height-message": "Seuls 200 pixels sont autorisés en tant que valeur maximale de hauteur de ligne mobile.",
- "max-vertical-margin-message": "Seulement 50 sont autorisés en tant que valeur de marge verticale maximale.",
+ "max-horizontal-margin-message": "50 est la valeur de marge horizontale maximale.",
+ "max-mobile-row-height-message": "200 pixels est la valeur maximale de hauteur de ligne mobile.",
+ "max-vertical-margin-message": "50 est la valeur de marge verticale maximale.",
"min-columns-count-message": "Seul un nombre minimum de 10 colonnes est autorisé.",
- "min-horizontal-margin-message": "Seul 0 est autorisé comme valeur de marge horizontale minimale.",
- "min-mobile-row-height-message": "Seuls 5 pixels sont autorisés en tant que valeur minimale de hauteur de ligne mobile.",
- "min-vertical-margin-message": "Seul 0 est autorisé comme valeur de marge verticale minimale.",
+ "min-horizontal-margin-message": "0 est la valeur de marge horizontale minimale.",
+ "min-mobile-row-height-message": "5 pixels est la valeur minimale de hauteur de ligne mobile.",
+ "min-vertical-margin-message": "0 est la valeur de marge verticale minimale.",
"mobile-layout": "Paramètres de mise en page mobiles",
"mobile-row-height": "Hauteur de ligne mobile, px",
"mobile-row-height-required": "Une valeur de hauteur de ligne mobile est requise.",
@@ -584,7 +811,7 @@
"unassign-dashboards-title": "Etes-vous sûr de vouloir annuler l'affectation {count, plural, 1 {1 tableau de bord} other {# tableaux de bord} }?",
"unassign-from-customer": "Retirer du client",
"unassign-from-customers": "Retirer les tableaux de bord des clients",
- "unassign-from-customers-text": "Veuillez sélectionner les clients à annuler l'affectation du ou des tableaux de bord",
+ "unassign-from-customers-text": "Veuillez sélectionner les clients à annuler l'attribution du ou des tableaux de bord",
"vertical-margin": "Marge verticale",
"vertical-margin-required": "Une valeur de marge verticale est requise",
"view-dashboards": "Afficher les tableaux de bord",
@@ -594,7 +821,39 @@
"unassign-dashboard-from-edge-text": "Après la confirmation, tableau de bord sera non attribué et ne sera pas accessible a la bordure.",
"unassign-dashboards-from-edge-text": "Après la confirmation, tous les tableaux de bord sélectionnés ne seront pas attribués et ne seront pas accessibles a la bordure.",
"assign-dashboard-to-edge": "Attribuer des tableaux de bord a la bordure",
- "assign-dashboard-to-edge-text": "Veuillez sélectionner la bordure pour attribuer le ou les tableaux de bord"
+ "assign-dashboard-to-edge-text": "Veuillez sélectionner la bordure pour attribuer le ou les tableaux de bord",
+ "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": "Cacher le tableau de bord dans l'application mobile",
+ "update-image": "Mettre à jour l'image du tableau de bord",
+ "take-screenshot": "Prendre une capture d'écran",
+ "select-widget-value": "{{title}}: sélectionner widget",
+ "title-max-length": "La longueur du titre doit être mpoins de 256",
+ "empty-image": "Aucune image",
+ "maximum-upload-file-size": "Taille de fichier maximum: {{ size }}",
+ "cannot-upload-file": "Le téléchargement a échoué",
+ "layout-settings": "Paramètres de mise en page",
+ "margin-required": "Valeur de marge requise.",
+ "min-margin-message": "0 est la valeur minimum permise.",
+ "max-margin-message": "50 est la valeur maximum permise.",
+ "title-settings": "Paramètres du titre",
+ "toolbar-settings": "Paramètres de la barre d'outils",
+ "hide-toolbar": "Masquer la barre d'outils",
+ "display-filters": "Afficher les filtres",
+ "display-update-dashboard-image": "Afficher l'image du tableau de bord de mise à jour",
+ "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",
+ "no-states-text": "Aucun état trouvé",
+ "search": "Rechercher des tableaux de bord",
+ "selected-dashboards": "{ count, plural, 1 {1 dashboard} other {# dashboards} } sélectionné",
+ "home-dashboard": "Tableau de bord d'accueil",
+ "home-dashboard-hide-toolbar": "Masquer la barre d'outils du tableau de bord d'accueil",
+ "unassign-dashboards-from-edge-title": "Êtes-vous certain de vouloir désattribuer { count, plural, 1 {1 dashboard} other {# dashboards} }?",
+ "non-existent-dashboard-state-error": "L'état du tableau de bord avec ID \"{{ stateId }}\" non trouvé"
},
"datakey": {
"advanced": "Avancé",
@@ -620,7 +879,9 @@
"timeseries-required": "Les Timeseries de l'entité sont obligatoires.",
"units": "Symbole spécial à afficher à côté de la valeur",
"use-data-post-processing-func": "Utiliser la fonction de post-traitement des données",
- "value-description": "la valeur actuelle;"
+ "value-description": "la valeur actuelle;",
+ "entity-field": "Champs d'entité",
+ "alarm-fields-timeseries-or-attributes-required": "Les champs d'alarmes ou l'entité timeseries/attributs sont requis."
},
"datasource": {
"add-datasource-prompt": "Veuillez ajouter une source de données",
@@ -635,7 +896,9 @@
},
"details": {
"edit-mode": "Mode édition",
- "toggle-edit-mode": "Activer le mode édition"
+ "toggle-edit-mode": "Activer le mode édition",
+ "details": "Détails",
+ "edit-json": "Éditer JSON"
},
"device": {
"access-token": "Jeton d'accès",
@@ -649,7 +912,7 @@
"alias-required": "Un alias du dispositif est requis.",
"aliases": "Alias des dispositifs",
"any-device": "N'importe quel dispositif",
- "assign-device-to-customer": "Affecter des dispositifs au client",
+ "assign-device-to-customer": "Attribuer des dispositifs au client",
"assign-device-to-customer-text": "Veuillez sélectionner les dispositif à affecter au client",
"assign-devices": "Attribuer des dispositifs",
"assign-devices-text": "Attribuer {count, plural, 1 {1 dispositif} other {# dispositifs} } au client",
@@ -657,7 +920,7 @@
"assign-to-customer": "Attribuer au client",
"assign-to-customer-text": "Veuillez sélectionner le client pour attribuer le ou les dispositifs",
"assignedToCustomer": "Attribué au client",
- "configure-alias": "Configurer '{{alias}}' alias",
+ "configure-alias": "Configurer alias '{{alias}}'",
"copyAccessToken": "Copier le jeton d'accès",
"copyId": "Copier l'Id du dispositif",
"create-new-alias": "Créez un nouveau!",
@@ -688,7 +951,7 @@
"device-type-required": "Le type de dispositif est requis.",
"device-types": "Types de dispositif",
"devices": "Dispositifs",
- "duplicate-alias-error": "Alias ??en double trouvé '{{alias}}'.
Les alias de dispositifs doivent être uniques dans le tableau de bord.",
+ "duplicate-alias-error": "Alias '{{alias}}' existe déjà.
Les alias de dispositifs doivent être uniques dans le tableau de bord.",
"enter-device-type": "Entrez le type de dispositif",
"events": "Événements",
"idCopiedMessage": "l'Id du dispositif a été copié dans le presse-papiers",
@@ -731,11 +994,154 @@
"use-device-name-filter": "Utiliser le filtre",
"view-credentials": "Afficher les informations d'identification",
"view-devices": "Afficher les dispositifs",
- "assign-device-to-edge-text":"Veuillez sélectionner la bordure pour attribuer le ou les dispositifs",
+ "assign-device-to-edge-text": "Veuillez sélectionner la bordure pour attribuer le ou les dispositifs",
"unassign-device-from-edge-title": "Êtes-vous sûr de vouloir annuler l'affection du dispositif {{deviceName}} '?",
"unassign-device-from-edge-text": "Après la confirmation, dispositif sera non attribué et ne sera pas accessible a la bordure.",
- "unassign-devices-from-edge-title": "Voulez-vous vraiment annuler l'affectation de {count, plural, 1 {1 device} other {# devices} }?",
- "unassign-devices-from-edge-text": "Après la confirmation, tous les dispositifs sélectionnés ne seront pas attribues et ne seront pas accessibles par la bordure."
+ "unassign-devices-from-edge-title": "Voulez-vous vraiment annuler l'attribution de {count, plural, 1 {1 device} other {# devices} }?",
+ "unassign-devices-from-edge-text": "Après la confirmation, tous les dispositifs sélectionnés ne seront pas attribues et ne seront pas accessibles par la bordure.",
+ "device-type-max-length": "La longueur du type de dispositif doit être moins de 256",
+ "help-text": "Utilisez '%' au besoin: '%device_name_contains%', '%device_name_ends', 'device_starts_with'.",
+ "unassign-devices-from-edge": "Désattribuer les dispositifs du edge",
+ "loading-device-credentials": "Chargement des informations d'identification du dispositf...",
+ "certificate-pem-format": "Certificat en format PEM",
+ "certificate-pem-format-required": "Certificat requis.",
+ "lwm2m-security-config": {
+ "identity": "Identité du client",
+ "identity-required": "Identité du client requise.",
+ "identity-tooltip": "L'identifiant PSK est un identifiant PSK arbitraire d'une longueur maximum de 128 octets, tel qu'indiqué au standard [RFC7925].\nL'identifiant PSK DOIT d'abord être converti en format texte puis encodé en octets utilisant la norme UTF-8.",
+ "client-key": "Clé du client",
+ "client-key-required": "Clé du client est requise.",
+ "client-key-tooltip-prk": "Clé publique RPK ou ID doivent être en format standard [RFC7250] et encodés en format Base64!",
+ "client-key-tooltip-psk": "Clé PSK doit être dans le standard [RFC4279] et en format HexDec: 32, 64, 128 caractères!",
+ "endpoint": "Nom du client Endpoint",
+ "endpoint-required": "Nom du client Endpoint est requis.",
+ "client-public-key": "Clé publique du client",
+ "client-public-key-hint": "Si la clé publique du client est vide, le certificat sera utilisé",
+ "client-public-key-tooltip": "La clé publique X509 doit être en format X509v3 DES-encodé et supporter exclusivement l'algorithme EC puis être encodé en format Base64!",
+ "mode": "Mode configuration de sécurité",
+ "client-tab": "Config de la sécutité du client",
+ "client-certificate": "Certificat du client",
+ "bootstrap-tab": "Client Bootstrap",
+ "bootstrap-server": "Serveur Bootstrap",
+ "lwm2m-server": "Serveur LwM2M",
+ "client-publicKey-or-id": "Clé publique du client ou ID",
+ "client-publicKey-or-id-required": "Clé publique du client ou ID requise",
+ "client-publicKey-or-id-tooltip-psk": "L'identifiant PSK est un identifiant PSK arbitraire d'une longueur maximum de 128 octets, tel qu'indiqué au standard [RFC7925].\nL'identifiant PSK DOIT d'abord être converti en format texte puis encodé en octets utilisant la norme UTF-8.",
+ "client-publicKey-or-id-tooltip-rpk": "Clé publique RPK ou ID doivent être en format standard [RFC7250] et encodés en format Base64!",
+ "client-publicKey-or-id-tooltip-x509": "La clé publique X509 doit être en format X509v3 DES-encodé et supporter exclusivement l'algorithme EC puis être encodé en format Base64!",
+ "client-secret-key": "Clé secrète du client",
+ "client-secret-key-required": "Clé secrète du client est requise.",
+ "client-secret-key-tooltip-psk": "La clé PSK doit être en format stadard [RFC4279] et en format HexDec: 32, 64, 128 caractères!",
+ "client-secret-key-tooltip-prk": "La clé secrète RPK doit être en format PKCS_8 (DER encodée, standard [RFC5958]) puis encodée en format Base64!",
+ "client-secret-key-tooltip-x509": "La clé secrète X509 doit être en format PKCS_8 (DER encodée, standard [RFC5958]) puis encodée en format Base64!"
+ },
+ "client-id": "ID client",
+ "client-id-pattern": "Contient des caractères invalides.",
+ "user-name": "Nom d'utilisateur",
+ "user-name-required": "Nom d'utilisateur requis.",
+ "client-id-or-user-name-necessary": "ID client et/ou identifiant sont requis",
+ "password": "Mot de passe",
+ "name-max-length": "La longueur du nom doit être moins de 256",
+ "label-max-length": "La longueur du Label doit être moins de 256",
+ "copy-mqtt-authentication": "Copier les authentifiants MQTT",
+ "mqtt-authentication-copied-message": "L'authentifiant MQTT du dispositif a été copié au presse-papier",
+ "overwrite-activity-time": "Passer par dessus le temps de l'activité pour dispositif connecté",
+ "import": "Importer dispositif",
+ "device-file": "Fichier du dispositif",
+ "search": "Rechercher des dispositifs",
+ "selected-devices": "{ count, plural, 1 {1 device} other {# devices} } sélectionnés",
+ "device-configuration": "Configuration du dipositif",
+ "transport-configuration": "Configuration du transport",
+ "wizard": {
+ "device-wizard": "Wizard du dispositif",
+ "device-details": "Détails du dispositif",
+ "new-device-profile": "Créer un nouveau profil de dispositif",
+ "existing-device-profile": "Choisissez un profile de dispositif existant",
+ "specific-configuration": "Configuration spécifique",
+ "customer-to-assign-device": "Client auquel assigner le dispositif",
+ "add-credentials": "Ajouter identifiants"
+ }
+ },
+ "device-profile": {
+ "device-profile": "Profile du dispositif",
+ "device-profiles": "Profiles du dispositif",
+ "all-device-profiles": "Tous",
+ "add": "Ajouter un nouveau profile de dispositif",
+ "edit": "Modifier le profile de dispositif",
+ "device-profile-details": "Détails du profile de dispositif",
+ "no-device-profiles-text": "Aucun profil de dispositif trouvé",
+ "search": "Rechercher profil de dispositif",
+ "selected-device-profiles": "{ count, plural, 1 {1 device profile} other {# device profiles} } sélectionné",
+ "no-device-profiles-matching": "Aucun dispositif correspondant à '{{entity}}' trouvé.",
+ "device-profile-required": "Un profil de dispositif est requis.",
+ "idCopiedMessage": "L'Id du profil de dispositif a été copié au presse-papier",
+ "set-default": "Rendre le profil de dispositif par défaut",
+ "delete": "Supprimer le profil de dispositif",
+ "copyId": "Copier l'Identifiant du profil de dispositif",
+ "name-max-length": "La longueur du nom devrait être moins de 256",
+ "new-device-profile-name": "Nom du profil de dispositif",
+ "new-device-profile-name-required": "Nom du profil de dispositif est requis.",
+ "name": "Nom",
+ "name-required": "Nom est requis.",
+ "type": "Type de profile",
+ "type-required": "Type de profile est requis.",
+ "type-default": "Défault",
+ "image": "Image du profile de dispositif",
+ "transport-type": "Type de transport",
+ "transport-type-required": "Type de transport est requis.",
+ "transport-type-default": "Défault",
+ "transport-type-default-hint": "Supporte comme transport MQTT de base, HTTP et CoAP",
+ "transport-type-mqtt-hint": "Active les configurations MQTT avancées",
+ "transport-type-coap-hint": "Active les configurations CoAP avancées",
+ "transport-type-lwm2m-hint": "Type de transport LWM2M",
+ "transport-type-snmp-hint": "Spécifiez la configuration du transport SNMP",
+ "default": "Défault",
+ "profile-configuration": "Configuration du profile",
+ "transport-configuration": "Configuration du transport",
+ "default-rule-chain": "Chaine de règles par défaut",
+ "mobile-dashboard": "Tableau de bord mobile",
+ "mobile-dashboard-hint": "Utilisé par les applications mobiles comme tableau de bord de détails de dispositifs.",
+ "select-queue-hint": "Choisissez d'une liste déroulante.",
+ "delete-device-profile-title": "Êtes-vous certain de vouloir supprimer le profile de dispositif '{{deviceProfileName}}'?",
+ "delete-device-profile-text": "Attention, après confirmation le profil du dispositif et toutes les données associées deviendront irrécupérables.",
+ "delete-device-profiles-title": "Êtes-vous certainde vouloir supprimer { count, plural, 1 {1 device profile} other {# device profiles} }?",
+ "delete-device-profiles-text": "Attention, après confirmation les profils des dispositifs sélectionnés et toutes les données associées deviendront irrécupérables.",
+ "set-default-device-profile-title": "Êtes-vous certain de vouloir faire du profil de dispositif '{{deviceProfileName}}' le profil par défaut?",
+ "set-default-device-profile-text": "Après confirmation, le profil de dispositif sera le profil par défaut et sera utilisé pour les nouveaux dispositifs n'ayant pas de profil.",
+ "no-device-profiles-found": "Aucun profil de dispositif trouvé.",
+ "create-new-device-profile": "En créer un nouveau!",
+ "mqtt-device-topic-filters": "Filtres de sujets de dispositifs MQTT",
+ "mqtt-device-topic-filters-unique": "Filtres de sujets de dispositifs MQTT doivent être uniques. ",
+ "mqtt-device-payload-type": "Payload de dispositif MQTT",
+ "mqtt-enable-compatibility-with-json-payload-format": "Activer la compatibilité avec d'autres formats de payloads.",
+ "mqtt-enable-compatibility-with-json-payload-format-hint": "Lorsqu'activé, la plateforme utilisera un format de payload Protobuf par défaut. Si le parsing échoue, la pateforme tentera d'utiliser le format JSON. Utile pour compatibilité avec version antérieures lors de mises à jour du firmware. Par exemple, la version originale du firmware utilisait JSON, alors que la nouvelle version du firmware utilise Protobuf. Durant le processus de mise à jour du firmware pour une flotte de dispositifs, il est requis de supporter à la fois JSON et Protobuf simultanément. Ce mode de compatibilité est légèrement moins performant alors il est recommandé de le désactivé une fois tous les dispositifs mis à jour.",
+ "mqtt-use-json-format-for-default-downlink-topics": "Utilisez le format JSON pouir les sujets de downlink par défaut",
+ "mqtt-use-json-format-for-default-downlink-topics-hint": "Lorsqu'activé, la plateforme utilisera le format de payload JSON pour pousser des attributs et des RPC via les sujets suivants: v1/devices/me/attributes/response/$request_id, v1/devices/me/attributes, v1/devices/me/rpc/request/$request_id, v1/devices/me/rpc/response/$request_id. This setting does not impact attribute and rpc subscriptions sent using new (v2) topics: v2/a/res/$request_id, v2/a, v2/r/req/$request_id, v2/r/res/$request_id. Où $request_id est un identifiant de requête entier.",
+ "snmp-add-mapping": "Ajouter un mapping SNMP",
+ "snmp-mapping-not-configured": "Aucun mapping pour OID vers timeseries/télémétrie n'est configuré",
+ "snmp-timseries-or-attribute-name": "Nom timeseries/attribut pour mapping",
+ "snmp-timseries-or-attribute-type": "Type timeseries/attribut pour mapping",
+ "mqtt-payload-type-required": "Type de payload est requis.",
+ "coap-device-type": "Type de dispositif CoAP",
+ "coap-device-payload-type": "Payload de dispositif CoAP",
+ "coap-device-type-required": "Type de dispositif CoAP est requis.",
+ "coap-device-type-default": "Défaut",
+ "support-level-wildcards": "[+] unique et wildcards de [#] multi-niveaux supportés.",
+ "telemetry-topic-filter": "Filtre de sujets de télémétrie",
+ "telemetry-topic-filter-required": "Filtre de sujets de télémétrie est requis.",
+ "attributes-topic-filter": "Filtre de sujets d'attributs",
+ "attributes-topic-filter-required": "Filtre de sujets d'attributs est requis.",
+ "telemetry-proto-schema": "Schéma proto de télémétrie",
+ "telemetry-proto-schema-required": "Schéma proto de télémétrie est requis.",
+ "attributes-proto-schema": "Schéma proto d'attributs",
+ "attributes-proto-schema-required": "Schéma proto d'attributs est requis.",
+ "rpc-response-proto-schema": "Schéma proto de réponse RPC",
+ "rpc-response-proto-schema-required": "Schéma proto de réponse RPC est requis.",
+ "rpc-response-topic-filter": "Filtre de sujets de réponse RPC",
+ "rpc-response-topic-filter-required": "Filtre de sujets de réponse RPC est requis.",
+ "rpc-request-proto-schema": "Schéma proto de requête RPC",
+ "rpc-request-proto-schema-required": "Schéma proto de requête RPC est requis.",
+ "rpc-request-proto-schema-hint": "Une requête RPC devrait toujours avoir les champs: string method = 1; int32 requestId = 2; et params = 3 de n'importe quel type de données."
},
"dialog": {
"close": "Fermer le dialogue"
@@ -866,13 +1272,13 @@
},
"entity": {
"add-alias": "Ajouter un alias d'entité",
- "alarm-name-starts-with": "Les actifs dont le nom commence par '{{prefix}}'",
+ "alarm-name-starts-with": "Les alarmes dont le nom commence par '{{prefix}}'",
"alias": "Alias",
"alias-required": "Un alias d'entité est requis.",
"aliases": "alias d'entité",
"all-subtypes": "Tout",
"any-entity": "Toute entité",
- "asset-name-starts-with": "Les Assets dont le nom commence par '{{prefix}}'",
+ "asset-name-starts-with": "Les actifs dont le nom commence par '{{prefix}}'",
"columns-to-display": "Colonnes à afficher",
"configure-alias": "Configurer '{{alias}}' alias",
"create-new-alias": "Créez un nouveau!",
@@ -926,7 +1332,7 @@
"rulenode-name-starts-with": "Les noeuds de régles dont le nom commence par '{{prefix}}'",
"type-edge": "Bordure",
"type-edges": "Bordures",
- "list-of-edges": "{ count, plural, 1 {Une bordure} other {List of # bordures} }",
+ "list-of-edges": "{ count, plural, 1 {Une bordure} other {Liste de # bordures} }",
"edge-name-starts-with": "Bordures dont les noms commencent par '{{prefix}}'",
"search": "Recherche d'entités",
"select-entities": "Sélectionner des entités",
@@ -1039,7 +1445,7 @@
"make-public-entity-view-text": "Après la confirmation, la vue de l'entité et toutes ses données seront rendues publiques et accessibles à d'autres",
"make-public-entity-view-title": "Voulez-vous vraiment que la vue de l'entité '{{entityViewName}}' soit publique?",
"assign-entity-view-to-edge": "Attribuer a la bordure",
- "assign-entity-view-to-edge-text":"Veuillez sélectionner la bordure auquel attribuer la ou les vues d'entité.",
+ "assign-entity-view-to-edge-text": "Veuillez sélectionner la bordure auquel attribuer la ou les vues d'entité.",
"unassign-entity-view-from-edge-title": "Voulez-vous vraiment annuler l'attribution de la vue d'entité '{{entityViewName}}'?",
"unassign-entity-view-from-edge-text": "Après la confirmation, la vue de l'entité sera non attribuée et ne sera pas accessible par la bordure.",
"unassign-entity-views-from-edge-action-title": "Annuler l'attribution { count, plural, 1 {1 entityView} other {# entityViews} } de la bordure",
@@ -1082,7 +1488,10 @@
"unassign-entity-views-title": "Êtes-vous sûr de vouloir annuler l'attribution { count, plural, 1 {1 entityView} other {# entityViews} }?",
"unassign-from-customer": "Annuler l'attribution au client",
"use-entity-view-name-filter": "Use filter",
- "view-entity-views": "Voir les vues d'entité"
+ "view-entity-views": "Voir les vues d'entité",
+ "idCopiedMessage": "L'ID de la vue d'entité a été copiée dans le presse-papier",
+ "search": "Rechercher des vues d'entité",
+ "selected-entity-views": "{ count, plural, 1 {1 entity view} other {# entity views} } sélectionnés"
},
"error": {
"unable-to-connect": "Impossible de se connecter au serveur! Veuillez vérifier votre connexion Internet.",
@@ -1558,6 +1967,12 @@
"type-unknown-details": "Noeud de règle non résolu",
"ui-resources-load-error": "Impossible de charger les ressources de configuration de l'interface utilisateur."
},
+ "timezone": {
+ "timezone": "Fuseau horaire",
+ "select-timezone": "Sélectionnez le fuseau horaire",
+ "no-timezones-matching": "Aucun fuseau horaire correspondant à '{{timezone}}' n'a été trouvé.",
+ "timezone-required": "Le fuseau horaire est requis."
+ },
"tenant": {
"add": "Ajouter un Tenant",
"add-tenant-text": "Ajouter un nouveau Tenant",
@@ -1583,7 +1998,9 @@
"tenant-required": "Tenant requis",
"tenants": "Tenants",
"title": "Titre",
- "title-required": "Le titre est requis."
+ "title-required": "Le titre est requis.",
+ "search": "Rechercher les Tenants",
+ "selected-tenants": "{ count, plural, 1 {1 tenant} other {# tenants} } sélectionnés"
},
"timeinterval": {
"advanced": "Avancé",
@@ -1656,7 +2073,9 @@
"user": "utilisateur",
"user-details": "Détails de l'utilisateur",
"user-required": "L'utilisateur est requis",
- "users": "Utilisateurs"
+ "users": "Utilisateurs",
+ "search": "Rechercher des utilisateurs",
+ "selected-users": "{ count, plural, 1 {1 user} other {# users} } sélectionnés"
},
"value": {
"boolean": "booléen",
@@ -1723,7 +2142,8 @@
"widget-template-load-failed-error": "Impossible de charger le modéle de widget!",
"widget-type-load-error": "Le widget n'a pas été chargé à cause des erreurs suivantes:",
"widget-type-load-failed-error": "Impossible de charger le type de widget!",
- "widget-type-not-found": "Problème de chargement de la configuration du widget.
Le type de widget associé a probablement été supprimé."
+ "widget-type-not-found": "Problème de chargement de la configuration du widget.
Le type de widget associé a probablement été supprimé.",
+ "no-data": "Aucune donnée à afficher sur le widget"
},
"widget-action": {
"custom": "Action personnalisée",