thingsboard-aplcache
Changes
ui/src/app/locale/locale.constant-fr_FR.json 1461(+1461 -0)
Details
diff --git a/ui/src/app/locale/locale.constant-en_US.json b/ui/src/app/locale/locale.constant-en_US.json
index ed933d3..6321d63 100644
--- a/ui/src/app/locale/locale.constant-en_US.json
+++ b/ui/src/app/locale/locale.constant-en_US.json
@@ -1453,6 +1453,7 @@
"language": {
"language": "Language",
"locales": {
+ "fr_FR": "French",
"zh_CN": "Chinese",
"en_US": "English",
"it_IT": "Italian",
diff --git a/ui/src/app/locale/locale.constant-es_ES.json b/ui/src/app/locale/locale.constant-es_ES.json
index 5747894..733db14 100644
--- a/ui/src/app/locale/locale.constant-es_ES.json
+++ b/ui/src/app/locale/locale.constant-es_ES.json
@@ -1307,6 +1307,7 @@
"language": "Lenguaje",
"locales": {
"en_US": "Inglés",
+ "fr_FR": "Francés",
"ko_KR": "Coreano",
"zh_CN": "Chino",
"ru_RU": "Ruso",
ui/src/app/locale/locale.constant-fr_FR.json 1461(+1461 -0)
diff --git a/ui/src/app/locale/locale.constant-fr_FR.json b/ui/src/app/locale/locale.constant-fr_FR.json
new file mode 100644
index 0000000..2c0a290
--- /dev/null
+++ b/ui/src/app/locale/locale.constant-fr_FR.json
@@ -0,0 +1,1461 @@
+{
+"access":{
+ "access-forbidden": "Accès interdit",
+ "access-forbidden-text": "Vous n'avez pas accès à cet emplacement! <br/> 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!"
+ },
+"action":{
+ "activate": "Activer",
+ "add": "Ajouter",
+ "apply": "Appliquer",
+ "apply-changes": "Appliquer les modifications",
+ "assign": "Attribuer",
+ "back": "retour",
+ "cancel": "Annuler",
+ "clear-search": "Effacer la recherche",
+ "close": "Fermer",
+ "copy": "Copier",
+ "copy-reference": "Copier la référence",
+ "create": "Créer",
+ "decline-changes": "Refuser les modifications",
+ "delete": "Supprimer",
+ "drag": "Drag",
+ "edit": "Modifier",
+ "edit-mode": "Mode édition",
+ "enter-edit-mode": "Entrer en mode édition",
+ "export": "Exporter",
+ "import": "Importer",
+ "make-private": "Rendre privé",
+ "no": "Non",
+ "ok": "OK",
+ "paste": "coller",
+ "paste-reference": "Coller référence",
+ "refresh": "Rafraîchir",
+ "remove": "Supprimer",
+ "run": "Exécuter",
+ "save": "Enregistrer",
+ "saveAs": "Enregistrer sous",
+ "search": "Rechercher",
+ "share": "Partager",
+ "share-via": "Partager via {{provider}}",
+ "sign-in": "Connectez-vous!",
+ "suspend": "Suspendre",
+ "unassign": "Retirer",
+ "undo": "Annuler",
+ "update": "mise à jour",
+ "view": "Afficher",
+ "yes": "Oui"
+ },
+"admin":{
+ "base-url": "URL de base",
+ "base-url-required": "L'URL de base est requise.",
+ "enable-tls": "Activer TLS",
+ "general": "Général",
+ "general-settings": "Paramètres généraux",
+ "mail-from": "Mail de",
+ "mail-from-required": "Mail de est requis.",
+ "outgoing-mail": "courrier sortant",
+ "outgoing-mail-settings": "Paramètres de courrier sortant",
+ "send-test-mail": "Envoyer un mail de test",
+ "smtp-host": "Hôte SMTP",
+ "smtp-host-required": "L'hôte SMTP est requis.",
+ "smtp-port": "Port SMTP",
+ "smtp-port-invalid": "Cela ne ressemble pas à un port smtp valide.",
+ "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!",
+ "timeout-invalid": "Cela ne ressemble pas à un délai d'expiration valide.",
+ "timeout-msec": "Délai (msec)",
+ "timeout-required": "Le délai est requis."
+ },
+"aggregation":{
+ "aggregation": "agrégation",
+ "avg": "Moyenne",
+ "count": "Compte",
+ "function": "Fonction d'agrégation de données",
+ "group-interval": "Intervalle de regroupement",
+ "limit": "Valeurs maximales",
+ "max": "Max",
+ "min": "Min",
+ "none": "Aucune",
+ "sum": "Somme"
+ },
+"alarm":{
+ "ack-time": "Heure d'acquittement",
+ "acknowledge": "Acquitter",
+ "aknowledge-alarms-text": "Etes-vous sûr de vouloir acquitter {count, plural, 1 {1 alarme} other {# alarmes}}?",
+ "aknowledge-alarms-title": "Acquitter {count, plural, 1 {1 alarme} other {# alarmes}}",
+ "alarm": "Alarme",
+ "alarm-details": "Détails de l'alarme",
+ "alarm-required": "Une alarme est requise",
+ "alarm-status": "Etat d'alarme",
+ "alarms": "Alarmes",
+ "clear": "Effacer",
+ "clear-alarms-text": "Êtes-vous sûr de vouloir effacer {count, plural, 1 {1 alarme} other {# alarmes}}?",
+ "clear-alarms-title": "Effacer {count, plural, 1 {1 alarme} other {# alarmes}}",
+ "clear-time": "Heure d'éffacement",
+ "created-time": "Heure de création",
+ "details": "Détails",
+ "display-status":{
+ "ACTIVE_ACK": "Active acquittée",
+ "ACTIVE_UNACK": "Active non acquittée",
+ "CLEARED_ACK": "effacée acquittée",
+ "CLEARED_UNACK": "effacée non acquittée"
+ },
+ "end-time": "Heure de fin",
+ "min-polling-interval-message": "Un intervalle d'interrogation d'au moins 1 seconde est autorisé.",
+ "no-alarms-matching": "Aucune alarme correspondant à {{entity}} n'a été trouvée. ",
+ "no-alarms-prompt": "Aucune alarme trouvée",
+ "no-data": "Aucune donnée à afficher",
+ "originator": "Source",
+ "originator-type": "Type de Source",
+ "polling-interval": "Intervalle d'interrogation des alarmes (sec)",
+ "polling-interval-required": "L'intervalle d'interrogation des alarmes est requis.",
+ "search": "Rechercher des alarmes",
+ "search-status":{
+ "ACK": "acquitté",
+ "ACTIVE": "active",
+ "ANY": "Toutes",
+ "CLEARED": "effacée",
+ "UNACK": "non acquittée"
+ },
+ "select-alarm": "Sélectionnez une alarme",
+ "selected-alarms": "{count, plural, 1 {1 alarme} other {# alarmes}} sélectionnées",
+ "severity": "Gravitée",
+ "severity-critical": "Critique",
+ "severity-indeterminate": "indéterminée",
+ "severity-major": "Majeure",
+ "severity-minor": "mineure",
+ "severity-warning": "Avertissement",
+ "start-time": "Heure de début",
+ "status": "Etat",
+ "type": "Type"
+ },
+"alias":{
+ "add": "Ajouter un alias",
+ "all-entities": "Toutes les entités",
+ "any-relation": "toutes",
+ "default-entity-parameter-name": "Par défaut",
+ "default-state-entity": "Entité d'état par défaut",
+ "duplicate-alias": "Un alias portant le même nom existe déjà.",
+ "edit": "Modifier l'alias",
+ "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'Assets",
+ "filter-type-asset-search-query-description": "Assets de types {{assetTypes}} ayant {{relationType}} relation {{direction}} {{rootEntity}}",
+ "filter-type-asset-type": "type d'Asset",
+ "filter-type-asset-type-and-name-description": "Assets de type '{{assetType}}' et dont le nom commence par '{{prefix}}'",
+ "filter-type-asset-type-description": "Assets de type '{{assetType}}'",
+ "filter-type-device-search-query": "Requête de recherche de dispositif",
+ "filter-type-device-search-query-description": "Dispositifs de types {{deviceTypes}} ayant {{relationType}} relation {{direction}} {{rootEntity}}",
+ "filter-type-device-type": "Type de dispositif",
+ "filter-type-device-type-and-name-description": "Dispositifs de type '{{deviceType}}' et dont le nom commence par '{{prefix}}'",
+ "filter-type-device-type-description": "Dispositifs de type '{{deviceType}}'",
+ "filter-type-entity-list": "Liste d'entités",
+ "filter-type-entity-name": "Nom d'entité",
+ "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.",
+ "filter-type-single-entity": "Entité unique",
+ "filter-type-state-entity": "Entité de l'état du tableau de bord",
+ "filter-type-state-entity-description": "Entité extraite des paramètres d'état du tableau de bord",
+ "max-relation-level": "Niveau de relation maximum",
+ "name": "Nom de l'alias",
+ "name-required": "Le nom d'alias est requis",
+ "no-entity-filter-specified": "Aucun filtre d'entité spécifié",
+ "resolve-multiple": "Résoudre en plusieurs entités",
+ "root-entity": "Entité racine",
+ "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é"
+ },
+"asset":{
+ "add": "Ajouter un Asset",
+ "add-asset-text": "Ajouter un nouvel Asset",
+ "any-asset": "Tout Asset",
+ "asset": "Asset",
+ "asset-details": "Détails de l'Asset",
+ "asset-public": "L'Asset est public",
+ "asset-required": "Asset requis",
+ "asset-type": "Type d'Asset",
+ "asset-type-list-empty": "Aucun type d'Asset sélectionné.",
+ "asset-type-required": "Le type d'Asset est requis.",
+ "asset-types": "Types d'Asset",
+ "assets": "Assets",
+ "assign-asset-to-customer": "Attribuer des Assets au client",
+ "assign-asset-to-customer-text": "Veuillez sélectionner les Assets à attribuer au client",
+ "assign-assets": "Attribuer des Assets",
+ "assign-assets-text": "Attribuer {count, plural, 1 {1 asset} other {# assets}} au client",
+ "assign-new-asset": "Attribuer un nouvel Asset",
+ "assign-to-customer": "Attribuer au client",
+ "assign-to-customer-text": "Veuillez sélectionner le client pour attribuer le ou les Assets",
+ "assignedToCustomer": "attribué au client",
+ "copyId": "Copier l'Id de l'Asset",
+ "delete": "Supprimer un Asset",
+ "delete-asset-text": "Faites attention, après la confirmation, l'Asset et toutes les données associées deviendront irrécupérables.",
+ "delete-asset-title": "Êtes-vous sûr de vouloir supprimer l'Asset '{{assetName}}'?",
+ "delete-assets": "Supprimer des Assets",
+ "delete-assets-action-title": "Supprimer {count, plural, 1 {1 asset} other {# assets}}",
+ "delete-assets-text": "Attention, après la confirmation, tous les Assets sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
+ "delete-assets-title": "Etes-vous sûr de vouloir supprimer {count, plural, 1 {1 asset} other {# assets}}?",
+ "description": "Description",
+ "details": "Détails",
+ "enter-asset-type": "Entrez le type d'Asset",
+ "events": "Evènements",
+ "idCopiedMessage": "L'Id d'asset a été copié dans le presse-papier",
+ "make-private": "Rendre l'Asset privé",
+ "make-private-asset-text": "Après la confirmation, l'Asset et toutes ses données seront rendus privés et ne seront pas accessibles par d'autres.",
+ "make-private-asset-title": "Etes-vous sûr de vouloir rendre l'Asset '{{assetName}}' privé '?",
+ "make-public": "Rendre l'Asset public",
+ "make-public-asset-text": "Après la confirmation, l'asset et toutes ses données seront rendus publics et accessibles aux autres.",
+ "make-public-asset-title": "Êtes-vous sûr de vouloir rendre l'Asset '{{assetName}}' public '?",
+ "management": "Gestion d'Assets",
+ "name": "Nom",
+ "name-required": "Nom est requis.",
+ "name-starts-with": "Le nom de l'Asset commence par",
+ "no-asset-types-matching": "Aucun type d'Asset correspondant à {{entitySubtype}} n'a été trouvé. ",
+ "no-assets-matching": "Aucun Asset correspondant à {{entity}} n'a été trouvé. ",
+ "no-assets-text": "Aucun Asset trouvé",
+ "public": "Public",
+ "select-asset": "Sélectionner un Asset",
+ "select-asset-type": "Sélectionner le type d'Asset",
+ "type": "Type",
+ "type-required": "Le type est requis.",
+ "unassign-asset": "Retirer l'Asset",
+ "unassign-asset-text": "Après la confirmation, l'Asset sera non attribué et ne sera pas accessible au client.",
+ "unassign-asset-title": "Êtes-vous sûr de vouloir retirer l'attribution de l'Asset '{{assetName}}'?",
+ "unassign-assets": "Retirer les Assets",
+ "unassign-assets-action-title": "Retirer {count, plural, 1 {1 asset} other {# assets}} du client",
+ "unassign-assets-text": "Après la confirmation, tous les Assets sélectionnés ne seront pas attribués et ne seront pas accessibles au client.",
+ "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 Assets"
+ },
+"attribute":{
+ "add": "Ajouter un attribut",
+ "add-to-dashboard": "Ajouter au tableau de bord",
+ "add-widget-to-dashboard": "Ajouter un widget au tableau de bord",
+ "attributes": "Attributs",
+ "attributes-scope": "Etendue des attributs d'entité",
+ "delete-attributes": "Supprimer les attributs",
+ "delete-attributes-text": "Attention, après la confirmation, tous les attributs sélectionnés seront supprimés.",
+ "delete-attributes-title": "Êtes-vous sûr de vouloir supprimer {count, plural, 1 {1 attribut} other {# attributs}}?",
+ "enter-attribute-value": "Entrez la valeur de l'attribut",
+ "key": "Clé",
+ "key-required": "La Clé d'attribut est requise.",
+ "last-update-time": "Dernière mise à jour",
+ "latest-telemetry": "Dernière télémétrie",
+ "next-widget": "Widget suivant",
+ "prev-widget": "Widget précédent",
+ "scope-client": "Attributs du client",
+ "scope-latest-telemetry": "Dernière télémétrie",
+ "scope-server": "Attributs du serveur",
+ "scope-shared": "Attributs partagés",
+ "selected-attributes": "{count, plural, 1 {1 attribut} other {# attributs}} sélectionnés",
+ "selected-telemetry": "{count, plural, 1 {1 unité de télémétrie} other {# unités de télémétrie}} sélectionnées",
+ "show-on-widget": "Afficher sur le widget",
+ "value": "Valeur",
+ "value-required": "La valeur d'attribut est obligatoire.",
+ "widget-mode": "Mode du widget"
+ },
+"audit-log":{
+ "action-data": "Action data",
+ "audit": "Audit",
+ "audit-log-details": "Détails du journal d'audit",
+ "audit-logs": "Journaux d'audit",
+ "clear-search": "Effacer la recherche",
+ "details": "Détails",
+ "entity-name": "Nom de l'entité",
+ "entity-type": "Type d'entité",
+ "failure-details": "Détails de l'échec",
+ "no-audit-logs-prompt": "Aucun journal trouvé",
+ "search": "Rechercher les journaux d'audit",
+ "status": "Etat",
+ "status-failure": "Échec",
+ "status-success": "Succès",
+ "timestamp": "Horodatage",
+ "type": "Type",
+ "type-activated": "Activé",
+ "type-added": "Ajouté",
+ "type-alarm-ack": "Acquitté",
+ "type-alarm-clear": "Effacé",
+ "type-assigned-to-customer": "Attribué au client",
+ "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-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-updated": "Mise à jour",
+ "user": "Utilisateur"
+ },
+"common":{
+ "enter-password": "Entrez le mot de passe",
+ "enter-search": "Entrez la recherche",
+ "enter-username": "Entrez le nom d'utilisateur",
+ "password": "Mot de passe",
+ "username": "Nom d'utilisateur"
+ },
+"confirm-on-exit":{
+ "html-message": "Vous avez des modifications non enregistrées. <br/> Êtes-vous sûr de vouloir quitter cette page?",
+ "message": "Vous avez des modifications non enregistrées. Êtes-vous sûr de vouloir quitter cette page?",
+ "title": "Modifications non enregistrées"
+ },
+"contact":{
+ "address": "Adresse",
+ "address2": "adresse 2",
+ "city": "Ville",
+ "country": "Pays",
+ "email": "Email",
+ "no-address": "Pas d'adresse",
+ "phone": "Téléphone",
+ "postal-code": "Code postal",
+ "postal-code-invalid": "Format de code postal / code postal invalide",
+ "state": "Etat / Province"
+ },
+"content-type":{
+ "binary": "Binaire (Base64)",
+ "json": "Json",
+ "text": "Texte"
+ },
+"custom":{
+ "widget-action":{
+ "action-cell-button": "Action cell button",
+ "marker-click": "On marker click",
+ "row-click": "On row click",
+ "tooltip-tag-action": "Tooltip tag action"
+ }
+ },
+"customer":{
+ "add": "Ajouter un client",
+ "add-customer-text": "Ajouter un nouveau client",
+ "assets": "Assets du client",
+ "copyId": "Copier l'id du client",
+ "customer": "Client",
+ "customer-details": "Détails du client",
+ "customer-required": "Le client est requis",
+ "customers": "Clients",
+ "dashboard": "Tableau de bord du client",
+ "dashboards": "tableaux de bord du client",
+ "default-customer": "Client par défaut",
+ "default-customer-required": "Le client par défaut est requis pour déboguer le tableau de bord au niveau du Tenant",
+ "delete": "Supprimer le client",
+ "delete-customer-text": "Faites attention, après la confirmation, le client et toutes les données associées deviendront irrécupérables.",
+ "delete-customer-title": "Êtes-vous sûr de vouloir supprimer le client '{{customerTitle}}'?",
+ "delete-customers-action-title": "Supprimer {count, plural, 1 {1 client} other {# clients}}",
+ "delete-customers-text": "Faites attention, après la confirmation, tous les clients sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
+ "delete-customers-title": "Êtes-vous sûr de vouloir supprimer {count, plural, 1 {1 client} other {# clients}}?",
+ "description": "Description",
+ "details": "Détails",
+ "devices": "Dispositifs du client",
+ "events": "Événements",
+ "idCopiedMessage": "L'Id du client a été copié dans le presse-papier",
+ "manage-assets": "Gérer les Assets",
+ "manage-customer-assets": "Gérer les Assets du client",
+ "manage-customer-dashboards": "Gérer les tableaux de bord du client",
+ "manage-customer-devices": "Gérer les dispositifs du client",
+ "manage-customer-users": "Gérer les utilisateurs du client",
+ "manage-dashboards": "Gérer les tableaux de bord",
+ "manage-devices": "Gérer les dispositifs",
+ "manage-public-assets": "Gérer les Assets publics",
+ "manage-public-dashboards": "Gérer les tableaux de bord publics",
+ "manage-public-devices": "Gérer les dispositifs publics",
+ "manage-users": "Gérer les utilisateurs",
+ "management": "Gestion des clients",
+ "no-customers-matching": "Aucun client correspondant à '{{entity}} n'a été trouvé.",
+ "no-customers-text": "Aucun client trouvé",
+ "public-assets": "Assets publics",
+ "public-dashboards": "Tableaux de bord publics",
+ "public-devices": "Dispositifs publics",
+ "select-customer": "Sélectionner un client",
+ "select-default-customer": "Sélectionnez le client par défaut",
+ "title": "Titre",
+ "title-required": "Le titre est requis."
+ },
+"dashboard":{
+ "add": "Ajouter un tableau de bord",
+ "add-dashboard-text": "Ajouter un nouveau tableau de bord",
+ "add-state": "Ajouter un état du tableau de bord",
+ "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-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",
+ "assign-to-customer": "Attribuer au client",
+ "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",
+ "assignedToCustomer": "Attribué au client",
+ "assignedToCustomers": "attribué aux clients",
+ "autofill-height": "Hauteur de remplissage automatique",
+ "background-color": "Couleur de fond",
+ "background-image": "Image d'arrière-plan",
+ "background-size-mode": "Mode de taille d'arrière-plan",
+ "close-toolbar": "Fermer la barre d'outils",
+ "columns-count": "Nombre de colonnes",
+ "columns-count-required": "Le nombre de colonnes est requis.",
+ "configuration-error": "Erreur de configuration",
+ "copy-public-link": "Copier le lien public",
+ "create-new": "Créer un nouveau tableau de bord",
+ "create-new-dashboard": "Créer un nouveau tableau de bord",
+ "create-new-widget": "Créer un nouveau widget",
+ "dashboard": "Tableau de bord",
+ "dashboard-details": "Détails du tableau de bord",
+ "dashboard-file": "Fichier du tableau de bord",
+ "dashboard-import-missing-aliases-title": "Configurer les alias utilisés par le tableau de bord importé",
+ "dashboard-required": "Le tableau de bord est requis.",
+ "dashboards": "Tableaux de bord",
+ "delete": "Supprimer le tableau de bord",
+ "delete-dashboard-text": "Faites attention, après la confirmation, le tableau de bord et toutes les données associées deviendront irrécupérables.",
+ "delete-dashboard-title": "Êtes-vous sûr de vouloir supprimer le tableau de bord '{{dashboardTitle}}'?",
+ "delete-dashboards": "Supprimer les tableaux de bord",
+ "delete-dashboards-action-title": "Supprimer {count, plural, 1 {1 tableau de bord} other {# tableaux de bord}}",
+ "delete-dashboards-text": "Attention, après la confirmation, tous les tableaux de bord sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
+ "delete-dashboards-title": "Voulez-vous vraiment supprimer {count, plural, 1 {1 tableau de bord} other {# tableaux de bord}}?",
+ "delete-state": "Supprimer l'état du tableau de bord",
+ "delete-state-text": "Etes-vous sûr de vouloir supprimer l'état du tableau de bord avec le nom '{{stateName}}'?",
+ "delete-state-title": "Supprimer l'état du tableau de bord",
+ "description": "Description",
+ "details": "Détails",
+ "display-dashboard-export": "Afficher l'exportation",
+ "display-dashboard-timewindow": "Afficher 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",
+ "drop-image": "Déposer une image ou cliquez pour sélectionner un fichier à télécharger.",
+ "edit-state": "Modifier l'état du tableau de bord",
+ "export": "Exporter le tableau de bord",
+ "export-failed-error": "Impossible d'exporter le tableau de bord: {{error}}",
+ "hide-details": "Masquer les détails",
+ "horizontal-margin": "Marge horizontale",
+ "horizontal-margin-required": "Une valeur de marge horizontale est requise.",
+ "import": "Importer le tableau de bord",
+ "import-widget": "Importer un widget",
+ "invalid-aliases-config": "Impossible de trouver des dispositifs correspondant à certains filtres d'alias. <br/> Veuillez contacter votre administrateur pour résoudre ce problème.",
+ "invalid-dashboard-file-error": "Impossible d'importer le tableau de bord: structure de données du tableau de bord non valide",
+ "invalid-widget-file-error": "Impossible d'importer le widget: structure de données de widget invalide.",
+ "is-root-state": "Etat racine",
+ "make-private": "Rendre privé le tableau de bord",
+ "make-private-dashboard": "Rendre privé le tableau de bord",
+ "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": "Etes-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-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.",
+ "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.",
+ "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.",
+ "new-dashboard-title": "Nouveau titre du tableau de bord",
+ "no-dashboards-matching": "Aucun tableau de bord correspondant à {{entity}} n'a été trouvé. ",
+ "no-dashboards-text": "Aucun tableau de bord trouvé",
+ "no-image": "Aucune image sélectionnée",
+ "no-widgets": "Aucun widget configuré",
+ "open-dashboard": "Ouvrir le tableau de bord",
+ "open-toolbar": "Ouvrir la barre d'outils du tableau de bord",
+ "public": "Public",
+ "public-dashboard-notice": "<b> Remarque: </ b> N'oubliez pas de rendre publics les dispositifs associés pour accéder à leurs données.",
+ "public-dashboard-text": "Votre tableau de bord <b> {{dashboardTitle}} </ b> est maintenant public et accessible via le lien public <a href='{{publicLink}}' target='_blank'> </a>: ",
+ "public-dashboard-title": "Le tableau de bord est maintenant public",
+ "public-link": "Lien public",
+ "public-link-copied-message": "Le lien public du tableau de bord a été copié dans le presse-papier",
+ "search-states": "Recherche des états du tableau de bord",
+ "select-dashboard": "Sélectionner le tableau de bord",
+ "select-devices": "Selectionner les dispositifs",
+ "select-existing": "Sélectionnez un tableau de bord existant",
+ "select-state": "Sélectionnez l'état cible",
+ "select-widget-subtitle": "Liste des types de widgets disponibles",
+ "select-widget-title": "Sélectionner un widget",
+ "selected-states": "{count, plural, 1 {1 état du tableau de bord} other {# états du tableau de bord}} sélectionnés",
+ "set-background": "Définir l'arrière-plan",
+ "settings": "Paramètres",
+ "show-details": "Afficher les détails",
+ "socialshare-text": "'{{dashboardTitle}}' powered by ThingsBoard",
+ "socialshare-title": "'{{dashboardTitle}}' powered by ThingsBoard",
+ "state": "Etat du tableau de bord",
+ "state-controller": "Contrôleur d'état",
+ "state-id": "ID d'état",
+ "state-id-exists": "L'état du tableau de bord avec le même Id existe déjà.",
+ "state-id-required": "L'Id d'état du tableau de bord est requis.",
+ "state-name": "Nom",
+ "state-name-required": "Le nom de l'état du tableau de bord est requis",
+ "states": "Etats du tableau de bord",
+ "title": "Titre",
+ "title-color": "Couleur du titre",
+ "title-required": "Le titre est requis.",
+ "toolbar-always-open": "Garder la barre d'outils ouverte",
+ "unassign-dashboard": "Retirer le tableau de bord",
+ "unassign-dashboard-text": "Après la confirmation, le tableau de bord ne sera pas attribué et ne sera pas accessible au client.",
+ "unassign-dashboard-title": "Êtes-vous sûr de vouloir annuler l'affectation du tableau de bord '{{dashboardTitle}}'?",
+ "unassign-dashboards": "Retirer les tableaux de bord",
+ "unassign-dashboards-action-text": "Annuler l'affectation {count, plural, 1 {1 tableau de bord} other {# tableaux de bord}} des clients",
+ "unassign-dashboards-action-title": "Annuler l'affectation {count, plural, 1 {1 tableau de bord} other {# tableaux de bord}} du client",
+ "unassign-dashboards-text": "Après la confirmation, tous les tableaux de bord sélectionnés ne seront pas attribués et ne seront pas accessibles au client.",
+ "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",
+ "vertical-margin": "Marge verticale",
+ "vertical-margin-required": "Une valeur de marge verticale est requise",
+ "view-dashboards": "Afficher les tableaux de bord",
+ "widget-file": "Fichier du Widget",
+ "widget-import-missing-aliases-title": "Configurer les alias utilisés par le widget importé",
+ "widgets-margins": "Marge entre les widgets"
+ },
+"datakey":{
+ "advanced": "Avancé",
+ "alarm": "Champs d'alarme",
+ "alarm-fields-required": "Les champs d'alarme sont obligatoires.",
+ "attributes": "Attributs",
+ "color": "Couleur",
+ "configuration": "Configuration de la clé de données",
+ "data-generation-func": "Fonction de génération de données",
+ "decimals": "Nombre de chiffres après virgule flottante",
+ "function-types": "Types de fonctions",
+ "function-types-required": "Les types de fonctions sont obligatoires",
+ "label": "Label",
+ "maximum-function-types": "Maximum {count, plural, 1 {1 type de fonction est autorisé.} other {# types de fonctions sont autorisés}}",
+ "maximum-timeseries-or-attributes": "Maximum {count, plural, 1 {1 timeseries / attribut est autorisé.} other {# timeseries / attributs sont autorisés}}",
+ "settings": "Paramètres",
+ "timeseries": "Timeseries",
+ "timeseries-or-attributes-required": "Les timeseries / attributs d'entité sont obligatoires.",
+ "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"
+ },
+"datasource":{
+ "add-datasource-prompt": "Veuillez ajouter une source de données",
+ "name": "Nom",
+ "type": "Type de source de données"
+ },
+"datetime":{
+ "date-from": "Date de",
+ "date-to": "Date à",
+ "time-from": "Heure de",
+ "time-to": "Heure à"
+ },
+"details":{
+ "edit-mode": "Mode édition",
+ "toggle-edit-mode": "Activer le mode édition"
+ },
+"device":{
+ "access-token": "Jeton d'accès",
+ "access-token-invalid": "La longueur du jeton d'accès doit être comprise entre 1 et 20 caractères.",
+ "access-token-required": "Le jeton d'accès est requis.",
+ "accessTokenCopiedMessage": "Le jeton d'accès au dispositif a été copié dans le presse-papier",
+ "add": "Ajouter un dispositif",
+ "add-alias": "Ajouter un alias de dispositif",
+ "add-device-text": "Ajouter un nouveau dispositif",
+ "alias": "Alias",
+ "alias-required": "Un alias du dispositif est requis.",
+ "aliases": "Alias du dispositif",
+ "any-device": "N'importe quel dispositif",
+ "assign-device-to-customer": "Affecter 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",
+ "assign-new-device": "Attribuer un nouveau dispositif",
+ "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",
+ "copyAccessToken": "Copier le jeton d'accès",
+ "copyId": "Copier l'Id du dispositif",
+ "create-new-alias": "Créez un nouveau!",
+ "create-new-key": "Créez un nouveau!",
+ "credentials": "Informations d'identification",
+ "credentials-type": "Type d'identification",
+ "delete": "Supprimer le dispositif",
+ "delete-device-text": "Faites attention, après la confirmation, le dispositif et toutes les données associées deviendront irrécupérables.",
+ "delete-device-title": "Êtes-vous sûr de vouloir supprimer le dispositif '{{deviceName}}'?",
+ "delete-devices": "Supprimer les dispositifs",
+ "delete-devices-action-title": "Supprimer {count, plural, 1 {1 dispositif} other {# dispositifs}}",
+ "delete-devices-text": "Faites attention, après la confirmation, tous les dispositifs sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
+ "delete-devices-title": "Êtes-vous sûr de vouloir supprimer {count, plural, 1 {1 dispositif} other {# dispositifs}}?",
+ "description": "Description",
+ "details": "Détails",
+ "device": "Dispositif",
+ "device-alias": "Alias du dispositif",
+ "device-credentials": "Informations d'identification du dispositif",
+ "device-details": "Détails du dispositif",
+ "device-list": "Liste des dispositifs",
+ "device-list-empty": "Aucun dispositif sélectionné.",
+ "device-name-filter-no-device-matched": "Aucun dispositif commençant par '{{device}} n'a été trouvé.",
+ "device-name-filter-required": "Le filtre de nom de dispositif est requis.",
+ "device-public": "Le dispositif est public",
+ "device-required": "Le dispositif est requis.",
+ "device-type": "Type de dispositif",
+ "device-type-list-empty": "Aucun type de dispositif sélectionné.",
+ "device-type-required": "Le type de dispositif est requis.",
+ "device-types": "Types de dispositif",
+ "devices": "Dispositifs",
+ "duplicate-alias-error": "Alias en double trouvé '{{alias}}'. <br> 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",
+ "is-gateway": "Est une passerelle",
+ "make-private": "Rendre le dispositif privé",
+ "make-private-device-text": "Après la confirmation, le dispositif et toutes ses données seront rendues privées et ne seront pas accessibles par d'autres.",
+ "make-private-device-title": "Etes-vous sûr de vouloir rendre le dispositif {{deviceName}} privé?",
+ "make-public": "Rendre le dispositif public",
+ "make-public-device-text": "Après la confirmation, le dispositif et toutes ses données seront rendus publics et accessibles par d'autres.",
+ "make-public-device-title": "Êtes-vous sûr de vouloir rendre le dispositif {{deviceName}} 'public?",
+ "manage-credentials": "Gérer les informations d'identification",
+ "management": "Gestion des dispositifs",
+ "name": "Nom",
+ "name-required": "Le nom est requis.",
+ "name-starts-with": "Le nom du dispositif commence par",
+ "no-alias-matching": "'{{alias}}' introuvable.",
+ "no-aliases-found": "Aucun alias trouvé.",
+ "no-device-types-matching": "Aucun type de dispositif correspondant à {{entitySubtype}} n'a été trouvé.",
+ "no-devices-matching": "Aucun dispositif correspondant à '{{entity}} n'a été trouvé.",
+ "no-devices-text": "Aucun dispositif trouvé",
+ "no-key-matching": "'{{key}}' introuvable.",
+ "no-keys-found": "Aucune clé trouvée",
+ "public": "Public",
+ "remove-alias": "Supprimer l'alias du dispositif",
+ "rsa-key": "Clé publique RSA",
+ "rsa-key-required": "La clé publique RSA est requise.",
+ "secret": "Secret",
+ "secret-required": "Code secret est requis.",
+ "select-device": "Selectionner un dispositif",
+ "select-device-type": "Sélectionner le type d'appareil",
+ "unable-delete-device-alias-text": "L'alias du dispositif '{{deviceAlias}}' ne peut pas être supprimé car il est utilisé par les widgets suivants: <br/> {{widgetsList}}",
+ "unable-delete-device-alias-title": "Impossible de supprimer l'alias du dispositif",
+ "unassign-device": "Annuler l'affectation du dispositif",
+ "unassign-device-text": "Après la confirmation, le dispositif ne sera pas attribué et ne sera pas accessible au client.",
+ "unassign-device-title": "Êtes-vous sûr de vouloir annuler l'affection du dispositif {{deviceName}} '?",
+ "unassign-devices": "Annuler l'affectation des dispositifs",
+ "unassign-devices-action-title": "Annuler l'affectation de {count, plural, 1 {1 dispositif} other {#dispositifs}} du client",
+ "unassign-devices-text": "Après la confirmation, tous les dispositifs sélectionnés ne seront pas attribues et ne seront pas accessibles par le client.",
+ "unassign-devices-title": "Voulez-vous vraiment annuler l'affectation de {count, plural, 1 {1 dispositif} other {# dispositifs}}?",
+ "unassign-from-customer": "Retirer du client",
+ "use-device-name-filter": "Utiliser le filtre",
+ "view-credentials": "Afficher les informations d'identification",
+ "view-devices": "Afficher les dispositifs"
+ },
+"dialog":{
+ "close": "Fermer le dialogue"
+ },
+"entity" : {
+ "add-alias": "Ajouter un alias d'entité",
+ "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}}'",
+ "configure-alias": "Configurer '{{alias}}' alias",
+ "create-new-alias": "Créez un nouveau!",
+ "create-new-key": "Créez un nouveau!",
+ "customer-name-starts-with": "Les clients dont les noms commencent par '{{prefix}}'",
+ "dashboard-name-starts-with": "Les tableaux de bord dont les noms commencent par '{{prefix}}'",
+ "details": "Détails de l'entité",
+ "device-name-starts-with": "Dispositifs dont le nom commence par '{{prefix}}'",
+ "duplicate-alias-error": "Alias en double trouvé '{{alias}}'. <br> Les alias d'entité doivent être uniques dans le tableau de bord.",
+ "enter-entity-type": "Entrez le type d'entité",
+ "entities": "Entités",
+ "entity": "Entité",
+ "entity-alias": "Alias de l'entité",
+ "entity-list": "Liste d'entités",
+ "entity-list-empty": "Aucune entité sélectionnée.",
+ "entity-name": "Nom de l'entité",
+ "entity-name-filter-no-entity-matched": "Aucune entité commençant par '{{entity}}' n'a été trouvée.",
+ "entity-name-filter-required": "Le filtre de nom d'entité est requis.",
+ "entity-type": "Type d'entité",
+ "entity-type-list": "Liste de types d'entités",
+ "entity-type-list-empty": "Aucun type d'entité sélectionné.",
+ "entity-types": "Types d'entité",
+ "key": "Clé",
+ "key-name": "Nom de la clé",
+ "list-of-alarms": "{count, plural, 1 {Une alarme} other {Liste de # alarmes}}",
+ "list-of-assets": "{count, plural, 1 {Un Asset} other {Liste de # Assets}}",
+ "list-of-customers": "{count, plural, 1 {Un client} other {Liste de # clients}}",
+ "list-of-dashboards": "{count, plural, 1 {Un tableau de bord} other {Liste de # tableaux de bord}}",
+ "list-of-devices": "{count, plural, 1 {Un dispositif} other {Liste de # dispositifs}}",
+ "list-of-plugins": "{count, plural, 1 {Un plugin} other {Liste de # plugins}}",
+ "list-of-rulechains": "{count, plural, 1 {Une chaîne de règles} other {Liste de # chaînes de règles}}",
+ "list-of-rulenodes": "{count, plural, 1 {Un noeud de règles} other {Liste de # noeuds de règles}}",
+ "list-of-rules": "{count, plural, 1 {Une règle} other {Liste de # règles}}",
+ "list-of-tenants": "{count, plural, 1 {Un tenant} other {Liste de # tenants}}",
+ "list-of-users": "{count, plural, 1 {Un utilisateur} other {Liste de # utilisateurs}}",
+ "missing-entity-filter-error": "Le filtre est manquant pour l'alias '{{alias}}'.",
+ "name-starts-with": "Nom commence par",
+ "no-alias-matching": "'{{alias}}' introuvable.",
+ "no-aliases-found": "Aucun alias trouvé.",
+ "no-data": "Aucune donnée à afficher",
+ "no-entities-matching": "Aucune entité correspondant à '{{entity}}' n'a été trouvée.",
+ "no-entities-prompt": "Aucune entité trouvée",
+ "no-entity-types-matching": "Aucun type d'entité correspondant à {{entityType}} n'a été trouvé. ",
+ "no-key-matching": "'{{key}}' introuvable.",
+ "no-keys-found": "Aucune clé trouvée",
+ "plugin-name-starts-with": "Plugins dont les noms commencent par '{{prefix}}'",
+ "remove-alias": "Supprimer l'alias d'entité",
+ "rule-name-starts-with": "Règles dont les noms commencent par '{{prefix}}'",
+ "rulechain-name-starts-with": "Chaînes de règles dont les noms commencent par '{{prefix}}'",
+ "rulenode-name-starts-with": "Les noeuds de règles dont le nom commence par '{{prefix}}'",
+ "search": "Recherche d'entités",
+ "select-entities": "Sélectionner des entités",
+ "selected-entities": "{count, plural, 1 {1 entité} other {# entités}} sélectionnées",
+ "tenant-name-starts-with": "Les Tenant dont le nom commence par '{{prefix}}'",
+ "type": "Type",
+ "type-alarm": "Alarme",
+ "type-alarms": "Alarmes",
+ "type-asset": "Asset",
+ "type-assets": "Assets",
+ "type-current-customer": "Client actuel",
+ "type-customer": "Client",
+ "type-customers": "Clients",
+ "type-dashboard": "Tableau de bord",
+ "type-dashboards": "Tableaux de bord",
+ "type-device": "Dispositif",
+ "type-devices": "Dispositifs",
+ "type-plugin": "Plugin",
+ "type-plugins": "Plugins",
+ "type-required": "Le type d'entité est obligatoire.",
+ "type-rule": "Règle",
+ "type-rulechain": "Chaîne de règles",
+ "type-rulechains": "Chaînes de règles",
+ "type-rulenode": "Noeud de règle",
+ "type-rulenodes": "Noeuds de règle",
+ "type-rules": "Règles",
+ "type-tenant": "Tenant",
+ "type-tenants": "Tenants",
+ "type-user": "Utilisateur",
+ "type-users": "Utilisateurs",
+ "unable-delete-entity-alias-text": "L'alias d'entité '{{entityAlias}}' ne peut pas être supprimé car il est utilisé par les widgets suivants: <br/> {{widgetsList}}",
+ "unable-delete-entity-alias-title": "Impossible de supprimer l'alias d'entité",
+ "use-entity-name-filter": "Utiliser un filtre",
+ "user-name-starts-with": "Utilisateurs dont les noms commencent par '{{prefix}}'"
+ },
+"error":{
+ "unable-to-connect": "Impossible de se connecter au serveur! Veuillez vérifier votre connexion Internet.",
+ "unhandled-error-code": "Code d'erreur non géré: {{errorCode}}",
+ "unknown-error": "Erreur inconnue"
+ },
+"event":{
+ "alarm": "Alarme",
+ "body": "Corps",
+ "data": "Données",
+ "data-type": "Type de données",
+ "entity": "Entité",
+ "error": "erreur",
+ "errors-occurred": "Des erreurs sont survenues",
+ "event": "événement",
+ "event-time": "Heure de l'événement",
+ "event-type": "Type d'événement",
+ "failed": "Échec",
+ "message-id": "Message Id",
+ "message-type": "Type de message",
+ "messages-processed": "Messages traités",
+ "metadata": "Métadonnées",
+ "method": "Méthode",
+ "no-events-prompt": "Aucun événement trouvé",
+ "relation-type": "Type de relation",
+ "server": "Serveur",
+ "status": "Etat",
+ "success": "Succès",
+ "type": "Type",
+ "type-debug-rule-chain": "Debug",
+ "type-debug-rule-node": "Debug",
+ "type-error": "Erreur",
+ "type-lc-event": "Evénement du cycle de vie",
+ "type-stats": "Statistiques"
+ },
+"extension":{
+ "add": "Ajouter une extension",
+ "add-attribute": "Ajouter un attribut",
+ "add-attribute-request": "Ajouter une demande d'attribut",
+ "add-attribute-update": "Ajouter une mise à jour d'attribut",
+ "add-broker": "Ajouter un Broker",
+ "add-config": "Ajouter une configuration de convertisseur",
+ "add-connect-request": "Ajouter une demande de connexion",
+ "add-converter": "Ajouter un convertisseur",
+ "add-device": "Ajouter un dispositif",
+ "add-disconnect-request": "Ajouter une demande de déconnexion",
+ "add-map": "Ajouter un élément de mappage",
+ "add-server-side-rpc-request": "Ajouter une requête RPC côté serveur",
+ "add-timeseries": "Ajouter des timeseries",
+ "anonymous": "Anonyme",
+ "attr-json-key-expression": "Expression json de la clé d'attribut",
+ "attr-topic-key-expression": "Expression du topic de la clé d'attribut",
+ "attribute-filter": "Filtre d'attribut",
+ "attribute-key-expression": "Expression de clé d'attribut",
+ "attribute-requests": "Demandes d'attributs",
+ "attribute-updates": "Mises à jour des attributs",
+ "attributes": "Attributs",
+ "basic": "Basic",
+ "brokers": "Brokers",
+ "ca-cert": "Fichier de certificat CA",
+ "cert": "Fichier de certificat *",
+ "client-scope": "Portée client",
+ "configuration": "Configuration",
+ "connect-requests": "Demandes de connexion",
+ "converter-configurations": "Configurations du convertisseur",
+ "converter-id": "ID du convertisseur",
+ "converter-json": "Json",
+ "converter-json-parse": "Impossible d'analyser le convertisseur json.",
+ "converter-json-required": "Le convertisseur json est requis.",
+ "converter-type": "Type de convertisseur",
+ "converters": "Convertisseurs",
+ "credentials": "Informations d'identification",
+ "custom": "Custom",
+ "delete": "Supprimer l'extension",
+ "delete-extension-text": "Attention, après la confirmation, l'extension et toutes les données associées deviendront irrécupérables.",
+ "delete-extension-title": "Êtes-vous sûr de vouloir supprimer l'extension '{{extensionId}}'?",
+ "delete-extensions-text": "Attention, après la confirmation, toutes les extensions sélectionnées seront supprimées.",
+ "delete-extensions-title": "Êtes-vous sûr de vouloir supprimer {count, plural, 1 {1 extension} other {# extensions}}?",
+ "device-name-expression": "expression du nom du dispositif",
+ "device-name-filter": "Filtre de nom de dispositif",
+ "device-type-expression": "expression de type de dispositif",
+ "disconnect-requests": "Demandes de déconnection",
+ "drop-file": "Déposez un fichier ou cliquez pour sélectionner un fichier à télécharger.",
+ "edit": "Modifier l'extension",
+ "export-extension": "Exporter l'extension",
+ "export-extensions-configuration": "Exporter la configuration des extensions",
+ "extension-id": "Id de l'extension",
+ "extension-type": "Type d'extension",
+ "extensions": "Extensions",
+ "field-required": "Le champ est obligatoire",
+ "file": "Fichier d'extensions",
+ "filter-expression": "Expression du filtre",
+ "host": "Hôte",
+ "id": "Id",
+ "import-extension": "Importer une extension",
+ "import-extensions": "Importer des extensions",
+ "import-extensions-configuration": "Importer la configuration des extensions",
+ "invalid-file-error": "Fichier d'extension non valide",
+ "json-name-expression": "Expression json du nom du dispositif",
+ "json-parse": "Impossible d'analyser json transformer.",
+ "json-required": "Transformer json est requis.",
+ "json-type-expression": "Expression json du type de dispositif",
+ "key": "Clé",
+ "mapping": "Mappage",
+ "method-filter": "Filtre de méthode",
+ "modbus-add-server": "Ajouter serveur/esclave",
+ "modbus-add-server-prompt": "Veuillez ajouter serveur/esclave",
+ "modbus-attributes-poll-period": "Période d'interrogation des attributs (ms)",
+ "modbus-baudrate": "Débit en bauds",
+ "modbus-byte-order": "Ordre des octets",
+ "modbus-databits": "Bits de données",
+ "modbus-databits-range": "Les bits de données doivent être compris entre 7 et 8.",
+ "modbus-device-name": "Nom du dispositif",
+ "modbus-encoding": "Encodage",
+ "modbus-function": "Fonction",
+ "modbus-parity": "parité",
+ "modbus-poll-period": "Période d'interrogation (ms)",
+ "modbus-poll-period-range": "La période d'interrogation doit être une valeur positive.",
+ "modbus-port-name": "Nom du port série",
+ "modbus-register-address": "Adresse du registre",
+ "modbus-register-address-range": "L'adresse du registre doit être comprise entre 0 et 65535.",
+ "modbus-register-bit-index": "Bit index",
+ "modbus-register-bit-index-range": "L'index de bit doit être compris entre 0 et 15.",
+ "modbus-register-count": "Nombre de registre",
+ "modbus-register-count-range": "Le nombre de registres doit être une valeur positive.",
+ "modbus-server": "Serveurs / esclaves",
+ "modbus-stopbits": "Bits d'arrêt",
+ "modbus-stopbits-range": "Les bits d'arrêt doivent être compris entre 1 et 2.",
+ "modbus-tag": "Tag",
+ "modbus-timeseries-poll-period": "Période d'interrogation des Timeseries (ms)",
+ "modbus-transport": "Transport",
+ "modbus-unit-id": "Id de l'unité",
+ "modbus-unit-id-range": "L'ID de l'unité doit être compris entre 1 et 247.",
+ "no-file": "Aucun fichier sélectionné.",
+ "opc-add-server": "Ajouter un serveur",
+ "opc-add-server-prompt": "Veuillez ajouter un serveur",
+ "opc-application-name": "Nom de l'application",
+ "opc-application-uri": "Uri de l'application",
+ "opc-device-name-pattern": "modèle de nom du dispositif",
+ "opc-device-node-pattern": "modèle de noeud de dispositif",
+ "opc-identity": "Identité",
+ "opc-keystore": "Magasin de clés",
+ "opc-keystore-alias": "Alias",
+ "opc-keystore-key-password": "Mot de passe de la clé",
+ "opc-keystore-location": "Emplacement *",
+ "opc-keystore-password": "Mot de passe",
+ "opc-keystore-type": "Type",
+ "opc-scan-period-in-seconds": "Période d'analyse en secondes",
+ "opc-security": "Sécurité",
+ "opc-server": "Serveurs",
+ "opc-type": "Type",
+ "password": "Mot de passe",
+ "pem": "PEM",
+ "port": "Port",
+ "port-range": "Le port doit être compris entre 1 et 65535.",
+ "private-key": "Fichier de clé privée *",
+ "request-id-expression": "Expression de demande d'id",
+ "request-id-json-expression": "Expression json de la demande d'id",
+ "request-id-topic-expression": "Expression de la demande d'id du topic",
+ "request-topic-expression": "Expression de la demande du topic",
+ "response-timeout": "Délai de réponse en millisecondes",
+ "response-topic-expression": "Expression du topic de la réponse",
+ "retry-interval": "Intervalle de nouvelle tentative en millisecondes",
+ "selected-extensions": "{count, plural, 1 {1 extension} other {# extensions}} sélectionné",
+ "server-side-rpc": "RPC côté serveur",
+ "ssl": "Ssl",
+ "sync":{
+ "last-sync-time": "Dernière heure de synchronisation",
+ "not-available": "Non disponible",
+ "not-sync": "Non sync",
+ "status": "Status",
+ "sync": "Sync"
+ },
+ "timeout": "Délai d'attente en millisecondes",
+ "timeseries": "Timeseries",
+ "to-double": "To Double",
+ "token": "Jeton de sécurité",
+ "topic": "Topic",
+ "topic-expression": "Expression du topic",
+ "topic-filter": "Filtre du topic",
+ "topic-name-expression": "Expression du nom du dispositif (topic)",
+ "topic-type-expression": "Expression de type de dispositif (topic)",
+ "transformer": "Transformer",
+ "transformer-json": "JSON *",
+ "type": "Type",
+ "unique-id-required": "L'identifiant d'extension actuel existe déjà.",
+ "username": "Nom d'utilisateur",
+ "value": "Valeur",
+ "value-expression": "Expression de la valeur"
+ },
+"fullscreen":{
+ "exit": "Quitter le plein écran",
+ "expand": "Afficher en plein écran",
+ "fullscreen": "Plein écran",
+ "toggle": "Activer le mode plein écran"
+ },
+"function":{
+ "function": "Fonction"
+ },
+"grid":{
+ "add-item-text": "Ajouter un nouvel élément",
+ "delete-item": "Supprimer l'élément",
+ "delete-item-text": "Faites attention, après la confirmation, cet élément et toutes les données associées deviendront irrécupérables.",
+ "delete-item-title": "Êtes-vous sûr de vouloir supprimer cet élément?",
+ "delete-items": "Supprimer les éléments",
+ "delete-items-action-title": "Supprimer {count, plural, 1 {1 élément} other {# éléments}}",
+ "delete-items-text": "Attention, après la confirmation, tous les éléments sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
+ "delete-items-title": "Etes-vous sûr de vouloir supprimer {count, plural, 1 {1 élément} other {# éléments}}?",
+ "item-details": "Détails de l'élément",
+ "no-items-text": "Aucun élément trouvé",
+ "scroll-to-top": "Défiler vers le haut"
+ },
+"help":{
+ "goto-help-page": "Aller à la page d'aide"
+ },
+"home":{
+ "avatar": "Avatar",
+ "home": "Accueil",
+ "logout": "Déconnexion",
+ "menu": "Menu",
+ "open-user-menu": "Ouvrir le menu utilisateur",
+ "profile": "Profile"
+ },
+"icon":{
+ "icon": "Icône",
+ "material-icons": "Material icons",
+ "select-icon": "Sélectionner l'icône",
+ "show-all": "Afficher toutes les icônes"
+ },
+"import":{
+ "drop-file": "Déposez un fichier JSON ou cliquez pour sélectionner un fichier à télécharger.",
+ "no-file": "Aucun fichier sélectionné"
+ },
+"item":{
+ "selected": "Sélectionné"
+ },
+"js-func":{
+ "no-return-error": "La fonction doit renvoyer une valeur!",
+ "return-type-mismatch": "La fonction doit renvoyer une valeur de type '{{type}}' !",
+ "tidy": "Tidy"
+ },
+"key-val":{
+ "add-entry": "Ajouter une entrée",
+ "key": "Clé",
+ "no-data": "Aucune entrée",
+ "remove-entry": "Supprimer l'entrée",
+ "value": "Valeur"
+ },
+"language":{
+ "language": "Language",
+ "locales":{
+ "en_US": "Anglais",
+ "fr_FR": "Français",
+ "es_ES": "Espagnol",
+ "it_IT": "Italien",
+ "ko_KR": "Coréen",
+ "ru_RU": "Russe",
+ "zh_CN": "Chinois"
+ }
+ },
+"layout":{
+ "color": "Couleur",
+ "layout": "Mise en page",
+ "main": "Principal",
+ "manage": "Gérer les mises en page",
+ "right": "Droite",
+ "select": "Sélectionner la mise en page cible",
+ "settings": "Paramètres de mise en page"
+ },
+"legend":{
+ "avg": "avg",
+ "max": "max",
+ "min": "min",
+ "position": "Position de la légende",
+ "settings": "Paramètres de la légende",
+ "show-avg": "Afficher la valeur moyenne",
+ "show-max": "Afficher la valeur maximale",
+ "show-min": "Afficher la valeur min",
+ "show-total": "Afficher la valeur totale",
+ "total": "total"
+ },
+"login":{
+ "create-password": "Créer un mot de passe",
+ "email": "Email",
+ "forgot-password": "Mot de passe oublié?",
+ "login": "Login",
+ "new-password": "Nouveau mot de passe",
+ "new-password-again": "nouveau mot de passe",
+ "password-again": "Mot de passe à nouveau",
+ "password-link-sent-message": "Le lien de réinitialisation du mot de passe a été envoyé avec succès!",
+ "password-reset": "Mot de passe réinitialisé",
+ "passwords-mismatch-error": "Les mots de passe saisis doivent être identiques!",
+ "remember-me": "Se souvenir de moi",
+ "request-password-reset": "Demander la réinitialisation du mot de passe",
+ "reset-password": "Réinitialiser le mot de passe",
+ "sign-in": "Veuillez vous connecter",
+ "username": "Nom d'utilisateur (email)"
+ },
+"position":{
+ "bottom": "Bas",
+ "left": "Gauche",
+ "right": "Droite",
+ "top": "Haut"
+ },
+"profile":{
+ "change-password": "Modifier le mot de passe",
+ "current-password": "Mot de passe actuel",
+ "profile": "Profile"
+ },
+"relation":{
+ "add": "Ajouter une relation",
+ "add-relation-filter": "Ajouter un filtre de relation",
+ "additional-info": "Informations supplémentaires (JSON)",
+ "any-relation": "toute relation",
+ "any-relation-type": "N'importe quel type",
+ "delete": "Supprimer la relation",
+ "delete-from-relation-text": "Attention, après la confirmation, l'entité actuelle ne sera pas liée à l'entité '{{entityName}}'.",
+ "delete-from-relation-title": "Etes-vous sûr de vouloir supprimer la relation de l'entité '{{entityName}}'?",
+ "delete-from-relations-text": "Attention, après la confirmation, toutes les relations sélectionnées seront supprimées et l'entité actuelle ne sera pas liée aux entités correspondantes.",
+ "delete-from-relations-title": "Êtes-vous sûr de vouloir supprimer {count, plural, 1 {1 relation} other {# relations}}?",
+ "delete-to-relation-text": "Attention, après la confirmation, l'entité '{{entityName}} ne sera plus liée à l'entité actuelle.",
+ "delete-to-relation-title": "Êtes-vous sûr de vouloir supprimer la relation avec l'entité '{{entityName}}'?",
+ "delete-to-relations-text": "Attention, après la confirmation, toutes les relations sélectionnées seront supprimées et les entités correspondantes ne seront pas liées à l'entité en cours.",
+ "delete-to-relations-title": "Etes-vous sûr de vouloir supprimer {count, plural, 1 {1 relation} other {# relations}}?",
+ "direction": "Sens",
+ "direction-type":{
+ "FROM": "de",
+ "TO": "à"
+ },
+ "edit": "Modifier la relation",
+ "from-entity": "De l'entité",
+ "from-entity-name": "Du nom d'entité",
+ "from-entity-type": "Du type d'entité",
+ "from-relations": "Relations sortantes",
+ "invalid-additional-info": "Impossible d'analyser les informations supplémentaires json.",
+ "relation-filters": "Filtres de relation",
+ "relation-type": "Type de relation",
+ "relation-type-required": "Le type de relation est requis.",
+ "relations": "Relations",
+ "remove-relation-filter": "Supprimer le filtre de relation",
+ "search-direction":{
+ "FROM": "De",
+ "TO": "À"
+ },
+ "selected-relations": "{count, plural, 1 {1 relation} other {# relations}} sélectionné",
+ "to-entity": "À l'entité",
+ "to-entity-name": "vers le nom de l'entité",
+ "to-entity-type": "Vers le type d'entité",
+ "to-relations": "Relations entrantes",
+ "type": "Type"
+ },
+"rulechain":{
+ "add": "Ajouter une chaîne de règles",
+ "add-rulechain-text": "Ajouter une nouvelle chaîne de règles",
+ "copyId": "Copier l'identifiant de la chaîne de règles",
+ "create-new-rulechain": "Créer une nouvelle chaîne de règles",
+ "debug-mode": "Mode de débogage",
+ "delete": "Supprimer la chaîne de règles",
+ "delete-rulechain-text": "Attention, après la confirmation, la chaîne de règles et toutes les données associées deviendront irrécupérables.",
+ "delete-rulechain-title": "Voulez-vous vraiment supprimer la chaîne de règles '{{ruleChainName}}'?",
+ "delete-rulechains-action-title": "Supprimer {count, plural, 1 {1 chaîne de règles} other {# chaînes de règles}}",
+ "delete-rulechains-text": "Attention, après la confirmation, toutes les chaînes de règles sélectionnées seront supprimées et toutes les données associées deviendront irrécupérables.",
+ "delete-rulechains-title": "Êtes-vous sûr de vouloir supprimer {count, plural, 1 {1 chaîne de règles} other {# chaînes de règles}}?",
+ "description": "Description",
+ "details": "Détails",
+ "events": "Evénements",
+ "export": "Exporter la chaîne de règles",
+ "export-failed-error": "Impossible d'exporter la chaîne de règles: {{error}}",
+ "idCopiedMessage": "L'ID de la chaîne de règles a été copié dans le presse-papier",
+ "import": "Importer la chaîne de règles",
+ "invalid-rulechain-file-error": "Impossible d'importer la chaîne de règles: structure de données de la chaîne de règles non valide",
+ "management": "Gestion des règles",
+ "name": "Nom",
+ "name-required": "Le nom est requis.",
+ "no-rulechains-matching": "Aucune chaîne de règles correspondant à {{entity}} n'a été trouvée.",
+ "no-rulechains-text": "Aucune chaîne de règles trouvée",
+ "root": "Racine",
+ "rulechain": "Chaîne de règles",
+ "rulechain-details": "Détails de la chaîne de règles",
+ "rulechain-file": "Fichier de chaîne de règles",
+ "rulechain-required": "Chaîne de règles requise",
+ "rulechains": "Chaînes de règles",
+ "select-rulechain": "Sélectionner la chaîne de règles",
+ "set-root": "Rend la chaîne de règles racine (root) ",
+ "set-root-rulechain-text": "Après la confirmation, la chaîne de règles deviendra racine (root) et gérera tous les messages de transport entrants.",
+ "set-root-rulechain-title": "Voulez-vous vraiment que la chaîne de règles '{{ruleChainName}} soit racine (root) ?",
+ "system": "Système"
+ },
+"rulenode":{
+ "add": "Ajouter un noeud de règle",
+ "add-link": "Ajouter un lien",
+ "configuration": "Configuration",
+ "copy-selected": "Copier les éléments sélectionnés",
+ "create-new-link-label": "Créez un nouveau!",
+ "custom-link-label": "Etiquette de lien personnalisée",
+ "custom-link-label-required": "Une étiquette de lien personnalisée est requise",
+ "debug-mode": "Mode de débogage",
+ "delete": "Supprimer le noeud de règle",
+ "delete-selected": "Supprimer les éléments sélectionnés",
+ "delete-selected-objects": "Supprimer les nœuds et les connexions sélectionnés",
+ "description": "Description",
+ "deselect-all": "Désélectionner tout",
+ "deselect-all-objects": "Désélectionnez tous les nœuds et toutes les connexions",
+ "details": "Détails",
+ "directive-is-not-loaded": "La directive de configuration définie '{{directiveName}} n'est pas disponible.",
+ "events": "Événements",
+ "help": "Aide",
+ "invalid-target-rulechain": "Impossible de résoudre la chaîne de règles cible!",
+ "link": "Lien",
+ "link-details": "Détails du lien du noeud de la règle",
+ "link-label": "Étiquette du lien",
+ "link-label-required": "L'étiquette du lien est obligatoire",
+ "link-labels": "Étiquettes de lien",
+ "link-labels-required": "Les étiquettes de lien sont obligatoires",
+ "message": "Message",
+ "message-type": "Type de message",
+ "message-type-required": "Le type de message est obligatoire",
+ "metadata": "Métadonnées",
+ "metadata-required": "Les entrées de métadonnées ne peuvent pas être vides.",
+ "name": "Nom",
+ "name-required": "Le nom est requis.",
+ "no-link-label-matching": "'{{label}}' introuvable.",
+ "no-link-labels-found": "Aucune étiquette de lien trouvée",
+ "open-node-library": "Ouvrir la bibliothèque de noeud",
+ "output": "Output",
+ "rulenode-details": "Détails du noeud de la règle",
+ "search": "Recherche de noeuds",
+ "select-all": "Tout sélectionner",
+ "select-all-objects": "Sélectionnez tous les noeuds et connexions",
+ "select-message-type": "Sélectionner le type de message",
+ "test": "Test",
+ "test-script-function": "Tester le script",
+ "type": "Type",
+ "type-action": "Action",
+ "type-action-details": "Effectuer une action spéciale",
+ "type-enrichment": "Enrichissement",
+ "type-enrichment-details": "Ajouter des informations supplémentaires dans les métadonnées de message",
+ "type-external": "Externe",
+ "type-external-details": "Interagit avec le système externe",
+ "type-filter": "Filtre",
+ "type-filter-details": "Filtrer les messages entrants avec des conditions configurées",
+ "type-input": "Input",
+ "type-input-details": "Entrée logique de la chaîne de règles, transmet les messages entrants au prochain nœud de règle associé",
+ "type-rule-chain": "Chaîne de règles",
+ "type-rule-chain-details": "Transmet les messages entrants à la chaîne de règles spécifiée",
+ "type-transformation": "Transformation",
+ "type-transformation-details": "Modifier le payload du message et les métadonnées ",
+ "type-unknown": "Inconnu",
+ "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."
+ },
+"tenant":{
+ "add": "Ajouter un Tenant",
+ "add-tenant-text": "Ajouter un nouveau Tenant",
+ "admins": "Admins",
+ "copyId": "Copier l'Id du Tenant",
+ "delete": "Supprimer le Tenant",
+ "delete-tenant-text": "Attention, après la confirmation, le Tenant et toutes les données associées deviendront irrécupérables.",
+ "delete-tenant-title": "Etes-vous sûr de vouloir supprimer le tenant '{{tenantTitle}}'?",
+ "delete-tenants-action-title": "Supprimer {count, plural, 1 {1 tenant} other {# tenants}}",
+ "delete-tenants-text": "Attention, après la confirmation, tous les Tenants sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
+ "delete-tenants-title": "Etes-vous sûr de vouloir supprimer {count, plural, 1 {1 tenant} other {# tenants}}?",
+ "description": "Description",
+ "details": "Détails",
+ "events": "Événements",
+ "idCopiedMessage": "L'Id du Tenant a été copié dans le Presse-papiers",
+ "manage-tenant-admins": "Gérer les administrateurs du Tenant",
+ "management": "Gestion des Tenants",
+ "no-tenants-matching": "Aucun Tenant correspondant à {{entity}} n'a été trouvé. ",
+ "no-tenants-text": "Aucun Tenant trouvé",
+ "select-tenant": "Sélectionner un Tenant",
+ "tenant": "Tenant",
+ "tenant-details": "Détails du Tenant",
+ "tenant-required": "Tenant requis",
+ "tenants": "Tenants",
+ "title": "Titre",
+ "title-required": "Le titre est requis."
+ },
+"timeinterval":{
+ "advanced": "Avancé",
+ "days": "Jours",
+ "days-interval": "{days, plural, 1 {1 jour} other {# jours}}",
+ "hours": "Heures",
+ "hours-interval": "{hours, plural, 1 {1 heure} other {# heures}}",
+ "minutes": "Minutes",
+ "minutes-interval": "{minutes, plural, 1 {1 minute} other {# minutes}}",
+ "seconds": "Secondes",
+ "seconds-interval": "{seconds, plural, 1 {1 seconde} other {# secondes}}"
+ },
+"timewindow":{
+ "date-range": "Plage de dates",
+ "days": "{days, plural, 1 {jour} other {# jours}}",
+ "edit": "Modifier timewindow",
+ "history": "Historique",
+ "hours": "{hours, plural, 0 {heure} 1 {1 heure} other {# heures}}",
+ "last": "Dernier",
+ "last-prefix": "dernier",
+ "minutes": "{minutes, plural, 0 {minute} 1 {1 minute} other {# minutes}}",
+ "period": "de {{startTime}} à {{endTime}}",
+ "realtime": "Temps réel",
+ "seconds": "{seconds, plural, 0 {second} 1 {1 second} other {# seconds}}",
+ "time-period": "Période"
+ },
+"user":{
+ "activation-email-sent-message": "L'e-mail d'activation a été envoyé avec succès!",
+ "activation-link": "Lien d'activation utilisateur",
+ "activation-link-copied-message": "le lien d'activation de l'utilisateur a été copié dans le presse-papier",
+ "activation-link-text": "Pour activer l'utilisateur, utilisez le lien d'activation suivant: <a href='{{activationLink}}' target='_blank'></a>",
+ "activation-method": "Méthode d'activation",
+ "add": "Ajouter un utilisateur",
+ "add-user-text": "Ajouter un nouvel utilisateur",
+ "always-fullscreen": "Toujours en plein écran",
+ "anonymous": "Anonyme",
+ "copy-activation-link": "Copier le lien d'activation",
+ "customer": "Client",
+ "customer-users": "Utilisateurs du client",
+ "default-dashboard": "Tableau de bord par défaut",
+ "delete": "Supprimer l'utilisateur",
+ "delete-user-text": "Attention, après la confirmation, l'utilisateur et toutes les données associées deviendront irrécupérables.",
+ "delete-user-title": "Etes-vous sûr de vouloir supprimer l'utilisateur '{{userEmail}}'?",
+ "delete-users-action-title": "Supprimer {count, plural, 1 {1 utilisateur} other {# utilisateurs}}",
+ "delete-users-text": "Attention, après la confirmation, tous les utilisateurs sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
+ "delete-users-title": "Etes-vous sûr de vouloir supprimer {count, plural, 1 {1 utilisateur} other {# utilisateurs}}?",
+ "description": "Description",
+ "details": "Détails",
+ "display-activation-link": "Afficher le lien d'activation",
+ "email": "Email",
+ "email-required": "Email est requis.",
+ "first-name": "Prénom",
+ "invalid-email-format": "Format de courrier électronique non valide",
+ "last-name": "Nom de famille",
+ "no-users-matching": "Aucun utilisateur correspondant à '{{entity}}' n'a été trouvé.",
+ "no-users-text": "Aucun utilisateur trouvé",
+ "resend-activation": "Renvoyer l'activation",
+ "select-user": "Sélectionner l'utilisateur",
+ "send-activation-mail": "Envoyer un mail d'activation",
+ "sys-admin": "Administrateur du système",
+ "tenant-admin": "Administrateur du Tenant",
+ "tenant-admins": "administrateurs du Tenant",
+ "user": "utilisateur",
+ "user-details": "Détails de l'utilisateur",
+ "user-required": "L'utilisateur est requis",
+ "users": "Utilisateurs"
+ },
+"value":{
+ "boolean": "booléen",
+ "boolean-value": "Valeur booléenne",
+ "double": "Double",
+ "double-value": "Valeur double",
+ "false": "Faux",
+ "integer": "Entier",
+ "integer-value": "Valeur entière",
+ "invalid-integer-value": "Valeur entière invalide",
+ "long": "Long",
+ "string": "String",
+ "string-value": "Valeur String",
+ "true": "Vrai",
+ "type": "Type de valeur"
+ },
+"widget":{
+ "add": "Ajouter un widget",
+ "add-resource": "Ajouter une ressource",
+ "add-widget-type": "Ajouter un nouveau type de widget",
+ "alarm": "Widget d'alarme",
+ "css": "CSS",
+ "datakey-settings-schema": "Schéma des paramètres de Data key",
+ "edit": "Modifier le widget",
+ "editor": " Editeur de widget",
+ "export": "Exporter widget",
+ "html": "HTML",
+ "javascript": "Javascript",
+ "latest-values": "Dernières valeurs",
+ "management": "Gestion des widgets",
+ "missing-widget-title-error": "Le titre du widget doit être spécifié!",
+ "no-data-found": "Aucune donnée trouvée",
+ "remove": "Supprimer le widget",
+ "remove-resource": "Supprimer une ressource",
+ "remove-widget-text": "Après la confirmation, le widget et toutes les données associées deviendront irrécupérables.",
+ "remove-widget-title": "Êtes-vous sûr de vouloir supprimer le widget '{{widgetTitle}}'?",
+ "remove-widget-type": "Supprimer le type de widget",
+ "remove-widget-type-text": "Après la confirmation, le type de widget et toutes les données associées deviendront irrécupérables.",
+ "remove-widget-type-title": "Êtes-vous sûr de vouloir supprimer le type de widget '{{widgetName}}'?",
+ "resource-url": "URL JavaScript / CSS",
+ "resources": "Ressources",
+ "rpc": "Widget de contrôle",
+ "run": "Exécuter un widget",
+ "save": "Enregistrer le widget",
+ "save-widget-type-as": "Enregistrer le type de widget sous",
+ "save-widget-type-as-text": "Veuillez saisir un nouveau titre de widget et / ou sélectionner un ensemble de widgets cibles",
+ "saveAs": "Enregistrer le widget sous",
+ "search-data": "Rechercher des données",
+ "select-widget-type": "Sélectionnez le type de widget",
+ "select-widgets-bundle": "Sélectionner un ensemble de widgets",
+ "settings-schema": "Schéma des paramètres",
+ "static": "Widget statique",
+ "tidy": "Tidy",
+ "timeseries": "Séries chronologiques",
+ "title": "Titre du widget",
+ "title-required": "Le titre du widget est requis.",
+ "toggle-fullscreen": "Basculer le mode plein écran",
+ "type": "Type de widget",
+ "unable-to-save-widget-error": "Impossible de sauvegarder le widget! Le widget a des erreurs!",
+ "undo": "Annuler les modifications du widget",
+ "widget-bundle": "Ensemble de widget",
+ "widget-library": "Bibliothèque de widgets",
+ "widget-saved": "Widget enregistré",
+ "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. <br> Le type de widget associé a probablement été supprimé."
+ },
+"widget-action":{
+ "custom": "Action personnalisée",
+ "header-button": "Bouton d'en-tête de widget",
+ "open-dashboard": "Naviguer vers un autre tableau de bord",
+ "open-dashboard-state": "Naviguer vers un nouvel état du tableau de bord",
+ "open-right-layout": "Ouvrir la disposition du tableau de bord droite (vue mobile)",
+ "set-entity-from-widget": "Définir l'entité à partir du widget",
+ "target-dashboard": "Tableau de bord cible",
+ "target-dashboard-state": "Etat du tableau de bord cible",
+ "target-dashboard-state-required": "L'état du tableau de bord cible est requis",
+ "update-dashboard-state": "Mettre à jour l'état actuel du tableau de bord"
+ },
+"widget-config":{
+ "action": "Action",
+ "action-icon": "Icône",
+ "action-name": "Nom",
+ "action-name-not-unique": "Une autre action portant le même nom existe déjà. <br/> Le nom de l'action doit être unique dans la même source d'action.",
+ "action-name-required": "Le nom de l'action est requis",
+ "action-source": "Source de l'action",
+ "action-source-required": "Une source d'action est requise.",
+ "action-type": "Type",
+ "action-type-required": "Le type d'action est requis.",
+ "actions": "Actions",
+ "add-action": "Ajouter une action",
+ "add-datasource": "Ajouter une source de données",
+ "advanced": "Avancé",
+ "alarm-source": "Source d'alarme",
+ "background-color": "couleur de fond",
+ "data": "Données",
+ "datasource-parameters": "Paramètres",
+ "datasource-type": "Type",
+ "datasources": "Sources de données",
+ "decimals": "Nombre de chiffres après virgule flottante",
+ "delete-action": "Supprimer l'action",
+ "delete-action-text": "Etes-vous sûr de vouloir supprimer l'action du widget nommé '{{actionName}}'?",
+ "delete-action-title": "Supprimer l'action du widget",
+ "display-legend": "Afficher la légende",
+ "display-title": "Afficher le titre",
+ "drop-shadow": "Ombre portée",
+ "edit-action": "Modifier l'action",
+ "enable-fullscreen": "Activer le plein écran",
+ "general-settings": "Paramètres généraux",
+ "height": "Hauteur",
+ "margin": "Marge",
+ "maximum-datasources": "Maximum {count, plural, 1 {1 datasource est autorisé.} other {# datasources sont autorisés}}",
+ "mobile-mode-settings": "Paramètres du mode mobile",
+ "order": "Ordre",
+ "padding": "Padding",
+ "remove-datasource": "Supprimer la source de données",
+ "search-actions": "Recherche d'actions",
+ "settings": "Paramètres",
+ "target-device": "Dispositif cible",
+ "text-color": "Couleur du texte",
+ "timewindow": "Fenêtre de temps",
+ "title": "Titre",
+ "title-style": "Style de titre",
+ "units": "Symbole spécial à afficher à côté de la valeur",
+ "use-dashboard-timewindow": "Utiliser la fenêtre de temps du tableau de bord",
+ "widget-style": "Style du widget"
+ },
+"widget-type":{
+ "create-new-widget-type": "Créer un nouveau type de widget",
+ "export": "Exporter le type de widget",
+ "export-failed-error": "Impossible d'exporter le type de widget: {{error}}",
+ "import": "Importer le type de widget",
+ "invalid-widget-type-file-error": "Impossible d'importer le type de widget: structure de données de type widget invalide.",
+ "widget-type-file": "Fichier de type Widget"
+ },
+"widgets-bundle":{
+ "add": "Ajouter un groupe de widgets",
+ "add-widgets-bundle-text": "Ajouter un nouveau groupe de widgets",
+ "create-new-widgets-bundle": "Créer un nouveau groupe de widgets",
+ "current": "Groupe actuel",
+ "delete": "Supprimer le groupe de widgets",
+ "delete-widgets-bundle-text": "Attention, après la confirmation, le groupe de widgets et toutes les données associées deviendront irrécupérables.",
+ "delete-widgets-bundle-title": "Êtes-vous sûr de vouloir supprimer le groupe de widgets '{{widgetsBundleTitle}}'?",
+ "delete-widgets-bundles-action-title": "Supprimer {count, plural, 1 {1 groupe de widgets} other {# groupes de widgets}}",
+ "delete-widgets-bundles-text": "Attention, après la confirmation, tous les groupes de widgets sélectionnés seront supprimés et toutes les données associées deviendront irrécupérables.",
+ "delete-widgets-bundles-title": "Voulez-vous vraiment supprimer {count, plural, 1 {1 groupe de widgets} other {# groupes de widgets}}?",
+ "details": "Détails",
+ "empty": "Le groupe de widgets est vide",
+ "export": "Exporter le groupe de widgets",
+ "export-failed-error": "Impossible d'exporter le groupe de widgets: {{error}}",
+ "import": "Importer un groupe de widgets",
+ "invalid-widgets-bundle-file-error": "Impossible d'importer un groupe de widgets: structure de données du groupe de widgets non valides.",
+ "no-widgets-bundles-matching": "Aucun groupe de widgets correspondant à {{widgetsBundle}} n'a été trouvé.",
+ "no-widgets-bundles-text": "Aucun groupe de widgets trouvé",
+ "system": "Système",
+ "title": "Titre",
+ "title-required": "Le titre est requis.",
+ "widgets-bundle-details": "Détails des groupes de widgets",
+ "widgets-bundle-file": "Fichier de groupe de widgets",
+ "widgets-bundle-required": "Un groupe de widgets est requis.",
+ "widgets-bundles": "Groupes de widgets"
+ }
+}
diff --git a/ui/src/app/locale/locale.constant-it_IT.json b/ui/src/app/locale/locale.constant-it_IT.json
index 7212b30..fcdd745 100644
--- a/ui/src/app/locale/locale.constant-it_IT.json
+++ b/ui/src/app/locale/locale.constant-it_IT.json
@@ -1434,6 +1434,7 @@
"language": {
"language": "Lingua",
"locales": {
+ "fr_FR": "Francese",
"zh_CN": "Cinese",
"ko_KR": "Coreano",
"en_US": "Inglese",
diff --git a/ui/src/app/locale/locale.constant-ko_KR.json b/ui/src/app/locale/locale.constant-ko_KR.json
index a4c8bcb..6027ef8 100644
--- a/ui/src/app/locale/locale.constant-ko_KR.json
+++ b/ui/src/app/locale/locale.constant-ko_KR.json
@@ -1329,6 +1329,7 @@
"language": "언어",
"locales": {
"en_US": "영어",
+ "fr_FR": "프랑스의",
"ko_KR": "한글",
"zh_CN": "중국어",
"ru_RU": "러시아어",
diff --git a/ui/src/app/locale/locale.constant-ru_RU.json b/ui/src/app/locale/locale.constant-ru_RU.json
index d017c63..9d2c713 100644
--- a/ui/src/app/locale/locale.constant-ru_RU.json
+++ b/ui/src/app/locale/locale.constant-ru_RU.json
@@ -1354,6 +1354,7 @@
"language": "Язык",
"locales": {
"en_US": "Английский",
+ "fr_FR": "Французский",
"zh_CN": "Китайский",
"ko_KR": "Корейский",
"es_ES": "Испанский",
diff --git a/ui/src/app/locale/locale.constant-zh_CN.json b/ui/src/app/locale/locale.constant-zh_CN.json
index d9cb7b1..042d230 100644
--- a/ui/src/app/locale/locale.constant-zh_CN.json
+++ b/ui/src/app/locale/locale.constant-zh_CN.json
@@ -1438,6 +1438,7 @@
"language": "语言",
"locales": {
"en_US": "英语",
+ "fr_FR": "法国",
"ko_KR": "韩语",
"zh_CN": "汉语",
"ru_RU": "俄语",