@object-ui/i18n 17.5.0 → 17.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4954 -0
- package/README.md +234 -13
- package/dist/builtinAggregateLabels.d.ts +40 -0
- package/dist/builtinAggregateLabels.js +23 -0
- package/dist/currency.d.ts +27 -3
- package/dist/currency.js +28 -4
- package/dist/fallbackInterpolation.d.ts +79 -0
- package/dist/fallbackInterpolation.js +124 -0
- package/dist/i18n.d.ts +28 -2
- package/dist/i18n.js +99 -17
- package/dist/index.d.ts +17 -23
- package/dist/index.js +51 -27
- package/dist/locales/ar.d.ts +1113 -370
- package/dist/locales/ar.js +1276 -428
- package/dist/locales/de.d.ts +785 -370
- package/dist/locales/de.js +896 -401
- package/dist/locales/en.d.ts +800 -385
- package/dist/locales/en.js +1261 -419
- package/dist/locales/es.d.ts +867 -370
- package/dist/locales/es.js +976 -398
- package/dist/locales/fr.d.ts +867 -370
- package/dist/locales/fr.js +976 -399
- package/dist/locales/index.d.ts +8682 -3761
- package/dist/locales/index.js +68 -29
- package/dist/locales/ja.d.ts +785 -370
- package/dist/locales/ja.js +891 -395
- package/dist/locales/ko.d.ts +785 -370
- package/dist/locales/ko.js +893 -399
- package/dist/locales/pt.d.ts +867 -370
- package/dist/locales/pt.js +975 -397
- package/dist/locales/registry.d.ts +102 -0
- package/dist/locales/registry.js +220 -0
- package/dist/locales/rtl.d.ts +24 -0
- package/dist/locales/rtl.js +26 -0
- package/dist/locales/ru.d.ts +949 -370
- package/dist/locales/ru.js +1093 -419
- package/dist/locales/zh.d.ts +803 -388
- package/dist/locales/zh.js +899 -388
- package/dist/pickLocalized.d.ts +67 -0
- package/dist/pickLocalized.js +114 -0
- package/dist/provider.d.ts +102 -13
- package/dist/provider.js +335 -50
- package/dist/translateFn.d.ts +29 -0
- package/dist/translateFn.js +8 -0
- package/dist/useDisplayLocale.d.ts +11 -0
- package/dist/useDisplayLocale.js +13 -2
- package/dist/useObjectLabel.d.ts +118 -22
- package/dist/useObjectLabel.js +148 -23
- package/dist/useSafeTranslation.js +41 -43
- package/dist/utils/formatting.d.ts +16 -0
- package/dist/utils/formatting.js +23 -3
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.js +4 -4
- package/dist/utils/spec-formatters.d.ts +13 -23
- package/dist/utils/spec-formatters.js +41 -2
- package/dist/utils/spec-translations.d.ts +16 -3
- package/dist/utils/spec-translations.js +52 -13
- package/package.json +12 -6
package/dist/locales/zh.js
CHANGED
|
@@ -29,10 +29,12 @@ const zh = {
|
|
|
29
29
|
manage_users: '管理用户',
|
|
30
30
|
manage_org_users: '管理组织用户',
|
|
31
31
|
manage_metadata: '管理元数据',
|
|
32
|
+
manage_org_presentation: '管理组织展示',
|
|
32
33
|
manage_platform_settings: '管理平台设置',
|
|
33
34
|
setup_access: '访问 Setup',
|
|
34
35
|
setup_write: '保存设置',
|
|
35
36
|
studio_access: '访问 Studio',
|
|
37
|
+
manage_sharing: '管理共享',
|
|
36
38
|
},
|
|
37
39
|
},
|
|
38
40
|
// objectui#3546 切片六 —— 权限集记录上六个授权面的只读摘要与 Studio 深链
|
|
@@ -46,12 +48,16 @@ const zh = {
|
|
|
46
48
|
more: '+{{count}} 更多',
|
|
47
49
|
objects: '{{count}} 个对象',
|
|
48
50
|
objects_one: '{{count}} 个对象',
|
|
51
|
+
objects_other: '{{count}} 个对象',
|
|
49
52
|
fields: '{{count}} 条字段规则',
|
|
50
53
|
fields_one: '{{count}} 条字段规则',
|
|
54
|
+
fields_other: '{{count}} 条字段规则',
|
|
51
55
|
rls: '{{count}} 条 RLS 策略',
|
|
52
56
|
rls_one: '{{count}} 条 RLS 策略',
|
|
57
|
+
rls_other: '{{count}} 条 RLS 策略',
|
|
53
58
|
tabs: '{{count}} 条标签页规则',
|
|
54
59
|
tabs_one: '{{count}} 条标签页规则',
|
|
60
|
+
tabs_other: '{{count}} 条标签页规则',
|
|
55
61
|
adminScope: '已配置委派管理范围',
|
|
56
62
|
designInStudio: '在 Studio 中设计 →',
|
|
57
63
|
designInStudioHint: '在 Studio 中设计',
|
|
@@ -73,7 +79,8 @@ const zh = {
|
|
|
73
79
|
selectFirst: '请先选择{{fields}}',
|
|
74
80
|
selectRecord: '选择记录',
|
|
75
81
|
recordCount: '{{count}} 条记录',
|
|
76
|
-
|
|
82
|
+
recordCount_one: '{{count}} 条记录',
|
|
83
|
+
recordCount_other: '{{count}} 条记录',
|
|
77
84
|
pageOf: '第 {{current}}/{{total}} 页',
|
|
78
85
|
filters: '筛选',
|
|
79
86
|
clear: '清除',
|
|
@@ -87,6 +94,7 @@ const zh = {
|
|
|
87
94
|
common: {
|
|
88
95
|
loading: '加载中…',
|
|
89
96
|
save: '保存',
|
|
97
|
+
discard: '放弃',
|
|
90
98
|
cancel: '取消',
|
|
91
99
|
delete: '删除',
|
|
92
100
|
edit: '编辑',
|
|
@@ -122,7 +130,8 @@ const zh = {
|
|
|
122
130
|
closePanel: '关闭面板',
|
|
123
131
|
resizeDrawer: '调整面板宽度',
|
|
124
132
|
itemCount: '{{count}} 项',
|
|
125
|
-
|
|
133
|
+
itemCount_one: '{{count}} 项',
|
|
134
|
+
itemCount_other: '{{count}} 项',
|
|
126
135
|
toggleSidebar: '切换侧边栏',
|
|
127
136
|
package: '软件包',
|
|
128
137
|
done: '完成',
|
|
@@ -130,6 +139,16 @@ const zh = {
|
|
|
130
139
|
record: '记录',
|
|
131
140
|
retry: '重试',
|
|
132
141
|
printDialogHint: '打开浏览器打印对话框(不是导出 PDF)',
|
|
142
|
+
// The non-grid row ceiling's footnote (objectui#7210). Two keys because
|
|
143
|
+
// there are two conditions: a reported `total` states the fact with BOTH
|
|
144
|
+
// numbers, a missing one cannot name how many. Kept terse deliberately —
|
|
145
|
+
// this copy is eagerly loaded, and since objectui#7399 these bytes are
|
|
146
|
+
// budgeted by the `i18n-locales` chunk, not `framework`. ⛔ That ceiling's
|
|
147
|
+
// headroom is deliberately NOT restated here — it moves on every
|
|
148
|
+
// re-baseline, and the figure that was here went stale.
|
|
149
|
+
// `pnpm check:eager-closure` prints it.
|
|
150
|
+
rowCeilingNote: '仅显示 {{total}} 条记录中的前 {{shown}} 条。请缩小筛选范围。',
|
|
151
|
+
rowCeilingNoteUnknownTotal: '仅显示前 {{shown}} 条记录。请缩小筛选范围。',
|
|
133
152
|
},
|
|
134
153
|
actions: {
|
|
135
154
|
decisionOutput: {
|
|
@@ -141,6 +160,14 @@ const zh = {
|
|
|
141
160
|
acknowledge: '我已保存',
|
|
142
161
|
copyAll: '全部复制',
|
|
143
162
|
},
|
|
163
|
+
notAvailableHere: '「{{action}}」在当前页面不可用。',
|
|
164
|
+
completedSuccessfully: '操作已成功完成',
|
|
165
|
+
failed: '操作失败',
|
|
166
|
+
parallelFailed: '一个或多个并行操作失败',
|
|
167
|
+
undo: '撤销',
|
|
168
|
+
undone: '已撤销更改',
|
|
169
|
+
undoneOperation: '撤销:{{description}}',
|
|
170
|
+
redoneOperation: '重做:{{description}}',
|
|
144
171
|
},
|
|
145
172
|
validation: {
|
|
146
173
|
required: '{{field}}不能为空',
|
|
@@ -158,8 +185,12 @@ const zh = {
|
|
|
158
185
|
},
|
|
159
186
|
form: {
|
|
160
187
|
noPermissionToSave: '您没有权限保存这条记录。',
|
|
188
|
+
noPermissionToCreate: '您没有创建{{object}}的权限,字段均为只读。',
|
|
189
|
+
noPermissionToEdit: '您没有编辑{{object}}的权限,字段均为只读。',
|
|
161
190
|
submitFailed: '保存失败,请重试。',
|
|
162
|
-
|
|
191
|
+
uploadInFlight: '请等待上传完成后再保存。',
|
|
192
|
+
clearedOnHide: '已清空不再适用于当前取值的字段:{{fields}}',
|
|
193
|
+
visibleWhenFaulted: '无法提交:{{fields}} 的 visibleWhen 规则无法求值。需先修正该规则,才能提交此表单。',
|
|
163
194
|
removeItem: '移除项目',
|
|
164
195
|
fieldRequired: '此字段为必填项',
|
|
165
196
|
invalidFormat: '格式不正确',
|
|
@@ -171,13 +202,35 @@ const zh = {
|
|
|
171
202
|
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
172
203
|
// description, used when the form declares no `description` of its own.
|
|
173
204
|
dialogDescriptionFallback: '填写表单字段,然后提交或取消。',
|
|
205
|
+
deniedDescription: '您没有此字段的编辑权限。',
|
|
206
|
+
masterDetail: {
|
|
207
|
+
loadingColumns: '正在加载列…',
|
|
208
|
+
subtotal: '小计',
|
|
209
|
+
tax: '税额({{rate}}%)',
|
|
210
|
+
total: '合计',
|
|
211
|
+
lineItem: '明细行',
|
|
212
|
+
rowTitle: '{{title}} — 第 {{row}} 行',
|
|
213
|
+
applyRow: '应用',
|
|
214
|
+
editorDescription: '填写记录及其明细行,然后保存。',
|
|
215
|
+
noChildObject: '此集合未配置子对象:请将 {{property}} 设为其所列行所属的对象。',
|
|
216
|
+
schemaUnavailable: '无法加载 {{object}} 的对象结构,因此此集合没有可显示的列。请检查该对象是否存在且可读,然后重新加载。',
|
|
217
|
+
noRelationshipField: '无法确定 {{object}} 如何关联到 {{parent}}:它没有引用父对象的 lookup 或 master_detail 字段。请在此集合上将 {{property}} 设为保存父记录的字段。',
|
|
218
|
+
},
|
|
219
|
+
lineItems: {
|
|
220
|
+
title: '明细行',
|
|
221
|
+
saveRecordFirst: '保存记录后才能添加明细行。',
|
|
222
|
+
notLoaded: '此记录的明细行尚未加载。',
|
|
223
|
+
loadFailed: '明细行加载失败',
|
|
224
|
+
saveFailed: '明细行保存失败',
|
|
225
|
+
noChildObject: '此面板未配置子对象:请将 {{property}} 设为其所列行所属的对象。',
|
|
226
|
+
},
|
|
174
227
|
keepEditing: '继续编辑',
|
|
175
228
|
discard: '放弃',
|
|
176
229
|
conflictTitle: '保存冲突',
|
|
177
230
|
conflictMessage: '您编辑期间,这条记录已被其他人修改。覆盖保存将用您的内容替换对方的修改。',
|
|
178
231
|
conflictLatestVersion: '对方保存时间:{{time}}',
|
|
179
232
|
conflictOverwrite: '覆盖保存',
|
|
180
|
-
stepOf: '第{{current}}步,共{{total}}步',
|
|
233
|
+
stepOf: '第 {{current}} 步,共 {{total}} 步',
|
|
181
234
|
createTitle: '新建{{object}}',
|
|
182
235
|
editTitle: '编辑{{object}}',
|
|
183
236
|
viewTitle: '查看{{object}}',
|
|
@@ -188,6 +241,13 @@ const zh = {
|
|
|
188
241
|
createSuccess: '{{object}}创建成功',
|
|
189
242
|
updateSuccess: '{{object}}更新成功',
|
|
190
243
|
deleteSuccess: '{{object}}删除成功',
|
|
244
|
+
// objectui#11039 — plugin-form feedback chrome; see the `en` pack.
|
|
245
|
+
created: '已创建',
|
|
246
|
+
saved: '已保存',
|
|
247
|
+
savedNamed: '{{title}}已保存',
|
|
248
|
+
submitted: '已提交',
|
|
249
|
+
errorLoading: '表单加载失败',
|
|
250
|
+
navigateRefused: '此表单声明的 `navigateOnSuccess` 跳转目标被拒绝,因此未执行跳转。',
|
|
191
251
|
fullscreen: {
|
|
192
252
|
title: '编辑文本',
|
|
193
253
|
description: '编辑完整的文本内容,然后保存或取消更改。',
|
|
@@ -199,6 +259,8 @@ const zh = {
|
|
|
199
259
|
fields: {
|
|
200
260
|
relativeDate: {
|
|
201
261
|
overdue: '逾期 {{count}} 天',
|
|
262
|
+
overdue_one: '逾期 {{count}} 天',
|
|
263
|
+
overdue_other: '逾期 {{count}} 天',
|
|
202
264
|
},
|
|
203
265
|
file: {
|
|
204
266
|
dragDropHere: '拖拽文件到此处',
|
|
@@ -215,6 +277,7 @@ const zh = {
|
|
|
215
277
|
remove: '移除 {{name}}',
|
|
216
278
|
exceedsMaxSize: '“{{name}}” 超过大小上限({{max}} MB)',
|
|
217
279
|
uploadFailed: '上传 “{{name}}” 失败:{{error}}',
|
|
280
|
+
uploadIncomplete: '“{{name}}” 上传未完成:未返回文件 ID,未保存任何内容',
|
|
218
281
|
},
|
|
219
282
|
image: {
|
|
220
283
|
upload: '上传图片',
|
|
@@ -255,6 +318,9 @@ const zh = {
|
|
|
255
318
|
selectBusinessUnit: '请选择业务单元',
|
|
256
319
|
selectPosition: '请选择岗位',
|
|
257
320
|
selectUnitAndSubordinates: '请选择业务单元',
|
|
321
|
+
selectField: '请选择用户字段',
|
|
322
|
+
noUserFields: '此对象没有用户字段',
|
|
323
|
+
fieldNotUserTyped: '{{name}} — 不是用户字段',
|
|
258
324
|
},
|
|
259
325
|
filterCondition: {
|
|
260
326
|
selectObjectFirst: '请先选择对象。',
|
|
@@ -265,13 +331,54 @@ const zh = {
|
|
|
265
331
|
editAsJson: '以 JSON 编辑',
|
|
266
332
|
useVisualBuilder: '使用可视化构建器',
|
|
267
333
|
},
|
|
334
|
+
object: {
|
|
335
|
+
invalidJson: 'JSON 无效',
|
|
336
|
+
},
|
|
337
|
+
location: {
|
|
338
|
+
refusedFormat: '未保存:请输入纬度, 经度坐标对(例如 30.2741, 120.1551)。',
|
|
339
|
+
refusedRange: '未保存:{{detail}}',
|
|
340
|
+
latitude: '纬度',
|
|
341
|
+
longitude: '经度',
|
|
342
|
+
refusedResidueOne: '未保存:{{name}}“{{text}}”不是数字。请输入普通小数(例如 30.2741, 120.1551)。',
|
|
343
|
+
refusedResidue: '未保存:{{name}}“{{text}}”和{{otherName}}“{{otherText}}”不是数字。请输入普通小数(例如 30.2741, 120.1551)。',
|
|
344
|
+
},
|
|
345
|
+
date: {
|
|
346
|
+
impossibleDay: '存储的值“{{value}}”不是真实存在的日期。请选择日期以替换它。',
|
|
347
|
+
},
|
|
348
|
+
dateTime: {
|
|
349
|
+
impossibleDay: '存储的值“{{value}}”不是真实存在的日期。请选择日期和时间以替换它。',
|
|
350
|
+
},
|
|
351
|
+
number: {
|
|
352
|
+
badInput: '未保存:此输入框中的文本不是数字。请输入普通小数(例如 {{example}})。',
|
|
353
|
+
},
|
|
268
354
|
tags: {
|
|
269
355
|
placeholder: '输入后回车添加…',
|
|
270
356
|
},
|
|
357
|
+
// objectui#4028 — `AddressField`'s five sub-labels. These were English
|
|
358
|
+
// string literals with no key, and this pack is the one the issue was
|
|
359
|
+
// reported against: a zh-CN console showed five English words in the
|
|
360
|
+
// middle of an otherwise fully translated address form.
|
|
361
|
+
address: {
|
|
362
|
+
street: '街道地址',
|
|
363
|
+
city: '城市',
|
|
364
|
+
state: '省 / 州',
|
|
365
|
+
postalCode: '邮政编码',
|
|
366
|
+
country: '国家 / 地区',
|
|
367
|
+
},
|
|
271
368
|
textarea: {
|
|
272
369
|
characterCount: '已输入 {{count}} 个字符,最多 {{max}} 个',
|
|
273
370
|
charactersRemaining: '还可输入 {{count}} 个字符',
|
|
274
371
|
},
|
|
372
|
+
grid: {
|
|
373
|
+
addLine: '添加行',
|
|
374
|
+
noItems: '暂无条目',
|
|
375
|
+
noItemsAddHint: '暂无条目,点击“{{label}}”开始添加。',
|
|
376
|
+
optionalColumns: '可选列',
|
|
377
|
+
computed: '自动计算',
|
|
378
|
+
openRow: '打开行',
|
|
379
|
+
duplicateRow: '复制行',
|
|
380
|
+
removeRow: '删除行',
|
|
381
|
+
},
|
|
275
382
|
},
|
|
276
383
|
table: {
|
|
277
384
|
rowsPerPage: '每页行数',
|
|
@@ -300,8 +407,12 @@ const zh = {
|
|
|
300
407
|
open: '打开',
|
|
301
408
|
search: '搜索…',
|
|
302
409
|
modified: '{{count}} 行已修改',
|
|
410
|
+
modified_one: '{{count}} 行已修改',
|
|
411
|
+
modified_other: '{{count}} 行已修改',
|
|
303
412
|
saveFailed: '保存失败',
|
|
304
413
|
selected: '已选择 {{count}} 项',
|
|
414
|
+
selected_one: '已选择 {{count}} 项',
|
|
415
|
+
selected_other: '已选择 {{count}} 项',
|
|
305
416
|
edit: '编辑',
|
|
306
417
|
delete: '删除',
|
|
307
418
|
},
|
|
@@ -318,9 +429,13 @@ const zh = {
|
|
|
318
429
|
openRecord: '打开记录',
|
|
319
430
|
openMenu: '更多操作',
|
|
320
431
|
bulkSelected: '已选择 {{count}} 项',
|
|
432
|
+
bulkSelected_one: '已选择 {{count}} 项',
|
|
433
|
+
bulkSelected_other: '已选择 {{count}} 项',
|
|
321
434
|
bulkSelectedAllMatches: '已选择全部 {{count}} 项(全部匹配)',
|
|
322
435
|
bulkClear: '清除',
|
|
323
436
|
bulkAllOnPage: '本页 {{count}} 项已全选。',
|
|
437
|
+
bulkAllOnPage_one: '本页 {{count}} 项已全选。',
|
|
438
|
+
bulkAllOnPage_other: '本页 {{count}} 项已全选。',
|
|
324
439
|
bulkSelectAllMatching: '选择全部 {{count}} 项匹配记录',
|
|
325
440
|
bulkAllMatchingSelected: '已选择全部 {{count}} 项匹配记录。',
|
|
326
441
|
rowHeight: '行高: {{mode}}',
|
|
@@ -328,6 +443,14 @@ const zh = {
|
|
|
328
443
|
yes: '是',
|
|
329
444
|
no: '否',
|
|
330
445
|
systemFields: '系统字段',
|
|
446
|
+
// objectui#10881 — the grouped grid's two refusals: over a data source
|
|
447
|
+
// that cannot answer the group header query, and over rows a host
|
|
448
|
+
// handed in while declaring them one page of more. `queryGroupHeaders`
|
|
449
|
+
// is the member's name and stays untranslated.
|
|
450
|
+
grouping: {
|
|
451
|
+
needsHeaderQuery: '此视图已分组,但其数据源未实现 queryGroupHeaders,因此无法统计分组。移除分组即可显示记录。',
|
|
452
|
+
needsWholeRows: '分组需要全部记录,但此表格只收到其中一页,因此无法统计分组。请传入全部记录,或让表格从实现了 queryGroupHeaders 的数据源获取记录。',
|
|
453
|
+
},
|
|
331
454
|
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
332
455
|
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
333
456
|
// pack controls its own separator and word order.
|
|
@@ -399,7 +522,11 @@ const zh = {
|
|
|
399
522
|
mapped: '已映射',
|
|
400
523
|
skipped: '已跳过',
|
|
401
524
|
rowsWithErrors: '{{count}} 行有错误',
|
|
525
|
+
rowsWithErrors_one: '{{count}} 行有错误',
|
|
526
|
+
rowsWithErrors_other: '{{count}} 行有错误',
|
|
402
527
|
rowsCorrected: '已修正 {{count}} 行',
|
|
528
|
+
rowsCorrected_one: '已修正 {{count}} 行',
|
|
529
|
+
rowsCorrected_other: '已修正 {{count}} 行',
|
|
403
530
|
clickToFix: '— 点击高亮单元格可直接修改。',
|
|
404
531
|
showingRows: '显示第 {{shown}} 行,共 {{total}} 行',
|
|
405
532
|
importing: '导入中… {{progress}}%',
|
|
@@ -407,11 +534,15 @@ const zh = {
|
|
|
407
534
|
imported: '已导入 {{count}} 条',
|
|
408
535
|
skippedCount: '已跳过 {{count}} 条',
|
|
409
536
|
moreErrors: '…还有 {{count}} 个错误',
|
|
537
|
+
moreErrors_one: '…还有 {{count}} 个错误',
|
|
538
|
+
moreErrors_other: '…还有 {{count}} 个错误',
|
|
410
539
|
cancel: '取消',
|
|
411
540
|
back: '上一步',
|
|
412
541
|
next: '下一步',
|
|
413
542
|
close: '关闭',
|
|
414
543
|
importNRows: '导入 {{count}} 行',
|
|
544
|
+
importNRows_one: '导入 {{count}} 行',
|
|
545
|
+
importNRows_other: '导入 {{count}} 行',
|
|
415
546
|
importingProgress: '导入中…',
|
|
416
547
|
requiredMark: '*',
|
|
417
548
|
optTreatHistorical: '作为历史数据导入',
|
|
@@ -424,6 +555,8 @@ const zh = {
|
|
|
424
555
|
// 自动匹配(Airtable 风格)
|
|
425
556
|
autoMatched: '自动匹配',
|
|
426
557
|
autoMatchedSummary: '已自动匹配 {{count}} 列 — 请在下方检查并调整。',
|
|
558
|
+
autoMatchedSummary_one: '已自动匹配 {{count}} 列 — 请在下方检查并调整。',
|
|
559
|
+
autoMatchedSummary_other: '已自动匹配 {{count}} 列 — 请在下方检查并调整。',
|
|
427
560
|
confidence: {
|
|
428
561
|
high: '高置信度',
|
|
429
562
|
medium: '中置信度',
|
|
@@ -431,8 +564,10 @@ const zh = {
|
|
|
431
564
|
},
|
|
432
565
|
// 下载模板
|
|
433
566
|
downloadTemplate: '下载模板',
|
|
434
|
-
downloadTemplateHint: '
|
|
567
|
+
downloadTemplateHint: '获取 Excel 模板:仅含可导入的列(必填字段标 *),并附填写说明。',
|
|
435
568
|
templateFileName: '{{object}}-导入模板',
|
|
569
|
+
templateDownloadFailed: '模板下载失败,请重试。',
|
|
570
|
+
templateNotPermitted: '您没有新建该对象记录的权限,无法获取其导入模板。',
|
|
436
571
|
// 校验(服务端 dryRun 预检)
|
|
437
572
|
validate: '校验数据',
|
|
438
573
|
validateHint: '导入前在服务端逐行校验。',
|
|
@@ -440,6 +575,8 @@ const zh = {
|
|
|
440
575
|
validatePassed: '全部 {{ok}} 行均有效。',
|
|
441
576
|
validateFailed: '{{ok}} 条有效,{{errors}} 条有错误。',
|
|
442
577
|
errorCount: '{{count}} 个错误',
|
|
578
|
+
errorCount_one: '{{count}} 个错误',
|
|
579
|
+
errorCount_other: '{{count}} 个错误',
|
|
443
580
|
errorRowPrefix: '第 {{row}} 行:',
|
|
444
581
|
// 服务端结构化导入错误的友好文案
|
|
445
582
|
referenceNotFound: '找不到匹配 "{{value}}" 的记录',
|
|
@@ -470,8 +607,14 @@ const zh = {
|
|
|
470
607
|
optBackgroundHint: '(作为可撤销任务运行)',
|
|
471
608
|
// 结果
|
|
472
609
|
createdCount: '新建 {{count}} 条',
|
|
610
|
+
createdCount_one: '新建 {{count}} 条',
|
|
611
|
+
createdCount_other: '新建 {{count}} 条',
|
|
473
612
|
updatedCount: '更新 {{count}} 条',
|
|
613
|
+
updatedCount_one: '更新 {{count}} 条',
|
|
614
|
+
updatedCount_other: '更新 {{count}} 条',
|
|
474
615
|
resultsTruncated: '显示前 {{count}} 行结果(共 {{total}} 行)。',
|
|
616
|
+
resultsTruncated_one: '显示前 {{count}} 行结果(共 {{total}} 行)。',
|
|
617
|
+
resultsTruncated_other: '显示前 {{count}} 行结果(共 {{total}} 行)。',
|
|
475
618
|
downloadFailed: '下载失败行',
|
|
476
619
|
cancelImport: '取消导入',
|
|
477
620
|
importCancelled: '导入已取消',
|
|
@@ -508,9 +651,13 @@ const zh = {
|
|
|
508
651
|
},
|
|
509
652
|
bulk: {
|
|
510
653
|
confirmDefault: '此操作将应用于 {{count}} 条记录。',
|
|
654
|
+
confirmDefault_one: '此操作将应用于 {{count}} 条记录。',
|
|
655
|
+
confirmDefault_other: '此操作将应用于 {{count}} 条记录。',
|
|
511
656
|
overLimit: '所选记录({{count}})超过该动作的上限({{limit}})。请减少选择后再继续。',
|
|
512
657
|
affectedRecords: '受影响的记录({{count}}):',
|
|
513
658
|
skippedIneligible: '{{count}} 条所选记录不符合该动作的条件,将被跳过。',
|
|
659
|
+
skippedIneligible_one: '{{count}} 条所选记录不符合该动作的条件,将被跳过。',
|
|
660
|
+
skippedIneligible_other: '{{count}} 条所选记录不符合该动作的条件,将被跳过。',
|
|
514
661
|
rowFallback: '第 {{index}} 行',
|
|
515
662
|
andMore: '……以及另外 {{count}} 条',
|
|
516
663
|
processed: '已处理 {{count}} / {{total}}',
|
|
@@ -528,7 +675,6 @@ const zh = {
|
|
|
528
675
|
undo: '撤销',
|
|
529
676
|
undoing: '撤销中…',
|
|
530
677
|
done: '完成',
|
|
531
|
-
selectPlaceholder: '请选择…',
|
|
532
678
|
loading: '加载中…',
|
|
533
679
|
},
|
|
534
680
|
},
|
|
@@ -537,16 +683,43 @@ const zh = {
|
|
|
537
683
|
month: '月',
|
|
538
684
|
week: '周',
|
|
539
685
|
day: '日',
|
|
540
|
-
agenda: '日程',
|
|
541
686
|
allDay: '全天',
|
|
542
|
-
noEvents: '暂无事件',
|
|
543
687
|
newEvent: '新建事件',
|
|
544
688
|
moreEvents: '+{{count}} 更多',
|
|
689
|
+
unscheduled: '未排期 ({{count}})',
|
|
690
|
+
loading: '加载日历中…',
|
|
691
|
+
loadError: '错误:{{message}}',
|
|
692
|
+
configRequired: '需要日历配置。请指定 startDateField,这是日历唯一必填的键;事件标题无需 titleField 也能解析。',
|
|
693
|
+
configRequiredHint: '它属于视图的 calendar 块。界面页面没有自己的日历插槽:请将其 sourceView 指向一个声明了日历的视图。',
|
|
694
|
+
eventDetails: '事件详情',
|
|
695
|
+
pullToRefresh: '下拉刷新',
|
|
696
|
+
refreshing: '刷新中…',
|
|
697
|
+
onDate: '{{date}}',
|
|
698
|
+
eventTitle: '标题',
|
|
699
|
+
eventTitlePlaceholder: '这个事件是关于什么的?',
|
|
700
|
+
creating: '创建中…',
|
|
701
|
+
titleRequired: '请填写标题',
|
|
702
|
+
a11y: {
|
|
703
|
+
region: '日历',
|
|
704
|
+
grid: '日历网格',
|
|
705
|
+
goToToday: '转到今天',
|
|
706
|
+
previousPeriod: '上一时段',
|
|
707
|
+
nextPeriod: '下一时段',
|
|
708
|
+
currentDate: '当前日期:{{date}}',
|
|
709
|
+
dayCell: '{{date}},{{count}} 个日程',
|
|
710
|
+
dayCell_one: '{{date}},{{count}} 个日程',
|
|
711
|
+
dayCell_other: '{{date}},{{count}} 个日程',
|
|
712
|
+
resizeEventEnd: '调整日程结束时间',
|
|
713
|
+
resizeEventEndHint: '拖动以更改结束日期',
|
|
714
|
+
resizeStart: '调整开始时间',
|
|
715
|
+
resizeEnd: '调整结束时间',
|
|
716
|
+
},
|
|
545
717
|
},
|
|
546
718
|
list: {
|
|
547
719
|
loading: '正在加载记录…',
|
|
548
720
|
recordCount: '{{count}} 条记录',
|
|
549
|
-
|
|
721
|
+
recordCount_one: '{{count}} 条记录',
|
|
722
|
+
recordCount_other: '{{count}} 条记录',
|
|
550
723
|
addRecord: '添加记录',
|
|
551
724
|
tabs: '标签页',
|
|
552
725
|
allRecords: '全部记录',
|
|
@@ -616,7 +789,7 @@ const zh = {
|
|
|
616
789
|
hideFieldsTitle: '隐藏字段',
|
|
617
790
|
dataLimitReached: '显示前 {{limit}} 条记录。可能有更多数据。',
|
|
618
791
|
viewSettings: '视图设置',
|
|
619
|
-
viewSettingsHint: '
|
|
792
|
+
viewSettingsHint: '分组、行颜色、密度与可见字段。对所有使用该视图的用户生效。',
|
|
620
793
|
addGroup: '添加分组字段',
|
|
621
794
|
collapsedByDefault: '默认折叠',
|
|
622
795
|
removeGroup: '删除',
|
|
@@ -681,6 +854,17 @@ const zh = {
|
|
|
681
854
|
},
|
|
682
855
|
gantt: {
|
|
683
856
|
rowLabel: '条目',
|
|
857
|
+
unusableRange: {
|
|
858
|
+
malformedDate: '甘特图日期区间不可用 —— {{path}} 的值是 {{value}},无法解析为日期。每个甘特图日期都必须能被解析:每行条目的 startDate 与 endDate,以及 schema 上钉住的 minDate / maxDate。',
|
|
859
|
+
malformedRow: '甘特图行不可用 —— {{path}} 的值是 {{value}},不是行的形状。甘特图把 items 读作行的列表,每一行是带 label 和自身 items 的对象,每一行的 items 是条形的列表;这些位置上出现 null、数字、字符串或普通对象都无法绘制。',
|
|
860
|
+
inverted: '甘特图日期区间不可用 —— minDate {{minDate}} 晚于 maxDate {{maxDate}}。钉住的 minDate / maxDate 会覆盖由行数据算出的区间,因此该坐标轴没有任何列,也无法放置任何条形;请对调这两个值。',
|
|
861
|
+
},
|
|
862
|
+
},
|
|
863
|
+
unsupported: {
|
|
864
|
+
objectBoundGantt: '不支持的变体 "gantt" —— 对象绑定的时间线只渲染 feed 变体({{variants}})。甘特图需要字面量行,每行自带嵌套的 items,因此此处的甘特轴(scale)不起作用。',
|
|
865
|
+
},
|
|
866
|
+
unconfigured: {
|
|
867
|
+
noDateAxis: '时间线需要日期轴 —— 该视图未声明任何日期字段,而对象绑定的时间线不会虚构一个。请声明以下之一:{{fields}}。第一个是 spec 写法,其余为遗留别名。',
|
|
684
868
|
},
|
|
685
869
|
},
|
|
686
870
|
gantt: {
|
|
@@ -726,6 +910,7 @@ const zh = {
|
|
|
726
910
|
},
|
|
727
911
|
aria: {
|
|
728
912
|
taskList: '任务列表',
|
|
913
|
+
refreshing: '刷新中…',
|
|
729
914
|
},
|
|
730
915
|
tooltip: {
|
|
731
916
|
days: '天',
|
|
@@ -771,13 +956,19 @@ const zh = {
|
|
|
771
956
|
conflict: {
|
|
772
957
|
title: '排程冲突',
|
|
773
958
|
body: '此次移动与依赖约束冲突。是否自动重新排程 {{count}} 个受影响的任务?',
|
|
959
|
+
body_one: '此次移动与依赖约束冲突。是否自动重新排程 {{count}} 个受影响的任务?',
|
|
960
|
+
body_other: '此次移动与依赖约束冲突。是否自动重新排程 {{count}} 个受影响的任务?',
|
|
774
961
|
confirm: '自动重新排程',
|
|
775
962
|
cancel: '保持不变',
|
|
776
963
|
},
|
|
777
964
|
autoScheduleDlg: {
|
|
778
965
|
title: '自动排程',
|
|
779
966
|
body: '将顺延 {{count}} 个任务以满足依赖约束,是否执行?',
|
|
967
|
+
body_one: '将顺延 {{count}} 个任务以满足依赖约束,是否执行?',
|
|
968
|
+
body_other: '将顺延 {{count}} 个任务以满足依赖约束,是否执行?',
|
|
780
969
|
skipped: '另有 {{count}} 项因锁定/无权限跳过。',
|
|
970
|
+
skipped_one: '另有 {{count}} 项因锁定/无权限跳过。',
|
|
971
|
+
skipped_other: '另有 {{count}} 项因锁定/无权限跳过。',
|
|
781
972
|
confirm: '执行',
|
|
782
973
|
cancel: '取消',
|
|
783
974
|
none: '依赖均满足,无需排程',
|
|
@@ -828,6 +1019,7 @@ const zh = {
|
|
|
828
1019
|
tabActionsFor: '{{name}} 的视图操作',
|
|
829
1020
|
readonlyAriaLabel: '只读视图',
|
|
830
1021
|
readonlyTooltip: '系统视图 — 由代码定义,只读。',
|
|
1022
|
+
malformedFilter: '此视图的筛选条件有误,因此不显示任何记录:无法应用 {{subject}} 条件。',
|
|
831
1023
|
},
|
|
832
1024
|
designer: {
|
|
833
1025
|
undo: '撤销',
|
|
@@ -847,6 +1039,9 @@ const zh = {
|
|
|
847
1039
|
writeStrippedTitle: '已保存,但部分字段未生效',
|
|
848
1040
|
writeStrippedReadonly: '以下字段为只读,未生效:{{fields}}',
|
|
849
1041
|
writeStrippedByState: '以下字段在记录当前状态下不可编辑,未生效:{{fields}}',
|
|
1042
|
+
writeStrippedPrimaryKey: '以下字段是记录的标识符,保存时无法修改,未生效:{{fields}}',
|
|
1043
|
+
writeStrippedComputed: '以下字段由服务端按公式计算,提交的值未生效:{{fields}}',
|
|
1044
|
+
writeStrippedUnknownReason: '以下字段未被服务端写入:{{fields}}',
|
|
850
1045
|
approvalPendingEditable: '审批中 · 可编辑',
|
|
851
1046
|
approvalPendingTooltip: '该记录有待审批的请求,但当前审批节点仍允许编辑',
|
|
852
1047
|
approvalProgress: '审批 — 已通过 {{got}} / 共需 {{need}}',
|
|
@@ -859,7 +1054,16 @@ const zh = {
|
|
|
859
1054
|
cancelApprovalTooltipUnlocked: '撤回当前的待审批请求',
|
|
860
1055
|
cancelApprovalFailed: '撤回审批失败',
|
|
861
1056
|
cancelApprovalUnavailable: '当前数据源不支持撤回审批',
|
|
1057
|
+
pathLabel: '记录路径',
|
|
1058
|
+
pathStageCompleted: '{{stage}},已完成',
|
|
1059
|
+
pathStageCurrent: '{{stage}},当前阶段',
|
|
1060
|
+
pathStageUpcoming: '{{stage}},未开始',
|
|
1061
|
+
pathStageLostCurrent: '{{stage}},已失败,当前阶段',
|
|
1062
|
+
pathStageLostUpcoming: '{{stage}},已失败,未到达',
|
|
1063
|
+
pathStageWonUpcoming: '{{stage}},目标阶段,未到达',
|
|
862
1064
|
linkCopied: '链接已复制到剪贴板',
|
|
1065
|
+
commentFailed: '评论未发布,内容没有保存,请重试。',
|
|
1066
|
+
reactionFailed: '表情回应未保存,请重试。',
|
|
863
1067
|
linkCopyFailed: '复制链接失败',
|
|
864
1068
|
cancel: '取消',
|
|
865
1069
|
cancelEdit: '放弃更改',
|
|
@@ -886,7 +1090,8 @@ const zh = {
|
|
|
886
1090
|
pageHeaderActions: '页面标题栏操作',
|
|
887
1091
|
emojiPicker: '表情选择器',
|
|
888
1092
|
reactionCount: '{{emoji}} {{count}} 个回应',
|
|
889
|
-
|
|
1093
|
+
reactionCount_one: '{{emoji}} {{count}} 个回应',
|
|
1094
|
+
reactionCount_other: '{{emoji}} {{count}} 个回应',
|
|
890
1095
|
recordDetail: '记录详情',
|
|
891
1096
|
recordDetailWithLabel: '{{label}}详情',
|
|
892
1097
|
openAsFullPage: '以完整页面打开',
|
|
@@ -913,7 +1118,6 @@ const zh = {
|
|
|
913
1118
|
viewAll: '查看全部',
|
|
914
1119
|
new: '新建',
|
|
915
1120
|
add: '添加',
|
|
916
|
-
emptyValue: '—',
|
|
917
1121
|
activity: '活动',
|
|
918
1122
|
history: '历史',
|
|
919
1123
|
historyEmpty: '暂无历史记录',
|
|
@@ -928,6 +1132,7 @@ const zh = {
|
|
|
928
1132
|
sortBy: '排序',
|
|
929
1133
|
filterPlaceholder: '筛选…',
|
|
930
1134
|
highlightFields: '关键字段',
|
|
1135
|
+
highlightsLabel: '记录关键字段',
|
|
931
1136
|
// Comments
|
|
932
1137
|
comments: '评论',
|
|
933
1138
|
searchComments: '搜索评论…',
|
|
@@ -939,8 +1144,14 @@ const zh = {
|
|
|
939
1144
|
unpin: '取消置顶',
|
|
940
1145
|
justNow: '刚刚',
|
|
941
1146
|
minutesAgo: '{{count}}分钟前',
|
|
1147
|
+
minutesAgo_one: '{{count}}分钟前',
|
|
1148
|
+
minutesAgo_other: '{{count}}分钟前',
|
|
942
1149
|
hoursAgo: '{{count}}小时前',
|
|
1150
|
+
hoursAgo_one: '{{count}}小时前',
|
|
1151
|
+
hoursAgo_other: '{{count}}小时前',
|
|
943
1152
|
daysAgo: '{{count}}天前',
|
|
1153
|
+
daysAgo_one: '{{count}}天前',
|
|
1154
|
+
daysAgo_other: '{{count}}天前',
|
|
944
1155
|
// Activity feed actors
|
|
945
1156
|
systemActor: '系统',
|
|
946
1157
|
unknownUser: '未知用户',
|
|
@@ -954,7 +1165,8 @@ const zh = {
|
|
|
954
1165
|
// Attachments
|
|
955
1166
|
dropFilesToUpload: '拖拽文件到此处或点击上传',
|
|
956
1167
|
attachmentCount: '{{count}} 个附件',
|
|
957
|
-
|
|
1168
|
+
attachmentCount_one: '{{count}} 个附件',
|
|
1169
|
+
attachmentCount_other: '{{count}} 个附件',
|
|
958
1170
|
removeAttachment: '移除附件',
|
|
959
1171
|
// Record Attachments panel (enable.files, objectstack#4358)
|
|
960
1172
|
attachments: '附件',
|
|
@@ -968,12 +1180,11 @@ const zh = {
|
|
|
968
1180
|
attachmentDownloadDenied: '您无权下载此附件。',
|
|
969
1181
|
attachmentAuthRequired: '请登录后再下载此附件。',
|
|
970
1182
|
attachmentPermissionDenied: '您没有执行此操作的权限。',
|
|
1183
|
+
attachmentsAccessDenied: '您没有访问这些附件的权限。',
|
|
1184
|
+
attachmentsLoadFailed: '无法加载此记录的附件。',
|
|
1185
|
+
attachmentsApiUnavailable: '此对象上的附件列表不可用。',
|
|
1186
|
+
retryLoadAttachments: '重试',
|
|
971
1187
|
// Diff
|
|
972
|
-
unifiedDiff: '统一视图',
|
|
973
|
-
sideBySideDiff: '并排视图',
|
|
974
|
-
noChanges: '无变更',
|
|
975
|
-
previousVersion: '旧版本',
|
|
976
|
-
currentVersion: '新版本',
|
|
977
1188
|
// Discussion
|
|
978
1189
|
discussion: '讨论',
|
|
979
1190
|
showDiscussion: '显示讨论 ({{count}})',
|
|
@@ -992,18 +1203,12 @@ const zh = {
|
|
|
992
1203
|
subscribedTooltip: '已订阅 — 点击取消订阅',
|
|
993
1204
|
unsubscribedTooltip: '订阅通知',
|
|
994
1205
|
// Navigation
|
|
995
|
-
firstRecord: '第一条记录 (Home)',
|
|
996
|
-
previousRecordKey: '上一条记录 (←)',
|
|
997
|
-
nextRecordKey: '下一条记录 (→)',
|
|
998
|
-
lastRecord: '最后一条记录 (End)',
|
|
999
1206
|
noRecords: '无记录',
|
|
1000
1207
|
// objectui#3863 — base key. zh has a single plural category (`other`), so this
|
|
1001
1208
|
// slot is unreachable here and equals `_other` for key-set parity.
|
|
1002
1209
|
showEmptyRelated: '+ {{count}} 个为空',
|
|
1003
1210
|
showEmptyRelated_one: '+ {{count}} 个为空',
|
|
1004
1211
|
showEmptyRelated_other: '+ {{count}} 个为空',
|
|
1005
|
-
searchWhileNavigating: '导航时搜索',
|
|
1006
|
-
searchRecords: '搜索记录…',
|
|
1007
1212
|
// Activity timeline
|
|
1008
1213
|
allActivity: '全部动态',
|
|
1009
1214
|
commentsOnly: '仅评论',
|
|
@@ -1011,13 +1216,29 @@ const zh = {
|
|
|
1011
1216
|
tasksOnly: '仅任务',
|
|
1012
1217
|
leaveCommentPlaceholder: '留下评论… (Ctrl+Enter 提交)',
|
|
1013
1218
|
noActivity: '暂无活动记录',
|
|
1219
|
+
activityAccessDenied: '您没有查看此记录活动的权限。',
|
|
1220
|
+
commentsAccessDenied: '您没有查看此记录评论的权限。',
|
|
1221
|
+
// objectui#7149 — the rest of `ActivityTimeline`. The four chip labels the
|
|
1222
|
+
// `detail.*` pack did not already name, and the `formatFieldChange`
|
|
1223
|
+
// sentences, which are assembled in code and so need interpolation holes.
|
|
1224
|
+
allFilter: '全部',
|
|
1225
|
+
createsFilter: '创建',
|
|
1226
|
+
deletesFilter: '删除',
|
|
1227
|
+
statusChangesFilter: '状态变更',
|
|
1228
|
+
activityEmptyValue: '(空)',
|
|
1229
|
+
activityFieldChanged: '将 {{field}} 从“{{old}}”改为“{{new}}”',
|
|
1230
|
+
activityCreated: '创建了此记录',
|
|
1231
|
+
activityDeleted: '删除了此记录',
|
|
1232
|
+
activityStatusChanged: '将状态改为“{{value}}”',
|
|
1233
|
+
activityUpdated: '更新了记录',
|
|
1014
1234
|
loadMore: '加载更多',
|
|
1015
1235
|
edited: '(已编辑)',
|
|
1016
1236
|
via: '通过 {{source}}',
|
|
1017
1237
|
viewSource: '查看来源',
|
|
1018
1238
|
// Replies
|
|
1019
1239
|
replyCount: '{{count}} 条回复',
|
|
1020
|
-
|
|
1240
|
+
replyCount_one: '{{count}} 条回复',
|
|
1241
|
+
replyCount_other: '{{count}} 条回复',
|
|
1021
1242
|
replyPlaceholder: '回复…',
|
|
1022
1243
|
// 无障碍标签
|
|
1023
1244
|
filterActivity: '筛选活动',
|
|
@@ -1030,13 +1251,27 @@ const zh = {
|
|
|
1030
1251
|
copyPhone: '复制电话号码',
|
|
1031
1252
|
copyRecordId: '复制记录 ID',
|
|
1032
1253
|
showEmptyFields: '显示 {{count}} 个空字段',
|
|
1254
|
+
showEmptyFields_one: '显示 {{count}} 个空字段',
|
|
1255
|
+
showEmptyFields_other: '显示 {{count}} 个空字段',
|
|
1033
1256
|
hideEmptyFields: '隐藏空字段',
|
|
1034
1257
|
noValue: '无',
|
|
1258
|
+
unresolvedReference: '未解析的引用:{{value}} 未能解析为用户',
|
|
1259
|
+
unresolvedLookupReference: '未解析的引用:{{value}} 在本屏未能解析为记录',
|
|
1260
|
+
repeaterItemCount: '{{count}} 项',
|
|
1261
|
+
repeaterItemCount_one: '{{count}} 项',
|
|
1262
|
+
repeaterItemCount_other: '{{count}} 项',
|
|
1263
|
+
fileCount: '{{count}} 个文件',
|
|
1264
|
+
fileCount_one: '{{count}} 个文件',
|
|
1265
|
+
fileCount_other: '{{count}} 个文件',
|
|
1035
1266
|
},
|
|
1036
1267
|
chart: {
|
|
1037
|
-
noData: '暂无图表数据',
|
|
1038
1268
|
loading: '图表加载中…',
|
|
1269
|
+
refreshing: '刷新中…',
|
|
1039
1270
|
nullCategory: '(未指定)',
|
|
1271
|
+
scatterOneMeasure: '散点图只绘制一个度量。请只保留一个系列:',
|
|
1272
|
+
unconfigured: {
|
|
1273
|
+
noCategoryAxis: '图表需要分类轴 —— 对象绑定的图表不会虚构一个。请声明以下之一:',
|
|
1274
|
+
},
|
|
1040
1275
|
},
|
|
1041
1276
|
report: {
|
|
1042
1277
|
total: '总计',
|
|
@@ -1064,89 +1299,136 @@ const zh = {
|
|
|
1064
1299
|
panelTitle: '编辑报表',
|
|
1065
1300
|
},
|
|
1066
1301
|
},
|
|
1067
|
-
map: {
|
|
1068
|
-
searchLocations: '搜索位置…',
|
|
1069
|
-
locationDetails: '位置详情',
|
|
1070
|
-
markersCount: '{{count}} 个标记',
|
|
1071
|
-
invalidCoordinates: '{{count}} 条记录因坐标缺失或无效已从地图中排除。',
|
|
1072
|
-
invalidCoordinatesPlural: '{{count}} 条记录因坐标缺失或无效已从地图中排除。',
|
|
1073
|
-
},
|
|
1074
|
-
workflow: {
|
|
1075
|
-
draft: '草稿',
|
|
1076
|
-
active: '活跃',
|
|
1077
|
-
paused: '已暂停',
|
|
1078
|
-
completed: '已完成',
|
|
1079
|
-
cancelled: '已取消',
|
|
1080
|
-
save: '保存',
|
|
1081
|
-
publish: '发布',
|
|
1082
|
-
addNode: '添加节点',
|
|
1083
|
-
workflowFlow: '工作流程',
|
|
1084
|
-
properties: '属性',
|
|
1085
|
-
connections: '连接',
|
|
1086
|
-
quickConnect: '快速连接',
|
|
1087
|
-
fromPlaceholder: '从…',
|
|
1088
|
-
toPlaceholder: '到…',
|
|
1089
|
-
connect: '连接',
|
|
1090
|
-
label: '标签',
|
|
1091
|
-
type: '类型',
|
|
1092
|
-
description: '描述',
|
|
1093
|
-
assignee: '负责人',
|
|
1094
|
-
assigneeType: '负责人类型',
|
|
1095
|
-
user: '用户',
|
|
1096
|
-
role: '角色',
|
|
1097
|
-
group: '组',
|
|
1098
|
-
expression: '表达式',
|
|
1099
|
-
timeoutMinutes: '超时时间(分钟)',
|
|
1100
|
-
selectNodeToEdit: '选择节点以编辑其属性',
|
|
1101
|
-
workflowTitle: '工作流标题',
|
|
1102
|
-
newWorkflow: '新工作流',
|
|
1103
|
-
outConnections: '{{count}} 个输出',
|
|
1104
|
-
start: '开始',
|
|
1105
|
-
end: '结束',
|
|
1106
|
-
task: '任务',
|
|
1107
|
-
userTask: '用户任务',
|
|
1108
|
-
serviceTask: '服务任务',
|
|
1109
|
-
scriptTask: '脚本任务',
|
|
1110
|
-
approval: '审批',
|
|
1111
|
-
condition: '条件',
|
|
1112
|
-
parallelGateway: '并行网关',
|
|
1113
|
-
joinGateway: '合并网关',
|
|
1114
|
-
boundaryEvent: '边界事件',
|
|
1115
|
-
delay: '延迟',
|
|
1116
|
-
notification: '通知',
|
|
1117
|
-
webhook: 'Webhook',
|
|
1118
|
-
allowConcurrency: '允许(并发执行)',
|
|
1119
|
-
forbidConcurrency: '禁止(跳过新任务)',
|
|
1120
|
-
replaceConcurrency: '替换(取消现有任务)',
|
|
1121
|
-
queueConcurrency: '排队(等待当前完成)',
|
|
1122
|
-
conditionEvent: '条件',
|
|
1123
|
-
manualEvent: '手动',
|
|
1124
|
-
webhookEvent: 'Webhook',
|
|
1125
|
-
timerEvent: '定时器',
|
|
1126
|
-
signalEvent: '信号',
|
|
1127
|
-
versionHistory: '版本历史',
|
|
1128
|
-
importBpmn: '导入 BPMN',
|
|
1129
|
-
exportBpmn: '导出 BPMN',
|
|
1130
|
-
undo: '撤销',
|
|
1131
|
-
redo: '重做',
|
|
1132
|
-
resetZoom: '重置缩放',
|
|
1133
|
-
},
|
|
1134
1302
|
dashboard: {
|
|
1135
1303
|
addWidget: '添加组件',
|
|
1136
|
-
removeWidget: '移除组件',
|
|
1137
1304
|
editLayout: '编辑布局',
|
|
1138
1305
|
saveLayout: '保存布局',
|
|
1139
1306
|
resetLayout: '重置布局',
|
|
1140
1307
|
total: '总计',
|
|
1141
|
-
noDataAvailable: '暂无数据',
|
|
1142
1308
|
noDataSourceFor: '没有可用的数据源:',
|
|
1143
|
-
|
|
1309
|
+
// objectui#7063 — the DEFAULT empty state every dashboard widget renders
|
|
1310
|
+
// when its query SUCCEEDED and returned nothing. It replaced the terse
|
|
1311
|
+
// per-widget `noRows` / `noDataAvailable` fragments at the render site;
|
|
1312
|
+
// objectui#7125 deleted those two keys from all ten packs once nothing
|
|
1313
|
+
// read them. The copy here has to read as a state rather than a failure,
|
|
1314
|
+
// which is why it says the widget loaded. `sourceLabel` carries its own
|
|
1315
|
+
// punctuation so the call site concatenates no separator (see
|
|
1316
|
+
// `WidgetEmptyState`).
|
|
1317
|
+
empty: {
|
|
1318
|
+
title: '暂时还没有数据',
|
|
1319
|
+
message: '该组件已成功加载,只是查询目前没有返回任何记录。',
|
|
1320
|
+
sourceLabel: '数据源:',
|
|
1321
|
+
},
|
|
1144
1322
|
loading: '加载中…',
|
|
1323
|
+
refreshing: '刷新中…',
|
|
1324
|
+
refreshAll: '全部刷新',
|
|
1325
|
+
refreshDashboard: '刷新仪表盘',
|
|
1145
1326
|
pickMeasures: '请为该数据集组件选择度量(值)。',
|
|
1146
1327
|
datasetUnsupported: '当前数据源不支持数据集查询。',
|
|
1328
|
+
widgetForbiddenTitle: '无权访问',
|
|
1329
|
+
widgetForbiddenMessage: '你没有查看该组件数据的权限。',
|
|
1147
1330
|
details: '明细',
|
|
1148
1331
|
exportCsv: '导出 CSV',
|
|
1149
1332
|
openInList: '在列表中打开',
|
|
1333
|
+
config: {
|
|
1334
|
+
breadcrumb: {
|
|
1335
|
+
dashboard: '仪表盘',
|
|
1336
|
+
configuration: '配置',
|
|
1337
|
+
widget: '组件',
|
|
1338
|
+
chart: '图表',
|
|
1339
|
+
table: '表格',
|
|
1340
|
+
pivotTable: '透视表',
|
|
1341
|
+
},
|
|
1342
|
+
section: {
|
|
1343
|
+
general: '基本',
|
|
1344
|
+
layout: '布局',
|
|
1345
|
+
data: '数据',
|
|
1346
|
+
dataBinding: '数据绑定',
|
|
1347
|
+
appearance: '外观',
|
|
1348
|
+
},
|
|
1349
|
+
field: {
|
|
1350
|
+
title: '标题',
|
|
1351
|
+
description: '描述',
|
|
1352
|
+
columns: '列数',
|
|
1353
|
+
gap: '间距',
|
|
1354
|
+
rowHeight: '行高 (px)',
|
|
1355
|
+
autoRefresh: '自动刷新',
|
|
1356
|
+
showDescription: '显示描述',
|
|
1357
|
+
theme: '主题',
|
|
1358
|
+
widgetType: '组件类型',
|
|
1359
|
+
colorVariant: '颜色',
|
|
1360
|
+
dataset: '数据集',
|
|
1361
|
+
dimensions: '维度',
|
|
1362
|
+
values: '度量值',
|
|
1363
|
+
width: '宽度 (列数)',
|
|
1364
|
+
height: '高度 (行数)',
|
|
1365
|
+
},
|
|
1366
|
+
placeholder: {
|
|
1367
|
+
dashboardTitle: '仪表盘标题',
|
|
1368
|
+
dashboardDescription: '显示在标题下方的简短说明',
|
|
1369
|
+
widgetTitle: '组件标题',
|
|
1370
|
+
widgetDescription: '组件描述',
|
|
1371
|
+
datasetName: '数据集名称',
|
|
1372
|
+
selectDataset: '选择数据集…',
|
|
1373
|
+
searchDatasets: '搜索数据集…',
|
|
1374
|
+
addDimension: '添加维度…',
|
|
1375
|
+
addMeasure: '添加度量…',
|
|
1376
|
+
searchMembers: '搜索…',
|
|
1377
|
+
},
|
|
1378
|
+
empty: {
|
|
1379
|
+
datasets: '未找到数据集。',
|
|
1380
|
+
dimensions: '未选择维度。',
|
|
1381
|
+
measures: '未选择度量。',
|
|
1382
|
+
nothingToAdd: '没有可添加的项。',
|
|
1383
|
+
},
|
|
1384
|
+
help: {
|
|
1385
|
+
dataset: '该组件绑定的语义层数据集 (ADR-0021)。',
|
|
1386
|
+
dimensions: '按这些数据集维度对度量值进行分组/拆分。',
|
|
1387
|
+
dimensionsPivot: '分组/拆分字段。最后一个维度将横向展开为列。',
|
|
1388
|
+
values: '要展示的数据集度量 (至少一个)。',
|
|
1389
|
+
},
|
|
1390
|
+
action: {
|
|
1391
|
+
add: '添加',
|
|
1392
|
+
remove: '移除 {{name}}',
|
|
1393
|
+
},
|
|
1394
|
+
refresh: {
|
|
1395
|
+
off: '关闭',
|
|
1396
|
+
every30s: '每 30 秒',
|
|
1397
|
+
every1m: '每 1 分钟',
|
|
1398
|
+
every5m: '每 5 分钟',
|
|
1399
|
+
every15m: '每 15 分钟',
|
|
1400
|
+
every30m: '每 30 分钟',
|
|
1401
|
+
every1h: '每 1 小时',
|
|
1402
|
+
},
|
|
1403
|
+
themeOption: {
|
|
1404
|
+
light: '浅色',
|
|
1405
|
+
dark: '深色',
|
|
1406
|
+
auto: '自动',
|
|
1407
|
+
},
|
|
1408
|
+
widgetType: {
|
|
1409
|
+
metric: '指标',
|
|
1410
|
+
bar: '柱状图',
|
|
1411
|
+
horizontalBar: '条形图',
|
|
1412
|
+
line: '折线图',
|
|
1413
|
+
pie: '饼图',
|
|
1414
|
+
donut: '环形图',
|
|
1415
|
+
area: '面积图',
|
|
1416
|
+
scatter: '散点图',
|
|
1417
|
+
funnel: '漏斗图',
|
|
1418
|
+
table: '表格',
|
|
1419
|
+
pivot: '透视表',
|
|
1420
|
+
},
|
|
1421
|
+
color: {
|
|
1422
|
+
default: '默认',
|
|
1423
|
+
blue: '蓝色',
|
|
1424
|
+
teal: '青色',
|
|
1425
|
+
orange: '橙色',
|
|
1426
|
+
purple: '紫色',
|
|
1427
|
+
success: '成功',
|
|
1428
|
+
warning: '警告',
|
|
1429
|
+
danger: '危险',
|
|
1430
|
+
},
|
|
1431
|
+
},
|
|
1150
1432
|
trend: {
|
|
1151
1433
|
vsLastQuarter: '较上季度',
|
|
1152
1434
|
vsLastMonth: '较上月',
|
|
@@ -1179,24 +1461,6 @@ const zh = {
|
|
|
1179
1461
|
},
|
|
1180
1462
|
},
|
|
1181
1463
|
},
|
|
1182
|
-
configPanel: {
|
|
1183
|
-
save: '保存',
|
|
1184
|
-
discard: '丢弃',
|
|
1185
|
-
close: '关闭',
|
|
1186
|
-
layout: '布局',
|
|
1187
|
-
columns: '列数',
|
|
1188
|
-
gap: '间距',
|
|
1189
|
-
rowHeight: '行高',
|
|
1190
|
-
data: '数据',
|
|
1191
|
-
refreshInterval: '刷新间隔',
|
|
1192
|
-
appearance: '外观',
|
|
1193
|
-
title: '标题',
|
|
1194
|
-
showDescription: '显示描述',
|
|
1195
|
-
theme: '主题',
|
|
1196
|
-
configuration: '配置',
|
|
1197
|
-
general: '基本',
|
|
1198
|
-
advanced: '高级',
|
|
1199
|
-
},
|
|
1200
1464
|
appDesigner: {
|
|
1201
1465
|
createApp: '创建应用',
|
|
1202
1466
|
editApp: '编辑应用',
|
|
@@ -1209,10 +1473,6 @@ const zh = {
|
|
|
1209
1473
|
appDescription: '描述',
|
|
1210
1474
|
appIcon: '图标',
|
|
1211
1475
|
template: '模板',
|
|
1212
|
-
layout: '布局',
|
|
1213
|
-
layoutSidebar: '侧边栏',
|
|
1214
|
-
layoutHeader: '顶部导航',
|
|
1215
|
-
layoutEmpty: '空白',
|
|
1216
1476
|
selectObjects: '选择对象',
|
|
1217
1477
|
searchObjects: '搜索对象…',
|
|
1218
1478
|
selectAll: '全选',
|
|
@@ -1221,7 +1481,6 @@ const zh = {
|
|
|
1221
1481
|
addGroup: '添加分组',
|
|
1222
1482
|
addUrl: '添加链接',
|
|
1223
1483
|
addSeparator: '添加分隔线',
|
|
1224
|
-
noNavItems: '暂无导航项。',
|
|
1225
1484
|
logoUrl: 'Logo 链接',
|
|
1226
1485
|
primaryColor: '主色调',
|
|
1227
1486
|
faviconUrl: '网站图标链接',
|
|
@@ -1247,16 +1506,13 @@ const zh = {
|
|
|
1247
1506
|
showSort: '显示排序',
|
|
1248
1507
|
appearance: '外观',
|
|
1249
1508
|
rowHeight: '行高',
|
|
1250
|
-
stripedRows: '斑马纹',
|
|
1251
|
-
bordered: '边框',
|
|
1252
1509
|
livePreview: '实时预览',
|
|
1253
|
-
stepBasicDesc: '
|
|
1510
|
+
stepBasicDesc: '名称、标题和图标',
|
|
1254
1511
|
stepObjectsDesc: '选择业务对象',
|
|
1255
1512
|
stepNavigationDesc: '构建导航树',
|
|
1256
1513
|
stepBrandingDesc: 'Logo、颜色和图标',
|
|
1257
1514
|
noObjectsFound: '未找到对象。',
|
|
1258
1515
|
noNavItemsHint: '暂无导航项。请在上一步选择对象或手动添加项目。',
|
|
1259
|
-
separator: '分隔线',
|
|
1260
1516
|
separatorLabel: '— 分隔线 —',
|
|
1261
1517
|
newGroup: '新建分组',
|
|
1262
1518
|
newLink: '新建链接',
|
|
@@ -1290,6 +1546,7 @@ const zh = {
|
|
|
1290
1546
|
navTypeSeparator: '分隔线',
|
|
1291
1547
|
navTypeAction: '操作',
|
|
1292
1548
|
navTypeComponent: '组件',
|
|
1549
|
+
navTypeDoc: '文档',
|
|
1293
1550
|
navEditIcon: '编辑图标',
|
|
1294
1551
|
navToggleVisible: '切换可见性',
|
|
1295
1552
|
navHidden: '已隐藏',
|
|
@@ -1362,17 +1619,13 @@ const zh = {
|
|
|
1362
1619
|
unique: '唯一',
|
|
1363
1620
|
readOnly: '只读',
|
|
1364
1621
|
hidden: '隐藏',
|
|
1365
|
-
indexed: '索引',
|
|
1366
1622
|
externalId: '外部 ID',
|
|
1367
1623
|
trackHistory: '追踪历史',
|
|
1368
1624
|
defaultValue: '默认值',
|
|
1369
1625
|
placeholder: '占位文本',
|
|
1370
1626
|
referenceTo: '引用对象',
|
|
1371
|
-
formula: '公式',
|
|
1372
1627
|
options: '选项',
|
|
1373
1628
|
addOption: '添加选项',
|
|
1374
|
-
validationRules: '验证规则',
|
|
1375
|
-
addRule: '添加规则',
|
|
1376
1629
|
systemBadge: '系统',
|
|
1377
1630
|
ungrouped: '通用',
|
|
1378
1631
|
deleteConfirmTitle: '删除字段?',
|
|
@@ -1391,21 +1644,57 @@ const zh = {
|
|
|
1391
1644
|
},
|
|
1392
1645
|
},
|
|
1393
1646
|
console: {
|
|
1647
|
+
studio: {
|
|
1648
|
+
backToHome: '返回首页',
|
|
1649
|
+
},
|
|
1394
1650
|
saveAdvisoryTitle: '已保存 — 编辑检查提出了 {{count}} 条建议',
|
|
1651
|
+
saveAdvisoryTitle_one: '已保存 — 编辑检查提出了 {{count}} 条建议',
|
|
1652
|
+
saveAdvisoryTitle_other: '已保存 — 编辑检查提出了 {{count}} 条建议',
|
|
1653
|
+
publishAdvisoryTitle: '已发布 — 编辑检查提出了 {{count}} 条建议',
|
|
1654
|
+
publishAdvisoryTitle_one: '已发布 — 编辑检查提出了 {{count}} 条建议',
|
|
1655
|
+
publishAdvisoryTitle_other: '已发布 — 编辑检查提出了 {{count}} 条建议',
|
|
1656
|
+
importMappingsUnavailable: "无法加载 {{object}} 的已保存导入映射",
|
|
1657
|
+
importMappingsRefused: "服务器拒绝了此请求,因此该列表为空是因为读取失败,而不是因为没有注册任何映射。请重新登录,或联系管理员申请访问权限。",
|
|
1658
|
+
importMappingsUnreadable: "该列表为空是因为读取失败,而不是因为没有注册任何映射。请重试;如果反复出现,请反馈此问题。",
|
|
1659
|
+
savedViewsUnavailable: "无法加载 {{object}} 的已保存视图",
|
|
1660
|
+
savedViewsRefused: "服务器拒绝了此请求,因此该列表为空是因为读取失败,而不是因为该对象没有已保存的视图。请重新登录,或联系管理员申请访问权限。",
|
|
1661
|
+
savedViewsUnreadable: "该列表为空是因为读取失败,而不是因为该对象没有已保存的视图。请重试;如果反复出现,请反馈此问题。",
|
|
1395
1662
|
title: 'ObjectStack 控制台',
|
|
1396
1663
|
initializing: '正在初始化应用程序…',
|
|
1397
1664
|
search: '搜索…',
|
|
1398
1665
|
breadcrumb: {
|
|
1399
1666
|
dashboards: '仪表盘',
|
|
1400
1667
|
pages: '页面',
|
|
1401
|
-
|
|
1668
|
+
// objectui#6166 — 报表 here is a maintainer RULING (2026-08-25), not a
|
|
1669
|
+
// majority count. 报表 (tabular/data report) and 报告 (written/narrative
|
|
1670
|
+
// report) are NOT interchangeable, so this key holding 报告 against the
|
|
1671
|
+
// rest of the pack was read as evidence of a majority and never, on its
|
|
1672
|
+
// own, as evidence of a mistake; the call was made on what renders. This
|
|
1673
|
+
// segment labels the `routeType === 'report'` LIST route (app-shell
|
|
1674
|
+
// AppHeader) — a structural sibling of dashboards/pages that drills into
|
|
1675
|
+
// metadata report definitions, i.e. the same feature that
|
|
1676
|
+
// `console.commandPalette.reports`, `console.nav.navReport` and
|
|
1677
|
+
// `search.badgeReport` already call 报表. Nothing narrative renders
|
|
1678
|
+
// beneath it. Don't re-file this as a pack inconsistency, and don't
|
|
1679
|
+
// restore 报告 without a new ruling.
|
|
1680
|
+
reports: '报表',
|
|
1402
1681
|
system: '系统',
|
|
1682
|
+
marketplace: '应用市场',
|
|
1683
|
+
settings: '设置',
|
|
1684
|
+
apps: '应用',
|
|
1685
|
+
profile: '个人资料',
|
|
1686
|
+
approvals: '审批',
|
|
1687
|
+
aiApprovals: 'AI 审批',
|
|
1688
|
+
auditLog: '审计日志',
|
|
1403
1689
|
},
|
|
1404
1690
|
nav: {
|
|
1405
1691
|
pinItem: '固定 {{name}}',
|
|
1406
1692
|
unpinItem: '取消固定 {{name}}',
|
|
1407
1693
|
dragToReorder: '拖动以重新排序',
|
|
1408
1694
|
favorites: '收藏',
|
|
1695
|
+
launcherLabel: '应用启动台',
|
|
1696
|
+
menuLabel: '应用导航',
|
|
1697
|
+
menuEmpty: '此应用没有你可以打开的导航项。',
|
|
1409
1698
|
},
|
|
1410
1699
|
settingsHub: {
|
|
1411
1700
|
title: '设置',
|
|
@@ -1516,6 +1805,13 @@ const zh = {
|
|
|
1516
1805
|
createApp: '创建新应用',
|
|
1517
1806
|
},
|
|
1518
1807
|
ai: {
|
|
1808
|
+
pendingDrafts: {
|
|
1809
|
+
count: '有 {{count}} 项改动尚未发布——用户还看不到。',
|
|
1810
|
+
publish: '发布',
|
|
1811
|
+
published: '全部待发布改动已生效。',
|
|
1812
|
+
failed: '发布失败。',
|
|
1813
|
+
publishedWithFindings: '已发布,但运行时探针发现问题:{{detail}}',
|
|
1814
|
+
},
|
|
1519
1815
|
usage: {
|
|
1520
1816
|
title: 'AI 用量',
|
|
1521
1817
|
meterBuild: 'AI 搭建',
|
|
@@ -1525,9 +1821,16 @@ const zh = {
|
|
|
1525
1821
|
statusFull: '额度已用完',
|
|
1526
1822
|
resetsDaily: '今晚重置',
|
|
1527
1823
|
resetsMonthly: '下个周期重置',
|
|
1824
|
+
resetsWeeklyDays: '{{count}} 天后重置',
|
|
1825
|
+
resetsWeeklyDays_one: '{{count}} 天后重置',
|
|
1826
|
+
resetsWeeklyDays_other: '{{count}} 天后重置',
|
|
1827
|
+
resetsWeeklyHours: '{{count}} 小时后重置',
|
|
1828
|
+
resetsWeeklyHours_one: '{{count}} 小时后重置',
|
|
1829
|
+
resetsWeeklyHours_other: '{{count}} 小时后重置',
|
|
1528
1830
|
ctaUpgrade: '升级以继续使用',
|
|
1529
1831
|
ctaTopUp: '购买额度包以继续',
|
|
1530
1832
|
ariaLabel: 'AI 用量:{{status}}',
|
|
1833
|
+
breakdownTitle: '已用额度构成',
|
|
1531
1834
|
},
|
|
1532
1835
|
workspaceTitle: 'AI 工作区',
|
|
1533
1836
|
workspaceSubtitle: '提问、查看并继续历史对话',
|
|
@@ -1537,6 +1840,31 @@ const zh = {
|
|
|
1537
1840
|
share: '分享',
|
|
1538
1841
|
shareTitle: '分享此对话',
|
|
1539
1842
|
shareDisabledTitle: '开始对话后即可分享',
|
|
1843
|
+
buildDoctor: '构建诊断',
|
|
1844
|
+
buildDoctorTitle: '构建诊断 — 实际生效了哪些变更?',
|
|
1845
|
+
buildDoctorDisabledTitle: '请先发送一条消息',
|
|
1846
|
+
buildDoctorDrawer: {
|
|
1847
|
+
description: '智能体声称的变更与实际已生效的内容对照。只读诊断。',
|
|
1848
|
+
reconciling: '正在核对…',
|
|
1849
|
+
notAvailable: '不可用——未找到该对话,或你没有访问权限。',
|
|
1850
|
+
untitled: '(无标题)',
|
|
1851
|
+
summary: '{{turns}} 轮 · {{messages}} 条消息 · {{tokens}} tok · LLM {{seconds}} 秒',
|
|
1852
|
+
allLive: '全部 {{count}} 项尝试的变更均已生效——没有丢失。',
|
|
1853
|
+
discrepancies: '{{count}} 处不一致——对话中所说的与实际生效的内容不符。',
|
|
1854
|
+
orphanedTitle: '已提议但从未应用',
|
|
1855
|
+
orphanedHint: '智能体提议了确认卡片,但之后没有任何一轮应用它——该变更被静默丢弃。',
|
|
1856
|
+
missingTitle: '声称已应用但缺失',
|
|
1857
|
+
missingHint: '工具结果称已应用,但该产物并未在 sys_metadata 中生效。',
|
|
1858
|
+
toolErrorsTitle: '工具错误',
|
|
1859
|
+
toolErrorsHint: '构建期间返回错误的工具调用。',
|
|
1860
|
+
verifyTitle: '构建检查(verify_build)',
|
|
1861
|
+
yourApp: '你的应用:',
|
|
1862
|
+
noIssues: '0 个问题',
|
|
1863
|
+
issueCount: '{{count}} 个问题',
|
|
1864
|
+
platformNoise: '已隐藏 {{count}} 条平台 sys_* 发现',
|
|
1865
|
+
pendingActions: '待处理操作',
|
|
1866
|
+
timeline: '时间线({{count}})',
|
|
1867
|
+
},
|
|
1540
1868
|
newChat: '新对话',
|
|
1541
1869
|
searchChats: '搜索对话…',
|
|
1542
1870
|
noChatsYet: '暂无对话',
|
|
@@ -1566,7 +1894,7 @@ const zh = {
|
|
|
1566
1894
|
empty: {
|
|
1567
1895
|
build: {
|
|
1568
1896
|
title: '用 AI 搭建',
|
|
1569
|
-
description: '
|
|
1897
|
+
description: '用自然语言描述一个应用 —— 我会起草对象、界面和示例数据,随后你审阅并发布。',
|
|
1570
1898
|
},
|
|
1571
1899
|
ask: {
|
|
1572
1900
|
title: '向你的数据提问',
|
|
@@ -1575,7 +1903,7 @@ const zh = {
|
|
|
1575
1903
|
editApp: {
|
|
1576
1904
|
title: '正在编辑「{{app}}」',
|
|
1577
1905
|
titleGeneric: '编辑此应用',
|
|
1578
|
-
description: '想改点什么?我会就地修改这个应用 ——
|
|
1906
|
+
description: '想改点什么?我会就地修改这个应用 —— 加字段、对象、视图或仪表盘,或调整已有内容。',
|
|
1579
1907
|
},
|
|
1580
1908
|
},
|
|
1581
1909
|
clearConversation: '清空',
|
|
@@ -1626,6 +1954,11 @@ const zh = {
|
|
|
1626
1954
|
changesConfirmed: '已确认',
|
|
1627
1955
|
changesConfirm: '确认修改',
|
|
1628
1956
|
changesConfirmHint: '回复以确认或调整该改动。',
|
|
1957
|
+
changesApplying: '应用中…',
|
|
1958
|
+
changesApplied: '已生效',
|
|
1959
|
+
changesDrafted: '已暂存为草稿',
|
|
1960
|
+
changesFailed: '未生效',
|
|
1961
|
+
discussing: '正在讨论:{{target}}',
|
|
1629
1962
|
changesConfirmMessage: '确认修改,应用你刚才提议的改动。',
|
|
1630
1963
|
changeVerb: {
|
|
1631
1964
|
createObject: '新建对象',
|
|
@@ -1654,23 +1987,41 @@ const zh = {
|
|
|
1654
1987
|
recentRecords: '帮我列出最近创建的 5 条记录。',
|
|
1655
1988
|
recordCounts: '统计每个对象的记录数。',
|
|
1656
1989
|
},
|
|
1990
|
+
// cloud#1984 — these five chips are the maker's own recommendations, so
|
|
1991
|
+
// they may only ask for what ADR-0112 v1 BUILDS: objects, fields, views
|
|
1992
|
+
// (grid/kanban/calendar/gallery), pages, dashboards and sample data. No
|
|
1993
|
+
// wording that promises autonomous behaviour (alert / remind / notify /
|
|
1994
|
+
// automate / status workflow) — v1 has no flows, actions or schedules, and
|
|
1995
|
+
// the model silently degrades such a request into a board or a filtered
|
|
1996
|
+
// view, so the chip would promise an alert and deliver a page. REVERT to
|
|
1997
|
+
// the automation wording when ADR-0112 v2 re-adds flows and actions.
|
|
1657
1998
|
metadataAssistant: {
|
|
1658
|
-
buildCrm: '帮我搭建一个 CRM
|
|
1659
|
-
buildApp: '
|
|
1660
|
-
buildFlow: '
|
|
1661
|
-
buildInventory: '
|
|
1662
|
-
buildRecruiting: '
|
|
1999
|
+
buildCrm: '帮我搭建一个 CRM:客户、联系人、商机,以及一个按阶段汇总商机金额的仪表盘。',
|
|
2000
|
+
buildApp: '做一个项目管理应用:项目、任务(负责人、截止日期),按状态分组的看板,以及按截止日期的日历视图。',
|
|
2001
|
+
buildFlow: '设计一个工单系统:工单、优先级、状态(下拉),以及按状态分组的看板。',
|
|
2002
|
+
buildInventory: '做一个库存管理应用:商品、库存量、供应商,并用一个视图筛出低于安全库存的商品。',
|
|
2003
|
+
buildRecruiting: '做一个招聘跟踪应用:候选人、在招岗位、面试阶段字段,以及按阶段分组的看板。',
|
|
1663
2004
|
},
|
|
1664
2005
|
generic: {
|
|
1665
2006
|
help: '你可以帮我做什么?',
|
|
1666
2007
|
availableObjects: '列出可用的数据对象。',
|
|
1667
2008
|
recentActivity: '总结我的最近动态。',
|
|
1668
2009
|
},
|
|
2010
|
+
// objectui#7709 — the edit-mode starters, shown when the maker is bound
|
|
2011
|
+
// to an EXISTING app (`?package=`). Same rule as the five above: they
|
|
2012
|
+
// may only ask for what ADR-0112 v1 BUILDS. The fourth chip used to be
|
|
2013
|
+
// `addAutomation` ("an approval, a status flow, or a notification") and
|
|
2014
|
+
// every capability it named is refused by v1 (cloud#1956 / PR #1970), so
|
|
2015
|
+
// it now asks for sample data — `seed` IS on v1's whitelist, and having
|
|
2016
|
+
// no data is what an existing app most often lacks. REVERT: when
|
|
2017
|
+
// ADR-0112 v2 re-adds flows and actions, THIS chip's automation wording
|
|
2018
|
+
// comes back as `addAutomation`; the retired string is pinned for every
|
|
2019
|
+
// pack in `packages/i18n/src/__tests__/makerEditChips-v1-scope-7709.test.ts`.
|
|
1669
2020
|
editApp: {
|
|
1670
2021
|
addField: '给某个对象加一个字段。',
|
|
1671
2022
|
addObject: '新增一个对象,并关联到已有对象。',
|
|
1672
2023
|
addDashboard: '加一个展示关键指标的仪表盘。',
|
|
1673
|
-
|
|
2024
|
+
addSampleData: '给现有对象补一批贴近真实的示例数据,好拿去演示。',
|
|
1674
2025
|
},
|
|
1675
2026
|
},
|
|
1676
2027
|
// objectui#3546 slice four — the AI console surfaces: the /ai chat page's app switcher,
|
|
@@ -1725,6 +2076,21 @@ const zh = {
|
|
|
1725
2076
|
older: '更早',
|
|
1726
2077
|
},
|
|
1727
2078
|
},
|
|
2079
|
+
// objectui#9954 — see the `en` pack for what raises each case.
|
|
2080
|
+
readRate: {
|
|
2081
|
+
ratioTitle: '本环境读取量异常',
|
|
2082
|
+
ratio: '每写入 1 行就读取 {{ratio}} 行。平台会标记高于 {{threshold}} 的比率。没有任何东西被限制或阻断;这只是一份报告,便于检查读取方式。',
|
|
2083
|
+
noWritesTitle: '本环境只有读取、完全没有写入',
|
|
2084
|
+
noWrites: '有行被读取,却完全没有任何写入,因此读取比率没有上限。这是最严重的读数。平台会标记高于 {{threshold}} 的比率。没有任何东西被限制或阻断;这只是一份报告,便于检查读取方式。',
|
|
2085
|
+
},
|
|
2086
|
+
// objectui#10439 — see the `en` pack for what raises each case.
|
|
2087
|
+
storageUsage: {
|
|
2088
|
+
warningTitle: '存储空间即将用满',
|
|
2089
|
+
warning: '已用 {{used}} MB / {{limit}} MB。存储用满后,上传与导入将暂停。',
|
|
2090
|
+
blockedTitle: '存储已满,上传与导入已暂停',
|
|
2091
|
+
blocked: '已用 {{used}} MB / {{limit}} MB。现有数据不受影响,读取、导出与单条记录编辑照常。',
|
|
2092
|
+
upgrade: '升级以继续',
|
|
2093
|
+
},
|
|
1728
2094
|
errors: {
|
|
1729
2095
|
somethingWentWrong: '出错了',
|
|
1730
2096
|
unexpectedError: '渲染此视图时发生意外错误。',
|
|
@@ -1774,6 +2140,7 @@ const zh = {
|
|
|
1774
2140
|
objectView: {
|
|
1775
2141
|
systemViewReadonly: '系统视图由代码定义,只读。',
|
|
1776
2142
|
cannotEditMetaView: '该视图为内置视图,由代码定义,无法修改。',
|
|
2143
|
+
viewConfigPermissionDenied: '视图配置对所有使用该视图的用户生效,因此修改它需要「管理元数据」权限。请联系管理员进行修改。',
|
|
1777
2144
|
cannotDeleteMetaView: '该视图为内置视图,由代码定义,无法删除。',
|
|
1778
2145
|
expandToPage: '以完整页面打开',
|
|
1779
2146
|
objectNotFound: '未找到对象',
|
|
@@ -1782,64 +2149,21 @@ const zh = {
|
|
|
1782
2149
|
filterOrNotSavable: '该筛选条件之间使用「或」,保存到视图暂不支持这种结构。它仍会作用于当前列表 —— 取消「或」分组后才能保存到视图。',
|
|
1783
2150
|
filterNestedNotSavable: '该筛选使用了嵌套条件分组,保存到视图不支持这种结构。请改为单层条件列表后再保存到视图。',
|
|
1784
2151
|
allRecords: '所有记录',
|
|
1785
|
-
exitDesignMode: '退出设计模式',
|
|
1786
|
-
enterDesignMode: '进入设计模式',
|
|
1787
|
-
metadataInspector: '元数据检查器',
|
|
1788
|
-
editView: '编辑视图',
|
|
1789
|
-
addView: '添加视图',
|
|
1790
|
-
designTools: '设计工具',
|
|
1791
2152
|
new: '新建',
|
|
1792
2153
|
import: '导入',
|
|
1793
2154
|
importTitle: '从 CSV 文件导入',
|
|
1794
2155
|
importedToast: '成功导入 {{count}} 行。',
|
|
2156
|
+
importedToast_one: '成功导入 {{count}} 行。',
|
|
2157
|
+
importedToast_other: '成功导入 {{count}} 行。',
|
|
1795
2158
|
importedWithSkipped: '已导入 {{ok}} 行;跳过 {{skipped}} 行。',
|
|
1796
2159
|
configureView: '配置视图',
|
|
1797
|
-
closePanel: '关闭面板',
|
|
1798
|
-
showAdvancedSettings: '显示高级设置',
|
|
1799
|
-
showFewerSettings: '显示精简设置',
|
|
1800
|
-
page: '页面',
|
|
1801
|
-
pageConfigHint: '工具栏、导航与视图外壳设置',
|
|
1802
|
-
listConfigHint: '此列表类型的数据渲染、列与外观',
|
|
1803
|
-
general: '常规',
|
|
1804
|
-
generalHint: '视图标题、描述和类型',
|
|
1805
|
-
toolbar: '工具栏',
|
|
1806
|
-
toolbarHint: '搜索、筛选、排序、分组和密度切换',
|
|
1807
2160
|
toolbarEnabledCount: '已启用 {{count}}/{{total}} 项',
|
|
1808
|
-
navigationSection: '导航',
|
|
1809
|
-
navigationHint: '行点击行为和详情视图设置',
|
|
1810
|
-
records: '记录',
|
|
1811
|
-
recordsHint: '选择模式、添加记录和内联编辑',
|
|
1812
|
-
exportPrint: '导出与打印',
|
|
1813
|
-
exportPrintHint: '导出格式、打印和记录数显示',
|
|
1814
|
-
showAllFields: '全部显示',
|
|
1815
|
-
hideAllFields: '全部隐藏',
|
|
1816
2161
|
searchFields: '搜索字段…',
|
|
1817
2162
|
title: '标题',
|
|
1818
|
-
description: '描述',
|
|
1819
|
-
data: '数据',
|
|
1820
|
-
source: '数据源',
|
|
1821
|
-
columns: '列',
|
|
1822
|
-
filterBy: '筛选条件',
|
|
1823
|
-
sortBy: '排序条件',
|
|
1824
|
-
appearance: '外观',
|
|
1825
|
-
showDescription: '显示描述',
|
|
1826
2163
|
viewType: '视图类型',
|
|
1827
|
-
userFilters: '用户筛选器',
|
|
1828
|
-
enableSearch: '启用搜索',
|
|
1829
|
-
enableFilter: '启用筛选',
|
|
1830
|
-
enableSort: '启用排序',
|
|
1831
|
-
enableHideFields: '启用隐藏字段',
|
|
1832
|
-
enableGroup: '启用分组',
|
|
1833
|
-
enableColor: '启用颜色',
|
|
1834
|
-
enableDensity: '启用密度',
|
|
1835
|
-
userActions: '用户操作',
|
|
1836
|
-
addRecordViaForm: '通过表单添加记录',
|
|
1837
|
-
advanced: '高级',
|
|
1838
|
-
allowExport: '允许导出',
|
|
1839
2164
|
recordCount: '{{count}} 条记录',
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
columnsConfigured: '{{count}} 列',
|
|
2165
|
+
recordCount_one: '{{count}} 条记录',
|
|
2166
|
+
recordCount_other: '{{count}} 条记录',
|
|
1843
2167
|
save: '保存',
|
|
1844
2168
|
discard: '丢弃',
|
|
1845
2169
|
createView: '创建视图',
|
|
@@ -1850,6 +2174,8 @@ const zh = {
|
|
|
1850
2174
|
deleteViewTitle: '删除视图',
|
|
1851
2175
|
deleteViewConfirm: '确定要删除视图 "{{name}}" 吗?此操作无法撤销。',
|
|
1852
2176
|
bulkDeleteConfirm: '确定要删除选中的 {{count}} 条记录吗?此操作无法撤销。',
|
|
2177
|
+
bulkDeleteConfirm_one: '确定要删除选中的 {{count}} 条记录吗?此操作无法撤销。',
|
|
2178
|
+
bulkDeleteConfirm_other: '确定要删除选中的 {{count}} 条记录吗?此操作无法撤销。',
|
|
1853
2179
|
duplicateViewName: '已存在同名视图。',
|
|
1854
2180
|
viewTypeGrid: '表格',
|
|
1855
2181
|
viewTypeGridDesc: '电子表格风格的记录表格。',
|
|
@@ -1876,7 +2202,6 @@ const zh = {
|
|
|
1876
2202
|
viewNameHelp: '机器标识(snake_case),根据标题自动生成,可自行修改。',
|
|
1877
2203
|
viewNameRequired: '请输入标识(小写字母、数字、下划线)。非拉丁标题不会自动生成。',
|
|
1878
2204
|
viewNameInvalid: '仅限小写字母、数字和下划线,且以字母或下划线开头。',
|
|
1879
|
-
typeOptions: '类型选项',
|
|
1880
2205
|
groupByField: '分组字段',
|
|
1881
2206
|
groupByFieldHelp: '看板会按该字段的不同取值分列。',
|
|
1882
2207
|
startDateField: '开始日期字段',
|
|
@@ -1891,7 +2216,6 @@ const zh = {
|
|
|
1891
2216
|
longitudeFieldHelp: '提供经度坐标的字段(仅地理坐标字段可选)。',
|
|
1892
2217
|
imageField: '图片字段',
|
|
1893
2218
|
imageFieldHelp: '画廊封面来自该图片或附件字段。',
|
|
1894
|
-
dateField: '日期字段',
|
|
1895
2219
|
selectField: '选择字段…',
|
|
1896
2220
|
selectOption: '选择…',
|
|
1897
2221
|
noEligibleFieldForType: '没有符合条件的字段。请先在对象上添加该类型字段。',
|
|
@@ -1904,86 +2228,18 @@ const zh = {
|
|
|
1904
2228
|
chartTypePie: '饼图',
|
|
1905
2229
|
chartTypeArea: '面积图',
|
|
1906
2230
|
chartTypeScatter: '散点图',
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
fieldsVisible: '{{count}} 个可见',
|
|
1916
|
-
sortsCount: '{{count}} 个排序',
|
|
1917
|
-
filtersCount: '{{count}} 个筛选',
|
|
2231
|
+
dataset: '数据集',
|
|
2232
|
+
datasetHelp: '图表从该对象的这个数据集读取数值。',
|
|
2233
|
+
chartMeasure: '度量',
|
|
2234
|
+
chartMeasureHelp: '在数值轴上绘制的数据集度量。',
|
|
2235
|
+
chartDimension: '维度',
|
|
2236
|
+
chartDimensionHelp: '用于对数值分组的数据集维度(可选)。',
|
|
2237
|
+
viewTypeUnavailableDataset: '该对象没有可用于图表的数据集。',
|
|
2238
|
+
noDatasetMeasure: '该数据集未声明可绘制的度量。',
|
|
1918
2239
|
endDateField: '结束日期字段',
|
|
1919
|
-
color: '颜色',
|
|
1920
|
-
fieldTextColor: '字段文字颜色',
|
|
1921
|
-
rowHeight: '行高',
|
|
1922
|
-
wrapHeaders: '自动换行标题',
|
|
1923
|
-
showFieldDescriptions: '显示字段描述',
|
|
1924
|
-
collapseAllByDefault: '默认全部折叠',
|
|
1925
|
-
striped: '斑马纹行',
|
|
1926
|
-
bordered: '边框单元格',
|
|
1927
|
-
inlineEdit: '内联编辑记录',
|
|
1928
|
-
addDeleteRecordsInline: '内联添加/删除记录',
|
|
1929
|
-
clickIntoRecordDetails: '点击进入记录详情',
|
|
1930
|
-
navigationMode: '导航模式',
|
|
1931
|
-
navigationWidth: '导航宽度',
|
|
1932
|
-
navigationWidthHint: '适用于抽屉、弹窗和分屏导航模式',
|
|
1933
|
-
openNewTab: '在新标签页打开',
|
|
1934
|
-
openNewTabHint: '适用于页面和新窗口导航模式',
|
|
1935
|
-
selectionMode: '选择模式',
|
|
1936
|
-
selectionNone: '无',
|
|
1937
|
-
selectionSingle: '单选',
|
|
1938
|
-
selectionMultiple: '多选',
|
|
1939
|
-
pageSize: '每页记录数',
|
|
1940
|
-
pageSizeOptions: '每页选项',
|
|
1941
|
-
exportFormats: '导出格式',
|
|
1942
|
-
exportMaxRecords: '最大记录数',
|
|
1943
|
-
exportIncludeHeaders: '包含表头',
|
|
1944
|
-
exportFileNamePrefix: '文件名前缀',
|
|
1945
|
-
searchableFields: '可搜索字段',
|
|
1946
|
-
filterableFields: '可筛选字段',
|
|
1947
|
-
resizableColumns: '可调整列宽',
|
|
1948
|
-
densityCompact: '紧凑',
|
|
1949
|
-
densityComfortable: '舒适',
|
|
1950
|
-
densitySpacious: '宽松',
|
|
1951
|
-
densityMode: '密度模式',
|
|
1952
|
-
hiddenFields: '隐藏字段',
|
|
1953
|
-
rowActions: '行操作',
|
|
1954
|
-
bulkActions: '批量操作',
|
|
1955
|
-
sharing: '共享',
|
|
1956
|
-
sharingEnabled: '启用共享',
|
|
1957
|
-
sharingVisibility: '可见性',
|
|
1958
|
-
addRecordEnabled: '启用添加记录',
|
|
1959
|
-
addRecordPosition: '位置',
|
|
1960
|
-
addRecordMode: '模式',
|
|
1961
|
-
addRecordFormView: '表单视图',
|
|
1962
|
-
conditionalFormatting: '条件格式',
|
|
1963
|
-
addRule: '添加规则',
|
|
1964
|
-
quickFilters: '快速筛选',
|
|
1965
|
-
addQuickFilter: '添加快速筛选',
|
|
1966
|
-
ufElements: '元素类型',
|
|
1967
|
-
ufDropdown: '下拉菜单',
|
|
1968
2240
|
ufTabs: '标签页',
|
|
1969
|
-
ufToggle: '开关',
|
|
1970
2241
|
ufAddField: '+ 添加筛选字段…',
|
|
1971
|
-
ufNoFields: '无可用字段',
|
|
1972
|
-
ufAddTab: '+ 添加标签页',
|
|
1973
|
-
ufTabLabel: '标签',
|
|
1974
2242
|
ufShowAllRecords: '显示"全部记录"标签页',
|
|
1975
|
-
ufAllowAddTab: '允许添加标签页',
|
|
1976
|
-
showRecordCount: '显示记录计数',
|
|
1977
|
-
allowPrinting: '允许打印',
|
|
1978
|
-
virtualScroll: '虚拟滚动',
|
|
1979
|
-
emptyStateTitle: '空状态标题',
|
|
1980
|
-
emptyStateMessage: '空状态消息',
|
|
1981
|
-
emptyStateIcon: '空状态图标',
|
|
1982
|
-
ariaLabel: 'ARIA 标签',
|
|
1983
|
-
ariaDescribedBy: 'ARIA 描述',
|
|
1984
|
-
ariaLive: 'ARIA 实时区域',
|
|
1985
|
-
accessibility: '无障碍',
|
|
1986
|
-
viewTabs: '视图标签',
|
|
1987
2243
|
},
|
|
1988
2244
|
localeSwitcher: {
|
|
1989
2245
|
label: '语言',
|
|
@@ -2026,6 +2282,8 @@ const zh = {
|
|
|
2026
2282
|
resendOtpCountdownText: '{seconds} 秒后可重新发送',
|
|
2027
2283
|
usePhoneOtpText: '使用验证码登录',
|
|
2028
2284
|
usePasswordSignInText: '改用密码登录',
|
|
2285
|
+
socialButton: '使用 {provider} 继续',
|
|
2286
|
+
orText: '或使用邮箱继续',
|
|
2029
2287
|
},
|
|
2030
2288
|
register: {
|
|
2031
2289
|
title: '创建账户',
|
|
@@ -2044,8 +2302,12 @@ const zh = {
|
|
|
2044
2302
|
submittingButton: '创建中…',
|
|
2045
2303
|
hasAccountText: '已有账户?',
|
|
2046
2304
|
signInText: '登录',
|
|
2305
|
+
socialButton: '使用 {provider} 注册',
|
|
2306
|
+
orText: '或使用邮箱继续',
|
|
2047
2307
|
errors: {
|
|
2048
2308
|
userExists: '该邮箱已被注册,请直接登录或更换邮箱。',
|
|
2309
|
+
selfRegistrationClosed: '本环境未开放自助注册,请联系管理员获取邀请。',
|
|
2310
|
+
emailDomainNotAllowed: '该邮箱的域名不允许在此注册,请使用组织邮箱,或联系管理员获取邀请。',
|
|
2049
2311
|
},
|
|
2050
2312
|
verifyInbox: {
|
|
2051
2313
|
title: '请检查您的邮箱',
|
|
@@ -2064,7 +2326,7 @@ const zh = {
|
|
|
2064
2326
|
submitButton: '发送重置链接',
|
|
2065
2327
|
submittingButton: '发送中…',
|
|
2066
2328
|
successTitle: '请查看您的邮箱',
|
|
2067
|
-
successDescription: '我们已将密码重置链接发送至 {
|
|
2329
|
+
successDescription: '我们已将密码重置链接发送至 {email},请检查您的收件箱。',
|
|
2068
2330
|
backToSignInText: '返回登录',
|
|
2069
2331
|
rememberPasswordText: '记住密码了?',
|
|
2070
2332
|
signInText: '登录',
|
|
@@ -2258,6 +2520,15 @@ const zh = {
|
|
|
2258
2520
|
role: '角色',
|
|
2259
2521
|
save: '保存更改',
|
|
2260
2522
|
},
|
|
2523
|
+
language: {
|
|
2524
|
+
title: '语言',
|
|
2525
|
+
description: '发送给您的通知和消息所使用的语言。界面语言另行设置,在地球图标菜单中切换。',
|
|
2526
|
+
label: '首选语言',
|
|
2527
|
+
systemDefault: '使用部署默认值',
|
|
2528
|
+
save: '保存',
|
|
2529
|
+
saved: '语言偏好已更新。',
|
|
2530
|
+
readOnly: '您账户的语言由管理员管理。',
|
|
2531
|
+
},
|
|
2261
2532
|
password: {
|
|
2262
2533
|
changeTitle: '修改密码',
|
|
2263
2534
|
setTitle: '设置本地密码',
|
|
@@ -2289,7 +2560,6 @@ const zh = {
|
|
|
2289
2560
|
label: '工作区',
|
|
2290
2561
|
default: '我的工作区',
|
|
2291
2562
|
switch: '切换工作区',
|
|
2292
|
-
create: '创建工作区',
|
|
2293
2563
|
createTitle: '创建工作区',
|
|
2294
2564
|
createDescription: '工作区是团队协作的共享空间。',
|
|
2295
2565
|
createButton: '创建工作区',
|
|
@@ -2312,7 +2582,6 @@ const zh = {
|
|
|
2312
2582
|
},
|
|
2313
2583
|
sidebar: {
|
|
2314
2584
|
settings: '设置',
|
|
2315
|
-
help: '帮助',
|
|
2316
2585
|
helpTooltip: '帮助与文档',
|
|
2317
2586
|
activityFeed: '活动动态',
|
|
2318
2587
|
notifications: '通知',
|
|
@@ -2352,7 +2621,6 @@ const zh = {
|
|
|
2352
2621
|
},
|
|
2353
2622
|
home: {
|
|
2354
2623
|
title: '首页',
|
|
2355
|
-
subtitle: '您的工作区仪表盘',
|
|
2356
2624
|
nav: '首页',
|
|
2357
2625
|
allApps: '全部应用',
|
|
2358
2626
|
yourApps: '我的应用',
|
|
@@ -2371,20 +2639,15 @@ const zh = {
|
|
|
2371
2639
|
build: {
|
|
2372
2640
|
title: '构建应用',
|
|
2373
2641
|
subtitle: '从零开始 — 设计对象、表单、自动化与界面。',
|
|
2642
|
+
noCapability: '此工作区不提供构建应用功能 — 它需要「管理元数据」权限,而你的账号没有该权限。',
|
|
2374
2643
|
},
|
|
2375
2644
|
template: {
|
|
2376
2645
|
title: '从模板开始',
|
|
2377
2646
|
subtitle: '从应用市场安装模板应用并按需定制。',
|
|
2647
|
+
marketplaceDisabled: '本运行时未配置应用市场,因此这里没有可安装的模板。',
|
|
2378
2648
|
},
|
|
2379
2649
|
open: '打开',
|
|
2380
|
-
stats: {
|
|
2381
|
-
apps: '应用',
|
|
2382
|
-
starred: '收藏',
|
|
2383
|
-
recent: '最近访问',
|
|
2384
|
-
},
|
|
2385
2650
|
loading: '正在加载工作区…',
|
|
2386
|
-
recent: '最近使用',
|
|
2387
|
-
starred: '收藏',
|
|
2388
2651
|
welcome: '用 AI 搭建你的业务系统',
|
|
2389
2652
|
welcomeDescription: '用一句话描述你的业务,AI 帮你生成对象、界面、API 和 agent 工具。也可以手动从零开始。',
|
|
2390
2653
|
welcomeAdminDescription: '用一句话描述你的业务,AI 会为你生成对象、界面、API 和智能体工具;也可以从左侧菜单自行搭建。',
|
|
@@ -2401,6 +2664,8 @@ const zh = {
|
|
|
2401
2664
|
},
|
|
2402
2665
|
pendingDrafts: {
|
|
2403
2666
|
message: '你有 {{count}} 项未发布的更改 —— 点击发布即可生效。',
|
|
2667
|
+
message_one: '你有 {{count}} 项未发布的更改 —— 点击发布即可生效。',
|
|
2668
|
+
message_other: '你有 {{count}} 项未发布的更改 —— 点击发布即可生效。',
|
|
2404
2669
|
cta: '发布',
|
|
2405
2670
|
publishing: '发布中…',
|
|
2406
2671
|
published: '已发布!更改已生效。',
|
|
@@ -2418,8 +2683,6 @@ const zh = {
|
|
|
2418
2683
|
browseMarketplace: '浏览应用市场',
|
|
2419
2684
|
quickActions: {
|
|
2420
2685
|
title: '快捷操作',
|
|
2421
|
-
createApp: '创建应用',
|
|
2422
|
-
createAppDesc: '从新应用开始',
|
|
2423
2686
|
manageObjects: '管理对象',
|
|
2424
2687
|
manageObjectsDesc: '配置数据模型',
|
|
2425
2688
|
systemSettings: '系统设置',
|
|
@@ -2431,7 +2694,9 @@ const zh = {
|
|
|
2431
2694
|
object: '对象',
|
|
2432
2695
|
dashboard: '仪表盘',
|
|
2433
2696
|
page: '页面',
|
|
2697
|
+
report: '报表',
|
|
2434
2698
|
record: '记录',
|
|
2699
|
+
metadata: '元数据',
|
|
2435
2700
|
},
|
|
2436
2701
|
},
|
|
2437
2702
|
starredApps: {
|
|
@@ -2468,7 +2733,6 @@ const zh = {
|
|
|
2468
2733
|
organizations: '组织',
|
|
2469
2734
|
roles: '角色',
|
|
2470
2735
|
configuration: '配置',
|
|
2471
|
-
createApp: '创建应用',
|
|
2472
2736
|
administration: '管理',
|
|
2473
2737
|
datasources: '数据源',
|
|
2474
2738
|
documentation: '文档',
|
|
@@ -2483,6 +2747,7 @@ const zh = {
|
|
|
2483
2747
|
typeUpdate: '更新',
|
|
2484
2748
|
typeDelete: '删除',
|
|
2485
2749
|
typeComment: '评论',
|
|
2750
|
+
typeSystem: '系统',
|
|
2486
2751
|
relativeJustNow: '刚刚',
|
|
2487
2752
|
relativeSecondsAgo: '{{count}} 秒前',
|
|
2488
2753
|
relativeMinutesAgo: '{{count}} 分钟前',
|
|
@@ -2503,8 +2768,11 @@ const zh = {
|
|
|
2503
2768
|
placeholder: '搜索对象、仪表板、页面、报表…',
|
|
2504
2769
|
inputAriaLabel: '搜索对象、仪表板、页面、报表',
|
|
2505
2770
|
resultsCount: '找到 {{count}} 条与“{{query}}”相关的结果',
|
|
2506
|
-
|
|
2771
|
+
resultsCount_one: '找到 {{count}} 条与“{{query}}”相关的结果',
|
|
2772
|
+
resultsCount_other: '找到 {{count}} 条与“{{query}}”相关的结果',
|
|
2507
2773
|
itemsAvailable: '共 {{count}} 项可搜索',
|
|
2774
|
+
itemsAvailable_one: '共 {{count}} 项可搜索',
|
|
2775
|
+
itemsAvailable_other: '共 {{count}} 项可搜索',
|
|
2508
2776
|
noResults: '未找到结果',
|
|
2509
2777
|
noResultsHint: '请尝试调整搜索关键字',
|
|
2510
2778
|
typeObjects: '对象',
|
|
@@ -2531,7 +2799,11 @@ const zh = {
|
|
|
2531
2799
|
noAppsConfigured: '尚未配置应用',
|
|
2532
2800
|
noAppsConfiguredDescription: '当前没有任何已注册的应用。请创建您的第一个应用,或前往系统设置进行配置。',
|
|
2533
2801
|
appNotAvailable: '应用不可用',
|
|
2534
|
-
appNotAvailableDescription: '
|
|
2802
|
+
appNotAvailableDescription: '此应用不可用 —— 请稍后重试。',
|
|
2803
|
+
appNotFound: '无法打开此应用',
|
|
2804
|
+
appNotFoundDescription: '服务器未返回你的账号可访问的此应用。',
|
|
2805
|
+
appUnreachable: '无法连接到服务器',
|
|
2806
|
+
appUnreachableDescription: '无法检查此应用。请稍后重试。',
|
|
2535
2807
|
appAccessDenied: '你没有访问此应用的权限',
|
|
2536
2808
|
appAccessDeniedDescription: '此应用存在,但你的账号未获授权打开它。请联系管理员为你开通访问权限。',
|
|
2537
2809
|
appAccessDeniedHome: '返回首页',
|
|
@@ -2574,7 +2846,16 @@ const zh = {
|
|
|
2574
2846
|
detailNone: '未检测到差异 —— 草稿与已发布版本一致。',
|
|
2575
2847
|
detailChangedKeys: '其他变更:',
|
|
2576
2848
|
confirmNote: '发布将一次性(原子地)发布此包全部 {{count}} 个待发布草稿。',
|
|
2849
|
+
confirmNote_one: '发布将一次性(原子地)发布此包全部 {{count}} 个待发布草稿。',
|
|
2850
|
+
confirmNote_other: '发布将一次性(原子地)发布此包全部 {{count}} 个待发布草稿。',
|
|
2577
2851
|
publishConfirm: '全部发布',
|
|
2852
|
+
// [`7a90afdf9`] Pre-publish security-posture findings, shown next to
|
|
2853
|
+
// the confirm button so a refusal the door would issue is read BEFORE
|
|
2854
|
+
// the click rather than as a toast after the batch rolled back.
|
|
2855
|
+
securityBlockTitle: '发布会被拒绝 —— 有 {{count}} 项需要先做出决定',
|
|
2856
|
+
securityBlockTitle_one: '发布会被拒绝 —— 有 {{count}} 项需要先做出决定',
|
|
2857
|
+
securityBlockTitle_other: '发布会被拒绝 —— 有 {{count}} 项需要先做出决定',
|
|
2858
|
+
securityBlockWhere: '请在对象的“设置 → 记录共享模型”中修改后重新发布。',
|
|
2578
2859
|
},
|
|
2579
2860
|
// ADR-0045 — the materialized-but-unlisted app banner
|
|
2580
2861
|
// (UnpublishedAppBar.tsx), sibling of draftBar above.
|
|
@@ -2598,28 +2879,13 @@ const zh = {
|
|
|
2598
2879
|
revertLabel: '已撤销一处变更',
|
|
2599
2880
|
applyLabel: '构建变更',
|
|
2600
2881
|
revert: '撤销',
|
|
2601
|
-
items: '项',
|
|
2882
|
+
items: '{{count}} 项',
|
|
2602
2883
|
revertAction: '撤销',
|
|
2603
2884
|
reverted: '已撤销 —— 该变更已还原。',
|
|
2604
2885
|
revertFailed: '撤销失败',
|
|
2605
2886
|
revertUnavailable: '提交存储暂时不可达 —— 此次撤销可能尚未生效。请重新打开历史记录确认后再重试。',
|
|
2606
2887
|
},
|
|
2607
2888
|
},
|
|
2608
|
-
renderer: {
|
|
2609
|
-
noPageSchema: '未提供页面 schema',
|
|
2610
|
-
noFormSchema: '未提供表单 schema',
|
|
2611
|
-
noDashboardSchema: '未提供仪表板 schema',
|
|
2612
|
-
pageRendering: '页面渲染中:{{name}}',
|
|
2613
|
-
dashboardRendering: '仪表板渲染中:{{name}}',
|
|
2614
|
-
formRenderingMode: '正在以 {{mode}} 模式渲染表单',
|
|
2615
|
-
formRenderingFor: '记录 {{id}}',
|
|
2616
|
-
createRecord: '新建记录',
|
|
2617
|
-
editRecord: '编辑记录',
|
|
2618
|
-
page: '页面',
|
|
2619
|
-
dashboard: '仪表板',
|
|
2620
|
-
save: '保存',
|
|
2621
|
-
cancel: '取消',
|
|
2622
|
-
},
|
|
2623
2889
|
actionDialog: {
|
|
2624
2890
|
title: '操作参数',
|
|
2625
2891
|
description: '请填写以下信息以继续操作。',
|
|
@@ -2627,22 +2893,17 @@ const zh = {
|
|
|
2627
2893
|
requiredError: '{{label}} 为必填项',
|
|
2628
2894
|
lookupPlaceholder: '{{label}} 的记录 ID',
|
|
2629
2895
|
lookupHelpText: '该参数未配置引用对象,无法使用记录选择器。请直接填写记录 ID,或联系管理员修正该动作参数。',
|
|
2896
|
+
unresolvedParam: '无法显示该参数:它所依据的字段不在对象元数据中,因此无法构建它所需的控件。请联系管理员修正该动作定义。',
|
|
2897
|
+
carryOverHint: '原样带入(只读)',
|
|
2630
2898
|
cancel: '取消',
|
|
2631
2899
|
confirm: '确认',
|
|
2632
2900
|
uploading: '上传中…',
|
|
2633
|
-
defaultActionTitle: '操作',
|
|
2634
|
-
ok: '确定',
|
|
2635
2901
|
},
|
|
2636
2902
|
actionConfirm: {
|
|
2637
2903
|
title: '确认操作',
|
|
2638
2904
|
confirm: '继续',
|
|
2639
2905
|
cancel: '取消',
|
|
2640
2906
|
},
|
|
2641
|
-
rowAction: {
|
|
2642
|
-
openMenu: '更多操作',
|
|
2643
|
-
edit: '编辑',
|
|
2644
|
-
delete: '删除',
|
|
2645
|
-
},
|
|
2646
2907
|
navigationSync: {
|
|
2647
2908
|
addedPage: '导航已更新:已添加页面 “{{name}}”',
|
|
2648
2909
|
addedDashboard: '导航已更新:已添加仪表板 “{{name}}”',
|
|
@@ -2663,6 +2924,8 @@ const zh = {
|
|
|
2663
2924
|
resetPackageSetConfirm: '该权限集随已安装的软件包发布,无法删除。删除操作将丢弃环境定制并把它重置为发布基线。是否继续?',
|
|
2664
2925
|
resetPackageSetSuccess: '权限集已重置为发布基线',
|
|
2665
2926
|
bulkDeleteSuccess: '已删除 {{count}} 条 {{label}} 记录',
|
|
2927
|
+
bulkDeleteSuccess_one: '已删除 {{count}} 条 {{label}} 记录',
|
|
2928
|
+
bulkDeleteSuccess_other: '已删除 {{count}} 条 {{label}} 记录',
|
|
2666
2929
|
bulkDeletePartial: '成功 {{succeeded}} 条,失败 {{failed}} 条',
|
|
2667
2930
|
},
|
|
2668
2931
|
objectViewActions: {
|
|
@@ -2674,15 +2937,6 @@ const zh = {
|
|
|
2674
2937
|
exportFailed: '导出失败:{{message}}',
|
|
2675
2938
|
forecastSoon: '预测视图即将上线',
|
|
2676
2939
|
},
|
|
2677
|
-
recordDetail: {
|
|
2678
|
-
viewersTooltip: '正在查看此记录的用户',
|
|
2679
|
-
},
|
|
2680
|
-
cellRender: {
|
|
2681
|
-
empty: '空',
|
|
2682
|
-
yes: '是',
|
|
2683
|
-
no: '否',
|
|
2684
|
-
systemFields: '系统字段',
|
|
2685
|
-
},
|
|
2686
2940
|
user: {
|
|
2687
2941
|
profile: '个人资料',
|
|
2688
2942
|
settings: '设置',
|
|
@@ -2832,6 +3086,9 @@ const zh = {
|
|
|
2832
3086
|
declined: '邀请已拒绝',
|
|
2833
3087
|
declineFailed: '拒绝邀请失败',
|
|
2834
3088
|
},
|
|
3089
|
+
current: {
|
|
3090
|
+
label: '当前组织',
|
|
3091
|
+
},
|
|
2835
3092
|
switcher: {
|
|
2836
3093
|
label: '切换组织',
|
|
2837
3094
|
groupLabel: '当前工作组织',
|
|
@@ -2849,15 +3106,30 @@ const zh = {
|
|
|
2849
3106
|
viewAll: '查看全部通知',
|
|
2850
3107
|
groupCount: '{{count}} 条通知',
|
|
2851
3108
|
groupUnread: '{{count}} 条未读',
|
|
3109
|
+
groupUnread_one: '{{count}} 条未读',
|
|
3110
|
+
groupUnread_other: '{{count}} 条未读',
|
|
2852
3111
|
groupMarkRead: '标记已读',
|
|
2853
3112
|
groupMarkReadTitle: '将此类通知全部标记为已读',
|
|
2854
3113
|
approvalsPending: '{{count}} 条待审批',
|
|
3114
|
+
approvalsPending_one: '{{count}} 条待审批',
|
|
3115
|
+
approvalsPending_other: '{{count}} 条待审批',
|
|
2855
3116
|
viewApprovals: '查看审批',
|
|
2856
3117
|
noPendingApprovals: '暂无待审批事项',
|
|
2857
3118
|
openApprovalsInbox: '打开审批中心',
|
|
2858
3119
|
badgeTotal: '共 {{total}} 项',
|
|
2859
3120
|
badgeNotifications: '{{unread}} 条通知',
|
|
2860
3121
|
badgeApprovals: '{{approvals}} 条待审批',
|
|
3122
|
+
arrivalMany: '{{count}} 条新消息',
|
|
3123
|
+
arrivalMany_one: '{{count}} 条新消息',
|
|
3124
|
+
arrivalMany_other: '{{count}} 条新消息',
|
|
3125
|
+
arrivalRepeats: '该主题有 {{count}} 条新消息',
|
|
3126
|
+
arrivalRepeats_one: '该主题有 {{count}} 条新消息',
|
|
3127
|
+
arrivalRepeats_other: '该主题有 {{count}} 条新消息',
|
|
3128
|
+
arrivalOpen: '查看',
|
|
3129
|
+
toastEnabled: '站内提醒',
|
|
3130
|
+
desktopEnabled: '桌面通知',
|
|
3131
|
+
desktopBlocked: '已被拦截。请在浏览器设置中允许本站发送通知。',
|
|
3132
|
+
desktopUnsupported: '当前浏览器不支持桌面通知。',
|
|
2861
3133
|
},
|
|
2862
3134
|
publicForm: {
|
|
2863
3135
|
submit: '提交',
|
|
@@ -2865,66 +3137,22 @@ const zh = {
|
|
|
2865
3137
|
submitAnother: '再填一份',
|
|
2866
3138
|
poweredBy: '由 ObjectStack 提供技术支持',
|
|
2867
3139
|
secureNotice: '您的信息将通过安全通道传输,仅用于回复您本次请求。',
|
|
2868
|
-
thankYouTitle: '
|
|
3140
|
+
thankYouTitle: '感谢您的提交!',
|
|
2869
3141
|
thankYouMessage: '我们已成功收到您的信息。',
|
|
2870
3142
|
redirecting: '将在 {{seconds}} 秒后跳转…',
|
|
3143
|
+
redirectPending: '正在跳转…',
|
|
2871
3144
|
unavailableTitle: '表单不可用',
|
|
2872
3145
|
unavailableDescription: '该链接当前没有可用的公开表单。请确认对应视图已启用匿名分享并匹配此 slug。',
|
|
2873
3146
|
tryDemo: '试用演示',
|
|
2874
3147
|
retry: '重试',
|
|
2875
3148
|
loading: '正在加载表单…',
|
|
2876
3149
|
requiredHint: '* 为必填项',
|
|
3150
|
+
requiredFields: '必填项:{{fields}}',
|
|
2877
3151
|
consentLabelDefault: '我已阅读并同意隐私政策,授权对本次请求所提供的信息进行处理。',
|
|
2878
3152
|
consentLink: '隐私政策',
|
|
2879
3153
|
consentRequired: '请先勾选同意隐私政策。',
|
|
2880
3154
|
rateLimited: '请再花点时间核对一下您的填写内容,再点击提交。',
|
|
2881
3155
|
redirectBlocked: '提交成功,但出于安全考虑,跳转链接已被阻止。',
|
|
2882
|
-
demo: {
|
|
2883
|
-
contactTitle: '联系我们',
|
|
2884
|
-
contactDescription: '告诉我们您的项目需求,销售代表将在一个工作日内与您联系。',
|
|
2885
|
-
supportTitle: '提交支持请求',
|
|
2886
|
-
supportDescription: '描述您遇到的问题,我们的团队会在一个工作日内回复。',
|
|
2887
|
-
thankYouSalesTitle: '已收到您的信息,感谢联系!',
|
|
2888
|
-
thankYouSalesMessage: '我们的销售代表将在一个工作日内与您取得联系。',
|
|
2889
|
-
thankYouSupportTitle: '您的请求已进入处理队列。',
|
|
2890
|
-
thankYouSupportMessage: '支持工程师将尽快跟进。如需补充截图,请保留此页面。',
|
|
2891
|
-
field: {
|
|
2892
|
-
firstName: '名字',
|
|
2893
|
-
lastName: '姓氏',
|
|
2894
|
-
email: '工作邮箱',
|
|
2895
|
-
phone: '电话',
|
|
2896
|
-
jobTitle: '职位',
|
|
2897
|
-
company: '公司',
|
|
2898
|
-
website: '官网',
|
|
2899
|
-
industry: '行业',
|
|
2900
|
-
companySize: '公司规模',
|
|
2901
|
-
howCanWeHelp: '我们可以为您做些什么?',
|
|
2902
|
-
subject: '主题',
|
|
2903
|
-
description: '问题描述',
|
|
2904
|
-
issueType: '问题类型',
|
|
2905
|
-
priority: '优先级',
|
|
2906
|
-
},
|
|
2907
|
-
industry: {
|
|
2908
|
-
technology: '科技',
|
|
2909
|
-
software: '软件 / SaaS',
|
|
2910
|
-
finance: '金融',
|
|
2911
|
-
healthcare: '医疗健康',
|
|
2912
|
-
retail: '零售',
|
|
2913
|
-
other: '其他',
|
|
2914
|
-
},
|
|
2915
|
-
issueType: {
|
|
2916
|
-
question: '咨询',
|
|
2917
|
-
problem: '问题',
|
|
2918
|
-
bug: '缺陷',
|
|
2919
|
-
feature_request: '功能建议',
|
|
2920
|
-
},
|
|
2921
|
-
priority: {
|
|
2922
|
-
low: '低',
|
|
2923
|
-
medium: '中',
|
|
2924
|
-
high: '高',
|
|
2925
|
-
critical: '紧急',
|
|
2926
|
-
},
|
|
2927
|
-
},
|
|
2928
3156
|
},
|
|
2929
3157
|
connectAgent: {
|
|
2930
3158
|
disabled: {
|
|
@@ -2970,6 +3198,8 @@ const zh = {
|
|
|
2970
3198
|
noImportableFields: '该对象没有可导入的字段。',
|
|
2971
3199
|
schemaReadFailed: '无法读取对象结构。',
|
|
2972
3200
|
imported: '已把 {{count}} 行真实数据导入「{{object}}」。',
|
|
3201
|
+
imported_one: '已把 {{count}} 行真实数据导入「{{object}}」。',
|
|
3202
|
+
imported_other: '已把 {{count}} 行真实数据导入「{{object}}」。',
|
|
2973
3203
|
importFrom: '把真实数据导入自',
|
|
2974
3204
|
into: '到',
|
|
2975
3205
|
opening: '打开中…',
|
|
@@ -2983,6 +3213,76 @@ const zh = {
|
|
|
2983
3213
|
openProduction: '打开生产环境',
|
|
2984
3214
|
manageEnvironments: '管理环境',
|
|
2985
3215
|
},
|
|
3216
|
+
cloudPlanStatus: {
|
|
3217
|
+
current: '当前套餐',
|
|
3218
|
+
},
|
|
3219
|
+
ai: {
|
|
3220
|
+
nlQuery: {
|
|
3221
|
+
placeholder: '就您的数据提问…',
|
|
3222
|
+
ask: '提问',
|
|
3223
|
+
results: '结果',
|
|
3224
|
+
match: '匹配度 {{percent}}',
|
|
3225
|
+
simulatedSummary: '查询结果:{{query}}',
|
|
3226
|
+
noResults: '未找到匹配的记录',
|
|
3227
|
+
recentQueries: '最近的查询',
|
|
3228
|
+
},
|
|
3229
|
+
formAssist: {
|
|
3230
|
+
title: 'AI 建议',
|
|
3231
|
+
suggestionCount: '{{count}} 条建议',
|
|
3232
|
+
suggestionCount_one: '{{count}} 条建议',
|
|
3233
|
+
suggestionCount_other: '{{count}} 条建议',
|
|
3234
|
+
applyAll: '全部应用',
|
|
3235
|
+
confidence: '置信度 {{percent}}',
|
|
3236
|
+
appliedCount: '已应用 {{count}} 条建议',
|
|
3237
|
+
appliedCount_one: '已应用 {{count}} 条建议',
|
|
3238
|
+
appliedCount_other: '已应用 {{count}} 条建议',
|
|
3239
|
+
},
|
|
3240
|
+
recommendations: {
|
|
3241
|
+
title: '推荐',
|
|
3242
|
+
generating: '正在生成推荐…',
|
|
3243
|
+
empty: '暂无推荐',
|
|
3244
|
+
},
|
|
3245
|
+
},
|
|
3246
|
+
aiApprovals: {
|
|
3247
|
+
title: 'AI 审批',
|
|
3248
|
+
description: 'AI 智能体提出的操作,需要人工审核后才会执行。',
|
|
3249
|
+
tabPending: '待审批',
|
|
3250
|
+
tabDecided: '已处理',
|
|
3251
|
+
tabAll: '全部',
|
|
3252
|
+
statusPending: '待审批',
|
|
3253
|
+
statusApproved: '已通过',
|
|
3254
|
+
statusExecuted: '已执行',
|
|
3255
|
+
statusFailed: '失败',
|
|
3256
|
+
statusRejected: '已拒绝',
|
|
3257
|
+
colTool: '工具',
|
|
3258
|
+
colAction: '动作',
|
|
3259
|
+
colObject: '对象',
|
|
3260
|
+
colStatus: '状态',
|
|
3261
|
+
colProposed: '提出时间',
|
|
3262
|
+
colDecision: '决定',
|
|
3263
|
+
emptyTitle: '暂无待处理操作',
|
|
3264
|
+
emptyDescription: '当 AI 提出敏感操作时,会显示在这里等待审核。',
|
|
3265
|
+
view: '查看',
|
|
3266
|
+
approve: '通过',
|
|
3267
|
+
reject: '拒绝',
|
|
3268
|
+
working: '处理中…',
|
|
3269
|
+
approveAndExecute: '通过并执行',
|
|
3270
|
+
outcomeApprove: '对 {{id}} 的通过操作:{{message}}',
|
|
3271
|
+
outcomeReject: '对 {{id}} 的拒绝操作:{{message}}',
|
|
3272
|
+
outcomeExecuteFailed: '操作执行失败',
|
|
3273
|
+
drawerFallbackTitle: '待处理操作',
|
|
3274
|
+
drawerSubtitle: '在 {{object}} 上执行工具 {{tool}}',
|
|
3275
|
+
fieldProposedBy: '提出者',
|
|
3276
|
+
fieldDecidedBy: '处理人',
|
|
3277
|
+
fieldConversation: '会话',
|
|
3278
|
+
fieldToolInput: '工具输入',
|
|
3279
|
+
fieldResult: '结果',
|
|
3280
|
+
fieldError: '错误',
|
|
3281
|
+
fieldRejectionReason: '拒绝原因',
|
|
3282
|
+
rejectTitle: '要拒绝此操作吗?',
|
|
3283
|
+
rejectBody: '该原因会回传给 AI,便于它调整下一步回复。',
|
|
3284
|
+
rejectPlaceholder: '可选原因(例如:“记录 ID 有误 — 请先与用户确认。”)',
|
|
3285
|
+
},
|
|
2986
3286
|
aiModelStatus: {
|
|
2987
3287
|
summary: '构建 / 提问使用 {{conversational}}({{conversationalSource}});结构化使用 {{structured}}({{structuredSource}})。',
|
|
2988
3288
|
summaryRouting: '路由策略:免费方案 → {{free}},付费方案 → {{paid}}。',
|
|
@@ -3000,6 +3300,111 @@ const zh = {
|
|
|
3000
3300
|
sourceInherits: '与 build/ask 相同',
|
|
3001
3301
|
sourcePinned: '被 {{source}} 钉住',
|
|
3002
3302
|
},
|
|
3303
|
+
// objectui#7254 — the AI copilot's tool cards. Three families, all of them
|
|
3304
|
+
// English-only until this landed while every other string on the same screen
|
|
3305
|
+
// was translated:
|
|
3306
|
+
//
|
|
3307
|
+
// `tool.*` — one entry per PLATFORM-PROVIDED tool name
|
|
3308
|
+
// (@objectstack/spec `PLATFORM_TOOLS_BY_PACKAGE`, the
|
|
3309
|
+
// closed registry those runtimes are conformance-tested
|
|
3310
|
+
// against). `humanizeToolName` looks each up as
|
|
3311
|
+
// `chatbot.tool.<tool_name>` and falls back to its English
|
|
3312
|
+
// title-caser for a custom / third-party tool, so a name
|
|
3313
|
+
// missing here is degraded, never broken. The `en` values
|
|
3314
|
+
// are deliberately EQUAL to what that title-caser produces:
|
|
3315
|
+
// adding the key must not silently reword the English UI.
|
|
3316
|
+
// `toolState.*` — the card-header badge + activity-chip vocabulary. ONE
|
|
3317
|
+
// set for both surfaces (they used to carry separate
|
|
3318
|
+
// tables and disagreed on casing).
|
|
3319
|
+
// `plan.*` — the "N objects · N views · N dashboards" strip. Plural
|
|
3320
|
+
// FAMILIES: one slot per CLDR category the pack's language
|
|
3321
|
+
// selects (objectui#11432), plus the base key for a call
|
|
3322
|
+
// made without a count. `all-locales-key-parity.test.ts`
|
|
3323
|
+
// derives the required slots from `Intl.PluralRules`.
|
|
3324
|
+
//
|
|
3325
|
+
// objectui#7481 — five `tool.*` entries are NEWER than the registry above:
|
|
3326
|
+
// `get_authoring_rules` (cloud#1837), `load_tools`, `open_record`, `test_flow`
|
|
3327
|
+
// and `toggle_flow` are registered by cloud `service-ai-studio` but the pinned
|
|
3328
|
+
// `@objectstack/spec` snapshot does not list them yet. They are kept here on
|
|
3329
|
+
// purpose: a step label the user reads must not wait on a pin bump. When the
|
|
3330
|
+
// pin advances, `chatbotToolLabels-locale-parity-7481` starts checking them
|
|
3331
|
+
// against the registry instead of against its own hand-held list.
|
|
3332
|
+
chatbot: {
|
|
3333
|
+
tool: {
|
|
3334
|
+
aggregate_data: '汇总数据',
|
|
3335
|
+
get_record: '读取记录',
|
|
3336
|
+
query_data: '查询数据',
|
|
3337
|
+
query_records: '查询记录',
|
|
3338
|
+
search_knowledge: '搜索知识库',
|
|
3339
|
+
visualize_data: '生成图表',
|
|
3340
|
+
add_field: '添加字段',
|
|
3341
|
+
apply_blueprint: '搭建应用',
|
|
3342
|
+
apply_edit: '应用修改',
|
|
3343
|
+
create_metadata: '新建元数据',
|
|
3344
|
+
create_object: '新建对象',
|
|
3345
|
+
create_package: '新建应用包',
|
|
3346
|
+
create_seed: '生成示例数据',
|
|
3347
|
+
delete_field: '删除字段',
|
|
3348
|
+
describe_metadata: '查看元数据',
|
|
3349
|
+
describe_object: '查看对象结构',
|
|
3350
|
+
get_active_package: '读取当前应用包',
|
|
3351
|
+
get_authoring_rules: '读取编写规范',
|
|
3352
|
+
get_metadata_schema: '读取元数据结构',
|
|
3353
|
+
get_package: '读取应用包',
|
|
3354
|
+
list_metadata: '列出元数据',
|
|
3355
|
+
list_objects: '列出对象',
|
|
3356
|
+
list_packages: '列出应用包',
|
|
3357
|
+
load_tools: '加载工具',
|
|
3358
|
+
modify_field: '修改字段',
|
|
3359
|
+
open_record: '打开记录',
|
|
3360
|
+
propose_blueprint: '设计应用方案',
|
|
3361
|
+
set_active_package: '切换当前应用包',
|
|
3362
|
+
suggest_builder: '推荐搭建方式',
|
|
3363
|
+
test_flow: '测试流程',
|
|
3364
|
+
todo_write: '记录待办',
|
|
3365
|
+
toggle_flow: '启停流程',
|
|
3366
|
+
update_metadata: '更新元数据',
|
|
3367
|
+
validate_expression: '校验表达式',
|
|
3368
|
+
verify_build: '校验搭建结果',
|
|
3369
|
+
},
|
|
3370
|
+
toolState: {
|
|
3371
|
+
agentActivity: '智能体活动',
|
|
3372
|
+
pending: '等待中',
|
|
3373
|
+
running: '运行中',
|
|
3374
|
+
awaitingApproval: '待确认',
|
|
3375
|
+
responded: '已回复',
|
|
3376
|
+
completed: '已完成',
|
|
3377
|
+
error: '出错',
|
|
3378
|
+
denied: '已拒绝',
|
|
3379
|
+
failed: '失败',
|
|
3380
|
+
},
|
|
3381
|
+
plan: {
|
|
3382
|
+
countObjects: '{{count}} 个对象',
|
|
3383
|
+
countObjects_one: '{{count}} 个对象',
|
|
3384
|
+
countObjects_other: '{{count}} 个对象',
|
|
3385
|
+
countViews: '{{count}} 个视图',
|
|
3386
|
+
countViews_one: '{{count}} 个视图',
|
|
3387
|
+
countViews_other: '{{count}} 个视图',
|
|
3388
|
+
countDashboards: '{{count}} 个仪表板',
|
|
3389
|
+
countDashboards_one: '{{count}} 个仪表板',
|
|
3390
|
+
countDashboards_other: '{{count}} 个仪表板',
|
|
3391
|
+
countSeedData: '示例数据',
|
|
3392
|
+
},
|
|
3393
|
+
build: {
|
|
3394
|
+
building: '正在构建{{app}}…',
|
|
3395
|
+
built: '已构建{{app}}',
|
|
3396
|
+
appFallback: '你的应用',
|
|
3397
|
+
addingSampleData: '正在添加示例数据',
|
|
3398
|
+
group: {
|
|
3399
|
+
object: '对象',
|
|
3400
|
+
view: '视图',
|
|
3401
|
+
dashboard: '仪表板',
|
|
3402
|
+
app: '应用',
|
|
3403
|
+
seed: '示例数据',
|
|
3404
|
+
},
|
|
3405
|
+
moreArtifacts: '+{{n}} 个',
|
|
3406
|
+
},
|
|
3407
|
+
},
|
|
3003
3408
|
chatbotError: {
|
|
3004
3409
|
title: '响应失败',
|
|
3005
3410
|
fallbackDetail: '出了点问题,请重试。',
|
|
@@ -3036,6 +3441,7 @@ const zh = {
|
|
|
3036
3441
|
retry: '重试',
|
|
3037
3442
|
errors: {
|
|
3038
3443
|
expired: '请求在获批前已过期,请重新开始。',
|
|
3444
|
+
accessDenied: '连接请求已被拒绝,请重新开始。',
|
|
3039
3445
|
bindFailed: '绑定失败。',
|
|
3040
3446
|
deviceCodeFailed: '设备码请求失败。',
|
|
3041
3447
|
},
|
|
@@ -3069,7 +3475,7 @@ const zh = {
|
|
|
3069
3475
|
marketplace: {
|
|
3070
3476
|
title: '应用市场',
|
|
3071
3477
|
subtitle: '浏览已通过审核、发布到 ObjectStack 目录中的应用。点击应用查看详情并安装到你的某个环境中。',
|
|
3072
|
-
searchPlaceholder: '
|
|
3478
|
+
searchPlaceholder: '按名称或标识搜索应用…',
|
|
3073
3479
|
searchAria: '搜索市场应用',
|
|
3074
3480
|
installed: '已安装',
|
|
3075
3481
|
installedCount: '已安装({{count}})',
|
|
@@ -3092,10 +3498,16 @@ const zh = {
|
|
|
3092
3498
|
installedBadge: '已安装 v{{version}}',
|
|
3093
3499
|
load: {
|
|
3094
3500
|
failed: '应用市场加载失败',
|
|
3095
|
-
|
|
3501
|
+
failedHintConfigured: '本运行时通过 {{url}} 上的控制面访问应用市场。请检查该地址是否在线、能否从本运行时访问。',
|
|
3502
|
+
failedHintSameOrigin: '本运行时自己提供应用市场目录。请检查运行时是否在线。',
|
|
3096
3503
|
packageFailed: '应用加载失败',
|
|
3097
3504
|
notFound: '未找到。',
|
|
3098
3505
|
},
|
|
3506
|
+
disabled: {
|
|
3507
|
+
title: '应用市场已关闭',
|
|
3508
|
+
description: '本运行时未配置应用市场,因此这里没有可浏览或安装的内容。',
|
|
3509
|
+
hint: '当运行时以 <code>OS_CLOUD_URL=off</code>(或 <code>none</code>、<code>local</code>、<code>disabled</code>)启动时,这就是预期状态。如需开启应用市场,请把 <code>OS_CLOUD_URL</code> 指向一个控制面并重启运行时。',
|
|
3510
|
+
},
|
|
3099
3511
|
detail: {
|
|
3100
3512
|
homepage: '主页',
|
|
3101
3513
|
installedV: '已安装 · v{{version}}',
|
|
@@ -3111,10 +3523,15 @@ const zh = {
|
|
|
3111
3523
|
purgeSampleData: '清除示例数据',
|
|
3112
3524
|
purgeConfirm: '删除此应用预置的所有示例记录?用户自行添加的记录不会被删除。',
|
|
3113
3525
|
purgeSuccess: '已删除 {{count}} 条示例记录。',
|
|
3526
|
+
purgeSuccess_one: '已删除 {{count}} 条示例记录。',
|
|
3527
|
+
purgeSuccess_other: '已删除 {{count}} 条示例记录。',
|
|
3114
3528
|
purgeNoData: '没有可清除的示例记录。',
|
|
3115
3529
|
reseedQueued: '示例数据将在下次访问该环境时重新加载。',
|
|
3116
3530
|
reseedLocalSuccess: '已重新加载示例数据:新增 {{inserted}} 条,更新 {{updated}} 条。',
|
|
3117
3531
|
reseedPartialErrors: '(有 {{count}} 条记录写入失败)',
|
|
3532
|
+
reseedPartialErrors_one: '(有 {{count}} 条记录写入失败)',
|
|
3533
|
+
reseedPartialErrors_other: '(有 {{count}} 条记录写入失败)',
|
|
3534
|
+
sampleDataKernelUnavailable: '此控制面没有环境内核,因此无法在这里重新加载或清除示例数据。请在该环境自己的运行时中操作。',
|
|
3118
3535
|
updateAvailable: '有可用更新',
|
|
3119
3536
|
},
|
|
3120
3537
|
action: {
|
|
@@ -3167,7 +3584,8 @@ const zh = {
|
|
|
3167
3584
|
reviewed: '已审核并批准',
|
|
3168
3585
|
unreviewed: '尚未审核',
|
|
3169
3586
|
signed: '已签名',
|
|
3170
|
-
grantsIntro: '
|
|
3587
|
+
grantsIntro: '此软件包请求以下权限:',
|
|
3588
|
+
notEnforced: '安装时会记录这份清单,后续版本要求更多权限时会再次征求同意;但运行时目前还不会把该软件包限制在此清单内。',
|
|
3171
3589
|
services: '平台服务',
|
|
3172
3590
|
hooks: '生命周期钩子',
|
|
3173
3591
|
network: '网络访问',
|
|
@@ -3217,30 +3635,19 @@ const zh = {
|
|
|
3217
3635
|
storage: '存储',
|
|
3218
3636
|
other: '其他',
|
|
3219
3637
|
},
|
|
3220
|
-
pricing: {
|
|
3221
|
-
free: '免费',
|
|
3222
|
-
freemium: '免费增值',
|
|
3223
|
-
paid: '付费',
|
|
3224
|
-
subscription: '订阅',
|
|
3225
|
-
'usage-based': '按用量计费',
|
|
3226
|
-
'contact-sales': '联系销售',
|
|
3227
|
-
},
|
|
3228
3638
|
relativeTime: {
|
|
3229
3639
|
today: '今天',
|
|
3230
3640
|
daysAgo: '{{count}} 天前',
|
|
3231
3641
|
monthsAgo: '{{count}} 个月前',
|
|
3642
|
+
monthsAgo_one: '{{count}} 个月前',
|
|
3643
|
+
monthsAgo_other: '{{count}} 个月前',
|
|
3232
3644
|
yearsAgo: '{{count}} 年前',
|
|
3645
|
+
yearsAgo_one: '{{count}} 年前',
|
|
3646
|
+
yearsAgo_other: '{{count}} 年前',
|
|
3233
3647
|
},
|
|
3234
3648
|
},
|
|
3235
|
-
approvals: {
|
|
3236
|
-
approve: '批准',
|
|
3237
|
-
reject: '驳回',
|
|
3238
|
-
comment: '审批意见(可选)',
|
|
3239
|
-
approveSuccess: '已批准',
|
|
3240
|
-
rejectSuccess: '已驳回',
|
|
3241
|
-
rejectConfirm: '确定驳回该审批请求吗?',
|
|
3242
|
-
},
|
|
3243
3649
|
approvalsInbox: {
|
|
3650
|
+
recordUnresolvable: '无法打开此记录',
|
|
3244
3651
|
loadMore: '加载更多',
|
|
3245
3652
|
loadingMore: '加载中…',
|
|
3246
3653
|
loadedOf: '已加载 {{loaded}} / 共 {{total}} 条',
|
|
@@ -3259,6 +3666,8 @@ const zh = {
|
|
|
3259
3666
|
requestInfoSent: '已退回给申请人补充材料',
|
|
3260
3667
|
remindBtn: '催办',
|
|
3261
3668
|
remindSuccess: '已提醒 {{count}} 位审批人',
|
|
3669
|
+
remindSuccess_one: '已提醒 {{count}} 位审批人',
|
|
3670
|
+
remindSuccess_other: '已提醒 {{count}} 位审批人',
|
|
3262
3671
|
remindThrottled: '刚刚已发送过催办,请稍后再试。',
|
|
3263
3672
|
replyPlaceholder: '在此回复…',
|
|
3264
3673
|
slaRemaining: 'SLA 剩余 {{dur}}',
|
|
@@ -3275,6 +3684,8 @@ const zh = {
|
|
|
3275
3684
|
progressApprovals: '审批进度 — {{got}} / {{need}}',
|
|
3276
3685
|
progressGroups: '会签进度 — {{got}} / {{need}} 组',
|
|
3277
3686
|
progressEligible: '{{count}} 位可审批人',
|
|
3687
|
+
progressEligible_one: '{{count}} 位可审批人',
|
|
3688
|
+
progressEligible_other: '{{count}} 位可审批人',
|
|
3278
3689
|
progressBar: '决策进度',
|
|
3279
3690
|
declaredActions: '操作',
|
|
3280
3691
|
attachmentChip: '附件',
|
|
@@ -3306,6 +3717,8 @@ const zh = {
|
|
|
3306
3717
|
filterCount: '{{shown}} / {{total}} 条',
|
|
3307
3718
|
selected: '已选择',
|
|
3308
3719
|
actionableCount: '({{count}} 条可操作)',
|
|
3720
|
+
actionableCount_one: '({{count}} 条可操作)',
|
|
3721
|
+
actionableCount_other: '({{count}} 条可操作)',
|
|
3309
3722
|
selectAll: '全选',
|
|
3310
3723
|
selectRow: '选择该请求',
|
|
3311
3724
|
colRequest: '审批事项',
|
|
@@ -3346,12 +3759,19 @@ const zh = {
|
|
|
3346
3759
|
submittedAgo: '提交于{{when}}',
|
|
3347
3760
|
completedAt: '完成于{{when}}',
|
|
3348
3761
|
waitingOn: '等待以下审批人',
|
|
3762
|
+
approverNameSeparator: '、',
|
|
3763
|
+
approverUnstaffed: '{{seat}}(暂无在岗人员)',
|
|
3349
3764
|
history: '审批动态',
|
|
3350
3765
|
noActions: '暂无操作记录。',
|
|
3351
3766
|
actSubmit: '提交',
|
|
3352
3767
|
actApprove: '通过',
|
|
3353
3768
|
actReject: '拒绝',
|
|
3354
3769
|
actRecall: '撤回',
|
|
3770
|
+
overrideActionLabel: '越权{{action}}',
|
|
3771
|
+
overrideNotice: '你在该步骤没有审批人席位。继续将使用管理员越权:该步骤会立即结案,尚未表态的审批人都会被跳过。此决定将记录为管理员越权。',
|
|
3772
|
+
overrideNoticeWho: '你在该步骤没有审批人席位。继续将使用管理员越权:该步骤会立即结案,并跳过尚未表态的审批人 —— {{who}}。此决定将记录为管理员越权。',
|
|
3773
|
+
viaOverrideChip: '管理员越权',
|
|
3774
|
+
viaOverrideHint: '操作者在该步骤没有审批人席位 —— 经管理员越权通道进入。',
|
|
3355
3775
|
rawData: '原始数据(JSON)',
|
|
3356
3776
|
copy: '复制',
|
|
3357
3777
|
copied: '已复制',
|
|
@@ -3372,11 +3792,19 @@ const zh = {
|
|
|
3372
3792
|
approveN: '通过 {{count}} 条',
|
|
3373
3793
|
rejectN: '拒绝 {{count}} 条',
|
|
3374
3794
|
bulkApproveTitle: '通过这 {{count}} 条请求?',
|
|
3795
|
+
bulkApproveTitle_one: '通过这 {{count}} 条请求?',
|
|
3796
|
+
bulkApproveTitle_other: '通过这 {{count}} 条请求?',
|
|
3375
3797
|
bulkApproveBody: '每条请求都将以你的身份通过,对应流程沿“通过”分支继续。',
|
|
3376
3798
|
bulkRejectTitle: '拒绝这 {{count}} 条请求?',
|
|
3799
|
+
bulkRejectTitle_one: '拒绝这 {{count}} 条请求?',
|
|
3800
|
+
bulkRejectTitle_other: '拒绝这 {{count}} 条请求?',
|
|
3377
3801
|
bulkRejectBody: '将拒绝所选请求并通知各申请人。',
|
|
3378
3802
|
bulkApproved: '已通过 {{count}} 条请求',
|
|
3803
|
+
bulkApproved_one: '已通过 {{count}} 条请求',
|
|
3804
|
+
bulkApproved_other: '已通过 {{count}} 条请求',
|
|
3379
3805
|
bulkRejected: '已拒绝 {{count}} 条请求',
|
|
3806
|
+
bulkRejected_one: '已拒绝 {{count}} 条请求',
|
|
3807
|
+
bulkRejected_other: '已拒绝 {{count}} 条请求',
|
|
3380
3808
|
bulkPartial: '{{ok}} 条成功,{{fail}} 条失败:{{which}}',
|
|
3381
3809
|
rejectOneTitle: '拒绝“{{title}}”?',
|
|
3382
3810
|
rejectOneBody: '将拒绝该请求并通知申请人。',
|
|
@@ -3401,8 +3829,14 @@ const zh = {
|
|
|
3401
3829
|
alreadyDecided: '该请求已被处理,请刷新列表。',
|
|
3402
3830
|
justNow: '刚刚',
|
|
3403
3831
|
minutesAgo: '{{count}} 分钟前',
|
|
3832
|
+
minutesAgo_one: '{{count}} 分钟前',
|
|
3833
|
+
minutesAgo_other: '{{count}} 分钟前',
|
|
3404
3834
|
hoursAgo: '{{count}} 小时前',
|
|
3835
|
+
hoursAgo_one: '{{count}} 小时前',
|
|
3836
|
+
hoursAgo_other: '{{count}} 小时前',
|
|
3405
3837
|
daysAgo: '{{count}} 天前',
|
|
3838
|
+
daysAgo_one: '{{count}} 天前',
|
|
3839
|
+
daysAgo_other: '{{count}} 天前',
|
|
3406
3840
|
},
|
|
3407
3841
|
filterBuilder: {
|
|
3408
3842
|
where: '其中',
|
|
@@ -3420,22 +3854,33 @@ const zh = {
|
|
|
3420
3854
|
noResults: '无结果',
|
|
3421
3855
|
searchField: '搜索 {{label}}…',
|
|
3422
3856
|
enterId: '输入 {{label}} ID',
|
|
3857
|
+
addValue: '输入值后按回车',
|
|
3858
|
+
removeValue: '移除 {{value}}',
|
|
3859
|
+
rangeStart: '起始值',
|
|
3860
|
+
rangeEnd: '结束值',
|
|
3423
3861
|
operators: {
|
|
3424
3862
|
equals: '等于',
|
|
3425
|
-
|
|
3863
|
+
not_equals: '不等于',
|
|
3426
3864
|
contains: '包含',
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3865
|
+
icontains: '包含(忽略大小写)',
|
|
3866
|
+
not_contains: '不包含',
|
|
3867
|
+
is_empty: '为空',
|
|
3868
|
+
is_not_empty: '不为空',
|
|
3869
|
+
greater_than: '大于',
|
|
3870
|
+
less_than: '小于',
|
|
3871
|
+
greater_than_or_equal: '大于或等于',
|
|
3872
|
+
less_than_or_equal: '小于或等于',
|
|
3434
3873
|
before: '早于',
|
|
3435
3874
|
after: '晚于',
|
|
3436
3875
|
between: '介于',
|
|
3437
3876
|
in: '属于',
|
|
3438
|
-
|
|
3877
|
+
not_in: '不属于',
|
|
3878
|
+
starts_with: '以…开头',
|
|
3879
|
+
ends_with: '以…结尾',
|
|
3880
|
+
is_null: '为 null',
|
|
3881
|
+
is_not_null: '不为 null',
|
|
3882
|
+
exists: '已设置',
|
|
3883
|
+
notExists: '未设置',
|
|
3439
3884
|
},
|
|
3440
3885
|
},
|
|
3441
3886
|
sortBuilder: {
|
|
@@ -3449,7 +3894,8 @@ const zh = {
|
|
|
3449
3894
|
},
|
|
3450
3895
|
collaboration: {
|
|
3451
3896
|
commentCount: '{{count}} 条评论',
|
|
3452
|
-
|
|
3897
|
+
commentCount_one: '{{count}} 条评论',
|
|
3898
|
+
commentCount_other: '{{count}} 条评论',
|
|
3453
3899
|
resolvedSuffix: ' · 已解决',
|
|
3454
3900
|
sortComments: '评论排序',
|
|
3455
3901
|
sortOldest: '最早优先',
|
|
@@ -3458,11 +3904,18 @@ const zh = {
|
|
|
3458
3904
|
reopen: '重新打开',
|
|
3459
3905
|
justNow: '刚刚',
|
|
3460
3906
|
minutesAgo: '{{count}} 分钟前',
|
|
3907
|
+
minutesAgo_one: '{{count}} 分钟前',
|
|
3908
|
+
minutesAgo_other: '{{count}} 分钟前',
|
|
3461
3909
|
hoursAgo: '{{count}} 小时前',
|
|
3910
|
+
hoursAgo_one: '{{count}} 小时前',
|
|
3911
|
+
hoursAgo_other: '{{count}} 小时前',
|
|
3462
3912
|
daysAgo: '{{count}} 天前',
|
|
3913
|
+
daysAgo_one: '{{count}} 天前',
|
|
3914
|
+
daysAgo_other: '{{count}} 天前',
|
|
3463
3915
|
edited: '(已编辑)',
|
|
3464
3916
|
reactionCount: '{{count}} 个回应',
|
|
3465
|
-
|
|
3917
|
+
reactionCount_one: '{{count}} 个回应',
|
|
3918
|
+
reactionCount_other: '{{count}} 个回应',
|
|
3466
3919
|
addThumbsUp: '点赞',
|
|
3467
3920
|
reply: '回复',
|
|
3468
3921
|
reactThumbsUp: '以点赞回应',
|
|
@@ -3473,9 +3926,11 @@ const zh = {
|
|
|
3473
3926
|
commentPlaceholder: '添加评论…(输入 @ 提及他人)',
|
|
3474
3927
|
send: '发送',
|
|
3475
3928
|
presentUserCount: '{{count}} 人在线',
|
|
3476
|
-
|
|
3929
|
+
presentUserCount_one: '{{count}} 人在线',
|
|
3930
|
+
presentUserCount_other: '{{count}} 人在线',
|
|
3477
3931
|
moreUserCount: '另有 {{count}} 人',
|
|
3478
|
-
|
|
3932
|
+
moreUserCount_one: '另有 {{count}} 人',
|
|
3933
|
+
moreUserCount_other: '另有 {{count}} 人',
|
|
3479
3934
|
userStatusTitle: '{{name}}({{status}})',
|
|
3480
3935
|
statusActive: '活跃',
|
|
3481
3936
|
statusIdle: '空闲',
|
|
@@ -3483,6 +3938,18 @@ const zh = {
|
|
|
3483
3938
|
},
|
|
3484
3939
|
wizard: {
|
|
3485
3940
|
missingRequired: '请填写以下必填字段:{{fields}}',
|
|
3941
|
+
back: '上一步',
|
|
3942
|
+
submitting: '提交中…',
|
|
3943
|
+
stepFallback: '第 {{n}} 步',
|
|
3944
|
+
progressLabel: '进度',
|
|
3945
|
+
emptyStep: '此步骤未配置字段',
|
|
3946
|
+
},
|
|
3947
|
+
flowRunner: {
|
|
3948
|
+
title: '输入',
|
|
3949
|
+
submitting: '提交中…',
|
|
3950
|
+
saveAndContinue: '保存并继续',
|
|
3951
|
+
nextStep: '已保存 — 下一步',
|
|
3952
|
+
completed: '流程「{{flow}}」已完成',
|
|
3486
3953
|
},
|
|
3487
3954
|
appManagement: {
|
|
3488
3955
|
title: '应用',
|
|
@@ -3533,5 +4000,49 @@ const zh = {
|
|
|
3533
4000
|
bulkOperationFailed: '批量操作失败:{{reason}}',
|
|
3534
4001
|
},
|
|
3535
4002
|
},
|
|
4003
|
+
// objectui#6301 — 设置 › 打包自动化(ADR-0126 §7.4)。术语沿用本包既有译法:
|
|
4004
|
+
// `common.package` = 软件包,`flowRunner.completed` = 流程,`common.duplicate`
|
|
4005
|
+
// 一族的“复制”在这里写作“克隆”,因为服务端的 clone 是另起机器名的同级流程,
|
|
4006
|
+
// 不是一次副本粘贴。⛔ 本组不含任何血缘/漂移措辞(§9)。
|
|
4007
|
+
packagedAutomation: {
|
|
4008
|
+
title: '打包自动化',
|
|
4009
|
+
subtitle: '由已安装软件包提供的流程与动作。可在本部署中关闭其中之一,流程还可以新名称克隆后再自定义。编辑在 Studio 中进行。',
|
|
4010
|
+
refresh: '刷新',
|
|
4011
|
+
flowsHeading: '打包流程',
|
|
4012
|
+
actionsHeading: '打包动作',
|
|
4013
|
+
colFlow: '流程',
|
|
4014
|
+
colActivation: '启用状态',
|
|
4015
|
+
colActions: '操作',
|
|
4016
|
+
toggleLabel: '{{label}} 的启用状态',
|
|
4017
|
+
on: '已启用',
|
|
4018
|
+
off: '已关闭',
|
|
4019
|
+
clone: '克隆',
|
|
4020
|
+
cloneTitle: '克隆打包流程',
|
|
4021
|
+
cloneBody: '副本会带上完整定义,并需要新的机器名和标签。请在 Studio 中编辑副本。',
|
|
4022
|
+
cloneName: '新机器名',
|
|
4023
|
+
cloneLabel: '新标签',
|
|
4024
|
+
cancel: '取消',
|
|
4025
|
+
cloneConfirm: '创建克隆',
|
|
4026
|
+
cloneCreated: '已创建流程「{{name}}」。',
|
|
4027
|
+
emptyTitle: '没有打包流程',
|
|
4028
|
+
emptyBody: '本部署中没有任何已安装软件包提供自动化流程。你自己编写的流程在 Studio 中。',
|
|
4029
|
+
loadFailed: '无法加载打包自动化。',
|
|
4030
|
+
toggleFailedHttp: '无法更改启用状态(HTTP {{status}})。',
|
|
4031
|
+
toggleFailed: '无法更改启用状态。',
|
|
4032
|
+
cloneFailedHttp: '无法克隆此流程(HTTP {{status}})。',
|
|
4033
|
+
cloneFailed: '无法克隆此流程。',
|
|
4034
|
+
actionsSubtitle: '由已安装软件包提供的动作。在本部署中关闭后,它在所有提供它的位置都不再运行。你仍然可以在 Studio 中另行编写自己的动作。',
|
|
4035
|
+
colAction: '动作',
|
|
4036
|
+
colObject: '对象',
|
|
4037
|
+
actionToggleLabel: '{{object}} 上 {{label}} 的启用状态',
|
|
4038
|
+
actionsEmptyTitle: '没有打包动作',
|
|
4039
|
+
actionsEmptyBody: '本部署中没有任何已安装软件包声明动作。你自己编写的动作在 Studio 中。',
|
|
4040
|
+
actionsLoadFailed: '无法加载打包动作。',
|
|
4041
|
+
},
|
|
4042
|
+
element: {
|
|
4043
|
+
number: {
|
|
4044
|
+
noObject: '未指定对象:请设置 object 或 dataSource.object。',
|
|
4045
|
+
},
|
|
4046
|
+
},
|
|
3536
4047
|
};
|
|
3537
4048
|
export default zh;
|