diff --git a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json
index b7a3078c3b..d436551d65 100644
--- a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json
+++ b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json
@@ -76,6 +76,7 @@
"general": "基本设置",
"general-policy": "基本策略",
"general-settings": "基本设置",
+ "home-settings": "首页设置",
"mail-from": "邮件来自",
"mail-from-required": "邮件发件人必填。",
"max-failed-login-attempts": "登录失败之前的最大登录尝试次数",
@@ -115,7 +116,7 @@
"customer-name-pattern": "客户名称模式",
"default-dashboard-name": "默认仪表板名称",
"delete-domain": "删除域",
- "delete-domain-text": "注意,确认后域和所有 provider data 将不可用。",
+ "delete-domain-text": "请注意:确认后域和所有 provider data 将不可用。",
"delete-domain-title": "确实要删除域 '{{domainName}}' 的设置吗?",
"delete-provider": "删除 Provider",
"delete-registration-text": "请注意:确认后 provider data 将不可用。",
@@ -413,7 +414,7 @@
"assignedToCustomer": "分配客户",
"copyId": "复制资产ID",
"delete": "删除资产",
- "delete-asset-text": "小心!确认后资产及其所有相关数据将不可恢复。",
+ "delete-asset-text": "请注意:确认后资产及其所有相关数据将不可恢复。",
"delete-asset-title": "确定要删除资产 '{{assetName}}'?",
"delete-assets": "删除资产",
"delete-assets-action-title": "删除 { count, plural, 1 {# 个资产} other {# 个资产} }",
@@ -589,10 +590,10 @@
"default-customer": "默认客户",
"default-customer-required": "为了调试租户级别上的仪表板,需要默认客户。",
"delete": "删除此客户",
- "delete-customer-text": "小心!确认后,客户及其所有相关数据将不可恢复。",
+ "delete-customer-text": "请注意:确认后,客户及其所有相关数据将不可恢复。",
"delete-customer-title": "您确定要删除客户'{{customerTitle}}'吗?",
"delete-customers-action-title": "删除 { count, plural, 1 {# 个客户} other {# 个客户} }",
- "delete-customers-text": "小心!确认后,所有选定的客户将被删除,所有相关数据将不可恢复。",
+ "delete-customers-text": "请注意:确认后,所有选定的客户将被删除,所有相关数据将不可恢复。",
"delete-customers-title": "您确定要删除 { count, plural, 1 {# 个客户} other {# 个客户} }吗?",
"description": "说明",
"details": "详情",
@@ -647,6 +648,7 @@
"background-color": "背景颜色",
"background-image": "背景图片",
"background-size-mode": "背景大小模式",
+ "cannot-upload-file": "无法上传文件",
"close-toolbar": "关闭工具栏",
"columns-count": "列数",
"columns-count-required": "需要列数。",
@@ -659,14 +661,15 @@
"dashboard-details": "仪表板详情",
"dashboard-file": "仪表板文件",
"dashboard-import-missing-aliases-title": "配置导入仪表板使用的别名",
+ "dashboard-logo-image": "仪表板 Logo 图片",
"dashboard-required": "仪表板必填。",
"dashboards": "仪表板库",
"delete": "删除仪表板",
- "delete-dashboard-text": "小心!确认后仪表板及其所有相关数据将不可恢复。",
+ "delete-dashboard-text": "请注意:确认后仪表板及其所有相关数据将不可恢复。",
"delete-dashboard-title": "您确定要删除仪表板 '{{dashboardTitle}}'吗?",
"delete-dashboards": "删除仪表板",
"delete-dashboards-action-title": "删除 { count, plural, 1 {# 个仪表板} other {# 个仪表板} }",
- "delete-dashboards-text": "小心!确认后所有选定的仪表板将被删除,所有相关数据将不可恢复。",
+ "delete-dashboards-text": "请注意:确认后所有选定的仪表板将被删除,所有相关数据将不可恢复。",
"delete-dashboards-title": "确定要删除 { count, plural, 1 {# 个仪表板} other {# 个仪表板} }吗?",
"delete-state": "删除仪表板状态",
"delete-state-text": "确定要删除仪表板状态 '{{stateName}}' 吗?",
@@ -674,6 +677,7 @@
"description": "说明",
"details": "详情",
"display-dashboard-export": "显示导出",
+ "display-dashboard-logo": "在仪表板全屏模式下显示 Logo",
"display-dashboard-timewindow": "显示时间窗口",
"display-dashboards-selection": "显示仪表板选项",
"display-entities-selection": "显示实体选项",
@@ -684,6 +688,8 @@
"export": "导出仪表板",
"export-failed-error": "无法导出仪表板: {{error}}",
"hide-details": "隐藏详情",
+ "home-dashboard": "首页仪表板",
+ "home-dashboard-hide-toolbar": "隐藏首页仪表板工具栏",
"horizontal-margin": "水平边距",
"horizontal-margin-required": "需要水平边距值。",
"import": "导入仪表板",
@@ -736,6 +742,7 @@
"select-state": "选择目标状态",
"select-widget-subtitle": "可用的部件类型列表",
"select-widget-title": "选择部件",
+ "select-widget-value": "{{title}}: 选择部件",
"selected-dashboards": "已选择 { count, plural, 1 {# 个仪表盘} other {# 个仪表盘} }",
"selected-states": "已选择 { count, plural, 1 {# 个仪表板状态} other {# 个仪表板状态} }",
"set-background": "设置背景",
@@ -803,6 +810,7 @@
},
"datasource": {
"add-datasource-prompt": "请添加数据源",
+ "label": "标签",
"name": "名称",
"type": "数据源类型"
},
@@ -843,6 +851,11 @@
"attributes-topic-filter": "Attributes topic filter",
"attributes-topic-filter-required": "Attributes topic 筛选器必填。",
"clear-alarm-rule": "清除报警规则",
+ "coap-device-payload-type": "CoAP 设备消息 Payload",
+ "coap-device-type": "CoAP 设备类型",
+ "coap-device-type-default": "默认",
+ "coap-device-type-efento": "Efento NB-IoT",
+ "coap-device-type-required": "CoAP 设备类型必填。",
"condition": "条件",
"condition-duration": "条件持续时间",
"condition-duration-time-unit": "时间单位",
@@ -867,17 +880,19 @@
"copyId": "复制设备配置 ID",
"create-alarm-pattern": "创建 {{alarmType}} 报警",
"create-alarm-rules": "创建报警规则",
+ "create-device-profile": "创建设备配置",
"create-new-device-profile": "创建一个新的!",
"default": "默认",
"default-rule-chain": "默认规则链",
"delete": "删除设备配置",
- "delete-device-profile-text": "注意,确认后设备配置和所有相关数据将不可恢复。",
+ "delete-device-profile-text": "请注意:确认后设备配置和所有相关数据将不可恢复。",
"delete-device-profile-title": "是否确实要删除设备配置 '{{deviceProfileName}}'?",
"delete-device-profiles-text": "请注意:确认后,所有选定的设备配置将被删除,所有相关数据将不可恢复。",
"delete-device-profiles-title": "确定要删除 { count, plural, 1 {# 个设备配置} other {# 个设备配置} }?",
"description": "说明",
"device-profile": "设备配置",
"device-profile-details": "设备配置详情",
+ "device-profile-file": "设备配置文件",
"device-profile-required": "设备配置必填",
"device-profiles": "设备配置",
"device-provisioning": "设备预配置",
@@ -886,7 +901,11 @@
"edit-alarm-rule-condition": "编辑报警规则条件",
"edit-schedule": "编辑报警日程表",
"enter-alarm-rule-condition-prompt": "请添加报警规则条件",
+ "export": "导出设备配置",
+ "export-failed-error": "无法导出设备配置文件: {{error}}",
"idCopiedMessage": "设备配置 ID 已复制到剪贴板",
+ "import": "导入设备配置",
+ "invalid-device-profile-file-error": "无法导入设备配置文件:无效的设备配置文件数据结构。",
"mqtt-device-payload-type": "MQTT 设备 Payload",
"mqtt-device-payload-type-json": "JSON",
"mqtt-device-payload-type-proto": "Protobuf",
@@ -920,6 +939,11 @@
"provision-strategy-created-new": "允许创建新设备",
"provision-strategy-disabled": "禁用",
"provision-strategy-required": "预配置策略必填。",
+ "rpc-request-proto-schema": "RPC 请求 proto schema",
+ "rpc-request-proto-schema-hint": "RPC 请求消息应始终包含字段:string method = 1; int32 requestId = 2; 和params = 3的任何数据类型。",
+ "rpc-request-proto-schema-required": "RPC 请求 proto schema 必填。",
+ "rpc-response-proto-schema": "RPC 响应 proto schema",
+ "rpc-response-proto-schema-required": "RPC 响应 proto schema 必填。",
"rpc-response-topic-filter": "RPC响应 Topic 筛选器",
"rpc-response-topic-filter-required": "RPC响应 Topic 筛选器必填。",
"schedule": "启用规则:",
@@ -957,6 +981,7 @@
"telemetry-topic-filter-required": "遥测数据 topic 筛选器必填。",
"transport-configuration": "传输配置",
"transport-type": "传输方式",
+ "transport-type-coap-hint": "启用高级 CoAP 传输设置",
"transport-type-default": "默认",
"transport-type-default-hint": "支持基本MQTT、HTTP和CoAP传输",
"transport-type-lwm2m": "LWM2M",
@@ -964,6 +989,7 @@
"transport-type-mqtt": "MQTT",
"transport-type-mqtt-hint": "启用高级MQTT传输设置",
"transport-type-required": "传输方式必填。",
+ "transport-type-snmp-hint": "指定 SNMP 传输配置",
"type": "配置类型",
"type-default": "默认",
"type-required": "配置类型必填。"
@@ -1000,11 +1026,11 @@
"credentials": "凭据",
"credentials-type": "凭据类型",
"delete": "删除设备",
- "delete-device-text": "小心!确认后设备及其所有相关数据将不可恢复。",
+ "delete-device-text": "请注意:确认后设备及其所有相关数据将不可恢复。",
"delete-device-title": "您确定要删除设备的{{deviceName}}吗?",
"delete-devices": "删除设备",
"delete-devices-action-title": "删除 {count,plural,1 {# 个设备} other {# 个设备} }",
- "delete-devices-text": "小心!确认后所有选定的设备将被删除,所有相关数据将不可恢复。",
+ "delete-devices-text": "请注意:确认后所有选定的设备将被删除,所有相关数据将不可恢复。",
"delete-devices-title": "确定要删除{count,plural,1 {# 个设备} other {# 个设备} } 吗?",
"description": "说明",
"details": "详情",
@@ -1051,6 +1077,7 @@
"no-devices-text": "找不到设备",
"no-key-matching": "'{{key}}' 没有找到。",
"no-keys-found": "找不到密钥。",
+ "overwrite-activity-time": "覆盖已连接设备的活动时间",
"password": "密码",
"public": "公开",
"remove-alias": "删除设备别名",
@@ -1139,7 +1166,7 @@
"created-time": "创建时间",
"date-limits": "日期限制",
"delete": "删除实体视图",
- "delete-entity-view-text": "小心!确认后实体视图及其所有相关数据将不可恢复。",
+ "delete-entity-view-text": "请注意:确认后实体视图及其所有相关数据将不可恢复。",
"delete-entity-view-title": "确定要删除实体视图 '{{entityViewName}}'?",
"delete-entity-views": "删除实体视图",
"delete-entity-views-action-title": "删除 { count, plural, 1 {# 个实体视图} other {# 个实体视图} }",
@@ -1235,6 +1262,7 @@
"duplicate-alias-error": "别名 '{{alias}}' 重复。
同一仪表板别名必须唯一。",
"enter-entity-type": "输入实体类型",
"entities": "实体",
+ "entities-count": "实体数量",
"entity": "实体",
"entity-alias": "实体别名",
"entity-label": "实体标签",
@@ -1334,12 +1362,15 @@
"body": "整体",
"data": "数据",
"data-type": "数据类型",
+ "entity-id": "实体ID",
"error": "错误",
"errors-occurred": "错误发生",
"event": "事件",
"event-time": "事件时间",
"event-type": "事件类型",
+ "events-filter": "事件筛选器",
"failed": "失败",
+ "has-error": "有错误",
"message-id": "消息ID",
"message-type": "消息类型",
"messages-processed": "消息处理",
@@ -1552,6 +1583,7 @@
"key-name-required": "键名必填。",
"key-type": {
"attribute": "属性",
+ "constant": "常量",
"entity-field": "实体",
"key-type": "键类型",
"timeseries": "Timeseries"
@@ -1603,6 +1635,51 @@
"value-type": "值类型"
}
},
+ "firmware": {
+ "add": "添加固件",
+ "checksum": "校验和",
+ "checksum-algorithm": "校验和算法",
+ "checksum-copied-message": "固件校验和已复制到剪贴板",
+ "checksum-required": "校验和为必填项。",
+ "content-type": "Content type",
+ "copy-checksum": "复制校验和",
+ "copyId": "复制固件ID",
+ "delete": "删除固件",
+ "delete-firmware-text": "请注意:确认后固件将无法恢复。",
+ "delete-firmware-title": "确定要删除固件'{{firmwareTitle}}'?",
+ "delete-firmwares-action-title": "Delete { count, plural, 1 {# 个固件} other {# 个固件} }",
+ "delete-firmwares-text": "请注意:确认后所有选定的资源都将被删除。",
+ "delete-firmwares-title": "确定要删除固件 { count, plural, 1 {# 个固件} other {# 个固件} }?",
+ "description": "描述",
+ "download": "下载固件",
+ "drop-file": "拖拽固件文件或单击以选择要上传的文件。",
+ "empty": "固件为空",
+ "file-name": "文件名",
+ "file-size": "文件大小",
+ "file-size-bytes": "文件大小(字节)",
+ "firmware": "固件",
+ "firmware-details": "固件详情",
+ "firmware-required": "固件为必选项。",
+ "idCopiedMessage": "固件ID已复制到剪贴板",
+ "no-firmware-matching": "找不到与 '{{entity}}' 匹配的固件。",
+ "no-firmware-text": "没有找到固件",
+ "no-software-matching": "找不到与 '{{entity}}' 匹配的软件。",
+ "no-software-text": "没有找到软件",
+ "search": "查找固件",
+ "selected-firmware": "已选择{ count, plural, 1 {# 个固件} other {# 个固件}",
+ "software": "软件",
+ "software-required": "软件为必选项。",
+ "title": "标题",
+ "title-required": "标题为必填项。",
+ "type": "固件类型",
+ "types": {
+ "firmware": "固件",
+ "software": "软件"
+ },
+ "version": "版本号",
+ "version-required": "版本号为必填项。",
+ "warning-after-save-no-edit": "保存固件后,将无法更改标题和版本号。"
+},
"fullscreen": {
"exit": "退出全屏",
"expand": "展开到全屏",
@@ -1907,6 +1984,30 @@
"to-relations": "向内的关联",
"type": "类型"
},
+ "resource": {
+ "add": "添加资源",
+ "delete": "删除资源",
+ "delete-resource-text": "请注意:确认后资源将不可恢复。",
+ "delete-resource-title": "确定要删除资源 '{{resourceTitle}}' 吗?",
+ "delete-resources-action-title": "删除 { count, plural, 1 {# 个资源} other {# 个资源} }",
+ "delete-resources-text": "请注意:确认后所有选定的资源都将被删除。",
+ "delete-resources-title": "确定要删除 { count, plural, 1 {# 个资源} other {# 个资源} }?",
+ "drop-file": "拖拽资源文件或单击以选择要上传的文件。",
+ "empty": "资源为空",
+ "export": "导出资源",
+ "no-resource-matching": "找不到与 '{{widgetsBundle}}' 匹配的资源。",
+ "no-resource-text": "找不到资源",
+ "open-widgets-bundle": "打开部件库",
+ "resource": "资源",
+ "resource-library-details": "资源库详情",
+ "resource-type": "资源类型",
+ "resources-library": "资源库",
+ "search": "查找资源",
+ "selected-resources": "已选择{ count, plural, 1 {# 个资源} other {# 个资源} }",
+ "system": "系统",
+ "title": "标题",
+ "title-required": "标题是必填项。"
+},
"rulechain": {
"add": "添加规则链",
"add-rulechain-text": "添加新的规则链",
@@ -2098,10 +2199,10 @@
"admins": "管理员",
"copyId": "复制租户ID",
"delete": "删除租户",
- "delete-tenant-text": "小心!确认后,租户和所有相关数据将不可恢复。",
+ "delete-tenant-text": "请注意:确认后,租户和所有相关数据将不可恢复。",
"delete-tenant-title": "您确定要删除租户'{{tenantTitle}}'吗?",
"delete-tenants-action-title": "删除 { count, plural, 1 {# 个租户} other {# 个租户} }",
- "delete-tenants-text": "小心!确认后,所有选定的租户将被删除,所有相关数据将不可恢复。",
+ "delete-tenants-text": "请注意:确认后,所有选定的租户将被删除,所有相关数据将不可恢复。",
"delete-tenants-title": "确定要删除 {count,plural,1 {# 个租户} other {# 个租户} } 吗?",
"description": "说明",
"details": "详情",
@@ -2178,10 +2279,10 @@
"customer-users": "客户用户",
"default-dashboard": "默认面板",
"delete": "删除用户",
- "delete-user-text": "小心!确认后,用户和所有相关数据将不可恢复。",
+ "delete-user-text": "请注意:确认后,用户和所有相关数据将不可恢复。",
"delete-user-title": "您确定要删除用户 '{{userEmail}}' 吗?",
"delete-users-action-title": "删除 { count, plural, 1 {# 个用户} other {# 个用户} }",
- "delete-users-text": "小心!确认后,所有选定的用户将被删除,所有相关数据将不可恢复。",
+ "delete-users-text": "请注意:确认后,所有选定的用户将被删除,所有相关数据将不可恢复。",
"delete-users-title": "确定要删除 { count, plural, 1 {# 个用户} other {# 个用户} } 吗?",
"description": "说明",
"details": "详情",
@@ -2343,11 +2444,11 @@
"run": "运行部件",
"save": "保存部件",
"save-widget-type-as": "部件类型另存为",
- "save-widget-type-as-text": "请输入新的部件标题或选择目标部件组",
+ "save-widget-type-as-text": "请输入新的部件标题或选择目标部件包",
"saveAs": "部件另存为",
"search-data": "查找数据",
"select-widget-type": "选择窗口部件类型",
- "select-widgets-bundle": "选择部件组",
+ "select-widgets-bundle": "选择部件包",
"settings-schema": "设置模式",
"static": "静态部件",
"tidy": "Tidy",
@@ -2358,7 +2459,7 @@
"type": "部件类型",
"unable-to-save-widget-error": "无法保存部件!控件有错误!",
"undo": "撤消部件更改",
- "widget-bundle": "部件组",
+ "widget-bundle": "部件包",
"widget-library": "部件库",
"widget-saved": "部件已保存",
"widget-template-load-failed-error": "无法加载部件模板!",
@@ -2367,33 +2468,36 @@
"widget-type-not-found": "加载部件配置出错。
可能关联的部件已经删除了。"
},
"widgets-bundle": {
- "add": "添加部件组",
- "add-widgets-bundle-text": "添加新的部件组",
- "create-new-widgets-bundle": "创建新的部件组",
+ "add": "添加部件包",
+ "add-widgets-bundle-text": "添加新的部件包",
+ "create-new-widgets-bundle": "创建新的部件包",
"current": "当前组",
- "delete": "删除部件组",
- "delete-widgets-bundle-text": "小心!确认后,部件组和所有相关数据将不可恢复。",
- "delete-widgets-bundle-title": "您确定要删除部件组 '{{widgetsBundleTitle}}'吗?",
- "delete-widgets-bundles-action-title": "删除 { count, plural, 1 {# 个部件组} other {# 个部件组} }",
- "delete-widgets-bundles-text": "小心!确认后,所有选定的部件组将被删除,所有相关数据将不可恢复。",
- "delete-widgets-bundles-title": "确定要删除 { count, plural, 1 {# 个部件组} other {# 个部件组} } 吗?",
+ "delete": "删除部件包",
+ "delete-widgets-bundle-text": "请注意:确认后,部件包和所有相关数据将不可恢复。",
+ "delete-widgets-bundle-title": "您确定要删除部件包 '{{widgetsBundleTitle}}'吗?",
+ "delete-widgets-bundles-action-title": "删除 { count, plural, 1 {# 个部件包} other {# 个部件包} }",
+ "delete-widgets-bundles-text": "请注意:确认后,所有选定的部件包将被删除,所有相关数据将不可恢复。",
+ "delete-widgets-bundles-title": "确定要删除 { count, plural, 1 {# 个部件包} other {# 个部件包} } 吗?",
+ "description": "描述",
"details": "详情",
- "empty": "部件组是空的",
- "export": "导出部件组",
- "export-failed-error": "无法导出部件组: {{error}}",
- "import": "导入部件组",
- "invalid-widgets-bundle-file-error": "无法导入部件组:无效的部件组数据结构。",
- "no-widgets-bundles-matching": "没有找到与 '{{widgetsBundle}}' 匹配的部件组。",
- "no-widgets-bundles-text": "找不到部件组",
- "open-widgets-bundle": "打开部件组",
- "search": "查找部件组",
- "selected-widgets-bundles": "已选择 { count, plural, 1 {# 个部件组} other {# 个部件组} }",
+ "empty": "部件包是空的",
+ "export": "导出部件包",
+ "export-failed-error": "无法导出部件包: {{error}}",
+ "image-preview": "图片预览",
+ "import": "导入部件包",
+ "invalid-widgets-bundle-file-error": "无法导入部件包:无效的部件包数据结构。",
+ "loading-widgets-bundles": "加载部件包...",
+ "no-widgets-bundles-matching": "没有找到与 '{{widgetsBundle}}' 匹配的部件包。",
+ "no-widgets-bundles-text": "找不到部件包",
+ "open-widgets-bundle": "打开部件包",
+ "search": "查找部件包",
+ "selected-widgets-bundles": "已选择 { count, plural, 1 {# 个部件包} other {# 个部件包} }",
"system": "系统",
"title": "标题",
"title-required": "标题必填。",
- "widgets-bundle-details": "部件组详细信息",
- "widgets-bundle-file": "部件组文件",
- "widgets-bundle-required": "部件组必填。",
+ "widgets-bundle-details": "部件包详细信息",
+ "widgets-bundle-file": "部件包文件",
+ "widgets-bundle-required": "部件包必填。",
"widgets-bundles": "部件包"
},
"widgets": {