thingsboard-memoizeit

Added turkish lang

10/8/2018 2:21:00 AM

Details

diff --git a/ui/src/app/locale/locale.constant-en_US.json b/ui/src/app/locale/locale.constant-en_US.json
index 481d677..3e9ad82 100644
--- a/ui/src/app/locale/locale.constant-en_US.json
+++ b/ui/src/app/locale/locale.constant-en_US.json
@@ -1551,7 +1551,8 @@
             "ko_KR": "Korean",
             "ru_RU": "Russian",
             "es_ES": "Spanish",
-            "ja_JA": "Japanese"
+            "ja_JA": "Japanese",
+            "TR": "Turkish"
         }
     }
 }
diff --git a/ui/src/app/locale/locale.constant-es_ES.json b/ui/src/app/locale/locale.constant-es_ES.json
index 733db14..729e4ff 100644
--- a/ui/src/app/locale/locale.constant-es_ES.json
+++ b/ui/src/app/locale/locale.constant-es_ES.json
@@ -1313,7 +1313,8 @@
             "ru_RU": "Ruso",
             "es_ES": "Español",
             "it_IT": "Italiano",
-            "ja_JA": "Japonés"
+            "ja_JA": "Japonés",
+            "TR": "Turco"
         }
     }
 }
diff --git a/ui/src/app/locale/locale.constant-fr_FR.json b/ui/src/app/locale/locale.constant-fr_FR.json
index 2c0a290..8b270aa 100644
--- a/ui/src/app/locale/locale.constant-fr_FR.json
+++ b/ui/src/app/locale/locale.constant-fr_FR.json
@@ -1,1461 +1,1462 @@
 {
-"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"
-	}
+    "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",
+            "TR": "Turc"
+        }
+    },
+    "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 f69c108..79843ab 100644
--- a/ui/src/app/locale/locale.constant-it_IT.json
+++ b/ui/src/app/locale/locale.constant-it_IT.json
@@ -1441,7 +1441,8 @@
             "it_IT": "Italiano",
             "ru_RU": "Russo",
             "es_ES": "Spagnolo",
-            "ja_JA": "Giapponese"
+            "ja_JA": "Giapponese",
+            "TR": "Turco"
         }
     }
 }
diff --git a/ui/src/app/locale/locale.constant-ja_JA.json b/ui/src/app/locale/locale.constant-ja_JA.json
index 77765ef..6c48894 100644
--- a/ui/src/app/locale/locale.constant-ja_JA.json
+++ b/ui/src/app/locale/locale.constant-ja_JA.json
@@ -1457,7 +1457,8 @@
 			"zh_CN": "中国語",
 			"ru_RU": "ロシア",
 			"es_ES": "スペイン語",
-			"ja_JA": "日本語"
+			"ja_JA": "日本語",
+			"TR": "トルコ語"
 		}
 	}
 }
diff --git a/ui/src/app/locale/locale.constant-ko_KR.json b/ui/src/app/locale/locale.constant-ko_KR.json
index 6027ef8..07e7dd6 100644
--- a/ui/src/app/locale/locale.constant-ko_KR.json
+++ b/ui/src/app/locale/locale.constant-ko_KR.json
@@ -1335,7 +1335,8 @@
             "ru_RU": "러시아어",
             "es_ES": "스페인어",
             "it_IT": "이탈리아 사람",
-            "ja_JA": "일본어"
+            "ja_JA": "일본어",
+            "TR": "터키어"
         }
     }
 }
diff --git a/ui/src/app/locale/locale.constant-ru_RU.json b/ui/src/app/locale/locale.constant-ru_RU.json
index 9d2c713..893bbcd 100644
--- a/ui/src/app/locale/locale.constant-ru_RU.json
+++ b/ui/src/app/locale/locale.constant-ru_RU.json
@@ -1360,7 +1360,8 @@
             "es_ES": "Испанский",
             "it_IT": "Итальянский",
             "ru_RU": "Русский",
-            "ja_JA": "Японский"
+            "ja_JA": "Японский",
+            "TR": "Турецкий"
         }
 
     }
diff --git a/ui/src/app/locale/locale.constant-TR.json b/ui/src/app/locale/locale.constant-TR.json
new file mode 100644
index 0000000..04575fb
--- /dev/null
+++ b/ui/src/app/locale/locale.constant-TR.json
@@ -0,0 +1,1545 @@
+{
+    "access": {
+        "unauthorized": "Yetkisiz",
+        "unauthorized-access": "Yetkisiz Eriþim",
+        "unauthorized-access-text": "Bu kaynaða eriþmek için giriþ yapmalýsýnýz!",
+        "access-forbidden": "Eriþim Yasaklandý",
+        "access-forbidden-text": "Bu yere eriþim haklarýna sahip deðilsiniz! <br/> Bu konuma eriþmek istiyorsanýz yine de farklý kullanýcýlarla giriþ yapmayý deneyin.",
+        "refresh-token-expired": "Oturum süresi doldu",
+        "refresh-token-failed": "Seans yenilenemiyor"
+    },
+    "action": {
+        "activate": "Aktive Et",
+        "suspend": "Askýya Alma",
+        "save": "Kayýt etmek",
+        "saveAs": "Farklý kaydet",
+        "cancel": "Ýptal etmek",
+        "ok": "TAMAM",
+        "delete": "Sil",
+        "add": "Eklemek",
+        "yes": "Evet",
+        "no": "Yok hayýr",
+        "update": "Güncelleþtirme",
+        "remove": "Kaldýr",
+        "search": "Arama",
+        "clear-search": "Aramayý Temizle",
+        "assign": "Atamak",
+        "unassign": "Atamayý kaldýrma",
+        "share": "Pay",
+        "make-private": "Özel yap",
+        "apply": "Uygulamak",
+        "apply-changes": "Deðiþiklikleri uygula",
+        "edit-mode": "Düzenleme modu",
+        "enter-edit-mode": "Düzenleme moduna girin",
+        "decline-changes": "Deðiþiklikleri reddet",
+        "close": "Kapat",
+        "back": "Geri",
+        "run": "Koþmak",
+        "sign-in": "Oturum aç!",
+        "edit": "Düzenle",
+        "view": "Görünüm",
+        "create": "Yaratmak",
+        "drag": "Sürüklemek",
+        "refresh": "Yenile",
+        "undo": "Geri alma",
+        "copy": "Kopyala",
+        "paste": "Yapýþtýrmak",
+        "copy-reference": "Referansý kopyala",
+        "paste-reference": "Referansý yapýþtýr",
+        "import": "Ýthalat",
+        "export": "Ýhracat",
+        "share-via": "{{Provider}} aracýlýðýyla paylaþ"
+    },
+    "aggregation": {
+        "aggregation": "Toplama",
+        "function": "Veri toplama iþlevi",
+        "limit": "Maksimum deðerler",
+        "group-interval": "Gruplama aralýðý",
+        "min": "Min",
+        "max": "Max",
+        "avg": "Ortalama",
+        "sum": "Sum",
+        "count": "Sayý",
+        "none": "Yok"
+    },
+    "admin": {
+        "general": "Genel",
+        "general-settings": "Genel Ayarlar",
+        "outgoing-mail": "Giden posta",
+        "outgoing-mail-settings": "Giden Posta Ayarlarý",
+        "system-settings": "Sistem ayarlarý",
+        "test-mail-sent": "Test postasý baþarýyla gönderildi!",
+        "base-url": "Temel URL",
+        "base-url-required": "Temel URL gerekli.",
+        "mail-from": "Mail þu kiþiden geldi",
+        "mail-from-required": "Mail From gereklidir.",
+        "smtp-protocol": "SMTP protokolü",
+        "smtp-host": "SMTP ana bilgisayarý",
+        "smtp-host-required": "SMTP ana bilgisayarý gerekli.",
+        "smtp-port": "SMTP portu",
+        "smtp-port-required": "Bir smtp portu saðlamalýsýnýz.",
+        "smtp-port-invalid": "Bu geçerli bir smtp portuna benzemiyor.",
+        "timeout-msec": "Zaman aþýmý (msn)",
+        "timeout-required": "Zaman aþýmý gerekli.",
+        "timeout-invalid": "Bu geçerli bir zaman aþýmý gibi görünmüyor.",
+        "enable-tls": "TLS'yi etkinleþtir",
+        "send-test-mail": "Test postasý gönder"
+    },
+    "alarm": {
+        "alarm": "Alarm",
+        "alarms": "Alarmlar",
+        "select-alarm": "Alarmý seç",
+        "no-alarms-matching": " '{{Entity}}' ile eþleþen hiçbir alarm bulunamadý. ",
+        "alarm-required": "Alarm gerekli",
+        "alarm-status": "Alarm durumu",
+        "search-status": {
+            "ANY": "Herhangi biri",
+            "ACTIVE": "Aktif",
+            "CLEARED": "Temizlendi",
+            "ACK": "Kabul edilen",
+            "UNACK": "Unacknowledged"
+        },
+        "display-status": {
+            "ACTIVE_UNACK": "Aktif Olmamýþ",
+            "ACTIVE_ACK": "Aktif Kabul",
+            "CLEARED_UNACK": "Onaylanmamýþ Onaylandý",
+            "CLEARED_ACK": "Onaylandý onaylandý"
+        },
+        "no-alarms-prompt": "Alarm bulunamadý",
+        "created-time": "Zaman yaratýldý",
+        "type": "Tür",
+        "severity": "Önem",
+        "originator": "Originator",
+        "originator-type": "Gönderen türü",
+        "details": "Ayrýntýlar",
+        "status": "Durum",
+        "alarm-details": "Alarm detaylarý",
+        "start-time": "Baþlama zamaný",
+        "end-time": "Bitiþ zamaný",
+        "ack-time": "Onaylanmýþ zaman",
+        "clear-time": "Temizlenmiþ zaman",
+        "severity-critical": "Kritik",
+        "severity-major": "Majör",
+        "severity-minor": "Minör",
+        "severity-warning": "Uyarý",
+        "severity-indeterminate": "Belirsiz",
+        "acknowledge": "Onay",
+        "clear": "Açýk",
+        "search": "Arama alarmlarý",
+        "selected-alarms": "{count, çoðul, 1 {1 alarm} diðer {# alarm}} seçildi",
+        "no-data": "Gösterilecek bilgi yok",
+        "polling-interval": "Alarmlar sorgulama aralýðý (sn)",
+        "polling-interval-required": "Alarmlar sorgulama aralýðý gerekli.",
+        "min-polling-interval-message": "En az 1 san yoklama aralýðýna izin verilir.",
+        "aknowledge-alarms-title": "Kabul et { count, plural, 1 {1 alarm} other {# alarms}} selected ",
+        "aknowledge-alarms-text": "{Count, plural, 1 {1 alarm} dother {# alarm}} kimliðini kabul etmek istediðinizden emin misiniz?",
+        "clear-alarms-title": "Temizle {count, plural, 1 {1 alarm} other {# alarm}}",
+        "clear-alarms-text": "count, plural, 1 {1 alarm} diðer {# alarms}} silmek istediðinizden emin misiniz?"
+    },
+    "alias": {
+        "add": "Takma ad ekle",
+        "edit": "Takma adý düzenle",
+        "name": "Takma ad",
+        "name-required": "Takma ad gerekli",
+        "duplicate-alias": "Ayný ada sahip diðer ad zaten var.",
+        "filter-type-single-entity": "Tek varlýk",
+        "filter-type-entity-list": "Varlýk listesi",
+        "filter-type-entity-name": "Varlýk adý",
+        "filter-type-state-entity": "Gösterge panosu durumundan varlýk",
+        "filter-type-state-entity-description": "Gösterge panosu durum parametrelerinden alýnan varlýk",
+        "filter-type-asset-type": "Varlýk türü",
+        "filter-type-asset-type-description": "Öðe varlýklarý {{assetType}} '",
+        "filter-type-asset-type-and-name-description": "{{AssetType}} türündeki varlýklar ve {{prefix}} ile baþlayan adla ",
+        "filter-type-device-type": "Cihaz tipi",
+        "filter-type-device-type-description": "Türlü cihazlar {{deviceType}} ",
+        "filter-type-device-type-and-name-description": "{{DeviceType}} türündeki cihazlar ve {{prefix}} ile baþlayan adla ",
+        "filter-type-relations-query": "Ýliþkiler sorgusu",
+        "filter-type-relations-query-description": "{{relationType}} iliþkisine sahip {{direction}} {{rootEntity}} olan {{entities}}",
+        "filter-type-asset-search-query": "Öðe arama sorgusu",
+        "filter-type-asset-search-query-description": "{{RelationType}} iliþkisine sahip {{direction}}} türlerine sahip öðeler {{direction}} {{rootEntity}} ",
+        "filter-type-device-search-query": "Cihaz arama sorgusu",
+        "filter-type-device-search-query-description": "{{RelationType}} iliþkisi olan {{direction}} {{rootEntity}} içeren {{deviceTypes}} türüne sahip cihazlar",
+        "entity-filter": "Varlýk filtresi",
+        "resolve-multiple": "Birden çok varlýk olarak çöz",
+        "filter-type": "Filtre tipi",
+        "filter-type-required": "Filtre türü gerekli.",
+        "entity-filter-no-entity-matched": "Belirtilen filtreyle eþleþen varlýk bulunamadý.",
+        "no-entity-filter-specified": "Hiçbir varlýk filtresi belirtilmemiþ",
+        "root-state-entity": "Gösterge panosu durum varlýðýný root olarak kullan",
+        "root-entity": "Kök varlýk",
+        "state-entity-parameter-name": "Durum öðesi parametre adý",
+        "default-state-entity": "Varsayýlan durum varlýðý",
+        "default-entity-parameter-name": "Varsayýlan olarak",
+        "max-relation-level": "Maksimum iliþki seviyesi",
+        "unlimited-level": "Sýnýrsýz seviye",
+        "state-entity": "Gösterge panosu durumu",
+        "all-entities": "Tüm varlýklar",
+        "any-relation": "Herhangi"
+    },
+    "asset": {
+        "asset": "Varlýk",
+        "assets": "Varlýklar",
+        "management": "Varlýk Yönetimi",
+        "view-assets": "Varlýklarý Görüntüle",
+        "add": "Öðe Ekle",
+        "assign-to-customer": "Müþteriye atama",
+        "assign-asset-to-customer": "Müþteriye Varlýk (lar) Atama",
+        "assign-asset-to-customer-text": "Lütfen müþteriye atamak için varlýklarý seçin",
+        "no-assets-text": "Öðe bulunamadý",
+        "assign-to-customer-text": "Lütfen varlýk (lar) a atamak için müþteriyi seçin",
+        "public": "Halka açýk",
+        "assignedToCustomer": "Müþteriye atandý",
+        "make-public": "Varlýðý herkese açýk yap",
+        "make-private": "Varlýk özel yap",
+        "unassign-from-customer": "Müþteriden atama",
+        "delete": "Öðeyi sil",
+        "asset-public": "Varlýk halka açýk",
+        "asset-type": "Varlýk türü",
+        "asset-type-required": "Öðe türü gerekli.",
+        "select-asset-type": "Varlýk türünü seç",
+        "enter-asset-type": "Varlýk türünü girin",
+        "any-asset": "Herhangi bir varlýk",
+        "no-asset-types-matching": "{{EntitySubtype}} ile eþleþen öðe türü bulunamadý. ",
+        "asset-type-list-empty": "Hiçbir öðe türü seçilmedi.",
+        "asset-types": "Varlýk türleri",
+        "name": "Ad",
+        "name-required": "Ýsim gerekli.",
+        "description": "Açýklama",
+        "type": "Tür",
+        "type-required": "Tür gerekli.",
+        "details": "Ayrýntýlar",
+        "events": "Etkinlikler",
+        "add-asset-text": "Yeni varlýk ekle",
+        "asset-details": "Varlýk ayrýntýlarý",
+        "assign-assets": "Öðeleri atama",
+        "assign-assets-text": "Müþteriye {count, çoðul, 1 {1 asset}} diðer {# asset}} atayýn ",
+        "delete-assets": "Öðeleri sil",
+        "unassign-assets": "Varlýklarý atama",
+        "unassign-assets-action-title": "Müþteriden tekil, sayým, çoðul, 1 {1 öðe} diðer {# varlýk}} atama ",
+        "assign-new-asset": "Yeni varlýk atama",
+        "delete-asset-title": "Öðeyi {{assetName}} silmek istediðinizden emin misiniz?",
+        "delete-asset-text": "Dikkatli olun, onaylandýktan sonra varlýk ve ilgili tüm veriler kurtarýlamaz.",
+        "delete-assets-title": "{Count, çoðul, 1 {1 asset} diðer {# asset}} silmek istediðinizden emin misiniz?",
+        "delete-assets-action-title": "Sil {count, çoðul, 1 {1 asset} diðer {# asset}}",
+        "delete-assets-text": "Dikkatli olun, onaylandýktan sonra tüm seçilmiþ varlýklar kaldýrýlacak ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "make-public-asset-title": "Varlýðý {{assetName}} herkese açýk yapmak istediðinizden emin misiniz? ",
+        "make-public-asset-text": "Onaydan sonra varlýk ve tüm verileri kamuya açýk ve baþkalarý tarafýndan eriþilebilir olacak.",
+        "make-private-asset-title": "Öðeyi {{assetName}} özel yapmak istediðinizden emin misiniz? ",
+        "make-private-asset-text": "Onaydan sonra varlýk ve tüm verileri gizli tutulacak ve baþkalarý tarafýndan eriþilemeyecektir.",
+        "unassign-asset-title": "Öðeyi {{assetName}} öðesinin atamasýný kaldýrmak istediðinizden emin misiniz?",
+        "unassign-asset-text": "Onaydan sonra varlýk atama yapýlmayacak ve müþteri tarafýndan eriþilemeyecektir.",
+        "unassign-asset": "Atama atamayý kaldýr",
+        "unassign-assets-title": "count, plural, 1 {1 öðe} other {# asset}} atama atamak istediðinizden emin misiniz?",
+        "unassign-assets-text": "Onaylandýktan sonra, seçilen tüm öðeler atamadan kaldýrýlacak ve müþteri tarafýndan eriþilemeyecektir.",
+        "copyId": "Öðe Kimliði Kopyala",
+        "idCopiedMessage": "Öðe Kimliði panoya kopyalandý",
+        "select-asset": "Varlýk seç",
+        "no-assets-matching": "{{Entity}} ile eþleþen hiçbir öðe bulunamadý. ",
+        "asset-required": "Varlýk gerekli",
+        "name-starts-with": "Öðe adý ile baþlar"
+    },
+    "attribute": {
+        "attributes": "Öznitellikler",
+        "latest-telemetry": "Son telemetri",
+        "attributes-scope": "Varlýk öznitelikleri kapsamý",
+        "scope-latest-telemetry": "Son telemetri",
+        "scope-client": "Müþteri özellikleri",
+        "scope-server": "Sunucu öznitelikleri",
+        "scope-shared": "Paylaþýlan özellikler",
+        "add": "Özellik ekle",
+        "key": "Anahtar",
+        "last-update-time": "Son güncelleme zamaný",
+        "key-required": "Özellik anahtarý gerekli.",
+        "value": "Deðer",
+        "value-required": "Özellik deðeri gerekli.",
+        "delete-attributes-title": "{Count, çoðul, 1 {1 özellik} diðer {# attributes}} silmek istediðinizden emin misiniz?",
+        "delete-attributes-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen özellikler kaldýrýlacak.",
+        "delete-attributes": "Nitelikleri sil",
+        "enter-attribute-value": "Özellik deðerini girin",
+        "show-on-widget": "Widget’ta göster",
+        "widget-mode": "Widget modu",
+        "next-widget": "Sonraki pencere öðesi",
+        "prev-widget": "Önceki pencere öðesi",
+        "add-to-dashboard": "Gösterge tablosuna ekle",
+        "add-widget-to-dashboard": "Gösterge tablosuna widget ekle",
+        "selected-attributes": "{count, çoðul, 1 {1 özellik} diðer {# attributes}} seçildi",
+        "selected-telemetry": "{count, çoðul, 1 {1 telemetri birimi} diðer {# telemetri birimleri}} seçildi"
+    },
+    "audit-log": {
+        "audit": "Denetim",
+        "audit-logs": "Denetim Kayýtlarý",
+        "timestamp": "Zaman Damgasý",
+        "entity-type": "Varlýk Türü",
+        "entity-name": "Varlýk adý",
+        "user": "Kullanýcý",
+        "type": "Tür",
+        "status": "Durum",
+        "details": "Ayrýntýlar",
+        "type-added": "Katma",
+        "type-deleted": "Silindi",
+        "type-updated": "Güncellenmiþ",
+        "type-attributes-updated": "Öznitelikler güncellendi",
+        "type-attributes-deleted": "Öznitelikler silindi",
+        "type-rpc-call": "RPC çaðrýsý",
+        "type-credentials-updated": "Kimlik bilgileri güncellendi",
+        "type-assigned-to-customer": "Müþteriye Atanan",
+        "type-unassigned-from-customer": "Müþteriden Atanmamýþ",
+        "type-activated": "Aktif",
+        "type-suspended": "Askýya alýndý",
+        "type-credentials-read": "Kimlik bilgileri okundu",
+        "type-attributes-read": "Nitelikler oku",
+        "type-relation-add-or-update": "Ýliþki güncellendi",
+        "type-relation-delete": "Ýliþki silindi",
+        "type-relations-delete": "Tüm iliþki silindi",
+        "type-alarm-ack": "Kabul edilen",
+        "type-alarm-clear": "Temizlendi",
+        "status-success": "Baþarý",
+        "status-failure": "Baþarýsýzlýk",
+        "audit-log-details": "Denetim kaydý ayrýntýlarý",
+        "no-audit-logs-prompt": "Kayýt bulunamadý",
+        "action-data": "Eylem verileri",
+        "failure-details": "Arýza detaylarý",
+        "search": "Denetim günlüklerini ara",
+        "clear-search": "Aramayý Temizle"
+    },
+    "confirm-on-exit": {
+        "message": "Kaydedilmemiþ deðiþiklikleriniz var. Bu sayfadan ayrýlmak istediðinizden emin misiniz?",
+        "html-message": "Kaydedilmemiþ deðiþiklikleriniz var. <br/> Bu sayfadan ayrýlmak istediðinizden emin misiniz?",
+        "title": "Kaydedilmemiþ deðiþiklikler"
+    },
+    "contact": {
+        "country": "Ülke",
+        "city": "Kent",
+        "state": "Eyalet / Ýl",
+        "postal-code": "Posta Kodu",
+        "postal-code-invalid": "Geçersiz Posta Kodu / Posta Kodu biçimi.",
+        "address": "Adres",
+        "address2": "Adres 2",
+        "phone": "Telefon",
+        "email": "E-posta",
+        "no-address": "Adres yok"
+    },
+    "common": {
+        "username": "Kullanýcý adý",
+        "password": "Parola",
+        "enter-username": "Kullanýcý adý girin",
+        "enter-password": "Parolaný Gir",
+        "enter-search": "Arama girin"
+    },
+    "content-type": {
+        "json": "Json",
+        "text": "Metin",
+        "binary": "Ýkili (Base64)"
+    },
+    "customer": {
+        "customer": "Müþteri",
+        "customers": "Müþteriler",
+        "management": "Müþteri yönetimi",
+        "dashboard": "Müþteri Kontrol Paneli",
+        "dashboards": "Müþteri Kontrol Panelleri",
+        "devices": "Müþteri Cihazlarý",
+        "entity-views": "Müþteri Varlýðý Görüntüleme Sayýsý",
+        "assets": "Müþteri Varlýklarý",
+        "public-dashboards": "Genel Panolar",
+        "public-devices": "Kamu Aygýtlarý",
+        "public-assets": "Kamu Varlýklarý",
+        "public-entity-views": "Kamu Varlýk Görüntüleme Sayýsý",
+        "add": "Müþteri Ekle",
+        "delete": "Müþteriyi sil",
+        "manage-customer-users": "Müþteri kullanýcýlarýný yönet",
+        "manage-customer-devices": "Müþteri cihazlarýný yönet",
+        "manage-customer-dashboards": "Müþteri panolarýný yönet",
+        "manage-public-devices": "Genel cihazlarý yönet",
+        "manage-public-dashboards": "Genel panolarý yönet",
+        "manage-customer-assets": "Müþteri varlýklarýný yönet",
+        "manage-public-assets": "Kamu varlýklarýný yönet",
+        "add-customer-text": "Yeni müþteri ekle",
+        "no-customers-text": "Müþteri bulunamadý",
+        "customer-details": "Müþteri detaylarý",
+        "delete-customer-title": "Müþteriyi silmek istediðinizden emin misiniz? {{CustomerTitle}} ? ",
+        "delete-customer-text": "Dikkatli olun, onaylandýktan sonra müþteri ve ilgili tüm veriler kurtarýlamaz.",
+        "delete-customers-title": "{Count, çoðul, 1 {1 müþteri} diðer {# customers}} silmek istediðinizden emin misiniz?",
+        "delete-customers-action-title": "Sil {count, çoðul, 1 {1 müþteri} diðer {# customers}}",
+        "delete-customers-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen müþteriler kaldýrýlacak ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "manage-users": "Kullanýcýlarý Yönet",
+        "manage-assets": "Varlýklarý yönet",
+        "manage-devices": "Cihazlarý yönet",
+        "manage-dashboards": "Gösterge tablolarýný yönet",
+        "title": "Baþlýk",
+        "title-required": "Baþlýk gerekli.",
+        "description": "Açýklama",
+        "details": "Ayrýntýlar",
+        "events": "Etkinlikler",
+        "copyId": "Müþteri kimliðini kopyala",
+        "idCopiedMessage": "Müþteri Kimliði panoya kopyalandý",
+        "select-customer": "Müþteriyi seç",
+        "no-customers-matching": "{{Entity}} ile eþleþen hiçbir müþteri bulunamadý. ",
+        "customer-required": "Müþteri gerekli",
+        "select-default-customer": "Varsayýlan müþteriyi seç",
+        "default-customer": "Varsayýlan müþteri",
+        "default-customer-required": "Kiracý düzeyinde gösterge tablosunda hata ayýklamak için varsayýlan müþteri gerekiyor"
+    },
+    "datetime": {
+        "date-from": "Tarih",
+        "time-from": "Zaman",
+        "date-to": "Tarih",
+        "time-to": "Zaman"
+    },
+    "dashboard": {
+        "dashboard": "Pano",
+        "dashboards": "Gösterge tablolarý",
+        "management": "Gösterge tablosu yönetimi",
+        "view-dashboards": "Gösterge Panolarý",
+        "add": "Gösterge Tablosu Ekle",
+        "assign-dashboard-to-customer": "Gösterge Tablosunu / Müþterilerini Müþteriye Atama",
+        "assign-dashboard-to-customer-text": "Lütfen müþteriye atamak için kontrol panellerini seçin",
+        "assign-to-customer-text": "Gösterge panellerini atamak için lütfen müþteriyi seçiniz",
+        "assign-to-customer": "Müþteriye atama",
+        "unassign-from-customer": "Müþteriden atama",
+        "make-public": "Gösterge panosunu herkese açýk yap",
+        "make-private": "Gösterge panosunu özel yap",
+        "manage-assigned-customers": "Atanan müþterileri yönet",
+        "assigned-customers": "Atanan müþteriler",
+        "assign-to-customers": "Gösterge Tablosunu / Müþterilerini Müþterilere Atama",
+        "assign-to-customers-text": "Lütfen gösterge panosunu atamak için müþterileri seçin",
+        "unassign-from-customers": "Müþterilerden Gösterge Tablosunu (Notlarýný) Atama",
+        "unassign-from-customers-text": "Lütfen gösterge tablosundan atamak için müþterileri seçin",
+        "no-dashboards-text": "Gösterge panelleri bulunamadý",
+        "no-widgets": "Hiçbir widget yapýlandýrýlmamýþ",
+        "add-widget": "Yeni pencere öðesi ekle",
+        "title": "Baþlýk",
+        "select-widget-title": "Widget seç",
+        "select-widget-subtitle": "Kullanýlabilir pencere öðesi türleri",
+        "delete": "Gösterge tablosunu sil",
+        "title-required": "Baþlýk gerekli.",
+        "description": "Açýklama",
+        "details": "Ayrýntýlar",
+        "dashboard-details": "Gösterge tablosu ayrýntýlarý",
+        "add-dashboard-text": "Yeni gösterge tablosu ekle",
+        "assign-dashboards": "Gösterge tablolarý atama",
+        "assign-new-dashboard": "Yeni kontrol paneli atama",
+        "assign-dashboards-text": "Müþterilere {count, plural, 1 {1 gösterge tablosu} other {# dashboard}}} atayýn ",
+        "unassign-dashboards-action-text": "Müþterilerden atama sayýsý, çoðul, 1 {1 gösterge tablosu} diðer {# panolar}}",
+        "delete-dashboards": "Gösterge tablolarýný sil",
+        "unassign-dashboards": "Atanmamýþ gösterge panolarý",
+        "unassign-dashboards-action-title": "Müþteriden atama sayým, çoðul, 1 {1 gösterge tablosu} diðer {# pano}}",
+        "delete-dashboard-title": "'{{DashboardTitle}}' gösterge panosunu silmek istediðinizden emin misiniz?",
+        "delete-dashboard-text": "Doðrulamadan sonra, kontrol panelinden ve ilgili tüm veriler kurtarýlamayacak.",
+        "delete-dashboards-title": "{Count, çoðul, 1 {1 dashboard} diðer {# dashboards}} silmek istediðinizden emin misiniz?",
+        "delete-dashboards-action-title": "Sil {count, çoðul, 1 {1 gösterge tablosu} diðer {# dashboard}}",
+        "delete-dashboards-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen panolar silinecek ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "unassign-dashboard-title": "{{DashboardTitle}} gösterge tablosunun atamasýný kaldýrmak istediðinizden emin misiniz? ",
+        "unassign-dashboard-text": "Onaydan sonra gösterge panosu atanmamýþ olacak ve müþteri tarafýndan eriþilemeyecektir.",
+        "unassign-dashboard": "Atanmamýþ gösterge panosu",
+        "unassign-dashboards-title": "Sayým, çoðul, 1 {1 gösterge tablosu} diðer {# panolar}} atama atamak istediðinizden emin misiniz?",
+        "unassign-dashboards-text": "Onaydan sonra tüm seçilen gösterge tablolarý atanmamýþ olacak ve müþteri tarafýndan eriþilemeyecektir.",
+        "public-dashboard-title": "Gösterge panosu artýk herkese açýk",
+        "public-dashboard-text": "Gösterge tablonuz <b> {{dashboardTitle}} </ b> artýk herkese açýk ve bir sonraki herkese açýk <a href='{{publicLink}} 'target='_blank'> link </a> üzerinden eriþilebilir:",
+        "public-dashboard-notice": "<b> Not: </ b> Verilerine eriþmek için ilgili cihazlarý herkese açýk yapmayý unutmayýn.",
+        "make-private-dashboard-title": "Gösterge panosunu {{dashboardTitle}} özel yapmak istediðinizden emin misiniz?",
+        "make-private-dashboard-text": "Onaydan sonra gösterge panosu özel hale getirilecek ve baþkalarý tarafýndan eriþilemeyecektir.",
+        "make-private-dashboard": "Gösterge panosunu özel yap",
+        "socialshare-text": "'{{dashboardTitle}} ThingsBoard tarafýndan desteklenmektedir ",
+        "socialshare-title": "'{{dashboardTitle}} ThingsBoard tarafýndan desteklenmektedir ",
+        "select-dashboard": "Gösterge tablosu seç",
+        "no-dashboards-matching": "{{Entity}} ile eþleþen hiçbir gösterge paneli bulunamadý. ",
+        "dashboard-required": "Gösterge tablosu gerekli.",
+        "select-existing": "Mevcut kontrol panelini seç",
+        "create-new": "Yeni gösterge tablosu oluþtur",
+        "new-dashboard-title": "Yeni kontrol paneli baþlýðý",
+        "open-dashboard": "Açýk kontrol paneli",
+        "set-background": "Arka planý ayarla",
+        "background-color": "Arka plan rengi",
+        "background-image": "Arka plan görüntüsü",
+        "background-size-mode": "Arka plan boyut modu",
+        "no-image": "Görüntü seçilmedi",
+        "drop-image": "Bir resim býrakýn veya yüklenecek bir dosya seçmek için týklayýn.",
+        "settings": "Ayarlar",
+        "columns-count": "Sütun sayýsý",
+        "columns-count-required": "Sütun sayýsý gerekli.",
+        "min-columns-count-message": "Sadece 10 minimum sütun sayýsýna izin verilir.",
+        "max-columns-count-message": "Sadece maksimum 1000 sütun sayýsýna izin verilir.",
+        "widgets-margins": "Widget arasýnda marj",
+        "horizontal-margin": "Yatay kenar boþluðu",
+        "horizontal-margin-required": "Yatay kenar boþluðu deðeri gerekiyor.",
+        "min-horizontal-margin-message": "Minimum yatay kenar boþluðu deðeri olarak yalnýzca 0'a izin verilir.",
+        "max-horizontal-margin-message": "Maksimum yatay kenar boþluðu deðeri olarak yalnýzca 50'ye izin verilir.",
+        "vertical-margin": "Dikey kenar boþluðu",
+        "vertical-margin-required": "Dikey kenar boþluðu deðeri gereklidir.",
+        "min-vertical-margin-message": "En az dikey kenar boþluðu deðeri olarak yalnýzca 0'a izin verilir.",
+        "max-vertical-margin-message": "Maksimum dikey kenar boþluðu deðeri olarak yalnýzca 50'ye izin verilir.",
+        "autofill-height": "Otomatik dolgu düzeni yüksekliði",
+        "mobile-layout": "Mobil düzen ayarlarý",
+        "mobile-row-height": "Mobil satýr yüksekliði, px",
+        "mobile-row-height-required": "Mobil satýr yüksekliði deðeri gerekli.",
+        "min-mobile-row-height-message": "Minimum mobil satýr yüksekliði deðeri olarak yalnýzca 5 piksele izin verilir.",
+        "max-mobile-row-height-message": "Maksimum mobil satýr yüksekliði deðeri olarak yalnýzca 200 piksele izin verilir.",
+        "display-title": "Gösterge tablosu baþlýðý",
+        "toolbar-always-open": "Araç çubuðunu açýk tut",
+        "title-color": "Baþlýk rengi",
+        "display-dashboards-selection": "Gösterge panolarý seçimi",
+        "display-entities-selection": "Öðe varlýklarý seçimi",
+        "display-dashboard-timewindow": "Zaman penceresi göster",
+        "display-dashboard-export": "Görüntülü dýþa aktarma",
+        "import": "Gösterge paneli",
+        "export": "Dýþ gösterge panosu",
+        "export-failed-error": "Gösterge tablosu gönderilemiyor: {{error}}",
+        "create-new-dashboard": "Yeni gösterge tablosu oluþtur",
+        "dashboard-file": "Gösterge tablosu dosyasý",
+        "invalid-dashboard-file-error": "Gösterge tablosu alýnamadý: Geçersiz pano veri yapýsý.",
+        "dashboard-import-missing-aliases-title": "Alýnan pano tarafýndan kullanýlan takma adlarý yapýlandýr",
+        "create-new-widget": "Yeni pencere öðesi oluþtur",
+        "import-widget": "Widget'ý içe aktar",
+        "widget-file": "Widget dosyasý",
+        "invalid-widget-file-error": "Widget içe aktarýlamýyor: Geçersiz pencere öðesi yapýsý.",
+        "widget-import-missing-aliases-title": "Ýçe aktarýlan pencere aracý tarafýndan kullanýlan takma adlarý yapýlandýr",
+        "open-toolbar": "Gösterge tablosu araç çubuðunu aç",
+        "close-toolbar": "Araç çubuðunu kapat",
+        "configuration-error": "Yapýlandýrma hatasý",
+        "alias-resolution-error-title": "Gösterge tablosu takma ad hatasý",
+        "invalid-aliases-config": "Diðer ad filtrelerinin biriyle eþleþen herhangi bir cihaz bulunamadý. <br/> Lütfen bu sorunu çözmek için yöneticinize baþvurun.",
+        "select-devices": "Cihaz seç",
+        "assignedToCustomer": "Müþteriye atandý",
+        "assignedToCustomers": "Müþterilere atandý",
+        "public": "Halka açýk",
+        "public-link": "Genel baðlantý",
+        "copy-public-link": "Genel baðlantýyý kopyala",
+        "public-link-copied-message": "Pano genel baðlantýsý panoya kopyalandý",
+        "manage-states": "Gösterge panosu durumlarýný yönet",
+        "states": "Gösterge durumu",
+        "search-states": "Gösterge panosu durumlarý",
+        "selected-states": "{count, çoðul, 1 {1 gösterge tablosu durumu} diðer {# dashboard durumlarý}} seçildi",
+        "edit-state": "Gösterge panosu durumunu düzenle",
+        "delete-state": "Gösterge panosu durumunu sil",
+        "add-state": "Gösterge paneli durumu",
+        "state": "Gösterge paneli durumu",
+        "state-name": "Ad",
+        "state-name-required": "Gösterge panosu durum adý gerekli.",
+        "state-id": "Durum Kimliði",
+        "state-id-required": "Gösterge durumu kimliði gerekiyor.",
+        "state-id-exists": "Ayný kimliðe sahip gösterge tablosu zaten var.",
+        "is-root-state": "Kök devlet",
+        "delete-state-title": "Gösterge panosu durumunu sil",
+        "delete-state-text": "Gösterge panosu durumunu '{{stateName}}' adýyla silmek istediðinizden emin misiniz?",
+        "show-details": "Detaylarý göster",
+        "hide-details": "Detaylarý gizle",
+        "select-state": "Hedef durumu seç",
+        "state-controller": "Durum kontrolörü"
+    },
+    "datakey": {
+        "settings": "Ayarlar",
+        "advanced": "Ýleri",
+        "label": "Etiket",
+        "color": "Renk",
+        "units": "Deðerin yanýnda gösterilecek özel sembol",
+        "decimals": "Kayan noktadan sonraki basamak sayýsý",
+        "data-generation-func": "Veri oluþturma iþlevi",
+        "use-data-post-processing-func": "Veri iþleme sonrasý iþlevini kullan",
+        "configuration": "Veri anahtarý yapýlandýrmasý",
+        "timeseries": "Zaman serisi",
+        "attributes": "Öznitellikler",
+        "alarm": "Alarm alanlarý",
+        "timeseries-required": "Varlýk zamanlamalarý gerekli.",
+        "timeseries-or-attributes-required": "Varlýk zaman çizelgeleri / öznitelikler gereklidir.",
+        "maximum-timeseries-or-attributes": "Maksimum {count, çoðul, 1 {1 timeseries / attribute.} Diðer {# timeseries / attributes {} izin verilir}}",
+        "alarm-fields-required": "Alarm alanlarý gerekli.",
+        "function-types": "Ýþlev türleri",
+        "function-types-required": "Ýþlev tipleri gereklidir.",
+        "maximum-function-types": "Maksimum {sayým, çoðul, 1 {1 iþlev türüne izin verilir.} Diðer {# iþlev türlerine izin verilir}}"
+    },
+    "datasource": {
+        "type": "Veri kaynaðý türü",
+        "name": "Ad",
+        "add-datasource-prompt": "Lütfen veri kaynaðý ekle"
+    },
+    "details": {
+        "edit-mode": "Düzenleme modu",
+        "toggle-edit-mode": "Düzenleme modunu deðiþtir"
+    },
+    "device": {
+        "device": "Cihaz",
+        "device-required": "Cihaz gerekli.",
+        "devices": "Cihazlar",
+        "management": "Cihaz yönetimi",
+        "view-devices": "Cihazlarý Görüntüle",
+        "device-alias": "Cihaz takma adý",
+        "aliases": "Cihaz takma adlarý",
+        "no-alias-matching": "'{{alias}} bulunamadý. ",
+        "no-aliases-found": "Takma ad bulunamadý",
+        "no-key-matching": "'{{anahtar bulunamadý.",
+        "no-keys-found": "Anahtar bulunamadý.",
+        "create-new-alias": "Yeni bir tane oluþtur!",
+        "create-new-key": "Yeni bir tane oluþtur!",
+        "duplicate-alias-error": "Yinelenen takma ad bulundu {{alias}}.. <br> Cihaz takma adlarý, kontrol panelinde benzersiz olmalýdýr. ",
+        "configure-alias": "Yapýlandýrma {{alias}} takma ad",
+        "no-devices-matching": "{{Entity}} ile eþleþen hiçbir cihaz bulunamadý. ",
+        "alias": "Alias",
+        "alias-required": "Cihaz takma adý gerekiyor.",
+        "remove-alias": "Cihaz takma adýný kaldýr",
+        "add-alias": "Cihaz takma adý ekle",
+        "name-starts-with": "Cihaz adý ile baþlýyor",
+        "device-list": "Aygýt listesi",
+        "use-device-name-filter": "Filtre kullan",
+        "device-list-empty": "Cihaz seçilmedi.",
+        "device-name-filter-required": "Cihaz adý filtresi gerekli.",
+        "device-name-filter-no-device-matched": "{{Device}} ile baþlayan hiçbir cihaz bulunamadý. ",
+        "add": "Cihaz ekle",
+        "assign-to-customer": "Müþteriye atama",
+        "assign-device-to-customer": "Aygýtý / Aygýtlarý Müþteriye Atama",
+        "assign-device-to-customer-text": "Lütfen müþteriye atamak istediðiniz cihazlarý seçin",
+        "make-public": "Cihazý herkese açýk yap",
+        "make-private": "Cihazý özel yap",
+        "no-devices-text": "Hiçbir cihaz bulunamadý",
+        "assign-to-customer-text": "Lütfen cihazý atamak için müþteriyi seçin",
+        "device-details": "Cihaz detaylarý",
+        "add-device-text": "Yeni cihaz ekle",
+        "credentials": "Kimlik bilgileri",
+        "manage-credentials": "Kimlik bilgilerini yönet",
+        "delete": "Cihazý sil",
+        "assign-devices": "Aygýtlarý atama",
+        "assign-devices-text": "Müþteriye {count, çoðul, 1 {1 cihaz} diðer {# devices}} atayýn ",
+        "delete-devices": "Cihazlarý sil",
+        "unassign-from-customer": "Müþteriden atama",
+        "unassign-devices": "Atanmamýþ cihazlarý",
+        "unassign-devices-action-title": "Müþteriden atayýn, çoðul, 1 {1 cihaz} diðer {# devices}} atama ",
+        "assign-new-device": "Yeni cihaz atama",
+        "make-public-device-title": "Cihazý {{deviceName}} herkese açýk yapmak istediðinizden emin misiniz?",
+        "make-public-device-text": "Onaydan sonra cihaz ve tüm verileri kamuya açýk ve baþkalarý tarafýndan eriþilebilir olacak.",
+        "make-private-device-title": "Cihazý {{deviceName}} özel yapmak istediðinizden emin misiniz?",
+        "make-private-device-text": "Onaylandýktan sonra cihaz ve tüm verileri gizli tutulacak ve baþkalarý tarafýndan eriþilemeyecektir.",
+        "view-credentials": "Kimlik bilgilerini görüntüle",
+        "delete-device-title": "Cihazý {{deviceName}} silmek istediðinizden emin misiniz? ",
+        "delete-device-text": "Dikkatli olun, onaylamadan sonra cihaz ve tüm ilgili veriler kurtarýlamaz.",
+        "delete-devices-title": "{Count, çoðul, 1 {1 cihaz} diðer {# devices}} silmek istediðinizden emin misiniz?",
+        "delete-devices-action-title": "Sil {count, çoðul, 1 {1 cihaz} diðer {# devices}}",
+        "delete-devices-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen cihazlar silinecek ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "unassign-device-title": "Cihazýn atamasýný kaldýrmak istediðinizden emin misiniz? {{DeviceName}} ? ",
+        "unassign-device-text": "Onaydan sonra cihaz atanmamýþ olacak ve müþteri tarafýndan eriþilemeyecektir.",
+        "unassign-device": "Atanmamýþ cihaz",
+        "unassign-devices-title": "Sayým, çoðul, 1 {1 cihaz} diðer {# devices}} atama atamak istediðinizden emin misiniz?",
+        "unassign-devices-text": "Onaylandýktan sonra tüm seçilen cihazlar atanmamýþ olacak ve müþteri tarafýndan eriþilemeyecektir.",
+        "device-credentials": "Cihaz Kimlik Bilgileri",
+        "credentials-type": "Kimlik bilgileri türü",
+        "access-token": "Eriþim belirteci",
+        "access-token-required": "Eriþim belirteci gerekli.",
+        "access-token-invalid": "Eriþim belirteci uzunluðu 1 ile 20 karakter arasýnda olmalýdýr.",
+        "rsa-key": "RSA ortak anahtarý",
+        "rsa-key-required": "RSA ortak anahtarý gerekli.",
+        "secret": "Gizli",
+        "secret-required": "Gizli gerekli",
+        "device-type": "Cihaz tipi",
+        "device-type-required": "Cihaz tipi gerekli.",
+        "select-device-type": "Cihaz türünü seç",
+        "enter-device-type": "Cihaz türünü girin",
+        "any-device": "Herhangi bir cihaz",
+        "no-device-types-matching": "{{EntitySubtype}} ile eþleþen cihaz türü bulunamadý. ",
+        "device-type-list-empty": "Hiçbir cihaz türü seçilmedi.",
+        "device-types": "Cihaz türleri",
+        "name": "Ad",
+        "name-required": "Ýsim gerekli.",
+        "description": "Açýklama",
+        "events": "Etkinlikler",
+        "details": "Ayrýntýlar",
+        "copyId": "Cihaz kimliðini kopyala",
+        "copyAccessToken": "Eriþim belirteci kopyala",
+        "idCopiedMessage": "Cihaz Kimliði panoya kopyalandý",
+        "accessTokenCopiedMessage": "Cihaz eriþim belirteci panoya kopyalandý",
+        "assignedToCustomer": "Müþteriye atandý",
+        "unable-delete-device-alias-title": "Cihaz takma adý silinemiyor",
+        "unable-delete-device-alias-text": "Cihaz takma adý {{deviceAlias}} ', þu widget (lar) tarafýndan kullanýldýðý þekliyle silinemiyor: <br/> {{widgetsList}} ",
+        "is-gateway": "Að geçidi",
+        "public": "Halka açýk",
+        "device-public": "Cihaz herkese açýk",
+        "select-device": "Cihaz seç"
+    },
+    "dialog": {
+        "close": "Ýletiþim kutusunu kapat"
+    },
+    "error": {
+        "unable-to-connect": "Sunucuya baðlanýlamýyor! Lütfen Ýnternet baðlantýnýzý kontrol edin.",
+        "unhandled-error-code": "Ýþlenmemiþ hata kodu: {{errorCode}}",
+        "unknown-error": "Bilinmeyen hata"
+    },
+    "entity": {
+        "entity": "Varlýk",
+        "entities": "Varlýklarý",
+        "aliases": "Varlýk takma adlarý",
+        "entity-alias": "Varlýk takma adý",
+        "unable-delete-entity-alias-title": "Varlýk takma adý silinemiyor",
+        "unable-delete-entity-alias-text": "Varlýk takma adý {{entityAlias}} ', þu widget (lar) tarafýndan kullanýldýðý þekliyle silinemez: <br/> {{widgetsList}} ",
+        "duplicate-alias-error": "Yinelenen takma ad bulundu {{alias}} '... Entity takma adlar, gösterge panosunda benzersiz olmalýdýr. ",
+        "missing-entity-filter-error": "Diðer adlar için filtre eksik {{alias}}. ",
+        "configure-alias": "Yapýlandýrma {{alias}} takma ad",
+        "alias": "Alias",
+        "alias-required": "Varlýk takma adý gerekiyor.",
+        "remove-alias": "Varlýk takma adýný kaldýrma",
+        "add-alias": "Varlýk takma adý ekle",
+        "entity-list": "Varlýk listesi",
+        "entity-type": "Varlýk türü",
+        "entity-types": "Varlýk türleri",
+        "entity-type-list": "Varlýk türü listesi",
+        "any-entity": "Herhangi bir varlýk",
+        "enter-entity-type": "Varlýk türü girin",
+        "no-entities-matching": "{{Entity}} ile eþleþen hiçbir varlýk bulunamadý. ",
+        "no-entity-types-matching": "{{EntityType}} ile eþleþen hiçbir varlýk türü bulunamadý. ",
+        "name-starts-with": "Ýsim ile baþlar",
+        "use-entity-name-filter": "Filtre kullan",
+        "entity-list-empty": "Hiçbir varlýk seçilmedi.",
+        "entity-type-list-empty": "Hiçbir varlýk türü seçilmedi.",
+        "entity-name-filter-required": "Varlýk adý filtresi gerekli.",
+        "entity-name-filter-no-entity-matched": "{{Entity}} ile baþlayan hiçbir varlýk bulunamadý. ",
+        "all-subtypes": "Herþey",
+        "select-entities": "Öðeleri seç",
+        "no-aliases-found": "Takma ad bulunamadý",
+        "no-alias-matching": "'{{alias}} bulunamadý. ",
+        "create-new-alias": "Yeni bir tane oluþtur!",
+        "key": "Anahtar",
+        "key-name": "Anahtar adý",
+        "no-keys-found": "Anahtar bulunamadý.",
+        "no-key-matching": "'{{anahtar bulunamadý.",
+        "create-new-key": "Yeni bir tane oluþtur!",
+        "type": "Tür",
+        "type-required": "Varlýk türü gerekli.",
+        "type-device": "Cihaz",
+        "type-devices": "Cihazlar",
+        "list-of-devices": "{sayým, çoðul, 1 {Bir cihaz} diðer {# cihazlarýn listesi}}",
+        "device-name-starts-with": "Ýsimleri '{{prefix}} ile baþlayan cihazlar ",
+        "type-asset": "Varlýk",
+        "type-assets": "Varlýklar",
+        "list-of-assets": "{count, plural, 1 {One asset} diðer {# asset}}",
+        "asset-name-starts-with": "Adlarý {{prefix}} ile baþlayan varlýklar ",
+        "type-entity-view": "Varlýk Görünümü",
+        "type-entity-views": "Varlýk Görünümleri",
+        "list-of-entity-views": "{count, çoðul, 1 {Bir varlýk görünümü} diðer {# varlýk görüntüleme}} listesi",
+        "entity-view-name-starts-with": "Adý {{önek}} ile baþlayan varlýk görünümleri",
+        "type-rule": "Kural",
+        "type-rules": "Kurallar",
+        "list-of-rules": "{count, çoðul, 1 {Bir kural} diðer {# kurallarýn}} listesi",
+        "rule-name-starts-with": "Ýsimleri {{prefix}} ile baþlayan kurallar",
+        "type-plugin": "Eklenti",
+        "type-plugins": "Eklentiler",
+        "list-of-plugins": "{count, çoðul, 1 {Bir eklenti} diðer {# eklenti listesi}}",
+        "plugin-name-starts-with": "Ýsimleri {{prefix}} ile baþlayan eklentiler",
+        "type-tenant": "Kiracý",
+        "type-tenants": "Kiracýlar",
+        "list-of-tenants": "{count, çoðul, 1 {Bir kiracý} diðer {# kiracýlarýn listesi}}",
+        "tenant-name-starts-with": "Ýsimleri {{prefix}} ile baþlayan kiracýlar, ",
+        "type-customer": "Müþteri",
+        "type-customers": "Müþteriler",
+        "list-of-customers": "{count, çoðul, 1 {Bir müþteri} diðer {# müþteri}} listesi",
+        "customer-name-starts-with": "Ýsimleri {{prefix}} ile baþlayan müþteriler,",
+        "type-user": "Kullanýcý",
+        "type-users": "Kullanýcýlar",
+        "list-of-users": "{count, çoðul, 1 {Bir kullanýcý} diðer {# user}} listesi",
+        "user-name-starts-with": "Ýsimleri {{prefix}} ile baþlayan kullanýcýlar",
+        "type-dashboard": "Pano",
+        "type-dashboards": "Gösterge tablolarý",
+        "list-of-dashboards": "{count, çoðul, 1 {Bir pano} Diðer {# panolarýn}}} listesi",
+        "dashboard-name-starts-with": "Ýsimleri {{prefix}} ile baþlayan panolar",
+        "type-alarm": "Alarm",
+        "type-alarms": "Alarmlar",
+        "list-of-alarms": "{count, çoðul, 1 {Bir alarm} diðer {{# alarm}} listesi",
+        "alarm-name-starts-with": "Ýsimleri {{prefix}} ile baþlayan alarmlar",
+        "type-rulechain": "Kural zinciri",
+        "type-rulechains": "Kural zincirleri",
+        "list-of-rulechains": "{count, çoðul, 1 {Bir kural zinciri} diðer {# kural zincirinin listesi}}",
+        "rulechain-name-starts-with": "Ýsimleri {{prefix}} ile baþlayan kural zincirleri",
+        "type-rulenode": "Kural düðümü",
+        "type-rulenodes": "Kural düðümleri",
+        "list-of-rulenodes": "{count, çoðul, 1 {Bir kural node} diðer {# kural düðümünün listesi}}",
+        "rulenode-name-starts-with": "Ýsimleri '{{prefix}} ile baþlayan kural düðümleri",
+        "type-current-customer": "Mevcut Müþteri",
+        "search": "Varlýklar ara",
+        "selected-entities": "{count, çoðul, 1 {1 varlýk} diðer {# entities}} seçildi",
+        "entity-name": "Varlýk adý",
+        "details": "Varlýk ayrýntýlarý",
+        "no-entities-prompt": "Hiçbir varlýk bulunamadý",
+        "no-data": "Gösterilecek bilgi yok"
+    },
+    "entity-view": {
+        "entity-view": "Varlýk Görünümü",
+        "entity-views": "Varlýk Görünümleri",
+        "management": "Varlýk Görünümü yönetimi",
+        "view-entity-views": "Varlýk Görünümlerini Görüntüle",
+        "entity-view-alias": "Varlýk Görünümü takma adý",
+        "aliases": "Varlýk Görünümü takma adlarý",
+        "no-alias-matching": "'{{alias}} bulunamadý. ",
+        "no-aliases-found": "Takma ad bulunamadý",
+        "no-key-matching": "'{{anahtar bulunamadý.",
+        "no-keys-found": "Anahtar bulunamadý.",
+        "create-new-alias": "Yeni bir tane oluþtur!",
+        "create-new-key": "Yeni bir tane oluþtur!",
+        "duplicate-alias-error": "Yinelenen takma ad bulundu {{alias}} '.. Entity View diðer adlar, gösterge panosunda benzersiz olmalýdýr. ",
+        "configure-alias": "Yapýlandýrma {{alias}} takma ad",
+        "no-entity-views-matching": "{{Entity}} ile eþleþen hiçbir varlýk yorumu bulunamadý. ",
+        "alias": "Alias",
+        "alias-required": "Varlýk Görünümü takma adý gerekiyor.",
+        "remove-alias": "Varlýk görünümü takma adýný kaldýr",
+        "add-alias": "Varlýk görünümü takma adý ekle",
+        "name-starts-with": "Varlýk Görünümü adý ile baþlýyor",
+        "entity-view-list": "Varlýk Görünümü listesi",
+        "use-entity-view-name-filter": "Filtre kullan",
+        "entity-view-list-empty": "Hiçbir varlýk görüþü seçilmedi.",
+        "entity-view-name-filter-required": "Varlýk görünüm adý filtresi gerekli.",
+        "entity-view-name-filter-no-entity-view-matched": "{{EntityView}} ile baþlayan hiçbir varlýk sayýsý bulunamadý.",
+        "add": "Varlýk Görünümü Ekle",
+        "assign-to-customer": "Müþteriye atama",
+        "assign-entity-view-to-customer": "Varlýk Görünümlerini Müþteriye Atama",
+        "assign-entity-view-to-customer-text": "Lütfen müþteriye atamak için varlýk görünümlerini seçin",
+        "no-entity-views-text": "Varlýk görüþü bulunamadý",
+        "assign-to-customer-text": "Lütfen varlýk görünümlerini atamak için müþteriyi seçin",
+        "entity-view-details": "Varlýk görünümü ayrýntýlarý",
+        "add-entity-view-text": "Yeni varlýk görünümü ekle",
+        "delete": "Varlýk görünümünü sil",
+        "assign-entity-views": "Varlýk görünümleri atama",
+        "assign-entity-views-text": "Müþteriye {count, çoðul, 1 {1 entityView} diðer {# entityViews}} atayýn ",
+        "delete-entity-views": "Varlýk görünümlerini sil",
+        "unassign-from-customer": "Müþteriden atama",
+        "unassign-entity-views": "Varlýk görünümlerini atama",
+        "unassign-entity-views-action-title": "Müþteriden atama sayým, çoðul, 1 {1 entityView} diðer {# entityViews}}",
+        "assign-new-entity-view": "Yeni varlýk görünümü atama",
+        "delete-entity-view-title": "Varlýk görünümünü silmek istediðinizden emin misiniz?, {{EntityViewName}} '? ",
+        "delete-entity-view-text": "Dikkatli olun, onaylandýktan sonra varlýk görünümü ve ilgili tüm veriler kurtarýlamayacak.",
+        "delete-entity-views-title": "{Count, çoðul, 1 {1 entityView} diðer {# entityViews}} varlýk görünümüne sahip olmak istediðinizden emin misiniz?",
+        "delete-entity-views-action-title": "Sil {count, çoðul, 1 {1 entityView} diðer {# entityViews}}",
+        "delete-entity-views-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen görünümler kaldýrýlacak ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "unassign-entity-view-title": "Varlýk görünümünün atamasýný kaldýrmak istediðinizden emin misiniz? {{EntityViewName}} '? ",
+        "unassign-entity-view-text": "Onaydan sonra varlýk görünümü atanmamýþ olacak ve müþteri tarafýndan eriþilemeyecektir.",
+        "unassign-entity-view": "Varlýk görünümünün atamasýný kaldýr",
+        "unassign-entity-views-title": "Sayým, çoðul, 1 {1 entityView} diðer {# entityViews}} hesabýnýn atamasýný kaldýrmak istediðinizden emin misiniz?",
+        "unassign-entity-views-text": "Onaylandýktan sonra, seçilen tüm öðe görünümleri atamadan kaldýrýlacak ve müþteri tarafýndan eriþilemeyecektir.",
+        "entity-view-type": "Varlýk Görünümü türü",
+        "entity-view-type-required": "Varlýk Görünümü türü gerekli.",
+        "select-entity-view-type": "Varlýk görüntüleme türünü seç",
+        "enter-entity-view-type": "Varlýk görüntüleme türünü girin",
+        "any-entity-view": "Herhangi bir varlýk görünümü",
+        "no-entity-view-types-matching": "{{EntitySubtype}} ile eþleþen hiçbir varlýk görüntüleme türü bulunamadý. ",
+        "entity-view-type-list-empty": "Hiçbir varlýk görünümü türü seçilmemiþ.",
+        "entity-view-types": "Varlýk Görünümü türleri",
+        "name": "Ad",
+        "name-required": "Ýsim gerekli.",
+        "description": "Açýklama",
+        "events": "Etkinlikler",
+        "details": "Ayrýntýlar",
+        "copyId": "Varlýk görüntüleme kimliðini kopyala",
+        "assignedToCustomer": "Müþteriye atandý",
+        "unable-entity-view-device-alias-title": "Varlýk görünümü takma adý silinemiyor",
+        "unable-entity-view-device-alias-text": "Cihaz takma adý {{entityViewAlias}} ', aþaðýdaki widget (lar) tarafýndan kullanýldýðý þekliyle silinemez: <br/> {{widgetsList}} ",
+        "select-entity-view": "Varlýk görünümünü seç",
+        "make-public": "Varlýðý herkese görünür yap",
+        "start-ts": "Ts",
+        "end-ts": "End ts"
+    },
+    "event": {
+        "event-type": "Etkinlik tipi",
+        "type-error": "Hata",
+        "type-lc-event": "Yaþam döngüsü etkinliði",
+        "type-stats": "Ýstatistik",
+        "type-debug-rule-node": "Hata ayýklama",
+        "type-debug-rule-chain": "Hata ayýklama",
+        "no-events-prompt": "Etkinlik bulunamadý",
+        "error": "Hata",
+        "alarm": "Alarm",
+        "event-time": "Etkinlik zamaný",
+        "server": "Sunucu",
+        "body": "Vücut",
+        "method": "Yöntem",
+        "type": "Tür",
+        "entity": "Varlýk",
+        "message-id": "Mesaj Kimliði",
+        "message-type": "Mesaj tipi",
+        "data-type": "Veri tipi",
+        "relation-type": "Ýliþki Türü",
+        "metadata": "Meta veri",
+        "data": "Veri",
+        "event": "Etkinlik",
+        "status": "Durum",
+        "success": "Baþarý",
+        "failed": "Baþarýsýz oldu",
+        "messages-processed": "Mesajlar iþlendi",
+        "errors-occurred": "Hatalar oluþtu"
+    },
+    "extension": {
+        "extensions": "Uzantýlar",
+        "selected-extensions": "{count, çoðul, 1 {1 uzantý} diðer {# extensions}} seçildi",
+        "type": "Tür",
+        "key": "Anahtar",
+        "value": "Deðer",
+        "id": "ÝD",
+        "extension-id": "Uzantý kimliði",
+        "extension-type": "Uzatma tipi",
+        "transformer-json": "JSON *",
+        "unique-id-required": "Mevcut uzantý kimliði zaten mevcut.",
+        "delete": "Uzantýyý sil",
+        "add": "Uzantý eklemek",
+        "edit": "Uzantýyý düzenle",
+        "delete-extension-title": "{{ExtensionId}} uzantýsýný silmek istediðinizden emin misiniz? ",
+        "delete-extension-text": "Dikkatli olun, onaylamadan sonra uzantý ve ilgili tüm veriler kurtarýlamaz.",
+        "delete-extensions-title": "{Count, çoðul, 1 {1 uzantý} diðer {# extensions}} silmek istediðinizden emin misiniz?",
+        "delete-extensions-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen uzantýlar kaldýrýlacak.",
+        "converters": "Dönüþtürücü",
+        "converter-id": "Dönüþtürücü kimliði",
+        "configuration": "Yapýlandýrma",
+        "converter-configurations": "Dönüþtürücü yapýlandýrmalarý",
+        "token": "Güvenlik belirteci",
+        "add-converter": "Dönüþtürücü ekle",
+        "add-config": "Dönüþtürücü yapýlandýrmasý ekle",
+        "device-name-expression": "Cihaz adý ifadesi",
+        "device-type-expression": "Cihaz tipi ifadesi",
+        "custom": "Özel",
+        "to-double": "Çifte",
+        "transformer": "Transformer",
+        "json-required": "Trafo jsonu gerekli.",
+        "json-parse": "Trafo json ayrýþtýrýlamýyor.",
+        "attributes": "Öznitellikler",
+        "add-attribute": "Özellik ekle",
+        "add-map": "Eþleme elemaný ekle",
+        "timeseries": "Zaman serisi",
+        "add-timeseries": "Zaman çizelgeleri ekle",
+        "field-required": "Alan gereklidir",
+        "brokers": "Komisyoncular",
+        "add-broker": "Broker ekle",
+        "host": "Host",
+        "port": "Liman",
+        "port-range": "Liman 1'den 65535'e kadar olmalýdýr.",
+        "ssl": "SSL",
+        "credentials": "Kimlik bilgileri",
+        "username": "Kullanýcý adý",
+        "password": "Parola",
+        "retry-interval": "Milisaniye cinsinden tekrar deneme aralýðý",
+        "anonymous": "Anonim",
+        "basic": "Temel",
+        "pem": "PEM",
+        "ca-cert": "CA sertifika dosyasý *",
+        "private-key": "Özel anahtar dosya *",
+        "cert": "Sertifika dosyasý *",
+        "no-file": "Dosya seçilmedi.",
+        "drop-file": "Bir dosya býrakýn veya yüklenecek bir dosya seçmek için týklayýn.",
+        "mapping": "Mapping",
+        "topic-filter": "Konu filtresi",
+        "converter-type": "Dönüþtürücü tipi",
+        "converter-json": "Json",
+        "json-name-expression": "Cihaz adý json ifadesi",
+        "topic-name-expression": "Cihaz adý konu ifadesi",
+        "json-type-expression": "Cihaz tipi json ifadesi",
+        "topic-type-expression": "Cihaz tipi konu ifadesi",
+        "attribute-key-expression": "Öznitelik anahtar ifadesi",
+        "attr-json-key-expression": "Öznitelik anahtar json ifadesi",
+        "attr-topic-key-expression": "Öznitelik anahtar konu ifadesi",
+        "request-id-expression": "Kimlik ifadesi iste",
+        "request-id-json-expression": "Kimlik json ifadesi iste",
+        "request-id-topic-expression": "Kimlik konu ifadesini isteyin",
+        "response-topic-expression": "Yanýt konusu ifadesi",
+        "value-expression": "Deðer ifadesi",
+        "topic": "Konu",
+        "timeout": "Zaman aþýmý milisaniye cinsinden",
+        "converter-json-required": "Dönüþtürücü json gerekli.",
+        "converter-json-parse": "Dönüþtürücü json ayrýþtýrýlamýyor.",
+        "filter-expression": "Filtre ifadesi",
+        "connect-requests": "Ýstekleri baðla",
+        "add-connect-request": "Baðlantý talebi ekle",
+        "disconnect-requests": "Ýstekleri kes",
+        "add-disconnect-request": "Baðlantýyý kes isteði ekle",
+        "attribute-requests": "Özellik istekleri",
+        "add-attribute-request": "Özellik isteði ekle",
+        "attribute-updates": "Öznitelik güncellemeleri",
+        "add-attribute-update": "Özellik güncellemesi ekle",
+        "server-side-rpc": "Sunucu tarafý RPC",
+        "add-server-side-rpc-request": "Sunucu tarafý RPC isteði ekle",
+        "device-name-filter": "Cihaz adý filtresi",
+        "attribute-filter": "Özellik filtresi",
+        "method-filter": "Yöntem filtresi",
+        "request-topic-expression": "Konu ifadesi iste",
+        "response-timeout": "Milisaniye cinsinden yanýt zaman aþýmý",
+        "topic-expression": "Konu ifadesi",
+        "client-scope": "Müþteri kapsamý",
+        "add-device": "Cihaz ekle",
+        "opc-server": "Sunucular",
+        "opc-add-server": "Sunucu ekle",
+        "opc-add-server-prompt": "Lütfen sunucu ekle",
+        "opc-application-name": "Uygulama Adý",
+        "opc-application-uri": "Uygulama uri",
+        "opc-scan-period-in-seconds": "Saniyeler içinde tarama süresi",
+        "opc-security": "Güvenlik",
+        "opc-identity": "Kimlik",
+        "opc-keystore": "Keystore",
+        "opc-type": "Tür",
+        "opc-keystore-type": "Tür",
+        "opc-keystore-location": "Yer *",
+        "opc-keystore-password": "Parola",
+        "opc-keystore-alias": "Alias",
+        "opc-keystore-key-password": "Anahtar þifre",
+        "opc-device-node-pattern": "Cihaz düðümü modeli",
+        "opc-device-name-pattern": "Cihaz adý deseni",
+        "modbus-server": "Sunucular / köle",
+        "modbus-add-server": "Sunucu ekle / köle",
+        "modbus-add-server-prompt": "Lütfen sunucu / slave ekle",
+        "modbus-transport": "Taþýma",
+        "modbus-port-name": "Seri port adý",
+        "modbus-encoding": "Kodlama",
+        "modbus-parity": "Parite",
+        "modbus-baudrate": "Baud hýzý",
+        "modbus-databits": "Veri bitleri",
+        "modbus-stopbits": "Bitleri durdur",
+        "modbus-databits-range": "Veri bitleri 7 ila 8 arasýnda olmalýdýr",
+        "modbus-stopbits-range": "Durma bitleri 1'den 2'ye kadar olmalýdýr.",
+        "modbus-unit-id": "Birim Kimliði",
+        "modbus-unit-id-range": "Birim numarasý 1 ile 247 arasýnda olmalýdýr.",
+        "modbus-device-name": "Cihaz adý",
+        "modbus-poll-period": "Anket dönemi (ms)",
+        "modbus-attributes-poll-period": "Nitelikler yoklama süresi (ms)",
+        "modbus-timeseries-poll-period": "Timeseries anket süresi (ms)",
+        "modbus-poll-period-range": "Anket dönemi pozitif deðer olmalý",
+        "modbus-tag": "Etiket",
+        "modbus-function": "Ýþlev",
+        "modbus-register-address": "Kayýt adresi",
+        "modbus-register-address-range": "Kayýt adresi 0 ile 65535 arasýnda olmalýdýr.",
+        "modbus-register-bit-index": "Bit endeksi",
+        "modbus-register-bit-index-range": "Bit endeksi 0 ile 15 arasýnda olmalýdýr",
+        "modbus-register-count": "Kayýt sayýsý",
+        "modbus-register-count-range": "Kayýt sayýsý pozitif bir deðer olmalýdýr.",
+        "modbus-byte-order": "Bayt sýrasý",
+        "sync": {
+            "status": "Durum",
+            "sync": "Senkronizasyon",
+            "not-sync": "Eþitleme",
+            "last-sync-time": "Son senkronizasyon zamaný",
+            "not-available": "Müsait deðil"
+        },
+        "export-extensions-configuration": "Ýhracat uzantýlarý yapýlandýrmasý",
+        "import-extensions-configuration": "Uzantýlarýný içe aktarma yapýlandýrmasý",
+        "import-extensions": "Uzantýlarý içe aktar",
+        "import-extension": "Uzantý içe aktar",
+        "export-extension": "Ýhracat uzantýsý",
+        "file": "Uzantýlar dosyasý",
+        "invalid-file-error": "Geçersiz uzantý dosyasý"
+    },
+    "fullscreen": {
+        "expand": "Tam ekrana geniþlet",
+        "exit": "Tam ekrandan çýk",
+        "toggle": "Tam ekran modunu deðiþtir",
+        "fullscreen": "Tam ekran"
+    },
+    "function": {
+        "function": "Ýþlev"
+    },
+    "grid": {
+        "delete-item-title": "Bu maddeyi silmek istediðinden emin misin?",
+        "delete-item-text": "Dikkatli olun, onaylandýktan sonra bu öðe ve ilgili tüm veriler kurtarýlamaz.",
+        "delete-items-title": "{Count, çoðul, 1 {1 item} diðer {# items}} silmek istediðinizden emin misiniz?",
+        "delete-items-action-title": "Sil {count, çoðul, 1 {1 öðe} diðer {# items}}",
+        "delete-items-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen öðeler silinecek ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "add-item-text": "Yeni öðe ekle",
+        "no-items-text": "Hiç bir öðe bulunamadý",
+        "item-details": "Ürün detaylarý",
+        "delete-item": "Öðeyi silmek",
+        "delete-items": "Ürünleri sil",
+        "scroll-to-top": "Baþa kaydýr"
+    },
+    "help": {
+        "goto-help-page": "Yardým sayfasýna git"
+    },
+    "home": {
+        "home": "Ev",
+        "profile": "Profil",
+        "logout": "Çýkýþ Yap",
+        "menu": "Menü",
+        "avatar": "Avatar",
+        "open-user-menu": "Kullanýcý menüsünü aç"
+    },
+    "import": {
+        "no-file": "Dosya seçilmedi",
+        "drop-file": "Bir JSON dosyasýný indirin veya yüklemek için bir dosya seçmek için týklayýn."
+    },
+    "item": {
+        "selected": "Seçilmiþ"
+    },
+    "js-func": {
+        "no-return-error": "Ýþlev deðer döndürmeli!",
+        "return-type-mismatch": "Ýþlev '{{type}}' tipinin deðerini döndürmelidir!",
+        "tidy": "Düzenli"
+    },
+    "key-val": {
+        "key": "Anahtar",
+        "value": "Deðer",
+        "remove-entry": "Giriþi kaldýr",
+        "add-entry": "Giriþ ekle",
+        "no-data": "Giriþ yok"
+    },
+    "layout": {
+        "layout": "Düzen",
+        "manage": "Düzenleri yönet",
+        "settings": "Yerleþim ayarlarý",
+        "color": "Renk",
+        "main": "Ana",
+        "right": "Sað",
+        "select": "Hedef yerleþimini seç"
+    },
+    "legend": {
+        "position": "Efsane pozisyonu",
+        "show-max": "Maksimum deðeri göster",
+        "show-min": "Min deðerini göster",
+        "show-avg": "Ortalama deðeri göster",
+        "show-total": "Toplam deðeri göster",
+        "settings": "Açýklama ayarlarý",
+        "min": "min",
+        "max": "max",
+        "avg": "avg",
+        "total": "Genel Toplam"
+    },
+    "login": {
+        "login": "Oturum aç",
+        "request-password-reset": "Þifre sýfýrlama isteði",
+        "reset-password": "Þifreyi yenile",
+        "create-password": "Þifre oluþtur",
+        "passwords-mismatch-error": "Girilen þifreler ayný olmalýdýr!",
+        "password-again": "Þifre Tekrar",
+        "sign-in": "Lütfen giriþ yapýn",
+        "username": "Kullanýcý adý (email)",
+        "remember-me": "Beni hatýrla",
+        "forgot-password": "Parolanýzý mý unuttunuz?",
+        "password-reset": "Parola sýfýrlama",
+        "new-password": "Yeni Þifre",
+        "new-password-again": "Yeni Þifre Tekrar",
+        "password-link-sent-message": "Þifre sýfýrlama baðlantýsý baþarýyla gönderildi!",
+        "email": "E-posta"
+    },
+    "position": {
+        "top": "Üst",
+        "bottom": "Alt",
+        "left": "Ayrýldý",
+        "right": "Sað"
+    },
+    "profile": {
+        "profile": "Profil",
+        "change-password": "Þifre deðiþtir",
+        "current-password": "Þimdiki Þifre"
+    },
+    "relation": {
+        "relations": "Ýliþkiler",
+        "direction": "Yön",
+        "search-direction": {
+            "FROM": "Kimden",
+            "TO": "Alýcý"
+        },
+        "direction-type": {
+            "FROM": "den",
+            "TO": "to"
+        },
+        "from-relations": "Giden iliþkiler",
+        "to-relations": "Gelen iliþkiler",
+        "selected-relations": "{count, çoðul, 1 {1 iliþki} diðer {# relations}} seçildi",
+        "type": "Tür",
+        "to-entity-type": "Varlýk türüne",
+        "to-entity-name": "Varlýk adýna",
+        "from-entity-type": "Varlýk türünden",
+        "from-entity-name": "Varlýk adýndan",
+        "to-entity": "Varlýk",
+        "from-entity": "Varlýktan",
+        "delete": "Ýliþkisi sil",
+        "relation-type": "Ýliþki türü",
+        "relation-type-required": "Ýliþki türü gerekli.",
+        "any-relation-type": "Her hangi bir tür",
+        "add": "Ýliþki ekle",
+        "edit": "Ýliþkisi düzenle",
+        "delete-to-relation-title": "{{EntityName}} varlýðýna iliþkin iliþkiyi silmek istediðinizden emin misiniz? ",
+        "delete-to-relation-text": "Doðrulamadan sonra, varlýðýn {{entityName}} öðesinin mevcut varlýktan alakasýz olacaðýndan emin olun. ",
+        "delete-to-relations-title": "{Count, çoðul, 1 {1 iliþki} diðer {# relations}} silmek istediðinizden emin misiniz?",
+        "delete-to-relations-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen iliþkiler kaldýrýlacak ve ilgili varlýklar mevcut varlýk ile ilgisiz olacaktýr.",
+        "delete-from-relation-title": "{{EntityName}} varlýðýndan iliþkiyi silmek istediðinizden emin misiniz? ",
+        "delete-from-relation-text": "Doðrulama varlýðýnýn, {{entityName}} kuruluþundan alakasýz olacaðýndan emin olun.",
+        "delete-from-relations-title": "{Count, çoðul, 1 {1 iliþki} diðer {# relations}} silmek istediðinizden emin misiniz?",
+        "delete-from-relations-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen iliþkiler kaldýrýlacak ve mevcut varlýk ilgili varlýklardan ilgisiz olacaktýr.",
+        "remove-relation-filter": "Ýliþki filtresini kaldýr",
+        "add-relation-filter": "Ýliþki filtresi ekle",
+        "any-relation": "Herhangi bir iliþki",
+        "relation-filters": "Ýliþki filtreleri",
+        "additional-info": "Ek bilgi (JSON)",
+        "invalid-additional-info": "Ek bilgi json ayrýþtýrýlamýyor."
+    },
+    "rulechain": {
+        "rulechain": "Kural zinciri",
+        "rulechains": "Kural zincirleri",
+        "root": "Kök",
+        "delete": "Kural zincirini sil",
+        "name": "Ad",
+        "name-required": "Ýsim gerekli.",
+        "description": "Açýklama",
+        "add": "Kural Zinciri Ekleme",
+        "set-root": "Kural zincirinin kökü yap",
+        "set-root-rulechain-title": "Kural zincirini {{ruleChainName}} root? Yapmak istediðinizden emin misiniz?",
+        "set-root-rulechain-text": "Onaydan sonra kural zinciri kökleþecek ve gelen tüm iletilerle ilgilenecek.",
+        "delete-rulechain-title": "Kural zincirini {{ruleChainName}} silmek istediðinizden emin misiniz?",
+        "delete-rulechain-text": "Dikkatli olun, onaylamadan sonra kural zinciri ve ilgili tüm veriler kurtarýlamaz.",
+        "delete-rulechains-title": "{Count, çoðul, 1 {1 kural zinciri} diðer {# kural zincirleri}} silmek istediðinizden emin misiniz?",
+        "delete-rulechains-action-title": "Sil {count, çoðul, 1 {1 kural zinciri} diðer {# kural zincirleri}}",
+        "delete-rulechains-text": "Dikkatli olun, onaylandýktan sonra seçilen tüm kural zincirleri silinecek ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "add-rulechain-text": "Yeni kural zinciri ekle",
+        "no-rulechains-text": "Kural zinciri bulunamadý",
+        "rulechain-details": "Kural zinciri detaylarý",
+        "details": "Ayrýntýlar",
+        "events": "Etkinlikler",
+        "system": "Sistem",
+        "import": "Kural zincirini içe aktar",
+        "export": "Kural zinciri dýþa aktar",
+        "export-failed-error": "Kural zinciri dýþa aktarýlamadý: {{error}}",
+        "create-new-rulechain": "Yeni kural zinciri oluþtur",
+        "rulechain-file": "Kural zinciri dosyasý",
+        "invalid-rulechain-file-error": "Kural zinciri içe aktarýlamýyor: Geçersiz kural zinciri veri yapýsý.",
+        "copyId": "Kural zinciri kimliðini kopyala",
+        "idCopiedMessage": "Kural zinciri kimliði panoya kopyalandý",
+        "select-rulechain": "Kural zincirini seç",
+        "no-rulechains-matching": "{{Entity}} ile eþleþen kural zinciri bulunamadý. ",
+        "rulechain-required": "Kural zinciri gerekli",
+        "management": "Kural yönetimi",
+        "debug-mode": "Hata ayýklama modu"
+    },
+    "rulenode": {
+        "details": "Ayrýntýlar",
+        "events": "Etkinlikler",
+        "search": "Arama düðümleri",
+        "open-node-library": "Düðüm kütüphanesini aç",
+        "add": "Kural düðümü ekle",
+        "name": "Ad",
+        "name-required": "Ýsim gerekli.",
+        "type": "Tür",
+        "description": "Açýklama",
+        "delete": "Kural düðümünü sil",
+        "select-all-objects": "Tüm düðümleri ve baðlantýlarý seç",
+        "deselect-all-objects": "Tüm düðümlerin ve baðlantýlarýn seçimini kaldýrýn",
+        "delete-selected-objects": "Seçilen düðümleri ve baðlantýlarý sil",
+        "delete-selected": "Silme seçildi",
+        "select-all": "Hepsini seç",
+        "copy-selected": "Seçilenleri kopyala",
+        "deselect-all": "Hiçbirini seçme",
+        "rulenode-details": "Kural düðümü ayrýntýlarý",
+        "debug-mode": "Hata ayýklama modu",
+        "configuration": "Yapýlandýrma",
+        "link": "Baðlantý",
+        "link-details": "Kural düðüm baðlantý detaylarý",
+        "add-link": "Link ekle",
+        "link-label": "Baðlantý etiketi",
+        "link-label-required": "Baðlantý etiketi gerekli.",
+        "custom-link-label": "Özel baðlantý etiketi",
+        "custom-link-label-required": "Özel baðlantý etiketi gerekli.",
+        "link-labels": "Link etiketleri",
+        "link-labels-required": "Link etiketleri gerekli.",
+        "no-link-labels-found": "Baðlantý etiketi bulunamadý",
+        "no-link-label-matching": "{{label}} bulunamadý. ",
+        "create-new-link-label": "Yeni bir tane oluþtur!",
+        "type-filter": "Filtre",
+        "type-filter-details": "Gelen iletileri yapýlandýrýlmýþ koþullara göre filtrele",
+        "type-enrichment": "Zenginleþtirme",
+        "type-enrichment-details": "Mesaj Meta Verilerine ek bilgi",
+        "type-transformation": "Dönüþüm",
+        "type-transformation-details": "Mesaj yükünü ve Meta Verileri Deðiþtir",
+        "type-action": "Aksiyon",
+        "type-action-details": "Özel eylem gerçekleþtir",
+        "type-external": "Dýþ",
+        "type-external-details": "Dýþ sistemle etkileþir",
+        "type-rule-chain": "Kural Zinciri",
+        "type-rule-chain-details": "Belirtilen Kural Zincirine gelen mesajlarý ilet",
+        "type-input": "Giriþ",
+        "type-input-details": "Kural Zinciri'nin mantýksal girdisi, bir sonraki ilgili Kural Düðümüne gelen iletileri iletme",
+        "type-unknown": "Bilinmeyen",
+        "type-unknown-details": "Çözümlenmemiþ Kural Düðümü",
+        "directive-is-not-loaded": "Tanýmlanmýþ yapýlandýrma yönergesi {{directiveName}} 'mevcut deðil. ",
+        "ui-resources-load-error": "Yapýlandýrma kullanýcý arayüzü kaynaklarý yüklenemedi.",
+        "invalid-target-rulechain": "Hedef kural zinciri çözülemiyor!",
+        "test-script-function": "Test komut dosyasý iþlevi",
+        "message": "Mesaj",
+        "message-type": "Mesaj tipi",
+        "select-message-type": "Mesaj tipini seç",
+        "message-type-required": "Mesaj türü gerekli",
+        "metadata": "Meta veri",
+        "metadata-required": "Meta veri giriþleri boþ býrakýlamaz.",
+        "output": "Çýktý",
+        "test": "Ölçek",
+        "help": "Yardým et"
+    },
+    "tenant": {
+        "tenant": "Kiracý",
+        "tenants": "Kiracýlar",
+        "management": "Kiracý yönetimi",
+        "add": "Kiracý ekle",
+        "admins": "Yöneticiler",
+        "manage-tenant-admins": "Kiracý yöneticileri yönet",
+        "delete": "Kiracýyý sil",
+        "add-tenant-text": "Yeni kiracý ekle",
+        "no-tenants-text": "Kiracý bulunamadý",
+        "tenant-details": "Kiracý detaylarý",
+        "delete-tenant-title": "Kiracýyý silmek istediðinizden emin misiniz? {{TenantTitle}}? ",
+        "delete-tenant-text": "Dikkatli olun, onayýndan sonra kiracý ve ilgili tüm veriler kurtarýlamaz.",
+        "delete-tenants-title": "{Count, çoðul, 1 {1 kiracý} diðer {# kiracý}} silmek istediðinizden emin misiniz?",
+        "delete-tenants-action-title": "Sil {count, çoðul, 1 {1 kiracý} diðer {# kiracý}}",
+        "delete-tenants-text": "Dikkatli olun, onaylandýktan sonra tüm kiracýlar silinecek ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "title": "Baþlýk",
+        "title-required": "Baþlýk gerekli.",
+        "description": "Açýklama",
+        "details": "Ayrýntýlar",
+        "events": "Etkinlikler",
+        "copyId": "Kiracý Kimliði Kimliði",
+        "idCopiedMessage": "Kiracý Kimliði panoya kopyalandý",
+        "select-tenant": "Kiracý seç",
+        "no-tenants-matching": "{{Entity}} ile eþleþen kiracý bulunamadý. ",
+        "tenant-required": "Kiracý gerekli"
+    },
+    "timeinterval": {
+        "seconds-interval": "{saniye, çoðul, 1 {1 saniye} diðer {# seconds}}",
+        "minutes-interval": "{dakika, çoðul, 1 {1 dakika} diðer {# dakika}}",
+        "hours-interval": "{saat, çoðul, 1 {1 saat} diðer {# hours}}",
+        "days-interval": "{günler, çoðul, 1 {1 gün} diðer {# gün}}",
+        "days": "Gün",
+        "hours": "Saatler",
+        "minutes": "Dakika",
+        "seconds": "Saniye",
+        "advanced": "Ýleri"
+    },
+    "timewindow": {
+        "days": "{günler, çoðul, 1 {gün} diðer {# gün}}",
+        "hours": "{saat, çoðul, 0 {saat} 1 {1 saat} diðer {# hours}}",
+        "minutes": "{dakika, çoðul, 0 {dakika} 1 {1 dakika} diðer {# dakika}}",
+        "seconds": "{saniye, çoðul, 0 {saniye} 1 {1 saniye} diðer {# seconds}}",
+        "realtime": "Gerçek zaman",
+        "history": "Tarihçe",
+        "last-prefix": "son",
+        "period": "{{startTime}} - {{endTime}} arasýnda ",
+        "edit": "Zaman penceresini düzenle",
+        "date-range": "Tarih aralýðý",
+        "last": "Son",
+        "time-period": "Zaman dilimi"
+    },
+    "user": {
+        "user": "Kullanýcý",
+        "users": "Kullanýcýlar",
+        "customer-users": "Müþteri Kullanýcýlarý",
+        "tenant-admins": "Kiracý Admins",
+        "sys-admin": "Sistem yöneticisi",
+        "tenant-admin": "Kiracý yöneticisi",
+        "customer": "Müþteri",
+        "anonymous": "Anonim",
+        "add": "Kullanýcý Ekle",
+        "delete": "Kullanýcýyý sil",
+        "add-user-text": "Yeni kullanýcý Ekle",
+        "no-users-text": "Kullanýcý bulunamadý",
+        "user-details": "Kullanýcý detaylarý",
+        "delete-user-title": "Kullanýcýyý silmek istediðinizden emin misiniz? {{UserEmail}} '? ",
+        "delete-user-text": "Dikkatli olun, onaylandýktan sonra kullanýcý ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "delete-users-title": "{Count, çoðul, 1 {1 kullanýcý} diðer {# users}} silmek istediðinizden emin misiniz?",
+        "delete-users-action-title": "Sil {count, çoðul, 1 {1 kullanýcý} diðer {# users}}",
+        "delete-users-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen kullanýcýlar silinecek ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "activation-email-sent-message": "Etkinleþtirme e-postasý baþarýyla gönderildi!",
+        "resend-activation": "Etkinleþtirmeyi tekrar gönder",
+        "email": "E-posta",
+        "email-required": "Email gereklidir.",
+        "invalid-email-format": "Geçersiz e-posta formatý.",
+        "first-name": "Ýsim",
+        "last-name": "Soyadý",
+        "description": "Açýklama",
+        "default-dashboard": "Varsayýlan gösterge paneli",
+        "always-fullscreen": "Her zaman tam ekran",
+        "select-user": "Kullanýcý seç",
+        "no-users-matching": "{{Entity}} ile eþleþen kullanýcý bulunamadý. ",
+        "user-required": "Kullanýcý gerekli",
+        "activation-method": "Aktivasyon yöntemi",
+        "display-activation-link": "Etkinleþtirme baðlantýsý göster",
+        "send-activation-mail": "Etkinleþtirme postasý gönder",
+        "activation-link": "Kullanýcý aktivasyon linki",
+        "activation-link-text": "Kullanýcýyý aktif hale getirmek için aþaðýdaki <a href='{{activationLink}} target='_blank'> aktivasyon linki </a> kullanýn.",
+        "copy-activation-link": "Etkinleþtirme baðlantýsýný kopyala",
+        "activation-link-copied-message": "Kullanýcý aktivasyon linki panoya kopyalandý",
+        "details": "Ayrýntýlar",
+        "login-as-tenant-admin": "Kiracý Yönetici Giriþi",
+        "login-as-customer-user": "Müþteri olarak giriþ yap"
+    },
+    "value": {
+        "type": "Deðer türü",
+        "string": "Dize",
+        "string-value": "Dize deðeri",
+        "integer": "Integer",
+        "integer-value": "Tamsayý deðeri",
+        "invalid-integer-value": "Geçersiz tam sayý",
+        "double": "Çift",
+        "double-value": "Çift deðer",
+        "boolean": "Boole",
+        "boolean-value": "Boole deðeri",
+        "false": "Yanlýþ",
+        "true": "Doðru",
+        "long": "Uzun"
+    },
+    "widget": {
+        "widget-library": "Widgets Kitaplýðý",
+        "widget-bundle": "Widget Paketi",
+        "select-widgets-bundle": "Widget paketini seç",
+        "management": "Widget yönetimi",
+        "editor": "Widget Düzenleyici",
+        "widget-type-not-found": "Sorun yükleme pencere öðesi yapýlandýrmasý. <br> Muhtemelen iliþkili /n pencere öðesi türü kaldýrýldý.",
+        "widget-type-load-error": "Widget, aþaðýdaki hatalardan dolayý yüklenmedi:",
+        "remove": "Widget'ý kaldýr",
+        "edit": "Widget düzenle",
+        "remove-widget-title": "Widget'ý kaldýrmak istediðinizden emin misiniz? {{WidgetTitle}}? ",
+        "remove-widget-text": "Onaydan sonra widget ve ilgili tüm veriler kurtarýlamaz.",
+        "timeseries": "Zaman serisi",
+        "search-data": "Arama verileri",
+        "no-data-found": "Veri bulunamadý",
+        "latest-values": "Son deðerler",
+        "rpc": "Kontrol aracý",
+        "alarm": "Alarm gereci",
+        "static": "Statik pencere öðesi",
+        "select-widget-type": "Widget tipi seç",
+        "missing-widget-title-error": "Widget baþlýðý belirtilmelidir!",
+        "widget-saved": "Widget kaydedildi",
+        "unable-to-save-widget-error": "Widget kaydedilemiyor! Widget'ýn hatalarý var!",
+        "save": "Widget kaydet",
+        "saveAs": "Widget olarak kaydet",
+        "save-widget-type-as": "Widget türünü kaydet",
+        "save-widget-type-as-text": "Lütfen yeni pencere öðesi baþlýðýný girin ve / veya hedef widget'larý seçin",
+        "toggle-fullscreen": "Tam ekrana geç",
+        "run": "Widget'ý çalýþtýr",
+        "title": "Widget Baþlýðý",
+        "title-required": "Widget baþlýðý gerekiyor.",
+        "type": "Widget türü",
+        "resources": "Kaynaklar",
+        "resource-url": "JavaScript / CSS URL",
+        "remove-resource": "Kaynaðý kaldýr",
+        "add-resource": "Kaynak ekle",
+        "html": "HTML",
+        "tidy": "Düzenli",
+        "css": "CSS",
+        "settings-schema": "Ayarlar þemasý",
+        "datakey-settings-schema": "Veri anahtarý ayarlarý þemasý",
+        "javascript": "JavaScript",
+        "remove-widget-type-title": "'{{WidgetName}}' widget türünü kaldýrmak istediðinizden emin misiniz?",
+        "remove-widget-type-text": "Onaydan sonra widget tipi ve ilgili tüm veriler kurtarýlamayacak.",
+        "remove-widget-type": "Widget türünü kaldýr",
+        "add-widget-type": "Yeni widget türü ekle",
+        "widget-type-load-failed-error": "Widget türü yüklenemedi!",
+        "widget-template-load-failed-error": "Widget þablonu yüklenemedi!",
+        "add": "Widget Ekle",
+        "undo": "Widget deðiþikliklerini geri al",
+        "export": "Widget'ý dýþa aktar"
+    },
+    "widget-action": {
+        "header-button": "Widget baþlýk düðmesi",
+        "open-dashboard-state": "Yeni gösterge panosuna git",
+        "update-dashboard-state": "Mevcut kontrol paneli durumunu güncelle",
+        "open-dashboard": "Diðer kontrol paneline git",
+        "custom": "Özel eylem",
+        "target-dashboard-state": "Hedef gösterge panosu durumu",
+        "target-dashboard-state-required": "Hedef gösterge tablosu gerekli",
+        "set-entity-from-widget": "Öðeyi pencere öðesinden ayarla",
+        "target-dashboard": "Hedef gösterge panosu",
+        "open-right-layout": "Saðdaki gösterge tablosu düzeni (mobil görünüm)"
+    },
+    "widgets-bundle": {
+        "current": "Mevcut paket",
+        "widgets-bundles": "Widget Paketleri",
+        "add": "Widget Paketi Ekle",
+        "delete": "Widget paketini sil",
+        "title": "Baþlýk",
+        "title-required": "Baþlýk gerekli.",
+        "add-widgets-bundle-text": "Yeni widget'lar paketi ekle",
+        "no-widgets-bundles-text": "Widget paketi bulunamadý",
+        "empty": "Widget'ler paketi boþ",
+        "details": "Ayrýntýlar",
+        "widgets-bundle-details": "Widget'lar paket ayrýntýlarýný",
+        "delete-widgets-bundle-title": "Widget paketini {{widgetsBundleTitle}} silmek istediðinizden emin misiniz?",
+        "delete-widgets-bundle-text": "Dikkatli olun, onaylandýktan sonra widget'lar paketi ve tüm ilgili veriler kurtarýlamayacak.",
+        "delete-widgets-bundles-title": "{Count, çoðul, 1 {1 widgets bundle} diðer {# widgets bundles}} silmek istediðinizden emin misiniz?",
+        "delete-widgets-bundles-action-title": "Sil {count, çoðul, 1 {1 widgets bundle} diðer {# widgets bundles}}",
+        "delete-widgets-bundles-text": "Dikkatli olun, onaylandýktan sonra tüm seçilen widget'lar paketler kaldýrýlacak ve ilgili tüm veriler kurtarýlamayacaktýr.",
+        "no-widgets-bundles-matching": "{{WidgetsBundle}} ile eþleþen hiçbir widget grubu bulunamadý. ",
+        "widgets-bundle-required": "Widget paketi gerekli.",
+        "system": "Sistem",
+        "import": "Widget paketlerini içe aktar",
+        "export": "Widget paketini dýþa aktar",
+        "export-failed-error": "Widget grubu dýþa aktarýlamadý: {{error}}",
+        "create-new-widgets-bundle": "Yeni widget'lar paketi oluþtur",
+        "widgets-bundle-file": "Widgets paket dosyasý",
+        "invalid-widgets-bundle-file-error": "Widget grubu içe aktarýlamýyor: Geçersiz widget'lar veri yapýsýný paketliyor."
+    },
+    "widget-config": {
+        "data": "Veri",
+        "settings": "Ayarlar",
+        "advanced": "Ýleri",
+        "title": "Baþlýk",
+        "general-settings": "Genel Ayarlar",
+        "display-title": "Baþlýk",
+        "drop-shadow": "Düþen gölge",
+        "enable-fullscreen": "Tam ekraný etkinleþtir",
+        "background-color": "Arka plan rengi",
+        "text-color": "Metin rengi",
+        "padding": "Dolgu malzemesi",
+        "margin": "Kenar",
+        "widget-style": "Widget stili",
+        "title-style": "Baþlýk stili",
+        "mobile-mode-settings": "Mobil mod ayarlarý",
+        "order": "Sipariþ",
+        "height": "Yükseklik",
+        "units": "Deðerin yanýnda gösterilecek özel sembol",
+        "decimals": "Kayan noktadan sonraki basamak sayýsý",
+        "timewindow": "Timewindow",
+        "use-dashboard-timewindow": "Gösterge panosu zaman tüneli",
+        "display-legend": "Gösterge efsanesi",
+        "datasources": "Veri kaynaklarý",
+        "maximum-datasources": "Maksimum {sayým, çoðul, 1 {1 veri kaynaðý izinli.} Diðer {# veri kaynaklarýna izin verilir}}",
+        "datasource-type": "Tür",
+        "datasource-parameters": "Parametreler",
+        "remove-datasource": "Veri kaynaðýný kaldýr",
+        "add-datasource": "Veri kaynaðý ekle",
+        "target-device": "Hedef cihaz",
+        "alarm-source": "Alarm kaynaðý",
+        "actions": "Ýþlemler",
+        "action": "Aksiyon",
+        "add-action": "Eylem ekle",
+        "search-actions": "Arama iþlemleri",
+        "action-source": "Eylem kaynaðý",
+        "action-source-required": "Eylem kaynaðý gerekli.",
+        "action-name": "Ad",
+        "action-name-required": "Eylem adý gerekli.",
+        "action-name-not-unique": "Ayný ada sahip baþka bir eylem zaten var. <br/> Eylem adý, ayný eylem kaynaðý içinde benzersiz olmalýdýr.",
+        "action-icon": "Simge",
+        "action-type": "Tür",
+        "action-type-required": "Eylem türü gerekli",
+        "edit-action": "Eylemi düzenle",
+        "delete-action": "Eylemi sil",
+        "delete-action-title": "Widget eylemini sil",
+        "delete-action-text": "Widget eylemini {{actionName}} adýyla silmek istediðinizden emin misiniz?"
+    },
+    "widget-type": {
+        "import": "Widget türü içe aktar",
+        "export": "Widget türünü dýþa aktar",
+        "export-failed-error": "Widget türü verilemiyor: {{error}}",
+        "create-new-widget-type": "Yeni pencere öðesi türü oluþtur",
+        "widget-type-file": "Widget tipi dosya",
+        "invalid-widget-type-file-error": "Widget türü içe aktarýlamýyor: Geçersiz pencere öðesi türü yapýsý."
+    },
+    "icon": {
+        "icon": "Simge",
+        "select-icon": "Simge seç",
+        "material-icons": "Malzeme simgeleri",
+        "show-all": "Tüm simgeleri göster"
+    },
+    "custom": {
+        "widget-action": {
+            "action-cell-button": "Eylem hücresi düðmesi",
+            "row-click": "Satýr týklamasý",
+            "marker-click": "Ýþaretçi týklamasýnda ",
+            "tooltip-tag-action": "Araç ipucu etiketi iþlemi"
+        }
+    },
+    "language": {
+        "language": "Dil",
+        "locales": {
+            "fr_FR": "Fransýzca",
+            "zh_CN": "Çince",
+            "en_US": "Ýngilizce",
+            "it_IT": "Ýtalyan",
+            "ko_KR": "Koreli",
+            "ru_RU": "Rusça",
+            "es_ES": "Ýspanyol",
+            "ja_JA": "Japonca",
+            "TR": "Türk"
+        }
+    }
+}
diff --git a/ui/src/app/locale/locale.constant-zh_CN.json b/ui/src/app/locale/locale.constant-zh_CN.json
index 042d230..c952f9c 100644
--- a/ui/src/app/locale/locale.constant-zh_CN.json
+++ b/ui/src/app/locale/locale.constant-zh_CN.json
@@ -1444,7 +1444,8 @@
             "ru_RU": "俄语",
             "es_ES": "西班牙语",
             "it_IT": "意大利",
-            "ja_JA": "日本"
+            "ja_JA": "日本",
+            "TR": "土耳其"
         }
     }
 }