thingsboard-aplcache

Added missing strings

6/3/2018 3:06:51 AM

Details

diff --git a/ui/src/app/locale/locale.constant-es.js b/ui/src/app/locale/locale.constant-es.js
index f95275e..c6d2f96 100644
--- a/ui/src/app/locale/locale.constant-es.js
+++ b/ui/src/app/locale/locale.constant-es.js
@@ -98,6 +98,159 @@ export default function addLocaleSpanish(locales) {
             "enable-tls": "Habilitar TLS",
             "send-test-mail": "Enviar mail de prueba"
         },
+        "alarm": { // TODO
+            "alarm": "Alarm",
+            "alarms": "Alarms",
+            "select-alarm": "Select alarm",
+            "no-alarms-matching": "No alarms matching '{{entity}}' were found.",
+            "alarm-required": "Alarm is required",
+            "alarm-status": "Alarm status",
+            "search-status": {
+                "ANY": "Any",
+                "ACTIVE": "Active",
+                "CLEARED": "Cleared",
+                "ACK": "Acknowledged",
+                "UNACK": "Unacknowledged"
+            },
+            "display-status": {
+                "ACTIVE_UNACK": "Active Unacknowledged",
+                "ACTIVE_ACK": "Active Acknowledged",
+                "CLEARED_UNACK": "Cleared Unacknowledged",
+                "CLEARED_ACK": "Cleared Acknowledged"
+            },
+            "no-alarms-prompt": "No alarms found",
+            "created-time": "Created time",
+            "type": "Type",
+            "severity": "Severity",
+            "originator": "Originator",
+            "originator-type": "Originator type",
+            "details": "Details",
+            "status": "Status",
+            "alarm-details": "Alarm details",
+            "start-time": "Start time",
+            "end-time": "End time",
+            "ack-time": "Acknowledged time",
+            "clear-time": "Cleared time",
+            "severity-critical": "Critical",
+            "severity-major": "Major",
+            "severity-minor": "Minor",
+            "severity-warning": "Warning",
+            "severity-indeterminate": "Indeterminate",
+            "acknowledge": "Acknowledge",
+            "clear": "Clear",
+            "search": "Search alarms",
+            "selected-alarms": "{ count, select, 1 {1 alarm} other {# alarms} } selected",
+            "no-data": "No data to display",
+            "polling-interval": "Alarms polling interval (sec)",
+            "polling-interval-required": "Alarms polling interval is required.",
+            "min-polling-interval-message": "At least 1 sec polling interval is allowed.",
+            "aknowledge-alarms-title": "Acknowledge { count, select, 1 {1 alarm} other {# alarms} }",
+            "aknowledge-alarms-text": "Are you sure you want to acknowledge { count, select, 1 {1 alarm} other {# alarms} }?",
+            "clear-alarms-title": "Clear { count, select, 1 {1 alarm} other {# alarms} }",
+            "clear-alarms-text": "Are you sure you want to clear { count, select, 1 {1 alarm} other {# alarms} }?"
+        },
+        "alias": { // TODO
+            "add": "Add alias",
+            "edit": "Edit alias",
+            "name": "Alias name",
+            "name-required": "Alias name is required",
+            "duplicate-alias": "Alias with same name is already exists.",
+            "filter-type-single-entity": "Single entity",
+            "filter-type-entity-list": "Entity list",
+            "filter-type-entity-name": "Entity name",
+            "filter-type-state-entity": "Entity from dashboard state",
+            "filter-type-state-entity-description": "Entity taken from dashboard state parameters",
+            "filter-type-asset-type": "Asset type",
+            "filter-type-asset-type-description": "Assets of type '{{assetType}}'",
+            "filter-type-asset-type-and-name-description": "Assets of type '{{assetType}}' and with name starting with '{{prefix}}'",
+            "filter-type-device-type": "Device type",
+            "filter-type-device-type-description": "Devices of type '{{deviceType}}'",
+            "filter-type-device-type-and-name-description": "Devices of type '{{deviceType}}' and with name starting with '{{prefix}}'",
+            "filter-type-relations-query": "Relations query",
+            "filter-type-relations-query-description": "{{entities}} that have {{relationType}} relation {{direction}} {{rootEntity}}",
+            "filter-type-asset-search-query": "Asset search query",
+            "filter-type-asset-search-query-description": "Assets with types {{assetTypes}} that have {{relationType}} relation {{direction}} {{rootEntity}}",
+            "filter-type-device-search-query": "Device search query",
+            "filter-type-device-search-query-description": "Devices with types {{deviceTypes}} that have {{relationType}} relation {{direction}} {{rootEntity}}",
+            "entity-filter": "Entity filter",
+            "resolve-multiple": "Resolve as multiple entities",
+            "filter-type": "Filter type",
+            "filter-type-required": "Filter type is required.",
+            "entity-filter-no-entity-matched": "No entities matching specified filter were found.",
+            "no-entity-filter-specified": "No entity filter specified",
+            "root-state-entity": "Use dashboard state entity as root",
+            "root-entity": "Root entity",
+            "state-entity-parameter-name": "State entity parameter name",
+            "default-state-entity": "Default state entity",
+            "default-entity-parameter-name": "By default",
+            "max-relation-level": "Max relation level",
+            "unlimited-level": "Unlimited level",
+            "state-entity": "Dashboard state entity",
+            "all-entities": "All entities",
+            "any-relation": "any"
+        },
+        "asset": { // TODO
+            "asset": "Asset",
+            "assets": "Assets",
+            "management": "Asset management",
+            "view-assets": "View Assets",
+            "add": "Add Asset",
+            "assign-to-customer": "Assign to customer",
+            "assign-asset-to-customer": "Assign Asset(s) To Customer",
+            "assign-asset-to-customer-text": "Please select the assets to assign to the customer",
+            "no-assets-text": "No assets found",
+            "assign-to-customer-text": "Please select the customer to assign the asset(s)",
+            "public": "Public",
+            "assignedToCustomer": "Assigned to customer",
+            "make-public": "Make asset public",
+            "make-private": "Make asset private",
+            "unassign-from-customer": "Unassign from customer",
+            "delete": "Delete asset",
+            "asset-public": "Asset is public",
+            "asset-type": "Asset type",
+            "asset-type-required": "Asset type is required.",
+            "select-asset-type": "Select asset type",
+            "enter-asset-type": "Enter asset type",
+            "any-asset": "Any asset",
+            "no-asset-types-matching": "No asset types matching '{{entitySubtype}}' were found.",
+            "asset-type-list-empty": "No asset types selected.",
+            "asset-types": "Asset types",
+            "name": "Name",
+            "name-required": "Name is required.",
+            "description": "Description",
+            "type": "Type",
+            "type-required": "Type is required.",
+            "details": "Details",
+            "events": "Events",
+            "add-asset-text": "Add new asset",
+            "asset-details": "Asset details",
+            "assign-assets": "Assign assets",
+            "assign-assets-text": "Assign { count, select, 1 {1 asset} other {# assets} } to customer",
+            "delete-assets": "Delete assets",
+            "unassign-assets": "Unassign assets",
+            "unassign-assets-action-title": "Unassign { count, select, 1 {1 asset} other {# assets} } from customer",
+            "assign-new-asset": "Assign new asset",
+            "delete-asset-title": "Are you sure you want to delete the asset '{{assetName}}'?",
+            "delete-asset-text": "Be careful, after the confirmation the asset and all related data will become unrecoverable.",
+            "delete-assets-title": "Are you sure you want to delete { count, select, 1 {1 asset} other {# assets} }?",
+            "delete-assets-action-title": "Delete { count, select, 1 {1 asset} other {# assets} }",
+            "delete-assets-text": "Be careful, after the confirmation all selected assets will be removed and all related data will become unrecoverable.",
+            "make-public-asset-title": "Are you sure you want to make the asset '{{assetName}}' public?",
+            "make-public-asset-text": "After the confirmation the asset and all its data will be made public and accessible by others.",
+            "make-private-asset-title": "Are you sure you want to make the asset '{{assetName}}' private?",
+            "make-private-asset-text": "After the confirmation the asset and all its data will be made private and won't be accessible by others.",
+            "unassign-asset-title": "Are you sure you want to unassign the asset '{{assetName}}'?",
+            "unassign-asset-text": "After the confirmation the asset will be unassigned and won't be accessible by the customer.",
+            "unassign-asset": "Unassign asset",
+            "unassign-assets-title": "Are you sure you want to unassign { count, select, 1 {1 asset} other {# assets} }?",
+            "unassign-assets-text": "After the confirmation all selected assets will be unassigned and won't be accessible by the customer.",
+            "copyId": "Copy asset Id",
+            "idCopiedMessage": "Asset Id has been copied to clipboard",
+            "select-asset": "Select asset",
+            "no-assets-matching": "No assets matching '{{entity}}' were found.",
+            "asset-required": "Asset is required",
+            "name-starts-with": "Asset name starts with"
+        },
         "attribute": {
             "attributes": "Atributos",
             "latest-telemetry": "Última telemetría",
@@ -124,6 +277,38 @@ export default function addLocaleSpanish(locales) {
             "selected-attributes": "{ count, select, 1 {1 atributo} other {# atributos} } seleccionados",
             "selected-telemetry": "{ count, select, 1 {1 unidad de telemetría } other {# unidades de telemetría} } seleccionadas."
         },
+        "audit-log": { // TODO
+            "audit": "Audit",
+            "audit-logs": "Audit Logs",
+            "timestamp": "Timestamp",
+            "entity-type": "Entity Type",
+            "entity-name": "Entity Name",
+            "user": "User",
+            "type": "Type",
+            "status": "Status",
+            "details": "Details",
+            "type-added": "Added",
+            "type-deleted": "Deleted",
+            "type-updated": "Updated",
+            "type-attributes-updated": "Attributes updated",
+            "type-attributes-deleted": "Attributes deleted",
+            "type-rpc-call": "RPC call",
+            "type-credentials-updated": "Credentials updated",
+            "type-assigned-to-customer": "Assigned to Customer",
+            "type-unassigned-from-customer": "Unassigned from Customer",
+            "type-activated": "Activated",
+            "type-suspended": "Suspended",
+            "type-credentials-read": "Credentials read",
+            "type-attributes-read": "Attributes read",
+            "status-success": "Success",
+            "status-failure": "Failure",
+            "audit-log-details": "Audit log details",
+            "no-audit-logs-prompt": "No logs found",
+            "action-data": "Action data",
+            "failure-details": "Failure details",
+            "search": "Search audit logs",
+            "clear-search": "Clear search"
+        },
         "confirm-on-exit": {
             "message": "Tienes cambios sin guardar. ¿Estás seguro que quieres abandonar la página?",
             "html-message": "Tienes cambios sin guardar.<br/>¿Estás seguro que quieres abandonar la página?",
@@ -148,6 +333,11 @@ export default function addLocaleSpanish(locales) {
             "enter-password": "Ingresa la contraseña",
             "enter-search": "Ingresa búsqueda"
         },
+        "content-type": { // TODO
+            "json": "Json",
+            "text": "Text",
+            "binary": "Binary (Base64)"
+        },
         "customer": {
             "customers": "Clientes",
             "management": "Gestión de Clientes",
@@ -408,6 +598,94 @@ export default function addLocaleSpanish(locales) {
             "unhandled-error-code": "Código de error no manejado: {{errorCode}}",
             "unknown-error": "Error desconocido"
         },
+        "entity": { // TODO
+            "entity": "Entity",
+            "entities": "Entities",
+            "aliases": "Entity aliases",
+            "entity-alias": "Entity alias",
+            "unable-delete-entity-alias-title": "Unable to delete entity alias",
+            "unable-delete-entity-alias-text": "Entity alias '{{entityAlias}}' can't be deleted as it used by the following widget(s):<br/>{{widgetsList}}",
+            "duplicate-alias-error": "Duplicate alias found '{{alias}}'.<br>Entity aliases must be unique whithin the dashboard.",
+            "missing-entity-filter-error": "Filter is missing for alias '{{alias}}'.",
+            "configure-alias": "Configure '{{alias}}' alias",
+            "alias": "Alias",
+            "alias-required": "Entity alias is required.",
+            "remove-alias": "Remove entity alias",
+            "add-alias": "Add entity alias",
+            "entity-list": "Entity list",
+            "entity-type": "Entity type",
+            "entity-types": "Entity types",
+            "entity-type-list": "Entity type list",
+            "any-entity": "Any entity",
+            "enter-entity-type": "Enter entity type",
+            "no-entities-matching": "No entities matching '{{entity}}' were found.",
+            "no-entity-types-matching": "No entity types matching '{{entityType}}' were found.",
+            "name-starts-with": "Name starts with",
+            "use-entity-name-filter": "Use filter",
+            "entity-list-empty": "No entities selected.",
+            "entity-type-list-empty": "No entity types selected.",
+            "entity-name-filter-required": "Entity name filter is required.",
+            "entity-name-filter-no-entity-matched": "No entities starting with '{{entity}}' were found.",
+            "all-subtypes": "All",
+            "select-entities": "Select entities",
+            "no-aliases-found": "No aliases found.",
+            "no-alias-matching": "'{{alias}}' not found.",
+            "create-new-alias": "Create a new one!",
+            "key": "Key",
+            "key-name": "Key name",
+            "no-keys-found": "No keys found.",
+            "no-key-matching": "'{{key}}' not found.",
+            "create-new-key": "Create a new one!",
+            "type": "Type",
+            "type-required": "Entity type is required.",
+            "type-device": "Device",
+            "type-devices": "Devices",
+            "list-of-devices": "{ count, select, 1 {One device} other {List of # devices} }",
+            "device-name-starts-with": "Devices whose names start with '{{prefix}}'",
+            "type-asset": "Asset",
+            "type-assets": "Assets",
+            "list-of-assets": "{ count, select, 1 {One asset} other {List of # assets} }",
+            "asset-name-starts-with": "Assets whose names start with '{{prefix}}'",
+            "type-rule": "Rule",
+            "type-rules": "Rules",
+            "list-of-rules": "{ count, select, 1 {One rule} other {List of # rules} }",
+            "rule-name-starts-with": "Rules whose names start with '{{prefix}}'",
+            "type-plugin": "Plugin",
+            "type-plugins": "Plugins",
+            "list-of-plugins": "{ count, select, 1 {One plugin} other {List of # plugins} }",
+            "plugin-name-starts-with": "Plugins whose names start with '{{prefix}}'",
+            "type-tenant": "Tenant",
+            "type-tenants": "Tenants",
+            "list-of-tenants": "{ count, select, 1 {One tenant} other {List of # tenants} }",
+            "tenant-name-starts-with": "Tenants whose names start with '{{prefix}}'",
+            "type-customer": "Customer",
+            "type-customers": "Customers",
+            "list-of-customers": "{ count, select, 1 {One customer} other {List of # customers} }",
+            "customer-name-starts-with": "Customers whose names start with '{{prefix}}'",
+            "type-user": "User",
+            "type-users": "Users",
+            "list-of-users": "{ count, select, 1 {One user} other {List of # users} }",
+            "user-name-starts-with": "Users whose names start with '{{prefix}}'",
+            "type-dashboard": "Dashboard",
+            "type-dashboards": "Dashboards",
+            "list-of-dashboards": "{ count, select, 1 {One dashboard} other {List of # dashboards} }",
+            "dashboard-name-starts-with": "Dashboards whose names start with '{{prefix}}'",
+            "type-alarm": "Alarm",
+            "type-alarms": "Alarms",
+            "list-of-alarms": "{ count, select, 1 {One alarms} other {List of # alarms} }",
+            "alarm-name-starts-with": "Alarms whose names start with '{{prefix}}'",
+            "type-rulechain": "Rule chain",
+            "type-rulechains": "Rule chains",
+            "list-of-rulechains": "{ count, select, 1 {One rule chain} other {List of # rule chains} }",
+            "rulechain-name-starts-with": "Rule chains whose names start with '{{prefix}}'",
+            "type-current-customer": "Current Customer",
+            "search": "Search entities",
+            "selected-entities": "{ count, select, 1 {1 entity} other {# entities} } selected",
+            "entity-name": "Entity name",
+            "details": "Entity details",
+            "no-entities-prompt": "No entities found",
+            "no-data": "No data to display"
+        },
         "event": {
             "event-type": "Tipo de evento",
             "type-error": "Error",
@@ -427,6 +705,163 @@ export default function addLocaleSpanish(locales) {
             "messages-processed": "Mensajes procesados",
             "errors-occurred": "Ocurrieron errores"
         },
+        "extension": { // TODO
+            "extensions": "Extensions",
+            "selected-extensions": "{ count, select, 1 {1 extension} other {# extensions} } selected",
+            "type": "Type",
+            "key": "Key",
+            "value": "Value",
+            "id": "Id",
+            "extension-id": "Extension id",
+            "extension-type": "Extension type",
+            "transformer-json": "JSON *",
+            "unique-id-required": "Current extension id already exists.",
+            "delete": "Delete extension",
+            "add": "Add extension",
+            "edit": "Edit extension",
+            "delete-extension-title": "Are you sure you want to delete the extension '{{extensionId}}'?",
+            "delete-extension-text": "Be careful, after the confirmation the extension and all related data will become unrecoverable.",
+            "delete-extensions-title": "Are you sure you want to delete { count, select, 1 {1 extension} other {# extensions} }?",
+            "delete-extensions-text": "Be careful, after the confirmation all selected extensions will be removed.",
+            "converters": "Converters",
+            "converter-id": "Converter id",
+            "configuration": "Configuration",
+            "converter-configurations": "Converter configurations",
+            "token": "Security token",
+            "add-converter": "Add converter",
+            "add-config": "Add converter configuration",
+            "device-name-expression": "Device name expression",
+            "device-type-expression": "Device type expression",
+            "custom": "Custom",
+            "to-double": "To Double",
+            "transformer": "Transformer",
+            "json-required": "Transformer json is required.",
+            "json-parse": "Unable to parse transformer json.",
+            "attributes": "Attributes",
+            "add-attribute": "Add attribute",
+            "add-map": "Add mapping element",
+            "timeseries": "Timeseries",
+            "add-timeseries": "Add timeseries",
+            "field-required": "Field is required",
+            "brokers": "Brokers",
+            "add-broker": "Add broker",
+            "host": "Host",
+            "port": "Port",
+            "port-range": "Port should be in a range from 1 to 65535.",
+            "ssl": "Ssl",
+            "credentials": "Credentials",
+            "username": "Username",
+            "password": "Password",
+            "retry-interval": "Retry interval in milliseconds",
+            "anonymous": "Anonymous",
+            "basic": "Basic",
+            "pem": "PEM",
+            "ca-cert": "CA certificate file *",
+            "private-key": "Private key file *",
+            "cert": "Certificate file *",
+            "no-file": "No file selected.",
+            "drop-file": "Drop a file or click to select a file to upload.",
+            "mapping": "Mapping",
+            "topic-filter": "Topic filter",
+            "converter-type": "Converter type",
+            "converter-json": "Json",
+            "json-name-expression": "Device name json expression",
+            "topic-name-expression": "Device name topic expression",
+            "json-type-expression": "Device type json expression",
+            "topic-type-expression": "Device type topic expression",
+            "attribute-key-expression": "Attribute key expression",
+            "attr-json-key-expression": "Attribute key json expression",
+            "attr-topic-key-expression": "Attribute key topic expression",
+            "request-id-expression": "Request id expression",
+            "request-id-json-expression": "Request id json expression",
+            "request-id-topic-expression": "Request id topic expression",
+            "response-topic-expression": "Response topic expression",
+            "value-expression": "Value expression",
+            "topic": "Topic",
+            "timeout": "Timeout in milliseconds",
+            "converter-json-required": "Converter json is required.",
+            "converter-json-parse": "Unable to parse converter json.",
+            "filter-expression": "Filter expression",
+            "connect-requests": "Connect requests",
+            "add-connect-request": "Add connect request",
+            "disconnect-requests": "Disconnect requests",
+            "add-disconnect-request": "Add disconnect request",
+            "attribute-requests": "Attribute requests",
+            "add-attribute-request": "Add attribute request",
+            "attribute-updates": "Attribute updates",
+            "add-attribute-update": "Add attribute update",
+            "server-side-rpc": "Server side RPC",
+            "add-server-side-rpc-request": "Add server-side RPC request",
+            "device-name-filter": "Device name filter",
+            "attribute-filter": "Attribute filter",
+            "method-filter": "Method filter",
+            "request-topic-expression": "Request topic expression",
+            "response-timeout": "Response timeout in milliseconds",
+            "topic-expression": "Topic expression",
+            "client-scope": "Client scope",
+            "add-device": "Add device",
+            "opc-server": "Servers",
+            "opc-add-server": "Add server",
+            "opc-add-server-prompt": "Please add server",
+            "opc-application-name": "Application name",
+            "opc-application-uri": "Application uri",
+            "opc-scan-period-in-seconds": "Scan period in seconds",
+            "opc-security": "Security",
+            "opc-identity": "Identity",
+            "opc-keystore": "Keystore",
+            "opc-type": "Type",
+            "opc-keystore-type": "Type",
+            "opc-keystore-location": "Location *",
+            "opc-keystore-password": "Password",
+            "opc-keystore-alias": "Alias",
+            "opc-keystore-key-password": "Key password",
+            "opc-device-node-pattern": "Device node pattern",
+            "opc-device-name-pattern": "Device name pattern",
+            "modbus-server": "Servers/slaves",
+            "modbus-add-server": "Add server/slave",
+            "modbus-add-server-prompt": "Please add server/slave",
+            "modbus-transport": "Transport",
+            "modbus-port-name": "Serial port name",
+            "modbus-encoding": "Encoding",
+            "modbus-parity": "Parity",
+            "modbus-baudrate": "Baud rate",
+            "modbus-databits": "Data bits",
+            "modbus-stopbits": "Stop bits",
+            "modbus-databits-range": "Data bits should be in a range from 7 to 8.",
+            "modbus-stopbits-range": "Stop bits should be in a range from 1 to 2.",
+            "modbus-unit-id": "Unit ID",
+            "modbus-unit-id-range": "Unit ID should be in a range from 1 to 247.",
+            "modbus-device-name": "Device name",
+            "modbus-poll-period": "Poll period (ms)",
+            "modbus-attributes-poll-period": "Attributes poll period (ms)",
+            "modbus-timeseries-poll-period": "Timeseries poll period (ms)",
+            "modbus-poll-period-range": "Poll period should be positive value.",
+            "modbus-tag": "Tag",
+            "modbus-function": "Function",
+            "modbus-register-address": "Register address",
+            "modbus-register-address-range": "Register address should be in a range from 0 to 65535.",
+            "modbus-register-bit-index": "Bit index",
+            "modbus-register-bit-index-range": "Bit index should be in a range from 0 to 15.",
+            "modbus-register-count": "Register count",
+            "modbus-register-count-range": "Register count should be a positive value.",
+            "modbus-byte-order": "Byte order",
+
+            "sync": {
+                "status": "Status",
+                "sync": "Sync",
+                "not-sync": "Not sync",
+                "last-sync-time": "Last sync time",
+                "not-available": "Not available"
+            },
+
+            "export-extensions-configuration": "Export extensions configuration",
+            "import-extensions-configuration": "Import extensions configuration",
+            "import-extensions": "Import extensions",
+            "import-extension": "Import extension",
+            "export-extension": "Export extension",
+            "file": "Extensions file",
+            "invalid-file-error": "Invalid extension file"
+        },
         "fullscreen": {
             "expand": "Expandir a Pantalla Completa",
             "exit": "Salir de Pantalla Completa",
@@ -471,6 +906,22 @@ export default function addLocaleSpanish(locales) {
             "no-return-error": "La función debe retornar un valor!",
             "return-type-mismatch": "La función debe retornar un valor de tipo: '{{type}}'!"
         },
+        "key-val": { // TODO
+            "key": "Key",
+            "value": "Value",
+            "remove-entry": "Remove entry",
+            "add-entry": "Add entry",
+            "no-data": "No entries"
+        },
+        "layout": { // TODO
+            "layout": "Layout",
+            "manage": "Manage layouts",
+            "settings": "Layout settings",
+            "color": "Color",
+            "main": "Main",
+            "right": "Right",
+            "select": "Select target layout"
+        },
         "legend": {
             "position": "Posición de leyenda",
             "show-max": "Mostrar máximo",
@@ -511,6 +962,140 @@ export default function addLocaleSpanish(locales) {
             "change-password": "Cambiar contraseña",
             "current-password": "Contraseña actual"
         },
+        "relation": { // TODO
+            "relations": "Relations",
+            "direction": "Direction",
+            "search-direction": {
+                "FROM": "From",
+                "TO": "To"
+            },
+            "direction-type": {
+                "FROM": "from",
+                "TO": "to"
+            },
+            "from-relations": "Outbound relations",
+            "to-relations": "Inbound relations",
+            "selected-relations": "{ count, select, 1 {1 relation} other {# relations} } selected",
+            "type": "Type",
+            "to-entity-type": "To entity type",
+            "to-entity-name": "To entity name",
+            "from-entity-type": "From entity type",
+            "from-entity-name": "From entity name",
+            "to-entity": "To entity",
+            "from-entity": "From entity",
+            "delete": "Delete relation",
+            "relation-type": "Relation type",
+            "relation-type-required": "Relation type is required.",
+            "any-relation-type": "Any type",
+            "add": "Add relation",
+            "edit": "Edit relation",
+            "delete-to-relation-title": "Are you sure you want to delete relation to the entity '{{entityName}}'?",
+            "delete-to-relation-text": "Be careful, after the confirmation the entity '{{entityName}}' will be unrelated from the current entity.",
+            "delete-to-relations-title": "Are you sure you want to delete { count, select, 1 {1 relation} other {# relations} }?",
+            "delete-to-relations-text": "Be careful, after the confirmation all selected relations will be removed and corresponding entities will be unrelated from the current entity.",
+            "delete-from-relation-title": "Are you sure you want to delete relation from the entity '{{entityName}}'?",
+            "delete-from-relation-text": "Be careful, after the confirmation current entity will be unrelated from the entity '{{entityName}}'.",
+            "delete-from-relations-title": "Are you sure you want to delete { count, select, 1 {1 relation} other {# relations} }?",
+            "delete-from-relations-text": "Be careful, after the confirmation all selected relations will be removed and current entity will be unrelated from the corresponding entities.",
+            "remove-relation-filter": "Remove relation filter",
+            "add-relation-filter": "Add relation filter",
+            "any-relation": "Any relation",
+            "relation-filters": "Relation filters",
+            "additional-info": "Additional info (JSON)",
+            "invalid-additional-info": "Unable to parse additional info json."
+        },
+        "rulechain": { // TODO
+            "rulechain": "Rule chain",
+            "rulechains": "Rule chains",
+            "root": "Root",
+            "delete": "Delete rule chain",
+            "name": "Name",
+            "name-required": "Name is required.",
+            "description": "Description",
+            "add": "Add Rule Chain",
+            "set-root": "Make rule chain root",
+            "set-root-rulechain-title": "Are you sure you want to make the rule chain '{{ruleChainName}}' root?",
+            "set-root-rulechain-text": "After the confirmation the rule chain will become root and will handle all incoming transport messages.",
+            "delete-rulechain-title": "Are you sure you want to delete the rule chain '{{ruleChainName}}'?",
+            "delete-rulechain-text": "Be careful, after the confirmation the rule chain and all related data will become unrecoverable.",
+            "delete-rulechains-title": "Are you sure you want to delete { count, select, 1 {1 rule chain} other {# rule chains} }?",
+            "delete-rulechains-action-title": "Delete { count, select, 1 {1 rule chain} other {# rule chains} }",
+            "delete-rulechains-text": "Be careful, after the confirmation all selected rule chains will be removed and all related data will become unrecoverable.",
+            "add-rulechain-text": "Add new rule chain",
+            "no-rulechains-text": "No rule chains found",
+            "rulechain-details": "Rule chain details",
+            "details": "Details",
+            "events": "Events",
+            "system": "System",
+            "import": "Import rule chain",
+            "export": "Export rule chain",
+            "export-failed-error": "Unable to export rule chain: {{error}}",
+            "create-new-rulechain": "Create new rule chain",
+            "rulechain-file": "Rule chain file",
+            "invalid-rulechain-file-error": "Unable to import rule chain: Invalid rule chain data structure.",
+            "copyId": "Copy rule chain Id",
+            "idCopiedMessage": "Rule chain Id has been copied to clipboard",
+            "select-rulechain": "Select rule chain",
+            "no-rulechains-matching": "No rule chains matching '{{entity}}' were found.",
+            "rulechain-required": "Rule chain is required",
+            "management": "Rules management",
+            "debug-mode": "Debug mode"
+        },
+        "rulenode": { // TODO
+            "details": "Details",
+            "events": "Events",
+            "search": "Search nodes",
+            "open-node-library": "Open node library",
+            "add": "Add rule node",
+            "name": "Name",
+            "name-required": "Name is required.",
+            "type": "Type",
+            "description": "Description",
+            "delete": "Delete rule node",
+            "select-all-objects": "Select all nodes and connections",
+            "deselect-all-objects": "Deselect all nodes and connections",
+            "delete-selected-objects": "Delete selected nodes and connections",
+            "delete-selected": "Delete selected",
+            "select-all": "Select all",
+            "copy-selected": "Copy selected",
+            "deselect-all": "Deselect all",
+            "rulenode-details": "Rule node details",
+            "debug-mode": "Debug mode",
+            "configuration": "Configuration",
+            "link": "Link",
+            "link-details": "Rule node link details",
+            "add-link": "Add link",
+            "link-label": "Link label",
+            "link-label-required": "Link label is required.",
+            "custom-link-label": "Custom link label",
+            "custom-link-label-required": "Custom link label is required.",
+            "type-filter": "Filter",
+            "type-filter-details": "Filter incoming messages with configured conditions",
+            "type-enrichment": "Enrichment",
+            "type-enrichment-details": "Add additional information into Message Metadata",
+            "type-transformation": "Transformation",
+            "type-transformation-details": "Change Message payload and Metadata",
+            "type-action": "Action",
+            "type-action-details": "Perform special action",
+            "type-external": "External",
+            "type-external-details": "Interacts with external system",
+            "type-rule-chain": "Rule Chain",
+            "type-rule-chain-details": "Forwards incoming messages to specified Rule Chain",
+            "type-input": "Input",
+            "type-input-details": "Logical input of Rule Chain, forwards incoming messages to next related Rule Node",
+            "directive-is-not-loaded": "Defined configuration directive '{{directiveName}}' is not available.",
+            "ui-resources-load-error": "Failed to load configuration ui resources.",
+            "invalid-target-rulechain": "Unable to resolve target rule chain!",
+            "test-script-function": "Test script function",
+            "message": "Message",
+            "message-type": "Message type",
+            "message-type-required": "Message type is required",
+            "metadata": "Metadata",
+            "metadata-required": "Metadata entries can't be empty.",
+            "output": "Output",
+            "test": "Test",
+            "help": "Help"
+        },
         "tenant": {
             "tenants": "Tenants",
             "management": "Gestión de Tenant",
@@ -646,6 +1231,18 @@ export default function addLocaleSpanish(locales) {
             "undo": "Deshacer cambios",
             "export": "Exportar widget"
         },
+        "widget-action": { // TODO
+            "header-button": "Widget header button",
+            "open-dashboard-state": "Navigate to new dashboard state",
+            "update-dashboard-state": "Update current dashboard state",
+            "open-dashboard": "Navigate to other dashboard",
+            "custom": "Custom action",
+            "target-dashboard-state": "Target dashboard state",
+            "target-dashboard-state-required": "Target dashboard state is required",
+            "set-entity-from-widget": "Set entity from widget",
+            "target-dashboard": "Target dashboard",
+            "open-right-layout": "Open right dashboard layout (mobile view)"
+        },
         "widgets-bundle": {
             "current": "Paquete actual",
             "widgets-bundles": "Paquete de Widgets",
@@ -709,6 +1306,20 @@ export default function addLocaleSpanish(locales) {
             "widget-type-file": "Tipo de archivo del widget",
             "invalid-widget-type-file-error": "Imposible de importar tipo de widget: Estructura de datos inválida."
         },
+        "icon": { // TODO
+            "icon": "Icon",
+            "select-icon": "Select icon",
+            "material-icons": "Material icons",
+            "show-all": "Show all icons"
+        },
+        "custom": { // TODO
+            "widget-action": {
+                "action-cell-button": "Action cell button",
+                "row-click": "On row click",
+                "marker-click": "On marker click",
+                "tooltip-tag-action": "Tooltip tag action"
+            }
+        },
         "language": {
             "language": "Lenguaje",
             "en_US": "Inglés",