From 3c8d911499c945f15dee7f852d69c9cb1e7ecece Mon Sep 17 00:00:00 2001 From: fulai Date: Thu, 29 Jun 2023 19:35:38 +0800 Subject: [PATCH 1/7] Update locale.constant-zh_CN.json --- .../assets/locale/locale.constant-zh_CN.json | 2654 ++++++++++------- 1 file changed, 1655 insertions(+), 999 deletions(-) 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 a37f96875a..f3bb59e2e5 100644 --- a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json +++ b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json @@ -55,13 +55,18 @@ "continue": "继续", "discard-changes": "放弃更改", "download": "下载", + "next": "Next", "next-with-label": "下一个:{{label}}", "read-more": "阅读更多", "hide": "隐藏", - "done": "完毕", + "done": "完成", "print": "打印", "restore": "恢复", - "confirm": "确认" + "confirm": "确定", + "more": "更多", + "less": "更少", + "skip": "跳过", + "send": "发送" }, "aggregation": { "aggregation": "聚合", @@ -76,9 +81,11 @@ "none": "无" }, "admin": { + "settings": "设置", "general": "基本设置", "general-settings": "基本设置", "home-settings": "首页设置", + "home": "首页", "outgoing-mail": "发送邮件", "outgoing-mail-settings": "发送邮件设置", "system-settings": "系统设置", @@ -108,7 +115,7 @@ "proxy-port-range": "代理端口应在1到65535之间。", "proxy-user": "代理用户", "proxy-password": "代理密码", - "change-password": "Change password", + "change-password": "修改密码", "send-test-mail": "发送测试邮件", "sms-provider": "SMS 服务商", "sms-provider-settings": "SMS 服务商设置", @@ -127,10 +134,10 @@ "number-from-required": "发送方电话号码必填。", "number-to": "电话号码至", "number-to-required": "电话号码必填。", - "phone-number-hint": "E.164格式的手机号码,例如+19995550123", - "phone-number-hint-twilio": "Phone Number in E.164 format/Phone Number's SID/Messaging Service SID, ex. +19995550123/PNXXX/MGXXX", - "phone-number-pattern": "手机号码无效。应为E.164格式,例如+19995550123。", - "phone-number-pattern-twilio": "Invalid phone number. Should be in E.164 format/Phone Number's SID/Messaging Service SID, ex. +19995550123/PNXXX/MGXXX.", + "phone-number-hint": "E.164格式的手机号码,例如 +19995550123", + "phone-number-hint-twilio": "E.164格式电话号码/电话号码的SID/消息服务的SID,例如 +19995550123/PNXXX/MGXXX", + "phone-number-pattern": "手机号码无效。应为E.164格式,例如 +19995550123。", + "phone-number-pattern-twilio": "无效的电话号码,应该使用E.164格式电话号码/电话号码的SID/消息服务的SID,例如+19995550123/PNXXX/MGXXX。", "sms-message": "短信", "sms-message-required": "短消息内容必填。", "sms-message-max-length": "短信长度不能超过1600个字符", @@ -164,7 +171,7 @@ "user-lockout-notification-email": "如果用户帐户锁定,请发送通知到电子邮件", "domain-name": "域名", "domain-name-unique": "域名和协议必须是唯一的。", - "domain-name-max-length": "域名长度不能大于256", + "domain-name-max-length": "域名应该少于256个字符。", "error-verification-url": "域名不应包含符号 “/” 和 “:”。例:thingsboard.io", "oauth2": { "access-token-uri": "访问令牌URI", @@ -181,28 +188,28 @@ "client-authentication-method": "客户端身份验证方法", "client-id": "客户端ID", "client-id-required": "客户端 ID 必填。", - "client-id-max-length": "客户端ID长度不能大于256", + "client-id-max-length": "客户端ID应该少于256个字符。", "client-secret": "客户机密", "client-secret-required": "需要客户端密码。", - "client-secret-max-length": "客户端密钥长度不能大于2049", + "client-secret-max-length": "客户端密钥应该少于2049个字符。", "custom-setting": "自定义设置", "customer-name-pattern": "客户名称模式", - "customer-name-pattern-max-length": "客户名称模式长度不能大于256", + "customer-name-pattern-max-length": "客户名称模式应该少于256个字符。", "default-dashboard-name": "默认仪表板名称", - "default-dashboard-name-max-length": "默认仪表板名称长度不能大于256", + "default-dashboard-name-max-length": "默认仪表板名称应该少于256个字符。", "delete-domain-text": "请注意:确认后,域和所有 provider data 将不可恢复。", "delete-domain-title": "确定要删除域 '{{domainName}}' 的设置吗?", "delete-registration-text": "请注意:确认后 provider data 将不可恢复。", "delete-registration-title": "确定要删除 provider '{{name}}' 吗?", "email-attribute-key": "电子邮件属性键", - "email-attribute-key-required": "电子邮件属性密钥必填。", - "email-attribute-key-max-length": "电子邮件属性键长度不能大于32", + "email-attribute-key-required": "电子邮件属性键必填。", + "email-attribute-key-max-length": "电子邮件属性键应该少于32个字符。", "first-name-attribute-key": "名字属性键", - "first-name-attribute-key-max-length": "名字属性键长度不能大于32", + "first-name-attribute-key-max-length": "名字属性键应该少于32个字符。", "general": "基本设置", "jwk-set-uri": "JSON Web Key URI", "last-name-attribute-key": "姓氏属性键", - "last-name-attribute-key-max-length": "姓氏属性键长度不能大于32", + "last-name-attribute-key-max-length": "姓氏属性键应该少于32个字符。", "login-button-icon": "登录按钮图标", "login-button-label": "Provider 标签", "login-button-label-placeholder": "使用 $(Provider label) 登录", @@ -211,7 +218,7 @@ "mapper": "Mapper", "new-domain": "新建域", "oauth2": "OAuth2", - "password-max-length": "密码长度不能大于256", + "password-max-length": "密码应该少于256个字符。", "redirect-uri-template": "重定向URI模板", "copy-redirect-uri": "复制重定向URI", "registration-id": "注册ID", @@ -221,17 +228,17 @@ "scope-required": "范围必填。", "tenant-name-pattern": "租户名称模式", "tenant-name-pattern-required": "租户名称模式必填。", - "tenant-name-pattern-max-length": "租户名称模式长度不能大于256", + "tenant-name-pattern-max-length": "租户名称模式应该少于256个字符。", "tenant-name-strategy": "租户名称策略", "type": "映射器类型", "uri-pattern-error": "无效的URI格式。", "url": "统一资源定位地址", "url-pattern": "无效的URL格式。", "url-required": "URL 必填。", - "url-max-length": "URL地址长度不能大于256", + "url-max-length": "URL 应该少于256个字符。", "user-info-uri": "用户信息URI", "user-info-uri-required": "用户信息 URI 必填。", - "username-max-length": "用户名称长度不能大于256", + "username-max-length": "用户名应该少于256个字符。", "user-name-attribute-name": "用户名属性键", "user-name-attribute-name-required": "用户名属性密钥必填", "protocol": "协议", @@ -240,18 +247,18 @@ "domain-schema-mixed": "HTTP+HTTPS", "enable": "启用OAuth2设置", "domains": "域名", - "mobile-apps": "移动端", - "no-mobile-apps": "无移动端应用配置", - "mobile-package": "应用程包", + "mobile-apps": "移动端应用", + "no-mobile-apps": "未配置应用程序", + "mobile-package": "应用程序包", "mobile-package-placeholder": "例如: my.example.app", "mobile-package-hint": "Android:应用程序ID,iOS:产品标识符", "mobile-package-unique": "应用程序包必须是唯一的。", "mobile-app-secret": "应用程序密钥", - "invalid-mobile-app-secret": "应用程序密钥必须包含字母,数字,字符并且长度必须在16到2048个字符。", + "invalid-mobile-app-secret": "应用程序密钥必须只包含字母和数字字符,并且长度必须介于16到2048个字符之间。", "copy-mobile-app-secret": "复制应用程序密钥", "add-mobile-app": "添加应用程序", - "delete-mobile-app": "删除应用程序", - "providers": "提供程序", + "delete-mobile-app": "删除应用程序信息", + "providers": "Providers", "platform-web": "Web", "platform-android": "Android", "platform-ios": "iOS", @@ -261,60 +268,60 @@ "smpp-provider": { "smpp-version": "SMPP版本", "smpp-host": "SMPP主机", - "smpp-host-required": "SMPP主机必填", + "smpp-host-required": "SMPP主机必填。", "smpp-port": "SMPP端口", - "smpp-port-required": "SMPP端口必填", + "smpp-port-required": "SMPP端口必填。", "system-id": "系统ID", - "system-id-required": "系统ID必填", + "system-id-required": "系统ID必填。", "password": "密码", - "password-required": "密码必填", + "password-required": "密码必填。", "type-settings": "类型设置", "source-settings": "源设置", - "destination-settings": "目的地", + "destination-settings": "目标设置", "additional-settings": "其他设置", "system-type": "系统类型", "bind-type": "绑定类型", "service-type": "服务类型", "source-address": "源地址", - "source-ton": "源TON", - "source-npi": "源NPI", - "destination-ton": "目的地TON号码", - "destination-npi": "目的地NPI号码", + "source-ton": "源 TON (号码类型)", + "source-npi": "源 NPI (编号方案标识)", + "destination-ton": "目标 TON (号码类型)", + "destination-npi": "目标 NPI (编号方案标识)", "address-range": "地址范围", "coding-scheme": "编码方案", - "bind-type-tx": "发送者", - "bind-type-rx": "接收者", - "bind-type-trx": "收发器", + "bind-type-tx": "发送端", + "bind-type-rx": "接收端", + "bind-type-trx": "发送/接收", "ton-unknown": "未知", - "ton-international": "International", - "ton-national": "National", - "ton-network-specific": "Network Specific", - "ton-subscriber-number": "Subscriber Number", - "ton-alphanumeric": "Alphanumeric", - "ton-abbreviated": "Abbreviated", - "npi-unknown": "0 - Unknown", - "npi-isdn": "1 - ISDN/telephone numbering plan (E163/E164)", - "npi-data-numbering-plan": "3 - Data numbering plan (X.121)", - "npi-telex-numbering-plan": "4 - Telex numbering plan (F.69)", - "npi-land-mobile": "6 - Land Mobile (E.212)", - "npi-national-numbering-plan": "8 - National numbering plan", - "npi-private-numbering-plan": "9 - Private numbering plan", - "npi-ermes-numbering-plan": "10 - ERMES numbering plan (ETSI DE/PS 3 01-3)", - "npi-internet": "13 - Internet (IP)", - "npi-wap-client-id": "18 - WAP Client Id (to be defined by WAP Forum)", - "scheme-smsc": "0 - SMSC Default Alphabet (ASCII for short and long code and to GSM for toll-free)", - "scheme-ia5": "1 - IA5 (ASCII for short and long code, Latin 9 for toll-free (ISO-8859-9))", - "scheme-octet-unspecified-2": "2 - Octet Unspecified (8-bit binary)", + "ton-international": "国际", + "ton-national": "国内", + "ton-network-specific": "网络特定", + "ton-subscriber-number": "用户号码", + "ton-alphanumeric": "字母数字", + "ton-abbreviated": "简写", + "npi-unknown": "0 - 未知", + "npi-isdn": "1 - ISDN/电话编号方案 (E163/E164)", + "npi-data-numbering-plan": "3 - 数据编号方案 (X.121)", + "npi-telex-numbering-plan": "4 - 电报编号方案 (F.69)", + "npi-land-mobile": "6 - 移动设备编号方案 (E.212)", + "npi-national-numbering-plan": "8 - 国家编号方案", + "npi-private-numbering-plan": "9 - 私有编号方案", + "npi-ermes-numbering-plan": "10 - ERMES 编号方案 (ETSI DE/PS 3 01-3)", + "npi-internet": "13 - 互联网 (IP)", + "npi-wap-client-id": "18 - WAP 客户端标识 (由 WAP 论坛定义)", + "scheme-smsc": "0 - SMSC 默认字母表 (ASCII 码用于短码和长码,GSM 编码用于免费电话)", + "scheme-ia5": "1 - IA5 码 (ASCII 码用于短码和长码,Latin 9 用于免费电话 (ISO-8859-9))", + "scheme-octet-unspecified-2": "2 - 八进制未指定 (8 位二进制)", "scheme-latin-1": "3 - Latin 1 (ISO-8859-1)", - "scheme-octet-unspecified-4": "4 - Octet Unspecified (8-bit binary)", + "scheme-octet-unspecified-4": "4 - 八进制未指定 (8 位二进制)", "scheme-jis": "5 - JIS (X 0208-1990)", "scheme-cyrillic": "6 - Cyrillic (ISO-8859-5)", "scheme-latin-hebrew": "7 - Latin/Hebrew (ISO-8859-8)", "scheme-ucs-utf": "8 - UCS2/UTF-16 (ISO/IEC-10646)", - "scheme-pictogram-encoding": "9 - Pictogram Encoding", - "scheme-music-codes": "10 - Music Codes (ISO-2022-JP)", - "scheme-extended-kanji-jis": "13 - Extended Kanji JIS (X 0212-1990)", - "scheme-korean-graphic-character-set": "14 - Korean Graphic Character Set (KS C 5601/KS X 1001)" + "scheme-pictogram-encoding": "9 - 图标编码", + "scheme-music-codes": "10 - 音乐编码 (ISO-2022-JP)", + "scheme-extended-kanji-jis": "13 - 扩展汉字 JIS (X 0212-1990)", + "scheme-korean-graphic-character-set": "14 - 韩文图形字符集 (KS C 5601/KS X 1001)" }, "queue-select-name": "选择队列名称", "queue-name": "名称", @@ -325,13 +332,16 @@ "queue-processing-strategy": "处理策略", "queue-configuration": "队列配置", "repository-settings": "仓库设置", + "repository": "仓库", "repository-url": "仓库 URL", "repository-url-required": "仓库 URL 必填。", "default-branch": "默认分支名称", - "repository-read-only": "Read-only", + "repository-read-only": "只读", + "show-merge-commits": "显示合并提交", "authentication-settings": "身份验证设置", "auth-method": "身份验证方法", "auth-method-username-password": "密码/访问令牌", + "auth-method-username-password-hint": "GitHub用户必须使用能够对仓库进行写入权限的访问令牌。", "auth-method-private-key": "私钥", "password-access-token": "密码/访问令牌", "change-password-access-token": "更改密码/访问令牌", @@ -345,12 +355,13 @@ "delete-repository-settings-title": "确定要删除仓库设置吗?", "delete-repository-settings-text": "请注意:确认后,仓库设置将被删除,版本控制功能将不可用。", "auto-commit-settings": "自动提交设置", + "auto-commit": "自动提交", "auto-commit-entities": "自动提交实体", "no-auto-commit-entities-prompt": "没有设置自动提交的实体", "delete-auto-commit-settings-title": "确定要删除自动提交设置吗?", "delete-auto-commit-settings-text": "请注意:确认后,自动提交设置将被删除,所有实体的自动提交将被禁用。", "2fa": { - "2fa": "双因素身份验证", + "2fa": "双因素认证", "available-providers": "可用选项", "issuer-name": "发行者名称", "issuer-name-required": "发行者名称必填。", @@ -369,7 +380,7 @@ "total-allowed-time-for-verification": "总允许验证时间(秒)", "total-allowed-time-for-verification-pattern": "总允许验证最小时间为60秒", "total-allowed-time-for-verification-required": "总允许验证时间必填。", - "use-system-two-factor-auth-settings": "使用系统双因素身份验证设置", + "use-system-two-factor-auth-settings": "使用系统双因素认证设置", "verification-code-check-rate-limit": "验证码检查速率限制", "verification-code-lifetime": "验证码生存期(秒)", "verification-code-lifetime-pattern": "验证码生存期必须为正整数。", @@ -381,14 +392,45 @@ "within-time": "在时间内 (秒)", "within-time-pattern": "时间必须是正整数。", "within-time-required": "时间必填。" - } + }, + "jwt": { + "security-settings": "JWT 安全设置", + "issuer-name": "发行者名称", + "issuer-name-required": "发行者名称必填。", + "signings-key": "签名密钥", + "signings-key-hint": "Base64编码的字符串,至少256位数据。", + "signings-key-required": "签名密钥必填。", + "signings-key-min-length": "签名密钥必须至少为256位的数据。", + "signings-key-base64": "签名密钥必须是Base64格式。", + "expiration-time": "令牌过期时间(秒)", + "expiration-time-required": "令牌过期时间是必填。", + "expiration-time-pattern": "令牌过期时间必须是一个正整数。", + "expiration-time-min": "最小时间为60秒(1分钟)。", + "refresh-expiration-time": "刷新令牌过期时间(秒)", + "refresh-expiration-time-required": "刷新令牌过期时间必填。", + "refresh-expiration-time-pattern": "刷新令牌的过期时间必须是一个正整数。", + "refresh-expiration-time-min": "最小时间为900秒(15分钟)。", + "refresh-expiration-time-less-token": "刷新令牌时间必须大于令牌过期时间。", + "generate-key": "生成密钥", + "info-header": "所有用户将需要重新登录。", + "info-message": "更改JWT签名密钥将导致所有已发行的令牌无效,所有用户将需要重新登录,这也会影响使用Rest API/Websockets的脚本。" + }, + "resources": "资源", + "notifications": "通知", + "notifications-settings": "通知设置", + "slack-api-token": "Slack API令牌", + "slack": "Slack", + "slack-settings": "Slack 设置" }, "alarm": { "alarm": "告警", "alarms": "告警", + "all-alarms": "所有告警", "select-alarm": "选择告警", "no-alarms-matching": "未找到匹配 '{{entity}}' 的告警", "alarm-required": "告警必填", + "alarm-filter": "告警筛选器", + "filter": "筛选器", "alarm-status": "告警状态", "alarm-status-list": "告警状态列表", "any-status": "任何状态", @@ -412,12 +454,24 @@ "originator": "发起者", "originator-type": "发起者类型", "details": "详情", + "originator-label": "发起者标签", + "assign": "分配", + "assignments": "任务分配", + "assignee": "受托人", + "assignee-id": "受托人ID", + "assignee-first-name": "受托人姓氏", + "assignee-last-name": "受托人名字", + "assignee-email": "受托人邮箱", + "unassigned": "未分配", + "assignee-not-set": "所有", "status": "状态", "alarm-details": "告警详细信息", "start-time": "开始时间", + "assign-time": "分配时间", "end-time": "结束时间", "ack-time": "确认时间", "clear-time": "清除时间", + "duration": "持续时间", "alarm-severity-list": "警报严重性列表", "any-severity": "任何严重程度", "severity-critical": "危险", @@ -428,30 +482,53 @@ "acknowledge": "应答", "clear": "清除", "search": "查找告警", - "selected-alarms": "已选择 { count, plural, =1 {# 个告警} other {# 个告警} }", + "selected-alarms": "已选择 { count, plural, =1 {1 个告警} other {# 个告警} }", "no-data": "无数据显示", "polling-interval": "告警轮询间隔(秒)", "polling-interval-required": "告警轮询间隔必填。", "min-polling-interval-message": "轮询间隔至少是1秒。", - "aknowledge-alarms-title": "确认 { count, plural, =1 {# 个告警} other {# 个告警} }", - "aknowledge-alarms-text": "确定要确认 { count, plural, =1 {# 个告警} other {# 个告警} }吗?", + "aknowledge-alarms-title": "确认 { count, plural, =1 {1 个告警} other {# 个告警} }", + "aknowledge-alarms-text": "确定要确认 { count, plural, =1 {1 个告警} other {# 个告警} }吗?", "aknowledge-alarm-title": "确认告警", "aknowledge-alarm-text": "确定要确认告警吗?", - "clear-alarms-title": "清除 { count, plural, =1 {# 个告警} other {# 个告警} }", - "clear-alarms-text": "确定要清除 { count, plural, =1 {# 个告警} other {# 个告警} }?", + "clear-alarms-title": "清除 { count, plural, =1 {1 个告警} other {# 个告警} }", + "clear-alarms-text": "确定要清除 { count, plural, =1 {1 个告警} other {# 个告警} }?", "clear-alarm-title": "清除警报", "clear-alarm-text": "确定要清除警报吗?", "alarm-status-filter": "告警状态筛选器", - "alarm-filter": "告警筛选器", + "alarm-filter-title": "告警筛选器", + "assigned": "已分配", + "filter-title": "筛选器", "max-count-load": "要加载的最大告警数(0-无限制)", "max-count-load-required": "加载的最大告警数必填。", "max-count-load-error-min": "最小值为0。", "fetch-size": "获取大小", - "fetch-size-required": "Fetch size 必填。", + "fetch-size-required": "获取大小必填。", "fetch-size-error-min": "最小值为10。", "alarm-type-list": "告警类型列表", "any-type": "任何类型", - "search-propagated-alarms": "检索已传递的警报" + "assigned-to-current-user": "分配给当前用户", + "assigned-to-me": "分配给我", + "search-propagated-alarms": "检索已传递的警报", + "comments": "告警评论", + "show-more": "显示更多", + "additional-info": "附加信息" + }, + "alarm-activity": { + "add": "添加评论", + "alarm-comment": "告警评论", + "comments": "评论", + "delete-alarm-comment": "你想删除这条评论吗?", + "refresh": "刷新", + "oldest-first": "最早优先", + "newest-first": "最新优先", + "activity": "Activity", + "export": "导出 CSV", + "author": "作者", + "created-date": "创建时间", + "edited-date": "编辑时间", + "text": "文本", + "system": "系统" }, "alias": { "add": "添加别名", @@ -466,17 +543,17 @@ "filter-type-state-entity": "仪表板状态实体", "filter-type-state-entity-description": "仪表板实体令牌状态参数", "filter-type-asset-type": "资产类型", - "filter-type-asset-type-description": "类型为 '{{assetTypes}}' 的资产", - "filter-type-asset-type-and-name-description": "类型为 '{{assetTypes}}' 且以 '{{prefix}}' 开头的资产", + "filter-type-asset-type-description": "类型为 '{{assetType}}' 的资产", + "filter-type-asset-type-and-name-description": "类型为 '{{assetType}}' 且以 '{{prefix}}' 开头的资产", "filter-type-device-type": "设备类型", - "filter-type-device-type-description": "类型为 '{{deviceTypes}}' 的设备", - "filter-type-device-type-and-name-description": "类型为 '{{deviceTypes}}' 且以 '{{prefix}}' 开头的设备", + "filter-type-device-type-description": "类型为 '{{deviceType}}' 的设备", + "filter-type-device-type-and-name-description": "类型为 '{{deviceType}}' 且以 '{{prefix}}' 开头的设备", "filter-type-entity-view-type": "实体视图类型", - "filter-type-entity-view-type-description": "类型为 '{{entityViewTypes}}' 的实体视图", - "filter-type-entity-view-type-and-name-description": "类型为 {{entityViewTypes}}' 且以 '{{prefix}}' 开头的实体视图", + "filter-type-entity-view-type-description": "类型为 '{{entityView}}' 的实体视图", + "filter-type-entity-view-type-and-name-description": "类型为 {{entityView}}' 且以 '{{prefix}}' 开头的实体视图", "filter-type-edge-type": "边缘类型", - "filter-type-edge-type-description": "类型为 '{{edgeTypes}}' 的边缘", - "filter-type-edge-type-and-name-description": "类型为 '{{edgeTypes}}' 且以 '{{prefix}}' 开头的边缘", + "filter-type-edge-type-description": "类型为 '{{edgeType}}' 的边缘", + "filter-type-edge-type-and-name-description": "类型为 '{{edgeType}}' 且以 '{{prefix}}' 开头的边缘", "filter-type-relations-query": "关联查询", "filter-type-relations-query-description": "具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的 {{entities}} ", "filter-type-asset-search-query": "资产搜索查询", @@ -512,7 +589,7 @@ "management": "资产管理", "view-assets": "查看资产", "add": "添加资产", - "asset-type-max-length": "资产类型要小于256", + "asset-type-max-length": "资产类型应该小于256个字符", "assign-to-customer": "分配给客户", "assign-asset-to-customer": "将资产分配给客户", "assign-asset-to-customer-text": "请选择要分配给客户的资产", @@ -535,27 +612,27 @@ "asset-types": "资产类型", "name": "名称", "name-required": "名称必填。", - "name-max-length": "名称长度不能大于256", - "label-max-length": "标签长度应小于256", + "name-max-length": "名称应该小于256个字符。", + "label-max-length": "标签应该小于256个字符。", "description": "说明", "type": "类型", "type-required": "类型必填。", "details": "详情", "events": "事件", - "add-asset-text": "添加新资产", + "add-asset-text": "添加资产", "asset-details": "资产详情", "assign-assets": "分配资产", - "assign-assets-text": "分配 { count, plural, =1 {# 个资产} other {# 个资产} } 给客户", + "assign-assets-text": "分配 { count, plural, =1 {1 个资产} other {# 个资产} } 给客户", "assign-asset-to-edge-title": "将资产分配给边缘", "assign-asset-to-edge-text": "请选择要分配给边缘的资产", "delete-assets": "删除资产", "unassign-assets": "取消分配资产", - "unassign-assets-action-title": "从客户处取消分配 { count, plural, =1 {# 个资产} other {# 个资产} }", + "unassign-assets-action-title": "从客户处取消分配 { count, plural, =1 {1 个资产} other {# 个资产} }", "assign-new-asset": "分配新资产", "delete-asset-title": "确定要删除资产 '{{assetName}}'吗?", "delete-asset-text": "请注意:确认后,资产及其所有相关数据将不可恢复。", - "delete-assets-title": "确定要删除 { count, plural, =1 {# 个资产} other {# 个资产} }吗?", - "delete-assets-action-title": "删除 { count, plural, =1 {# 个资产} other {# 个资产} }", + "delete-assets-title": "确定要删除 { count, plural, =1 {1 个资产} other {# 个资产} }吗?", + "delete-assets-action-title": "删除 { count, plural, =1 {1 个资产} other {# 个资产} }", "delete-assets-text": "请注意:确认后,所有选定的资产将被删除,所有相关的数据将不可恢复。", "make-public-asset-title": "确定要将资产 '{{assetName}}' 设为公开吗?", "make-public-asset-text": "确认后,资产及其所有数据将被公开并被他人访问。", @@ -564,7 +641,7 @@ "unassign-asset-title": "确定要取消对'{{assetName}}'资产的分配吗?", "unassign-asset-text": "确认后,资产将未分配,客户无法访问。", "unassign-asset": "未分配资产", - "unassign-assets-title": "确定要取消分配 { count, plural, =1 {# 个资产} other {# 个资产} }吗?", + "unassign-assets-title": "确定要取消分配 { count, plural, =1 {1 个资产} other {# 个资产} }吗?", "unassign-assets-text": "确认后,所有选定的资产将被分配,客户无法访问。", "unassign-assets-from-edge": "取消分配边缘", "copyId": "复制资产ID", @@ -578,13 +655,13 @@ "asset-file": "资产档案", "label": "标签", "search": "查找资产", - "assign-asset-to-edge": "Assign Asset(s) To Edge", + "assign-asset-to-edge": "将资产分配给边缘", "unassign-asset-from-edge": "取消分配边缘", "unassign-asset-from-edge-title": "确定要取消对'{{assetName}}'资产的分配吗?", "unassign-asset-from-edge-text": "确认后,所有选定的资产将被分配,边缘无法访问。", "unassign-assets-from-edge-title": "确定要取消分配 { count, plural, =1 {1 资产} other {# 个资产} }吗?", "unassign-assets-from-edge-text": "确认后,所有选定的资产将被分配,边缘无法访问。", - "selected-assets": "已选择 { count, plural, =1 {# 个资产} other {# 个资产} }" + "selected-assets": "已选择 { count, plural, =1 {1 个资产} other {# 个资产} }" }, "attribute": { "attributes": "属性", @@ -596,12 +673,12 @@ "scope-shared": "共享属性", "add": "添加属性", "key": "键名", - "key-max-length": "关键字长度应小于256", + "key-max-length": "键应该小于256个字符。", "last-update-time": "最后更新时间", "key-required": "属性键必填。", "value": "数值", "value-required": "属性值必填。", - "delete-attributes-title": "确定要删除 { count, plural, =1 {# 个属性} other {# 个属性} }吗?", + "delete-attributes-title": "确定要删除 { count, plural, =1 {1 个属性} other {# 个属性} }吗?", "delete-attributes-text": "注意,确认后所有选中的属性都会被删除。", "delete-attributes": "删除属性", "enter-attribute-value": "输入属性值", @@ -611,29 +688,33 @@ "prev-widget": "上一个部件", "add-to-dashboard": "添加到仪表板", "add-widget-to-dashboard": "将部件添加到仪表板", - "selected-attributes": "已选择{ count, plural, =1 {# 个属性} other {# 个属性} }", - "selected-telemetry": "已选择 { count, plural, =1 {# 遥测} other {# 遥测} }", + "selected-attributes": "已选择 { count, plural, =1 {1 个属性} other {# 个属性} }", + "selected-telemetry": "已选择 { count, plural, =1 {1 telemetry unit} other {# telemetry units} }", "no-attributes-text": "未找到属性", - "no-telemetry-text": "未找到遥测数据" + "no-telemetry-text": "未找到遥测数据", + "copy-key": "复制键", + "copy-value": "复制值" }, "api-usage": { - "api-usage": "Api统计", - "alarm": "警报", - "alarms-created": "创建警报数", - "alarms-created-daily-activity": "每天产生的警报", - "alarms-created-hourly-activity": "每小时产生的警报", - "alarms-created-monthly-activity": "每月产生的警报", + "api-features": "Api统计", + "api-usage": "Api 使用统计", + "alarm": "告警", + "alarms-created": "创建告警数", + "alarms-created-daily-activity": "每天产生的告警", + "alarms-created-hourly-activity": "每小时产生的告警", + "alarms-created-monthly-activity": "每月产生的告警", "data-points": "数据点", - "data-points-storage-days": "日存储数据点数", + "data-points-storage-days": "存储点天", + "device-api": "设备 API", "email": "邮件", - "email-messages": "邮件信息", - "email-messages-daily-activity": "每天产生的邮件信息", - "email-messages-monthly-activity": "每月产生的邮件信息", - "exceptions": "例外", - "executions": "执行", + "email-messages": "邮件消息", + "email-messages-daily-activity": "每天产生的邮件消息", + "email-messages-monthly-activity": "每月产生的邮件消息", + "exceptions": "异常", + "executions": "执行数", "javascript": "JavaScript", - "javascript-executions": "JavaScript例外", - "javascript-functions": "JavaScript函数", + "javascript-executions": "JavaScript 执行数", + "javascript-functions": "JavaScript 函数", "javascript-functions-daily-activity": "每天执行的JavaScript函数", "javascript-functions-hourly-activity": "每小时执行的JavaScript函数", "javascript-functions-monthly-activity": "每月执行的JavaScript函数", @@ -656,11 +737,11 @@ "rule-engine-monthly-activity": "每月的规则引擎活动", "rule-engine-statistics": "规则引擎统计信息", "rule-node": "规则节点", - "sms": "SMS", - "sms-messages": "短信信息", + "sms": "短信", + "sms-messages": "短信消息", "sms-messages-daily-activity": "每天的短信息", "sms-messages-monthly-activity": "每小时的短信息", - "successful": "${entityName}成功", + "successful": "${entityName} 成功", "telemetry": "遥测数据", "telemetry-persistence": "遥测持久化", "telemetry-persistence-daily-activity": "每天的遥测持久化", @@ -705,6 +786,11 @@ "type-relations-delete": "删除所有关联", "type-alarm-ack": "已确认", "type-alarm-clear": "已清除", + "type-alarm-assign": "已分配", + "type-alarm-unassign": "未分配", + "type-added-comment": "添加评论", + "type-updated-comment": "更新评论", + "type-deleted-comment": "删除评论", "type-login": "登录", "type-logout": "注销", "type-lockout": "锁定", @@ -731,17 +817,17 @@ "contact": { "country": "国家", "city": "城市", - "state": "州", + "state": "省份", "postal-code": "邮政编码", "postal-code-invalid": "只允许数字。", "address": "地址", "address2": "地址二", - "phone": "电话", + "phone": "手机号码", "email": "电子邮件", "no-address": "无地址", - "state-max-length": "省份名称长度应小于256", - "phone-max-length": "电话号码长度应小于256", - "city-max-length": "城市名称长度应小于256" + "state-max-length": "省份长度应该小于256个字符", + "phone-max-length": "手机号码长度应该小于256个字符", + "city-max-length": "城市应该小于256个字符" }, "common": { "username": "用户名", @@ -784,13 +870,13 @@ "manage-public-assets": "管理公共资产", "manage-customer-edges": "管理客户边缘", "manage-public-edges": "管理公共边缘", - "add-customer-text": "添加新客户", + "add-customer-text": "添加客户", "no-customers-text": "未找到客户", "customer-details": "客户详情", "delete-customer-title": "确定要删除客户'{{customerTitle}}'吗?", "delete-customer-text": "请注意:确认后,客户及其所有相关数据将不可恢复。", - "delete-customers-title": "确定要删除 { count, plural, =1 {# 个客户} other {# 个客户} }吗?", - "delete-customers-action-title": "删除 { count, plural, =1 {# 个客户} other {# 个客户} }", + "delete-customers-title": "确定要删除 { count, plural, =1 {1 个客户} other {# 个客户} }吗?", + "delete-customers-action-title": "删除 { count, plural, =1 {1 个客户} other {# 个客户} }", "delete-customers-text": "请注意:确认后,所有选定的客户将被删除,所有相关数据将不可恢复。", "manage-users": "管理用户", "manage-assets": "管理资产", @@ -798,7 +884,7 @@ "manage-dashboards": "管理仪表板", "title": "标题", "title-required": "标题必填。", - "title-max-length": "标题长度必须少于256个字符", + "title-max-length": "标题应该小于256个字符", "description": "说明", "details": "详情", "events": "事件", @@ -811,7 +897,7 @@ "default-customer": "默认客户", "default-customer-required": "为了调试租户级别上的仪表板,需要默认客户。", "search": "查找客户", - "selected-customers": "已选择 { count, plural, =1 {# 个客户} other {# 个客户} }", + "selected-customers": "已选择 { count, plural, =1 {1 个客户} other {# 个客户} }", "edges": "客户边缘实例", "manage-edges": "管理边缘" }, @@ -823,7 +909,7 @@ }, "dashboard": { "dashboard": "仪表板", - "dashboards": "仪表板库", + "dashboards": "仪表板", "management": "仪表板管理", "view-dashboards": "查看仪表板", "add": "添加仪表板", @@ -843,40 +929,40 @@ "unassign-from-customers-text": "请选择从仪表板中取消分配的客户", "no-dashboards-text": "未找到仪表板", "no-widgets": "没有配置部件", - "add-widget": "添加新的部件", + "add-widget": "添加部件", "title": "标题", "image": "仪表板图片", "mobile-app-settings": "移动端应用设置", "mobile-order": "移动端应用中的仪表板排序", "mobile-hide": "在移动端应用中隐藏仪表板", - "update-image": "更新缩略图", + "update-image": "更新仪表板图片", "take-screenshot": "截图", "select-widget-title": "选择部件", "select-widget-value": "{{title}}: 选择部件", "select-widget-subtitle": "可用的部件类型列表", "delete": "删除仪表板", "title-required": "标题必填。", - "title-max-length": "标题长度必须少于256个字符", + "title-max-length": "标题应该少于256个字符。", "description": "说明", "details": "详情", "dashboard-details": "仪表板详情", - "add-dashboard-text": "添加新的仪表板", + "add-dashboard-text": "添加仪表板", "assign-dashboards": "分配仪表板", "assign-new-dashboard": "分配新的仪表板", - "assign-dashboards-text": "分配 { count, plural, =1 {# 个仪表板} other {# 个仪表板} } 给客户", - "unassign-dashboards-action-text": "取消分配 { count, plural, =1 {# 个仪表板} other {# 个仪表板} } 给客户", + "assign-dashboards-text": "分配 { count, plural, =1 {1 个仪表板} other {# 个仪表板} } 给客户", + "unassign-dashboards-action-text": "取消分配 { count, plural, =1 {1 个仪表板} other {# 个仪表板} } 给客户", "delete-dashboards": "删除仪表板", "unassign-dashboards": "取消分配仪表板", - "unassign-dashboards-action-title": "取消分配此客户 { count, plural, =1 {# 个仪表板} other {# 个仪表板} }", + "unassign-dashboards-action-title": "取消分配此客户 { count, plural, =1 {1 个仪表板} other {# 个仪表板} }", "delete-dashboard-title": "确定要删除仪表板 '{{dashboardTitle}}'吗?", "delete-dashboard-text": "请注意:确认后,仪表板及其所有相关数据将不可恢复。", - "delete-dashboards-title": "确定要删除 { count, plural, =1 {# 个仪表板} other {# 个仪表板} }吗?", - "delete-dashboards-action-title": "删除 { count, plural, =1 {# 个仪表板} other {# 个仪表板} }", + "delete-dashboards-title": "确定要删除 { count, plural, =1 {1 个仪表板} other {# 个仪表板} }吗?", + "delete-dashboards-action-title": "删除 { count, plural, =1 {1 个仪表板} other {# 个仪表板} }", "delete-dashboards-text": "请注意:确认后,所有选定的仪表板将被删除,所有相关数据将不可恢复。", "unassign-dashboard-title": "确定要取消分配仪表板 '{{dashboardTitle}}'吗?", "unassign-dashboard-text": "确认后,面板将被取消分配,客户将无法访问。", "unassign-dashboard": "取消分配仪表板", - "unassign-dashboards-title": "确定要取消分配仪表板 { count, plural, =1 {# 个仪表板} other {# 个仪表板} } 吗?", + "unassign-dashboards-title": "确定要取消分配仪表板 { count, plural, =1 {1 个仪表板} other {# 个仪表板} } 吗?", "unassign-dashboards-text": "确认后,所有选定的仪表板将被取消分配,客户将无法访问。", "public-dashboard-title": "仪表板现已公开", "public-dashboard-text": "仪表板 {{dashboardTitle}} 已被公开,可通过如下 链接访问:", @@ -903,7 +989,7 @@ "maximum-upload-file-size": "最大上传文件大小: {{ size }}", "cannot-upload-file": "无法上传文件", "settings": "设置", - "layout-settings": "Layout settings", + "layout-settings": "布局设置", "columns-count": "列数", "columns-count-required": "需要列数。", "min-columns-count-message": "只允许最少10列", @@ -920,24 +1006,25 @@ "vertical-margin-required": "需要垂直边距值。", "min-vertical-margin-message": "只允许0作为最小垂直边距值。", "max-vertical-margin-message": "只允许50作为最大垂直边距值。", + "apply-outer-margin": "为布局的两侧设置边距", "autofill-height": "自动填充布局高度", "mobile-layout": "移动端布局设置", "mobile-row-height": "移动端行高距(px)", "mobile-row-height-required": "移动端行高距必填。", "min-mobile-row-height-message": "移动端行高距至少5px。", "max-mobile-row-height-message": "移动端行高距最多200px。", - "title-settings": "Title settings", + "title-settings": "标题设置", "display-title": "显示仪表板标题", "title-color": "标题颜色", - "toolbar-settings": "Toolbar settings", - "hide-toolbar": "Hide toolbar", + "toolbar-settings": "工具栏设置", + "hide-toolbar": "隐藏工具栏", "toolbar-always-open": "工具栏常驻", "display-dashboards-selection": "显示仪表板选项", "display-entities-selection": "显示实体选项", "display-filters": "显示筛选器", "display-dashboard-timewindow": "显示时间窗口", "display-dashboard-export": "显示导出", - "display-update-dashboard-image": "显示仪表板缩略图", + "display-update-dashboard-image": "显示更新仪表板图像", "dashboard-logo-settings": "Logo设置", "display-dashboard-logo": "在仪表板全屏模式下显示 Logo", "dashboard-logo-image": "仪表板 Logo 图片", @@ -955,8 +1042,8 @@ "widget-file": "部件文件", "invalid-widget-file-error": "无法导入窗口部件: 窗口部件数据结构无效。", "widget-import-missing-aliases-title": "配置导入的窗口部件使用的别名", - "open-toolbar": "打开仪表板工具栏", - "close-toolbar": "关闭工具栏", + "open-toolbar": "显示工具栏", + "close-toolbar": "收起工具栏", "configuration-error": "配置错误", "alias-resolution-error-title": "仪表板别名配置错误", "invalid-aliases-config": "无法找到与某些别名筛选器匹配的任何设备。
请联系您的管理员以解决此问题。", @@ -964,15 +1051,15 @@ "assignedToCustomer": "分配给客户", "assignedToCustomers": "分配给客户", "public": "公开", - "copyId": "复制仪表板Id", - "idCopiedMessage": "仪表板ID已经复制到粘贴板", + "copyId": "复制仪表板ID", + "idCopiedMessage": "仪表板ID已复制到剪贴板", "public-link": "公共链接", "copy-public-link": "复制公共链接", "public-link-copied-message": "仪表板的公共链接已被复制到剪贴板", "manage-states": "仪表板状态管理", "states": "仪表板状态", "search-states": "仪表板状态检索", - "selected-states": "已选择 { count, plural, =1 {# 个仪表板状态} other {# 个仪表板状态} }", + "selected-states": "已选择 { count, plural, =1 {1 个仪表板状态} other {# 个仪表板状态} }", "edit-state": "仪表板状态编辑", "delete-state": "删除仪表板状态", "add-state": "添加仪表板状态", @@ -991,15 +1078,15 @@ "select-state": "选择目标状态", "state-controller": "状态控制", "search": "查找仪表板", - "selected-dashboards": "已选择 { count, plural, =1 {# 个仪表盘} other {# 个仪表盘} }", + "selected-dashboards": "已选择 { count, plural, =1 {1 个仪表盘} other {# 个仪表盘} }", "home-dashboard": "首页仪表板", "home-dashboard-hide-toolbar": "隐藏首页仪表板工具栏", "unassign-dashboard-from-edge-text": "确认后,所有选定的仪表板将被取消分配,边缘将无法访问。", - "unassign-dashboards-from-edge-title": "确定要取消分配仪表板 { count, plural, =1 {# 个仪表板} other {# 个仪表板} } 吗?", + "unassign-dashboards-from-edge-title": "确定要取消分配仪表板 { count, plural, =1 {1 个仪表板} other {# 个仪表板} } 吗?", "unassign-dashboards-from-edge-text": "确认后,所有选定的仪表板将被取消分配,边缘将无法访问。", "assign-dashboard-to-edge": "将仪表板分配给边缘", "assign-dashboard-to-edge-text": "请选择要分配给边缘的仪表板", - "non-existent-dashboard-state-error": "仪表盘\"{{ stateId }}\"未找到" + "non-existent-dashboard-state-error": "找不到ID为 \"{{ stateId }}\" 的仪表板状态。" }, "datakey": { "settings": "设置", @@ -1018,37 +1105,37 @@ "timeseries-required": "实体 Timeseries 必填。", "timeseries-or-attributes-required": "实体 Timeseries/属性必填。", "alarm-fields-timeseries-or-attributes-required": "告警字段或实体 Timeseries/属性必填。", - "maximum-timeseries-or-attributes": "最多允许 { count, plural, =1 {# 个 timeseries/属性。} other {# 个 timeseries/属性。} }", + "maximum-timeseries-or-attributes": "最多允许 { count, plural, =1 {1 个 timeseries/属性。} other {# 个 timeseries/属性。} }", "alarm-fields-required": "告警字段必填。", "function-types": "函数类型", "function-type": "函数类型", - "function-types-required": "需要函数类型。", - "alarm-keys": "报警数据键", - "alarm-key": "报警数据键", - "alarm-key-functions": "报警数据函数", - "alarm-key-function": "报警数据函数", - "latest-keys": "最新数据键", - "latest-key": "最新数据键", - "latest-key-functions": "最新数据函数", - "latest-key-function": "最新数据函数", - "timeseries-keys": "时序数据键", - "timeseries-key": "时序数据键", - "timeseries-key-functions": "时序数据函数", - "timeseries-key-function": "时序数据函数", - "maximum-function-types": "最多允许 { count, plural, =1 {# 个函数类型} other {# 个函数类型} }", + "function-types-required": "函数类型必填。", + "alarm-keys": "告警数据键", + "alarm-key": "告警数据键", + "alarm-key-functions": "告警数据键函数", + "alarm-key-function": "告警数据键函数", + "latest-keys": "最新值数据键", + "latest-key": "最新值数据键", + "latest-key-functions": "最新值数据键函数", + "latest-key-function": "最新值数据键函数", + "timeseries-keys": "Timeseries 数据键", + "timeseries-key": "Timeseries 数据键", + "timeseries-key-functions": "Timeseries数据键函数", + "timeseries-key-function": "Timeseries数据键函数", + "maximum-function-types": "最多允许 { count, plural, =1 {1 个函数类型} other {# 个函数类型} }", "time-description": "当前值的时间戳;", "value-description": "当前值;", "prev-value-description": "上一次函数调用的结果;", "time-prev-description": "上一个值的时间戳;", "prev-orig-value-description": "先前的原始值;", "aggregation": "聚合", - "aggregation-type-hint-common": "出于性能原因聚合值计算仅适用于“当前日期”、“当前月份”等固定时间间隔,而不适用于“最近30分钟”或“最近24小时”等滑动窗口间隔。", - "aggregation-type-none-hint": "取最新值。", - "aggregation-type-min-hint": "在选定时间窗口内的数据点中查找最小值。", - "aggregation-type-max-hint": "在选定时间窗口内的数据点中查找最大值。", - "aggregation-type-avg-hint": "计算选定时间窗口内数据点之间的平均值。", - "aggregation-type-sum-hint": "对选定时间窗口内所有数据点的值求和。", - "aggregation-type-count-hint": "选定时间窗口内的数据点总数。", + "aggregation-type-hint-common": "出于性能原因,聚合值的计算仅适用于固定的时间间隔,如“当前天”,“当前月”等,而不适用于滑动窗口间隔,例如“过去30分钟”或“过去24小时”。", + "aggregation-type-none-hint": "获取最新值。", + "aggregation-type-min-hint": "在所选时间窗口内找出数据点中的最小值。", + "aggregation-type-max-hint": "在所选时间窗口内找出数据点中的最大值。", + "aggregation-type-avg-hint": "在所选时间窗口内计算数据点的平均值。", + "aggregation-type-sum-hint": "在所选时间窗口内计算数据点所有值的总和。", + "aggregation-type-count-hint": "在所选时间窗口内计算数据点的总数。", "delta-calculation": "增量计算", "enable-delta-calculation": "启用增量计算", "enable-delta-calculation-hint": "启用后将根据选定时间窗口和指定比较时段的聚合值计算数据键值。出于性能原因,增量计算仅适用于历史时间窗口,而不适用于实时值。例如,您可以计算昨天的能耗与前天的能耗之间的差值。", @@ -1076,7 +1163,7 @@ "management": "设备管理", "view-devices": "查看设备", "device-alias": "设备别名", - "device-type-max-length": "设备类型长度必须少于256个字符", + "device-type-max-length": "设备类型应该小于256个字符", "aliases": "设备别名", "no-alias-matching": "'{{alias}}' 未找到。", "no-aliases-found": "未找到别名。", @@ -1109,16 +1196,16 @@ "no-devices-text": "未找到设备", "assign-to-customer-text": "请选择客户分配设备", "device-details": "设备详细信息", - "add-device-text": "添加新设备", + "add-device-text": "添加设备", "credentials": "凭据", "manage-credentials": "管理凭据", "delete": "删除设备", "assign-devices": "分配设备", - "assign-devices-text": "将 {count,plural, =1 {# 个设备} other {# 个设备} }分配给客户", + "assign-devices-text": "将 {count,plural,=1 {1 个设备} other {# 个设备} }分配给客户", "delete-devices": "删除设备", "unassign-from-customer": "取消分配客户", "unassign-devices": "取消分配设备", - "unassign-devices-action-title": "取消分配此客户 {count,plural, =1 {# 个设备} other {# 个设备} }", + "unassign-devices-action-title": "取消分配此客户 {count,plural,=1 {1 个设备} other {# 个设备} }", "unassign-device-from-edge-title": "确定要取消分配设备 '{{deviceName}}' 吗?", "unassign-device-from-edge-text": "确认后,设备将被取消分配,边缘将无法访问。", "unassign-devices-from-edge": "取消分配边缘", @@ -1130,35 +1217,44 @@ "view-credentials": "查看凭据", "delete-device-title": "确定要删除设备的{{deviceName}}吗?", "delete-device-text": "请注意:确认后,设备及其所有相关数据将不可恢复。", - "delete-devices-title": "确定要删除{count,plural, =1 {# 个设备} other {# 个设备} } 吗?", - "delete-devices-action-title": "删除 {count,plural, =1 {# 个设备} other {# 个设备} }", + "delete-devices-title": "确定要删除{count,plural,=1 {1 个设备} other {# 个设备} } 吗?", + "delete-devices-action-title": "删除 {count,plural,=1 {1 个设备} other {# 个设备} }", "delete-devices-text": "请注意:确认后,所有选定的设备将被删除,所有相关数据将不可恢复。", "unassign-device-title": "确定要取消分配设备 '{{deviceName}}' 吗?", "unassign-device-text": "确认后,设备将被取消分配,客户将无法访问。", "unassign-device": "取消分配设备", - "unassign-devices-title": "确定要取消分配 {count,plural, =1 {# 个设备} other {# 个设备} } 吗?", + "unassign-devices-title": "确定要取消分配 {count,plural,=1 {1 个设备} other {# 个设备} } 吗?", "unassign-devices-text": "确认后,所有选定的设备将被取消分配,并且客户将无法访问。", "device-credentials": "设备凭据", - "loading-device-credentials": "加载设备凭证...", + "loading-device-credentials": "加载设备凭据...", "credentials-type": "凭据类型", "access-token": "访问令牌", "access-token-required": "访问令牌必填", "access-token-invalid": "访问令牌长度必须为1到32个字符。", - "certificate-pem-format": "PEM证书格式", - "certificate-pem-format-required": "PEM证书格式必填。", + "certificate-pem-format": "PEM 格式的证书", + "certificate-pem-format-required": "需要提供证书。", + "copy-access-token": "复制访问令牌", + "copy-certificate": "复制证书", + "copy-client-id": "复制客户端ID", + "copy-user-name": "复制用户名", + "copy-password": "复制密码", + "generate-client-id": "生成客户端ID", + "generate-user-name": "生成用户名", + "generate-password": "生成密码", + "generate-access-token": "生成访问令牌", "lwm2m-security-config": { - "identity": "客户端标识", - "identity-required": "客户端标识必填。", - "identity-tooltip": "PSK标识符是多达128字节的任意PSK标识符,如标准[RFC7925]所述。", + "identity": "客户端身份", + "identity-required": "需要提供客户端身份。", + "identity-tooltip": "PSK 标识符是一个任意的 PSK 标识符,最多可以为 128 字节,如标准 [RFC7925] 中所述。\nPSK 标识符必须首先转换为字符字符串,然后使用 UTF-8 编码成八位字节。", "client-key": "客户端密钥", - "client-key-required": "客户端密钥必填。", - "client-key-tooltip-prk": "RPK公钥必须满足标准[RFC7250]并且Base64编码!", - "client-key-tooltip-psk": "PSK密钥必须是[RFC4279]标准和HexDec格式: 32, 64, 128字符!", - "endpoint": "客户端名称", - "endpoint-required": "客户端名称必填。", + "client-key-required": "需要提供客户端密钥。", + "client-key-tooltip-prk": "RPK 公钥或 ID 必须符合标准 [RFC7250] 并编码为 Base64 格式!", + "client-key-tooltip-psk": "PSK 密钥必须符合标准 [RFC4279],使用十六进制表示:32、64、128 个字符!", + "endpoint": "终端客户端名称", + "endpoint-required": "需要提供终端客户端名称。", "client-public-key": "客户端公钥", - "client-public-key-hint": "如果客户端公钥为空则使用信任证书", - "client-public-key-tooltip": "X509公钥必须是DER-encoded X509v3格式并支持EC算法编码Base64!", + "client-public-key-hint": "如果客户端公钥为空,则将使用可信证书", + "client-public-key-tooltip": "X509 公钥必须采用 DER 编码的 X509v3 格式,并且仅支持 EC 算法,然后编码为 Base64 格式!", "mode": "安全配置模式", "client-tab": "客户端安全配置", "client-certificate": "客户端证书", @@ -1194,8 +1290,8 @@ "device-types": "设备类型", "name": "名称", "name-required": "名称必填。", - "name-max-length": "名称长度必须少于256个字符", - "label-max-length": "标签长度必须少于256个字符", + "name-max-length": "名称应该小于256个字符。", + "label-max-length": "标签应该小于256个字符。", "description": "说明", "label": "标签", "events": "事件", @@ -1211,13 +1307,21 @@ "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除,因为它被下列部件所使用:
{{widgetsList}}", "is-gateway": "是否网关", "overwrite-activity-time": "覆盖已连接设备的活动时间", + "device-filter": "设备筛选器", + "device-filter-title": "设备筛选器", + "filter-title": "筛选器", + "device-state": "设备状态", + "state": "状态", + "any": "所有", + "active": "活动", + "inactive": "非活动", "public": "公开", "device-public": "设备公开", "select-device": "选择设备", "import": "导入设备", "device-file": "设备文件", "search": "查找设备", - "selected-devices": "已选择 { count, plural, =1 {# 个设备} other {# 个设备} }", + "selected-devices": "已选择 { count, plural, =1 {1 个设备} other {# 个设备} }", "device-configuration": "设备配置", "transport-configuration": "传输配置", "wizard": { @@ -1257,6 +1361,8 @@ "description": "说明", "default": "默认", "default-rule-chain": "默认规则链", + "default-edge-rule-chain": "默认边缘规则链", + "default-edge-rule-chain-hint": "作为规则链,用于在边缘上处理属于此资产配置中资产的传入数据。", "mobile-dashboard": "移动端仪表板", "mobile-dashboard-hint": "被移动端应用用作资产详情仪表板", "select-queue-hint": "从下拉列表中选择。", @@ -1284,14 +1390,14 @@ "device-profile-details": "设备配置详情", "no-device-profiles-text": "未找到设备配置", "search": "查找设备配置", - "selected-device-profiles": "已选择 { count, plural, =1 {# 个设备配置} other {# 个设备配置} }", + "selected-device-profiles": "已选择 { count, plural, =1 {1 个设备配置} other {# 个设备配置} }", "no-device-profiles-matching": "未找到与 '{{entity}}' 匹配的设备配置。", "device-profile-required": "设备配置必填", "idCopiedMessage": "设备配置 ID 已复制到剪贴板", "set-default": "设为默认设备配置", "delete": "删除设备配置", "copyId": "复制设备配置 ID", - "name-max-length": "名称长度必须少于256个字符", + "name-max-length": "名称长度必须少于256个字符。", "new-device-profile-name": "设备配置名称", "new-device-profile-name-required": "设备配置名称必填。", "name": "名称", @@ -1317,12 +1423,14 @@ "profile-configuration": "配置", "transport-configuration": "传输配置", "default-rule-chain": "默认规则链", + "default-edge-rule-chain": "默认边缘规则链", + "default-edge-rule-chain-hint": "作为规则链,用于在边缘上处理属于此设备配置中设备的传入数据。", "mobile-dashboard": "移动端仪表板", "mobile-dashboard-hint": "被移动端应用用作设备详情仪表板", "select-queue-hint": "从下拉列表中选择或添加自定义名称。", "delete-device-profile-title": "确定要删除 '{{deviceProfileName}}' 设备配置吗?", "delete-device-profile-text": "请注意:确认后,设备配置和所有相关数据将不可恢复。", - "delete-device-profiles-title": "确定要删除 { count, plural, =1 {# 个设备配置} other {# 个设备配置} }吗?", + "delete-device-profiles-title": "确定要删除 { count, plural, =1 {1 个设备配置} other {# 个设备配置} }吗?", "delete-device-profiles-text": "请注意:确认后,所有选定的设备配置将被删除,所有相关数据将不可恢复。", "set-default-device-profile-title": "确定要将设备配置 '{{deviceProfileName}}' 设为默认值吗?", "set-default-device-profile-text": "确认后,设备配置将被标记为默认,并将用于未指定配置的新设备。", @@ -1330,6 +1438,10 @@ "create-new-device-profile": "创建一个新的!", "mqtt-device-topic-filters": "MQTT 设备 Topic 筛选器", "mqtt-device-topic-filters-unique": "MQTT设备 Topic 筛选器必须唯一。", + "mqtt-device-topic-filters-spark-plug": "MQTT Sparkplug B边缘网络(EoN)节点", + "mqtt-device-topic-filters-spark-plug-hint": "允许来自具备Sparkplug B负载和Topic格式的边缘网络(EoN)节点的连接。", + "mqtt-device-topic-filters-spark-plug-attribute-metric-names": "将SparkPlug指标存储为属性。", + "mqtt-device-topic-filters-spark-plug-attribute-metric-names-hint": "将作为设备属性存储的SparkPlug指标的名称。其他指标将作为设备遥测数据进行存储。", "mqtt-device-payload-type": "MQTT 设备 Payload", "mqtt-device-payload-type-json": "JSON", "mqtt-device-payload-type-proto": "Protobuf", @@ -1340,9 +1452,9 @@ "mqtt-send-ack-on-validation-exception": "发布消息验证失败时发送PUBACK", "mqtt-send-ack-on-validation-exception-hint": "默认情况下平台将关闭相关消息验证失败的MQTT会话,启用后平台将发布确认而不是关闭会话。", "snmp-add-mapping": "添加SNMP映射", - "snmp-mapping-not-configured": "没有配置时间序列/属性的OID映射", - "snmp-timseries-or-attribute-name": "映射时间序列/属性名称", - "snmp-timseries-or-attribute-type": "映射时间序列/属性名称", + "snmp-mapping-not-configured": "OID到Timeseries/遥测的映射未配置", + "snmp-timseries-or-attribute-name": "用于映射的Timeseries/属性名称", + "snmp-timseries-or-attribute-type": "用于映射的Timeseries/属性类型", "snmp-method-pdu-type-get-request": "GetRequest", "snmp-method-pdu-type-get-next-request": "GetNextRequest", "snmp-oid": "OID", @@ -1355,14 +1467,16 @@ "coap-device-type-default": "默认", "coap-device-type-efento": "Efento NB-IoT", "support-level-wildcards": "支持单[+]和多级[#]通配符。", - "telemetry-topic-filter": "遥测数据 topic 筛选器", - "telemetry-topic-filter-required": "遥测数据 topic 筛选器必填。", - "attributes-topic-filter": "Attributes topic filter", - "attributes-topic-filter-required": "Attributes topic 筛选器必填。", + "telemetry-topic-filter": "遥测数据Topic筛选器", + "telemetry-topic-filter-required": "遥测数据Topic筛选器必填。", + "attributes-topic-filter": "属性Topic筛选器", + "attributes-subscribe-topic-filter": "订阅属性的Topic筛选器", + "attributes-topic-filter-required": "属性的Topic筛选器必填。", + "attributes-subscribe-topic-filter-required": "订阅属性的Topic筛选器必填。", "telemetry-proto-schema": "遥测数据 proto schema", "telemetry-proto-schema-required": "遥测数据 proto schema 必填。", - "attributes-proto-schema": "Attributes proto schema", - "attributes-proto-schema-required": "Attributes proto schema 必填。", + "attributes-proto-schema": "属性 proto schema", + "attributes-proto-schema-required": "属性 proto schema 必填。", "rpc-response-proto-schema": "RPC 响应 proto schema", "rpc-response-proto-schema-required": "RPC 响应 proto schema 必填。", "rpc-response-topic-filter": "RPC响应 Topic 筛选器", @@ -1373,8 +1487,8 @@ "not-valid-pattern-topic-filter": "无效的 Topic 筛选器模式", "not-valid-single-character": "单级通配符的使用无效", "not-valid-multi-character": "多级通配符的使用无效", - "single-level-wildcards-hint": "[+] is suitable for any topic filter level。例如:v1/devices/+/telemetry or +/devices/+/attributes。", - "multi-level-wildcards-hint": "[#]可以替换 topic filter 本身,并且必须是 topic 的最后一个符号。例如:# or v1/devices/me/#。", + "single-level-wildcards-hint": "[+] 适用于任何 Topic 过滤级别。例如:v1/devices/+/telemetry or +/devices/+/attributes。", + "multi-level-wildcards-hint": "[#]可以替换 Topic 筛选器本身,并且必须是 Topic 的最后一个符号。例如:# or v1/devices/me/#。", "alarm-rules": "告警规则", "alarm-rules-with-count": "告警规则 ({{count}})", "no-alarm-rules": "未配置告警规则", @@ -1383,7 +1497,7 @@ "alarm-type": "告警类型", "alarm-type-required": "告警类型必填。", "alarm-type-unique": "警报类型在设备配置警报规则中必须唯一。", - "alarm-type-max-length": "Alarm type should be less than 256", + "alarm-type-max-length": "告警类型应该小于256字符。", "create-alarm-pattern": "创建 {{alarmType}} 告警", "create-alarm-rules": "创建告警规则", "no-create-alarm-rules": "未配置创建条件", @@ -1403,16 +1517,16 @@ "condition-duration-time-unit-required": "时间单位必填。", "advanced-settings": "高级设置", "alarm-rule-details": "详情", - "alarm-rule-details-hint": "提示:使用${keyName}警报条件中属性值或报文关键字。", + "alarm-rule-details-hint": "提示: 使用 ${keyName} 来替代告警规则条件中使用的属性或遥测键的值。", "add-alarm-rule-details": "详情模板:", - "alarm-rule-mobile-dashboard": "移动仪表盘", - "alarm-rule-mobile-dashboard-hint": "用于警报详细报告", - "alarm-rule-no-mobile-dashboard": "未选择仪表板", + "alarm-rule-mobile-dashboard": "移动端仪表板", + "alarm-rule-mobile-dashboard-hint": "作为移动端告警详情仪表板使用。", + "alarm-rule-no-mobile-dashboard": "未选择仪表板。", "propagate-alarm": "传递警报", "alarm-rule-relation-types-list": "要传递的关联类型", "alarm-rule-relation-types-list-hint": "如果未选择传递关联类型,则将不按关联类型过滤而传递告警。", - "propagate-alarm-to-owner": "向实体所有者(客户或租户)传播警报", - "propagate-alarm-to-tenant": "向租户传播警报", + "propagate-alarm-to-owner": "将告警传播给实体所有者(客户或租户)。", + "propagate-alarm-to-tenant": "将告警传播给租户", "alarm-details": "告警详细信息", "alarm-rule-condition": "告警规则条件", "enter-alarm-rule-condition-prompt": "请添加告警规则条件", @@ -1431,20 +1545,31 @@ "provision-device-secret-required": "预配置设备密钥必填。", "copy-provision-secret": "复制预配置密钥", "provision-secret-copied-message": "预配置密钥已复制到剪贴板", + "provision-strategy-x509": { + "certificate-chain": "X509 证书链", + "certificate-chain-hint": "X.509 证书策略用于通过客户端证书在双向TLS通信中提供设备的方式。", + "allow-create-new-devices": "创建新设备", + "allow-create-new-devices-hint": "如果选择创建新设备,则将客户端证书用作设备凭据。", + "certificate-value": "PEM 格式的证书", + "certificate-value-required": "PEM 格式的证书必填。", + "cn-regex-variable": "CN 正则表达式变量", + "cn-regex-variable-required": "CN 正则表达式变量必填。", + "cn-regex-variable-hint": "需要从设备 X509 证书的通用名称中获取设备名称。" + }, "condition": "条件", "condition-type": "条件类型", "condition-type-simple": "简单", "condition-type-duration": "持续时间", "condition-during": "在 {{during}} 期间", - "condition-during-dynamic": "在\"{{ attribute }}\" ({{during}})", + "condition-during-dynamic": "\"{{ attribute }}\" ({{during}}) 期间", "condition-type-repeating": "重复", "condition-type-required": "条件类型必填。", "condition-repeating-value": "事件计数", "condition-repeating-value-range": "事件计数应在1到2147483647之间。", "condition-repeating-value-pattern": "事件计数应为整数。", "condition-repeating-value-required": "事件计数值必填。", - "condition-repeat-times": "重复 { count, plural, =1 {# 次} other {# 次} }", - "condition-repeat-times-dynamic": "重复\"{ attribute }\" ({ count, plural, =1 {1 时间} other {# 时间} })", + "condition-repeat-times": "重复 { count, plural, =1 {1 次} other {# 次} }", + "condition-repeat-times-dynamic": "重复 \"{ attribute }\" ({ count, plural, =1 {1 次} other {# 次} })", "schedule-type": "计划程序类型", "schedule-type-required": "计划类型必填。", "schedule": "启用规则:", @@ -1503,7 +1628,7 @@ "instance-id-pattern": "实例id必须是一个正整数。", "instance-id-max": "实例id最大值是{{max}}", "instance": "实例", - "resource-label": "#I资源D名称", + "resource-label": "#ID资源名称", "observe-label": "观察者", "attribute-label": "属性", "telemetry-label": "遥测", @@ -1523,8 +1648,8 @@ "edit-attribute": "编辑属性", "view-attribute": "查看属性", "remove-attribute": "移除属性", - "delete-server-text": "请注意确认删除后服务器配置将无法恢复。", - "delete-server-title": "你确定要删除服务器吗?", + "delete-server-text": "请注意,确认删除后,服务器配置将无法恢复。", + "delete-server-title": "确定要删除服务器吗?", "mode": "安全配置模式", "bootstrap-tab": "Bootstrap", "bootstrap-server-legend": "Bootstrap Server (ShortId...)", @@ -1604,15 +1729,15 @@ "sw-update-resource-required": "软件更新COAP资源必填。", "config-json-tab": "设备配置JSON", "attributes-name": { - "min-period": "最小期限", - "max-period": "最大期限", + "min-period": "最小周期", + "max-period": "最大周期", "greater-than": "大于", - "less-than": "少于", - "step": "停止", - "min-evaluation-period": "最小期限评估", - "max-evaluation-period": "最大期限评估" + "less-than": "小于", + "step": "步长", + "min-evaluation-period": "最小评估周期", + "max-evaluation-period": "最大评估周期" }, - "composite-operations-support": "支持Read/Write/Observe操作" + "composite-operations-support": "支持复合读取/写入/观察操作" }, "snmp": { "add-communication-config": "添加通信配置", @@ -1664,7 +1789,9 @@ } }, "dialog": { - "close": "关闭对话框" + "close": "关闭对话框", + "error-message-title": "错误信息:", + "error-details-title": "错误详细信息" }, "direction": { "column": "列", @@ -1673,6 +1800,7 @@ "edge": { "edge": "边缘", "edge-instances": "边缘实例", + "instances": "边缘实例", "edge-file": "边缘文件", "name-max-length": "名称长度必须少于256个字符", "label-max-length": "标签长度必须少于256个字符", @@ -1713,7 +1841,7 @@ "unassign-from-customer": "取消分配客户", "unassign-edge-title": "确定取消分配边缘 '{{edgeName}}' 吗?", "unassign-edge-text": "确定后,边缘将被取消分配,并且客户将无法访问。", - "unassign-edges-title": "确定要取消分配 {count,plural, =1 {1 个边缘} other {# 个边缘} } 吗?", + "unassign-edges-title": "确定要取消分配 {count,plural,=1 {1 个边缘} other {# 个边缘} } 吗?", "unassign-edges-text": "确定后,所有选定的边缘将被取消分配,并且客户将无法访问。", "make-public": "公开", "make-public-edge-title": "确定要将边缘 '{{edgeName}}' 设为公开吗?", @@ -1723,6 +1851,7 @@ "make-private-edge-title": "确定要将边缘 '{{edgeName}}' 设为私有吗?", "make-private-edge-text": "确认后,边缘及其所有数据将被设为私有,不被其他人访问。", "import": "导入边缘", + "install-connect-instructions": "安装和连接说明", "label": "标签", "load-entity-error": "加载数据失败,实体已经被删除。", "assign-new-edge": "分配新边缘", @@ -1733,17 +1862,18 @@ "edge-secret": "边缘密钥", "copy-edge-secret": "复制边缘密钥", "edge-secret-copied-message": "边缘密钥已经被复制到剪切板", - "edge-assets": "边缘资产", - "edge-devices": "边缘设备", - "edge-entity-views": "边缘实体视图", - "edge-dashboards": "边缘仪表板", - "edge-rulechains": "边缘规则链", + "manage-assets": "管理资产", + "manage-devices": "管理设备", + "manage-entity-views": "管理实体视图", + "manage-dashboards": "管理仪表板", + "manage-rulechains": "管理规则链", "assets": "边缘资产", "devices": "边缘设备", "entity-views": "边缘实体视图", "dashboard": "边缘仪表板", "dashboards": "边缘仪表板", "rulechain-templates": "规则链模版", + "edge-rulechain-templates": "边缘规则链模板", "rulechains": "规则链", "search": "搜索边缘", "selected-edges": "{ count, plural, =1 {1 个边缘} other {# 个边缘} } 被选中", @@ -1766,7 +1896,7 @@ "type-asset": "资产", "type-device": "设备", "type-device-profile": "设备概要", - "type-asset-profile": "Asset Profile", + "type-asset-profile": "资产配置", "type-entity-view": "实体视图", "type-alarm": "告警", "type-rule-chain": "规则链", @@ -1807,6 +1937,7 @@ "entity": "实体", "entities": "实体", "entities-count": "实体数量", + "alarms-count": "告警数量", "aliases": "实体别名", "entity-alias": "实体别名", "unable-delete-entity-alias-title": "无法删除实体别名", @@ -1855,8 +1986,8 @@ "device-profile-name-starts-with": "名称以 '{{prefix}}' 开头的设备配置", "type-asset-profile": "资产配置", "type-asset-profiles": "资产配置", - "list-of-asset-profiles": "{ count, plural, =1 {One asset profile} other {List of # asset profiles} }", - "asset-profile-name-starts-with": "Asset profiles whose names start with '{{prefix}}'", + "list-of-asset-profiles": "{ count, plural, =1 {1 个资产配置} other {# 个资产配置} }", + "asset-profile-name-starts-with": "名称以 '{{prefix}}' 开头的资产配置", "type-asset": "资产", "type-assets": "资产", "list-of-assets": "{ count, plural, =1 {1 个资产} other {# 个资产} }", @@ -1909,11 +2040,11 @@ "type-current-tenant": "当前租户", "type-current-user": "当前用户", "type-current-user-owner": "当前用户所有者", - "type-widgets-bundle": "Widgets bundle", - "type-widgets-bundles": "Widgets bundles", - "list-of-widgets-bundles": "{ count, plural, =1 {1 个部件包} other {列表 # 部件包} }", + "type-widgets-bundle": "部件包", + "type-widgets-bundles": "部件包", + "list-of-widgets-bundles": "{ count, plural, =1 {1 个部件包} other {# 个部件包} }", "search": "实体检索", - "selected-entities": "已选择 { count, plural, =1 {# 个实体} other {# 个实体} }", + "selected-entities": "已选择 { count, plural, =1 {1 个实体} other {# 个实体} }", "entity-name": "实体名", "entity-label": "实体标签", "details": "实体详情", @@ -1926,7 +2057,14 @@ "list-of-edges": "{ count, plural, =1 {1 个边缘} other {列表 # 个边缘} }", "edge-name-starts-with": "以 '{{prefix}}' 开头的边缘", "type-tb-resource": "资源", - "type-ota-package": "OTA包" + "type-ota-package": "OTA包", + "type-rpc": "RPC", + "type-queue": "队列", + "type-notification": "通知", + "type-notification-rule": "通知规则", + "type-notification-target": "通知收件人", + "type-notification-request": "通知请求", + "type-notification-template": "通知模板" }, "entity-field": { "created-time": "创建时间", @@ -1983,24 +2121,24 @@ "no-entity-views-text": "未找到实体视图", "assign-to-customer-text": "请选择客户分配实体视图", "entity-view-details": "实体视图详细信息", - "add-entity-view-text": "添加新实体视图", + "add-entity-view-text": "添加实体视图", "delete": "删除实体视图", "assign-entity-views": "分配实体视图", - "assign-entity-views-text": "分配 { count, plural, =1 {# 个实体视图} other {# 个实体视图} } 给客户", + "assign-entity-views-text": "分配 { count, plural, =1 {1 个实体视图} other {# 个实体视图} } 给客户", "delete-entity-views": "删除实体视图", "unassign-from-customer": "取消分配客户", "unassign-entity-views": "取消分配实体视图", - "unassign-entity-views-action-title": "从客户处取消分配{count,plural, =1 {# 实体视图} other {# 实体视图} }", + "unassign-entity-views-action-title": "从客户处取消分配{count,plural,=1 {1 实体视图} other {# 实体视图} }", "assign-new-entity-view": "分配新实体视图", "delete-entity-view-title": "确定要删除实体视图 '{{entityViewName}}'吗?", "delete-entity-view-text": "请注意:确认后实体视图及其所有相关数据将不可恢复。", - "delete-entity-views-title": "确定要删除 { count, plural, =1 {# 实体视图} other {# 实体视图} }吗?", - "delete-entity-views-action-title": "删除 { count, plural, =1 {# 个实体视图} other {# 个实体视图} }", + "delete-entity-views-title": "确定要删除 { count, plural, =1 {1 实体视图} other {# 实体视图} }吗?", + "delete-entity-views-action-title": "删除 { count, plural, =1 {1 个实体视图} other {# 个实体视图} }", "delete-entity-views-text": "请注意:确认后,所有选定的实体视图将被删除,所有相关的数据将不可恢复。", "unassign-entity-view-title": "确定要取消对 '{{entityViewName}}' 实体视图的分配吗?", "unassign-entity-view-text": "确认后,实体视图将未分配,客户无法访问。", "unassign-entity-view": "未分配实体视图", - "unassign-entity-views-title": "确定要取消分配 { count, plural, =1 {# 个实体视图} other {# 个实体视图} } 吗?", + "unassign-entity-views-title": "确定要取消分配 { count, plural, =1 {1 个实体视图} other {# 个实体视图} } 吗?", "unassign-entity-views-text": "确认后,所有选定的实体视图将被分配,客户无法访问。", "entity-view-type": "实体视图类型", "entity-view-type-required": "实体视图类型必填。", @@ -2013,8 +2151,8 @@ "created-time": "创建时间", "name": "名称", "name-required": "名称必填。", - "name-max-length": "名称长度必须少于256个字符", - "type-max-length": "视图类型长度必须少于256个字符", + "name-max-length": "名称应该少于256个字符。", + "type-max-length": "实体视图类型应该少于256个字符。", "description": "说明", "events": "事件", "details": "详情", @@ -2041,11 +2179,11 @@ "timeseries-placeholder": "时间序列", "target-entity": "目标实体", "attributes-propagation": "属性传播", - "attributes-propagation-hint": "每次保存或更新这个实体视图时将自动从目标实体复制指定的属性。由于性能原因目标实体属性不会在每次属性更改时传递到实体视图。你可以通过配置\"copy to view\"规则链中的规则节点,并将\"Post attributes\"和\"attributes Updated\"消息链接到新规则节点,从而启用自动传递。", + "attributes-propagation-hint": "每次保存或更新这个实体视图时,实体视图将自动从目标实体复制指定的属性。由于性能原因,目标实体属性不会在每次属性更改时传递到实体视图。您可以通过配置\"copy to view\"规则链中的规则节点,并将\"Post attributes\"和\"attributes Updated\"消息链接到新规则节点,从而启用自动传递。", "timeseries-data": "时间序列数据", "timeseries-data-hint": "配置目标实体的 Timeseries 数据键,以便实体视图可以访问这些键。此 Timeseries 数据是只读的。", "search": "查找实体视图", - "selected-entity-views": "已选择 { count, plural, =1 {# 个实体视图} other {# 个实体视图} }", + "selected-entity-views": "已选择 { count, plural, =1 {1 个实体视图} other {# 个实体视图} }", "make-public-entity-view-title": "确定要将实体视图 '{{entityViewName}}' 设为公开吗?", "make-public-entity-view-text": "确认后,实体视图及其所有数据将被公开并被他人访问。", "make-private-entity-view-title": "确定要将实体视图 '{{entityViewName}}' 设为私有吗?", @@ -2054,15 +2192,15 @@ "assign-entity-view-to-edge-text": "请选择要分配给边缘的实体视图", "unassign-entity-view-from-edge-title": "确定要取消对 '{{entityViewName}}' 实体视图的分配吗?", "unassign-entity-view-from-edge-text": "确认后,实体视图将未分配,边缘无法访问。", - "unassign-entity-views-from-edge-action-title": "从边缘处取消分配{count,plural, =1 {# 实体视图} other {# 实体视图} }", + "unassign-entity-views-from-edge-action-title": "从边缘处取消分配{count,plural,=1 {1 实体视图} other {# 实体视图} }", "unassign-entity-view-from-edge": "未分配实体视图", - "unassign-entity-views-from-edge-title": "确定要取消分配 { count, plural, =1 {# 个实体视图} other {# 个实体视图} } 吗?", + "unassign-entity-views-from-edge-title": "确定要取消分配 { count, plural, =1 {1 个实体视图} other {# 个实体视图} } 吗?", "unassign-entity-views-from-edge-text": "确认后,所有选定的实体视图将被分配,边缘无法访问。" }, "event": { "event-type": "事件类型", "events-filter": "事件筛选器", - "clean-events": "Clear Events", + "clean-events": "清除事件", "type-error": "错误", "type-lc-event": "生命周期事件", "type-stats": "类型统计", @@ -2076,9 +2214,9 @@ "body": "整体", "method": "方法", "type": "类型", - "message": "Message", + "message": "消息", "message-id": "消息ID", - "copy-message-id": "Copy message Id", + "copy-message-id": "复制消息ID", "message-type": "消息类型", "data-type": "数据类型", "relation-type": "关联类型", @@ -2089,24 +2227,27 @@ "success": "成功", "failed": "失败", "messages-processed": "消息处理", - "max-messages-processed": "最多处理消息", - "min-messages-processed": "最少处理消息", + "max-messages-processed": "最大处理消息数", + "min-messages-processed": "最少处理消息数", "errors-occurred": "错误发生", - "max-errors-occurred": "最多错误", - "min-errors-occurred": "最少错误", - "min-value": "最小值是0。", + "max-errors-occurred": "最大发生错误数", + "min-errors-occurred": "最少发生错误数", + "min-value": "最小值为 0。", "all-events": "全部", "has-error": "有错误", "entity-id": "实体ID", "copy-entity-id": "复制实体ID", "entity-type": "实体类型", - "clear-filter": "清除过滤器", + "clear-filter": "清除筛选器", "clear-request-title": "清除所有事件", - "clear-request-text": "确除清空所有事件?" + "clear-request-text": "你确定要清除所有事件吗?", + "started": "已开始", + "updated": "已更新", + "stopped": "已停止" }, "extension": { "extensions": "扩展", - "selected-extensions": "已选择 { count, plural, =1 {# 个扩展} other {# 个扩展} }", + "selected-extensions": "已选择 { count, plural, =1 {1 个扩展} other {# 个扩展} }", "type": "类型", "key": "键名", "value": "价值", @@ -2120,7 +2261,7 @@ "edit": "编辑扩展", "delete-extension-title": "确定要删除扩展 '{{extensionId}}'吗?", "delete-extension-text": "请注意:确认后,扩展和所有相关数据将不可恢复。", - "delete-extensions-title": "确定要删除 { count, plural, =1 {# 个扩展} other {# 个扩展} }吗?", + "delete-extensions-title": "确定要删除 { count, plural, =1 {1 个扩展} other {# 个扩展} }吗?", "delete-extensions-text": "请注意:确认后,所有选定的扩展将被删除,所有相关数据将不可恢复。", "converters": "转换器", "converter-id": "转换器序号", @@ -2155,9 +2296,9 @@ "anonymous": "匿名", "basic": "Basic", "pem": "PEM", - "ca-cert": "CA certificate file *", - "private-key": "Private key file *", - "cert": "Certificate file *", + "ca-cert": "CA证书文件 *", + "private-key": "私钥文件 *", + "cert": "证书文件 *", "no-file": "没有选择文件。", "drop-file": "删除文件或单击以选择要上载的文件。", "mapping": "映射", @@ -2210,7 +2351,7 @@ "opc-keystore": "密钥库", "opc-type": "类型", "opc-keystore-type": "类型", - "opc-keystore-location": "Location *", + "opc-keystore-location": "位置 *", "opc-keystore-password": "密码", "opc-keystore-alias": "别名", "opc-keystore-key-password": "密钥密码", @@ -2261,6 +2402,9 @@ "file": "扩展文件", "invalid-file-error": "无效的扩展文件" }, + "feature": { + "advanced-features": "高级功能" + }, "filter": { "add": "添加筛选器", "edit": "编辑筛选器", @@ -2269,7 +2413,7 @@ "duplicate-filter": "同名筛选器已存在。", "filters": "筛选器", "unable-delete-filter-title": "无法删除筛选器", - "unable-delete-filter-text": "无法删除筛选器 '{{filter}}' ,因为它由以下小部件使用:
{{widgetsList}}", + "unable-delete-filter-text": "无法删除筛选器 '{{filter}}' ,因为它由以下部件使用:
{{widgetsList}}", "duplicate-filter-error": "找到重复的筛选器 '{{filter}}'。
筛选器在仪表板中必须是唯一的。", "missing-key-filters-error": "筛选器 '{{filter}}' 的键名筛选条件缺失。", "filter": "筛选器", @@ -2294,12 +2438,13 @@ "less-or-equal": "小于或等于", "and": "和", "or": "或", - "in": "匹配", - "not-in": "不匹配" + "in": "存在", + "not-in": "不存在" }, "ignore-case": "忽略大小写", "value": "值", "remove-filter": "删除筛选器", + "duplicate-filter-action": "重复过滤器", "preview": "筛选器预览", "no-filters": "未配置筛选器", "add-filter": "添加筛选器", @@ -2365,12 +2510,12 @@ }, "gateway": { "add-entry": "添加配置", - "connector-add": "添加新连接器", + "connector-add": "添加连接器", "connector-enabled": "启用连接器", "connector-name": "连接器名称", - "connector-name-required": "连接器名称名称必填。", + "connector-name-required": "连接器名称必填。", "connector-type": "连接器类型", - "connector-type-required": "连接器名称类型必填。", + "connector-type-required": "连接器类型必填。", "connectors": "连接器配置", "create-new-gateway": "创建新网关", "create-new-gateway-text": "确定要创建名为 '{{gatewayName}}' 的新网关?", @@ -2427,7 +2572,7 @@ "thingsboard-port-min": "最小端口号为1。", "thingsboard-port-pattern": "端口无效。", "thingsboard-port-required": "端口必填。", - "tidy": "整洁", + "tidy": "整理", "tidy-tip": "整理配置JSON", "title-connectors-json": "连接器 {{typeName}} 配置", "tls-path-ca-certificate": "网关上CA证书的路径", @@ -2440,10 +2585,10 @@ "grid": { "delete-item-title": "确定要删除此项吗?", "delete-item-text": "请注意,确认后,项目及其所有相关数据将不可恢复。", - "delete-items-title": "确定删除 { count, plural, =1 {# 项} other {# 项} }吗?", - "delete-items-action-title": "删除 { count, plural, =1 {# 个元素} other {# 个元素} }", + "delete-items-title": "确定删除 { count, plural, =1 {1 项} other {# 项} }吗?", + "delete-items-action-title": "删除 { count, plural, =1 {1 个元素} other {# 个元素} }", "delete-items-text": "请注意,确认后所有选择的项目将被删除,所有相关数据将不可恢复。", - "add-item-text": "添加新项目", + "add-item-text": "添加项目", "no-items-text": "未找到项目", "item-details": "项目详细信息", "delete-item": "删除项目", @@ -2467,26 +2612,26 @@ "browse-files": "浏览文件" }, "image-input": { - "drop-image-or": "拖拽图片或", - "drop-images-or": "拖拽图片或", - "no-images": "没有图片", + "drop-image-or": "拖放一张图片或者", + "drop-images-or": "拖放一张或多张图片", + "no-images": "未选择任何图片", "images": "图片" }, "import": { "no-file": "没有选择文件", - "drop-file": "拖动一个JSON文件或者单击以选择要上传的文件。", - "drop-json-file-or": "拖拽JSON文件或", - "drop-file-csv": "拖动一个CSV文件或单击以选择要上载的文件。", - "drop-file-csv-or": "拖拽CSV文件或", + "drop-file": "拖放一个JSON文件或者单击以选择要上传的文件。", + "drop-json-file-or": "拖放一个 JSON 文件或者", + "drop-file-csv": "拖放一个CSV文件或单击以选择要上载的文件。", + "drop-file-csv-or": "拖放一个 CSV 文件或者", "column-value": "数值", "column-title": "标题", "column-example": "示例值数据", "column-key": "属性/遥测键", - "credentials": "Credentials", + "credentials": "凭据", "csv-delimiter": "CSV分隔符", "csv-first-line-header": "第一行包含列名", "csv-update-data": "更新属性/遥测", - "details": "Details", + "details": "详情", "import-csv-number-columns-error": "一个文件至少应该包含两列", "import-csv-invalid-format-error": "文件格式无效。行: '{{line}}'", "column-type": { @@ -2520,7 +2665,7 @@ "lwm2m-server-public-key-id": "LwM2M server公钥" }, "isgateway": "是否网关", - "activity-time-from-gateway-device": "网关设备活动时间", + "activity-time-from-gateway-device": "来自网关设备的活动时间", "description": "说明", "routing-key": "边缘键", "secret": "边缘密钥" @@ -2543,7 +2688,7 @@ "js-func": { "no-return-error": "函数必须返回值!", "return-type-mismatch": "函数必须返回 '{{type}}' 类型的值!", - "tidy": "整洁", + "tidy": "整理", "mini": "迷你" }, "key-val": { @@ -2560,7 +2705,7 @@ "color": "颜色", "main": "主体", "right": "右侧", - "left": "左", + "left": "左侧", "select": "选择目标布局", "percentage-width": "百分比宽度(%)", "fixed-width": "固定(px)", @@ -2585,13 +2730,13 @@ "show-min": "显示最小值", "show-avg": "显示平均值", "show-total": "显示总数", - "show-latest": "显示最新数据值", + "show-latest": "显示最新值", "settings": "图例设置", "min": "最小值", "max": "最大值", "avg": "平均值", "total": "总数", - "latest": "latest", + "latest": "最新值", "comparison-time-ago": { "previousInterval": "(历史间隔)", "customInterval": "(自定义间隔)", @@ -2606,7 +2751,7 @@ "request-password-reset": "请求密码重置", "reset-password": "重置密码", "create-password": "创建密码", - "two-factor-authentication": "双重因素身份验证", + "two-factor-authentication": "双因素认证", "passwords-mismatch-error": "输入的密码必须相同!", "password-again": "再次输入密码", "sign-in": "登录 ", @@ -2639,8 +2784,249 @@ "markdown": { "edit": "编辑", "preview": "预览", - "copy-code": "单击拷贝", - "copied": "已拷贝!" + "copy-code": "点击复制", + "copied": "已复制!" + }, + "notification": { + "action-button": "操作按钮", + "action-type": "操作类型", + "active": "活动", + "add-notification-recipients-group": "添加通知收件人组", + "add-notification-template": "添加通知模板", + "add-recipient": "添加收件人", + "add-recipients": "添加收件人", + "add-rule": "添加规则", + "add-stage": "添加阶段", + "add-template": "添加模板", + "after": "之后", + "alarm-assignment-trigger-settings": "告警分配触发设置", + "alarm-comment-trigger-settings": "告警评论触发设置", + "alarm-trigger-settings": "告警触发设置", + "all": "所有", + "api-feature-hint": "如果字段为空,则触发器将应用于所有API功能", + "api-usage-trigger-settings": "API使用触发设置", + "new-platform-version-trigger-settings": "新平台版本触发设置", + "at-least-one-should-be-selected": "至少需要选择一个", + "basic-settings": "基本设置", + "button-text": "按钮文本", + "button-text-required": "按钮文本必填。", + "button-text-max-length": "按钮文本应小于或等于{{ length }}个字符。", + "compose": "组合", + "conversation": "对话", + "conversation-required": "对话必填。", + "copy-notification-template": "复制通知模板", + "copy-rule": "复制规则", + "copy-template": "复制模板", + "create-new": "创建", + "created": "已创建", + "delete-notification-text": "请注意,在确认后,通知将无法恢复。", + "delete-notification-title": "您确定要删除该通知吗?", + "delete-notifications-text": "请注意,在确认后,通知将无法恢复。", + "delete-notifications-title": "确定要删除 { count, plural, =1 {1 个通知} other {# 个通知} } 吗?", + "delete-recipient-text": "请注意,在确认后,收件人将无法恢复。", + "delete-recipient-title": "确定要删除收件人 '{{recipientName}}' 吗?", + "delete-recipients-text": "请注意,在确认后,收件人将无法恢复。", + "delete-recipients-title": "确定要删除 { count, plural, =1 {1 个收件人} other {# 个收件人} } 吗?", + "delete-request-text": "请注意,在确认后,请求将无法恢复。", + "delete-request-title": "确定要删除请求吗?", + "delete-requests-text": "请注意,在确认后,请求将无法恢复。", + "delete-requests-title": "确定要删除 { count, plural, =1 {1 个请求} other {# 个请求} } 吗?", + "delete-rule-text": "请注意,在确认后,规则将无法恢复。", + "delete-rule-title": "确定要删除规则 '{{ruleName}}' 吗?请注意,确认后无法恢复。", + "delete-rules-text": "请注意,在确认后,规则将无法恢复。", + "delete-rules-title": "确定要删除 { count, plural, =1 {1 条规则} other {# 条规则} } 吗?", + "delete-template-text": "请注意,在确认后,模板将无法恢复。", + "delete-template-title": "确定要删除模板 '{{templateName}}' 吗?", + "delete-templates-text": "请注意,在确认后,模板将无法恢复。", + "delete-templates-title": "确定要删除 { count, plural, =1 {1 个模板} other {# 个模板} } 吗?", + "deleted": "已删除", + "delivery-method": { + "delivery-method": "推送方式", + "email": "Email", + "email-preview": "Email 通知预览", + "slack": "Slack", + "slack-preview": "Slack 通知预览", + "sms": "SMS", + "sms-preview": "SMS 通知预览", + "web": "Web", + "web-preview": "Web 通知预览" + }, + "delivery-method-not-configure-click": "推送方式未配置,点击进行设置。", + "delivery-method-not-configure-contact": "推送方式未配置,请与您的系统管理员联系。", + "delivery-methods": "推送方式", + "description": "描述", + "device-activity-trigger-settings": "设备活动触发设置", + "device-list-rule-hint": "如果该字段为空,则触发器将适用于所有设备。", + "device-profiles-list-rule-hint": "如果该字段为空,则触发器将适用于所有设备配置。", + "disabled": "已禁用", + "edit-notification-recipients-group": "编辑通知收件人群组", + "edit-notification-template": "编辑通知模板", + "edit-rule": "编辑规则", + "edit-template": "编辑模板", + "enabled": "已启用", + "entities-limit-trigger-settings": "实体限制触发器设置", + "entity-action-trigger-settings": "实体动作触发器设置", + "entity-type": "实体类型", + "escalation-chain": "逐步升级链", + "failed-send": "发送失败", + "fails": "{ count, plural, =1 {1 个失败} other {# 个失败} }", + "filter": "筛选器", + "first-recipient": "第一收件人", + "inactive": "非活动", + "inbox": "收件箱", + "notification-inbox": "通知 / 收件箱", + "input-field-support-templatization": "输入字段支持模板化", + "input-fields-support-templatization": "输入字段支持模板化", + "link": "链接", + "link-required": "链接必填。", + "link-type": { + "dashboard": "打开仪表板", + "link": "打开URL链接" + }, + "management": "通知管理", + "mark-all-as-read": "全部标记为已读", + "mark-as-read": "标记为已读", + "message": "信息", + "message-required": "信息必填。", + "message-max-length": "提示信息应该少于或等于 {{ length }} 个字符", + "name": "名称", + "name-required": "名称必填", + "new-notification": "新通知", + "no-inbox-notification": "未找到通知", + "no-notification-request": "没有通知请求", + "no-notification-templates": "未找到通知模板", + "no-notifications-yet": "目前还没有通知", + "no-recipients-notification": "没有收件人的通知", + "no-rule": "未配置规则", + "no-rules-notification": "没有规则通知", + "no-severity-found": "未找到严重性级别", + "no-severity-matching": "未找到 '{{severity}}'。", + "no-template-matching": "未找到与 '{{template}}' 匹配的资源。", + "not-found-slack-recipient": "未找到 Slack 的收件人", + "notification": "通知", + "notification-center": "通知中心", + "notify": "通知", + "notify-again": "再次通知", + "notify-alarm-action": { + "acknowledged": "告警已确认", + "assigned": "告警已分配", + "cleared": "告警已清除", + "created": "告警已确认", + "severity-changed": "告警级别已更改", + "unassigned": "告警未分配" + }, + "notify-on": "通知条件", + "notify-on-comment-update": "在评论更新时通知", + "notify-on-required": "通知条件必填。", + "notify-on-unassign": "在取消分配时通知", + "notify-only-user-comments": "仅在用户评论时通知", + "only-rule-chain-lifecycle-failures": "仅在规则链生命周期故障时通知", + "only-rule-node-lifecycle-failures": "仅在规则节点生命周期故障时通知", + "platform-users": "平台用户", + "recipient": "收件人", + "recipient-group": "收件人组", + "recipient-type": { + "affected-tenant-administrators": "受影响的租户管理员", + "affected-user": "受影响的用户", + "affected-user-hint": "受影响用户的提示", + "all-users": "所有用户", + "customer-users": "客户用户", + "system-administrators": "系统管理员", + "tenant-administrators": "租户管理员", + "user-filters": "用户筛选器", + "user-list": "用户列表", + "users-entity-owner": "实体所有者的用户", + "users-entity-owner-hint": "实体所有者用户的提示" + }, + "recipients": "收件人", + "notification-recipients": "通知 / 收件人", + "recipients-count": "{ count, plural, =1 {1 个收件人} other {# 个收件人} }", + "recipients-required": "收件人必填。", + "refresh-allow-delivery-method": "刷新允许推送方式", + "request-search": "请求搜索", + "request-status": { + "processing": "处理中", + "scheduled": "已安排", + "sent": "已发送" + }, + "review": "检查", + "rule": "规则", + "rule-chain-list-rule-hint": "如果字段为空,则触发器将应用于所有规则链。", + "rule-engine-events-trigger-settings": "规则引擎事件触发器设置", + "rule-engine-filter": "规则引擎筛选器", + "rule-name": "规则名称", + "rule-name-required": "名称必填。", + "rule-node-filter": "规则节点筛选器", + "rules": "规则", + "notification-rules": "通知 / 规则", + "scheduler-later": "稍后安排", + "search-notification": "搜索通知", + "search-recipients": "搜索收件人", + "search-rules": "搜索规则", + "search-templates": "搜索模板", + "see-documentation": "查看文档", + "selected-notifications": "已选择 { count, plural, =1 {1 个通知} other {# 个通知} }", + "selected-recipients": "已选择 { count, plural, =1 {1 个收件人} other {# 个收件人} }", + "selected-requests": "已选择 { count, plural, =1 {1 个请求} other {# 个请求} }", + "selected-rules": "已选择 { count, plural, =1 {1 个规则} other {# 个规则} }", + "selected-template": "已选择 { count, plural, =1 {1 个模板} other {# 个模板} }", + "send-notification": "发送通知", + "sent": "已发送", + "notification-sent": "通知 / 已发送", + "set-entity-from-notification": "将通知中的实体设置为仪表盘状态", + "slack-chanel-type": "Slack 频道类型", + "slack-chanel-types": { + "direct": "直接消息", + "private-channel": "私有频道", + "public-channel": "公开频道" + }, + "start-from-scratch": "从头开始", + "status": "状态", + "stop-escalation-alarm-status-become": "停止逐步升级,将告警状态设置为:", + "subject": "主题", + "subject-required": "主题必填。", + "template": "模板", + "template-name": "模板名称", + "template-required": "模板必填。", + "template-type": { + "alarm": "告警", + "alarm-assignment": "告警分配", + "alarm-comment": "告警评论", + "api-usage-limit": "API使用限制", + "device-activity": "设备活动", + "entities-limit": "实体限制", + "entity-action": "实体操作", + "general": "通用", + "rule-engine-lifecycle-event": "规则引擎生命周期事件", + "rule-node": "规则节点", + "new-platform-version": "新的平台版本" + }, + "templates": "模板", + "notification-templates": "通知 / 模板", + "tenant-profiles-list-rule-hint": "如果字段为空,触发器将应用于所有租户配置文件", + "tenants-list-rule-hint": "如果字段为空,触发器将应用于所有租户", + "threshold": "阈值", + "time": "时间", + "track-rule-node-events": "追踪规则节点事件", + "trigger": { + "alarm": "告警", + "alarm-assignment": "告警分配", + "alarm-comment": "告警评论", + "api-usage-limit": "API使用限制", + "device-activity": "设备活动", + "entities-limit": "实体限制", + "entity-action": "实体操作", + "rule-engine-lifecycle-event": "规则引擎生命周期事件", + "new-platform-version": "新的平台版本", + "trigger": "触发器", + "trigger-required": "触发器必填。" + }, + "type": "类型", + "unread": "未读", + "updated": "已更新", + "use-template": "使用模板", + "view-all": "查看全部", + "warning": "警告" }, "ota-update": { "add": "添加包", @@ -2673,8 +3059,8 @@ "direct-url-copied-message": "包直接URL已复制到剪贴板", "direct-url-required": "直接URL必填", "download": "下载包", - "drop-file": "拖放打包文件或点击选择要上传的文件。", - "drop-package-file-or": "拖拽文件或", + "drop-file": "拖放包文件或点击选择要上传的文件。", + "drop-package-file-or": "拖放一个包文件或者", "file-name": "文件名", "file-size": "文件大小", "file-size-bytes": "文件大小(以字节为单位)", @@ -2693,7 +3079,7 @@ "selected-package": "{ count, plural, =1 {1 个包} other {# 个包} } 选中", "title": "标题", "title-required": "标题必填。", - "title-max-length": "标题长度必须少于256个字符", + "title-max-length": "标题长度应该少于256个字符。", "types": { "firmware": "固件", "software": "软件" @@ -2704,8 +3090,8 @@ "version-required": "版本必填。", "version-tag": "版本标签", "version-tag-hint": "自定义标签应与您设备报告的软件包版本相匹配。", - "version-max-length": "版本长度必须少于256个字符", - "warning-after-save-no-edit": "上传包后,您将无法修改标题、版本、设备配置文件和包类型。" + "version-max-length": "版本长度应该少于256个字符", + "warning-after-save-no-edit": "上传包后,您将无法修改标题、版本、设备配置和包类型。" }, "position": { "top": "顶部", @@ -2729,18 +3115,19 @@ }, "security": { "security": "安全", + "general-settings": "通用安全设置", "2fa": { - "2fa": "双因素身份验证", - "2fa-description": "双因素身份验证可保护您的帐户免受未经授权的访问。在登录时必须输入安全验证码。", + "2fa": "双因素认证", + "2fa-description": "双因素认证可保护您的帐户免受未经授权的访问。在登录时必须输入安全验证码。", "authenticate-with": "可以使用以下身份验证:", "disable-2fa-provider-text": "禁用 {{ name }} 会降低帐户的安全性", "disable-2fa-provider-title": "确定要禁用 {{ name }} 吗?", "get-new-code": "获取新验证码", - "main-2fa-method": "用作主要的双因素身份验证方法", + "main-2fa-method": "用作主要的双因素认证方法", "dialog": { "activation-step-description-email": "下次登录时,系统将提示您输入电子邮件中的验证码。", "activation-step-description-sms": "下次登录时,系统将提示您输入短信中的验证码。", - "activation-step-description-totp": "下次登录时,您需要提供一个双因素身份验证码。", + "activation-step-description-totp": "下次登录时,您需要提供一个双因素认证码。", "activation-step-label": "激活", "backup-code-description": "打印出验证码,以便在您需要时使用它们登录帐户。每个备份验证码可以使用一次。", "backup-code-warn": "离开此页后,这些代码将无法再次显示。使用以下选项安全存放。", @@ -2780,7 +3167,7 @@ "totp-hint": "已为您的帐户设置验证APP", "backup_code": "备份验证码", "backup-code-description": "这些可打印的一次性密码允许您在离开手机时登录,比如正在旅行。", - "backup-code-hint": "{{ info }}个一次性代码处于激活状态" + "backup-code-hint": "{{ info }}个一次性代码此时处于激活状态" } }, "password-requirement": { @@ -2811,7 +3198,7 @@ }, "from-relations": "向外的关联", "to-relations": "向内的关联", - "selected-relations": "已选择{ count, plural, =1 {# 个关联} other {# 个关联} }", + "selected-relations": "已选择 { count, plural, =1 {1 个关联} other {# 个关联} }", "type": "类型", "to-entity-type": "到实体类型", "to-entity-name": "到实体名称", @@ -2822,17 +3209,17 @@ "delete": "删除关联", "relation-type": "关联类型", "relation-type-required": "关联类型必填", - "relation-type-max-length": "关联类型长度必须少于256个字符", + "relation-type-max-length": "关联类型长度应该少于256个字符。", "any-relation-type": "任何类型", "add": "添加关联", "edit": "编辑关联", "delete-to-relation-title": "确定要删除实体 '{{entityName}}' 的关联吗?", "delete-to-relation-text": "确定删除后实体 '{{entityName}}' 将取消与当前实体的关联关系。", - "delete-to-relations-title": "确定要删除 { count, plural, =1 {# 个关联} other {# 个关联} }吗?", + "delete-to-relations-title": "确定要删除 { count, plural, =1 {1 个关联} other {# 个关联} }吗?", "delete-to-relations-text": "确定删除所有选择的关联关系后,与当前实体对应的所有关联关系将被移除。", "delete-from-relation-title": "确定要从实体 '{{entityName}}' 删除关联吗?", "delete-from-relation-text": "确定删除后,当前实体将与实体 '{{entityName}}' 取消关联", - "delete-from-relations-title": "确定删除 { count, plural, =1 {# 个关联} other {# 个关联} } 吗?", + "delete-from-relations-title": "确定删除 { count, plural, =1 {1 个关联} other {# 个关联} } 吗?", "delete-from-relations-text": "确定删除所有选择的关联关系后,当前实体将与对应的实体取消关联", "remove-relation-filter": "移除关联筛选器", "add-relation-filter": "添加关联筛选器", @@ -2848,15 +3235,15 @@ "delete": "删除资源", "delete-resource-text": "请注意:确认后,资源将不可恢复。", "delete-resource-title": "确定要删除资源 '{{resourceTitle}}' 吗?", - "delete-resources-action-title": "删除 { count, plural, =1 {# 个资源} other {# 个资源} }", + "delete-resources-action-title": "删除 { count, plural, =1 {1 个资源} other {# 个资源} }", "delete-resources-text": "请注意:确认后,所有选定的资源将被删除。", - "delete-resources-title": "确定要删除 { count, plural, =1 {# 个资源} other {# 个资源} }吗?", - "download": "Download resource", - "drop-file": "拖拽资源文件或单击以选择要上传的文件。", - "drop-resource-file-or": "Drag and drop a resource file or", + "delete-resources-title": "确定要删除 { count, plural, =1 {1 个资源} other {# 个资源} }吗?", + "download": "下载资源", + "drop-file": "拖放资源文件或单击以选择要上传的文件。", + "drop-resource-file-or": "拖放一个资源文件或者", "empty": "资源为空", - "file-name": "File name", - "idCopiedMessage": "拖拽资源文件或", + "file-name": "文件名称", + "idCopiedMessage": "资源ID已复制到剪贴板", "no-resource-matching": "未找到与 '{{widgetsBundle}}' 匹配的资源。", "no-resource-text": "未找到资源", "open-widgets-bundle": "打开部件库", @@ -2865,20 +3252,21 @@ "resource-type": "资源类型", "resources-library": "资源库", "search": "查找资源", - "selected-resources": "已选择{ count, plural, =1 {# 个资源} other {# 个资源} }", + "selected-resources": "已选择{ count, plural, =1 {1 个资源} other {# 个资源} }", "system": "系统", "title": "标题", "title-required": "标题是必填项。", - "title-max-length": "标题长度必须少于256个字符" + "title-max-length": "标题长度应该少于256个字符。" }, "rulechain": { "rulechain": "规则链", + "rulechain-events": "规则链事件", "rulechains": "规则链库", "root": "是否根链", "delete": "删除规则链", "name": "名称", "name-required": "名称必填。", - "name-max-length": "名称长度必须少于256个字符", + "name-max-length": "名称长度应该少于256个字符。", "description": "说明", "add": "添加规则链", "set-root": "设置为根规则链", @@ -2887,9 +3275,9 @@ "delete-rulechain-title": " 确定要删除规则链'{{ruleChainName}}'吗?", "delete-rulechain-text": "请注意,确认后,规则链和所有相关数据将不可恢复。", "delete-rulechains-title": "确定要删除{count, plural, =1 { 1 个规则链} other {# 个规则链} }吗?", - "delete-rulechains-action-title": "删除 { count, plural, =1 {# 个规则链} other {# 个规则链} }", + "delete-rulechains-action-title": "删除 { count, plural, =1 {1 个规则链} other {# 个规则链} }", "delete-rulechains-text": "请注意:确认后,所有选定的规则链将被删除,所有相关的数据将不可恢复。", - "add-rulechain-text": "添加新的规则链", + "add-rulechain-text": "添加规则链", "no-rulechains-text": "未找到规则链", "rulechain-details": "规则链详情", "details": "详情", @@ -2909,9 +3297,9 @@ "management": "规则集管理", "debug-mode": "调试模式", "search": "查找规则链", - "selected-rulechains": "已选择 { count, plural, =1 {# 个规则链} other {# 个规则链} }", + "selected-rulechains": "已选择 { count, plural, =1 {1 个规则链} other {# 个规则链} }", "open-rulechain": "打开规则链", - "assign-new-rulechain": "Assign new rulechain", + "assign-new-rulechain": "分配新的规则链", "edge-template-root": "模版根链", "assign-to-edge": "分配给边缘", "edge-rulechain": "边缘规则链", @@ -2930,10 +3318,11 @@ "unset-auto-assign-to-edge": "不将规则链分配给边缘", "unset-auto-assign-to-edge-title": "确定不再将规则链'{{ruleChainName}}'自动分配给新创建的边缘吗?", "unset-auto-assign-to-edge-text": "确认后,将不再自动分配规则链给新创建的边缘。", - "unassign-rulechain-title": "你确定要取消分配规则链'{{ruleChainName}}'?", + "unassign-rulechain-title": "确定要取消分配规则链 '{{ruleChainName}}' 吗?", "unassign-rulechains": "取消分配规则链" }, "rulenode": { + "rule-node-events": "规则节点事件", "details": "详情", "events": "事件", "search": "查找节点", @@ -2941,7 +3330,7 @@ "add": "添加规则节点", "name": "名称", "name-required": "名称必填。", - "name-max-length": "名称长度必须少于256个字符", + "name-max-length": "名称长度应该少于256个字符。", "type": "类型", "description": "说明", "delete": "删除规则节点", @@ -2955,6 +3344,7 @@ "deselect-all": "取消选择", "rulenode-details": "规则节点详情", "debug-mode": "调试模式", + "singleton-mode": "单例模式", "configuration": "配置", "link": "链接", "link-details": "规则节点链接详情", @@ -2980,7 +3370,7 @@ "type-external-details": "与外部系统交互", "type-rule-chain": "规则链", "type-rule-chain-details": "将传入消息转发到指定的规则链", - "type-flow": "流", + "type-flow": "Flow", "type-flow-details": "组织消息流", "type-input": "输入", "type-input-details": "规则链的逻辑输入,将传入消息转发到下一个相关规则节点", @@ -3006,7 +3396,7 @@ "timezone": { "timezone": "时区", "select-timezone": "选择时区", - "no-timezones-matching": "找不到匹配的'{{timezone}}'时区。", + "no-timezones-matching": "未找到与 '{{timezone}}' 匹配的时区。", "timezone-required": "时区必填。", "browser-time": "浏览器时间" }, @@ -3051,10 +3441,10 @@ "details": "队列详情", "topic": "主题", "submit-settings": "提交设置", - "submit-strategy": "Strategy type *", + "submit-strategy": "策略类型*", "grouping-parameter": "分组参数", "processing-settings": "重试处理设置", - "processing-strategy": "Processing type *", + "processing-strategy": "处理类型*", "retries-settings": "重试设置", "polling-settings": "轮询设置", "batch-processing": "批量处理", @@ -3121,14 +3511,14 @@ "admins": "管理员", "manage-tenant-admins": "管理租户管理员", "delete": "删除租户", - "add-tenant-text": "添加新租户", + "add-tenant-text": "添加租户", "no-tenants-text": "未找到租户", "tenant-details": "租客详情", - "title-max-length": "标题长度必须少于256个字符", + "title-max-length": "标题长度应该少于256个字符。", "delete-tenant-title": "确定要删除租户'{{tenantTitle}}'吗?", "delete-tenant-text": "请注意:确认后,租户和所有相关数据将不可恢复。", - "delete-tenants-title": "确定要删除 {count,plural, =1 {# 个租户} other {# 个租户} } 吗?", - "delete-tenants-action-title": "删除 { count, plural, =1 {# 个租户} other {# 个租户} }", + "delete-tenants-title": "确定要删除 {count,plural,=1 {1 个租户} other {# 个租户} } 吗?", + "delete-tenants-action-title": "删除 { count, plural, =1 {1 个租户} other {# 个租户} }", "delete-tenants-text": "请注意:确认后,所有选定的租户将被删除,所有相关数据将不可恢复。", "title": "标题", "title-required": "标题必填。", @@ -3141,7 +3531,7 @@ "no-tenants-matching": "未找到匹配 '{{entity}}' 的租户", "tenant-required": "租户必填", "search": "查找租户", - "selected-tenants": "已选择 { count, plural, =1 {# 个租户} other {# 个租户} }", + "selected-tenants": "已选择 { count, plural, =1 {1 个租户} other {# 个租户} }", "isolated-tb-rule-engine": "使用独立的规则引擎服务", "isolated-tb-rule-engine-details": "每个独立租户需要单独的规则引擎微服务" }, @@ -3149,12 +3539,13 @@ "tenant-profile": "租户配置", "tenant-profiles": "租户配置", "add": "添加租户配置", + "add-profile": "添加配置", "edit": "编辑租户配置", "tenant-profile-details": "租户配置详细信息", "no-tenant-profiles-text": "未找到租户配置", "name-max-length": "名称长度必须少于256个字符", "search": "查找租户配置", - "selected-tenant-profiles": "已选择 { count, plural, =1 {# 个租户配置} other {# 个租户配置} }", + "selected-tenant-profiles": "已选择 { count, plural, =1 {1 个租户配置} other {# 个租户配置} }", "no-tenant-profiles-matching": "未找到与 '{{entity}}' 匹配的租户配置。", "tenant-profile-required": "租户配置必填", "idCopiedMessage": "租户配置ID已复制到剪贴板", @@ -3169,7 +3560,7 @@ "default": "默认", "delete-tenant-profile-title": "确定要删除租户配置 '{{tenantProfileName}}'吗?", "delete-tenant-profile-text": "请注意:确认后,租户配置和所有相关数据将不可恢复。", - "delete-tenant-profiles-title": "确定要删除 { count, plural, =1 {# 个租户配置} other {# 个租户配置} }吗?", + "delete-tenant-profiles-title": "确定要删除 { count, plural, =1 {1 个租户配置} other {# 个租户配置} }吗?", "delete-tenant-profiles-text": "请注意:确认后,所有选定的租户配置将被删除,所有相关数据将不可恢复。", "set-default-tenant-profile-title": "确定要将租户配置 '{{tenantProfileName}}' 设为默认值吗?", "set-default-tenant-profile-text": "确认后,此租户配置将被标记为默认配置,并将用于未指定配置的新租户。", @@ -3213,6 +3604,7 @@ "maximum-ota-packages-sum-data-size": "OTA包文件总大小", "maximum-ota-package-sum-data-size-required": "OTA包文件总大小必填。", "maximum-ota-package-sum-data-size-range": "OTA包文件总大小不能为负数", + "rest-requests-for-tenant": "租户REST请求", "transport-tenant-telemetry-msg-rate-limit": "租户遥测消息", "transport-tenant-telemetry-data-points-rate-limit": "租户遥测数据点", "transport-device-msg-rate-limit": "设备消息", @@ -3220,6 +3612,8 @@ "transport-device-telemetry-data-points-rate-limit": "设备遥测消息", "tenant-entity-export-rate-limit": "实体版本创建", "tenant-entity-import-rate-limit": "实体版本加载", + "tenant-notification-request-rate-limit": "通知请求", + "tenant-notification-requests-per-rule-rate-limit": "每个通知规则的通知请求", "max-transport-messages": "最大传输消息数", "max-transport-messages-required": "最大传输消息数必填。", "max-transport-messages-range": "最大传输消息数不能为负数", @@ -3264,6 +3658,7 @@ "incorrect-pattern-for-rate-limits": "格式为以冒号分割容量与周期(秒)并以逗号分割配置对,例如 100:1,2000:60", "too-small-value-zero": "数值必须大于0", "too-small-value-one": "数值必须大于1", + "queue-size-is-limited-by-system-configuration": "队列的大小也受系统配置的限制。", "cassandra-tenant-limits-configuration": "租户Cassandra查询", "ws-limit-max-sessions-per-tenant": "租户最大会话数", "ws-limit-max-sessions-per-customer": "客户最大会话数", @@ -3286,11 +3681,14 @@ "edit-transport-device-msg-title": "编辑传输设备消息速率限制", "edit-transport-device-telemetry-msg-title": "编辑传输设备遥测消息速率限制", "edit-transport-device-telemetry-data-points-title": "编辑传输设备遥测数据点速率限制", + "edit-tenant-rest-limits-title": "Edit REST requests for tenant rate limits", "edit-customer-rest-limits-title": "编辑客户REST请求速率限制", "edit-ws-limit-updates-per-session-title": "编辑会话WS更新速率限制", "edit-cassandra-tenant-limits-configuration-title": "编辑租户Cassandra查询速率限制", "edit-tenant-entity-export-rate-limit-title": "编辑实体版本创建速率限制", "edit-tenant-entity-import-rate-limit-title": "编辑实体版本加载速率限制", + "edit-tenant-notification-request-rate-limit-title": "编辑通知请求的速率限制", + "edit-tenant-notification-requests-per-rule-rate-limit-title": "编辑每个通知规则的通知请求速率限制", "messages-per": "条消息每", "not-set": "未配置", "number-of-messages": "消息数量", @@ -3312,10 +3710,10 @@ } }, "timeinterval": { - "seconds-interval": "{ seconds, plural, =1 {# 秒} other {# 秒} }", - "minutes-interval": "{ minutes, plural, =1 {# 分} other {# 分} }", - "hours-interval": "{ hours, plural, =1 {# 小时} other {# 小时} }", - "days-interval": "{ days, plural, =1 {# 天} other {# 天} }", + "seconds-interval": "{ seconds, plural, =1 {1 秒} other {# 秒} }", + "minutes-interval": "{ minutes, plural, =1 {1 分} other {# 分} }", + "hours-interval": "{ hours, plural, =1 {1 小时} other {# 小时} }", + "days-interval": "{ days, plural, =1 {1 天} other {# 天} }", "days": "天", "hours": "小时", "minutes": "分钟", @@ -3328,6 +3726,8 @@ "previous-week": "前一周(周日至周六)", "previous-week-iso": "前一周(周一至周日)", "previous-month": "前一个月", + "previous-quarter": "上季度", + "previous-half-year": "前半年", "previous-year": "前一年", "current-hour": "当前小时", "current-day": "当前天", @@ -3338,6 +3738,10 @@ "current-week-iso-so-far": "本周到目前为止(周一至周日)", "current-month": "本月", "current-month-so-far": "本月到目前为止", + "current-quarter": "当前季度", + "current-quarter-so-far": "当前季度到目前为止", + "current-half-year": "当前半年", + "current-half-year-so-far": "当前半年到目前为止", "current-year": "本年", "current-year-so-far": "本年到目前为止" } @@ -3350,20 +3754,35 @@ "days": "天" }, "timewindow": { - "days": "{ days, plural, =1 {# 天 } other {# 天 } }", - "hours": "{ hours, plural, =0 {- 小时 } =1 {# 小时 } other {# 小时 } }", - "minutes": "{ minutes, plural, =0 {- 分 } =1 {# 分 } other {# 分 } }", - "seconds": "{ seconds, plural, =0 {- 秒 } =1 {# 秒 } other {# 秒 } }", + "years": "{ years, plural, =1 {1 年 } other {# 年 } }", + "months": "{ months, plural, =1 { 月 } other {# 月 } }", + "weeks": "{ weeks, plural, =1 { 周 } other {# 周 } }", + "days": "{ days, plural, =1 {1 天 } other {# 天 } }", + "hours": "{ hours, plural, =0 {- 小时 } =1 {1 小时 } other {# 小时 } }", + "hr": "{{ hr }} 时", + "minutes": "{ minutes, plural, =0 {- 分 } =1 {1 分 } other {# 分 } }", + "min": "{{ min }} 分", + "seconds": "{ seconds, plural, =0 {- 秒 } =1 {1 秒 } other {# 秒 } }", + "sec": "{{ sec }} 秒", + "short": { + "days": "{ days, plural, =1 {1 天 } other {# 天 } }", + "hours": "{ hours, plural, =1 {1 小时 } other {# 小时 } }", + "minutes": "{{minutes}} 分 ", + "seconds": "{{seconds}} 秒 " + }, "realtime": "实时", "history": "历史", "last-prefix": "最后", "period": "从 {{ startTime }} 到 {{ endTime }}", "edit": "编辑时间窗口", "date-range": "日期范围", + "for-all-time": "所有时间", "last": "最后", "time-period": "时间段", "hide": "隐藏", - "interval": "区间" + "interval": "区间", + "just-now": "刚刚", + "ago": "之前" }, "user": { "user": "用户", @@ -3376,13 +3795,13 @@ "anonymous": "匿名", "add": "添加用户", "delete": "删除用户", - "add-user-text": "添加新用户", + "add-user-text": "添加用户", "no-users-text": "未找到用户", "user-details": "用户详细信息", "delete-user-title": "确定要删除用户 '{{userEmail}}' 吗?", "delete-user-text": "请注意:确认后,用户和所有相关数据将不可恢复。", - "delete-users-title": "确定要删除 { count, plural, =1 {# 个用户} other {# 个用户} } 吗?", - "delete-users-action-title": "删除 { count, plural, =1 {# 个用户} other {# 个用户} }", + "delete-users-title": "确定要删除 { count, plural, =1 {1 个用户} other {# 个用户} } 吗?", + "delete-users-action-title": "删除 { count, plural, =1 {1 个用户} other {# 个用户} }", "delete-users-text": "请注意:确认后,所有选定的用户将被删除,所有相关数据将不可恢复。", "activation-email-sent-message": "激活电子邮件已成功发送!", "resend-activation": "重新发送激活", @@ -3408,21 +3827,23 @@ "login-as-tenant-admin": "以租户管理员身份登录", "login-as-customer-user": "以客户用户身份登录", "search": "查找用户", - "selected-users": "已选择 { count, plural, =1 {# 个用户} other {# 个用户} }", + "selected-users": "已选择 { count, plural, =1 {1 个用户} other {# 个用户} }", "disable-account": "禁用用户帐户", "enable-account": "启用用户帐户", "enable-account-message": "已成功启用用户帐户!", "disable-account-message": "已成功禁用用户帐户!", - "copyId": "复制用户Id", - "idCopiedMessage": "用户ID已经复制到粘贴板" + "copyId": "复制用户ID", + "idCopiedMessage": "用户ID已复制到剪贴板", + "user-list": "用户列表", + "user-list-required": "用户列表必填。" }, "value": { "type": "值类型", "string": "字符串", "string-value": "字符串值", "string-value-required": "字符串值必填", - "integer": "数字", - "integer-value": "数字值", + "integer": "整数", + "integer-value": "整数值", "integer-value-required": "整数值必填", "invalid-integer-value": "整数值无效", "double": "双精度小数", @@ -3432,7 +3853,7 @@ "boolean-value": "布尔值", "false": "假", "true": "真", - "long": "Long", + "long": "长整数", "json": "JSON", "json-value": "JSON值", "json-value-invalid": "JSON值的格式无效", @@ -3504,17 +3925,17 @@ "device-credentials-conflict": "无法加载外部ID为 {{entityId}} 的设备
因为数据库中已存在相同的凭据。
请考虑禁用还原表单中的 加载凭据 设置。", "missing-referenced-entity": "无法加载外部ID为 {{sourceEntityId}}{{sourceEntityTypeName}}
因为它引用了缺失的 {{targetEntityTypeName}} (ID:{{targetEntityId}}).", "runtime-failed": "失败: {{message}}", - "auto-commit-settings-read-only-hint": "自动提交功能不适用于存储库设置中启用的只读选项。" + "auto-commit-settings-read-only-hint": "在仓库设置中启用只读选项后,'自动提交'功能将无法正常工作。" }, "widget": { "widget-library": "部件库", "widget-bundle": "部件包", - "all-bundles": "All bundles", + "all-bundles": "所有包", "select-widgets-bundle": "选择部件包", "management": "管理部件", "editor": "部件编辑器", "widget-type-not-found": "加载部件配置出错。
可能关联的部件已经删除了。", - "widget-type-load-error": "由于以下错误未加载小部件:", + "widget-type-load-error": "由于以下错误未加载部件:", "remove": "删除部件", "edit": "编辑部件", "remove-widget-title": "确定要删除 '{{widgetTitle}}'部件吗?", @@ -3541,46 +3962,50 @@ "type": "部件类型", "resources": "资源", "resource-url": "JavaScript/CSS URL", - "resource-is-module": "是否模块", + "resource-is-module": "Is module", "remove-resource": "删除资源", "add-resource": "添加资源", "html": "HTML", - "tidy": "Tidy", + "tidy": "整理", "css": "CSS", "settings-schema": "设置模式", "datakey-settings-schema": "数据键设置模式", - "latest-datakey-settings-schema": "最新数据键设置模式", + "latest-datakey-settings-schema": "最新值数据键设置模式", "widget-settings": "部件设置", "description": "描述", "image-preview": "图片预览", "settings-form-selector": "设置表单选择器", "data-key-settings-form-selector": "数据键设置表单选择器", - "latest-data-key-settings-form-selector": "最新数据键设置表单选择器", + "latest-data-key-settings-form-selector": "最新值数据键设置表单选择器", "javascript": "Javascript", "js": "JS", "remove-widget-type-title": "确定要删除部件类型 '{{widgetName}}'吗?", "remove-widget-type-text": "确认后,窗口部件类型和所有相关数据将不可恢复。", "remove-widget-type": "删除部件类型", - "add-widget-type": "添加新的部件类型", + "add-widget-type": "添加部件类型", "widget-type-load-failed-error": "无法加载部件类型!", "widget-template-load-failed-error": "无法加载部件模板!", "add": "添加部件", "undo": "撤消部件更改", "export": "导出部件", - "no-data": "小部件上没有要显示的数据", - "data-overflow": "部件显示 {{count}}之外{{total}} 实体", - "alarm-data-overflow": "窗口部件显示{{allowedEntities}}(最大允许的)实的警报{{totalEntities}}实体", + "no-data": "部件上没有要显示的数据", + "data-overflow": "部件显示 {{count}} 条实体中的 {{total}} 条", + "alarm-data-overflow": "部件显示了 {{allowedEntities}}(最大允许)实体中的告警,总共有 {{totalEntities}} 个实体", "search": "搜索部件", "filter": "部件类型过滤", - "loading-widgets": "加载部件..." + "loading-widgets": "加载部件...", + "widget-template-error": "无效的部件 HTML 模板。" }, "widget-action": { - "header-button": "顶部按钮clcik", + "header-button": "部件顶部按钮", "open-dashboard-state": "切换到新仪表板状态", "update-dashboard-state": "更新当前仪表板状态", "open-dashboard": "切换到另一个仪表板", "custom": "自定义动作", - "custom-pretty": "自定义操作(使用HTML模板)", + "custom-pretty": "自定义动作(使用HTML模板)", + "custom-pretty-error-title": "自定义对话框错误", + "custom-pretty-template-error": "无效的自定义对话框模板。", + "custom-pretty-controller-error": "在评估自定义对话框函数时发生了错误。", "mobile-action": "移动端动作", "target-dashboard-state": "目标仪表板状态", "target-dashboard-state-required": "目标仪表板状态必填", @@ -3590,42 +4015,42 @@ "state-display-type": "显示仪表板状态选项", "open-normal": "普通", "open-in-separate-dialog": "在单独的对话框中打开", - "open-in-popover": "在popover打开", + "open-in-popover": "在弹出框中打开", "dialog-title": "对话框标题", "dialog-hide-dashboard-toolbar": "在对话框中隐藏仪表板工具栏", - "dialog-width": "对话框宽度相对视图宽度", - "dialog-height": "对话框高度相对视图高度", - "dialog-size-range-error": "对话框尺寸比值必须是1至100范围内。", - "popover-preferred-placement": "首选弹出位置", - "popover-placement-top": "上", - "popover-placement-topLeft": "左上", - "popover-placement-topRight": "右上", - "popover-placement-right": "右", + "dialog-width": "对话框宽度相对于视口宽度的百分比", + "dialog-height": "对话框高度相对于视口高度的百分比", + "dialog-size-range-error": "对话框的大小百分比值应该介于1到100之间。", + "popover-preferred-placement": "首选的弹出框位置", + "popover-placement-top": "顶部", + "popover-placement-topLeft": "上左", + "popover-placement-topRight": "上右", + "popover-placement-right": "右侧", "popover-placement-rightTop": "右上", "popover-placement-rightBottom": "右下", - "popover-placement-bottom": "下", - "popover-placement-bottomLeft": "左下", - "popover-placement-bottomRight": "右下", - "popover-placement-left": "左", + "popover-placement-bottom": "底部", + "popover-placement-bottomLeft": "下左", + "popover-placement-bottomRight": "下右", + "popover-placement-left": "左侧", "popover-placement-leftTop": "左上", "popover-placement-leftBottom": "左下", - "popover-hide-on-click-outside": "点击隐藏外面的弹出窗口", - "popover-hide-dashboard-toolbar": "隐藏仪表板工具栏", - "popover-width": "浏览器中的弹出宽度(例如100px, 25vw)单位", - "popover-height": "浏览器中的弹出高度(例如:100px,25vh)单位", - "popover-style": "弹出样式", + "popover-hide-on-click-outside": "在点击弹出框外部时隐藏弹出框", + "popover-hide-dashboard-toolbar": "在弹出框中隐藏仪表板工具栏", + "popover-width": "弹出框的宽度使用浏览器单位表示(例如:100px、25vw)", + "popover-height": "弹出框的高度使用浏览器单位表示(例如:100px、25vh)", + "popover-style": "弹出框样式", "open-new-browser-tab": "在新的浏览器选项卡中打开", "mobile": { - "action-type": "手机端动作类型", - "action-type-required": "手机端动作类型必填。", - "take-picture-from-gallery": "画册拍照", + "action-type": "移动端动作类型", + "action-type-required": "移动端动作类型必填。", + "take-picture-from-gallery": "从图库中获取照片", "take-photo": "拍照", - "map-direction": "打开地图说明", + "map-direction": "打开地图导航", "map-location": "打开地图位置", "scan-qr-code": "扫描二维码", "make-phone-call": "拨打电话", - "get-location": "获得位置", - "take-screenshot": "截图" + "get-location": "获取手机位置", + "take-screenshot": "截屏" } }, "widgets-bundle": { @@ -3635,18 +4060,18 @@ "delete": "删除部件包", "title": "标题", "title-required": "标题必填。", - "title-max-length": "标题长度必须少于256个字符", + "title-max-length": "标题长度应该少于256个字符。", "description": "描述", "image-preview": "图片预览", - "add-widgets-bundle-text": "添加新的部件包", + "add-widgets-bundle-text": "添加部件包", "no-widgets-bundles-text": "未找到部件包", "empty": "部件包是空的", "details": "详情", "widgets-bundle-details": "部件包详细信息", "delete-widgets-bundle-title": "确定要删除部件包 '{{widgetsBundleTitle}}'吗?", "delete-widgets-bundle-text": "请注意:确认后,部件包和所有相关数据将不可恢复。", - "delete-widgets-bundles-title": "确定要删除 { count, plural, =1 {# 个部件包} other {# 个部件包} } 吗?", - "delete-widgets-bundles-action-title": "删除 { count, plural, =1 {# 个部件包} other {# 个部件包} }", + "delete-widgets-bundles-title": "确定要删除 { count, plural, =1 {1 个部件包} other {# 个部件包} } 吗?", + "delete-widgets-bundles-action-title": "删除 { count, plural, =1 {1 个部件包} other {# 个部件包} }", "delete-widgets-bundles-text": "请注意:确认后,所有选定的部件包将被删除,所有相关数据将不可恢复。", "no-widgets-bundles-matching": "未找到与 '{{widgetsBundle}}' 匹配的部件包。", "widgets-bundle-required": "部件包必填。", @@ -3658,7 +4083,7 @@ "widgets-bundle-file": "部件包文件", "invalid-widgets-bundle-file-error": "无法导入部件包:无效的部件包数据结构。", "search": "查找部件包", - "selected-widgets-bundles": "已选择 { count, plural, =1 {# 个部件包} other {# 个部件包} }", + "selected-widgets-bundles": "已选择 { count, plural, =1 {1 个部件包} other {# 个部件包} }", "open-widgets-bundle": "打开部件包", "loading-widgets-bundles": "加载部件包..." }, @@ -3667,22 +4092,23 @@ "settings": "设置", "advanced": "高级", "title": "标题", - "title-tooltip": "标题提示框", - "general-settings": "基础设置", + "title-tooltip": "标题 Tooltip", + "general-settings": "基本设置", "display-title": "显示标题", "drop-shadow": "阴影", "enable-fullscreen": "启用全屏", "background-color": "背景颜色", "text-color": "文字颜色", - "padding": "内边距", - "margin": "外边距", - "widget-style": "部件风格", + "padding": "填充", + "margin": "边缘", + "widget-style": "部件样式", "widget-css": "部件CSS", - "title-style": "标题风格", + "title-style": "标题样式", "mobile-mode-settings": "移动端设置", "order": "顺序", "height": "高度", - "mobile-hide": "移动端隐藏部件", + "mobile-hide": "在移动端隐藏部件", + "desktop-hide": "在桌面端隐藏部件", "units": "特殊符号展示值", "decimals": "浮点数后的位数", "timewindow": "时间窗口", @@ -3691,14 +4117,14 @@ "legend": "图例", "display-legend": "显示图例", "datasources": "数据源", - "maximum-datasources": "最大允许{ count, plural, =1 {1个数据源。} other {#个数据源。} }", - "timeseries-key-error": "应至少指定一个时间序列数据密钥", + "maximum-datasources": "最大允许 { count, plural, =1 {1 个数据源。} other {# 个数据源。} }", + "timeseries-key-error": "需要至少指定一个 timeseries 数据键", "datasource-type": "类型", "datasource-parameters": "参数", "remove-datasource": "移除数据源", "add-datasource": "添加数据源", "target-device": "目标设备", - "alarm-source": "警报源", + "alarm-source": "告警源", "actions": "动作", "action": "动作", "add-action": "添加动作", @@ -3710,22 +4136,22 @@ "action-name-required": "动作名称必填。", "action-name-not-unique": "动作名称已经存在。
相同动作源的动作名称必须唯一。", "action-icon": "图标", - "show-hide-action-using-function": "使用函数显示/隐藏操作", + "show-hide-action-using-function": "使用函数显示/隐藏动作", "action-type": "类型", "action-type-required": "类型必填", "edit-action": "编辑动作", - "delete-action": "删除删除", + "delete-action": "删除动作", "delete-action-title": "删除部件动作", - "delete-action-text": "确定要删除部件动作'{{actionName}}'吗?", + "delete-action-text": "确定要删除部件动作'{{actionName}}' 吗?", "title-icon": "标题图标", "display-icon": "显示标题图标", "icon-color": "图标颜色", "icon-size": "图标大小", "advanced-settings": "高级设置", "data-settings": "数据设置", - "no-data-display-message": "\"无数据显示\" 替代消息", + "no-data-display-message": "\"没有数据可显示\" 替代信息", "data-page-size": "每个数据源的最大实体数", - "settings-component-not-found": "找不到选择器'{{selector}}'的每个数据源设置窗体组件的最大实体数" + "settings-component-not-found": "未找到设置的表单组件选择器 '{{selector}}'" }, "widget-type": { "import": "导入部件类型", @@ -3740,105 +4166,106 @@ "common-settings": "通用设置", "enable-stacking-mode": "启用堆叠模式", "line-shadow-size": "线条阴影大小", - "display-smooth-lines": "显示光滑(弯曲)线条", - "default-bar-width": "默认条形宽度不聚合数据(毫秒)", - "bar-alignment": "条形对齐", + "display-smooth-lines": "显示平滑(曲线)线条", + "default-bar-width": "非聚合数据的默认条形图宽度(毫秒)", + "bar-alignment": "Bar 对齐方式", "bar-alignment-left": "左", "bar-alignment-right": "右", - "bar-alignment-center": "中", + "bar-alignment-center": "居中", "default-font-size": "默认字体大小", "default-font-color": "默认字体颜色", - "thresholds-line-width": "所有线条默认宽度", - "tooltip-settings": "提示栏设置", - "show-tooltip": "显示提示栏", - "hover-individual-points": "坐标悬停显示", - "show-cumulative-values": "在堆叠模式下显示累加数据", - "hide-zero-false-values": "隐藏提示栏中0或false值", - "tooltip-value-format-function": "提示栏格式化函数", - "grid-settings": "网格设置", - "show-vertical-lines": "显示垂直参考线", - "show-horizontal-lines": "显示水平参考线", - "grid-outline-border-width": "网格边框宽度(像系)", - "primary-color": "边框颜色", + "thresholds-line-width": "所有阈值的默认线条宽度", + "tooltip-settings": "Tooltip 设置", + "show-tooltip": "显示 Tooltip", + "hover-individual-points": "悬停在单个数据点上", + "show-cumulative-values": "在堆叠模式下显示累积值", + "hide-zero-false-values": "Tooltip 隐藏 zero/false", + "tooltip-value-format-function": "Tooltip 值的格式化函数", + "grid-settings": "网格线设置", + "show-vertical-lines": "显示垂直线条", + "show-horizontal-lines": "显示水平线条", + "grid-outline-border-width": "网格轮廓/边框宽度(px)", + "primary-color": "主要颜色", "background-color": "背景颜色", - "ticks-color": "参考线颜色", + "ticks-color": "刻度颜色", "xaxis-settings": "X轴设置", - "axis-title": "标题", - "xaxis-tick-labels-settings": "标签设置", - "show-tick-labels": "显示标签", - "yaxis-settings": "y轴设置", - "min-scale-value": "最小值", - "max-scale-value": "最大值", - "yaxis-tick-labels-settings": "标签设置", - "tick-step-size": "步长", - "number-of-decimals": "小数位数", + "axis-title": "轴标题", + "xaxis-tick-labels-settings": "X轴刻度标签设置", + "show-tick-labels": "显示轴刻度标签", + "yaxis-settings": "Y轴设置", + "min-scale-value": "刻度上的最小值", + "max-scale-value": "刻度上的最大值", + "yaxis-tick-labels-settings": "Y轴刻度标签设置", + "tick-step-size": "刻度之间的步长", + "number-of-decimals": "要显示的小数位数", "ticks-formatter-function": "刻度格式化函数", "comparison-settings": "比较设置", "enable-comparison": "启用比较", - "time-for-comparison": "比较时期", - "time-for-comparison-previous-interval": "历史时间间隔(默认)", + "time-for-comparison": "比较期间", + "time-for-comparison-previous-interval": "上一个时间段 (默认)", "time-for-comparison-days": "一天前", "time-for-comparison-weeks": "一周前", "time-for-comparison-months": "一月前", "time-for-comparison-years": "一年前", - "time-for-comparison-custom-interval": "自定义间隔", - "custom-interval-value": "自定义间隔值(毫秒)", - "comparison-x-axis-settings": "比较x轴设置", - "axis-position": "位置", - "axis-position-top": "上面(默认)", - "axis-position-bottom": "下面", + "time-for-comparison-custom-interval": "自定义时间间隔", + "custom-interval-value": "自定义时间间隔值 (毫秒)", + "comparison-x-axis-settings": "比较X轴设置", + "axis-position": "轴位置", + "axis-position-top": "顶部 (默认)", + "axis-position-bottom": "底部", "custom-legend-settings": "自定义图例设置", - "enable-custom-legend": "启用自定义图例(你可以使用属性/时间序列标签)", + "enable-custom-legend": "启用自定义图例 (这将允许您在键标签中使用属性/Timeseries值)", "key-name": "键名", - "key-name-required": "键名必填", + "key-name-required": "键名是必需的", "key-type": "键类型", "key-type-attribute": "属性", - "key-type-timeseries": "时间序列", - "label-keys-list": "在标签中使用键列表", - "no-label-keys": "没有配置键", - "add-label-key": "添加键", - "line-width": "线条宽度", + "key-type-timeseries": "Timeseries", + "label-keys-list": "要在标签中使用的键列表", + "no-label-keys": "未配置键", + "add-label-key": "添加新键", + "line-width": "线宽", "color": "颜色", - "data-is-hidden-by-default": "默认隐藏数据", - "disable-data-hiding": "禁用用数据隐藏", + "data-is-hidden-by-default": "默认情况下隐藏数据", + "disable-data-hiding": "禁用数据隐藏", "remove-from-legend": "从图例中移除数据键", - "exclude-from-stacking": "从堆叠模式排除", - "line-settings": "线条设置", - "show-line": "显示线条", - "fill-line": "线条填充", + "exclude-from-stacking": "从堆叠中排除(仅适用于'堆叠'模式)", + "line-settings": "线设置", + "show-line": "显示线", + "fill-line": "填充线", + "fill-line-opacity": "填充透明度", "points-settings": "点设置", "show-points": "显示点", - "points-line-width": "宽度", - "points-radius": "圆角", - "point-shape": "形状", - "point-shape-circle": "圆形", - "point-shape-cross": "十字形", + "points-line-width": "点的线宽", + "points-radius": "点的半径", + "point-shape": "点形状", + "point-shape-circle": "圆", + "point-shape-cross": "十字", "point-shape-diamond": "菱形", "point-shape-square": "矩形", "point-shape-triangle": "三角形", - "point-shape-custom": "自定义", - "point-shape-draw-function": "绘制函数", - "show-separate-axis": "显示独立轴", - "axis-position-left": "左", - "axis-position-right": "右", + "point-shape-custom": "自定义函数", + "point-shape-draw-function": "点形状绘制函数", + "show-separate-axis": "显示分离的轴", + "axis-position-left": "左侧", + "axis-position-right": "右侧", "thresholds": "阈值", - "no-thresholds": "没有配置阈值", - "add-threshold": "添加阈值", - "show-values-for-comparison": "显示比较的历史值", - "comparison-values-label": "历史数什标签", + "no-thresholds": "未配置阈值", + "add-threshold": "添加新阈值", + "show-values-for-comparison": "显示历史比较值", + "comparison-values-label": "历史值标签", "threshold-settings": "阈值设置", - "use-as-threshold": "将值作为阈值", - "threshold-line-width": "阈值线条宽度", + "use-as-threshold": "使用键值作为阈值", + "threshold-line-width": "阈值线宽", "threshold-color": "阈值颜色", - "common-pie-settings": "饼图设置", - "radius": "圆角", - "inner-radius": "内圆角", + "common-pie-settings": "常用饼图设置", + "radius": "半径", + "inner-radius": "内部半径", "tilt": "倾斜", - "stroke-settings": "斜线设置", - "width-pixels": "宽度(像素)", + "stroke-settings": "描边设置", + "width-pixels": "宽度 (px)", "show-labels": "显示标签", "animation-settings": "动画设置", - "animated-pie": "启用动画", + "animated-pie": "启用饼图动画 (实验性)", "border-settings": "边框设置", "border-width": "边框宽度", "border-color": "边框颜色", @@ -3848,11 +4275,11 @@ }, "dashboard-state": { "dashboard-state-settings": "仪表板状态设置", - "dashboard-state": "仪表板状态ID", - "autofill-state-layout": "自动填充状态布局高度", - "default-margin": "部件默认外边距", - "default-background-color": "默认背景色", - "sync-parent-state-params": "同步父仪表板状态参数" + "dashboard-state": "仪表板状态 ID", + "autofill-state-layout": "自动填充状态布局默认高度", + "default-margin": "默认部件边距", + "default-background-color": "默认背景颜色", + "sync-parent-state-params": "与父仪表板同步状态参数" }, "date-range-navigator": { "date-range-picker-settings": "日期范围选择设置", @@ -3872,8 +4299,8 @@ "interval-three-months": "3个月", "interval-six-months": "6个月", "step-settings": "步长设置", - "hide-step-size": "步长设置", - "initial-step-size": "初始步长大小", + "hide-step-size": "隐藏步长", + "initial-step-size": "初始步长", "hide-labels": "隐藏标签", "use-session-storage": "使用会话存储", "localizationMap": { @@ -3929,7 +4356,7 @@ "Custom interval": "自定义间隔", "Interval": "间隔", "Step size": "步长", - "Ok": "确定" + "Ok": "Ok" } }, "entities-hierarchy": { @@ -3950,9 +4377,9 @@ }, "gateway": { "general-settings": "基础设置", - "widget-title": "部件村题", - "default-archive-file-name": "默认文件名称", - "device-type-for-new-gateway": "网关设备类型", + "widget-title": "部件标题", + "default-archive-file-name": "默认文件名", + "device-type-for-new-gateway": "新网关的设备类型", "messages-settings": "消息设置", "save-config-success-message": "配置保存成功消息", "device-name-exists-message": "设备名称已经存在消消息", @@ -3964,122 +4391,122 @@ }, "gauge": { "default-color": "默认颜色", - "radial-gauge-settings": "仪表盘设置", + "radial-gauge-settings": "径向量规设置", "ticks-settings": "刻度设置", "min-value": "最小值", "max-value": "最大值", - "start-ticks-angle": "起始角度", - "ticks-angle": "结束角度", - "major-ticks-count": "主要刻度数量", - "major-ticks-color": "主要刻度颜色", - "minor-ticks-count": "次要刻度数量", - "minor-ticks-color": "次要刻度颜色", - "tick-numbers-font": "字体", - "unit-title-settings": "标题设置", - "show-unit-title": "显示标题", - "unit-title": "单位", - "title-font": "字体", + "start-ticks-angle": "刻度起始角度", + "ticks-angle": "刻度角度", + "major-ticks-count": "主刻度数量", + "major-ticks-color": "主刻度颜色", + "minor-ticks-count": "次刻度数量", + "minor-ticks-color": "次刻度颜色", + "tick-numbers-font": "刻度数字字体", + "unit-title-settings": "单位标题设置", + "show-unit-title": "显示单位标题", + "unit-title": "单位标题", + "title-font": "标题文字字体", "units-settings": "单位设置", - "units-font": "字体", - "value-box-settings": "数值设置", + "units-font": "单位文字字体", + "value-box-settings": "数值框设置", "show-value-box": "显示数值框", - "value-int": "长度", - "value-font": "字体", - "value-box-rect-stroke-color": "数值框矩形颜色", - "value-box-rect-stroke-color-end": "数值框矩形颜色渐变", - "value-box-background-color": "数值框背景色", + "value-int": "整数部分的位数", + "value-font": "数值文字字体", + "value-box-rect-stroke-color": "数值框矩形描边颜色", + "value-box-rect-stroke-color-end": "数值框矩形描边颜色 - 渐变结束", + "value-box-background-color": "数值框背景颜色", "value-box-shadow-color": "数值框阴影颜色", - "plate-settings": "表盘设置", - "show-plate-border": "显示边框", - "plate-color": "背景色", + "plate-settings": "背景板设置", + "show-plate-border": "显示背景板边框", + "plate-color": "背景板颜色", "needle-settings": "指针设置", - "needle-circle-size": "针圈大小", - "needle-color": "颜色", - "needle-color-end": "渐变色", - "needle-color-shadow-up": "针头颜色", - "needle-color-shadow-down": "阴影颜色", - "highlights-settings": "色块设置", - "highlights-width": "色块宽度", - "highlights": "色块", - "highlight-from": "从", - "highlight-to": "到", + "needle-circle-size": "指针圆圈尺寸", + "needle-color": "指针颜色", + "needle-color-end": "指针颜色 - 渐变结束", + "needle-color-shadow-up": "指针上半部分阴影颜色", + "needle-color-shadow-down": "指针下半部分阴影颜色", + "highlights-settings": "高亮设置", + "highlights-width": "高亮宽度", + "highlights": "高亮", + "highlight-from": "起始值", + "highlight-to": "终止值", "highlight-color": "颜色", - "no-highlights": "没有配置色块", - "add-highlight": "添加色块", + "no-highlights": "未配置高亮", + "add-highlight": "添加高亮", "animation-settings": "动画设置", "enable-animation": "启用动画", - "animation-duration": "动画时长", - "animation-rule": "动画类型", - "animation-linear": "线形", - "animation-quad": "方形", - "animation-quint": "五角形", - "animation-cycle": "环形", - "animation-bounce": "循环", - "animation-elastic": "弹跳", - "animation-dequad": "Dequad", - "animation-dequint": "Dequint", - "animation-decycle": "Decycle", - "animation-debounce": "Debounce", - "animation-delastic": "Delastic", - "linear-gauge-settings": "线型设置", - "bar-stroke-width": "量规宽度", - "bar-stroke-color": "量规颜色", - "bar-background-color": "量规背景色", - "bar-background-color-end": "量规背景渐变色", + "animation-duration": "动画持续时间", + "animation-rule": "动画规则", + "animation-linear": "线性", + "animation-quad": "二次方", + "animation-quint": "五次方", + "animation-cycle": "循环", + "animation-bounce": "弹跳", + "animation-elastic": "弹性", + "animation-dequad": "二次方反向", + "animation-dequint": "五次方反向", + "animation-decycle": "循环反向", + "animation-debounce": "弹跳反向", + "animation-delastic": "弹性反向", + "linear-gauge-settings": "线性量规设置", + "bar-stroke-width": "条形图描边宽度", + "bar-stroke-color": "条形图描边颜色", + "bar-background-color": "量规条形图背景颜色", + "bar-background-color-end": "条形图背景颜色 - 渐变结束", "progress-bar-color": "进度条颜色", - "progress-bar-color-end": "进度条渐变色", - "major-ticks-names": "主要刻度名称", - "show-stroke-ticks": "显示主要刻度", - "major-ticks-font": "主要刻度字体", + "progress-bar-color-end": "进度条颜色 - 渐变结束", + "major-ticks-names": "主刻度名称", + "show-stroke-ticks": "显示刻度描边", + "major-ticks-font": "主刻度字体", "border-color": "边框颜色", "border-width": "边框宽度", - "needle-circle-color": "指针颜色", - "animation-target": "动画触发", + "needle-circle-color": "指针圆圈颜色", + "animation-target": "动画目标", "animation-target-needle": "指针", - "animation-target-plate": "表盘", - "common-settings": "通用设置", - "gauge-type": "仪表盘类型", + "animation-target-plate": "背景板", + "common-settings": "通用量规设置", + "gauge-type": "量规类型", "gauge-type-arc": "弧形", - "gauge-type-donut": "环形", - "gauge-type-horizontal-bar": "水平", - "gauge-type-vertical-bar": "垂直", - "donut-start-angle": "角度从", - "bar-settings": "条形设置", - "relative-bar-width": "相对条宽", - "neon-glow-brightness": "霓虹灯效果亮度,(0-100),0-禁用效果", - "stripes-thickness": "条纹的厚度0是没有条纹", - "rounded-line-cap": "显示圆形线盖", - "bar-color-settings": "条颜色设置", - "use-precise-level-color-values": "使用精确的颜色值", - "bar-colors": "从下到上的条形颜色", + "gauge-type-donut": "甜甜圈", + "gauge-type-horizontal-bar": "水平条形", + "gauge-type-vertical-bar": "垂直条形", + "donut-start-angle": "起始角度", + "bar-settings": "条形图设置", + "relative-bar-width": "相对条形宽度", + "neon-glow-brightness": "霓虹灯光效亮度,(0-100),0 - 禁用效果", + "stripes-thickness": "条纹的厚度,0 - 无条纹", + "rounded-line-cap": "显示圆角线帽", + "bar-color-settings": "条形图颜色设置", + "use-precise-level-color-values": "使用精确的颜色级别", + "bar-colors": "条形图颜色,从低到高", "color": "颜色", - "no-bar-colors": "没有配置条形颜色", - "add-bar-color": "添加条形颜色", - "from": "从", - "to": "到", - "fixed-level-colors": "连界值条形颜色", - "gauge-title-settings": "仪表盘标题设置", - "show-gauge-title": "显示仪表盘标题", - "gauge-title": "仪表盘标题", - "gauge-title-font": "仪表盘标题", + "no-bar-colors": "未配置条形图颜色", + "add-bar-color": "添加条形图颜色", + "from": "起始值", + "to": "终止值", + "fixed-level-colors": "使用边界值的条形图颜色", + "gauge-title-settings": "量规标题设置", + "show-gauge-title": "显示量规标题", + "gauge-title": "量规标题", + "gauge-title-font": "量规标题字体", "unit-title-and-timestamp-settings": "单位标题和时间戳设置", "show-timestamp": "显示值时间戳", - "timestamp-format": "时间戳格式化", - "label-font": "标签字体显示值", + "timestamp-format": "时间戳格式", + "label-font": "显示在数值下方的标签字体", "value-settings": "数值设置", - "show-value": "显示文本值", + "show-value": "显示数值文本", "min-max-settings": "最小/最大标签设置", - "show-min-max": "显示最小值和最大值", - "min-max-font": "标签最大和最小字体", + "show-min-max": "显示最小和最大值", + "min-max-font": "最小和最大标签字体", "show-ticks": "显示刻度", "tick-width": "刻度宽度", "tick-color": "刻度颜色", "tick-values": "刻度值", - "no-tick-values": "没有配置刻度值", + "no-tick-values": "未配置刻度值", "add-tick-value": "添加刻度值" }, "gpio": { - "pin": "Pin", + "pin": "引脚", "label": "标签", "row": "行", "column": "列", @@ -4087,27 +4514,27 @@ "panel-settings": "面板设置", "background-color": "背景颜色", "gpio-switches": "GPIO开关", - "no-gpio-switches": "没有配置GPIO开关", - "add-gpio-switch": "添加开关", + "no-gpio-switches": "未配置GPIO开关", + "add-gpio-switch": "添加GPIO开关", "gpio-status-request": "GPIO状态请求", - "method-name": "方法名", - "method-body": "方法体", - "gpio-status-change-request": "GPIO状态更改请求", - "parse-gpio-status-function": "GPIO状态解析函数", - "gpio-leds": "led", - "no-gpio-leds": "没有配置led", - "add-gpio-led": "添加LED" + "method-name": "方法名称", + "method-body": "方法内容", + "gpio-status-change-request": "GPIO状态变更请求", + "parse-gpio-status-function": "解析GPIO状态函数", + "gpio-leds": "GPIO LED", + "no-gpio-leds": "未配置GPIO LED", + "add-gpio-led": "添加GPIO LED" }, "html-card": { "html": "HTML", "css": "CSS" }, "input-widgets": { - "attribute-not-allowed": "属性参数不能在此小部件中使用", + "attribute-not-allowed": "属性参数不能在此部件中使用", "blocked-location": "在浏览器中阻止地理位置", "claim-device": "声明设备", "claim-failed": "声明设备失败!", - "claim-not-found": "找不到设备!", + "claim-not-found": "未找到设备!", "claim-successful": "设备已成功申领!", "date": "日期", "device-name": "设备名称", @@ -4115,7 +4542,7 @@ "discard-changes": "放弃更改", "entity-attribute-required": "实体属性必填", "entity-coordinate-required": "纬度和经度两个字段都是必需的", - "entity-timeseries-required": "实体时间序列必填", + "entity-timeseries-required": "实体 Timeseries 必填", "get-location": "获取当前位置", "invalid-date": "无效日期", "latitude": "纬度", @@ -4128,179 +4555,185 @@ "no-coordinate-specified": "未指定纬度/经度的数据键", "no-entity-selected": "未选择实体", "no-image": "没有图像", - "no-support-geolocation": "你的浏览器不支持地理定位", - "no-support-web-camera": "你的浏览器不支持摄像头", + "no-support-geolocation": "您的浏览器不支持地理定位", + "no-support-web-camera": "您的浏览器不支持摄像头", "enable-https-use-widget": "请启用HTTPS以使用此部件", - "no-found-your-camera": "找不到摄像机", + "no-found-your-camera": "未找到摄像机", "no-permission-camera": "权限被用户拒绝/此站点无权使用摄像机", - "no-timeseries-selected": "未选择时间序列", + "no-timeseries-selected": "未选择 Timeseries", "secret-key": "密钥", "secret-key-required": "密钥必填", "switch-attribute-value": "切换实体属性值", "switch-camera": "切换摄像机", - "switch-timeseries-value": "切换实体时间序列值", + "switch-timeseries-value": "切换实体 Timeseries 值", "take-photo": "拍照", "time": "时间", - "timeseries-not-allowed": "时间序列参数不能用于此部件", + "timeseries-not-allowed": "Timeseries 参数不能用于此部件", "update-failed": "更新失败", "update-successful": "更新成功", "update-attribute": "更新属性", - "update-timeseries": "更新时间序列", - "value": "数据值", - "general-settings": "基础设置", + "update-timeseries": "更新 Timeseries", + "value": "数值", + "general-settings": "通用设置", "widget-title": "部件标题", - "claim-button-label": "声称按钮标签", - "show-secret-key-field": "显示“密钥”输入字段", + "claim-button-label": "认领按钮标签", + "show-secret-key-field": "显示'秘钥'输入字段", "labels-settings": "标签设置", "show-labels": "显示标签", - "device-name-label": "设备名称设备名称输入字段的标签输入字段", - "secret-key-label": "设备名称设备密钥输入字段的标签输入字段", - "messages-settings": "信息设置", - "claim-device-success-message": "设备声明成功的文本信息", - "claim-device-not-found-message": "设备声明未找到信息", - "claim-device-failed-message": "设备声明失败的文本信息", - "claim-device-name-required-message": "设备声明“设备名称”必填的错误信息", - "claim-device-secret-key-required-message": "设备声明“设备密钥”必填的错误信息", + "device-name-label": "设备名称输入字段标签", + "secret-key-label": "秘钥输入字段标签", + "messages-settings": "消息设置", + "claim-device-success-message": "设备认领成功文本消息", + "claim-device-not-found-message": "设备未找到文本消息", + "claim-device-failed-message": "设备认领失败文本消息", + "claim-device-name-required-message": "'设备名称必填'错误消息", + "claim-device-secret-key-required-message": "'秘钥必填'错误消息", "show-label": "显示标签", "label": "标签", "required": "必填", - "required-error-message": "错误信息“必填”", - "show-result-message": "显示结果信息", - "integer-field-settings": "Integer字段设置", - "min-value": "最大值", - "max-value": "最小值", - "double-field-settings": "Double字段设置", - "text-field-settings": "Text字段设置", + "required-error-message": "'必填'错误消息", + "show-result-message": "显示结果消息", + "integer-field-settings": "整数字段设置", + "min-value": "最小值", + "max-value": "最大值", + "double-field-settings": "双精度字段设置", + "text-field-settings": "文本字段设置", "min-length": "最小长度", "max-length": "最大长度", - "checkbox-settings": "Checkbox设置", - "true-label": "Checked标签", - "false-label": "Unchecked标签", - "image-input-settings": "Image字段设置", + "checkbox-settings": "复选框设置", + "true-label": "选中标签", + "false-label": "未选中标签", + "image-input-settings": "图像输入设置", "display-preview": "显示预览", "display-clear-button": "显示清除按钮", "display-apply-button": "显示应用按钮", - "display-discard-button": "显示弃用按钮", - "datetime-field-settings": "Date/time字段设置", - "display-time-input": "显示time输入", - "latitude-key-name": "Latitude键名", - "longitude-key-name": "Longitude键名", - "show-get-location-button": "显示“获取当前位置”按钮", + "display-discard-button": "显示放弃按钮", + "datetime-field-settings": "日期/时间字段设置", + "display-time-input": "显示时间输入", + "latitude-key-name": "纬度键名称", + "longitude-key-name": "经度键名称", + "show-get-location-button": "显示'获取当前位置'按钮", "use-high-accuracy": "使用高精度", - "location-fields-settings": "位置设置", - "latitude-label": "latitude标签", - "longitude-label": "longitude标签", - "input-fields-alignment": "对齐方式", + "location-fields-settings": "位置字段设置", + "latitude-label": "纬度标签", + "longitude-label": "经度标签", + "input-fields-alignment": "输入字段对齐方式", "input-fields-alignment-column": "列(默认)", "input-fields-alignment-row": "行", - "latitude-field-required": "Latitude字段必填", - "longitude-field-required": "Longitude字段必填", + "latitude-field-required": "纬度字段必填", + "longitude-field-required": "经度字段必填", "attribute-settings": "属性设置", "widget-mode": "部件模式", "widget-mode-update-attribute": "更新属性", - "widget-mode-update-timeseries": "更新时间序列", + "widget-mode-update-timeseries": "更新 Timeseries", "attribute-scope": "属性范围", - "attribute-scope-server": "服务端属性", + "attribute-scope-server": "服务器属性", "attribute-scope-shared": "共享属性", - "value-required": "启用数值必填", - "image-settings": "图片设置", - "image-format": "图片格式", + "value-required": "值必填", + "image-settings": "图像设置", + "image-format": "图像格式", "image-format-jpeg": "JPEG", "image-format-png": "PNG", "image-format-webp": "WEBP", - "image-quality": "图片压缩", - "max-image-width": "最大宽度", - "max-image-height": "最大高度", - "action-buttons": "动作按钮", - "show-action-buttons": "显示动作按钮", - "update-all-values": "更新所有值", - "save-button-label": "“保存”按钮标签", - "reset-button-label": "“撤销”按钮标签", + "image-quality": "使用有损压缩的图像质量,比如JPEG和WEBP", + "max-image-width": "最大图像宽度", + "max-image-height": "最大图像高度", + "action-buttons": "操作按钮", + "show-action-buttons": "显示操作按钮", + "update-all-values": "更新所有值,而不仅仅是修改过的值", + "save-button-label": "'保存'按钮标签", + "reset-button-label": "'撤销'按钮标签", "group-settings": "分组设置", - "show-group-title": "显示分组标题", + "show-group-title": "显示字段组的标题,与不同实体相关联", "group-title": "分组标题", - "fields-alignment": "对齐字段", + "fields-alignment": "字段对齐方式", "fields-alignment-row": "行(默认)", "fields-alignment-column": "列", - "fields-in-row": "行中的字段数", - "option-value": "值(为创建空选项编写“null”)", + "fields-in-row": "每行字段数", + "option-value": "值(创建空选项时填写'null')", "option-label": "标签", "hide-input-field": "隐藏输入字段", - "datakey-type": "Datakey类型", - "datakey-type-server": "服务端属性(默认)", + "datakey-type": "数据键类型", + "datakey-type-server": "服务器属性(默认)", "datakey-type-shared": "共享属性", - "datakey-type-timeseries": "时间序列", - "datakey-value-type": "Datakey值类型", - "datakey-value-type-string": "String", - "datakey-value-type-double": "Double", - "datakey-value-type-integer": "Integer", - "datakey-value-type-boolean-checkbox": "Boolean(多选)", - "datakey-value-type-boolean-switch": "Boolean(开关)", - "datakey-value-type-date-time": "Date & Time", - "datakey-value-type-date": "Date", - "datakey-value-type-time": "Time", - "datakey-value-type-select": "Select", - "value-is-required": "值是必填", + "datakey-type-timeseries": "Timeseries", + "datakey-value-type": "数据键值类型", + "datakey-value-type-string": "字符串", + "datakey-value-type-double": "双精度", + "datakey-value-type-integer": "整数", + "datakey-value-type-json": "JSON", + "datakey-value-type-boolean-checkbox": "布尔值(复选框)", + "datakey-value-type-boolean-switch": "布尔值(开关)", + "datakey-value-type-date-time": "日期和时间", + "datakey-value-type-date": "日期", + "datakey-value-type-time": "时间", + "datakey-value-type-select": "选择", + "value-is-required": "值必填", "ability-to-edit-attribute": "编辑属性的能力", "ability-to-edit-attribute-editable": "可编辑(默认)", "ability-to-edit-attribute-disabled": "禁用", "ability-to-edit-attribute-readonly": "只读", - "disable-on-datakey-name": "禁用另一个datakey的错误值(指定datakey名称)", - "slide-toggle-settings": "滑块设置", - "slide-toggle-label-position": "滑动标签位置", - "slide-toggle-label-position-after": "后面", - "slide-toggle-label-position-before": "前面", - "select-options": "下拉选项", - "no-select-options": "没有配置下拉选项", - "add-select-option": "添加下接选项", - "numeric-field-settings": "数字字段设置", - "step-interval": "步长间隔", - "error-messages": "错误信息", - "min-value-error-message": "“最小值”错误信息", - "max-value-error-message": "“最大值”错误信息", - "invalid-date-error-message": "“无效日期”错误消息", + "disable-on-datakey-name": "在另一个数据键的值为假时禁用(指定数据键名称)", + "slide-toggle-settings": "滑动开关设置", + "slide-toggle-label-position": "滑动开关标签位置", + "slide-toggle-label-position-after": "之后", + "slide-toggle-label-position-before": "之前", + "select-options": "选择选项", + "no-select-options": "没有配置选择选项", + "add-select-option": "添加选择选项", + "numeric-field-settings": "数值字段设置", + "step-interval": "值之间的步长间隔", + "error-messages": "错误消息", + "min-value-error-message": "'最小值'错误消息", + "max-value-error-message": "'最大值'错误消息", + "invalid-date-error-message": "'无效日期'错误消息", + "invalid-JSON-error-message": "'无效JSON'错误消息", "icon-settings": "图标设置", - "use-custom-icon": "自定义图标", - "input-cell-icon": "输入单元格之前显示的图标", + "dialog-editor-settings": "对话框编辑器设置", + "use-custom-icon": "使用自定义图标", + "input-cell-icon": "输入单元格前显示的图标", "value-conversion-settings": "值转换设置", "get-value-settings": "获取值设置", - "use-get-value-function": "启用获取值函数", - "get-value-function": "获取值函数", + "use-get-value-function": "使用getValue函数", + "get-value-function": "getValue函数", "set-value-settings": "设置值设置", - "use-set-value-function": "启用值值函数", - "set-value-function": "启用函数" + "use-set-value-function": "使用setValue函数", + "set-value-function": "setValue函数", + "json-invalid": "JSON值格式无效", + "title": "标题", + "cancel-button-label": "'取消'按钮标签" }, - "invalid-qr-code-text": "无效的二维码文本。", + "invalid-qr-code-text": "无效的二维码输入文本,输入应为字符串类型。", "qr-code": { - "use-qr-code-text-function": "启用二维码文本函数", - "qr-code-text-pattern": "二维码文本模式(例如:${entityName}|${keyName}一些文本。')", - "qr-code-text-pattern-hint": "二维码文本模式使用实体别名中第一个找到的键的值。", - "qr-code-text-pattern-required": "二维码文本必填。", + "use-qr-code-text-function": "使用二维码文本函数", + "qr-code-text-pattern": "二维码文本模式(例如'${entityName} | ${keyName} - some text.')", + "qr-code-text-pattern-hint": "二维码文本模式将使用实体别名中的实体中找到的第一个键的值。", + "qr-code-text-pattern-required": "必须提供二维码文本模式。", "qr-code-text-function": "二维码文本函数" }, "label-widget": { "label-pattern": "模式", - "label-pattern-hint": "提示文本,如:'${keyName}单位。'或${#<key index>}单位'", - "label-pattern-required": "模式必填", - "label-position": "相对位置", + "label-pattern-hint": "提示:例如 'Text ${keyName} units.' or ${#<key index>} units'", + "label-pattern-required": "必须提供模式", + "label-position": "位置(相对于背景的百分比)", "x-pos": "X", "y-pos": "Y", - "background-color": "背景色", + "background-color": "背景颜色", "font-settings": "字体设置", - "background-image": "背景图片", + "background-image": "背景图像", "labels": "标签", - "no-labels": "没有配置标签", + "no-labels": "无配置的标签", "add-label": "添加标签" }, "navigation": { "title": "标题", "navigation-path": "导航路径", - "filter-type": "过滤类型", - "filter-type-all": "所有内容", - "filter-type-include": "包含内容", - "filter-type-exclude": "排除内容", - "items": "内容", - "enter-urls-to-filter": "输入URL进行过滤..." + "filter-type": "筛选类型", + "filter-type-all": "所有项目", + "filter-type-include": "包含项目", + "filter-type-exclude": "排除项目", + "items": "项目", + "enter-urls-to-filter": "输入要筛选的URL..." }, "persistent-table": { "rpc-id": "RPC ID", @@ -4308,157 +4741,157 @@ "method": "方法", "params": "参数", "created-time": "创建时间", - "expiration-time": "到期时间", - "retries": "重试", + "expiration-time": "过期时间", + "retries": "重试次数", "status": "状态", - "filter": "过滤", + "filter": "筛选", "refresh": "刷新", "add": "添加RPC请求", "details": "详情", "delete": "删除", - "delete-request-title": "删除持续化RPC请求", - "delete-request-text": "您确定要删除请求吗?", - "details-title": "详情RPC ID: ", + "delete-request-title": "删除持久化RPC请求", + "delete-request-text": "确定要删除请求吗?", + "details-title": "详情 RPC ID: ", "additional-info": "附加信息", "response": "响应", "any-status": "任何状态", "rpc-status-list": "RPC状态列表", - "no-request-prompt": "无显示请求", + "no-request-prompt": "没有要显示的请求", "send-request": "发送请求", - "add-title": "创建持续化RPC请求", - "method-error": "方法名必填。", + "add-title": "创建持久化RPC请求", + "method-error": "必须提供方法。", "timeout-error": "最小超时值为5000(5秒)。", - "white-space-error": "不允许使用空白。", + "white-space-error": "不允许使用空格。", "rpc-status": { - "QUEUED": "QUEUED", - "SENT": "SENT", - "DELIVERED": "DELIVERED", - "SUCCESSFUL": "SUCCESSFUL", - "TIMEOUT": "TIMEOUT", - "EXPIRED": "EXPIRED", - "FAILED": "FAILED" + "QUEUED": "已排队", + "SENT": "已发送", + "DELIVERED": "已送达", + "SUCCESSFUL": "成功", + "TIMEOUT": "超时", + "EXPIRED": "已过期", + "FAILED": "失败" }, "rpc-search-status-all": "所有", "message-types": { - "false": "Two-way", - "true": "One-way" + "false": "双向", + "true": "单向" }, - "general-settings": "基础设置", - "enable-filter": "启用过滤", - "enable-sticky-header": "滚动时显示标头", - "enable-sticky-action": "滚动时显示动作列", + "general-settings": "常规设置", + "enable-filter": "启用筛选", + "enable-sticky-header": "滚动时显示标题栏", + "enable-sticky-action": "滚动时显示操作列", "display-request-details": "显示请求详情", "allow-send-request": "允许发送RPC请求", "allow-delete-request": "允许删除请求", - "columns-settings": "设置列", - "display-columns": "显示列", + "columns-settings": "列设置", + "display-columns": "要显示的列", "column": "列", - "no-columns-found": "没有配置列", - "no-columns-matching": "'{{column}}'找不到。" + "no-columns-found": "找不到列", + "no-columns-matching": "未找到 '{{column}}'。" }, "rpc": { - "value-settings": "设置值", + "value-settings": "值设置", "initial-value": "初始值", - "retrieve-value-settings": "恢复开/关设置", - "retrieve-value-method": "恢复方法", - "retrieve-value-method-none": "无需恢复", - "retrieve-value-method-rpc": "RPC方法恢复", - "retrieve-value-method-attribute": "订阅属性", - "retrieve-value-method-timeseries": "订阅时间序列", - "attribute-value-key": "属性key", - "timeseries-value-key": "时序key", - "get-value-method": "RPC获取方法", - "parse-value-function": "解析函数", + "retrieve-value-settings": "获取开/关值设置", + "retrieve-value-method": "使用方法获取值", + "retrieve-value-method-none": "不获取", + "retrieve-value-method-rpc": "调用RPC获取值方法", + "retrieve-value-method-attribute": "订阅属性获取值", + "retrieve-value-method-timeseries": "订阅时间序列获取值", + "attribute-value-key": "属性键", + "timeseries-value-key": "Timeseries键", + "get-value-method": "RPC获取值方法", + "parse-value-function": "解析值的函数", "update-value-settings": "更新值设置", - "set-value-method": "RPC获取方法", - "convert-value-function": "转换函数", + "set-value-method": "RPC设置值方法", + "convert-value-function": "转换值的函数", "rpc-settings": "RPC设置", - "request-timeout": "RPC请求超(毫秒)", + "request-timeout": "RPC请求超时时间(毫秒)", "persistent-rpc-settings": "持久化RPC设置", - "request-persistent": "RPC请求持久化", - "persistent-polling-interval": " RPC持久化轮询间隔(毫秒)", - "common-settings": "通用设置", + "request-persistent": "持久化RPC请求", + "persistent-polling-interval": "持久化RPC命令响应的轮询间隔(毫秒)", + "common-settings": "常见设置", "switch-title": "开关标题", - "show-on-off-labels": "显示开/关", - "slide-toggle-label": "滑块切换标签", + "show-on-off-labels": "显示开/关标签", + "slide-toggle-label": "滑动开关标签", "label-position": "标签位置", - "label-position-before": "前面", - "label-position-after": "后面", + "label-position-before": "之前", + "label-position-after": "之后", "slider-color": "滑块颜色", - "slider-color-primary": "Primary", - "slider-color-accent": "Accent", - "slider-color-warn": "Warn", + "slider-color-primary": "主要", + "slider-color-accent": "强调", + "slider-color-warn": "警告", "button-style": "按钮样式", - "button-raised": "按钮凸起", - "button-primary": "原色", - "button-background-color": "背景色", - "button-text-color": "文字颜色", + "button-raised": "凸起按钮", + "button-primary": "主要颜色", + "button-background-color": "按钮背景颜色", + "button-text-color": "按钮文字颜色", "widget-title": "部件标题", "button-label": "按钮标签", "device-attribute-scope": "设备属性范围", - "server-attribute": "服务端属性", + "server-attribute": "服务器属性", "shared-attribute": "共享属性", "device-attribute-parameters": "设备属性参数", - "is-one-way-command": "是否单向命令", + "is-one-way-command": "是单向命令", "rpc-method": "RPC方法", - "rpc-method-params": "RPC参数", + "rpc-method-params": "RPC方法参数", "show-rpc-error": "显示RPC命令执行错误", "led-title": "LED标题", "led-color": "LED颜色", "check-status-settings": "检查状态设置", "perform-rpc-status-check": "执行RPC设备状态检查", - "retrieve-led-status-value-method": "使用方法状态值恢复LED", - "led-status-value-attribute": "设备属性包含LED状态值", - "led-status-value-timeseries": "设备时间序列包含LED状态值", - "check-status-method": "RPC设备状态检查方法", - "parse-led-status-value-function": "解析函数", - "knob-title": "旋转按钮", + "retrieve-led-status-value-method": "使用方法获取LED状态值", + "led-status-value-attribute": "包含LED状态值的设备属性", + "led-status-value-timeseries": "包含LED状态值的设备时间序列", + "check-status-method": "RPC检查设备状态方法", + "parse-led-status-value-function": "解析LED状态值的函数", + "knob-title": "旋钮标题", "min-value": "最小值", "max-value": "最大值" }, "maps": { "select-entity": "选择实体", - "select-entity-hint": "提示:选择后单击地图以设置位置", + "select-entity-hint": "提示:选择后在地图上点击以设置位置", "tooltips": { - "placeMarker": "单击放置'{{entityName}}'实体", - "firstVertex": "单击放置多边形'{{entityName}}'的第一个点", - "firstVertex-cut": "单击放置第一个点", - "continueLine": "单击继续绘制'{{entityName}}'多边形", - "continueLine-cut": "单击继续绘制", - "finishLine": "单击任何现有标记完成", - "finishPoly": "单击第一个标记完成'{{entityName}}'并保存", - "finishPoly-cut": "单击第一个标记完成并保存", - "finishRect": "单击'{{entityName}}'多边形完成并保存", - "startCircle": "单击'{{entityName}}'放置圆圈中心", - "finishCircle": "单击'{{entityName}}'完成圆圈", - "placeCircleMarker": "单击放置圆形标记" + "placeMarker": "点击以放置 '{{entityName}}' 实体", + "firstVertex": "'{{entityName}}' 的多边形:点击以放置第一个点", + "firstVertex-cut": "点击以放置第一个点", + "continueLine": "'{{entityName}}' 的多边形:点击以继续绘制", + "continueLine-cut": "点击以继续绘制", + "finishLine": "点击任意现有标记以完成", + "finishPoly": "'{{entityName}}' 的多边形:点击第一个标记以完成并保存", + "finishPoly-cut": "点击第一个标记以完成并保存", + "finishRect": "'{{entityName}}' 的多边形:点击以完成并保存", + "startCircle": "'{{entityName}}' 的圆:点击以放置圆心", + "finishCircle": "'{{entityName}}' 的圆:点击以完成圆形", + "placeCircleMarker": "点击以放置圆形标记" }, "actions": { "finish": "完成", "cancel": "取消", - "removeLastVertex": "删除最后一点" + "removeLastVertex": "移除最后一个点" }, "buttonTitles": { "drawMarkerButton": "放置实体", "drawPolyButton": "创建多边形", - "drawLineButton": "创建多边形线条", + "drawLineButton": "创建折线", "drawCircleButton": "创建圆形", "drawRectButton": "创建矩形", "editButton": "编辑模式", "dragButton": "拖放模式", - "cutButton": "剪切多边形区域", + "cutButton": "切割多边形区域", "deleteButton": "移除", - "drawCircleMarkerButton": "创建圆形标志", + "drawCircleMarkerButton": "创建圆形标记", "rotateButton": "旋转多边形" }, - "map-provider-settings": "地图设置", - "map-provider": "提供程序", - "map-provider-google": "Google地图", + "map-provider-settings": "地图提供商设置", + "map-provider": "地图提供商", + "map-provider-google": "谷歌地图", "map-provider-openstreet": "OpenStreet地图", "map-provider-here": "HERE地图", - "map-provider-image": "Image地图", - "map-provider-tencent": "Tencent地图", - "openstreet-provider": "OpenStreet地图提供程序", + "map-provider-image": "图像地图", + "map-provider-tencent": "腾讯地图", + "openstreet-provider": "OpenStreet地图提供商", "openstreet-provider-mapnik": "OpenStreetMap.Mapnik(默认)", "openstreet-provider-hot": "OpenStreetMap.HOT", "openstreet-provider-esri-street": "Esri.WorldStreetMap", @@ -4466,258 +4899,457 @@ "openstreet-provider-esri-imagery": "Esri.WorldImagery", "openstreet-provider-cartodb-positron": "CartoDB.Positron", "openstreet-provider-cartodb-dark-matter": "CartoDB.DarkMatter", - "use-custom-provider": "自定义提供程序", - "custom-provider-tile-url": "提供程序URL", - "google-maps-api-key": "Google地图Key", + "use-custom-provider": "使用自定义提供商", + "custom-provider-tile-url": "自定义提供商瓦片URL", + "google-maps-api-key": "谷歌地图API密钥", "default-map-type": "默认地图类型", - "google-map-type-roadmap": "路线地图", - "google-map-type-satelite": "卫星", - "google-map-type-hybrid": "混合", - "google-map-type-terrain": "街道", - "map-layer": "地图", + "google-map-type-roadmap": "路线图", + "google-map-type-satelite": "卫星图", + "google-map-type-hybrid": "混合图", + "google-map-type-terrain": "地形图", + "map-layer": "地图图层", "here-map-normal-day": "HERE.normalDay(默认)", "here-map-normal-night": "HERE.normalNight", "here-map-hybrid-day": "HERE.hybridDay", "here-map-terrain-day": "HERE.terrainDay", - "credentials": "证书", - "here-app-id": "HERE地图id", - "here-app-code": "HERE地图code", - "tencent-maps-api-key": "Tencent地图Key", - "tencent-map-type-roadmap": "路线地图", - "tencent-map-type-satelite": "卫星", - "tencent-map-type-hybrid": "混合", - "image-map-background": "地图北景", - "image-map-background-from-entity-attribute": "从实体属性中获取背景图", + "credentials": "凭证", + "here-app-id": "HERE应用ID", + "here-app-code": "HERE应用代码", + "here-api-key": "HERE API密钥", + "here-use-new-version-api-3": "使用API版本3", + "tencent-maps-api-key": "腾讯地图API密钥", + "tencent-map-type-roadmap": "路线图", + "tencent-map-type-satelite": "卫星图", + "tencent-map-type-hybrid": "混合图", + "image-map-background": "图像地图背景", + "image-map-background-from-entity-attribute": "从实体属性获取图像地图背景", "image-url-source-entity-alias": "图像URL源实体别名", "image-url-source-entity-attribute": "图像URL源实体属性", - "common-map-settings": "通用设置", + "common-map-settings": "常见地图设置", "x-pos-key-name": "X位置键名", "y-pos-key-name": "Y位置键名", - "latitude-key-name": "Latitude键名", - "longitude-key-name": "Longitude键名", - "default-map-zoom-level": "地图缩放级别(1-20)", - "default-map-center-position": "地图中心位置(0,0)", - "disable-scroll-zooming": "地图中心位置", + "latitude-key-name": "纬度键名", + "longitude-key-name": "经度键名", + "default-map-zoom-level": "默认地图缩放级别(0-20)", + "default-map-center-position": "默认地图中心位置(0,0)", + "disable-scroll-zooming": "禁用滚动缩放", "disable-double-click-zooming": "禁用双击缩放", - "disable-zoom-control-buttons": "禁用缩放按钮", - "fit-map-bounds": "拟合地图标记", - "use-default-map-center-position": "地图默认中心位置", - "entities-limit": "加载实体限制", + "disable-zoom-control-buttons": "禁用缩放控制按钮", + "fit-map-bounds": "适应地图边界以覆盖所有标记", + "use-default-map-center-position": "使用默认地图中心位置", + "entities-limit": "加载实体的限制", "markers-settings": "标记设置", - "marker-offset-x": "标记X宽度偏移量", - "marker-offset-y": "标记Y高度偏移量", - "position-function": "位置转换函数应返回x,y坐标", - "draggable-marker": "拖动标记", - "label": "标签设置", + "marker-offset-x": "标记X偏移相对于位置乘以标记宽度", + "marker-offset-y": "标记Y偏移相对于位置乘以标记高度", + "position-function": "位置转换函数,应返回0到1之间的x,y坐标", + "draggable-marker": "可拖动的标记", + "label": "标签", "show-label": "显示标签", - "use-label-function": "标签函数", - "label-pattern": "标签模式(例如:'${entityName}', '${entityName}: (文本${keyName}单位)' )", + "use-label-function": "使用标签函数", + "label-pattern": "标签 (模式示例:'${entityName}', '${entityName}: (Text ${keyName} units.)' )", "label-function": "标签函数", - "tooltip": "提示栏设置", - "show-tooltip": "显示提示栏", - "show-tooltip-action": "提示拦动作", - "show-tooltip-action-click": "单击显示(默认)", - "show-tooltip-action-hover": "悬停显示", - "auto-close-tooltips": "自动关闭", - "use-tooltip-function": "启用函数", - "tooltip-pattern": "提示栏(例如:'文本${keyName}单位。'或 Link text')", - "tooltip-function": "提示栏函数", - "tooltip-offset-x": "提示栏x标记宽度偏移量", - "tooltip-offset-y": "提示栏y标记高度偏移量", - "color": "颜色设置", - "use-color-function": "启用函数", + "tooltip": "Tooltip", + "show-tooltip": "显示 Tooltip", + "show-tooltip-action": "显示 Tooltip 的操作", + "show-tooltip-action-click": "点击时显示 Tooltip(默认)", + "show-tooltip-action-hover": "悬停时显示 Tooltip", + "auto-close-tooltips": "自动关闭 Tooltip", + "use-tooltip-function": "使用 Tooltip 函数", + "tooltip-pattern": "Tooltip (例如 'Text ${keyName} units.' or Link text')", + "tooltip-function": "Tooltip 函数", + "tooltip-offset-x": "Tooltip X偏移相对于标记锚点乘以标记宽度", + "tooltip-offset-y": "Tooltip Y偏移相对于标记锚点乘以标记高度", + "color": "颜色", + "use-color-function": "使用颜色函数", "color-function": "颜色函数", - "marker-image": "图片标记设置", - "use-marker-image-function": "启用函数", - "custom-marker-image": "自定义图片标记", - "custom-marker-image-size": "自定义图片标记大小(像素)", - "marker-image-function": "自定义图片标记函数", - "marker-images": "图片标记", + "marker-image": "标记图像", + "use-marker-image-function": "使用标记图像函数", + "custom-marker-image": "自定义标记图像", + "custom-marker-image-size": "自定义标记图像大小(px)", + "marker-image-function": "标记图像函数", + "marker-images": "标记图像", "polygon-settings": "多边形设置", - "show-polygon": "启用多边形", + "show-polygon": "显示多边形", "polygon-key-name": "多边形键名", - "enable-polygon-edit": "启用编辑", - "polygon-label": "标签", - "show-polygon-label": "启用标签", - "use-polygon-label-function": "启用函数", - "polygon-label-pattern": "标签模式(例如: '${entityName}', '${entityName}:(文本${keyName}单位)' )", - "polygon-label-function": "标签函数", - "polygon-tooltip": "提示栏", - "show-polygon-tooltip": "启用提示栏", - "auto-close-polygon-tooltips": "自动关闭", - "use-polygon-tooltip-function": "启用函数", - "polygon-tooltip-pattern": "提示栏(例如:'文本${keyName}单位'或Link text')", - "polygon-tooltip-function": "提示栏函数", - "polygon-color": "颜色", - "polygon-opacity": "透明度”", - "use-polygon-color-function": "启用函数", - "polygon-color-function": "颜色函数", - "polygon-stroke": "斜线", - "stroke-color": "斜线颜色", - "stroke-opacity": "透明度", - "stroke-weight": "宽度", - "use-polygon-stroke-color-function": "启用函数", - "polygon-stroke-color-function": "颜色函数", - "circle-settings": "圆形设置", - "show-circle": "启用圆形", - "circle-key-name": "圆形键名", - "enable-circle-edit": "启用编辑", - "circle-label": "标签", - "show-circle-label": "启用标签", - "use-circle-label-function": "启用函数", - "circle-label-pattern": "标签模式(例如:'${entityName}', '${entityName}:(文本${keyName}单位)')", - "circle-label-function": "标签函数", - "circle-tooltip": "提示栏", - "show-circle-tooltip": "显示提示栏", - "auto-close-circle-tooltips": "自动关闭", - "use-circle-tooltip-function": "启用函数", - "circle-tooltip-pattern": "提示栏(例如:'文本${keyName}单位。'或Link text')", - "circle-tooltip-function": "提示栏函数", - "circle-fill-color": "填充色", - "circle-fill-color-opacity": "透明度", - "use-circle-fill-color-function": "启用函数", - "circle-fill-color-function": "填充颜色函数", - "circle-stroke": "斜线设置", - "use-circle-stroke-color-function": "启用函数", - "circle-stroke-color-function": "颜色函数", - "markers-clustering-settings": "标记集群设置", - "use-map-markers-clustering": "启用地图标记集群", - "zoom-on-cluster-click": "单击群集时变焦", - "max-cluster-zoom": "集群最大的缩放比例(0-18)", - "max-cluster-radius-pixels": "最大半径", - "cluster-zoom-animation": "放大动画", - "show-markers-bounds-on-cluster-mouse-over": "显示鼠标在群集上时显示标记的边界", - "spiderfy-max-zoom-level": "最大缩放比例(查看所有群集标记)", - "load-optimization": "负载优化", - "cluster-chunked-loading": "块加载集群标记", - "cluster-markers-lazy-load": "延迟加载集群标记", - "editor-settings": "编辑设置", - "enable-snapping": "启用顶点捕捉", - "init-draggable-mode": "启用拖动模式初始化地图", - "hide-all-edit-buttons": "隐藏所有按钮", + "enable-polygon-edit": "启用多边形编辑", + "polygon-label": "多边形标签", + "show-polygon-label": "显示多边形标签", + "use-polygon-label-function": "使用多边形标签函数", + "polygon-label-pattern": "多边形标签 (模板示例:'${entityName}', '${entityName}: (Text ${keyName} units.)' )", + "polygon-label-function": "多边形标签函数", + "polygon-tooltip": "多边形 Tooltip", + "show-polygon-tooltip": "显示多边形 Tooltip", + "auto-close-polygon-tooltips": "自动关闭多边形 Tooltip", + "use-polygon-tooltip-function": "使用多边形 Tooltip 函数", + "polygon-tooltip-pattern": "Tooltip (例如 'Text ${keyName} units.' or Link text')", + "polygon-tooltip-function": "多边形 Tooltip 函数", + "polygon-color": "多边形颜色", + "polygon-opacity": "多边形不透明度", + "use-polygon-color-function": "使用多边形颜色函数", + "polygon-color-function": "多边形颜色函数", + "polygon-stroke": "多边形描边", + "stroke-color": "描边颜色", + "stroke-opacity": "描边不透明度", + "stroke-weight": "描边宽度", + "use-polygon-stroke-color-function": "使用多边形描边颜色函数", + "polygon-stroke-color-function": "多边形描边颜色函数", + "circle-settings": "圆设置", + "show-circle": "显示圆", + "circle-key-name": "圆键名", + "enable-circle-edit": "启用圆编辑", + "circle-label": "圆标签", + "show-circle-label": "显示圆标签", + "use-circle-label-function": "使用圆标签函数", + "circle-label-pattern": "圆标签 (模板示例:'${entityName}', '${entityName}: (Text ${keyName} units.)' )", + "circle-label-function": "圆标签函数", + "circle-tooltip": "圆 Tooltip", + "show-circle-tooltip": "显示圆 Tooltip", + "auto-close-circle-tooltips": "自动关闭圆 Tooltip", + "use-circle-tooltip-function": "使用圆 Tooltip 函数", + "circle-tooltip-pattern": "Tooltip (例如 'Text ${keyName} units.' or Link text')", + "circle-tooltip-function": "圆 Tooltip 函数", + "circle-fill-color": "圆填充颜色", + "circle-fill-color-opacity": "圆填充颜色不透明度", + "use-circle-fill-color-function": "使用圆填充颜色函数", + "circle-fill-color-function": "圆填充颜色函数", + "circle-stroke": "圆边框", + "use-circle-stroke-color-function": "使用圆边框颜色函数", + "circle-stroke-color-function": "圆边框颜色函数", + "markers-clustering-settings": "标记聚类设置", + "use-map-markers-clustering": "使用地图标记聚类", + "zoom-on-cluster-click": "点击集群时进行缩放", + "max-cluster-zoom": "当标记可以成为集群的一部分时的最大缩放级别(0-18)", + "max-cluster-radius-pixels": "簇所覆盖的最大半径(px)", + "cluster-zoom-animation": "缩放时显示标记动画", + "show-markers-bounds-on-cluster-mouse-over": "鼠标悬停在集群上时显示标记范围", + "spiderfy-max-zoom-level": "以最大缩放级别展开簇(以查看所有集群标记)", + "load-optimization": "加载优化", + "cluster-chunked-loading": "使用块添加标记,以避免页面冻结", + "cluster-markers-lazy-load": "使用延迟加载添加标记", + "editor-settings": "编辑器设置", + "enable-snapping": "启用精确绘制时的吸附到其他顶点", + "init-draggable-mode": "以可拖动模式初始化地图", + "hide-all-edit-buttons": "隐藏所有编辑控制按钮", "hide-draw-buttons": "隐藏绘制按钮", "hide-edit-buttons": "隐藏编辑按钮", "hide-remove-button": "隐藏删除按钮", - "route-map-settings": "路由设置", - "trip-animation-settings": "旅行动画设置", - "normalization-step": "正常数据步长(ms)", - "tooltip-background-color": "工具提示背景颜色", - "tooltip-font-color": "工具提示字体颜色", - "tooltip-opacity": "工具提示不透明度(0-1)", - "auto-close-tooltip": "自动关闭工具提示", + "route-map-settings": "路线地图设置", + "trip-animation-settings": "行程动画设置", + "normalization-step": "数据标准化步骤(毫秒)", + "tooltip-background-color": "Tooltip 背景颜色", + "tooltip-font-color": "Tooltip 字体颜色", + "tooltip-opacity": "Tooltip 不透明度(0-1)", + "auto-close-tooltip": "自动关闭 Tooltip", "rotation-angle": "设置标记的附加旋转角度(度)", "path-settings": "路径设置", "path-color": "路径颜色", - "use-path-color-function": "使用路径颜色功能", - "path-color-function": "路径颜色功能", + "use-path-color-function": "使用路径颜色函数", + "path-color-function": "路径颜色函数", "path-decorator": "路径装饰器", "use-path-decorator": "使用路径装饰器", "decorator-symbol": "装饰符号", "decorator-symbol-arrow-head": "箭头", - "decorator-symbol-dash": "短跑", - "decorator-symbol-size": "装饰器符号尺寸(像素)", + "decorator-symbol-dash": "短划线", + "decorator-symbol-size": "装饰符号大小(px)", "use-path-decorator-custom-color": "使用路径装饰器自定义颜色", - "decorator-custom-color": "装饰器定制颜色", - "decorator-offset": "装饰器偏移", - "end-decorator-offset": "结束装饰器偏移", - "decorator-repeat": "装饰器重复", + "decorator-custom-color": "装饰符号自定义颜色", + "decorator-offset": "装饰符号偏移量", + "end-decorator-offset": "结束装饰符号偏移量", + "decorator-repeat": "装饰符号重复", "points-settings": "点设置", "show-points": "显示点", "point-color": "点颜色", - "point-size": "点大小(像素)", - "use-point-color-function": "使用点颜色功能", + "point-size": "点大小(px)", + "use-point-color-function": "使用点颜色函数", "point-color-function": "点颜色函数", - "use-point-as-anchor": "使用点作为锚", - "point-as-anchor-function": "点为锚函数", - "independent-point-tooltip": "独立点工具提示", - "clustering-markers": "集群标记", - "use-icon-create-function": "启用集群标记", + "use-point-as-anchor": "使用点作为锚点", + "point-as-anchor-function": "点作为锚点函数", + "independent-point-tooltip": "独立点 Tooltip", + "clustering-markers": "标记聚类", + "use-icon-create-function": "使用标记颜色函数", "marker-color-function": "标记颜色函数" }, "markdown": { - "use-markdown-text-function": "使用markdown/HTML函数", - "markdown-text-function": "Markdown/HTML函数", - "markdown-text-pattern": "Markdown/HTML模式(markdown或HTML变量, 例如:'${entityName}或${keyName}一些文本')", + "use-markdown-text-function": "使用 Markdown/HTML 值函数", + "markdown-text-function": "Markdown/HTML 值函数", + "markdown-text-pattern": "Markdown/HTML 模板 (使用变量的 markdown 或 HTML,例如 '${entityName} or ${keyName} - some text.')", + "apply-default-markdown-style": "应用默认的 Markdown 样式", "markdown-css": "Markdown/HTML CSS" }, "simple-card": { "label-position": "标签位置", - "label-position-left": "左", - "label-position-top": "上" + "label-position-left": "左侧", + "label-position-top": "顶部" }, "table": { - "common-table-settings": "表格设置", + "common-table-settings": "常规表格设置", "enable-search": "启用搜索", - "enable-sticky-header": "始终显示标题", - "enable-sticky-action": "始终显示动作", - "hidden-cell-button-display-mode": "隐藏单元按钮操作显示模式", - "show-empty-space-hidden-action": "显示空空间而不是隐藏的单元按钮动作", - "dont-reserve-space-hidden-action": "不要为隐藏动作按钮保留空间", - "display-timestamp": "显示时间", - "display-milliseconds": "显示毫秒", + "enable-sticky-header": "始终显示表头", + "enable-sticky-action": "始终显示操作列", + "hidden-cell-button-display-mode": "隐藏单元格按钮操作显示模式", + "show-empty-space-hidden-action": "显示空白区域而不是隐藏单元格按钮操作", + "dont-reserve-space-hidden-action": "不为隐藏的操作按钮预留空间", + "display-timestamp": "显示时间戳列", + "display-milliseconds": "显示时间戳毫秒", "display-pagination": "显示分页", - "default-page-size": "分页数量", - "use-entity-label-tab-name": "实体标签名称", - "hide-empty-lines": "隐藏空线", + "default-page-size": "默认页面大小", + "use-entity-label-tab-name": "在选项卡名称中使用实体标签", + "hide-empty-lines": "隐藏空行", "row-style": "行样式", - "use-row-style-function": "启用样式函数", - "row-style-function": "样式函数", - "cell-style": "列样式", - "use-cell-style-function": "启用样式函数", - "cell-style-function": "样式函数", - "cell-content": "内容", - "use-cell-content-function": "启用内容函数", - "cell-content-function": "内容函数", + "use-row-style-function": "使用行样式函数", + "row-style-function": "行样式函数", + "cell-style": "单元格样式", + "use-cell-style-function": "使用单元格样式函数", + "cell-style-function": "单元格样式函数", + "cell-content": "单元格内容", + "use-cell-content-function": "使用单元格内容函数", + "cell-content-function": "单元格内容函数", "show-latest-data-column": "显示最新数据列", - "latest-data-column-order": "样式函数", - "entities-table-title": "实体表格标题", - "enable-select-column-display": "启用数据列", - "display-entity-name": "显示实体名称", + "latest-data-column-order": "最新数据列顺序", + "entities-table-title": "实体表标题", + "enable-select-column-display": "启用选择要显示的列", + "display-entity-name": "显示实体名称列", "entity-name-column-title": "实体名称列标题", - "display-entity-label": "显示实体标签", + "display-entity-label": "显示实体标签列", "entity-label-column-title": "实体标签列标题", - "display-entity-type": "显示实体类型", - "default-sort-order": "默认排序", - "custom-title": "Custom header title", - "column-width": "列宽", - "default-column-visibility": "默认显示", - "column-visibility-visible": "显示", + "display-entity-type": "显示实体类型列", + "default-sort-order": "默认排序顺序", + "custom-title": "自定义表头标题", + "column-width": "列宽度(px 或 %)", + "default-column-visibility": "默认列可见性", + "column-visibility-visible": "可见", "column-visibility-hidden": "隐藏", - "column-visibility-hidden-mobile": "Hidden in mobile mode", - "column-selection-to-display": "“要显示”列中的列选择", + "column-visibility-hidden-mobile": "在移动模式下隐藏", + "column-selection-to-display": "'显示列' 中的列选择", "column-selection-to-display-enabled": "启用", "column-selection-to-display-disabled": "禁用", - "alarms-table-title": "警报标题", - "enable-alarms-selection": "启用警报选择", - "enable-alarms-search": "启用警报搜索", - "enable-alarm-filter": "启用警报过滤器", - "display-alarm-details": "显示警报详细", - "allow-alarms-ack": "允许确认警报", - "allow-alarms-clear": "允许清除警报" + "alarms-table-title": "告警表标题", + "enable-alarms-selection": "启用告警选择", + "enable-alarms-search": "启用告警搜索", + "enable-alarm-filter": "启用告警过滤", + "display-alarm-details": "显示告警详细信息", + "allow-alarms-ack": "允许确认告警", + "allow-alarms-clear": "允许清除告警", + "display-alarm-activity": "显示告警活动", + "allow-alarms-assign": "允许分配告警" }, "value-source": { - "value-source": "数值源", + "value-source": "值来源", "predefined-value": "预定义值", - "entity-attribute": "从实体属性中获取值", - "value": "数据值", - "source-entity-alias": "实体别", - "source-entity-attribute": "实体属性" + "entity-attribute": "从实体属性中获取的值", + "value": "值", + "source-entity-alias": "源实体别名", + "source-entity-attribute": "源实体属性" }, "widget-font": { "font-family": "字体", "size": "大小", - "relative-font-size": "相对字体大小", + "relative-font-size": "相对字体大小(百分比)", "font-style": "样式", - "font-style-normal": "常规", + "font-style-normal": "正常", "font-style-italic": "斜体", "font-style-oblique": "倾斜", - "font-weight": "字形", - "font-weight-normal": "常规", - "font-weight-bold": "加粗", - "font-weight-bolder": "相对加粗", - "font-weight-lighter": "相对常规", + "font-weight": "粗细", + "font-weight-normal": "正常", + "font-weight-bold": "粗体", + "font-weight-bolder": "更粗", + "font-weight-lighter": "更轻", "color": "颜色", "shadow-color": "阴影颜色" + }, + "home": { + "no-data-available": "暂无数据" + }, + "system-info": { + "cpu": "CPU", + "ram": "内存", + "disk": "磁盘", + "cpu-warning-text": "CPU 使用率过高。为了避免系统故障,请优化系统性能。", + "cpu-critical-text": "CPU 使用率严重过高。为了避免系统故障,请优化系统性能。", + "ram-warning-text": "内存储备不足。为了避免系统故障,请优化系统性能或增加内存大小。", + "ram-critical-text": "内存储备严重不足。为了避免系统故障,请优化系统性能或增加内存大小。", + "disk-warning-text": "磁盘空间不足。为了避免数据丢失,请释放或扩展磁盘空间。", + "disk-critical-text": "磁盘空间严重不足。为了避免数据丢失,请释放或扩展磁盘空间。" + }, + "cluster-info": { + "service-id": "服务ID", + "service-type": "服务类型", + "no-data": "无数据" + }, + "transport-messages": { + "title": "传输消息", + "info": "来自设备的所有消息" + }, + "activity": { + "title": "活动" + }, + "documentation": { + "title": "文档", + "add-link": "添加链接", + "add-link-title": "添加文档链接", + "name": "名称", + "name-required": "名称是必填项。", + "link": "链接", + "link-required": "链接是必填项。", + "columns": "列" + }, + "quick-links": { + "title": "快速链接", + "add-link": "添加链接", + "add-link-title": "添加快速链接", + "quick-link": "快速链接", + "quick-link-required": "快速链接是必填项。", + "no-links-matching": "找不到与'{{name}}'匹配的链接。", + "columns": "列" + }, + "recent-dashboards": { + "title": "仪表盘", + "last": "最近查看", + "starred": "已收藏", + "name": "名称", + "last-viewed": "最近查看", + "no-last-viewed-dashboards": "暂无最近查看的仪表盘" + }, + "configured-features": { + "title": "配置的功能", + "info": "需要配置的功能状态", + "email-feature": "电子邮件", + "sms-feature": "短信", + "slack-feature": "Slack", + "oauth2-feature": "OAuth 2", + "2fa-feature": "两步验证", + "feature-configured": "功能已配置\n点击设置", + "feature-not-configured": "功能未配置\n点击设置" + }, + "version-info": { + "title": "版本", + "contact-us": "联系我们", + "current-version": "当前版本", + "current": "当前", + "available-version": "可用版本", + "available": "可用", + "upgrade": "升级", + "version-is-up-to-date": "已经是最新版本" + }, + "usage-info": { + "title": "使用情况", + "entities": "实体", + "api-calls": "API 调用" + }, + "functions": { + "title": "功能", + "pe-feature-tooltip": "仅适用于 ThingsBoard 专业版", + "switch-to-pe": "切换至专业版", + "alarms": "告警", + "dashboards": "仪表盘", + "entities-and-relations": "实体和关系", + "profiles": "配置文件", + "advanced-features": "高级功能", + "notification-center": "通知中心", + "api-usage": "API 使用情况", + "customers": "客户", + "customers-hierarchy": "客户层级", + "roles-and-permissions": "角色和权限", + "groups": "群组", + "integrations": "集成", + "solution-templates": "解决方案模板", + "scheduler": "调度器", + "white-labeling": "白标" + }, + "devices": { + "view-docs": "查看文档", + "inactive": "活动", + "active": "未活动", + "total": "总数" + }, + "alarms": { + "critical": "严重", + "assigned-to-me": "分配给我", + "total": "总数" + }, + "getting-started": { + "get-started": "开始使用", + "finish": "完成", + "done-welcome-title": "欢迎加入", + "done-welcome-text": "你做得很棒!", + "sys-admin": { + "step1": { + "title": "创建租户和租户管理员", + "content": "

租户是拥有或生产设备和资产的个人或组织。租户可以拥有多个租户管理员用户、客户、设备和资产。

租户管理员可以在租户账户内创建和管理设备、资产、客户和仪表盘。

请按照文档中的说明进行操作:

", + "how-to-create-tenant": "如何创建租户和租户管理员" + }, + "step2": { + "title": "配置功能:邮件服务器", + "content": "

邮件服务器配置对于用户激活、密码恢复和告警通知非常重要。

请按照文档中的说明进行配置:

", + "how-to-configure-mail-server": "如何配置邮件服务器" + }, + "step3": { + "title": "配置功能:短信提供商", + "content": "

配置短信提供商,通过短信向客户通知告警。

请按照文档中的说明进行配置:

", + "how-to-configure-sms-provider": "如何配置短信提供商" + }, + "step4": { + "title": "配置功能:双因素认证(2FA)", + "content": "

通过双因素认证提高平台账户的安全性。

请按照文档中的说明进行配置:

", + "how-to-configure-2fa": "如何配置双因素认证(2FA)" + }, + "step5": { + "title": "配置功能:OAuth 2", + "content": "

使用 OAuth 2.0 的单点登录功能简化租户和客户用户的登录过程。

请按照文档中的说明进行配置:

", + "how-to-configure-oauth2": "如何配置 OAuth 2" + }, + "step6": { + "title": "配置功能:Slack", + "content": "

根据您设置的通知规则,通过 Slack 将通知发送给租户和客户用户。

请按照文档中的说明进行配置:

", + "how-to-configure-notifications": "如何配置 Slack" + } + }, + "tenant-admin": { + "step1": { + "title": "创建设备", + "content": "

让我们通过用户界面将您的第一个设备添加到平台上。按照文档中的说明进行操作:

", + "how-to-create-device": "如何创建设备" + }, + "step2": { + "title": "连接设备", + "content-before": "

要连接设备,您需要获取设备凭据。我们建议在本指南中使用默认的自动生成的凭据,即访问令牌。

使用简单的命令通过HTTP发布数据。不要忘记用您的设备访问令牌替换 $ACCESS_TOKEN

", + "ubuntu": { + "install-curl": "在 Ubuntu 安装 cURL:" + }, + "macos": { + "install-curl": "在 MacOS 安装 cURL:" + }, + "windows": { + "install-curl": "从 Windows10 b17063 开始,默认情况下提供cURL。" + }, + "replace-access-token": "使用您的设备令牌替换 $ACCESS_TOKEN :", + "content-after": "

您也可以使用其他协议,比如 MQTT、CoAP 等。

按照文档中的说明进行操作:

", + "how-to-connect-device": "如何连接设备" + }, + "step3": { + "title": "创建仪表盘", + "content": "

创建一个仪表盘,用于可视化来自资产、设备等实体的数据。

按照文档中的说明进行操作:

", + "how-to-create-dashboard": "如何创建仪表盘" + }, + "step4": { + "title": "配置告警规则", + "alarm-rules": "告警规则", + "content": "

让我们在温度达到25°C时触发告警。按照文档中的说明进行操作:

", + "how-to-configure-alarm-rules": "如何配置告警规则" + }, + "step5": { + "title": "创建告警", + "content-before": "

为了触发告警,请发送一个新的温度值,温度大于或等于26°C。

", + "replace-access-token": "请将$ACCESS_TOKEN替换为您的设备的令牌:", + "content-after": "

按照文档中的说明进行操作:

", + "how-to-create-alarm": "如何创建告警" + }, + "step6": { + "title": "创建客户并分配仪表盘", + "content": "

通过创建终端用户仪表盘,客户用户只能查看自己的设备,其他客户的数据将被隐藏。

按照文档中的说明进行操作:

", + "how-to-create-customer-and-assign-dashboard": "如何创建客户并分配仪表盘" + } + } } }, "icon": { @@ -4735,27 +5367,51 @@ }, "custom": { "widget-action": { - "action-cell-button": "单元格click", - "row-click": "数据行click", - "polygon-click": "多边形click", - "marker-click": "标记click", - "circle-click": "圆形click", - "tooltip-tag-action": "提示框click", - "node-selected": "节点选中click", - "element-click": "HTML元素click", - "pie-slice-click": " 饼状click", - "row-double-click": "双击clcik" + "action-cell-button": "动作单元格按钮", + "row-click": "点击行时", + "polygon-click": "单击多边形", + "marker-click": "点击标记时", + "circle-click": "On circle click", + "tooltip-tag-action": "Tooltip tag action", + "node-selected": "选择节点时", + "element-click": "点击HTML元素时", + "pie-slice-click": "点击切片时", + "row-double-click": "双击行时" } }, "paginator": { - "items-per-page": "每页数量:", - "first-page-label": "第一页", - "last-page-label": "最后一页", + "items-per-page": "每页条数:", + "first-page-label": "首页", + "last-page-label": "尾页", "next-page-label": "下一页", "previous-page-label": "上一页", - "items-per-page-separator": "-" + "items-per-page-separator": "of" }, "language": { - "language": "语言" + "language": "语言", + "locales": { + "ca_ES": "Catalan", + "cs_CZ": "Česky", + "da_DK": "Dansk", + "de_DE": "Deutsch", + "el_GR": "Ελληνικά", + "en_US": "English", + "es_ES": "Español", + "fa_IR": "فارسي", + "fr_FR": "Français", + "it_IT": "Italiano", + "ja_JP": "日本語", + "ka_GE": "ქართული", + "ko_KR": "한국어", + "lv_LV": "Latviešu", + "pt_BR": "Português do Brasil", + "ro_RO": "Română", + "ru_RU": "Русский", + "sl_SI": "Slovenščina", + "tr_TR": "Türkçe", + "uk_UA": "Українська", + "zh_CN": "简体中文", + "zh_TW": "繁體中文" + } } } From 36099b44006f040d976c2b3889b9274089341c1c Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Fri, 25 Aug 2023 17:15:35 +0300 Subject: [PATCH 2/7] UI: Add after test telemetry in device connectivity refresh data --- .../device-check-connectivity-dialog.component.html | 2 +- .../device/device-check-connectivity-dialog.component.ts | 3 --- .../home/pages/device/devices-table-config.resolver.ts | 9 +++++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ui-ngx/src/app/modules/home/pages/device/device-check-connectivity-dialog.component.html b/ui-ngx/src/app/modules/home/pages/device/device-check-connectivity-dialog.component.html index 3b761e5431..9b0b18e2c2 100644 --- a/ui-ngx/src/app/modules/home/pages/device/device-check-connectivity-dialog.component.html +++ b/ui-ngx/src/app/modules/home/pages/device/device-check-connectivity-dialog.component.html @@ -342,7 +342,7 @@ + (click)="close()">{{ 'action.close' | translate }}
diff --git a/ui-ngx/src/app/modules/home/pages/device/device-check-connectivity-dialog.component.ts b/ui-ngx/src/app/modules/home/pages/device/device-check-connectivity-dialog.component.ts index 7516e0f3e1..eeb54381df 100644 --- a/ui-ngx/src/app/modules/home/pages/device/device-check-connectivity-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/pages/device/device-check-connectivity-dialog.component.ts @@ -74,7 +74,6 @@ export class DeviceCheckConnectivityDialogComponent extends showDontShowAgain: boolean; dialogTitle: string; - closeButtonLabel: string; notShowAgain = false; @@ -99,11 +98,9 @@ export class DeviceCheckConnectivityDialogComponent extends if (this.data.afterAdd) { this.dialogTitle = 'device.connectivity.device-created-check-connectivity'; - this.closeButtonLabel = 'action.skip'; this.showDontShowAgain = true; } else { this.dialogTitle = 'device.connectivity.check-connectivity'; - this.closeButtonLabel = 'action.close'; this.showDontShowAgain = false; } } diff --git a/ui-ngx/src/app/modules/home/pages/device/devices-table-config.resolver.ts b/ui-ngx/src/app/modules/home/pages/device/devices-table-config.resolver.ts index 6682e87551..71d2a5bad9 100644 --- a/ui-ngx/src/app/modules/home/pages/device/devices-table-config.resolver.ts +++ b/ui-ngx/src/app/modules/home/pages/device/devices-table-config.resolver.ts @@ -467,12 +467,13 @@ export class DevicesTableConfigResolver implements Resolve { if (res) { - this.config.updateData(); this.store.pipe(select(selectUserSettingsProperty( 'notDisplayConnectivityAfterAddDevice'))).pipe( take(1) ).subscribe((settings: boolean) => { if(!settings) { this.checkConnectivity(null, res.id, true); + } else { + this.config.updateData(); } }); } @@ -734,6 +735,10 @@ export class DevicesTableConfigResolver implements Resolve {}); + .subscribe(() => { + if (afterAdd ) { + this.config.updateData(); + } + }); } } From f8e491790e01a71a77542cb18c7c70be6a461ae6 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 28 Aug 2023 13:10:40 +0300 Subject: [PATCH 3/7] UI: Fixed show/hide action and style timeseries table widgets --- ui-ngx/src/app/core/utils.ts | 11 +++++---- .../timeseries-table-widget.component.html | 24 ++++++++++--------- .../lib/timeseries-table-widget.component.ts | 4 ++-- ui-ngx/src/styles.scss | 4 ++++ 4 files changed, 25 insertions(+), 18 deletions(-) diff --git a/ui-ngx/src/app/core/utils.ts b/ui-ngx/src/app/core/utils.ts index 8d48c5f038..509be63ef7 100644 --- a/ui-ngx/src/app/core/utils.ts +++ b/ui-ngx/src/app/core/utils.ts @@ -414,18 +414,19 @@ export const createLabelFromDatasource = (datasource: Datasource, pattern: strin export const hasDatasourceLabelsVariables = (pattern: string): boolean => varsRegex.test(pattern) !== null; -export function formattedDataFormDatasourceData(input: DatasourceData[], dataIndex?: number): FormattedData[] { +export function formattedDataFormDatasourceData(input: DatasourceData[], dataIndex?: number, ts?: number): FormattedData[] { return _(input).groupBy(el => el.datasource.entityName + el.datasource.entityType) .values().value().map((entityArray, i) => { const datasource = entityArray[0].datasource; const obj = formattedDataFromDatasource(datasource, i); entityArray.filter(el => el.data.length).forEach(el => { const index = isDefined(dataIndex) ? dataIndex : el.data.length - 1; - if (!obj.hasOwnProperty(el.dataKey.label) || el.data[index][1] !== '') { - obj[el.dataKey.label] = el.data[index][1]; - obj[el.dataKey.label + '|ts'] = el.data[index][0]; + const dataSet = isDefined(ts) ? el.data.find(data => data[0] === ts) : el.data[index]; + if (dataSet !== undefined && (!obj.hasOwnProperty(el.dataKey.label) || dataSet[1] !== '')) { + obj[el.dataKey.label] = dataSet[1]; + obj[el.dataKey.label + '|ts'] = dataSet[0]; if (el.dataKey.label.toLowerCase() === 'type') { - obj.deviceType = el.data[index][1]; + obj.deviceType = dataSet[1]; } } }); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.html index b07f490dcc..b52e3eaffd 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.html @@ -60,36 +60,38 @@ - + - +
- +
-
+
- + diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts index 3f97442695..20dff4d85a 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts @@ -870,7 +870,7 @@ class TimeseriesDatasource implements DataSource { const rowsMap: {[timestamp: number]: TimeseriesRow} = {}; for (let d = 0; d < data.length; d++) { const columnData = data[d].data; - columnData.forEach((cellData, index) => { + columnData.forEach((cellData) => { const timestamp = cellData[0]; let row = rowsMap[timestamp]; if (!row) { @@ -879,7 +879,7 @@ class TimeseriesDatasource implements DataSource { }; if (this.cellButtonActions.length) { if (this.usedShowCellActionFunction) { - const parsedData = formattedDataFormDatasourceData(data, index); + const parsedData = formattedDataFormDatasourceData(data, undefined, timestamp); row.actionCellButtons = prepareTableCellButtonActions(this.widgetContext, this.cellButtonActions, parsedData[0], this.reserveSpaceForHiddenAction); row.hasActions = checkHasActions(row.actionCellButtons); diff --git a/ui-ngx/src/styles.scss b/ui-ngx/src/styles.scss index a2810d925e..a584985924 100644 --- a/ui-ngx/src/styles.scss +++ b/ui-ngx/src/styles.scss @@ -694,6 +694,10 @@ mat-label { .tb-table-widget { .mat-mdc-table { + .mat-mdc-row { + font-size: 13px; + } + .mat-mdc-cell { background: inherit; color: inherit; From be39dc0c973426177aee74e3f949aacf9672849e Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 28 Aug 2023 15:04:45 +0300 Subject: [PATCH 4/7] UI: Updated locale zh_CN --- .../assets/locale/locale.constant-zh_CN.json | 110 +++--------------- 1 file changed, 13 insertions(+), 97 deletions(-) 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 7913d6eb3f..49e01c66a4 100644 --- a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json +++ b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json @@ -55,7 +55,7 @@ "continue": "继续", "discard-changes": "放弃更改", "download": "下载", - "next": "Next", + "next": "下一个", "next-with-label": "下一个:{{label}}", "read-more": "阅读更多", "hide": "隐藏", @@ -258,7 +258,7 @@ "copy-mobile-app-secret": "复制应用程序密钥", "add-mobile-app": "添加应用程序", "delete-mobile-app": "删除应用程序信息", - "providers": "Providers", + "providers": "供应商", "platform-web": "Web", "platform-android": "Android", "platform-ios": "iOS", @@ -522,7 +522,7 @@ "refresh": "刷新", "oldest-first": "最早优先", "newest-first": "最新优先", - "activity": "Activity", + "activity": "活动", "export": "导出 CSV", "author": "作者", "created-date": "创建时间", @@ -543,17 +543,17 @@ "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-asset-type-description": "类型为 '{{assetTypes}}' 的资产", + "filter-type-asset-type-and-name-description": "类型为 '{{assetTypes}}' 且以 '{{prefix}}' 开头的资产", "filter-type-device-type": "设备类型", - "filter-type-device-type-description": "类型为 '{{deviceType}}' 的设备", - "filter-type-device-type-and-name-description": "类型为 '{{deviceType}}' 且以 '{{prefix}}' 开头的设备", + "filter-type-device-type-description": "类型为 '{{deviceTypes}}' 的设备", + "filter-type-device-type-and-name-description": "类型为 '{{deviceTypes}}' 且以 '{{prefix}}' 开头的设备", "filter-type-entity-view-type": "实体视图类型", - "filter-type-entity-view-type-description": "类型为 '{{entityView}}' 的实体视图", - "filter-type-entity-view-type-and-name-description": "类型为 {{entityView}}' 且以 '{{prefix}}' 开头的实体视图", + "filter-type-entity-view-type-description": "类型为 '{{entityViews}}' 的实体视图", + "filter-type-entity-view-type-and-name-description": "类型为 {{entityViews}}' 且以 '{{prefix}}' 开头的实体视图", "filter-type-edge-type": "边缘类型", - "filter-type-edge-type-description": "类型为 '{{edgeType}}' 的边缘", - "filter-type-edge-type-and-name-description": "类型为 '{{edgeType}}' 且以 '{{prefix}}' 开头的边缘", + "filter-type-edge-type-description": "类型为 '{{edgeTypes}}' 的边缘", + "filter-type-edge-type-and-name-description": "类型为 '{{edgeTypes}}' 且以 '{{prefix}}' 开头的边缘", "filter-type-relations-query": "关联查询", "filter-type-relations-query-description": "具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的 {{entities}} ", "filter-type-asset-search-query": "资产搜索查询", @@ -690,7 +690,7 @@ "add-to-dashboard": "添加到仪表板", "add-widget-to-dashboard": "将部件添加到仪表板", "selected-attributes": "已选择 { count, plural, =1 {1 个属性} other {# 个属性} }", - "selected-telemetry": "已选择 { count, plural, =1 {1 telemetry unit} other {# telemetry units} }", + "selected-telemetry": "已选择 { count, plural, =1 {1 遥测装置} other {# 遥测装置} }", "no-attributes-text": "未找到属性", "no-telemetry-text": "未找到遥测数据", "copy-key": "复制键", @@ -5260,90 +5260,6 @@ "critical": "严重", "assigned-to-me": "分配给我", "total": "总数" - }, - "getting-started": { - "get-started": "开始使用", - "finish": "完成", - "done-welcome-title": "欢迎加入", - "done-welcome-text": "你做得很棒!", - "sys-admin": { - "step1": { - "title": "创建租户和租户管理员", - "content": "

租户是拥有或生产设备和资产的个人或组织。租户可以拥有多个租户管理员用户、客户、设备和资产。

租户管理员可以在租户账户内创建和管理设备、资产、客户和仪表盘。

请按照文档中的说明进行操作:

", - "how-to-create-tenant": "如何创建租户和租户管理员" - }, - "step2": { - "title": "配置功能:邮件服务器", - "content": "

邮件服务器配置对于用户激活、密码恢复和告警通知非常重要。

请按照文档中的说明进行配置:

", - "how-to-configure-mail-server": "如何配置邮件服务器" - }, - "step3": { - "title": "配置功能:短信提供商", - "content": "

配置短信提供商,通过短信向客户通知告警。

请按照文档中的说明进行配置:

", - "how-to-configure-sms-provider": "如何配置短信提供商" - }, - "step4": { - "title": "配置功能:双因素认证(2FA)", - "content": "

通过双因素认证提高平台账户的安全性。

请按照文档中的说明进行配置:

", - "how-to-configure-2fa": "如何配置双因素认证(2FA)" - }, - "step5": { - "title": "配置功能:OAuth 2", - "content": "

使用 OAuth 2.0 的单点登录功能简化租户和客户用户的登录过程。

请按照文档中的说明进行配置:

", - "how-to-configure-oauth2": "如何配置 OAuth 2" - }, - "step6": { - "title": "配置功能:Slack", - "content": "

根据您设置的通知规则,通过 Slack 将通知发送给租户和客户用户。

请按照文档中的说明进行配置:

", - "how-to-configure-notifications": "如何配置 Slack" - } - }, - "tenant-admin": { - "step1": { - "title": "创建设备", - "content": "

让我们通过用户界面将您的第一个设备添加到平台上。按照文档中的说明进行操作:

", - "how-to-create-device": "如何创建设备" - }, - "step2": { - "title": "连接设备", - "content-before": "

要连接设备,您需要获取设备凭据。我们建议在本指南中使用默认的自动生成的凭据,即访问令牌。

  • 转到设备表格
  • 单击设备行以打开设备详细信息
  • 按下“复制访问令牌”按钮

使用简单的命令通过HTTP发布数据。不要忘记用您的设备访问令牌替换 $ACCESS_TOKEN

", - "ubuntu": { - "install-curl": "在 Ubuntu 安装 cURL:" - }, - "macos": { - "install-curl": "在 MacOS 安装 cURL:" - }, - "windows": { - "install-curl": "从 Windows10 b17063 开始,默认情况下提供cURL。" - }, - "replace-access-token": "使用您的设备令牌替换 $ACCESS_TOKEN :", - "content-after": "

您也可以使用其他协议,比如 MQTT、CoAP 等。

按照文档中的说明进行操作:

", - "how-to-connect-device": "如何连接设备" - }, - "step3": { - "title": "创建仪表盘", - "content": "

创建一个仪表盘,用于可视化来自资产、设备等实体的数据。

按照文档中的说明进行操作:

", - "how-to-create-dashboard": "如何创建仪表盘" - }, - "step4": { - "title": "配置告警规则", - "alarm-rules": "告警规则", - "content": "

让我们在温度达到25°C时触发告警。按照文档中的说明进行操作:

", - "how-to-configure-alarm-rules": "如何配置告警规则" - }, - "step5": { - "title": "创建告警", - "content-before": "

为了触发告警,请发送一个新的温度值,温度大于或等于26°C。

", - "replace-access-token": "请将$ACCESS_TOKEN替换为您的设备的令牌:", - "content-after": "

按照文档中的说明进行操作:

", - "how-to-create-alarm": "如何创建告警" - }, - "step6": { - "title": "创建客户并分配仪表盘", - "content": "

通过创建终端用户仪表盘,客户用户只能查看自己的设备,其他客户的数据将被隐藏。

按照文档中的说明进行操作:

", - "how-to-create-customer-and-assign-dashboard": "如何创建客户并分配仪表盘" - } - } } }, "icon": { @@ -5365,7 +5281,7 @@ "row-click": "点击行时", "polygon-click": "单击多边形", "marker-click": "点击标记时", - "circle-click": "On circle click", + "circle-click": "在圆圈上单击", "tooltip-tag-action": "Tooltip tag action", "node-selected": "选择节点时", "element-click": "点击HTML元素时", From 0e8f5fbe36eebc9630177ef3593e01d16faaa1dc Mon Sep 17 00:00:00 2001 From: Chantsova Ekaterina Date: Mon, 28 Aug 2023 17:51:02 +0300 Subject: [PATCH 5/7] UI: restore option to hide clear button for image input --- ui-ngx/src/app/shared/components/image-input.component.html | 4 ++-- ui-ngx/src/app/shared/components/image-input.component.ts | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ui-ngx/src/app/shared/components/image-input.component.html b/ui-ngx/src/app/shared/components/image-input.component.html index 2786d626b6..2ed771d8b2 100644 --- a/ui-ngx/src/app/shared/components/image-input.component.html +++ b/ui-ngx/src/app/shared/components/image-input.component.html @@ -25,7 +25,7 @@
{{ 'dashboard.empty-image' | translate }}
-
-