/*
 * Copyright © 2016-2018 The Thingsboard Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
export default function addLocaleChinese(locales) {
    var zh_CN = {
        "access": {
            "unauthorized": "未授权",
            "unauthorized-access": "未授权访问",
            "unauthorized-access-text": "您需要登陆才能访问这个资源！",
            "access-forbidden": "禁止访问",
            "access-forbidden-text": "您没有访问此位置的权限<br/>如果您仍希望访问此位置,请尝试使用其他用户登录。",
            "refresh-token-expired": "会话已过期",
            "refresh-token-failed": "无法刷新会话"
        },
        "action": {
            "activate": "激活",
            "suspend": "暂停",
            "save": "保存",
            "saveAs": "另存为",
            "cancel": "取消",
            "ok": "确定",
            "delete": "删除",
            "add": "添加",
            "yes": "是",
            "no": "否",
            "update": "更新",
            "remove": "移除",
            "search": "查询",
            "assign": "分配",
            "unassign": "取消分配",
            "share": "分享",
            "make-private": "私有",
            "apply": "应用",
            "apply-changes": "应用更改",
            "edit-mode": "编辑模式",
            "enter-edit-mode": "进入编辑模式",
            "decline-changes": "撤销更改",
            "close": "关闭",
            "back": "后退",
            "run": "运行",
            "sign-in": "登录！",
            "edit": "编辑",
            "view": "查看",
            "create": "创建",
            "drag": "拖拽",
            "refresh": "刷新",
            "undo": "撤销",
            "copy": "复制",
            "paste": "粘贴",
            "copy-reference": "复制引用",
            "paste-reference": "粘贴引用",
            "import": "导入",
            "export": "导出",
            "share-via": "通过 {{provider}}分享"
        },
        "aggregation": {
            "aggregation": "聚合",
            "function": "数据聚合功能",
            "limit": "最大值",
            "group-interval": "分组间隔",
            "min": "最少值",
            "max": "最大值",
            "avg": "平均值",
            "sum": "求和",
            "count": "计数",
            "none": "空"
        },
        "admin": {
            "general": "常规",
            "general-settings": "常规设置",
            "outgoing-mail": "发送邮件",
            "outgoing-mail-settings": "发送邮件设置",
            "system-settings": "系统设置",
            "test-mail-sent": "测试邮件发送成功！",
            "base-url": "基本URL",
            "base-url-required": "基本URL必填。",
            "mail-from": "邮件来自",
            "mail-from-required": "邮件发件人必填。",
            "smtp-protocol": "SMTP协议",
            "smtp-host": "SMTP主机",
            "smtp-host-required": "SMTP主机必填。",
            "smtp-port": "SMTP端口",
            "smtp-port-required": "您必须提供一个smtp端口。",
            "smtp-port-invalid": "这看起来不是有效的smtp端口。",
            "timeout-msec": "超时（ms）",
            "timeout-required": "超时必填。",
            "timeout-invalid": "这看起来不像有效的超时值。",
            "enable-tls": "启用TLS",
            "send-test-mail": "发送测试邮件"
        },
        "alarm": {
            "alarm": "警告",
            "alarms": "警告",
            "select-alarm": "选择警告",
            "no-alarms-matching": "没有找到匹配 '{{entity}}' 的警告",
            "alarm-required": "警告必填",
            "alarm-status": "警告状态",
            "search-status": {
                "ANY": "所有",
                "ACTIVE": "已激活",
                "CLEARED": "已清除",
                "ACK": "已应答",
                "UNACK": "未应答"
            },
            "display-status": {
                "ACTIVE_UNACK": "激活未应答",
                "ACTIVE_ACK": "激活已应答",
                "CLEARED_UNACK": "清除未应答",
                "CLEARED_ACK": "清除已应答"
            },
            "no-alarms-prompt": "未发现警告",
            "created-time": "创建时间",
            "type": "类型",
            "severity": "严重程度",
            "originator": "起因",
            "originator-type": "起因类型",
            "details": "详情",
            "status": "状态",
            "alarm-details": "警告详情",
            "start-time": "开始时间",
            "end-time": "结束时间",
            "ack-time": "应答时间",
            "clear-time": "创建时间",
            "severity-critical": "危险",
            "severity-major": "重要",
            "severity-minor": "次要",
            "severity-warning": "警告",
            "severity-indeterminate": "不确定",
            "acknowledge": "应答",
            "clear": "清除",
            "search": "搜索警告",
            "selected-alarms": "已选择 { count, select, 1 {1 警告} other {# 警告} } ",
            "no-data": "无数据显示",
            "polling-interval": "警告轮询间隔(秒)",
            "polling-interval-required": "警告轮询间隔必填。",
            "min-polling-interval-message": "轮询间隔至少是1秒。",
            "aknowledge-alarms-title": "应答 { count, select, 1 {1 警告} other {# 警告} }",
            "aknowledge-alarms-text": "确定要应答 { count, select, 1 {1 警告} other {# 警告} }?",
            "clear-alarms-title": "清除 { count, select, 1 {1 警告} other {# 警告} }",
            "clear-alarms-text": "确定要清除 { count, select, 1 {1 警告} other {# 警告} }?"
        },
        "alias": {
            "add": "添加别名",
            "edit": "编辑别名",
            "name": "别名",
            "name-required": "别名必填",
            "duplicate-alias": "别名已经存在。",
            "filter-type-single-entity": "单个实体",
            "filter-type-entity-list": "实体列表",
            "filter-type-entity-name": "实体名称",
            "filter-type-state-entity": "实体（仪表板状态）",
            "filter-type-state-entity-description": "实体令牌（仪表板状态参数）",
            "filter-type-asset-type": "资产类型",
            "filter-type-asset-type-description": "类型为 '{{assetType}}' 的资产",
            "filter-type-asset-type-and-name-description": "类型为 '{{assetType}}' 且以 '{{prefix}}' 开头的资产",
            "filter-type-device-type": "设备类型",
            "filter-type-device-type-description": "类型为 '{{deviceType}}' 的设备",
            "filter-type-device-type-and-name-description": "类型为 '{{deviceType}}' 且以 '{{prefix}}' 开头的设备",
            "filter-type-relations-query": "关系查询",
            "filter-type-relations-query-description": "具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的 {{entities}} ",
            "filter-type-asset-search-query": "资产搜索查询",
            "filter-type-asset-search-query-description": "类型为 {{assetTypes}} 且具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的资产",
            "filter-type-device-search-query": "设备搜索查询",
            "filter-type-device-search-query-description": "类型为 {{deviceTypes}} 且具有 {{relationType}} 关联 {{direction}} {{rootEntity}} 的设备",
            "entity-filter": "实体过滤",
            "resolve-multiple": "解决为多实体",
            "filter-type": "过滤类型",
            "filter-type-required": "过滤类型必填。",
            "entity-filter-no-entity-matched": "未找到符合指定过滤条件的实体。",
            "no-entity-filter-specified": "没有指定实体过滤条件",
            "root-state-entity": "使用仪表板状态实体作为根实体",
            "root-entity": "根实体",
            "state-entity-parameter-name": "状态实体参数名称",
            "default-state-entity": "默认状态实体",
            "default-entity-parameter-name": "默认",
            "max-relation-level": "最大关系层级",
            "unlimited-level": "不限层级",
            "state-entity": "仪表板状态实体",
            "all-entities": "所有实体",
            "any-relation": "不限"
        },
        "asset": {
            "asset": "资产",
            "assets": "资产",
            "management": "资产管理",
            "view-assets": "查看资产",
            "add": "添加资产",
            "assign-to-customer": "分配给客户",
            "assign-asset-to-customer": "将资产分配给客户",
            "assign-asset-to-customer-text": "请选择要分配给客户的资产",
            "no-assets-text": "未找到资产",
            "assign-to-customer-text": "请选择客户以分配资产",
            "public": "公开",
            "assignedToCustomer": "分配客户",
            "make-public": "资产设为公开",
            "make-private": "资产设为私有",
            "unassign-from-customer": "取消分配客户",
            "delete": "删除资产",
            "asset-public": "资产公开",
            "asset-type": "资产类型",
            "asset-type-required": "资产类型必填。",
            "select-asset-type": "选择资产类型",
            "enter-asset-type": "输入资产类型",
            "any-asset": "Any asset",
            "no-asset-types-matching": "没有找到匹配 '{{entitySubtype}}' 的资产类型。",
            "asset-type-list-empty": "资产类型未选择。",
            "asset-types": "资产类型",
            "name": "名称",
            "name-required": "名称必填。",
            "description": "描述",
            "type": "类型",
            "type-required": "类型必填。",
            "details": "详情",
            "events": "事件",
            "add-asset-text": "添加新资产",
            "asset-details": "资产详情",
            "assign-assets": "分配资产",
            "assign-assets-text": "分配 { count, select, 1 {1 资产} other {# 资产} } 给客户",
            "delete-assets": "删除资产",
            "unassign-assets": "取消分配资产",
            "unassign-assets-action-title": "从客户处取消分配 { count, select, 1 {1 资产} other {# 资产} } ",
            "assign-new-asset": "分配新资产",
            "delete-asset-title": "确定要删除资产 '{{assetName}}'?",
            "delete-asset-text": "小心！确认后资产及其所有相关数据将不可恢复。",
            "delete-assets-title": "确定要删除 { count, select, 1 {1 资产} other {# 资产} }?",
            "delete-assets-action-title": "删除 { count, select, 1 {1 资产} other {# 资产} }",
            "delete-assets-text": "小心！确认后，所有选定的客户将被删除，所有相关数据将不可恢复。",
            "make-public-asset-title": "确定要将资产 '{{assetName}}' 设为公开?",
            "make-public-asset-text": "确认后资产及所有相关数据会被设为公开并对其他人所见。",
            "make-private-asset-title": "确定要将资产 '{{assetName}}' 设为私有?",
            "make-private-asset-text": "确认后资产及所有相关数据会被设为私有并对其他人不可见。",
            "unassign-asset-title": "确定要取消分配资产 '{{assetName}}'?",
            "unassign-asset-text": "确定后资产将被取消分配并对客户不可见。",
            "unassign-asset": "取消分配资产",
            "unassign-assets-title": "确定要取消分配 { count, select, 1 {1 资产} other {# 资产} }?",
            "unassign-assets-text": "确定后资产将被取消分配并对客户不可见。",
            "copyId": "复制资产ID",
            "idCopiedMessage": "资产ID已经复制到粘贴板",
            "select-asset": "选择资产",
            "no-assets-matching": "没有找到匹配 '{{entity}}' 的资产。",
            "asset-required": "资产必填",
            "name-starts-with": "资产名称以此开头"
        },
        "attribute": {
            "attributes": "属性",
            "latest-telemetry": "最新遥测",
            "attributes-scope": "设备属性范围",
            "scope-latest-telemetry": "最新遥测",
            "scope-client": "客户端属性",
            "scope-server": "服务端属性",
            "scope-shared": "共享属性",
            "add": "添加属性",
            "key": "键",
            "last-update-time": "最后更新时间",
            "key-required": "属性键必填。",
            "value": "值",
            "value-required": "属性值必填。",
            "delete-attributes-title": "您确定要删除 { count, select, 1 {1 属性} other {# 属性} }吗？",
            "delete-attributes-text": "注意,确认后所有选中的属性都会被删除。",
            "delete-attributes": "删除属性",
            "enter-attribute-value": "输入属性值",
            "show-on-widget": "在部件上显示",
            "widget-mode": "部件模式",
            "next-widget": "下一个部件",
            "prev-widget": "上一个部件",
            "add-to-dashboard": "添加到仪表板",
            "add-widget-to-dashboard": "将部件添加到仪表板",
            "selected-attributes": "{ count, select, 1 {1 属性} other {# 属性} } 被选中",
            "selected-telemetry": "{ count, select, 1 {1 遥测} other {# 遥测} } 被选中"
        },
        "audit-log": {
            "audit": "审计",
            "audit-logs": "审计日志",
            "timestamp": "时间戳",
            "entity-type": "实体类型",
            "entity-name": "实体名称",
            "user": "用户",
            "type": "类型",
            "status": "状态",
            "details": "详情",
            "type-added": "添加",
            "type-deleted": "删除",
            "type-updated": "更新",
            "type-attributes-updated": "更新属性",
            "type-attributes-deleted": "删除属性",
            "type-rpc-call": "RPC调用",
            "type-credentials-updated": "更新凭证",
            "type-assigned-to-customer": "分配给客户",
            "type-unassigned-from-customer": "未分配给客户",
            "type-activated": "激活",
            "type-suspended": "暂停",
            "type-credentials-read": "读取凭证",
            "type-attributes-read": "读取属性",
            "status-success": "成功",
            "status-failure": "失败",
            "audit-log-details": "审计日志详情",
            "no-audit-logs-prompt": "找不到日志",
            "action-data": "活动数据",
            "failure-details": "失败详情",
            "search": "查找审计日志",
            "clear-search": "清空查找"
        },
        "confirm-on-exit": {
            "message": "您有未保存的更改。确定要离开此页吗？",
            "html-message": "您有未保存的更改。<br/> 确定要离开此页面吗？",
            "title": "未保存的更改"
        },
        "contact": {
            "country": "国家",
            "city": "城市",
            "state": "州",
            "postal-code": "邮政编码",
            "postal-code-invalid": "只允许数字。",
            "address": "地址",
            "address2": "地址2",
            "phone": "手机",
            "email": "邮箱",
            "no-address": "无地址"
        },
        "common": {
            "username": "用户名",
            "password": "密码",
            "enter-username": "输入用户名",
            "enter-password": "输入密码",
            "enter-search": "输入检索条件"
        },
        "content-type": { // TODO
            "json": "Json",
            "text": "Text",
            "binary": "Binary (Base64)"
        },
        "customer": {
            "customer": "客户",
            "customers": "客户",
            "management": "客户管理",
            "dashboard": "客户仪表板",
            "dashboards": "客户仪表板",
            "devices": "客户设备",
            "assets": "客户资产",
            "public-dashboards": "公共仪表板",
            "public-devices": "公共设备",
            "public-assets": "公共资产",
            "add": "添加客户",
            "delete": "删除客户",
            "manage-customer-users": "管理客户用户",
            "manage-customer-devices": "管理客户设备",
            "manage-customer-dashboards": "管理客户仪表板",
            "manage-public-devices": "管理公共设备",
            "manage-public-dashboards": "管理公共仪表板",
            "manage-customer-assets": "管理客户资产",
            "manage-public-assets": "管理公共资产",
            "add-customer-text": "添加新客户",
            "no-customers-text": "没有找到客户",
            "customer-details": "客户详情",
            "delete-customer-title": "您确定要删除客户'{{customerTitle}}'吗？",
            "delete-customer-text": "小心！确认后，客户及其所有相关数据将不可恢复。",
            "delete-customers-title": "您确定要删除 { count, select, 1 {1 客户} other {# 客户} }吗？",
            "delete-customers-action-title": "删除 { count, select, 1 {1 客户} other {# 客户} }",
            "delete-customers-text": "小心！确认后，所有选定的客户将被删除，所有相关数据将不可恢复。",
            "manage-users": "管理用户",
            "manage-assets": "管理资产",
            "manage-devices": "管理设备",
            "manage-dashboards": "管理仪表板",
            "title": "标题",
            "title-required": "需要标题",
            "description": "描述",
            "details": "详情",
            "events": "事件",
            "copyId": "复制客户ID",
            "idCopiedMessage": "客户ID已复制到粘贴板",
            "select-customer": "选择客户",
            "no-customers-matching": "没有找到匹配 '{{entity}}' 的客户。",
            "customer-required": "客户是必选项"
        },
        "datetime": {
            "date-from": "日期从",
            "time-from": "时间从",
            "date-to": "日期到",
            "time-to": "时间到"
        },
        "dashboard": {
            "dashboard": "仪表板",
            "dashboards": "仪表板库",
            "management": "仪表板管理",
            "view-dashboards": "查看仪表板",
            "add": "添加仪表板",
            "assign-dashboard-to-customer": "将仪表板分配给客户",
            "assign-dashboard-to-customer-text": "请选择要分配给客户的仪表板",
            "assign-to-customer-text": "请选择客户分配仪表板",
            "assign-to-customer": "分配给客户",
            "unassign-from-customer": "取消分配客户",
            "make-public": "仪表板设为公开",
            "make-private": "仪表板设为私有",
            "no-dashboards-text": "没有找到仪表板",
            "no-widgets": "没有配置部件",
            "add-widget": "添加新的部件",
            "title": "标题",
            "select-widget-title": "选择部件",
            "select-widget-subtitle": "可用的部件类型列表",
            "delete": "删除仪表板",
            "title-required": "需要标题。",
            "description": "描述",
            "details": "详情",
            "dashboard-details": "仪表板详情",
            "add-dashboard-text": "添加新的仪表板",
            "assign-dashboards": "分配仪表板",
            "assign-new-dashboard": "分配新的仪表板",
            "assign-dashboards-text": "分配 { count, select, 1 {1 仪表板} other {# 仪表板} } 给客户",
            "delete-dashboards": "删除仪表板",
            "unassign-dashboards": "取消分配仪表板",
            "unassign-dashboards-action-title": "从客户处取消分配 { count, select, 1 {1 仪表板} other {# 仪表板} } ",
            "delete-dashboard-title": "您确定要删除仪表板 '{{dashboardTitle}}'吗？",
            "delete-dashboard-text": "小心！确认后仪表板及其所有相关数据将不可恢复。",
            "delete-dashboards-title": "你确定你要删除 { count, select, 1 {1 仪表板} other {# 仪表板} }吗？",
            "delete-dashboards-action-title": "删除 { count, select, 1 {1 仪表板} other {# 仪表板} }",
            "delete-dashboards-text": "小心！确认后所有选定的仪表板将被删除，所有相关数据将不可恢复。",
            "unassign-dashboard-title": "您确定要取消分配仪表板 '{{dashboardTitle}}'吗？",
            "unassign-dashboard-text": "确认后，面板将被取消分配，客户将无法访问。",
            "unassign-dashboard": "取消分配仪表板",
            "unassign-dashboards-title": "您确定要取消分配仪表板 { count, select, 1 {1 仪表板} other {# 仪表板} } 吗？",
            "unassign-dashboards-text": "确认后，所有选定的仪表板将被取消分配，客户将无法访问。",
            "public-dashboard-title": "仪表板现已公布",
            "public-dashboard-text": "你的仪表板 <b>{{dashboardTitle}}</b> 已被公开，可通过如下 <a href='{{publicLink}}' target='_blank'>链接</a>访问:",
            "public-dashboard-notice": "<b>提示：</b> 不要忘记将相关设备公开以访问其数据。",
            "make-private-dashboard-title": "您确定要将仪表板 '{{dashboardTitle}}' 设为私有吗？",
            "make-private-dashboard-text": "确认后，仪表板将被设为私有，不能被其他人访问。",
            "make-private-dashboard": "仪表板设为私有",
            "socialshare-text": "'{{dashboardTitle}}' 由Thingsboard提供支持",
            "socialshare-title": "'{{dashboardTitle}}' 由Thingsboard提供支持",
            "select-dashboard": "选择仪表板",
            "no-dashboards-matching": "找不到符合 '{{entity}}' 的仪表板。",
            "dashboard-required": "仪表板必填。",
            "select-existing": "选择现有仪表板",
            "create-new": "创建新的仪表板",
            "new-dashboard-title": "新仪表板标题",
            "open-dashboard": "打开仪表板",
            "set-background": "设置背景",
            "background-color": "背景颜色",
            "background-image": "背景图片",
            "background-size-mode": "背景大小模式",
            "no-image": "无图像选择",
            "drop-image": "拖拽图像或单击以选择要上传的文件。",
            "settings": "设置",
            "columns-count": "列数",
            "columns-count-required": "需要列数。",
            "min-columns-count-message": "只允许最少10列",
            "max-columns-count-message": "只允许最多1000列",
            "widgets-margins": "部件间边距",
            "horizontal-margin": "水平边距",
            "horizontal-margin-required": "需要水平边距值。",
            "min-horizontal-margin-message": "只允许0作为最小水平边距值。",
            "max-horizontal-margin-message": "只允许50作为最大水平边距值。",
            "vertical-margin": "垂直边距",
            "vertical-margin-required": "需要垂直边距值。",
            "min-vertical-margin-message": "只允许0作为最小垂直边距值。",
            "max-vertical-margin-message": "只允许50作为最大垂直边距值。",
            "autofill-height": "自动填充布局高度",
            "mobile-layout": "移动端布局设置",
            "mobile-row-height": "移动端行高距（px）",
            "mobile-row-height-required": "移动端行高距必填。",
            "min-mobile-row-height-message": "移动端行高距至少5px。",
            "max-mobile-row-height-message": "移动端行高距最多200px。",
            "display-title": "显示仪表板标题",
            "toolbar-always-open": "工具栏常驻",
            "title-color": "标题颜色",
            "display-dashboards-selection": "显示仪表板选项",
            "display-entities-selection": "显示实体选项",
            "display-dashboard-timewindow": "显示时间窗口",
            "display-dashboard-export": "显示导出",
            "import": "导入仪表板",
            "export": "导出仪表板",
            "export-failed-error": "无法导出仪表板: {{error}}",
            "create-new-dashboard": "创建新的仪表板",
            "dashboard-file": "仪表板文件",
            "invalid-dashboard-file-error": "无法导入仪表板: 仪表板数据结构无效。",
            "dashboard-import-missing-aliases-title": "配置导入仪表板使用的别名",
            "create-new-widget": "创建新部件",
            "import-widget": "导入部件",
            "widget-file": "部件文件",
            "invalid-widget-file-error": "无法导入窗口部件: 窗口部件数据结构无效。",
            "widget-import-missing-aliases-title": "配置导入的窗口部件使用的别名",
            "open-toolbar": "打开仪表板工具栏",
            "close-toolbar": "关闭工具栏",
            "configuration-error": "配置错误",
            "alias-resolution-error-title": "仪表板别名配置错误",
            "invalid-aliases-config": "无法找到与某些别名过滤器匹配的任何设备。<br/>请联系您的管理员以解决此问题。",
            "select-devices": "选择设备",
            "assignedToCustomer": "分配给客户",
            "public": "公共",
            "public-link": "公共链接",
            "copy-public-link": "复制公共链接",
            "public-link-copied-message": "仪表板的公共链接已被复制到剪贴板",
            "manage-states": "仪表板状态管理",
            "states": "仪表板状态",
            "search-states": "仪表板状态检索",
            "selected-states": "{ count, select, 1 {1 仪表板状态} other {# 仪表板状态} } 选中",
            "edit-state": "仪表板状态编辑",
            "delete-state": "删除仪表板状态",
            "add-state": "添加仪表板状态",
            "state": "仪表板状态",
            "state-name": "状态名",
            "state-name-required": "仪表板状态名必填。",
            "state-id": "状态ID",
            "state-id-required": "仪表板状态ID必填。",
            "state-id-exists": "仪表板状态ID已经存在。",
            "is-root-state": "根状态",
            "delete-state-title": "删除仪表板状态",
            "delete-state-text": "确定要删除仪表板状态 '{{stateName}}' 吗?",
            "show-details": "显示详情",
            "hide-details": "隐藏详情",
            "select-state": "选择目标状态",
            "state-controller": "状态控制"
        },
        "datakey": {
            "settings": "设置",
            "advanced": "高级",
            "label": "标签",
            "color": "颜色",
            "units": "单位符号",
            "decimals": "小数位数",
            "data-generation-func": "数据生成功能",
            "use-data-post-processing-func": "使用数据后处理功能",
            "configuration": "数据键配置",
            "timeseries": "时间序列",
            "attributes": "属性",
            "alarm": "Alarm fields",
            "timeseries-required": "需要设备时间序列。",
            "timeseries-or-attributes-required": "设备时间/属性必填。",
            "maximum-timeseries-or-attributes": "最大允许 { count, select, 1 {1 时间序列/属性} other {# 时间序列/属性} }",
            "alarm-fields-required": "警告字段必填。",
            "function-types": "函数类型",
            "function-types-required": "需要函数类型。",
            "maximum-function-types": "至少需要 { count, select, 1 {1 函数类型} other {# 函数类型} }"
        },
        "datasource": {
            "type": "数据源类型",
            "name": "数据源名称",
            "add-datasource-prompt": "请添加数据源"
        },
        "details": {
            "edit-mode": "编辑模式",
            "toggle-edit-mode": "切换编辑模式"
        },
        "device": {
            "device": "设备",
            "device-required": "设备必填",
            "devices": "设备",
            "management": "设备管理",
            "view-devices": "查看设备",
            "device-alias": "设备别名",
            "aliases": "设备别名",
            "no-alias-matching": "'{{alias}}' 没有找到。",
            "no-aliases-found": "找不到别名。",
            "no-key-matching": "'{{key}}' 没有找到。",
            "no-keys-found": "找不到密钥。",
            "create-new-alias": "创建一个新的！",
            "create-new-key": "创建一个新的！",
            "duplicate-alias-error": "找到重复别名 '{{alias}}'。 <br> 设备别名必须是唯一的。",
            "configure-alias": "配置 '{{alias}}' 别名",
            "no-devices-matching": "找不到与 '{{entity}}' 匹配的设备。",
            "alias": "别名",
            "alias-required": "需要设备别名。",
            "remove-alias": "删除设备别名",
            "add-alias": "添加设备别名",
            "name-starts-with": "名称前缀",
            "device-list": "设备列表",
            "use-device-name-filter": "使用过滤器",
            "device-list-empty": "没有被选中的设备",
            "device-name-filter-required": "设备名称过滤器必填。",
            "device-name-filter-no-device-matched": "找不到以'{{device}}' 开头的设备。",
            "add": "添加设备",
            "assign-to-customer": "分配给客户",
            "assign-device-to-customer": "将设备分配给客户",
            "assign-device-to-customer-text": "请选择要分配给客户的设备",
            "make-public": "公开",
            "make-private": "私有",
            "no-devices-text": "找不到设备",
            "assign-to-customer-text": "请选择客户分配设备",
            "device-details": "设备详细信息",
            "add-device-text": "添加新设备",
            "credentials": "凭据",
            "manage-credentials": "管理凭据",
            "delete": "删除设备",
            "assign-devices": "分配设备",
            "assign-devices-text": "将{count,select,1 {1 设备} other {# 设备}}分配给客户",
            "delete-devices": "删除设备",
            "unassign-from-customer": "取消分配客户",
            "unassign-devices": "取消分配设备",
            "unassign-devices-action-title": "从客户处取消分配{count,select,1 {1 设备} other {# 设备}}",
            "assign-new-device": "分配新设备",
            "make-public-device-title": "您确定要将设备 '{{deviceName}}' 设为公开吗？",
            "make-public-device-text": "确认后，设备及其所有数据将被设为公开并可被其他人访问。",
            "make-private-device-title": "您确定要将设备 '{{deviceName}}' 设为私有吗？",
            "make-private-device-text": "确认后，设备及其所有数据将被设为私有，不被其他人访问。",
            "view-credentials": "查看凭据",
            "delete-device-title": "您确定要删除设备的{{deviceName}}吗？",
            "delete-device-text": "小心！确认后设备及其所有相关数据将不可恢复。",
            "delete-devices-title": "您确定要删除{count,select,1 {1 设备} other {# 设备}} 吗？",
            "delete-devices-action-title": "删除 {count,select,1 {1 设备} other {# 设备}}",
            "delete-devices-text": "小心！确认后所有选定的设备将被删除,所有相关数据将不可恢复。",
            "unassign-device-title": "您确定要取消分配设备 '{{deviceName}}'？",
            "unassign-device-text": "确认后,设备将被取消分配,客户将无法访问。",
            "unassign-device": "取消分配设备",
            "unassign-devices-title": "您确定要取消分配{count,select,1 {1 设备} other {# 设备}} 吗？",
            "unassign-devices-text": "确认后,所有选定的设备将被取消分配,并且客户将无法访问。",
            "device-credentials": "设备凭据",
            "credentials-type": "凭据类型",
            "access-token": "访问令牌",
            "access-token-required": "需要访问令牌",
            "access-token-invalid": "访问令牌长度必须为1到20个字符。",
            "rsa-key": "RSA公钥",
            "rsa-key-required": "需要RSA公钥",
            "secret": "密钥",
            "secret-required": "密钥必填",
            "device-type": "设备类型",
            "device-type-required": "设备类型必填。",
            "select-device-type": "选择设备类型",
            "enter-device-type": "输入设备类型",
            "any-device": "任意设备",
            "no-device-types-matching": "没有找到符合 '{{entitySubtype}}' 的设备类型。",
            "device-type-list-empty": "未选择设备类型",
            "device-types": "设备类型",
            "name": "名称",
            "name-required": "名称必填。",
            "description": "说明",
            "events": "事件",
            "details": "详细信息",
            "copyId": "复制设备ID",
            "copyAccessToken": "复制访问令牌",
            "idCopiedMessage": "设备ID已复制到剪贴板",
            "accessTokenCopiedMessage": "设备访问令牌已复制到剪贴板",
            "assignedToCustomer": "分配给客户",
            "unable-delete-device-alias-title": "无法删除设备别名",
            "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除，因为它被下列部件所使用: <br/> {{widgetsList}}",
            "is-gateway": "是网关",
            "public": "公开",
            "device-public": "设备公开",
            "select-device": "选择设备"
        },
        "dialog": {
            "close": "关闭对话框"
        },
        "error": {
            "unable-to-connect": "无法连接到服务器！请检查您的互联网连接。",
            "unhandled-error-code": "未处理的错误代码: {{errorCode}}",
            "unknown-error": "未知错误"
        },
        "entity": {
            "entity": "实体",
            "entities": "实体",
            "aliases": "实体别名",
            "entity-alias": "实体别名",
            "unable-delete-entity-alias-title": "无法删除实体别名",
            "unable-delete-entity-alias-text": "实体别名 '{{entityAlias}}' 被以下部件使用不能删除：<br/>{{widgetsList}}",
            "duplicate-alias-error": "别名 '{{alias}}' 重复。<br>同一仪表板别名必须唯一。",
            "missing-entity-filter-error": "别名 '{{alias}}' 缺少过滤器",
            "configure-alias": "别名 '{{alias}}' 配置",
            "alias": "别名",
            "alias-required": "实体别名必填。",
            "remove-alias": "移除实体别名",
            "add-alias": "添加实体别名",
            "entity-list": "实体列表",
            "entity-type": "实体类型",
            "entity-types": "实体类型",
            "entity-type-list": "实体类型列表",
            "any-entity": "任意实体",
            "enter-entity-type": "输入实体类型",
            "no-entities-matching": "没有找到符合 '{{entity}}' 的实体。",
            "no-entity-types-matching": "没有找到符合 '{{entityType}}' 类型的实体。",
            "name-starts-with": "名称开始于",
            "use-entity-name-filter": "用户过滤",
            "entity-list-empty": "没有选择实体。",
            "entity-type-list-empty": "没有选择实体类型。",
            "entity-name-filter-required": "实体名过滤器必填。",
            "entity-name-filter-no-entity-matched": "没有找到以 '{{entity}}' 开头的实体",
            "all-subtypes": "所有",
            "select-entities": "选择实体",
            "no-aliases-found": "没有找到别名",
            "no-alias-matching": "没有找到 '{{alias}}'",
            "create-new-alias": "创建新别名",
            "key": "键",
            "key-name": "键名",
            "no-keys-found": "没有找到键",
            "no-key-matching": "没有找到键 '{{key}}'",
            "create-new-key": "创建新键",
            "type": "类型",
            "type-required": "实体类型必填。",
            "type-device": "设备",
            "type-devices": "设备",
            "list-of-devices": "{ count, select, 1 {设备} other {# 设备列表} }",
            "device-name-starts-with": "以 '{{prefix}}' 开头的设备",
            "type-asset": "资产",
            "type-assets": "资产",
            "list-of-assets": "{ count, select, 1 {资产} other {# 资产列表} }",
            "asset-name-starts-with": "以 '{{prefix}}' 开头的资产",
            "type-rule": "规则",
            "type-rules": "规则",
            "list-of-rules": "{ count, select, 1 {规则} other {# 规则列表} }",
            "rule-name-starts-with": "以 '{{prefix}}' 开头的规则",
            "type-plugin": "插件",
            "type-plugins": "插件",
            "list-of-plugins": "{ count, select, 1 {插件} other {# 插件列表} }",
            "plugin-name-starts-with": "以 '{{prefix}}' 开头的插件",
            "type-tenant": "租户",
            "type-tenants": "租户",
            "list-of-tenants": "{ count, select, 1 {租户} other {# 租户列表} }",
            "tenant-name-starts-with": "以 '{{prefix}}' 开头的租户",
            "type-customer": "客户",
            "type-customers": "客户",
            "list-of-customers": "{ count, select, 1 {客户} other {# 客户列表} }",
            "customer-name-starts-with": "以 '{{prefix}}' 开头的客户",
            "type-user": "用户",
            "type-users": "用户",
            "list-of-users": "{ count, select, 1 {用户} other {# 用户列表} }",
            "user-name-starts-with": "以 '{{prefix}}' 开头的用户",
            "type-dashboard": "仪表板",
            "type-dashboards": "仪表板",
            "list-of-dashboards": "{ count, select, 1 {仪表板} other {# 仪表板列表} }",
            "dashboard-name-starts-with": "以 '{{prefix}}' 开头的仪表板",
            "type-alarm": "警告",
            "type-alarms": "警告",
            "list-of-alarms": "{ count, select, 1 {警告} other {# 警告列表} }",
            "alarm-name-starts-with": "以 '{{prefix}}' 开头的警告",
            "search": "实体检索",
            "selected-entities": "{ count, select, 1 {1 实体} other {# 实体} } 被选中",
            "entity-name": "实体名",
            "details": "实体详情",
            "no-entities-prompt": "没有找到实体",
            "no-data": "无数据"
        },
        "event": {
            "event-type": "事件类型",
            "type-error": "错误",
            "type-lc-event": "生命周期事件",
            "type-stats": "类型统计",
            "no-events-prompt": "找不到事件",
            "error": "错误",
            "alarm": "报警",
            "event-time": "事件时间",
            "server": "服务器",
            "body": "整体",
            "method": "方法",
            "event": "事件",
            "status": "状态",
            "success": "成功",
            "failed": "失败",
            "messages-processed": "消息处理",
            "errors-occurred": "错误发生"
        },
        "extension": { // TODO
            "extensions": "Extensions",
            "selected-extensions": "{ count, select, 1 {1 extension} other {# extensions} } selected",
            "type": "Type",
            "key": "Key",
            "value": "Value",
            "id": "Id",
            "extension-id": "Extension id",
            "extension-type": "Extension type",
            "transformer-json": "JSON *",
            "unique-id-required": "Current extension id already exists.",
            "delete": "Delete extension",
            "add": "Add extension",
            "edit": "Edit extension",
            "delete-extension-title": "Are you sure you want to delete the extension '{{extensionId}}'?",
            "delete-extension-text": "Be careful, after the confirmation the extension and all related data will become unrecoverable.",
            "delete-extensions-title": "Are you sure you want to delete { count, select, 1 {1 extension} other {# extensions} }?",
            "delete-extensions-text": "Be careful, after the confirmation all selected extensions will be removed.",
            "converters": "Converters",
            "converter-id": "Converter id",
            "configuration": "Configuration",
            "converter-configurations": "Converter configurations",
            "token": "Security token",
            "add-converter": "Add converter",
            "add-config": "Add converter configuration",
            "device-name-expression": "Device name expression",
            "device-type-expression": "Device type expression",
            "custom": "Custom",
            "to-double": "To Double",
            "transformer": "Transformer",
            "json-required": "Transformer json is required.",
            "json-parse": "Unable to parse transformer json.",
            "attributes": "Attributes",
            "add-attribute": "Add attribute",
            "add-map": "Add mapping element",
            "timeseries": "Timeseries",
            "add-timeseries": "Add timeseries",
            "field-required": "Field is required",
            "brokers": "Brokers",
            "add-broker": "Add broker",
            "host": "Host",
            "port": "Port",
            "port-range": "Port should be in a range from 1 to 65535.",
            "ssl": "Ssl",
            "credentials": "Credentials",
            "username": "Username",
            "password": "Password",
            "retry-interval": "Retry interval in milliseconds",
            "anonymous": "Anonymous",
            "basic": "Basic",
            "pem": "PEM",
            "ca-cert": "CA certificate file *",
            "private-key": "Private key file *",
            "cert": "Certificate file *",
            "no-file": "No file selected.",
            "drop-file": "Drop a file or click to select a file to upload.",
            "mapping": "Mapping",
            "topic-filter": "Topic filter",
            "converter-type": "Converter type",
            "converter-json": "Json",
            "json-name-expression": "Device name json expression",
            "topic-name-expression": "Device name topic expression",
            "json-type-expression": "Device type json expression",
            "topic-type-expression": "Device type topic expression",
            "attribute-key-expression": "Attribute key expression",
            "attr-json-key-expression": "Attribute key json expression",
            "attr-topic-key-expression": "Attribute key topic expression",
            "request-id-expression": "Request id expression",
            "request-id-json-expression": "Request id json expression",
            "request-id-topic-expression": "Request id topic expression",
            "response-topic-expression": "Response topic expression",
            "value-expression": "Value expression",
            "topic": "Topic",
            "timeout": "Timeout in milliseconds",
            "converter-json-required": "Converter json is required.",
            "converter-json-parse": "Unable to parse converter json.",
            "filter-expression": "Filter expression",
            "connect-requests": "Connect requests",
            "add-connect-request": "Add connect request",
            "disconnect-requests": "Disconnect requests",
            "add-disconnect-request": "Add disconnect request",
            "attribute-requests": "Attribute requests",
            "add-attribute-request": "Add attribute request",
            "attribute-updates": "Attribute updates",
            "add-attribute-update": "Add attribute update",
            "server-side-rpc": "Server side RPC",
            "add-server-side-rpc-request": "Add server-side RPC request",
            "device-name-filter": "Device name filter",
            "attribute-filter": "Attribute filter",
            "method-filter": "Method filter",
            "request-topic-expression": "Request topic expression",
            "response-timeout": "Response timeout in milliseconds",
            "topic-expression": "Topic expression",
            "client-scope": "Client scope",
            "add-device": "Add device",
            "opc-server": "Servers",
            "opc-add-server": "Add server",
            "opc-add-server-prompt": "Please add server",
            "opc-application-name": "Application name",
            "opc-application-uri": "Application uri",
            "opc-scan-period-in-seconds": "Scan period in seconds",
            "opc-security": "Security",
            "opc-identity": "Identity",
            "opc-keystore": "Keystore",
            "opc-type": "Type",
            "opc-keystore-type": "Type",
            "opc-keystore-location": "Location *",
            "opc-keystore-password": "Password",
            "opc-keystore-alias": "Alias",
            "opc-keystore-key-password": "Key password",
            "opc-device-node-pattern": "Device node pattern",
            "opc-device-name-pattern": "Device name pattern",
            "modbus-server": "Servers/slaves",
            "modbus-add-server": "Add server/slave",
            "modbus-add-server-prompt": "Please add server/slave",
            "modbus-transport": "Transport",
            "modbus-port-name": "Serial port name",
            "modbus-encoding": "Encoding",
            "modbus-parity": "Parity",
            "modbus-baudrate": "Baud rate",
            "modbus-databits": "Data bits",
            "modbus-stopbits": "Stop bits",
            "modbus-databits-range": "Data bits should be in a range from 7 to 8.",
            "modbus-stopbits-range": "Stop bits should be in a range from 1 to 2.",
            "modbus-unit-id": "Unit ID",
            "modbus-unit-id-range": "Unit ID should be in a range from 1 to 247.",
            "modbus-device-name": "Device name",
            "modbus-poll-period": "Poll period (ms)",
            "modbus-attributes-poll-period": "Attributes poll period (ms)",
            "modbus-timeseries-poll-period": "Timeseries poll period (ms)",
            "modbus-poll-period-range": "Poll period should be positive value.",
            "modbus-tag": "Tag",
            "modbus-function": "Function",
            "modbus-register-address": "Register address",
            "modbus-register-address-range": "Register address should be in a range from 0 to 65535.",
            "modbus-register-bit-index": "Bit index",
            "modbus-register-bit-index-range": "Bit index should be in a range from 0 to 15.",
            "modbus-register-count": "Register count",
            "modbus-register-count-range": "Register count should be a positive value.",
            "modbus-byte-order": "Byte order",

            "sync": {
                "status": "Status",
                "sync": "Sync",
                "not-sync": "Not sync",
                "last-sync-time": "Last sync time",
                "not-available": "Not available"
            },

            "export-extensions-configuration": "Export extensions configuration",
            "import-extensions-configuration": "Import extensions configuration",
            "import-extensions": "Import extensions",
            "import-extension": "Import extension",
            "export-extension": "Export extension",
            "file": "Extensions file",
            "invalid-file-error": "Invalid extension file"
        },
        "fullscreen": {
            "expand": "展开到全屏",
            "exit": "退出全屏",
            "toggle": "切换全屏模式",
            "fullscreen": "全屏"
        },
        "function": {
            "function": "函数"
        },
        "grid": {
            "delete-item-title": "您确定要删除此项吗？",
            "delete-item-text": "注意,确认后此项及其所有相关数据将变得不可恢复。",
            "delete-items-title": "你确定你要删除 { count, select, 1 {1 项} other {# 项} }吗？",
            "delete-items-action-title": "删除 { count, select, 1 {1 项} other {# 项} }",
            "delete-items-text": "注意,确认后所有选择的项目将被删除,所有相关数据将不可恢复。",
            "add-item-text": "添加新项目",
            "no-items-text": "没有找到项目",
            "item-details": "项目详细信息",
            "delete-item": "删除项目",
            "delete-items": "删除项目",
            "scroll-to-top": "滚动到顶部"
        },
        "help": {
            "goto-help-page": "转到帮助页面"
        },
        "home": {
            "home": "首页",
            "profile": "属性",
            "logout": "注销",
            "menu": "菜单",
            "avatar": "头像",
            "open-user-menu": "打开用户菜单"
        },
        "import": {
            "no-file": "没有选择文件",
            "drop-file": "拖动一个JSON文件或者单击以选择要上传的文件。"
        },
        "item": {
            "selected": "选择"
        },
        "js-func": {
            "no-return-error": "函数必须返回值！",
            "return-type-mismatch": "函数必须返回 '{{type}}' 类型的值！"
        },
        "key-val": { // TODO
            "key": "Key",
            "value": "Value",
            "remove-entry": "Remove entry",
            "add-entry": "Add entry",
            "no-data": "No entries"
        },
        "layout": {
            "layout": "布局",
            "manage": "布局管理",
            "settings": "布局设置",
            "color": "颜色",
            "main": "主体",
            "right": "右侧",
            "select": "选择目标布局"
        },
        "legend": {
            "position": "图例位置",
            "show-max": "显示最大值",
            "show-min": "显示最小值",
            "show-avg": "显示平均值",
            "show-total": "显示总数",
            "settings": "图例设置",
            "min": "最小值",
            "max": "最大值",
            "avg": "平均值",
            "total": "总数"
        },
        "login": {
            "login": "登录",
            "request-password-reset": "请求密码重置",
            "reset-password": "重置密码",
            "create-password": "创建密码",
            "passwords-mismatch-error": "输入的密码必须相同！",
            "password-again": "再次输入密码",
            "sign-in": "登录 ",
            "username": "用户名（电子邮件）",
            "remember-me": "记住我",
            "forgot-password": "忘记密码？",
            "password-reset": "密码重置",
            "new-password": "新密码",
            "new-password-again": "再次输入新密码",
            "password-link-sent-message": "密码重置链接已成功发送！",
            "email": "电子邮件"
        },
        "position": {
            "top": "顶部",
            "bottom": "底部",
            "left": "左侧",
            "right": "右侧"
        },
        "profile": {
            "profile": "属性",
            "change-password": "更改密码",
            "current-password": "当前密码"
        },
        "relation": {
            "relations": "关联",
            "direction": "方向",
            "search-direction": {
                "FROM": "从",
                "TO": "到"
            },
            "direction-type": {
                "FROM": "从",
                "TO": "到"
            },
            "from-relations": "向外的关联",
            "to-relations": "向内的关联",
            "selected-relations": "{ count, select, 1 {1 关联} other {# 关联} } 被选中",
            "type": "类型",
            "to-entity-type": "到实体类型",
            "to-entity-name": "到实体名称",
            "from-entity-type": "从实体类型",
            "from-entity-name": "从实体类型",
            "to-entity": "到实体",
            "from-entity": "从实体",
            "delete": "删除关联",
            "relation-type": "关联类型",
            "relation-type-required": "关联类型必填",
            "any-relation-type": "任意类型",
            "add": "添加关联",
            "edit": "编辑关联",
            "delete-to-relation-title": "确定要删除实体 '{{entityName}}' 的关联吗?",
            "delete-to-relation-text": "确定删除后实体 '{{entityName}}' 将取消与当前实体的关联关系。",
            "delete-to-relations-title": "确定要删除 { count, select, 1 {1 关联} other {# 关联} }?",
            "delete-to-relations-text": "确定删除所有选择的关联关系后，与当前实体对应的所有关联关系将被移除。",
            "delete-from-relation-title": "确定要从实体 '{{entityName}}' 删除关联吗?",
            "delete-from-relation-text": "确定删除后，当前实体将与实体 '{{entityName}}' 取消关联",
            "delete-from-relations-title": "确定删除 { count, select, 1 {1 关联} other {# 关联} } 吗?",
            "delete-from-relations-text": "确定删除所有选择的关联关系后，当前实体将与对应的实体取消关联",
            "remove-relation-filter": "移除关联过滤器",
            "add-relation-filter": "添加关联过滤器",
            "any-relation": "任意关联",
            "relation-filters": "关联过滤器",
            "additional-info": "附加信息 (JSON)",
            "invalid-additional-info": "无法解析附加信息json。"
        },
        "rulechain": { // TODO
            "rulechain": "Rule chain",
            "rulechains": "Rule chains",
            "root": "Root",
            "delete": "Delete rule chain",
            "name": "Name",
            "name-required": "Name is required.",
            "description": "Description",
            "add": "Add Rule Chain",
            "set-root": "Make rule chain root",
            "set-root-rulechain-title": "Are you sure you want to make the rule chain '{{ruleChainName}}' root?",
            "set-root-rulechain-text": "After the confirmation the rule chain will become root and will handle all incoming transport messages.",
            "delete-rulechain-title": "Are you sure you want to delete the rule chain '{{ruleChainName}}'?",
            "delete-rulechain-text": "Be careful, after the confirmation the rule chain and all related data will become unrecoverable.",
            "delete-rulechains-title": "Are you sure you want to delete { count, select, 1 {1 rule chain} other {# rule chains} }?",
            "delete-rulechains-action-title": "Delete { count, select, 1 {1 rule chain} other {# rule chains} }",
            "delete-rulechains-text": "Be careful, after the confirmation all selected rule chains will be removed and all related data will become unrecoverable.",
            "add-rulechain-text": "Add new rule chain",
            "no-rulechains-text": "No rule chains found",
            "rulechain-details": "Rule chain details",
            "details": "Details",
            "events": "Events",
            "system": "System",
            "import": "Import rule chain",
            "export": "Export rule chain",
            "export-failed-error": "Unable to export rule chain: {{error}}",
            "create-new-rulechain": "Create new rule chain",
            "rulechain-file": "Rule chain file",
            "invalid-rulechain-file-error": "Unable to import rule chain: Invalid rule chain data structure.",
            "copyId": "Copy rule chain Id",
            "idCopiedMessage": "Rule chain Id has been copied to clipboard",
            "select-rulechain": "Select rule chain",
            "no-rulechains-matching": "No rule chains matching '{{entity}}' were found.",
            "rulechain-required": "Rule chain is required",
            "management": "Rules management",
            "debug-mode": "Debug mode"
        },
        "rulenode": { // TODO
            "details": "Details",
            "events": "Events",
            "search": "Search nodes",
            "open-node-library": "Open node library",
            "add": "Add rule node",
            "name": "Name",
            "name-required": "Name is required.",
            "type": "Type",
            "description": "Description",
            "delete": "Delete rule node",
            "select-all-objects": "Select all nodes and connections",
            "deselect-all-objects": "Deselect all nodes and connections",
            "delete-selected-objects": "Delete selected nodes and connections",
            "delete-selected": "Delete selected",
            "select-all": "Select all",
            "copy-selected": "Copy selected",
            "deselect-all": "Deselect all",
            "rulenode-details": "Rule node details",
            "debug-mode": "Debug mode",
            "configuration": "Configuration",
            "link": "Link",
            "link-details": "Rule node link details",
            "add-link": "Add link",
            "link-label": "Link label",
            "link-label-required": "Link label is required.",
            "custom-link-label": "Custom link label",
            "custom-link-label-required": "Custom link label is required.",
            "type-filter": "Filter",
            "type-filter-details": "Filter incoming messages with configured conditions",
            "type-enrichment": "Enrichment",
            "type-enrichment-details": "Add additional information into Message Metadata",
            "type-transformation": "Transformation",
            "type-transformation-details": "Change Message payload and Metadata",
            "type-action": "Action",
            "type-action-details": "Perform special action",
            "type-external": "External",
            "type-external-details": "Interacts with external system",
            "type-rule-chain": "Rule Chain",
            "type-rule-chain-details": "Forwards incoming messages to specified Rule Chain",
            "type-input": "Input",
            "type-input-details": "Logical input of Rule Chain, forwards incoming messages to next related Rule Node",
            "directive-is-not-loaded": "Defined configuration directive '{{directiveName}}' is not available.",
            "ui-resources-load-error": "Failed to load configuration ui resources.",
            "invalid-target-rulechain": "Unable to resolve target rule chain!",
            "test-script-function": "Test script function",
            "message": "Message",
            "message-type": "Message type",
            "message-type-required": "Message type is required",
            "metadata": "Metadata",
            "metadata-required": "Metadata entries can't be empty.",
            "output": "Output",
            "test": "Test",
            "help": "Help"
        },
        "tenant": {
            "tenant": "租户",
            "tenants": "租户",
            "management": "租户管理",
            "add": "添加租户",
            "admins": "管理员",
            "manage-tenant-admins": "管理租户管理员",
            "delete": "删除租户",
            "add-tenant-text": "添加新租户",
            "no-tenants-text": "没有找到租户",
            "tenant-details": "租客详情",
            "delete-tenant-title": "您确定要删除租户'{{tenantTitle}}'吗？",
            "delete-tenant-text": "小心！确认后，租户和所有相关数据将不可恢复。",
            "delete-tenants-title": "您确定要删除 {count,select,1 {1 租户} other {# 租户}} 吗？",
            "delete-tenants-action-title": "删除 { count, select, 1 {1 租户} other {# 租户} }",
            "delete-tenants-text": "小心！确认后，所有选定的租户将被删除，所有相关数据将不可恢复。",
            "title": "标题",
            "title-required": "标题必填。",
            "description": "描述",
            "details": "详情",
            "events": "事件",
            "copyId": "复制租户ID",
            "idCopiedMessage": "租户ID已经复制到粘贴板",
            "select-tenant": "选择租户",
            "no-tenants-matching": "没有找到符合 '{{entity}}' 的租户",
            "tenant-required": "租户必填"
        },
        "timeinterval": {
            "seconds-interval": "{ seconds, select, 1 {1 秒} other {# 秒} }",
            "minutes-interval": "{ minutes, select, 1 {1 分} other {# 分} }",
            "hours-interval": "{ hours, select, 1 {1 小时} other {# 小时} }",
            "days-interval": "{ days, select, 1 {1 天} other {# 天} }",
            "days": "天",
            "hours": "时",
            "minutes": "分",
            "seconds": "秒",
            "advanced": "高级"
        },
        "timewindow": {
            "days": "{ days, select, 1 { 天 } other {# 天 } }",
            "hours": "{ hours, select, 0 { 小时 } 1 {1 小时 } other {# 小时 } }",
            "minutes": "{ minutes, select, 0 { 分 } 1 {1 分 } other {# 分 } }",
            "seconds": "{ seconds, select, 0 { 秒 } 1 {1 秒 } other {# 秒 } }",
            "realtime": "实时",
            "history": "历史",
            "last-prefix": "最后",
            "period": "从 {{ startTime }} 到 {{ endTime }}",
            "edit": "编辑时间窗口",
            "date-range": "日期范围",
            "last": "最后",
            "time-period": "时间段"
        },
        "user": {
            "user": "用户",
            "users": "用户",
            "customer-users": "客户用户",
            "tenant-admins": "租户管理员",
            "sys-admin": "系统管理员",
            "tenant-admin": "租户管理员",
            "customer": "客户",
            "anonymous": "匿名",
            "add": "添加用户",
            "delete": "删除用户",
            "add-user-text": "添加新用户",
            "no-users-text": "找不到用户",
            "user-details": "用户详细信息",
            "delete-user-title": "您确定要删除用户 '{{userEmail}}' 吗？",
            "delete-user-text": "小心！确认后，用户和所有相关数据将不可恢复。",
            "delete-users-title": "你确定你要删除 { count, select, 1 {1 用户} other {# 用户} } 吗？",
            "delete-users-action-title": "删除  { count, select, 1 {1 用户} other {# 用户} }",
            "delete-users-text": "小心！确认后，所有选定的用户将被删除，所有相关数据将不可恢复。",
            "activation-email-sent-message": "激活电子邮件已成功发送！",
            "resend-activation": "重新发送激活",
            "email": "电子邮件",
            "email-required": "电子邮件必填。",
            "invalid-email-format": "无效的邮件格式。",
            "first-name": "名字",
            "last-name": "姓",
            "description": "描述",
            "default-dashboard": "默认面板",
            "always-fullscreen": "始终全屏",
            "select-user": "选择用户",
            "no-users-matching": "没有找到符合 '{{entity}}' 的用户。",
            "user-required": "用户必填",
            "activation-method": "激活方式",
            "display-activation-link": "显示激活链接",
            "send-activation-mail": "发送激活邮件",
            "activation-link": "用户激活链接",
            "activation-link-text": "使用该链接 <a href='{{activationLink}}' target='_blank'>激活</a> 激活用户:",
            "copy-activation-link": "复制用户激活链接",
            "activation-link-copied-message": "用户激活链接已经复制到粘贴板",
            "details": "Details" // TODO
        },
        "value": {
            "type": "值类型",
            "string": "字符串",
            "string-value": "字符串值",
            "integer": "数字",
            "integer-value": "数字值",
            "invalid-integer-value": "整数值无效",
            "double": "双精度小数",
            "double-value": "双精度小数值",
            "boolean": "布尔",
            "boolean-value": "布尔值",
            "false": "假",
            "true": "真"
        },
        "widget": {
            "widget-library": "部件库",
            "widget-bundle": "部件包",
            "select-widgets-bundle": "选择部件包",
            "management": "部件管理",
            "editor": "部件编辑器",
            "widget-type-not-found": "加载部件配置时出现问题。<br> 可能关联的\n 部件类型已删除。",
            "widget-type-load-error": "由于以下错误，部件未加载：",
            "remove": "删除部件",
            "edit": "编辑部件",
            "remove-widget-title": "您确定要删除部件 '{{widgetTitle}}' 吗？",
            "remove-widget-text": "确认后，窗口部件和所有相关数据将不可恢复。",
            "timeseries": "时间序列",
            "latest-values": "最新值",
            "rpc": "控件部件",
            "alarm": "警告部件",
            "static": "静态部件",
            "select-widget-type": "选择窗口部件类型",
            "missing-widget-title-error": "部件标题必须指定！",
            "widget-saved": "部件已保存",
            "unable-to-save-widget-error": "无法保存窗口部件！ 部件有错误！",
            "save": "保存部件",
            "saveAs": "将部件另存为",
            "save-widget-type-as": "将部件类型另存为",
            "save-widget-type-as-text": "请输入新的部件标题和/或选择目标部件包",
            "toggle-fullscreen": "切换全屏",
            "run": "运行部件",
            "title": "部件标题",
            "title-required": "需要部件标题。",
            "type": "部件类型",
            "resources": "资源",
            "resource-url": "JavaScript/CSS URL",
            "remove-resource": "删除资源",
            "add-resource": "添加资源",
            "html": "HTML",
            "tidy": "整理",
            "css": "CSS",
            "settings-schema": "设置模式",
            "datakey-settings-schema": "数据键设置模式",
            "javascript": "Javascript",
            "remove-widget-type-title": "您确定要删除部件类型 '{{widgetName}}'吗？",
            "remove-widget-type-text": "确认后，窗口部件类型和所有相关数据将不可恢复。",
            "remove-widget-type": "删除部件类型",
            "add-widget-type": "添加新的部件类型",
            "widget-type-load-failed-error": "无法加载部件类型！",
            "widget-template-load-failed-error": "无法加载部件模板！",
            "add": "添加部件",
            "undo": "撤消部件更改",
            "export": "导出部件"
        },
        "widget-action": {
            "header-button": "部件顶部按钮",
            "open-dashboard-state": "切换到新仪表板状态",
            "update-dashboard-state": "更新当前仪表板状态",
            "open-dashboard": "切换到另一个仪表板",
            "custom": "自定义动作",
            "target-dashboard-state": "目标仪表板状态",
            "target-dashboard-state-required": "目标仪表板状态必填",
            "set-entity-from-widget": "从部件中设置实体",
            "target-dashboard": "目标仪表板",
            "open-right-layout": "打开右侧布局 (移动端视图)"
        },
        "widgets-bundle": {
            "current": "当前包",
            "widgets-bundles": "部件包",
            "add": "添加部件包",
            "delete": "删除部件包",
            "title": "标题",
            "title-required": "标题必填。",
            "add-widgets-bundle-text": "添加新的部件包",
            "no-widgets-bundles-text": "找不到部件包",
            "empty": "部件包是空的",
            "details": "详情",
            "widgets-bundle-details": "部件包详细信息",
            "delete-widgets-bundle-title": "您确定要删除部件包 '{{widgetsBundleTitle}}'吗？",
            "delete-widgets-bundle-text": "小心！确认后，部件包和所有相关数据将不可恢复。",
            "delete-widgets-bundles-title": "你确定你要删除 { count, select, 1 {1 部件包} other {# 部件包} } 吗？",
            "delete-widgets-bundles-action-title": "删除  { count, select, 1 {1 部件包} other {# 部件包} }",
            "delete-widgets-bundles-text": "小心！确认后，所有选定的部件包将被删除，所有相关数据将不可恢复。",
            "no-widgets-bundles-matching": "没有找到与 '{{widgetsBundle}}' 匹配的部件包。",
            "widgets-bundle-required": "需要部件包。",
            "system": "系统",
            "import": "导入部件包",
            "export": "导出部件包",
            "export-failed-error": "无法导出部件包： {{error}}",
            "create-new-widgets-bundle": "创建新的部件包",
            "widgets-bundle-file": "部件包文件",
            "invalid-widgets-bundle-file-error": "无法导入部件包：无效的部件包数据结构。"
        },
        "widget-config": {
            "data": "数据",
            "settings": "设置",
            "advanced": "高级",
            "title": "标题",
            "general-settings": "常规设置",
            "display-title": "显示标题",
            "drop-shadow": "阴影",
            "enable-fullscreen": "启用全屏",
            "background-color": "背景颜色",
            "text-color": "文字颜色",
            "padding": "填充",
            "margin": "Margin",
            "widget-style": "部件风格",
            "title-style": "标题风格",
            "mobile-mode-settings": "移动端设置",
            "order": "顺序",
            "height": "高度",
            "units": "特殊符号展示值",
            "decimals": "浮点数后的位数",
            "timewindow": "时间窗口",
            "use-dashboard-timewindow": "使用仪表板的时间窗口",
            "display-legend": "显示图例",
            "datasources": "数据源",
            "maximum-datasources": "最大允许 { count, select, 1 {1 数据} other {# 数据} }",
            "datasource-type": "类型",
            "datasource-parameters": "参数",
            "remove-datasource": "移除数据源",
            "add-datasource": "添加数据源",
            "target-device": "目标设备",
            "alarm-source": "警告源",
            "actions": "动作",
            "action": "动作",
            "add-action": "添加动作",
            "search-actions": "动作检索",
            "action-source": "动作源",
            "action-source-required": "动作源必填",
            "action-name": "动作名称",
            "action-name-required": "动作名称必填。",
            "action-name-not-unique": "动作名称已经存在。<br/>统一动作源的动作名称必须唯一。",
            "action-icon": "图标",
            "action-type": "类型",
            "action-type-required": "类型必填",
            "edit-action": "编辑动作",
            "delete-action": "删除动作",
            "delete-action-title": "删除部件动作",
            "delete-action-text": "确定要删除部件动作 '{{actionName}}' 吗?"
        },
        "widget-type": {
            "import": "导入部件类型",
            "export": "导出部件类型",
            "export-failed-error": "无法导出部件类型： {{error}}",
            "create-new-widget-type": "创建新的部件类型",
            "widget-type-file": "部件类型文件",
            "invalid-widget-type-file-error": "无法导入部件类型：无效的部件类型数据结构。"
        },
        "icon": {
            "icon": "图标",
            "select-icon": "选择图标",
            "material-icons": "素材图标",
            "show-all": "显示所有图标"
        },
        "custom": { // TODO
            "widget-action": {
                "action-cell-button": "Action cell button",
                "row-click": "On row click",
                "marker-click": "On marker click",
                "tooltip-tag-action": "Tooltip tag action"
            }
        },
        "language": {
            "language": "语言",
            "en_US": "英语",
            "ko_KR": "韩语",
            "zh_CN": "汉语",
            "ru_RU": "俄语",
            "es_ES": "西班牙语"
        }
    };
    angular.extend(locales, {
        'zh_CN': zh_CN
    });
}
