diff --git a/ui/package.json b/ui/package.json index 892664faec..5fb997beba 100644 --- a/ui/package.json +++ b/ui/package.json @@ -37,12 +37,12 @@ "angular-socialshare": "^2.3.8", "angular-storage": "0.0.15", "angular-touch": "1.5.8", - "angular-translate": "2.13.1", - "angular-translate-handler-log": "2.13.1", - "angular-translate-interpolation-messageformat": "2.13.1", - "angular-translate-loader-static-files": "2.13.1", - "angular-translate-storage-cookie": "2.13.1", - "angular-translate-storage-local": "2.13.1", + "angular-translate": "2.18.1", + "angular-translate-handler-log": "2.18.1", + "angular-translate-interpolation-messageformat": "2.18.1", + "angular-translate-loader-static-files": "2.18.1", + "angular-translate-storage-cookie": "2.18.1", + "angular-translate-storage-local": "2.18.1", "angular-ui-ace": "^0.2.3", "angular-ui-router": "^0.3.1", "angular-websocket": "^2.0.1", diff --git a/ui/src/app/app.config.js b/ui/src/app/app.config.js index a84bdde337..982e9a9350 100644 --- a/ui/src/app/app.config.js +++ b/ui/src/app/app.config.js @@ -15,10 +15,6 @@ */ import injectTapEventPlugin from 'react-tap-event-plugin'; import UrlHandler from './url.handler'; -import addLocaleKorean from './locale/locale.constant-ko'; -import addLocaleChinese from './locale/locale.constant-zh'; -import addLocaleRussian from './locale/locale.constant-ru'; -import addLocaleSpanish from './locale/locale.constant-es'; /* eslint-disable import/no-unresolved, import/default */ @@ -38,46 +34,32 @@ export default function AppConfig($provide, $mdThemingProvider, $httpProvider, $translateProvider, - storeProvider, - locales) { + storeProvider) { injectTapEventPlugin(); $locationProvider.html5Mode(true); $urlRouterProvider.otherwise(UrlHandler); storeProvider.setCaching(false); - - $translateProvider.useSanitizeValueStrategy(null); - $translateProvider.useMissingTranslationHandler('tbMissingTranslationHandler'); - $translateProvider.addInterpolation('$translateMessageFormatInterpolation'); - $translateProvider.fallbackLanguage('en_US'); - - addLocaleKorean(locales); - addLocaleChinese(locales); - addLocaleRussian(locales); - addLocaleSpanish(locales); - - for (var langKey in locales) { - var translationTable = locales[langKey]; - $translateProvider.translations(langKey, translationTable); - } - - var lang = $translateProvider.resolveClientLocale(); - if (lang) { - lang = lang.toLowerCase(); - if (lang.startsWith('ko')) { - $translateProvider.preferredLanguage('ko_KR'); - } else if (lang.startsWith('zh')) { - $translateProvider.preferredLanguage('zh_CN'); - } else if (lang.startsWith('es')) { - $translateProvider.preferredLanguage('es_ES'); - } else if (lang.startsWith('ru')) { - $translateProvider.preferredLanguage('ru_RU'); - } else { - $translateProvider.preferredLanguage('en_US'); - } - } else { - $translateProvider.preferredLanguage('en_US'); - } + + $translateProvider.useSanitizeValueStrategy(null) + .useMissingTranslationHandler('tbMissingTranslationHandler') + /* .useMissingTranslationHandlerLog() */ + .addInterpolation('$translateMessageFormatInterpolation') + .useStaticFilesLoader({ + prefix: PUBLIC_PATH + 'locale/locale.constant-', //eslint-disable-line + suffix: '.json' + }) + .registerAvailableLanguageKeys(['en', 'es', 'it', 'ko', 'ru', 'zh'], { + 'en_*': 'en', + 'es_*': 'es', + 'it_*': 'it', + 'ko_*': 'ko', + 'ru_*': 'ru', + 'zh_*': 'zh' + }) + .fallbackLanguage('en') // must be before determinePreferredLanguage + .uniformLanguageTag('java') // must be before determinePreferredLanguage + .determinePreferredLanguage(); $httpProvider.interceptors.push('globalInterceptor'); diff --git a/ui/src/app/app.js b/ui/src/app/app.js index f021efb007..c8cdeb02b0 100644 --- a/ui/src/app/app.js +++ b/ui/src/app/app.js @@ -51,7 +51,7 @@ import react from 'ngreact'; import '@flowjs/ng-flow/dist/ng-flow-standalone.min'; import 'ngFlowchart/dist/ngFlowchart'; -import thingsboardLocales from './locale/locale.constant'; +import thingsboardTranslateHandler from './locale/translate-handler'; import thingsboardLogin from './login'; import thingsboardDialogs from './components/datakey-config-dialog.controller'; import thingsboardMenu from './services/menu.service'; @@ -117,7 +117,7 @@ angular.module('thingsboard', [ react.name, 'flow', 'flowchart', - thingsboardLocales, + thingsboardTranslateHandler, thingsboardLogin, thingsboardDialogs, thingsboardMenu, diff --git a/ui/src/app/locale/locale.constant-en.json b/ui/src/app/locale/locale.constant-en.json new file mode 100644 index 0000000000..89bd988c64 --- /dev/null +++ b/ui/src/app/locale/locale.constant-en.json @@ -0,0 +1,1456 @@ +{ + "access": { + "unauthorized": "Unauthorized", + "unauthorized-access": "Unauthorized Access", + "unauthorized-access-text": "You should sign in to have access to this resource!", + "access-forbidden": "Access Forbidden", + "access-forbidden-text": "You haven't access rights to this location!
Try to sign in with different user if you still wish to gain access to this location.", + "refresh-token-expired": "Session has expired", + "refresh-token-failed": "Unable to refresh session" + }, + "action": { + "activate": "Activate", + "suspend": "Suspend", + "save": "Save", + "saveAs": "Save as", + "cancel": "Cancel", + "ok": "OK", + "delete": "Delete", + "add": "Add", + "yes": "Yes", + "no": "No", + "update": "Update", + "remove": "Remove", + "search": "Search", + "clear-search": "Clear search", + "assign": "Assign", + "unassign": "Unassign", + "share": "Share", + "make-private": "Make private", + "apply": "Apply", + "apply-changes": "Apply changes", + "edit-mode": "Edit mode", + "enter-edit-mode": "Enter edit mode", + "decline-changes": "Decline changes", + "close": "Close", + "back": "Back", + "run": "Run", + "sign-in": "Sign in!", + "edit": "Edit", + "view": "View", + "create": "Create", + "drag": "Drag", + "refresh": "Refresh", + "undo": "Undo", + "copy": "Copy", + "paste": "Paste", + "copy-reference": "Copy reference", + "paste-reference": "Paste reference", + "import": "Import", + "export": "Export", + "share-via": "Share via {{provider}}" + }, + "aggregation": { + "aggregation": "Aggregation", + "function": "Data aggregation function", + "limit": "Max values", + "group-interval": "Grouping interval", + "min": "Min", + "max": "Max", + "avg": "Average", + "sum": "Sum", + "count": "Count", + "none": "None" + }, + "admin": { + "general": "General", + "general-settings": "General Settings", + "outgoing-mail": "Outgoing Mail", + "outgoing-mail-settings": "Outgoing Mail Settings", + "system-settings": "System Settings", + "test-mail-sent": "Test mail was successfully sent!", + "base-url": "Base URL", + "base-url-required": "Base URL is required.", + "mail-from": "Mail From", + "mail-from-required": "Mail From is required.", + "smtp-protocol": "SMTP protocol", + "smtp-host": "SMTP host", + "smtp-host-required": "SMTP host is required.", + "smtp-port": "SMTP port", + "smtp-port-required": "You must supply a smtp port.", + "smtp-port-invalid": "That doesn't look like a valid smtp port.", + "timeout-msec": "Timeout (msec)", + "timeout-required": "Timeout is required.", + "timeout-invalid": "That doesn't look like a valid timeout.", + "enable-tls": "Enable TLS", + "send-test-mail": "Send test mail" + }, + "alarm": { + "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": { + "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": { + "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": "Attributes", + "latest-telemetry": "Latest telemetry", + "attributes-scope": "Entity attributes scope", + "scope-latest-telemetry": "Latest telemetry", + "scope-client": "Client attributes", + "scope-server": "Server attributes", + "scope-shared": "Shared attributes", + "add": "Add attribute", + "key": "Key", + "last-update-time": "Last update time", + "key-required": "Attribute key is required.", + "value": "Value", + "value-required": "Attribute value is required.", + "delete-attributes-title": "Are you sure you want to delete { count, select, 1 {1 attribute} other {# attributes} }?", + "delete-attributes-text": "Be careful, after the confirmation all selected attributes will be removed.", + "delete-attributes": "Delete attributes", + "enter-attribute-value": "Enter attribute value", + "show-on-widget": "Show on widget", + "widget-mode": "Widget mode", + "next-widget": "Next widget", + "prev-widget": "Previous widget", + "add-to-dashboard": "Add to dashboard", + "add-widget-to-dashboard": "Add widget to dashboard", + "selected-attributes": "{ count, select, 1 {1 attribute} other {# attributes} } selected", + "selected-telemetry": "{ count, select, 1 {1 telemetry unit} other {# telemetry units} } selected" + }, + "audit-log": { + "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": "You have unsaved changes. Are you sure you want to leave this page?", + "html-message": "You have unsaved changes.
Are you sure you want to leave this page?", + "title": "Unsaved changes" + }, + "contact": { + "country": "Country", + "city": "City", + "state": "State / Province", + "postal-code": "Zip / Postal Code", + "postal-code-invalid": "Invalid Zip / Postal Code format.", + "address": "Address", + "address2": "Address 2", + "phone": "Phone", + "email": "Email", + "no-address": "No address" + }, + "common": { + "username": "Username", + "password": "Password", + "enter-username": "Enter username", + "enter-password": "Enter password", + "enter-search": "Enter search" + }, + "content-type": { + "json": "Json", + "text": "Text", + "binary": "Binary (Base64)" + }, + "customer": { + "customer": "Customer", + "customers": "Customers", + "management": "Customer management", + "dashboard": "Customer Dashboard", + "dashboards": "Customer Dashboards", + "devices": "Customer Devices", + "assets": "Customer Assets", + "public-dashboards": "Public Dashboards", + "public-devices": "Public Devices", + "public-assets": "Public Assets", + "add": "Add Customer", + "delete": "Delete customer", + "manage-customer-users": "Manage customer users", + "manage-customer-devices": "Manage customer devices", + "manage-customer-dashboards": "Manage customer dashboards", + "manage-public-devices": "Manage public devices", + "manage-public-dashboards": "Manage public dashboards", + "manage-customer-assets": "Manage customer assets", + "manage-public-assets": "Manage public assets", + "add-customer-text": "Add new customer", + "no-customers-text": "No customers found", + "customer-details": "Customer details", + "delete-customer-title": "Are you sure you want to delete the customer '{{customerTitle}}'?", + "delete-customer-text": "Be careful, after the confirmation the customer and all related data will become unrecoverable.", + "delete-customers-title": "Are you sure you want to delete { count, select, 1 {1 customer} other {# customers} }?", + "delete-customers-action-title": "Delete { count, select, 1 {1 customer} other {# customers} }", + "delete-customers-text": "Be careful, after the confirmation all selected customers will be removed and all related data will become unrecoverable.", + "manage-users": "Manage users", + "manage-assets": "Manage assets", + "manage-devices": "Manage devices", + "manage-dashboards": "Manage dashboards", + "title": "Title", + "title-required": "Title is required.", + "description": "Description", + "details": "Details", + "events": "Events", + "copyId": "Copy customer Id", + "idCopiedMessage": "Customer Id has been copied to clipboard", + "select-customer": "Select customer", + "no-customers-matching": "No customers matching '{{entity}}' were found.", + "customer-required": "Customer is required", + "select-default-customer": "Select default customer", + "default-customer": "Default customer", + "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level" + }, + "datetime": { + "date-from": "Date from", + "time-from": "Time from", + "date-to": "Date to", + "time-to": "Time to" + }, + "dashboard": { + "dashboard": "Dashboard", + "dashboards": "Dashboards", + "management": "Dashboard management", + "view-dashboards": "View Dashboards", + "add": "Add Dashboard", + "assign-dashboard-to-customer": "Assign Dashboard(s) To Customer", + "assign-dashboard-to-customer-text": "Please select the dashboards to assign to the customer", + "assign-to-customer-text": "Please select the customer to assign the dashboard(s)", + "assign-to-customer": "Assign to customer", + "unassign-from-customer": "Unassign from customer", + "make-public": "Make dashboard public", + "make-private": "Make dashboard private", + "manage-assigned-customers": "Manage assigned customers", + "assigned-customers": "Assigned customers", + "assign-to-customers": "Assign Dashboard(s) To Customers", + "assign-to-customers-text": "Please select the customers to assign the dashboard(s)", + "unassign-from-customers": "Unassign Dashboard(s) From Customers", + "unassign-from-customers-text": "Please select the customers to unassign from the dashboard(s)", + "no-dashboards-text": "No dashboards found", + "no-widgets": "No widgets configured", + "add-widget": "Add new widget", + "title": "Title", + "select-widget-title": "Select widget", + "select-widget-subtitle": "List of available widget types", + "delete": "Delete dashboard", + "title-required": "Title is required.", + "description": "Description", + "details": "Details", + "dashboard-details": "Dashboard details", + "add-dashboard-text": "Add new dashboard", + "assign-dashboards": "Assign dashboards", + "assign-new-dashboard": "Assign new dashboard", + "assign-dashboards-text": "Assign { count, select, 1 {1 dashboard} other {# dashboards} } to customers", + "unassign-dashboards-action-text": "Unassign { count, select, 1 {1 dashboard} other {# dashboards} } from customers", + "delete-dashboards": "Delete dashboards", + "unassign-dashboards": "Unassign dashboards", + "unassign-dashboards-action-title": "Unassign { count, select, 1 {1 dashboard} other {# dashboards} } from customer", + "delete-dashboard-title": "Are you sure you want to delete the dashboard '{{dashboardTitle}}'?", + "delete-dashboard-text": "Be careful, after the confirmation the dashboard and all related data will become unrecoverable.", + "delete-dashboards-title": "Are you sure you want to delete { count, select, 1 {1 dashboard} other {# dashboards} }?", + "delete-dashboards-action-title": "Delete { count, select, 1 {1 dashboard} other {# dashboards} }", + "delete-dashboards-text": "Be careful, after the confirmation all selected dashboards will be removed and all related data will become unrecoverable.", + "unassign-dashboard-title": "Are you sure you want to unassign the dashboard '{{dashboardTitle}}'?", + "unassign-dashboard-text": "After the confirmation the dashboard will be unassigned and won't be accessible by the customer.", + "unassign-dashboard": "Unassign dashboard", + "unassign-dashboards-title": "Are you sure you want to unassign { count, select, 1 {1 dashboard} other {# dashboards} }?", + "unassign-dashboards-text": "After the confirmation all selected dashboards will be unassigned and won't be accessible by the customer.", + "public-dashboard-title": "Dashboard is now public", + "public-dashboard-text": "Your dashboard {{dashboardTitle}} is now public and accessible via next public link:", + "public-dashboard-notice": "Note: Do not forget to make related devices public in order to access their data.", + "make-private-dashboard-title": "Are you sure you want to make the dashboard '{{dashboardTitle}}' private?", + "make-private-dashboard-text": "After the confirmation the dashboard will be made private and won't be accessible by others.", + "make-private-dashboard": "Make dashboard private", + "socialshare-text": "'{{dashboardTitle}}' powered by ThingsBoard", + "socialshare-title": "'{{dashboardTitle}}' powered by ThingsBoard", + "select-dashboard": "Select dashboard", + "no-dashboards-matching": "No dashboards matching '{{entity}}' were found.", + "dashboard-required": "Dashboard is required.", + "select-existing": "Select existing dashboard", + "create-new": "Create new dashboard", + "new-dashboard-title": "New dashboard title", + "open-dashboard": "Open dashboard", + "set-background": "Set background", + "background-color": "Background color", + "background-image": "Background image", + "background-size-mode": "Background size mode", + "no-image": "No image selected", + "drop-image": "Drop an image or click to select a file to upload.", + "settings": "Settings", + "columns-count": "Columns count", + "columns-count-required": "Columns count is required.", + "min-columns-count-message": "Only 10 minimum column count is allowed.", + "max-columns-count-message": "Only 1000 maximum column count is allowed.", + "widgets-margins": "Margin between widgets", + "horizontal-margin": "Horizontal margin", + "horizontal-margin-required": "Horizontal margin value is required.", + "min-horizontal-margin-message": "Only 0 is allowed as minimum horizontal margin value.", + "max-horizontal-margin-message": "Only 50 is allowed as maximum horizontal margin value.", + "vertical-margin": "Vertical margin", + "vertical-margin-required": "Vertical margin value is required.", + "min-vertical-margin-message": "Only 0 is allowed as minimum vertical margin value.", + "max-vertical-margin-message": "Only 50 is allowed as maximum vertical margin value.", + "autofill-height": "Auto fill layout height", + "mobile-layout": "Mobile layout settings", + "mobile-row-height": "Mobile row height, px", + "mobile-row-height-required": "Mobile row height value is required.", + "min-mobile-row-height-message": "Only 5 pixels is allowed as minimum mobile row height value.", + "max-mobile-row-height-message": "Only 200 pixels is allowed as maximum mobile row height value.", + "display-title": "Display dashboard title", + "toolbar-always-open": "Keep toolbar opened", + "title-color": "Title color", + "display-dashboards-selection": "Display dashboards selection", + "display-entities-selection": "Display entities selection", + "display-dashboard-timewindow": "Display timewindow", + "display-dashboard-export": "Display export", + "import": "Import dashboard", + "export": "Export dashboard", + "export-failed-error": "Unable to export dashboard: {{error}}", + "create-new-dashboard": "Create new dashboard", + "dashboard-file": "Dashboard file", + "invalid-dashboard-file-error": "Unable to import dashboard: Invalid dashboard data structure.", + "dashboard-import-missing-aliases-title": "Configure aliases used by imported dashboard", + "create-new-widget": "Create new widget", + "import-widget": "Import widget", + "widget-file": "Widget file", + "invalid-widget-file-error": "Unable to import widget: Invalid widget data structure.", + "widget-import-missing-aliases-title": "Configure aliases used by imported widget", + "open-toolbar": "Open dashboard toolbar", + "close-toolbar": "Close toolbar", + "configuration-error": "Configuration error", + "alias-resolution-error-title": "Dashboard aliases configuration error", + "invalid-aliases-config": "Unable to find any devices matching to some of the aliases filter.
Please contact your administrator in order to resolve this issue.", + "select-devices": "Select devices", + "assignedToCustomer": "Assigned to customer", + "assignedToCustomers": "Assigned to customers", + "public": "Public", + "public-link": "Public link", + "copy-public-link": "Copy public link", + "public-link-copied-message": "Dashboard public link has been copied to clipboard", + "manage-states": "Manage dashboard states", + "states": "Dashboard states", + "search-states": "Search dashboard states", + "selected-states": "{ count, select, 1 {1 dashboard state} other {# dashboard states} } selected", + "edit-state": "Edit dashboard state", + "delete-state": "Delete dashboard state", + "add-state": "Add dashboard state", + "state": "Dashboard state", + "state-name": "Name", + "state-name-required": "Dashboard state name is required.", + "state-id": "State Id", + "state-id-required": "Dashboard state id is required.", + "state-id-exists": "Dashboard state with the same id is already exists.", + "is-root-state": "Root state", + "delete-state-title": "Delete dashboard state", + "delete-state-text": "Are you sure you want delete dashboard state with name '{{stateName}}'?", + "show-details": "Show details", + "hide-details": "Hide details", + "select-state": "Select target state", + "state-controller": "State controller" + }, + "datakey": { + "settings": "Settings", + "advanced": "Advanced", + "label": "Label", + "color": "Color", + "units": "Special symbol to show next to value", + "decimals": "Number of digits after floating point", + "data-generation-func": "Data generation function", + "use-data-post-processing-func": "Use data post-processing function", + "configuration": "Data key configuration", + "timeseries": "Timeseries", + "attributes": "Attributes", + "alarm": "Alarm fields", + "timeseries-required": "Entity timeseries are required.", + "timeseries-or-attributes-required": "Entity timeseries/attributes are required.", + "maximum-timeseries-or-attributes": "Maximum { count, select, 1 {1 timeseries/attribute is allowed.} other {# timeseries/attributes are allowed} }", + "alarm-fields-required": "Alarm fields are required.", + "function-types": "Function types", + "function-types-required": "Function types are required.", + "maximum-function-types": "Maximum { count, select, 1 {1 function type is allowed.} other {# function types are allowed} }" + }, + "datasource": { + "type": "Datasource type", + "name": "Name", + "add-datasource-prompt": "Please add datasource" + }, + "details": { + "edit-mode": "Edit mode", + "toggle-edit-mode": "Toggle edit mode" + }, + "device": { + "device": "Device", + "device-required": "Device is required.", + "devices": "Devices", + "management": "Device management", + "view-devices": "View Devices", + "device-alias": "Device alias", + "aliases": "Device aliases", + "no-alias-matching": "'{{alias}}' not found.", + "no-aliases-found": "No aliases found.", + "no-key-matching": "'{{key}}' not found.", + "no-keys-found": "No keys found.", + "create-new-alias": "Create a new one!", + "create-new-key": "Create a new one!", + "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
Device aliases must be unique whithin the dashboard.", + "configure-alias": "Configure '{{alias}}' alias", + "no-devices-matching": "No devices matching '{{entity}}' were found.", + "alias": "Alias", + "alias-required": "Device alias is required.", + "remove-alias": "Remove device alias", + "add-alias": "Add device alias", + "name-starts-with": "Device name starts with", + "device-list": "Device list", + "use-device-name-filter": "Use filter", + "device-list-empty": "No devices selected.", + "device-name-filter-required": "Device name filter is required.", + "device-name-filter-no-device-matched": "No devices starting with '{{device}}' were found.", + "add": "Add Device", + "assign-to-customer": "Assign to customer", + "assign-device-to-customer": "Assign Device(s) To Customer", + "assign-device-to-customer-text": "Please select the devices to assign to the customer", + "make-public": "Make device public", + "make-private": "Make device private", + "no-devices-text": "No devices found", + "assign-to-customer-text": "Please select the customer to assign the device(s)", + "device-details": "Device details", + "add-device-text": "Add new device", + "credentials": "Credentials", + "manage-credentials": "Manage credentials", + "delete": "Delete device", + "assign-devices": "Assign devices", + "assign-devices-text": "Assign { count, select, 1 {1 device} other {# devices} } to customer", + "delete-devices": "Delete devices", + "unassign-from-customer": "Unassign from customer", + "unassign-devices": "Unassign devices", + "unassign-devices-action-title": "Unassign { count, select, 1 {1 device} other {# devices} } from customer", + "assign-new-device": "Assign new device", + "make-public-device-title": "Are you sure you want to make the device '{{deviceName}}' public?", + "make-public-device-text": "After the confirmation the device and all its data will be made public and accessible by others.", + "make-private-device-title": "Are you sure you want to make the device '{{deviceName}}' private?", + "make-private-device-text": "After the confirmation the device and all its data will be made private and won't be accessible by others.", + "view-credentials": "View credentials", + "delete-device-title": "Are you sure you want to delete the device '{{deviceName}}'?", + "delete-device-text": "Be careful, after the confirmation the device and all related data will become unrecoverable.", + "delete-devices-title": "Are you sure you want to delete { count, select, 1 {1 device} other {# devices} }?", + "delete-devices-action-title": "Delete { count, select, 1 {1 device} other {# devices} }", + "delete-devices-text": "Be careful, after the confirmation all selected devices will be removed and all related data will become unrecoverable.", + "unassign-device-title": "Are you sure you want to unassign the device '{{deviceName}}'?", + "unassign-device-text": "After the confirmation the device will be unassigned and won't be accessible by the customer.", + "unassign-device": "Unassign device", + "unassign-devices-title": "Are you sure you want to unassign { count, select, 1 {1 device} other {# devices} }?", + "unassign-devices-text": "After the confirmation all selected devices will be unassigned and won't be accessible by the customer.", + "device-credentials": "Device Credentials", + "credentials-type": "Credentials type", + "access-token": "Access token", + "access-token-required": "Access token is required.", + "access-token-invalid": "Access token length must be from 1 to 20 characters.", + "rsa-key": "RSA public key", + "rsa-key-required": "RSA public key is required.", + "secret": "Secret", + "secret-required": "Secret is required.", + "device-type": "Device type", + "device-type-required": "Device type is required.", + "select-device-type": "Select device type", + "enter-device-type": "Enter device type", + "any-device": "Any device", + "no-device-types-matching": "No device types matching '{{entitySubtype}}' were found.", + "device-type-list-empty": "No device types selected.", + "device-types": "Device types", + "name": "Name", + "name-required": "Name is required.", + "description": "Description", + "events": "Events", + "details": "Details", + "copyId": "Copy device Id", + "copyAccessToken": "Copy access token", + "idCopiedMessage": "Device Id has been copied to clipboard", + "accessTokenCopiedMessage": "Device access token has been copied to clipboard", + "assignedToCustomer": "Assigned to customer", + "unable-delete-device-alias-title": "Unable to delete device alias", + "unable-delete-device-alias-text": "Device alias '{{deviceAlias}}' can't be deleted as it used by the following widget(s):
{{widgetsList}}", + "is-gateway": "Is gateway", + "public": "Public", + "device-public": "Device is public", + "select-device": "Select device" + }, + "dialog": { + "close": "Close dialog" + }, + "error": { + "unable-to-connect": "Unable to connect to the server! Please check your internet connection.", + "unhandled-error-code": "Unhandled error code: {{errorCode}}", + "unknown-error": "Unknown error" + }, + "entity": { + "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):
{{widgetsList}}", + "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
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-rulenode": "Rule node", + "type-rulenodes": "Rule nodes", + "list-of-rulenodes": "{ count, select, 1 {One rule node} other {List of # rule nodes} }", + "rulenode-name-starts-with": "Rule nodes 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": "Event type", + "type-error": "Error", + "type-lc-event": "Lifecycle event", + "type-stats": "Statistics", + "type-debug-rule-node": "Debug", + "type-debug-rule-chain": "Debug", + "no-events-prompt": "No events found", + "error": "Error", + "alarm": "Alarm", + "event-time": "Event time", + "server": "Server", + "body": "Body", + "method": "Method", + "type": "Type", + "entity": "Entity", + "message-id": "Message Id", + "message-type": "Message Type", + "data-type": "Data Type", + "relation-type": "Relation Type", + "metadata": "Metadata", + "data": "Data", + "event": "Event", + "status": "Status", + "success": "Success", + "failed": "Failed", + "messages-processed": "Messages processed", + "errors-occurred": "Errors occurred" + }, + "extension": { + "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": "Expand to fullscreen", + "exit": "Exit fullscreen", + "toggle": "Toggle fullscreen mode", + "fullscreen": "Fullscreen" + }, + "function": { + "function": "Function" + }, + "grid": { + "delete-item-title": "Are you sure you want to delete this item?", + "delete-item-text": "Be careful, after the confirmation this item and all related data will become unrecoverable.", + "delete-items-title": "Are you sure you want to delete { count, select, 1 {1 item} other {# items} }?", + "delete-items-action-title": "Delete { count, select, 1 {1 item} other {# items} }", + "delete-items-text": "Be careful, after the confirmation all selected items will be removed and all related data will become unrecoverable.", + "add-item-text": "Add new item", + "no-items-text": "No items found", + "item-details": "Item details", + "delete-item": "Delete Item", + "delete-items": "Delete Items", + "scroll-to-top": "Scroll to top" + }, + "help": { + "goto-help-page": "Go to help page" + }, + "home": { + "home": "Home", + "profile": "Profile", + "logout": "Logout", + "menu": "Menu", + "avatar": "Avatar", + "open-user-menu": "Open user menu" + }, + "import": { + "no-file": "No file selected", + "drop-file": "Drop a JSON file or click to select a file to upload." + }, + "item": { + "selected": "Selected" + }, + "js-func": { + "no-return-error": "Function must return value!", + "return-type-mismatch": "Function must return value of '{{type}}' type!", + "tidy": "Tidy" + }, + "key-val": { + "key": "Key", + "value": "Value", + "remove-entry": "Remove entry", + "add-entry": "Add entry", + "no-data": "No entries" + }, + "layout": { + "layout": "Layout", + "manage": "Manage layouts", + "settings": "Layout settings", + "color": "Color", + "main": "Main", + "right": "Right", + "select": "Select target layout" + }, + "legend": { + "position": "Legend position", + "show-max": "Show max value", + "show-min": "Show min value", + "show-avg": "Show average value", + "show-total": "Show total value", + "settings": "Legend settings", + "min": "min", + "max": "max", + "avg": "avg", + "total": "total" + }, + "login": { + "login": "Login", + "request-password-reset": "Request Password Reset", + "reset-password": "Reset Password", + "create-password": "Create Password", + "passwords-mismatch-error": "Entered passwords must be same!", + "password-again": "Password again", + "sign-in": "Please sign in", + "username": "Username (email)", + "remember-me": "Remember me", + "forgot-password": "Forgot Password?", + "password-reset": "Password reset", + "new-password": "New password", + "new-password-again": "New password again", + "password-link-sent-message": "Password reset link was successfully sent!", + "email": "Email" + }, + "position": { + "top": "Top", + "bottom": "Bottom", + "left": "Left", + "right": "Right" + }, + "profile": { + "profile": "Profile", + "change-password": "Change Password", + "current-password": "Current password" + }, + "relation": { + "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": { + "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": { + "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.", + "link-labels": "Link labels", + "link-labels-required": "Link labels is required.", + "no-link-labels-found": "No link labels found", + "no-link-label-matching": "'{{label}}' not found.", + "create-new-link-label": "Create a new one!", + "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", + "type-unknown": "Unknown", + "type-unknown-details": "Unresolved 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", + "select-message-type": "Select 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": { + "tenant": "Tenant", + "tenants": "Tenants", + "management": "Tenant management", + "add": "Add Tenant", + "admins": "Admins", + "manage-tenant-admins": "Manage tenant admins", + "delete": "Delete tenant", + "add-tenant-text": "Add new tenant", + "no-tenants-text": "No tenants found", + "tenant-details": "Tenant details", + "delete-tenant-title": "Are you sure you want to delete the tenant '{{tenantTitle}}'?", + "delete-tenant-text": "Be careful, after the confirmation the tenant and all related data will become unrecoverable.", + "delete-tenants-title": "Are you sure you want to delete { count, select, 1 {1 tenant} other {# tenants} }?", + "delete-tenants-action-title": "Delete { count, select, 1 {1 tenant} other {# tenants} }", + "delete-tenants-text": "Be careful, after the confirmation all selected tenants will be removed and all related data will become unrecoverable.", + "title": "Title", + "title-required": "Title is required.", + "description": "Description", + "details": "Details", + "events": "Events", + "copyId": "Copy tenant Id", + "idCopiedMessage": "Tenant Id has been copied to clipboard", + "select-tenant": "Select tenant", + "no-tenants-matching": "No tenants matching '{{entity}}' were found.", + "tenant-required": "Tenant is required" + }, + "timeinterval": { + "seconds-interval": "{ seconds, select, 1 {1 second} other {# seconds} }", + "minutes-interval": "{ minutes, select, 1 {1 minute} other {# minutes} }", + "hours-interval": "{ hours, select, 1 {1 hour} other {# hours} }", + "days-interval": "{ days, select, 1 {1 day} other {# days} }", + "days": "Days", + "hours": "Hours", + "minutes": "Minutes", + "seconds": "Seconds", + "advanced": "Advanced" + }, + "timewindow": { + "days": "{ days, select, 1 { day } other {# days } }", + "hours": "{ hours, select, 0 { hour } 1 {1 hour } other {# hours } }", + "minutes": "{ minutes, select, 0 { minute } 1 {1 minute } other {# minutes } }", + "seconds": "{ seconds, select, 0 { second } 1 {1 second } other {# seconds } }", + "realtime": "Realtime", + "history": "History", + "last-prefix": "last", + "period": "from {{ startTime }} to {{ endTime }}", + "edit": "Edit timewindow", + "date-range": "Date range", + "last": "Last", + "time-period": "Time period" + }, + "user": { + "user": "User", + "users": "Users", + "customer-users": "Customer Users", + "tenant-admins": "Tenant Admins", + "sys-admin": "System administrator", + "tenant-admin": "Tenant administrator", + "customer": "Customer", + "anonymous": "Anonymous", + "add": "Add User", + "delete": "Delete user", + "add-user-text": "Add new user", + "no-users-text": "No users found", + "user-details": "User details", + "delete-user-title": "Are you sure you want to delete the user '{{userEmail}}'?", + "delete-user-text": "Be careful, after the confirmation the user and all related data will become unrecoverable.", + "delete-users-title": "Are you sure you want to delete { count, select, 1 {1 user} other {# users} }?", + "delete-users-action-title": "Delete { count, select, 1 {1 user} other {# users} }", + "delete-users-text": "Be careful, after the confirmation all selected users will be removed and all related data will become unrecoverable.", + "activation-email-sent-message": "Activation email was successfully sent!", + "resend-activation": "Resend activation", + "email": "Email", + "email-required": "Email is required.", + "invalid-email-format": "Invalid email format.", + "first-name": "First Name", + "last-name": "Last Name", + "description": "Description", + "default-dashboard": "Default dashboard", + "always-fullscreen": "Always fullscreen", + "select-user": "Select user", + "no-users-matching": "No users matching '{{entity}}' were found.", + "user-required": "User is required", + "activation-method": "Activation method", + "display-activation-link": "Display activation link", + "send-activation-mail": "Send activation mail", + "activation-link": "User activation link", + "activation-link-text": "In order to activate user use the following activation link :", + "copy-activation-link": "Copy activation link", + "activation-link-copied-message": "User activation link has been copied to clipboard", + "details": "Details" + }, + "value": { + "type": "Value type", + "string": "String", + "string-value": "String value", + "integer": "Integer", + "integer-value": "Integer value", + "invalid-integer-value": "Invalid integer value", + "double": "Double", + "double-value": "Double value", + "boolean": "Boolean", + "boolean-value": "Boolean value", + "false": "False", + "true": "True", + "long": "Long" + }, + "widget": { + "widget-library": "Widgets Library", + "widget-bundle": "Widgets Bundle", + "select-widgets-bundle": "Select widgets bundle", + "management": "Widget management", + "editor": "Widget Editor", + "widget-type-not-found": "Problem loading widget configuration.
Probably associated\n widget type was removed.", + "widget-type-load-error": "Widget wasn't loaded due to the following errors:", + "remove": "Remove widget", + "edit": "Edit widget", + "remove-widget-title": "Are you sure you want to remove the widget '{{widgetTitle}}'?", + "remove-widget-text": "After the confirmation the widget and all related data will become unrecoverable.", + "timeseries": "Time series", + "search-data": "Search data", + "no-data-found": "No data found", + "latest-values": "Latest values", + "rpc": "Control widget", + "alarm": "Alarm widget", + "static": "Static widget", + "select-widget-type": "Select widget type", + "missing-widget-title-error": "Widget title must be specified!", + "widget-saved": "Widget saved", + "unable-to-save-widget-error": "Unable to save widget! Widget has errors!", + "save": "Save widget", + "saveAs": "Save widget as", + "save-widget-type-as": "Save widget type as", + "save-widget-type-as-text": "Please enter new widget title and/or select target widgets bundle", + "toggle-fullscreen": "Toggle fullscreen", + "run": "Run widget", + "title": "Widget title", + "title-required": "Widget title is required.", + "type": "Widget type", + "resources": "Resources", + "resource-url": "JavaScript/CSS URL", + "remove-resource": "Remove resource", + "add-resource": "Add resource", + "html": "HTML", + "tidy": "Tidy", + "css": "CSS", + "settings-schema": "Settings schema", + "datakey-settings-schema": "Data key settings schema", + "javascript": "Javascript", + "remove-widget-type-title": "Are you sure you want to remove the widget type '{{widgetName}}'?", + "remove-widget-type-text": "After the confirmation the widget type and all related data will become unrecoverable.", + "remove-widget-type": "Remove widget type", + "add-widget-type": "Add new widget type", + "widget-type-load-failed-error": "Failed to load widget type!", + "widget-template-load-failed-error": "Failed to load widget template!", + "add": "Add Widget", + "undo": "Undo widget changes", + "export": "Export widget" + }, + "widget-action": { + "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": "Current bundle", + "widgets-bundles": "Widgets Bundles", + "add": "Add Widgets Bundle", + "delete": "Delete widgets bundle", + "title": "Title", + "title-required": "Title is required.", + "add-widgets-bundle-text": "Add new widgets bundle", + "no-widgets-bundles-text": "No widgets bundles found", + "empty": "Widgets bundle is empty", + "details": "Details", + "widgets-bundle-details": "Widgets bundle details", + "delete-widgets-bundle-title": "Are you sure you want to delete the widgets bundle '{{widgetsBundleTitle}}'?", + "delete-widgets-bundle-text": "Be careful, after the confirmation the widgets bundle and all related data will become unrecoverable.", + "delete-widgets-bundles-title": "Are you sure you want to delete { count, select, 1 {1 widgets bundle} other {# widgets bundles} }?", + "delete-widgets-bundles-action-title": "Delete { count, select, 1 {1 widgets bundle} other {# widgets bundles} }", + "delete-widgets-bundles-text": "Be careful, after the confirmation all selected widgets bundles will be removed and all related data will become unrecoverable.", + "no-widgets-bundles-matching": "No widgets bundles matching '{{widgetsBundle}}' were found.", + "widgets-bundle-required": "Widgets bundle is required.", + "system": "System", + "import": "Import widgets bundle", + "export": "Export widgets bundle", + "export-failed-error": "Unable to export widgets bundle: {{error}}", + "create-new-widgets-bundle": "Create new widgets bundle", + "widgets-bundle-file": "Widgets bundle file", + "invalid-widgets-bundle-file-error": "Unable to import widgets bundle: Invalid widgets bundle data structure." + }, + "widget-config": { + "data": "Data", + "settings": "Settings", + "advanced": "Advanced", + "title": "Title", + "general-settings": "General settings", + "display-title": "Display title", + "drop-shadow": "Drop shadow", + "enable-fullscreen": "Enable fullscreen", + "background-color": "Background color", + "text-color": "Text color", + "padding": "Padding", + "margin": "Margin", + "widget-style": "Widget style", + "title-style": "Title style", + "mobile-mode-settings": "Mobile mode settings", + "order": "Order", + "height": "Height", + "units": "Special symbol to show next to value", + "decimals": "Number of digits after floating point", + "timewindow": "Timewindow", + "use-dashboard-timewindow": "Use dashboard timewindow", + "display-legend": "Display legend", + "datasources": "Datasources", + "maximum-datasources": "Maximum { count, select, 1 {1 datasource is allowed.} other {# datasources are allowed} }", + "datasource-type": "Type", + "datasource-parameters": "Parameters", + "remove-datasource": "Remove datasource", + "add-datasource": "Add datasource", + "target-device": "Target device", + "alarm-source": "Alarm source", + "actions": "Actions", + "action": "Action", + "add-action": "Add action", + "search-actions": "Search actions", + "action-source": "Action source", + "action-source-required": "Action source is required.", + "action-name": "Name", + "action-name-required": "Action name is required.", + "action-name-not-unique": "Another action with the same name already exists.
Action name should be unique within the same action source.", + "action-icon": "Icon", + "action-type": "Type", + "action-type-required": "Action type is required.", + "edit-action": "Edit action", + "delete-action": "Delete action", + "delete-action-title": "Delete widget action", + "delete-action-text": "Are you sure you want delete widget action with name '{{actionName}}'?" + }, + "widget-type": { + "import": "Import widget type", + "export": "Export widget type", + "export-failed-error": "Unable to export widget type: {{error}}", + "create-new-widget-type": "Create new widget type", + "widget-type-file": "Widget type file", + "invalid-widget-type-file-error": "Unable to import widget type: Invalid widget type data structure." + }, + "icon": { + "icon": "Icon", + "select-icon": "Select icon", + "material-icons": "Material icons", + "show-all": "Show all icons" + }, + "custom": { + "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": "Language", + "zh_CN": "Chinese", + "en_US": "English", + "it_IT": "Italian", + "ko_KR": "Korean", + "ru_RU": "Russian", + "es_ES": "Spanish" + + } +} diff --git a/ui/src/app/locale/locale.constant-es.js b/ui/src/app/locale/locale.constant-es.js deleted file mode 100644 index c6d2f96cbc..0000000000 --- a/ui/src/app/locale/locale.constant-es.js +++ /dev/null @@ -1,1333 +0,0 @@ -/* - * Copyright © 2016-2018 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default function addLocaleSpanish(locales) { - var es_ES = { - "access": { - "unauthorized": "No autorizado", - "unauthorized-access": "Acceso no autorizado", - "unauthorized-access-text": "Debes iniciar sesión para tener acceso a este recurso!", - "access-forbidden": "Acceso Prohibido", - "access-forbidden-text": "No tienes derechos para acceder a esta ubicación!
Intenta iniciar sesión con otro usuario si todavía quieres acceder a esta ubicación.", - "refresh-token-expired": "La sesión ha expirado", - "refresh-token-failed": "No se puede actualizar la sesión" - }, - "action": { - "activate": "Activar", - "suspend": "Suspender", - "save": "Guardar", - "saveAs": "Guardar como", - "cancel": "Cancelar", - "ok": "OK", - "delete": "Borrar", - "add": "Agregar", - "yes": "Si", - "no": "No", - "update": "Actualizar", - "remove": "Eliminar", - "search": "Buscar", - "assign": "Asignar", - "unassign": "Cancelar asignación", - "share": "Compartir", - "make-private": "Hacer privado", - "apply": "Aplicar", - "apply-changes": "Aplicar cambios", - "edit-mode": "Modo Edición", - "enter-edit-mode": "Modo Edición", - "decline-changes": "Descartar cambios", - "close": "Cerrar", - "back": "Atrás", - "run": "Correr", - "sign-in": "Regístrate!", - "edit": "Editar", - "view": "Ver", - "create": "Crear", - "drag": "Arrastrar", - "refresh": "Refrescar", - "undo": "Deshacer", - "copy": "Copiar", - "paste": "Pegar", - "import": "Importar", - "export": "Exportar", - "share-via": "Compartir vía {{provider}}" - }, - "aggregation": { - "aggregation": "Agregación", - "function": "Función de Agregación", - "limit": "Valores Max", - "group-interval": "Intervalo de agrupación", - "min": "Min", - "max": "Max", - "avg": "Promedio", - "sum": "Suma", - "count": "Cuenta", - "none": "Ninguno" - }, - "admin": { - "general": "General", - "general-settings": "Ajustes General", - "outgoing-mail": "Mail de Salida", - "outgoing-mail-settings": "Ajustes del Mail de Salida", - "system-settings": "Sistema", - "test-mail-sent": "Mail de prueba enviado correctamente!", - "base-url": "URL Base", - "base-url-required": "URL Base requerida.", - "mail-from": "Mail Desde", - "mail-from-required": "Mail Desde requerido.", - "smtp-protocol": "Protocolo SMTP", - "smtp-host": "Host SMTP", - "smtp-host-required": "Host SMTP requerido.", - "smtp-port": "Puerto SMTP", - "smtp-port-required": "Debe ingresar un Puerto SMTP.", - "smtp-port-invalid": "No parece un Puerto SMTP valido.", - "timeout-msec": "Timeout (ms)", - "timeout-required": "Timeout requerido.", - "timeout-invalid": "No parece un Timeout valido.", - "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", - "attributes-scope": "Alcance de los atributos del dispositivo", - "scope-latest-telemetry": "Última telemetría", - "scope-client": "Atributos del Cliente", - "scope-server": "Atributos del Servidor", - "scope-shared": "Atributos Compartidos", - "add": "Agregar atributo", - "key": "Clave", - "key-required": "Clave del atributo requerida.", - "value": "Valor", - "value-required": "Valor del atributo requerido.", - "delete-attributes-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 atributo} other {# atributos} }?", - "delete-attributes-text": "Ten cuidado, luego de confirmar el atributo será eliminado, y la información relacionada será irrecuperable.", - "delete-attributes": "Borrar atributo", - "enter-attribute-value": "Ingresar valor del atributo", - "show-on-widget": "Mostrar en Widget", - "widget-mode": "Widget", - "next-widget": "Widget siguiente", - "prev-widget": "Widget anterior", - "add-to-dashboard": "Agregar al Panel", - "add-widget-to-dashboard": "Agregar widget al Panel", - "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.
¿Estás seguro que quieres abandonar la página?", - "title": "Cambios sin guardar" - }, - "contact": { - "country": "País", - "city": "Ciudad", - "state": "Estado/Provincia", - "postal-code": "Código Postal", - "postal-code-invalid": "Solo se permiten dígitos.", - "address": "Dirección", - "address2": "Dirección 2", - "phone": "Teléfono", - "email": "Email", - "no-address": "Sin Dirección" - }, - "common": { - "username": "Usuario", - "password": "Contraseña", - "enter-username": "Ingresa el nombre de usuario.", - "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", - "dashboard": "Panel del Cliente", - "dashboards": "Paneles del Cliente", - "devices": "Panel del Cliente", - "public-dashboards": "Paneles Públicos", - "public-devices": "Dispositivos Públicos", - "add": "Agregar cliente", - "delete": "Borrar cliente", - "manage-customer-users": "Gestionar usuarios del cliente", - "manage-customer-devices": "Gestionar dispositivos del cliente", - "manage-customer-dashboards": "Gestionar paneles del cliente", - "manage-public-devices": "Gestionar dispositivos públicos", - "manage-public-dashboards": "Gestionar paneles públicos", - "add-customer-text": "Agregar nuevo cliente", - "no-customers-text": "No se encontrar clientes", - "customer-details": "Detalles del cliente", - "delete-customer-title": "¿Estás seguro que quieres eliminar el cliente '{{customerTitle}}'?", - "delete-customer-text": "Ten cuidado, luego de confirmar el cliente será eliminado y toda la información relacionada será irrecuperable.", - "delete-customers-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 cliente} other {# clientes} }?", - "delete-customers-action-title": "Borrar { count, select, 1 {1 cliente} other {# clientes} }", - "delete-customers-text": "Ten cuidado, luego de confirmar todos los clientes seleccionados serán eliminados y su información relacionada será irrecuperable.", - "manage-users": "Gestionar usuarios", - "manage-devices": "Gestionar dispositivos", - "manage-dashboards": "Gestionar paneles", - "title": "Título", - "title-required": "Título requerido.", - "description": "Descripción" - }, - "datetime": { - "date-from": "Fecha desde", - "time-from": "Tiempo desde", - "date-to": "Fecha hasta", - "time-to": "Tiempo hasta" - }, - "dashboard": { - "dashboard": "Panel", - "dashboards": "Paneles", - "management": "Gestión de Paneles", - "view-dashboards": "Ver paneles", - "add": "Agregar Panel", - "assign-dashboard-to-customer": "Asignar panel(es) a cliente", - "assign-dashboard-to-customer-text": "Por favor, seleccione algún panel para asignar al Cliente.", - "assign-to-customer-text": "Por favor, seleccione algún cliente para asignar al(los) panel(es).", - "assign-to-customer": "Asignar a cliente", - "unassign-from-customer": "Desasignar del cliente", - "make-public": "Hacer panel público", - "make-private": "Hacer panel privado", - "no-dashboards-text": "Ningún panel encontrado", - "no-widgets": "Ningún widget configurado", - "add-widget": "Agregar nuevo widget", - "title": "Titulo", - "select-widget-title": "Seleccionar widget", - "select-widget-subtitle": "Lista de tipos de widgets", - "delete": "Eliminar panel", - "title-required": "Título requerido.", - "description": "Descripción", - "details": "Detalles", - "dashboard-details": "Detalles del panel", - "add-dashboard-text": "Agregar nuevo panel", - "assign-dashboards": "Asignar paneles", - "assign-new-dashboard": "Asignar nuevo panel", - "assign-dashboards-text": "Asignar { count, select, 1 {1 panel} other {# paneles} } al cliente", - "delete-dashboards": "Eliminar paneles", - "unassign-dashboards": "Desasignar paneles", - "unassign-dashboards-action-title": "Desasignar { count, select, 1 {1 paneles} other {# paneles} } del cliente", - "delete-dashboard-title": "¿Estás seguro que quieres eliminar el panel '{{dashboardTitle}}'?", - "delete-dashboard-text": "Ten cuidado, el panel seleccionado será eliminado y la información relacionada sera irrecuperable.", - "delete-dashboards-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 panel} other {# paneles} }?", - "delete-dashboards-action-title": "Eliminar { count, select, 1 {1 panel} other {# paneles} }", - "delete-dashboards-text": "Ten cuidado, los paneles seleccionados serán eliminados y la información relacionada será irrecuperable.", - "unassign-dashboard-title": "¿Estás seguro que quieres desasignar el panel '{{dashboardTitle}}'?", - "unassign-dashboard-text": "Luego de confirmar, el panel será desasignado y no podrá ser accesible por el cliente.", - "unassign-dashboard": "Desasignar panel", - "unassign-dashboards-title": "¿Estás seguro que quieres desasignar { count, select, 1 {1 panel} other {# paneles} }?", - "unassign-dashboards-text": "Luego de confirmar, los paneles seleccionados serán desasignados y no podrán ser accesibles por el cliente.", - "public-dashboard-title": "El panel ahora es público", - "public-dashboard-text": "Tu panel {{dashboardTitle}} es ahora público y podrá ser accedido desde: aquí:", - "public-dashboard-notice": "Nota: No olvides hacer públicos los dispositivos relacionados para acceder a sus datos.", - "make-private-dashboard-title": "¿Estás seguro que quieres hacer el panel '{{dashboardTitle}}' privado?", - "make-private-dashboard-text": "Luego de confirmar, el panel será privado y no podrá ser accesible por otros.", - "make-private-dashboard": "Hacer panel privado", - "socialshare-text": "'{{dashboardTitle}}' powered by ThingsBoard", - "socialshare-title": "'{{dashboardTitle}}' powered by ThingsBoard", - "select-dashboard": "Seleccionar panel", - "no-dashboards-matching": "Panel '{{entity}}' no encontrado.", - "dashboard-required": "Panel requerido.", - "select-existing": "Seleccionar paneles existentes", - "create-new": "Crear nuevo panel", - "new-dashboard-title": "Nuevo título", - "open-dashboard": "Abrir panel", - "set-background": "Definir fondo", - "background-color": "Color de fondo", - "background-image": "Imagen de fondo", - "background-size-mode": "Modo tamaño de fondo", - "no-image": "No se ha seleccionado ningúna imagen", - "drop-image": "Suelte una imagen o haga clic para seleccionar un archivo para cargar.", - "settings": "Ajustes", - "columns-count": "Número de columnas", - "columns-count-required": "Número de columnas requerido.", - "min-columns-count-message": "Solo se permite un número mínimo de 10 columnas.", - "max-columns-count-message": "Solo se permite un número máximo de 1000 columnas.", - "widgets-margins": "Margen entre widgets", - "horizontal-margin": "Margen horizontal", - "horizontal-margin-required": "Margen horizontal requerido.", - "min-horizontal-margin-message": "Solo se permite margen horizontal mínimo de 0.", - "max-horizontal-margin-message": "Solo se permite margen horizontal máximo de 50.", - "vertical-margin": "Margen vertical", - "vertical-margin-required": "Margen vertical requerido.", - "min-vertical-margin-message": "Solo se permite margen vertical mínimo de 0.", - "max-vertical-margin-message": "Solo se permite margen vertical máximo de 50.", - "display-title": "Mostrar título del panel", - "title-color": "Color del título", - "display-device-selection": "Mostrar selección de dispositivo", - "display-dashboard-timewindow": "Mostrar ventana de tiempo", - "display-dashboard-export": "Mostrar exportar", - "import": "Importar panel", - "export": "Exportar panel", - "export-failed-error": "Imposible exportar panel: {{error}}", - "create-new-dashboard": "Crear nuevo panel", - "dashboard-file": "Archivo del panel", - "invalid-dashboard-file-error": "Imposible importar panel: Estructura de datos inválida.", - "dashboard-import-missing-aliases-title": "Configurar alias utilizados por el panel importado", - "create-new-widget": "Crear nuevo widget", - "import-widget": "Importar widget", - "widget-file": "Archivo de widget", - "invalid-widget-file-error": "Imposible importar widget: Estructura de datos inválida.", - "widget-import-missing-aliases-title": "Configurar alias utilizados por el widget", - "open-toolbar": "Abrir toolbar del panel", - "close-toolbar": "Cerrar toolbar", - "configuration-error": "Error de configuración", - "alias-resolution-error-title": "Error de configuración de alias del panel", - "invalid-aliases-config": "No se puede encontrar ningún dispositivo que coincida con algunos de los alias de filtro.
" + - "Póngase en contacto con su administrador para resolver este problema.", - "select-devices": "Seleccionar dispositivos", - "assignedToCustomer": "Asignado al cliente", - "public": "Público", - "public-link": "Link público", - "copy-public-link": "Copiar link público", - "public-link-copied-message": "El link público del panel se ha copiado al portapapeles" - }, - "datakey": { - "settings": "Ajustes", - "advanced": "Avanzado", - "label": "Etiqueta", - "color": "Color", - "data-generation-func": "Función de generación de datos", - "use-data-post-processing-func": "Usar funcíon de post-procesamiendo de datos", - "configuration": "Ajustes de clave de datos", - "timeseries": "Serie de tiempos", - "attributes": "Atributos", - "timeseries-required": "Series de tiempo del dispositivo requerido.", - "timeseries-or-attributes-required": "Series de tiempo/Atributos requeridos.", - "function-types": "Tipos de funciones", - "function-types-required": "Tipos de funciones requerido." - }, - "datasource": { - "type": "Típo de fuente de datos", - "add-datasource-prompt": "Por favor, agrega una fuente de datos" - }, - "details": { - "edit-mode": "Modo Edición", - "toggle-edit-mode": "Ir a Modo Edición" - }, - "device": { - "device": "Dispositivo", - "device-required": "Dispositivo requerido.", - "devices": "Dispositivos", - "management": "Gestión de Dispositivos", - "view-devices": "Ver dispositivos", - "device-alias": "Alias de dispositivo", - "aliases": "Alias de dispositivos", - "no-alias-matching": "'{{alias}}' no encontrado.", - "no-aliases-found": "Ningún alias encontrado.", - "no-key-matching": "'{{key}}' no encontrado.", - "no-keys-found": "Ninguna clave encontrada.", - "create-new-alias": "Crear nuevo alias!", - "create-new-key": "Crear nueva clave!", - "duplicate-alias-error": "Alias duplicado '{{alias}}'.
El alias de los dispositivos deben ser únicos dentro del panel.", - "configure-alias": "Configurar alias '{{alias}}'", - "no-devices-matching": "No se encontró dispositivo '{{entity}}'", - "alias": "Alias", - "alias-required": "Alias de dispositivo requerido.", - "remove-alias": "Eliminar alias", - "add-alias": "Agregar alias", - "name-starts-with": "Nombre empieza con", - "device-list": "Lista de dispositivos", - "use-device-name-filter": "Usar filtro", - "device-list-empty": "Ningún dispositivo seleccionado.", - "device-name-filter-required": "Nombre de filtro requerido.", - "device-name-filter-no-device-matched": "Ningún dispositivo encontrado que comience con '{{device}}'.", - "add": "Agregar dispositivo", - "assign-to-customer": "Asignar a cliente", - "assign-device-to-customer": "Asignar dispositivo(s) a Cliente", - "assign-device-to-customer-text": "Por favor, seleccione los dispositivos que serán asignados al cliente", - "make-public": "Hacer dispositivo público", - "make-private": "Hacer dispositivo privado", - "no-devices-text": "Ningún dispositivo encontrado", - "assign-to-customer-text": "Por favor, seleccione el cliente para asignar el(los) dispositivo(s)", - "device-details": "Detalles del dispositivo", - "add-device-text": "Agregar nuevo dispositivo", - "credentials": "Credenciales", - "manage-credentials": "Gestionar credenciales", - "delete": "Eliminar dispositivo", - "assign-devices": "Asignar dispositivo", - "assign-devices-text": "Asignar { count, select, 1 {1 dispositivo} other {# dispositivos} } al cliente", - "delete-devices": "Eliminar dispositivo", - "unassign-from-customer": "Desasignar del cliente", - "unassign-devices": "Desasignar dispositivos", - "unassign-devices-action-title": "Desasignar { count, select, 1 {1 dispositivo} other {# dispositivos} } del cliente", - "assign-new-device": "Asignar nuevo dispositivo", - "make-public-device-title": "¿Estás seguro que quieres hacer el dispositivo '{{deviceName}}' público?", - "make-public-device-text": "Luego de confirmar, el dispositivo y la información relacionada serán públicos y podrá ser accesible por otros.", - "make-private-device-title": "¿Estás seguro que quieres hacer el dispositivo '{{deviceName}}' privado?", - "make-private-device-text": "Luego de confirmar, el dispositivo y la información relacionada serán privados y no podrá ser accesible por otros.", - "view-credentials": "Ver credenciales", - "delete-device-title": "¿Estás seguro que quieres eliminar el dispositivo '{{deviceName}}'?", - "delete-device-text": "Ten cuidado, luego de confirmar los dispositivos serán eliminados y la información relacionada será irrecuperable.", - "delete-devices-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 dispositivo} other {# dispositivos} }?", - "delete-devices-action-title": "Eliminar { count, select, 1 {1 dispositivo} other {# dispositivos} }", - "delete-devices-text": "Ten cuidado, luego de confirmar los dispositivos seleccionados serán eliminados y la información relacionada será irrecuperable.", - "unassign-device-title": "¿Estás seguro que quieres desasignar el dispositivo '{{deviceName}}'?", - "unassign-device-text": "Luego de confirmar el dispositivo será desasignado y no podrá ser accesible por el cliente.", - "unassign-device": "Desasignar dispositivo", - "unassign-devices-title": "¿Estás seguro que quieres desasignar { count, select, 1 {1 dispositivo} other {# dispositivos} }?", - "unassign-devices-text": "Luego de confirmar los dispositivos seleccionados serán desasignados y no podrán ser accedidos por el cliente.", - "device-credentials": "Credenciales del dispositivo", - "credentials-type": "Tipo de credencial", - "access-token": "Access token", - "access-token-required": "Access token requerido.", - "access-token-invalid": "Access token debe tener entre 1 a 20 caracteres.", - "rsa-key": "Clave pública RSA", - "rsa-key-required": "Clave pública RSA requerida.", - "secret": "Secreta", - "secret-required": "Secreta requerida.", - "name": "Nombre", - "name-required": "Nombre requerido.", - "description": "Descripción", - "events": "Eventos", - "details": "Detalles", - "copyId": "Copiar ID", - "copyAccessToken": "Copiar access token", - "idCopiedMessage": "Id del dispositivo copiado al portapapeles", - "accessTokenCopiedMessage": "Access token del dispositivo copiado al portapapeles", - "assignedToCustomer": "Asignado al cliente", - "unable-delete-device-alias-title": "Imposible eliminar alias del dispositivo", - "unable-delete-device-alias-text": "Alias '{{deviceAlias}}' no puede ser eliminado. Esta siendo usado por el(los) widget(s):
{{widgetsList}}", - "is-gateway": "Es gateway", - "public": "Público", - "device-public": "Dispositivo público" - }, - "dialog": { - "close": "Cerrar cuadro de diálogo" - }, - "error": { - "unable-to-connect": "Imposible conectar con el servidor! Por favor, revise su conexión a internet.", - "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):
{{widgetsList}}", - "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
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", - "type-lc-event": "Ciclo de vida", - "type-stats": "Estadísticas", - "no-events-prompt": "Ningún evento encontrado.", - "error": "Error", - "alarm": "Alarma", - "event-time": "Hora del evento", - "server": "Servidor", - "body": "Cuerpo", - "method": "Método", - "event": "Evento", - "status": "Status", - "success": "Éxito", - "failed": "Fallo", - "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", - "toggle": "Cambiar el modo de Pantalla Completa", - "fullscreen": "Pantalla Completa" - }, - "function": { - "function": "Función" - }, - "grid": { - "delete-item-title": "¿Estás seguro que quieres eliminar este item?", - "delete-item-text": "Ten cuidado, luego de confirmar el item será eliminado y la información relacionada será irrecuperable.", - "delete-items-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 item} other {# items} }?", - "delete-items-action-title": "Eliminar { count, select, 1 {1 item} other {# items} }", - "delete-items-text": "Ten cuidado, luego de confirmar los items seleccionados serán eliminados y la información relacionada será irrecuperable.", - "add-item-text": "Agregar nuevo item", - "no-items-text": "Ningún item encontrado", - "item-details": "Detalles del item", - "delete-item": "Borrar Item", - "delete-items": "Borrar Items", - "scroll-to-top": "Ir hacia arriba" - }, - "help": { - "goto-help-page": "Ir a Página de Ayuda" - }, - "home": { - "home": "Principal", - "profile": "Perfil", - "logout": "Salir", - "menu": "Menu", - "avatar": "Avatar", - "open-user-menu": "Abrir menú de usuario" - }, - "import": { - "no-file": "Ningún archivo seleccionado", - "drop-file": "Arrastra un archivo JSON o clickea para seleccionar uno." - }, - "item": { - "selected": "Seleccionado" - }, - "js-func": { - "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", - "show-min": "Mostrar mínimo", - "show-avg": "Mostrar promedio", - "show-total": "Mostrar total", - "settings": "Ajustes de leyenda.", - "min": "min", - "max": "max", - "avg": "prom", - "total": "total" - }, - "login": { - "login": "Ingresar", - "request-password-reset": "Pedir restablecer contraseña", - "reset-password": "Restablecer contraseña", - "create-password": "Crear contraseña", - "passwords-mismatch-error": "Las contraseñas deben ser las mismas!", - "password-again": "Reingresa la contraseña", - "sign-in": "Iniciar sesión", - "username": "Usuario (email)", - "remember-me": "Recordar", - "forgot-password": "¿Olvidaste tu contraseña?", - "password-reset": "Restablecer Contraseña", - "new-password": "Nueva contraseña", - "new-password-again": "Repita la nueva contraseña", - "password-link-sent-message": "Se ha enviado el enlace de restablecimiento de contraseña con éxito!", - "email": "Email" - }, - "position": { - "top": "Arriba", - "bottom": "Abajo", - "left": "Izquierda", - "right": "Derecha" - }, - "profile": { - "profile": "Perfil", - "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", - "add": "Agregar Tenant", - "admins": "Admins", - "manage-tenant-admins": "Gestionar administradores tenant", - "delete": "Eliminar tenant", - "add-tenant-text": "Agregar nuevo tenant", - "no-tenants-text": "Ningún tenant encontrado", - "tenant-details": "Detalles del Tenant", - "delete-tenant-title": "¿Estás seguro que quieres eliminar el tenant '{{tenantTitle}}'?", - "delete-tenant-text": "Ten cuidado, luego de confirmar el tenant será eliminado y la información relacionada será irrecuperable.", - "delete-tenants-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 tenant} other {# tenants} }?", - "delete-tenants-action-title": "Eliminar { count, select, 1 {1 tenant} other {# tenants} }", - "delete-tenants-text": "Ten cuidado, luego de confirmar los tenants seleccionados serán eliminados y la información relacionada será irrecuperable.", - "title": "Título", - "title-required": "Título requerido.", - "description": "Descripción" - }, - "timeinterval": { - "seconds-interval": "{ seconds, select, 1 {1 segundo} other {# segundos} }", - "minutes-interval": "{ minutes, select, 1 {1 minuto} other {# minutos} }", - "hours-interval": "{ hours, select, 1 {1 hora} other {# horas} }", - "days-interval": "{ days, select, 1 {1 día} other {# días} }", - "days": "Días", - "hours": "Horas", - "minutes": "Minutos", - "seconds": "Segundos", - "advanced": "Avanzado" - }, - "timewindow": { - "days": "{ days, select, 1 { día } other {# días } }", - "hours": "{ hours, select, 0 { horas } 1 {1 hora } other {# horas } }", - "minutes": "{ minutes, select, 0 { minutos } 1 {1 minuto } other {# minutos } }", - "seconds": "{ seconds, select, 0 { segundos } 1 {1 segundo } other {# segundos } }", - "realtime": "Tiempo-real", - "history": "Histórico", - "last-prefix": "último", - "period": "desde {{ startTime }} hasta {{ endTime }}", - "edit": "Editar ventana de tiempo", - "date-range": "Rango de fechas", - "last": "Últimos", - "time-period": "Período de tiempo" - }, - "user": { - "users": "Usuarios", - "customer-users": "Usuarios del Cliente", - "tenant-admins": "Tenant Admins", - "sys-admin": "Administrador del Sistema", - "tenant-admin": "Administrador Tenant", - "customer": "Cliente", - "anonymous": "Anónimo", - "add": "Agregar usuario", - "delete": "Eliminar usuario", - "add-user-text": "Agregar nuevo usuario", - "no-users-text": "Ningún usuario encontrado", - "user-details": "Detalles del usuario", - "delete-user-title": "¿Estás seguro que quieres eliminar el usuario '{{userEmail}}'?", - "delete-user-text": "Ten cuidado, luego de confirmar el usuario seleccionado será eliminado y la información relacionada será irrecuperable.", - "delete-users-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 usuario} other {# usuarios} }?", - "delete-users-action-title": "Borrar { count, select, 1 {1 usuario} other {# usuarios} }", - "delete-users-text": "Ten cuidado, luego de confirmar los usuarios seleccionados serán eliminados y la información relacionada será irrecuperable.", - "activation-email-sent-message": "Mail de activación enviado con éxito!", - "resend-activation": "Reenviar activación", - "email": "Email", - "email-required": "Email requerido.", - "first-name": "Nombre", - "last-name": "Apellido", - "description": "Descripción", - "default-dashboard": "Panel por defecto", - "always-fullscreen": "Siempre en pantalla completa" - }, - "value": { - "type": "Tipo de valor", - "string": "Cadena de texto", - "string-value": "Valor de cadena de texto", - "integer": "Nro entero", - "integer-value": "Valor de nro entero", - "invalid-integer-value": "Valor inválido", - "double": "Nro decimal", - "double-value": "Valor nro decimal", - "boolean": "Booleano", - "boolean-value": "Valor booleano", - "false": "Falso", - "true": "Verdadero" - }, - "widget": { - "widget-library": "Bibloteca de Widgets", - "widget-bundle": "Paquetes de Widgets", - "select-widgets-bundle": "Seleccionar paquete de widgets", - "management": "Gestión de Widgets", - "editor": "Editor de widgets", - "widget-type-not-found": "Problema al cargar la configuración del widget.
Probablemente asociado\n El tipo de widget fue eliminado.", - "widget-type-load-error": "Widget no pudo ser cargado debido a estos errores:", - "remove": "Eliminar widget", - "edit": "Editar widget", - "remove-widget-title": "¿Estás seguro que quieres eliminar el widget '{{widgetTitle}}'?", - "remove-widget-text": "Luego de confirmar el widget será eliminado y toda la información relacionada será irrecuperable..", - "timeseries": "Series de tiempo", - "latest-values": "Últimos valores", - "rpc": "Widget de control", - "static": "Widget estático", - "select-widget-type": "Seleccionar tipo de widget", - "missing-widget-title-error": "El titulo del widget debe ser especificado!", - "widget-saved": "Widget guardado", - "unable-to-save-widget-error": "Imposible guardar widget! Tiene errores!", - "save": "Guardar widget", - "saveAs": "Guardar widget como", - "save-widget-type-as": "Guardar tipo de widget como", - "save-widget-type-as-text": "Por favor, ingrese un nuevo titulo y/o seleccione un paquete de destino.", - "toggle-fullscreen": "Cambiar a pantalla completa", - "run": "Correr widget", - "title": "Titulo", - "title-required": "Titulo requerido.", - "type": "Tipo", - "resources": "Recursos", - "resource-url": "JavaScript/CSS URL", - "remove-resource": "Eliminar recurso", - "add-resource": "Agregar recurso", - "html": "HTML", - "tidy": "Tidy", - "css": "CSS", - "settings-schema": "Esquema de configuración", - "datakey-settings-schema": "Esquema de configuración de clave de datos", - "javascript": "Javascript", - "remove-widget-type-title": "¿Estás seguro que quieres eliminar el tipo del widget '{{widgetName}}'?", - "remove-widget-type-text": "Luego de confirmar el tipo será eliminado y la información relacionada será irrecuperable.", - "remove-widget-type": "Eliminar tipo de widget.", - "add-widget-type": "Agregar nuevo tipo de widget", - "widget-type-load-failed-error": "Error al cargar el tipo de widget!", - "widget-template-load-failed-error": "Error al cargar el template del widget!", - "add": "Agregar Widget", - "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", - "add": "Agregar paquete de widgets", - "delete": "Eliminar paquete de widgets", - "title": "Título", - "title-required": "Título requerido.", - "add-widgets-bundle-text": "Agregar nuevo paquete de widgets", - "no-widgets-bundles-text": "Ningún paquete de widgets encontrado", - "empty": "Paquete de widgets vacío.", - "details": "Detalles", - "widgets-bundle-details": "Detalles del paquete de Widgets", - "delete-widgets-bundle-title": "¿Estás seguro que desea eliminar el paquete de widgets '{{widgetsBundleTitle}}'?", - "delete-widgets-bundle-text": "Ten cuidado, luego de confirmar todos los paquetes seleccionados serán eliminados y su información relacionada será irrecuperable.", - "delete-widgets-bundles-title": "¿Estás seguro que deseas eliminar { count, select, 1 {1 paquete de widgets} other {# paquetes de widgets} }?", - "delete-widgets-bundles-action-title": "Eliminar { count, select, 1 {1 paquete de widgets} other {# paquetes de widgets} }", - "delete-widgets-bundles-text": "Ten cuidado, luego de confirmar todos los paquetes seleccionados serán eliminados y la información relacionada será irrecuperable.", - "no-widgets-bundles-matching": "Ningún paquete '{{widgetsBundle}}' encontrado.", - "widgets-bundle-required": "Paquete de widget requerido.", - "system": "Sistema", - "import": "Importar paquete de widgets", - "export": "Exportar paquete de widgets", - "export-failed-error": "Imposible exportar paquete de widgets: {{error}}", - "create-new-widgets-bundle": "Crear nuevo paquete de widgets", - "widgets-bundle-file": "Archivo de paquete de widgets", - "invalid-widgets-bundle-file-error": "Imposible importar paquete de widgets: Estructura de datos inválida." - }, - "widget-config": { - "data": "Datos", - "settings": "Ajustes", - "advanced": "Avanzado", - "title": "Titulo", - "general-settings": "Ajustes generales", - "display-title": "Mostrar titulo", - "drop-shadow": "Sombra", - "enable-fullscreen": "Habilitar pantalla completa", - "background-color": "Color de fondo", - "text-color": "Color del texto", - "padding": "Relleno", - "title-style": "Estilo de título", - "mobile-mode-settings": "Ajustes mobile.", - "order": "Orden", - "height": "Altura", - "units": "Caracter especial a mostrar en el siguiente valor", - "decimals": "Números de dígitos después de la coma", - "timewindow": "Ventana de tiempo", - "use-dashboard-timewindow": "Usar ventana de tiempo del Panel", - "display-legend": "Mostrar leyenda", - "datasources": "Set de datos", - "datasource-type": "Tipo", - "datasource-parameters": "Parámetros", - "remove-datasource": "Eliminar set de datos", - "add-datasource": "Agregar set de datos", - "target-device": "Dispositivo destino" - }, - "widget-type": { - "import": "Importar tipo de widget", - "export": "Exportar tipo de widget", - "export-failed-error": "Imposible exportar tipo de widget: {{error}}", - "create-new-widget-type": "Crear nuevo tipo de widget", - "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", - "ko_KR": "Coreano", - "zh_CN": "Chino", - "ru_RU": "Ruso", - "es_ES": "Español" - } - }; - angular.extend(locales, { 'es_ES': es_ES }); -} \ No newline at end of file diff --git a/ui/src/app/locale/locale.constant-es.json b/ui/src/app/locale/locale.constant-es.json new file mode 100644 index 0000000000..e12183afb7 --- /dev/null +++ b/ui/src/app/locale/locale.constant-es.json @@ -0,0 +1,1315 @@ +{ + "access": { + "unauthorized": "No autorizado", + "unauthorized-access": "Acceso no autorizado", + "unauthorized-access-text": "Debes iniciar sesión para tener acceso a este recurso!", + "access-forbidden": "Acceso Prohibido", + "access-forbidden-text": "No tienes derechos para acceder a esta ubicación!
Intenta iniciar sesión con otro usuario si todavía quieres acceder a esta ubicación.", + "refresh-token-expired": "La sesión ha expirado", + "refresh-token-failed": "No se puede actualizar la sesión" + }, + "action": { + "activate": "Activar", + "suspend": "Suspender", + "save": "Guardar", + "saveAs": "Guardar como", + "cancel": "Cancelar", + "ok": "OK", + "delete": "Borrar", + "add": "Agregar", + "yes": "Si", + "no": "No", + "update": "Actualizar", + "remove": "Eliminar", + "search": "Buscar", + "assign": "Asignar", + "unassign": "Cancelar asignación", + "share": "Compartir", + "make-private": "Hacer privado", + "apply": "Aplicar", + "apply-changes": "Aplicar cambios", + "edit-mode": "Modo Edición", + "enter-edit-mode": "Modo Edición", + "decline-changes": "Descartar cambios", + "close": "Cerrar", + "back": "Atrás", + "run": "Correr", + "sign-in": "Regístrate!", + "edit": "Editar", + "view": "Ver", + "create": "Crear", + "drag": "Arrastrar", + "refresh": "Refrescar", + "undo": "Deshacer", + "copy": "Copiar", + "paste": "Pegar", + "import": "Importar", + "export": "Exportar", + "share-via": "Compartir vía {{provider}}" + }, + "aggregation": { + "aggregation": "Agregación", + "function": "Función de Agregación", + "limit": "Valores Max", + "group-interval": "Intervalo de agrupación", + "min": "Min", + "max": "Max", + "avg": "Promedio", + "sum": "Suma", + "count": "Cuenta", + "none": "Ninguno" + }, + "admin": { + "general": "General", + "general-settings": "Ajustes General", + "outgoing-mail": "Mail de Salida", + "outgoing-mail-settings": "Ajustes del Mail de Salida", + "system-settings": "Sistema", + "test-mail-sent": "Mail de prueba enviado correctamente!", + "base-url": "URL Base", + "base-url-required": "URL Base requerida.", + "mail-from": "Mail Desde", + "mail-from-required": "Mail Desde requerido.", + "smtp-protocol": "Protocolo SMTP", + "smtp-host": "Host SMTP", + "smtp-host-required": "Host SMTP requerido.", + "smtp-port": "Puerto SMTP", + "smtp-port-required": "Debe ingresar un Puerto SMTP.", + "smtp-port-invalid": "No parece un Puerto SMTP valido.", + "timeout-msec": "Timeout (ms)", + "timeout-required": "Timeout requerido.", + "timeout-invalid": "No parece un Timeout valido.", + "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", + "attributes-scope": "Alcance de los atributos del dispositivo", + "scope-latest-telemetry": "Última telemetría", + "scope-client": "Atributos del Cliente", + "scope-server": "Atributos del Servidor", + "scope-shared": "Atributos Compartidos", + "add": "Agregar atributo", + "key": "Clave", + "key-required": "Clave del atributo requerida.", + "value": "Valor", + "value-required": "Valor del atributo requerido.", + "delete-attributes-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 atributo} other {# atributos} }?", + "delete-attributes-text": "Ten cuidado, luego de confirmar el atributo será eliminado, y la información relacionada será irrecuperable.", + "delete-attributes": "Borrar atributo", + "enter-attribute-value": "Ingresar valor del atributo", + "show-on-widget": "Mostrar en Widget", + "widget-mode": "Widget", + "next-widget": "Widget siguiente", + "prev-widget": "Widget anterior", + "add-to-dashboard": "Agregar al Panel", + "add-widget-to-dashboard": "Agregar widget al Panel", + "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.
¿Estás seguro que quieres abandonar la página?", + "title": "Cambios sin guardar" + }, + "contact": { + "country": "País", + "city": "Ciudad", + "state": "Estado/Provincia", + "postal-code": "Código Postal", + "postal-code-invalid": "Solo se permiten dígitos.", + "address": "Dirección", + "address2": "Dirección 2", + "phone": "Teléfono", + "email": "Email", + "no-address": "Sin Dirección" + }, + "common": { + "username": "Usuario", + "password": "Contraseña", + "enter-username": "Ingresa el nombre de usuario.", + "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", + "dashboard": "Panel del Cliente", + "dashboards": "Paneles del Cliente", + "devices": "Panel del Cliente", + "public-dashboards": "Paneles Públicos", + "public-devices": "Dispositivos Públicos", + "add": "Agregar cliente", + "delete": "Borrar cliente", + "manage-customer-users": "Gestionar usuarios del cliente", + "manage-customer-devices": "Gestionar dispositivos del cliente", + "manage-customer-dashboards": "Gestionar paneles del cliente", + "manage-public-devices": "Gestionar dispositivos públicos", + "manage-public-dashboards": "Gestionar paneles públicos", + "add-customer-text": "Agregar nuevo cliente", + "no-customers-text": "No se encontrar clientes", + "customer-details": "Detalles del cliente", + "delete-customer-title": "¿Estás seguro que quieres eliminar el cliente '{{customerTitle}}'?", + "delete-customer-text": "Ten cuidado, luego de confirmar el cliente será eliminado y toda la información relacionada será irrecuperable.", + "delete-customers-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 cliente} other {# clientes} }?", + "delete-customers-action-title": "Borrar { count, select, 1 {1 cliente} other {# clientes} }", + "delete-customers-text": "Ten cuidado, luego de confirmar todos los clientes seleccionados serán eliminados y su información relacionada será irrecuperable.", + "manage-users": "Gestionar usuarios", + "manage-devices": "Gestionar dispositivos", + "manage-dashboards": "Gestionar paneles", + "title": "Título", + "title-required": "Título requerido.", + "description": "Descripción" + }, + "datetime": { + "date-from": "Fecha desde", + "time-from": "Tiempo desde", + "date-to": "Fecha hasta", + "time-to": "Tiempo hasta" + }, + "dashboard": { + "dashboard": "Panel", + "dashboards": "Paneles", + "management": "Gestión de Paneles", + "view-dashboards": "Ver paneles", + "add": "Agregar Panel", + "assign-dashboard-to-customer": "Asignar panel(es) a cliente", + "assign-dashboard-to-customer-text": "Por favor, seleccione algún panel para asignar al Cliente.", + "assign-to-customer-text": "Por favor, seleccione algún cliente para asignar al(los) panel(es).", + "assign-to-customer": "Asignar a cliente", + "unassign-from-customer": "Desasignar del cliente", + "make-public": "Hacer panel público", + "make-private": "Hacer panel privado", + "no-dashboards-text": "Ningún panel encontrado", + "no-widgets": "Ningún widget configurado", + "add-widget": "Agregar nuevo widget", + "title": "Titulo", + "select-widget-title": "Seleccionar widget", + "select-widget-subtitle": "Lista de tipos de widgets", + "delete": "Eliminar panel", + "title-required": "Título requerido.", + "description": "Descripción", + "details": "Detalles", + "dashboard-details": "Detalles del panel", + "add-dashboard-text": "Agregar nuevo panel", + "assign-dashboards": "Asignar paneles", + "assign-new-dashboard": "Asignar nuevo panel", + "assign-dashboards-text": "Asignar { count, select, 1 {1 panel} other {# paneles} } al cliente", + "delete-dashboards": "Eliminar paneles", + "unassign-dashboards": "Desasignar paneles", + "unassign-dashboards-action-title": "Desasignar { count, select, 1 {1 paneles} other {# paneles} } del cliente", + "delete-dashboard-title": "¿Estás seguro que quieres eliminar el panel '{{dashboardTitle}}'?", + "delete-dashboard-text": "Ten cuidado, el panel seleccionado será eliminado y la información relacionada sera irrecuperable.", + "delete-dashboards-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 panel} other {# paneles} }?", + "delete-dashboards-action-title": "Eliminar { count, select, 1 {1 panel} other {# paneles} }", + "delete-dashboards-text": "Ten cuidado, los paneles seleccionados serán eliminados y la información relacionada será irrecuperable.", + "unassign-dashboard-title": "¿Estás seguro que quieres desasignar el panel '{{dashboardTitle}}'?", + "unassign-dashboard-text": "Luego de confirmar, el panel será desasignado y no podrá ser accesible por el cliente.", + "unassign-dashboard": "Desasignar panel", + "unassign-dashboards-title": "¿Estás seguro que quieres desasignar { count, select, 1 {1 panel} other {# paneles} }?", + "unassign-dashboards-text": "Luego de confirmar, los paneles seleccionados serán desasignados y no podrán ser accesibles por el cliente.", + "public-dashboard-title": "El panel ahora es público", + "public-dashboard-text": "Tu panel {{dashboardTitle}} es ahora público y podrá ser accedido desde: aquí:", + "public-dashboard-notice": "Nota: No olvides hacer públicos los dispositivos relacionados para acceder a sus datos.", + "make-private-dashboard-title": "¿Estás seguro que quieres hacer el panel '{{dashboardTitle}}' privado?", + "make-private-dashboard-text": "Luego de confirmar, el panel será privado y no podrá ser accesible por otros.", + "make-private-dashboard": "Hacer panel privado", + "socialshare-text": "'{{dashboardTitle}}' powered by ThingsBoard", + "socialshare-title": "'{{dashboardTitle}}' powered by ThingsBoard", + "select-dashboard": "Seleccionar panel", + "no-dashboards-matching": "Panel '{{entity}}' no encontrado.", + "dashboard-required": "Panel requerido.", + "select-existing": "Seleccionar paneles existentes", + "create-new": "Crear nuevo panel", + "new-dashboard-title": "Nuevo título", + "open-dashboard": "Abrir panel", + "set-background": "Definir fondo", + "background-color": "Color de fondo", + "background-image": "Imagen de fondo", + "background-size-mode": "Modo tamaño de fondo", + "no-image": "No se ha seleccionado ningúna imagen", + "drop-image": "Suelte una imagen o haga clic para seleccionar un archivo para cargar.", + "settings": "Ajustes", + "columns-count": "Número de columnas", + "columns-count-required": "Número de columnas requerido.", + "min-columns-count-message": "Solo se permite un número mínimo de 10 columnas.", + "max-columns-count-message": "Solo se permite un número máximo de 1000 columnas.", + "widgets-margins": "Margen entre widgets", + "horizontal-margin": "Margen horizontal", + "horizontal-margin-required": "Margen horizontal requerido.", + "min-horizontal-margin-message": "Solo se permite margen horizontal mínimo de 0.", + "max-horizontal-margin-message": "Solo se permite margen horizontal máximo de 50.", + "vertical-margin": "Margen vertical", + "vertical-margin-required": "Margen vertical requerido.", + "min-vertical-margin-message": "Solo se permite margen vertical mínimo de 0.", + "max-vertical-margin-message": "Solo se permite margen vertical máximo de 50.", + "display-title": "Mostrar título del panel", + "title-color": "Color del título", + "display-device-selection": "Mostrar selección de dispositivo", + "display-dashboard-timewindow": "Mostrar ventana de tiempo", + "display-dashboard-export": "Mostrar exportar", + "import": "Importar panel", + "export": "Exportar panel", + "export-failed-error": "Imposible exportar panel: {{error}}", + "create-new-dashboard": "Crear nuevo panel", + "dashboard-file": "Archivo del panel", + "invalid-dashboard-file-error": "Imposible importar panel: Estructura de datos inválida.", + "dashboard-import-missing-aliases-title": "Configurar alias utilizados por el panel importado", + "create-new-widget": "Crear nuevo widget", + "import-widget": "Importar widget", + "widget-file": "Archivo de widget", + "invalid-widget-file-error": "Imposible importar widget: Estructura de datos inválida.", + "widget-import-missing-aliases-title": "Configurar alias utilizados por el widget", + "open-toolbar": "Abrir toolbar del panel", + "close-toolbar": "Cerrar toolbar", + "configuration-error": "Error de configuración", + "alias-resolution-error-title": "Error de configuración de alias del panel", + "invalid-aliases-config": "No se puede encontrar ningún dispositivo que coincida con algunos de los alias de filtro.
Póngase en contacto con su administrador para resolver este problema.", + "select-devices": "Seleccionar dispositivos", + "assignedToCustomer": "Asignado al cliente", + "public": "Público", + "public-link": "Link público", + "copy-public-link": "Copiar link público", + "public-link-copied-message": "El link público del panel se ha copiado al portapapeles" + }, + "datakey": { + "settings": "Ajustes", + "advanced": "Avanzado", + "label": "Etiqueta", + "color": "Color", + "data-generation-func": "Función de generación de datos", + "use-data-post-processing-func": "Usar funcíon de post-procesamiendo de datos", + "configuration": "Ajustes de clave de datos", + "timeseries": "Serie de tiempos", + "attributes": "Atributos", + "timeseries-required": "Series de tiempo del dispositivo requerido.", + "timeseries-or-attributes-required": "Series de tiempo/Atributos requeridos.", + "function-types": "Tipos de funciones", + "function-types-required": "Tipos de funciones requerido." + }, + "datasource": { + "type": "Típo de fuente de datos", + "add-datasource-prompt": "Por favor, agrega una fuente de datos" + }, + "details": { + "edit-mode": "Modo Edición", + "toggle-edit-mode": "Ir a Modo Edición" + }, + "device": { + "device": "Dispositivo", + "device-required": "Dispositivo requerido.", + "devices": "Dispositivos", + "management": "Gestión de Dispositivos", + "view-devices": "Ver dispositivos", + "device-alias": "Alias de dispositivo", + "aliases": "Alias de dispositivos", + "no-alias-matching": "'{{alias}}' no encontrado.", + "no-aliases-found": "Ningún alias encontrado.", + "no-key-matching": "'{{key}}' no encontrado.", + "no-keys-found": "Ninguna clave encontrada.", + "create-new-alias": "Crear nuevo alias!", + "create-new-key": "Crear nueva clave!", + "duplicate-alias-error": "Alias duplicado '{{alias}}'.
El alias de los dispositivos deben ser únicos dentro del panel.", + "configure-alias": "Configurar alias '{{alias}}'", + "no-devices-matching": "No se encontró dispositivo '{{entity}}'", + "alias": "Alias", + "alias-required": "Alias de dispositivo requerido.", + "remove-alias": "Eliminar alias", + "add-alias": "Agregar alias", + "name-starts-with": "Nombre empieza con", + "device-list": "Lista de dispositivos", + "use-device-name-filter": "Usar filtro", + "device-list-empty": "Ningún dispositivo seleccionado.", + "device-name-filter-required": "Nombre de filtro requerido.", + "device-name-filter-no-device-matched": "Ningún dispositivo encontrado que comience con '{{device}}'.", + "add": "Agregar dispositivo", + "assign-to-customer": "Asignar a cliente", + "assign-device-to-customer": "Asignar dispositivo(s) a Cliente", + "assign-device-to-customer-text": "Por favor, seleccione los dispositivos que serán asignados al cliente", + "make-public": "Hacer dispositivo público", + "make-private": "Hacer dispositivo privado", + "no-devices-text": "Ningún dispositivo encontrado", + "assign-to-customer-text": "Por favor, seleccione el cliente para asignar el(los) dispositivo(s)", + "device-details": "Detalles del dispositivo", + "add-device-text": "Agregar nuevo dispositivo", + "credentials": "Credenciales", + "manage-credentials": "Gestionar credenciales", + "delete": "Eliminar dispositivo", + "assign-devices": "Asignar dispositivo", + "assign-devices-text": "Asignar { count, select, 1 {1 dispositivo} other {# dispositivos} } al cliente", + "delete-devices": "Eliminar dispositivo", + "unassign-from-customer": "Desasignar del cliente", + "unassign-devices": "Desasignar dispositivos", + "unassign-devices-action-title": "Desasignar { count, select, 1 {1 dispositivo} other {# dispositivos} } del cliente", + "assign-new-device": "Asignar nuevo dispositivo", + "make-public-device-title": "¿Estás seguro que quieres hacer el dispositivo '{{deviceName}}' público?", + "make-public-device-text": "Luego de confirmar, el dispositivo y la información relacionada serán públicos y podrá ser accesible por otros.", + "make-private-device-title": "¿Estás seguro que quieres hacer el dispositivo '{{deviceName}}' privado?", + "make-private-device-text": "Luego de confirmar, el dispositivo y la información relacionada serán privados y no podrá ser accesible por otros.", + "view-credentials": "Ver credenciales", + "delete-device-title": "¿Estás seguro que quieres eliminar el dispositivo '{{deviceName}}'?", + "delete-device-text": "Ten cuidado, luego de confirmar los dispositivos serán eliminados y la información relacionada será irrecuperable.", + "delete-devices-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 dispositivo} other {# dispositivos} }?", + "delete-devices-action-title": "Eliminar { count, select, 1 {1 dispositivo} other {# dispositivos} }", + "delete-devices-text": "Ten cuidado, luego de confirmar los dispositivos seleccionados serán eliminados y la información relacionada será irrecuperable.", + "unassign-device-title": "¿Estás seguro que quieres desasignar el dispositivo '{{deviceName}}'?", + "unassign-device-text": "Luego de confirmar el dispositivo será desasignado y no podrá ser accesible por el cliente.", + "unassign-device": "Desasignar dispositivo", + "unassign-devices-title": "¿Estás seguro que quieres desasignar { count, select, 1 {1 dispositivo} other {# dispositivos} }?", + "unassign-devices-text": "Luego de confirmar los dispositivos seleccionados serán desasignados y no podrán ser accedidos por el cliente.", + "device-credentials": "Credenciales del dispositivo", + "credentials-type": "Tipo de credencial", + "access-token": "Access token", + "access-token-required": "Access token requerido.", + "access-token-invalid": "Access token debe tener entre 1 a 20 caracteres.", + "rsa-key": "Clave pública RSA", + "rsa-key-required": "Clave pública RSA requerida.", + "secret": "Secreta", + "secret-required": "Secreta requerida.", + "name": "Nombre", + "name-required": "Nombre requerido.", + "description": "Descripción", + "events": "Eventos", + "details": "Detalles", + "copyId": "Copiar ID", + "copyAccessToken": "Copiar access token", + "idCopiedMessage": "Id del dispositivo copiado al portapapeles", + "accessTokenCopiedMessage": "Access token del dispositivo copiado al portapapeles", + "assignedToCustomer": "Asignado al cliente", + "unable-delete-device-alias-title": "Imposible eliminar alias del dispositivo", + "unable-delete-device-alias-text": "Alias '{{deviceAlias}}' no puede ser eliminado. Esta siendo usado por el(los) widget(s):
{{widgetsList}}", + "is-gateway": "Es gateway", + "public": "Público", + "device-public": "Dispositivo público" + }, + "dialog": { + "close": "Cerrar cuadro de diálogo" + }, + "error": { + "unable-to-connect": "Imposible conectar con el servidor! Por favor, revise su conexión a internet.", + "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):
{{widgetsList}}", + "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
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", + "type-lc-event": "Ciclo de vida", + "type-stats": "Estadísticas", + "no-events-prompt": "Ningún evento encontrado.", + "error": "Error", + "alarm": "Alarma", + "event-time": "Hora del evento", + "server": "Servidor", + "body": "Cuerpo", + "method": "Método", + "event": "Evento", + "status": "Status", + "success": "Éxito", + "failed": "Fallo", + "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", + "toggle": "Cambiar el modo de Pantalla Completa", + "fullscreen": "Pantalla Completa" + }, + "function": { + "function": "Función" + }, + "grid": { + "delete-item-title": "¿Estás seguro que quieres eliminar este item?", + "delete-item-text": "Ten cuidado, luego de confirmar el item será eliminado y la información relacionada será irrecuperable.", + "delete-items-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 item} other {# items} }?", + "delete-items-action-title": "Eliminar { count, select, 1 {1 item} other {# items} }", + "delete-items-text": "Ten cuidado, luego de confirmar los items seleccionados serán eliminados y la información relacionada será irrecuperable.", + "add-item-text": "Agregar nuevo item", + "no-items-text": "Ningún item encontrado", + "item-details": "Detalles del item", + "delete-item": "Borrar Item", + "delete-items": "Borrar Items", + "scroll-to-top": "Ir hacia arriba" + }, + "help": { + "goto-help-page": "Ir a Página de Ayuda" + }, + "home": { + "home": "Principal", + "profile": "Perfil", + "logout": "Salir", + "menu": "Menu", + "avatar": "Avatar", + "open-user-menu": "Abrir menú de usuario" + }, + "import": { + "no-file": "Ningún archivo seleccionado", + "drop-file": "Arrastra un archivo JSON o clickea para seleccionar uno." + }, + "item": { + "selected": "Seleccionado" + }, + "js-func": { + "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", + "show-min": "Mostrar mínimo", + "show-avg": "Mostrar promedio", + "show-total": "Mostrar total", + "settings": "Ajustes de leyenda.", + "min": "min", + "max": "max", + "avg": "prom", + "total": "total" + }, + "login": { + "login": "Ingresar", + "request-password-reset": "Pedir restablecer contraseña", + "reset-password": "Restablecer contraseña", + "create-password": "Crear contraseña", + "passwords-mismatch-error": "Las contraseñas deben ser las mismas!", + "password-again": "Reingresa la contraseña", + "sign-in": "Iniciar sesión", + "username": "Usuario (email)", + "remember-me": "Recordar", + "forgot-password": "¿Olvidaste tu contraseña?", + "password-reset": "Restablecer Contraseña", + "new-password": "Nueva contraseña", + "new-password-again": "Repita la nueva contraseña", + "password-link-sent-message": "Se ha enviado el enlace de restablecimiento de contraseña con éxito!", + "email": "Email" + }, + "position": { + "top": "Arriba", + "bottom": "Abajo", + "left": "Izquierda", + "right": "Derecha" + }, + "profile": { + "profile": "Perfil", + "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", + "add": "Agregar Tenant", + "admins": "Admins", + "manage-tenant-admins": "Gestionar administradores tenant", + "delete": "Eliminar tenant", + "add-tenant-text": "Agregar nuevo tenant", + "no-tenants-text": "Ningún tenant encontrado", + "tenant-details": "Detalles del Tenant", + "delete-tenant-title": "¿Estás seguro que quieres eliminar el tenant '{{tenantTitle}}'?", + "delete-tenant-text": "Ten cuidado, luego de confirmar el tenant será eliminado y la información relacionada será irrecuperable.", + "delete-tenants-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 tenant} other {# tenants} }?", + "delete-tenants-action-title": "Eliminar { count, select, 1 {1 tenant} other {# tenants} }", + "delete-tenants-text": "Ten cuidado, luego de confirmar los tenants seleccionados serán eliminados y la información relacionada será irrecuperable.", + "title": "Título", + "title-required": "Título requerido.", + "description": "Descripción" + }, + "timeinterval": { + "seconds-interval": "{ seconds, select, 1 {1 segundo} other {# segundos} }", + "minutes-interval": "{ minutes, select, 1 {1 minuto} other {# minutos} }", + "hours-interval": "{ hours, select, 1 {1 hora} other {# horas} }", + "days-interval": "{ days, select, 1 {1 día} other {# días} }", + "days": "Días", + "hours": "Horas", + "minutes": "Minutos", + "seconds": "Segundos", + "advanced": "Avanzado" + }, + "timewindow": { + "days": "{ days, select, 1 { día } other {# días } }", + "hours": "{ hours, select, 0 { horas } 1 {1 hora } other {# horas } }", + "minutes": "{ minutes, select, 0 { minutos } 1 {1 minuto } other {# minutos } }", + "seconds": "{ seconds, select, 0 { segundos } 1 {1 segundo } other {# segundos } }", + "realtime": "Tiempo-real", + "history": "Histórico", + "last-prefix": "último", + "period": "desde {{ startTime }} hasta {{ endTime }}", + "edit": "Editar ventana de tiempo", + "date-range": "Rango de fechas", + "last": "Últimos", + "time-period": "Período de tiempo" + }, + "user": { + "users": "Usuarios", + "customer-users": "Usuarios del Cliente", + "tenant-admins": "Tenant Admins", + "sys-admin": "Administrador del Sistema", + "tenant-admin": "Administrador Tenant", + "customer": "Cliente", + "anonymous": "Anónimo", + "add": "Agregar usuario", + "delete": "Eliminar usuario", + "add-user-text": "Agregar nuevo usuario", + "no-users-text": "Ningún usuario encontrado", + "user-details": "Detalles del usuario", + "delete-user-title": "¿Estás seguro que quieres eliminar el usuario '{{userEmail}}'?", + "delete-user-text": "Ten cuidado, luego de confirmar el usuario seleccionado será eliminado y la información relacionada será irrecuperable.", + "delete-users-title": "¿Estás seguro que quieres eliminar { count, select, 1 {1 usuario} other {# usuarios} }?", + "delete-users-action-title": "Borrar { count, select, 1 {1 usuario} other {# usuarios} }", + "delete-users-text": "Ten cuidado, luego de confirmar los usuarios seleccionados serán eliminados y la información relacionada será irrecuperable.", + "activation-email-sent-message": "Mail de activación enviado con éxito!", + "resend-activation": "Reenviar activación", + "email": "Email", + "email-required": "Email requerido.", + "first-name": "Nombre", + "last-name": "Apellido", + "description": "Descripción", + "default-dashboard": "Panel por defecto", + "always-fullscreen": "Siempre en pantalla completa" + }, + "value": { + "type": "Tipo de valor", + "string": "Cadena de texto", + "string-value": "Valor de cadena de texto", + "integer": "Nro entero", + "integer-value": "Valor de nro entero", + "invalid-integer-value": "Valor inválido", + "double": "Nro decimal", + "double-value": "Valor nro decimal", + "boolean": "Booleano", + "boolean-value": "Valor booleano", + "false": "Falso", + "true": "Verdadero" + }, + "widget": { + "widget-library": "Bibloteca de Widgets", + "widget-bundle": "Paquetes de Widgets", + "select-widgets-bundle": "Seleccionar paquete de widgets", + "management": "Gestión de Widgets", + "editor": "Editor de widgets", + "widget-type-not-found": "Problema al cargar la configuración del widget.
Probablemente asociado\n El tipo de widget fue eliminado.", + "widget-type-load-error": "Widget no pudo ser cargado debido a estos errores:", + "remove": "Eliminar widget", + "edit": "Editar widget", + "remove-widget-title": "¿Estás seguro que quieres eliminar el widget '{{widgetTitle}}'?", + "remove-widget-text": "Luego de confirmar el widget será eliminado y toda la información relacionada será irrecuperable..", + "timeseries": "Series de tiempo", + "latest-values": "Últimos valores", + "rpc": "Widget de control", + "static": "Widget estático", + "select-widget-type": "Seleccionar tipo de widget", + "missing-widget-title-error": "El titulo del widget debe ser especificado!", + "widget-saved": "Widget guardado", + "unable-to-save-widget-error": "Imposible guardar widget! Tiene errores!", + "save": "Guardar widget", + "saveAs": "Guardar widget como", + "save-widget-type-as": "Guardar tipo de widget como", + "save-widget-type-as-text": "Por favor, ingrese un nuevo titulo y/o seleccione un paquete de destino.", + "toggle-fullscreen": "Cambiar a pantalla completa", + "run": "Correr widget", + "title": "Titulo", + "title-required": "Titulo requerido.", + "type": "Tipo", + "resources": "Recursos", + "resource-url": "JavaScript/CSS URL", + "remove-resource": "Eliminar recurso", + "add-resource": "Agregar recurso", + "html": "HTML", + "tidy": "Tidy", + "css": "CSS", + "settings-schema": "Esquema de configuración", + "datakey-settings-schema": "Esquema de configuración de clave de datos", + "javascript": "Javascript", + "remove-widget-type-title": "¿Estás seguro que quieres eliminar el tipo del widget '{{widgetName}}'?", + "remove-widget-type-text": "Luego de confirmar el tipo será eliminado y la información relacionada será irrecuperable.", + "remove-widget-type": "Eliminar tipo de widget.", + "add-widget-type": "Agregar nuevo tipo de widget", + "widget-type-load-failed-error": "Error al cargar el tipo de widget!", + "widget-template-load-failed-error": "Error al cargar el template del widget!", + "add": "Agregar Widget", + "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", + "add": "Agregar paquete de widgets", + "delete": "Eliminar paquete de widgets", + "title": "Título", + "title-required": "Título requerido.", + "add-widgets-bundle-text": "Agregar nuevo paquete de widgets", + "no-widgets-bundles-text": "Ningún paquete de widgets encontrado", + "empty": "Paquete de widgets vacío.", + "details": "Detalles", + "widgets-bundle-details": "Detalles del paquete de Widgets", + "delete-widgets-bundle-title": "¿Estás seguro que desea eliminar el paquete de widgets '{{widgetsBundleTitle}}'?", + "delete-widgets-bundle-text": "Ten cuidado, luego de confirmar todos los paquetes seleccionados serán eliminados y su información relacionada será irrecuperable.", + "delete-widgets-bundles-title": "¿Estás seguro que deseas eliminar { count, select, 1 {1 paquete de widgets} other {# paquetes de widgets} }?", + "delete-widgets-bundles-action-title": "Eliminar { count, select, 1 {1 paquete de widgets} other {# paquetes de widgets} }", + "delete-widgets-bundles-text": "Ten cuidado, luego de confirmar todos los paquetes seleccionados serán eliminados y la información relacionada será irrecuperable.", + "no-widgets-bundles-matching": "Ningún paquete '{{widgetsBundle}}' encontrado.", + "widgets-bundle-required": "Paquete de widget requerido.", + "system": "Sistema", + "import": "Importar paquete de widgets", + "export": "Exportar paquete de widgets", + "export-failed-error": "Imposible exportar paquete de widgets: {{error}}", + "create-new-widgets-bundle": "Crear nuevo paquete de widgets", + "widgets-bundle-file": "Archivo de paquete de widgets", + "invalid-widgets-bundle-file-error": "Imposible importar paquete de widgets: Estructura de datos inválida." + }, + "widget-config": { + "data": "Datos", + "settings": "Ajustes", + "advanced": "Avanzado", + "title": "Titulo", + "general-settings": "Ajustes generales", + "display-title": "Mostrar titulo", + "drop-shadow": "Sombra", + "enable-fullscreen": "Habilitar pantalla completa", + "background-color": "Color de fondo", + "text-color": "Color del texto", + "padding": "Relleno", + "title-style": "Estilo de título", + "mobile-mode-settings": "Ajustes mobile.", + "order": "Orden", + "height": "Altura", + "units": "Caracter especial a mostrar en el siguiente valor", + "decimals": "Números de dígitos después de la coma", + "timewindow": "Ventana de tiempo", + "use-dashboard-timewindow": "Usar ventana de tiempo del Panel", + "display-legend": "Mostrar leyenda", + "datasources": "Set de datos", + "datasource-type": "Tipo", + "datasource-parameters": "Parámetros", + "remove-datasource": "Eliminar set de datos", + "add-datasource": "Agregar set de datos", + "target-device": "Dispositivo destino" + }, + "widget-type": { + "import": "Importar tipo de widget", + "export": "Exportar tipo de widget", + "export-failed-error": "Imposible exportar tipo de widget: {{error}}", + "create-new-widget-type": "Crear nuevo tipo de widget", + "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", + "ko_KR": "Coreano", + "zh_CN": "Chino", + "ru_RU": "Ruso", + "es_ES": "Español", + "it_IT": "Italiano" + } +} \ No newline at end of file diff --git a/ui/src/app/locale/locale.constant-it.js b/ui/src/app/locale/locale.constant-it.js deleted file mode 100644 index 17949405d4..0000000000 --- a/ui/src/app/locale/locale.constant-it.js +++ /dev/null @@ -1,1463 +0,0 @@ -/* - * Copyright © 2016-2018 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default function addLocaleItalian(locales) { - var it_IT = { - "access": { - "unauthorized": "Non autorizzato", - "unauthorized-access": "Accesso non autorizzato", - "unauthorized-access-text": "Devi effettuare il login per accedere a questa risorsa!", - "access-forbidden": "Accesso Vietato", - "access-forbidden-text": "Non hai i diritti di accesso a questa posizione!
Prova ad effettuare il login con un diverso account.", - "refresh-token-expired": "Sessione scaduta", - "refresh-token-failed": "Impossibile aggiornare la sessione" - }, - "action": { - "activate": "Attiva", - "suspend": "Sospendi", - "save": "Salva", - "saveAs": "Salva come", - "cancel": "Cancella", - "ok": "OK", - "delete": "Elimina", - "add": "Aggiungi", - "yes": "Sì", - "no": "No", - "update": "Aggiorna", - "remove": "Rimuovi", - "search": "Cerca", - "clear-search": "Cancella ricerca", - "assign": "Assegna", - "unassign": "Annulla assegnazione", - "share": "Condividi", - "make-private": "Rendi privato", - "apply": "Applica", - "apply-changes": "Applica modifiche", - "edit-mode": "Modalità modifica", - "enter-edit-mode": "Attiva la modalità di modifica", - "decline-changes": "Annulla le modifiche", - "close": "Chiudi", - "back": "Indietro", - "run": "Esegui", - "sign-in": "Registrati!", - "edit": "Modifica", - "view": "Visualizza", - "create": "Crea", - "drag": "Trascina", - "refresh": "Aggiorna", - "undo": "Annulla", - "copy": "Copia", - "paste": "Incolla", - "copy-reference": "Copia riferimento", - "paste-reference": "Incolla riferimento", - "import": "Importa", - "export": "Esporta", - "share-via": "Condividi con {{provider}}" - }, - "aggregation": { - "aggregation": "Aggregazione", - "function": "Funzione di aggregazione dei dati", - "limit": "Valori max", - "group-interval": "Intervallo di raggruppamento", - "min": "Min", - "max": "Max", - "avg": "Media", - "sum": "Somma", - "count": "Conteggio", - "none": "Nessuna" - }, - "admin": { - "general": "Generale", - "general-settings": "Impostazioni Generali", - "outgoing-mail": "Posta in uscita", - "outgoing-mail-settings": "Impostazioni Posta in uscita", - "system-settings": "Impostazioni di sistema", - "test-mail-sent": "Mail di test inviata con successo!", - "base-url": "URL di base", - "base-url-required": "URL di base obbligatoria.", - "mail-from": "Mittente", - "mail-from-required": "Mittente obbligatorio.", - "smtp-protocol": "Protocollo SMTP", - "smtp-host": "Host SMTP", - "smtp-host-required": "Host SMTP obbligatorio.", - "smtp-port": "Porta SMTP", - "smtp-port-required": "Porta SMTP obbligatoria.", - "smtp-port-invalid": "Numero di porta SMTP non valido.", - "timeout-msec": "Timeout (msec)", - "timeout-required": "Timeout obbligatorio.", - "timeout-invalid": "Timeout non valido.", - "enable-tls": "Abilita TLS", - "send-test-mail": "Invia mail di test" - }, - "alarm": { - "alarm": "Allarme", - "alarms": "Allarmi", - "select-alarm": "Seleziona un allarme", - "no-alarms-matching": "Nessun allarme corrispondente a '{{entity}}' è stato trovato.", - "alarm-required": "Allarme richiesto", - "alarm-status": "Stato Allarme", - "search-status": { - "ANY": "Qualsiasi", - "ACTIVE": "Attivo", - "CLEARED": "Cancellato", - "ACK": "Riconosciuto", - "UNACK": "Non riconosciuto" - }, - "display-status": { //TODO - "ACTIVE_UNACK": "Active Unacknowledged", - "ACTIVE_ACK": "Active Acknowledged", - "CLEARED_UNACK": "Cleared Unacknowledged", - "CLEARED_ACK": "Cleared Acknowledged" - }, - "no-alarms-prompt": "Nessun allarme trovato", - "created-time": "Orario di creazione", - "type": "Tipo", - "severity": "Gravità", - "originator": "Origine", - "originator-type": "Tipo origine", - "details": "Dettagli", - "status": "Stato", - "alarm-details": "Dettagli allarme", - "start-time": "Orario inizio", - "end-time": "Orario fine", - "ack-time": "Orario conferma", - "clear-time": "Orario cancellazione", - "severity-critical": "Critico", - "severity-major": "Maggiore", - "severity-minor": "Minore", - "severity-warning": "Avviso", - "severity-indeterminate": "Indeterminato", - "acknowledge": "Conferma", - "clear": "Cancella", - "search": "Ricerca allarmi", - "selected-alarms": "{ count, select, 1 {1 allarme selezionato} other {# allarmi selezionati} }", - "no-data": "Nessun dato da visualizzare", - "polling-interval": "Intervallo di polling (sec) Allarmi", - "polling-interval-required": "Intervallo di polling Allarmi richiesto.", - "min-polling-interval-message": "L'intervallo di polling deve essere di almeno 1 sec.", - "aknowledge-alarms-title": "Conferma { count, select, 1 {1 allarme} other {# allarmi} }", - "aknowledge-alarms-text": "Sei sicuro di voler confermare { count, select, 1 {1 allarme} other {# allarmi} }?", - "clear-alarms-title": "Elimina { count, select, 1 {1 allarme} other {# allarmi} }", - "clear-alarms-text": "Sei sicuro di voler eliminare { count, select, 1 {1 allarme} other {# allarmi} }?" - }, - "alias": { - "add": "Aggiungi alias", - "edit": "Modifica alias", - "name": "Nome Alias", - "name-required": "Nome Alias obbligatorio", - "duplicate-alias": "Un Alias con lo stesso nome è già presente.", - "filter-type-single-entity": "Singola entità", - "filter-type-entity-list": "Lista Entità", - "filter-type-entity-name": "Nome Entità", - "filter-type-state-entity": "Entity from dashboard state", //TODO - "filter-type-state-entity-description": "Entità prelevata dai parametri di stato della dashboard", - "filter-type-asset-type": "Tipo di Asset", - "filter-type-asset-type-description": "Asset di tipo '{{assetType}}'", - "filter-type-asset-type-and-name-description": "Asset di tipo '{{assetType}}' e con un nome che inizia per '{{prefix}}'", - "filter-type-device-type": "Tipo di dispositivo", - "filter-type-device-type-description": "Dispositivi di tipo '{{deviceType}}'", - "filter-type-device-type-and-name-description": "Dispositivi di tipo '{{deviceType}}' e con un nome che inizia per '{{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": "Filtro entità", - "resolve-multiple": "Resolve as multiple entities", - "filter-type": "Tipo di filtro", - "filter-type-required": "Tipo di filtro richiesto.", - "entity-filter-no-entity-matched": "Nessuna entità corrispondente al filtro specificato è stata trovata.", - "no-entity-filter-specified": "Nessun filtro di entità specificato", - "root-state-entity": "Use dashboard state entity as root", - "root-entity": "Entità radice", - "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": "Tutte le entità", - "any-relation": "qualsiasi" - }, - "asset": { - "asset": "Asset", - "assets": "Asset", - "management": "Gestione Asset", - "view-assets": "Visualizza Asset", - "add": "Aggiungi Asset", - "assign-to-customer": "Assegna a cliente", - "assign-asset-to-customer": "Assegna Asset al Cliente", - "assign-asset-to-customer-text": "Seleziona gli asset da assegnare al cliente", - "no-assets-text": "Nessun asset trovato", - "assign-to-customer-text": "Seleziona il cliente a cui assegnare l'asset / gli asset", - "public": "Pubblico", - "assignedToCustomer": "Assegnato al cliente", - "make-public": "Rendi pubblico l'asset", - "make-private": "Rendi privato l'asset", - "unassign-from-customer": "Assegnazione annullata dal cliente", - "delete": "Cancella asset", - "asset-public": "L'Asset è pubblico", - "asset-type": "Tipo di Asset", - "asset-type-required": "Tipo di Asset richiesto.", - "select-asset-type": "Seleziona tipo di asset", - "enter-asset-type": "Inserisci tipo di asset", - "any-asset": "Qualsiasi asset", - "no-asset-types-matching": "Nessun asset corrispondente al tipo '{{entitySubtype}}' è stato trovato.", - "asset-type-list-empty": "Nessun tipo di asset selezionato.", - "asset-types": "Tipi di Asset", - "name": "Nome", - "name-required": "Nome obbligatorio.", - "description": "Descrizione", - "type": "Tipo", - "type-required": "Tipo obbligatorio.", - "details": "Dettagli", - "events": "Eventi", - "add-asset-text": "Aggiungi un nuovo asset", - "asset-details": "Dettagli Asset", - "assign-assets": "Assegna asset", - "assign-assets-text": "Assegna { count, select, 1 {1 asset} other {# assets} } al cliente", - "delete-assets": "Cancella asset", - "unassign-assets": "Annulla assegnazione asset", - "unassign-assets-action-title": "Unassign { count, select, 1 {1 asset} other {# assets} } from customer", - "assign-new-asset": "Assegna un nuovo asset", - "delete-asset-title": "Sei sicuro di voler cancellare l'asset '{{assetName}}'?", - "delete-asset-text": "Attenzione, dopo la conferma l'asset e tutti i relativi dati non saranno più recuperabili.", - "delete-assets-title": "Sei sicuro di voler eliminare { count, select, 1 {1 asset} other {# asset} }?", - "delete-assets-action-title": "Elimina { count, select, 1 {1 asset} other {# asset} }", - "delete-assets-text": "Attenzione, dopo la modifica tutti gli asset selezionati saranno rimossi e tutti i relativi dati non saranno più recuperabili.", - "make-public-asset-title": "Sei sicuro di voler rendere pubblico l'asset '{{assetName}}'?", - "make-public-asset-text": "Dopo la conferma l'asset e tutti i suoi dati saranno resi pubblici e accessibili dagli altri.", - "make-private-asset-title": "Sei sicuro di voler rendere privato l'asset '{{assetName}}'?", - "make-private-asset-text": "Dopo la conferma l'asset e tutti i suoi dati saranno resi privati e non accessibili dagli altri.", - "unassign-asset-title": "Sei sicuro di voler annullare l'assegnazione dell'asset '{{assetName}}'?", - "unassign-asset-text": "Dopo la conferma l'assegnazione dell'asset sarà annullata e l'asset non sarà più accessibile dal cliente.", - "unassign-asset": "Annulla assegnazione asset", - "unassign-assets-title": "Sei sicuro di voler annullare l'assegnazione di { count, select, 1 {1 asset} other {# asset} }?", - "unassign-assets-text": "Dopo la conferma sarà annullata l'assegnazione di tutti gli asset selezionati e questi non saranno più accessibili dal cliente.", - "copyId": "Copia Id asset", - "idCopiedMessage": "Id Asset copiato negli Appunti", - "select-asset": "Seleziona asset", - "no-assets-matching": "Nessun asset corrispondente a '{{entity}}' é stato trovato.", - "asset-required": "Asset obbligatorio", - "name-starts-with": "Asset con nome che inizia per" - }, - "attribute": { - "attributes": "Attributi", - "latest-telemetry": "Ultima telemetria", - "attributes-scope": "Entity attributes scope", - "scope-latest-telemetry": "Ultima telemetria", - "scope-client": "Attributi client", - "scope-server": "Attributi server", - "scope-shared": "Attributi condivisi", - "add": "Aggiungi attributo", - "key": "Chiave", - "last-update-time": "Ultimo aggiornamento", - "key-required": "Attributo chiave richiesto.", - "value": "Valore", - "value-required": "Attributo valore richiesto.", - "delete-attributes-title": "Sei sicuro di voler eliminare { count, select, 1 {1 attributo} other {# attributi} }?", - "delete-attributes-text": "Attenzione, dopo la conferma tutti gli attributi selezionati saranno rimossi.", - "delete-attributes": "Elimina attributi", - "enter-attribute-value": "Inserisci il valore dell'attributo", - "show-on-widget": "Mostra sul widget", - "widget-mode": "Modalità Widget", - "next-widget": "Widget successivo", - "prev-widget": "Widget precedente", - "add-to-dashboard": "Aggiungi alla dashboard", - "add-widget-to-dashboard": "Aggiungi widget alla dashboard", - "selected-attributes": "{ count, select, 1 {1 attributo selezionato} other {# attributi selezionati} }", - "selected-telemetry": "{ count, select, 1 {1 unità di telemetria selezionata} other {# unità di telemetria selezionate} }" - }, - "audit-log": { - "audit": "Audit", - "audit-logs": "Audit Logs", - "timestamp": "Timestamp", - "entity-type": "Tipo Entità", - "entity-name": "Nome Entità", - "user": "Utente", - "type": "Tipo", - "status": "Stato", - "details": "Dettagli", - "type-added": "Aggiunto", - "type-deleted": "Eliminato", - "type-updated": "Aggiornato", - "type-attributes-updated": "Attributi aggiornati", - "type-attributes-deleted": "Attributi eliminati", - "type-rpc-call": "Chiamata RPC", - "type-credentials-updated": "Credenziali aggiornate", - "type-assigned-to-customer": "Assegnato al Cliente", - "type-unassigned-from-customer": "Assegnazione annullata dal Cliente", - "type-activated": "Attivato", - "type-suspended": "Sospeso", - "type-credentials-read": "Credenziali lette", - "type-attributes-read": "Attributi letti", - "status-success": "Success", - "status-failure": "Failure", - "audit-log-details": "Dettaglio log audit", - "no-audit-logs-prompt": "Log non trovati", - "action-data": "Action data", - "failure-details": "Failure details", - "search": "Riceraca log audit", - "clear-search": "Cancella ricerca" - }, - "confirm-on-exit": { - "message": "Alcune modifiche non sono state salvate. Sei sicuro di voler abbandonare questa pagina?", - "html-message": "Alcune modifiche non sono state salvate.
Sei sicuro di voler abbandonare questa pagina?", - "title": "Modifiche non salvate" - }, - "contact": { - "country": "Nazione", - "city": "Città", - "state": "Stato / Provincia", - "postal-code": "CAP", - "postal-code-invalid": "Formato CAP non valido.", - "address": "Indirizzo", - "address2": "Indirizzo 2", - "phone": "Telefono", - "email": "Email", - "no-address": "Nessun indirizzo" - }, - "common": { - "username": "Nome utente", - "password": "Password", - "enter-username": "Inserisci nome utente", - "enter-password": "Inserisci password", - "enter-search": "Enter search" - }, - "content-type": { - "json": "Json", - "text": "Testo", - "binary": "Binario (Base64)" - }, - "customer": { - "customer": "Cliente", - "customers": "Clienti", - "management": "Gestione cliente", - "dashboard": "Dashboard cliente", - "dashboards": "Dashboard cliente", - "devices": "Dispositivi cliente", - "assets": "Asset cliente", - "public-dashboards": "Dashboard pubbliche", - "public-devices": "Dispositivi pubblici", - "public-assets": "Asset pubblici", - "add": "Aggiungi cliente", - "delete": "Elimina cliente", - "manage-customer-users": "Gestisci utenti cliente", - "manage-customer-devices": "Gestisci dispositivi cliente", - "manage-customer-dashboards": "Gestisci dashboard cliente", - "manage-public-devices": "Gestisci dispositivi pubblici", - "manage-public-dashboards": "Gestisci dashboard pubbliche", - "manage-customer-assets": "Gestisci asset cliente", - "manage-public-assets": "Gestisci asset pubblici", - "add-customer-text": "Aggiungi nuovo cliente", - "no-customers-text": "Nessun cliente trovato", - "customer-details": "Dettagli cliente", - "delete-customer-title": "Sei sicuro di voler eliminare il cliente '{{customerTitle}}'?", - "delete-customer-text": "Attenzione, dopo la conferma il cliente e tutti i suoi dati non saranno più recuperabili.", - "delete-customers-title": "Sei sicuro di voler cancellare { count, select, 1 {1 cliente} other {# clienti} }?", - "delete-customers-action-title": "Elimina { count, select, 1 {1 cliente} other {# clienti} }", - "delete-customers-text": "Attenzione, dopo la conferma tutti i clienti selezionati saranno rimossi e i loro dati non saranno più recuperabili.", - "manage-users": "Gestisci utenti", - "manage-assets": "Gestisci asset", - "manage-devices": "Gestisci dispositivi", - "manage-dashboards": "Gestisci dashboard", - "title": "Titolo", - "title-required": "Titolo obbligatorio.", - "description": "Descrizione", - "details": "Dettagli", - "events": "Eventi", - "copyId": "Copia Id cliente", - "idCopiedMessage": "Id cliente copiato negli appunti", - "select-customer": "Seleziona cliente", - "no-customers-matching": "Nessun cliente corrispondente a '{{entity}}' è stato trovato.", - "customer-required": "Cliente obbligatorio", - "select-default-customer": "Seleziona cliente di default", - "default-customer": "Cliente di default", - "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level" - }, - "datetime": { - "date-from": "Data da", - "time-from": "Orario da", - "date-to": "Data a", - "time-to": "Orario a" - }, - "dashboard": { - "dashboard": "Dashboard", - "dashboards": "Dashboard", - "management": "Gestione Dashboard", - "view-dashboards": "Mostra Dashboard", - "add": "Aggiungi Dashboard", - "assign-dashboard-to-customer": "Assegna Dashboard al cliente", - "assign-dashboard-to-customer-text": "Seleziona le dashboard da assegnare al client", - "assign-to-customer-text": "Seleziona il cliente a cui assegnare la/le dashboard", - "assign-to-customer": "Assegna al cliente", - "unassign-from-customer": "Unassign from customer", - "make-public": "Rendi pubblica la dashboard", - "make-private": "Rendi privata la dashboard", - "manage-assigned-customers": "Gestisci i clienti assegnati", - "assigned-customers": "Clienti assegnati", - "assign-to-customers": "Assegna Dashboard ai Clienti", - "assign-to-customers-text": "Seleziona i clienti da assegnare alla/alle dashboard", - "unassign-from-customers": "Unassign Dashboard(s) From Customers", - "unassign-from-customers-text": "Seleziona i clienti di cui annullare l'assegnazione alla/alle dashboard", - "no-dashboards-text": "Nessuna dashboard trovata", - "no-widgets": "Nessun widget configurato", - "add-widget": "Aggiungi nuovo widget", - "title": "Titolo", - "select-widget-title": "Seleziona widget", - "select-widget-subtitle": "Elenco tipi di widget disponibili", - "delete": "Elimina dashboard", - "title-required": "Titolo obbligatorio.", - "description": "Descrizione", - "details": "Dettagli", - "dashboard-details": "Dettagli Dashboard", - "add-dashboard-text": "Aggiungi nuova dashboard", - "assign-dashboards": "Assegna dashboard", - "assign-new-dashboard": "Assegna nuova dashboard", - "assign-dashboards-text": "Assegna { count, select, 1 {1 dashboard} other {# dashboard} } ai clienti", - "unassign-dashboards-action-text": "Annulla assegnazione { count, select, 1 {1 dashboard} other {# dashboards} } ai clienti", - "delete-dashboards": "Elimina dashboard", - "unassign-dashboards": "Annulla assegnazione dashboard", - "unassign-dashboards-action-title": "Annulla assegnazione { count, select, 1 {1 dashboard} other {# dashboards} } al cliente", - "delete-dashboard-title": "Sei sicuro di voler cancellare la dashboard '{{dashboardTitle}}'?", - "delete-dashboard-text": "Attenzione, dopo la conferma la dashboard e tutti i suoi dati non saranno più recuperabili.", - "delete-dashboards-title": "Sei sicuro di voler eliminare { count, select, 1 {1 dashboard} other {# dashboard} }?", - "delete-dashboards-action-title": "Cancella { count, select, 1 {1 dashboard} other {# dashboard} }", - "delete-dashboards-text": "Attenzione, dopo la conferma tutte le dashboard selezionate saranno eliminate e tutti i loro dati non saranno più recuperabili.", - "unassign-dashboard-title": "Sei sicuro di voler annullare l'assegnazione della dashboard '{{dashboardTitle}}'?", - "unassign-dashboard-text": "Dopo la conferma sarà annullata l'assegnazione della dashboard e questa non sarà più accessibile dal cliente.", - "unassign-dashboard": "Annulla assegnazione dashboard", - "unassign-dashboards-title": "Sei sicuro di voler annullare l'assegnazione di { count, select, 1 {1 dashboard} other {# dashboard} }?", - "unassign-dashboards-text": "Dopo la conferma sarà annullata l'assegnazione di tutte le dashboards selezionate e queste non saranno più accessibili dal cliente.", - "public-dashboard-title": "La Dashboard è ora pubblica", - "public-dashboard-text": "La dashboard {{dashboardTitle}} è ora pubblica e accessibile al link:", - "public-dashboard-notice": "Nota: Ricorda di rendere pubblici i relativi dispositivi per accedere ai loro dati.", - "make-private-dashboard-title": "Sei sicuro di voler rendere privata la dashboard '{{dashboardTitle}}'?", - "make-private-dashboard-text": "Dopo la conferma la dashboard sarà resa privata e non più accessibile dagli altri.", - "make-private-dashboard": "Rendi privata la dashboard", - "socialshare-text": "'{{dashboardTitle}}' powered by ThingsBoard", - "socialshare-title": "'{{dashboardTitle}}' powered by ThingsBoard", - "select-dashboard": "Seleziona dashboard", - "no-dashboards-matching": "Nessuna dashboard corrispondente a '{{entity}}' è stata trovata.", - "dashboard-required": "Dashboard obbligatoria.", - "select-existing": "Seleziona una dashboard esistente", - "create-new": "Crea nuova dashboard", - "new-dashboard-title": "Titolo nuova dashboard", - "open-dashboard": "Apri dashboard", - "set-background": "Imposta sfondo", - "background-color": "Colore sfondo", - "background-image": "Immagine sfondo", - "background-size-mode": "Background size mode", - "no-image": "Nessuna immagine selezionata", - "drop-image": "Trascina un'immagine o fai clic per selezionare un file da caricare.", - "settings": "Impostazioni", - "columns-count": "Numero colonne", - "columns-count-required": "Numero colonne obbligatorio.", - "min-columns-count-message": "Ammesso un numero minimo di colonne pari a 10.", - "max-columns-count-message": "Ammesso un numero massimo di colonne pari a 1000.", - "widgets-margins": "Margine tra i widget", - "horizontal-margin": "Margine orizzontale", - "horizontal-margin-required": "Margine orizzontale obbligatorio.", - "min-horizontal-margin-message": "Ammesso un margine orizzontale minimo pari a 0.", - "max-horizontal-margin-message": "Ammesso un margine orizzontale massimo pari a 50.", - "vertical-margin": "Margine verticale", - "vertical-margin-required": "Margine verticale obbligatorio.", - "min-vertical-margin-message": "Ammesso un margine verticale minimo pari a 0.", - "max-vertical-margin-message": "Ammesso un margine verticale massimo pari a 50.", - "autofill-height": "Auto fill layout height", - "mobile-layout": "Impostazioni layout mobile", - "mobile-row-height": "Mobile row height, px", - "mobile-row-height-required": "Mobile row height value is required.", - "min-mobile-row-height-message": "Only 5 pixels is allowed as minimum mobile row height value.", - "max-mobile-row-height-message": "Only 200 pixels is allowed as maximum mobile row height value.", - "display-title": "Mostra titolo dashboard", - "toolbar-always-open": "Mantieni aperta la barra degli strumenti", - "title-color": "Colore titolo", - "display-dashboards-selection": "Mostra selezione dashboard", - "display-entities-selection": "Mostra selezione entità", - "display-dashboard-timewindow": "Display timewindow", - "display-dashboard-export": "Mostra esportazione", - "import": "Importa dashboard", - "export": "Esporta dashboard", - "export-failed-error": "Impossibile esportare la dashboard: {{error}}", - "create-new-dashboard": "Crea nuova dashboard", - "dashboard-file": "File dashboard", - "invalid-dashboard-file-error": "Impossibile importare la dashboard: struttura dati della dashboard non valida.", - "dashboard-import-missing-aliases-title": "Configura alias utilizzati dalla dashboard importata", - "create-new-widget": "Crea nuovo widget", - "import-widget": "Importa widget", - "widget-file": "Widget file", - "invalid-widget-file-error": "Impossibile importare il widget: struttura dati del widget non valida.", - "widget-import-missing-aliases-title": "Configura gli alias utilizzati dai widget importati", - "open-toolbar": "Apri barra degli strumenti", - "close-toolbar": "Chiudi barra degli strumenti", - "configuration-error": "Errore di configurazione", - "alias-resolution-error-title": "Errore di configurazione degli alias della dashboard", - "invalid-aliases-config": "Impossibile trovare un dispositivo corrispondente ad un qualche filtro degli alias.
" + - "Contatta l'amministratore per risolvere il problema.", - "select-devices": "Seleziona dispositivi", - "assignedToCustomer": "Assegnato al cliente", - "assignedToCustomers": "Assegnato ai clienti", - "public": "Pubblico", - "public-link": "Link pubblico", - "copy-public-link": "Copia link pubblico", - "public-link-copied-message": "Link pubblico della dashboard copiato negli appunti", - "manage-states": "Manage dashboard states", - "states": "Dashboard states", - "search-states": "Search dashboard states", - "selected-states": "{ count, select, 1 {1 dashboard state} other {# dashboard states} } selected", - "edit-state": "Edit dashboard state", - "delete-state": "Delete dashboard state", - "add-state": "Add dashboard state", - "state": "Dashboard state", - "state-name": "Nome", - "state-name-required": "Dashboard state name is required.", - "state-id": "State Id", - "state-id-required": "Dashboard state id is required.", - "state-id-exists": "Dashboard state with the same id is already exists.", - "is-root-state": "Root state", - "delete-state-title": "Delete dashboard state", - "delete-state-text": "Are you sure you want delete dashboard state with name '{{stateName}}'?", - "show-details": "Mostra dettagli", - "hide-details": "Nascondi dettagli", - "select-state": "Select target state", - "state-controller": "Stato controller" - }, - "datakey": { - "settings": "Impostazioni", - "advanced": "Avanzate", - "label": "Etichetta", - "color": "Colore", - "units": "Simbolo speciale da mostrare accanto al valore", - "decimals": "Numero cifre decimali", - "data-generation-func": "Funzione generazione dati", - "use-data-post-processing-func": "Use data post-processing function", - "configuration": "Data key configuration", - "timeseries": "Serie temporali", - "attributes": "Attributi", - "alarm": "Campi allarme", - "timeseries-required": "Entity timeseries are required.", - "timeseries-or-attributes-required": "Entity timeseries/attributes are required.", - "maximum-timeseries-or-attributes": "Maximum { count, select, 1 {1 timeseries/attribute is allowed.} other {# timeseries/attributes are allowed} }", - "alarm-fields-required": "Campi allarme obbligatori.", - "function-types": "Tipi funzione", - "function-types-required": "Tipi funzione obbligatorio.", - "maximum-function-types": "Massimo { count, select, 1 {1 tipo di funzione consentito.} other {# tipi di funzione consentiti} }" - }, - "datasource": { - "type": "Tipo sorgente dati", - "name": "Nome", - "add-datasource-prompt": "Aggiungi una sorgente dati" - }, - "details": { - "edit-mode": "Modalità modifica", - "toggle-edit-mode": "Toggle edit mode" - }, - "device": { - "device": "Dispositivo", - "device-required": "Dispositivo richiesto.", - "devices": "Dispositivi", - "management": "Gestione dispositivo", - "view-devices": "Visualizza Dispositivi", - "device-alias": "Alias dispositivo", - "aliases": "Alias dispositivo", - "no-alias-matching": "'{{alias}}' non trovato.", - "no-aliases-found": "Nessun alias trovato.", - "no-key-matching": "'{{key}}' non trovata.", - "no-keys-found": "Nessuna chiave trovata.", - "create-new-alias": "Create a new one!", - "create-new-key": "Create a new one!", - "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
Device aliases must be unique whithin the dashboard.", - "configure-alias": "Configura alias '{{alias}}'", - "no-devices-matching": "Nessun dispositivo corrispondente a '{{entity}}' é stato trovato.", - "alias": "Alias", - "alias-required": "Alias dispositivo richesto.", - "remove-alias": "Rimuovi alias dispositivo", - "add-alias": "Aggiungi alias dispositivo", - "name-starts-with": "Device name starts with", - "device-list": "Lista dispositivi", - "use-device-name-filter": "Usa filtro", - "device-list-empty": "Nessun dispositivo selezionato.", - "device-name-filter-required": "Device name filter is required.", - "device-name-filter-no-device-matched": "No devices starting with '{{device}}' were found.", - "add": "Aggiungi Dispositivo", - "assign-to-customer": "Assigna al cliente", - "assign-device-to-customer": "Assegna dispositivo/dispositivi al Cliente", - "assign-device-to-customer-text": "Seleziona i dispositivi da assegnare al cliente", - "make-public": "Rendi pubblico il dispositivo", - "make-private": "rendi privato il dispositivo", - "no-devices-text": "Nessun dispositivo trovato", - "assign-to-customer-text": "Seleziona il cliente a cui assegnare il dispositivo/i dispositivi", - "device-details": "Dettagli dispositivo", - "add-device-text": "Aggiungi nuovo dispositivo", - "credentials": "Credenziali", - "manage-credentials": "Gestisci credenziali", - "delete": "Elimina dispositivo", - "assign-devices": "Assegna dispositivi", - "assign-devices-text": "Assegna { count, select, 1 {1 dispositivo} other {# dispositivi} } al cliente", - "delete-devices": "Elimina dispositivi", - "unassign-from-customer": "Annulla assegnazione al cliente", - "unassign-devices": "Annulla assegnazione dispositivi", - "unassign-devices-action-title": "Annulla assegnazione { count, select, 1 {1 dispositivo} other {# dispositivi} } al cliente", - "assign-new-device": "Assegna nuovo dispositivo", - "make-public-device-title": "Sei sicuro di voler rendere pubblico il dispositivo '{{deviceName}}'?", - "make-public-device-text": "Dopo la conferma il dispositivo e tutti i suoi dati saranno resi pubblici e accessibili dagli altri.", - "make-private-device-title": "Sei sicuro di voler rendere privato il dispositivo '{{deviceName}}'?", - "make-private-device-text": "Dopo la conferma il dispositivo e tutti i suoi dati saranno resi privati e non più accessibili da altri utenti.", - "view-credentials": "Visualizza credenziali", - "delete-device-title": "Sei sicuro di voler eliminare il dispositivo '{{deviceName}}'?", - "delete-device-text": "Attenzione, dopo la conferma il dispositivo e tutti i suoi dati non saranno più recuperabili.", - "delete-devices-title": "Sei sicuro di voler eliminare { count, select, 1 {1 dispositivo} other {# dispositivi} }?", - "delete-devices-action-title": "Elimina { count, select, 1 {1 dispositivo} other {# dispositivi} }", - "delete-devices-text": "Attenzione, dopo la conferma tutti i dispositivi selezionati saranno elimininati e i relativi dati non saranno più recuperabili.", - "unassign-device-title": "Sei sicuro di voler annullare l'assegnazione del dispositivo '{{deviceName}}'?", - "unassign-device-text": "Dopo la conferma sarà annullata l'assegnazione del dispositivo e questo non sarà più accessibile dal cliente.", - "unassign-device": "Annulla assegnazione dispositivo", - "unassign-devices-title": "Sei sicuro di voler annullare la'ssegnazione di { count, select, 1 {1 dispositivo} other {# dispositivi} }?", - "unassign-devices-text": "Dopo la conferma sarà annullata l'assegnazione di tutti i dispositivi selezionati e questi non saranno più accessibili dal cliente.", - "device-credentials": "Credenziali Dispositivo", - "credentials-type": "Tipo credenziali", - "access-token": "Token di accesso", - "access-token-required": "Token di accesso obbligatorio.", - "access-token-invalid": "Il token di accesso deve avere una lunghezza compresa tra 1 e 20 caratteri.", - "rsa-key": "Chiave pubblica RSA", - "rsa-key-required": "Chiave pubblica RSA obbligatoria.", - "secret": "Secret", - "secret-required": "Secret obbligatorio.", - "device-type": "Tipo dispositivo", - "device-type-required": "Tipo dispositivo obbligatorio.", - "select-device-type": "Seleziona tipo dispositivo", - "enter-device-type": "Inserisci typo dispositivo", - "any-device": "Qualsiasi dispositivo", - "no-device-types-matching": "Nessun dispositivo corrispondente a '{{entitySubtype}}' è stato trovato.", - "device-type-list-empty": "Nessun tipo di dispositivo selezionato.", - "device-types": "Tipi dispositivo", - "name": "Nome", - "name-required": "Nome obbligatorio.", - "description": "Descrizione", - "events": "Eventi", - "details": "Dettagli", - "copyId": "Copia Id dispositivo", - "copyAccessToken": "Copia token di accesso", - "idCopiedMessage": "Id dispositivo copiato negli Appunti", - "accessTokenCopiedMessage": "Token di accesso del dispositivo copiato negli Appunti", - "assignedToCustomer": "Assegnato al cliente", - "unable-delete-device-alias-title": "Impossibile rimuovere l'alias del dispositivo", - "unable-delete-device-alias-text": "L'alias del dispositivo '{{deviceAlias}}' non può essere eliminato perchè utilizzato dai seguenti widget:
{{widgetsList}}", - "is-gateway": "E' un gateway", - "public": "Pubblico", - "device-public": "Il dispositivo è pubblico", - "select-device": "Seleziona dispositivo" - }, - "dialog": { - "close": "Close dialog" - }, - "error": { - "unable-to-connect": "Impossibile connettersi al server! Controlla la connessione ad Internet.", - "unhandled-error-code": "Codice errore non gestito: {{errorCode}}", - "unknown-error": "Errore sconosciuto" - }, - "entity": { - "entity": "Entità", - "entities": "Entità", - "aliases": "Alias entità", - "entity-alias": "Alias entità", - "unable-delete-entity-alias-title": "Impossibile eliminare alias entità", - "unable-delete-entity-alias-text": "L'alias dell'entità '{{entityAlias}}' non può essere eliminato perchè utilizzato dai seguenti widget:
{{widgetsList}}", - "duplicate-alias-error": "Trovato un duplicato dell'alias '{{alias}}'.
Gli alias dell'entità devono essere univoci all'interno della dashboard.", - "missing-entity-filter-error": "Filter is missing for alias '{{alias}}'.", - "configure-alias": "Configura '{{alias}}' alias", - "alias": "Alias", - "alias-required": "Alias entità obbligatorio.", - "remove-alias": "Rimuovi alias entità", - "add-alias": "Aggiungi alias entità", - "entity-list": "Lista entità", - "entity-type": "Tipo entità", - "entity-types": "Tipi entità", - "entity-type-list": "Lista tipo entità", - "any-entity": "Qualsiasi entità", - "enter-entity-type": "Inserisci tipo entità", - "no-entities-matching": "Nessuna entità corrispondente a '{{entity}}' è stata trovata.", - "no-entity-types-matching": "Nessun tipo di entità corrispondente a '{{entityType}}' è stato trovato.", - "name-starts-with": "Nome inizia per", - "use-entity-name-filter": "Usa filtro", - "entity-list-empty": "Nessuna entità selezionata.", - "entity-type-list-empty": "Nessun tipo di entità selezionato.", - "entity-name-filter-required": "Filtro nome entità obbligatorio.", - "entity-name-filter-no-entity-matched": "No entities starting with '{{entity}}' were found.", - "all-subtypes": "Tutte", - "select-entities": "Seleziona entità", - "no-aliases-found": "Nessun alias trovato.", - "no-alias-matching": "'{{alias}}' non trovato.", - "create-new-alias": "Create a new one!", - "key": "Chiave", - "key-name": "Nome chiave", - "no-keys-found": "Nessuna chiave trovata.", - "no-key-matching": "'{{key}}' non trovata.", - "create-new-key": "Create a new one!", - "type": "Tipo", - "type-required": "Tipo entità obbligatorio.", - "type-device": "Dispositivo", - "type-devices": "Dispositivi", - "list-of-devices": "{ count, select, 1 {Un dispositivo} other {Lista di # dispositivi} }", - "device-name-starts-with": "Dispositivi i cui nomi iniziano per '{{prefix}}'", - "type-asset": "Asset", - "type-assets": "Asset", - "list-of-assets": "{ count, select, 1 {Un asset} other {Lista di # asset} }", - "asset-name-starts-with": "Asset i cui nomi iniziano per '{{prefix}}'", - "type-rule": "Regola", - "type-rules": "Regole", - "list-of-rules": "{ count, select, 1 {Una regola} other {Lista di # regole} }", - "rule-name-starts-with": "Regole i cui nomi iniziano per '{{prefix}}'", - "type-plugin": "Plugin", - "type-plugins": "Plugin", - "list-of-plugins": "{ count, select, 1 {Un plugin} other {Lista di # plugin} }", - "plugin-name-starts-with": "Plugin i cui nomi iniziano per '{{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": "Cliente", - "type-customers": "Clienti", - "list-of-customers": "{ count, select, 1 {Un cliente} other {Lista di # clienti} }", - "customer-name-starts-with": "Clienti i cui nomi iniziano per '{{prefix}}'", - "type-user": "Utente", - "type-users": "Utenti", - "list-of-users": "{ count, select, 1 {Un utente} other {Lista of # utenti} }", - "user-name-starts-with": "Utenti i cui nomi iniziano per '{{prefix}}'", - "type-dashboard": "Dashboard", - "type-dashboards": "Dashboard", - "list-of-dashboards": "{ count, select, 1 {Una dashboard} other {Lista di # dashboard} }", - "dashboard-name-starts-with": "Dashboard i cui nomi iniziano per '{{prefix}}'", - "type-alarm": "Allarme", - "type-alarms": "Allarmi", - "list-of-alarms": "{ count, select, 1 {Un allarme} other {Lista di # allarmi} }", - "alarm-name-starts-with": "Allarmi i cui nomi iniziano per '{{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": "Ricerca entità", - "selected-entities": "{ count, select, 1 {1 entità selezionata} other {# entità selezionate} }", - "entity-name": "Nome entità", - "details": "Dettagli entità", - "no-entities-prompt": "Nessuna entità trovata", - "no-data": "Nessun dato da mostrare" - }, - "event": { - "event-type": "Tipo evento", - "type-error": "Errore", - "type-lc-event": "Ciclo di vita evento", - "type-stats": "Statistiche", - "type-debug-rule-node": "Debug", - "type-debug-rule-chain": "Debug", - "no-events-prompt": "Nessun evento trovato", - "error": "Errore", - "alarm": "Allarme", - "event-time": "Orario evento", - "server": "Server", - "body": "Body", - "method": "Metodo", - "type": "Tipo", - "entity": "Entità", - "message-id": "Id Messaggio", - "message-type": "Tipo Messaggio", - "data-type": "Data Type", - "relation-type": "Tipo di relazione", - "metadata": "Metadati", - "data": "Dati", - "event": "Evento", - "status": "Stato", - "success": "Success", - "failed": "Failed", - "messages-processed": "Messaggi elaborati", - "errors-occurred": "Si sono verificati degli errori" - }, - "extension": { - "extensions": "Estensioni", - "selected-extensions": "{ count, select, 1 {1 estensione selezionata} other {# estensioni selezionate} }", - "type": "Tipo", - "key": "Chiave", - "value": "Valore", - "id": "Id", - "extension-id": "Id Estensione", - "extension-type": "Tipo Estensione", - "transformer-json": "JSON *", - "unique-id-required": "Id estensione corrente già esistente.", - "delete": "Elimina estensione", - "add": "Aggiungi estensione", - "edit": "Modifica estensione", - "delete-extension-title": "Sei sicuro di voler eliminare l'estensione '{{extensionId}}'?", - "delete-extension-text": "Attenzione, dopo la conferma l'estensione e tutti i suoi data non saranno più recuperabili.", - "delete-extensions-title": "Sei sicuro di voler eliminare { count, select, 1 {1 estensione} other {# estensioni} }?", - "delete-extensions-text": "Attenzione, dopo la conferma tutte le estensioni selezionate saranno eliminate.", - "converters": "Converters", - "converter-id": "Converter id", - "configuration": "Configurazione", - "converter-configurations": "Converter configurations", - "token": "Token di sicurezza", - "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": "Attributi", - "add-attribute": "Aggiungi attributo", - "add-map": "Add mapping element", - "timeseries": "Serie temporali", - "add-timeseries": "Add timeseries", - "field-required": "Field is required", - "brokers": "Broker", - "add-broker": "Aggiungi broker", - "host": "Host", - "port": "Porta", - "port-range": "Port should be in a range from 1 to 65535.", - "ssl": "Ssl", - "credentials": "Credenziali", - "username": "Nome utente", - "password": "Password", - "retry-interval": "Retry interval in milliseconds", - "anonymous": "Anonimo", - "basic": "Basic", - "pem": "PEM", - "ca-cert": "CA certificate file *", - "private-key": "File chiave privata *", - "cert": "File certificato *", - "no-file": "Nessun file selezionato.", - "drop-file": "Trascina un file o fai clic per selezionare un file da caricare.", - "mapping": "Mapping", - "topic-filter": "Filtro topic", - "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 millisecondi", - "converter-json-required": "Convertitore json obbligatorio.", - "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": "Aggiungi dispositivo", - "opc-server": "Server", - "opc-add-server": "Aggiungi server", - "opc-add-server-prompt": "Aggiungi server", - "opc-application-name": "Nome applicazione", - "opc-application-uri": "Uri applicazione", - "opc-scan-period-in-seconds": "Intervallo di scansione in secondi", - "opc-security": "Sicurezza", - "opc-identity": "Identità", - "opc-keystore": "Keystore", - "opc-type": "Tipo", - "opc-keystore-type": "Tipo", - "opc-keystore-location": "Location *", - "opc-keystore-password": "Password", - "opc-keystore-alias": "Alias", - "opc-keystore-key-password": "Chiave password", - "opc-device-node-pattern": "Device node pattern", - "opc-device-name-pattern": "Device name pattern", - "modbus-server": "Servers/slaves", - "modbus-add-server": "Aggiungi server/slave", - "modbus-add-server-prompt": "Aggiungi server/slave", - "modbus-transport": "Transport", - "modbus-port-name": "Nome porta seriale", - "modbus-encoding": "Codifica", - "modbus-parity": "Parità", - "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": "Nome dispositivo", - "modbus-poll-period": "Intervallo di polling (ms)", - "modbus-attributes-poll-period": "Attributes poll period (ms)", - "modbus-timeseries-poll-period": "Timeseries poll period (ms)", - "modbus-poll-period-range": "L'intervallo di polling deve essere un valore positivo.", - "modbus-tag": "Tag", - "modbus-function": "Funzione", - "modbus-register-address": "Indirizzo registro", - "modbus-register-address-range": "L'indirizzo del registro deve essere compreso tra 0 e 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": "Stato", - "sync": "Sincronizzato", - "not-sync": "Non sincronizzato", - "last-sync-time": "Ultima sincronizzazione", - "not-available": "Non disponibile" - }, - - "export-extensions-configuration": "Export extensions configuration", - "import-extensions-configuration": "Import extensions configuration", - "import-extensions": "Importa estensione", - "import-extension": "Importa estensione", - "export-extension": "Esporta estensione", - "file": "File estensione", - "invalid-file-error": "File estensione non valido" - }, - "fullscreen": { - "expand": "Expand to fullscreen", - "exit": "Exit fullscreen", - "toggle": "Toggle fullscreen mode", - "fullscreen": "Fullscreen" - }, - "function": { - "function": "Function" - }, - "grid": { - "delete-item-title": "Are you sure you want to delete this item?", - "delete-item-text": "Be careful, after the confirmation this item and all related data will become unrecoverable.", - "delete-items-title": "Are you sure you want to delete { count, select, 1 {1 item} other {# items} }?", - "delete-items-action-title": "Delete { count, select, 1 {1 item} other {# items} }", - "delete-items-text": "Be careful, after the confirmation all selected items will be removed and all related data will become unrecoverable.", - "add-item-text": "Add new item", - "no-items-text": "No items found", - "item-details": "Item details", - "delete-item": "Delete Item", - "delete-items": "Delete Items", - "scroll-to-top": "Scroll to top" - }, - "help": { - "goto-help-page": "Go to help page" - }, - "home": { - "home": "Home", - "profile": "Profilo", - "logout": "Logout", - "menu": "Menu", - "avatar": "Avatar", - "open-user-menu": "Apri menu utente" - }, - "import": { - "no-file": "Nessun file selezionato", - "drop-file": "Trascina un file JSON o fai clic per selezionare un file da caricare." - }, - "item": { - "selected": "Selezionata" - }, - "js-func": { - "no-return-error": "La funzione deve restituire un valore!", - "return-type-mismatch": "La funzione deve restituire un valore di tipo '{{type}}'!", - "tidy": "Tidy" - }, - "key-val": { - "key": "Chiave", - "value": "Valore", - "remove-entry": "Remove entry", - "add-entry": "Add entry", - "no-data": "No entries" - }, - "layout": { - "layout": "Layout", - "manage": "Gestisci layout", - "settings": "Impostazioni layout", - "color": "Colore", - "main": "Main", - "right": "Right", - "select": "Select target layout" - }, - "legend": { - "position": "Posizione Legenda", - "show-max": "Mostra valore max", - "show-min": "Mostra valore min", - "show-avg": "Mostra valore medio", - "show-total": "Mostra valore totale", - "settings": "Impostazioni legenda", - "min": "min", - "max": "max", - "avg": "avg", - "total": "totale" - }, - "login": { - "login": "Login", - "request-password-reset": "Request Password Reset", - "reset-password": "Azzera Password", - "create-password": "Crea Password", - "passwords-mismatch-error": "Le password inserite devono corrispondere!", - "password-again": "Ripeti Password", - "sign-in": "Please sign in", - "username": "Nome utente (email)", - "remember-me": "Ricordami", - "forgot-password": "Password dimenticata?", - "password-reset": "Password reset", - "new-password": "Nuova password", - "new-password-again": "Ripeti nuova password", - "password-link-sent-message": "Link azzeramento password inviato con successo!", - "email": "Email" - }, - "position": { - "top": "Alto", - "bottom": "Basso", - "left": "Sinistra", - "right": "Destra" - }, - "profile": { - "profile": "Profilo", - "change-password": "Modifica Password", - "current-password": "Password attuale" - }, - "relation": { - "relations": "Relations", - "direction": "Direction", - "search-direction": { - "FROM": "Da", - "TO": "A" - }, - "direction-type": { - "FROM": "da", - "TO": "a" - }, - "from-relations": "Outbound relations", - "to-relations": "Inbound relations", - "selected-relations": "{ count, select, 1 {1 relation} other {# relations} } selected", - "type": "Tipo", - "to-entity-type": "A tipo entità", - "to-entity-name": "A nome entità", - "from-entity-type": "Da tipo entità", - "from-entity-name": "Da nome entità", - "to-entity": "A entità", - "from-entity": "Da entità", - "delete": "Delete relation", - "relation-type": "Relation type", - "relation-type-required": "Relation type is required.", - "any-relation-type": "Ogni tipo", - "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": "Attenzione, dopo la conferma l'entità '{{entityName}}' sarà scollegata dall'entità corrente.", - "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": { - "rulechain": "Rule chain", - "rulechains": "Rule chains", - "root": "Root", - "delete": "Delete rule chain", - "name": "Nome", - "name-required": "Nome obbligatorio.", - "description": "Descrizione", - "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": "Dettagli", - "events": "Eventi", - "system": "Sistema", - "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": "Modalità debug" - }, - "rulenode": { - "details": "Dettagli", - "events": "Eventi", - "search": "Ricerca nodi", - "open-node-library": "Apri libreria nodi", - "add": "Add rule node", - "name": "Nome", - "name-required": "Nome obbligatorio.", - "type": "Tipo", - "description": "Descrizione", - "delete": "Delete rule node", - "select-all-objects": "Seleziona tutti i nodi e le connessioni", - "deselect-all-objects": "Deselect all nodes and connections", - "delete-selected-objects": "Cancella nodi e connessioni selezionate", - "delete-selected": "Delete selected", - "select-all": "Seleziona tutto", - "copy-selected": "Copy selected", - "deselect-all": "Deselect all", - "rulenode-details": "Rule node details", - "debug-mode": "Modalità debug", - "configuration": "Configurazione", - "link": "Link", - "link-details": "Rule node link details", - "add-link": "Aggiungi link", - "link-label": "Etichetta link", - "link-label-required": "Etichetta link obbligatoria.", - "custom-link-label": "Custom link label", - "custom-link-label-required": "Custom link label is required.", - "type-filter": "Filtro", - "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": "Azioni", - "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": "Messaggio", - "message-type": "Tipo messaggio", - "message-type-required": "Tipo messaggio obbligatorio", - "metadata": "Metadata", - "metadata-required": "Metadata entries can't be empty.", - "output": "Output", - "test": "Test", - "help": "Aiuto" - }, - "tenant": { - "tenant": "Tenant", - "tenants": "Tenant", - "management": "Gestione Tenant", - "add": "Aggiungi Tenant", - "admins": "Amministratori", - "manage-tenant-admins": "Gestisci amministratori tenant", - "delete": "Cancella tenant", - "add-tenant-text": "Aggiungi nuovo tenant", - "no-tenants-text": "Nessun tenant trovato", - "tenant-details": "Dettagli tenant", - "delete-tenant-title": "Sei sicuro di voler eliminare il tenant '{{tenantTitle}}'?", - "delete-tenant-text": "Attenzione, dopo la conferma il tenant e tutti i suoi dati non saranno più recuperabili.", - "delete-tenants-title": "Sei sicuro di voler eliminare { count, select, 1 {1 tenant} other {# tenant} }?", - "delete-tenants-action-title": "Elimina { count, select, 1 {1 tenant} other {# tenant} }", - "delete-tenants-text": "Attenzione, dopo la conferma tutti i tenant selezionati saranno eliminati e tutti i loro dati non saranno più recuperabili.", - "title": "Titolo", - "title-required": "Titolo obbligatorio.", - "description": "Descrizione", - "details": "Dettagli", - "events": "Eventi", - "copyId": "Copia Id tenant", - "idCopiedMessage": "Id tenant copiato negli appunti", - "select-tenant": "Seleziona tenant", - "no-tenants-matching": "Nessun tenant corrispondente a '{{entity}}' è stato trovato.", - "tenant-required": "Tenant obbligatorio" - }, - "timeinterval": { - "seconds-interval": "{ seconds, select, 1 {1 secondo} other {# secondi} }", - "minutes-interval": "{ minutes, select, 1 {1 minuto} other {# minuti} }", - "hours-interval": "{ hours, select, 1 {1 ora} other {# ore} }", - "days-interval": "{ days, select, 1 {1 giorno} other {# giorni} }", - "days": "Giorni", - "hours": "Ore", - "minutes": "Minuti", - "seconds": "Secondi", - "advanced": "Avanzate" - }, - "timewindow": { - "days": "{ days, select, 1 { giorno } other {# giorni } }", - "hours": "{ hours, select, 0 { hour } 1 {1 ora } other {# ore } }", - "minutes": "{ minutes, select, 0 { minute } 1 {1 minuto } other {# minuti } }", - "seconds": "{ seconds, select, 0 { second } 1 {1 secondo } other {# secondi } }", - "realtime": "Realtime", - "history": "Cronologia", - "last-prefix": "last", - "period": "from {{ startTime }} to {{ endTime }}", - "edit": "Edit timewindow", - "date-range": "Date range", - "last": "Last", - "time-period": "Time period" - }, - "user": { - "user": "Utente", - "users": "Utenti", - "customer-users": "Customer Users", - "tenant-admins": "Amministratori Tenant", - "sys-admin": "Amministratore di sistema", - "tenant-admin": "Amministratore tenant", - "customer": "Cliente", - "anonymous": "Anonimo", - "add": "Aggiungi Utente", - "delete": "Elimina utente", - "add-user-text": "Aggiungi nuovo utente", - "no-users-text": "Nessun utente trovato", - "user-details": "Dettagli utente", - "delete-user-title": "Sei sicuro di voler eliminare l'utente '{{userEmail}}'?", - "delete-user-text": "Attenzione, dopo la conferma l'utente e tutti i suoi dati non saranno più recuperabili.", - "delete-users-title": "Sei sicuro di voler eliminare { count, select, 1 {1 utente} other {# utenti} }?", - "delete-users-action-title": "Elimina { count, select, 1 {1 utente} other {# utenti} }", - "delete-users-text": "Attenzione, dopo la conferma tutti gli utenti selezionati saranno eliminati e tutti i relativi dati non saranno più recuperabili.", - "activation-email-sent-message": "Email di attivazione inviata con successo!", - "resend-activation": "Resend activation", - "email": "Email", - "email-required": "Email obbligatoria.", - "invalid-email-format": "Formato email non valido.", - "first-name": "Nome", - "last-name": "Cognome", - "description": "Descrizione", - "default-dashboard": "Dashboard di default", - "always-fullscreen": "Always fullscreen", - "select-user": "Seleziona utente", - "no-users-matching": "Nessun utente corrispondente a '{{entity}}' è stato trovato.", - "user-required": "Utente obbligatorio", - "activation-method": "Metodo di attivazione", - "display-activation-link": "Mostra link di attivazione", - "send-activation-mail": "Invia email di attivazione", - "activation-link": "Link attivazione utente", - "activation-link-text": "Per attivare l'utente utilizza il seguente link di attivazione :", - "copy-activation-link": "Copia link di attivazione", - "activation-link-copied-message": "Link di attivazione utente copiato negli appunti", - "details": "Dettagli" - }, - "value": { - "type": "Tipo valore", - "string": "String", - "string-value": "Valore string", - "integer": "Integer", - "integer-value": "Valore integer", - "invalid-integer-value": "Valore integer non valido", - "double": "Double", - "double-value": "Valore double", - "boolean": "Boolean", - "boolean-value": "Valore boolean", - "false": "Falso", - "true": "Vero", - "long": "Long" - }, - "widget": { - "widget-library": "Libreria Widget", - "widget-bundle": "Bundle widget", - "select-widgets-bundle": "Seleziona bundle widget", - "management": "Gestione widget", - "editor": "Editor Widget", - "widget-type-not-found": "Problem loading widget configuration.
Probably associated\n widget type was removed.", - "widget-type-load-error": "Widget non caricato a causa dei seguenti errori:", - "remove": "Elimina widget", - "edit": "Modifica widget", - "remove-widget-title": "sei sicuro di voler eliminare il widget '{{widgetTitle}}'?", - "remove-widget-text": "Dopo la conferma il widget e tutti i suoi dati non saranno più recuperabili.", - "timeseries": "Time series", - "search-data": "Cerca dati", - "no-data-found": "Nessun dato trovato", - "latest-values": "Ultimi valori", - "rpc": "Control widget", - "alarm": "Alarm widget", - "static": "Static widget", - "select-widget-type": "Seleziona tipo widget", - "missing-widget-title-error": "Il tiolo del widget deve essere specificato!", - "widget-saved": "Widget salvato", - "unable-to-save-widget-error": "Impossibile salvare il widget! Sono presenti degli errori!", - "save": "Salva widget", - "saveAs": "Salva widget come", - "save-widget-type-as": "Salva tipo widget come", - "save-widget-type-as-text": "Please enter new widget title and/or select target widgets bundle", - "toggle-fullscreen": "Toggle fullscreen", - "run": "Esegui widget", - "title": "Titolo widget", - "title-required": "Titolo widget obbligatorio.", - "type": "Tipo widget", - "resources": "Risorse", - "resource-url": "JavaScript/CSS URL", - "remove-resource": "Rimuovi risorsa", - "add-resource": "Aggiungi risorsa", - "html": "HTML", - "tidy": "Tidy", - "css": "CSS", - "settings-schema": "Impostazioni schema", - "datakey-settings-schema": "Data key settings schema", - "javascript": "Javascript", - "remove-widget-type-title": "Sei sicuro di voler rimuovere il tipo di widget '{{widgetName}}'?", - "remove-widget-type-text": "Dopo la conferma il tipo di widget e tutti i suoi dati non saranno più recuperabili.", - "remove-widget-type": "Rimuovi tipo widget", - "add-widget-type": "Aggiungi nuovo tipo widget", - "widget-type-load-failed-error": "Caricamento tipo widget fallito!", - "widget-template-load-failed-error": "Caricamento template widget fallito!", - "add": "Aggiungi Widget", - "undo": "Annulla modifiche widget", - "export": "Esporta widget" - }, - "widget-action": { - "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": "Bundle corrente", - "widgets-bundles": "Bundle Widget", - "add": "Aggiungi Bundle Widget", - "delete": "Cancella bundle widget", - "title": "Titolo", - "title-required": "Titolo obbligatorio.", - "add-widgets-bundle-text": "Aggiungi nuovo bundle widget", - "no-widgets-bundles-text": "Nessun bundle widget trovato", - "empty": "Bundle widget vuoto", - "details": "Dettagli", - "widgets-bundle-details": "Dettagli bundle widget", - "delete-widgets-bundle-title": "Sei sicuro di voler eliminare il bundle widget '{{widgetsBundleTitle}}'?", - "delete-widgets-bundle-text": "Attenzione, dopo la conferma il bundle widget e tutti i suoi dati non saranno più recuperabili.", - "delete-widgets-bundles-title": "Sei sicuro di voler eliminare { count, select, 1 {1 bundle widget} other {# bundle widget} }?", - "delete-widgets-bundles-action-title": "Elimina { count, select, 1 {1 bundle widget} other {# bundle widget} }", - "delete-widgets-bundles-text": "Attenzione, dopo la conferma tutti i bundle widget selezionati saranno rimossi e tutti i loro dati non saranno più recuperabili.", - "no-widgets-bundles-matching": "Nessun bundle widget corrispondente a '{{widgetsBundle}}' è stato trovato.", - "widgets-bundle-required": "Bundle widget obbligatorio.", - "system": "Sistema", - "import": "Importa bundle widget", - "export": "Esporta bundle widget", - "export-failed-error": "Impossibile esportare bundle widget: {{error}}", - "create-new-widgets-bundle": "Crea nuovo bundle widget", - "widgets-bundle-file": "File bundle widget", - "invalid-widgets-bundle-file-error": "Impossibile importare bundle widget: struttura dati non valida." - }, - "widget-config": { - "data": "Dati", - "settings": "Impostazioni", - "advanced": "Avanzate", - "title": "Titolo", - "general-settings": "Impostazioni generali", - "display-title": "Mostra titolo", - "drop-shadow": "Drop shadow", - "enable-fullscreen": "Abilita fullscreen", - "background-color": "Colore sfondo", - "text-color": "Colore testo", - "padding": "Padding", - "margin": "Margin", - "widget-style": "Stile Widget", - "title-style": "Stile titolo", - "mobile-mode-settings": "Impostazioni modalità mobile", - "order": "Ordinamento", - "height": "Altezza", - "units": "Simbolo speciale da mostrare vicino al valore", - "decimals": "Numero di cifre decimali", - "timewindow": "Timewindow", - "use-dashboard-timewindow": "Use dashboard timewindow", - "display-legend": "Mostra legenda", - "datasources": "Sorgenti dei dati", - "maximum-datasources": "Massimo { count, select, 1 {1 sorgente dati consentita.} other {# sorgenti dati consentite} }", - "datasource-type": "Tipo", - "datasource-parameters": "Parametri", - "remove-datasource": "Rimuovi sorgente dati", - "add-datasource": "Aggiungi sorgente dati", - "target-device": "Dispositivo Target", - "alarm-source": "Sorgente Allarme", - "actions": "Azioni", - "action": "Azione", - "add-action": "Aggiungi azione", - "search-actions": "Ricerca azioni", - "action-source": "Sorgente azione", - "action-source-required": "Sorgente azione obbligatoria.", - "action-name": "Nome", - "action-name-required": "Nome azione obbligatorio.", - "action-name-not-unique": "Un'altra azione con lo stesso nome è già presente.
Il nome di una azione dovrebbe essere univoco all'interno della stessa sorgente.", - "action-icon": "Icona", - "action-type": "Tipo", - "action-type-required": "Tipo azione obbligatorio.", - "edit-action": "Modifica azione", - "delete-action": "Cancella azione", - "delete-action-title": "Cancella azione del widget", - "delete-action-text": "Sei sicuro di voler cancellare l'azione del widget '{{actionName}}'?" - }, - "widget-type": { - "import": "Importa un tipo di widget", - "export": "Esporta un tipo di widget", - "export-failed-error": "Impossibile esportare il tipo di widget: {{error}}", - "create-new-widget-type": "Crea un nuovo tipo di widget", - "widget-type-file": "Widget type file", - "invalid-widget-type-file-error": "Impossibile importare un tipo di widget: struttura dati del widget non valida." - }, - "icon": { - "icon": "Icona", - "select-icon": "Seleziona icona", - "material-icons": "Icone Material", - "show-all": "Mostra tutte le icone" - }, - "custom": { - "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": "Lingua", - "zh_CN": "Cinese", - "ko_KR": "Coreano", - "en_US": "Inglese", - "it_IT": "Italiano", - "ru_RU": "Russo", - "es_ES": "Spagnolo" - } - }; - angular.extend(locales, { 'it_IT': it_IT }); -} - diff --git a/ui/src/app/locale/locale.constant-it.json b/ui/src/app/locale/locale.constant-it.json new file mode 100644 index 0000000000..e57810d11b --- /dev/null +++ b/ui/src/app/locale/locale.constant-it.json @@ -0,0 +1,1443 @@ +{ + "access": { + "unauthorized": "Non autorizzato", + "unauthorized-access": "Accesso non autorizzato", + "unauthorized-access-text": "Devi effettuare il login per accedere a questa risorsa!", + "access-forbidden": "Accesso Vietato", + "access-forbidden-text": "Non hai i diritti di accesso a questa posizione!
Prova ad effettuare il login con un diverso account.", + "refresh-token-expired": "Sessione scaduta", + "refresh-token-failed": "Impossibile aggiornare la sessione" + }, + "action": { + "activate": "Attiva", + "suspend": "Sospendi", + "save": "Salva", + "saveAs": "Salva come", + "cancel": "Cancella", + "ok": "OK", + "delete": "Elimina", + "add": "Aggiungi", + "yes": "Sì", + "no": "No", + "update": "Aggiorna", + "remove": "Rimuovi", + "search": "Cerca", + "clear-search": "Cancella ricerca", + "assign": "Assegna", + "unassign": "Annulla assegnazione", + "share": "Condividi", + "make-private": "Rendi privato", + "apply": "Applica", + "apply-changes": "Applica modifiche", + "edit-mode": "Modalità modifica", + "enter-edit-mode": "Attiva la modalità di modifica", + "decline-changes": "Annulla le modifiche", + "close": "Chiudi", + "back": "Indietro", + "run": "Esegui", + "sign-in": "Registrati!", + "edit": "Modifica", + "view": "Visualizza", + "create": "Crea", + "drag": "Trascina", + "refresh": "Aggiorna", + "undo": "Annulla", + "copy": "Copia", + "paste": "Incolla", + "copy-reference": "Copia riferimento", + "paste-reference": "Incolla riferimento", + "import": "Importa", + "export": "Esporta", + "share-via": "Condividi con {{provider}}" + }, + "aggregation": { + "aggregation": "Aggregazione", + "function": "Funzione di aggregazione dei dati", + "limit": "Valori max", + "group-interval": "Intervallo di raggruppamento", + "min": "Min", + "max": "Max", + "avg": "Media", + "sum": "Somma", + "count": "Conteggio", + "none": "Nessuna" + }, + "admin": { + "general": "Generale", + "general-settings": "Impostazioni Generali", + "outgoing-mail": "Posta in uscita", + "outgoing-mail-settings": "Impostazioni Posta in uscita", + "system-settings": "Impostazioni di sistema", + "test-mail-sent": "Mail di test inviata con successo!", + "base-url": "URL di base", + "base-url-required": "URL di base obbligatoria.", + "mail-from": "Mittente", + "mail-from-required": "Mittente obbligatorio.", + "smtp-protocol": "Protocollo SMTP", + "smtp-host": "Host SMTP", + "smtp-host-required": "Host SMTP obbligatorio.", + "smtp-port": "Porta SMTP", + "smtp-port-required": "Porta SMTP obbligatoria.", + "smtp-port-invalid": "Numero di porta SMTP non valido.", + "timeout-msec": "Timeout (msec)", + "timeout-required": "Timeout obbligatorio.", + "timeout-invalid": "Timeout non valido.", + "enable-tls": "Abilita TLS", + "send-test-mail": "Invia mail di test" + }, + "alarm": { + "alarm": "Allarme", + "alarms": "Allarmi", + "select-alarm": "Seleziona un allarme", + "no-alarms-matching": "Nessun allarme corrispondente a '{{entity}}' è stato trovato.", + "alarm-required": "Allarme richiesto", + "alarm-status": "Stato Allarme", + "search-status": { + "ANY": "Qualsiasi", + "ACTIVE": "Attivo", + "CLEARED": "Cancellato", + "ACK": "Riconosciuto", + "UNACK": "Non riconosciuto" + }, + "display-status": { //TODO + "ACTIVE_UNACK": "Active Unacknowledged", + "ACTIVE_ACK": "Active Acknowledged", + "CLEARED_UNACK": "Cleared Unacknowledged", + "CLEARED_ACK": "Cleared Acknowledged" + }, + "no-alarms-prompt": "Nessun allarme trovato", + "created-time": "Orario di creazione", + "type": "Tipo", + "severity": "Gravità", + "originator": "Origine", + "originator-type": "Tipo origine", + "details": "Dettagli", + "status": "Stato", + "alarm-details": "Dettagli allarme", + "start-time": "Orario inizio", + "end-time": "Orario fine", + "ack-time": "Orario conferma", + "clear-time": "Orario cancellazione", + "severity-critical": "Critico", + "severity-major": "Maggiore", + "severity-minor": "Minore", + "severity-warning": "Avviso", + "severity-indeterminate": "Indeterminato", + "acknowledge": "Conferma", + "clear": "Cancella", + "search": "Ricerca allarmi", + "selected-alarms": "{ count, select, 1 {1 allarme selezionato} other {# allarmi selezionati} }", + "no-data": "Nessun dato da visualizzare", + "polling-interval": "Intervallo di polling (sec) Allarmi", + "polling-interval-required": "Intervallo di polling Allarmi richiesto.", + "min-polling-interval-message": "L'intervallo di polling deve essere di almeno 1 sec.", + "aknowledge-alarms-title": "Conferma { count, select, 1 {1 allarme} other {# allarmi} }", + "aknowledge-alarms-text": "Sei sicuro di voler confermare { count, select, 1 {1 allarme} other {# allarmi} }?", + "clear-alarms-title": "Elimina { count, select, 1 {1 allarme} other {# allarmi} }", + "clear-alarms-text": "Sei sicuro di voler eliminare { count, select, 1 {1 allarme} other {# allarmi} }?" + }, + "alias": { + "add": "Aggiungi alias", + "edit": "Modifica alias", + "name": "Nome Alias", + "name-required": "Nome Alias obbligatorio", + "duplicate-alias": "Un Alias con lo stesso nome è già presente.", + "filter-type-single-entity": "Singola entità", + "filter-type-entity-list": "Lista Entità", + "filter-type-entity-name": "Nome Entità", + "filter-type-state-entity": "Entity from dashboard state", //TODO + "filter-type-state-entity-description": "Entità prelevata dai parametri di stato della dashboard", + "filter-type-asset-type": "Tipo di Asset", + "filter-type-asset-type-description": "Asset di tipo '{{assetType}}'", + "filter-type-asset-type-and-name-description": "Asset di tipo '{{assetType}}' e con un nome che inizia per '{{prefix}}'", + "filter-type-device-type": "Tipo di dispositivo", + "filter-type-device-type-description": "Dispositivi di tipo '{{deviceType}}'", + "filter-type-device-type-and-name-description": "Dispositivi di tipo '{{deviceType}}' e con un nome che inizia per '{{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": "Filtro entità", + "resolve-multiple": "Resolve as multiple entities", + "filter-type": "Tipo di filtro", + "filter-type-required": "Tipo di filtro richiesto.", + "entity-filter-no-entity-matched": "Nessuna entità corrispondente al filtro specificato è stata trovata.", + "no-entity-filter-specified": "Nessun filtro di entità specificato", + "root-state-entity": "Use dashboard state entity as root", + "root-entity": "Entità radice", + "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": "Tutte le entità", + "any-relation": "qualsiasi" + }, + "asset": { + "asset": "Asset", + "assets": "Asset", + "management": "Gestione Asset", + "view-assets": "Visualizza Asset", + "add": "Aggiungi Asset", + "assign-to-customer": "Assegna a cliente", + "assign-asset-to-customer": "Assegna Asset al Cliente", + "assign-asset-to-customer-text": "Seleziona gli asset da assegnare al cliente", + "no-assets-text": "Nessun asset trovato", + "assign-to-customer-text": "Seleziona il cliente a cui assegnare l'asset / gli asset", + "public": "Pubblico", + "assignedToCustomer": "Assegnato al cliente", + "make-public": "Rendi pubblico l'asset", + "make-private": "Rendi privato l'asset", + "unassign-from-customer": "Assegnazione annullata dal cliente", + "delete": "Cancella asset", + "asset-public": "L'Asset è pubblico", + "asset-type": "Tipo di Asset", + "asset-type-required": "Tipo di Asset richiesto.", + "select-asset-type": "Seleziona tipo di asset", + "enter-asset-type": "Inserisci tipo di asset", + "any-asset": "Qualsiasi asset", + "no-asset-types-matching": "Nessun asset corrispondente al tipo '{{entitySubtype}}' è stato trovato.", + "asset-type-list-empty": "Nessun tipo di asset selezionato.", + "asset-types": "Tipi di Asset", + "name": "Nome", + "name-required": "Nome obbligatorio.", + "description": "Descrizione", + "type": "Tipo", + "type-required": "Tipo obbligatorio.", + "details": "Dettagli", + "events": "Eventi", + "add-asset-text": "Aggiungi un nuovo asset", + "asset-details": "Dettagli Asset", + "assign-assets": "Assegna asset", + "assign-assets-text": "Assegna { count, select, 1 {1 asset} other {# assets} } al cliente", + "delete-assets": "Cancella asset", + "unassign-assets": "Annulla assegnazione asset", + "unassign-assets-action-title": "Unassign { count, select, 1 {1 asset} other {# assets} } from customer", + "assign-new-asset": "Assegna un nuovo asset", + "delete-asset-title": "Sei sicuro di voler cancellare l'asset '{{assetName}}'?", + "delete-asset-text": "Attenzione, dopo la conferma l'asset e tutti i relativi dati non saranno più recuperabili.", + "delete-assets-title": "Sei sicuro di voler eliminare { count, select, 1 {1 asset} other {# asset} }?", + "delete-assets-action-title": "Elimina { count, select, 1 {1 asset} other {# asset} }", + "delete-assets-text": "Attenzione, dopo la modifica tutti gli asset selezionati saranno rimossi e tutti i relativi dati non saranno più recuperabili.", + "make-public-asset-title": "Sei sicuro di voler rendere pubblico l'asset '{{assetName}}'?", + "make-public-asset-text": "Dopo la conferma l'asset e tutti i suoi dati saranno resi pubblici e accessibili dagli altri.", + "make-private-asset-title": "Sei sicuro di voler rendere privato l'asset '{{assetName}}'?", + "make-private-asset-text": "Dopo la conferma l'asset e tutti i suoi dati saranno resi privati e non accessibili dagli altri.", + "unassign-asset-title": "Sei sicuro di voler annullare l'assegnazione dell'asset '{{assetName}}'?", + "unassign-asset-text": "Dopo la conferma l'assegnazione dell'asset sarà annullata e l'asset non sarà più accessibile dal cliente.", + "unassign-asset": "Annulla assegnazione asset", + "unassign-assets-title": "Sei sicuro di voler annullare l'assegnazione di { count, select, 1 {1 asset} other {# asset} }?", + "unassign-assets-text": "Dopo la conferma sarà annullata l'assegnazione di tutti gli asset selezionati e questi non saranno più accessibili dal cliente.", + "copyId": "Copia Id asset", + "idCopiedMessage": "Id Asset copiato negli Appunti", + "select-asset": "Seleziona asset", + "no-assets-matching": "Nessun asset corrispondente a '{{entity}}' é stato trovato.", + "asset-required": "Asset obbligatorio", + "name-starts-with": "Asset con nome che inizia per" + }, + "attribute": { + "attributes": "Attributi", + "latest-telemetry": "Ultima telemetria", + "attributes-scope": "Entity attributes scope", + "scope-latest-telemetry": "Ultima telemetria", + "scope-client": "Attributi client", + "scope-server": "Attributi server", + "scope-shared": "Attributi condivisi", + "add": "Aggiungi attributo", + "key": "Chiave", + "last-update-time": "Ultimo aggiornamento", + "key-required": "Attributo chiave richiesto.", + "value": "Valore", + "value-required": "Attributo valore richiesto.", + "delete-attributes-title": "Sei sicuro di voler eliminare { count, select, 1 {1 attributo} other {# attributi} }?", + "delete-attributes-text": "Attenzione, dopo la conferma tutti gli attributi selezionati saranno rimossi.", + "delete-attributes": "Elimina attributi", + "enter-attribute-value": "Inserisci il valore dell'attributo", + "show-on-widget": "Mostra sul widget", + "widget-mode": "Modalità Widget", + "next-widget": "Widget successivo", + "prev-widget": "Widget precedente", + "add-to-dashboard": "Aggiungi alla dashboard", + "add-widget-to-dashboard": "Aggiungi widget alla dashboard", + "selected-attributes": "{ count, select, 1 {1 attributo selezionato} other {# attributi selezionati} }", + "selected-telemetry": "{ count, select, 1 {1 unità di telemetria selezionata} other {# unità di telemetria selezionate} }" + }, + "audit-log": { + "audit": "Audit", + "audit-logs": "Audit Logs", + "timestamp": "Timestamp", + "entity-type": "Tipo Entità", + "entity-name": "Nome Entità", + "user": "Utente", + "type": "Tipo", + "status": "Stato", + "details": "Dettagli", + "type-added": "Aggiunto", + "type-deleted": "Eliminato", + "type-updated": "Aggiornato", + "type-attributes-updated": "Attributi aggiornati", + "type-attributes-deleted": "Attributi eliminati", + "type-rpc-call": "Chiamata RPC", + "type-credentials-updated": "Credenziali aggiornate", + "type-assigned-to-customer": "Assegnato al Cliente", + "type-unassigned-from-customer": "Assegnazione annullata dal Cliente", + "type-activated": "Attivato", + "type-suspended": "Sospeso", + "type-credentials-read": "Credenziali lette", + "type-attributes-read": "Attributi letti", + "status-success": "Success", + "status-failure": "Failure", + "audit-log-details": "Dettaglio log audit", + "no-audit-logs-prompt": "Log non trovati", + "action-data": "Action data", + "failure-details": "Failure details", + "search": "Riceraca log audit", + "clear-search": "Cancella ricerca" + }, + "confirm-on-exit": { + "message": "Alcune modifiche non sono state salvate. Sei sicuro di voler abbandonare questa pagina?", + "html-message": "Alcune modifiche non sono state salvate.
Sei sicuro di voler abbandonare questa pagina?", + "title": "Modifiche non salvate" + }, + "contact": { + "country": "Nazione", + "city": "Città", + "state": "Stato / Provincia", + "postal-code": "CAP", + "postal-code-invalid": "Formato CAP non valido.", + "address": "Indirizzo", + "address2": "Indirizzo 2", + "phone": "Telefono", + "email": "Email", + "no-address": "Nessun indirizzo" + }, + "common": { + "username": "Nome utente", + "password": "Password", + "enter-username": "Inserisci nome utente", + "enter-password": "Inserisci password", + "enter-search": "Enter search" + }, + "content-type": { + "json": "Json", + "text": "Testo", + "binary": "Binario (Base64)" + }, + "customer": { + "customer": "Cliente", + "customers": "Clienti", + "management": "Gestione cliente", + "dashboard": "Dashboard cliente", + "dashboards": "Dashboard cliente", + "devices": "Dispositivi cliente", + "assets": "Asset cliente", + "public-dashboards": "Dashboard pubbliche", + "public-devices": "Dispositivi pubblici", + "public-assets": "Asset pubblici", + "add": "Aggiungi cliente", + "delete": "Elimina cliente", + "manage-customer-users": "Gestisci utenti cliente", + "manage-customer-devices": "Gestisci dispositivi cliente", + "manage-customer-dashboards": "Gestisci dashboard cliente", + "manage-public-devices": "Gestisci dispositivi pubblici", + "manage-public-dashboards": "Gestisci dashboard pubbliche", + "manage-customer-assets": "Gestisci asset cliente", + "manage-public-assets": "Gestisci asset pubblici", + "add-customer-text": "Aggiungi nuovo cliente", + "no-customers-text": "Nessun cliente trovato", + "customer-details": "Dettagli cliente", + "delete-customer-title": "Sei sicuro di voler eliminare il cliente '{{customerTitle}}'?", + "delete-customer-text": "Attenzione, dopo la conferma il cliente e tutti i suoi dati non saranno più recuperabili.", + "delete-customers-title": "Sei sicuro di voler cancellare { count, select, 1 {1 cliente} other {# clienti} }?", + "delete-customers-action-title": "Elimina { count, select, 1 {1 cliente} other {# clienti} }", + "delete-customers-text": "Attenzione, dopo la conferma tutti i clienti selezionati saranno rimossi e i loro dati non saranno più recuperabili.", + "manage-users": "Gestisci utenti", + "manage-assets": "Gestisci asset", + "manage-devices": "Gestisci dispositivi", + "manage-dashboards": "Gestisci dashboard", + "title": "Titolo", + "title-required": "Titolo obbligatorio.", + "description": "Descrizione", + "details": "Dettagli", + "events": "Eventi", + "copyId": "Copia Id cliente", + "idCopiedMessage": "Id cliente copiato negli appunti", + "select-customer": "Seleziona cliente", + "no-customers-matching": "Nessun cliente corrispondente a '{{entity}}' è stato trovato.", + "customer-required": "Cliente obbligatorio", + "select-default-customer": "Seleziona cliente di default", + "default-customer": "Cliente di default", + "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level" + }, + "datetime": { + "date-from": "Data da", + "time-from": "Orario da", + "date-to": "Data a", + "time-to": "Orario a" + }, + "dashboard": { + "dashboard": "Dashboard", + "dashboards": "Dashboard", + "management": "Gestione Dashboard", + "view-dashboards": "Mostra Dashboard", + "add": "Aggiungi Dashboard", + "assign-dashboard-to-customer": "Assegna Dashboard al cliente", + "assign-dashboard-to-customer-text": "Seleziona le dashboard da assegnare al client", + "assign-to-customer-text": "Seleziona il cliente a cui assegnare la/le dashboard", + "assign-to-customer": "Assegna al cliente", + "unassign-from-customer": "Unassign from customer", + "make-public": "Rendi pubblica la dashboard", + "make-private": "Rendi privata la dashboard", + "manage-assigned-customers": "Gestisci i clienti assegnati", + "assigned-customers": "Clienti assegnati", + "assign-to-customers": "Assegna Dashboard ai Clienti", + "assign-to-customers-text": "Seleziona i clienti da assegnare alla/alle dashboard", + "unassign-from-customers": "Unassign Dashboard(s) From Customers", + "unassign-from-customers-text": "Seleziona i clienti di cui annullare l'assegnazione alla/alle dashboard", + "no-dashboards-text": "Nessuna dashboard trovata", + "no-widgets": "Nessun widget configurato", + "add-widget": "Aggiungi nuovo widget", + "title": "Titolo", + "select-widget-title": "Seleziona widget", + "select-widget-subtitle": "Elenco tipi di widget disponibili", + "delete": "Elimina dashboard", + "title-required": "Titolo obbligatorio.", + "description": "Descrizione", + "details": "Dettagli", + "dashboard-details": "Dettagli Dashboard", + "add-dashboard-text": "Aggiungi nuova dashboard", + "assign-dashboards": "Assegna dashboard", + "assign-new-dashboard": "Assegna nuova dashboard", + "assign-dashboards-text": "Assegna { count, select, 1 {1 dashboard} other {# dashboard} } ai clienti", + "unassign-dashboards-action-text": "Annulla assegnazione { count, select, 1 {1 dashboard} other {# dashboards} } ai clienti", + "delete-dashboards": "Elimina dashboard", + "unassign-dashboards": "Annulla assegnazione dashboard", + "unassign-dashboards-action-title": "Annulla assegnazione { count, select, 1 {1 dashboard} other {# dashboards} } al cliente", + "delete-dashboard-title": "Sei sicuro di voler cancellare la dashboard '{{dashboardTitle}}'?", + "delete-dashboard-text": "Attenzione, dopo la conferma la dashboard e tutti i suoi dati non saranno più recuperabili.", + "delete-dashboards-title": "Sei sicuro di voler eliminare { count, select, 1 {1 dashboard} other {# dashboard} }?", + "delete-dashboards-action-title": "Cancella { count, select, 1 {1 dashboard} other {# dashboard} }", + "delete-dashboards-text": "Attenzione, dopo la conferma tutte le dashboard selezionate saranno eliminate e tutti i loro dati non saranno più recuperabili.", + "unassign-dashboard-title": "Sei sicuro di voler annullare l'assegnazione della dashboard '{{dashboardTitle}}'?", + "unassign-dashboard-text": "Dopo la conferma sarà annullata l'assegnazione della dashboard e questa non sarà più accessibile dal cliente.", + "unassign-dashboard": "Annulla assegnazione dashboard", + "unassign-dashboards-title": "Sei sicuro di voler annullare l'assegnazione di { count, select, 1 {1 dashboard} other {# dashboard} }?", + "unassign-dashboards-text": "Dopo la conferma sarà annullata l'assegnazione di tutte le dashboards selezionate e queste non saranno più accessibili dal cliente.", + "public-dashboard-title": "La Dashboard è ora pubblica", + "public-dashboard-text": "La dashboard {{dashboardTitle}} è ora pubblica e accessibile al link:", + "public-dashboard-notice": "Nota: Ricorda di rendere pubblici i relativi dispositivi per accedere ai loro dati.", + "make-private-dashboard-title": "Sei sicuro di voler rendere privata la dashboard '{{dashboardTitle}}'?", + "make-private-dashboard-text": "Dopo la conferma la dashboard sarà resa privata e non più accessibile dagli altri.", + "make-private-dashboard": "Rendi privata la dashboard", + "socialshare-text": "'{{dashboardTitle}}' powered by ThingsBoard", + "socialshare-title": "'{{dashboardTitle}}' powered by ThingsBoard", + "select-dashboard": "Seleziona dashboard", + "no-dashboards-matching": "Nessuna dashboard corrispondente a '{{entity}}' è stata trovata.", + "dashboard-required": "Dashboard obbligatoria.", + "select-existing": "Seleziona una dashboard esistente", + "create-new": "Crea nuova dashboard", + "new-dashboard-title": "Titolo nuova dashboard", + "open-dashboard": "Apri dashboard", + "set-background": "Imposta sfondo", + "background-color": "Colore sfondo", + "background-image": "Immagine sfondo", + "background-size-mode": "Background size mode", + "no-image": "Nessuna immagine selezionata", + "drop-image": "Trascina un'immagine o fai clic per selezionare un file da caricare.", + "settings": "Impostazioni", + "columns-count": "Numero colonne", + "columns-count-required": "Numero colonne obbligatorio.", + "min-columns-count-message": "Ammesso un numero minimo di colonne pari a 10.", + "max-columns-count-message": "Ammesso un numero massimo di colonne pari a 1000.", + "widgets-margins": "Margine tra i widget", + "horizontal-margin": "Margine orizzontale", + "horizontal-margin-required": "Margine orizzontale obbligatorio.", + "min-horizontal-margin-message": "Ammesso un margine orizzontale minimo pari a 0.", + "max-horizontal-margin-message": "Ammesso un margine orizzontale massimo pari a 50.", + "vertical-margin": "Margine verticale", + "vertical-margin-required": "Margine verticale obbligatorio.", + "min-vertical-margin-message": "Ammesso un margine verticale minimo pari a 0.", + "max-vertical-margin-message": "Ammesso un margine verticale massimo pari a 50.", + "autofill-height": "Auto fill layout height", + "mobile-layout": "Impostazioni layout mobile", + "mobile-row-height": "Mobile row height, px", + "mobile-row-height-required": "Mobile row height value is required.", + "min-mobile-row-height-message": "Only 5 pixels is allowed as minimum mobile row height value.", + "max-mobile-row-height-message": "Only 200 pixels is allowed as maximum mobile row height value.", + "display-title": "Mostra titolo dashboard", + "toolbar-always-open": "Mantieni aperta la barra degli strumenti", + "title-color": "Colore titolo", + "display-dashboards-selection": "Mostra selezione dashboard", + "display-entities-selection": "Mostra selezione entità", + "display-dashboard-timewindow": "Display timewindow", + "display-dashboard-export": "Mostra esportazione", + "import": "Importa dashboard", + "export": "Esporta dashboard", + "export-failed-error": "Impossibile esportare la dashboard: {{error}}", + "create-new-dashboard": "Crea nuova dashboard", + "dashboard-file": "File dashboard", + "invalid-dashboard-file-error": "Impossibile importare la dashboard: struttura dati della dashboard non valida.", + "dashboard-import-missing-aliases-title": "Configura alias utilizzati dalla dashboard importata", + "create-new-widget": "Crea nuovo widget", + "import-widget": "Importa widget", + "widget-file": "Widget file", + "invalid-widget-file-error": "Impossibile importare il widget: struttura dati del widget non valida.", + "widget-import-missing-aliases-title": "Configura gli alias utilizzati dai widget importati", + "open-toolbar": "Apri barra degli strumenti", + "close-toolbar": "Chiudi barra degli strumenti", + "configuration-error": "Errore di configurazione", + "alias-resolution-error-title": "Errore di configurazione degli alias della dashboard", + "invalid-aliases-config": "Impossibile trovare un dispositivo corrispondente ad un qualche filtro degli alias.
Contatta l'amministratore per risolvere il problema.", + "select-devices": "Seleziona dispositivi", + "assignedToCustomer": "Assegnato al cliente", + "assignedToCustomers": "Assegnato ai clienti", + "public": "Pubblico", + "public-link": "Link pubblico", + "copy-public-link": "Copia link pubblico", + "public-link-copied-message": "Link pubblico della dashboard copiato negli appunti", + "manage-states": "Manage dashboard states", + "states": "Dashboard states", + "search-states": "Search dashboard states", + "selected-states": "{ count, select, 1 {1 dashboard state} other {# dashboard states} } selected", + "edit-state": "Edit dashboard state", + "delete-state": "Delete dashboard state", + "add-state": "Add dashboard state", + "state": "Dashboard state", + "state-name": "Nome", + "state-name-required": "Dashboard state name is required.", + "state-id": "State Id", + "state-id-required": "Dashboard state id is required.", + "state-id-exists": "Dashboard state with the same id is already exists.", + "is-root-state": "Root state", + "delete-state-title": "Delete dashboard state", + "delete-state-text": "Are you sure you want delete dashboard state with name '{{stateName}}'?", + "show-details": "Mostra dettagli", + "hide-details": "Nascondi dettagli", + "select-state": "Select target state", + "state-controller": "Stato controller" + }, + "datakey": { + "settings": "Impostazioni", + "advanced": "Avanzate", + "label": "Etichetta", + "color": "Colore", + "units": "Simbolo speciale da mostrare accanto al valore", + "decimals": "Numero cifre decimali", + "data-generation-func": "Funzione generazione dati", + "use-data-post-processing-func": "Use data post-processing function", + "configuration": "Data key configuration", + "timeseries": "Serie temporali", + "attributes": "Attributi", + "alarm": "Campi allarme", + "timeseries-required": "Entity timeseries are required.", + "timeseries-or-attributes-required": "Entity timeseries/attributes are required.", + "maximum-timeseries-or-attributes": "Maximum { count, select, 1 {1 timeseries/attribute is allowed.} other {# timeseries/attributes are allowed} }", + "alarm-fields-required": "Campi allarme obbligatori.", + "function-types": "Tipi funzione", + "function-types-required": "Tipi funzione obbligatorio.", + "maximum-function-types": "Massimo { count, select, 1 {1 tipo di funzione consentito.} other {# tipi di funzione consentiti} }" + }, + "datasource": { + "type": "Tipo sorgente dati", + "name": "Nome", + "add-datasource-prompt": "Aggiungi una sorgente dati" + }, + "details": { + "edit-mode": "Modalità modifica", + "toggle-edit-mode": "Toggle edit mode" + }, + "device": { + "device": "Dispositivo", + "device-required": "Dispositivo richiesto.", + "devices": "Dispositivi", + "management": "Gestione dispositivo", + "view-devices": "Visualizza Dispositivi", + "device-alias": "Alias dispositivo", + "aliases": "Alias dispositivo", + "no-alias-matching": "'{{alias}}' non trovato.", + "no-aliases-found": "Nessun alias trovato.", + "no-key-matching": "'{{key}}' non trovata.", + "no-keys-found": "Nessuna chiave trovata.", + "create-new-alias": "Create a new one!", + "create-new-key": "Create a new one!", + "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
Device aliases must be unique whithin the dashboard.", + "configure-alias": "Configura alias '{{alias}}'", + "no-devices-matching": "Nessun dispositivo corrispondente a '{{entity}}' é stato trovato.", + "alias": "Alias", + "alias-required": "Alias dispositivo richesto.", + "remove-alias": "Rimuovi alias dispositivo", + "add-alias": "Aggiungi alias dispositivo", + "name-starts-with": "Device name starts with", + "device-list": "Lista dispositivi", + "use-device-name-filter": "Usa filtro", + "device-list-empty": "Nessun dispositivo selezionato.", + "device-name-filter-required": "Device name filter is required.", + "device-name-filter-no-device-matched": "No devices starting with '{{device}}' were found.", + "add": "Aggiungi Dispositivo", + "assign-to-customer": "Assigna al cliente", + "assign-device-to-customer": "Assegna dispositivo/dispositivi al Cliente", + "assign-device-to-customer-text": "Seleziona i dispositivi da assegnare al cliente", + "make-public": "Rendi pubblico il dispositivo", + "make-private": "rendi privato il dispositivo", + "no-devices-text": "Nessun dispositivo trovato", + "assign-to-customer-text": "Seleziona il cliente a cui assegnare il dispositivo/i dispositivi", + "device-details": "Dettagli dispositivo", + "add-device-text": "Aggiungi nuovo dispositivo", + "credentials": "Credenziali", + "manage-credentials": "Gestisci credenziali", + "delete": "Elimina dispositivo", + "assign-devices": "Assegna dispositivi", + "assign-devices-text": "Assegna { count, select, 1 {1 dispositivo} other {# dispositivi} } al cliente", + "delete-devices": "Elimina dispositivi", + "unassign-from-customer": "Annulla assegnazione al cliente", + "unassign-devices": "Annulla assegnazione dispositivi", + "unassign-devices-action-title": "Annulla assegnazione { count, select, 1 {1 dispositivo} other {# dispositivi} } al cliente", + "assign-new-device": "Assegna nuovo dispositivo", + "make-public-device-title": "Sei sicuro di voler rendere pubblico il dispositivo '{{deviceName}}'?", + "make-public-device-text": "Dopo la conferma il dispositivo e tutti i suoi dati saranno resi pubblici e accessibili dagli altri.", + "make-private-device-title": "Sei sicuro di voler rendere privato il dispositivo '{{deviceName}}'?", + "make-private-device-text": "Dopo la conferma il dispositivo e tutti i suoi dati saranno resi privati e non più accessibili da altri utenti.", + "view-credentials": "Visualizza credenziali", + "delete-device-title": "Sei sicuro di voler eliminare il dispositivo '{{deviceName}}'?", + "delete-device-text": "Attenzione, dopo la conferma il dispositivo e tutti i suoi dati non saranno più recuperabili.", + "delete-devices-title": "Sei sicuro di voler eliminare { count, select, 1 {1 dispositivo} other {# dispositivi} }?", + "delete-devices-action-title": "Elimina { count, select, 1 {1 dispositivo} other {# dispositivi} }", + "delete-devices-text": "Attenzione, dopo la conferma tutti i dispositivi selezionati saranno elimininati e i relativi dati non saranno più recuperabili.", + "unassign-device-title": "Sei sicuro di voler annullare l'assegnazione del dispositivo '{{deviceName}}'?", + "unassign-device-text": "Dopo la conferma sarà annullata l'assegnazione del dispositivo e questo non sarà più accessibile dal cliente.", + "unassign-device": "Annulla assegnazione dispositivo", + "unassign-devices-title": "Sei sicuro di voler annullare la'ssegnazione di { count, select, 1 {1 dispositivo} other {# dispositivi} }?", + "unassign-devices-text": "Dopo la conferma sarà annullata l'assegnazione di tutti i dispositivi selezionati e questi non saranno più accessibili dal cliente.", + "device-credentials": "Credenziali Dispositivo", + "credentials-type": "Tipo credenziali", + "access-token": "Token di accesso", + "access-token-required": "Token di accesso obbligatorio.", + "access-token-invalid": "Il token di accesso deve avere una lunghezza compresa tra 1 e 20 caratteri.", + "rsa-key": "Chiave pubblica RSA", + "rsa-key-required": "Chiave pubblica RSA obbligatoria.", + "secret": "Secret", + "secret-required": "Secret obbligatorio.", + "device-type": "Tipo dispositivo", + "device-type-required": "Tipo dispositivo obbligatorio.", + "select-device-type": "Seleziona tipo dispositivo", + "enter-device-type": "Inserisci typo dispositivo", + "any-device": "Qualsiasi dispositivo", + "no-device-types-matching": "Nessun dispositivo corrispondente a '{{entitySubtype}}' è stato trovato.", + "device-type-list-empty": "Nessun tipo di dispositivo selezionato.", + "device-types": "Tipi dispositivo", + "name": "Nome", + "name-required": "Nome obbligatorio.", + "description": "Descrizione", + "events": "Eventi", + "details": "Dettagli", + "copyId": "Copia Id dispositivo", + "copyAccessToken": "Copia token di accesso", + "idCopiedMessage": "Id dispositivo copiato negli Appunti", + "accessTokenCopiedMessage": "Token di accesso del dispositivo copiato negli Appunti", + "assignedToCustomer": "Assegnato al cliente", + "unable-delete-device-alias-title": "Impossibile rimuovere l'alias del dispositivo", + "unable-delete-device-alias-text": "L'alias del dispositivo '{{deviceAlias}}' non può essere eliminato perchè utilizzato dai seguenti widget:
{{widgetsList}}", + "is-gateway": "E' un gateway", + "public": "Pubblico", + "device-public": "Il dispositivo è pubblico", + "select-device": "Seleziona dispositivo" + }, + "dialog": { + "close": "Close dialog" + }, + "error": { + "unable-to-connect": "Impossibile connettersi al server! Controlla la connessione ad Internet.", + "unhandled-error-code": "Codice errore non gestito: {{errorCode}}", + "unknown-error": "Errore sconosciuto" + }, + "entity": { + "entity": "Entità", + "entities": "Entità", + "aliases": "Alias entità", + "entity-alias": "Alias entità", + "unable-delete-entity-alias-title": "Impossibile eliminare alias entità", + "unable-delete-entity-alias-text": "L'alias dell'entità '{{entityAlias}}' non può essere eliminato perchè utilizzato dai seguenti widget:
{{widgetsList}}", + "duplicate-alias-error": "Trovato un duplicato dell'alias '{{alias}}'.
Gli alias dell'entità devono essere univoci all'interno della dashboard.", + "missing-entity-filter-error": "Filter is missing for alias '{{alias}}'.", + "configure-alias": "Configura '{{alias}}' alias", + "alias": "Alias", + "alias-required": "Alias entità obbligatorio.", + "remove-alias": "Rimuovi alias entità", + "add-alias": "Aggiungi alias entità", + "entity-list": "Lista entità", + "entity-type": "Tipo entità", + "entity-types": "Tipi entità", + "entity-type-list": "Lista tipo entità", + "any-entity": "Qualsiasi entità", + "enter-entity-type": "Inserisci tipo entità", + "no-entities-matching": "Nessuna entità corrispondente a '{{entity}}' è stata trovata.", + "no-entity-types-matching": "Nessun tipo di entità corrispondente a '{{entityType}}' è stato trovato.", + "name-starts-with": "Nome inizia per", + "use-entity-name-filter": "Usa filtro", + "entity-list-empty": "Nessuna entità selezionata.", + "entity-type-list-empty": "Nessun tipo di entità selezionato.", + "entity-name-filter-required": "Filtro nome entità obbligatorio.", + "entity-name-filter-no-entity-matched": "No entities starting with '{{entity}}' were found.", + "all-subtypes": "Tutte", + "select-entities": "Seleziona entità", + "no-aliases-found": "Nessun alias trovato.", + "no-alias-matching": "'{{alias}}' non trovato.", + "create-new-alias": "Create a new one!", + "key": "Chiave", + "key-name": "Nome chiave", + "no-keys-found": "Nessuna chiave trovata.", + "no-key-matching": "'{{key}}' non trovata.", + "create-new-key": "Create a new one!", + "type": "Tipo", + "type-required": "Tipo entità obbligatorio.", + "type-device": "Dispositivo", + "type-devices": "Dispositivi", + "list-of-devices": "{ count, select, 1 {Un dispositivo} other {Lista di # dispositivi} }", + "device-name-starts-with": "Dispositivi i cui nomi iniziano per '{{prefix}}'", + "type-asset": "Asset", + "type-assets": "Asset", + "list-of-assets": "{ count, select, 1 {Un asset} other {Lista di # asset} }", + "asset-name-starts-with": "Asset i cui nomi iniziano per '{{prefix}}'", + "type-rule": "Regola", + "type-rules": "Regole", + "list-of-rules": "{ count, select, 1 {Una regola} other {Lista di # regole} }", + "rule-name-starts-with": "Regole i cui nomi iniziano per '{{prefix}}'", + "type-plugin": "Plugin", + "type-plugins": "Plugin", + "list-of-plugins": "{ count, select, 1 {Un plugin} other {Lista di # plugin} }", + "plugin-name-starts-with": "Plugin i cui nomi iniziano per '{{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": "Cliente", + "type-customers": "Clienti", + "list-of-customers": "{ count, select, 1 {Un cliente} other {Lista di # clienti} }", + "customer-name-starts-with": "Clienti i cui nomi iniziano per '{{prefix}}'", + "type-user": "Utente", + "type-users": "Utenti", + "list-of-users": "{ count, select, 1 {Un utente} other {Lista of # utenti} }", + "user-name-starts-with": "Utenti i cui nomi iniziano per '{{prefix}}'", + "type-dashboard": "Dashboard", + "type-dashboards": "Dashboard", + "list-of-dashboards": "{ count, select, 1 {Una dashboard} other {Lista di # dashboard} }", + "dashboard-name-starts-with": "Dashboard i cui nomi iniziano per '{{prefix}}'", + "type-alarm": "Allarme", + "type-alarms": "Allarmi", + "list-of-alarms": "{ count, select, 1 {Un allarme} other {Lista di # allarmi} }", + "alarm-name-starts-with": "Allarmi i cui nomi iniziano per '{{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": "Ricerca entità", + "selected-entities": "{ count, select, 1 {1 entità selezionata} other {# entità selezionate} }", + "entity-name": "Nome entità", + "details": "Dettagli entità", + "no-entities-prompt": "Nessuna entità trovata", + "no-data": "Nessun dato da mostrare" + }, + "event": { + "event-type": "Tipo evento", + "type-error": "Errore", + "type-lc-event": "Ciclo di vita evento", + "type-stats": "Statistiche", + "type-debug-rule-node": "Debug", + "type-debug-rule-chain": "Debug", + "no-events-prompt": "Nessun evento trovato", + "error": "Errore", + "alarm": "Allarme", + "event-time": "Orario evento", + "server": "Server", + "body": "Body", + "method": "Metodo", + "type": "Tipo", + "entity": "Entità", + "message-id": "Id Messaggio", + "message-type": "Tipo Messaggio", + "data-type": "Data Type", + "relation-type": "Tipo di relazione", + "metadata": "Metadati", + "data": "Dati", + "event": "Evento", + "status": "Stato", + "success": "Success", + "failed": "Failed", + "messages-processed": "Messaggi elaborati", + "errors-occurred": "Si sono verificati degli errori" + }, + "extension": { + "extensions": "Estensioni", + "selected-extensions": "{ count, select, 1 {1 estensione selezionata} other {# estensioni selezionate} }", + "type": "Tipo", + "key": "Chiave", + "value": "Valore", + "id": "Id", + "extension-id": "Id Estensione", + "extension-type": "Tipo Estensione", + "transformer-json": "JSON *", + "unique-id-required": "Id estensione corrente già esistente.", + "delete": "Elimina estensione", + "add": "Aggiungi estensione", + "edit": "Modifica estensione", + "delete-extension-title": "Sei sicuro di voler eliminare l'estensione '{{extensionId}}'?", + "delete-extension-text": "Attenzione, dopo la conferma l'estensione e tutti i suoi data non saranno più recuperabili.", + "delete-extensions-title": "Sei sicuro di voler eliminare { count, select, 1 {1 estensione} other {# estensioni} }?", + "delete-extensions-text": "Attenzione, dopo la conferma tutte le estensioni selezionate saranno eliminate.", + "converters": "Converters", + "converter-id": "Converter id", + "configuration": "Configurazione", + "converter-configurations": "Converter configurations", + "token": "Token di sicurezza", + "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": "Attributi", + "add-attribute": "Aggiungi attributo", + "add-map": "Add mapping element", + "timeseries": "Serie temporali", + "add-timeseries": "Add timeseries", + "field-required": "Field is required", + "brokers": "Broker", + "add-broker": "Aggiungi broker", + "host": "Host", + "port": "Porta", + "port-range": "Port should be in a range from 1 to 65535.", + "ssl": "Ssl", + "credentials": "Credenziali", + "username": "Nome utente", + "password": "Password", + "retry-interval": "Retry interval in milliseconds", + "anonymous": "Anonimo", + "basic": "Basic", + "pem": "PEM", + "ca-cert": "CA certificate file *", + "private-key": "File chiave privata *", + "cert": "File certificato *", + "no-file": "Nessun file selezionato.", + "drop-file": "Trascina un file o fai clic per selezionare un file da caricare.", + "mapping": "Mapping", + "topic-filter": "Filtro topic", + "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 millisecondi", + "converter-json-required": "Convertitore json obbligatorio.", + "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": "Aggiungi dispositivo", + "opc-server": "Server", + "opc-add-server": "Aggiungi server", + "opc-add-server-prompt": "Aggiungi server", + "opc-application-name": "Nome applicazione", + "opc-application-uri": "Uri applicazione", + "opc-scan-period-in-seconds": "Intervallo di scansione in secondi", + "opc-security": "Sicurezza", + "opc-identity": "Identità", + "opc-keystore": "Keystore", + "opc-type": "Tipo", + "opc-keystore-type": "Tipo", + "opc-keystore-location": "Location *", + "opc-keystore-password": "Password", + "opc-keystore-alias": "Alias", + "opc-keystore-key-password": "Chiave password", + "opc-device-node-pattern": "Device node pattern", + "opc-device-name-pattern": "Device name pattern", + "modbus-server": "Servers/slaves", + "modbus-add-server": "Aggiungi server/slave", + "modbus-add-server-prompt": "Aggiungi server/slave", + "modbus-transport": "Transport", + "modbus-port-name": "Nome porta seriale", + "modbus-encoding": "Codifica", + "modbus-parity": "Parità", + "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": "Nome dispositivo", + "modbus-poll-period": "Intervallo di polling (ms)", + "modbus-attributes-poll-period": "Attributes poll period (ms)", + "modbus-timeseries-poll-period": "Timeseries poll period (ms)", + "modbus-poll-period-range": "L'intervallo di polling deve essere un valore positivo.", + "modbus-tag": "Tag", + "modbus-function": "Funzione", + "modbus-register-address": "Indirizzo registro", + "modbus-register-address-range": "L'indirizzo del registro deve essere compreso tra 0 e 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": "Stato", + "sync": "Sincronizzato", + "not-sync": "Non sincronizzato", + "last-sync-time": "Ultima sincronizzazione", + "not-available": "Non disponibile" + }, + + "export-extensions-configuration": "Export extensions configuration", + "import-extensions-configuration": "Import extensions configuration", + "import-extensions": "Importa estensione", + "import-extension": "Importa estensione", + "export-extension": "Esporta estensione", + "file": "File estensione", + "invalid-file-error": "File estensione non valido" + }, + "fullscreen": { + "expand": "Expand to fullscreen", + "exit": "Exit fullscreen", + "toggle": "Toggle fullscreen mode", + "fullscreen": "Fullscreen" + }, + "function": { + "function": "Function" + }, + "grid": { + "delete-item-title": "Are you sure you want to delete this item?", + "delete-item-text": "Be careful, after the confirmation this item and all related data will become unrecoverable.", + "delete-items-title": "Are you sure you want to delete { count, select, 1 {1 item} other {# items} }?", + "delete-items-action-title": "Delete { count, select, 1 {1 item} other {# items} }", + "delete-items-text": "Be careful, after the confirmation all selected items will be removed and all related data will become unrecoverable.", + "add-item-text": "Add new item", + "no-items-text": "No items found", + "item-details": "Item details", + "delete-item": "Delete Item", + "delete-items": "Delete Items", + "scroll-to-top": "Scroll to top" + }, + "help": { + "goto-help-page": "Go to help page" + }, + "home": { + "home": "Home", + "profile": "Profilo", + "logout": "Logout", + "menu": "Menu", + "avatar": "Avatar", + "open-user-menu": "Apri menu utente" + }, + "import": { + "no-file": "Nessun file selezionato", + "drop-file": "Trascina un file JSON o fai clic per selezionare un file da caricare." + }, + "item": { + "selected": "Selezionata" + }, + "js-func": { + "no-return-error": "La funzione deve restituire un valore!", + "return-type-mismatch": "La funzione deve restituire un valore di tipo '{{type}}'!", + "tidy": "Tidy" + }, + "key-val": { + "key": "Chiave", + "value": "Valore", + "remove-entry": "Remove entry", + "add-entry": "Add entry", + "no-data": "No entries" + }, + "layout": { + "layout": "Layout", + "manage": "Gestisci layout", + "settings": "Impostazioni layout", + "color": "Colore", + "main": "Main", + "right": "Right", + "select": "Select target layout" + }, + "legend": { + "position": "Posizione Legenda", + "show-max": "Mostra valore max", + "show-min": "Mostra valore min", + "show-avg": "Mostra valore medio", + "show-total": "Mostra valore totale", + "settings": "Impostazioni legenda", + "min": "min", + "max": "max", + "avg": "avg", + "total": "totale" + }, + "login": { + "login": "Login", + "request-password-reset": "Request Password Reset", + "reset-password": "Azzera Password", + "create-password": "Crea Password", + "passwords-mismatch-error": "Le password inserite devono corrispondere!", + "password-again": "Ripeti Password", + "sign-in": "Please sign in", + "username": "Nome utente (email)", + "remember-me": "Ricordami", + "forgot-password": "Password dimenticata?", + "password-reset": "Password reset", + "new-password": "Nuova password", + "new-password-again": "Ripeti nuova password", + "password-link-sent-message": "Link azzeramento password inviato con successo!", + "email": "Email" + }, + "position": { + "top": "Alto", + "bottom": "Basso", + "left": "Sinistra", + "right": "Destra" + }, + "profile": { + "profile": "Profilo", + "change-password": "Modifica Password", + "current-password": "Password attuale" + }, + "relation": { + "relations": "Relations", + "direction": "Direction", + "search-direction": { + "FROM": "Da", + "TO": "A" + }, + "direction-type": { + "FROM": "da", + "TO": "a" + }, + "from-relations": "Outbound relations", + "to-relations": "Inbound relations", + "selected-relations": "{ count, select, 1 {1 relation} other {# relations} } selected", + "type": "Tipo", + "to-entity-type": "A tipo entità", + "to-entity-name": "A nome entità", + "from-entity-type": "Da tipo entità", + "from-entity-name": "Da nome entità", + "to-entity": "A entità", + "from-entity": "Da entità", + "delete": "Delete relation", + "relation-type": "Relation type", + "relation-type-required": "Relation type is required.", + "any-relation-type": "Ogni tipo", + "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": "Attenzione, dopo la conferma l'entità '{{entityName}}' sarà scollegata dall'entità corrente.", + "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": { + "rulechain": "Rule chain", + "rulechains": "Rule chains", + "root": "Root", + "delete": "Delete rule chain", + "name": "Nome", + "name-required": "Nome obbligatorio.", + "description": "Descrizione", + "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": "Dettagli", + "events": "Eventi", + "system": "Sistema", + "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": "Modalità debug" + }, + "rulenode": { + "details": "Dettagli", + "events": "Eventi", + "search": "Ricerca nodi", + "open-node-library": "Apri libreria nodi", + "add": "Add rule node", + "name": "Nome", + "name-required": "Nome obbligatorio.", + "type": "Tipo", + "description": "Descrizione", + "delete": "Delete rule node", + "select-all-objects": "Seleziona tutti i nodi e le connessioni", + "deselect-all-objects": "Deselect all nodes and connections", + "delete-selected-objects": "Cancella nodi e connessioni selezionate", + "delete-selected": "Delete selected", + "select-all": "Seleziona tutto", + "copy-selected": "Copy selected", + "deselect-all": "Deselect all", + "rulenode-details": "Rule node details", + "debug-mode": "Modalità debug", + "configuration": "Configurazione", + "link": "Link", + "link-details": "Rule node link details", + "add-link": "Aggiungi link", + "link-label": "Etichetta link", + "link-label-required": "Etichetta link obbligatoria.", + "custom-link-label": "Custom link label", + "custom-link-label-required": "Custom link label is required.", + "type-filter": "Filtro", + "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": "Azioni", + "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": "Messaggio", + "message-type": "Tipo messaggio", + "message-type-required": "Tipo messaggio obbligatorio", + "metadata": "Metadata", + "metadata-required": "Metadata entries can't be empty.", + "output": "Output", + "test": "Test", + "help": "Aiuto" + }, + "tenant": { + "tenant": "Tenant", + "tenants": "Tenant", + "management": "Gestione Tenant", + "add": "Aggiungi Tenant", + "admins": "Amministratori", + "manage-tenant-admins": "Gestisci amministratori tenant", + "delete": "Cancella tenant", + "add-tenant-text": "Aggiungi nuovo tenant", + "no-tenants-text": "Nessun tenant trovato", + "tenant-details": "Dettagli tenant", + "delete-tenant-title": "Sei sicuro di voler eliminare il tenant '{{tenantTitle}}'?", + "delete-tenant-text": "Attenzione, dopo la conferma il tenant e tutti i suoi dati non saranno più recuperabili.", + "delete-tenants-title": "Sei sicuro di voler eliminare { count, select, 1 {1 tenant} other {# tenant} }?", + "delete-tenants-action-title": "Elimina { count, select, 1 {1 tenant} other {# tenant} }", + "delete-tenants-text": "Attenzione, dopo la conferma tutti i tenant selezionati saranno eliminati e tutti i loro dati non saranno più recuperabili.", + "title": "Titolo", + "title-required": "Titolo obbligatorio.", + "description": "Descrizione", + "details": "Dettagli", + "events": "Eventi", + "copyId": "Copia Id tenant", + "idCopiedMessage": "Id tenant copiato negli appunti", + "select-tenant": "Seleziona tenant", + "no-tenants-matching": "Nessun tenant corrispondente a '{{entity}}' è stato trovato.", + "tenant-required": "Tenant obbligatorio" + }, + "timeinterval": { + "seconds-interval": "{ seconds, select, 1 {1 secondo} other {# secondi} }", + "minutes-interval": "{ minutes, select, 1 {1 minuto} other {# minuti} }", + "hours-interval": "{ hours, select, 1 {1 ora} other {# ore} }", + "days-interval": "{ days, select, 1 {1 giorno} other {# giorni} }", + "days": "Giorni", + "hours": "Ore", + "minutes": "Minuti", + "seconds": "Secondi", + "advanced": "Avanzate" + }, + "timewindow": { + "days": "{ days, select, 1 { giorno } other {# giorni } }", + "hours": "{ hours, select, 0 { hour } 1 {1 ora } other {# ore } }", + "minutes": "{ minutes, select, 0 { minute } 1 {1 minuto } other {# minuti } }", + "seconds": "{ seconds, select, 0 { second } 1 {1 secondo } other {# secondi } }", + "realtime": "Realtime", + "history": "Cronologia", + "last-prefix": "last", + "period": "from {{ startTime }} to {{ endTime }}", + "edit": "Edit timewindow", + "date-range": "Date range", + "last": "Last", + "time-period": "Time period" + }, + "user": { + "user": "Utente", + "users": "Utenti", + "customer-users": "Customer Users", + "tenant-admins": "Amministratori Tenant", + "sys-admin": "Amministratore di sistema", + "tenant-admin": "Amministratore tenant", + "customer": "Cliente", + "anonymous": "Anonimo", + "add": "Aggiungi Utente", + "delete": "Elimina utente", + "add-user-text": "Aggiungi nuovo utente", + "no-users-text": "Nessun utente trovato", + "user-details": "Dettagli utente", + "delete-user-title": "Sei sicuro di voler eliminare l'utente '{{userEmail}}'?", + "delete-user-text": "Attenzione, dopo la conferma l'utente e tutti i suoi dati non saranno più recuperabili.", + "delete-users-title": "Sei sicuro di voler eliminare { count, select, 1 {1 utente} other {# utenti} }?", + "delete-users-action-title": "Elimina { count, select, 1 {1 utente} other {# utenti} }", + "delete-users-text": "Attenzione, dopo la conferma tutti gli utenti selezionati saranno eliminati e tutti i relativi dati non saranno più recuperabili.", + "activation-email-sent-message": "Email di attivazione inviata con successo!", + "resend-activation": "Resend activation", + "email": "Email", + "email-required": "Email obbligatoria.", + "invalid-email-format": "Formato email non valido.", + "first-name": "Nome", + "last-name": "Cognome", + "description": "Descrizione", + "default-dashboard": "Dashboard di default", + "always-fullscreen": "Always fullscreen", + "select-user": "Seleziona utente", + "no-users-matching": "Nessun utente corrispondente a '{{entity}}' è stato trovato.", + "user-required": "Utente obbligatorio", + "activation-method": "Metodo di attivazione", + "display-activation-link": "Mostra link di attivazione", + "send-activation-mail": "Invia email di attivazione", + "activation-link": "Link attivazione utente", + "activation-link-text": "Per attivare l'utente utilizza il seguente link di attivazione :", + "copy-activation-link": "Copia link di attivazione", + "activation-link-copied-message": "Link di attivazione utente copiato negli appunti", + "details": "Dettagli" + }, + "value": { + "type": "Tipo valore", + "string": "String", + "string-value": "Valore string", + "integer": "Integer", + "integer-value": "Valore integer", + "invalid-integer-value": "Valore integer non valido", + "double": "Double", + "double-value": "Valore double", + "boolean": "Boolean", + "boolean-value": "Valore boolean", + "false": "Falso", + "true": "Vero", + "long": "Long" + }, + "widget": { + "widget-library": "Libreria Widget", + "widget-bundle": "Bundle widget", + "select-widgets-bundle": "Seleziona bundle widget", + "management": "Gestione widget", + "editor": "Editor Widget", + "widget-type-not-found": "Problem loading widget configuration.
Probably associated\n widget type was removed.", + "widget-type-load-error": "Widget non caricato a causa dei seguenti errori:", + "remove": "Elimina widget", + "edit": "Modifica widget", + "remove-widget-title": "sei sicuro di voler eliminare il widget '{{widgetTitle}}'?", + "remove-widget-text": "Dopo la conferma il widget e tutti i suoi dati non saranno più recuperabili.", + "timeseries": "Time series", + "search-data": "Cerca dati", + "no-data-found": "Nessun dato trovato", + "latest-values": "Ultimi valori", + "rpc": "Control widget", + "alarm": "Alarm widget", + "static": "Static widget", + "select-widget-type": "Seleziona tipo widget", + "missing-widget-title-error": "Il tiolo del widget deve essere specificato!", + "widget-saved": "Widget salvato", + "unable-to-save-widget-error": "Impossibile salvare il widget! Sono presenti degli errori!", + "save": "Salva widget", + "saveAs": "Salva widget come", + "save-widget-type-as": "Salva tipo widget come", + "save-widget-type-as-text": "Please enter new widget title and/or select target widgets bundle", + "toggle-fullscreen": "Toggle fullscreen", + "run": "Esegui widget", + "title": "Titolo widget", + "title-required": "Titolo widget obbligatorio.", + "type": "Tipo widget", + "resources": "Risorse", + "resource-url": "JavaScript/CSS URL", + "remove-resource": "Rimuovi risorsa", + "add-resource": "Aggiungi risorsa", + "html": "HTML", + "tidy": "Tidy", + "css": "CSS", + "settings-schema": "Impostazioni schema", + "datakey-settings-schema": "Data key settings schema", + "javascript": "Javascript", + "remove-widget-type-title": "Sei sicuro di voler rimuovere il tipo di widget '{{widgetName}}'?", + "remove-widget-type-text": "Dopo la conferma il tipo di widget e tutti i suoi dati non saranno più recuperabili.", + "remove-widget-type": "Rimuovi tipo widget", + "add-widget-type": "Aggiungi nuovo tipo widget", + "widget-type-load-failed-error": "Caricamento tipo widget fallito!", + "widget-template-load-failed-error": "Caricamento template widget fallito!", + "add": "Aggiungi Widget", + "undo": "Annulla modifiche widget", + "export": "Esporta widget" + }, + "widget-action": { + "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": "Bundle corrente", + "widgets-bundles": "Bundle Widget", + "add": "Aggiungi Bundle Widget", + "delete": "Cancella bundle widget", + "title": "Titolo", + "title-required": "Titolo obbligatorio.", + "add-widgets-bundle-text": "Aggiungi nuovo bundle widget", + "no-widgets-bundles-text": "Nessun bundle widget trovato", + "empty": "Bundle widget vuoto", + "details": "Dettagli", + "widgets-bundle-details": "Dettagli bundle widget", + "delete-widgets-bundle-title": "Sei sicuro di voler eliminare il bundle widget '{{widgetsBundleTitle}}'?", + "delete-widgets-bundle-text": "Attenzione, dopo la conferma il bundle widget e tutti i suoi dati non saranno più recuperabili.", + "delete-widgets-bundles-title": "Sei sicuro di voler eliminare { count, select, 1 {1 bundle widget} other {# bundle widget} }?", + "delete-widgets-bundles-action-title": "Elimina { count, select, 1 {1 bundle widget} other {# bundle widget} }", + "delete-widgets-bundles-text": "Attenzione, dopo la conferma tutti i bundle widget selezionati saranno rimossi e tutti i loro dati non saranno più recuperabili.", + "no-widgets-bundles-matching": "Nessun bundle widget corrispondente a '{{widgetsBundle}}' è stato trovato.", + "widgets-bundle-required": "Bundle widget obbligatorio.", + "system": "Sistema", + "import": "Importa bundle widget", + "export": "Esporta bundle widget", + "export-failed-error": "Impossibile esportare bundle widget: {{error}}", + "create-new-widgets-bundle": "Crea nuovo bundle widget", + "widgets-bundle-file": "File bundle widget", + "invalid-widgets-bundle-file-error": "Impossibile importare bundle widget: struttura dati non valida." + }, + "widget-config": { + "data": "Dati", + "settings": "Impostazioni", + "advanced": "Avanzate", + "title": "Titolo", + "general-settings": "Impostazioni generali", + "display-title": "Mostra titolo", + "drop-shadow": "Drop shadow", + "enable-fullscreen": "Abilita fullscreen", + "background-color": "Colore sfondo", + "text-color": "Colore testo", + "padding": "Padding", + "margin": "Margin", + "widget-style": "Stile Widget", + "title-style": "Stile titolo", + "mobile-mode-settings": "Impostazioni modalità mobile", + "order": "Ordinamento", + "height": "Altezza", + "units": "Simbolo speciale da mostrare vicino al valore", + "decimals": "Numero di cifre decimali", + "timewindow": "Timewindow", + "use-dashboard-timewindow": "Use dashboard timewindow", + "display-legend": "Mostra legenda", + "datasources": "Sorgenti dei dati", + "maximum-datasources": "Massimo { count, select, 1 {1 sorgente dati consentita.} other {# sorgenti dati consentite} }", + "datasource-type": "Tipo", + "datasource-parameters": "Parametri", + "remove-datasource": "Rimuovi sorgente dati", + "add-datasource": "Aggiungi sorgente dati", + "target-device": "Dispositivo Target", + "alarm-source": "Sorgente Allarme", + "actions": "Azioni", + "action": "Azione", + "add-action": "Aggiungi azione", + "search-actions": "Ricerca azioni", + "action-source": "Sorgente azione", + "action-source-required": "Sorgente azione obbligatoria.", + "action-name": "Nome", + "action-name-required": "Nome azione obbligatorio.", + "action-name-not-unique": "Un'altra azione con lo stesso nome è già presente.
Il nome di una azione dovrebbe essere univoco all'interno della stessa sorgente.", + "action-icon": "Icona", + "action-type": "Tipo", + "action-type-required": "Tipo azione obbligatorio.", + "edit-action": "Modifica azione", + "delete-action": "Cancella azione", + "delete-action-title": "Cancella azione del widget", + "delete-action-text": "Sei sicuro di voler cancellare l'azione del widget '{{actionName}}'?" + }, + "widget-type": { + "import": "Importa un tipo di widget", + "export": "Esporta un tipo di widget", + "export-failed-error": "Impossibile esportare il tipo di widget: {{error}}", + "create-new-widget-type": "Crea un nuovo tipo di widget", + "widget-type-file": "Widget type file", + "invalid-widget-type-file-error": "Impossibile importare un tipo di widget: struttura dati del widget non valida." + }, + "icon": { + "icon": "Icona", + "select-icon": "Seleziona icona", + "material-icons": "Icone Material", + "show-all": "Mostra tutte le icone" + }, + "custom": { + "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": "Lingua", + "zh_CN": "Cinese", + "ko_KR": "Coreano", + "en_US": "Inglese", + "it_IT": "Italiano", + "ru_RU": "Russo", + "es_ES": "Spagnolo" + } +} diff --git a/ui/src/app/locale/locale.constant-ko.js b/ui/src/app/locale/locale.constant-ko.js deleted file mode 100644 index 91121577e1..0000000000 --- a/ui/src/app/locale/locale.constant-ko.js +++ /dev/null @@ -1,1354 +0,0 @@ -/* - * Copyright © 2016-2018 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default function addLocaleKorean(locales) { - var ko_KR = { - "access": { - "unauthorized": "권한 없음.", - "unauthorized-access": "허가되지 않은 접근", - "unauthorized-access-text": "이 리소스에 접근하려면 로그인해야 합니다!", - "access-forbidden": "접근 금지", - "access-forbidden-text": "접근 권한이 없습니다.!
만일 이 페이지에 계속 접근하려면 다른 사용자로 로그인 하세요.", - "refresh-token-expired": "세션이 만료되었습니다.", - "refresh-token-failed": "세션을 새로 고칠 수 없습니다." - }, - "action": { - "activate": "활설화", - "suspend": "비활성화", - "save": "저장", - "saveAs": "다른 이름으로 저장", - "cancel": "취소", - "ok": "확인", - "delete": "삭제", - "add": "추가", - "yes": "네", - "no": "아니오", - "update": "업데이트", - "remove": "제거", - "search": "검색", - "clear-search": "Clear search", // TODO - "assign": "할당", - "unassign": "비할당", - "share": "Share", // TODO - "make-private": "Make private", // TODO - "apply": "적용", - "apply-changes": "변경사항 적용", - "edit-mode": "수정 모드", - "enter-edit-mode": "수정 모드 진입", - "decline-changes": "변경사항 포기", - "close": "닫기", - "back": "뒤로", - "run": "실행", - "sign-in": "로그인!", - "edit": "수정", - "view": "보기", - "create": "만들기", - "drag": "끌기", - "refresh": "새로고침", - "undo": "취소", - "copy": "복사", - "paste": "붙여넣기", - "copy-reference": "Copy reference", // TODO - "paste-reference": "Paste reference", // TODO - "import": "가져오기", - "export": "내보내기", - "share-via": "Share via {{provider}}" // TODO - }, - "aggregation": { - "aggregation": "집합", - "function": "데이터 집합 함수", - "limit": "최대 값", - "group-interval": "그룹 간격", - "min": "최소", - "max": "최대", - "avg": "평균", - "sum": "합계", - "count": "숫자", - "none": "없음" - }, - "admin": { - "general": "일반", - "general-settings": "일반 설정", - "outgoing-mail": "메일 전송", - "outgoing-mail-settings": "메일 전송 설정", - "system-settings": "시스템 설정", - "test-mail-sent": "테스트 메일이 성공적으로 전송되었습니다!", - "base-url": "기본 URL", - "base-url-required": "기본 URL을 입력해야 합니다.", - "mail-from": "보내는 사람", - "mail-from-required": "보내는 사람을 입력해야 합니다.", - "smtp-protocol": "SMTP 프로토콜", - "smtp-host": "SMTP 호스트", - "smtp-host-required": "SMTP 호스트를 입력해야 합니다.", - "smtp-port": "SMTP 포트", - "smtp-port-required": "SMTP 포트를 입력해야 합니다.", - "smtp-port-invalid": "올바른 SMTP 포트가 아닙니다.", - "timeout-msec": "제한시간 (msec)", - "timeout-required": "제한시간을 입력해야 합니다.", - "timeout-invalid": "올바른 제한시간이 아닙니다.", - "enable-tls": "TLS 사용", - "send-test-mail": "테스트 메일 보내기" - }, - - "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": "속성", - "latest-telemetry": "최근 데이터", - "attributes-scope": "디바이스 속성 범위", - "scope-latest-telemetry": "최근 데이터", - "scope-client": "클라이언트 속성", - "scope-server": "서버 속성", - "scope-shared": "공유 속성", - "add": "속성 추가", - "key": "Key", // TODO - "key-required": "속성 key를 입력하세요.", - "value": "Value", // TODO - "value-required": "속성 value를 입력하세요.", - "delete-attributes-title": "{ count, select, 1 {속성} other {여러 속성들을} } 삭제하시겠습니까??", - "delete-attributes-text": "모든 선택된 속성들이 제거 될 것이므로 주의하십시오.", - "delete-attributes": "속성 삭제", - "enter-attribute-value": "속성 값 입력", - "show-on-widget": "위젯 보기", - "widget-mode": "위젯 모드", - "next-widget": "다음 위젯", - "prev-widget": "이전 위젯", - "add-to-dashboard": "대시보드에 추가", - "add-widget-to-dashboard": "대시보드에 위젯 추가", - "selected-attributes": "{ count, select, 1 {속성 1개} other {속성 #개} } 선택됨", - "selected-telemetry": "{ count, select, 1 {최근 데이터 1개} other {최근 데이터 #개} } 선택됨" - }, - "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": "변경 사항을 저장하지 않았습니다. 이 페이지를 나가시겠습니까?", - "html-message": "변경 사항을 저장하지 않았습니다.
이 페이지를 나가시겠습니까?", - "title": "저장되지 않은 변경사항" - }, - "contact": { - "country": "국가", - "city": "시", - "state": "도", - "postal-code": "우편 번호", - "postal-code-invalid": "숫자만 입력하세요.", - "address": "주소", - "address2": "상세주소", - "phone": "전화번호", - "email": "Email", - "no-address": "주소 정보 없음" - }, - "common": { - "username": "사용자명", - "password": "비밀번호", - "enter-username": "사용자명을 입력하세요.", - "enter-password": "비밀번호를 입력하세요.", - "enter-search": "검색어 입력" - }, - "content-type": { // TODO - "json": "Json", - "text": "Text", - "binary": "Binary (Base64)" - }, - "customer": { - "customers": "커스터머", - "management": "커스터머 관리", - "dashboard": "커스터머 대시보드", - "dashboards": "커스터머 대시보드", - "devices": "커스터머 디바이스", - "add": "커스터머 추가", - "delete": "커스터머 삭제", - "manage-customer-users": "커스터머 사용자 관리", - "manage-customer-devices": "커스터머 디바이스 관리", - "manage-customer-dashboards": "커스터머 대시보드 관리", - "manage-public-devices": "Manage public devices", // TODO - "manage-public-dashboards": "Manage public dashboards", // TODO - "manage-customer-assets": "Manage customer assets", // TODO - "manage-public-assets": "Manage public assets", // TODO - "add-customer-text": "커스터머 추가", - "no-customers-text": "커스터머가 없습니다.", - "customer-details": "커스터머 상세정보", - "delete-customer-title": "'{{customerTitle}}' 커스터머를 삭제하시겠습니까?", - "delete-customer-text": "커스터머 및 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "delete-customers-title": "{ count, select, 1 {커스터머 1개} other {커스터머 #개} }를 삭제하시겠습니까?", - "delete-customers-action-title": "{ count, select, 1 {커스터머 1개} other {커스터머 #개} } 삭제", - "delete-customers-text": "선택된 커스터머는 삭제되고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "manage-users": "사용자 관리", - "manage-devices": "디바이스 관리", - "manage-dashboards": "대시보드 관리", - "title": "타이틀", - "title-required": "타이틀을 입력하세요.", - "description": "설명", - "details": "Details", - "events": "Events", - "copyId": "Copy customer Id", - "idCopiedMessage": "Customer Id has been copied to clipboard", - "select-customer": "Select customer", - "no-customers-matching": "No customers matching '{{entity}}' were found.", - "customer-required": "Customer is required", - "select-default-customer": "Select default customer", - "default-customer": "Default customer", - "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level" - }, - "datetime": { - "date-from": "시작 날짜", - "time-from": "시작 시간", - "date-to": "종료 날짜", - "time-to": "종료 시간" - }, - "dashboard": { - "dashboard": "대시보드", - "dashboards": "대시보드", - "management": "대시보드 관리", - "view-dashboards": "대시보드 보기", - "add": "대시보드 추가", - "assign-dashboard-to-customer": "대시보드 커스터머 선택", - "assign-dashboard-to-customer-text": "대시보드 커스터머를 선택하세요.", - "assign-to-customer-text": "대시보드 커스터머를 선택하세요.", - "assign-to-customer": "커스터머 선택", - "unassign-from-customer": "커스터머 해제", - "no-dashboards-text": "대시보드가 없습니다", - "no-widgets": "설정된 위젯 없음", - "add-widget": "위젯 추가", - "title": "타이틀", - "select-widget-title": "위젯 선택", - "select-widget-subtitle": "사용가능한 위젯 타입 목록", - "delete": "대시보드 삭제", - "title-required": "타이틀을 입력하세요.", - "description": "설명", - "details": "상세", - "dashboard-details": "대시보드 상세정보", - "add-dashboard-text": "대시보드 추가", - "assign-dashboards": "대시보드 지정", - "assign-new-dashboard": "새 대시보드 할당", - "assign-dashboards-text": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} }를 커스터머 할당", - "delete-dashboards": "대시보드 삭제", - "unassign-dashboards": "대시보드 할당 취소", - "unassign-dashboards-action-title": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} }를 커스터머 할당 취소", - "delete-dashboard-title": "'{{dashboardTitle}}' 대시보드를 삭제하시겠습니까?", - "delete-dashboard-text": "대시보드 및 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "delete-dashboards-title": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} }를 삭제하시겠습니까?", - "delete-dashboards-action-title": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} } 삭제", - "delete-dashboards-text": "선택된 대시보드가 삭제되고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "unassign-dashboard-title": "'{{dashboardTitle}}' 대시보드 할당을 해제하시겠습니까?", - "unassign-dashboard-text": "대시보드가 할당 해제되고 커스터머는 액세스 할 수 없게됩니다.", - "unassign-dashboard": "대시보드 할달 취소", - "unassign-dashboards-title": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} }의 할당을 취소하시겠습니까?", - "unassign-dashboards-text": "선택된 대시보드가 할당 해제되고 커스터머는 액세스 할 수 없게됩니다.", - "select-dashboard": "대시보드 선택", - "no-dashboards-matching": "'{{entity}}'와 일치하는 대시보드가 없습니다.", - "dashboard-required": "대시보드를 입력하세요.", - "select-existing": "기존 대시보드 선택", - "create-new": "대시보드 생성", - "new-dashboard-title": "새로운 대시보드 타이틀", - "open-dashboard": "대시보드 열기", - "set-background": "대시보드 설정", - "background-color": "배경색", - "background-image": "배경 이미지", - "background-size-mode": "배경 사이즈 모드", - "no-image": "이미지 없음", - "drop-image": "이곳에 이미지를 끌어다놓거나 이곳을 클릭하여 파일을 선택하고 업로드하세요.", - "settings": "설정", - "columns-count": "열 개수", - "columns-count-required": "열 개수를 입력하세요.", - "min-columns-count-message": "열 개수를 최소 10 이상 입력하세요.", - "max-columns-count-message": "열 개수를 최대 100 이하로 입력하세요.", - "widgets-margins": "위젯 사이 여백 크기", - "horizontal-margin": "세로 여백", - "horizontal-margin-required": "세로 여백 값을 입력하세요.", - "min-horizontal-margin-message": "세로 여백 값을 최소 0 이상 입력하세요.", - "max-horizontal-margin-message": "세로 여백 값을 최대 50 이하로 입력하세요.", - "vertical-margin": "가로 여백", - "vertical-margin-required": "가로 여백 값을 입력하세요.", - "min-vertical-margin-message": "가로 여백 값을 최소 0 이상 입력하세요.", - "max-vertical-margin-message": "가로 여백 값을 최대 50 이하로 입력하세요.", - "display-title": "대시보드 타이틀 표시", - "title-color": "타이틀 색상", - "import": "대시보드 가져오기", - "export": "대시보드 내보내기", - "export-failed-error": "대시보드 내보내기를 할 수 없습니다.: {error}", - "create-new-dashboard": "대시보드 생성", - "dashboard-file": "대시보드 파일", - "invalid-dashboard-file-error": "대시보드 가져오기를 할 수 없습니다.: 대시보드 데이터 구조가 잘못되었습니다.", - "dashboard-import-missing-aliases-title": "대시보드 앨리어스를 위해 누락 된 디바이스 선택", - "create-new-widget": "새로운 위젯 생성", - "import-widget": "위젯 가져오기", - "widget-file": "위젯 파일", - "invalid-widget-file-error": "위젯 가져오기를 할 수 없습니다: 위젯 데이터 구조가 잘못되었습니다.", - "widget-import-missing-aliases-title": "위젯에서 사용하는 누락 된 디바이스 선택", - "open-toolbar": "대시보드 툴바 열기", - "close-toolbar": "툴바 닫기", - "configuration-error": "구성 오류", - "alias-resolution-error-title": "대시보드 앨리어스 구성 오류", - "invalid-aliases-config": "일부 앨리어스 필터와 일치하는 디바이스를 찾을 수 없습니다.
이 문제를 해결하려면 관리자에게 문의하십시오.", - "select-devices": "디바이스 선택", - "assignedToCustomer": "커스터머에 할당됨" - }, - "datakey": { - "settings": "설정", - "advanced": "고급", - "label": "Label", - "color": "색상", - "data-generation-func": "데이터 생성 기능", - "use-data-post-processing-func": "데이터 후처리 기능 사용", - "configuration": "데이터 key 구성", - "timeseries": "Timeseries", - "attributes": "Attributes", - "timeseries-required": "디바이스 timeseries 를 입력하세요.", - "timeseries-or-attributes-required": "디바이스 timeseries/attributes 를 입력하세요.", - "maximum-timeseries-or-attributes": "Maximum { count, select, 1 {1 timeseries/attribute is allowed.} other {# timeseries/attributes are allowed} }", // TODO - "alarm-fields-required": "Alarm fields are required.", // TODO - "function-types": "함수 유형", - "function-types-required": "함수 유형을 입력하세요.", - "maximum-function-types": "Maximum { count, select, 1 {1 function type is allowed.} other {# function types are allowed} }" // TODO - }, - "datasource": { - "type": "데이터소스 유형", - "name": "Name", // TODO - "add-datasource-prompt": "데이터소스를 추가하세요." - }, - "details": { - "edit-mode": "편집 모드", - "toggle-edit-mode": "편집 모드 전환" - }, - "device": { - "device": "디바이스", - "device-required": "디바이스를 입력하세요.", - "devices": "디바이스", - "management": "디바이스 관리", - "view-devices": "디바이스 보기", - "device-alias": "디바이스 앨리어스", - "aliases": "디바이스 앨리어스", - "no-alias-matching": "'{{alias}}' 를 찾을 수 없습니다.", - "no-aliases-found": "앨리어스가 없습니다.", - "no-key-matching": "'{{key}}' 를 찾을 수 없습니다.", - "no-keys-found": "Key가 없습니다.", - "create-new-alias": "새로 만들기!", - "create-new-key": "새로 만들기!", - "duplicate-alias-error": "중복된 '{{alias}}' 앨리어스가 있습니다.
디바이스 앨리어스는 대시보드 내에서 고유해야 합니다.", - "configure-alias": "'{{alias}}' 앨리어스 구성", - "no-devices-matching": "'{{entity}}'와 일치하는 디바이스를 찾을 수 없습니다.", - "alias": "앨리어스", - "alias-required": "디바이스 앨리어스를 입력하세요.", - "remove-alias": "디바이스 앨리어스 삭제", - "add-alias": "디바이스 앨리어스 추가", - "name-starts-with": "시작되는 이름", - "device-list": "디바이스 리스트", - "use-device-name-filter": "필터 사용", - "device-list-empty": "선택된 디바이스가 없습니다.", - "device-name-filter-required": "디바이스 필터 이름을 입력하세요.", - "device-name-filter-no-device-matched": "'{{device}}' 로 시작되는 디바이스를 찾을 수 없습니다.", - "add": "디바이스 추가", - "assign-to-customer": "커스터머에게 할당", - "assign-device-to-customer": "디바이스를 커스터머에게 할당", - "assign-device-to-customer-text": "고객에게 할당할 디바이스를 선택하십시오.", - "no-devices-text": "디바이스 없음", - "assign-to-customer-text": "디바이스를 할당할 커스터머를 선택하세요.", - "device-details": "디바이스 상세정보", - "add-device-text": "디바이스 추가", - "credentials": "크리덴셜", - "manage-credentials": "크리덴셜 관리", - "delete": "디바이스 삭제", - "assign-devices": "디바이스 할당", - "assign-devices-text": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} }를 커서터머에 할당", - "delete-devices": "디바이스 삭제", - "unassign-from-customer": "커스터머 할당 해제", - "unassign-devices": "디바이스 할당 취소", - "unassign-devices-action-title": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} }를 커스터머에게서 할당 해제", - "assign-new-device": "새로운 디바이스 할당", - "view-credentials": "크리덴셜 보기", - "delete-device-title": "'{{deviceName}}' 디바이스를 삭제하시겠습니까?", - "delete-device-text": "디바이스 및 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "delete-devices-title": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} }를 삭제하시겠습니까?", - "delete-devices-action-title": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} } 삭제", - "delete-devices-text": "선택된 디바이스가 삭제되고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "unassign-device-title": "'{{deviceName}}' 디바이스 할당을 해제하시겠습니까?", - "unassign-device-text": "디바이스가 할당 해제되고 커스터머는 액세스 할 수 없게됩니다.", - "unassign-device": "디바이스 할당 취소", - "unassign-devices-title": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} }의 할당을 해제하시겠습니까??", - "unassign-devices-text": "선택된 디바이스가 할당 해제되고 커스터머는 액세스 할 수 없게됩니다.", - "device-credentials": "디바이스 크리덴셜", - "credentials-type": "크리덴셜 타입", - "access-token": "억세스 토큰", - "access-token-required": "액세스 토큰을 입력하세요.", - "access-token-invalid": "액세스 토큰 길이는 1 - 20 자 여야합니다.", - "rsa-key": "RSA public key", - "rsa-key-required": "RSA public key 를 입력하세요.", - "secret": "시크릿", - "secret-required": "시크릿을 입력하세요.", - "name": "이름", - "name-required": "이름을 입력하세요.", - "description": "설명", - "events": "이벤트", - "details": "상세", - "copyId": "디바이스 아이디 복사", - "copyAccessToken": "억세스 토큰 복사", - "idCopiedMessage": "디바이스 아이디가 클립보드에 복사되었습니다.", - "accessTokenCopiedMessage": "디바이스 억세스 토큰이 클립보드에 복사되었습니다.", - "assignedToCustomer": "커스터머에 할당됨", - "unable-delete-device-alias-title": "디바이스 앨리어스를 삭제할 수 없습니다.", - "unable-delete-device-alias-text": "'{{deviceAlias}}' 디바이스 앨리어스를 삭제할 수 없습니다. 다음 위젯에서 사용하고 있습니다.
{{widgetsList}}", - "is-gateway": "게이트웨이 여부" - }, - "dialog": { - "close": "다이얼로그 닫기" - }, - "error": { - "unable-to-connect": "서버에 연결할 수 없습니다! 인터넷 연결을 확인하십시오.", - "unhandled-error-code": "처리되지 않은 오류 코드: {{errorCode}}", - "unknown-error": "알 수 없는 오류" - }, - "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):
{{widgetsList}}", - "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
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": "이벤트 타입", - "type-error": "에러", - "type-lc-event": "주기적 이벤트", - "type-stats": "통계", - "type-debug-rule-node": "Debug", // TODO - "type-debug-rule-chain": "Debug", // TODO - "no-events-prompt": "이벤트 없음", - "error": "에러", - "alarm": "알람", - "event-time": "이벤트 발생 시간", - "server": "서버", - "body": "Body", - "method": "Method", - "type": "Type", // TODO - "entity": "Entity", // TODO - "message-id": "Message Id", // TODO - "message-type": "Message Type", // TODO - "data-type": "Data Type", // TODO - "relation-type": "Relation Type", // TODO - "metadata": "Metadata", // TODO - "data": "Data", // TODO - "event": "이벤트", - "status": "상태", - "success": "성공", - "failed": "실패", - "messages-processed": "처리된 메시지", - "errors-occurred": "오류가 발생했습니다" - }, - "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": "전체화면으로 확장", - "exit": "전체화면 종료", - "toggle": "전체화면 모드 전환", - "fullscreen": "전체화면" - }, - "function": { - "function": "기능" - }, - "grid": { - "delete-item-title": "이 항목을 삭제 하시겠습니까?", - "delete-item-text": "항목과 모든 관련 데이터를 복구 할 수 없으므로 주의하십시오.", - "delete-items-title": "{ count, select, 1 {아이템 1개} other {아이템 #개} }를 삭제하시겠습니까?", - "delete-items-action-title": "{ count, select, 1 {아이템 1개} other {아이템 #개} } 삭제", - "delete-items-text": "선택한 모든 아이템이 제거되고 관련된 모든 데이터는 복구 할 수 없으므로 주의하십시오.", - "add-item-text": "새로운 아이템 추가", - "no-items-text": "아이템이 없습니다.", - "item-details": "아이템 상세", - "delete-item": "아이템 삭제", - "delete-items": "아이템 삭제", - "scroll-to-top": "스크롤 맨 위로" - }, - "help": { - "goto-help-page": "도움" - }, - "home": { - "home": "홈", - "profile": "프로파일", - "logout": "로그아웃", - "menu": "메뉴", - "avatar": "Avatar", - "open-user-menu": "사용자 메뉴 열기" - }, - "import": { - "no-file": "선택된 파일이 없습니다.", - "drop-file": "JSON 파일을 끌어다 놓거나 클릭하여 업로드 할 파일을 선택하십시오." - }, - "item": { - "selected": "선택됨" - }, - "js-func": { - "no-return-error": "함수는 값을 반환해야 합니다!", - "return-type-mismatch": "함수는 '{{type}}' 유형의 값을 반환해야 합니다!", - "tidy": "Tidy" // TODO - }, - "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": "범례 위치", - "show-max": "최대값 표시", - "show-min": "최소값 표시", - "show-avg": "평균값 표시", - "show-total": "총합 표시", - "settings": "범례 설정", - "min": "최소", - "max": "최대", - "avg": "평균", - "total": "합계" - }, - "login": { - "login": "로그인", - "request-password-reset": "비밀번호 재설정", - "reset-password": "비밀번호 재설정", - "create-password": "비밀번호 생성", - "passwords-mismatch-error": "입력된 비밀번호는 같아야 합니다!", - "password-again": "비밀번호 확인", - "sign-in": "로그인", - "username": "사용자명 (이메일)", - "remember-me": "아이디 저장", - "forgot-password": "비밀번호찾기", - "password-reset": "비밀번호 재설정", - "new-password": "새 비밀번호", - "new-password-again": "새 비밀번호 확인", - "password-link-sent-message": "비밀번호 재설정 링크가 성공적으로 전송되었습니다!", - "email": "이메일" - }, - "position": { - "top": "상단", - "bottom": "하단", - "left": "왼쪽", - "right": "오른쪽" - }, - "profile": { - "profile": "프로파일", - "change-password": "비밀번호 변경", - "current-password": "현재 비밀번호" - }, - "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": "테넌트", - "management": "테넌트 관리", - "add": "테넌트 추가", - "admins": "Admins", - "manage-tenant-admins": "테넌트 관리자 관리", - "delete": "테넌트 삭제", - "add-tenant-text": "테넌트 추가", - "no-tenants-text": "테넌트가 없습니다.", - "tenant-details": "테넌트 상세정보", - "delete-tenant-title": "'{{tenantTitle}}' 테넌트를 삭제하시겠습니까?", - "delete-tenant-text": "테넌트와 관련된 모든 정보를 복구할 수 없으므로 주의하십시오.", - "delete-tenants-title": "{ count, select, 1 {테넌트 1개} other {테넌트 #개} }를 삭제하시겠습니까?", - "delete-tenants-action-title": "{ count, select, 1 {테넌트 1개} other {테넌트 #개} } 삭제", - "delete-tenants-text": "선택된 테넌트가 삭제되고 관련된 모든 정보를 복구할 수 없으므로 주의하십시오.", - "title": "타이틀", - "title-required": "타이틀을 입력하세요.", - "description": "설명", - "details": "Details", // TODO - "events": "Events", // TODO - "copyId": "Copy tenant Id", // TODO - "idCopiedMessage": "Tenant Id has been copied to clipboard", // TODO - "select-tenant": "Select tenant", // TODO - "no-tenants-matching": "No tenants matching '{{entity}}' were found.", - "tenant-required": "Tenant is required" // TODO - }, - "timeinterval": { - "seconds-interval": "{ seconds, select, 1 {1 second} other {# seconds} }", - "minutes-interval": "{ minutes, select, 1 {1 minute} other {# minutes} }", - "hours-interval": "{ hours, select, 1 {1 hour} other {# hours} }", - "days-interval": "{ days, select, 1 {1 day} other {# days} }", - "days": "Days", - "hours": "Hours", - "minutes": "Minutes", - "seconds": "Seconds", - "advanced": "고급" - }, - "timewindow": { - "days": "{ days, select, 1 { day } other {# days } }", - "hours": "{ hours, select, 0 { hour } 1 {1 hour } other {# hours } }", - "minutes": "{ minutes, select, 0 { minute } 1 {1 minute } other {# minutes } }", - "seconds": "{ seconds, select, 0 { second } 1 {1 second } other {# seconds } }", - "realtime": "Realtime", - "history": "History", - "last-prefix": "last", - "period": "from {{ startTime }} to {{ endTime }}", - "edit": "타임윈도우 편집", - "date-range": "날짜 범위", - "last": "Last", - "time-period": "기간" - }, - "user": { - "users": "사용자", - "customer-users": "커스터머 사용자", - "tenant-admins": "테넌트 관리자", - "sys-admin": "시스템 관리자", - "tenant-admin": "테넌트 관리자", - "customer": "커스터머", - "anonymous": "Anonymous", - "add": "사용자 추가", - "delete": "사용자 삭제", - "add-user-text": "새로운 사용자 추가", - "no-users-text": "사용자가 없습니다.", - "user-details": "사용자 상세정보", - "delete-user-title": "'{{userEmail}}' 사용자를 삭제하시겠습니까?", - "delete-user-text": "사용자와 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "delete-users-title": "{ count, select, 1 {사용자 1명} other {사용자 #명} }을 삭제하시겠니까?", - "delete-users-action-title": "{ count, select, 1 {사용자 1명} other {사용자 #명} } 삭제", - "delete-users-text": "선택된 사용자가 삭제된고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "activation-email-sent-message": "활성화 이메일을 보냈습니다!", - "resend-activation": "활성화 재전송", - "email": "Email", - "email-required": "Email을 입력하세요.", - "first-name": "이름", - "last-name": "성", - "description": "설명", - "default-dashboard": "기본 대시보드", - "always-fullscreen": "항상 전체화면", - "select-user": "Select user", // TODO - "no-users-matching": "No users matching '{{entity}}' were found.", // TODO - "user-required": "User is required", // TODO - "activation-method": "Activation method", // TODO - "display-activation-link": "Display activation link", // TODO - "send-activation-mail": "Send activation mail", // TODO - "activation-link": "User activation link", // TODO - "activation-link-text": "In order to activate user use the following activation link :", // TODO - "copy-activation-link": "Copy activation link", // TODO - "activation-link-copied-message": "User activation link has been copied to clipboard", // TODO - "details": "Details" // TODO - }, - "value": { - "type": "Value type", - "string": "String", - "string-value": "String value", - "integer": "Integer", - "integer-value": "Integer value", - "invalid-integer-value": "Invalid integer value", - "double": "Double", - "double-value": "Double value", - "boolean": "Boolean", - "boolean-value": "Boolean value", - "false": "False", - "true": "True" - }, - "widget": { - "widget-library": "위젯 저장소", - "widget-bundle": "위젯 번들", - "select-widgets-bundle": "위젯 번들 선택", - "management": "위젯 관리", - "editor": "위젯 편집기", - "widget-type-not-found": "위젯 구성을 로드하는 중 문제가 발생했습니다.
연결된 위젯 타입이 삭제되었습니다.", - "widget-type-load-error": "다음과 같은 오류로 인해 위젯이로드되지 않았습니다:", - "remove": "위젯 삭제", - "edit": "위젯 수정", - "remove-widget-title": "'{{widgetTitle}}' 위젯을 삭제하시겠습니까?", - "remove-widget-text": "위젯과 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "timeseries": "Time series", - "latest-values": "Latest values", - "rpc": "Control 위젯", - "static": "Static 위젯", - "select-widget-type": "위젯 타입 선택", - "missing-widget-title-error": "위젯 타이틀을 입력하세요!", - "widget-saved": "위젯이 저장되었습니다.", - "unable-to-save-widget-error": "위젯을 저장할 수 없습니다! 위젯에 오류가 있습니다!", - "save": "위젯 저장", - "saveAs": "다른 이름으로 위젯 저장", - "save-widget-type-as": "다른 이름으로 위젯 타입 저장", - "save-widget-type-as-text": "새로운 위젯 이름과 위젯 번들을 선택하세요.", - "toggle-fullscreen": "전체화면 전환", - "run": "위젯 실행", - "title": "위젯 타이틀", - "title-required": "위젯 타이틀을 입력하세요.", - "type": "위젯 타입", - "resources": "리소스", - "resource-url": "JavaScript/CSS URI", - "remove-resource": "리소스 삭제", - "add-resource": "리소스 추가", - "html": "HTML", - "tidy": "Tidy", - "css": "CSS", - "settings-schema": "스키마 설정", - "datakey-settings-schema": "데이터 키 설정 스키마", - "javascript": "Javascript", - "remove-widget-type-title": "'{{widgetName}}' 위젯 타입을 삭제하시겠습니까?", - "remove-widget-type-text": "위젯 타입과 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "remove-widget-type": "위젯 타입 삭제", - "add-widget-type": "새로운 위젯 타입 추가", - "widget-type-load-failed-error": "위젯 타입을 로드하지 못했습니다!", - "widget-template-load-failed-error": "위젯 템플릿을 로드하지 못했습니다!", - "add": "위젯 추가", - "undo": "위젯 변경사항 취소", - "export": "위젯 내보내기" - }, - "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": "현재 번들", - "widgets-bundles": "위젯 번들", - "add": "위젯 번들 추가", - "delete": "위젯 번들 삭제", - "title": "타이틀", - "title-required": "타이틀을 입력하세요.", - "add-widgets-bundle-text": "위젯 번들 추가", - "no-widgets-bundles-text": "위젯 번들이 없습니다.", - "empty": "위젯 번들이 비어있습니다.", - "details": "상세", - "widgets-bundle-details": "위젯 번들 상세정보", - "delete-widgets-bundle-title": "'{{widgetsBundleTitle}}' 위젯 번들을 삭제하시겠습니까?", - "delete-widgets-bundle-text": "위젯 번들과 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "delete-widgets-bundles-title": "{ count, select, 1 {위젯 번들 1개} other {위젯 번들 #개} }를 삭제하시겠습니까?", - "delete-widgets-bundles-action-title": "{ count, select, 1 {위젯 번들 1개} other {위젯 번들 #개} } 삭제", - "delete-widgets-bundles-text": "선택된 위젯 번들이 삭제되고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "no-widgets-bundles-matching": "'{{widgetsBundle}}' 와(과) 일치하는 위젯 번들을 찾을 수 없습니다.", - "widgets-bundle-required": "위젯 번들을 입력하세요.", - "system": "시스템", - "import": "위젯 번들 가져오기", - "export": "위젯 번들 내보내기", - "export-failed-error": "위젯 번들을 내보내기 할 수 없습니다.: {{error}}", - "create-new-widgets-bundle": "새로운 위젯 번들 생성", - "widgets-bundle-file": "위젯 번들 파일", - "invalid-widgets-bundle-file-error": "위젯 번들을 가져오기 할 수 없습니다.: 잘못된 위젯 번들 데이터 구조입니다." - }, - "widget-config": { - "data": "데이터", - "settings": "설정", - "advanced": "고급", - "title": "타이틀", - "general-settings": "일반 설정", - "display-title": "타이틀 표시", - "drop-shadow": "그림자", - "enable-fullscreen": "전체화면 사용 ", - "background-color": "배경 색", - "text-color": "글자 색", - "padding": "패딩", - "title-style": "타이틀 스타일", - "mobile-mode-settings": "모바일 모드 설정", - "order": "순서", - "height": "높이", - "units": "값 옆에 표시할 특수 기호", - "decimals": "소수점 이하 자릿수", - "timewindow": "타임윈도우", - "use-dashboard-timewindow": "대시보드 타임윈도우", - "display-legend": "범례 표시", - "datasources": "데이터소스", - "datasource-type": "유형", - "datasource-parameters": "파라미터", - "remove-datasource": "데이터소스 삭제", - "add-datasource": "데이터소스 추가", - "target-device": "대상 디바이스" - }, - "widget-type": { - "import": "위젯 타입 가져오기", - "export": "위젯 타입 내보내기", - "export-failed-error": "위젯 타입을 내보내기 할 수 없습니다.: {{error}}", - "create-new-widget-type": "새로운 위젯 타입 생성", - "widget-type-file": "위젯 타입 파일", - "invalid-widget-type-file-error": "위젯 타입을 가져오기 할 수 없습니다.: 잘못된 위젯 타입 데이터 구조입니다." - }, - "icon": { // TODO - "icon": "Icon", - "select-icon": "Select icon", - "material-icons": "Material icons", - "show-all": "Show all icons" - }, - "custom": { - "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": "언어", - "en_US": "영어", - "ko_KR": "한글", - "zh_CN": "중국어", - "ru_RU": "러시아어", - "es_ES": "스페인어" - } - }; - angular.extend(locales, { 'ko_KR': ko_KR }); -} \ No newline at end of file diff --git a/ui/src/app/locale/locale.constant-ko.json b/ui/src/app/locale/locale.constant-ko.json new file mode 100644 index 0000000000..4988bc5ce4 --- /dev/null +++ b/ui/src/app/locale/locale.constant-ko.json @@ -0,0 +1,1337 @@ +{ + "access": { + "unauthorized": "권한 없음.", + "unauthorized-access": "허가되지 않은 접근", + "unauthorized-access-text": "이 리소스에 접근하려면 로그인해야 합니다!", + "access-forbidden": "접근 금지", + "access-forbidden-text": "접근 권한이 없습니다.!
만일 이 페이지에 계속 접근하려면 다른 사용자로 로그인 하세요.", + "refresh-token-expired": "세션이 만료되었습니다.", + "refresh-token-failed": "세션을 새로 고칠 수 없습니다." + }, + "action": { + "activate": "활설화", + "suspend": "비활성화", + "save": "저장", + "saveAs": "다른 이름으로 저장", + "cancel": "취소", + "ok": "확인", + "delete": "삭제", + "add": "추가", + "yes": "네", + "no": "아니오", + "update": "업데이트", + "remove": "제거", + "search": "검색", + "clear-search": "Clear search", // TODO + "assign": "할당", + "unassign": "비할당", + "share": "Share", // TODO + "make-private": "Make private", // TODO + "apply": "적용", + "apply-changes": "변경사항 적용", + "edit-mode": "수정 모드", + "enter-edit-mode": "수정 모드 진입", + "decline-changes": "변경사항 포기", + "close": "닫기", + "back": "뒤로", + "run": "실행", + "sign-in": "로그인!", + "edit": "수정", + "view": "보기", + "create": "만들기", + "drag": "끌기", + "refresh": "새로고침", + "undo": "취소", + "copy": "복사", + "paste": "붙여넣기", + "copy-reference": "Copy reference", // TODO + "paste-reference": "Paste reference", // TODO + "import": "가져오기", + "export": "내보내기", + "share-via": "Share via {{provider}}" // TODO + }, + "aggregation": { + "aggregation": "집합", + "function": "데이터 집합 함수", + "limit": "최대 값", + "group-interval": "그룹 간격", + "min": "최소", + "max": "최대", + "avg": "평균", + "sum": "합계", + "count": "숫자", + "none": "없음" + }, + "admin": { + "general": "일반", + "general-settings": "일반 설정", + "outgoing-mail": "메일 전송", + "outgoing-mail-settings": "메일 전송 설정", + "system-settings": "시스템 설정", + "test-mail-sent": "테스트 메일이 성공적으로 전송되었습니다!", + "base-url": "기본 URL", + "base-url-required": "기본 URL을 입력해야 합니다.", + "mail-from": "보내는 사람", + "mail-from-required": "보내는 사람을 입력해야 합니다.", + "smtp-protocol": "SMTP 프로토콜", + "smtp-host": "SMTP 호스트", + "smtp-host-required": "SMTP 호스트를 입력해야 합니다.", + "smtp-port": "SMTP 포트", + "smtp-port-required": "SMTP 포트를 입력해야 합니다.", + "smtp-port-invalid": "올바른 SMTP 포트가 아닙니다.", + "timeout-msec": "제한시간 (msec)", + "timeout-required": "제한시간을 입력해야 합니다.", + "timeout-invalid": "올바른 제한시간이 아닙니다.", + "enable-tls": "TLS 사용", + "send-test-mail": "테스트 메일 보내기" + }, + + "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": "속성", + "latest-telemetry": "최근 데이터", + "attributes-scope": "디바이스 속성 범위", + "scope-latest-telemetry": "최근 데이터", + "scope-client": "클라이언트 속성", + "scope-server": "서버 속성", + "scope-shared": "공유 속성", + "add": "속성 추가", + "key": "Key", // TODO + "key-required": "속성 key를 입력하세요.", + "value": "Value", // TODO + "value-required": "속성 value를 입력하세요.", + "delete-attributes-title": "{ count, select, 1 {속성} other {여러 속성들을} } 삭제하시겠습니까??", + "delete-attributes-text": "모든 선택된 속성들이 제거 될 것이므로 주의하십시오.", + "delete-attributes": "속성 삭제", + "enter-attribute-value": "속성 값 입력", + "show-on-widget": "위젯 보기", + "widget-mode": "위젯 모드", + "next-widget": "다음 위젯", + "prev-widget": "이전 위젯", + "add-to-dashboard": "대시보드에 추가", + "add-widget-to-dashboard": "대시보드에 위젯 추가", + "selected-attributes": "{ count, select, 1 {속성 1개} other {속성 #개} } 선택됨", + "selected-telemetry": "{ count, select, 1 {최근 데이터 1개} other {최근 데이터 #개} } 선택됨" + }, + "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": "변경 사항을 저장하지 않았습니다. 이 페이지를 나가시겠습니까?", + "html-message": "변경 사항을 저장하지 않았습니다.
이 페이지를 나가시겠습니까?", + "title": "저장되지 않은 변경사항" + }, + "contact": { + "country": "국가", + "city": "시", + "state": "도", + "postal-code": "우편 번호", + "postal-code-invalid": "숫자만 입력하세요.", + "address": "주소", + "address2": "상세주소", + "phone": "전화번호", + "email": "Email", + "no-address": "주소 정보 없음" + }, + "common": { + "username": "사용자명", + "password": "비밀번호", + "enter-username": "사용자명을 입력하세요.", + "enter-password": "비밀번호를 입력하세요.", + "enter-search": "검색어 입력" + }, + "content-type": { // TODO + "json": "Json", + "text": "Text", + "binary": "Binary (Base64)" + }, + "customer": { + "customers": "커스터머", + "management": "커스터머 관리", + "dashboard": "커스터머 대시보드", + "dashboards": "커스터머 대시보드", + "devices": "커스터머 디바이스", + "add": "커스터머 추가", + "delete": "커스터머 삭제", + "manage-customer-users": "커스터머 사용자 관리", + "manage-customer-devices": "커스터머 디바이스 관리", + "manage-customer-dashboards": "커스터머 대시보드 관리", + "manage-public-devices": "Manage public devices", // TODO + "manage-public-dashboards": "Manage public dashboards", // TODO + "manage-customer-assets": "Manage customer assets", // TODO + "manage-public-assets": "Manage public assets", // TODO + "add-customer-text": "커스터머 추가", + "no-customers-text": "커스터머가 없습니다.", + "customer-details": "커스터머 상세정보", + "delete-customer-title": "'{{customerTitle}}' 커스터머를 삭제하시겠습니까?", + "delete-customer-text": "커스터머 및 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "delete-customers-title": "{ count, select, 1 {커스터머 1개} other {커스터머 #개} }를 삭제하시겠습니까?", + "delete-customers-action-title": "{ count, select, 1 {커스터머 1개} other {커스터머 #개} } 삭제", + "delete-customers-text": "선택된 커스터머는 삭제되고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "manage-users": "사용자 관리", + "manage-devices": "디바이스 관리", + "manage-dashboards": "대시보드 관리", + "title": "타이틀", + "title-required": "타이틀을 입력하세요.", + "description": "설명", + "details": "Details", + "events": "Events", + "copyId": "Copy customer Id", + "idCopiedMessage": "Customer Id has been copied to clipboard", + "select-customer": "Select customer", + "no-customers-matching": "No customers matching '{{entity}}' were found.", + "customer-required": "Customer is required", + "select-default-customer": "Select default customer", + "default-customer": "Default customer", + "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level" + }, + "datetime": { + "date-from": "시작 날짜", + "time-from": "시작 시간", + "date-to": "종료 날짜", + "time-to": "종료 시간" + }, + "dashboard": { + "dashboard": "대시보드", + "dashboards": "대시보드", + "management": "대시보드 관리", + "view-dashboards": "대시보드 보기", + "add": "대시보드 추가", + "assign-dashboard-to-customer": "대시보드 커스터머 선택", + "assign-dashboard-to-customer-text": "대시보드 커스터머를 선택하세요.", + "assign-to-customer-text": "대시보드 커스터머를 선택하세요.", + "assign-to-customer": "커스터머 선택", + "unassign-from-customer": "커스터머 해제", + "no-dashboards-text": "대시보드가 없습니다", + "no-widgets": "설정된 위젯 없음", + "add-widget": "위젯 추가", + "title": "타이틀", + "select-widget-title": "위젯 선택", + "select-widget-subtitle": "사용가능한 위젯 타입 목록", + "delete": "대시보드 삭제", + "title-required": "타이틀을 입력하세요.", + "description": "설명", + "details": "상세", + "dashboard-details": "대시보드 상세정보", + "add-dashboard-text": "대시보드 추가", + "assign-dashboards": "대시보드 지정", + "assign-new-dashboard": "새 대시보드 할당", + "assign-dashboards-text": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} }를 커스터머 할당", + "delete-dashboards": "대시보드 삭제", + "unassign-dashboards": "대시보드 할당 취소", + "unassign-dashboards-action-title": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} }를 커스터머 할당 취소", + "delete-dashboard-title": "'{{dashboardTitle}}' 대시보드를 삭제하시겠습니까?", + "delete-dashboard-text": "대시보드 및 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "delete-dashboards-title": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} }를 삭제하시겠습니까?", + "delete-dashboards-action-title": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} } 삭제", + "delete-dashboards-text": "선택된 대시보드가 삭제되고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "unassign-dashboard-title": "'{{dashboardTitle}}' 대시보드 할당을 해제하시겠습니까?", + "unassign-dashboard-text": "대시보드가 할당 해제되고 커스터머는 액세스 할 수 없게됩니다.", + "unassign-dashboard": "대시보드 할달 취소", + "unassign-dashboards-title": "{ count, select, 1 {대시보드 1개} other {대시보드 #개} }의 할당을 취소하시겠습니까?", + "unassign-dashboards-text": "선택된 대시보드가 할당 해제되고 커스터머는 액세스 할 수 없게됩니다.", + "select-dashboard": "대시보드 선택", + "no-dashboards-matching": "'{{entity}}'와 일치하는 대시보드가 없습니다.", + "dashboard-required": "대시보드를 입력하세요.", + "select-existing": "기존 대시보드 선택", + "create-new": "대시보드 생성", + "new-dashboard-title": "새로운 대시보드 타이틀", + "open-dashboard": "대시보드 열기", + "set-background": "대시보드 설정", + "background-color": "배경색", + "background-image": "배경 이미지", + "background-size-mode": "배경 사이즈 모드", + "no-image": "이미지 없음", + "drop-image": "이곳에 이미지를 끌어다놓거나 이곳을 클릭하여 파일을 선택하고 업로드하세요.", + "settings": "설정", + "columns-count": "열 개수", + "columns-count-required": "열 개수를 입력하세요.", + "min-columns-count-message": "열 개수를 최소 10 이상 입력하세요.", + "max-columns-count-message": "열 개수를 최대 100 이하로 입력하세요.", + "widgets-margins": "위젯 사이 여백 크기", + "horizontal-margin": "세로 여백", + "horizontal-margin-required": "세로 여백 값을 입력하세요.", + "min-horizontal-margin-message": "세로 여백 값을 최소 0 이상 입력하세요.", + "max-horizontal-margin-message": "세로 여백 값을 최대 50 이하로 입력하세요.", + "vertical-margin": "가로 여백", + "vertical-margin-required": "가로 여백 값을 입력하세요.", + "min-vertical-margin-message": "가로 여백 값을 최소 0 이상 입력하세요.", + "max-vertical-margin-message": "가로 여백 값을 최대 50 이하로 입력하세요.", + "display-title": "대시보드 타이틀 표시", + "title-color": "타이틀 색상", + "import": "대시보드 가져오기", + "export": "대시보드 내보내기", + "export-failed-error": "대시보드 내보내기를 할 수 없습니다.: {error}", + "create-new-dashboard": "대시보드 생성", + "dashboard-file": "대시보드 파일", + "invalid-dashboard-file-error": "대시보드 가져오기를 할 수 없습니다.: 대시보드 데이터 구조가 잘못되었습니다.", + "dashboard-import-missing-aliases-title": "대시보드 앨리어스를 위해 누락 된 디바이스 선택", + "create-new-widget": "새로운 위젯 생성", + "import-widget": "위젯 가져오기", + "widget-file": "위젯 파일", + "invalid-widget-file-error": "위젯 가져오기를 할 수 없습니다: 위젯 데이터 구조가 잘못되었습니다.", + "widget-import-missing-aliases-title": "위젯에서 사용하는 누락 된 디바이스 선택", + "open-toolbar": "대시보드 툴바 열기", + "close-toolbar": "툴바 닫기", + "configuration-error": "구성 오류", + "alias-resolution-error-title": "대시보드 앨리어스 구성 오류", + "invalid-aliases-config": "일부 앨리어스 필터와 일치하는 디바이스를 찾을 수 없습니다.
이 문제를 해결하려면 관리자에게 문의하십시오.", + "select-devices": "디바이스 선택", + "assignedToCustomer": "커스터머에 할당됨" + }, + "datakey": { + "settings": "설정", + "advanced": "고급", + "label": "Label", + "color": "색상", + "data-generation-func": "데이터 생성 기능", + "use-data-post-processing-func": "데이터 후처리 기능 사용", + "configuration": "데이터 key 구성", + "timeseries": "Timeseries", + "attributes": "Attributes", + "timeseries-required": "디바이스 timeseries 를 입력하세요.", + "timeseries-or-attributes-required": "디바이스 timeseries/attributes 를 입력하세요.", + "maximum-timeseries-or-attributes": "Maximum { count, select, 1 {1 timeseries/attribute is allowed.} other {# timeseries/attributes are allowed} }", // TODO + "alarm-fields-required": "Alarm fields are required.", // TODO + "function-types": "함수 유형", + "function-types-required": "함수 유형을 입력하세요.", + "maximum-function-types": "Maximum { count, select, 1 {1 function type is allowed.} other {# function types are allowed} }" // TODO + }, + "datasource": { + "type": "데이터소스 유형", + "name": "Name", // TODO + "add-datasource-prompt": "데이터소스를 추가하세요." + }, + "details": { + "edit-mode": "편집 모드", + "toggle-edit-mode": "편집 모드 전환" + }, + "device": { + "device": "디바이스", + "device-required": "디바이스를 입력하세요.", + "devices": "디바이스", + "management": "디바이스 관리", + "view-devices": "디바이스 보기", + "device-alias": "디바이스 앨리어스", + "aliases": "디바이스 앨리어스", + "no-alias-matching": "'{{alias}}' 를 찾을 수 없습니다.", + "no-aliases-found": "앨리어스가 없습니다.", + "no-key-matching": "'{{key}}' 를 찾을 수 없습니다.", + "no-keys-found": "Key가 없습니다.", + "create-new-alias": "새로 만들기!", + "create-new-key": "새로 만들기!", + "duplicate-alias-error": "중복된 '{{alias}}' 앨리어스가 있습니다.
디바이스 앨리어스는 대시보드 내에서 고유해야 합니다.", + "configure-alias": "'{{alias}}' 앨리어스 구성", + "no-devices-matching": "'{{entity}}'와 일치하는 디바이스를 찾을 수 없습니다.", + "alias": "앨리어스", + "alias-required": "디바이스 앨리어스를 입력하세요.", + "remove-alias": "디바이스 앨리어스 삭제", + "add-alias": "디바이스 앨리어스 추가", + "name-starts-with": "시작되는 이름", + "device-list": "디바이스 리스트", + "use-device-name-filter": "필터 사용", + "device-list-empty": "선택된 디바이스가 없습니다.", + "device-name-filter-required": "디바이스 필터 이름을 입력하세요.", + "device-name-filter-no-device-matched": "'{{device}}' 로 시작되는 디바이스를 찾을 수 없습니다.", + "add": "디바이스 추가", + "assign-to-customer": "커스터머에게 할당", + "assign-device-to-customer": "디바이스를 커스터머에게 할당", + "assign-device-to-customer-text": "고객에게 할당할 디바이스를 선택하십시오.", + "no-devices-text": "디바이스 없음", + "assign-to-customer-text": "디바이스를 할당할 커스터머를 선택하세요.", + "device-details": "디바이스 상세정보", + "add-device-text": "디바이스 추가", + "credentials": "크리덴셜", + "manage-credentials": "크리덴셜 관리", + "delete": "디바이스 삭제", + "assign-devices": "디바이스 할당", + "assign-devices-text": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} }를 커서터머에 할당", + "delete-devices": "디바이스 삭제", + "unassign-from-customer": "커스터머 할당 해제", + "unassign-devices": "디바이스 할당 취소", + "unassign-devices-action-title": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} }를 커스터머에게서 할당 해제", + "assign-new-device": "새로운 디바이스 할당", + "view-credentials": "크리덴셜 보기", + "delete-device-title": "'{{deviceName}}' 디바이스를 삭제하시겠습니까?", + "delete-device-text": "디바이스 및 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "delete-devices-title": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} }를 삭제하시겠습니까?", + "delete-devices-action-title": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} } 삭제", + "delete-devices-text": "선택된 디바이스가 삭제되고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "unassign-device-title": "'{{deviceName}}' 디바이스 할당을 해제하시겠습니까?", + "unassign-device-text": "디바이스가 할당 해제되고 커스터머는 액세스 할 수 없게됩니다.", + "unassign-device": "디바이스 할당 취소", + "unassign-devices-title": "{ count, select, 1 {디바이스 1개} other {디바이스 #개} }의 할당을 해제하시겠습니까??", + "unassign-devices-text": "선택된 디바이스가 할당 해제되고 커스터머는 액세스 할 수 없게됩니다.", + "device-credentials": "디바이스 크리덴셜", + "credentials-type": "크리덴셜 타입", + "access-token": "억세스 토큰", + "access-token-required": "액세스 토큰을 입력하세요.", + "access-token-invalid": "액세스 토큰 길이는 1 - 20 자 여야합니다.", + "rsa-key": "RSA public key", + "rsa-key-required": "RSA public key 를 입력하세요.", + "secret": "시크릿", + "secret-required": "시크릿을 입력하세요.", + "name": "이름", + "name-required": "이름을 입력하세요.", + "description": "설명", + "events": "이벤트", + "details": "상세", + "copyId": "디바이스 아이디 복사", + "copyAccessToken": "억세스 토큰 복사", + "idCopiedMessage": "디바이스 아이디가 클립보드에 복사되었습니다.", + "accessTokenCopiedMessage": "디바이스 억세스 토큰이 클립보드에 복사되었습니다.", + "assignedToCustomer": "커스터머에 할당됨", + "unable-delete-device-alias-title": "디바이스 앨리어스를 삭제할 수 없습니다.", + "unable-delete-device-alias-text": "'{{deviceAlias}}' 디바이스 앨리어스를 삭제할 수 없습니다. 다음 위젯에서 사용하고 있습니다.
{{widgetsList}}", + "is-gateway": "게이트웨이 여부" + }, + "dialog": { + "close": "다이얼로그 닫기" + }, + "error": { + "unable-to-connect": "서버에 연결할 수 없습니다! 인터넷 연결을 확인하십시오.", + "unhandled-error-code": "처리되지 않은 오류 코드: {{errorCode}}", + "unknown-error": "알 수 없는 오류" + }, + "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):
{{widgetsList}}", + "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
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": "이벤트 타입", + "type-error": "에러", + "type-lc-event": "주기적 이벤트", + "type-stats": "통계", + "type-debug-rule-node": "Debug", // TODO + "type-debug-rule-chain": "Debug", // TODO + "no-events-prompt": "이벤트 없음", + "error": "에러", + "alarm": "알람", + "event-time": "이벤트 발생 시간", + "server": "서버", + "body": "Body", + "method": "Method", + "type": "Type", // TODO + "entity": "Entity", // TODO + "message-id": "Message Id", // TODO + "message-type": "Message Type", // TODO + "data-type": "Data Type", // TODO + "relation-type": "Relation Type", // TODO + "metadata": "Metadata", // TODO + "data": "Data", // TODO + "event": "이벤트", + "status": "상태", + "success": "성공", + "failed": "실패", + "messages-processed": "처리된 메시지", + "errors-occurred": "오류가 발생했습니다" + }, + "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": "전체화면으로 확장", + "exit": "전체화면 종료", + "toggle": "전체화면 모드 전환", + "fullscreen": "전체화면" + }, + "function": { + "function": "기능" + }, + "grid": { + "delete-item-title": "이 항목을 삭제 하시겠습니까?", + "delete-item-text": "항목과 모든 관련 데이터를 복구 할 수 없으므로 주의하십시오.", + "delete-items-title": "{ count, select, 1 {아이템 1개} other {아이템 #개} }를 삭제하시겠습니까?", + "delete-items-action-title": "{ count, select, 1 {아이템 1개} other {아이템 #개} } 삭제", + "delete-items-text": "선택한 모든 아이템이 제거되고 관련된 모든 데이터는 복구 할 수 없으므로 주의하십시오.", + "add-item-text": "새로운 아이템 추가", + "no-items-text": "아이템이 없습니다.", + "item-details": "아이템 상세", + "delete-item": "아이템 삭제", + "delete-items": "아이템 삭제", + "scroll-to-top": "스크롤 맨 위로" + }, + "help": { + "goto-help-page": "도움" + }, + "home": { + "home": "홈", + "profile": "프로파일", + "logout": "로그아웃", + "menu": "메뉴", + "avatar": "Avatar", + "open-user-menu": "사용자 메뉴 열기" + }, + "import": { + "no-file": "선택된 파일이 없습니다.", + "drop-file": "JSON 파일을 끌어다 놓거나 클릭하여 업로드 할 파일을 선택하십시오." + }, + "item": { + "selected": "선택됨" + }, + "js-func": { + "no-return-error": "함수는 값을 반환해야 합니다!", + "return-type-mismatch": "함수는 '{{type}}' 유형의 값을 반환해야 합니다!", + "tidy": "Tidy" // TODO + }, + "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": "범례 위치", + "show-max": "최대값 표시", + "show-min": "최소값 표시", + "show-avg": "평균값 표시", + "show-total": "총합 표시", + "settings": "범례 설정", + "min": "최소", + "max": "최대", + "avg": "평균", + "total": "합계" + }, + "login": { + "login": "로그인", + "request-password-reset": "비밀번호 재설정", + "reset-password": "비밀번호 재설정", + "create-password": "비밀번호 생성", + "passwords-mismatch-error": "입력된 비밀번호는 같아야 합니다!", + "password-again": "비밀번호 확인", + "sign-in": "로그인", + "username": "사용자명 (이메일)", + "remember-me": "아이디 저장", + "forgot-password": "비밀번호찾기", + "password-reset": "비밀번호 재설정", + "new-password": "새 비밀번호", + "new-password-again": "새 비밀번호 확인", + "password-link-sent-message": "비밀번호 재설정 링크가 성공적으로 전송되었습니다!", + "email": "이메일" + }, + "position": { + "top": "상단", + "bottom": "하단", + "left": "왼쪽", + "right": "오른쪽" + }, + "profile": { + "profile": "프로파일", + "change-password": "비밀번호 변경", + "current-password": "현재 비밀번호" + }, + "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": "테넌트", + "management": "테넌트 관리", + "add": "테넌트 추가", + "admins": "Admins", + "manage-tenant-admins": "테넌트 관리자 관리", + "delete": "테넌트 삭제", + "add-tenant-text": "테넌트 추가", + "no-tenants-text": "테넌트가 없습니다.", + "tenant-details": "테넌트 상세정보", + "delete-tenant-title": "'{{tenantTitle}}' 테넌트를 삭제하시겠습니까?", + "delete-tenant-text": "테넌트와 관련된 모든 정보를 복구할 수 없으므로 주의하십시오.", + "delete-tenants-title": "{ count, select, 1 {테넌트 1개} other {테넌트 #개} }를 삭제하시겠습니까?", + "delete-tenants-action-title": "{ count, select, 1 {테넌트 1개} other {테넌트 #개} } 삭제", + "delete-tenants-text": "선택된 테넌트가 삭제되고 관련된 모든 정보를 복구할 수 없으므로 주의하십시오.", + "title": "타이틀", + "title-required": "타이틀을 입력하세요.", + "description": "설명", + "details": "Details", // TODO + "events": "Events", // TODO + "copyId": "Copy tenant Id", // TODO + "idCopiedMessage": "Tenant Id has been copied to clipboard", // TODO + "select-tenant": "Select tenant", // TODO + "no-tenants-matching": "No tenants matching '{{entity}}' were found.", + "tenant-required": "Tenant is required" // TODO + }, + "timeinterval": { + "seconds-interval": "{ seconds, select, 1 {1 second} other {# seconds} }", + "minutes-interval": "{ minutes, select, 1 {1 minute} other {# minutes} }", + "hours-interval": "{ hours, select, 1 {1 hour} other {# hours} }", + "days-interval": "{ days, select, 1 {1 day} other {# days} }", + "days": "Days", + "hours": "Hours", + "minutes": "Minutes", + "seconds": "Seconds", + "advanced": "고급" + }, + "timewindow": { + "days": "{ days, select, 1 { day } other {# days } }", + "hours": "{ hours, select, 0 { hour } 1 {1 hour } other {# hours } }", + "minutes": "{ minutes, select, 0 { minute } 1 {1 minute } other {# minutes } }", + "seconds": "{ seconds, select, 0 { second } 1 {1 second } other {# seconds } }", + "realtime": "Realtime", + "history": "History", + "last-prefix": "last", + "period": "from {{ startTime }} to {{ endTime }}", + "edit": "타임윈도우 편집", + "date-range": "날짜 범위", + "last": "Last", + "time-period": "기간" + }, + "user": { + "users": "사용자", + "customer-users": "커스터머 사용자", + "tenant-admins": "테넌트 관리자", + "sys-admin": "시스템 관리자", + "tenant-admin": "테넌트 관리자", + "customer": "커스터머", + "anonymous": "Anonymous", + "add": "사용자 추가", + "delete": "사용자 삭제", + "add-user-text": "새로운 사용자 추가", + "no-users-text": "사용자가 없습니다.", + "user-details": "사용자 상세정보", + "delete-user-title": "'{{userEmail}}' 사용자를 삭제하시겠습니까?", + "delete-user-text": "사용자와 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "delete-users-title": "{ count, select, 1 {사용자 1명} other {사용자 #명} }을 삭제하시겠니까?", + "delete-users-action-title": "{ count, select, 1 {사용자 1명} other {사용자 #명} } 삭제", + "delete-users-text": "선택된 사용자가 삭제된고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "activation-email-sent-message": "활성화 이메일을 보냈습니다!", + "resend-activation": "활성화 재전송", + "email": "Email", + "email-required": "Email을 입력하세요.", + "first-name": "이름", + "last-name": "성", + "description": "설명", + "default-dashboard": "기본 대시보드", + "always-fullscreen": "항상 전체화면", + "select-user": "Select user", // TODO + "no-users-matching": "No users matching '{{entity}}' were found.", // TODO + "user-required": "User is required", // TODO + "activation-method": "Activation method", // TODO + "display-activation-link": "Display activation link", // TODO + "send-activation-mail": "Send activation mail", // TODO + "activation-link": "User activation link", // TODO + "activation-link-text": "In order to activate user use the following activation link :", // TODO + "copy-activation-link": "Copy activation link", // TODO + "activation-link-copied-message": "User activation link has been copied to clipboard", // TODO + "details": "Details" // TODO + }, + "value": { + "type": "Value type", + "string": "String", + "string-value": "String value", + "integer": "Integer", + "integer-value": "Integer value", + "invalid-integer-value": "Invalid integer value", + "double": "Double", + "double-value": "Double value", + "boolean": "Boolean", + "boolean-value": "Boolean value", + "false": "False", + "true": "True" + }, + "widget": { + "widget-library": "위젯 저장소", + "widget-bundle": "위젯 번들", + "select-widgets-bundle": "위젯 번들 선택", + "management": "위젯 관리", + "editor": "위젯 편집기", + "widget-type-not-found": "위젯 구성을 로드하는 중 문제가 발생했습니다.
연결된 위젯 타입이 삭제되었습니다.", + "widget-type-load-error": "다음과 같은 오류로 인해 위젯이로드되지 않았습니다:", + "remove": "위젯 삭제", + "edit": "위젯 수정", + "remove-widget-title": "'{{widgetTitle}}' 위젯을 삭제하시겠습니까?", + "remove-widget-text": "위젯과 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "timeseries": "Time series", + "latest-values": "Latest values", + "rpc": "Control 위젯", + "static": "Static 위젯", + "select-widget-type": "위젯 타입 선택", + "missing-widget-title-error": "위젯 타이틀을 입력하세요!", + "widget-saved": "위젯이 저장되었습니다.", + "unable-to-save-widget-error": "위젯을 저장할 수 없습니다! 위젯에 오류가 있습니다!", + "save": "위젯 저장", + "saveAs": "다른 이름으로 위젯 저장", + "save-widget-type-as": "다른 이름으로 위젯 타입 저장", + "save-widget-type-as-text": "새로운 위젯 이름과 위젯 번들을 선택하세요.", + "toggle-fullscreen": "전체화면 전환", + "run": "위젯 실행", + "title": "위젯 타이틀", + "title-required": "위젯 타이틀을 입력하세요.", + "type": "위젯 타입", + "resources": "리소스", + "resource-url": "JavaScript/CSS URI", + "remove-resource": "리소스 삭제", + "add-resource": "리소스 추가", + "html": "HTML", + "tidy": "Tidy", + "css": "CSS", + "settings-schema": "스키마 설정", + "datakey-settings-schema": "데이터 키 설정 스키마", + "javascript": "Javascript", + "remove-widget-type-title": "'{{widgetName}}' 위젯 타입을 삭제하시겠습니까?", + "remove-widget-type-text": "위젯 타입과 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "remove-widget-type": "위젯 타입 삭제", + "add-widget-type": "새로운 위젯 타입 추가", + "widget-type-load-failed-error": "위젯 타입을 로드하지 못했습니다!", + "widget-template-load-failed-error": "위젯 템플릿을 로드하지 못했습니다!", + "add": "위젯 추가", + "undo": "위젯 변경사항 취소", + "export": "위젯 내보내기" + }, + "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": "현재 번들", + "widgets-bundles": "위젯 번들", + "add": "위젯 번들 추가", + "delete": "위젯 번들 삭제", + "title": "타이틀", + "title-required": "타이틀을 입력하세요.", + "add-widgets-bundle-text": "위젯 번들 추가", + "no-widgets-bundles-text": "위젯 번들이 없습니다.", + "empty": "위젯 번들이 비어있습니다.", + "details": "상세", + "widgets-bundle-details": "위젯 번들 상세정보", + "delete-widgets-bundle-title": "'{{widgetsBundleTitle}}' 위젯 번들을 삭제하시겠습니까?", + "delete-widgets-bundle-text": "위젯 번들과 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "delete-widgets-bundles-title": "{ count, select, 1 {위젯 번들 1개} other {위젯 번들 #개} }를 삭제하시겠습니까?", + "delete-widgets-bundles-action-title": "{ count, select, 1 {위젯 번들 1개} other {위젯 번들 #개} } 삭제", + "delete-widgets-bundles-text": "선택된 위젯 번들이 삭제되고 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", + "no-widgets-bundles-matching": "'{{widgetsBundle}}' 와(과) 일치하는 위젯 번들을 찾을 수 없습니다.", + "widgets-bundle-required": "위젯 번들을 입력하세요.", + "system": "시스템", + "import": "위젯 번들 가져오기", + "export": "위젯 번들 내보내기", + "export-failed-error": "위젯 번들을 내보내기 할 수 없습니다.: {{error}}", + "create-new-widgets-bundle": "새로운 위젯 번들 생성", + "widgets-bundle-file": "위젯 번들 파일", + "invalid-widgets-bundle-file-error": "위젯 번들을 가져오기 할 수 없습니다.: 잘못된 위젯 번들 데이터 구조입니다." + }, + "widget-config": { + "data": "데이터", + "settings": "설정", + "advanced": "고급", + "title": "타이틀", + "general-settings": "일반 설정", + "display-title": "타이틀 표시", + "drop-shadow": "그림자", + "enable-fullscreen": "전체화면 사용 ", + "background-color": "배경 색", + "text-color": "글자 색", + "padding": "패딩", + "title-style": "타이틀 스타일", + "mobile-mode-settings": "모바일 모드 설정", + "order": "순서", + "height": "높이", + "units": "값 옆에 표시할 특수 기호", + "decimals": "소수점 이하 자릿수", + "timewindow": "타임윈도우", + "use-dashboard-timewindow": "대시보드 타임윈도우", + "display-legend": "범례 표시", + "datasources": "데이터소스", + "datasource-type": "유형", + "datasource-parameters": "파라미터", + "remove-datasource": "데이터소스 삭제", + "add-datasource": "데이터소스 추가", + "target-device": "대상 디바이스" + }, + "widget-type": { + "import": "위젯 타입 가져오기", + "export": "위젯 타입 내보내기", + "export-failed-error": "위젯 타입을 내보내기 할 수 없습니다.: {{error}}", + "create-new-widget-type": "새로운 위젯 타입 생성", + "widget-type-file": "위젯 타입 파일", + "invalid-widget-type-file-error": "위젯 타입을 가져오기 할 수 없습니다.: 잘못된 위젯 타입 데이터 구조입니다." + }, + "icon": { // TODO + "icon": "Icon", + "select-icon": "Select icon", + "material-icons": "Material icons", + "show-all": "Show all icons" + }, + "custom": { + "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": "언어", + "en_US": "영어", + "ko_KR": "한글", + "zh_CN": "중국어", + "ru_RU": "러시아어", + "es_ES": "스페인어", + "it_IT": "이탈리아 사람" + } +} \ No newline at end of file diff --git a/ui/src/app/locale/locale.constant-ru.js b/ui/src/app/locale/locale.constant-ru.js deleted file mode 100644 index cff98809c0..0000000000 --- a/ui/src/app/locale/locale.constant-ru.js +++ /dev/null @@ -1,1381 +0,0 @@ -/* - * Copyright © 2016-2018 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default function addLocaleRussian(locales) { - var ru_RU = { - "access": { - "unauthorized": "Неавторизированный", - "unauthorized-access": "Несанкционированный доступ", - "unauthorized-access-text": "Вы должны войти в систему для получения доступа к этому ресурсу!", - "access-forbidden": "Доступ запрещен", - "access-forbidden-text": "У вас нет прав доступа к этому ресурсу!
Для получения доступа попробуйте войти под другим пользователем.", - "refresh-token-expired": "Сессия истекла", - "refresh-token-failed": "Не удалось обновить сессию" - }, - "action": { - "activate": "Активировать", - "suspend": "Приостановить", - "save": "Сохранить", - "saveAs": "Сохранить как", - "cancel": "Отмена", - "ok": "ОК", - "delete": "Удалить", - "add": "Добавить", - "yes": "Да", - "no": "Нет", - "update": "Обновить", - "remove": "Удалить", - "search": "Поиск", - "assign": "Присвоить", - "unassign": "Отменить присвоение", - "share": "Поделиться", - "make-private": "Закрыть для общего доступа", - "apply": "Применить", - "apply-changes": "Применить изменения", - "edit-mode": "Режим редактирования", - "enter-edit-mode": "Режим редактирования", - "decline-changes": "Отменить изменения", - "close": "Закрыть", - "back": "Назад", - "run": "Запуск", - "sign-in": "Войти", - "edit": "Редактировать", - "view": "Просмотреть", - "create": "Создать", - "drag": "Переместить", - "refresh": "Обновить", - "undo": "Откатить", - "copy": "Копировать", - "paste": "Вставить", - "import": "Импортировать", - "export": "Экспортировать", - "share-via": "Поделиться в {{provider}}" - }, - "aggregation": { - "aggregation": "Агрегация", - "function": "Тип агрегации данных", - "limit": "Максимальное значение", - "group-interval": "Интервал группировки", - "min": "Мин", - "max": "Maкс", - "avg": "Среднее", - "sum": "Сумма", - "count": "Количество", - "none": "Без агрегации" - }, - "admin": { - "general": "Общие", - "general-settings": "Общие настройки", - "outgoing-mail": "Исходящая почта", - "outgoing-mail-settings": "Настройки исходящей почты", - "system-settings": "Системные настройки", - "test-mail-sent": "Пробное письмо успешно отправлено!", - "base-url": "Базовая URL", - "base-url-required": "Базовая URL обязательна.", - "mail-from": "Отправитель", - "mail-from-required": "Отправитель обязателен.", - "smtp-protocol": "SMTP протокол", - "smtp-host": "SMTP хост", - "smtp-host-required": "SMTP хост обязателен.", - "smtp-port": "SMTP порт", - "smtp-port-required": "SMTP порт обязателен.", - "smtp-port-invalid": "Недействительный SMTP порт.", - "timeout-msec": "Таймаут (мс)", - "timeout-required": "Таймаут обязателен.", - "timeout-invalid": "Недействительный таймаут.", - "enable-tls": "Включить TLS", - "send-test-mail": "Отправить пробное письмо" - }, - "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": "Атрибуты", - "latest-telemetry": "Последняя телеметрия", - "attributes-scope": "Контекст атрибутов устройства", - "scope-latest-telemetry": "Последняя телеметрия", - "scope-client": "Клиентские атрибуты", - "scope-server": "Серверные атрибуты", - "scope-shared": "Общие атрибуты", - "add": "Добавить атрибут", - "key": "Ключ", - "key-required": "Ключ атрибута обязателен.", - "value": "Значение", - "value-required": "Значение атрибута обязательно.", - "delete-attributes-title": "Вы уверенны, что хотите удалить { count, plural, one {1 атрибут} few {# атрибута} other {# атрибутов} }? ", - "delete-attributes-text": "Внимание, после подтверждения выбранные атрибуты будут удалены.", - "delete-attributes": "Удалить атрибуты", - "enter-attribute-value": "Введите значение атрибута", - "show-on-widget": "Показать на виджете", - "widget-mode": "Виджет-режим", - "next-widget": "Следующий виджет", - "prev-widget": "Предыдущий виджет", - "add-to-dashboard": "Добавить на дашборд", - "add-widget-to-dashboard": "Добавить виджет на дашборд", - "selected-attributes": "{ count, plural, 1 {Выбран} other {Выбраны} } { count, plural, one {1 атрибут} few {# атрибута} other {# атрибутов} }", - "selected-telemetry": "{ count, plural, 1 {Выбран} other {Выбраны} } { count, plural, 1 {1 параметр} few {# параметра} other {# параметров} } телеметрии" - }, - "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": "У вас есть несохраненные изменения. Вы точно хотите покинуть эту страницу?", - "html-message": "У вас есть несохраненные изменения.
Вы точно хотите покинуть эту страницу?", - "title": "Несохраненные изменения" - }, - "contact": { - "country": "Страна", - "city": "Город", - "state": "Штат", - "postal-code": "Почтовый код", - "postal-code-invalid": "Допустимы только цифры", - "address": "Адрес", - "address2": "Адрес 2", - "phone": "Телефон", - "email": "Эл. адрес", - "no-address": "Адрес не указан" - }, - "common": { - "username": "Имя пользователя", - "password": "Пароль", - "enter-username": "Введите имя пользователя", - "enter-password": "Введите пароль", - "enter-search": "Введите условие поиска" - }, - "content-type": { // TODO - "json": "Json", - "text": "Text", - "binary": "Binary (Base64)" - }, - "customer": { - "customers": "Клиенты", - "management": "Управление клиентами", - "dashboard": "Дашборд клиентов", - "dashboards": "Дашборды клиентов", - "devices": "Устройства клиента", - "public-dashboards": "Общедоступные дашборды", - "public-devices": "Общедоступные устройства", - "add": "Добавить клиента", - "delete": "Удалить клиента", - "manage-customer-users": "Управление пользователями клиента", - "manage-customer-devices": "Управление устройствами клиента", - "manage-customer-dashboards": "Управление дашбордами клиента", - "manage-public-devices": "Управление общедоступными устройствами", - "manage-public-dashboards": "Управление общедоступными дашбордами", - "add-customer-text": "Добавить нового клиента", - "no-customers-text": "Клиенты не найдены", - "customer-details": "Подробности о клиенте", - "delete-customer-title": "Вы точно хотите удалить клиента '{{customerTitle}}'?", - "delete-customer-text": "Внимание, после подтверждения клиент и вся связанная с ним информация будут безвозвратно утеряны.", - "delete-customers-title": "Вы точно хотите удалить { count, plural, one {1 клиента} other {# клиентов} }?", - "delete-customers-action-title": "Удалить { count, plural, one {1 клиента} other {# клиентов} } }", - "delete-customers-text": "Внимание, после подтверждения клиенты и вся связанная с ними информация будут безвозвратно утеряны.", - "manage-users": "Управление пользователями", - "manage-assets": "Manage assets", // TODO - "manage-devices": "Управление устройствами", - "manage-dashboards": "Управление дашбордами", - "title": "Имя", - "title-required": "Название обязательно.", - "description": "Описание", - "details": "Details", // TODO - "events": "Events", // TODO - "copyId": "Copy customer Id", // TODO - "idCopiedMessage": "Customer Id has been copied to clipboard", // TODO - "select-customer": "Select customer", // TODO - "no-customers-matching": "No customers matching '{{entity}}' were found.", // TODO - "customer-required": "Customer is required", // TODO - "select-default-customer": "Select default customer", // TODO - "default-customer": "Default customer", // TODO - "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level" // TODO - }, - "datetime": { - "date-from": "Дата с", - "time-from": "Время с", - "date-to": "Дата до", - "time-to": "Время до" - }, - "dashboard": { - "dashboard": "Дашборд", - "dashboards": "Дашборды", - "management": "Управление дашбордами", - "view-dashboards": "Просмотреть дашборды", - "add": "Добавить дашборд", - "assign-dashboard-to-customer": "Прикрепить дашборд(ы) к клиенту", - "assign-dashboard-to-customer-text": "Пожалуйста, выберите дашборды, которые нужно прикрепить к клиенту", - "assign-to-customer-text": "Пожалуйста, выберите клиента, к которому нужно прикрепить дашборд(ы)", - "assign-to-customer": "Прикрепить к клиенту", - "unassign-from-customer": "Открепить от клиента", - "make-public": "Открыть дашборд для общего доступа", - "make-private": "Закрыть дашборд для общего доступа", - "no-dashboards-text": "Дашборды не найдены", - "no-widgets": "Виджеты не сконфигурированы", - "add-widget": "Добавить новый виджет", - "title": "Название", - "select-widget-title": "Выберите виджет", - "select-widget-subtitle": "Список доступных виджетов", - "delete": "Удалить дашборд", - "title-required": "Название обязательно.", - "description": "Описание", - "details": "Подробности", - "dashboard-details": "Подробности о дашборде", - "add-dashboard-text": "Добавить новый дашборд", - "assign-dashboards": "Прикрепить дашборды", - "assign-new-dashboard": "Прикрепить новый дашборд", - "assign-dashboards-text": "Прикрепить { count, plural, 1 {1 дашборд} other {# дашборда} } к клиенту", - "delete-dashboards": "Удалить дашборды", - "unassign-dashboards": "Открепить дашборды", - "unassign-dashboards-action-title": "Открепить { count, plural, one {1 дашборд} few {# дашборда} other {# дашбордов} } от клиента", - "delete-dashboard-title": "Вы точно хотите удалить дашборд '{{dashboardTitle}}'?", - "delete-dashboard-text": "Внимание, после подтверждения дашборд и все связанные с ним данные будут безвозвратно утеряны.", - "delete-dashboards-title": "Вы точно хотите удалить { count, plural, one {1 дашборд} few {# дашборда} other {# дашбордов} }?", - "delete-dashboards-action-title": "Удалить { count, plural, one {1 дашборд} few {# дашборда} other {# дашбордов} }", - "delete-dashboards-text": "Внимание, после подтверждения дашборды и все связанные с ними данные будут безвозвратно утеряны.", - "unassign-dashboard-title": "Вы точно хотите открепить дашборд '{{dashboardTitle}}'?", - "unassign-dashboard-text": "После подтверждения дашборд не будет доступен клиенту.", - "unassign-dashboard": "Открепить дашборд", - "unassign-dashboards-title": "Вы точно хотите открепить { count, plural, one {1 дашборд} few {# дашборда} other {# дашбордов} }?", - "unassign-dashboards-text": "После подтверждения выбранные дашборды не будут доступны клиенту.", - "public-dashboard-title": "Теперь дашборд общедоступный", - "public-dashboard-text": "Теперь ваш дашборд {{dashboardTitle}} доступен всем по ссылке:", - "public-dashboard-notice": "Примечание: Для получения доступа к данным устройства нужно открыть общий доступ к этому устройству.", - "make-private-dashboard-title": "Вы точно хотите закрыть общий доступ к дашборду '{{dashboardTitle}}'?", - "make-private-dashboard-text": "После подтверждения дашборд будет закрыт для общего доступа.", - "make-private-dashboard": "Закрыть дашборд для общего доступа", - "socialshare-text": "'{{dashboardTitle}}' сделано ThingsBoard", - "socialshare-title": "'{{dashboardTitle}}' сделано ThingsBoard", - "select-dashboard": "Выберите дашборд", - "no-dashboards-matching": "Дашборд '{{entity}}' не найден.", - "dashboard-required": "Дашборд обязателен.", - "select-existing": "Выберите существующий дашборд", - "create-new": "Создать новый дашборд", - "new-dashboard-title": "Новое название дашборда", - "open-dashboard": "Открыть дашборд", - "set-background": "Установить фон", - "background-color": "Фоновый цвет", - "background-image": "Фоновая картинка", - "background-size-mode": "Размер фона", - "no-image": "Картинка не выбрана", - "drop-image": "Перетащите картинку или кликните для выбора файла.", - "settings": "Настройки", - "columns-count": "Количество колонок", - "columns-count-required": "Количество колонок обязательно.", - "min-columns-count-message": "Минимальное число колонок - 10.", - "max-columns-count-message": "Максимальное число колонок - 1000.", - "widgets-margins": "Величина отступа между виджетами", - "horizontal-margin": "Величина горизонтального отступа", - "horizontal-margin-required": "Величина горизонтального отступа обязательна.", - "min-horizontal-margin-message": "Минимальная величина горизонтального отступа - 0.", - "max-horizontal-margin-message": "Максимальная величина горизонтального отступа - 50.", - "vertical-margin": "Величина вертикального отступа", - "vertical-margin-required": "Величина вертикального отступа обязательна.", - "min-vertical-margin-message": "Минимальная величина вертикального отступа - 0.", - "max-vertical-margin-message": "Максимальная величина вертикального отступа - 50.", - "display-title": "Показать название дашборда", - "title-color": "Цвет названия", - "display-device-selection": "Показать выборку устройств", - "display-dashboard-timewindow": "Показать временное окно", - "display-dashboard-export": "Показать экспорт", - "import": "Импортировать дашборд", - "export": "Экспортировать дашборд", - "export-failed-error": "Не удалось экспортировать дашборд: {{error}}", - "create-new-dashboard": "Создать новый дашборд", - "dashboard-file": "Файл дашборда", - "invalid-dashboard-file-error": "Не удалось импортировать дашборд: неизвестная схема данных дашборда.", - "dashboard-import-missing-aliases-title": "Конфигурировать псевдонимы импортированного дашборда", - "create-new-widget": "Создать новый виджет", - "import-widget": "Импортировать новый виджет", - "widget-file": "Файл виджета", - "invalid-widget-file-error": "Не удалось импортировать виджет: неизвестная схема данных виджета.", - "widget-import-missing-aliases-title": "Конфигурировать псевдонимы импортированного виджета", - "open-toolbar": "Открыть панель инструментов", - "close-toolbar": "Закрыть панель инструментов", - "configuration-error": "Ошибка конфигурирования", - "alias-resolution-error-title": "Ошибка конфигурирования псевдонимов дашборда", - "invalid-aliases-config": "Не удалось найти устройства, соответствующие фильтру псевдонимов.
" + - "Пожалуйста, свяжитесь с администратором для устранения этой проблемы.", - "select-devices": "Выберите устройства", - "assignedToCustomer": "Прикреплен к клиенту", - "public": "Общедоступный", - "public-link": "Общедоступная ссылка", - "copy-public-link": "Скопировать общедоступную ссылку", - "public-link-copied-message": "Общедоступная ссылка на дашборд скопирована в буфер обмена", - "manage-states": "Manage dashboard states", // TODO - "states": "Dashboard states", // TODO - "search-states": "Search dashboard states", // TODO - "selected-states": "{ count, select, 1 {1 dashboard state} other {# dashboard states} } selected", // TODO - "edit-state": "Edit dashboard state", // TODO - "delete-state": "Delete dashboard state", // TODO - "add-state": "Add dashboard state", // TODO - "state": "Dashboard state", // TODO - "state-name": "Name", // TODO - "state-name-required": "Dashboard state name is required.", // TODO - "state-id": "State Id", // TODO - "state-id-required": "Dashboard state id is required.", // TODO - "state-id-exists": "Dashboard state with the same id is already exists.", // TODO - "is-root-state": "Root state", // TODO - "delete-state-title": "Delete dashboard state", // TODO - "delete-state-text": "Are you sure you want delete dashboard state with name '{{stateName}}'?", // TODO - "show-details": "Show details", // TODO - "hide-details": "Hide details", // TODO - "select-state": "Select target state", // TODO - "state-controller": "State controller" // TODO - }, - "datakey": { - "settings": "Настройки", - "advanced": "Дополнительно", - "label": "Метка", - "color": "Цвет", - "units": "Special symbol to show next to value", // TODO - "decimals": "Number of digits after floating point", // TODO - "data-generation-func": "Функция генерации данных", - "use-data-post-processing-func": "Использовать функцию пост-обработки данных", - "configuration": "Конфигурация ключа данных", - "timeseries": "Выборка по времени", - "attributes": "Атрибуты", - "timeseries-required": "Выборка по времени обязательна.", - "timeseries-or-attributes-required": "Выборка по времени/атрибуты обязательны.", - "maximum-timeseries-or-attributes": "Maximum { count, select, 1 {1 timeseries/attribute is allowed.} other {# timeseries/attributes are allowed} }", // TODO - "alarm-fields-required": "Alarm fields are required.", // TODO - "function-types": "Тип функции", - "function-types-required": "Тип функции обязателен.", - "maximum-function-types": "Maximum { count, select, 1 {1 function type is allowed.} other {# function types are allowed} }" // TODO - }, - "datasource": { - "type": "Тип источника данных", - "add-datasource-prompt": "Пожалуйста, добавьте источник данных" - }, - "details": { - "edit-mode": "Режим редактирования", - "toggle-edit-mode": "Режим редактирования" - }, - "device": { - "device": "Устройство", - "device-required": "Устройство обязательно.", - "devices": "Устройства", - "management": "Управление устройствами", - "view-devices": "Просмотреть устройства", - "device-alias": "Псевдоним устройства", - "aliases": "Псевдонимы устройства", - "no-alias-matching": "'{{alias}}' не найден.", - "no-aliases-found": "Псевдонимы не найдены.", - "no-key-matching": "'{{key}}' не найден.", - "no-keys-found": "Ключи не найдены.", - "create-new-alias": "Создать новый!", - "create-new-key": "Создать новый!", - "duplicate-alias-error": "Найден дублирующийся псевдоним '{{alias}}'.
В рамках дашборда псевдонимы устройств должны быть уникальными.", - "configure-alias": "Конфигурировать '{{alias}}' псевдоним", - "no-devices-matching": "Устройство '{{entity}}' не найдено.", - "alias": "Псевдоним", - "alias-required": "Псевдоним устройства обязателен.", - "remove-alias": "Удалить псевдоним устройства", - "add-alias": "Добавить псевдоним устройства", - "name-starts-with": "Название начинается с", - "device-list": "Список устройств", - "use-device-name-filter": "Использовать фильтр", - "device-list-empty": "Устройства не выбраны.", - "device-name-filter-required": "Фильтр названия устройства обязателен.", - "device-name-filter-no-device-matched": "Устройства, названия которых начинаются с '{{device}}', не найдены.", - "add": "Добавить устройство", - "assign-to-customer": "Присвоить клиенту", - "assign-device-to-customer": "Присвоить устройство(а) клиенту", - "assign-device-to-customer-text": "Пожалуйста, выберите устройства, которые нужно присвоить клиенту", - "make-public": "Открыть общий доступ к устройству", - "make-private": "Закрыть общий доступ к устройству", - "no-devices-text": "Устройства не найдены", - "assign-to-customer-text": "Пожалуйста, выберите клиента, которому нужно присвоить устройство(а)", - "device-details": "Подробности об устройстве", - "add-device-text": "Добавить новое устройство", - "credentials": "Учетные данные", - "manage-credentials": "Управление учетными данными", - "delete": "Удалить устройство", - "assign-devices": "Присвоить устройство", - "assign-devices-text": "Присвоить { count, plural, one {1 устройство} few {# устройства} other {# устройств} } клиенту", - "delete-devices": "Удалить устройства", - "unassign-from-customer": "Отменить присвоение клиенту", - "unassign-devices": "Отменить присвоение устройств", - "unassign-devices-action-title": "Отменить присвоение { count, plural, one {1 устройства} few {# устройств} other {# устройств} } клиенту", - "assign-new-device": "Присвоить новое устройство", - "make-public-device-title": "Вы точно хотите открыть общий доступ к устройству '{{deviceName}}'?", - "make-public-device-text": "После подтверждения устройство и все связанные с ним данные будут общедоступными.", - "make-private-device-title": "Вы точно хотите закрыть общий доступ к устройству '{{deviceName}}'", - "make-private-device-text": "После подтверждения устройство и все связанные с ним данные будут закрыты для общего доступа.", - "view-credentials": "Просмотреть учетные данные", - "delete-device-title": "Вы точно хотите удалить устройство '{{deviceName}}'?", - "delete-device-text": "Внимание, после подтверждения устройство и все связанные с ним данные будут безвозвратно утеряны.", - "delete-devices-title": "Вы точно хотите удалить { count, plural, one {1 устройство} few {# устройства} other {# устройств} }?", - "delete-devices-action-title": "Удалить { count, plural, one {1 устройство} few {# устройства} other {# устройств} } }", - "delete-devices-text": "Внимание, после подтверждения выбранные устройства и все связанные с ними данные будут безвозвратно утеряны..", - "unassign-device-title": "Вы точно хотите отменить присвоение устройства '{{deviceName}}'?", - "unassign-device-text": "После подтверждения устройство будет недоступно клиенту.", - "unassign-device": "Отменить присвоение устройства", - "unassign-devices-title": "Вы точно хотите отменить присвоение { count, plural, one {1 устройство} few {# устройства} other {# устройств} } }?", - "unassign-devices-text": "После подтверждения выбранные устройства будут недоступны клиенту.", - "device-credentials": "Учетные данные устройства", - "credentials-type": "Тип учетных данных", - "access-token": "Токен", - "access-token-required": "Токен обязателен.", - "access-token-invalid": "Длина токена должна быть от 1 до 20 символов.", - "rsa-key": "Открытый ключ RSA", - "rsa-key-required": "Открытый ключ RSA обязателен.", - "secret": "Секрет", - "secret-required": "Секрет обязателен.", - "name": "Название", - "name-required": "Название обязательно.", - "description": "Описание", - "events": "События", - "details": "Подробности", - "copyId": "Копировать идентификатор устройства", - "copyAccessToken": "Копировать токен", - "idCopiedMessage": "Идентификатор устройства скопирован в буфер обмена", - "accessTokenCopiedMessage": "Токен устройства скопирован в буфер обмена", - "assignedToCustomer": "Присвоен клиенту", - "unable-delete-device-alias-title": "Не удалось удалить псевдоним устройства", - "unable-delete-device-alias-text": "Не удалось удалить псевдоним '{{deviceAlias}}' устройства, т.к. он используется следующими виджетами:
{{widgetsList}}", - "is-gateway": "Гейтвей", - "public": "Общедоступный", - "device-public": "Устройство общедоступно" - }, - "dialog": { - "close": "Закрыть диалог" - }, - "error": { - "unable-to-connect": "Не удалось подключиться к серверу! Пожалуйста, проверьте интернет-соединение.", - "unhandled-error-code": "Код необработанной ошибки: {{errorCode}}", - "unknown-error": "Неизвестная ошибка" - }, - "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):
{{widgetsList}}", - "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
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": "Тип события", - "type-error": "Ошибка", - "type-lc-event": "Событие жизненного цикла", - "type-stats": "Статистика", - "type-debug-rule-node": "Debug", // TODO - "type-debug-rule-chain": "Debug", // TODO - "no-events-prompt": "События не найдены", - "error": "Ошибка", - "alarm": "Аварийное оповещение", - "event-time": "Время возникновения события", - "server": "Сервер", - "body": "Тело", - "method": "Метод", - "type": "Type", // TODO - "entity": "Entity", // TODO - "message-id": "Message Id", // TODO - "message-type": "Message Type", // TODO - "data-type": "Data Type", // TODO - "relation-type": "Relation Type", // TODO - "metadata": "Metadata", // TODO - "data": "Data", // TODO - "event": "Событие", - "status": "Статус", - "success": "Успех", - "failed": "Неудача", - "messages-processed": "Сообщения обработаны", - "errors-occurred": "Возникли ошибки" - }, - "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": "Во весь экран", - "exit": "Выйти из полноэкранного режима", - "toggle": "Во весь экран", - "fullscreen": "Полноэкранный режим" - }, - "function": { - "function": "Функция" - }, - "grid": { - "delete-item-title": "Вы точно хотите удалить этот объект?", - "delete-item-text": "Внимание, после подтверждения объект и все связанные с ним данные будут безвозвратно утеряны.", - "delete-items-title": "Вы точно хотите удалить { count, plural, one {1 объект} few {# объекта} other {# объектов} }?", - "delete-items-action-title": "Удалить { count, plural, one {1 объект} few {# объекта} other {# объектов}", - "delete-items-text": "Внимание, после подтверждения выбранные объекты и все связанные с ними данные будут безвозвратно утеряны.", - "add-item-text": "Добавить новый объект", - "no-items-text": "Объекты не найдены", - "item-details": "Подробности об объекте", - "delete-item": "Удалить объект", - "delete-items": "Удалить объекты", - "scroll-to-top": "Прокрутка к началу" - }, - "help": { - "goto-help-page": "Перейти к справке" - }, - "home": { - "home": "Главная", - "profile": "Профиль", - "logout": "Выйти из системы", - "menu": "Меню", - "avatar": "Аватар", - "open-user-menu": "Открыть меню пользователя" - }, - "import": { - "no-file": "Файл не выбран", - "drop-file": "Перетащите JSON файл или кликните для выбора файла." - }, - "item": { - "selected": "Выбранные" - }, - "js-func": { - "no-return-error": "Функция должна возвращать значение!", - "return-type-mismatch": "Функция должна возвращать значение типа '{{type}}'!", - "tidy": "Tidy" // TODO - }, - "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": "Расположение легенды", - "show-max": "Показать максимальное значение", - "show-min": "Показать минимальное значение", - "show-avg": "Показать среднее значение", - "show-total": "Показать сумму", - "settings": "Настройки легенды", - "min": "Мин", - "max": "Макс", - "avg": "Среднее", - "total": "Сумма" - }, - "login": { - "login": "Войти", - "request-password-reset": "Запрос на сброс пароля", - "reset-password": "Сбросить пароль", - "create-password": "Создать пароль", - "passwords-mismatch-error": "Введенные пароли должны быть одинаковыми!", - "password-again": "Введите пароль еще раз", - "sign-in": "Пожалуйста, войдите в систему", - "username": "Имя пользователя (эл. адрес)", - "remember-me": "Запомнить меня", - "forgot-password": "Забыли пароль?", - "password-reset": "Пароль сброшен", - "new-password": "Новый пароль", - "new-password-again": "Повторите новый пароль", - "password-link-sent-message": "Ссылка для сброса пароля была успешно отправлена!", - "email": "Эл. адрес" - }, - "position": { - "top": "Верх", - "bottom": "Низ", - "left": "Левый край", - "right": "Правый край" - }, - "profile": { - "profile": "Профиль", - "change-password": "Изменить пароль", - "current-password": "Текущий пароль" - }, - "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": "Владельцы", - "management": "Управление владельцами", - "add": "Добавить владельца", - "admins": "Администраторы", - "manage-tenant-admins": "Управление администраторами владельца", - "delete": "Удалить владельца", - "add-tenant-text": "Добавить нового владельца", - "no-tenants-text": "Владельцы не найдены", - "tenant-details": "Подробности об владельце", - "delete-tenant-title": "Вы точно хотите удалить владельца '{{tenantTitle}}'?", - "delete-tenant-text": "Внимание, после подтверждения владелец и все связанные с ним данные будут безвозвратно утеряны.", - "delete-tenants-title": "Вы точно хотите удалить { count, plural, one {1 владельца} other {# владельцев} }?", - "delete-tenants-action-title": "Удалить { count, plural, one {1 владельца} other {# владельцев} }", - "delete-tenants-text": "Внимание, после подтверждения выбранные Владельцы и все связанные с ними данные будут безвозвратно утеряны.", - "title": "Имя", - "title-required": "Имя обязательно.", - "description": "Описание" - }, - "timeinterval": { - "seconds-interval": "{ seconds, plural, one {1 секунда} few {# секунды} other {# секунд} }", - "minutes-interval": "{ minutes, plural, one {1 минута} few {# минуты} other {# минут} }", - "hours-interval": "{ hours, plural, one {1 час} few {# часа} other {# часов} }", - "days-interval": "{ days, plural, one {1 день} few {# дня} other {# дней} }", - "days": "Дни", - "hours": "Часы", - "minutes": "Минуты", - "seconds": "Секунды", - "advanced": "Дополнительно" - }, - "timewindow": { - "days": "{ days, plural, one {1 день} few {# дня} other {# дней} }", - "hours": "{ hours, plural, one {1 час} few {# часа} other {# часов} }", - "minutes": "{ minutes, plural, one {1 минута} few {# минуты} other {# минут} }", - "seconds": "{ seconds, plural, one {1 секунда} few {# секунды} other {# секунд} }", - "realtime": "Режим реального времени", - "history": "История", - "last-prefix": "Последние", - "period": "с {{ startTime }} до {{ endTime }}", - "edit": "Изменить временное окно", - "date-range": "Диапазон дат", - "last": "Последние", - "time-period": "Период времени" - }, - "user": { - "users": "Пользователи", - "customer-users": "Пользователи клиента", - "tenant-admins": "Администраторы владельца", - "sys-admin": "Системный администратор", - "tenant-admin": "Администратор владельца", - "customer": "Клиент", - "anonymous": "Аноним", - "add": "Добавить пользователя", - "delete": "Удалить пользователя", - "add-user-text": "Добавить нового пользователя", - "no-users-text": "Пользователи не найдены", - "user-details": "Подробности о пользователе", - "delete-user-title": "Вы точно хотите удалить пользователя '{{userEmail}}'?", - "delete-user-text": "Внимание, после подтверждения пользователь и все связанные с ним данные будут безвозвратно утеряны.", - "delete-users-title": "Вы точно хотите удалить { count, plural, one {1 пользователя} other {# пользователей} }?", - "delete-users-action-title": "Удалить { count, plural, one {1 пользователя} other {# пользователей} }", - "delete-users-text": "Внимание, после подтверждения выбранные пользователи и все связанные с ними данные будут безвозвратно утеряны.", - "activation-email-sent-message": "Активационное письмо успешно отправлено!", - "resend-activation": "Повторить отправку активационного письма", - "email": "Эл. адрес", - "email-required": "Эл. адрес обязателен.", - "first-name": "Имя", - "last-name": "Фамилия", - "description": "Описание", - "default-dashboard": "Дашборд по умолчанию", - "always-fullscreen": "Всегда во весь экран" - }, - "value": { - "type": "Тип значения", - "string": "Строка", - "string-value": "Строковое значение", - "integer": "Целое число", - "integer-value": "Целочисленное значение", - "invalid-integer-value": "Неправильный формат целого числа", - "double": "Число двойной точности", - "double-value": "Значение двойной точности", - "boolean": "Логический тип", - "boolean-value": "Логическое значение", - "false": "Ложь", - "true": "Правда" - }, - "widget": { - "widget-library": "Галерея виджетов", - "widget-bundle": "Набор виджетов", - "select-widgets-bundle": "Выберите набор виджетов", - "management": "Управление виджетами", - "editor": "Редактор виджетов", - "widget-type-not-found": "Ошибка при загрузке конфигурации виджета.
Возможно, связанный с ней\n тип виджета уже удален.", - "widget-type-load-error": "Не удалось загрузить виджет по следующим причинам:", - "remove": "Удалить виджет", - "edit": "Редактировать виджет", - "remove-widget-title": "Вы точно хотите удалить виджет '{{widgetTitle}}'?", - "remove-widget-text": "Внимание, после подтверждения виджет и все связанные с ним данные будут безвозвратно утеряны.", - "timeseries": "Выборка по времени", - "latest-values": "Последние значения", - "rpc": "Управляющий виджет", - "static": "Статический виджет", - "select-widget-type": "Выберите тип виджета", - "missing-widget-title-error": "Укажите название виджета!", - "widget-saved": "Виджет сохранен", - "unable-to-save-widget-error": "Не удалось сохранить виджет! Виджет содержит ошибки!", - "save": "Сохранить виджет", - "saveAs": "Сохранить виджет как", - "save-widget-type-as": "Сохранить тип виджета как", - "save-widget-type-as-text": "Пожалуйста, введите название виджета и/или укажите целевой набор виджетов", - "toggle-fullscreen": "Во весь экран", - "run": "Запустить виджет", - "title": "Название виджета", - "title-required": "Название виджета обязательно.", - "type": "Тип виджета", - "resources": "Ресурсы", - "resource-url": "JavaScript/CSS URL", - "remove-resource": "Удалить ресурс", - "add-resource": "Добавить ресурс", - "html": "HTML", - "tidy": "Форматировать", - "css": "CSS", - "settings-schema": "Схема конфигурации", - "datakey-settings-schema": "Схема конфигурации ключа данных", - "javascript": "Javascript", - "remove-widget-type-title": "Вы точно хотите удалить виджет '{{widgetName}}'?", - "remove-widget-type-text": "Внимание, после подтверждения тип виджета и все связанные с ним данные будут безвозвратно утеряны.", - "remove-widget-type": "Удалить тип виджета", - "add-widget-type": "Добавить новый тип виджета", - "widget-type-load-failed-error": "Не удалось загрузить тип виджета!", - "widget-template-load-failed-error": "Не удалось загрузить шаблон виджета!", - "add": "Добавить виджет", - "undo": "Откатить изменения в виджете", - "export": "Экспортировать виджет" - }, - "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": "Текущий набор", - "widgets-bundles": "Наборы виджетов", - "add": "Добавить набор виджетов", - "delete": "Удалить набор виджетов", - "title": "Название", - "title-required": "Название обязательно.", - "add-widgets-bundle-text": "Добавить новый набор виджетов", - "no-widgets-bundles-text": "Наборы виджетов не найдены", - "empty": "Пустой набор виджетов", - "details": "Подробности", - "widgets-bundle-details": "Подробности о наборе виджетов", - "delete-widgets-bundle-title": "Вы точно хотите удалить набор виджетов '{{widgetsBundleTitle}}'?", - "delete-widgets-bundle-text": "Внимание, после подтверждения набор виджетов и все связанные с ним данные будут безвозвратно утеряны.", - "delete-widgets-bundles-title": "Вы точно хотите удалить { count, plural, one {1 набор виджетов} few {# набора виджетов} other {# наборов виджетов} }?", - "delete-widgets-bundles-action-title": "Удалить { count, plural, one {1 набор виджетов} few {# набора виджетов} other {# наборов виджетов} }", - "delete-widgets-bundles-text": "Внимание, после подтверждения выбранные наборы виджетов и все связанные с ними данные будут безвозвратно утеряны..", - "no-widgets-bundles-matching": "Набор виджетов '{{widgetsBundle}}' не найден.", - "widgets-bundle-required": "Набор виджетов обязателен.", - "system": "Системный", - "import": "Импортировать набор виджетов", - "export": "Экспортировать набор виджетов", - "export-failed-error": "Не удалось экспортировать набор виджетов: {{error}}", - "create-new-widgets-bundle": "Создать новый набор виджетов", - "widgets-bundle-file": "Файл набора виджетов", - "invalid-widgets-bundle-file-error": "Не удалось импортировать набор виджетов: неизвестная схема данных набора виджетов." - }, - "widget-config": { - "data": "Данные", - "settings": "Настройки", - "advanced": "Дополнительно", - "title": "Название", - "general-settings": "Общие настройки", - "display-title": "Показать название", - "drop-shadow": "Тень", - "enable-fullscreen": "Во весь экран", - "background-color": "Цвет фона", - "text-color": "Цвет текста", - "padding": "Отступ", - "title-style": "Стиль названия", - "mobile-mode-settings": "Настройки мобильного режима", - "order": "Порядок", - "height": "Высота", - "units": "Специальный символ после значения", - "decimals": "Количество цифр после запятой", - "timewindow": "Временное окно", - "use-dashboard-timewindow": "Использовать временное окно дашборда", - "display-legend": "Показать легенду", - "datasources": "Источники данных", - "datasource-type": "Тип", - "datasource-parameters": "Параметры", - "remove-datasource": "Удалить источник данных", - "add-datasource": "Добавить источник данных", - "target-device": "Целевое устройство" - }, - "widget-type": { - "import": "Импортировать тип виджета", - "export": "Экспортировать тип виджета", - "export-failed-error": "Не удалось экспортировать тип виджета: {{error}}", - "create-new-widget-type": "Создать новый тип виджета", - "widget-type-file": "Файл типа виджета", - "invalid-widget-type-file-error": "Не удалось импортировать виджет: неизвестная схема данных типа виджета." - }, - "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": "Язык", - "en_US": "Английский", - "ko_KR": "Корейский", - "zh_CN": "Китайский", - "ru_RU": "Русский", - "es_ES": "испанский" - - } - }; - angular.extend(locales, { 'ru_RU': ru_RU }); -} \ No newline at end of file diff --git a/ui/src/app/locale/locale.constant-ru.json b/ui/src/app/locale/locale.constant-ru.json new file mode 100644 index 0000000000..7eb280abbb --- /dev/null +++ b/ui/src/app/locale/locale.constant-ru.json @@ -0,0 +1,1363 @@ +{ + "access": { + "unauthorized": "Неавторизированный", + "unauthorized-access": "Несанкционированный доступ", + "unauthorized-access-text": "Вы должны войти в систему для получения доступа к этому ресурсу!", + "access-forbidden": "Доступ запрещен", + "access-forbidden-text": "У вас нет прав доступа к этому ресурсу!
Для получения доступа попробуйте войти под другим пользователем.", + "refresh-token-expired": "Сессия истекла", + "refresh-token-failed": "Не удалось обновить сессию" + }, + "action": { + "activate": "Активировать", + "suspend": "Приостановить", + "save": "Сохранить", + "saveAs": "Сохранить как", + "cancel": "Отмена", + "ok": "ОК", + "delete": "Удалить", + "add": "Добавить", + "yes": "Да", + "no": "Нет", + "update": "Обновить", + "remove": "Удалить", + "search": "Поиск", + "assign": "Присвоить", + "unassign": "Отменить присвоение", + "share": "Поделиться", + "make-private": "Закрыть для общего доступа", + "apply": "Применить", + "apply-changes": "Применить изменения", + "edit-mode": "Режим редактирования", + "enter-edit-mode": "Режим редактирования", + "decline-changes": "Отменить изменения", + "close": "Закрыть", + "back": "Назад", + "run": "Запуск", + "sign-in": "Войти", + "edit": "Редактировать", + "view": "Просмотреть", + "create": "Создать", + "drag": "Переместить", + "refresh": "Обновить", + "undo": "Откатить", + "copy": "Копировать", + "paste": "Вставить", + "import": "Импортировать", + "export": "Экспортировать", + "share-via": "Поделиться в {{provider}}" + }, + "aggregation": { + "aggregation": "Агрегация", + "function": "Тип агрегации данных", + "limit": "Максимальное значение", + "group-interval": "Интервал группировки", + "min": "Мин", + "max": "Maкс", + "avg": "Среднее", + "sum": "Сумма", + "count": "Количество", + "none": "Без агрегации" + }, + "admin": { + "general": "Общие", + "general-settings": "Общие настройки", + "outgoing-mail": "Исходящая почта", + "outgoing-mail-settings": "Настройки исходящей почты", + "system-settings": "Системные настройки", + "test-mail-sent": "Пробное письмо успешно отправлено!", + "base-url": "Базовая URL", + "base-url-required": "Базовая URL обязательна.", + "mail-from": "Отправитель", + "mail-from-required": "Отправитель обязателен.", + "smtp-protocol": "SMTP протокол", + "smtp-host": "SMTP хост", + "smtp-host-required": "SMTP хост обязателен.", + "smtp-port": "SMTP порт", + "smtp-port-required": "SMTP порт обязателен.", + "smtp-port-invalid": "Недействительный SMTP порт.", + "timeout-msec": "Таймаут (мс)", + "timeout-required": "Таймаут обязателен.", + "timeout-invalid": "Недействительный таймаут.", + "enable-tls": "Включить TLS", + "send-test-mail": "Отправить пробное письмо" + }, + "alarm": { + "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": { + "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": { + "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": "Атрибуты", + "latest-telemetry": "Последняя телеметрия", + "attributes-scope": "Контекст атрибутов устройства", + "scope-latest-telemetry": "Последняя телеметрия", + "scope-client": "Клиентские атрибуты", + "scope-server": "Серверные атрибуты", + "scope-shared": "Общие атрибуты", + "add": "Добавить атрибут", + "key": "Ключ", + "key-required": "Ключ атрибута обязателен.", + "value": "Значение", + "value-required": "Значение атрибута обязательно.", + "delete-attributes-title": "Вы уверенны, что хотите удалить { count, plural, one {1 атрибут} few {# атрибута} other {# атрибутов} }? ", + "delete-attributes-text": "Внимание, после подтверждения выбранные атрибуты будут удалены.", + "delete-attributes": "Удалить атрибуты", + "enter-attribute-value": "Введите значение атрибута", + "show-on-widget": "Показать на виджете", + "widget-mode": "Виджет-режим", + "next-widget": "Следующий виджет", + "prev-widget": "Предыдущий виджет", + "add-to-dashboard": "Добавить на дашборд", + "add-widget-to-dashboard": "Добавить виджет на дашборд", + "selected-attributes": "{ count, plural, 1 {Выбран} other {Выбраны} } { count, plural, one {1 атрибут} few {# атрибута} other {# атрибутов} }", + "selected-telemetry": "{ count, plural, 1 {Выбран} other {Выбраны} } { count, plural, 1 {1 параметр} few {# параметра} other {# параметров} } телеметрии" + }, + "audit-log": { + "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": "У вас есть несохраненные изменения. Вы точно хотите покинуть эту страницу?", + "html-message": "У вас есть несохраненные изменения.
Вы точно хотите покинуть эту страницу?", + "title": "Несохраненные изменения" + }, + "contact": { + "country": "Страна", + "city": "Город", + "state": "Штат", + "postal-code": "Почтовый код", + "postal-code-invalid": "Допустимы только цифры", + "address": "Адрес", + "address2": "Адрес 2", + "phone": "Телефон", + "email": "Эл. адрес", + "no-address": "Адрес не указан" + }, + "common": { + "username": "Имя пользователя", + "password": "Пароль", + "enter-username": "Введите имя пользователя", + "enter-password": "Введите пароль", + "enter-search": "Введите условие поиска" + }, + "content-type": { + "json": "Json", + "text": "Text", + "binary": "Binary (Base64)" + }, + "customer": { + "customers": "Клиенты", + "management": "Управление клиентами", + "dashboard": "Дашборд клиентов", + "dashboards": "Дашборды клиентов", + "devices": "Устройства клиента", + "public-dashboards": "Общедоступные дашборды", + "public-devices": "Общедоступные устройства", + "add": "Добавить клиента", + "delete": "Удалить клиента", + "manage-customer-users": "Управление пользователями клиента", + "manage-customer-devices": "Управление устройствами клиента", + "manage-customer-dashboards": "Управление дашбордами клиента", + "manage-public-devices": "Управление общедоступными устройствами", + "manage-public-dashboards": "Управление общедоступными дашбордами", + "add-customer-text": "Добавить нового клиента", + "no-customers-text": "Клиенты не найдены", + "customer-details": "Подробности о клиенте", + "delete-customer-title": "Вы точно хотите удалить клиента '{{customerTitle}}'?", + "delete-customer-text": "Внимание, после подтверждения клиент и вся связанная с ним информация будут безвозвратно утеряны.", + "delete-customers-title": "Вы точно хотите удалить { count, plural, one {1 клиента} other {# клиентов} }?", + "delete-customers-action-title": "Удалить { count, plural, one {1 клиента} other {# клиентов} } }", + "delete-customers-text": "Внимание, после подтверждения клиенты и вся связанная с ними информация будут безвозвратно утеряны.", + "manage-users": "Управление пользователями", + "manage-assets": "Manage assets", + "manage-devices": "Управление устройствами", + "manage-dashboards": "Управление дашбордами", + "title": "Имя", + "title-required": "Название обязательно.", + "description": "Описание", + "details": "Details", + "events": "Events", + "copyId": "Copy customer Id", + "idCopiedMessage": "Customer Id has been copied to clipboard", + "select-customer": "Select customer", + "no-customers-matching": "No customers matching '{{entity}}' were found.", + "customer-required": "Customer is required", + "select-default-customer": "Select default customer", + "default-customer": "Default customer", + "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level" + }, + "datetime": { + "date-from": "Дата с", + "time-from": "Время с", + "date-to": "Дата до", + "time-to": "Время до" + }, + "dashboard": { + "dashboard": "Дашборд", + "dashboards": "Дашборды", + "management": "Управление дашбордами", + "view-dashboards": "Просмотреть дашборды", + "add": "Добавить дашборд", + "assign-dashboard-to-customer": "Прикрепить дашборд(ы) к клиенту", + "assign-dashboard-to-customer-text": "Пожалуйста, выберите дашборды, которые нужно прикрепить к клиенту", + "assign-to-customer-text": "Пожалуйста, выберите клиента, к которому нужно прикрепить дашборд(ы)", + "assign-to-customer": "Прикрепить к клиенту", + "unassign-from-customer": "Открепить от клиента", + "make-public": "Открыть дашборд для общего доступа", + "make-private": "Закрыть дашборд для общего доступа", + "no-dashboards-text": "Дашборды не найдены", + "no-widgets": "Виджеты не сконфигурированы", + "add-widget": "Добавить новый виджет", + "title": "Название", + "select-widget-title": "Выберите виджет", + "select-widget-subtitle": "Список доступных виджетов", + "delete": "Удалить дашборд", + "title-required": "Название обязательно.", + "description": "Описание", + "details": "Подробности", + "dashboard-details": "Подробности о дашборде", + "add-dashboard-text": "Добавить новый дашборд", + "assign-dashboards": "Прикрепить дашборды", + "assign-new-dashboard": "Прикрепить новый дашборд", + "assign-dashboards-text": "Прикрепить { count, plural, 1 {1 дашборд} other {# дашборда} } к клиенту", + "delete-dashboards": "Удалить дашборды", + "unassign-dashboards": "Открепить дашборды", + "unassign-dashboards-action-title": "Открепить { count, plural, one {1 дашборд} few {# дашборда} other {# дашбордов} } от клиента", + "delete-dashboard-title": "Вы точно хотите удалить дашборд '{{dashboardTitle}}'?", + "delete-dashboard-text": "Внимание, после подтверждения дашборд и все связанные с ним данные будут безвозвратно утеряны.", + "delete-dashboards-title": "Вы точно хотите удалить { count, plural, one {1 дашборд} few {# дашборда} other {# дашбордов} }?", + "delete-dashboards-action-title": "Удалить { count, plural, one {1 дашборд} few {# дашборда} other {# дашбордов} }", + "delete-dashboards-text": "Внимание, после подтверждения дашборды и все связанные с ними данные будут безвозвратно утеряны.", + "unassign-dashboard-title": "Вы точно хотите открепить дашборд '{{dashboardTitle}}'?", + "unassign-dashboard-text": "После подтверждения дашборд не будет доступен клиенту.", + "unassign-dashboard": "Открепить дашборд", + "unassign-dashboards-title": "Вы точно хотите открепить { count, plural, one {1 дашборд} few {# дашборда} other {# дашбордов} }?", + "unassign-dashboards-text": "После подтверждения выбранные дашборды не будут доступны клиенту.", + "public-dashboard-title": "Теперь дашборд общедоступный", + "public-dashboard-text": "Теперь ваш дашборд {{dashboardTitle}} доступен всем по ссылке:", + "public-dashboard-notice": "Примечание: Для получения доступа к данным устройства нужно открыть общий доступ к этому устройству.", + "make-private-dashboard-title": "Вы точно хотите закрыть общий доступ к дашборду '{{dashboardTitle}}'?", + "make-private-dashboard-text": "После подтверждения дашборд будет закрыт для общего доступа.", + "make-private-dashboard": "Закрыть дашборд для общего доступа", + "socialshare-text": "'{{dashboardTitle}}' сделано ThingsBoard", + "socialshare-title": "'{{dashboardTitle}}' сделано ThingsBoard", + "select-dashboard": "Выберите дашборд", + "no-dashboards-matching": "Дашборд '{{entity}}' не найден.", + "dashboard-required": "Дашборд обязателен.", + "select-existing": "Выберите существующий дашборд", + "create-new": "Создать новый дашборд", + "new-dashboard-title": "Новое название дашборда", + "open-dashboard": "Открыть дашборд", + "set-background": "Установить фон", + "background-color": "Фоновый цвет", + "background-image": "Фоновая картинка", + "background-size-mode": "Размер фона", + "no-image": "Картинка не выбрана", + "drop-image": "Перетащите картинку или кликните для выбора файла.", + "settings": "Настройки", + "columns-count": "Количество колонок", + "columns-count-required": "Количество колонок обязательно.", + "min-columns-count-message": "Минимальное число колонок - 10.", + "max-columns-count-message": "Максимальное число колонок - 1000.", + "widgets-margins": "Величина отступа между виджетами", + "horizontal-margin": "Величина горизонтального отступа", + "horizontal-margin-required": "Величина горизонтального отступа обязательна.", + "min-horizontal-margin-message": "Минимальная величина горизонтального отступа - 0.", + "max-horizontal-margin-message": "Максимальная величина горизонтального отступа - 50.", + "vertical-margin": "Величина вертикального отступа", + "vertical-margin-required": "Величина вертикального отступа обязательна.", + "min-vertical-margin-message": "Минимальная величина вертикального отступа - 0.", + "max-vertical-margin-message": "Максимальная величина вертикального отступа - 50.", + "display-title": "Показать название дашборда", + "title-color": "Цвет названия", + "display-device-selection": "Показать выборку устройств", + "display-dashboard-timewindow": "Показать временное окно", + "display-dashboard-export": "Показать экспорт", + "import": "Импортировать дашборд", + "export": "Экспортировать дашборд", + "export-failed-error": "Не удалось экспортировать дашборд: {{error}}", + "create-new-dashboard": "Создать новый дашборд", + "dashboard-file": "Файл дашборда", + "invalid-dashboard-file-error": "Не удалось импортировать дашборд: неизвестная схема данных дашборда.", + "dashboard-import-missing-aliases-title": "Конфигурировать псевдонимы импортированного дашборда", + "create-new-widget": "Создать новый виджет", + "import-widget": "Импортировать новый виджет", + "widget-file": "Файл виджета", + "invalid-widget-file-error": "Не удалось импортировать виджет: неизвестная схема данных виджета.", + "widget-import-missing-aliases-title": "Конфигурировать псевдонимы импортированного виджета", + "open-toolbar": "Открыть панель инструментов", + "close-toolbar": "Закрыть панель инструментов", + "configuration-error": "Ошибка конфигурирования", + "alias-resolution-error-title": "Ошибка конфигурирования псевдонимов дашборда", + "invalid-aliases-config": "Не удалось найти устройства, соответствующие фильтру псевдонимов.
Пожалуйста, свяжитесь с администратором для устранения этой проблемы.", + "select-devices": "Выберите устройства", + "assignedToCustomer": "Прикреплен к клиенту", + "public": "Общедоступный", + "public-link": "Общедоступная ссылка", + "copy-public-link": "Скопировать общедоступную ссылку", + "public-link-copied-message": "Общедоступная ссылка на дашборд скопирована в буфер обмена", + "manage-states": "Manage dashboard states", + "states": "Dashboard states", + "search-states": "Search dashboard states", + "selected-states": "{ count, select, 1 {1 dashboard state} other {# dashboard states} } selected", + "edit-state": "Edit dashboard state", + "delete-state": "Delete dashboard state", + "add-state": "Add dashboard state", + "state": "Dashboard state", + "state-name": "Name", + "state-name-required": "Dashboard state name is required.", + "state-id": "State Id", + "state-id-required": "Dashboard state id is required.", + "state-id-exists": "Dashboard state with the same id is already exists.", + "is-root-state": "Root state", + "delete-state-title": "Delete dashboard state", + "delete-state-text": "Are you sure you want delete dashboard state with name '{{stateName}}'?", + "show-details": "Show details", + "hide-details": "Hide details", + "select-state": "Select target state", + "state-controller": "State controller" + }, + "datakey": { + "settings": "Настройки", + "advanced": "Дополнительно", + "label": "Метка", + "color": "Цвет", + "units": "Special symbol to show next to value", + "decimals": "Number of digits after floating point", + "data-generation-func": "Функция генерации данных", + "use-data-post-processing-func": "Использовать функцию пост-обработки данных", + "configuration": "Конфигурация ключа данных", + "timeseries": "Выборка по времени", + "attributes": "Атрибуты", + "timeseries-required": "Выборка по времени обязательна.", + "timeseries-or-attributes-required": "Выборка по времени/атрибуты обязательны.", + "maximum-timeseries-or-attributes": "Maximum { count, select, 1 {1 timeseries/attribute is allowed.} other {# timeseries/attributes are allowed} }", + "alarm-fields-required": "Alarm fields are required.", + "function-types": "Тип функции", + "function-types-required": "Тип функции обязателен.", + "maximum-function-types": "Maximum { count, select, 1 {1 function type is allowed.} other {# function types are allowed} }" + }, + "datasource": { + "type": "Тип источника данных", + "add-datasource-prompt": "Пожалуйста, добавьте источник данных" + }, + "details": { + "edit-mode": "Режим редактирования", + "toggle-edit-mode": "Режим редактирования" + }, + "device": { + "device": "Устройство", + "device-required": "Устройство обязательно.", + "devices": "Устройства", + "management": "Управление устройствами", + "view-devices": "Просмотреть устройства", + "device-alias": "Псевдоним устройства", + "aliases": "Псевдонимы устройства", + "no-alias-matching": "'{{alias}}' не найден.", + "no-aliases-found": "Псевдонимы не найдены.", + "no-key-matching": "'{{key}}' не найден.", + "no-keys-found": "Ключи не найдены.", + "create-new-alias": "Создать новый!", + "create-new-key": "Создать новый!", + "duplicate-alias-error": "Найден дублирующийся псевдоним '{{alias}}'.
В рамках дашборда псевдонимы устройств должны быть уникальными.", + "configure-alias": "Конфигурировать '{{alias}}' псевдоним", + "no-devices-matching": "Устройство '{{entity}}' не найдено.", + "alias": "Псевдоним", + "alias-required": "Псевдоним устройства обязателен.", + "remove-alias": "Удалить псевдоним устройства", + "add-alias": "Добавить псевдоним устройства", + "name-starts-with": "Название начинается с", + "device-list": "Список устройств", + "use-device-name-filter": "Использовать фильтр", + "device-list-empty": "Устройства не выбраны.", + "device-name-filter-required": "Фильтр названия устройства обязателен.", + "device-name-filter-no-device-matched": "Устройства, названия которых начинаются с '{{device}}', не найдены.", + "add": "Добавить устройство", + "assign-to-customer": "Присвоить клиенту", + "assign-device-to-customer": "Присвоить устройство(а) клиенту", + "assign-device-to-customer-text": "Пожалуйста, выберите устройства, которые нужно присвоить клиенту", + "make-public": "Открыть общий доступ к устройству", + "make-private": "Закрыть общий доступ к устройству", + "no-devices-text": "Устройства не найдены", + "assign-to-customer-text": "Пожалуйста, выберите клиента, которому нужно присвоить устройство(а)", + "device-details": "Подробности об устройстве", + "add-device-text": "Добавить новое устройство", + "credentials": "Учетные данные", + "manage-credentials": "Управление учетными данными", + "delete": "Удалить устройство", + "assign-devices": "Присвоить устройство", + "assign-devices-text": "Присвоить { count, plural, one {1 устройство} few {# устройства} other {# устройств} } клиенту", + "delete-devices": "Удалить устройства", + "unassign-from-customer": "Отменить присвоение клиенту", + "unassign-devices": "Отменить присвоение устройств", + "unassign-devices-action-title": "Отменить присвоение { count, plural, one {1 устройства} few {# устройств} other {# устройств} } клиенту", + "assign-new-device": "Присвоить новое устройство", + "make-public-device-title": "Вы точно хотите открыть общий доступ к устройству '{{deviceName}}'?", + "make-public-device-text": "После подтверждения устройство и все связанные с ним данные будут общедоступными.", + "make-private-device-title": "Вы точно хотите закрыть общий доступ к устройству '{{deviceName}}'", + "make-private-device-text": "После подтверждения устройство и все связанные с ним данные будут закрыты для общего доступа.", + "view-credentials": "Просмотреть учетные данные", + "delete-device-title": "Вы точно хотите удалить устройство '{{deviceName}}'?", + "delete-device-text": "Внимание, после подтверждения устройство и все связанные с ним данные будут безвозвратно утеряны.", + "delete-devices-title": "Вы точно хотите удалить { count, plural, one {1 устройство} few {# устройства} other {# устройств} }?", + "delete-devices-action-title": "Удалить { count, plural, one {1 устройство} few {# устройства} other {# устройств} } }", + "delete-devices-text": "Внимание, после подтверждения выбранные устройства и все связанные с ними данные будут безвозвратно утеряны..", + "unassign-device-title": "Вы точно хотите отменить присвоение устройства '{{deviceName}}'?", + "unassign-device-text": "После подтверждения устройство будет недоступно клиенту.", + "unassign-device": "Отменить присвоение устройства", + "unassign-devices-title": "Вы точно хотите отменить присвоение { count, plural, one {1 устройство} few {# устройства} other {# устройств} } }?", + "unassign-devices-text": "После подтверждения выбранные устройства будут недоступны клиенту.", + "device-credentials": "Учетные данные устройства", + "credentials-type": "Тип учетных данных", + "access-token": "Токен", + "access-token-required": "Токен обязателен.", + "access-token-invalid": "Длина токена должна быть от 1 до 20 символов.", + "rsa-key": "Открытый ключ RSA", + "rsa-key-required": "Открытый ключ RSA обязателен.", + "secret": "Секрет", + "secret-required": "Секрет обязателен.", + "name": "Название", + "name-required": "Название обязательно.", + "description": "Описание", + "events": "События", + "details": "Подробности", + "copyId": "Копировать идентификатор устройства", + "copyAccessToken": "Копировать токен", + "idCopiedMessage": "Идентификатор устройства скопирован в буфер обмена", + "accessTokenCopiedMessage": "Токен устройства скопирован в буфер обмена", + "assignedToCustomer": "Присвоен клиенту", + "unable-delete-device-alias-title": "Не удалось удалить псевдоним устройства", + "unable-delete-device-alias-text": "Не удалось удалить псевдоним '{{deviceAlias}}' устройства, т.к. он используется следующими виджетами:
{{widgetsList}}", + "is-gateway": "Гейтвей", + "public": "Общедоступный", + "device-public": "Устройство общедоступно" + }, + "dialog": { + "close": "Закрыть диалог" + }, + "error": { + "unable-to-connect": "Не удалось подключиться к серверу! Пожалуйста, проверьте интернет-соединение.", + "unhandled-error-code": "Код необработанной ошибки: {{errorCode}}", + "unknown-error": "Неизвестная ошибка" + }, + "entity": { + "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):
{{widgetsList}}", + "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
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": "Тип события", + "type-error": "Ошибка", + "type-lc-event": "Событие жизненного цикла", + "type-stats": "Статистика", + "type-debug-rule-node": "Debug", + "type-debug-rule-chain": "Debug", + "no-events-prompt": "События не найдены", + "error": "Ошибка", + "alarm": "Аварийное оповещение", + "event-time": "Время возникновения события", + "server": "Сервер", + "body": "Тело", + "method": "Метод", + "type": "Type", + "entity": "Entity", + "message-id": "Message Id", + "message-type": "Message Type", + "data-type": "Data Type", + "relation-type": "Relation Type", + "metadata": "Metadata", + "data": "Data", + "event": "Событие", + "status": "Статус", + "success": "Успех", + "failed": "Неудача", + "messages-processed": "Сообщения обработаны", + "errors-occurred": "Возникли ошибки" + }, + "extension": { + "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": "Во весь экран", + "exit": "Выйти из полноэкранного режима", + "toggle": "Во весь экран", + "fullscreen": "Полноэкранный режим" + }, + "function": { + "function": "Функция" + }, + "grid": { + "delete-item-title": "Вы точно хотите удалить этот объект?", + "delete-item-text": "Внимание, после подтверждения объект и все связанные с ним данные будут безвозвратно утеряны.", + "delete-items-title": "Вы точно хотите удалить { count, plural, one {1 объект} few {# объекта} other {# объектов} }?", + "delete-items-action-title": "Удалить { count, plural, one {1 объект} few {# объекта} other {# объектов}", + "delete-items-text": "Внимание, после подтверждения выбранные объекты и все связанные с ними данные будут безвозвратно утеряны.", + "add-item-text": "Добавить новый объект", + "no-items-text": "Объекты не найдены", + "item-details": "Подробности об объекте", + "delete-item": "Удалить объект", + "delete-items": "Удалить объекты", + "scroll-to-top": "Прокрутка к началу" + }, + "help": { + "goto-help-page": "Перейти к справке" + }, + "home": { + "home": "Главная", + "profile": "Профиль", + "logout": "Выйти из системы", + "menu": "Меню", + "avatar": "Аватар", + "open-user-menu": "Открыть меню пользователя" + }, + "import": { + "no-file": "Файл не выбран", + "drop-file": "Перетащите JSON файл или кликните для выбора файла." + }, + "item": { + "selected": "Выбранные" + }, + "js-func": { + "no-return-error": "Функция должна возвращать значение!", + "return-type-mismatch": "Функция должна возвращать значение типа '{{type}}'!", + "tidy": "Tidy" + }, + "key-val": { + "key": "Key", + "value": "Value", + "remove-entry": "Remove entry", + "add-entry": "Add entry", + "no-data": "No entries" + }, + "layout": { + "layout": "Layout", + "manage": "Manage layouts", + "settings": "Layout settings", + "color": "Color", + "main": "Main", + "right": "Right", + "select": "Select target layout" + }, + "legend": { + "position": "Расположение легенды", + "show-max": "Показать максимальное значение", + "show-min": "Показать минимальное значение", + "show-avg": "Показать среднее значение", + "show-total": "Показать сумму", + "settings": "Настройки легенды", + "min": "Мин", + "max": "Макс", + "avg": "Среднее", + "total": "Сумма" + }, + "login": { + "login": "Войти", + "request-password-reset": "Запрос на сброс пароля", + "reset-password": "Сбросить пароль", + "create-password": "Создать пароль", + "passwords-mismatch-error": "Введенные пароли должны быть одинаковыми!", + "password-again": "Введите пароль еще раз", + "sign-in": "Пожалуйста, войдите в систему", + "username": "Имя пользователя (эл. адрес)", + "remember-me": "Запомнить меня", + "forgot-password": "Забыли пароль?", + "password-reset": "Пароль сброшен", + "new-password": "Новый пароль", + "new-password-again": "Повторите новый пароль", + "password-link-sent-message": "Ссылка для сброса пароля была успешно отправлена!", + "email": "Эл. адрес" + }, + "position": { + "top": "Верх", + "bottom": "Низ", + "left": "Левый край", + "right": "Правый край" + }, + "profile": { + "profile": "Профиль", + "change-password": "Изменить пароль", + "current-password": "Текущий пароль" + }, + "relation": { + "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": { + "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": { + "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": "Владельцы", + "management": "Управление владельцами", + "add": "Добавить владельца", + "admins": "Администраторы", + "manage-tenant-admins": "Управление администраторами владельца", + "delete": "Удалить владельца", + "add-tenant-text": "Добавить нового владельца", + "no-tenants-text": "Владельцы не найдены", + "tenant-details": "Подробности об владельце", + "delete-tenant-title": "Вы точно хотите удалить владельца '{{tenantTitle}}'?", + "delete-tenant-text": "Внимание, после подтверждения владелец и все связанные с ним данные будут безвозвратно утеряны.", + "delete-tenants-title": "Вы точно хотите удалить { count, plural, one {1 владельца} other {# владельцев} }?", + "delete-tenants-action-title": "Удалить { count, plural, one {1 владельца} other {# владельцев} }", + "delete-tenants-text": "Внимание, после подтверждения выбранные Владельцы и все связанные с ними данные будут безвозвратно утеряны.", + "title": "Имя", + "title-required": "Имя обязательно.", + "description": "Описание" + }, + "timeinterval": { + "seconds-interval": "{ seconds, plural, one {1 секунда} few {# секунды} other {# секунд} }", + "minutes-interval": "{ minutes, plural, one {1 минута} few {# минуты} other {# минут} }", + "hours-interval": "{ hours, plural, one {1 час} few {# часа} other {# часов} }", + "days-interval": "{ days, plural, one {1 день} few {# дня} other {# дней} }", + "days": "Дни", + "hours": "Часы", + "minutes": "Минуты", + "seconds": "Секунды", + "advanced": "Дополнительно" + }, + "timewindow": { + "days": "{ days, plural, one {1 день} few {# дня} other {# дней} }", + "hours": "{ hours, plural, one {1 час} few {# часа} other {# часов} }", + "minutes": "{ minutes, plural, one {1 минута} few {# минуты} other {# минут} }", + "seconds": "{ seconds, plural, one {1 секунда} few {# секунды} other {# секунд} }", + "realtime": "Режим реального времени", + "history": "История", + "last-prefix": "Последние", + "period": "с {{ startTime }} до {{ endTime }}", + "edit": "Изменить временное окно", + "date-range": "Диапазон дат", + "last": "Последние", + "time-period": "Период времени" + }, + "user": { + "users": "Пользователи", + "customer-users": "Пользователи клиента", + "tenant-admins": "Администраторы владельца", + "sys-admin": "Системный администратор", + "tenant-admin": "Администратор владельца", + "customer": "Клиент", + "anonymous": "Аноним", + "add": "Добавить пользователя", + "delete": "Удалить пользователя", + "add-user-text": "Добавить нового пользователя", + "no-users-text": "Пользователи не найдены", + "user-details": "Подробности о пользователе", + "delete-user-title": "Вы точно хотите удалить пользователя '{{userEmail}}'?", + "delete-user-text": "Внимание, после подтверждения пользователь и все связанные с ним данные будут безвозвратно утеряны.", + "delete-users-title": "Вы точно хотите удалить { count, plural, one {1 пользователя} other {# пользователей} }?", + "delete-users-action-title": "Удалить { count, plural, one {1 пользователя} other {# пользователей} }", + "delete-users-text": "Внимание, после подтверждения выбранные пользователи и все связанные с ними данные будут безвозвратно утеряны.", + "activation-email-sent-message": "Активационное письмо успешно отправлено!", + "resend-activation": "Повторить отправку активационного письма", + "email": "Эл. адрес", + "email-required": "Эл. адрес обязателен.", + "first-name": "Имя", + "last-name": "Фамилия", + "description": "Описание", + "default-dashboard": "Дашборд по умолчанию", + "always-fullscreen": "Всегда во весь экран" + }, + "value": { + "type": "Тип значения", + "string": "Строка", + "string-value": "Строковое значение", + "integer": "Целое число", + "integer-value": "Целочисленное значение", + "invalid-integer-value": "Неправильный формат целого числа", + "double": "Число двойной точности", + "double-value": "Значение двойной точности", + "boolean": "Логический тип", + "boolean-value": "Логическое значение", + "false": "Ложь", + "true": "Правда" + }, + "widget": { + "widget-library": "Галерея виджетов", + "widget-bundle": "Набор виджетов", + "select-widgets-bundle": "Выберите набор виджетов", + "management": "Управление виджетами", + "editor": "Редактор виджетов", + "widget-type-not-found": "Ошибка при загрузке конфигурации виджета.
Возможно, связанный с ней\n тип виджета уже удален.", + "widget-type-load-error": "Не удалось загрузить виджет по следующим причинам:", + "remove": "Удалить виджет", + "edit": "Редактировать виджет", + "remove-widget-title": "Вы точно хотите удалить виджет '{{widgetTitle}}'?", + "remove-widget-text": "Внимание, после подтверждения виджет и все связанные с ним данные будут безвозвратно утеряны.", + "timeseries": "Выборка по времени", + "latest-values": "Последние значения", + "rpc": "Управляющий виджет", + "static": "Статический виджет", + "select-widget-type": "Выберите тип виджета", + "missing-widget-title-error": "Укажите название виджета!", + "widget-saved": "Виджет сохранен", + "unable-to-save-widget-error": "Не удалось сохранить виджет! Виджет содержит ошибки!", + "save": "Сохранить виджет", + "saveAs": "Сохранить виджет как", + "save-widget-type-as": "Сохранить тип виджета как", + "save-widget-type-as-text": "Пожалуйста, введите название виджета и/или укажите целевой набор виджетов", + "toggle-fullscreen": "Во весь экран", + "run": "Запустить виджет", + "title": "Название виджета", + "title-required": "Название виджета обязательно.", + "type": "Тип виджета", + "resources": "Ресурсы", + "resource-url": "JavaScript/CSS URL", + "remove-resource": "Удалить ресурс", + "add-resource": "Добавить ресурс", + "html": "HTML", + "tidy": "Форматировать", + "css": "CSS", + "settings-schema": "Схема конфигурации", + "datakey-settings-schema": "Схема конфигурации ключа данных", + "javascript": "Javascript", + "remove-widget-type-title": "Вы точно хотите удалить виджет '{{widgetName}}'?", + "remove-widget-type-text": "Внимание, после подтверждения тип виджета и все связанные с ним данные будут безвозвратно утеряны.", + "remove-widget-type": "Удалить тип виджета", + "add-widget-type": "Добавить новый тип виджета", + "widget-type-load-failed-error": "Не удалось загрузить тип виджета!", + "widget-template-load-failed-error": "Не удалось загрузить шаблон виджета!", + "add": "Добавить виджет", + "undo": "Откатить изменения в виджете", + "export": "Экспортировать виджет" + }, + "widget-action": { + "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": "Текущий набор", + "widgets-bundles": "Наборы виджетов", + "add": "Добавить набор виджетов", + "delete": "Удалить набор виджетов", + "title": "Название", + "title-required": "Название обязательно.", + "add-widgets-bundle-text": "Добавить новый набор виджетов", + "no-widgets-bundles-text": "Наборы виджетов не найдены", + "empty": "Пустой набор виджетов", + "details": "Подробности", + "widgets-bundle-details": "Подробности о наборе виджетов", + "delete-widgets-bundle-title": "Вы точно хотите удалить набор виджетов '{{widgetsBundleTitle}}'?", + "delete-widgets-bundle-text": "Внимание, после подтверждения набор виджетов и все связанные с ним данные будут безвозвратно утеряны.", + "delete-widgets-bundles-title": "Вы точно хотите удалить { count, plural, one {1 набор виджетов} few {# набора виджетов} other {# наборов виджетов} }?", + "delete-widgets-bundles-action-title": "Удалить { count, plural, one {1 набор виджетов} few {# набора виджетов} other {# наборов виджетов} }", + "delete-widgets-bundles-text": "Внимание, после подтверждения выбранные наборы виджетов и все связанные с ними данные будут безвозвратно утеряны..", + "no-widgets-bundles-matching": "Набор виджетов '{{widgetsBundle}}' не найден.", + "widgets-bundle-required": "Набор виджетов обязателен.", + "system": "Системный", + "import": "Импортировать набор виджетов", + "export": "Экспортировать набор виджетов", + "export-failed-error": "Не удалось экспортировать набор виджетов: {{error}}", + "create-new-widgets-bundle": "Создать новый набор виджетов", + "widgets-bundle-file": "Файл набора виджетов", + "invalid-widgets-bundle-file-error": "Не удалось импортировать набор виджетов: неизвестная схема данных набора виджетов." + }, + "widget-config": { + "data": "Данные", + "settings": "Настройки", + "advanced": "Дополнительно", + "title": "Название", + "general-settings": "Общие настройки", + "display-title": "Показать название", + "drop-shadow": "Тень", + "enable-fullscreen": "Во весь экран", + "background-color": "Цвет фона", + "text-color": "Цвет текста", + "padding": "Отступ", + "title-style": "Стиль названия", + "mobile-mode-settings": "Настройки мобильного режима", + "order": "Порядок", + "height": "Высота", + "units": "Специальный символ после значения", + "decimals": "Количество цифр после запятой", + "timewindow": "Временное окно", + "use-dashboard-timewindow": "Использовать временное окно дашборда", + "display-legend": "Показать легенду", + "datasources": "Источники данных", + "datasource-type": "Тип", + "datasource-parameters": "Параметры", + "remove-datasource": "Удалить источник данных", + "add-datasource": "Добавить источник данных", + "target-device": "Целевое устройство" + }, + "widget-type": { + "import": "Импортировать тип виджета", + "export": "Экспортировать тип виджета", + "export-failed-error": "Не удалось экспортировать тип виджета: {{error}}", + "create-new-widget-type": "Создать новый тип виджета", + "widget-type-file": "Файл типа виджета", + "invalid-widget-type-file-error": "Не удалось импортировать виджет: неизвестная схема данных типа виджета." + }, + "icon": { + "icon": "Icon", + "select-icon": "Select icon", + "material-icons": "Material icons", + "show-all": "Show all icons" + }, + "custom": { + "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": "Язык", + "en_US": "Английский", + "zh_CN": "Китайский", + "ko_KR": "Корейский", + "es_ES": "Испанский", + "it_IT": "Итальянский", + "ru_RU": "Русский" + + } +} \ No newline at end of file diff --git a/ui/src/app/locale/locale.constant-zh.js b/ui/src/app/locale/locale.constant-zh.js deleted file mode 100644 index 64a5a92ac8..0000000000 --- a/ui/src/app/locale/locale.constant-zh.js +++ /dev/null @@ -1,1465 +0,0 @@ -/* - * Copyright © 2016-2018 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default function addLocaleChinese(locales) { - var zh_CN = { - "access": { - "unauthorized": "未授权", - "unauthorized-access": "未授权访问", - "unauthorized-access-text": "您需要登陆才能访问这个资源!", - "access-forbidden": "禁止访问", - "access-forbidden-text": "您没有访问此位置的权限
如果您仍希望访问此位置,请尝试使用其他用户登录。", - "refresh-token-expired": "会话已过期", - "refresh-token-failed": "无法刷新会话" - }, - "action": { - "activate": "激活", - "suspend": "暂停", - "save": "保存", - "saveAs": "另存为", - "cancel": "取消", - "ok": "确定", - "delete": "删除", - "add": "添加", - "yes": "是", - "no": "否", - "update": "更新", - "remove": "移除", - "search": "查询", - "clear-search": "清除查询", - "assign": "分配", - "unassign": "取消分配", - "share": "分享", - "make-private": "私有", - "apply": "应用", - "apply-changes": "应用更改", - "edit-mode": "编辑模式", - "enter-edit-mode": "进入编辑模式", - "decline-changes": "撤销更改", - "close": "关闭", - "back": "后退", - "run": "运行", - "sign-in": "登录!", - "edit": "编辑", - "view": "查看", - "create": "创建", - "drag": "拖拽", - "refresh": "刷新", - "undo": "撤销", - "copy": "复制", - "paste": "粘贴", - "copy-reference": "复制引用", - "paste-reference": "粘贴引用", - "import": "导入", - "export": "导出", - "share-via": "通过 {{provider}}分享" - }, - "aggregation": { - "aggregation": "聚合", - "function": "数据聚合功能", - "limit": "最大值", - "group-interval": "分组间隔", - "min": "最少值", - "max": "最大值", - "avg": "平均值", - "sum": "求和", - "count": "计数", - "none": "空" - }, - "admin": { - "general": "常规", - "general-settings": "常规设置", - "outgoing-mail": "发送邮件", - "outgoing-mail-settings": "发送邮件设置", - "system-settings": "系统设置", - "test-mail-sent": "测试邮件发送成功!", - "base-url": "基本URL", - "base-url-required": "基本URL必填。", - "mail-from": "邮件来自", - "mail-from-required": "邮件发件人必填。", - "smtp-protocol": "SMTP协议", - "smtp-host": "SMTP主机", - "smtp-host-required": "SMTP主机必填。", - "smtp-port": "SMTP端口", - "smtp-port-required": "您必须提供一个smtp端口。", - "smtp-port-invalid": "这看起来不是有效的smtp端口。", - "timeout-msec": "超时(ms)", - "timeout-required": "超时必填。", - "timeout-invalid": "这看起来不像有效的超时值。", - "enable-tls": "启用TLS", - "send-test-mail": "发送测试邮件" - }, - "alarm": { - "alarm": "警告", - "alarms": "警告", - "select-alarm": "选择警告", - "no-alarms-matching": "没有找到匹配 '{{entity}}' 的警告", - "alarm-required": "警告必填", - "alarm-status": "警告状态", - "search-status": { - "ANY": "所有", - "ACTIVE": "已激活", - "CLEARED": "已清除", - "ACK": "已应答", - "UNACK": "未应答" - }, - "display-status": { - "ACTIVE_UNACK": "激活未应答", - "ACTIVE_ACK": "激活已应答", - "CLEARED_UNACK": "清除未应答", - "CLEARED_ACK": "清除已应答" - }, - "no-alarms-prompt": "未发现警告", - "created-time": "创建时间", - "type": "类型", - "severity": "严重程度", - "originator": "起因", - "originator-type": "起因类型", - "details": "详情", - "status": "状态", - "alarm-details": "警告详情", - "start-time": "开始时间", - "end-time": "结束时间", - "ack-time": "应答时间", - "clear-time": "创建时间", - "severity-critical": "危险", - "severity-major": "重要", - "severity-minor": "次要", - "severity-warning": "警告", - "severity-indeterminate": "不确定", - "acknowledge": "应答", - "clear": "清除", - "search": "搜索警告", - "selected-alarms": "已选择 { count, select, 1 {1 警告} other {# 警告} } ", - "no-data": "无数据显示", - "polling-interval": "警告轮询间隔(秒)", - "polling-interval-required": "警告轮询间隔必填。", - "min-polling-interval-message": "轮询间隔至少是1秒。", - "aknowledge-alarms-title": "应答 { count, select, 1 {1 警告} other {# 警告} }", - "aknowledge-alarms-text": "确定要应答 { count, select, 1 {1 警告} other {# 警告} }?", - "clear-alarms-title": "清除 { count, select, 1 {1 警告} other {# 警告} }", - "clear-alarms-text": "确定要清除 { count, select, 1 {1 警告} other {# 警告} }?" - }, - "alias": { - "add": "添加别名", - "edit": "编辑别名", - "name": "别名", - "name-required": "别名必填", - "duplicate-alias": "别名已经存在。", - "filter-type-single-entity": "单个实体", - "filter-type-entity-list": "实体列表", - "filter-type-entity-name": "实体名称", - "filter-type-state-entity": "实体(仪表板状态)", - "filter-type-state-entity-description": "实体令牌(仪表板状态参数)", - "filter-type-asset-type": "资产类型", - "filter-type-asset-type-description": "类型为 '{{assetType}}' 的资产", - "filter-type-asset-type-and-name-description": "类型为 '{{assetType}}' 且以 '{{prefix}}' 开头的资产", - "filter-type-device-type": "设备类型", - "filter-type-device-type-description": "类型为 '{{deviceType}}' 的设备", - "filter-type-device-type-and-name-description": "类型为 '{{deviceType}}' 且以 '{{prefix}}' 开头的设备", - "filter-type-relations-query": "关系查询", - "filter-type-relations-query-description": "具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的 {{entities}} ", - "filter-type-asset-search-query": "资产搜索查询", - "filter-type-asset-search-query-description": "类型为 {{assetTypes}} 且具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的资产", - "filter-type-device-search-query": "设备搜索查询", - "filter-type-device-search-query-description": "类型为 {{deviceTypes}} 且具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的设备", - "entity-filter": "实体过滤", - "resolve-multiple": "解决为多实体", - "filter-type": "过滤类型", - "filter-type-required": "过滤类型必填。", - "entity-filter-no-entity-matched": "未找到符合指定过滤条件的实体。", - "no-entity-filter-specified": "没有指定实体过滤条件", - "root-state-entity": "使用仪表板状态实体作为根实体", - "root-entity": "根实体", - "state-entity-parameter-name": "状态实体参数名称", - "default-state-entity": "默认状态实体", - "default-entity-parameter-name": "默认", - "max-relation-level": "最大关系层级", - "unlimited-level": "不限层级", - "state-entity": "仪表板状态实体", - "all-entities": "所有实体", - "any-relation": "不限" - }, - "asset": { - "asset": "资产", - "assets": "资产", - "management": "资产管理", - "view-assets": "查看资产", - "add": "添加资产", - "assign-to-customer": "分配给客户", - "assign-asset-to-customer": "将资产分配给客户", - "assign-asset-to-customer-text": "请选择要分配给客户的资产", - "no-assets-text": "未找到资产", - "assign-to-customer-text": "请选择客户以分配资产", - "public": "公开", - "assignedToCustomer": "分配客户", - "make-public": "资产设为公开", - "make-private": "资产设为私有", - "unassign-from-customer": "取消分配客户", - "delete": "删除资产", - "asset-public": "资产公开", - "asset-type": "资产类型", - "asset-type-required": "资产类型必填。", - "select-asset-type": "选择资产类型", - "enter-asset-type": "输入资产类型", - "any-asset": "任何资产", - "no-asset-types-matching": "没有找到匹配 '{{entitySubtype}}' 的资产类型。", - "asset-type-list-empty": "资产类型未选择。", - "asset-types": "资产类型", - "name": "名称", - "name-required": "名称必填。", - "description": "描述", - "type": "类型", - "type-required": "类型必填。", - "details": "详情", - "events": "事件", - "add-asset-text": "添加新资产", - "asset-details": "资产详情", - "assign-assets": "分配资产", - "assign-assets-text": "分配 { count, select, 1 {1 资产} other {# 资产} } 给客户", - "delete-assets": "删除资产", - "unassign-assets": "取消分配资产", - "unassign-assets-action-title": "从客户处取消分配 { count, select, 1 {1 资产} other {# 资产} } ", - "assign-new-asset": "分配新资产", - "delete-asset-title": "确定要删除资产 '{{assetName}}'?", - "delete-asset-text": "小心!确认后资产及其所有相关数据将不可恢复。", - "delete-assets-title": "确定要删除 { count, select, 1 {1 资产} other {# 资产} }?", - "delete-assets-action-title": "删除 { count, select, 1 {1 资产} other {# 资产} }", - "delete-assets-text": "小心,确认后,所有选定的资产将被删除,所有相关的数据将变得不可恢复。", - "make-public-asset-title": "你确定你想创建公开'{{assetName}}'资产?", - "make-public-asset-text": "确认后,资产及其所有数据将被公开并被他人访问。", - "make-private-asset-title": "你确定你想创建私有 '{{assetName}}' 资产?", - "make-private-asset-text": "确认后,资产及其所有数据将被私有化,无法被他人访问。", - "unassign-asset-title": "您确定要取消对'{{assetName}}'资产的分配吗?", - "unassign-asset-text": "确认后,资产将未分配,客户无法访问。", - "unassign-asset": "未分配资产", - "unassign-assets-title": "您确定要取消分配 { count, select, 1 {1 资产} other {# 资产} }吗?", - "unassign-assets-text": "确认后,所有选定的资产将被分配,客户无法访问。", - "copyId": "复制资产ID", - "idCopiedMessage": "资产ID已经复制到粘贴板", - "select-asset": "选择资产", - "no-assets-matching": "没有找到匹配 '{{entity}}' 的资产。", - "asset-required": "资产必填", - "name-starts-with": "资产名称以此开头" - }, - "attribute": { - "attributes": "属性", - "latest-telemetry": "最新遥测", - "attributes-scope": "设备属性范围", - "scope-latest-telemetry": "最新遥测", - "scope-client": "客户端属性", - "scope-server": "服务端属性", - "scope-shared": "共享属性", - "add": "添加属性", - "key": "键", - "last-update-time": "最后更新时间", - "key-required": "属性键必填。", - "value": "值", - "value-required": "属性值必填。", - "delete-attributes-title": "您确定要删除 { count, select, 1 {1 属性} other {# 属性} }吗?", - "delete-attributes-text": "注意,确认后所有选中的属性都会被删除。", - "delete-attributes": "删除属性", - "enter-attribute-value": "输入属性值", - "show-on-widget": "在部件上显示", - "widget-mode": "部件模式", - "next-widget": "下一个部件", - "prev-widget": "上一个部件", - "add-to-dashboard": "添加到仪表板", - "add-widget-to-dashboard": "将部件添加到仪表板", - "selected-attributes": "{ count, select, 1 {1 属性} other {# 属性} } 被选中", - "selected-telemetry": "{ count, select, 1 {1 遥测} other {# 遥测} } 被选中" - }, - "audit-log": { - "audit": "审计", - "audit-logs": "审计日志", - "timestamp": "时间戳", - "entity-type": "实体类型", - "entity-name": "实体名称", - "user": "用户", - "type": "类型", - "status": "状态", - "details": "详情", - "type-added": "添加", - "type-deleted": "删除", - "type-updated": "更新", - "type-attributes-updated": "更新属性", - "type-attributes-deleted": "删除属性", - "type-rpc-call": "RPC调用", - "type-credentials-updated": "更新凭证", - "type-assigned-to-customer": "分配给客户", - "type-unassigned-from-customer": "未分配给客户", - "type-activated": "激活", - "type-suspended": "暂停", - "type-credentials-read": "读取凭证", - "type-attributes-read": "读取属性", - "status-success": "成功", - "status-failure": "失败", - "audit-log-details": "审计日志详情", - "no-audit-logs-prompt": "找不到日志", - "action-data": "活动数据", - "failure-details": "失败详情", - "search": "查找审计日志", - "clear-search": "清空查找" - }, - "confirm-on-exit": { - "message": "您有未保存的更改。确定要离开此页吗?", - "html-message": "您有未保存的更改。
确定要离开此页面吗?", - "title": "未保存的更改" - }, - "contact": { - "country": "国家", - "city": "城市", - "state": "州", - "postal-code": "邮政编码", - "postal-code-invalid": "只允许数字。", - "address": "地址", - "address2": "地址2", - "phone": "手机", - "email": "邮箱", - "no-address": "无地址" - }, - "common": { - "username": "用户名", - "password": "密码", - "enter-username": "输入用户名", - "enter-password": "输入密码", - "enter-search": "输入检索条件" - }, - "content-type": { - "json": "Json", - "text": "Text", - "binary": "Binary (Base64)" - }, - "customer": { - "customer": "客户", - "customers": "客户", - "management": "客户管理", - "dashboard": "客户仪表板", - "dashboards": "客户仪表板", - "devices": "客户设备", - "assets": "客户资产", - "public-dashboards": "公共仪表板", - "public-devices": "公共设备", - "public-assets": "公共资产", - "add": "添加客户", - "delete": "删除客户", - "manage-customer-users": "管理客户用户", - "manage-customer-devices": "管理客户设备", - "manage-customer-dashboards": "管理客户仪表板", - "manage-public-devices": "管理公共设备", - "manage-public-dashboards": "管理公共仪表板", - "manage-customer-assets": "管理客户资产", - "manage-public-assets": "管理公共资产", - "add-customer-text": "添加新客户", - "no-customers-text": "没有找到客户", - "customer-details": "客户详情", - "delete-customer-title": "您确定要删除客户'{{customerTitle}}'吗?", - "delete-customer-text": "小心!确认后,客户及其所有相关数据将不可恢复。", - "delete-customers-title": "您确定要删除 { count, select, 1 {1 客户} other {# 客户} }吗?", - "delete-customers-action-title": "删除 { count, select, 1 {1 客户} other {# 客户} }", - "delete-customers-text": "小心!确认后,所有选定的客户将被删除,所有相关数据将不可恢复。", - "manage-users": "管理用户", - "manage-assets": "管理资产", - "manage-devices": "管理设备", - "manage-dashboards": "管理仪表板", - "title": "标题", - "title-required": "需要标题", - "description": "描述", - "details": "详情", - "events": "事件", - "copyId": "复制客户ID", - "idCopiedMessage": "客户ID已复制到粘贴板", - "select-customer": "选择客户", - "no-customers-matching": "没有找到匹配 '{{entity}}' 的客户。", - "customer-required": "客户是必选项", - "select-default-customer": "选择默认的客户", - "default-customer": "默认客户", - "default-customer-required": "为了调试租户级别上的仪表板,需要默认客户。" - }, - "datetime": { - "date-from": "日期从", - "time-from": "时间从", - "date-to": "日期到", - "time-to": "时间到" - }, - "dashboard": { - "dashboard": "仪表板", - "dashboards": "仪表板库", - "management": "仪表板管理", - "view-dashboards": "查看仪表板", - "add": "添加仪表板", - "assign-dashboard-to-customer": "将仪表板分配给客户", - "assign-dashboard-to-customer-text": "请选择要分配给客户的仪表板", - "assign-to-customer-text": "请选择客户分配仪表板", - "assign-to-customer": "分配给客户", - "unassign-from-customer": "取消分配客户", - "make-public": "仪表板设为公开", - "make-private": "仪表板设为私有", - "manage-assigned-customers": "管理已分配的客户", - "assigned-customers": "已分配的客户", - "assign-to-customers": "将仪表板分配给客户", - "assign-to-customers-text": "请选择客户指定仪表板", - "unassign-from-customers": "客户未分配仪表板", - "unassign-from-customers-text": "请选择从仪表板中取消分配的客户", - "no-dashboards-text": "没有找到仪表板", - "no-widgets": "没有配置部件", - "add-widget": "添加新的部件", - "title": "标题", - "select-widget-title": "选择部件", - "select-widget-subtitle": "可用的部件类型列表", - "delete": "删除仪表板", - "title-required": "需要标题。", - "description": "描述", - "details": "详情", - "dashboard-details": "仪表板详情", - "add-dashboard-text": "添加新的仪表板", - "assign-dashboards": "分配仪表板", - "assign-new-dashboard": "分配新的仪表板", - "assign-dashboards-text": "分配 { count, select, 1 {1 仪表板} other {# 仪表板} } 给客户", - "unassign-dashboards-action-text": "未分配 { count, select, 1 {1 仪表板} other {# 仪表板} } 给客户", - "delete-dashboards": "删除仪表板", - "unassign-dashboards": "取消分配仪表板", - "unassign-dashboards-action-title": "从客户处取消分配 { count, select, 1 {1 仪表板} other {# 仪表板} } ", - "delete-dashboard-title": "您确定要删除仪表板 '{{dashboardTitle}}'吗?", - "delete-dashboard-text": "小心!确认后仪表板及其所有相关数据将不可恢复。", - "delete-dashboards-title": "你确定你要删除 { count, select, 1 {1 仪表板} other {# 仪表板} }吗?", - "delete-dashboards-action-title": "删除 { count, select, 1 {1 仪表板} other {# 仪表板} }", - "delete-dashboards-text": "小心!确认后所有选定的仪表板将被删除,所有相关数据将不可恢复。", - "unassign-dashboard-title": "您确定要取消分配仪表板 '{{dashboardTitle}}'吗?", - "unassign-dashboard-text": "确认后,面板将被取消分配,客户将无法访问。", - "unassign-dashboard": "取消分配仪表板", - "unassign-dashboards-title": "您确定要取消分配仪表板 { count, select, 1 {1 仪表板} other {# 仪表板} } 吗?", - "unassign-dashboards-text": "确认后,所有选定的仪表板将被取消分配,客户将无法访问。", - "public-dashboard-title": "仪表板现已公布", - "public-dashboard-text": "你的仪表板 {{dashboardTitle}} 已被公开,可通过如下 链接访问:", - "public-dashboard-notice": "提示: 不要忘记将相关设备公开以访问其数据。", - "make-private-dashboard-title": "您确定要将仪表板 '{{dashboardTitle}}' 设为私有吗?", - "make-private-dashboard-text": "确认后,仪表板将被设为私有,不能被其他人访问。", - "make-private-dashboard": "仪表板设为私有", - "socialshare-text": "'{{dashboardTitle}}' 由Thingsboard提供支持", - "socialshare-title": "'{{dashboardTitle}}' 由Thingsboard提供支持", - "select-dashboard": "选择仪表板", - "no-dashboards-matching": "找不到符合 '{{entity}}' 的仪表板。", - "dashboard-required": "仪表板必填。", - "select-existing": "选择现有仪表板", - "create-new": "创建新的仪表板", - "new-dashboard-title": "新仪表板标题", - "open-dashboard": "打开仪表板", - "set-background": "设置背景", - "background-color": "背景颜色", - "background-image": "背景图片", - "background-size-mode": "背景大小模式", - "no-image": "无图像选择", - "drop-image": "拖拽图像或单击以选择要上传的文件。", - "settings": "设置", - "columns-count": "列数", - "columns-count-required": "需要列数。", - "min-columns-count-message": "只允许最少10列", - "max-columns-count-message": "只允许最多1000列", - "widgets-margins": "部件间边距", - "horizontal-margin": "水平边距", - "horizontal-margin-required": "需要水平边距值。", - "min-horizontal-margin-message": "只允许0作为最小水平边距值。", - "max-horizontal-margin-message": "只允许50作为最大水平边距值。", - "vertical-margin": "垂直边距", - "vertical-margin-required": "需要垂直边距值。", - "min-vertical-margin-message": "只允许0作为最小垂直边距值。", - "max-vertical-margin-message": "只允许50作为最大垂直边距值。", - "autofill-height": "自动填充布局高度", - "mobile-layout": "移动端布局设置", - "mobile-row-height": "移动端行高距(px)", - "mobile-row-height-required": "移动端行高距必填。", - "min-mobile-row-height-message": "移动端行高距至少5px。", - "max-mobile-row-height-message": "移动端行高距最多200px。", - "display-title": "显示仪表板标题", - "toolbar-always-open": "工具栏常驻", - "title-color": "标题颜色", - "display-dashboards-selection": "显示仪表板选项", - "display-entities-selection": "显示实体选项", - "display-dashboard-timewindow": "显示时间窗口", - "display-dashboard-export": "显示导出", - "import": "导入仪表板", - "export": "导出仪表板", - "export-failed-error": "无法导出仪表板: {{error}}", - "create-new-dashboard": "创建新的仪表板", - "dashboard-file": "仪表板文件", - "invalid-dashboard-file-error": "无法导入仪表板: 仪表板数据结构无效。", - "dashboard-import-missing-aliases-title": "配置导入仪表板使用的别名", - "create-new-widget": "创建新部件", - "import-widget": "导入部件", - "widget-file": "部件文件", - "invalid-widget-file-error": "无法导入窗口部件: 窗口部件数据结构无效。", - "widget-import-missing-aliases-title": "配置导入的窗口部件使用的别名", - "open-toolbar": "打开仪表板工具栏", - "close-toolbar": "关闭工具栏", - "configuration-error": "配置错误", - "alias-resolution-error-title": "仪表板别名配置错误", - "invalid-aliases-config": "无法找到与某些别名过滤器匹配的任何设备。
请联系您的管理员以解决此问题。", - "select-devices": "选择设备", - "assignedToCustomer": "分配给客户", - "public": "公共", - "public-link": "公共链接", - "copy-public-link": "复制公共链接", - "public-link-copied-message": "仪表板的公共链接已被复制到剪贴板", - "manage-states": "仪表板状态管理", - "states": "仪表板状态", - "search-states": "仪表板状态检索", - "selected-states": "{ count, select, 1 {1 仪表板状态} other {# 仪表板状态} } 选中", - "edit-state": "仪表板状态编辑", - "delete-state": "删除仪表板状态", - "add-state": "添加仪表板状态", - "state": "仪表板状态", - "state-name": "状态名", - "state-name-required": "仪表板状态名必填。", - "state-id": "状态ID", - "state-id-required": "仪表板状态ID必填。", - "state-id-exists": "仪表板状态ID已经存在。", - "is-root-state": "根状态", - "delete-state-title": "删除仪表板状态", - "delete-state-text": "确定要删除仪表板状态 '{{stateName}}' 吗?", - "show-details": "显示详情", - "hide-details": "隐藏详情", - "select-state": "选择目标状态", - "state-controller": "状态控制" - }, - "datakey": { - "settings": "设置", - "advanced": "高级", - "label": "标签", - "color": "颜色", - "units": "单位符号", - "decimals": "小数位数", - "data-generation-func": "数据生成功能", - "use-data-post-processing-func": "使用数据后处理功能", - "configuration": "数据键配置", - "timeseries": "时间序列", - "attributes": "属性", - "alarm": "报警字段", - "timeseries-required": "需要设备时间序列。", - "timeseries-or-attributes-required": "设备时间/属性必填。", - "maximum-timeseries-or-attributes": "最大允许 { count, select, 1 {1 时间序列/属性} other {# 时间序列/属性} }", - "alarm-fields-required": "警告字段必填。", - "function-types": "函数类型", - "function-types-required": "需要函数类型。", - "maximum-function-types": "至少需要 { count, select, 1 {1 函数类型} other {# 函数类型} }" - }, - "datasource": { - "type": "数据源类型", - "name": "数据源名称", - "add-datasource-prompt": "请添加数据源" - }, - "details": { - "edit-mode": "编辑模式", - "toggle-edit-mode": "切换编辑模式" - }, - "device": { - "device": "设备", - "device-required": "设备必填", - "devices": "设备", - "management": "设备管理", - "view-devices": "查看设备", - "device-alias": "设备别名", - "aliases": "设备别名", - "no-alias-matching": "'{{alias}}' 没有找到。", - "no-aliases-found": "找不到别名。", - "no-key-matching": "'{{key}}' 没有找到。", - "no-keys-found": "找不到密钥。", - "create-new-alias": "创建一个新的!", - "create-new-key": "创建一个新的!", - "duplicate-alias-error": "找到重复别名 '{{alias}}'。
设备别名必须是唯一的。", - "configure-alias": "配置 '{{alias}}' 别名", - "no-devices-matching": "找不到与 '{{entity}}' 匹配的设备。", - "alias": "别名", - "alias-required": "需要设备别名。", - "remove-alias": "删除设备别名", - "add-alias": "添加设备别名", - "name-starts-with": "名称前缀", - "device-list": "设备列表", - "use-device-name-filter": "使用过滤器", - "device-list-empty": "没有被选中的设备", - "device-name-filter-required": "设备名称过滤器必填。", - "device-name-filter-no-device-matched": "找不到以'{{device}}' 开头的设备。", - "add": "添加设备", - "assign-to-customer": "分配给客户", - "assign-device-to-customer": "将设备分配给客户", - "assign-device-to-customer-text": "请选择要分配给客户的设备", - "make-public": "公开", - "make-private": "私有", - "no-devices-text": "找不到设备", - "assign-to-customer-text": "请选择客户分配设备", - "device-details": "设备详细信息", - "add-device-text": "添加新设备", - "credentials": "凭据", - "manage-credentials": "管理凭据", - "delete": "删除设备", - "assign-devices": "分配设备", - "assign-devices-text": "将{count,select,1 {1 设备} other {# 设备}}分配给客户", - "delete-devices": "删除设备", - "unassign-from-customer": "取消分配客户", - "unassign-devices": "取消分配设备", - "unassign-devices-action-title": "从客户处取消分配{count,select,1 {1 设备} other {# 设备}}", - "assign-new-device": "分配新设备", - "make-public-device-title": "您确定要将设备 '{{deviceName}}' 设为公开吗?", - "make-public-device-text": "确认后,设备及其所有数据将被设为公开并可被其他人访问。", - "make-private-device-title": "您确定要将设备 '{{deviceName}}' 设为私有吗?", - "make-private-device-text": "确认后,设备及其所有数据将被设为私有,不被其他人访问。", - "view-credentials": "查看凭据", - "delete-device-title": "您确定要删除设备的{{deviceName}}吗?", - "delete-device-text": "小心!确认后设备及其所有相关数据将不可恢复。", - "delete-devices-title": "您确定要删除{count,select,1 {1 设备} other {# 设备}} 吗?", - "delete-devices-action-title": "删除 {count,select,1 {1 设备} other {# 设备}}", - "delete-devices-text": "小心!确认后所有选定的设备将被删除,所有相关数据将不可恢复。", - "unassign-device-title": "您确定要取消分配设备 '{{deviceName}}'?", - "unassign-device-text": "确认后,设备将被取消分配,客户将无法访问。", - "unassign-device": "取消分配设备", - "unassign-devices-title": "您确定要取消分配{count,select,1 {1 设备} other {# 设备}} 吗?", - "unassign-devices-text": "确认后,所有选定的设备将被取消分配,并且客户将无法访问。", - "device-credentials": "设备凭据", - "credentials-type": "凭据类型", - "access-token": "访问令牌", - "access-token-required": "需要访问令牌", - "access-token-invalid": "访问令牌长度必须为1到20个字符。", - "rsa-key": "RSA公钥", - "rsa-key-required": "需要RSA公钥", - "secret": "密钥", - "secret-required": "密钥必填", - "device-type": "设备类型", - "device-type-required": "设备类型必填。", - "select-device-type": "选择设备类型", - "enter-device-type": "输入设备类型", - "any-device": "任意设备", - "no-device-types-matching": "没有找到符合 '{{entitySubtype}}' 的设备类型。", - "device-type-list-empty": "未选择设备类型", - "device-types": "设备类型", - "name": "名称", - "name-required": "名称必填。", - "description": "说明", - "events": "事件", - "details": "详细信息", - "copyId": "复制设备ID", - "copyAccessToken": "复制访问令牌", - "idCopiedMessage": "设备ID已复制到剪贴板", - "accessTokenCopiedMessage": "设备访问令牌已复制到剪贴板", - "assignedToCustomer": "分配给客户", - "unable-delete-device-alias-title": "无法删除设备别名", - "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除,因为它被下列部件所使用:
{{widgetsList}}", - "is-gateway": "是网关", - "public": "公开", - "device-public": "设备公开", - "select-device": "选择设备" - }, - "dialog": { - "close": "关闭对话框" - }, - "error": { - "unable-to-connect": "无法连接到服务器!请检查您的互联网连接。", - "unhandled-error-code": "未处理的错误代码: {{errorCode}}", - "unknown-error": "未知错误" - }, - "entity": { - "entity": "实体", - "entities": "实体", - "aliases": "实体别名", - "entity-alias": "实体别名", - "unable-delete-entity-alias-title": "无法删除实体别名", - "unable-delete-entity-alias-text": "实体别名 '{{entityAlias}}' 被以下部件使用不能删除:
{{widgetsList}}", - "duplicate-alias-error": "别名 '{{alias}}' 重复。
同一仪表板别名必须唯一。", - "missing-entity-filter-error": "别名 '{{alias}}' 缺少过滤器", - "configure-alias": "别名 '{{alias}}' 配置", - "alias": "别名", - "alias-required": "实体别名必填。", - "remove-alias": "移除实体别名", - "add-alias": "添加实体别名", - "entity-list": "实体列表", - "entity-type": "实体类型", - "entity-types": "实体类型", - "entity-type-list": "实体类型列表", - "any-entity": "任意实体", - "enter-entity-type": "输入实体类型", - "no-entities-matching": "没有找到符合 '{{entity}}' 的实体。", - "no-entity-types-matching": "没有找到符合 '{{entityType}}' 类型的实体。", - "name-starts-with": "名称开始于", - "use-entity-name-filter": "用户过滤", - "entity-list-empty": "没有选择实体。", - "entity-type-list-empty": "没有选择实体类型。", - "entity-name-filter-required": "实体名过滤器必填。", - "entity-name-filter-no-entity-matched": "没有找到以 '{{entity}}' 开头的实体", - "all-subtypes": "所有", - "select-entities": "选择实体", - "no-aliases-found": "没有找到别名", - "no-alias-matching": "没有找到 '{{alias}}'", - "create-new-alias": "创建新别名", - "key": "键", - "key-name": "键名", - "no-keys-found": "没有找到键", - "no-key-matching": "没有找到键 '{{key}}'", - "create-new-key": "创建新键", - "type": "类型", - "type-required": "实体类型必填。", - "type-device": "设备", - "type-devices": "设备", - "list-of-devices": "{ count, select, 1 {设备} other {# 设备列表} }", - "device-name-starts-with": "以 '{{prefix}}' 开头的设备", - "type-asset": "资产", - "type-assets": "资产", - "list-of-assets": "{ count, select, 1 {资产} other {# 资产列表} }", - "asset-name-starts-with": "以 '{{prefix}}' 开头的资产", - "type-rule": "规则", - "type-rules": "规则", - "list-of-rules": "{ count, select, 1 {规则} other {# 规则列表} }", - "rule-name-starts-with": "以 '{{prefix}}' 开头的规则", - "type-plugin": "插件", - "type-plugins": "插件", - "list-of-plugins": "{ count, select, 1 {插件} other {# 插件列表} }", - "plugin-name-starts-with": "以 '{{prefix}}' 开头的插件", - "type-tenant": "租户", - "type-tenants": "租户", - "list-of-tenants": "{ count, select, 1 {租户} other {# 租户列表} }", - "tenant-name-starts-with": "以 '{{prefix}}' 开头的租户", - "type-customer": "客户", - "type-customers": "客户", - "list-of-customers": "{ count, select, 1 {客户} other {# 客户列表} }", - "customer-name-starts-with": "以 '{{prefix}}' 开头的客户", - "type-user": "用户", - "type-users": "用户", - "list-of-users": "{ count, select, 1 {用户} other {# 用户列表} }", - "user-name-starts-with": "以 '{{prefix}}' 开头的用户", - "type-dashboard": "仪表板", - "type-dashboards": "仪表板", - "list-of-dashboards": "{ count, select, 1 {仪表板} other {# 仪表板列表} }", - "dashboard-name-starts-with": "以 '{{prefix}}' 开头的仪表板", - "type-alarm": "警告", - "type-alarms": "警告", - "list-of-alarms": "{ count, select, 1 {警告} other {# 警告列表} }", - "alarm-name-starts-with": "以 '{{prefix}}' 开头的警告", - "type-rulechain": "规则链", - "type-rulechains": "规则链库", - "list-of-rulechains": "{ count, select, 1 {一个规则链} other {# 规则链列表} }", - "rulechain-name-starts-with": "规则链前缀名称 '{{prefix}}'", - "type-current-customer": "当前客户", - "search": "实体检索", - "selected-entities": "{ count, select, 1 {1 实体} other {# 实体} } 被选中", - "entity-name": "实体名", - "details": "实体详情", - "no-entities-prompt": "没有找到实体", - "no-data": "无数据" - }, - "event": { - "event-type": "事件类型", - "type-error": "错误", - "type-lc-event": "生命周期事件", - "type-stats": "类型统计", - "type-debug-rule-node": "调试", - "type-debug-rule-chain": "调试", - "no-events-prompt": "找不到事件", - "error": "错误", - "alarm": "报警", - "event-time": "事件时间", - "server": "服务器", - "body": "整体", - "method": "方法", - "type": "类型", - "entity": "实体", - "message-id": "消息ID", - "message-type": "消息类型", - "data-type": "数据类型", - "relation-type": "关系类型", - "metadata": "元数据", - "data": "数据", - "event": "事件", - "status": "状态", - "success": "成功", - "failed": "失败", - "messages-processed": "消息处理", - "errors-occurred": "错误发生" - }, - "extension": { - "extensions": "扩展", - "selected-extensions": "{ count, select, 1 {1 扩展} 其它 {# 扩展} } 被选择", - "type": "类型", - "key": "健名", - "value": "值", - "id": "Id", - "extension-id": "扩展ID", - "extension-type": "扩展类型", - "transformer-json": "JSON *", - "unique-id-required": "当前扩展ID已经存在。", - "delete": "删除扩展", - "add": "添加扩展", - "edit": "编辑扩展", - "delete-extension-title": "确实要删除扩展名'{{extensionId}}'吗?", - "delete-extension-text": "小心,确认后,扩展和所有相关数据将变得不可恢复。", - "delete-extensions-title": "您确定要删除 { count, select, 1 {1 表达式} 其它 {# 表达式} }吗?", - "delete-extensions-text": "小心,确认后,所有选定的扩展将被删除。", - "converters": "转换器", - "converter-id": "转换器序号", - "configuration": "配置", - "converter-configurations": "转换器的配置", - "token": "安全令牌", - "add-converter": "添加转换器", - "add-config": "添加转换器配置", - "device-name-expression": "设备名称表达式", - "device-type-expression": "设备类型表达式", - "custom": "顾客", - "to-double": "加倍", - "transformer": "转换器", - "json-required": "转换器JSON必填。", - "json-parse": "无法解析转换器JSON。", - "attributes": "属性", - "add-attribute": "添加属性", - "add-map": "添加映射元素", - "timeseries": "时间序列", - "add-timeseries": "添加时间序列", - "field-required": "必填字段", - "brokers": "代理服务器组", - "add-broker": "添加代理服务器", - "host": "主机", - "port": "端口", - "port-range": "端口应该在1到65535的范围内。", - "ssl": "Ssl", - "credentials": "证书", - "username": "用户名", - "password": "密码", - "retry-interval": "以毫秒为单位的重试间隔", - "anonymous": "匿名", - "basic": "Basic", - "pem": "PEM", - "ca-cert": "CA证书文件 *", - "private-key": "私钥文件 *", - "cert": "证书文件 *", - "no-file": "没有选择文件。", - "drop-file": "删除文件或单击以选择要上载的文件。", - "mapping": "映射", - "topic-filter": "主题滤波", - "converter-type": "转换类型", - "converter-json": "Json", - "json-name-expression": "设备名称JSON表达式", - "topic-name-expression": "设备名称主题表达式", - "json-type-expression": "设备类型JSON表达式", - "topic-type-expression": "设备类型主题表达式", - "attribute-key-expression": "属性关键字表达式", - "attr-json-key-expression": "属性键JSON表达式", - "attr-topic-key-expression": "属性关键字主题表达式", - "request-id-expression": "请求ID表达式", - "request-id-json-expression": "请求ID JSON表达式", - "request-id-topic-expression": "请求ID主题表达式", - "response-topic-expression": "响应主题表达式", - "value-expression": "值表达式", - "topic": "主题", - "timeout": "毫秒超时", - "converter-json-required": "转换JSON是必需的。", - "converter-json-parse": "无法解析转换JSON。", - "filter-expression": "过滤表达式", - "connect-requests": "连接请求", - "add-connect-request": "添加连接请求", - "disconnect-requests": "断开请求", - "add-disconnect-request": "添加断开请求", - "attribute-requests": "属性请求", - "add-attribute-request": "添加属性请求", - "attribute-updates": "属性更新", - "add-attribute-update": "添加属性更新", - "server-side-rpc": "服务端RPC", - "add-server-side-rpc-request": "添加服务端RPC请求", - "device-name-filter": "设备名称滤波", - "attribute-filter": "属性滤波", - "method-filter": "方法滤波", - "request-topic-expression": "请求主题表达式", - "response-timeout": "毫秒内响应超时", - "topic-expression": "主题表达", - "client-scope": "客户范围", - "add-device": "添加服务器", - "opc-server": "服务器组", - "opc-add-server": "添加服务器", - "opc-add-server-prompt": "请添加服务器", - "opc-application-name": "应用名称", - "opc-application-uri": "应用URI", - "opc-scan-period-in-seconds": "秒级扫描周期", - "opc-security": "安全性", - "opc-identity": "身份", - "opc-keystore": "密钥库", - "opc-type": "类型", - "opc-keystore-type": "类型", - "opc-keystore-location": "位置 *", - "opc-keystore-password": "密码", - "opc-keystore-alias": "别名", - "opc-keystore-key-password": "密钥密码", - "opc-device-node-pattern": "设备节点模式", - "opc-device-name-pattern": "设备名称模式", - "modbus-server": "Servers/slaves", - "modbus-add-server": "添加 server/slave", - "modbus-add-server-prompt": "请添加 server/slave", - "modbus-transport": "传输", - "modbus-port-name": "串口名称", - "modbus-encoding": "编码", - "modbus-parity": "奇偶性", - "modbus-baudrate": "波特率", - "modbus-databits": "数据位", - "modbus-stopbits": "停止位", - "modbus-databits-range": "数据位应该在7到8的范围内。", - "modbus-stopbits-range": "停止位应该在1到2的范围内。", - "modbus-unit-id": "单位编号", - "modbus-unit-id-range": "单位ID应该在1到247的范围内", - "modbus-device-name": "设备名称", - "modbus-poll-period": "轮询周期 (ms)", - "modbus-attributes-poll-period": "轮询属性周期 (ms)", - "modbus-timeseries-poll-period": "时间序列轮询周期 (ms)", - "modbus-poll-period-range": "轮询周期应为正值。", - "modbus-tag": "标签", - "modbus-function": "函数", - "modbus-register-address": "寄存器地址", - "modbus-register-address-range": "寄存器地址应该在0到65535的范围内。", - "modbus-register-bit-index": "位索引", - "modbus-register-bit-index-range": "位索引应该在0到15的范围内。", - "modbus-register-count": "寄存器计数", - "modbus-register-count-range": "寄存器计数应该是一个正值。", - "modbus-byte-order": "字节顺序", - "sync": { - "status": "状态", - "sync": "同步", - "not-sync": "不同步", - "last-sync-time": "最后同步时间", - "not-available": "无法使用" - }, - - "export-extensions-configuration": "导出扩展配置", - "import-extensions-configuration": "导入扩展配置", - "import-extensions": "导入扩展", - "import-extension": "导入扩展", - "export-extension": "导出扩展", - "file": "扩展文件", - "invalid-file-error": "无效的扩展文件" - }, - "fullscreen": { - "expand": "展开到全屏", - "exit": "退出全屏", - "toggle": "切换全屏模式", - "fullscreen": "全屏" - }, - "function": { - "function": "函数" - }, - "grid": { - "delete-item-title": "您确定要删除此项吗?", - "delete-item-text": "注意,确认后此项及其所有相关数据将变得不可恢复。", - "delete-items-title": "你确定你要删除 { count, select, 1 {1 项} other {# 项} }吗?", - "delete-items-action-title": "删除 { count, select, 1 {1 项} other {# 项} }", - "delete-items-text": "注意,确认后所有选择的项目将被删除,所有相关数据将不可恢复。", - "add-item-text": "添加新项目", - "no-items-text": "没有找到项目", - "item-details": "项目详细信息", - "delete-item": "删除项目", - "delete-items": "删除项目", - "scroll-to-top": "滚动到顶部" - }, - "help": { - "goto-help-page": "转到帮助页面" - }, - "home": { - "home": "首页", - "profile": "属性", - "logout": "注销", - "menu": "菜单", - "avatar": "头像", - "open-user-menu": "打开用户菜单" - }, - "import": { - "no-file": "没有选择文件", - "drop-file": "拖动一个JSON文件或者单击以选择要上传的文件。" - }, - "item": { - "selected": "选择" - }, - "js-func": { - "no-return-error": "函数必须返回值!", - "return-type-mismatch": "函数必须返回 '{{type}}' 类型的值!", - "tidy": "整洁" - }, - "key-val": { - "key": "键名", - "value": "值", - "remove-entry": "删除条目", - "add-entry": "增加条目", - "no-data": "没有条目" - }, - "layout": { - "layout": "布局", - "manage": "布局管理", - "settings": "布局设置", - "color": "颜色", - "main": "主体", - "right": "右侧", - "select": "选择目标布局" - }, - "legend": { - "position": "图例位置", - "show-max": "显示最大值", - "show-min": "显示最小值", - "show-avg": "显示平均值", - "show-total": "显示总数", - "settings": "图例设置", - "min": "最小值", - "max": "最大值", - "avg": "平均值", - "total": "总数" - }, - "login": { - "login": "登录", - "request-password-reset": "请求密码重置", - "reset-password": "重置密码", - "create-password": "创建密码", - "passwords-mismatch-error": "输入的密码必须相同!", - "password-again": "再次输入密码", - "sign-in": "登录 ", - "username": "用户名(电子邮件)", - "remember-me": "记住我", - "forgot-password": "忘记密码?", - "password-reset": "密码重置", - "new-password": "新密码", - "new-password-again": "再次输入新密码", - "password-link-sent-message": "密码重置链接已成功发送!", - "email": "电子邮件" - }, - "position": { - "top": "顶部", - "bottom": "底部", - "left": "左侧", - "right": "右侧" - }, - "profile": { - "profile": "属性", - "change-password": "更改密码", - "current-password": "当前密码" - }, - "relation": { - "relations": "关联", - "direction": "方向", - "search-direction": { - "FROM": "从", - "TO": "到" - }, - "direction-type": { - "FROM": "从", - "TO": "到" - }, - "from-relations": "向外的关联", - "to-relations": "向内的关联", - "selected-relations": "{ count, select, 1 {1 关联} other {# 关联} } 被选中", - "type": "类型", - "to-entity-type": "到实体类型", - "to-entity-name": "到实体名称", - "from-entity-type": "从实体类型", - "from-entity-name": "从实体类型", - "to-entity": "到实体", - "from-entity": "从实体", - "delete": "删除关联", - "relation-type": "关联类型", - "relation-type-required": "关联类型必填", - "any-relation-type": "任意类型", - "add": "添加关联", - "edit": "编辑关联", - "delete-to-relation-title": "确定要删除实体 '{{entityName}}' 的关联吗?", - "delete-to-relation-text": "确定删除后实体 '{{entityName}}' 将取消与当前实体的关联关系。", - "delete-to-relations-title": "确定要删除 { count, select, 1 {1 关联} other {# 关联} }?", - "delete-to-relations-text": "确定删除所有选择的关联关系后,与当前实体对应的所有关联关系将被移除。", - "delete-from-relation-title": "确定要从实体 '{{entityName}}' 删除关联吗?", - "delete-from-relation-text": "确定删除后,当前实体将与实体 '{{entityName}}' 取消关联", - "delete-from-relations-title": "确定删除 { count, select, 1 {1 关联} other {# 关联} } 吗?", - "delete-from-relations-text": "确定删除所有选择的关联关系后,当前实体将与对应的实体取消关联", - "remove-relation-filter": "移除关联过滤器", - "add-relation-filter": "添加关联过滤器", - "any-relation": "任意关联", - "relation-filters": "关联过滤器", - "additional-info": "附加信息 (JSON)", - "invalid-additional-info": "无法解析附加信息json。" - }, - "rulechain": { - "rulechain": "规则链", - "rulechains": "规则链库", - "root": "根实体", - "delete": "删除规则", - "activate": "激活规则", - "suspend": "暂停规则", - "active": "激活", - "suspended": "暂停", - "name": "名称", - "name-required": "名称必填。", - "description": "描述", - "add": "添加规则", - "set-root": "创建规则链根", - "set-root-rulechain-title": "您确定要生成规则链'{{RuleChainName}}'根吗?", - "set-root-rulechain-text": "确认之后,规则链将变为根规格链,并将处理所有传入的传输消息。", - "delete-rulechain-title": " 确实要删除规则链'{{ruleChainName}}'吗?", - "delete-rulechain-text": "小心,在确认规则链和所有相关数据将变得不可恢复。", - "delete-rulechains-title": "确实要删除{count, select, 1 { 1 规则链}其他{# 规则链库}}吗?", - "delete-rulechains-action-title": "删除 { count, select, 1 {1 规则链} other {# 规则链库} }", - "delete-rulechains-text": "小心,确认后,所有选定的规则链将被删除,所有相关的数据将变得不可恢复。", - "add-rulechain-text": "添加新的规则链", - "no-rulechains-text": "规则链没有发现", - "rulechain-details": "规则链详情", - "details": "详情", - "events": "事件", - "system": "系统", - "import": "导入规则", - "export": "导出规则", - "export-failed-error": "无法导出规则:{{error}}", - "create-new-rulechain": "创建新的规则链", - "rulechain-file": "规则链文件", - "invalid-rulechain-file-error": "不能导入规则链:无效的规则链数据格式。", - "copyId": "复制规则链ID", - "idCopiedMessage": "规则ID已经复制到粘贴板", - "select-rulechain": "选择规则链", - "no-rulechains-matching": "没有发现匹配'{{entity}}'的规则链。", - "rulechain-required": "规则链必填", - "management": "规则集管理", - "debug-mode": "调试模式" - }, - "rulenode": { - "details": "详情", - "events": "事件", - "search": "搜索节点", - "open-node-library": "打开节点库", - "add": "添加规则节点", - "name": "名称", - "name-required": "名称必填。", - "type": "类型", - "description": "描述", - "delete": "删除规则节点", - "select-all-objects": "选择所有节点和连接", - "deselect-all-objects": "取消选择所有节点和连接", - "delete-selected-objects": "删除选定的节点和连接", - "delete-selected": "删除选定", - "select-all": "选择全部", - "copy-selected": "选择副本", - "deselect-all": "取消选择", - "rulenode-details": "规则节点详情", - "debug-mode": "调试模式", - "configuration": "配置", - "link": "链接", - "link-details": "规则节点链接详情", - "add-link": "添加链接", - "link-label": "链接标签", - "link-label-required": "链接标签必填", - "custom-link-label": "自定义链接标签", - "custom-link-label-required": "自定义链接标签必填", - "type-filter": "滤波器", - "type-filter-details": "使用配置条件过滤传入消息", - "type-enrichment": "属性集", - "type-enrichment-details": "向消息元数据中添加附加信息", - "type-transformation": "变换", - "type-transformation-details": "更改消息有效载荷和元数据", - "type-action": "动作", - "type-action-details": "执行特别动作", - "type-external": "外部的", - "type-external-details": "与外部系统交互", - "type-rule-chain": "规则链", - "type-rule-chain-details": "将传入消息转发到指定的规则链", - "type-input": "输入", - "type-input-details": "规则链的逻辑输入,将传入消息转发到下一个相关规则节点", - "directive-is-not-loaded": "定义的配置指令 '{{directiveName}}' 不可用。", - "ui-resources-load-error": "加载配置UI资源失败。", - "invalid-target-rulechain": "无法解析目标规则链!", - "test-script-function": "测试脚本功能", - "message": "消息", - "message-type": "消息类型", - "message-type-required": "消息类型必填", - "metadata": "元数据", - "metadata-required": "元数据项不能为空。", - "output": "输出", - "test": "测试", - "help": "帮助" - }, - "tenant": { - "tenant": "租户", - "tenants": "租户", - "management": "租户管理", - "add": "添加租户", - "admins": "管理员", - "manage-tenant-admins": "管理租户管理员", - "delete": "删除租户", - "add-tenant-text": "添加新租户", - "no-tenants-text": "没有找到租户", - "tenant-details": "租客详情", - "delete-tenant-title": "您确定要删除租户'{{tenantTitle}}'吗?", - "delete-tenant-text": "小心!确认后,租户和所有相关数据将不可恢复。", - "delete-tenants-title": "您确定要删除 {count,select,1 {1 租户} other {# 租户}} 吗?", - "delete-tenants-action-title": "删除 { count, select, 1 {1 租户} other {# 租户} }", - "delete-tenants-text": "小心!确认后,所有选定的租户将被删除,所有相关数据将不可恢复。", - "title": "标题", - "title-required": "标题必填。", - "description": "描述", - "details": "详情", - "events": "事件", - "copyId": "复制租户ID", - "idCopiedMessage": "租户ID已经复制到粘贴板", - "select-tenant": "选择租户", - "no-tenants-matching": "没有找到符合 '{{entity}}' 的租户", - "tenant-required": "租户必填" - }, - "timeinterval": { - "seconds-interval": "{ seconds, select, 1 {1 秒} other {# 秒} }", - "minutes-interval": "{ minutes, select, 1 {1 分} other {# 分} }", - "hours-interval": "{ hours, select, 1 {1 小时} other {# 小时} }", - "days-interval": "{ days, select, 1 {1 天} other {# 天} }", - "days": "天", - "hours": "时", - "minutes": "分", - "seconds": "秒", - "advanced": "高级" - }, - "timewindow": { - "days": "{ days, select, 1 { 天 } other {# 天 } }", - "hours": "{ hours, select, 0 { 小时 } 1 {1 小时 } other {# 小时 } }", - "minutes": "{ minutes, select, 0 { 分 } 1 {1 分 } other {# 分 } }", - "seconds": "{ seconds, select, 0 { 秒 } 1 {1 秒 } other {# 秒 } }", - "realtime": "实时", - "history": "历史", - "last-prefix": "最后", - "period": "从 {{ startTime }} 到 {{ endTime }}", - "edit": "编辑时间窗口", - "date-range": "日期范围", - "last": "最后", - "time-period": "时间段" - }, - "user": { - "user": "用户", - "users": "用户", - "customer-users": "客户用户", - "tenant-admins": "租户管理员", - "sys-admin": "系统管理员", - "tenant-admin": "租户管理员", - "customer": "客户", - "anonymous": "匿名", - "add": "添加用户", - "delete": "删除用户", - "add-user-text": "添加新用户", - "no-users-text": "找不到用户", - "user-details": "用户详细信息", - "delete-user-title": "您确定要删除用户 '{{userEmail}}' 吗?", - "delete-user-text": "小心!确认后,用户和所有相关数据将不可恢复。", - "delete-users-title": "你确定你要删除 { count, select, 1 {1 用户} other {# 用户} } 吗?", - "delete-users-action-title": "删除 { count, select, 1 {1 用户} other {# 用户} }", - "delete-users-text": "小心!确认后,所有选定的用户将被删除,所有相关数据将不可恢复。", - "activation-email-sent-message": "激活电子邮件已成功发送!", - "resend-activation": "重新发送激活", - "email": "电子邮件", - "email-required": "电子邮件必填。", - "invalid-email-format": "无效的邮件格式。", - "first-name": "名字", - "last-name": "姓", - "description": "描述", - "default-dashboard": "默认面板", - "always-fullscreen": "始终全屏", - "select-user": "选择用户", - "no-users-matching": "没有找到符合 '{{entity}}' 的用户。", - "user-required": "用户必填", - "activation-method": "激活方式", - "display-activation-link": "显示激活链接", - "send-activation-mail": "发送激活邮件", - "activation-link": "用户激活链接", - "activation-link-text": "使用该链接 激活 激活用户:", - "copy-activation-link": "复制用户激活链接", - "activation-link-copied-message": "用户激活链接已经复制到粘贴板", - "details": "详细信息" - }, - "value": { - "type": "值类型", - "string": "字符串", - "string-value": "字符串值", - "integer": "数字", - "integer-value": "数字值", - "invalid-integer-value": "整数值无效", - "double": "双精度小数", - "double-value": "双精度小数值", - "boolean": "布尔", - "boolean-value": "布尔值", - "false": "假", - "true": "真", - "long": "Long" - }, - "widget": { - "widget-library": "部件库", - "widget-bundle": "部件包", - "select-widgets-bundle": "选择部件包", - "management": "管理部件", - "editor": "部件编辑器", - "widget-type-not-found": "加载部件配置出错。
可能关联的\n 部件已经删除了。", - "widget-type-load-error": "由于以下错误未加载小部件:", - "remove": "删除部件", - "edit": "编辑部件", - "remove-widget-title": "确实要删除 '{{widgetTitle}}'部件吗?", - "remove-widget-text": "确认后,控件和所有相关数据将变得不可恢复。", - "timeseries": "时间序列", - "search-data": "搜索数据", - "no-data-found": "没有找到数据", - "latest-values": "最新值", - "rpc": "控件部件", - "alarm": "警告部件", - "static": "静态部件", - "select-widget-type": "选择窗口部件类型", - "missing-widget-title-error": "部件标题必须指定!", - "widget-saved": "部件已保存", - "unable-to-save-widget-error": "无法保存部件!控件有错误!", - "save": "保存部件", - "saveAs": "部件另存为", - "save-widget-type-as": "部件类型另存为", - "save-widget-type-as-text": "请输入新的部件标题或选择目标部件包", - - "toggle-fullscreen": "切换全屏", - "run": "运行部件", - "title": "部件标题", - "title-required": "需要部件标题。", - "type": "部件类型", - "resources": "资源", - "resource-url": "JavaScript/CSS URL", - "remove-resource": "删除资源", - "add-resource": "添加资源", - "html": "HTML", - "tidy": "整理", - "css": "CSS", - "settings-schema": "设置模式", - "datakey-settings-schema": "数据键设置模式", - "javascript": "Javascript", - "remove-widget-type-title": "您确定要删除部件类型 '{{widgetName}}'吗?", - "remove-widget-type-text": "确认后,窗口部件类型和所有相关数据将不可恢复。", - "remove-widget-type": "删除部件类型", - "add-widget-type": "添加新的部件类型", - "widget-type-load-failed-error": "无法加载部件类型!", - "widget-template-load-failed-error": "无法加载部件模板!", - "add": "添加部件", - "undo": "撤消部件更改", - "export": "导出部件" - }, - "widget-action": { - "header-button": "部件顶部按钮", - "open-dashboard-state": "切换到新仪表板状态", - "update-dashboard-state": "更新当前仪表板状态", - "open-dashboard": "切换到另一个仪表板", - "custom": "自定义动作", - "target-dashboard-state": "目标仪表板状态", - "target-dashboard-state-required": "目标仪表板状态必填", - "set-entity-from-widget": "从部件中设置实体", - "target-dashboard": "目标仪表板", - "open-right-layout": "打开右侧布局 (移动端视图)" - }, - "widgets-bundle": { - "current": "当前包", - "widgets-bundles": "部件包", - "add": "添加部件包", - "delete": "删除部件包", - "title": "标题", - "title-required": "标题必填。", - "add-widgets-bundle-text": "添加新的部件包", - "no-widgets-bundles-text": "找不到部件包", - "empty": "部件包是空的", - "details": "详情", - "widgets-bundle-details": "部件包详细信息", - "delete-widgets-bundle-title": "您确定要删除部件包 '{{widgetsBundleTitle}}'吗?", - "delete-widgets-bundle-text": "小心!确认后,部件包和所有相关数据将不可恢复。", - "delete-widgets-bundles-title": "你确定你要删除 { count, select, 1 {1 部件包} other {# 部件包} } 吗?", - "delete-widgets-bundles-action-title": "删除 { count, select, 1 {1 部件包} other {# 部件包} }", - "delete-widgets-bundles-text": "小心!确认后,所有选定的部件包将被删除,所有相关数据将不可恢复。", - "no-widgets-bundles-matching": "没有找到与 '{{widgetsBundle}}' 匹配的部件包。", - "widgets-bundle-required": "需要部件包。", - "system": "系统", - "import": "导入部件包", - "export": "导出部件包", - "export-failed-error": "无法导出部件包: {{error}}", - "create-new-widgets-bundle": "创建新的部件包", - "widgets-bundle-file": "部件包文件", - "invalid-widgets-bundle-file-error": "无法导入部件包:无效的部件包数据结构。" - }, - "widget-config": { - "data": "数据", - "settings": "设置", - "advanced": "高级", - "title": "标题", - "general-settings": "常规设置", - "display-title": "显示标题", - "drop-shadow": "阴影", - "enable-fullscreen": "启用全屏", - "background-color": "背景颜色", - "text-color": "文字颜色", - "padding": "填充", - "margin": "边缘", - "widget-style": "部件风格", - "title-style": "标题风格", - "mobile-mode-settings": "移动端设置", - "order": "顺序", - "height": "高度", - "units": "特殊符号展示值", - "decimals": "浮点数后的位数", - "timewindow": "时间窗口", - "use-dashboard-timewindow": "使用仪表板的时间窗口", - "display-legend": "显示图例", - "datasources": "数据源", - "maximum-datasources": "最大允许 { count, select, 1 {1 数据} other {# 数据} }", - "datasource-type": "类型", - "datasource-parameters": "参数", - "remove-datasource": "移除数据源", - "add-datasource": "添加数据源", - "target-device": "目标设备", - "alarm-source": "警告源", - "actions": "动作", - "action": "动作", - "add-action": "添加动作", - "search-actions": "动作检索", - "action-source": "动作源", - "action-source-required": "动作源必填", - "action-name": "动作名称", - "action-name-required": "动作名称必填。", - "action-name-not-unique": "动作名称已经存在。
统一动作源的动作名称必须唯一。", - "action-icon": "图标", - "action-type": "类型", - "action-type-required": "类型必填", - "edit-action": "编辑动作", - "delete-action": "删除动作", - "delete-action-title": "删除部件动作", - "delete-action-text": "确定要删除部件动作 '{{actionName}}' 吗?" - }, - "widget-type": { - "import": "导入部件类型", - "export": "导出部件类型", - "export-failed-error": "无法导出部件类型: {{error}}", - "create-new-widget-type": "创建新的部件类型", - "widget-type-file": "部件类型文件", - "invalid-widget-type-file-error": "无法导入部件类型:无效的部件类型数据结构。" - }, - "icon": { - "icon": "图标", - "select-icon": "选择图标", - "material-icons": "素材图标", - "show-all": "显示所有图标" - }, - "custom": { - "widget-action": { - "action-cell-button": "动作单元格按钮", - "row-click": "点击行", - "marker-click": "点击标记", - "tooltip-tag-action": "提示标签动作" - } - }, - "language": { - "language": "语言", - "en_US": "英语", - "ko_KR": "韩语", - "zh_CN": "汉语", - "ru_RU": "俄语", - "es_ES": "西班牙语" - } - }; - angular.extend(locales, { - 'zh_CN': zh_CN - }); -} diff --git a/ui/src/app/locale/locale.constant-zh.json b/ui/src/app/locale/locale.constant-zh.json new file mode 100644 index 0000000000..8f1842bb10 --- /dev/null +++ b/ui/src/app/locale/locale.constant-zh.json @@ -0,0 +1,1446 @@ +{ + "access": { + "unauthorized": "未授权", + "unauthorized-access": "未授权访问", + "unauthorized-access-text": "您需要登陆才能访问这个资源!", + "access-forbidden": "禁止访问", + "access-forbidden-text": "您没有访问此位置的权限
如果您仍希望访问此位置,请尝试使用其他用户登录。", + "refresh-token-expired": "会话已过期", + "refresh-token-failed": "无法刷新会话" + }, + "action": { + "activate": "激活", + "suspend": "暂停", + "save": "保存", + "saveAs": "另存为", + "cancel": "取消", + "ok": "确定", + "delete": "删除", + "add": "添加", + "yes": "是", + "no": "否", + "update": "更新", + "remove": "移除", + "search": "查询", + "clear-search": "清除查询", + "assign": "分配", + "unassign": "取消分配", + "share": "分享", + "make-private": "私有", + "apply": "应用", + "apply-changes": "应用更改", + "edit-mode": "编辑模式", + "enter-edit-mode": "进入编辑模式", + "decline-changes": "撤销更改", + "close": "关闭", + "back": "后退", + "run": "运行", + "sign-in": "登录!", + "edit": "编辑", + "view": "查看", + "create": "创建", + "drag": "拖拽", + "refresh": "刷新", + "undo": "撤销", + "copy": "复制", + "paste": "粘贴", + "copy-reference": "复制引用", + "paste-reference": "粘贴引用", + "import": "导入", + "export": "导出", + "share-via": "通过 {{provider}}分享" + }, + "aggregation": { + "aggregation": "聚合", + "function": "数据聚合功能", + "limit": "最大值", + "group-interval": "分组间隔", + "min": "最少值", + "max": "最大值", + "avg": "平均值", + "sum": "求和", + "count": "计数", + "none": "空" + }, + "admin": { + "general": "常规", + "general-settings": "常规设置", + "outgoing-mail": "发送邮件", + "outgoing-mail-settings": "发送邮件设置", + "system-settings": "系统设置", + "test-mail-sent": "测试邮件发送成功!", + "base-url": "基本URL", + "base-url-required": "基本URL必填。", + "mail-from": "邮件来自", + "mail-from-required": "邮件发件人必填。", + "smtp-protocol": "SMTP协议", + "smtp-host": "SMTP主机", + "smtp-host-required": "SMTP主机必填。", + "smtp-port": "SMTP端口", + "smtp-port-required": "您必须提供一个smtp端口。", + "smtp-port-invalid": "这看起来不是有效的smtp端口。", + "timeout-msec": "超时(ms)", + "timeout-required": "超时必填。", + "timeout-invalid": "这看起来不像有效的超时值。", + "enable-tls": "启用TLS", + "send-test-mail": "发送测试邮件" + }, + "alarm": { + "alarm": "警告", + "alarms": "警告", + "select-alarm": "选择警告", + "no-alarms-matching": "没有找到匹配 '{{entity}}' 的警告", + "alarm-required": "警告必填", + "alarm-status": "警告状态", + "search-status": { + "ANY": "所有", + "ACTIVE": "已激活", + "CLEARED": "已清除", + "ACK": "已应答", + "UNACK": "未应答" + }, + "display-status": { + "ACTIVE_UNACK": "激活未应答", + "ACTIVE_ACK": "激活已应答", + "CLEARED_UNACK": "清除未应答", + "CLEARED_ACK": "清除已应答" + }, + "no-alarms-prompt": "未发现警告", + "created-time": "创建时间", + "type": "类型", + "severity": "严重程度", + "originator": "起因", + "originator-type": "起因类型", + "details": "详情", + "status": "状态", + "alarm-details": "警告详情", + "start-time": "开始时间", + "end-time": "结束时间", + "ack-time": "应答时间", + "clear-time": "创建时间", + "severity-critical": "危险", + "severity-major": "重要", + "severity-minor": "次要", + "severity-warning": "警告", + "severity-indeterminate": "不确定", + "acknowledge": "应答", + "clear": "清除", + "search": "搜索警告", + "selected-alarms": "已选择 { count, select, 1 {1 警告} other {# 警告} } ", + "no-data": "无数据显示", + "polling-interval": "警告轮询间隔(秒)", + "polling-interval-required": "警告轮询间隔必填。", + "min-polling-interval-message": "轮询间隔至少是1秒。", + "aknowledge-alarms-title": "应答 { count, select, 1 {1 警告} other {# 警告} }", + "aknowledge-alarms-text": "确定要应答 { count, select, 1 {1 警告} other {# 警告} }?", + "clear-alarms-title": "清除 { count, select, 1 {1 警告} other {# 警告} }", + "clear-alarms-text": "确定要清除 { count, select, 1 {1 警告} other {# 警告} }?" + }, + "alias": { + "add": "添加别名", + "edit": "编辑别名", + "name": "别名", + "name-required": "别名必填", + "duplicate-alias": "别名已经存在。", + "filter-type-single-entity": "单个实体", + "filter-type-entity-list": "实体列表", + "filter-type-entity-name": "实体名称", + "filter-type-state-entity": "实体(仪表板状态)", + "filter-type-state-entity-description": "实体令牌(仪表板状态参数)", + "filter-type-asset-type": "资产类型", + "filter-type-asset-type-description": "类型为 '{{assetType}}' 的资产", + "filter-type-asset-type-and-name-description": "类型为 '{{assetType}}' 且以 '{{prefix}}' 开头的资产", + "filter-type-device-type": "设备类型", + "filter-type-device-type-description": "类型为 '{{deviceType}}' 的设备", + "filter-type-device-type-and-name-description": "类型为 '{{deviceType}}' 且以 '{{prefix}}' 开头的设备", + "filter-type-relations-query": "关系查询", + "filter-type-relations-query-description": "具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的 {{entities}} ", + "filter-type-asset-search-query": "资产搜索查询", + "filter-type-asset-search-query-description": "类型为 {{assetTypes}} 且具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的资产", + "filter-type-device-search-query": "设备搜索查询", + "filter-type-device-search-query-description": "类型为 {{deviceTypes}} 且具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的设备", + "entity-filter": "实体过滤", + "resolve-multiple": "解决为多实体", + "filter-type": "过滤类型", + "filter-type-required": "过滤类型必填。", + "entity-filter-no-entity-matched": "未找到符合指定过滤条件的实体。", + "no-entity-filter-specified": "没有指定实体过滤条件", + "root-state-entity": "使用仪表板状态实体作为根实体", + "root-entity": "根实体", + "state-entity-parameter-name": "状态实体参数名称", + "default-state-entity": "默认状态实体", + "default-entity-parameter-name": "默认", + "max-relation-level": "最大关系层级", + "unlimited-level": "不限层级", + "state-entity": "仪表板状态实体", + "all-entities": "所有实体", + "any-relation": "不限" + }, + "asset": { + "asset": "资产", + "assets": "资产", + "management": "资产管理", + "view-assets": "查看资产", + "add": "添加资产", + "assign-to-customer": "分配给客户", + "assign-asset-to-customer": "将资产分配给客户", + "assign-asset-to-customer-text": "请选择要分配给客户的资产", + "no-assets-text": "未找到资产", + "assign-to-customer-text": "请选择客户以分配资产", + "public": "公开", + "assignedToCustomer": "分配客户", + "make-public": "资产设为公开", + "make-private": "资产设为私有", + "unassign-from-customer": "取消分配客户", + "delete": "删除资产", + "asset-public": "资产公开", + "asset-type": "资产类型", + "asset-type-required": "资产类型必填。", + "select-asset-type": "选择资产类型", + "enter-asset-type": "输入资产类型", + "any-asset": "任何资产", + "no-asset-types-matching": "没有找到匹配 '{{entitySubtype}}' 的资产类型。", + "asset-type-list-empty": "资产类型未选择。", + "asset-types": "资产类型", + "name": "名称", + "name-required": "名称必填。", + "description": "描述", + "type": "类型", + "type-required": "类型必填。", + "details": "详情", + "events": "事件", + "add-asset-text": "添加新资产", + "asset-details": "资产详情", + "assign-assets": "分配资产", + "assign-assets-text": "分配 { count, select, 1 {1 资产} other {# 资产} } 给客户", + "delete-assets": "删除资产", + "unassign-assets": "取消分配资产", + "unassign-assets-action-title": "从客户处取消分配 { count, select, 1 {1 资产} other {# 资产} } ", + "assign-new-asset": "分配新资产", + "delete-asset-title": "确定要删除资产 '{{assetName}}'?", + "delete-asset-text": "小心!确认后资产及其所有相关数据将不可恢复。", + "delete-assets-title": "确定要删除 { count, select, 1 {1 资产} other {# 资产} }?", + "delete-assets-action-title": "删除 { count, select, 1 {1 资产} other {# 资产} }", + "delete-assets-text": "小心,确认后,所有选定的资产将被删除,所有相关的数据将变得不可恢复。", + "make-public-asset-title": "你确定你想创建公开'{{assetName}}'资产?", + "make-public-asset-text": "确认后,资产及其所有数据将被公开并被他人访问。", + "make-private-asset-title": "你确定你想创建私有 '{{assetName}}' 资产?", + "make-private-asset-text": "确认后,资产及其所有数据将被私有化,无法被他人访问。", + "unassign-asset-title": "您确定要取消对'{{assetName}}'资产的分配吗?", + "unassign-asset-text": "确认后,资产将未分配,客户无法访问。", + "unassign-asset": "未分配资产", + "unassign-assets-title": "您确定要取消分配 { count, select, 1 {1 资产} other {# 资产} }吗?", + "unassign-assets-text": "确认后,所有选定的资产将被分配,客户无法访问。", + "copyId": "复制资产ID", + "idCopiedMessage": "资产ID已经复制到粘贴板", + "select-asset": "选择资产", + "no-assets-matching": "没有找到匹配 '{{entity}}' 的资产。", + "asset-required": "资产必填", + "name-starts-with": "资产名称以此开头" + }, + "attribute": { + "attributes": "属性", + "latest-telemetry": "最新遥测", + "attributes-scope": "设备属性范围", + "scope-latest-telemetry": "最新遥测", + "scope-client": "客户端属性", + "scope-server": "服务端属性", + "scope-shared": "共享属性", + "add": "添加属性", + "key": "键", + "last-update-time": "最后更新时间", + "key-required": "属性键必填。", + "value": "值", + "value-required": "属性值必填。", + "delete-attributes-title": "您确定要删除 { count, select, 1 {1 属性} other {# 属性} }吗?", + "delete-attributes-text": "注意,确认后所有选中的属性都会被删除。", + "delete-attributes": "删除属性", + "enter-attribute-value": "输入属性值", + "show-on-widget": "在部件上显示", + "widget-mode": "部件模式", + "next-widget": "下一个部件", + "prev-widget": "上一个部件", + "add-to-dashboard": "添加到仪表板", + "add-widget-to-dashboard": "将部件添加到仪表板", + "selected-attributes": "{ count, select, 1 {1 属性} other {# 属性} } 被选中", + "selected-telemetry": "{ count, select, 1 {1 遥测} other {# 遥测} } 被选中" + }, + "audit-log": { + "audit": "审计", + "audit-logs": "审计日志", + "timestamp": "时间戳", + "entity-type": "实体类型", + "entity-name": "实体名称", + "user": "用户", + "type": "类型", + "status": "状态", + "details": "详情", + "type-added": "添加", + "type-deleted": "删除", + "type-updated": "更新", + "type-attributes-updated": "更新属性", + "type-attributes-deleted": "删除属性", + "type-rpc-call": "RPC调用", + "type-credentials-updated": "更新凭证", + "type-assigned-to-customer": "分配给客户", + "type-unassigned-from-customer": "未分配给客户", + "type-activated": "激活", + "type-suspended": "暂停", + "type-credentials-read": "读取凭证", + "type-attributes-read": "读取属性", + "status-success": "成功", + "status-failure": "失败", + "audit-log-details": "审计日志详情", + "no-audit-logs-prompt": "找不到日志", + "action-data": "活动数据", + "failure-details": "失败详情", + "search": "查找审计日志", + "clear-search": "清空查找" + }, + "confirm-on-exit": { + "message": "您有未保存的更改。确定要离开此页吗?", + "html-message": "您有未保存的更改。
确定要离开此页面吗?", + "title": "未保存的更改" + }, + "contact": { + "country": "国家", + "city": "城市", + "state": "州", + "postal-code": "邮政编码", + "postal-code-invalid": "只允许数字。", + "address": "地址", + "address2": "地址2", + "phone": "手机", + "email": "邮箱", + "no-address": "无地址" + }, + "common": { + "username": "用户名", + "password": "密码", + "enter-username": "输入用户名", + "enter-password": "输入密码", + "enter-search": "输入检索条件" + }, + "content-type": { + "json": "Json", + "text": "Text", + "binary": "Binary (Base64)" + }, + "customer": { + "customer": "客户", + "customers": "客户", + "management": "客户管理", + "dashboard": "客户仪表板", + "dashboards": "客户仪表板", + "devices": "客户设备", + "assets": "客户资产", + "public-dashboards": "公共仪表板", + "public-devices": "公共设备", + "public-assets": "公共资产", + "add": "添加客户", + "delete": "删除客户", + "manage-customer-users": "管理客户用户", + "manage-customer-devices": "管理客户设备", + "manage-customer-dashboards": "管理客户仪表板", + "manage-public-devices": "管理公共设备", + "manage-public-dashboards": "管理公共仪表板", + "manage-customer-assets": "管理客户资产", + "manage-public-assets": "管理公共资产", + "add-customer-text": "添加新客户", + "no-customers-text": "没有找到客户", + "customer-details": "客户详情", + "delete-customer-title": "您确定要删除客户'{{customerTitle}}'吗?", + "delete-customer-text": "小心!确认后,客户及其所有相关数据将不可恢复。", + "delete-customers-title": "您确定要删除 { count, select, 1 {1 客户} other {# 客户} }吗?", + "delete-customers-action-title": "删除 { count, select, 1 {1 客户} other {# 客户} }", + "delete-customers-text": "小心!确认后,所有选定的客户将被删除,所有相关数据将不可恢复。", + "manage-users": "管理用户", + "manage-assets": "管理资产", + "manage-devices": "管理设备", + "manage-dashboards": "管理仪表板", + "title": "标题", + "title-required": "需要标题", + "description": "描述", + "details": "详情", + "events": "事件", + "copyId": "复制客户ID", + "idCopiedMessage": "客户ID已复制到粘贴板", + "select-customer": "选择客户", + "no-customers-matching": "没有找到匹配 '{{entity}}' 的客户。", + "customer-required": "客户是必选项", + "select-default-customer": "选择默认的客户", + "default-customer": "默认客户", + "default-customer-required": "为了调试租户级别上的仪表板,需要默认客户。" + }, + "datetime": { + "date-from": "日期从", + "time-from": "时间从", + "date-to": "日期到", + "time-to": "时间到" + }, + "dashboard": { + "dashboard": "仪表板", + "dashboards": "仪表板库", + "management": "仪表板管理", + "view-dashboards": "查看仪表板", + "add": "添加仪表板", + "assign-dashboard-to-customer": "将仪表板分配给客户", + "assign-dashboard-to-customer-text": "请选择要分配给客户的仪表板", + "assign-to-customer-text": "请选择客户分配仪表板", + "assign-to-customer": "分配给客户", + "unassign-from-customer": "取消分配客户", + "make-public": "仪表板设为公开", + "make-private": "仪表板设为私有", + "manage-assigned-customers": "管理已分配的客户", + "assigned-customers": "已分配的客户", + "assign-to-customers": "将仪表板分配给客户", + "assign-to-customers-text": "请选择客户指定仪表板", + "unassign-from-customers": "客户未分配仪表板", + "unassign-from-customers-text": "请选择从仪表板中取消分配的客户", + "no-dashboards-text": "没有找到仪表板", + "no-widgets": "没有配置部件", + "add-widget": "添加新的部件", + "title": "标题", + "select-widget-title": "选择部件", + "select-widget-subtitle": "可用的部件类型列表", + "delete": "删除仪表板", + "title-required": "需要标题。", + "description": "描述", + "details": "详情", + "dashboard-details": "仪表板详情", + "add-dashboard-text": "添加新的仪表板", + "assign-dashboards": "分配仪表板", + "assign-new-dashboard": "分配新的仪表板", + "assign-dashboards-text": "分配 { count, select, 1 {1 仪表板} other {# 仪表板} } 给客户", + "unassign-dashboards-action-text": "未分配 { count, select, 1 {1 仪表板} other {# 仪表板} } 给客户", + "delete-dashboards": "删除仪表板", + "unassign-dashboards": "取消分配仪表板", + "unassign-dashboards-action-title": "从客户处取消分配 { count, select, 1 {1 仪表板} other {# 仪表板} } ", + "delete-dashboard-title": "您确定要删除仪表板 '{{dashboardTitle}}'吗?", + "delete-dashboard-text": "小心!确认后仪表板及其所有相关数据将不可恢复。", + "delete-dashboards-title": "你确定你要删除 { count, select, 1 {1 仪表板} other {# 仪表板} }吗?", + "delete-dashboards-action-title": "删除 { count, select, 1 {1 仪表板} other {# 仪表板} }", + "delete-dashboards-text": "小心!确认后所有选定的仪表板将被删除,所有相关数据将不可恢复。", + "unassign-dashboard-title": "您确定要取消分配仪表板 '{{dashboardTitle}}'吗?", + "unassign-dashboard-text": "确认后,面板将被取消分配,客户将无法访问。", + "unassign-dashboard": "取消分配仪表板", + "unassign-dashboards-title": "您确定要取消分配仪表板 { count, select, 1 {1 仪表板} other {# 仪表板} } 吗?", + "unassign-dashboards-text": "确认后,所有选定的仪表板将被取消分配,客户将无法访问。", + "public-dashboard-title": "仪表板现已公布", + "public-dashboard-text": "你的仪表板 {{dashboardTitle}} 已被公开,可通过如下 链接访问:", + "public-dashboard-notice": "提示: 不要忘记将相关设备公开以访问其数据。", + "make-private-dashboard-title": "您确定要将仪表板 '{{dashboardTitle}}' 设为私有吗?", + "make-private-dashboard-text": "确认后,仪表板将被设为私有,不能被其他人访问。", + "make-private-dashboard": "仪表板设为私有", + "socialshare-text": "'{{dashboardTitle}}' 由Thingsboard提供支持", + "socialshare-title": "'{{dashboardTitle}}' 由Thingsboard提供支持", + "select-dashboard": "选择仪表板", + "no-dashboards-matching": "找不到符合 '{{entity}}' 的仪表板。", + "dashboard-required": "仪表板必填。", + "select-existing": "选择现有仪表板", + "create-new": "创建新的仪表板", + "new-dashboard-title": "新仪表板标题", + "open-dashboard": "打开仪表板", + "set-background": "设置背景", + "background-color": "背景颜色", + "background-image": "背景图片", + "background-size-mode": "背景大小模式", + "no-image": "无图像选择", + "drop-image": "拖拽图像或单击以选择要上传的文件。", + "settings": "设置", + "columns-count": "列数", + "columns-count-required": "需要列数。", + "min-columns-count-message": "只允许最少10列", + "max-columns-count-message": "只允许最多1000列", + "widgets-margins": "部件间边距", + "horizontal-margin": "水平边距", + "horizontal-margin-required": "需要水平边距值。", + "min-horizontal-margin-message": "只允许0作为最小水平边距值。", + "max-horizontal-margin-message": "只允许50作为最大水平边距值。", + "vertical-margin": "垂直边距", + "vertical-margin-required": "需要垂直边距值。", + "min-vertical-margin-message": "只允许0作为最小垂直边距值。", + "max-vertical-margin-message": "只允许50作为最大垂直边距值。", + "autofill-height": "自动填充布局高度", + "mobile-layout": "移动端布局设置", + "mobile-row-height": "移动端行高距(px)", + "mobile-row-height-required": "移动端行高距必填。", + "min-mobile-row-height-message": "移动端行高距至少5px。", + "max-mobile-row-height-message": "移动端行高距最多200px。", + "display-title": "显示仪表板标题", + "toolbar-always-open": "工具栏常驻", + "title-color": "标题颜色", + "display-dashboards-selection": "显示仪表板选项", + "display-entities-selection": "显示实体选项", + "display-dashboard-timewindow": "显示时间窗口", + "display-dashboard-export": "显示导出", + "import": "导入仪表板", + "export": "导出仪表板", + "export-failed-error": "无法导出仪表板: {{error}}", + "create-new-dashboard": "创建新的仪表板", + "dashboard-file": "仪表板文件", + "invalid-dashboard-file-error": "无法导入仪表板: 仪表板数据结构无效。", + "dashboard-import-missing-aliases-title": "配置导入仪表板使用的别名", + "create-new-widget": "创建新部件", + "import-widget": "导入部件", + "widget-file": "部件文件", + "invalid-widget-file-error": "无法导入窗口部件: 窗口部件数据结构无效。", + "widget-import-missing-aliases-title": "配置导入的窗口部件使用的别名", + "open-toolbar": "打开仪表板工具栏", + "close-toolbar": "关闭工具栏", + "configuration-error": "配置错误", + "alias-resolution-error-title": "仪表板别名配置错误", + "invalid-aliases-config": "无法找到与某些别名过滤器匹配的任何设备。
请联系您的管理员以解决此问题。", + "select-devices": "选择设备", + "assignedToCustomer": "分配给客户", + "public": "公共", + "public-link": "公共链接", + "copy-public-link": "复制公共链接", + "public-link-copied-message": "仪表板的公共链接已被复制到剪贴板", + "manage-states": "仪表板状态管理", + "states": "仪表板状态", + "search-states": "仪表板状态检索", + "selected-states": "{ count, select, 1 {1 仪表板状态} other {# 仪表板状态} } 选中", + "edit-state": "仪表板状态编辑", + "delete-state": "删除仪表板状态", + "add-state": "添加仪表板状态", + "state": "仪表板状态", + "state-name": "状态名", + "state-name-required": "仪表板状态名必填。", + "state-id": "状态ID", + "state-id-required": "仪表板状态ID必填。", + "state-id-exists": "仪表板状态ID已经存在。", + "is-root-state": "根状态", + "delete-state-title": "删除仪表板状态", + "delete-state-text": "确定要删除仪表板状态 '{{stateName}}' 吗?", + "show-details": "显示详情", + "hide-details": "隐藏详情", + "select-state": "选择目标状态", + "state-controller": "状态控制" + }, + "datakey": { + "settings": "设置", + "advanced": "高级", + "label": "标签", + "color": "颜色", + "units": "单位符号", + "decimals": "小数位数", + "data-generation-func": "数据生成功能", + "use-data-post-processing-func": "使用数据后处理功能", + "configuration": "数据键配置", + "timeseries": "时间序列", + "attributes": "属性", + "alarm": "报警字段", + "timeseries-required": "需要设备时间序列。", + "timeseries-or-attributes-required": "设备时间/属性必填。", + "maximum-timeseries-or-attributes": "最大允许 { count, select, 1 {1 时间序列/属性} other {# 时间序列/属性} }", + "alarm-fields-required": "警告字段必填。", + "function-types": "函数类型", + "function-types-required": "需要函数类型。", + "maximum-function-types": "至少需要 { count, select, 1 {1 函数类型} other {# 函数类型} }" + }, + "datasource": { + "type": "数据源类型", + "name": "数据源名称", + "add-datasource-prompt": "请添加数据源" + }, + "details": { + "edit-mode": "编辑模式", + "toggle-edit-mode": "切换编辑模式" + }, + "device": { + "device": "设备", + "device-required": "设备必填", + "devices": "设备", + "management": "设备管理", + "view-devices": "查看设备", + "device-alias": "设备别名", + "aliases": "设备别名", + "no-alias-matching": "'{{alias}}' 没有找到。", + "no-aliases-found": "找不到别名。", + "no-key-matching": "'{{key}}' 没有找到。", + "no-keys-found": "找不到密钥。", + "create-new-alias": "创建一个新的!", + "create-new-key": "创建一个新的!", + "duplicate-alias-error": "找到重复别名 '{{alias}}'。
设备别名必须是唯一的。", + "configure-alias": "配置 '{{alias}}' 别名", + "no-devices-matching": "找不到与 '{{entity}}' 匹配的设备。", + "alias": "别名", + "alias-required": "需要设备别名。", + "remove-alias": "删除设备别名", + "add-alias": "添加设备别名", + "name-starts-with": "名称前缀", + "device-list": "设备列表", + "use-device-name-filter": "使用过滤器", + "device-list-empty": "没有被选中的设备", + "device-name-filter-required": "设备名称过滤器必填。", + "device-name-filter-no-device-matched": "找不到以'{{device}}' 开头的设备。", + "add": "添加设备", + "assign-to-customer": "分配给客户", + "assign-device-to-customer": "将设备分配给客户", + "assign-device-to-customer-text": "请选择要分配给客户的设备", + "make-public": "公开", + "make-private": "私有", + "no-devices-text": "找不到设备", + "assign-to-customer-text": "请选择客户分配设备", + "device-details": "设备详细信息", + "add-device-text": "添加新设备", + "credentials": "凭据", + "manage-credentials": "管理凭据", + "delete": "删除设备", + "assign-devices": "分配设备", + "assign-devices-text": "将{count,select,1 {1 设备} other {# 设备}}分配给客户", + "delete-devices": "删除设备", + "unassign-from-customer": "取消分配客户", + "unassign-devices": "取消分配设备", + "unassign-devices-action-title": "从客户处取消分配{count,select,1 {1 设备} other {# 设备}}", + "assign-new-device": "分配新设备", + "make-public-device-title": "您确定要将设备 '{{deviceName}}' 设为公开吗?", + "make-public-device-text": "确认后,设备及其所有数据将被设为公开并可被其他人访问。", + "make-private-device-title": "您确定要将设备 '{{deviceName}}' 设为私有吗?", + "make-private-device-text": "确认后,设备及其所有数据将被设为私有,不被其他人访问。", + "view-credentials": "查看凭据", + "delete-device-title": "您确定要删除设备的{{deviceName}}吗?", + "delete-device-text": "小心!确认后设备及其所有相关数据将不可恢复。", + "delete-devices-title": "您确定要删除{count,select,1 {1 设备} other {# 设备}} 吗?", + "delete-devices-action-title": "删除 {count,select,1 {1 设备} other {# 设备}}", + "delete-devices-text": "小心!确认后所有选定的设备将被删除,所有相关数据将不可恢复。", + "unassign-device-title": "您确定要取消分配设备 '{{deviceName}}'?", + "unassign-device-text": "确认后,设备将被取消分配,客户将无法访问。", + "unassign-device": "取消分配设备", + "unassign-devices-title": "您确定要取消分配{count,select,1 {1 设备} other {# 设备}} 吗?", + "unassign-devices-text": "确认后,所有选定的设备将被取消分配,并且客户将无法访问。", + "device-credentials": "设备凭据", + "credentials-type": "凭据类型", + "access-token": "访问令牌", + "access-token-required": "需要访问令牌", + "access-token-invalid": "访问令牌长度必须为1到20个字符。", + "rsa-key": "RSA公钥", + "rsa-key-required": "需要RSA公钥", + "secret": "密钥", + "secret-required": "密钥必填", + "device-type": "设备类型", + "device-type-required": "设备类型必填。", + "select-device-type": "选择设备类型", + "enter-device-type": "输入设备类型", + "any-device": "任意设备", + "no-device-types-matching": "没有找到符合 '{{entitySubtype}}' 的设备类型。", + "device-type-list-empty": "未选择设备类型", + "device-types": "设备类型", + "name": "名称", + "name-required": "名称必填。", + "description": "说明", + "events": "事件", + "details": "详细信息", + "copyId": "复制设备ID", + "copyAccessToken": "复制访问令牌", + "idCopiedMessage": "设备ID已复制到剪贴板", + "accessTokenCopiedMessage": "设备访问令牌已复制到剪贴板", + "assignedToCustomer": "分配给客户", + "unable-delete-device-alias-title": "无法删除设备别名", + "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除,因为它被下列部件所使用:
{{widgetsList}}", + "is-gateway": "是网关", + "public": "公开", + "device-public": "设备公开", + "select-device": "选择设备" + }, + "dialog": { + "close": "关闭对话框" + }, + "error": { + "unable-to-connect": "无法连接到服务器!请检查您的互联网连接。", + "unhandled-error-code": "未处理的错误代码: {{errorCode}}", + "unknown-error": "未知错误" + }, + "entity": { + "entity": "实体", + "entities": "实体", + "aliases": "实体别名", + "entity-alias": "实体别名", + "unable-delete-entity-alias-title": "无法删除实体别名", + "unable-delete-entity-alias-text": "实体别名 '{{entityAlias}}' 被以下部件使用不能删除:
{{widgetsList}}", + "duplicate-alias-error": "别名 '{{alias}}' 重复。
同一仪表板别名必须唯一。", + "missing-entity-filter-error": "别名 '{{alias}}' 缺少过滤器", + "configure-alias": "别名 '{{alias}}' 配置", + "alias": "别名", + "alias-required": "实体别名必填。", + "remove-alias": "移除实体别名", + "add-alias": "添加实体别名", + "entity-list": "实体列表", + "entity-type": "实体类型", + "entity-types": "实体类型", + "entity-type-list": "实体类型列表", + "any-entity": "任意实体", + "enter-entity-type": "输入实体类型", + "no-entities-matching": "没有找到符合 '{{entity}}' 的实体。", + "no-entity-types-matching": "没有找到符合 '{{entityType}}' 类型的实体。", + "name-starts-with": "名称开始于", + "use-entity-name-filter": "用户过滤", + "entity-list-empty": "没有选择实体。", + "entity-type-list-empty": "没有选择实体类型。", + "entity-name-filter-required": "实体名过滤器必填。", + "entity-name-filter-no-entity-matched": "没有找到以 '{{entity}}' 开头的实体", + "all-subtypes": "所有", + "select-entities": "选择实体", + "no-aliases-found": "没有找到别名", + "no-alias-matching": "没有找到 '{{alias}}'", + "create-new-alias": "创建新别名", + "key": "键", + "key-name": "键名", + "no-keys-found": "没有找到键", + "no-key-matching": "没有找到键 '{{key}}'", + "create-new-key": "创建新键", + "type": "类型", + "type-required": "实体类型必填。", + "type-device": "设备", + "type-devices": "设备", + "list-of-devices": "{ count, select, 1 {设备} other {# 设备列表} }", + "device-name-starts-with": "以 '{{prefix}}' 开头的设备", + "type-asset": "资产", + "type-assets": "资产", + "list-of-assets": "{ count, select, 1 {资产} other {# 资产列表} }", + "asset-name-starts-with": "以 '{{prefix}}' 开头的资产", + "type-rule": "规则", + "type-rules": "规则", + "list-of-rules": "{ count, select, 1 {规则} other {# 规则列表} }", + "rule-name-starts-with": "以 '{{prefix}}' 开头的规则", + "type-plugin": "插件", + "type-plugins": "插件", + "list-of-plugins": "{ count, select, 1 {插件} other {# 插件列表} }", + "plugin-name-starts-with": "以 '{{prefix}}' 开头的插件", + "type-tenant": "租户", + "type-tenants": "租户", + "list-of-tenants": "{ count, select, 1 {租户} other {# 租户列表} }", + "tenant-name-starts-with": "以 '{{prefix}}' 开头的租户", + "type-customer": "客户", + "type-customers": "客户", + "list-of-customers": "{ count, select, 1 {客户} other {# 客户列表} }", + "customer-name-starts-with": "以 '{{prefix}}' 开头的客户", + "type-user": "用户", + "type-users": "用户", + "list-of-users": "{ count, select, 1 {用户} other {# 用户列表} }", + "user-name-starts-with": "以 '{{prefix}}' 开头的用户", + "type-dashboard": "仪表板", + "type-dashboards": "仪表板", + "list-of-dashboards": "{ count, select, 1 {仪表板} other {# 仪表板列表} }", + "dashboard-name-starts-with": "以 '{{prefix}}' 开头的仪表板", + "type-alarm": "警告", + "type-alarms": "警告", + "list-of-alarms": "{ count, select, 1 {警告} other {# 警告列表} }", + "alarm-name-starts-with": "以 '{{prefix}}' 开头的警告", + "type-rulechain": "规则链", + "type-rulechains": "规则链库", + "list-of-rulechains": "{ count, select, 1 {一个规则链} other {# 规则链列表} }", + "rulechain-name-starts-with": "规则链前缀名称 '{{prefix}}'", + "type-current-customer": "当前客户", + "search": "实体检索", + "selected-entities": "{ count, select, 1 {1 实体} other {# 实体} } 被选中", + "entity-name": "实体名", + "details": "实体详情", + "no-entities-prompt": "没有找到实体", + "no-data": "无数据" + }, + "event": { + "event-type": "事件类型", + "type-error": "错误", + "type-lc-event": "生命周期事件", + "type-stats": "类型统计", + "type-debug-rule-node": "调试", + "type-debug-rule-chain": "调试", + "no-events-prompt": "找不到事件", + "error": "错误", + "alarm": "报警", + "event-time": "事件时间", + "server": "服务器", + "body": "整体", + "method": "方法", + "type": "类型", + "entity": "实体", + "message-id": "消息ID", + "message-type": "消息类型", + "data-type": "数据类型", + "relation-type": "关系类型", + "metadata": "元数据", + "data": "数据", + "event": "事件", + "status": "状态", + "success": "成功", + "failed": "失败", + "messages-processed": "消息处理", + "errors-occurred": "错误发生" + }, + "extension": { + "extensions": "扩展", + "selected-extensions": "{ count, select, 1 {1 扩展} 其它 {# 扩展} } 被选择", + "type": "类型", + "key": "健名", + "value": "值", + "id": "Id", + "extension-id": "扩展ID", + "extension-type": "扩展类型", + "transformer-json": "JSON *", + "unique-id-required": "当前扩展ID已经存在。", + "delete": "删除扩展", + "add": "添加扩展", + "edit": "编辑扩展", + "delete-extension-title": "确实要删除扩展名'{{extensionId}}'吗?", + "delete-extension-text": "小心,确认后,扩展和所有相关数据将变得不可恢复。", + "delete-extensions-title": "您确定要删除 { count, select, 1 {1 表达式} 其它 {# 表达式} }吗?", + "delete-extensions-text": "小心,确认后,所有选定的扩展将被删除。", + "converters": "转换器", + "converter-id": "转换器序号", + "configuration": "配置", + "converter-configurations": "转换器的配置", + "token": "安全令牌", + "add-converter": "添加转换器", + "add-config": "添加转换器配置", + "device-name-expression": "设备名称表达式", + "device-type-expression": "设备类型表达式", + "custom": "顾客", + "to-double": "加倍", + "transformer": "转换器", + "json-required": "转换器JSON必填。", + "json-parse": "无法解析转换器JSON。", + "attributes": "属性", + "add-attribute": "添加属性", + "add-map": "添加映射元素", + "timeseries": "时间序列", + "add-timeseries": "添加时间序列", + "field-required": "必填字段", + "brokers": "代理服务器组", + "add-broker": "添加代理服务器", + "host": "主机", + "port": "端口", + "port-range": "端口应该在1到65535的范围内。", + "ssl": "Ssl", + "credentials": "证书", + "username": "用户名", + "password": "密码", + "retry-interval": "以毫秒为单位的重试间隔", + "anonymous": "匿名", + "basic": "Basic", + "pem": "PEM", + "ca-cert": "CA证书文件 *", + "private-key": "私钥文件 *", + "cert": "证书文件 *", + "no-file": "没有选择文件。", + "drop-file": "删除文件或单击以选择要上载的文件。", + "mapping": "映射", + "topic-filter": "主题滤波", + "converter-type": "转换类型", + "converter-json": "Json", + "json-name-expression": "设备名称JSON表达式", + "topic-name-expression": "设备名称主题表达式", + "json-type-expression": "设备类型JSON表达式", + "topic-type-expression": "设备类型主题表达式", + "attribute-key-expression": "属性关键字表达式", + "attr-json-key-expression": "属性键JSON表达式", + "attr-topic-key-expression": "属性关键字主题表达式", + "request-id-expression": "请求ID表达式", + "request-id-json-expression": "请求ID JSON表达式", + "request-id-topic-expression": "请求ID主题表达式", + "response-topic-expression": "响应主题表达式", + "value-expression": "值表达式", + "topic": "主题", + "timeout": "毫秒超时", + "converter-json-required": "转换JSON是必需的。", + "converter-json-parse": "无法解析转换JSON。", + "filter-expression": "过滤表达式", + "connect-requests": "连接请求", + "add-connect-request": "添加连接请求", + "disconnect-requests": "断开请求", + "add-disconnect-request": "添加断开请求", + "attribute-requests": "属性请求", + "add-attribute-request": "添加属性请求", + "attribute-updates": "属性更新", + "add-attribute-update": "添加属性更新", + "server-side-rpc": "服务端RPC", + "add-server-side-rpc-request": "添加服务端RPC请求", + "device-name-filter": "设备名称滤波", + "attribute-filter": "属性滤波", + "method-filter": "方法滤波", + "request-topic-expression": "请求主题表达式", + "response-timeout": "毫秒内响应超时", + "topic-expression": "主题表达", + "client-scope": "客户范围", + "add-device": "添加服务器", + "opc-server": "服务器组", + "opc-add-server": "添加服务器", + "opc-add-server-prompt": "请添加服务器", + "opc-application-name": "应用名称", + "opc-application-uri": "应用URI", + "opc-scan-period-in-seconds": "秒级扫描周期", + "opc-security": "安全性", + "opc-identity": "身份", + "opc-keystore": "密钥库", + "opc-type": "类型", + "opc-keystore-type": "类型", + "opc-keystore-location": "位置 *", + "opc-keystore-password": "密码", + "opc-keystore-alias": "别名", + "opc-keystore-key-password": "密钥密码", + "opc-device-node-pattern": "设备节点模式", + "opc-device-name-pattern": "设备名称模式", + "modbus-server": "Servers/slaves", + "modbus-add-server": "添加 server/slave", + "modbus-add-server-prompt": "请添加 server/slave", + "modbus-transport": "传输", + "modbus-port-name": "串口名称", + "modbus-encoding": "编码", + "modbus-parity": "奇偶性", + "modbus-baudrate": "波特率", + "modbus-databits": "数据位", + "modbus-stopbits": "停止位", + "modbus-databits-range": "数据位应该在7到8的范围内。", + "modbus-stopbits-range": "停止位应该在1到2的范围内。", + "modbus-unit-id": "单位编号", + "modbus-unit-id-range": "单位ID应该在1到247的范围内", + "modbus-device-name": "设备名称", + "modbus-poll-period": "轮询周期 (ms)", + "modbus-attributes-poll-period": "轮询属性周期 (ms)", + "modbus-timeseries-poll-period": "时间序列轮询周期 (ms)", + "modbus-poll-period-range": "轮询周期应为正值。", + "modbus-tag": "标签", + "modbus-function": "函数", + "modbus-register-address": "寄存器地址", + "modbus-register-address-range": "寄存器地址应该在0到65535的范围内。", + "modbus-register-bit-index": "位索引", + "modbus-register-bit-index-range": "位索引应该在0到15的范围内。", + "modbus-register-count": "寄存器计数", + "modbus-register-count-range": "寄存器计数应该是一个正值。", + "modbus-byte-order": "字节顺序", + "sync": { + "status": "状态", + "sync": "同步", + "not-sync": "不同步", + "last-sync-time": "最后同步时间", + "not-available": "无法使用" + }, + + "export-extensions-configuration": "导出扩展配置", + "import-extensions-configuration": "导入扩展配置", + "import-extensions": "导入扩展", + "import-extension": "导入扩展", + "export-extension": "导出扩展", + "file": "扩展文件", + "invalid-file-error": "无效的扩展文件" + }, + "fullscreen": { + "expand": "展开到全屏", + "exit": "退出全屏", + "toggle": "切换全屏模式", + "fullscreen": "全屏" + }, + "function": { + "function": "函数" + }, + "grid": { + "delete-item-title": "您确定要删除此项吗?", + "delete-item-text": "注意,确认后此项及其所有相关数据将变得不可恢复。", + "delete-items-title": "你确定你要删除 { count, select, 1 {1 项} other {# 项} }吗?", + "delete-items-action-title": "删除 { count, select, 1 {1 项} other {# 项} }", + "delete-items-text": "注意,确认后所有选择的项目将被删除,所有相关数据将不可恢复。", + "add-item-text": "添加新项目", + "no-items-text": "没有找到项目", + "item-details": "项目详细信息", + "delete-item": "删除项目", + "delete-items": "删除项目", + "scroll-to-top": "滚动到顶部" + }, + "help": { + "goto-help-page": "转到帮助页面" + }, + "home": { + "home": "首页", + "profile": "属性", + "logout": "注销", + "menu": "菜单", + "avatar": "头像", + "open-user-menu": "打开用户菜单" + }, + "import": { + "no-file": "没有选择文件", + "drop-file": "拖动一个JSON文件或者单击以选择要上传的文件。" + }, + "item": { + "selected": "选择" + }, + "js-func": { + "no-return-error": "函数必须返回值!", + "return-type-mismatch": "函数必须返回 '{{type}}' 类型的值!", + "tidy": "整洁" + }, + "key-val": { + "key": "键名", + "value": "值", + "remove-entry": "删除条目", + "add-entry": "增加条目", + "no-data": "没有条目" + }, + "layout": { + "layout": "布局", + "manage": "布局管理", + "settings": "布局设置", + "color": "颜色", + "main": "主体", + "right": "右侧", + "select": "选择目标布局" + }, + "legend": { + "position": "图例位置", + "show-max": "显示最大值", + "show-min": "显示最小值", + "show-avg": "显示平均值", + "show-total": "显示总数", + "settings": "图例设置", + "min": "最小值", + "max": "最大值", + "avg": "平均值", + "total": "总数" + }, + "login": { + "login": "登录", + "request-password-reset": "请求密码重置", + "reset-password": "重置密码", + "create-password": "创建密码", + "passwords-mismatch-error": "输入的密码必须相同!", + "password-again": "再次输入密码", + "sign-in": "登录 ", + "username": "用户名(电子邮件)", + "remember-me": "记住我", + "forgot-password": "忘记密码?", + "password-reset": "密码重置", + "new-password": "新密码", + "new-password-again": "再次输入新密码", + "password-link-sent-message": "密码重置链接已成功发送!", + "email": "电子邮件" + }, + "position": { + "top": "顶部", + "bottom": "底部", + "left": "左侧", + "right": "右侧" + }, + "profile": { + "profile": "属性", + "change-password": "更改密码", + "current-password": "当前密码" + }, + "relation": { + "relations": "关联", + "direction": "方向", + "search-direction": { + "FROM": "从", + "TO": "到" + }, + "direction-type": { + "FROM": "从", + "TO": "到" + }, + "from-relations": "向外的关联", + "to-relations": "向内的关联", + "selected-relations": "{ count, select, 1 {1 关联} other {# 关联} } 被选中", + "type": "类型", + "to-entity-type": "到实体类型", + "to-entity-name": "到实体名称", + "from-entity-type": "从实体类型", + "from-entity-name": "从实体类型", + "to-entity": "到实体", + "from-entity": "从实体", + "delete": "删除关联", + "relation-type": "关联类型", + "relation-type-required": "关联类型必填", + "any-relation-type": "任意类型", + "add": "添加关联", + "edit": "编辑关联", + "delete-to-relation-title": "确定要删除实体 '{{entityName}}' 的关联吗?", + "delete-to-relation-text": "确定删除后实体 '{{entityName}}' 将取消与当前实体的关联关系。", + "delete-to-relations-title": "确定要删除 { count, select, 1 {1 关联} other {# 关联} }?", + "delete-to-relations-text": "确定删除所有选择的关联关系后,与当前实体对应的所有关联关系将被移除。", + "delete-from-relation-title": "确定要从实体 '{{entityName}}' 删除关联吗?", + "delete-from-relation-text": "确定删除后,当前实体将与实体 '{{entityName}}' 取消关联", + "delete-from-relations-title": "确定删除 { count, select, 1 {1 关联} other {# 关联} } 吗?", + "delete-from-relations-text": "确定删除所有选择的关联关系后,当前实体将与对应的实体取消关联", + "remove-relation-filter": "移除关联过滤器", + "add-relation-filter": "添加关联过滤器", + "any-relation": "任意关联", + "relation-filters": "关联过滤器", + "additional-info": "附加信息 (JSON)", + "invalid-additional-info": "无法解析附加信息json。" + }, + "rulechain": { + "rulechain": "规则链", + "rulechains": "规则链库", + "root": "根实体", + "delete": "删除规则", + "activate": "激活规则", + "suspend": "暂停规则", + "active": "激活", + "suspended": "暂停", + "name": "名称", + "name-required": "名称必填。", + "description": "描述", + "add": "添加规则", + "set-root": "创建规则链根", + "set-root-rulechain-title": "您确定要生成规则链'{{RuleChainName}}'根吗?", + "set-root-rulechain-text": "确认之后,规则链将变为根规格链,并将处理所有传入的传输消息。", + "delete-rulechain-title": " 确实要删除规则链'{{ruleChainName}}'吗?", + "delete-rulechain-text": "小心,在确认规则链和所有相关数据将变得不可恢复。", + "delete-rulechains-title": "确实要删除{count, select, 1 { 1 规则链}其他{# 规则链库}}吗?", + "delete-rulechains-action-title": "删除 { count, select, 1 {1 规则链} other {# 规则链库} }", + "delete-rulechains-text": "小心,确认后,所有选定的规则链将被删除,所有相关的数据将变得不可恢复。", + "add-rulechain-text": "添加新的规则链", + "no-rulechains-text": "规则链没有发现", + "rulechain-details": "规则链详情", + "details": "详情", + "events": "事件", + "system": "系统", + "import": "导入规则", + "export": "导出规则", + "export-failed-error": "无法导出规则:{{error}}", + "create-new-rulechain": "创建新的规则链", + "rulechain-file": "规则链文件", + "invalid-rulechain-file-error": "不能导入规则链:无效的规则链数据格式。", + "copyId": "复制规则链ID", + "idCopiedMessage": "规则ID已经复制到粘贴板", + "select-rulechain": "选择规则链", + "no-rulechains-matching": "没有发现匹配'{{entity}}'的规则链。", + "rulechain-required": "规则链必填", + "management": "规则集管理", + "debug-mode": "调试模式" + }, + "rulenode": { + "details": "详情", + "events": "事件", + "search": "搜索节点", + "open-node-library": "打开节点库", + "add": "添加规则节点", + "name": "名称", + "name-required": "名称必填。", + "type": "类型", + "description": "描述", + "delete": "删除规则节点", + "select-all-objects": "选择所有节点和连接", + "deselect-all-objects": "取消选择所有节点和连接", + "delete-selected-objects": "删除选定的节点和连接", + "delete-selected": "删除选定", + "select-all": "选择全部", + "copy-selected": "选择副本", + "deselect-all": "取消选择", + "rulenode-details": "规则节点详情", + "debug-mode": "调试模式", + "configuration": "配置", + "link": "链接", + "link-details": "规则节点链接详情", + "add-link": "添加链接", + "link-label": "链接标签", + "link-label-required": "链接标签必填", + "custom-link-label": "自定义链接标签", + "custom-link-label-required": "自定义链接标签必填", + "type-filter": "滤波器", + "type-filter-details": "使用配置条件过滤传入消息", + "type-enrichment": "属性集", + "type-enrichment-details": "向消息元数据中添加附加信息", + "type-transformation": "变换", + "type-transformation-details": "更改消息有效载荷和元数据", + "type-action": "动作", + "type-action-details": "执行特别动作", + "type-external": "外部的", + "type-external-details": "与外部系统交互", + "type-rule-chain": "规则链", + "type-rule-chain-details": "将传入消息转发到指定的规则链", + "type-input": "输入", + "type-input-details": "规则链的逻辑输入,将传入消息转发到下一个相关规则节点", + "directive-is-not-loaded": "定义的配置指令 '{{directiveName}}' 不可用。", + "ui-resources-load-error": "加载配置UI资源失败。", + "invalid-target-rulechain": "无法解析目标规则链!", + "test-script-function": "测试脚本功能", + "message": "消息", + "message-type": "消息类型", + "message-type-required": "消息类型必填", + "metadata": "元数据", + "metadata-required": "元数据项不能为空。", + "output": "输出", + "test": "测试", + "help": "帮助" + }, + "tenant": { + "tenant": "租户", + "tenants": "租户", + "management": "租户管理", + "add": "添加租户", + "admins": "管理员", + "manage-tenant-admins": "管理租户管理员", + "delete": "删除租户", + "add-tenant-text": "添加新租户", + "no-tenants-text": "没有找到租户", + "tenant-details": "租客详情", + "delete-tenant-title": "您确定要删除租户'{{tenantTitle}}'吗?", + "delete-tenant-text": "小心!确认后,租户和所有相关数据将不可恢复。", + "delete-tenants-title": "您确定要删除 {count,select,1 {1 租户} other {# 租户}} 吗?", + "delete-tenants-action-title": "删除 { count, select, 1 {1 租户} other {# 租户} }", + "delete-tenants-text": "小心!确认后,所有选定的租户将被删除,所有相关数据将不可恢复。", + "title": "标题", + "title-required": "标题必填。", + "description": "描述", + "details": "详情", + "events": "事件", + "copyId": "复制租户ID", + "idCopiedMessage": "租户ID已经复制到粘贴板", + "select-tenant": "选择租户", + "no-tenants-matching": "没有找到符合 '{{entity}}' 的租户", + "tenant-required": "租户必填" + }, + "timeinterval": { + "seconds-interval": "{ seconds, select, 1 {1 秒} other {# 秒} }", + "minutes-interval": "{ minutes, select, 1 {1 分} other {# 分} }", + "hours-interval": "{ hours, select, 1 {1 小时} other {# 小时} }", + "days-interval": "{ days, select, 1 {1 天} other {# 天} }", + "days": "天", + "hours": "时", + "minutes": "分", + "seconds": "秒", + "advanced": "高级" + }, + "timewindow": { + "days": "{ days, select, 1 { 天 } other {# 天 } }", + "hours": "{ hours, select, 0 { 小时 } 1 {1 小时 } other {# 小时 } }", + "minutes": "{ minutes, select, 0 { 分 } 1 {1 分 } other {# 分 } }", + "seconds": "{ seconds, select, 0 { 秒 } 1 {1 秒 } other {# 秒 } }", + "realtime": "实时", + "history": "历史", + "last-prefix": "最后", + "period": "从 {{ startTime }} 到 {{ endTime }}", + "edit": "编辑时间窗口", + "date-range": "日期范围", + "last": "最后", + "time-period": "时间段" + }, + "user": { + "user": "用户", + "users": "用户", + "customer-users": "客户用户", + "tenant-admins": "租户管理员", + "sys-admin": "系统管理员", + "tenant-admin": "租户管理员", + "customer": "客户", + "anonymous": "匿名", + "add": "添加用户", + "delete": "删除用户", + "add-user-text": "添加新用户", + "no-users-text": "找不到用户", + "user-details": "用户详细信息", + "delete-user-title": "您确定要删除用户 '{{userEmail}}' 吗?", + "delete-user-text": "小心!确认后,用户和所有相关数据将不可恢复。", + "delete-users-title": "你确定你要删除 { count, select, 1 {1 用户} other {# 用户} } 吗?", + "delete-users-action-title": "删除 { count, select, 1 {1 用户} other {# 用户} }", + "delete-users-text": "小心!确认后,所有选定的用户将被删除,所有相关数据将不可恢复。", + "activation-email-sent-message": "激活电子邮件已成功发送!", + "resend-activation": "重新发送激活", + "email": "电子邮件", + "email-required": "电子邮件必填。", + "invalid-email-format": "无效的邮件格式。", + "first-name": "名字", + "last-name": "姓", + "description": "描述", + "default-dashboard": "默认面板", + "always-fullscreen": "始终全屏", + "select-user": "选择用户", + "no-users-matching": "没有找到符合 '{{entity}}' 的用户。", + "user-required": "用户必填", + "activation-method": "激活方式", + "display-activation-link": "显示激活链接", + "send-activation-mail": "发送激活邮件", + "activation-link": "用户激活链接", + "activation-link-text": "使用该链接 激活 激活用户:", + "copy-activation-link": "复制用户激活链接", + "activation-link-copied-message": "用户激活链接已经复制到粘贴板", + "details": "详细信息" + }, + "value": { + "type": "值类型", + "string": "字符串", + "string-value": "字符串值", + "integer": "数字", + "integer-value": "数字值", + "invalid-integer-value": "整数值无效", + "double": "双精度小数", + "double-value": "双精度小数值", + "boolean": "布尔", + "boolean-value": "布尔值", + "false": "假", + "true": "真", + "long": "Long" + }, + "widget": { + "widget-library": "部件库", + "widget-bundle": "部件包", + "select-widgets-bundle": "选择部件包", + "management": "管理部件", + "editor": "部件编辑器", + "widget-type-not-found": "加载部件配置出错。
可能关联的\n 部件已经删除了。", + "widget-type-load-error": "由于以下错误未加载小部件:", + "remove": "删除部件", + "edit": "编辑部件", + "remove-widget-title": "确实要删除 '{{widgetTitle}}'部件吗?", + "remove-widget-text": "确认后,控件和所有相关数据将变得不可恢复。", + "timeseries": "时间序列", + "search-data": "搜索数据", + "no-data-found": "没有找到数据", + "latest-values": "最新值", + "rpc": "控件部件", + "alarm": "警告部件", + "static": "静态部件", + "select-widget-type": "选择窗口部件类型", + "missing-widget-title-error": "部件标题必须指定!", + "widget-saved": "部件已保存", + "unable-to-save-widget-error": "无法保存部件!控件有错误!", + "save": "保存部件", + "saveAs": "部件另存为", + "save-widget-type-as": "部件类型另存为", + "save-widget-type-as-text": "请输入新的部件标题或选择目标部件包", + + "toggle-fullscreen": "切换全屏", + "run": "运行部件", + "title": "部件标题", + "title-required": "需要部件标题。", + "type": "部件类型", + "resources": "资源", + "resource-url": "JavaScript/CSS URL", + "remove-resource": "删除资源", + "add-resource": "添加资源", + "html": "HTML", + "tidy": "整理", + "css": "CSS", + "settings-schema": "设置模式", + "datakey-settings-schema": "数据键设置模式", + "javascript": "Javascript", + "remove-widget-type-title": "您确定要删除部件类型 '{{widgetName}}'吗?", + "remove-widget-type-text": "确认后,窗口部件类型和所有相关数据将不可恢复。", + "remove-widget-type": "删除部件类型", + "add-widget-type": "添加新的部件类型", + "widget-type-load-failed-error": "无法加载部件类型!", + "widget-template-load-failed-error": "无法加载部件模板!", + "add": "添加部件", + "undo": "撤消部件更改", + "export": "导出部件" + }, + "widget-action": { + "header-button": "部件顶部按钮", + "open-dashboard-state": "切换到新仪表板状态", + "update-dashboard-state": "更新当前仪表板状态", + "open-dashboard": "切换到另一个仪表板", + "custom": "自定义动作", + "target-dashboard-state": "目标仪表板状态", + "target-dashboard-state-required": "目标仪表板状态必填", + "set-entity-from-widget": "从部件中设置实体", + "target-dashboard": "目标仪表板", + "open-right-layout": "打开右侧布局 (移动端视图)" + }, + "widgets-bundle": { + "current": "当前包", + "widgets-bundles": "部件包", + "add": "添加部件包", + "delete": "删除部件包", + "title": "标题", + "title-required": "标题必填。", + "add-widgets-bundle-text": "添加新的部件包", + "no-widgets-bundles-text": "找不到部件包", + "empty": "部件包是空的", + "details": "详情", + "widgets-bundle-details": "部件包详细信息", + "delete-widgets-bundle-title": "您确定要删除部件包 '{{widgetsBundleTitle}}'吗?", + "delete-widgets-bundle-text": "小心!确认后,部件包和所有相关数据将不可恢复。", + "delete-widgets-bundles-title": "你确定你要删除 { count, select, 1 {1 部件包} other {# 部件包} } 吗?", + "delete-widgets-bundles-action-title": "删除 { count, select, 1 {1 部件包} other {# 部件包} }", + "delete-widgets-bundles-text": "小心!确认后,所有选定的部件包将被删除,所有相关数据将不可恢复。", + "no-widgets-bundles-matching": "没有找到与 '{{widgetsBundle}}' 匹配的部件包。", + "widgets-bundle-required": "需要部件包。", + "system": "系统", + "import": "导入部件包", + "export": "导出部件包", + "export-failed-error": "无法导出部件包: {{error}}", + "create-new-widgets-bundle": "创建新的部件包", + "widgets-bundle-file": "部件包文件", + "invalid-widgets-bundle-file-error": "无法导入部件包:无效的部件包数据结构。" + }, + "widget-config": { + "data": "数据", + "settings": "设置", + "advanced": "高级", + "title": "标题", + "general-settings": "常规设置", + "display-title": "显示标题", + "drop-shadow": "阴影", + "enable-fullscreen": "启用全屏", + "background-color": "背景颜色", + "text-color": "文字颜色", + "padding": "填充", + "margin": "边缘", + "widget-style": "部件风格", + "title-style": "标题风格", + "mobile-mode-settings": "移动端设置", + "order": "顺序", + "height": "高度", + "units": "特殊符号展示值", + "decimals": "浮点数后的位数", + "timewindow": "时间窗口", + "use-dashboard-timewindow": "使用仪表板的时间窗口", + "display-legend": "显示图例", + "datasources": "数据源", + "maximum-datasources": "最大允许 { count, select, 1 {1 数据} other {# 数据} }", + "datasource-type": "类型", + "datasource-parameters": "参数", + "remove-datasource": "移除数据源", + "add-datasource": "添加数据源", + "target-device": "目标设备", + "alarm-source": "警告源", + "actions": "动作", + "action": "动作", + "add-action": "添加动作", + "search-actions": "动作检索", + "action-source": "动作源", + "action-source-required": "动作源必填", + "action-name": "动作名称", + "action-name-required": "动作名称必填。", + "action-name-not-unique": "动作名称已经存在。
统一动作源的动作名称必须唯一。", + "action-icon": "图标", + "action-type": "类型", + "action-type-required": "类型必填", + "edit-action": "编辑动作", + "delete-action": "删除动作", + "delete-action-title": "删除部件动作", + "delete-action-text": "确定要删除部件动作 '{{actionName}}' 吗?" + }, + "widget-type": { + "import": "导入部件类型", + "export": "导出部件类型", + "export-failed-error": "无法导出部件类型: {{error}}", + "create-new-widget-type": "创建新的部件类型", + "widget-type-file": "部件类型文件", + "invalid-widget-type-file-error": "无法导入部件类型:无效的部件类型数据结构。" + }, + "icon": { + "icon": "图标", + "select-icon": "选择图标", + "material-icons": "素材图标", + "show-all": "显示所有图标" + }, + "custom": { + "widget-action": { + "action-cell-button": "动作单元格按钮", + "row-click": "点击行", + "marker-click": "点击标记", + "tooltip-tag-action": "提示标签动作" + } + }, + "language": { + "language": "语言", + "en_US": "英语", + "ko_KR": "韩语", + "zh_CN": "汉语", + "ru_RU": "俄语", + "es_ES": "西班牙语", + "it_IT": "意大利" + } +} diff --git a/ui/src/app/locale/locale.constant.js b/ui/src/app/locale/locale.constant.js deleted file mode 100644 index 77bdae8d0d..0000000000 --- a/ui/src/app/locale/locale.constant.js +++ /dev/null @@ -1,1478 +0,0 @@ -/* - * Copyright © 2016-2018 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import ThingsboardMissingTranslateHandler from './translate-handler'; - -export default angular.module('thingsboard.locale', []) - .factory('tbMissingTranslationHandler', ThingsboardMissingTranslateHandler) - .constant('locales', - { - 'en_US': { - "access": { - "unauthorized": "Unauthorized", - "unauthorized-access": "Unauthorized Access", - "unauthorized-access-text": "You should sign in to have access to this resource!", - "access-forbidden": "Access Forbidden", - "access-forbidden-text": "You haven't access rights to this location!
Try to sign in with different user if you still wish to gain access to this location.", - "refresh-token-expired": "Session has expired", - "refresh-token-failed": "Unable to refresh session" - }, - "action": { - "activate": "Activate", - "suspend": "Suspend", - "save": "Save", - "saveAs": "Save as", - "cancel": "Cancel", - "ok": "OK", - "delete": "Delete", - "add": "Add", - "yes": "Yes", - "no": "No", - "update": "Update", - "remove": "Remove", - "search": "Search", - "clear-search": "Clear search", - "assign": "Assign", - "unassign": "Unassign", - "share": "Share", - "make-private": "Make private", - "apply": "Apply", - "apply-changes": "Apply changes", - "edit-mode": "Edit mode", - "enter-edit-mode": "Enter edit mode", - "decline-changes": "Decline changes", - "close": "Close", - "back": "Back", - "run": "Run", - "sign-in": "Sign in!", - "edit": "Edit", - "view": "View", - "create": "Create", - "drag": "Drag", - "refresh": "Refresh", - "undo": "Undo", - "copy": "Copy", - "paste": "Paste", - "copy-reference": "Copy reference", - "paste-reference": "Paste reference", - "import": "Import", - "export": "Export", - "share-via": "Share via {{provider}}" - }, - "aggregation": { - "aggregation": "Aggregation", - "function": "Data aggregation function", - "limit": "Max values", - "group-interval": "Grouping interval", - "min": "Min", - "max": "Max", - "avg": "Average", - "sum": "Sum", - "count": "Count", - "none": "None" - }, - "admin": { - "general": "General", - "general-settings": "General Settings", - "outgoing-mail": "Outgoing Mail", - "outgoing-mail-settings": "Outgoing Mail Settings", - "system-settings": "System Settings", - "test-mail-sent": "Test mail was successfully sent!", - "base-url": "Base URL", - "base-url-required": "Base URL is required.", - "mail-from": "Mail From", - "mail-from-required": "Mail From is required.", - "smtp-protocol": "SMTP protocol", - "smtp-host": "SMTP host", - "smtp-host-required": "SMTP host is required.", - "smtp-port": "SMTP port", - "smtp-port-required": "You must supply a smtp port.", - "smtp-port-invalid": "That doesn't look like a valid smtp port.", - "timeout-msec": "Timeout (msec)", - "timeout-required": "Timeout is required.", - "timeout-invalid": "That doesn't look like a valid timeout.", - "enable-tls": "Enable TLS", - "send-test-mail": "Send test mail" - }, - "alarm": { - "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": { - "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": { - "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": "Attributes", - "latest-telemetry": "Latest telemetry", - "attributes-scope": "Entity attributes scope", - "scope-latest-telemetry": "Latest telemetry", - "scope-client": "Client attributes", - "scope-server": "Server attributes", - "scope-shared": "Shared attributes", - "add": "Add attribute", - "key": "Key", - "last-update-time": "Last update time", - "key-required": "Attribute key is required.", - "value": "Value", - "value-required": "Attribute value is required.", - "delete-attributes-title": "Are you sure you want to delete { count, select, 1 {1 attribute} other {# attributes} }?", - "delete-attributes-text": "Be careful, after the confirmation all selected attributes will be removed.", - "delete-attributes": "Delete attributes", - "enter-attribute-value": "Enter attribute value", - "show-on-widget": "Show on widget", - "widget-mode": "Widget mode", - "next-widget": "Next widget", - "prev-widget": "Previous widget", - "add-to-dashboard": "Add to dashboard", - "add-widget-to-dashboard": "Add widget to dashboard", - "selected-attributes": "{ count, select, 1 {1 attribute} other {# attributes} } selected", - "selected-telemetry": "{ count, select, 1 {1 telemetry unit} other {# telemetry units} } selected" - }, - "audit-log": { - "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": "You have unsaved changes. Are you sure you want to leave this page?", - "html-message": "You have unsaved changes.
Are you sure you want to leave this page?", - "title": "Unsaved changes" - }, - "contact": { - "country": "Country", - "city": "City", - "state": "State / Province", - "postal-code": "Zip / Postal Code", - "postal-code-invalid": "Invalid Zip / Postal Code format.", - "address": "Address", - "address2": "Address 2", - "phone": "Phone", - "email": "Email", - "no-address": "No address" - }, - "common": { - "username": "Username", - "password": "Password", - "enter-username": "Enter username", - "enter-password": "Enter password", - "enter-search": "Enter search" - }, - "content-type": { - "json": "Json", - "text": "Text", - "binary": "Binary (Base64)" - }, - "customer": { - "customer": "Customer", - "customers": "Customers", - "management": "Customer management", - "dashboard": "Customer Dashboard", - "dashboards": "Customer Dashboards", - "devices": "Customer Devices", - "assets": "Customer Assets", - "public-dashboards": "Public Dashboards", - "public-devices": "Public Devices", - "public-assets": "Public Assets", - "add": "Add Customer", - "delete": "Delete customer", - "manage-customer-users": "Manage customer users", - "manage-customer-devices": "Manage customer devices", - "manage-customer-dashboards": "Manage customer dashboards", - "manage-public-devices": "Manage public devices", - "manage-public-dashboards": "Manage public dashboards", - "manage-customer-assets": "Manage customer assets", - "manage-public-assets": "Manage public assets", - "add-customer-text": "Add new customer", - "no-customers-text": "No customers found", - "customer-details": "Customer details", - "delete-customer-title": "Are you sure you want to delete the customer '{{customerTitle}}'?", - "delete-customer-text": "Be careful, after the confirmation the customer and all related data will become unrecoverable.", - "delete-customers-title": "Are you sure you want to delete { count, select, 1 {1 customer} other {# customers} }?", - "delete-customers-action-title": "Delete { count, select, 1 {1 customer} other {# customers} }", - "delete-customers-text": "Be careful, after the confirmation all selected customers will be removed and all related data will become unrecoverable.", - "manage-users": "Manage users", - "manage-assets": "Manage assets", - "manage-devices": "Manage devices", - "manage-dashboards": "Manage dashboards", - "title": "Title", - "title-required": "Title is required.", - "description": "Description", - "details": "Details", - "events": "Events", - "copyId": "Copy customer Id", - "idCopiedMessage": "Customer Id has been copied to clipboard", - "select-customer": "Select customer", - "no-customers-matching": "No customers matching '{{entity}}' were found.", - "customer-required": "Customer is required", - "select-default-customer": "Select default customer", - "default-customer": "Default customer", - "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level" - }, - "datetime": { - "date-from": "Date from", - "time-from": "Time from", - "date-to": "Date to", - "time-to": "Time to" - }, - "dashboard": { - "dashboard": "Dashboard", - "dashboards": "Dashboards", - "management": "Dashboard management", - "view-dashboards": "View Dashboards", - "add": "Add Dashboard", - "assign-dashboard-to-customer": "Assign Dashboard(s) To Customer", - "assign-dashboard-to-customer-text": "Please select the dashboards to assign to the customer", - "assign-to-customer-text": "Please select the customer to assign the dashboard(s)", - "assign-to-customer": "Assign to customer", - "unassign-from-customer": "Unassign from customer", - "make-public": "Make dashboard public", - "make-private": "Make dashboard private", - "manage-assigned-customers": "Manage assigned customers", - "assigned-customers": "Assigned customers", - "assign-to-customers": "Assign Dashboard(s) To Customers", - "assign-to-customers-text": "Please select the customers to assign the dashboard(s)", - "unassign-from-customers": "Unassign Dashboard(s) From Customers", - "unassign-from-customers-text": "Please select the customers to unassign from the dashboard(s)", - "no-dashboards-text": "No dashboards found", - "no-widgets": "No widgets configured", - "add-widget": "Add new widget", - "title": "Title", - "select-widget-title": "Select widget", - "select-widget-subtitle": "List of available widget types", - "delete": "Delete dashboard", - "title-required": "Title is required.", - "description": "Description", - "details": "Details", - "dashboard-details": "Dashboard details", - "add-dashboard-text": "Add new dashboard", - "assign-dashboards": "Assign dashboards", - "assign-new-dashboard": "Assign new dashboard", - "assign-dashboards-text": "Assign { count, select, 1 {1 dashboard} other {# dashboards} } to customers", - "unassign-dashboards-action-text": "Unassign { count, select, 1 {1 dashboard} other {# dashboards} } from customers", - "delete-dashboards": "Delete dashboards", - "unassign-dashboards": "Unassign dashboards", - "unassign-dashboards-action-title": "Unassign { count, select, 1 {1 dashboard} other {# dashboards} } from customer", - "delete-dashboard-title": "Are you sure you want to delete the dashboard '{{dashboardTitle}}'?", - "delete-dashboard-text": "Be careful, after the confirmation the dashboard and all related data will become unrecoverable.", - "delete-dashboards-title": "Are you sure you want to delete { count, select, 1 {1 dashboard} other {# dashboards} }?", - "delete-dashboards-action-title": "Delete { count, select, 1 {1 dashboard} other {# dashboards} }", - "delete-dashboards-text": "Be careful, after the confirmation all selected dashboards will be removed and all related data will become unrecoverable.", - "unassign-dashboard-title": "Are you sure you want to unassign the dashboard '{{dashboardTitle}}'?", - "unassign-dashboard-text": "After the confirmation the dashboard will be unassigned and won't be accessible by the customer.", - "unassign-dashboard": "Unassign dashboard", - "unassign-dashboards-title": "Are you sure you want to unassign { count, select, 1 {1 dashboard} other {# dashboards} }?", - "unassign-dashboards-text": "After the confirmation all selected dashboards will be unassigned and won't be accessible by the customer.", - "public-dashboard-title": "Dashboard is now public", - "public-dashboard-text": "Your dashboard {{dashboardTitle}} is now public and accessible via next public link:", - "public-dashboard-notice": "Note: Do not forget to make related devices public in order to access their data.", - "make-private-dashboard-title": "Are you sure you want to make the dashboard '{{dashboardTitle}}' private?", - "make-private-dashboard-text": "After the confirmation the dashboard will be made private and won't be accessible by others.", - "make-private-dashboard": "Make dashboard private", - "socialshare-text": "'{{dashboardTitle}}' powered by ThingsBoard", - "socialshare-title": "'{{dashboardTitle}}' powered by ThingsBoard", - "select-dashboard": "Select dashboard", - "no-dashboards-matching": "No dashboards matching '{{entity}}' were found.", - "dashboard-required": "Dashboard is required.", - "select-existing": "Select existing dashboard", - "create-new": "Create new dashboard", - "new-dashboard-title": "New dashboard title", - "open-dashboard": "Open dashboard", - "set-background": "Set background", - "background-color": "Background color", - "background-image": "Background image", - "background-size-mode": "Background size mode", - "no-image": "No image selected", - "drop-image": "Drop an image or click to select a file to upload.", - "settings": "Settings", - "columns-count": "Columns count", - "columns-count-required": "Columns count is required.", - "min-columns-count-message": "Only 10 minimum column count is allowed.", - "max-columns-count-message": "Only 1000 maximum column count is allowed.", - "widgets-margins": "Margin between widgets", - "horizontal-margin": "Horizontal margin", - "horizontal-margin-required": "Horizontal margin value is required.", - "min-horizontal-margin-message": "Only 0 is allowed as minimum horizontal margin value.", - "max-horizontal-margin-message": "Only 50 is allowed as maximum horizontal margin value.", - "vertical-margin": "Vertical margin", - "vertical-margin-required": "Vertical margin value is required.", - "min-vertical-margin-message": "Only 0 is allowed as minimum vertical margin value.", - "max-vertical-margin-message": "Only 50 is allowed as maximum vertical margin value.", - "autofill-height": "Auto fill layout height", - "mobile-layout": "Mobile layout settings", - "mobile-row-height": "Mobile row height, px", - "mobile-row-height-required": "Mobile row height value is required.", - "min-mobile-row-height-message": "Only 5 pixels is allowed as minimum mobile row height value.", - "max-mobile-row-height-message": "Only 200 pixels is allowed as maximum mobile row height value.", - "display-title": "Display dashboard title", - "toolbar-always-open": "Keep toolbar opened", - "title-color": "Title color", - "display-dashboards-selection": "Display dashboards selection", - "display-entities-selection": "Display entities selection", - "display-dashboard-timewindow": "Display timewindow", - "display-dashboard-export": "Display export", - "import": "Import dashboard", - "export": "Export dashboard", - "export-failed-error": "Unable to export dashboard: {{error}}", - "create-new-dashboard": "Create new dashboard", - "dashboard-file": "Dashboard file", - "invalid-dashboard-file-error": "Unable to import dashboard: Invalid dashboard data structure.", - "dashboard-import-missing-aliases-title": "Configure aliases used by imported dashboard", - "create-new-widget": "Create new widget", - "import-widget": "Import widget", - "widget-file": "Widget file", - "invalid-widget-file-error": "Unable to import widget: Invalid widget data structure.", - "widget-import-missing-aliases-title": "Configure aliases used by imported widget", - "open-toolbar": "Open dashboard toolbar", - "close-toolbar": "Close toolbar", - "configuration-error": "Configuration error", - "alias-resolution-error-title": "Dashboard aliases configuration error", - "invalid-aliases-config": "Unable to find any devices matching to some of the aliases filter.
" + - "Please contact your administrator in order to resolve this issue.", - "select-devices": "Select devices", - "assignedToCustomer": "Assigned to customer", - "assignedToCustomers": "Assigned to customers", - "public": "Public", - "public-link": "Public link", - "copy-public-link": "Copy public link", - "public-link-copied-message": "Dashboard public link has been copied to clipboard", - "manage-states": "Manage dashboard states", - "states": "Dashboard states", - "search-states": "Search dashboard states", - "selected-states": "{ count, select, 1 {1 dashboard state} other {# dashboard states} } selected", - "edit-state": "Edit dashboard state", - "delete-state": "Delete dashboard state", - "add-state": "Add dashboard state", - "state": "Dashboard state", - "state-name": "Name", - "state-name-required": "Dashboard state name is required.", - "state-id": "State Id", - "state-id-required": "Dashboard state id is required.", - "state-id-exists": "Dashboard state with the same id is already exists.", - "is-root-state": "Root state", - "delete-state-title": "Delete dashboard state", - "delete-state-text": "Are you sure you want delete dashboard state with name '{{stateName}}'?", - "show-details": "Show details", - "hide-details": "Hide details", - "select-state": "Select target state", - "state-controller": "State controller" - }, - "datakey": { - "settings": "Settings", - "advanced": "Advanced", - "label": "Label", - "color": "Color", - "units": "Special symbol to show next to value", - "decimals": "Number of digits after floating point", - "data-generation-func": "Data generation function", - "use-data-post-processing-func": "Use data post-processing function", - "configuration": "Data key configuration", - "timeseries": "Timeseries", - "attributes": "Attributes", - "alarm": "Alarm fields", - "timeseries-required": "Entity timeseries are required.", - "timeseries-or-attributes-required": "Entity timeseries/attributes are required.", - "maximum-timeseries-or-attributes": "Maximum { count, select, 1 {1 timeseries/attribute is allowed.} other {# timeseries/attributes are allowed} }", - "alarm-fields-required": "Alarm fields are required.", - "function-types": "Function types", - "function-types-required": "Function types are required.", - "maximum-function-types": "Maximum { count, select, 1 {1 function type is allowed.} other {# function types are allowed} }" - }, - "datasource": { - "type": "Datasource type", - "name": "Name", - "add-datasource-prompt": "Please add datasource" - }, - "details": { - "edit-mode": "Edit mode", - "toggle-edit-mode": "Toggle edit mode" - }, - "device": { - "device": "Device", - "device-required": "Device is required.", - "devices": "Devices", - "management": "Device management", - "view-devices": "View Devices", - "device-alias": "Device alias", - "aliases": "Device aliases", - "no-alias-matching": "'{{alias}}' not found.", - "no-aliases-found": "No aliases found.", - "no-key-matching": "'{{key}}' not found.", - "no-keys-found": "No keys found.", - "create-new-alias": "Create a new one!", - "create-new-key": "Create a new one!", - "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
Device aliases must be unique whithin the dashboard.", - "configure-alias": "Configure '{{alias}}' alias", - "no-devices-matching": "No devices matching '{{entity}}' were found.", - "alias": "Alias", - "alias-required": "Device alias is required.", - "remove-alias": "Remove device alias", - "add-alias": "Add device alias", - "name-starts-with": "Device name starts with", - "device-list": "Device list", - "use-device-name-filter": "Use filter", - "device-list-empty": "No devices selected.", - "device-name-filter-required": "Device name filter is required.", - "device-name-filter-no-device-matched": "No devices starting with '{{device}}' were found.", - "add": "Add Device", - "assign-to-customer": "Assign to customer", - "assign-device-to-customer": "Assign Device(s) To Customer", - "assign-device-to-customer-text": "Please select the devices to assign to the customer", - "make-public": "Make device public", - "make-private": "Make device private", - "no-devices-text": "No devices found", - "assign-to-customer-text": "Please select the customer to assign the device(s)", - "device-details": "Device details", - "add-device-text": "Add new device", - "credentials": "Credentials", - "manage-credentials": "Manage credentials", - "delete": "Delete device", - "assign-devices": "Assign devices", - "assign-devices-text": "Assign { count, select, 1 {1 device} other {# devices} } to customer", - "delete-devices": "Delete devices", - "unassign-from-customer": "Unassign from customer", - "unassign-devices": "Unassign devices", - "unassign-devices-action-title": "Unassign { count, select, 1 {1 device} other {# devices} } from customer", - "assign-new-device": "Assign new device", - "make-public-device-title": "Are you sure you want to make the device '{{deviceName}}' public?", - "make-public-device-text": "After the confirmation the device and all its data will be made public and accessible by others.", - "make-private-device-title": "Are you sure you want to make the device '{{deviceName}}' private?", - "make-private-device-text": "After the confirmation the device and all its data will be made private and won't be accessible by others.", - "view-credentials": "View credentials", - "delete-device-title": "Are you sure you want to delete the device '{{deviceName}}'?", - "delete-device-text": "Be careful, after the confirmation the device and all related data will become unrecoverable.", - "delete-devices-title": "Are you sure you want to delete { count, select, 1 {1 device} other {# devices} }?", - "delete-devices-action-title": "Delete { count, select, 1 {1 device} other {# devices} }", - "delete-devices-text": "Be careful, after the confirmation all selected devices will be removed and all related data will become unrecoverable.", - "unassign-device-title": "Are you sure you want to unassign the device '{{deviceName}}'?", - "unassign-device-text": "After the confirmation the device will be unassigned and won't be accessible by the customer.", - "unassign-device": "Unassign device", - "unassign-devices-title": "Are you sure you want to unassign { count, select, 1 {1 device} other {# devices} }?", - "unassign-devices-text": "After the confirmation all selected devices will be unassigned and won't be accessible by the customer.", - "device-credentials": "Device Credentials", - "credentials-type": "Credentials type", - "access-token": "Access token", - "access-token-required": "Access token is required.", - "access-token-invalid": "Access token length must be from 1 to 20 characters.", - "rsa-key": "RSA public key", - "rsa-key-required": "RSA public key is required.", - "secret": "Secret", - "secret-required": "Secret is required.", - "device-type": "Device type", - "device-type-required": "Device type is required.", - "select-device-type": "Select device type", - "enter-device-type": "Enter device type", - "any-device": "Any device", - "no-device-types-matching": "No device types matching '{{entitySubtype}}' were found.", - "device-type-list-empty": "No device types selected.", - "device-types": "Device types", - "name": "Name", - "name-required": "Name is required.", - "description": "Description", - "events": "Events", - "details": "Details", - "copyId": "Copy device Id", - "copyAccessToken": "Copy access token", - "idCopiedMessage": "Device Id has been copied to clipboard", - "accessTokenCopiedMessage": "Device access token has been copied to clipboard", - "assignedToCustomer": "Assigned to customer", - "unable-delete-device-alias-title": "Unable to delete device alias", - "unable-delete-device-alias-text": "Device alias '{{deviceAlias}}' can't be deleted as it used by the following widget(s):
{{widgetsList}}", - "is-gateway": "Is gateway", - "public": "Public", - "device-public": "Device is public", - "select-device": "Select device" - }, - "dialog": { - "close": "Close dialog" - }, - "error": { - "unable-to-connect": "Unable to connect to the server! Please check your internet connection.", - "unhandled-error-code": "Unhandled error code: {{errorCode}}", - "unknown-error": "Unknown error" - }, - "entity": { - "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):
{{widgetsList}}", - "duplicate-alias-error": "Duplicate alias found '{{alias}}'.
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-rulenode": "Rule node", - "type-rulenodes": "Rule nodes", - "list-of-rulenodes": "{ count, select, 1 {One rule node} other {List of # rule nodes} }", - "rulenode-name-starts-with": "Rule nodes 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": "Event type", - "type-error": "Error", - "type-lc-event": "Lifecycle event", - "type-stats": "Statistics", - "type-debug-rule-node": "Debug", - "type-debug-rule-chain": "Debug", - "no-events-prompt": "No events found", - "error": "Error", - "alarm": "Alarm", - "event-time": "Event time", - "server": "Server", - "body": "Body", - "method": "Method", - "type": "Type", - "entity": "Entity", - "message-id": "Message Id", - "message-type": "Message Type", - "data-type": "Data Type", - "relation-type": "Relation Type", - "metadata": "Metadata", - "data": "Data", - "event": "Event", - "status": "Status", - "success": "Success", - "failed": "Failed", - "messages-processed": "Messages processed", - "errors-occurred": "Errors occurred" - }, - "extension": { - "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": "Expand to fullscreen", - "exit": "Exit fullscreen", - "toggle": "Toggle fullscreen mode", - "fullscreen": "Fullscreen" - }, - "function": { - "function": "Function" - }, - "grid": { - "delete-item-title": "Are you sure you want to delete this item?", - "delete-item-text": "Be careful, after the confirmation this item and all related data will become unrecoverable.", - "delete-items-title": "Are you sure you want to delete { count, select, 1 {1 item} other {# items} }?", - "delete-items-action-title": "Delete { count, select, 1 {1 item} other {# items} }", - "delete-items-text": "Be careful, after the confirmation all selected items will be removed and all related data will become unrecoverable.", - "add-item-text": "Add new item", - "no-items-text": "No items found", - "item-details": "Item details", - "delete-item": "Delete Item", - "delete-items": "Delete Items", - "scroll-to-top": "Scroll to top" - }, - "help": { - "goto-help-page": "Go to help page" - }, - "home": { - "home": "Home", - "profile": "Profile", - "logout": "Logout", - "menu": "Menu", - "avatar": "Avatar", - "open-user-menu": "Open user menu" - }, - "import": { - "no-file": "No file selected", - "drop-file": "Drop a JSON file or click to select a file to upload." - }, - "item": { - "selected": "Selected" - }, - "js-func": { - "no-return-error": "Function must return value!", - "return-type-mismatch": "Function must return value of '{{type}}' type!", - "tidy": "Tidy" - }, - "key-val": { - "key": "Key", - "value": "Value", - "remove-entry": "Remove entry", - "add-entry": "Add entry", - "no-data": "No entries" - }, - "layout": { - "layout": "Layout", - "manage": "Manage layouts", - "settings": "Layout settings", - "color": "Color", - "main": "Main", - "right": "Right", - "select": "Select target layout" - }, - "legend": { - "position": "Legend position", - "show-max": "Show max value", - "show-min": "Show min value", - "show-avg": "Show average value", - "show-total": "Show total value", - "settings": "Legend settings", - "min": "min", - "max": "max", - "avg": "avg", - "total": "total" - }, - "login": { - "login": "Login", - "request-password-reset": "Request Password Reset", - "reset-password": "Reset Password", - "create-password": "Create Password", - "passwords-mismatch-error": "Entered passwords must be same!", - "password-again": "Password again", - "sign-in": "Please sign in", - "username": "Username (email)", - "remember-me": "Remember me", - "forgot-password": "Forgot Password?", - "password-reset": "Password reset", - "new-password": "New password", - "new-password-again": "New password again", - "password-link-sent-message": "Password reset link was successfully sent!", - "email": "Email" - }, - "position": { - "top": "Top", - "bottom": "Bottom", - "left": "Left", - "right": "Right" - }, - "profile": { - "profile": "Profile", - "change-password": "Change Password", - "current-password": "Current password" - }, - "relation": { - "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": { - "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": { - "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.", - "link-labels": "Link labels", - "link-labels-required": "Link labels is required.", - "no-link-labels-found": "No link labels found", - "no-link-label-matching": "'{{label}}' not found.", - "create-new-link-label": "Create a new one!", - "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", - "type-unknown": "Unknown", - "type-unknown-details": "Unresolved 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", - "select-message-type": "Select 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": { - "tenant": "Tenant", - "tenants": "Tenants", - "management": "Tenant management", - "add": "Add Tenant", - "admins": "Admins", - "manage-tenant-admins": "Manage tenant admins", - "delete": "Delete tenant", - "add-tenant-text": "Add new tenant", - "no-tenants-text": "No tenants found", - "tenant-details": "Tenant details", - "delete-tenant-title": "Are you sure you want to delete the tenant '{{tenantTitle}}'?", - "delete-tenant-text": "Be careful, after the confirmation the tenant and all related data will become unrecoverable.", - "delete-tenants-title": "Are you sure you want to delete { count, select, 1 {1 tenant} other {# tenants} }?", - "delete-tenants-action-title": "Delete { count, select, 1 {1 tenant} other {# tenants} }", - "delete-tenants-text": "Be careful, after the confirmation all selected tenants will be removed and all related data will become unrecoverable.", - "title": "Title", - "title-required": "Title is required.", - "description": "Description", - "details": "Details", - "events": "Events", - "copyId": "Copy tenant Id", - "idCopiedMessage": "Tenant Id has been copied to clipboard", - "select-tenant": "Select tenant", - "no-tenants-matching": "No tenants matching '{{entity}}' were found.", - "tenant-required": "Tenant is required" - }, - "timeinterval": { - "seconds-interval": "{ seconds, select, 1 {1 second} other {# seconds} }", - "minutes-interval": "{ minutes, select, 1 {1 minute} other {# minutes} }", - "hours-interval": "{ hours, select, 1 {1 hour} other {# hours} }", - "days-interval": "{ days, select, 1 {1 day} other {# days} }", - "days": "Days", - "hours": "Hours", - "minutes": "Minutes", - "seconds": "Seconds", - "advanced": "Advanced" - }, - "timewindow": { - "days": "{ days, select, 1 { day } other {# days } }", - "hours": "{ hours, select, 0 { hour } 1 {1 hour } other {# hours } }", - "minutes": "{ minutes, select, 0 { minute } 1 {1 minute } other {# minutes } }", - "seconds": "{ seconds, select, 0 { second } 1 {1 second } other {# seconds } }", - "realtime": "Realtime", - "history": "History", - "last-prefix": "last", - "period": "from {{ startTime }} to {{ endTime }}", - "edit": "Edit timewindow", - "date-range": "Date range", - "last": "Last", - "time-period": "Time period" - }, - "user": { - "user": "User", - "users": "Users", - "customer-users": "Customer Users", - "tenant-admins": "Tenant Admins", - "sys-admin": "System administrator", - "tenant-admin": "Tenant administrator", - "customer": "Customer", - "anonymous": "Anonymous", - "add": "Add User", - "delete": "Delete user", - "add-user-text": "Add new user", - "no-users-text": "No users found", - "user-details": "User details", - "delete-user-title": "Are you sure you want to delete the user '{{userEmail}}'?", - "delete-user-text": "Be careful, after the confirmation the user and all related data will become unrecoverable.", - "delete-users-title": "Are you sure you want to delete { count, select, 1 {1 user} other {# users} }?", - "delete-users-action-title": "Delete { count, select, 1 {1 user} other {# users} }", - "delete-users-text": "Be careful, after the confirmation all selected users will be removed and all related data will become unrecoverable.", - "activation-email-sent-message": "Activation email was successfully sent!", - "resend-activation": "Resend activation", - "email": "Email", - "email-required": "Email is required.", - "invalid-email-format": "Invalid email format.", - "first-name": "First Name", - "last-name": "Last Name", - "description": "Description", - "default-dashboard": "Default dashboard", - "always-fullscreen": "Always fullscreen", - "select-user": "Select user", - "no-users-matching": "No users matching '{{entity}}' were found.", - "user-required": "User is required", - "activation-method": "Activation method", - "display-activation-link": "Display activation link", - "send-activation-mail": "Send activation mail", - "activation-link": "User activation link", - "activation-link-text": "In order to activate user use the following activation link :", - "copy-activation-link": "Copy activation link", - "activation-link-copied-message": "User activation link has been copied to clipboard", - "details": "Details" - }, - "value": { - "type": "Value type", - "string": "String", - "string-value": "String value", - "integer": "Integer", - "integer-value": "Integer value", - "invalid-integer-value": "Invalid integer value", - "double": "Double", - "double-value": "Double value", - "boolean": "Boolean", - "boolean-value": "Boolean value", - "false": "False", - "true": "True", - "long": "Long" - }, - "widget": { - "widget-library": "Widgets Library", - "widget-bundle": "Widgets Bundle", - "select-widgets-bundle": "Select widgets bundle", - "management": "Widget management", - "editor": "Widget Editor", - "widget-type-not-found": "Problem loading widget configuration.
Probably associated\n widget type was removed.", - "widget-type-load-error": "Widget wasn't loaded due to the following errors:", - "remove": "Remove widget", - "edit": "Edit widget", - "remove-widget-title": "Are you sure you want to remove the widget '{{widgetTitle}}'?", - "remove-widget-text": "After the confirmation the widget and all related data will become unrecoverable.", - "timeseries": "Time series", - "search-data": "Search data", - "no-data-found": "No data found", - "latest-values": "Latest values", - "rpc": "Control widget", - "alarm": "Alarm widget", - "static": "Static widget", - "select-widget-type": "Select widget type", - "missing-widget-title-error": "Widget title must be specified!", - "widget-saved": "Widget saved", - "unable-to-save-widget-error": "Unable to save widget! Widget has errors!", - "save": "Save widget", - "saveAs": "Save widget as", - "save-widget-type-as": "Save widget type as", - "save-widget-type-as-text": "Please enter new widget title and/or select target widgets bundle", - "toggle-fullscreen": "Toggle fullscreen", - "run": "Run widget", - "title": "Widget title", - "title-required": "Widget title is required.", - "type": "Widget type", - "resources": "Resources", - "resource-url": "JavaScript/CSS URL", - "remove-resource": "Remove resource", - "add-resource": "Add resource", - "html": "HTML", - "tidy": "Tidy", - "css": "CSS", - "settings-schema": "Settings schema", - "datakey-settings-schema": "Data key settings schema", - "javascript": "Javascript", - "remove-widget-type-title": "Are you sure you want to remove the widget type '{{widgetName}}'?", - "remove-widget-type-text": "After the confirmation the widget type and all related data will become unrecoverable.", - "remove-widget-type": "Remove widget type", - "add-widget-type": "Add new widget type", - "widget-type-load-failed-error": "Failed to load widget type!", - "widget-template-load-failed-error": "Failed to load widget template!", - "add": "Add Widget", - "undo": "Undo widget changes", - "export": "Export widget" - }, - "widget-action": { - "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": "Current bundle", - "widgets-bundles": "Widgets Bundles", - "add": "Add Widgets Bundle", - "delete": "Delete widgets bundle", - "title": "Title", - "title-required": "Title is required.", - "add-widgets-bundle-text": "Add new widgets bundle", - "no-widgets-bundles-text": "No widgets bundles found", - "empty": "Widgets bundle is empty", - "details": "Details", - "widgets-bundle-details": "Widgets bundle details", - "delete-widgets-bundle-title": "Are you sure you want to delete the widgets bundle '{{widgetsBundleTitle}}'?", - "delete-widgets-bundle-text": "Be careful, after the confirmation the widgets bundle and all related data will become unrecoverable.", - "delete-widgets-bundles-title": "Are you sure you want to delete { count, select, 1 {1 widgets bundle} other {# widgets bundles} }?", - "delete-widgets-bundles-action-title": "Delete { count, select, 1 {1 widgets bundle} other {# widgets bundles} }", - "delete-widgets-bundles-text": "Be careful, after the confirmation all selected widgets bundles will be removed and all related data will become unrecoverable.", - "no-widgets-bundles-matching": "No widgets bundles matching '{{widgetsBundle}}' were found.", - "widgets-bundle-required": "Widgets bundle is required.", - "system": "System", - "import": "Import widgets bundle", - "export": "Export widgets bundle", - "export-failed-error": "Unable to export widgets bundle: {{error}}", - "create-new-widgets-bundle": "Create new widgets bundle", - "widgets-bundle-file": "Widgets bundle file", - "invalid-widgets-bundle-file-error": "Unable to import widgets bundle: Invalid widgets bundle data structure." - }, - "widget-config": { - "data": "Data", - "settings": "Settings", - "advanced": "Advanced", - "title": "Title", - "general-settings": "General settings", - "display-title": "Display title", - "drop-shadow": "Drop shadow", - "enable-fullscreen": "Enable fullscreen", - "background-color": "Background color", - "text-color": "Text color", - "padding": "Padding", - "margin": "Margin", - "widget-style": "Widget style", - "title-style": "Title style", - "mobile-mode-settings": "Mobile mode settings", - "order": "Order", - "height": "Height", - "units": "Special symbol to show next to value", - "decimals": "Number of digits after floating point", - "timewindow": "Timewindow", - "use-dashboard-timewindow": "Use dashboard timewindow", - "display-legend": "Display legend", - "datasources": "Datasources", - "maximum-datasources": "Maximum { count, select, 1 {1 datasource is allowed.} other {# datasources are allowed} }", - "datasource-type": "Type", - "datasource-parameters": "Parameters", - "remove-datasource": "Remove datasource", - "add-datasource": "Add datasource", - "target-device": "Target device", - "alarm-source": "Alarm source", - "actions": "Actions", - "action": "Action", - "add-action": "Add action", - "search-actions": "Search actions", - "action-source": "Action source", - "action-source-required": "Action source is required.", - "action-name": "Name", - "action-name-required": "Action name is required.", - "action-name-not-unique": "Another action with the same name already exists.
Action name should be unique within the same action source.", - "action-icon": "Icon", - "action-type": "Type", - "action-type-required": "Action type is required.", - "edit-action": "Edit action", - "delete-action": "Delete action", - "delete-action-title": "Delete widget action", - "delete-action-text": "Are you sure you want delete widget action with name '{{actionName}}'?" - }, - "widget-type": { - "import": "Import widget type", - "export": "Export widget type", - "export-failed-error": "Unable to export widget type: {{error}}", - "create-new-widget-type": "Create new widget type", - "widget-type-file": "Widget type file", - "invalid-widget-type-file-error": "Unable to import widget type: Invalid widget type data structure." - }, - "icon": { - "icon": "Icon", - "select-icon": "Select icon", - "material-icons": "Material icons", - "show-all": "Show all icons" - }, - "custom": { - "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": "Language", - "en_US": "English", - "ko_KR": "Korean", - "zh_CN": "Chinese", - "ru_RU": "Russian", - "es_ES": "Spanish" - } - } - } - ).name; diff --git a/ui/src/app/locale/translate-handler.js b/ui/src/app/locale/translate-handler.js index 11feb00d62..9fb28f5cf2 100644 --- a/ui/src/app/locale/translate-handler.js +++ b/ui/src/app/locale/translate-handler.js @@ -13,8 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + export default angular.module('thingsboard.locale', []) + .factory('tbMissingTranslationHandler', ThingsboardMissingTranslateHandler) + .name; + /*@ngInject*/ -export default function ThingsboardMissingTranslateHandler($log, types) { +function ThingsboardMissingTranslateHandler($log, types) { return function (translationId) { if (translationId && !translationId.startsWith(types.translate.customTranslationsPrefix)) { diff --git a/ui/webpack.config.dev.js b/ui/webpack.config.dev.js index b1a1911400..e0cc91ea54 100644 --- a/ui/webpack.config.dev.js +++ b/ui/webpack.config.dev.js @@ -21,6 +21,8 @@ const CopyWebpackPlugin = require('copy-webpack-plugin'); const webpack = require('webpack'); const path = require('path'); +const PUBLIC_RESOURCE_PATH = '/'; + /* devtool: 'cheap-module-eval-source-map', */ module.exports = { @@ -32,7 +34,7 @@ module.exports = { ], output: { path: path.resolve(__dirname, 'target/generated-resources/public/static'), - publicPath: '/', + publicPath: PUBLIC_RESOURCE_PATH, filename: 'bundle.js', }, plugins: [ @@ -45,7 +47,8 @@ module.exports = { moment: "moment" }), new CopyWebpackPlugin([ - { from: './src/thingsboard.ico', to: 'thingsboard.ico' } + { from: './src/thingsboard.ico', to: 'thingsboard.ico' }, + { from: './src/app/locale', to: 'locale' } ]), new webpack.HotModuleReplacementPlugin(), new HtmlWebpackPlugin({ @@ -65,6 +68,7 @@ module.exports = { 'process.env': { NODE_ENV: JSON.stringify('development'), }, + PUBLIC_PATH: PUBLIC_RESOURCE_PATH }), ], node: { @@ -118,6 +122,10 @@ module.exports = { 'img?minimize' ] }, + { + test: /\.json$/, + loader: 'json-loader' + } ], }, 'html-minifier-loader': { diff --git a/ui/webpack.config.prod.js b/ui/webpack.config.prod.js index 150638def1..c7bafb09c7 100644 --- a/ui/webpack.config.prod.js +++ b/ui/webpack.config.prod.js @@ -21,6 +21,8 @@ const CopyWebpackPlugin = require('copy-webpack-plugin'); const webpack = require('webpack'); const path = require('path'); +const PUBLIC_RESOURCE_PATH = '/static/'; + module.exports = { devtool: 'source-map', entry: [ @@ -29,7 +31,7 @@ module.exports = { ], output: { path: path.resolve(__dirname, 'target/generated-resources/public/static'), - publicPath: '/static/', + publicPath: PUBLIC_RESOURCE_PATH, filename: 'bundle.[hash].js', }, plugins: [ @@ -42,7 +44,8 @@ module.exports = { moment: "moment" }), new CopyWebpackPlugin([ - {from: './src/thingsboard.ico', to: 'thingsboard.ico'} + { from: './src/thingsboard.ico', to: 'thingsboard.ico'}, + { from: './src/app/locale', to: 'locale' } ]), new HtmlWebpackPlugin({ template: './src/index.html', @@ -63,6 +66,7 @@ module.exports = { 'process.env': { NODE_ENV: JSON.stringify('production'), }, + PUBLIC_PATH: PUBLIC_RESOURCE_PATH }), ], node: { @@ -116,6 +120,10 @@ module.exports = { 'img?minimize' ] }, + { + test: /\.json$/, + loader: 'json-loader' + } ], }, 'html-minifier-loader': {