diff --git a/ui/src/app/app.config.js b/ui/src/app/app.config.js index 12e6b15a25..0cd9a9c0b5 100644 --- a/ui/src/app/app.config.js +++ b/ui/src/app/app.config.js @@ -46,18 +46,21 @@ export default function AppConfig($provide, $translateProvider.useSanitizeValueStrategy('sce'); $translateProvider.preferredLanguage('en_US'); + //$translateProvider.preferredLanguage('zh_CN'); $translateProvider.useLocalStorage(); $translateProvider.useMissingTranslationHandlerLog(); $translateProvider.addInterpolation('$translateMessageFormatInterpolation'); addLocaleKorean(locales); addLocaleChinese(locales); + var $window = angular.injector(['ng']).get('$window'); var lang = $window.navigator.language || $window.navigator.userLanguage; + //$log.log("----====User language ====----"+lang); if (lang === 'ko') { $translateProvider.useSanitizeValueStrategy(null); $translateProvider.preferredLanguage('ko_KR'); - }else if(lang === 'zh') { + } else if (lang === 'zh') { $translateProvider.useSanitizeValueStrategy(null); $translateProvider.preferredLanguage('zh_CN'); } diff --git a/ui/src/app/locale/locale.constant-zh.js b/ui/src/app/locale/locale.constant-zh.js index 3175f9cf2b..050f4231be 100644 --- a/ui/src/app/locale/locale.constant-zh.js +++ b/ui/src/app/locale/locale.constant-zh.js @@ -21,7 +21,7 @@ export default function addLocaleChinese(locales) { "unauthorized-access" : "未授权访问", "unauthorized-access-text" : "您应该登录以访问此资源!", "access-forbidden" : "禁止访问", - "access-forbidden-text" : "您没有访问此位置的权限
如果您仍希望访问此位置,请尝试使用其他用户登录。", + "access-forbidden-text" : "您没有访问此位置的权限!
如果您仍希望访问此位置,请尝试使用其他用户登录。", "refresh-token-expired" : "会话已过期", "refresh-token-failed" : "无法刷新会话" }, @@ -109,7 +109,7 @@ export default function addLocaleChinese(locales) { "key-required" : "属性键是必需的。", "value" : "值", "value-required" : "属性值是必需的。", - "delete-attributes-title" : "您确定要删除 { count, select, 1 {1 attribute} other {# attributes} }?", + "delete-attributes-title" : "您确定要删除 { count, select, 1 {1 attribute} other {# attributes} } 吗?", "delete-attributes-text" : "注意,确认后所有选中的属性都会被删除。", "delete-attributes" : "删除属性", "enter-attribute-value" : "输入属性值", @@ -124,7 +124,7 @@ export default function addLocaleChinese(locales) { }, "confirm-on-exit" : { "message" : "您有未保存的更改。确定要离开此页吗?", - "html-message" : "您有未保存的更改。
确定要离开此页面吗?", + "html-message" : "您有未保存的更改。
确定要离开此页面吗?", "title" : "未保存的更改" }, "contact" : { @@ -162,7 +162,7 @@ export default function addLocaleChinese(locales) { "customer-details" : "客户详情", "delete-customer-title" : "您确定要删除客户'{{customerTitle}}'吗?", "delete-customer-text" : "小心!确认后,客户及其所有相关数据将不可恢复。", - "delete-customers-title" : "您确定要删除 { count, select, 1 {1 customer} other {# customers} }?", + "delete-customers-title" : "您确定要删除 { count, select, 1 {1 customer} other {# customers} } 吗?", "delete-customers-action-title" : "删除 { count, select, 1 {1 customer} other {# customers} }", "delete-customers-text" : "小心!确认后,所有选定的客户将被删除,所有相关数据将不可恢复。", "manage-users" : "管理用户", @@ -209,13 +209,13 @@ export default function addLocaleChinese(locales) { "unassign-dashboards-action-title" : "从客户取消分配 { count, select, 1 {1 dashboard} other {# dashboards} }", "delete-dashboard-title" : "您确定要删除仪表板 '{{dashboardTitle}}'?", "delete-dashboard-text" : "小心!确认后仪表板及其所有相关数据将不可恢复。", - "delete-dashboards-title" : "你确定要删除 { count, select, 1 {1 dashboard} other {# dashboards} }?", + "delete-dashboards-title" : "你确定要删除 { count, select, 1 {1 dashboard} other {# dashboards} } 吗?", "delete-dashboards-action-title" : "删除 { count, select, 1 {1 dashboard} other {# dashboards} }", "delete-dashboards-text" : "小心!确认后所有被选中的仪表板将被删除,所有相关数据将不可恢复。", "unassign-dashboard-title" : "您确定要取消分配仪表板 '{{dashboardTitle}}'?", "unassign-dashboard-text" : "确认后,仪表板将取消分配,客户将无法访问。", "unassign-dashboard" : "取消分配仪表板", - "unassign-dashboards-title" : "您确定要取消分配 { count, select, 1 {1 dashboard} other {# dashboards} }?", + "unassign-dashboards-title" : "您确定要取消分配 { count, select, 1 {1 dashboard} other {# dashboards} } 吗?", "unassign-dashboards-text" : "确认后,所有选定的仪表板将被取消分配,并且用户将无法访问。", "select-dashboard" : "选择仪表板", "no-dashboards-matching" : "找不到符合 '{{dashboard}}' 的仪表板。", @@ -234,7 +234,7 @@ export default function addLocaleChinese(locales) { "columns-count" : "列数", "columns-count-required" : "需要列数。", "min-columns-count-message" : "只允许最少10列", - "max-columns-count-message" : "只允许最大1000列", + "max-columns-count-message" : "只允许最多1000列", "widgets-margins" : "部件间边距", "horizontal-margin" : "水平边距", "horizontal-margin-required" : "需要水平边距值。", @@ -262,7 +262,7 @@ export default function addLocaleChinese(locales) { "close-toolbar" : "关闭工具栏", "configuration-error" : "配置错误", "alias-resolution-error-title" : "仪表板别名配置错误", - "invalid-aliases-config" : "无法找到与某些别名过滤器匹配的任何设备。
" + + "invalid-aliases-config" : "无法找到与某些别名过滤器匹配的任何设备。
" + "请联系您的管理员以解决此问题。", "select-devices" : "选择设备", "assignedToCustomer" : "分配给客户" @@ -304,7 +304,7 @@ export default function addLocaleChinese(locales) { "no-keys-found" : "找不到密钥。", "create-new-alias": "创建一个新的!", "create-new-key": "创建一个新的!", - "duplicate-alias-error" : "找到重复别名 '{{alias}}'.
设备别名必须是唯一的。", + "duplicate-alias-error" : "找到重复别名 '{{alias}}'。
设备别名必须是唯一的。", "configure-alias" : "配置 '{{alias}}' 别名", "no-devices-matching" : "找不到与 '{{device}}' 匹配的设备。", "alias" : "别名", @@ -329,22 +329,22 @@ export default function addLocaleChinese(locales) { "manage-credentials": "管理凭据", "delete": "删除设备", "assign-devices": "分配设备", - "assign-devices-text": "将{count,select,1 {1 device} other {#devices}}分配给客户", + "assign-devices-text": "将{count,select,1 {1 device} other {# devices}}分配给客户", "delete-devices": "删除设备", "unassign-from-customer": "取消分配客户", "unassign-devices": "取消分配设备", - "unassign-devices-action-title": "从客户处取消分配{count,select,1 {1 device} other {#devices}}", + "unassign-devices-action-title": "从客户处取消分配{count,select,1 {1 device} other {# devices}}", "assign-new-device": "分配新设备", "view-credentials": "查看凭据", "delete-device-title": "您确定要删除设备的{{deviceName}}吗?", "delete-device-text": "小心!确认后设备及其所有相关数据将不可恢复。", - "delete-devices-title": "您确定要删除{count,select,1 {1 device} other {#devices}}?", - "delete-devices-action-title": "删除 {count,select,1 {1 device} other {#devices}}", + "delete-devices-title": "您确定要删除{count,select,1 {1 device} other {# devices}} 吗?", + "delete-devices-action-title": "删除 {count,select,1 {1 device} other {# devices}}", "delete-devices-text": "小心!确认后所有选定的设备将被删除,所有相关数据将不可恢复。", "unassign-device-title": "您确定要取消分配设备 '{{deviceName}}'?", "unassign-device-text": "确认后,设备将被取消分配,客户将无法访问。", "unassign-device": "取消分配设备", - "unassign-devices-title": "您确定要取消分配{count,select,1 {1 device} other {#devices}}?", + "unassign-devices-title": "您确定要取消分配{count,select,1 {1 device} other {# devices}} 吗?", "unassign-devices-text": "确认后,所有选定的设备将被取消分配,并且客户将无法访问。", "device-credentials": "设备凭据", "credentials-type": "凭据类型", @@ -366,7 +366,7 @@ export default function addLocaleChinese(locales) { "accessTokenCopiedMessage": "设备访问令牌已复制到剪贴板", "assignedToCustomer": "分配给客户", "unable-delete-device-alias-title": "无法删除设备别名", - "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除,因为它被下列部件所使用:
{{widgetsList}}", + "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除,因为它被下列部件所使用:
{{widgetsList}}", "is-gateway": "是网关" }, "dialog" : { @@ -404,13 +404,13 @@ export default function addLocaleChinese(locales) { "fullscreen": "全屏" }, "function" : { - "function" : "功能" + "function" : "函数" }, "grid" : { "delete-item-title": "您确定要删除此项吗?", "delete-item-text": "注意,确认后此项和所有相关数据将变得不可恢复。", - "delete-items-title": "您确定要删除{count,select,1 {1 item} other {#items}}?", - "delete-items-action-title": "删除{count,select,1 {1 item} other {#items}}", + "delete-items-title": "您确定要删除{count, select, 1 {1 item} other {# items}} 吗?", + "delete-items-action-title": "删除{count, select, 1 {1 item} other {# items}}", "delete-items-text": "注意,确认后所有选择的项目将被删除,所有相关数据将变得不可恢复。", "add-item-text": "添加新项目", "no-items-text": "没有找到项目", @@ -442,16 +442,16 @@ export default function addLocaleChinese(locales) { "return-type-mismatch": "函数必须返回'{{type}}'类型的值!" }, "legend" : { - "position" : "Legend position", - "show-max" : "Show max value", - "show-min" : "Show min value", - "show-avg" : "Show average value", - "show-total" : "Show total value", - "settings" : "Legend settings", - "min" : "min", - "max" : "max", - "avg" : "avg", - "total" : "total" + "position" : "图例位置", + "show-max" : "显示最大值", + "show-min" : "显示最小值", + "show-avg" : "显示平均值", + "show-total" : "显示总数", + "settings" : "图例设置", + "min" : "最小值", + "max" : "最大值", + "avg" : "平均值", + "total" : "总数" }, "login" : { "login": "登录", @@ -471,49 +471,49 @@ export default function addLocaleChinese(locales) { "email": "电子邮件" }, "plugin" : { - "plugins" : "Plugins", - "delete" : "Delete plugin", - "activate" : "Activate plugin", - "suspend" : "Suspend plugin", - "active" : "Active", - "suspended" : "Suspended", - "name" : "Name", - "name-required" : "Name is required.", - "description" : "Description", - "add" : "Add Plugin", - "delete-plugin-title" : "Are you sure you want to delete the plugin '{{pluginName}}'?", - "delete-plugin-text" : "Be careful, after the confirmation the plugin and all related data will become unrecoverable.", - "delete-plugins-title" : "Are you sure you want to delete { count, select, 1 {1 plugin} other {# plugins} }?", - "delete-plugins-action-title" : "Delete { count, select, 1 {1 plugin} other {# plugins} }", - "delete-plugins-text" : "Be careful, after the confirmation all selected plugins will be removed and all related data will become unrecoverable.", - "add-plugin-text" : "Add new plugin", - "no-plugins-text" : "No plugins found", - "plugin-details" : "Plugin details", - "api-token" : "API token", - "api-token-required" : "API token is required.", - "type" : "Plugin type", - "type-required" : "Plugin type is required.", - "configuration" : "Plugin configuration", - "system" : "System", - "select-plugin" : "Select plugin", - "plugin" : "Plugin", - "no-plugins-matching" : "No plugins matching '{{plugin}}' were found.", - "plugin-required" : "Plugin is required.", - "plugin-require-match" : "Please select an existing plugin.", - "events" : "Events", - "details" : "Details", - "import" : "Import plugin", - "export" : "Export plugin", - "export-failed-error" : "Unable to export plugin: {{error}}", - "create-new-plugin" : "Create new plugin", - "plugin-file" : "Plugin file", - "invalid-plugin-file-error" : "Unable to import plugin: Invalid plugin data structure." + "plugins" : "插件", + "delete" : "删除插件", + "activate" : "激活插件", + "suspend" : "暂停插件", + "active" : "激活", + "suspended" : "暂停", + "name" : "名称", + "name-required" : "名称是必填项。", + "description" : "描述", + "add" : "添加插件", + "delete-plugin-title" : "你确定要删除插件 '{{pluginName}}' 吗?", + "delete-plugin-text" : "小心!确认后,插件和所有相关数据将不可恢复。", + "delete-plugins-title" : "你确定你要删除 { count, select, 1 {1 plugin} other {# plugins} } 吗?", + "delete-plugins-action-title" : "删除 { count, select, 1 {1 plugin} other {# plugins} }", + "delete-plugins-text" : "小心!确认后,所有选定的插件将被删除,所有相关数据将不可恢复。", + "add-plugin-text" : "添加新的插件", + "no-plugins-text" : "没有找到插件", + "plugin-details" : "插件详细信息", + "api-token" : "API令牌", + "api-token-required" : "API令牌是必需的。", + "type" : "插件类型", + "type-required" : "插件类型是必需的。", + "configuration" : "插件配置", + "system" : "系统", + "select-plugin" : "选择插件", + "plugin" : "插件", + "no-plugins-matching" : "没有找到匹配'{{plugin}}'的插件。", + "plugin-required" : "插件是必需的。", + "plugin-require-match" : "请选择一个现有的插件。", + "events" : "事件", + "details" : "详情", + "import" : "导入插件", + "export" : "导出插件", + "export-failed-error" : "无法导出插件:{{error}}", + "create-new-plugin" : "创建新的插件", + "plugin-file" : "插件文件", + "invalid-plugin-file-error" : "无法导入插件:插件数据结构无效。" }, "position" : { - "top" : "Top", - "bottom" : "Bottom", - "left" : "Left", - "right" : "Right" + "top" : "顶部", + "bottom" : "底部", + "left" : "左侧", + "right" : "右侧" }, "profile" : { "profile": "属性", @@ -521,263 +521,263 @@ export default function addLocaleChinese(locales) { "current-password": "当前密码" }, "rule" : { - "rules" : "Rules", - "delete" : "Delete rule", - "activate" : "Activate rule", - "suspend" : "Suspend rule", - "active" : "Active", - "suspended" : "Suspended", - "name" : "Name", - "name-required" : "Name is required.", - "description" : "Description", - "add" : "Add Rule", - "delete-rule-title" : "Are you sure you want to delete the rule '{{ruleName}}'?", - "delete-rule-text" : "Be careful, after the confirmation the rule and all related data will become unrecoverable.", - "delete-rules-title" : "Are you sure you want to delete { count, select, 1 {1 rule} other {# rules} }?", - "delete-rules-action-title" : "Delete { count, select, 1 {1 rule} other {# rules} }", - "delete-rules-text" : "Be careful, after the confirmation all selected rules will be removed and all related data will become unrecoverable.", - "add-rule-text" : "Add new rule", - "no-rules-text" : "No rules found", - "rule-details" : "Rule details", - "filters" : "Filters", - "filter" : "Filter", - "add-filter-prompt" : "Please add filter", - "remove-filter" : "Remove filter", - "add-filter" : "Add filter", - "filter-name" : "Filter name", - "filter-type" : "Filter type", - "edit-filter" : "Edit filter", - "view-filter" : "View filter", - "component-name" : "Name", - "component-name-required" : "Name is required.", - "component-type" : "Type", - "component-type-required" : "Type is required.", - "processor" : "Processor", - "no-processor-configured" : "No processor configured", - "create-processor" : "Create processor", - "processor-name" : "Processor name", - "processor-type" : "Processor type", - "plugin-action" : "Plugin action", - "action-name" : "Action name", - "action-type" : "Action type", - "create-action-prompt" : "Please create action", - "create-action" : "Create action", - "details" : "Details", - "events" : "Events", - "system" : "System", - "import" : "Import rule", - "export" : "Export rule", - "export-failed-error" : "Unable to export rule: {{error}}", - "create-new-rule" : "Create new rule", - "rule-file" : "Rule file", - "invalid-rule-file-error" : "Unable to import rule: Invalid rule data structure." + "rules" : "规则", + "delete" : "删除规则", + "activate" : "激活规则", + "suspend" : "暂停规则", + "active" : "激活", + "suspended" : "暂停", + "name" : "名称", + "name-required" : "名称是必填项。", + "description" : "描述", + "add" : "添加规则", + "delete-rule-title" : "您确定要删除规则'{{ruleName}}'吗?", + "delete-rule-text" : "小心!确认后,规则和所有相关数据将不可恢复。", + "delete-rules-title" : "你确定要删除 {count, select, 1 {1 rule} other {# rules}} 吗?", + "delete-rules-action-title" : "删除 { count, select, 1 {1 rule} other {# rules} }", + "delete-rules-text" : "小心!确认后,所有选定的规则将被删除,所有相关数据将不可恢复。", + "add-rule-text" : "添加新规则", + "no-rules-text" : "没有找到规则", + "rule-details" : "规则详情", + "filters" : "过滤器", + "filter" : "过滤器", + "add-filter-prompt" : "请添加过滤器", + "remove-filter" : "删除过滤器", + "add-filter" : "添加过滤器", + "filter-name" : "过滤器名称", + "filter-type" : "过滤器类型", + "edit-filter" : "编辑过滤器", + "view-filter" : "查看过滤器", + "component-name" : "名称", + "component-name-required" : "名称是必填项。", + "component-type" : "类型", + "component-type-required" : "类型是必填项。", + "processor" : "处理器", + "no-processor-configured" : "未配置处理器", + "create-processor" : "创建处理器", + "processor-name" : "处理器名称", + "processor-type" : "处理器类型", + "plugin-action" : "插件动作", + "action-name" : "动作名称", + "action-type" : "动作类型", + "create-action-prompt" : "请创建动作", + "create-action" : "创建动作", + "details" : "详情", + "events" : "事件", + "system" : "系统", + "import" : "导入规则", + "export" : "导出规则", + "export-failed-error" : "无法导出规则:{{error}}", + "create-new-rule" : "创建新规则", + "rule-file" : "规则文件", + "invalid-rule-file-error" : "无法导入规则:规则数据结构无效。" }, "rule-plugin" : { - "management" : "Rules and plugins management" + "management" : "规则和插件管理" }, "tenant" : { - "tenants" : "Tenants", - "management" : "Tenant management", - "add" : "Add Tenant", - "admins" : "Admins", - "manage-tenant-admins" : "Manage tenant admins", - "delete" : "Delete tenant", - "add-tenant-text" : "Add new tenant", - "no-tenants-text" : "No tenants found", - "tenant-details" : "Tenant details", - "delete-tenant-title" : "Are you sure you want to delete the tenant '{{tenantTitle}}'?", - "delete-tenant-text" : "Be careful, after the confirmation the tenant and all related data will become unrecoverable.", - "delete-tenants-title" : "Are you sure you want to delete { count, select, 1 {1 tenant} other {# tenants} }?", - "delete-tenants-action-title" : "Delete { count, select, 1 {1 tenant} other {# tenants} }", - "delete-tenants-text" : "Be careful, after the confirmation all selected tenants will be removed and all related data will become unrecoverable.", - "title" : "Title", - "title-required" : "Title is required.", - "description" : "Description" + "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 tenant} other {# tenants}} 吗?", + "delete-tenants-action-title" : "删除 { count, select, 1 {1 tenant} other {# tenants} }", + "delete-tenants-text" : "小心!确认后,所有选定的租户将被删除,所有相关数据将不可恢复。", + "title" : "标题", + "title-required" : "标题是必填项。", + "description" : "描述" }, "timeinterval" : { "seconds-interval" : "{ seconds, select, 1 {1 second} other {# seconds} }", "minutes-interval" : "{ minutes, select, 1 {1 minute} other {# minutes} }", "hours-interval" : "{ hours, select, 1 {1 hour} other {# hours} }", "days-interval" : "{ days, select, 1 {1 day} other {# days} }", - "days" : "Days", - "hours" : "Hours", - "minutes" : "Minutes", - "seconds" : "Seconds", - "advanced" : "Advanced" + "days" : "天", + "hours" : "时", + "minutes" : "分", + "seconds" : "秒", + "advanced" : "高级" }, "timewindow" : { "days" : "{ days, select, 1 { day } other {# days } }", "hours" : "{ hours, select, 0 { hour } 1 {1 hour } other {# hours } }", "minutes" : "{ minutes, select, 0 { minute } 1 {1 minute } other {# minutes } }", "seconds" : "{ seconds, select, 0 { second } 1 {1 second } other {# seconds } }", - "realtime" : "Realtime", - "history" : "History", - "last-prefix" : "last", - "period" : "from {{ startTime }} to {{ endTime }}", - "edit" : "Edit timewindow", - "date-range" : "Date range", - "last" : "Last", - "time-period" : "Time period" + "realtime" : "实时", + "history" : "历史", + "last-prefix" : "最后", + "period" : "从 {{ startTime }} 到 {{ endTime }}", + "edit" : "编辑时间窗口", + "date-range" : "日期范围", + "last" : "最后", + "time-period" : "时间段" }, "user" : { - "users" : "Users", - "customer-users" : "Customer Users", - "tenant-admins" : "Tenant Admins", - "sys-admin" : "System administrator", - "tenant-admin" : "Tenant administrator", - "customer" : "Customer", - "anonymous" : "Anonymous", - "add" : "Add User", - "delete" : "Delete user", - "add-user-text" : "Add new user", - "no-users-text" : "No users found", - "user-details" : "User details", - "delete-user-title" : "Are you sure you want to delete the user '{{userEmail}}'?", - "delete-user-text" : "Be careful, after the confirmation the user and all related data will become unrecoverable.", - "delete-users-title" : "Are you sure you want to delete { count, select, 1 {1 user} other {# users} }?", - "delete-users-action-title" : "Delete { count, select, 1 {1 user} other {# users} }", - "delete-users-text" : "Be careful, after the confirmation all selected users will be removed and all related data will become unrecoverable.", - "activation-email-sent-message" : "Activation email was successfully sent!", - "resend-activation" : "Resend activation", - "email" : "Email", - "email-required" : "Email is required.", - "first-name" : "First Name", - "last-name" : "Last Name", - "description" : "Description", - "default-dashboard" : "Default dashboard", - "always-fullscreen" : "Always fullscreen" + "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 user} other {# users} }吗?", + "delete-users-action-title" : "删除 { count, select, 1 {1 user} other {# users} }", + "delete-users-text" : "小心!确认后,所有选定的用户将被删除,所有相关数据将不可恢复。", + "activation-email-sent-message" : "激活电子邮件已成功发送!", + "resend-activation" : "重新发送激活", + "email" : "电子邮件", + "email-required" : "电子邮件是必需的。", + "first-name" : "名字", + "last-name" : "姓", + "description" : "描述", + "default-dashboard" : "默认面板", + "always-fullscreen" : "始终全屏" }, "value" : { - "type" : "Value type", - "string" : "String", - "string-value" : "String value", - "integer" : "Integer", - "integer-value" : "Integer value", - "invalid-integer-value" : "Invalid integer value", - "double" : "Double", - "double-value" : "Double value", - "boolean" : "Boolean", - "boolean-value" : "Boolean value", - "false" : "False", - "true" : "True" + "type" : "值类型", + "string" : "字符串", + "string-value" : "字符串值", + "integer" : "数字", + "integer-value" : "数字值", + "invalid-integer-value" : "整数值无效", + "double" : "双精度小数", + "double-value" : "双精度小数值", + "boolean" : "布尔", + "boolean-value" : "布尔值", + "false" : "假", + "true" : "真" }, "widget" : { - "widget-library" : "Widgets Library", - "widget-bundle" : "Widgets Bundle", - "select-widgets-bundle" : "Select widgets bundle", - "management" : "Widget management", - "editor" : "Widget Editor", - "widget-type-not-found" : "Problem loading widget configuration.
Probably associated\n widget type was removed.", - "widget-type-load-error" : "Widget wasn't loaded due to the following errors:", - "remove" : "Remove widget", - "edit" : "Edit widget", - "remove-widget-title" : "Are you sure you want to remove the widget '{{widgetTitle}}'?", - "remove-widget-text" : "After the confirmation the widget and all related data will become unrecoverable.", - "timeseries" : "Time series", - "latest-values" : "Latest values", - "rpc" : "Control widget", - "static" : "Static widget", - "select-widget-type" : "Select widget type", - "missing-widget-title-error" : "Widget title must be specified!", - "widget-saved" : "Widget saved", - "unable-to-save-widget-error" : "Unable to save widget! Widget has errors!", - "save" : "Save widget", - "saveAs" : "Save widget as", - "save-widget-type-as" : "Save widget type as", - "save-widget-type-as-text" : "Please enter new widget title and/or select target widgets bundle", - "toggle-fullscreen" : "Toggle fullscreen", - "run" : "Run widget", - "title" : "Widget title", - "title-required" : "Widget title is required.", - "type" : "Widget type", - "resources" : "Resources", + "widget-library" : "小部件库", + "widget-bundle" : "小部件包", + "select-widgets-bundle" : "选择小部件包", + "management" : "小部件管理", + "editor" : "小部件编辑器", + "widget-type-not-found" : "加载小部件配置时出现问题。
可能关联的\n 小部件类型已删除。", + "widget-type-load-error" : "由于以下错误,小工具未加载:", + "remove" : "删除小部件", + "edit" : "编辑小部件", + "remove-widget-title" : "您确定要删除小部件 '{{widgetTitle}}' 吗?", + "remove-widget-text" : "确认后,窗口小部件和所有相关数据将不可恢复。", + "timeseries" : "时间序列", + "latest-values" : "最新值", + "rpc" : "控件小部件", + "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" : "Remove resource", - "add-resource" : "Add resource", + "remove-resource" : "删除资源", + "add-resource" : "添加资源", "html" : "HTML", - "tidy" : "Tidy", + "tidy" : "整理", "css" : "CSS", - "settings-schema" : "Settings schema", - "datakey-settings-schema" : "Data key settings schema", + "settings-schema" : "设置模式", + "datakey-settings-schema" : "数据键设置模式", "javascript" : "Javascript", - "remove-widget-type-title" : "Are you sure you want to remove the widget type '{{widgetName}}'?", - "remove-widget-type-text" : "After the confirmation the widget type and all related data will become unrecoverable.", - "remove-widget-type" : "Remove widget type", - "add-widget-type" : "Add new widget type", - "widget-type-load-failed-error" : "Failed to load widget type!", - "widget-template-load-failed-error" : "Failed to load widget template!", - "add" : "Add Widget", - "undo" : "Undo widget changes", - "export" : "Export widget" + "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" : "导出小部件" }, "widgets-bundle" : { - "current" : "Current bundle", - "widgets-bundles" : "Widgets Bundles", - "add" : "Add Widgets Bundle", - "delete" : "Delete widgets bundle", - "title" : "Title", - "title-required" : "Title is required.", - "add-widgets-bundle-text" : "Add new widgets bundle", - "no-widgets-bundles-text" : "No widgets bundles found", - "empty" : "Widgets bundle is empty", - "details" : "Details", - "widgets-bundle-details" : "Widgets bundle details", - "delete-widgets-bundle-title" : "Are you sure you want to delete the widgets bundle '{{widgetsBundleTitle}}'?", - "delete-widgets-bundle-text" : "Be careful, after the confirmation the widgets bundle and all related data will become unrecoverable.", - "delete-widgets-bundles-title" : "Are you sure you want to delete { count, select, 1 {1 widgets bundle} other {# widgets bundles} }?", - "delete-widgets-bundles-action-title" : "Delete { count, select, 1 {1 widgets bundle} other {# widgets bundles} }", - "delete-widgets-bundles-text" : "Be careful, after the confirmation all selected widgets bundles will be removed and all related data will become unrecoverable.", - "no-widgets-bundles-matching" : "No widgets bundles matching '{{widgetsBundle}}' were found.", - "widgets-bundle-required" : "Widgets bundle is required.", - "system" : "System", - "import" : "Import widgets bundle", - "export" : "Export widgets bundle", - "export-failed-error" : "Unable to export widgets bundle: {{error}}", - "create-new-widgets-bundle" : "Create new widgets bundle", - "widgets-bundle-file" : "Widgets bundle file", - "invalid-widgets-bundle-file-error" : "Unable to import widgets bundle: Invalid widgets bundle data structure." + "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 widgets bundle} other {# widgets bundles} } 吗?", + "delete-widgets-bundles-action-title" : "删除 { count, select, 1 {1 widgets bundle} other {# widgets bundles} }", + "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" : "Data", - "settings" : "Settings", - "advanced" : "Advanced", - "title" : "Title", - "general-settings" : "General settings", - "display-title" : "Display title", - "drop-shadow" : "Drop shadow", - "enable-fullscreen" : "Enable fullscreen", - "background-color" : "Background color", - "text-color" : "Text color", - "padding" : "Padding", - "title-style" : "Title style", - "mobile-mode-settings" : "Mobile mode settings", - "order" : "Order", - "height" : "Height", - "units" : "Special symbol to show next to value", - "decimals" : "Number of digits after floating point", - "timewindow" : "Timewindow", - "use-dashboard-timewindow" : "Use dashboard timewindow", - "display-legend" : "Display legend", - "datasources" : "Datasources", - "datasource-type" : "Type", - "datasource-parameters" : "Parameters", - "remove-datasource" : "Remove datasource", - "add-datasource" : "Add datasource", - "target-device" : "Target device" + "data" : "数据", + "settings" : "设置", + "advanced" : "高级", + "title" : "标题", + "general-settings" : "常规设置", + "display-title" : "显示标题", + "drop-shadow" : "阴影", + "enable-fullscreen" : "启用全屏", + "background-color" : "背景颜色", + "text-color" : "文字颜色", + "padding" : "填充", + "title-style" : "标题风格", + "mobile-mode-settings" : "移动模式设置", + "order" : "顺序", + "height" : "高度", + "units" : "特殊符号展示值", + "decimals" : "浮点数后的位数", + "timewindow" : "时间窗口", + "use-dashboard-timewindow" : "使用仪表板的时间窗口", + "display-legend" : "显示图例", + "datasources" : "数据源", + "datasource-type" : "类型", + "datasource-parameters" : "参数", + "remove-datasource" : "移除数据源", + "add-datasource" : "添加数据源", + "target-device" : "目标设备" }, "widget-type" : { - "import" : "Import widget type", - "export" : "Export widget type", - "export-failed-error" : "Unable to export widget type: {{error}}", - "create-new-widget-type" : "Create new widget type", - "widget-type-file" : "Widget type file", - "invalid-widget-type-file-error" : "Unable to import widget type: Invalid widget type data structure." + "import" : "导入小部件类型", + "export" : "导出小部件类型", + "export-failed-error" : "无法导出小部件类型: {{error}}", + "create-new-widget-type" : "创建新的小部件类型", + "widget-type-file" : "小部件类型文件", + "invalid-widget-type-file-error" : "无法导入小部件类型:无效的小部件类型数据结构。" }, "language" : { "language" : "语言", "en_US" : "英语", "ko_KR" : "韩语", - "zh_CN": "汉语" + "zh_CN" : "汉语" } }; angular.extend(locales, { diff --git a/ui/src/app/profile/profile.controller.js b/ui/src/app/profile/profile.controller.js index 19a16dadde..53fa265d88 100644 --- a/ui/src/app/profile/profile.controller.js +++ b/ui/src/app/profile/profile.controller.js @@ -27,7 +27,11 @@ export default function ProfileController(userService, $scope, $document, $mdDia vm.save = save; vm.changePassword = changePassword; - vm.languageList = {en_US: {value: "en_US", name: "language.en_US"}, ko_KR: {value : "ko_KR", name: "language.ko_KR"}}; + vm.languageList = { + en_US: {value: "en_US", name: "language.en_US"}, + ko_KR: {value : "ko_KR", name: "language.ko_KR"}, + zh_CN: {value : "zh_CN", name: "language.zh_CN"} +}; loadProfile();