thingsboard-aplcache

Changes

Details

diff --git a/ui/src/app/locale/locale.constant-zh.js b/ui/src/app/locale/locale.constant-zh.js
index 9acd0d8..f12bb1c 100644
--- a/ui/src/app/locale/locale.constant-zh.js
+++ b/ui/src/app/locale/locale.constant-zh.js
@@ -15,1482 +15,1490 @@
  */
 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": "查询",
-		"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": "未应答"
+		"access": {
+			"unauthorized": "未授权",
+			"unauthorized-access": "未授权访问",
+			"unauthorized-access-text": "您需要登陆才能访问这个资源!",
+			"access-forbidden": "禁止访问",
+			"access-forbidden-text": "您没有访问此位置的权限<br/>如果您仍希望访问此位置,请尝试使用其他用户登录。",
+			"refresh-token-expired": "会话已过期",
+			"refresh-token-failed": "无法刷新会话"
 		},
-		"display-status": {
-			"ACTIVE_UNACK": "激活未应答",
-			"ACTIVE_ACK": "激活已应答",
-			"CLEARED_UNACK": "清除未应答",
-			"CLEARED_ACK": "清除已应答"
+		"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}}分享"
 		},
-		"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"
+		"aggregation": {
+			"aggregation": "聚合",
+			"function": "数据聚合功能",
+			"limit": "最大值",
+			"group-interval": "分组间隔",
+			"min": "最少值",
+			"max": "最大值",
+			"avg": "平均值",
+			"sum": "求和",
+			"count": "计数",
+			"none": "空"
 		},
+		"admin": {
+			"general": "常规",
+			"general-settings": "常规设置",
+			"outgoing-mail": "发送邮件",
+			"outgoing-mail-settings": "发送邮件设置",
+			"system-settings": "系统设置",
+			"test-mail-sent": "测试邮件发送成功!",
+			"base-url": "基本URL",
+			"base-url-required": "基本URL必填。",
+			"mail-from": "邮件来自",
+			"mail-from-required": "邮件发件人必填。",
+			"smtp-protocol": "SMTP协议",
+			"smtp-host": "SMTP主机",
+			"smtp-host-required": "SMTP主机必填。",
+			"smtp-port": "SMTP端口",
+			"smtp-port-required": "您必须提供一个smtp端口。",
+			"smtp-port-invalid": "这看起来不是有效的smtp端口。",
+			"timeout-msec": "超时(ms)",
+			"timeout-required": "超时必填。",
+			"timeout-invalid": "这看起来不像有效的超时值。",
+			"enable-tls": "启用TLS",
+			"send-test-mail": "发送测试邮件"
+		},
+		"alarm": {
+			"alarm": "警告",
+			"alarms": "警告",
+			"select-alarm": "选择警告",
+			"no-alarms-matching": "没有找到匹配 '{{entity}}' 的警告",
+			"alarm-required": "警告必填",
+			"alarm-status": "警告状态",
+			"search-status": {
+				"ANY": "所有",
+				"ACTIVE": "已激活",
+				"CLEARED": "已清除",
+				"ACK": "已应答",
+				"UNACK": "未应答"
+			},
+			"display-status": {
+				"ACTIVE_UNACK": "激活未应答",
+				"ACTIVE_ACK": "激活已应答",
+				"CLEARED_UNACK": "清除未应答",
+				"CLEARED_ACK": "清除已应答"
+			},
+			"no-alarms-prompt": "未发现警告",
+			"created-time": "创建时间",
+			"type": "类型",
+			"severity": "严重程度",
+			"originator": "起因",
+			"originator-type": "起因类型",
+			"details": "详情",
+			"status": "状态",
+			"alarm-details": "警告详情",
+			"start-time": "开始时间",
+			"end-time": "结束时间",
+			"ack-time": "应答时间",
+			"clear-time": "创建时间",
+			"severity-critical": "危险",
+			"severity-major": "重要",
+			"severity-minor": "次要",
+			"severity-warning": "警告",
+			"severity-indeterminate": "不确定",
+			"acknowledge": "应答",
+			"clear": "清除",
+			"search": "搜索警告",
+			"selected-alarms": "已选择 { count, select, 1 {1 警告} other {# 警告} } ",
+			"no-data": "无数据显示",
+			"polling-interval": "警告轮询间隔(秒)",
+			"polling-interval-required": "警告轮询间隔必填。",
+			"min-polling-interval-message": "轮询间隔至少是1秒。",
+			"aknowledge-alarms-title": "应答 { count, select, 1 {1 警告} other {# 警告} }",
+			"aknowledge-alarms-text": "确定要应答 { count, select, 1 {1 警告} other {# 警告} }?",
+			"clear-alarms-title": "清除 { count, select, 1 {1 警告} other {# 警告} }",
+			"clear-alarms-text": "确定要清除 { count, select, 1 {1 警告} other {# 警告} }?"
+		},
+		"alias": {
+			"add": "添加别名",
+			"edit": "编辑别名",
+			"name": "别名",
+			"name-required": "别名必填",
+			"duplicate-alias": "别名已经存在。",
+			"filter-type-single-entity": "单个实体",
+			"filter-type-entity-list": "实体列表",
+			"filter-type-entity-name": "实体名称",
+			"filter-type-state-entity": "实体(仪表板状态)",
+			"filter-type-state-entity-description": "实体令牌(仪表板状态参数)",
+			"filter-type-asset-type": "资产类型",
+			"filter-type-asset-type-description": "类型为 '{{assetType}}' 的资产",
+			"filter-type-asset-type-and-name-description": "类型为 '{{assetType}}' 且以 '{{prefix}}' 开头的资产",
+			"filter-type-device-type": "设备类型",
+			"filter-type-device-type-description": "类型为 '{{deviceType}}' 的设备",
+			"filter-type-device-type-and-name-description": "类型为 '{{deviceType}}' 且以 '{{prefix}}' 开头的设备",
+			"filter-type-relations-query": "关系查询",
+			"filter-type-relations-query-description": "具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的 {{entities}} ",
+			"filter-type-asset-search-query": "资产搜索查询",
+			"filter-type-asset-search-query-description": "类型为 {{assetTypes}} 且具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的资产",
+			"filter-type-device-search-query": "设备搜索查询",
+			"filter-type-device-search-query-description": "类型为 {{deviceTypes}} 且具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的设备",
+			"entity-filter": "实体过滤",
+			"resolve-multiple": "解决为多实体",
+			"filter-type": "过滤类型",
+			"filter-type-required": "过滤类型必填。",
+			"entity-filter-no-entity-matched": "未找到符合指定过滤条件的实体。",
+			"no-entity-filter-specified": "没有指定实体过滤条件",
+			"root-state-entity": "使用仪表板状态实体作为根实体",
+			"root-entity": "根实体",
+			"state-entity-parameter-name": "状态实体参数名称",
+			"default-state-entity": "默认状态实体",
+			"default-entity-parameter-name": "默认",
+			"max-relation-level": "最大关系层级",
+			"unlimited-level": "不限层级",
+			"state-entity": "仪表板状态实体",
+			"all-entities": "所有实体",
+			"any-relation": "不限"
+		},
+		"asset": {
+			"asset": "资产",
+			"assets": "资产",
+			"management": "资产管理",
+			"view-assets": "查看资产",
+			"add": "添加资产",
+			"assign-to-customer": "分配给客户",
+			"assign-asset-to-customer": "将资产分配给客户",
+			"assign-asset-to-customer-text": "请选择要分配给客户的资产",
+			"no-assets-text": "未找到资产",
+			"assign-to-customer-text": "请选择客户以分配资产",
+			"public": "公开",
+			"assignedToCustomer": "分配客户",
+			"make-public": "资产设为公开",
+			"make-private": "资产设为私有",
+			"unassign-from-customer": "取消分配客户",
+			"delete": "删除资产",
+			"asset-public": "资产公开",
+			"asset-type": "资产类型",
+			"asset-type-required": "资产类型必填。",
+			"select-asset-type": "选择资产类型",
+			"enter-asset-type": "输入资产类型",
+			"any-asset": "任何资产",
+			"no-asset-types-matching": "没有找到匹配 '{{entitySubtype}}' 的资产类型。",
+			"asset-type-list-empty": "资产类型未选择。",
+			"asset-types": "资产类型",
+			"name": "名称",
+			"name-required": "名称必填。",
+			"description": "描述",
+			"type": "类型",
+			"type-required": "类型必填。",
+			"details": "详情",
+			"events": "事件",
+			"add-asset-text": "添加新资产",
+			"asset-details": "资产详情",
+			"assign-assets": "分配资产",
+			"assign-assets-text": "分配 { count, select, 1 {1 资产} other {# 资产} } 给客户",
+			"delete-assets": "删除资产",
+			"unassign-assets": "取消分配资产",
+			"unassign-assets-action-title": "从客户处取消分配 { count, select, 1 {1 资产} other {# 资产} } ",
+			"assign-new-asset": "分配新资产",
+			"delete-asset-title": "确定要删除资产 '{{assetName}}'?",
+			"delete-asset-text": "小心!确认后资产及其所有相关数据将不可恢复。",
+			"delete-assets-title": "确定要删除 { count, select, 1 {1 资产} other {# 资产} }?",
+			"delete-assets-action-title": "删除 { count, select, 1 {1 资产} other {# 资产} }",
+			"delete-assets-text": "小心,确认后,所有选定的资产将被删除,所有相关的数据将变得不可恢复。",
+			"make-public-asset-title": "你确定你想创建公开'{{assetName}}'资产?",
+			"make-public-asset-text": "确认后,资产及其所有数据将被公开并被他人访问。",
+			"make-private-asset-title": "你确定你想创建私有 '{{assetName}}' 资产?",
+			"make-private-asset-text": "确认后,资产及其所有数据将被私有化,无法被他人访问。",
+			"unassign-asset-title": "您确定要取消对'{{assetName}}'资产的分配吗?",
+			"unassign-asset-text": "确认后,资产将未分配,客户无法访问。",
+			"unassign-asset": "未分配资产",
+			"unassign-assets-title": "您确定要取消分配 { count, select, 1 {1 资产} other {# 资产} }吗?",
+			"unassign-assets-text": "确认后,所有选定的资产将被分配,客户无法访问。",
+			"copyId": "复制资产ID",
+			"idCopiedMessage": "资产ID已经复制到粘贴板",
+			"select-asset": "选择资产",
+			"no-assets-matching": "没有找到匹配 '{{entity}}' 的资产。",
+			"asset-required": "资产必填",
+			"name-starts-with": "资产名称以此开头"
+		},
+		"attribute": {
+			"attributes": "属性",
+			"latest-telemetry": "最新遥测",
+			"attributes-scope": "设备属性范围",
+			"scope-latest-telemetry": "最新遥测",
+			"scope-client": "客户端属性",
+			"scope-server": "服务端属性",
+			"scope-shared": "共享属性",
+			"add": "添加属性",
+			"key": "键",
+			"last-update-time": "最后更新时间",
+			"key-required": "属性键必填。",
+			"value": "值",
+			"value-required": "属性值必填。",
+			"delete-attributes-title": "您确定要删除 { count, select, 1 {1 属性} other {# 属性} }吗?",
+			"delete-attributes-text": "注意,确认后所有选中的属性都会被删除。",
+			"delete-attributes": "删除属性",
+			"enter-attribute-value": "输入属性值",
+			"show-on-widget": "在部件上显示",
+			"widget-mode": "部件模式",
+			"next-widget": "下一个部件",
+			"prev-widget": "上一个部件",
+			"add-to-dashboard": "添加到仪表板",
+			"add-widget-to-dashboard": "将部件添加到仪表板",
+			"selected-attributes": "{ count, select, 1 {1 属性} other {# 属性} } 被选中",
+			"selected-telemetry": "{ count, select, 1 {1 遥测} other {# 遥测} } 被选中"
+		},
+		"audit-log": {
+			"audit": "审计",
+			"audit-logs": "审计日志",
+			"timestamp": "时间戳",
+			"entity-type": "实体类型",
+			"entity-name": "实体名称",
+			"user": "用户",
+			"type": "类型",
+			"status": "状态",
+			"details": "详情",
+			"type-added": "添加",
+			"type-deleted": "删除",
+			"type-updated": "更新",
+			"type-attributes-updated": "更新属性",
+			"type-attributes-deleted": "删除属性",
+			"type-rpc-call": "RPC调用",
+			"type-credentials-updated": "更新凭证",
+			"type-assigned-to-customer": "分配给客户",
+			"type-unassigned-from-customer": "未分配给客户",
+			"type-activated": "激活",
+			"type-suspended": "暂停",
+			"type-credentials-read": "读取凭证",
+			"type-attributes-read": "读取属性",
+			"status-success": "成功",
+			"status-failure": "失败",
+			"audit-log-details": "审计日志详情",
+			"no-audit-logs-prompt": "找不到日志",
+			"action-data": "活动数据",
+			"failure-details": "失败详情",
+			"search": "查找审计日志",
+			"clear-search": "清空查找"
+		},
+		"confirm-on-exit": {
+			"message": "您有未保存的更改。确定要离开此页吗?",
+			"html-message": "您有未保存的更改。<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": "报警字段",
+			"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 {一个规则链} other {# 规则链列表} }",
+			"rulechain-name-starts-with": "规则链前缀名称 '{{prefix}}'",
+			"type-current-customer": "当前客户",
+			"search": "实体检索",
+			"selected-entities": "{ count, select, 1 {1 实体} other {# 实体} } 被选中",
+			"entity-name": "实体名",
+			"details": "实体详情",
+			"no-entities-prompt": "没有找到实体",
+			"no-data": "无数据"
+		},
+		"event": {
+			"event-type": "事件类型",
+			"type-error": "错误",
+			"type-lc-event": "生命周期事件",
+			"type-stats": "类型统计",
+			"type-debug-rule-node": "调试",
+			"type-debug-rule-chain": "调试",
+			"no-events-prompt": "找不到事件",
+			"error": "错误",
+			"alarm": "报警",
+			"event-time": "事件时间",
+			"server": "服务器",
+			"body": "整体",
+			"method": "方法",
+			"type": "类型",
+			"entity": "实体",
+			"message-id": "消息ID",
+			"message-type": "消息类型",
+			"data-type": "数据类型",
+			"relation-type": "关系类型",
+			"metadata": "元数据",
+			"data": "数据",
+			"event": "事件",
+			"status": "状态",
+			"success": "成功",
+			"failed": "失败",
+			"messages-processed": "消息处理",
+			"errors-occurred": "错误发生"
+		},
+		"extension": {
+			"extensions": "扩展",
+			"selected-extensions": "{ count, select, 1 {1 扩展} 其它 {# 扩展} } 被选择",
+			"type": "类型",
+			"key": "健名",
+			"value": "值",
+			"id": "Id",
+			"extension-id": "扩展ID",
+			"extension-type": "扩展类型",
+			"transformer-json": "JSON *",
+			"unique-id-required": "当前扩展ID已经存在。",
+			"delete": "删除扩展",
+			"add": "添加扩展",
+			"edit": "编辑扩展",
+			"delete-extension-title": "确实要删除扩展名'{{extensionId}}'吗?",
+			"delete-extension-text": "小心,确认后,扩展和所有相关数据将变得不可恢复。",
+			"delete-extensions-title": "您确定要删除 { count, select, 1 {1 表达式} 其它 {# 表达式} }吗?",
+			"delete-extensions-text": "小心,确认后,所有选定的扩展将被删除。",
+			"converters": "转换器",
+			"converter-id": "转换器序号",
+			"configuration": "配置",
+			"converter-configurations": "转换器的配置",
+			"token": "安全令牌",
+			"add-converter": "添加转换器",
+			"add-config": "添加转换器配置",
+			"device-name-expression": "设备名称表达式",
+			"device-type-expression": "设备类型表达式",
+			"custom": "顾客",
+			"to-double": "加倍",
+			"transformer": "转换器",
+			"json-required": "转换器JSON必填。",
+			"json-parse": "无法解析转换器JSON。",
+			"attributes": "属性",
+			"add-attribute": "添加属性",
+			"add-map": "添加映射元素",
+			"timeseries": "时间序列",
+			"add-timeseries": "添加时间序列",
+			"field-required": "必填字段",
+			"brokers": "代理服务器组",
+			"add-broker": "添加代理服务器",
+			"host": "主机",
+			"port": "端口",
+			"port-range": "端口应该在1到65535的范围内。",
+			"ssl": "Ssl",
+			"credentials": "证书",
+			"username": "用户名",
+			"password": "密码",
+			"retry-interval": "以毫秒为单位的重试间隔",
+			"anonymous": "匿名",
+			"basic": "Basic",
+			"pem": "PEM",
+			"ca-cert": "CA证书文件 *",
+			"private-key": "私钥文件 *",
+			"cert": "证书文件 *",
+			"no-file": "没有选择文件。",
+			"drop-file": "删除文件或单击以选择要上载的文件。",
+			"mapping": "映射",
+			"topic-filter": "主题滤波",
+			"converter-type": "转换类型",
+			"converter-json": "Json",
+			"json-name-expression": "设备名称JSON表达式",
+			"topic-name-expression": "设备名称主题表达式",
+			"json-type-expression": "设备类型JSON表达式",
+			"topic-type-expression": "设备类型主题表达式",
+			"attribute-key-expression": "属性关键字表达式",
+			"attr-json-key-expression": "属性键JSON表达式",
+			"attr-topic-key-expression": "属性关键字主题表达式",
+			"request-id-expression": "请求ID表达式",
+			"request-id-json-expression": "请求ID JSON表达式",
+			"request-id-topic-expression": "请求ID主题表达式",
+			"response-topic-expression": "响应主题表达式",
+			"value-expression": "值表达式",
+			"topic": "主题",
+			"timeout": "毫秒超时",
+			"converter-json-required": "转换JSON是必需的。",
+			"converter-json-parse": "无法解析转换JSON。",
+			"filter-expression": "过滤表达式",
+			"connect-requests": "连接请求",
+			"add-connect-request": "添加连接请求",
+			"disconnect-requests": "断开请求",
+			"add-disconnect-request": "添加断开请求",
+			"attribute-requests": "属性请求",
+			"add-attribute-request": "添加属性请求",
+			"attribute-updates": "属性更新",
+			"add-attribute-update": "添加属性更新",
+			"server-side-rpc": "服务端RPC",
+			"add-server-side-rpc-request": "添加服务端RPC请求",
+			"device-name-filter": "设备名称滤波",
+			"attribute-filter": "属性滤波",
+			"method-filter": "方法滤波",
+			"request-topic-expression": "请求主题表达式",
+			"response-timeout": "毫秒内响应超时",
+			"topic-expression": "主题表达",
+			"client-scope": "客户范围",
+			"add-device": "添加服务器",
+			"opc-server": "服务器组",
+			"opc-add-server": "添加服务器",
+			"opc-add-server-prompt": "请添加服务器",
+			"opc-application-name": "应用名称",
+			"opc-application-uri": "应用URI",
+			"opc-scan-period-in-seconds": "秒级扫描周期",
+			"opc-security": "安全性",
+			"opc-identity": "身份",
+			"opc-keystore": "密钥库",
+			"opc-type": "类型",
+			"opc-keystore-type": "类型",
+			"opc-keystore-location": "位置 *",
+			"opc-keystore-password": "密码",
+			"opc-keystore-alias": "别名",
+			"opc-keystore-key-password": "密钥密码",
+			"opc-device-node-pattern": "设备节点模式",
+			"opc-device-name-pattern": "设备名称模式",
+			"modbus-server": "Servers/slaves",
+			"modbus-add-server": "添加 server/slave",
+			"modbus-add-server-prompt": "请添加 server/slave",
+			"modbus-transport": "传输",
+			"modbus-port-name": "串口名称",
+			"modbus-encoding": "编码",
+			"modbus-parity": "奇偶性",
+			"modbus-baudrate": "波特率",
+			"modbus-databits": "数据位",
+			"modbus-stopbits": "停止位",
+			"modbus-databits-range": "数据位应该在7到8的范围内。",
+			"modbus-stopbits-range": "停止位应该在1到2的范围内。",
+			"modbus-unit-id": "单位编号",
+			"modbus-unit-id-range": "单位ID应该在1到247的范围内",
+			"modbus-device-name": "设备名称",
+			"modbus-poll-period": "轮询周期 (ms)",
+			"modbus-attributes-poll-period": "轮询属性周期 (ms)",
+			"modbus-timeseries-poll-period": "时间序列轮询周期 (ms)",
+			"modbus-poll-period-range": "轮询周期应为正值。",
+			"modbus-tag": "标签",
+			"modbus-function": "函数",
+			"modbus-register-address": "寄存器地址",
+			"modbus-register-address-range": "寄存器地址应该在0到65535的范围内。",
+			"modbus-register-bit-index": "位索引",
+			"modbus-register-bit-index-range": "位索引应该在0到15的范围内。",
+			"modbus-register-count": "寄存器计数",
+			"modbus-register-count-range": "寄存器计数应该是一个正值。",
+			"modbus-byte-order": "字节顺序",
+			"sync": {
+				"status": "状态",
+				"sync": "同步",
+				"not-sync": "不同步",
+				"last-sync-time": "最后同步时间",
+				"not-available": "无法使用"
+			},
 
-		"export-extensions-configuration": "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": "键名",
-		"value": "值",
-		"remove-entry": "删除条目",
-		"add-entry": "增加条目",
-		"no-data": "没有条目"
-	},
-	"layout": {
-		"layout": "布局",
-		"manage": "布局管理",
-		"settings": "布局设置",
-		"color": "颜色",
-		"main": "主体",
-		"right": "右侧",
-		"select": "选择目标布局"
-	},
-	"legend": {
-		"position": "图例位置",
-		"show-max": "显示最大值",
-		"show-min": "显示最小值",
-		"show-avg": "显示平均值",
-		"show-total": "显示总数",
-		"settings": "图例设置",
-		"min": "最小值",
-		"max": "最大值",
-		"avg": "平均值",
-		"total": "总数"
-	},
-	"login": {
-		"login": "登录",
-		"request-password-reset": "请求密码重置",
-		"reset-password": "重置密码",
-		"create-password": "创建密码",
-		"passwords-mismatch-error": "输入的密码必须相同!",
-		"password-again": "再次输入密码",
-		"sign-in": "登录 ",
-		"username": "用户名(电子邮件)",
-		"remember-me": "记住我",
-		"forgot-password": "忘记密码?",
-		"password-reset": "密码重置",
-		"new-password": "新密码",
-		"new-password-again": "再次输入新密码",
-		"password-link-sent-message": "密码重置链接已成功发送!",
-		"email": "电子邮件"
-	},
-	"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": "到"
+			"export-extensions-configuration": "导出扩展配置",
+			"import-extensions-configuration": "导入扩展配置",
+			"import-extensions": "导入扩展",
+			"import-extension": "导入扩展",
+			"export-extension": "导出扩展",
+			"file": "扩展文件",
+			"invalid-file-error": "无效的扩展文件"
+		},
+		"fullscreen": {
+			"expand": "展开到全屏",
+			"exit": "退出全屏",
+			"toggle": "切换全屏模式",
+			"fullscreen": "全屏"
+		},
+		"function": {
+			"function": "函数"
+		},
+		"grid": {
+			"delete-item-title": "您确定要删除此项吗?",
+			"delete-item-text": "注意,确认后此项及其所有相关数据将变得不可恢复。",
+			"delete-items-title": "你确定你要删除 { count, select, 1 {1 项} other {# 项} }吗?",
+			"delete-items-action-title": "删除 { count, select, 1 {1 项} other {# 项} }",
+			"delete-items-text": "注意,确认后所有选择的项目将被删除,所有相关数据将不可恢复。",
+			"add-item-text": "添加新项目",
+			"no-items-text": "没有找到项目",
+			"item-details": "项目详细信息",
+			"delete-item": "删除项目",
+			"delete-items": "删除项目",
+			"scroll-to-top": "滚动到顶部"
+		},
+		"help": {
+			"goto-help-page": "转到帮助页面"
 		},
-		"direction-type": {
-			"FROM": "从",
-			"TO": "到"
+		"home": {
+			"home": "首页",
+			"profile": "属性",
+			"logout": "注销",
+			"menu": "菜单",
+			"avatar": "头像",
+			"open-user-menu": "打开用户菜单"
 		},
-		"from-relations": "向外的关联",
-		"to-relations": "向内的关联",
-		"selected-relations": "{ count, select, 1 {1 关联} other {# 关联} } 被选中",
-		"type": "类型",
-		"to-entity-type": "到实体类型",
-		"to-entity-name": "到实体名称",
-		"from-entity-type": "从实体类型",
-		"from-entity-name": "从实体类型",
-		"to-entity": "到实体",
-		"from-entity": "从实体",
-		"delete": "删除关联",
-		"relation-type": "关联类型",
-		"relation-type-required": "关联类型必填",
-		"any-relation-type": "任意类型",
-		"add": "添加关联",
-		"edit": "编辑关联",
-		"delete-to-relation-title": "确定要删除实体 '{{entityName}}' 的关联吗?",
-		"delete-to-relation-text": "确定删除后实体 '{{entityName}}' 将取消与当前实体的关联关系。",
-		"delete-to-relations-title": "确定要删除 { count, select, 1 {1 关联} other {# 关联} }?",
-		"delete-to-relations-text": "确定删除所有选择的关联关系后,与当前实体对应的所有关联关系将被移除。",
-		"delete-from-relation-title": "确定要从实体 '{{entityName}}' 删除关联吗?",
-		"delete-from-relation-text": "确定删除后,当前实体将与实体 '{{entityName}}' 取消关联",
-		"delete-from-relations-title": "确定删除 { count, select, 1 {1 关联} other {# 关联} } 吗?",
-		"delete-from-relations-text": "确定删除所有选择的关联关系后,当前实体将与对应的实体取消关联",
-		"remove-relation-filter": "移除关联过滤器",
-		"add-relation-filter": "添加关联过滤器",
-		"any-relation": "任意关联",
-		"relation-filters": "关联过滤器",
-		"additional-info": "附加信息 (JSON)",
-		"invalid-additional-info": "无法解析附加信息json。"
-	},
-	"rulechain": {
-		"rulechain": "规则链",
-		"rulechains": "规则链库",
-		"root": "根实体",
-		"delete": "删除规则",
-		"activate": "激活规则",
-		"suspend": "暂停规则",
-		"active": "激活",
-		"suspended": "暂停",
-		"name": "名称",
-		"name-required": "名称必填。",
-		"description": "描述",
-		"add": "添加规则",
-		"set-root": "创建规则链根",
-		"set-root-rulechain-title": "您确定要生成规则链'{{RuleChainName}}'根吗?",
-		"set-root-rulechain-text": "确认之后,规则链将变为根规格链,并将处理所有传入的传输消息。",
-		"delete-rulechain-title": " 确实要删除规则链'{{ruleChainName}}'吗?",
-		"delete-rulechain-text": "小心,在确认规则链和所有相关数据将变得不可恢复。",
-		"delete-rulechains-title": "确实要删除{count, select, 1 { 1 规则链}其他{# 规则链库}}吗?",
-		"delete-rulechains-action-title": "删除 { count, select, 1 {1 规则链} other {# 规则链库} }",
-		"delete-rulechains-text": "小心,确认后,所有选定的规则链将被删除,所有相关的数据将变得不可恢复。",
-		"add-rulechain-text": "添加新的规则链",
-		"no-rulechains-text": "规则链没有发现",
-		"rulechain-details": "规则链详情",
-		"details": "详情",
-		"events": "事件",
-		"system": "系统",
-		"import": "导入规则",
-		"export": "导出规则",
-		"export-failed-error": "无法导出规则:{{error}}",
-		"create-new-rulechain": "创建新的规则链",
-		"rulechain-file": "规则链文件",
-		"invalid-rulechain-file-error": "不能导入规则链:无效的规则链数据格式。",
-		"copyId": "复制规则链ID",
-		"idCopiedMessage": "规则ID已经复制到粘贴板",
-		"select-rulechain": "选择规则链",
-		"no-rulechains-matching": "没有发现匹配'{{entity}}'的规则链。",
-		"rulechain-required": "规则链必填",
-		"management": "规则集管理",
-		"debug-mode": "调试模式"
-	},
-	"rulenode": {
-		"details": "详情",
-		"events": "事件",
-		"search": "搜索节点",
-		"open-node-library": "打开节点库",
-		"add": "添加规则节点",
-		"name": "名称",
-		"name-required": "名称必填。",
-		"type": "类型",
-		"description": "描述",
-		"delete": "删除规则节点",
-		"select-all-objects": "选择所有节点和连接",
-		"deselect-all-objects": "取消选择所有节点和连接",
-		"delete-selected-objects": "删除选定的节点和连接",
-		"delete-selected": "删除选定",
-		"select-all": "选择全部",
-		"copy-selected": "选择副本",
-		"deselect-all": "取消选择",
-		"rulenode-details": "规则节点详情",
-		"debug-mode": "调试模式",
-		"configuration": "配置",
-		"link": "链接",
-		"link-details": "规则节点链接详情",
-		"add-link": "添加链接",
-		"link-label": "链接标签",
-		"link-label-required": "链接标签必填",
-		"custom-link-label": "自定义链接标签",
-		"custom-link-label-required": "自定义链接标签必填",
-		"type-filter": "滤波器",
-		"type-filter-details": "使用配置条件过滤传入消息",
-		"type-enrichment": "属性集",
-		"type-enrichment-details": "向消息元数据中添加附加信息",
-		"type-transformation": "变换",
-		"type-transformation-details": "更改消息有效载荷和元数据",
-		"type-action": "动作",
-		"type-action-details": "执行特别动作",
-		"type-external": "外部的",
-		"type-external-details": "与外部系统交互",
-		"type-rule-chain": "规则链",
-		"type-rule-chain-details": "将传入消息转发到指定的规则链",
-		"type-input": "输入",
-		"type-input-details": "规则链的逻辑输入,将传入消息转发到下一个相关规则节点",
-		"directive-is-not-loaded": "定义的配置指令 '{{directiveName}}' 不可用。",
-		"ui-resources-load-error": "加载配置UI资源失败。",
-		"invalid-target-rulechain": "无法解析目标规则链!",
-		"test-script-function": "测试脚本功能",
-		"message": "消息",
-		"message-type": "消息类型",
-		"message-type-required": "消息类型必填",
-		"metadata": "元数据",
-		"metadata-required": "元数据项不能为空。",
-		"output": "输出",
-		"test": "测试",
-		"help": "帮助"
-	},
-	"tenant": {
-		"tenant": "租户",
-		"tenants": "租户",
-		"management": "租户管理",
-		"add": "添加租户",
-		"admins": "管理员",
-		"manage-tenant-admins": "管理租户管理员",
-		"delete": "删除租户",
-		"add-tenant-text": "添加新租户",
-		"no-tenants-text": "没有找到租户",
-		"tenant-details": "租客详情",
-		"delete-tenant-title": "您确定要删除租户'{{tenantTitle}}'吗?",
-		"delete-tenant-text": "小心!确认后,租户和所有相关数据将不可恢复。",
-		"delete-tenants-title": "您确定要删除 {count,select,1 {1 租户} other {# 租户}} 吗?",
-		"delete-tenants-action-title": "删除 { count, select, 1 {1 租户} other {# 租户} }",
-		"delete-tenants-text": "小心!确认后,所有选定的租户将被删除,所有相关数据将不可恢复。",
-		"title": "标题",
-		"title-required": "标题必填。",
-		"description": "描述",
-		"details": "详情",
-		"events": "事件",
-		"copyId": "复制租户ID",
-		"idCopiedMessage": "租户ID已经复制到粘贴板",
-		"select-tenant": "选择租户",
-		"no-tenants-matching": "没有找到符合 '{{entity}}' 的租户",
-		"tenant-required": "租户必填"
-	},
-	"timeinterval": {
-		"seconds-interval": "{ seconds, select, 1 {1 秒} other {# 秒} }",
-		"minutes-interval": "{ minutes, select, 1 {1 分} other {# 分} }",
-		"hours-interval": "{ hours, select, 1 {1 小时} other {# 小时} }",
-		"days-interval": "{ days, select, 1 {1 天} other {# 天} }",
-		"days": "天",
-		"hours": "时",
-		"minutes": "分",
-		"seconds": "秒",
-		"advanced": "高级"
-	},
-	"timewindow": {
-		"days": "{ days, select, 1 { 天 } other {# 天 } }",
-		"hours": "{ hours, select, 0 { 小时 } 1 {1 小时 } other {# 小时 } }",
-		"minutes": "{ minutes, select, 0 { 分 } 1 {1 分 } other {# 分 } }",
-		"seconds": "{ seconds, select, 0 { 秒 } 1 {1 秒 } other {# 秒 } }",
-		"realtime": "实时",
-		"history": "历史",
-		"last-prefix": "最后",
-		"period": "从 {{ startTime }} 到 {{ endTime }}",
-		"edit": "编辑时间窗口",
-		"date-range": "日期范围",
-		"last": "最后",
-		"time-period": "时间段"
-	},
-	"user": {
-		"user": "用户",
-		"users": "用户",
-		"customer-users": "客户用户",
-		"tenant-admins": "租户管理员",
-		"sys-admin": "系统管理员",
-		"tenant-admin": "租户管理员",
-		"customer": "客户",
-		"anonymous": "匿名",
-		"add": "添加用户",
-		"delete": "删除用户",
-		"add-user-text": "添加新用户",
-		"no-users-text": "找不到用户",
-		"user-details": "用户详细信息",
-		"delete-user-title": "您确定要删除用户 '{{userEmail}}' 吗?",
-		"delete-user-text": "小心!确认后,用户和所有相关数据将不可恢复。",
-		"delete-users-title": "你确定你要删除 { count, select, 1 {1 用户} other {# 用户} } 吗?",
-		"delete-users-action-title": "删除  { count, select, 1 {1 用户} other {# 用户} }",
-		"delete-users-text": "小心!确认后,所有选定的用户将被删除,所有相关数据将不可恢复。",
-		"activation-email-sent-message": "激活电子邮件已成功发送!",
-		"resend-activation": "重新发送激活",
-		"email": "电子邮件",
-		"email-required": "电子邮件必填。",
-		"invalid-email-format": "无效的邮件格式。",
-		"first-name": "名字",
-		"last-name": "姓",
-		"description": "描述",
-		"default-dashboard": "默认面板",
-		"always-fullscreen": "始终全屏",
-		"select-user": "选择用户",
-		"no-users-matching": "没有找到符合 '{{entity}}' 的用户。",
-		"user-required": "用户必填",
-		"activation-method": "激活方式",
-		"display-activation-link": "显示激活链接",
-		"send-activation-mail": "发送激活邮件",
-		"activation-link": "用户激活链接",
-		"activation-link-text": "使用该链接 <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": "管理部件",
-		"editor": "部件编辑器",
-		"widget-type-not-found": "加载部件配置出错。<br>可能关联的\n    部件已经删除了。",
-		"widget-type-load-error": "由于以下错误未加载小部件:",
-		"remove": "删除部件",
-		"edit": "编辑部件",
-		"remove-widget-title": "确实要删除 '{{widgetTitle}}'部件吗?",
-		"remove-widget-text": "确认后,控件和所有相关数据将变得不可恢复。",
-		"timeseries": "时间序列",
-		"search-data": "搜索数据",
-		"no-data-found": "没有找到数据",
-		"latest-values": "最新值",
-		"rpc": "控件部件",
-		"alarm": "警告部件",
-		"static": "静态部件",
-		"select-widget-type": "选择窗口部件类型",
-		"missing-widget-title-error": "部件标题必须指定!",
-		"widget-saved": "部件已保存",
-		"unable-to-save-widget-error": "无法保存部件!控件有错误!",
-		"save": "保存部件",
-		"saveAs": "部件另存为",
-		"save-widget-type-as": "部件类型另存为",
-		"save-widget-type-as-text": "请输入新的部件标题或选择目标部件包",
+		"import": {
+			"no-file": "没有选择文件",
+			"drop-file": "拖动一个JSON文件或者单击以选择要上传的文件。"
+		},
+		"item": {
+			"selected": "选择"
+		},
+		"js-func": {
+			"no-return-error": "函数必须返回值!",
+			"return-type-mismatch": "函数必须返回 '{{type}}' 类型的值!",
+			"tidy": "整洁"
+		},
+		"key-val": {
+			"key": "键名",
+			"value": "值",
+			"remove-entry": "删除条目",
+			"add-entry": "增加条目",
+			"no-data": "没有条目"
+		},
+		"layout": {
+			"layout": "布局",
+			"manage": "布局管理",
+			"settings": "布局设置",
+			"color": "颜色",
+			"main": "主体",
+			"right": "右侧",
+			"select": "选择目标布局"
+		},
+		"legend": {
+			"position": "图例位置",
+			"show-max": "显示最大值",
+			"show-min": "显示最小值",
+			"show-avg": "显示平均值",
+			"show-total": "显示总数",
+			"settings": "图例设置",
+			"min": "最小值",
+			"max": "最大值",
+			"avg": "平均值",
+			"total": "总数"
+		},
+		"login": {
+			"login": "登录",
+			"request-password-reset": "请求密码重置",
+			"reset-password": "重置密码",
+			"create-password": "创建密码",
+			"passwords-mismatch-error": "输入的密码必须相同!",
+			"password-again": "再次输入密码",
+			"sign-in": "登录 ",
+			"username": "用户名(电子邮件)",
+			"remember-me": "记住我",
+			"forgot-password": "忘记密码?",
+			"password-reset": "密码重置",
+			"new-password": "新密码",
+			"new-password-again": "再次输入新密码",
+			"password-link-sent-message": "密码重置链接已成功发送!",
+			"email": "电子邮件"
+		},
+		"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": "您确定要生成规则链'{{RuleChainName}}'根吗?",
+			"set-root-rulechain-text": "确认之后,规则链将变为根规格链,并将处理所有传入的传输消息。",
+			"delete-rulechain-title": " 确实要删除规则链'{{ruleChainName}}'吗?",
+			"delete-rulechain-text": "小心,在确认规则链和所有相关数据将变得不可恢复。",
+			"delete-rulechains-title": "确实要删除{count, select, 1 { 1 规则链}其他{# 规则链库}}吗?",
+			"delete-rulechains-action-title": "删除 { count, select, 1 {1 规则链} other {# 规则链库} }",
+			"delete-rulechains-text": "小心,确认后,所有选定的规则链将被删除,所有相关的数据将变得不可恢复。",
+			"add-rulechain-text": "添加新的规则链",
+			"no-rulechains-text": "规则链没有发现",
+			"rulechain-details": "规则链详情",
+			"details": "详情",
+			"events": "事件",
+			"system": "系统",
+			"import": "导入规则",
+			"export": "导出规则",
+			"export-failed-error": "无法导出规则:{{error}}",
+			"create-new-rulechain": "创建新的规则链",
+			"rulechain-file": "规则链文件",
+			"invalid-rulechain-file-error": "不能导入规则链:无效的规则链数据格式。",
+			"copyId": "复制规则链ID",
+			"idCopiedMessage": "规则ID已经复制到粘贴板",
+			"select-rulechain": "选择规则链",
+			"no-rulechains-matching": "没有发现匹配'{{entity}}'的规则链。",
+			"rulechain-required": "规则链必填",
+			"management": "规则集管理",
+			"debug-mode": "调试模式"
+		},
+		"rulenode": {
+			"details": "详情",
+			"events": "事件",
+			"search": "搜索节点",
+			"open-node-library": "打开节点库",
+			"add": "添加规则节点",
+			"name": "名称",
+			"name-required": "名称必填。",
+			"type": "类型",
+			"description": "描述",
+			"delete": "删除规则节点",
+			"select-all-objects": "选择所有节点和连接",
+			"deselect-all-objects": "取消选择所有节点和连接",
+			"delete-selected-objects": "删除选定的节点和连接",
+			"delete-selected": "删除选定",
+			"select-all": "选择全部",
+			"copy-selected": "选择副本",
+			"deselect-all": "取消选择",
+			"rulenode-details": "规则节点详情",
+			"debug-mode": "调试模式",
+			"configuration": "配置",
+			"link": "链接",
+			"link-details": "规则节点链接详情",
+			"add-link": "添加链接",
+			"link-label": "链接标签",
+			"link-label-required": "链接标签必填",
+			"custom-link-label": "自定义链接标签",
+			"custom-link-label-required": "自定义链接标签必填",
+			"type-filter": "滤波器",
+			"type-filter-details": "使用配置条件过滤传入消息",
+			"type-enrichment": "属性集",
+			"type-enrichment-details": "向消息元数据中添加附加信息",
+			"type-transformation": "变换",
+			"type-transformation-details": "更改消息有效载荷和元数据",
+			"type-action": "动作",
+			"type-action-details": "执行特别动作",
+			"type-external": "外部的",
+			"type-external-details": "与外部系统交互",
+			"type-rule-chain": "规则链",
+			"type-rule-chain-details": "将传入消息转发到指定的规则链",
+			"type-input": "输入",
+			"type-input-details": "规则链的逻辑输入,将传入消息转发到下一个相关规则节点",
+			"directive-is-not-loaded": "定义的配置指令 '{{directiveName}}' 不可用。",
+			"ui-resources-load-error": "加载配置UI资源失败。",
+			"invalid-target-rulechain": "无法解析目标规则链!",
+			"test-script-function": "测试脚本功能",
+			"message": "消息",
+			"message-type": "消息类型",
+			"message-type-required": "消息类型必填",
+			"metadata": "元数据",
+			"metadata-required": "元数据项不能为空。",
+			"output": "输出",
+			"test": "测试",
+			"help": "帮助"
+		},
+		"tenant": {
+			"tenant": "租户",
+			"tenants": "租户",
+			"management": "租户管理",
+			"add": "添加租户",
+			"admins": "管理员",
+			"manage-tenant-admins": "管理租户管理员",
+			"delete": "删除租户",
+			"add-tenant-text": "添加新租户",
+			"no-tenants-text": "没有找到租户",
+			"tenant-details": "租客详情",
+			"delete-tenant-title": "您确定要删除租户'{{tenantTitle}}'吗?",
+			"delete-tenant-text": "小心!确认后,租户和所有相关数据将不可恢复。",
+			"delete-tenants-title": "您确定要删除 {count,select,1 {1 租户} other {# 租户}} 吗?",
+			"delete-tenants-action-title": "删除 { count, select, 1 {1 租户} other {# 租户} }",
+			"delete-tenants-text": "小心!确认后,所有选定的租户将被删除,所有相关数据将不可恢复。",
+			"title": "标题",
+			"title-required": "标题必填。",
+			"description": "描述",
+			"details": "详情",
+			"events": "事件",
+			"copyId": "复制租户ID",
+			"idCopiedMessage": "租户ID已经复制到粘贴板",
+			"select-tenant": "选择租户",
+			"no-tenants-matching": "没有找到符合 '{{entity}}' 的租户",
+			"tenant-required": "租户必填"
+		},
+		"timeinterval": {
+			"seconds-interval": "{ seconds, select, 1 {1 秒} other {# 秒} }",
+			"minutes-interval": "{ minutes, select, 1 {1 分} other {# 分} }",
+			"hours-interval": "{ hours, select, 1 {1 小时} other {# 小时} }",
+			"days-interval": "{ days, select, 1 {1 天} other {# 天} }",
+			"days": "天",
+			"hours": "时",
+			"minutes": "分",
+			"seconds": "秒",
+			"advanced": "高级"
+		},
+		"timewindow": {
+			"days": "{ days, select, 1 { 天 } other {# 天 } }",
+			"hours": "{ hours, select, 0 { 小时 } 1 {1 小时 } other {# 小时 } }",
+			"minutes": "{ minutes, select, 0 { 分 } 1 {1 分 } other {# 分 } }",
+			"seconds": "{ seconds, select, 0 { 秒 } 1 {1 秒 } other {# 秒 } }",
+			"realtime": "实时",
+			"history": "历史",
+			"last-prefix": "最后",
+			"period": "从 {{ startTime }} 到 {{ endTime }}",
+			"edit": "编辑时间窗口",
+			"date-range": "日期范围",
+			"last": "最后",
+			"time-period": "时间段"
+		},
+		"user": {
+			"user": "用户",
+			"users": "用户",
+			"customer-users": "客户用户",
+			"tenant-admins": "租户管理员",
+			"sys-admin": "系统管理员",
+			"tenant-admin": "租户管理员",
+			"customer": "客户",
+			"anonymous": "匿名",
+			"add": "添加用户",
+			"delete": "删除用户",
+			"add-user-text": "添加新用户",
+			"no-users-text": "找不到用户",
+			"user-details": "用户详细信息",
+			"delete-user-title": "您确定要删除用户 '{{userEmail}}' 吗?",
+			"delete-user-text": "小心!确认后,用户和所有相关数据将不可恢复。",
+			"delete-users-title": "你确定你要删除 { count, select, 1 {1 用户} other {# 用户} } 吗?",
+			"delete-users-action-title": "删除  { count, select, 1 {1 用户} other {# 用户} }",
+			"delete-users-text": "小心!确认后,所有选定的用户将被删除,所有相关数据将不可恢复。",
+			"activation-email-sent-message": "激活电子邮件已成功发送!",
+			"resend-activation": "重新发送激活",
+			"email": "电子邮件",
+			"email-required": "电子邮件必填。",
+			"invalid-email-format": "无效的邮件格式。",
+			"first-name": "名字",
+			"last-name": "姓",
+			"description": "描述",
+			"default-dashboard": "默认面板",
+			"always-fullscreen": "始终全屏",
+			"select-user": "选择用户",
+			"no-users-matching": "没有找到符合 '{{entity}}' 的用户。",
+			"user-required": "用户必填",
+			"activation-method": "激活方式",
+			"display-activation-link": "显示激活链接",
+			"send-activation-mail": "发送激活邮件",
+			"activation-link": "用户激活链接",
+			"activation-link-text": "使用该链接 <a href='{{activationLink}}' target='_blank'>激活</a> 激活用户:",
+			"copy-activation-link": "复制用户激活链接",
+			"activation-link-copied-message": "用户激活链接已经复制到粘贴板",
+			"details": "详细信息"
+		},
+		"value": {
+			"type": "值类型",
+			"string": "字符串",
+			"string-value": "字符串值",
+			"integer": "数字",
+			"integer-value": "数字值",
+			"invalid-integer-value": "整数值无效",
+			"double": "双精度小数",
+			"double-value": "双精度小数值",
+			"boolean": "布尔",
+			"boolean-value": "布尔值",
+			"false": "假",
+			"true": "真",
+			"long": "Long"
+		},
+		"widget": {
+			"widget-library": "部件库",
+			"widget-bundle": "部件包",
+			"select-widgets-bundle": "选择部件包",
+			"management": "管理部件",
+			"editor": "部件编辑器",
+			"widget-type-not-found": "加载部件配置出错。<br>可能关联的\n    部件已经删除了。",
+			"widget-type-load-error": "由于以下错误未加载小部件:",
+			"remove": "删除部件",
+			"edit": "编辑部件",
+			"remove-widget-title": "确实要删除 '{{widgetTitle}}'部件吗?",
+			"remove-widget-text": "确认后,控件和所有相关数据将变得不可恢复。",
+			"timeseries": "时间序列",
+			"search-data": "搜索数据",
+			"no-data-found": "没有找到数据",
+			"latest-values": "最新值",
+			"rpc": "控件部件",
+			"alarm": "警告部件",
+			"static": "静态部件",
+			"select-widget-type": "选择窗口部件类型",
+			"missing-widget-title-error": "部件标题必须指定!",
+			"widget-saved": "部件已保存",
+			"unable-to-save-widget-error": "无法保存部件!控件有错误!",
+			"save": "保存部件",
+			"saveAs": "部件另存为",
+			"save-widget-type-as": "部件类型另存为",
+			"save-widget-type-as-text": "请输入新的部件标题或选择目标部件包",
 
-		"toggle-fullscreen": "切换全屏",
-		"run": "运行部件",
-		"title": "部件标题",
-		"title-required": "需要部件标题。",
-		"type": "部件类型",
-		"resources": "资源",
-		"resource-url": "JavaScript/CSS URL",
-		"remove-resource": "删除资源",
-		"add-resource": "添加资源",
-		"html": "HTML",
-		"tidy": "整理",
-		"css": "CSS",
-		"settings-schema": "设置模式",
-		"datakey-settings-schema": "数据键设置模式",
-		"javascript": "Javascript",
-		"remove-widget-type-title": "您确定要删除部件类型 '{{widgetName}}'吗?",
-		"remove-widget-type-text": "确认后,窗口部件类型和所有相关数据将不可恢复。",
-		"remove-widget-type": "删除部件类型",
-		"add-widget-type": "添加新的部件类型",
-		"widget-type-load-failed-error": "无法加载部件类型!",
-		"widget-template-load-failed-error": "无法加载部件模板!",
-		"add": "添加部件",
-		"undo": "撤消部件更改",
-		"export": "导出部件"
-	},
-	"widget-action": {
-		"header-button": "部件顶部按钮",
-		"open-dashboard-state": "切换到新仪表板状态",
-		"update-dashboard-state": "更新当前仪表板状态",
-		"open-dashboard": "切换到另一个仪表板",
-		"custom": "自定义动作",
-		"target-dashboard-state": "目标仪表板状态",
-		"target-dashboard-state-required": "目标仪表板状态必填",
-		"set-entity-from-widget": "从部件中设置实体",
-		"target-dashboard": "目标仪表板",
-		"open-right-layout": "打开右侧布局 (移动端视图)"
-	},
-	"widgets-bundle": {
-		"current": "当前包",
-		"widgets-bundles": "部件包",
-		"add": "添加部件包",
-		"delete": "删除部件包",
-		"title": "标题",
-		"title-required": "标题必填。",
-		"add-widgets-bundle-text": "添加新的部件包",
-		"no-widgets-bundles-text": "找不到部件包",
-		"empty": "部件包是空的",
-		"details": "详情",
-		"widgets-bundle-details": "部件包详细信息",
-		"delete-widgets-bundle-title": "您确定要删除部件包 '{{widgetsBundleTitle}}'吗?",
-		"delete-widgets-bundle-text": "小心!确认后,部件包和所有相关数据将不可恢复。",
-		"delete-widgets-bundles-title": "你确定你要删除 { count, select, 1 {1 部件包} other {# 部件包} } 吗?",
-		"delete-widgets-bundles-action-title": "删除  { count, select, 1 {1 部件包} other {# 部件包} }",
-		"delete-widgets-bundles-text": "小心!确认后,所有选定的部件包将被删除,所有相关数据将不可恢复。",
-		"no-widgets-bundles-matching": "没有找到与 '{{widgetsBundle}}' 匹配的部件包。",
-		"widgets-bundle-required": "需要部件包。",
-		"system": "系统",
-		"import": "导入部件包",
-		"export": "导出部件包",
-		"export-failed-error": "无法导出部件包: {{error}}",
-		"create-new-widgets-bundle": "创建新的部件包",
-		"widgets-bundle-file": "部件包文件",
-		"invalid-widgets-bundle-file-error": "无法导入部件包:无效的部件包数据结构。"
-	},
-	"widget-config": {
-		"data": "数据",
-		"settings": "设置",
-		"advanced": "高级",
-		"title": "标题",
-		"general-settings": "常规设置",
-		"display-title": "显示标题",
-		"drop-shadow": "阴影",
-		"enable-fullscreen": "启用全屏",
-		"background-color": "背景颜色",
-		"text-color": "文字颜色",
-		"padding": "填充",
-		"margin": "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": "西班牙语"
-	}
+			"toggle-fullscreen": "切换全屏",
+			"run": "运行部件",
+			"title": "部件标题",
+			"title-required": "需要部件标题。",
+			"type": "部件类型",
+			"resources": "资源",
+			"resource-url": "JavaScript/CSS URL",
+			"remove-resource": "删除资源",
+			"add-resource": "添加资源",
+			"html": "HTML",
+			"tidy": "整理",
+			"css": "CSS",
+			"settings-schema": "设置模式",
+			"datakey-settings-schema": "数据键设置模式",
+			"javascript": "Javascript",
+			"remove-widget-type-title": "您确定要删除部件类型 '{{widgetName}}'吗?",
+			"remove-widget-type-text": "确认后,窗口部件类型和所有相关数据将不可恢复。",
+			"remove-widget-type": "删除部件类型",
+			"add-widget-type": "添加新的部件类型",
+			"widget-type-load-failed-error": "无法加载部件类型!",
+			"widget-template-load-failed-error": "无法加载部件模板!",
+			"add": "添加部件",
+			"undo": "撤消部件更改",
+			"export": "导出部件"
+		},
+		"widget-action": {
+			"header-button": "部件顶部按钮",
+			"open-dashboard-state": "切换到新仪表板状态",
+			"update-dashboard-state": "更新当前仪表板状态",
+			"open-dashboard": "切换到另一个仪表板",
+			"custom": "自定义动作",
+			"target-dashboard-state": "目标仪表板状态",
+			"target-dashboard-state-required": "目标仪表板状态必填",
+			"set-entity-from-widget": "从部件中设置实体",
+			"target-dashboard": "目标仪表板",
+			"open-right-layout": "打开右侧布局 (移动端视图)"
+		},
+		"widgets-bundle": {
+			"current": "当前包",
+			"widgets-bundles": "部件包",
+			"add": "添加部件包",
+			"delete": "删除部件包",
+			"title": "标题",
+			"title-required": "标题必填。",
+			"add-widgets-bundle-text": "添加新的部件包",
+			"no-widgets-bundles-text": "找不到部件包",
+			"empty": "部件包是空的",
+			"details": "详情",
+			"widgets-bundle-details": "部件包详细信息",
+			"delete-widgets-bundle-title": "您确定要删除部件包 '{{widgetsBundleTitle}}'吗?",
+			"delete-widgets-bundle-text": "小心!确认后,部件包和所有相关数据将不可恢复。",
+			"delete-widgets-bundles-title": "你确定你要删除 { count, select, 1 {1 部件包} other {# 部件包} } 吗?",
+			"delete-widgets-bundles-action-title": "删除  { count, select, 1 {1 部件包} other {# 部件包} }",
+			"delete-widgets-bundles-text": "小心!确认后,所有选定的部件包将被删除,所有相关数据将不可恢复。",
+			"no-widgets-bundles-matching": "没有找到与 '{{widgetsBundle}}' 匹配的部件包。",
+			"widgets-bundle-required": "需要部件包。",
+			"system": "系统",
+			"import": "导入部件包",
+			"export": "导出部件包",
+			"export-failed-error": "无法导出部件包: {{error}}",
+			"create-new-widgets-bundle": "创建新的部件包",
+			"widgets-bundle-file": "部件包文件",
+			"invalid-widgets-bundle-file-error": "无法导入部件包:无效的部件包数据结构。"
+		},
+		"widget-config": {
+			"data": "数据",
+			"settings": "设置",
+			"advanced": "高级",
+			"title": "标题",
+			"general-settings": "常规设置",
+			"display-title": "显示标题",
+			"drop-shadow": "阴影",
+			"enable-fullscreen": "启用全屏",
+			"background-color": "背景颜色",
+			"text-color": "文字颜色",
+			"padding": "填充",
+			"margin": "边缘",
+			"widget-style": "部件风格",
+			"title-style": "标题风格",
+			"mobile-mode-settings": "移动端设置",
+			"order": "顺序",
+			"height": "高度",
+			"units": "特殊符号展示值",
+			"decimals": "浮点数后的位数",
+			"timewindow": "时间窗口",
+			"use-dashboard-timewindow": "使用仪表板的时间窗口",
+			"display-legend": "显示图例",
+			"datasources": "数据源",
+			"maximum-datasources": "最大允许 { count, select, 1 {1 数据} other {# 数据} }",
+			"datasource-type": "类型",
+			"datasource-parameters": "参数",
+			"remove-datasource": "移除数据源",
+			"add-datasource": "添加数据源",
+			"target-device": "目标设备",
+			"alarm-source": "警告源",
+			"actions": "动作",
+			"action": "动作",
+			"add-action": "添加动作",
+			"search-actions": "动作检索",
+			"action-source": "动作源",
+			"action-source-required": "动作源必填",
+			"action-name": "动作名称",
+			"action-name-required": "动作名称必填。",
+			"action-name-not-unique": "动作名称已经存在。<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": "显示所有图标"
+		},
+		"custom": {
+			"widget-action": {
+				"action-cell-button": "动作单元格按钮",
+				"row-click": "点击行",
+				"marker-click": "点击标记",
+				"tooltip-tag-action": "提示标签动作"
+			}
+		},
+		"language": {
+			"language": "语言",
+			"en_US": "英语",
+			"ko_KR": "韩语",
+			"zh_CN": "汉语",
+			"ru_RU": "俄语",
+			"es_ES": "西班牙语"
+		}
     };
     angular.extend(locales, {
         'zh_CN': zh_CN