thingsboard-memoizeit

Changes

Details

diff --git a/ui/src/app/locale/locale.constant-zh.js b/ui/src/app/locale/locale.constant-zh.js
index c25291a..2744c95 100644
--- a/ui/src/app/locale/locale.constant-zh.js
+++ b/ui/src/app/locale/locale.constant-zh.js
@@ -15,1247 +15,1482 @@
  */
 export default function addLocaleChinese(locales) {
     var zh_CN = {
-        "access": {
-            "unauthorized": "未授权",
-            "unauthorized-access": "未授权访问",
-            "unauthorized-access-text": "您需要登陆才能访问这个资源!",
-            "access-forbidden": "禁止访问",
-            "access-forbidden-text": "您没有访问此位置的权限<br/>如果您仍希望访问此位置,请尝试使用其他用户登录。",
-            "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": "粘贴",
-            "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": "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": "您有未保存的更改。<br/> 确定要离开此页面吗?",
-            "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": "输入检索条件"
-        },
-        "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": "客户是必选项"
-        },
-        "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, 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": "你的仪表板 <b>{{dashboardTitle}}</b> 已被公开,可通过如下 <a href='{{publicLink}}' target='_blank'>链接</a>访问:",
-            "public-dashboard-notice": "<b>提示:</b> 不要忘记将相关设备公开以访问其数据。",
-            "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": "无法找到与某些别名过滤器匹配的任何设备。<br/>请联系您的管理员以解决此问题。",
-            "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": "Alarm fields",
-            "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}}'。 <br> 设备别名必须是唯一的。",
-            "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}}' 不能够被删除,因为它被下列部件所使用: <br/> {{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}}' 被以下部件使用不能删除:<br/>{{widgetsList}}",
-            "duplicate-alias-error": "别名 '{{alias}}' 重复。<br>同一仪表板别名必须唯一。",
-            "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}}' 开头的警告",
-            "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": "类型统计",
-            "no-events-prompt": "找不到事件",
-            "error": "错误",
-            "alarm": "报警",
-            "event-time": "事件时间",
-            "server": "服务器",
-            "body": "整体",
-            "method": "方法",
-            "event": "事件",
-            "status": "状态",
-            "success": "成功",
-            "failed": "失败",
-            "messages-processed": "消息处理",
-            "errors-occurred": "错误发生"
-        },
-        "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}}' 类型的值!"
-        },
-        "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": "电子邮件"
-        },
-        "plugin": {
-            "plugins": "插件",
-            "delete": "删除插件",
-            "activate": "激活插件",
-            "suspend": "暂停插件",
-            "active": "激活",
-            "suspended": "暂停",
-            "name": "名称",
-            "name-required": "名称必填。",
-            "description": "描述",
-            "add": "添加插件",
-            "delete-plugin-title": "你确定要删除插件 '{{pluginName}}' 吗?",
-            "delete-plugin-text": "小心!确认后,插件和所有相关数据将不可恢复。",
-            "delete-plugins-title": "你确定你要删除 { count, select, 1 {1 插件} other {# 插件} } 吗?",
-            "delete-plugins-action-title": "删除 { count, select, 1 {1 插件} other {# 插件} }",
-            "delete-plugins-text": "小心!确认后,所有选定的插件将被删除,所有相关数据将不可恢复。",
-            "add-plugin-text": "添加新的插件",
-            "no-plugins-text": "没有找到插件",
-            "plugin-details": "插件详细信息",
-            "api-token": "API令牌",
-            "api-token-required": "API令牌必填。",
-            "type": "插件类型",
-            "type-required": "插件类型必填。",
-            "configuration": "插件配置",
-            "system": "系统",
-            "select-plugin": "选择插件",
-            "plugin": "插件",
-            "no-plugins-matching": "没有找到匹配'{{entity}}'的插件。",
-            "plugin-required": "插件必填。",
-            "plugin-require-match": "请选择一个现有的插件。",
-            "events": "事件",
-            "details": "详情",
-            "import": "导入插件",
-            "export": "导出插件",
-            "export-failed-error": "无法导出插件:{{error}}",
-            "create-new-plugin": "创建新的插件",
-            "plugin-file": "插件文件",
-            "invalid-plugin-file-error": "无法导入插件:插件数据结构无效。",
-            "copyId": "复制插件ID",
-            "idCopiedMessage": "插件ID已经复制到粘贴板"
-        },
-        "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。"
-        },
-        "rule": {
-            "rule": "规则",
-            "rules": "规则",
-            "delete": "删除规则",
-            "activate": "激活规则",
-            "suspend": "暂停规则",
-            "active": "激活",
-            "suspended": "暂停",
-            "name": "名称",
-            "name-required": "名称必填。",
-            "description": "描述",
-            "add": "添加规则",
-            "delete-rule-title": "您确定要删除规则'{{ruleName}}'吗?",
-            "delete-rule-text": "小心!确认后,规则和所有相关数据将不可恢复。",
-            "delete-rules-title": "你确定要删除 {count, select, 1 {1 规则} other {# 规则}} 吗?",
-            "delete-rules-action-title": "删除 { count, select, 1 {1 规则} other {# 规则} }",
-            "delete-rules-text": "小心!确认后,所有选定的规则将被删除,所有相关数据将不可恢复。",
-            "add-rule-text": "添加新规则",
-            "no-rules-text": "没有找到规则",
-            "rule-details": "规则详情",
-            "filters": "过滤器",
-            "filter": "过滤器",
-            "add-filter-prompt": "请添加过滤器",
-            "remove-filter": "删除过滤器",
-            "add-filter": "添加过滤器",
-            "filter-name": "过滤器名称",
-            "filter-type": "过滤器类型",
-            "edit-filter": "编辑过滤器",
-            "view-filter": "查看过滤器",
-            "component-name": "名称",
-            "component-name-required": "名称必填。",
-            "component-type": "类型",
-            "component-type-required": "类型必填。",
-            "processor": "处理器",
-            "no-processor-configured": "未配置处理器",
-            "create-processor": "创建处理器",
-            "processor-name": "处理器名称",
-            "processor-type": "处理器类型",
-            "plugin-action": "插件动作",
-            "action-name": "动作名称",
-            "action-type": "动作类型",
-            "create-action-prompt": "请创建动作",
-            "create-action": "创建动作",
-            "details": "详情",
-            "events": "事件",
-            "system": "系统",
-            "import": "导入规则",
-            "export": "导出规则",
-            "export-failed-error": "无法导出规则:{{error}}",
-            "create-new-rule": "创建新规则",
-            "rule-file": "规则文件",
-            "invalid-rule-file-error": "无法导入规则:规则数据结构无效。",
-            "copyId": "Copy rule Id",
-            "idCopiedMessage": "规则ID已经复制到粘贴板",
-            "select-rule": "选择规则",
-            "no-rules-matching": "没有找到符合 '{{entity}}' 的规则。",
-            "rule-required": "规则必填"
-        },
-        "rule-plugin": {
-            "management": "规则和插件管理"
-        },
-        "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": "使用该链接 <a href='{{activationLink}}' target='_blank'>激活</a> 激活用户:",
-            "copy-activation-link": "复制用户激活链接",
-            "activation-link-copied-message": "用户激活链接已经复制到粘贴板"
-        },
-        "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": "加载部件配置时出现问题。<br> 可能关联的\n 部件类型已删除。",
-            "widget-type-load-error": "由于以下错误,部件未加载:",
-            "remove": "删除部件",
-            "edit": "编辑部件",
-            "remove-widget-title": "您确定要删除部件 '{{widgetTitle}}' 吗?",
-            "remove-widget-text": "确认后,窗口部件和所有相关数据将不可恢复。",
-            "timeseries": "时间序列",
-            "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": "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": "动作名称已经存在。<br/>统一动作源的动作名称必须唯一。",
-            "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": "显示所有图标"
-        },
-        "language": {
-            "language": "语言",
-            "en_US": "英语",
-            "ko_KR": "韩语",
-            "zh_CN": "汉语",
-            "ru_RU": "俄语",
-            "es_ES": "西班牙语"
-        }
+	"access": {
+		"unauthorized": "未授权",
+		"unauthorized-access": "未授权访问",
+		"unauthorized-access-text": "您需要登陆才能访问这个资源!",
+		"access-forbidden": "禁止访问",
+		"access-forbidden-text": "您没有访问此位置的权限<br/>如果您仍希望访问此位置,请尝试使用其他用户登录。",
+		"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": "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": "您有未保存的更改。<br/> 确定要离开此页面吗?",
+		"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": "你的仪表板 <b>{{dashboardTitle}}</b> 已被公开,可通过如下 <a href='{{publicLink}}' target='_blank'>链接</a>访问:",
+		"public-dashboard-notice": "<b>提示:</b> 不要忘记将相关设备公开以访问其数据。",
+		"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": "无法找到与某些别名过滤器匹配的任何设备。<br/>请联系您的管理员以解决此问题。",
+		"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": "Alarm fields",
+		"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}}'。 <br> 设备别名必须是唯一的。",
+		"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}}' 不能够被删除,因为它被下列部件所使用: <br/> {{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}}' 被以下部件使用不能删除:<br/>{{widgetsList}}",
+		"duplicate-alias-error": "别名 '{{alias}}' 重复。<br>同一仪表板别名必须唯一。",
+		"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 {One rule chain} other {List of # rule chains} }",
+		"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": "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": "头像",
+		"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": "布局",
+		"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": "电子邮件"
+	},
+	"plugin": {
+		"plugins": "插件",
+		"delete": "删除插件",
+		"activate": "激活插件",
+		"suspend": "暂停插件",
+		"active": "激活",
+		"suspended": "暂停",
+		"name": "名称",
+		"name-required": "名称必填。",
+		"description": "描述",
+		"add": "添加插件",
+		"delete-plugin-title": "你确定要删除插件 '{{pluginName}}' 吗?",
+		"delete-plugin-text": "小心!确认后,插件和所有相关数据将不可恢复。",
+		"delete-plugins-title": "你确定你要删除 { count, select, 1 {1 插件} other {# 插件} } 吗?",
+		"delete-plugins-action-title": "删除 { count, select, 1 {1 插件} other {# 插件} }",
+		"delete-plugins-text": "小心!确认后,所有选定的插件将被删除,所有相关数据将不可恢复。",
+		"add-plugin-text": "添加新的插件",
+		"no-plugins-text": "没有找到插件",
+		"plugin-details": "插件详细信息",
+		"api-token": "API令牌",
+		"api-token-required": "API令牌必填。",
+		"type": "插件类型",
+		"type-required": "插件类型必填。",
+		"configuration": "插件配置",
+		"system": "系统",
+		"select-plugin": "选择插件",
+		"plugin": "插件",
+		"no-plugins-matching": "没有找到匹配'{{entity}}'的插件。",
+		"plugin-required": "插件必填。",
+		"plugin-require-match": "请选择一个现有的插件。",
+		"events": "事件",
+		"details": "详情",
+		"import": "导入插件",
+		"export": "导出插件",
+		"export-failed-error": "无法导出插件:{{error}}",
+		"create-new-plugin": "创建新的插件",
+		"plugin-file": "插件文件",
+		"invalid-plugin-file-error": "无法导入插件:插件数据结构无效。",
+		"copyId": "复制插件ID",
+		"idCopiedMessage": "插件ID已经复制到粘贴板"
+	},
+	"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": "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": "详情",
+		"events": "事件",
+		"system": "系统",
+		"import": "导入规则",
+		"export": "导出规则",
+		"export-failed-error": "无法导出规则:{{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": "规则ID已经复制到粘贴板",
+		"select-rulechain": "Select rule chain",
+		"no-rulechains-matching": "No rule chains matching '{{entity}}' were found.",
+		"rulechain-required": "Rule chain is required",
+		"management": "规则集管理",
+		"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": {
+		"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": "使用该链接 <a href='{{activationLink}}' target='_blank'>激活</a> 激活用户:",
+		"copy-activation-link": "复制用户激活链接",
+		"activation-link-copied-message": "用户激活链接已经复制到粘贴板",
+		"details": "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": "Widget management",
+		"editor": "Widget Editor",
+		"widget-type-not-found": "Problem loading widget configuration.<br>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": "时间序列",
+		"search-data": "Search data",
+		"no-data-found": "No data found",
+		"latest-values": "最新值",
+		"rpc": "控件部件",
+		"alarm": "警告部件",
+		"static": "静态部件",
+		"select-widget-type": "选择窗口部件类型",
+		"missing-widget-title-error": "部件标题必须指定!",
+		"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": "切换全屏",
+		"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": "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": "动作名称已经存在。<br/>统一动作源的动作名称必须唯一。",
+		"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": "显示所有图标"
+	},
+	"language": {
+		"language": "语言",
+		"en_US": "英语",
+		"ko_KR": "韩语",
+		"zh_CN": "汉语",
+		"ru_RU": "俄语",
+		"es_ES": "西班牙语"
+	}
     };
     angular.extend(locales, {
         'zh_CN': zh_CN