Commit 084755107455a099f148bf9ede6534dec0e76904
Committed by
GitHub
Merge pull request #127 from pudoj/release-1.2
Adding Chineese locale
Showing
6 changed files
with
802 additions
and
3 deletions
... | ... | @@ -16,6 +16,7 @@ |
16 | 16 | import injectTapEventPlugin from 'react-tap-event-plugin'; |
17 | 17 | import UrlHandler from './url.handler'; |
18 | 18 | import addLocaleKorean from './locale/locale.constant-ko'; |
19 | +import addLocaleChinese from './locale/locale.constant-zh'; | |
19 | 20 | |
20 | 21 | /* eslint-disable import/no-unresolved, import/default */ |
21 | 22 | |
... | ... | @@ -50,11 +51,16 @@ export default function AppConfig($provide, |
50 | 51 | $translateProvider.addInterpolation('$translateMessageFormatInterpolation'); |
51 | 52 | |
52 | 53 | addLocaleKorean(locales); |
54 | + addLocaleChinese(locales); | |
55 | + | |
53 | 56 | var $window = angular.injector(['ng']).get('$window'); |
54 | 57 | var lang = $window.navigator.language || $window.navigator.userLanguage; |
55 | 58 | if (lang === 'ko') { |
56 | 59 | $translateProvider.useSanitizeValueStrategy(null); |
57 | 60 | $translateProvider.preferredLanguage('ko_KR'); |
61 | + } else if (lang === 'zh') { | |
62 | + $translateProvider.useSanitizeValueStrategy(null); | |
63 | + $translateProvider.preferredLanguage('zh_CN'); | |
58 | 64 | } |
59 | 65 | |
60 | 66 | for (var langKey in locales) { | ... | ... |
ui/src/app/locale/locale.constant-zh.js
0 → 100644
1 | +/* | |
2 | + * Copyright © 2016-2017 The Thingsboard Authors | |
3 | + * | |
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | + * you may not use this file except in compliance with the License. | |
6 | + * You may obtain a copy of the License at | |
7 | + * | |
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | |
9 | + * | |
10 | + * Unless required by applicable law or agreed to in writing, software | |
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | + * See the License for the specific language governing permissions and | |
14 | + * limitations under the License. | |
15 | + */ | |
16 | + | |
17 | +export default function addLocaleChinese(locales) { | |
18 | + var zh_CN = { | |
19 | + "access" : { | |
20 | + "unauthorized" : "未授权", | |
21 | + "unauthorized-access" : "未授权访问", | |
22 | + "unauthorized-access-text" : "您应该登录以访问此资源!", | |
23 | + "access-forbidden" : "禁止访问", | |
24 | + "access-forbidden-text" : "您没有访问此位置的权限! <br/> 如果您仍希望访问此位置,请尝试使用其他用户登录。", | |
25 | + "refresh-token-expired" : "会话已过期", | |
26 | + "refresh-token-failed" : "无法刷新会话" | |
27 | + }, | |
28 | + "action" : { | |
29 | + "activate" : "激活", | |
30 | + "suspend" : "挂起", | |
31 | + "save" : "保存", | |
32 | + "saveAs" : "另存为", | |
33 | + "cancel" : "取消", | |
34 | + "ok" : "确定", | |
35 | + "delete" : "删除", | |
36 | + "add" : "添加", | |
37 | + "yes" : "是", | |
38 | + "no" : "否", | |
39 | + "update" : "更新", | |
40 | + "remove" : "移出", | |
41 | + "search" : "检索", | |
42 | + "assign" : "分配", | |
43 | + "unassign" : "取消分配", | |
44 | + "apply" : "应用", | |
45 | + "apply-changes" : "应用更改", | |
46 | + "edit-mode" : "编辑模式", | |
47 | + "enter-edit-mode" : "进入编辑模式", | |
48 | + "decline-changes" : "取消更改", | |
49 | + "close" : "关闭", | |
50 | + "back" : "后退", | |
51 | + "run" : "运行", | |
52 | + "sign-in" : "登录!", | |
53 | + "edit" : "编辑", | |
54 | + "view" : "查看", | |
55 | + "create" : "创建", | |
56 | + "drag" : "拖拽", | |
57 | + "refresh" : "刷新", | |
58 | + "undo" : "撤销", | |
59 | + "copy" : "复制", | |
60 | + "paste" : "粘贴", | |
61 | + "import" : "导入", | |
62 | + "export" : "导出" | |
63 | + }, | |
64 | + "aggregation" : { | |
65 | + "aggregation" : "聚合", | |
66 | + "function" : "数据聚合函数", | |
67 | + "limit" : "上限", | |
68 | + "group-interval" : "按组分隔", | |
69 | + "min" : "最小值", | |
70 | + "max" : "最大值", | |
71 | + "avg" : "平均值", | |
72 | + "sum" : "总数", | |
73 | + "count" : "计数", | |
74 | + "none" : "空" | |
75 | + }, | |
76 | + "admin" : { | |
77 | + "general" : "常规", | |
78 | + "general-settings" : "常规设置", | |
79 | + "outgoing-mail" : "发送邮件", | |
80 | + "outgoing-mail-settings" : "发送邮件设置", | |
81 | + "system-settings" : "系统设置", | |
82 | + "test-mail-sent" : "测试邮件已成功发送!", | |
83 | + "base-url" : "基本URL", | |
84 | + "base-url-required" : "基本URL是必需的。", | |
85 | + "mail-from" : "邮件来自", | |
86 | + "mail-from-required" : "需要邮件发件人。", | |
87 | + "smtp-protocol" : "SMTP协议", | |
88 | + "smtp-host" : "SMTP主机", | |
89 | + "smtp-host-required" : "SMTP主机是必需的。", | |
90 | + "smtp-port" : "SMTP端口", | |
91 | + "smtp-port-required" : "您必须提供smtp端口。", | |
92 | + "smtp-port-invalid" : "这看起来不是有效的smtp端口。", | |
93 | + "timeout-msec" : "超时 (ms)", | |
94 | + "timeout-required" : "超时值是必需的。", | |
95 | + "timeout-invalid" : "这看起来不像有效的超时值。", | |
96 | + "enable-tls" : "启用TLS", | |
97 | + "send-test-mail" : "发送测试邮件" | |
98 | + }, | |
99 | + "attribute" : { | |
100 | + "attributes" : "属性", | |
101 | + "latest-telemetry" : "最新遥测", | |
102 | + "attributes-scope" : "设备属性范围", | |
103 | + "scope-latest-telemetry" : "最新遥测", | |
104 | + "scope-client" : "客户端属性", | |
105 | + "scope-server" : "服务端属性", | |
106 | + "scope-shared" : "共享属性", | |
107 | + "add" : "添加属性", | |
108 | + "key" : "键", | |
109 | + "key-required" : "属性键是必需的。", | |
110 | + "value" : "值", | |
111 | + "value-required" : "属性值是必需的。", | |
112 | + "delete-attributes-title" : "您确定要删除 { count, select, 1 {1 attribute} other {# attributes} } 吗?", | |
113 | + "delete-attributes-text" : "注意,确认后所有选中的属性都会被删除。", | |
114 | + "delete-attributes" : "删除属性", | |
115 | + "enter-attribute-value" : "输入属性值", | |
116 | + "show-on-widget" : "在窗口小部件上显示", | |
117 | + "widget-mode" : "小部件模式", | |
118 | + "next-widget" : "下一个小部件", | |
119 | + "prev-widget" : "上一个小部件", | |
120 | + "add-to-dashboard" : "添加到仪表板", | |
121 | + "add-widget-to-dashboard" : "将小部件添加到仪表板", | |
122 | + "selected-attributes" : "{ count, select, 1 {1 attribute} other {# attributes} } 被选中", | |
123 | + "selected-telemetry" : "{ count, select, 1 {1 telemetry unit} other {# telemetry units} } 被选中" | |
124 | + }, | |
125 | + "confirm-on-exit" : { | |
126 | + "message" : "您有未保存的更改。确定要离开此页吗?", | |
127 | + "html-message" : "您有未保存的更改。 <br/> 确定要离开此页面吗?", | |
128 | + "title" : "未保存的更改" | |
129 | + }, | |
130 | + "contact" : { | |
131 | + "country" : "国家", | |
132 | + "city" : "城市", | |
133 | + "state" : "州", | |
134 | + "postal-code" : "邮政编码", | |
135 | + "postal-code-invalid" : "只允许数字。", | |
136 | + "address" : "地址", | |
137 | + "address2" : "地址2", | |
138 | + "phone" : "手机", | |
139 | + "email" : "邮箱", | |
140 | + "no-address" : "无地址" | |
141 | + }, | |
142 | + "common" : { | |
143 | + "username" : "用户名", | |
144 | + "password" : "密码", | |
145 | + "enter-username" : "输入用户名", | |
146 | + "enter-password" : "输入密码", | |
147 | + "enter-search" : "输入检索条件" | |
148 | + }, | |
149 | + "customer" : { | |
150 | + "customers" : "客户", | |
151 | + "management" : "客户管理", | |
152 | + "dashboard" : "客户仪表板", | |
153 | + "dashboards" : "客户仪表板", | |
154 | + "devices" : "客户设备", | |
155 | + "add" : "添加客户", | |
156 | + "delete" : "删除客户", | |
157 | + "manage-customer-users" : "管理客户的用户", | |
158 | + "manage-customer-devices" : "管理客户设备", | |
159 | + "manage-customer-dashboards" : "管理客户仪表板", | |
160 | + "add-customer-text" : "添加新客户", | |
161 | + "no-customers-text" : "没有找到客户", | |
162 | + "customer-details" : "客户详情", | |
163 | + "delete-customer-title" : "您确定要删除客户'{{customerTitle}}'吗?", | |
164 | + "delete-customer-text" : "小心!确认后,客户及其所有相关数据将不可恢复。", | |
165 | + "delete-customers-title" : "您确定要删除 { count, select, 1 {1 customer} other {# customers} } 吗?", | |
166 | + "delete-customers-action-title" : "删除 { count, select, 1 {1 customer} other {# customers} }", | |
167 | + "delete-customers-text" : "小心!确认后,所有选定的客户将被删除,所有相关数据将不可恢复。", | |
168 | + "manage-users" : "管理用户", | |
169 | + "manage-devices" : "管理设备", | |
170 | + "manage-dashboards" : "管理仪表板", | |
171 | + "title" : "标题", | |
172 | + "title-required" : "需要标题。", | |
173 | + "description" : "描述" | |
174 | + }, | |
175 | + "datetime" : { | |
176 | + "date-from" : "日期从", | |
177 | + "time-from" : "时间从", | |
178 | + "date-to" : "日期到", | |
179 | + "time-to" : "时间到" | |
180 | + }, | |
181 | + "dashboard" : { | |
182 | + "dashboard" : "仪表板", | |
183 | + "dashboards" : "可视化库", | |
184 | + "management" : "仪表板管理", | |
185 | + "view-dashboards" : "查看仪表板", | |
186 | + "add" : "添加仪表板", | |
187 | + "assign-dashboard-to-customer" : "将仪表板分配给客户", | |
188 | + "assign-dashboard-to-customer-text" : "请选择要分配给客户的仪表板", | |
189 | + "assign-to-customer-text" : "请选择客户分配仪表板", | |
190 | + "assign-to-customer" : "分配给客户", | |
191 | + "unassign-from-customer" : "取消分配客户", | |
192 | + "no-dashboards-text" : "没有找到仪表板", | |
193 | + "no-widgets" : "没有配置小部件", | |
194 | + "add-widget" : "添加新的小部件", | |
195 | + "title" : "标题", | |
196 | + "select-widget-title" : "选择小部件", | |
197 | + "select-widget-subtitle" : "可用的小部件类型列表", | |
198 | + "delete" : "删除仪表板", | |
199 | + "title-required" : "需要标题。", | |
200 | + "description" : "描述", | |
201 | + "details" : "详情", | |
202 | + "dashboard-details" : "仪表板详情", | |
203 | + "add-dashboard-text" : "添加新的仪表板", | |
204 | + "assign-dashboards" : "分配仪表板", | |
205 | + "assign-new-dashboard" : "分配新的仪表板", | |
206 | + "assign-dashboards-text" : "分配 { count, select, 1 {1 dashboard} other {# dashboards} } 给客户", | |
207 | + "delete-dashboards" : "删除仪表板", | |
208 | + "unassign-dashboards" : "取消分配仪表板", | |
209 | + "unassign-dashboards-action-title" : "从客户取消分配 { count, select, 1 {1 dashboard} other {# dashboards} }", | |
210 | + "delete-dashboard-title" : "您确定要删除仪表板 '{{dashboardTitle}}'?", | |
211 | + "delete-dashboard-text" : "小心!确认后仪表板及其所有相关数据将不可恢复。", | |
212 | + "delete-dashboards-title" : "你确定要删除 { count, select, 1 {1 dashboard} other {# dashboards} } 吗?", | |
213 | + "delete-dashboards-action-title" : "删除 { count, select, 1 {1 dashboard} other {# dashboards} }", | |
214 | + "delete-dashboards-text" : "小心!确认后所有被选中的仪表板将被删除,所有相关数据将不可恢复。", | |
215 | + "unassign-dashboard-title" : "您确定要取消分配仪表板 '{{dashboardTitle}}'?", | |
216 | + "unassign-dashboard-text" : "确认后,仪表板将取消分配,客户将无法访问。", | |
217 | + "unassign-dashboard" : "取消分配仪表板", | |
218 | + "unassign-dashboards-title" : "您确定要取消分配 { count, select, 1 {1 dashboard} other {# dashboards} } 吗?", | |
219 | + "unassign-dashboards-text" : "确认后,所有选定的仪表板将被取消分配,并且用户将无法访问。", | |
220 | + "select-dashboard" : "选择仪表板", | |
221 | + "no-dashboards-matching" : "找不到符合 '{{dashboard}}' 的仪表板。", | |
222 | + "dashboard-required" : "仪表板是必需的。", | |
223 | + "select-existing" : "选择现有仪表板", | |
224 | + "create-new" : "创建新的仪表板", | |
225 | + "new-dashboard-title" : "新仪表板标题", | |
226 | + "open-dashboard" : "打开仪表板", | |
227 | + "set-background" : "设置背景", | |
228 | + "background-color" : "背景颜色", | |
229 | + "background-image" : "背景图片", | |
230 | + "background-size-mode" : "背景大小模式", | |
231 | + "no-image" : "无图像选择", | |
232 | + "drop-image" : "拖拽图像或单击以选择要上传的文件。", | |
233 | + "settings" : "设置", | |
234 | + "columns-count" : "列数", | |
235 | + "columns-count-required" : "需要列数。", | |
236 | + "min-columns-count-message" : "只允许最少10列", | |
237 | + "max-columns-count-message" : "只允许最多1000列", | |
238 | + "widgets-margins" : "部件间边距", | |
239 | + "horizontal-margin" : "水平边距", | |
240 | + "horizontal-margin-required" : "需要水平边距值。", | |
241 | + "min-horizontal-margin-message" : "只允许0作为最小水平边距值。", | |
242 | + "max-horizontal-margin-message" : "只允许50作为最大水平边距值。", | |
243 | + "vertical-margin" : "垂直边距", | |
244 | + "vertical-margin-required" : "需要垂直边距值。", | |
245 | + "min-vertical-margin-message" : "只允许0作为最小垂直边距值。", | |
246 | + "max-vertical-margin-message" : "只允许50作为最大垂直边距值。", | |
247 | + "display-title" : "显示仪表板标题", | |
248 | + "title-color" : "标题颜色", | |
249 | + "import" : "导入仪表板", | |
250 | + "export" : "导出仪表板", | |
251 | + "export-failed-error" : "无法导出仪表板: {{error}}", | |
252 | + "create-new-dashboard" : "创建新的仪表板", | |
253 | + "dashboard-file" : "仪表板文件", | |
254 | + "invalid-dashboard-file-error" : "无法导入仪表板: 仪表板数据结构无效。", | |
255 | + "dashboard-import-missing-aliases-title" : "配置导入仪表板使用的别名", | |
256 | + "create-new-widget" : "创建新小部件", | |
257 | + "import-widget" : "导入小部件", | |
258 | + "widget-file" : "小部件文件", | |
259 | + "invalid-widget-file-error" : "无法导入窗口小部件: 窗口小部件数据结构无效。", | |
260 | + "widget-import-missing-aliases-title" : "配置导入的窗口小部件使用的别名", | |
261 | + "open-toolbar" : "打开仪表板工具栏", | |
262 | + "close-toolbar" : "关闭工具栏", | |
263 | + "configuration-error" : "配置错误", | |
264 | + "alias-resolution-error-title" : "仪表板别名配置错误", | |
265 | + "invalid-aliases-config" : "无法找到与某些别名过滤器匹配的任何设备。 <br/>" + | |
266 | + "请联系您的管理员以解决此问题。", | |
267 | + "select-devices" : "选择设备", | |
268 | + "assignedToCustomer" : "分配给客户" | |
269 | + }, | |
270 | + "datakey" : { | |
271 | + "settings": "设置", | |
272 | + "advanced": "高级", | |
273 | + "label": "标签", | |
274 | + "color": "颜色", | |
275 | + "data-generation-func": "数据生成功能", | |
276 | + "use-data-post-processing-func": "使用数据后处理功能", | |
277 | + "configuration": "数据键配置", | |
278 | + "timeseries": "时间序列", | |
279 | + "attributes": "属性", | |
280 | + "timeseries-required": "需要设备时间序列。", | |
281 | + "timeseries-or-attributes-required": "设备时间/属性是必需的。", | |
282 | + "function-types": "函数类型", | |
283 | + "function-types-required": "需要函数类型。" | |
284 | + }, | |
285 | + "datasource" : { | |
286 | + "type": "数据源类型", | |
287 | + "add-datasource-prompt": "请添加数据源" | |
288 | + }, | |
289 | + "details" : { | |
290 | + "edit-mode": "编辑模式", | |
291 | + "toggle-edit-mode": "切换编辑模式" | |
292 | + }, | |
293 | + "device" : { | |
294 | + "device": "设备", | |
295 | + "device-required": "设备是必需的", | |
296 | + "devices": "设备", | |
297 | + "management": "设备管理", | |
298 | + "view-devices": "查看设备", | |
299 | + "device-alias": "设备别名", | |
300 | + "aliases": "设备别名", | |
301 | + "no-alias-matching" : "'{{alias}}' 没有找到。", | |
302 | + "no-aliases-found" : "找不到别名。", | |
303 | + "no-key-matching" : "'{{key}}' 没有找到。", | |
304 | + "no-keys-found" : "找不到密钥。", | |
305 | + "create-new-alias": "创建一个新的!", | |
306 | + "create-new-key": "创建一个新的!", | |
307 | + "duplicate-alias-error" : "找到重复别名 '{{alias}}'。 <br> 设备别名必须是唯一的。", | |
308 | + "configure-alias" : "配置 '{{alias}}' 别名", | |
309 | + "no-devices-matching" : "找不到与 '{{device}}' 匹配的设备。", | |
310 | + "alias" : "别名", | |
311 | + "alias-required" : "需要设备别名。", | |
312 | + "remove-alias": "删除设备别名", | |
313 | + "add-alias": "添加设备别名", | |
314 | + "name-starts-with" : "名称前缀", | |
315 | + "device-list" : "设备列表", | |
316 | + "use-device-name-filter" : "使用过滤器", | |
317 | + "device-list-empty" : "没有被选中的设备", | |
318 | + "device-name-filter-required" : "设备名称过滤器是必需得。", | |
319 | + "device-name-filter-no-device-matched" : "找不到以'{{device}}' 开头的设备。", | |
320 | + "add" : "添加设备", | |
321 | + "assign-to-customer": "分配给客户", | |
322 | + "assign-device-to-customer": "将设备分配给客户", | |
323 | + "assign-device-to-customer-text": "请选择要分配给客户的设备", | |
324 | + "no-devices-text": "找不到设备", | |
325 | + "assign-to-customer-text": "请选择客户分配设备", | |
326 | + "device-details": "设备详细信息", | |
327 | + "add-device-text": "添加新设备", | |
328 | + "credentials": "凭据", | |
329 | + "manage-credentials": "管理凭据", | |
330 | + "delete": "删除设备", | |
331 | + "assign-devices": "分配设备", | |
332 | + "assign-devices-text": "将{count,select,1 {1 device} other {# devices}}分配给客户", | |
333 | + "delete-devices": "删除设备", | |
334 | + "unassign-from-customer": "取消分配客户", | |
335 | + "unassign-devices": "取消分配设备", | |
336 | + "unassign-devices-action-title": "从客户处取消分配{count,select,1 {1 device} other {# devices}}", | |
337 | + "assign-new-device": "分配新设备", | |
338 | + "view-credentials": "查看凭据", | |
339 | + "delete-device-title": "您确定要删除设备的{{deviceName}}吗?", | |
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}}", | |
343 | + "delete-devices-text": "小心!确认后所有选定的设备将被删除,所有相关数据将不可恢复。", | |
344 | + "unassign-device-title": "您确定要取消分配设备 '{{deviceName}}'?", | |
345 | + "unassign-device-text": "确认后,设备将被取消分配,客户将无法访问。", | |
346 | + "unassign-device": "取消分配设备", | |
347 | + "unassign-devices-title": "您确定要取消分配{count,select,1 {1 device} other {# devices}} 吗?", | |
348 | + "unassign-devices-text": "确认后,所有选定的设备将被取消分配,并且客户将无法访问。", | |
349 | + "device-credentials": "设备凭据", | |
350 | + "credentials-type": "凭据类型", | |
351 | + "access-token": "访问令牌", | |
352 | + "access-token-required": "需要访问令牌", | |
353 | + "access-token-invalid": "访问令牌长度必须为1到20个字符。", | |
354 | + "rsa-key": "RSA公钥", | |
355 | + "rsa-key-required": "需要RSA公钥", | |
356 | + "secret": "密钥", | |
357 | + "secret-required": "密钥是必需的", | |
358 | + "name": "名称", | |
359 | + "name-required": "名称是必需的。", | |
360 | + "description": "说明", | |
361 | + "events": "事件", | |
362 | + "details": "详细信息", | |
363 | + "copyId": "复制设备ID", | |
364 | + "copyAccessToken": "复制访问令牌", | |
365 | + "idCopiedMessage": "设备ID已复制到剪贴板", | |
366 | + "accessTokenCopiedMessage": "设备访问令牌已复制到剪贴板", | |
367 | + "assignedToCustomer": "分配给客户", | |
368 | + "unable-delete-device-alias-title": "无法删除设备别名", | |
369 | + "unable-delete-device-alias-text": "设备别名 '{{deviceAlias}}' 不能够被删除,因为它被下列部件所使用: <br/> {{widgetsList}}", | |
370 | + "is-gateway": "是网关" | |
371 | + }, | |
372 | + "dialog" : { | |
373 | + "close" : "关闭对话框" | |
374 | + }, | |
375 | + "error" : { | |
376 | + "unable-to-connect": "无法连接到服务器!请检查您的互联网连接。", | |
377 | + "unhandled-error-code": "未处理的错误代码: {{errorCode}}", | |
378 | + "unknown-error": "未知错误" | |
379 | + }, | |
380 | + "event" : { | |
381 | + "event-type": "事件类型", | |
382 | + "type-alarm": "报警", | |
383 | + "type-error": "错误", | |
384 | + "type-lc-event": "生命周期事件", | |
385 | + "type-stats": "类型统计", | |
386 | + "no-events-prompt": "找不到事件", | |
387 | + "error": "错误", | |
388 | + "alarm": "报警", | |
389 | + "event-time": "事件时间", | |
390 | + "server": "服务器", | |
391 | + "body": "整体", | |
392 | + "method": "方法", | |
393 | + "event": "事件", | |
394 | + "status": "状态", | |
395 | + "success": "成功", | |
396 | + "failed": "失败", | |
397 | + "messages-processed": "消息处理", | |
398 | + "errors-occurred": "错误发生" | |
399 | + }, | |
400 | + "fullscreen" : { | |
401 | + "expand": "展开到全屏", | |
402 | + "exit": "退出全屏", | |
403 | + "toggle": "切换全屏模式", | |
404 | + "fullscreen": "全屏" | |
405 | + }, | |
406 | + "function" : { | |
407 | + "function" : "函数" | |
408 | + }, | |
409 | + "grid" : { | |
410 | + "delete-item-title": "您确定要删除此项吗?", | |
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}}", | |
414 | + "delete-items-text": "注意,确认后所有选择的项目将被删除,所有相关数据将变得不可恢复。", | |
415 | + "add-item-text": "添加新项目", | |
416 | + "no-items-text": "没有找到项目", | |
417 | + "item-details": "项目详细信息", | |
418 | + "delete-item": "删除项目", | |
419 | + "delete-items": "删除项目", | |
420 | + "scroll-to-top": "滚动到顶部" | |
421 | + }, | |
422 | + "help" : { | |
423 | + "goto-help-page" : "转到帮助页面" | |
424 | + }, | |
425 | + "home" : { | |
426 | + "home": "首页", | |
427 | + "profile": "属性", | |
428 | + "logout": "注销", | |
429 | + "menu": "菜单", | |
430 | + "avatar": "化身", | |
431 | + "open-user-menu": "打开用户菜单" | |
432 | + }, | |
433 | + "import" : { | |
434 | + "no-file": "没有选择文件", | |
435 | + "drop-file": "删除JSON文件或单击以选择要上传的文件。" | |
436 | + }, | |
437 | + "item" : { | |
438 | + "selected" : "选择" | |
439 | + }, | |
440 | + "js-func" : { | |
441 | + "no-return-error": "函数必须返回值!", | |
442 | + "return-type-mismatch": "函数必须返回'{{type}}'类型的值!" | |
443 | + }, | |
444 | + "legend" : { | |
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 | + }, | |
456 | + "login" : { | |
457 | + "login": "登录", | |
458 | + "request-password-reset": "请求密码重置", | |
459 | + "reset-password": "重置密码", | |
460 | + "create-password": "创建密码", | |
461 | + "passwords-mismatch-error": "输入的密码必须相同!", | |
462 | + "password-again": "密码再次", | |
463 | + "sign-in": "登录 ", | |
464 | + "username": "用户名(电子邮件)", | |
465 | + "remember-me": "记住我", | |
466 | + "forgot-password": "忘记密码?", | |
467 | + "password-reset": "密码重置", | |
468 | + "new-password": "新密码", | |
469 | + "new-password-again": "新密码再次", | |
470 | + "password-link-sent-message": "密码重置链接已成功发送!", | |
471 | + "email": "电子邮件" | |
472 | + }, | |
473 | + "plugin" : { | |
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 | + }, | |
512 | + "position" : { | |
513 | + "top" : "顶部", | |
514 | + "bottom" : "底部", | |
515 | + "left" : "左侧", | |
516 | + "right" : "右侧" | |
517 | + }, | |
518 | + "profile" : { | |
519 | + "profile": "属性", | |
520 | + "change-password": "更改密码", | |
521 | + "current-password": "当前密码" | |
522 | + }, | |
523 | + "rule" : { | |
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 | + }, | |
575 | + "rule-plugin" : { | |
576 | + "management" : "规则和插件管理" | |
577 | + }, | |
578 | + "tenant" : { | |
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 | + }, | |
597 | + "timeinterval" : { | |
598 | + "seconds-interval" : "{ seconds, select, 1 {1 second} other {# seconds} }", | |
599 | + "minutes-interval" : "{ minutes, select, 1 {1 minute} other {# minutes} }", | |
600 | + "hours-interval" : "{ hours, select, 1 {1 hour} other {# hours} }", | |
601 | + "days-interval" : "{ days, select, 1 {1 day} other {# days} }", | |
602 | + "days" : "天", | |
603 | + "hours" : "时", | |
604 | + "minutes" : "分", | |
605 | + "seconds" : "秒", | |
606 | + "advanced" : "高级" | |
607 | + }, | |
608 | + "timewindow" : { | |
609 | + "days" : "{ days, select, 1 { day } other {# days } }", | |
610 | + "hours" : "{ hours, select, 0 { hour } 1 {1 hour } other {# hours } }", | |
611 | + "minutes" : "{ minutes, select, 0 { minute } 1 {1 minute } other {# minutes } }", | |
612 | + "seconds" : "{ seconds, select, 0 { second } 1 {1 second } other {# seconds } }", | |
613 | + "realtime" : "实时", | |
614 | + "history" : "历史", | |
615 | + "last-prefix" : "最后", | |
616 | + "period" : "从 {{ startTime }} 到 {{ endTime }}", | |
617 | + "edit" : "编辑时间窗口", | |
618 | + "date-range" : "日期范围", | |
619 | + "last" : "最后", | |
620 | + "time-period" : "时间段" | |
621 | + }, | |
622 | + "user" : { | |
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 | + }, | |
650 | + "value" : { | |
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 | + }, | |
664 | + "widget" : { | |
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 | + "resource-url" : "JavaScript/CSS URL", | |
695 | + "remove-resource" : "删除资源", | |
696 | + "add-resource" : "添加资源", | |
697 | + "html" : "HTML", | |
698 | + "tidy" : "整理", | |
699 | + "css" : "CSS", | |
700 | + "settings-schema" : "设置模式", | |
701 | + "datakey-settings-schema" : "数据键设置模式", | |
702 | + "javascript" : "Javascript", | |
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 | + }, | |
713 | + "widgets-bundle" : { | |
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 | + }, | |
740 | + "widget-config" : { | |
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 | + }, | |
768 | + "widget-type" : { | |
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 | + }, | |
776 | + "language" : { | |
777 | + "language" : "语言", | |
778 | + "en_US" : "英语", | |
779 | + "ko_KR" : "韩语", | |
780 | + "zh_CN" : "汉语" | |
781 | + } | |
782 | + }; | |
783 | + angular.extend(locales, { | |
784 | + 'zh_CN' : zh_CN | |
785 | + }); | |
786 | +} | |
\ No newline at end of file | ... | ... |
... | ... | @@ -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 | ... | ... |