Commit d27999ddf996e675800bf72ed7911ea31980240c

Authored by wangjunwei
1 parent cbdd0848

add the Chinese support.of all it support english,korean&chinese

... ... @@ -46,18 +46,21 @@ export default function AppConfig($provide,
46 46
47 47 $translateProvider.useSanitizeValueStrategy('sce');
48 48 $translateProvider.preferredLanguage('en_US');
  49 + //$translateProvider.preferredLanguage('zh_CN');
49 50 $translateProvider.useLocalStorage();
50 51 $translateProvider.useMissingTranslationHandlerLog();
51 52 $translateProvider.addInterpolation('$translateMessageFormatInterpolation');
52 53
53 54 addLocaleKorean(locales);
54 55 addLocaleChinese(locales);
  56 +
55 57 var $window = angular.injector(['ng']).get('$window');
56 58 var lang = $window.navigator.language || $window.navigator.userLanguage;
  59 + //$log.log("----====User language ====----"+lang);
57 60 if (lang === 'ko') {
58 61 $translateProvider.useSanitizeValueStrategy(null);
59 62 $translateProvider.preferredLanguage('ko_KR');
60   - }else if(lang === 'zh') {
  63 + } else if (lang === 'zh') {
61 64 $translateProvider.useSanitizeValueStrategy(null);
62 65 $translateProvider.preferredLanguage('zh_CN');
63 66 }
... ...
... ... @@ -21,7 +21,7 @@ export default function addLocaleChinese(locales) {
21 21 "unauthorized-access" : "未授权访问",
22 22 "unauthorized-access-text" : "您应该登录以访问此资源!",
23 23 "access-forbidden" : "禁止访问",
24   - "access-forbidden-text" : "您没有访问此位置的权限<br/>如果您仍希望访问此位置,请尝试使用其他用户登录。",
  24 + "access-forbidden-text" : "您没有访问此位置的权限! <br/> 如果您仍希望访问此位置,请尝试使用其他用户登录。",
25 25 "refresh-token-expired" : "会话已过期",
26 26 "refresh-token-failed" : "无法刷新会话"
27 27 },
... ... @@ -109,7 +109,7 @@ export default function addLocaleChinese(locales) {
109 109 "key-required" : "属性键是必需的。",
110 110 "value" : "值",
111 111 "value-required" : "属性值是必需的。",
112   - "delete-attributes-title" : "您确定要删除 { count, select, 1 {1 attribute} other {# attributes} }?",
  112 + "delete-attributes-title" : "您确定要删除 { count, select, 1 {1 attribute} other {# attributes} } 吗?",
113 113 "delete-attributes-text" : "注意,确认后所有选中的属性都会被删除。",
114 114 "delete-attributes" : "删除属性",
115 115 "enter-attribute-value" : "输入属性值",
... ... @@ -124,7 +124,7 @@ export default function addLocaleChinese(locales) {
124 124 },
125 125 "confirm-on-exit" : {
126 126 "message" : "您有未保存的更改。确定要离开此页吗?",
127   - "html-message" : "您有未保存的更改。<br/>确定要离开此页面吗?",
  127 + "html-message" : "您有未保存的更改。 <br/> 确定要离开此页面吗?",
128 128 "title" : "未保存的更改"
129 129 },
130 130 "contact" : {
... ... @@ -162,7 +162,7 @@ export default function addLocaleChinese(locales) {
162 162 "customer-details" : "客户详情",
163 163 "delete-customer-title" : "您确定要删除客户'{{customerTitle}}'吗?",
164 164 "delete-customer-text" : "小心!确认后,客户及其所有相关数据将不可恢复。",
165   - "delete-customers-title" : "您确定要删除 { count, select, 1 {1 customer} other {# customers} }?",
  165 + "delete-customers-title" : "您确定要删除 { count, select, 1 {1 customer} other {# customers} }?",
166 166 "delete-customers-action-title" : "删除 { count, select, 1 {1 customer} other {# customers} }",
167 167 "delete-customers-text" : "小心!确认后,所有选定的客户将被删除,所有相关数据将不可恢复。",
168 168 "manage-users" : "管理用户",
... ... @@ -209,13 +209,13 @@ export default function addLocaleChinese(locales) {
209 209 "unassign-dashboards-action-title" : "从客户取消分配 { count, select, 1 {1 dashboard} other {# dashboards} }",
210 210 "delete-dashboard-title" : "您确定要删除仪表板 '{{dashboardTitle}}'?",
211 211 "delete-dashboard-text" : "小心!确认后仪表板及其所有相关数据将不可恢复。",
212   - "delete-dashboards-title" : "你确定要删除 { count, select, 1 {1 dashboard} other {# dashboards} }?",
  212 + "delete-dashboards-title" : "你确定要删除 { count, select, 1 {1 dashboard} other {# dashboards} }?",
213 213 "delete-dashboards-action-title" : "删除 { count, select, 1 {1 dashboard} other {# dashboards} }",
214 214 "delete-dashboards-text" : "小心!确认后所有被选中的仪表板将被删除,所有相关数据将不可恢复。",
215 215 "unassign-dashboard-title" : "您确定要取消分配仪表板 '{{dashboardTitle}}'?",
216 216 "unassign-dashboard-text" : "确认后,仪表板将取消分配,客户将无法访问。",
217 217 "unassign-dashboard" : "取消分配仪表板",
218   - "unassign-dashboards-title" : "您确定要取消分配 { count, select, 1 {1 dashboard} other {# dashboards} }?",
  218 + "unassign-dashboards-title" : "您确定要取消分配 { count, select, 1 {1 dashboard} other {# dashboards} }?",
219 219 "unassign-dashboards-text" : "确认后,所有选定的仪表板将被取消分配,并且用户将无法访问。",
220 220 "select-dashboard" : "选择仪表板",
221 221 "no-dashboards-matching" : "找不到符合 '{{dashboard}}' 的仪表板。",
... ... @@ -234,7 +234,7 @@ export default function addLocaleChinese(locales) {
234 234 "columns-count" : "列数",
235 235 "columns-count-required" : "需要列数。",
236 236 "min-columns-count-message" : "只允许最少10列",
237   - "max-columns-count-message" : "只允许最1000列",
  237 + "max-columns-count-message" : "只允许最1000列",
238 238 "widgets-margins" : "部件间边距",
239 239 "horizontal-margin" : "水平边距",
240 240 "horizontal-margin-required" : "需要水平边距值。",
... ... @@ -262,7 +262,7 @@ export default function addLocaleChinese(locales) {
262 262 "close-toolbar" : "关闭工具栏",
263 263 "configuration-error" : "配置错误",
264 264 "alias-resolution-error-title" : "仪表板别名配置错误",
265   - "invalid-aliases-config" : "无法找到与某些别名过滤器匹配的任何设备。<br/>" +
  265 + "invalid-aliases-config" : "无法找到与某些别名过滤器匹配的任何设备。 <br/>" +
266 266 "请联系您的管理员以解决此问题。",
267 267 "select-devices" : "选择设备",
268 268 "assignedToCustomer" : "分配给客户"
... ... @@ -304,7 +304,7 @@ export default function addLocaleChinese(locales) {
304 304 "no-keys-found" : "找不到密钥。",
305 305 "create-new-alias": "创建一个新的!",
306 306 "create-new-key": "创建一个新的!",
307   - "duplicate-alias-error" : "找到重复别名 '{{alias}}'.<br>设备别名必须是唯一的。",
  307 + "duplicate-alias-error" : "找到重复别名 '{{alias}}'。 <br> 设备别名必须是唯一的。",
308 308 "configure-alias" : "配置 '{{alias}}' 别名",
309 309 "no-devices-matching" : "找不到与 '{{device}}' 匹配的设备。",
310 310 "alias" : "别名",
... ... @@ -329,22 +329,22 @@ export default function addLocaleChinese(locales) {
329 329 "manage-credentials": "管理凭据",
330 330 "delete": "删除设备",
331 331 "assign-devices": "分配设备",
332   - "assign-devices-text": "将{count,select,1 {1 device} other {#devices}}分配给客户",
  332 + "assign-devices-text": "将{count,select,1 {1 device} other {# devices}}分配给客户",
333 333 "delete-devices": "删除设备",
334 334 "unassign-from-customer": "取消分配客户",
335 335 "unassign-devices": "取消分配设备",
336   - "unassign-devices-action-title": "从客户处取消分配{count,select,1 {1 device} other {#devices}}",
  336 + "unassign-devices-action-title": "从客户处取消分配{count,select,1 {1 device} other {# devices}}",
337 337 "assign-new-device": "分配新设备",
338 338 "view-credentials": "查看凭据",
339 339 "delete-device-title": "您确定要删除设备的{{deviceName}}吗?",
340 340 "delete-device-text": "小心!确认后设备及其所有相关数据将不可恢复。",
341   - "delete-devices-title": "您确定要删除{count,select,1 {1 device} other {#devices}}?",
342   - "delete-devices-action-title": "删除 {count,select,1 {1 device} other {#devices}}",
  341 + "delete-devices-title": "您确定要删除{count,select,1 {1 device} other {# devices}} 吗?",
  342 + "delete-devices-action-title": "删除 {count,select,1 {1 device} other {# devices}}",
343 343 "delete-devices-text": "小心!确认后所有选定的设备将被删除,所有相关数据将不可恢复。",
344 344 "unassign-device-title": "您确定要取消分配设备 '{{deviceName}}'?",
345 345 "unassign-device-text": "确认后,设备将被取消分配,客户将无法访问。",
346 346 "unassign-device": "取消分配设备",
347   - "unassign-devices-title": "您确定要取消分配{count,select,1 {1 device} other {#devices}}?",
  347 + "unassign-devices-title": "您确定要取消分配{count,select,1 {1 device} other {# devices}} 吗?",
348 348 "unassign-devices-text": "确认后,所有选定的设备将被取消分配,并且客户将无法访问。",
349 349 "device-credentials": "设备凭据",
350 350 "credentials-type": "凭据类型",
... ... @@ -366,7 +366,7 @@ export default function addLocaleChinese(locales) {
366 366 "accessTokenCopiedMessage": "设备访问令牌已复制到剪贴板",
367 367 "assignedToCustomer": "分配给客户",
368 368 "unable-delete-device-alias-title": "无法删除设备别名",
369   - "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除,因为它被下列部件所使用:<br/>{{widgetsList}}",
  369 + "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除,因为它被下列部件所使用: <br/> {{widgetsList}}",
370 370 "is-gateway": "是网关"
371 371 },
372 372 "dialog" : {
... ... @@ -404,13 +404,13 @@ export default function addLocaleChinese(locales) {
404 404 "fullscreen": "全屏"
405 405 },
406 406 "function" : {
407   - "function" : "功能"
  407 + "function" : "函数"
408 408 },
409 409 "grid" : {
410 410 "delete-item-title": "您确定要删除此项吗?",
411 411 "delete-item-text": "注意,确认后此项和所有相关数据将变得不可恢复。",
412   - "delete-items-title": "您确定要删除{count,select,1 {1 item} other {#items}}?",
413   - "delete-items-action-title": "删除{count,select,1 {1 item} other {#items}}",
  412 + "delete-items-title": "您确定要删除{count, select, 1 {1 item} other {# items}} 吗?",
  413 + "delete-items-action-title": "删除{count, select, 1 {1 item} other {# items}}",
414 414 "delete-items-text": "注意,确认后所有选择的项目将被删除,所有相关数据将变得不可恢复。",
415 415 "add-item-text": "添加新项目",
416 416 "no-items-text": "没有找到项目",
... ... @@ -442,16 +442,16 @@ export default function addLocaleChinese(locales) {
442 442 "return-type-mismatch": "函数必须返回'{{type}}'类型的值!"
443 443 },
444 444 "legend" : {
445   - "position" : "Legend position",
446   - "show-max" : "Show max value",
447   - "show-min" : "Show min value",
448   - "show-avg" : "Show average value",
449   - "show-total" : "Show total value",
450   - "settings" : "Legend settings",
451   - "min" : "min",
452   - "max" : "max",
453   - "avg" : "avg",
454   - "total" : "total"
  445 + "position" : "图例位置",
  446 + "show-max" : "显示最大值",
  447 + "show-min" : "显示最小值",
  448 + "show-avg" : "显示平均值",
  449 + "show-total" : "显示总数",
  450 + "settings" : "图例设置",
  451 + "min" : "最小值",
  452 + "max" : "最大值",
  453 + "avg" : "平均值",
  454 + "total" : "总数"
455 455 },
456 456 "login" : {
457 457 "login": "登录",
... ... @@ -471,49 +471,49 @@ export default function addLocaleChinese(locales) {
471 471 "email": "电子邮件"
472 472 },
473 473 "plugin" : {
474   - "plugins" : "Plugins",
475   - "delete" : "Delete plugin",
476   - "activate" : "Activate plugin",
477   - "suspend" : "Suspend plugin",
478   - "active" : "Active",
479   - "suspended" : "Suspended",
480   - "name" : "Name",
481   - "name-required" : "Name is required.",
482   - "description" : "Description",
483   - "add" : "Add Plugin",
484   - "delete-plugin-title" : "Are you sure you want to delete the plugin '{{pluginName}}'?",
485   - "delete-plugin-text" : "Be careful, after the confirmation the plugin and all related data will become unrecoverable.",
486   - "delete-plugins-title" : "Are you sure you want to delete { count, select, 1 {1 plugin} other {# plugins} }?",
487   - "delete-plugins-action-title" : "Delete { count, select, 1 {1 plugin} other {# plugins} }",
488   - "delete-plugins-text" : "Be careful, after the confirmation all selected plugins will be removed and all related data will become unrecoverable.",
489   - "add-plugin-text" : "Add new plugin",
490   - "no-plugins-text" : "No plugins found",
491   - "plugin-details" : "Plugin details",
492   - "api-token" : "API token",
493   - "api-token-required" : "API token is required.",
494   - "type" : "Plugin type",
495   - "type-required" : "Plugin type is required.",
496   - "configuration" : "Plugin configuration",
497   - "system" : "System",
498   - "select-plugin" : "Select plugin",
499   - "plugin" : "Plugin",
500   - "no-plugins-matching" : "No plugins matching '{{plugin}}' were found.",
501   - "plugin-required" : "Plugin is required.",
502   - "plugin-require-match" : "Please select an existing plugin.",
503   - "events" : "Events",
504   - "details" : "Details",
505   - "import" : "Import plugin",
506   - "export" : "Export plugin",
507   - "export-failed-error" : "Unable to export plugin: {{error}}",
508   - "create-new-plugin" : "Create new plugin",
509   - "plugin-file" : "Plugin file",
510   - "invalid-plugin-file-error" : "Unable to import plugin: Invalid plugin data structure."
  474 + "plugins" : "插件",
  475 + "delete" : "删除插件",
  476 + "activate" : "激活插件",
  477 + "suspend" : "暂停插件",
  478 + "active" : "激活",
  479 + "suspended" : "暂停",
  480 + "name" : "名称",
  481 + "name-required" : "名称是必填项。",
  482 + "description" : "描述",
  483 + "add" : "添加插件",
  484 + "delete-plugin-title" : "你确定要删除插件 '{{pluginName}}' 吗?",
  485 + "delete-plugin-text" : "小心!确认后,插件和所有相关数据将不可恢复。",
  486 + "delete-plugins-title" : "你确定你要删除 { count, select, 1 {1 plugin} other {# plugins} } 吗?",
  487 + "delete-plugins-action-title" : "删除 { count, select, 1 {1 plugin} other {# plugins} }",
  488 + "delete-plugins-text" : "小心!确认后,所有选定的插件将被删除,所有相关数据将不可恢复。",
  489 + "add-plugin-text" : "添加新的插件",
  490 + "no-plugins-text" : "没有找到插件",
  491 + "plugin-details" : "插件详细信息",
  492 + "api-token" : "API令牌",
  493 + "api-token-required" : "API令牌是必需的。",
  494 + "type" : "插件类型",
  495 + "type-required" : "插件类型是必需的。",
  496 + "configuration" : "插件配置",
  497 + "system" : "系统",
  498 + "select-plugin" : "选择插件",
  499 + "plugin" : "插件",
  500 + "no-plugins-matching" : "没有找到匹配'{{plugin}}'的插件。",
  501 + "plugin-required" : "插件是必需的。",
  502 + "plugin-require-match" : "请选择一个现有的插件。",
  503 + "events" : "事件",
  504 + "details" : "详情",
  505 + "import" : "导入插件",
  506 + "export" : "导出插件",
  507 + "export-failed-error" : "无法导出插件:{{error}}",
  508 + "create-new-plugin" : "创建新的插件",
  509 + "plugin-file" : "插件文件",
  510 + "invalid-plugin-file-error" : "无法导入插件:插件数据结构无效。"
511 511 },
512 512 "position" : {
513   - "top" : "Top",
514   - "bottom" : "Bottom",
515   - "left" : "Left",
516   - "right" : "Right"
  513 + "top" : "顶部",
  514 + "bottom" : "底部",
  515 + "left" : "左侧",
  516 + "right" : "右侧"
517 517 },
518 518 "profile" : {
519 519 "profile": "属性",
... ... @@ -521,263 +521,263 @@ export default function addLocaleChinese(locales) {
521 521 "current-password": "当前密码"
522 522 },
523 523 "rule" : {
524   - "rules" : "Rules",
525   - "delete" : "Delete rule",
526   - "activate" : "Activate rule",
527   - "suspend" : "Suspend rule",
528   - "active" : "Active",
529   - "suspended" : "Suspended",
530   - "name" : "Name",
531   - "name-required" : "Name is required.",
532   - "description" : "Description",
533   - "add" : "Add Rule",
534   - "delete-rule-title" : "Are you sure you want to delete the rule '{{ruleName}}'?",
535   - "delete-rule-text" : "Be careful, after the confirmation the rule and all related data will become unrecoverable.",
536   - "delete-rules-title" : "Are you sure you want to delete { count, select, 1 {1 rule} other {# rules} }?",
537   - "delete-rules-action-title" : "Delete { count, select, 1 {1 rule} other {# rules} }",
538   - "delete-rules-text" : "Be careful, after the confirmation all selected rules will be removed and all related data will become unrecoverable.",
539   - "add-rule-text" : "Add new rule",
540   - "no-rules-text" : "No rules found",
541   - "rule-details" : "Rule details",
542   - "filters" : "Filters",
543   - "filter" : "Filter",
544   - "add-filter-prompt" : "Please add filter",
545   - "remove-filter" : "Remove filter",
546   - "add-filter" : "Add filter",
547   - "filter-name" : "Filter name",
548   - "filter-type" : "Filter type",
549   - "edit-filter" : "Edit filter",
550   - "view-filter" : "View filter",
551   - "component-name" : "Name",
552   - "component-name-required" : "Name is required.",
553   - "component-type" : "Type",
554   - "component-type-required" : "Type is required.",
555   - "processor" : "Processor",
556   - "no-processor-configured" : "No processor configured",
557   - "create-processor" : "Create processor",
558   - "processor-name" : "Processor name",
559   - "processor-type" : "Processor type",
560   - "plugin-action" : "Plugin action",
561   - "action-name" : "Action name",
562   - "action-type" : "Action type",
563   - "create-action-prompt" : "Please create action",
564   - "create-action" : "Create action",
565   - "details" : "Details",
566   - "events" : "Events",
567   - "system" : "System",
568   - "import" : "Import rule",
569   - "export" : "Export rule",
570   - "export-failed-error" : "Unable to export rule: {{error}}",
571   - "create-new-rule" : "Create new rule",
572   - "rule-file" : "Rule file",
573   - "invalid-rule-file-error" : "Unable to import rule: Invalid rule data structure."
  524 + "rules" : "规则",
  525 + "delete" : "删除规则",
  526 + "activate" : "激活规则",
  527 + "suspend" : "暂停规则",
  528 + "active" : "激活",
  529 + "suspended" : "暂停",
  530 + "name" : "名称",
  531 + "name-required" : "名称是必填项。",
  532 + "description" : "描述",
  533 + "add" : "添加规则",
  534 + "delete-rule-title" : "您确定要删除规则'{{ruleName}}'吗?",
  535 + "delete-rule-text" : "小心!确认后,规则和所有相关数据将不可恢复。",
  536 + "delete-rules-title" : "你确定要删除 {count, select, 1 {1 rule} other {# rules}} 吗?",
  537 + "delete-rules-action-title" : "删除 { count, select, 1 {1 rule} other {# rules} }",
  538 + "delete-rules-text" : "小心!确认后,所有选定的规则将被删除,所有相关数据将不可恢复。",
  539 + "add-rule-text" : "添加新规则",
  540 + "no-rules-text" : "没有找到规则",
  541 + "rule-details" : "规则详情",
  542 + "filters" : "过滤器",
  543 + "filter" : "过滤器",
  544 + "add-filter-prompt" : "请添加过滤器",
  545 + "remove-filter" : "删除过滤器",
  546 + "add-filter" : "添加过滤器",
  547 + "filter-name" : "过滤器名称",
  548 + "filter-type" : "过滤器类型",
  549 + "edit-filter" : "编辑过滤器",
  550 + "view-filter" : "查看过滤器",
  551 + "component-name" : "名称",
  552 + "component-name-required" : "名称是必填项。",
  553 + "component-type" : "类型",
  554 + "component-type-required" : "类型是必填项。",
  555 + "processor" : "处理器",
  556 + "no-processor-configured" : "未配置处理器",
  557 + "create-processor" : "创建处理器",
  558 + "processor-name" : "处理器名称",
  559 + "processor-type" : "处理器类型",
  560 + "plugin-action" : "插件动作",
  561 + "action-name" : "动作名称",
  562 + "action-type" : "动作类型",
  563 + "create-action-prompt" : "请创建动作",
  564 + "create-action" : "创建动作",
  565 + "details" : "详情",
  566 + "events" : "事件",
  567 + "system" : "系统",
  568 + "import" : "导入规则",
  569 + "export" : "导出规则",
  570 + "export-failed-error" : "无法导出规则:{{error}}",
  571 + "create-new-rule" : "创建新规则",
  572 + "rule-file" : "规则文件",
  573 + "invalid-rule-file-error" : "无法导入规则:规则数据结构无效。"
574 574 },
575 575 "rule-plugin" : {
576   - "management" : "Rules and plugins management"
  576 + "management" : "规则和插件管理"
577 577 },
578 578 "tenant" : {
579   - "tenants" : "Tenants",
580   - "management" : "Tenant management",
581   - "add" : "Add Tenant",
582   - "admins" : "Admins",
583   - "manage-tenant-admins" : "Manage tenant admins",
584   - "delete" : "Delete tenant",
585   - "add-tenant-text" : "Add new tenant",
586   - "no-tenants-text" : "No tenants found",
587   - "tenant-details" : "Tenant details",
588   - "delete-tenant-title" : "Are you sure you want to delete the tenant '{{tenantTitle}}'?",
589   - "delete-tenant-text" : "Be careful, after the confirmation the tenant and all related data will become unrecoverable.",
590   - "delete-tenants-title" : "Are you sure you want to delete { count, select, 1 {1 tenant} other {# tenants} }?",
591   - "delete-tenants-action-title" : "Delete { count, select, 1 {1 tenant} other {# tenants} }",
592   - "delete-tenants-text" : "Be careful, after the confirmation all selected tenants will be removed and all related data will become unrecoverable.",
593   - "title" : "Title",
594   - "title-required" : "Title is required.",
595   - "description" : "Description"
  579 + "tenants" : "租户",
  580 + "management" : "租户管理",
  581 + "add" : "添加租户",
  582 + "admins" : "管理员",
  583 + "manage-tenant-admins" : "管理租户管理员",
  584 + "delete" : "删除租户",
  585 + "add-tenant-text" : "添加新租户",
  586 + "no-tenants-text" : "没有找到租户",
  587 + "tenant-details" : "租客详情",
  588 + "delete-tenant-title" : "您确定要删除租户'{{tenantTitle}}'?",
  589 + "delete-tenant-text" : "小心!确认后,租户和所有相关数据将不可恢复。",
  590 + "delete-tenants-title" : "您确定要删除 {count,select,1 {1 tenant} other {# tenants}} 吗?",
  591 + "delete-tenants-action-title" : "删除 { count, select, 1 {1 tenant} other {# tenants} }",
  592 + "delete-tenants-text" : "小心!确认后,所有选定的租户将被删除,所有相关数据将不可恢复。",
  593 + "title" : "标题",
  594 + "title-required" : "标题是必填项。",
  595 + "description" : "描述"
596 596 },
597 597 "timeinterval" : {
598 598 "seconds-interval" : "{ seconds, select, 1 {1 second} other {# seconds} }",
599 599 "minutes-interval" : "{ minutes, select, 1 {1 minute} other {# minutes} }",
600 600 "hours-interval" : "{ hours, select, 1 {1 hour} other {# hours} }",
601 601 "days-interval" : "{ days, select, 1 {1 day} other {# days} }",
602   - "days" : "Days",
603   - "hours" : "Hours",
604   - "minutes" : "Minutes",
605   - "seconds" : "Seconds",
606   - "advanced" : "Advanced"
  602 + "days" : "天",
  603 + "hours" : "时",
  604 + "minutes" : "分",
  605 + "seconds" : "秒",
  606 + "advanced" : "高级"
607 607 },
608 608 "timewindow" : {
609 609 "days" : "{ days, select, 1 { day } other {# days } }",
610 610 "hours" : "{ hours, select, 0 { hour } 1 {1 hour } other {# hours } }",
611 611 "minutes" : "{ minutes, select, 0 { minute } 1 {1 minute } other {# minutes } }",
612 612 "seconds" : "{ seconds, select, 0 { second } 1 {1 second } other {# seconds } }",
613   - "realtime" : "Realtime",
614   - "history" : "History",
615   - "last-prefix" : "last",
616   - "period" : "from {{ startTime }} to {{ endTime }}",
617   - "edit" : "Edit timewindow",
618   - "date-range" : "Date range",
619   - "last" : "Last",
620   - "time-period" : "Time period"
  613 + "realtime" : "实时",
  614 + "history" : "历史",
  615 + "last-prefix" : "最后",
  616 + "period" : "从 {{ startTime }} 到 {{ endTime }}",
  617 + "edit" : "编辑时间窗口",
  618 + "date-range" : "日期范围",
  619 + "last" : "最后",
  620 + "time-period" : "时间段"
621 621 },
622 622 "user" : {
623   - "users" : "Users",
624   - "customer-users" : "Customer Users",
625   - "tenant-admins" : "Tenant Admins",
626   - "sys-admin" : "System administrator",
627   - "tenant-admin" : "Tenant administrator",
628   - "customer" : "Customer",
629   - "anonymous" : "Anonymous",
630   - "add" : "Add User",
631   - "delete" : "Delete user",
632   - "add-user-text" : "Add new user",
633   - "no-users-text" : "No users found",
634   - "user-details" : "User details",
635   - "delete-user-title" : "Are you sure you want to delete the user '{{userEmail}}'?",
636   - "delete-user-text" : "Be careful, after the confirmation the user and all related data will become unrecoverable.",
637   - "delete-users-title" : "Are you sure you want to delete { count, select, 1 {1 user} other {# users} }?",
638   - "delete-users-action-title" : "Delete { count, select, 1 {1 user} other {# users} }",
639   - "delete-users-text" : "Be careful, after the confirmation all selected users will be removed and all related data will become unrecoverable.",
640   - "activation-email-sent-message" : "Activation email was successfully sent!",
641   - "resend-activation" : "Resend activation",
642   - "email" : "Email",
643   - "email-required" : "Email is required.",
644   - "first-name" : "First Name",
645   - "last-name" : "Last Name",
646   - "description" : "Description",
647   - "default-dashboard" : "Default dashboard",
648   - "always-fullscreen" : "Always fullscreen"
  623 + "users" : "用户",
  624 + "customer-users" : "客户用户",
  625 + "tenant-admins" : "租户管理员",
  626 + "sys-admin" : "系统管理员",
  627 + "tenant-admin" : "租户管理员",
  628 + "customer" : "客户",
  629 + "anonymous" : "匿名",
  630 + "add" : "添加用户",
  631 + "delete" : "删除用户",
  632 + "add-user-text" : "添加新用户",
  633 + "no-users-text" : "找不到用户",
  634 + "user-details" : "用户详细信息",
  635 + "delete-user-title" : "您确定要删除用户 '{{userEmail}}' 吗?",
  636 + "delete-user-text" : "小心!确认后,用户和所有相关数据将不可恢复。",
  637 + "delete-users-title" : "你确定你要删除 { count, select, 1 {1 user} other {# users} }吗?",
  638 + "delete-users-action-title" : "删除 { count, select, 1 {1 user} other {# users} }",
  639 + "delete-users-text" : "小心!确认后,所有选定的用户将被删除,所有相关数据将不可恢复。",
  640 + "activation-email-sent-message" : "激活电子邮件已成功发送!",
  641 + "resend-activation" : "重新发送激活",
  642 + "email" : "电子邮件",
  643 + "email-required" : "电子邮件是必需的。",
  644 + "first-name" : "名字",
  645 + "last-name" : "姓",
  646 + "description" : "描述",
  647 + "default-dashboard" : "默认面板",
  648 + "always-fullscreen" : "始终全屏"
649 649 },
650 650 "value" : {
651   - "type" : "Value type",
652   - "string" : "String",
653   - "string-value" : "String value",
654   - "integer" : "Integer",
655   - "integer-value" : "Integer value",
656   - "invalid-integer-value" : "Invalid integer value",
657   - "double" : "Double",
658   - "double-value" : "Double value",
659   - "boolean" : "Boolean",
660   - "boolean-value" : "Boolean value",
661   - "false" : "False",
662   - "true" : "True"
  651 + "type" : "值类型",
  652 + "string" : "字符串",
  653 + "string-value" : "字符串值",
  654 + "integer" : "数字",
  655 + "integer-value" : "数字值",
  656 + "invalid-integer-value" : "整数值无效",
  657 + "double" : "双精度小数",
  658 + "double-value" : "双精度小数值",
  659 + "boolean" : "布尔",
  660 + "boolean-value" : "布尔值",
  661 + "false" : "假",
  662 + "true" : "真"
663 663 },
664 664 "widget" : {
665   - "widget-library" : "Widgets Library",
666   - "widget-bundle" : "Widgets Bundle",
667   - "select-widgets-bundle" : "Select widgets bundle",
668   - "management" : "Widget management",
669   - "editor" : "Widget Editor",
670   - "widget-type-not-found" : "Problem loading widget configuration.<br>Probably associated\n widget type was removed.",
671   - "widget-type-load-error" : "Widget wasn't loaded due to the following errors:",
672   - "remove" : "Remove widget",
673   - "edit" : "Edit widget",
674   - "remove-widget-title" : "Are you sure you want to remove the widget '{{widgetTitle}}'?",
675   - "remove-widget-text" : "After the confirmation the widget and all related data will become unrecoverable.",
676   - "timeseries" : "Time series",
677   - "latest-values" : "Latest values",
678   - "rpc" : "Control widget",
679   - "static" : "Static widget",
680   - "select-widget-type" : "Select widget type",
681   - "missing-widget-title-error" : "Widget title must be specified!",
682   - "widget-saved" : "Widget saved",
683   - "unable-to-save-widget-error" : "Unable to save widget! Widget has errors!",
684   - "save" : "Save widget",
685   - "saveAs" : "Save widget as",
686   - "save-widget-type-as" : "Save widget type as",
687   - "save-widget-type-as-text" : "Please enter new widget title and/or select target widgets bundle",
688   - "toggle-fullscreen" : "Toggle fullscreen",
689   - "run" : "Run widget",
690   - "title" : "Widget title",
691   - "title-required" : "Widget title is required.",
692   - "type" : "Widget type",
693   - "resources" : "Resources",
  665 + "widget-library" : "小部件库",
  666 + "widget-bundle" : "小部件包",
  667 + "select-widgets-bundle" : "选择小部件包",
  668 + "management" : "小部件管理",
  669 + "editor" : "小部件编辑器",
  670 + "widget-type-not-found" : "加载小部件配置时出现问题。<br> 可能关联的\n 小部件类型已删除。",
  671 + "widget-type-load-error" : "由于以下错误,小工具未加载:",
  672 + "remove" : "删除小部件",
  673 + "edit" : "编辑小部件",
  674 + "remove-widget-title" : "您确定要删除小部件 '{{widgetTitle}}' 吗?",
  675 + "remove-widget-text" : "确认后,窗口小部件和所有相关数据将不可恢复。",
  676 + "timeseries" : "时间序列",
  677 + "latest-values" : "最新值",
  678 + "rpc" : "控件小部件",
  679 + "static" : "静态小部件",
  680 + "select-widget-type" : "选择窗口小部件类型",
  681 + "missing-widget-title-error" : "小部件标题必须指定!",
  682 + "widget-saved" : "小部件已保存",
  683 + "unable-to-save-widget-error" : "无法保存窗口小部件! 小部件有错误!",
  684 + "save" : "保存小部件",
  685 + "saveAs" : "将小部件另存为",
  686 + "save-widget-type-as" : "将小部件类型另存为",
  687 + "save-widget-type-as-text" : "请输入新的小部件标题和/或选择目标小部件包",
  688 + "toggle-fullscreen" : "切换全屏",
  689 + "run" : "运行小部件",
  690 + "title" : "小部件标题",
  691 + "title-required" : "需要小部件标题。",
  692 + "type" : "小部件类型",
  693 + "resources" : "资源",
694 694 "resource-url" : "JavaScript/CSS URL",
695   - "remove-resource" : "Remove resource",
696   - "add-resource" : "Add resource",
  695 + "remove-resource" : "删除资源",
  696 + "add-resource" : "添加资源",
697 697 "html" : "HTML",
698   - "tidy" : "Tidy",
  698 + "tidy" : "整理",
699 699 "css" : "CSS",
700   - "settings-schema" : "Settings schema",
701   - "datakey-settings-schema" : "Data key settings schema",
  700 + "settings-schema" : "设置模式",
  701 + "datakey-settings-schema" : "数据键设置模式",
702 702 "javascript" : "Javascript",
703   - "remove-widget-type-title" : "Are you sure you want to remove the widget type '{{widgetName}}'?",
704   - "remove-widget-type-text" : "After the confirmation the widget type and all related data will become unrecoverable.",
705   - "remove-widget-type" : "Remove widget type",
706   - "add-widget-type" : "Add new widget type",
707   - "widget-type-load-failed-error" : "Failed to load widget type!",
708   - "widget-template-load-failed-error" : "Failed to load widget template!",
709   - "add" : "Add Widget",
710   - "undo" : "Undo widget changes",
711   - "export" : "Export widget"
  703 + "remove-widget-type-title" : "您确定要删除小部件类型 '{{widgetName}}'吗?",
  704 + "remove-widget-type-text" : "确认后,窗口小部件类型和所有相关数据将不可恢复。",
  705 + "remove-widget-type" : "删除小部件类型",
  706 + "add-widget-type" : "添加新的小部件类型",
  707 + "widget-type-load-failed-error" : "无法加载小部件类型!",
  708 + "widget-template-load-failed-error" : "无法加载小部件模板!",
  709 + "add" : "添加小部件",
  710 + "undo" : "撤消小部件更改",
  711 + "export" : "导出小部件"
712 712 },
713 713 "widgets-bundle" : {
714   - "current" : "Current bundle",
715   - "widgets-bundles" : "Widgets Bundles",
716   - "add" : "Add Widgets Bundle",
717   - "delete" : "Delete widgets bundle",
718   - "title" : "Title",
719   - "title-required" : "Title is required.",
720   - "add-widgets-bundle-text" : "Add new widgets bundle",
721   - "no-widgets-bundles-text" : "No widgets bundles found",
722   - "empty" : "Widgets bundle is empty",
723   - "details" : "Details",
724   - "widgets-bundle-details" : "Widgets bundle details",
725   - "delete-widgets-bundle-title" : "Are you sure you want to delete the widgets bundle '{{widgetsBundleTitle}}'?",
726   - "delete-widgets-bundle-text" : "Be careful, after the confirmation the widgets bundle and all related data will become unrecoverable.",
727   - "delete-widgets-bundles-title" : "Are you sure you want to delete { count, select, 1 {1 widgets bundle} other {# widgets bundles} }?",
728   - "delete-widgets-bundles-action-title" : "Delete { count, select, 1 {1 widgets bundle} other {# widgets bundles} }",
729   - "delete-widgets-bundles-text" : "Be careful, after the confirmation all selected widgets bundles will be removed and all related data will become unrecoverable.",
730   - "no-widgets-bundles-matching" : "No widgets bundles matching '{{widgetsBundle}}' were found.",
731   - "widgets-bundle-required" : "Widgets bundle is required.",
732   - "system" : "System",
733   - "import" : "Import widgets bundle",
734   - "export" : "Export widgets bundle",
735   - "export-failed-error" : "Unable to export widgets bundle: {{error}}",
736   - "create-new-widgets-bundle" : "Create new widgets bundle",
737   - "widgets-bundle-file" : "Widgets bundle file",
738   - "invalid-widgets-bundle-file-error" : "Unable to import widgets bundle: Invalid widgets bundle data structure."
  714 + "current" : "当前包",
  715 + "widgets-bundles" : "小部件包",
  716 + "add" : "添加小部件包",
  717 + "delete" : "删除小部件包",
  718 + "title" : "标题",
  719 + "title-required" : "标题是必填项。",
  720 + "add-widgets-bundle-text" : "添加新的小部件包",
  721 + "no-widgets-bundles-text" : "找不到小工具包",
  722 + "empty" : "小部件包是空的",
  723 + "details" : "详情",
  724 + "widgets-bundle-details" : "小部件包详细信息",
  725 + "delete-widgets-bundle-title" : "您确定要删除小部件包 '{{widgetsBundleTitle}}'吗?",
  726 + "delete-widgets-bundle-text" : "小心!确认后,小部件包和所有相关数据将不可恢复。",
  727 + "delete-widgets-bundles-title" : "你确定你要删除 { count, select, 1 {1 widgets bundle} other {# widgets bundles} } 吗?",
  728 + "delete-widgets-bundles-action-title" : "删除 { count, select, 1 {1 widgets bundle} other {# widgets bundles} }",
  729 + "delete-widgets-bundles-text" : "小心!确认后,所有选定的小部件包将被删除,所有相关数据将不可恢复。",
  730 + "no-widgets-bundles-matching" : "没有找到与 '{{widgetsBundle}}' 匹配的小部件包。",
  731 + "widgets-bundle-required" : "需要小部件包。",
  732 + "system" : "系统",
  733 + "import" : "导入小部件包",
  734 + "export" : "导出小部件包",
  735 + "export-failed-error" : "无法导出小部件包: {{error}}",
  736 + "create-new-widgets-bundle" : "创建新的小部件包",
  737 + "widgets-bundle-file" : "小部件包文件",
  738 + "invalid-widgets-bundle-file-error" : "无法导入小部件包:无效的小部件包数据结构。"
739 739 },
740 740 "widget-config" : {
741   - "data" : "Data",
742   - "settings" : "Settings",
743   - "advanced" : "Advanced",
744   - "title" : "Title",
745   - "general-settings" : "General settings",
746   - "display-title" : "Display title",
747   - "drop-shadow" : "Drop shadow",
748   - "enable-fullscreen" : "Enable fullscreen",
749   - "background-color" : "Background color",
750   - "text-color" : "Text color",
751   - "padding" : "Padding",
752   - "title-style" : "Title style",
753   - "mobile-mode-settings" : "Mobile mode settings",
754   - "order" : "Order",
755   - "height" : "Height",
756   - "units" : "Special symbol to show next to value",
757   - "decimals" : "Number of digits after floating point",
758   - "timewindow" : "Timewindow",
759   - "use-dashboard-timewindow" : "Use dashboard timewindow",
760   - "display-legend" : "Display legend",
761   - "datasources" : "Datasources",
762   - "datasource-type" : "Type",
763   - "datasource-parameters" : "Parameters",
764   - "remove-datasource" : "Remove datasource",
765   - "add-datasource" : "Add datasource",
766   - "target-device" : "Target device"
  741 + "data" : "数据",
  742 + "settings" : "设置",
  743 + "advanced" : "高级",
  744 + "title" : "标题",
  745 + "general-settings" : "常规设置",
  746 + "display-title" : "显示标题",
  747 + "drop-shadow" : "阴影",
  748 + "enable-fullscreen" : "启用全屏",
  749 + "background-color" : "背景颜色",
  750 + "text-color" : "文字颜色",
  751 + "padding" : "填充",
  752 + "title-style" : "标题风格",
  753 + "mobile-mode-settings" : "移动模式设置",
  754 + "order" : "顺序",
  755 + "height" : "高度",
  756 + "units" : "特殊符号展示值",
  757 + "decimals" : "浮点数后的位数",
  758 + "timewindow" : "时间窗口",
  759 + "use-dashboard-timewindow" : "使用仪表板的时间窗口",
  760 + "display-legend" : "显示图例",
  761 + "datasources" : "数据源",
  762 + "datasource-type" : "类型",
  763 + "datasource-parameters" : "参数",
  764 + "remove-datasource" : "移除数据源",
  765 + "add-datasource" : "添加数据源",
  766 + "target-device" : "目标设备"
767 767 },
768 768 "widget-type" : {
769   - "import" : "Import widget type",
770   - "export" : "Export widget type",
771   - "export-failed-error" : "Unable to export widget type: {{error}}",
772   - "create-new-widget-type" : "Create new widget type",
773   - "widget-type-file" : "Widget type file",
774   - "invalid-widget-type-file-error" : "Unable to import widget type: Invalid widget type data structure."
  769 + "import" : "导入小部件类型",
  770 + "export" : "导出小部件类型",
  771 + "export-failed-error" : "无法导出小部件类型: {{error}}",
  772 + "create-new-widget-type" : "创建新的小部件类型",
  773 + "widget-type-file" : "小部件类型文件",
  774 + "invalid-widget-type-file-error" : "无法导入小部件类型:无效的小部件类型数据结构。"
775 775 },
776 776 "language" : {
777 777 "language" : "语言",
778 778 "en_US" : "英语",
779 779 "ko_KR" : "韩语",
780   - "zh_CN": "汉语"
  780 + "zh_CN" : "汉语"
781 781 }
782 782 };
783 783 angular.extend(locales, {
... ...
... ... @@ -27,7 +27,11 @@ export default function ProfileController(userService, $scope, $document, $mdDia
27 27
28 28 vm.save = save;
29 29 vm.changePassword = changePassword;
30   - vm.languageList = {en_US: {value: "en_US", name: "language.en_US"}, ko_KR: {value : "ko_KR", name: "language.ko_KR"}};
  30 + vm.languageList = {
  31 + en_US: {value: "en_US", name: "language.en_US"},
  32 + ko_KR: {value : "ko_KR", name: "language.ko_KR"},
  33 + zh_CN: {value : "zh_CN", name: "language.zh_CN"}
  34 +};
31 35
32 36 loadProfile();
33 37
... ...