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",