@object-ui/i18n 17.6.0 → 18.0.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 +5408 -0
- package/README.md +255 -13
- package/dist/LocalizationContext.d.ts +32 -9
- package/dist/LocalizationContext.js +32 -10
- 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 +27 -1
- package/dist/i18n.js +99 -16
- package/dist/index.d.ts +8 -13
- package/dist/index.js +45 -17
- package/dist/locales/ar.d.ts +1504 -188
- package/dist/locales/ar.js +1711 -281
- package/dist/locales/de.d.ts +1080 -188
- package/dist/locales/de.js +1248 -261
- package/dist/locales/en.d.ts +1141 -249
- package/dist/locales/en.js +1714 -295
- package/dist/locales/es.d.ts +1186 -188
- package/dist/locales/es.js +1350 -255
- package/dist/locales/fr.d.ts +1186 -188
- package/dist/locales/fr.js +1351 -258
- package/dist/locales/index.d.ts +11940 -2033
- package/dist/locales/index.js +48 -9
- package/dist/locales/ja.d.ts +1080 -188
- package/dist/locales/ja.js +1240 -254
- package/dist/locales/ko.d.ts +1080 -188
- package/dist/locales/ko.js +1244 -258
- package/dist/locales/pt.d.ts +1186 -188
- package/dist/locales/pt.js +1350 -255
- 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 +1292 -188
- package/dist/locales/ru.js +1479 -272
- package/dist/locales/zh.d.ts +1144 -252
- package/dist/locales/zh.js +1245 -259
- package/dist/pickLocalized.d.ts +30 -0
- package/dist/pickLocalized.js +39 -0
- package/dist/provider.d.ts +101 -12
- 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 +11 -0
- package/dist/useObjectLabel.d.ts +143 -100
- package/dist/useObjectLabel.js +129 -82
- package/dist/useSafeTranslation.js +40 -42
- package/dist/utils/first-day-of-week.d.ts +71 -0
- package/dist/utils/first-day-of-week.js +61 -0
- package/dist/utils/formatting.d.ts +23 -1
- package/dist/utils/formatting.js +34 -5
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- 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
|
@@ -17,7 +17,7 @@ const zh = {
|
|
|
17
17
|
},
|
|
18
18
|
},
|
|
19
19
|
// objectui#2600 B5 — 能力选择器的作用域分组标题(能力标签本身来自
|
|
20
|
-
//
|
|
20
|
+
// capability 注册表,这里只本地化分组标题这类 UI 字符串)。
|
|
21
21
|
capability: {
|
|
22
22
|
group: {
|
|
23
23
|
platform: '平台',
|
|
@@ -29,32 +29,13 @@ const zh = {
|
|
|
29
29
|
manage_users: '管理用户',
|
|
30
30
|
manage_org_users: '管理组织用户',
|
|
31
31
|
manage_metadata: '管理元数据',
|
|
32
|
+
manage_mailboxes: '管理邮箱',
|
|
32
33
|
manage_platform_settings: '管理平台设置',
|
|
33
34
|
setup_access: '访问 Setup',
|
|
34
35
|
setup_write: '保存设置',
|
|
35
36
|
studio_access: '访问 Studio',
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// objectui#3546 切片六 —— 权限集记录上六个授权面的只读摘要与 Studio 深链
|
|
39
|
-
// (ADR-0056 P1,plugin-detail 的 PermissionFacetLink)。
|
|
40
|
-
// 用词取自本仓权限集设计器(metadata-admin i18n 表):个对象 / 行级策略 /
|
|
41
|
-
// 标签页 / 委派管理范围 —— 与点进去的那个界面一致。
|
|
42
|
-
// 中文无单复数,四个计数 key 的 `_one` 与基础 key 同值(设计如此,不是漏改)。
|
|
43
|
-
perm: {
|
|
44
|
-
facet: {
|
|
45
|
-
none: '无',
|
|
46
|
-
more: '+{{count}} 更多',
|
|
47
|
-
objects: '{{count}} 个对象',
|
|
48
|
-
objects_one: '{{count}} 个对象',
|
|
49
|
-
fields: '{{count}} 条字段规则',
|
|
50
|
-
fields_one: '{{count}} 条字段规则',
|
|
51
|
-
rls: '{{count}} 条 RLS 策略',
|
|
52
|
-
rls_one: '{{count}} 条 RLS 策略',
|
|
53
|
-
tabs: '{{count}} 条标签页规则',
|
|
54
|
-
tabs_one: '{{count}} 条标签页规则',
|
|
55
|
-
adminScope: '已配置委派管理范围',
|
|
56
|
-
designInStudio: '在 Studio 中设计 →',
|
|
57
|
-
designInStudioHint: '在 Studio 中设计',
|
|
37
|
+
manage_sharing: '管理共享',
|
|
38
|
+
view_all_audit_log: '查看全部审计日志',
|
|
58
39
|
},
|
|
59
40
|
},
|
|
60
41
|
lookup: {
|
|
@@ -73,7 +54,8 @@ const zh = {
|
|
|
73
54
|
selectFirst: '请先选择{{fields}}',
|
|
74
55
|
selectRecord: '选择记录',
|
|
75
56
|
recordCount: '{{count}} 条记录',
|
|
76
|
-
|
|
57
|
+
recordCount_one: '{{count}} 条记录',
|
|
58
|
+
recordCount_other: '{{count}} 条记录',
|
|
77
59
|
pageOf: '第 {{current}}/{{total}} 页',
|
|
78
60
|
filters: '筛选',
|
|
79
61
|
clear: '清除',
|
|
@@ -123,14 +105,26 @@ const zh = {
|
|
|
123
105
|
closePanel: '关闭面板',
|
|
124
106
|
resizeDrawer: '调整面板宽度',
|
|
125
107
|
itemCount: '{{count}} 项',
|
|
126
|
-
|
|
108
|
+
itemCount_one: '{{count}} 项',
|
|
109
|
+
itemCount_other: '{{count}} 项',
|
|
127
110
|
toggleSidebar: '切换侧边栏',
|
|
111
|
+
breadcrumb: '面包屑导航',
|
|
128
112
|
package: '软件包',
|
|
129
113
|
done: '完成',
|
|
130
114
|
editInStudio: '在 Studio 中编辑',
|
|
131
115
|
record: '记录',
|
|
132
116
|
retry: '重试',
|
|
133
117
|
printDialogHint: '打开浏览器打印对话框(不是导出 PDF)',
|
|
118
|
+
// The non-grid row ceiling's footnote (objectui#7210). Two keys because
|
|
119
|
+
// there are two conditions: a reported `total` states the fact with BOTH
|
|
120
|
+
// numbers, a missing one cannot name how many. Kept terse deliberately —
|
|
121
|
+
// this copy is eagerly loaded, and since objectui#7399 these bytes are
|
|
122
|
+
// budgeted by the `i18n-locales` chunk, not `framework`. ⛔ That ceiling's
|
|
123
|
+
// headroom is deliberately NOT restated here — it moves on every
|
|
124
|
+
// re-baseline, and the figure that was here went stale.
|
|
125
|
+
// `pnpm check:eager-closure` prints it.
|
|
126
|
+
rowCeilingNote: '仅显示 {{total}} 条记录中的前 {{shown}} 条。请缩小筛选范围。',
|
|
127
|
+
rowCeilingNoteUnknownTotal: '仅显示前 {{shown}} 条记录。请缩小筛选范围。',
|
|
134
128
|
},
|
|
135
129
|
actions: {
|
|
136
130
|
decisionOutput: {
|
|
@@ -142,6 +136,15 @@ const zh = {
|
|
|
142
136
|
acknowledge: '我已保存',
|
|
143
137
|
copyAll: '全部复制',
|
|
144
138
|
},
|
|
139
|
+
notAvailableHere: '「{{action}}」在当前页面不可用。',
|
|
140
|
+
notAvailableForRecord: '对此记录不可用',
|
|
141
|
+
completedSuccessfully: '操作已成功完成',
|
|
142
|
+
failed: '操作失败',
|
|
143
|
+
parallelFailed: '一个或多个并行操作失败',
|
|
144
|
+
undo: '撤销',
|
|
145
|
+
undone: '已撤销更改',
|
|
146
|
+
undoneOperation: '撤销:{{description}}',
|
|
147
|
+
redoneOperation: '重做:{{description}}',
|
|
145
148
|
},
|
|
146
149
|
validation: {
|
|
147
150
|
required: '{{field}}不能为空',
|
|
@@ -159,8 +162,12 @@ const zh = {
|
|
|
159
162
|
},
|
|
160
163
|
form: {
|
|
161
164
|
noPermissionToSave: '您没有权限保存这条记录。',
|
|
165
|
+
noPermissionToCreate: '您没有创建{{object}}的权限,字段均为只读。',
|
|
166
|
+
noPermissionToEdit: '您没有编辑{{object}}的权限,字段均为只读。',
|
|
162
167
|
submitFailed: '保存失败,请重试。',
|
|
163
|
-
|
|
168
|
+
uploadInFlight: '请等待上传完成后再保存。',
|
|
169
|
+
clearedOnHide: '已清空不再适用于当前取值的字段:{{fields}}',
|
|
170
|
+
visibleWhenFaulted: '无法提交:{{fields}} 的 visibleWhen 规则无法求值。需先修正该规则,才能提交此表单。',
|
|
164
171
|
removeItem: '移除项目',
|
|
165
172
|
fieldRequired: '此字段为必填项',
|
|
166
173
|
invalidFormat: '格式不正确',
|
|
@@ -172,13 +179,37 @@ const zh = {
|
|
|
172
179
|
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
173
180
|
// description, used when the form declares no `description` of its own.
|
|
174
181
|
dialogDescriptionFallback: '填写表单字段,然后提交或取消。',
|
|
182
|
+
deniedDescription: '您没有此字段的编辑权限。',
|
|
183
|
+
serverDefaultHint: '保存时自动设置。',
|
|
184
|
+
maxFileSize: '最大文件大小:{{size}}',
|
|
185
|
+
masterDetail: {
|
|
186
|
+
loadingColumns: '正在加载列…',
|
|
187
|
+
subtotal: '小计',
|
|
188
|
+
tax: '税额({{rate}}%)',
|
|
189
|
+
total: '合计',
|
|
190
|
+
lineItem: '明细行',
|
|
191
|
+
rowTitle: '{{title}} — 第 {{row}} 行',
|
|
192
|
+
applyRow: '应用',
|
|
193
|
+
editorDescription: '填写记录及其明细行,然后保存。',
|
|
194
|
+
noChildObject: '此集合未配置子对象:请将 {{property}} 设为其所列行所属的对象。',
|
|
195
|
+
schemaUnavailable: '无法加载 {{object}} 的对象结构,因此此集合没有可显示的列。请检查该对象是否存在且可读,然后重新加载。',
|
|
196
|
+
noRelationshipField: '无法确定 {{object}} 如何关联到 {{parent}}:它没有引用父对象的 lookup 或 master_detail 字段。请在此集合上将 {{property}} 设为保存父记录的字段。',
|
|
197
|
+
},
|
|
198
|
+
lineItems: {
|
|
199
|
+
title: '明细行',
|
|
200
|
+
saveRecordFirst: '保存记录后才能添加明细行。',
|
|
201
|
+
notLoaded: '此记录的明细行尚未加载。',
|
|
202
|
+
loadFailed: '明细行加载失败',
|
|
203
|
+
saveFailed: '明细行保存失败',
|
|
204
|
+
noChildObject: '此面板未配置子对象:请将 {{property}} 设为其所列行所属的对象。',
|
|
205
|
+
},
|
|
175
206
|
keepEditing: '继续编辑',
|
|
176
207
|
discard: '放弃',
|
|
177
208
|
conflictTitle: '保存冲突',
|
|
178
209
|
conflictMessage: '您编辑期间,这条记录已被其他人修改。覆盖保存将用您的内容替换对方的修改。',
|
|
179
210
|
conflictLatestVersion: '对方保存时间:{{time}}',
|
|
180
211
|
conflictOverwrite: '覆盖保存',
|
|
181
|
-
stepOf: '第{{current}}步,共{{total}}步',
|
|
212
|
+
stepOf: '第 {{current}} 步,共 {{total}} 步',
|
|
182
213
|
createTitle: '新建{{object}}',
|
|
183
214
|
editTitle: '编辑{{object}}',
|
|
184
215
|
viewTitle: '查看{{object}}',
|
|
@@ -189,6 +220,13 @@ const zh = {
|
|
|
189
220
|
createSuccess: '{{object}}创建成功',
|
|
190
221
|
updateSuccess: '{{object}}更新成功',
|
|
191
222
|
deleteSuccess: '{{object}}删除成功',
|
|
223
|
+
// objectui#11039 — plugin-form feedback chrome; see the `en` pack.
|
|
224
|
+
created: '已创建',
|
|
225
|
+
saved: '已保存',
|
|
226
|
+
savedNamed: '{{title}}已保存',
|
|
227
|
+
submitted: '已提交',
|
|
228
|
+
errorLoading: '表单加载失败',
|
|
229
|
+
navigateRefused: '此表单声明的 `navigateOnSuccess` 跳转目标被拒绝,因此未执行跳转。',
|
|
192
230
|
fullscreen: {
|
|
193
231
|
title: '编辑文本',
|
|
194
232
|
description: '编辑完整的文本内容,然后保存或取消更改。',
|
|
@@ -200,6 +238,8 @@ const zh = {
|
|
|
200
238
|
fields: {
|
|
201
239
|
relativeDate: {
|
|
202
240
|
overdue: '逾期 {{count}} 天',
|
|
241
|
+
overdue_one: '逾期 {{count}} 天',
|
|
242
|
+
overdue_other: '逾期 {{count}} 天',
|
|
203
243
|
},
|
|
204
244
|
file: {
|
|
205
245
|
dragDropHere: '拖拽文件到此处',
|
|
@@ -216,6 +256,9 @@ const zh = {
|
|
|
216
256
|
remove: '移除 {{name}}',
|
|
217
257
|
exceedsMaxSize: '“{{name}}” 超过大小上限({{max}} MB)',
|
|
218
258
|
uploadFailed: '上传 “{{name}}” 失败:{{error}}',
|
|
259
|
+
uploadIncomplete: '“{{name}}” 上传未完成:未返回文件 ID,未保存任何内容',
|
|
260
|
+
restricted: '受限文件',
|
|
261
|
+
restrictedHint: '你无权查看此文件的详细信息',
|
|
219
262
|
},
|
|
220
263
|
image: {
|
|
221
264
|
upload: '上传图片',
|
|
@@ -226,10 +269,14 @@ const zh = {
|
|
|
226
269
|
remove: '移除图片 {{index}}',
|
|
227
270
|
enlarge: '放大 {{name}}',
|
|
228
271
|
preview: '图片预览',
|
|
272
|
+
cropPreview: '图片裁剪预览',
|
|
229
273
|
previous: '上一张',
|
|
230
274
|
next: '下一张',
|
|
231
275
|
counter: '{{current}} / {{total}}',
|
|
232
276
|
},
|
|
277
|
+
percent: {
|
|
278
|
+
slider: '百分比',
|
|
279
|
+
},
|
|
233
280
|
richText: {
|
|
234
281
|
format: '格式: {{format}}',
|
|
235
282
|
basicEditorHint: '富文本编辑器(基础)',
|
|
@@ -245,6 +292,10 @@ const zh = {
|
|
|
245
292
|
search: '搜索对象…',
|
|
246
293
|
empty: '未找到对象',
|
|
247
294
|
},
|
|
295
|
+
registryRef: {
|
|
296
|
+
loadFailed: '列表加载失败。仍可直接输入名称。',
|
|
297
|
+
notFound: '{{name}}(未找到)',
|
|
298
|
+
},
|
|
248
299
|
recipient: {
|
|
249
300
|
selectTypeFirst: '请先选择接收方类型。',
|
|
250
301
|
loading: '加载中…',
|
|
@@ -256,6 +307,9 @@ const zh = {
|
|
|
256
307
|
selectBusinessUnit: '请选择业务单元',
|
|
257
308
|
selectPosition: '请选择岗位',
|
|
258
309
|
selectUnitAndSubordinates: '请选择业务单元',
|
|
310
|
+
selectField: '请选择用户字段',
|
|
311
|
+
noUserFields: '此对象没有用户字段',
|
|
312
|
+
fieldNotUserTyped: '{{name}} — 不是用户字段',
|
|
259
313
|
},
|
|
260
314
|
filterCondition: {
|
|
261
315
|
selectObjectFirst: '请先选择对象。',
|
|
@@ -266,6 +320,33 @@ const zh = {
|
|
|
266
320
|
editAsJson: '以 JSON 编辑',
|
|
267
321
|
useVisualBuilder: '使用可视化构建器',
|
|
268
322
|
},
|
|
323
|
+
object: {
|
|
324
|
+
invalidJson: 'JSON 无效',
|
|
325
|
+
},
|
|
326
|
+
location: {
|
|
327
|
+
refusedFormat: '未保存:请输入纬度, 经度坐标对(例如 30.2741, 120.1551)。',
|
|
328
|
+
refusedRange: '未保存:{{detail}}',
|
|
329
|
+
latitude: '纬度',
|
|
330
|
+
longitude: '经度',
|
|
331
|
+
refusedResidueOne: '未保存:{{name}}“{{text}}”不是数字。请输入普通小数(例如 30.2741, 120.1551)。',
|
|
332
|
+
refusedResidue: '未保存:{{name}}“{{text}}”和{{otherName}}“{{otherText}}”不是数字。请输入普通小数(例如 30.2741, 120.1551)。',
|
|
333
|
+
},
|
|
334
|
+
date: {
|
|
335
|
+
impossibleDay: '存储的值“{{value}}”不是真实存在的日期。请选择日期以替换它。',
|
|
336
|
+
},
|
|
337
|
+
dateTime: {
|
|
338
|
+
impossibleDay: '存储的值“{{value}}”不是真实存在的日期。请选择日期和时间以替换它。',
|
|
339
|
+
},
|
|
340
|
+
datePicker: {
|
|
341
|
+
today: '今天',
|
|
342
|
+
tomorrow: '明天',
|
|
343
|
+
clear: '清除日期',
|
|
344
|
+
openCalendar: '打开日历',
|
|
345
|
+
invalid: '未保存:“{{value}}”不是有效日期。请按 {{format}} 格式输入,或从日历中选择。',
|
|
346
|
+
},
|
|
347
|
+
number: {
|
|
348
|
+
badInput: '未保存:此输入框中的文本不是数字。请输入普通小数(例如 {{example}})。',
|
|
349
|
+
},
|
|
269
350
|
tags: {
|
|
270
351
|
placeholder: '输入后回车添加…',
|
|
271
352
|
},
|
|
@@ -280,10 +361,25 @@ const zh = {
|
|
|
280
361
|
postalCode: '邮政编码',
|
|
281
362
|
country: '国家 / 地区',
|
|
282
363
|
},
|
|
364
|
+
boolean: {
|
|
365
|
+
offBadge: '{{label}} — 已关闭',
|
|
366
|
+
completed: '已完成',
|
|
367
|
+
notCompleted: '未完成',
|
|
368
|
+
},
|
|
283
369
|
textarea: {
|
|
284
370
|
characterCount: '已输入 {{count}} 个字符,最多 {{max}} 个',
|
|
285
371
|
charactersRemaining: '还可输入 {{count}} 个字符',
|
|
286
372
|
},
|
|
373
|
+
grid: {
|
|
374
|
+
addLine: '添加行',
|
|
375
|
+
noItems: '暂无条目',
|
|
376
|
+
noItemsAddHint: '暂无条目,点击“{{label}}”开始添加。',
|
|
377
|
+
optionalColumns: '可选列',
|
|
378
|
+
computed: '自动计算',
|
|
379
|
+
openRow: '打开行',
|
|
380
|
+
duplicateRow: '复制行',
|
|
381
|
+
removeRow: '删除行',
|
|
382
|
+
},
|
|
287
383
|
},
|
|
288
384
|
table: {
|
|
289
385
|
rowsPerPage: '每页行数',
|
|
@@ -299,10 +395,15 @@ const zh = {
|
|
|
299
395
|
selectAllRows: '选择所有行',
|
|
300
396
|
expandRow: '展开行',
|
|
301
397
|
collapseRow: '折叠行',
|
|
398
|
+
rowActions: '行操作',
|
|
302
399
|
hideColumn: '隐藏列',
|
|
303
400
|
freezeColumn: '冻结列',
|
|
304
401
|
unfreezeColumn: '取消冻结列',
|
|
305
402
|
pageInfo: '第 {{current}} 页,共 {{total}} 页',
|
|
403
|
+
firstPage: '第一页',
|
|
404
|
+
previousPage: '上一页',
|
|
405
|
+
nextPage: '下一页',
|
|
406
|
+
lastPage: '最后一页',
|
|
306
407
|
totalRecords: '共 {{count}} 条',
|
|
307
408
|
noResults: '未找到结果',
|
|
308
409
|
noResultsHint: '请尝试调整筛选条件或搜索关键词。',
|
|
@@ -312,8 +413,15 @@ const zh = {
|
|
|
312
413
|
open: '打开',
|
|
313
414
|
search: '搜索…',
|
|
314
415
|
modified: '{{count}} 行已修改',
|
|
416
|
+
modified_one: '{{count}} 行已修改',
|
|
417
|
+
modified_other: '{{count}} 行已修改',
|
|
418
|
+
saved: '{{count}} 行已保存',
|
|
419
|
+
saved_one: '{{count}} 行已保存',
|
|
420
|
+
saved_other: '{{count}} 行已保存',
|
|
315
421
|
saveFailed: '保存失败',
|
|
316
422
|
selected: '已选择 {{count}} 项',
|
|
423
|
+
selected_one: '已选择 {{count}} 项',
|
|
424
|
+
selected_other: '已选择 {{count}} 项',
|
|
317
425
|
edit: '编辑',
|
|
318
426
|
delete: '删除',
|
|
319
427
|
},
|
|
@@ -328,23 +436,38 @@ const zh = {
|
|
|
328
436
|
pullToRefresh: '下拉刷新',
|
|
329
437
|
refreshing: '刷新中…',
|
|
330
438
|
openRecord: '打开记录',
|
|
439
|
+
recordUnavailable: '{{object}} · 记录不可用',
|
|
331
440
|
openMenu: '更多操作',
|
|
332
441
|
bulkSelected: '已选择 {{count}} 项',
|
|
442
|
+
bulkSelected_one: '已选择 {{count}} 项',
|
|
443
|
+
bulkSelected_other: '已选择 {{count}} 项',
|
|
333
444
|
bulkSelectedAllMatches: '已选择全部 {{count}} 项(全部匹配)',
|
|
334
445
|
bulkClear: '清除',
|
|
335
446
|
bulkAllOnPage: '本页 {{count}} 项已全选。',
|
|
447
|
+
bulkAllOnPage_one: '本页 {{count}} 项已全选。',
|
|
448
|
+
bulkAllOnPage_other: '本页 {{count}} 项已全选。',
|
|
336
449
|
bulkSelectAllMatching: '选择全部 {{count}} 项匹配记录',
|
|
337
450
|
bulkAllMatchingSelected: '已选择全部 {{count}} 项匹配记录。',
|
|
451
|
+
bulkActions: '批量操作',
|
|
338
452
|
rowHeight: '行高: {{mode}}',
|
|
339
453
|
empty: '空',
|
|
340
454
|
yes: '是',
|
|
341
455
|
no: '否',
|
|
342
456
|
systemFields: '系统字段',
|
|
457
|
+
// objectui#10881 — the grouped grid's two refusals: over a data source
|
|
458
|
+
// that cannot answer the group header query, and over rows a host
|
|
459
|
+
// handed in while declaring them one page of more. `queryGroupHeaders`
|
|
460
|
+
// is the member's name and stays untranslated.
|
|
461
|
+
grouping: {
|
|
462
|
+
needsHeaderQuery: '此视图已分组,但其数据源未实现 queryGroupHeaders,因此无法统计分组。移除分组即可显示记录。',
|
|
463
|
+
needsWholeRows: '分组需要全部记录,但此表格只收到其中一页,因此无法统计分组。请传入全部记录,或让表格从实现了 queryGroupHeaders 的数据源获取记录。',
|
|
464
|
+
},
|
|
343
465
|
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
344
466
|
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
345
467
|
// pack controls its own separator and word order.
|
|
346
468
|
summary: {
|
|
347
469
|
pattern: '{{label}}:{{value}}',
|
|
470
|
+
pagePattern: '{{label}}(本页):{{value}}',
|
|
348
471
|
count: '计数',
|
|
349
472
|
countEmpty: '空值',
|
|
350
473
|
countFilled: '非空',
|
|
@@ -411,23 +534,31 @@ const zh = {
|
|
|
411
534
|
mapped: '已映射',
|
|
412
535
|
skipped: '已跳过',
|
|
413
536
|
rowsWithErrors: '{{count}} 行有错误',
|
|
537
|
+
rowsWithErrors_one: '{{count}} 行有错误',
|
|
538
|
+
rowsWithErrors_other: '{{count}} 行有错误',
|
|
414
539
|
rowsCorrected: '已修正 {{count}} 行',
|
|
540
|
+
rowsCorrected_one: '已修正 {{count}} 行',
|
|
541
|
+
rowsCorrected_other: '已修正 {{count}} 行',
|
|
415
542
|
clickToFix: '— 点击高亮单元格可直接修改。',
|
|
416
543
|
showingRows: '显示第 {{shown}} 行,共 {{total}} 行',
|
|
417
544
|
importing: '导入中… {{progress}}%',
|
|
418
545
|
importComplete: '导入完成',
|
|
546
|
+
importPartial: '导入完成,但有错误',
|
|
547
|
+
importFailed: '导入失败',
|
|
419
548
|
imported: '已导入 {{count}} 条',
|
|
420
549
|
skippedCount: '已跳过 {{count}} 条',
|
|
421
550
|
moreErrors: '…还有 {{count}} 个错误',
|
|
551
|
+
moreErrors_one: '…还有 {{count}} 个错误',
|
|
552
|
+
moreErrors_other: '…还有 {{count}} 个错误',
|
|
422
553
|
cancel: '取消',
|
|
423
554
|
back: '上一步',
|
|
424
555
|
next: '下一步',
|
|
425
556
|
close: '关闭',
|
|
426
557
|
importNRows: '导入 {{count}} 行',
|
|
558
|
+
importNRows_one: '导入 {{count}} 行',
|
|
559
|
+
importNRows_other: '导入 {{count}} 行',
|
|
427
560
|
importingProgress: '导入中…',
|
|
428
561
|
requiredMark: '*',
|
|
429
|
-
optTreatHistorical: '作为历史数据导入',
|
|
430
|
-
optTreatHistoricalHint: '(按原样导入已完结的记录——跳过状态机校验,保留原始时间戳与作者,而不是记为当前时间)',
|
|
431
562
|
missingRequiredHint: '无法继续——以下必填字段未映射:{{fields}}。请在文件中添加对应的列,或返回上一步重新上传包含该列的文件。',
|
|
432
563
|
legacyFallbackNotice: '已通过兼容模式导入:当前连接不支持服务端导入接口,因此所有值均以文本写入,未做服务端类型转换。请升级后端/客户端以获得完整的导入支持(类型转换与关联查找)。',
|
|
433
564
|
required: '必填',
|
|
@@ -436,6 +567,8 @@ const zh = {
|
|
|
436
567
|
// 自动匹配(Airtable 风格)
|
|
437
568
|
autoMatched: '自动匹配',
|
|
438
569
|
autoMatchedSummary: '已自动匹配 {{count}} 列 — 请在下方检查并调整。',
|
|
570
|
+
autoMatchedSummary_one: '已自动匹配 {{count}} 列 — 请在下方检查并调整。',
|
|
571
|
+
autoMatchedSummary_other: '已自动匹配 {{count}} 列 — 请在下方检查并调整。',
|
|
439
572
|
confidence: {
|
|
440
573
|
high: '高置信度',
|
|
441
574
|
medium: '中置信度',
|
|
@@ -443,8 +576,10 @@ const zh = {
|
|
|
443
576
|
},
|
|
444
577
|
// 下载模板
|
|
445
578
|
downloadTemplate: '下载模板',
|
|
446
|
-
downloadTemplateHint: '
|
|
579
|
+
downloadTemplateHint: '获取 Excel 模板:仅含可导入的列(必填字段标 *),并附填写说明。',
|
|
447
580
|
templateFileName: '{{object}}-导入模板',
|
|
581
|
+
templateDownloadFailed: '模板下载失败,请重试。',
|
|
582
|
+
templateNotPermitted: '您没有新建该对象记录的权限,无法获取其导入模板。',
|
|
448
583
|
// 校验(服务端 dryRun 预检)
|
|
449
584
|
validate: '校验数据',
|
|
450
585
|
validateHint: '导入前在服务端逐行校验。',
|
|
@@ -452,6 +587,8 @@ const zh = {
|
|
|
452
587
|
validatePassed: '全部 {{ok}} 行均有效。',
|
|
453
588
|
validateFailed: '{{ok}} 条有效,{{errors}} 条有错误。',
|
|
454
589
|
errorCount: '{{count}} 个错误',
|
|
590
|
+
errorCount_one: '{{count}} 个错误',
|
|
591
|
+
errorCount_other: '{{count}} 个错误',
|
|
455
592
|
errorRowPrefix: '第 {{row}} 行:',
|
|
456
593
|
// 服务端结构化导入错误的友好文案
|
|
457
594
|
referenceNotFound: '找不到匹配 "{{value}}" 的记录',
|
|
@@ -459,6 +596,7 @@ const zh = {
|
|
|
459
596
|
invalidBoolean: '"{{value}}" 不是有效的是/否值',
|
|
460
597
|
invalidNumber: '"{{value}}" 不是有效的数字',
|
|
461
598
|
invalidDate: '"{{value}}" 不是有效的日期',
|
|
599
|
+
invalidTime: '"{{value}}" 不是有效的时间',
|
|
462
600
|
invalidOption: '"{{value}}" 不在允许的选项范围内',
|
|
463
601
|
requiredValue: '此字段为必填项',
|
|
464
602
|
matchAmbiguous: '匹配到多条已有记录,请使用唯一值或记录 ID',
|
|
@@ -475,15 +613,20 @@ const zh = {
|
|
|
475
613
|
matchFieldsHint: '按这些字段将行匹配到已有记录。',
|
|
476
614
|
needMatchFields: '请至少选择一个匹配字段。',
|
|
477
615
|
matchOnlyField: '(仅匹配)',
|
|
478
|
-
optRunAutomations: '运行自动化与触发器',
|
|
479
616
|
optCreateOptions: '保留未知选项值',
|
|
480
617
|
optSkipBlankKey: '跳过匹配值为空的行',
|
|
481
618
|
optBackground: '后台导入',
|
|
482
619
|
optBackgroundHint: '(作为可撤销任务运行)',
|
|
483
620
|
// 结果
|
|
484
621
|
createdCount: '新建 {{count}} 条',
|
|
622
|
+
createdCount_one: '新建 {{count}} 条',
|
|
623
|
+
createdCount_other: '新建 {{count}} 条',
|
|
485
624
|
updatedCount: '更新 {{count}} 条',
|
|
625
|
+
updatedCount_one: '更新 {{count}} 条',
|
|
626
|
+
updatedCount_other: '更新 {{count}} 条',
|
|
486
627
|
resultsTruncated: '显示前 {{count}} 行结果(共 {{total}} 行)。',
|
|
628
|
+
resultsTruncated_one: '显示前 {{count}} 行结果(共 {{total}} 行)。',
|
|
629
|
+
resultsTruncated_other: '显示前 {{count}} 行结果(共 {{total}} 行)。',
|
|
487
630
|
downloadFailed: '下载失败行',
|
|
488
631
|
cancelImport: '取消导入',
|
|
489
632
|
importCancelled: '导入已取消',
|
|
@@ -516,13 +659,20 @@ const zh = {
|
|
|
516
659
|
undoImport: '撤销导入',
|
|
517
660
|
undoing: '撤销中…',
|
|
518
661
|
reverted: '已撤销',
|
|
662
|
+
undoPartial: '{{count}} 行未能撤销。再次撤销只会重试这些行。',
|
|
663
|
+
undoPartial_one: '{{count}} 行未能撤销。再次撤销只会重试这一行。',
|
|
664
|
+
undoPartial_other: '{{count}} 行未能撤销。再次撤销只会重试这些行。',
|
|
519
665
|
undoConfirm: '撤销此次导入?它新建的记录将被删除,它更新的记录将恢复为之前的值。',
|
|
520
666
|
},
|
|
521
667
|
bulk: {
|
|
522
668
|
confirmDefault: '此操作将应用于 {{count}} 条记录。',
|
|
669
|
+
confirmDefault_one: '此操作将应用于 {{count}} 条记录。',
|
|
670
|
+
confirmDefault_other: '此操作将应用于 {{count}} 条记录。',
|
|
523
671
|
overLimit: '所选记录({{count}})超过该动作的上限({{limit}})。请减少选择后再继续。',
|
|
524
672
|
affectedRecords: '受影响的记录({{count}}):',
|
|
525
673
|
skippedIneligible: '{{count}} 条所选记录不符合该动作的条件,将被跳过。',
|
|
674
|
+
skippedIneligible_one: '{{count}} 条所选记录不符合该动作的条件,将被跳过。',
|
|
675
|
+
skippedIneligible_other: '{{count}} 条所选记录不符合该动作的条件,将被跳过。',
|
|
526
676
|
rowFallback: '第 {{index}} 行',
|
|
527
677
|
andMore: '……以及另外 {{count}} 条',
|
|
528
678
|
processed: '已处理 {{count}} / {{total}}',
|
|
@@ -540,7 +690,6 @@ const zh = {
|
|
|
540
690
|
undo: '撤销',
|
|
541
691
|
undoing: '撤销中…',
|
|
542
692
|
done: '完成',
|
|
543
|
-
selectPlaceholder: '请选择…',
|
|
544
693
|
loading: '加载中…',
|
|
545
694
|
},
|
|
546
695
|
},
|
|
@@ -549,26 +698,59 @@ const zh = {
|
|
|
549
698
|
month: '月',
|
|
550
699
|
week: '周',
|
|
551
700
|
day: '日',
|
|
552
|
-
agenda: '日程',
|
|
553
701
|
allDay: '全天',
|
|
554
|
-
noEvents: '暂无事件',
|
|
555
702
|
newEvent: '新建事件',
|
|
556
703
|
moreEvents: '+{{count}} 更多',
|
|
704
|
+
unscheduled: '未排期 ({{count}})',
|
|
705
|
+
loading: '加载日历中…',
|
|
706
|
+
loadError: '错误:{{message}}',
|
|
707
|
+
configRequired: '需要日历配置。请指定 startDateField,这是日历唯一必填的键;事件标题无需 titleField 也能解析。',
|
|
708
|
+
configRequiredHint: '它属于视图的 calendar 块。界面页面没有自己的日历插槽:请将其 sourceView 指向一个声明了日历的视图。',
|
|
709
|
+
eventDetails: '事件详情',
|
|
710
|
+
pullToRefresh: '下拉刷新',
|
|
711
|
+
refreshing: '刷新中…',
|
|
712
|
+
onDate: '{{date}}',
|
|
713
|
+
eventTitle: '标题',
|
|
714
|
+
eventTitlePlaceholder: '这个事件是关于什么的?',
|
|
715
|
+
creating: '创建中…',
|
|
716
|
+
titleRequired: '请填写标题',
|
|
717
|
+
a11y: {
|
|
718
|
+
region: '日历',
|
|
719
|
+
grid: '日历网格',
|
|
720
|
+
goToToday: '转到今天',
|
|
721
|
+
previousPeriod: '上一时段',
|
|
722
|
+
nextPeriod: '下一时段',
|
|
723
|
+
currentDate: '当前日期:{{date}}',
|
|
724
|
+
dayCell: '{{date}},{{count}} 个日程',
|
|
725
|
+
dayCell_one: '{{date}},{{count}} 个日程',
|
|
726
|
+
dayCell_other: '{{date}},{{count}} 个日程',
|
|
727
|
+
resizeEventEnd: '调整日程结束时间',
|
|
728
|
+
resizeEventEndHint: '拖动以更改结束日期',
|
|
729
|
+
resizeStart: '调整开始时间',
|
|
730
|
+
resizeEnd: '调整结束时间',
|
|
731
|
+
},
|
|
557
732
|
},
|
|
558
733
|
list: {
|
|
559
734
|
loading: '正在加载记录…',
|
|
560
735
|
recordCount: '{{count}} 条记录',
|
|
561
|
-
|
|
736
|
+
recordCount_one: '{{count}} 条记录',
|
|
737
|
+
recordCount_other: '{{count}} 条记录',
|
|
562
738
|
addRecord: '添加记录',
|
|
739
|
+
// objectui#12703 — the compact list's footer link to the object's list or the block's view.
|
|
740
|
+
viewAll: '查看全部',
|
|
563
741
|
tabs: '标签页',
|
|
564
742
|
allRecords: '全部记录',
|
|
565
743
|
search: '搜索',
|
|
566
744
|
filter: '筛选',
|
|
567
745
|
filterRecords: '筛选记录',
|
|
746
|
+
filterActive: '筛选,{{count}} 个生效',
|
|
747
|
+
filterActive_one: '筛选,{{count}} 个生效',
|
|
748
|
+
filterActive_other: '筛选,{{count}} 个生效',
|
|
568
749
|
sort: '排序',
|
|
569
750
|
sortRecords: '排序记录',
|
|
570
751
|
sortByIdSuffix: '(按 ID)',
|
|
571
752
|
sortRelationalHint: '指向其他记录的列未列出:它们只能按存储的 ID 排序,而不是单元格中显示的名称。若要按该名称排序,请把该名称反规范化到本对象上,做成一个在来源变更时写入的存储字段,再按它排序。不要用公式字段:公式字段是虚拟的,不会为它存储任何列,服务端会拒绝按它排序。',
|
|
753
|
+
sortRelationalPicked: '关联列按存储的 ID 排序,而不是显示的名称。',
|
|
572
754
|
resetSortToDefault: '恢复视图默认排序',
|
|
573
755
|
group: '分组',
|
|
574
756
|
groupBy: '分组依据',
|
|
@@ -586,6 +768,7 @@ const zh = {
|
|
|
586
768
|
firstRunMessage: '创建第一条记录即可开始。',
|
|
587
769
|
noMatches: '没有匹配的记录',
|
|
588
770
|
noMatchesMessage: '没有符合当前筛选或搜索条件的记录,试试调整或清除它们。',
|
|
771
|
+
viewFilterNoMatchesMessage: '没有符合该视图筛选条件的记录。',
|
|
589
772
|
loadErrorTitle: '无法加载记录',
|
|
590
773
|
loadErrorMessage: '加载数据时出错。请检查网络连接后重试。',
|
|
591
774
|
loadErrorForbiddenTitle: '无权访问',
|
|
@@ -627,14 +810,15 @@ const zh = {
|
|
|
627
810
|
print: '打印',
|
|
628
811
|
hideFieldsTitle: '隐藏字段',
|
|
629
812
|
dataLimitReached: '显示前 {{limit}} 条记录。可能有更多数据。',
|
|
630
|
-
|
|
631
|
-
|
|
813
|
+
display: '显示',
|
|
814
|
+
layout: '布局',
|
|
815
|
+
rowNumbers: '行号',
|
|
816
|
+
resetToViewDefault: '恢复视图默认设置',
|
|
632
817
|
addGroup: '添加分组字段',
|
|
633
818
|
collapsedByDefault: '默认折叠',
|
|
634
819
|
removeGroup: '删除',
|
|
635
820
|
inlineEditShort: '行内编辑',
|
|
636
821
|
inlineEditLabel: '行内编辑记录(点击单元格进行编辑)',
|
|
637
|
-
recordEditingTitle: '记录编辑',
|
|
638
822
|
},
|
|
639
823
|
managedByBadge: {
|
|
640
824
|
config: {
|
|
@@ -670,15 +854,31 @@ const zh = {
|
|
|
670
854
|
deleteCard: '删除卡片',
|
|
671
855
|
deleteColumn: '删除列',
|
|
672
856
|
noCards: '暂无卡片',
|
|
857
|
+
columnCards: '{{column}} 的卡片',
|
|
858
|
+
laneCards: '{{column}} - {{lane}} 的卡片',
|
|
673
859
|
cardTitlePlaceholder: '输入卡片标题…',
|
|
674
860
|
uncategorized: '未分类',
|
|
861
|
+
loadMore: '加载更多',
|
|
675
862
|
columns: '列',
|
|
676
863
|
requiredFieldsTitle: '填写必填字段',
|
|
677
864
|
requiredFieldsDescription: '此次移动会使以下字段成为必填项。填写后即可继续。',
|
|
865
|
+
dnd: {
|
|
866
|
+
start: '已拿起 {{card}},当前在 {{column}}。',
|
|
867
|
+
overCard: '{{card}} 正移到 {{column}} 中的 {{target}} 上。',
|
|
868
|
+
overColumn: '{{card}} 正移到 {{column}}。',
|
|
869
|
+
overNone: '{{card}} 不在任何列上。',
|
|
870
|
+
moved: '{{card}} 已移到 {{column}}。',
|
|
871
|
+
dropped: '已放下 {{card}},仍在 {{column}}。',
|
|
872
|
+
cancelled: '已取消拖动。{{card}} 仍在 {{column}}。',
|
|
873
|
+
untitledCard: '未命名卡片',
|
|
874
|
+
unnamedColumn: '未命名列',
|
|
875
|
+
instructions: '如需将此卡片移到其他列,请用鼠标或触控拖动它。',
|
|
876
|
+
dragging: '正在拖动 {{card}}',
|
|
877
|
+
},
|
|
678
878
|
},
|
|
679
879
|
timeline: {
|
|
680
880
|
bucket: {
|
|
681
|
-
|
|
881
|
+
earlier: '更早',
|
|
682
882
|
today: '今天',
|
|
683
883
|
tomorrow: '明天',
|
|
684
884
|
thisWeek: '本周',
|
|
@@ -693,6 +893,17 @@ const zh = {
|
|
|
693
893
|
},
|
|
694
894
|
gantt: {
|
|
695
895
|
rowLabel: '条目',
|
|
896
|
+
unusableRange: {
|
|
897
|
+
malformedDate: '甘特图日期区间不可用 —— {{path}} 的值是 {{value}},无法解析为日期。每个甘特图日期都必须能被解析:每行条目的 startDate 与 endDate,以及 schema 上钉住的 minDate / maxDate。',
|
|
898
|
+
malformedRow: '甘特图行不可用 —— {{path}} 的值是 {{value}},不是行的形状。甘特图把 items 读作行的列表,每一行是带 label 和自身 items 的对象,每一行的 items 是条形的列表;这些位置上出现 null、数字、字符串或普通对象都无法绘制。',
|
|
899
|
+
inverted: '甘特图日期区间不可用 —— minDate {{minDate}} 晚于 maxDate {{maxDate}}。钉住的 minDate / maxDate 会覆盖由行数据算出的区间,因此该坐标轴没有任何列,也无法放置任何条形;请对调这两个值。',
|
|
900
|
+
},
|
|
901
|
+
},
|
|
902
|
+
unsupported: {
|
|
903
|
+
objectBoundGantt: '不支持的变体 "gantt" —— 对象绑定的时间线只渲染 feed 变体({{variants}})。甘特图需要字面量行,每行自带嵌套的 items,因此此处的甘特轴(scale)不起作用。',
|
|
904
|
+
},
|
|
905
|
+
unconfigured: {
|
|
906
|
+
noDateAxis: '时间线需要日期轴 —— 该视图未声明任何日期字段,而对象绑定的时间线不会虚构一个。请声明以下之一:{{fields}}。第一个是 spec 写法,其余为遗留别名。',
|
|
696
907
|
},
|
|
697
908
|
},
|
|
698
909
|
gantt: {
|
|
@@ -738,6 +949,7 @@ const zh = {
|
|
|
738
949
|
},
|
|
739
950
|
aria: {
|
|
740
951
|
taskList: '任务列表',
|
|
952
|
+
refreshing: '刷新中…',
|
|
741
953
|
},
|
|
742
954
|
tooltip: {
|
|
743
955
|
days: '天',
|
|
@@ -783,13 +995,19 @@ const zh = {
|
|
|
783
995
|
conflict: {
|
|
784
996
|
title: '排程冲突',
|
|
785
997
|
body: '此次移动与依赖约束冲突。是否自动重新排程 {{count}} 个受影响的任务?',
|
|
998
|
+
body_one: '此次移动与依赖约束冲突。是否自动重新排程 {{count}} 个受影响的任务?',
|
|
999
|
+
body_other: '此次移动与依赖约束冲突。是否自动重新排程 {{count}} 个受影响的任务?',
|
|
786
1000
|
confirm: '自动重新排程',
|
|
787
1001
|
cancel: '保持不变',
|
|
788
1002
|
},
|
|
789
1003
|
autoScheduleDlg: {
|
|
790
1004
|
title: '自动排程',
|
|
791
1005
|
body: '将顺延 {{count}} 个任务以满足依赖约束,是否执行?',
|
|
1006
|
+
body_one: '将顺延 {{count}} 个任务以满足依赖约束,是否执行?',
|
|
1007
|
+
body_other: '将顺延 {{count}} 个任务以满足依赖约束,是否执行?',
|
|
792
1008
|
skipped: '另有 {{count}} 项因锁定/无权限跳过。',
|
|
1009
|
+
skipped_one: '另有 {{count}} 项因锁定/无权限跳过。',
|
|
1010
|
+
skipped_other: '另有 {{count}} 项因锁定/无权限跳过。',
|
|
793
1011
|
confirm: '执行',
|
|
794
1012
|
cancel: '取消',
|
|
795
1013
|
none: '依赖均满足,无需排程',
|
|
@@ -840,10 +1058,14 @@ const zh = {
|
|
|
840
1058
|
tabActionsFor: '{{name}} 的视图操作',
|
|
841
1059
|
readonlyAriaLabel: '只读视图',
|
|
842
1060
|
readonlyTooltip: '系统视图 — 由代码定义,只读。',
|
|
1061
|
+
malformedFilter: '此视图的筛选条件有误,因此不显示任何记录:无法应用 {{subject}} 条件。',
|
|
1062
|
+
noObject: '未指定对象:请设置 {{property}} 或 dataSource.object。',
|
|
843
1063
|
},
|
|
844
1064
|
designer: {
|
|
845
1065
|
undo: '撤销',
|
|
846
1066
|
redo: '重做',
|
|
1067
|
+
canvasMinimap: '画布缩略图',
|
|
1068
|
+
versionHistory: '版本历史',
|
|
847
1069
|
},
|
|
848
1070
|
detail: {
|
|
849
1071
|
back: '返回',
|
|
@@ -857,9 +1079,12 @@ const zh = {
|
|
|
857
1079
|
lockedByApproval: '审批中已锁定',
|
|
858
1080
|
lockedTooltip: '该记录有待审批的请求,编辑已被锁定',
|
|
859
1081
|
writeStrippedTitle: '已保存,但部分字段未生效',
|
|
1082
|
+
writeWarningsTitle: '已保存,但有警告',
|
|
860
1083
|
writeStrippedReadonly: '以下字段为只读,未生效:{{fields}}',
|
|
861
1084
|
writeStrippedByState: '以下字段在记录当前状态下不可编辑,未生效:{{fields}}',
|
|
862
1085
|
writeStrippedPrimaryKey: '以下字段是记录的标识符,保存时无法修改,未生效:{{fields}}',
|
|
1086
|
+
writeStrippedComputed: '以下字段由服务端按公式计算,提交的值未生效:{{fields}}',
|
|
1087
|
+
writeStrippedStoredExpression: '以下字段的值由记录计算得出,已保存计算值而非提交的值:{{fields}}',
|
|
863
1088
|
writeStrippedUnknownReason: '以下字段未被服务端写入:{{fields}}',
|
|
864
1089
|
approvalPendingEditable: '审批中 · 可编辑',
|
|
865
1090
|
approvalPendingTooltip: '该记录有待审批的请求,但当前审批节点仍允许编辑',
|
|
@@ -881,6 +1106,13 @@ const zh = {
|
|
|
881
1106
|
pathStageLostUpcoming: '{{stage}},已失败,未到达',
|
|
882
1107
|
pathStageWonUpcoming: '{{stage}},目标阶段,未到达',
|
|
883
1108
|
linkCopied: '链接已复制到剪贴板',
|
|
1109
|
+
commentFailed: '评论未发布,内容没有保存,请重试。',
|
|
1110
|
+
reactionFailed: '表情回应未保存,请重试。',
|
|
1111
|
+
editComment: '编辑评论',
|
|
1112
|
+
deleteComment: '删除评论',
|
|
1113
|
+
deleteCommentConfirm: '确定要删除这条评论吗?',
|
|
1114
|
+
commentEditFailed: '您的修改未保存,评论保留原有内容。',
|
|
1115
|
+
commentDeleteFailed: '评论未删除,请重试。',
|
|
884
1116
|
linkCopyFailed: '复制链接失败',
|
|
885
1117
|
cancel: '取消',
|
|
886
1118
|
cancelEdit: '放弃更改',
|
|
@@ -907,7 +1139,8 @@ const zh = {
|
|
|
907
1139
|
pageHeaderActions: '页面标题栏操作',
|
|
908
1140
|
emojiPicker: '表情选择器',
|
|
909
1141
|
reactionCount: '{{emoji}} {{count}} 个回应',
|
|
910
|
-
|
|
1142
|
+
reactionCount_one: '{{emoji}} {{count}} 个回应',
|
|
1143
|
+
reactionCount_other: '{{emoji}} {{count}} 个回应',
|
|
911
1144
|
recordDetail: '记录详情',
|
|
912
1145
|
recordDetailWithLabel: '{{label}}详情',
|
|
913
1146
|
openAsFullPage: '以完整页面打开',
|
|
@@ -934,7 +1167,6 @@ const zh = {
|
|
|
934
1167
|
viewAll: '查看全部',
|
|
935
1168
|
new: '新建',
|
|
936
1169
|
add: '添加',
|
|
937
|
-
emptyValue: '—',
|
|
938
1170
|
activity: '活动',
|
|
939
1171
|
history: '历史',
|
|
940
1172
|
historyEmpty: '暂无历史记录',
|
|
@@ -949,6 +1181,7 @@ const zh = {
|
|
|
949
1181
|
sortBy: '排序',
|
|
950
1182
|
filterPlaceholder: '筛选…',
|
|
951
1183
|
highlightFields: '关键字段',
|
|
1184
|
+
highlightsLabel: '记录关键字段',
|
|
952
1185
|
// Comments
|
|
953
1186
|
comments: '评论',
|
|
954
1187
|
searchComments: '搜索评论…',
|
|
@@ -960,8 +1193,14 @@ const zh = {
|
|
|
960
1193
|
unpin: '取消置顶',
|
|
961
1194
|
justNow: '刚刚',
|
|
962
1195
|
minutesAgo: '{{count}}分钟前',
|
|
1196
|
+
minutesAgo_one: '{{count}}分钟前',
|
|
1197
|
+
minutesAgo_other: '{{count}}分钟前',
|
|
963
1198
|
hoursAgo: '{{count}}小时前',
|
|
1199
|
+
hoursAgo_one: '{{count}}小时前',
|
|
1200
|
+
hoursAgo_other: '{{count}}小时前',
|
|
964
1201
|
daysAgo: '{{count}}天前',
|
|
1202
|
+
daysAgo_one: '{{count}}天前',
|
|
1203
|
+
daysAgo_other: '{{count}}天前',
|
|
965
1204
|
// Activity feed actors
|
|
966
1205
|
systemActor: '系统',
|
|
967
1206
|
unknownUser: '未知用户',
|
|
@@ -975,7 +1214,8 @@ const zh = {
|
|
|
975
1214
|
// Attachments
|
|
976
1215
|
dropFilesToUpload: '拖拽文件到此处或点击上传',
|
|
977
1216
|
attachmentCount: '{{count}} 个附件',
|
|
978
|
-
|
|
1217
|
+
attachmentCount_one: '{{count}} 个附件',
|
|
1218
|
+
attachmentCount_other: '{{count}} 个附件',
|
|
979
1219
|
removeAttachment: '移除附件',
|
|
980
1220
|
// Record Attachments panel (enable.files, objectstack#4358)
|
|
981
1221
|
attachments: '附件',
|
|
@@ -984,6 +1224,7 @@ const zh = {
|
|
|
984
1224
|
noAttachments: '暂无附件。上传一个文件开始吧。',
|
|
985
1225
|
downloadAttachment: '下载',
|
|
986
1226
|
deleteAttachment: '删除附件',
|
|
1227
|
+
deleteAttachmentConfirm: '确定要删除附件“{{name}}”吗?',
|
|
987
1228
|
attachmentDeleteDenied: '只有上传者或可编辑此记录的用户才能删除此附件。',
|
|
988
1229
|
attachmentParentAccessDenied: '您无权为此记录添加附件。',
|
|
989
1230
|
attachmentDownloadDenied: '您无权下载此附件。',
|
|
@@ -994,11 +1235,6 @@ const zh = {
|
|
|
994
1235
|
attachmentsApiUnavailable: '此对象上的附件列表不可用。',
|
|
995
1236
|
retryLoadAttachments: '重试',
|
|
996
1237
|
// Diff
|
|
997
|
-
unifiedDiff: '统一视图',
|
|
998
|
-
sideBySideDiff: '并排视图',
|
|
999
|
-
noChanges: '无变更',
|
|
1000
|
-
previousVersion: '旧版本',
|
|
1001
|
-
currentVersion: '新版本',
|
|
1002
1238
|
// Discussion
|
|
1003
1239
|
discussion: '讨论',
|
|
1004
1240
|
showDiscussion: '显示讨论 ({{count}})',
|
|
@@ -1017,18 +1253,12 @@ const zh = {
|
|
|
1017
1253
|
subscribedTooltip: '已订阅 — 点击取消订阅',
|
|
1018
1254
|
unsubscribedTooltip: '订阅通知',
|
|
1019
1255
|
// Navigation
|
|
1020
|
-
firstRecord: '第一条记录 (Home)',
|
|
1021
|
-
previousRecordKey: '上一条记录 (←)',
|
|
1022
|
-
nextRecordKey: '下一条记录 (→)',
|
|
1023
|
-
lastRecord: '最后一条记录 (End)',
|
|
1024
1256
|
noRecords: '无记录',
|
|
1025
1257
|
// objectui#3863 — base key. zh has a single plural category (`other`), so this
|
|
1026
1258
|
// slot is unreachable here and equals `_other` for key-set parity.
|
|
1027
1259
|
showEmptyRelated: '+ {{count}} 个为空',
|
|
1028
1260
|
showEmptyRelated_one: '+ {{count}} 个为空',
|
|
1029
1261
|
showEmptyRelated_other: '+ {{count}} 个为空',
|
|
1030
|
-
searchWhileNavigating: '导航时搜索',
|
|
1031
|
-
searchRecords: '搜索记录…',
|
|
1032
1262
|
// Activity timeline
|
|
1033
1263
|
allActivity: '全部动态',
|
|
1034
1264
|
commentsOnly: '仅评论',
|
|
@@ -1036,13 +1266,29 @@ const zh = {
|
|
|
1036
1266
|
tasksOnly: '仅任务',
|
|
1037
1267
|
leaveCommentPlaceholder: '留下评论… (Ctrl+Enter 提交)',
|
|
1038
1268
|
noActivity: '暂无活动记录',
|
|
1269
|
+
activityAccessDenied: '您没有查看此记录活动的权限。',
|
|
1270
|
+
commentsAccessDenied: '您没有查看此记录评论的权限。',
|
|
1271
|
+
// objectui#7149 — the rest of `ActivityTimeline`. The four chip labels the
|
|
1272
|
+
// `detail.*` pack did not already name, and the `formatFieldChange`
|
|
1273
|
+
// sentences, which are assembled in code and so need interpolation holes.
|
|
1274
|
+
allFilter: '全部',
|
|
1275
|
+
createsFilter: '创建',
|
|
1276
|
+
deletesFilter: '删除',
|
|
1277
|
+
statusChangesFilter: '状态变更',
|
|
1278
|
+
activityEmptyValue: '(空)',
|
|
1279
|
+
activityFieldChanged: '将 {{field}} 从“{{old}}”改为“{{new}}”',
|
|
1280
|
+
activityCreated: '创建了此记录',
|
|
1281
|
+
activityDeleted: '删除了此记录',
|
|
1282
|
+
activityStatusChanged: '将状态改为“{{value}}”',
|
|
1283
|
+
activityUpdated: '更新了记录',
|
|
1039
1284
|
loadMore: '加载更多',
|
|
1040
1285
|
edited: '(已编辑)',
|
|
1041
1286
|
via: '通过 {{source}}',
|
|
1042
1287
|
viewSource: '查看来源',
|
|
1043
1288
|
// Replies
|
|
1044
1289
|
replyCount: '{{count}} 条回复',
|
|
1045
|
-
|
|
1290
|
+
replyCount_one: '{{count}} 条回复',
|
|
1291
|
+
replyCount_other: '{{count}} 条回复',
|
|
1046
1292
|
replyPlaceholder: '回复…',
|
|
1047
1293
|
// 无障碍标签
|
|
1048
1294
|
filterActivity: '筛选活动',
|
|
@@ -1055,13 +1301,27 @@ const zh = {
|
|
|
1055
1301
|
copyPhone: '复制电话号码',
|
|
1056
1302
|
copyRecordId: '复制记录 ID',
|
|
1057
1303
|
showEmptyFields: '显示 {{count}} 个空字段',
|
|
1304
|
+
showEmptyFields_one: '显示 {{count}} 个空字段',
|
|
1305
|
+
showEmptyFields_other: '显示 {{count}} 个空字段',
|
|
1058
1306
|
hideEmptyFields: '隐藏空字段',
|
|
1059
1307
|
noValue: '无',
|
|
1308
|
+
unresolvedReference: '未解析的引用:{{value}} 未能解析为用户',
|
|
1309
|
+
unresolvedLookupReference: '未解析的引用:{{value}} 在本屏未能解析为记录',
|
|
1310
|
+
repeaterItemCount: '{{count}} 项',
|
|
1311
|
+
repeaterItemCount_one: '{{count}} 项',
|
|
1312
|
+
repeaterItemCount_other: '{{count}} 项',
|
|
1313
|
+
fileCount: '{{count}} 个文件',
|
|
1314
|
+
fileCount_one: '{{count}} 个文件',
|
|
1315
|
+
fileCount_other: '{{count}} 个文件',
|
|
1060
1316
|
},
|
|
1061
1317
|
chart: {
|
|
1062
|
-
noData: '暂无图表数据',
|
|
1063
1318
|
loading: '图表加载中…',
|
|
1319
|
+
refreshing: '刷新中…',
|
|
1064
1320
|
nullCategory: '(未指定)',
|
|
1321
|
+
scatterOneMeasure: '散点图只绘制一个度量。请只保留一个系列:',
|
|
1322
|
+
unconfigured: {
|
|
1323
|
+
noCategoryAxis: '图表需要分类轴 —— 对象绑定的图表不会虚构一个。请声明以下之一:',
|
|
1324
|
+
},
|
|
1065
1325
|
},
|
|
1066
1326
|
report: {
|
|
1067
1327
|
total: '总计',
|
|
@@ -1076,6 +1336,7 @@ const zh = {
|
|
|
1076
1336
|
loading: '加载中…',
|
|
1077
1337
|
failedToLoad: '矩阵报表加载失败:{{message}}',
|
|
1078
1338
|
needsAcross: '矩阵报表至少需要一个 `groupingsAcross` 字段。',
|
|
1339
|
+
forbiddenMessage: '你没有查看该报表数据的权限。',
|
|
1079
1340
|
aggregate: {
|
|
1080
1341
|
count: '计数',
|
|
1081
1342
|
countDistinct: '去重计数',
|
|
@@ -1089,26 +1350,34 @@ const zh = {
|
|
|
1089
1350
|
panelTitle: '编辑报表',
|
|
1090
1351
|
},
|
|
1091
1352
|
},
|
|
1092
|
-
map: {
|
|
1093
|
-
searchLocations: '搜索位置…',
|
|
1094
|
-
locationDetails: '位置详情',
|
|
1095
|
-
markersCount: '{{count}} 个标记',
|
|
1096
|
-
invalidCoordinates: '{{count}} 条记录因坐标缺失或无效已从地图中排除。',
|
|
1097
|
-
invalidCoordinatesPlural: '{{count}} 条记录因坐标缺失或无效已从地图中排除。',
|
|
1098
|
-
},
|
|
1099
1353
|
dashboard: {
|
|
1100
1354
|
addWidget: '添加组件',
|
|
1101
|
-
removeWidget: '移除组件',
|
|
1102
1355
|
editLayout: '编辑布局',
|
|
1103
1356
|
saveLayout: '保存布局',
|
|
1104
1357
|
resetLayout: '重置布局',
|
|
1105
1358
|
total: '总计',
|
|
1106
|
-
noDataAvailable: '暂无数据',
|
|
1107
1359
|
noDataSourceFor: '没有可用的数据源:',
|
|
1108
|
-
|
|
1360
|
+
// objectui#7063 — the DEFAULT empty state every dashboard widget renders
|
|
1361
|
+
// when its query SUCCEEDED and returned nothing. It replaced the terse
|
|
1362
|
+
// per-widget `noRows` / `noDataAvailable` fragments at the render site;
|
|
1363
|
+
// objectui#7125 deleted those two keys from all ten packs once nothing
|
|
1364
|
+
// read them. The copy here has to read as a state rather than a failure,
|
|
1365
|
+
// which is why it says the widget loaded. `sourceLabel` carries its own
|
|
1366
|
+
// punctuation so the call site concatenates no separator (see
|
|
1367
|
+
// `WidgetEmptyState`).
|
|
1368
|
+
empty: {
|
|
1369
|
+
title: '暂时还没有数据',
|
|
1370
|
+
message: '该组件已成功加载,只是查询目前没有返回任何记录。',
|
|
1371
|
+
sourceLabel: '数据源:',
|
|
1372
|
+
},
|
|
1109
1373
|
loading: '加载中…',
|
|
1374
|
+
refreshing: '刷新中…',
|
|
1375
|
+
refreshAll: '全部刷新',
|
|
1376
|
+
refreshDashboard: '刷新仪表盘',
|
|
1110
1377
|
pickMeasures: '请为该数据集组件选择度量(值)。',
|
|
1111
1378
|
datasetUnsupported: '当前数据源不支持数据集查询。',
|
|
1379
|
+
widgetForbiddenTitle: '无权访问',
|
|
1380
|
+
widgetForbiddenMessage: '你没有查看该组件数据的权限。',
|
|
1112
1381
|
details: '明细',
|
|
1113
1382
|
exportCsv: '导出 CSV',
|
|
1114
1383
|
openInList: '在列表中打开',
|
|
@@ -1255,10 +1524,6 @@ const zh = {
|
|
|
1255
1524
|
appDescription: '描述',
|
|
1256
1525
|
appIcon: '图标',
|
|
1257
1526
|
template: '模板',
|
|
1258
|
-
layout: '布局',
|
|
1259
|
-
layoutSidebar: '侧边栏',
|
|
1260
|
-
layoutHeader: '顶部导航',
|
|
1261
|
-
layoutEmpty: '空白',
|
|
1262
1527
|
selectObjects: '选择对象',
|
|
1263
1528
|
searchObjects: '搜索对象…',
|
|
1264
1529
|
selectAll: '全选',
|
|
@@ -1267,7 +1532,6 @@ const zh = {
|
|
|
1267
1532
|
addGroup: '添加分组',
|
|
1268
1533
|
addUrl: '添加链接',
|
|
1269
1534
|
addSeparator: '添加分隔线',
|
|
1270
|
-
noNavItems: '暂无导航项。',
|
|
1271
1535
|
logoUrl: 'Logo 链接',
|
|
1272
1536
|
primaryColor: '主色调',
|
|
1273
1537
|
faviconUrl: '网站图标链接',
|
|
@@ -1294,13 +1558,12 @@ const zh = {
|
|
|
1294
1558
|
appearance: '外观',
|
|
1295
1559
|
rowHeight: '行高',
|
|
1296
1560
|
livePreview: '实时预览',
|
|
1297
|
-
stepBasicDesc: '
|
|
1561
|
+
stepBasicDesc: '名称、标题和图标',
|
|
1298
1562
|
stepObjectsDesc: '选择业务对象',
|
|
1299
1563
|
stepNavigationDesc: '构建导航树',
|
|
1300
1564
|
stepBrandingDesc: 'Logo、颜色和图标',
|
|
1301
1565
|
noObjectsFound: '未找到对象。',
|
|
1302
1566
|
noNavItemsHint: '暂无导航项。请在上一步选择对象或手动添加项目。',
|
|
1303
|
-
separator: '分隔线',
|
|
1304
1567
|
separatorLabel: '— 分隔线 —',
|
|
1305
1568
|
newGroup: '新建分组',
|
|
1306
1569
|
newLink: '新建链接',
|
|
@@ -1334,6 +1597,7 @@ const zh = {
|
|
|
1334
1597
|
navTypeSeparator: '分隔线',
|
|
1335
1598
|
navTypeAction: '操作',
|
|
1336
1599
|
navTypeComponent: '组件',
|
|
1600
|
+
navTypeDoc: '文档',
|
|
1337
1601
|
navEditIcon: '编辑图标',
|
|
1338
1602
|
navToggleVisible: '切换可见性',
|
|
1339
1603
|
navHidden: '已隐藏',
|
|
@@ -1411,11 +1675,8 @@ const zh = {
|
|
|
1411
1675
|
defaultValue: '默认值',
|
|
1412
1676
|
placeholder: '占位文本',
|
|
1413
1677
|
referenceTo: '引用对象',
|
|
1414
|
-
formula: '公式',
|
|
1415
1678
|
options: '选项',
|
|
1416
1679
|
addOption: '添加选项',
|
|
1417
|
-
validationRules: '验证规则',
|
|
1418
|
-
addRule: '添加规则',
|
|
1419
1680
|
systemBadge: '系统',
|
|
1420
1681
|
ungrouped: '通用',
|
|
1421
1682
|
deleteConfirmTitle: '删除字段?',
|
|
@@ -1434,32 +1695,60 @@ const zh = {
|
|
|
1434
1695
|
},
|
|
1435
1696
|
},
|
|
1436
1697
|
console: {
|
|
1698
|
+
studio: {
|
|
1699
|
+
title: 'Studio',
|
|
1700
|
+
accessRequired: '你需要 Studio 访问权限才能打开 Studio。',
|
|
1701
|
+
},
|
|
1437
1702
|
saveAdvisoryTitle: '已保存 — 编辑检查提出了 {{count}} 条建议',
|
|
1703
|
+
saveAdvisoryTitle_one: '已保存 — 编辑检查提出了 {{count}} 条建议',
|
|
1704
|
+
saveAdvisoryTitle_other: '已保存 — 编辑检查提出了 {{count}} 条建议',
|
|
1705
|
+
publishAdvisoryTitle: '已发布 — 编辑检查提出了 {{count}} 条建议',
|
|
1706
|
+
publishAdvisoryTitle_one: '已发布 — 编辑检查提出了 {{count}} 条建议',
|
|
1707
|
+
publishAdvisoryTitle_other: '已发布 — 编辑检查提出了 {{count}} 条建议',
|
|
1708
|
+
importMappingsUnavailable: "无法加载 {{object}} 的已保存导入映射",
|
|
1709
|
+
importMappingsRefused: "服务器拒绝了此请求,因此该列表为空是因为读取失败,而不是因为没有注册任何映射。请重新登录,或联系管理员申请访问权限。",
|
|
1710
|
+
importMappingsUnreadable: "该列表为空是因为读取失败,而不是因为没有注册任何映射。请重试;如果反复出现,请反馈此问题。",
|
|
1711
|
+
savedViewsUnavailable: "无法加载 {{object}} 的已保存视图",
|
|
1712
|
+
savedViewsRefused: "服务器拒绝了此请求,因此该列表为空是因为读取失败,而不是因为该对象没有已保存的视图。请重新登录,或联系管理员申请访问权限。",
|
|
1713
|
+
savedViewsUnreadable: "该列表为空是因为读取失败,而不是因为该对象没有已保存的视图。请重试;如果反复出现,请反馈此问题。",
|
|
1438
1714
|
title: 'ObjectStack 控制台',
|
|
1439
|
-
initializing: '
|
|
1715
|
+
initializing: '正在打开你的控制台…',
|
|
1716
|
+
skipToContent: '跳到主要内容',
|
|
1440
1717
|
search: '搜索…',
|
|
1441
1718
|
breadcrumb: {
|
|
1442
|
-
dashboards: '仪表盘',
|
|
1443
|
-
pages: '页面',
|
|
1444
|
-
reports: '报告',
|
|
1445
1719
|
system: '系统',
|
|
1720
|
+
marketplace: '应用市场',
|
|
1721
|
+
settings: '设置',
|
|
1722
|
+
apps: '应用',
|
|
1723
|
+
profile: '个人资料',
|
|
1724
|
+
approvals: '审批',
|
|
1725
|
+
aiApprovals: 'AI 审批',
|
|
1726
|
+
auditLog: '审计日志',
|
|
1446
1727
|
},
|
|
1447
1728
|
nav: {
|
|
1448
1729
|
pinItem: '固定 {{name}}',
|
|
1449
1730
|
unpinItem: '取消固定 {{name}}',
|
|
1450
|
-
dragToReorder: '拖动以重新排序',
|
|
1451
1731
|
favorites: '收藏',
|
|
1732
|
+
launcherLabel: '应用启动台',
|
|
1733
|
+
menuLabel: '应用导航',
|
|
1734
|
+
menuEmpty: '此应用没有你可以打开的导航项。',
|
|
1735
|
+
itemMenu: '{{name}} 的更多操作',
|
|
1736
|
+
openInNewTab: '在新标签页打开',
|
|
1737
|
+
copyLink: '复制链接',
|
|
1738
|
+
linkCopied: '链接已复制到剪贴板',
|
|
1739
|
+
linkCopyFailed: '复制链接失败',
|
|
1740
|
+
design: '设计',
|
|
1452
1741
|
},
|
|
1453
1742
|
settingsHub: {
|
|
1454
1743
|
title: '设置',
|
|
1455
|
-
subtitle: '
|
|
1744
|
+
subtitle: '配置系统、集成与功能开关。',
|
|
1456
1745
|
loadError: '加载设置失败',
|
|
1457
1746
|
empty: '尚未注册任何设置。插件可通过 SettingsService 注册设置清单。',
|
|
1458
1747
|
settingsCount: '{{n}} 项设置',
|
|
1459
1748
|
beta: 'Beta',
|
|
1460
1749
|
// 分类小标题,按 manifest 的 `category` 值取键;未知(插件自定义)分类回退到原始字符串。
|
|
1461
1750
|
categories: {
|
|
1462
|
-
Workspace: '
|
|
1751
|
+
Workspace: '常规',
|
|
1463
1752
|
Communication: '通讯',
|
|
1464
1753
|
Security: '安全',
|
|
1465
1754
|
Infrastructure: '基础设施',
|
|
@@ -1486,18 +1775,31 @@ const zh = {
|
|
|
1486
1775
|
unsavedCount: '{{count}} 项未保存的更改',
|
|
1487
1776
|
unsavedCount_one: '{{count}} 项未保存的更改',
|
|
1488
1777
|
unsavedCount_other: '{{count}} 项未保存的更改',
|
|
1778
|
+
fieldErrorsToast: '{{count}} 项设置需要处理:{{settings}}',
|
|
1779
|
+
fieldErrorsToast_one: '{{count}} 项设置需要处理:{{settings}}',
|
|
1780
|
+
fieldErrorsToast_other: '{{count}} 项设置需要处理:{{settings}}',
|
|
1489
1781
|
cryptoRefusalTitle: '此部署无法加密机密信息',
|
|
1490
1782
|
cryptoRefusalSubjectSuffix: '被声明为加密字段,因此未写入任何内容。',
|
|
1491
1783
|
cryptoRefusalNoSubject: '声明为加密的值被拒绝,因此未写入任何内容。',
|
|
1492
1784
|
cryptoRefusalToast: '无法加密机密信息:{{subject}}',
|
|
1493
1785
|
cryptoRefusalToastNoSubject: '无法加密机密信息',
|
|
1786
|
+
sourceBadgeInherited: '继承自{{source}}',
|
|
1787
|
+
sourceBadgeOverrides: '覆盖{{source}}',
|
|
1788
|
+
resetToDefault: '恢复默认',
|
|
1789
|
+
envLockBadge: '环境变量锁定',
|
|
1790
|
+
envLockBadgeTitle: '由环境变量固定,无法在界面中编辑。',
|
|
1791
|
+
deprecatedBadge: '已弃用',
|
|
1792
|
+
deprecatedBadgeReplacedBy: '已弃用 → {{replacedBy}}',
|
|
1793
|
+
unsupportedSpecifierType: '不支持的设置项类型:{{type}}',
|
|
1794
|
+
},
|
|
1795
|
+
workspaceTimezonePrompt: {
|
|
1796
|
+
title: '设置系统时区',
|
|
1797
|
+
description: '本系统仍在使用平台默认时区 {{current}}。系统时区决定公式中“今天”的含义、报表如何按日期分组,以及日期和时间如何显示,对系统内所有人生效。下方已填入你的浏览器时区。',
|
|
1798
|
+
laterHint: '之后可随时在“设置”页面中修改。',
|
|
1799
|
+
decline: '保持默认',
|
|
1800
|
+
confirm: '设置时区',
|
|
1801
|
+
saved: '系统时区已设置为 {{zone}}',
|
|
1494
1802
|
},
|
|
1495
|
-
loadingSteps: {
|
|
1496
|
-
connecting: '正在连接数据源',
|
|
1497
|
-
loadingConfig: '正在加载配置',
|
|
1498
|
-
preparingWorkspace: '正在准备工作区',
|
|
1499
|
-
},
|
|
1500
|
-
loadingHint: '初始化新环境可能需要几秒钟。',
|
|
1501
1803
|
error: {
|
|
1502
1804
|
connectionFailed: '无法连接到服务器',
|
|
1503
1805
|
serverUnreachable: '无法访问服务器 {{url}}。',
|
|
@@ -1521,21 +1823,20 @@ const zh = {
|
|
|
1521
1823
|
groups: {
|
|
1522
1824
|
general: '通用',
|
|
1523
1825
|
navigation: '导航',
|
|
1524
|
-
dataViews: '数据视图',
|
|
1525
1826
|
aiChat: 'AI 助手',
|
|
1526
|
-
preferences: '偏好设置',
|
|
1527
1827
|
},
|
|
1528
1828
|
openCommandPalette: '打开命令面板',
|
|
1529
1829
|
showShortcuts: '显示键盘快捷键',
|
|
1530
1830
|
closeDialog: '关闭对话框/面板',
|
|
1531
1831
|
toggleSidebar: '切换侧边栏',
|
|
1532
|
-
focusSearch: '聚焦搜索',
|
|
1533
|
-
createRecord: '新建记录',
|
|
1534
|
-
refreshData: '刷新数据',
|
|
1535
|
-
editRecord: '编辑选中记录',
|
|
1536
1832
|
newChat: '新建对话',
|
|
1537
1833
|
toggleChatsList: '切换对话列表',
|
|
1538
|
-
|
|
1834
|
+
goHome: '返回首页',
|
|
1835
|
+
},
|
|
1836
|
+
reportIndex: {
|
|
1837
|
+
title: '报表',
|
|
1838
|
+
emptyTitle: '暂无报表',
|
|
1839
|
+
emptyDescription: '此应用没有你可以打开的报表。',
|
|
1539
1840
|
},
|
|
1540
1841
|
commandPalette: {
|
|
1541
1842
|
title: '命令面板',
|
|
@@ -1545,6 +1846,8 @@ const zh = {
|
|
|
1545
1846
|
records: '记录',
|
|
1546
1847
|
recentRecords: '最近访问',
|
|
1547
1848
|
objects: '对象',
|
|
1849
|
+
packages: '软件包',
|
|
1850
|
+
flows: '流程',
|
|
1548
1851
|
dashboards: '仪表盘',
|
|
1549
1852
|
pages: '页面',
|
|
1550
1853
|
reports: '报表',
|
|
@@ -1568,13 +1871,18 @@ const zh = {
|
|
|
1568
1871
|
},
|
|
1569
1872
|
usage: {
|
|
1570
1873
|
title: 'AI 用量',
|
|
1571
|
-
|
|
1572
|
-
meterAsk: '数据问询',
|
|
1874
|
+
poolUsed: '已用 {{percent}}',
|
|
1573
1875
|
statusOk: '额度充足',
|
|
1574
1876
|
statusLow: '即将用完',
|
|
1575
1877
|
statusFull: '额度已用完',
|
|
1576
1878
|
resetsDaily: '今晚重置',
|
|
1577
1879
|
resetsMonthly: '下个周期重置',
|
|
1880
|
+
resetsWeeklyDays: '{{count}} 天后重置',
|
|
1881
|
+
resetsWeeklyDays_one: '{{count}} 天后重置',
|
|
1882
|
+
resetsWeeklyDays_other: '{{count}} 天后重置',
|
|
1883
|
+
resetsWeeklyHours: '{{count}} 小时后重置',
|
|
1884
|
+
resetsWeeklyHours_one: '{{count}} 小时后重置',
|
|
1885
|
+
resetsWeeklyHours_other: '{{count}} 小时后重置',
|
|
1578
1886
|
ctaUpgrade: '升级以继续使用',
|
|
1579
1887
|
ctaTopUp: '购买额度包以继续',
|
|
1580
1888
|
ariaLabel: 'AI 用量:{{status}}',
|
|
@@ -1587,6 +1895,31 @@ const zh = {
|
|
|
1587
1895
|
share: '分享',
|
|
1588
1896
|
shareTitle: '分享此对话',
|
|
1589
1897
|
shareDisabledTitle: '开始对话后即可分享',
|
|
1898
|
+
buildDoctor: '构建诊断',
|
|
1899
|
+
buildDoctorTitle: '构建诊断 — 实际生效了哪些变更?',
|
|
1900
|
+
buildDoctorDisabledTitle: '请先发送一条消息',
|
|
1901
|
+
buildDoctorDrawer: {
|
|
1902
|
+
description: '智能体声称的变更与实际已生效的内容对照。只读诊断。',
|
|
1903
|
+
reconciling: '正在核对…',
|
|
1904
|
+
notAvailable: '不可用——未找到该对话,或你没有访问权限。',
|
|
1905
|
+
untitled: '(无标题)',
|
|
1906
|
+
summary: '{{turns}} 轮 · {{messages}} 条消息 · {{tokens}} tok · LLM {{seconds}} 秒',
|
|
1907
|
+
allLive: '全部 {{count}} 项尝试的变更均已生效——没有丢失。',
|
|
1908
|
+
discrepancies: '{{count}} 处不一致——对话中所说的与实际生效的内容不符。',
|
|
1909
|
+
orphanedTitle: '已提议但从未应用',
|
|
1910
|
+
orphanedHint: '智能体提议了确认卡片,但之后没有任何一轮应用它——该变更被静默丢弃。',
|
|
1911
|
+
missingTitle: '声称已应用但缺失',
|
|
1912
|
+
missingHint: '工具结果称已应用,但该产物并未在 sys_metadata 中生效。',
|
|
1913
|
+
toolErrorsTitle: '工具错误',
|
|
1914
|
+
toolErrorsHint: '构建期间返回错误的工具调用。',
|
|
1915
|
+
verifyTitle: '构建检查(verify_build)',
|
|
1916
|
+
yourApp: '你的应用:',
|
|
1917
|
+
noIssues: '0 个问题',
|
|
1918
|
+
issueCount: '{{count}} 个问题',
|
|
1919
|
+
platformNoise: '已隐藏 {{count}} 条平台 sys_* 发现',
|
|
1920
|
+
pendingActions: '待处理操作',
|
|
1921
|
+
timeline: '时间线({{count}})',
|
|
1922
|
+
},
|
|
1590
1923
|
newChat: '新对话',
|
|
1591
1924
|
searchChats: '搜索对话…',
|
|
1592
1925
|
noChatsYet: '暂无对话',
|
|
@@ -1609,6 +1942,8 @@ const zh = {
|
|
|
1609
1942
|
liveCanvasUnlisted: '运行预览 · {{app}}(未发布 · 仅自己可见)',
|
|
1610
1943
|
loadingAgents: '正在加载助手…',
|
|
1611
1944
|
askAnything: '输入你的问题…',
|
|
1945
|
+
askOrChangeApp: '问问数据,或让我改改这个应用…',
|
|
1946
|
+
describeAppToBuild: '描述你想搭建的应用,或要改的地方…',
|
|
1612
1947
|
emptyTitle: '开始对话',
|
|
1613
1948
|
emptyDescription: '可以直接提问,助手会结合当前应用上下文提供帮助。',
|
|
1614
1949
|
switchAssistant: '切换助手',
|
|
@@ -1616,7 +1951,7 @@ const zh = {
|
|
|
1616
1951
|
empty: {
|
|
1617
1952
|
build: {
|
|
1618
1953
|
title: '用 AI 搭建',
|
|
1619
|
-
description: '
|
|
1954
|
+
description: '用自然语言描述一个应用 —— 我会起草对象、界面和示例数据,随后你审阅并发布。',
|
|
1620
1955
|
},
|
|
1621
1956
|
ask: {
|
|
1622
1957
|
title: '向你的数据提问',
|
|
@@ -1625,17 +1960,22 @@ const zh = {
|
|
|
1625
1960
|
editApp: {
|
|
1626
1961
|
title: '正在编辑「{{app}}」',
|
|
1627
1962
|
titleGeneric: '编辑此应用',
|
|
1628
|
-
description: '想改点什么?我会就地修改这个应用 ——
|
|
1963
|
+
description: '想改点什么?我会就地修改这个应用 —— 加字段、对象、视图或仪表盘,或调整已有内容。',
|
|
1629
1964
|
},
|
|
1630
1965
|
},
|
|
1631
1966
|
clearConversation: '清空',
|
|
1632
1967
|
sendHint: '发送',
|
|
1968
|
+
newlineHint: '换行',
|
|
1633
1969
|
agentActivity: '执行过程',
|
|
1634
1970
|
toolCompleted: '已完成',
|
|
1635
1971
|
toolRunning: '运行中',
|
|
1636
1972
|
toolAwaitingApproval: '等待确认',
|
|
1637
1973
|
toolFailed: '失败',
|
|
1638
1974
|
toolDetailsHidden: '已隐藏工具参数和原始结果,仅保留过程摘要。',
|
|
1975
|
+
toolDenyReason: '操作员已在对话中拒绝',
|
|
1976
|
+
builderHandoffTitle: '在构建器中搭建',
|
|
1977
|
+
builderHandoffOpen: '在构建器中打开 →',
|
|
1978
|
+
builderHandoffSuperseded: '已有更新的请求',
|
|
1639
1979
|
copy: '复制',
|
|
1640
1980
|
copied: '已复制',
|
|
1641
1981
|
regenerate: '重新生成',
|
|
@@ -1652,7 +1992,7 @@ const zh = {
|
|
|
1652
1992
|
publishOk: '已发布,对象已生效。',
|
|
1653
1993
|
seedWarn: '已发布,但部分示例数据未能载入。',
|
|
1654
1994
|
openBuiltApp: '打开应用',
|
|
1655
|
-
|
|
1995
|
+
viewBuiltAppInStudio: '在 Studio 中查看',
|
|
1656
1996
|
previewDraft: '预览',
|
|
1657
1997
|
previewApp: '预览应用',
|
|
1658
1998
|
resizeSplit: '调整对话与预览的宽度',
|
|
@@ -1709,23 +2049,41 @@ const zh = {
|
|
|
1709
2049
|
recentRecords: '帮我列出最近创建的 5 条记录。',
|
|
1710
2050
|
recordCounts: '统计每个对象的记录数。',
|
|
1711
2051
|
},
|
|
2052
|
+
// cloud#1984 — these five chips are the maker's own recommendations, so
|
|
2053
|
+
// they may only ask for what ADR-0112 v1 BUILDS: objects, fields, views
|
|
2054
|
+
// (grid/kanban/calendar/gallery), pages, dashboards and sample data. No
|
|
2055
|
+
// wording that promises autonomous behaviour (alert / remind / notify /
|
|
2056
|
+
// automate / status workflow) — v1 has no flows, actions or schedules, and
|
|
2057
|
+
// the model silently degrades such a request into a board or a filtered
|
|
2058
|
+
// view, so the chip would promise an alert and deliver a page. REVERT to
|
|
2059
|
+
// the automation wording when ADR-0112 v2 re-adds flows and actions.
|
|
1712
2060
|
metadataAssistant: {
|
|
1713
|
-
buildCrm: '帮我搭建一个 CRM
|
|
1714
|
-
buildApp: '
|
|
1715
|
-
buildFlow: '
|
|
1716
|
-
buildInventory: '
|
|
1717
|
-
buildRecruiting: '
|
|
2061
|
+
buildCrm: '帮我搭建一个 CRM:客户、联系人、商机,以及一个按阶段汇总商机金额的仪表盘。',
|
|
2062
|
+
buildApp: '做一个项目管理应用:项目、任务(负责人、截止日期),按状态分组的看板,以及按截止日期的日历视图。',
|
|
2063
|
+
buildFlow: '设计一个工单系统:工单、优先级、状态(下拉),以及按状态分组的看板。',
|
|
2064
|
+
buildInventory: '做一个库存管理应用:商品、库存量、供应商,并用一个视图筛出低于安全库存的商品。',
|
|
2065
|
+
buildRecruiting: '做一个招聘跟踪应用:候选人、在招岗位、面试阶段字段,以及按阶段分组的看板。',
|
|
1718
2066
|
},
|
|
1719
2067
|
generic: {
|
|
1720
2068
|
help: '你可以帮我做什么?',
|
|
1721
2069
|
availableObjects: '列出可用的数据对象。',
|
|
1722
2070
|
recentActivity: '总结我的最近动态。',
|
|
1723
2071
|
},
|
|
2072
|
+
// objectui#7709 — the edit-mode starters, shown when the maker is bound
|
|
2073
|
+
// to an EXISTING app (`?package=`). Same rule as the five above: they
|
|
2074
|
+
// may only ask for what ADR-0112 v1 BUILDS. The fourth chip used to be
|
|
2075
|
+
// `addAutomation` ("an approval, a status flow, or a notification") and
|
|
2076
|
+
// every capability it named is refused by v1 (cloud#1956 / PR #1970), so
|
|
2077
|
+
// it now asks for sample data — `seed` IS on v1's whitelist, and having
|
|
2078
|
+
// no data is what an existing app most often lacks. REVERT: when
|
|
2079
|
+
// ADR-0112 v2 re-adds flows and actions, THIS chip's automation wording
|
|
2080
|
+
// comes back as `addAutomation`; the retired string is pinned for every
|
|
2081
|
+
// pack in `packages/i18n/src/__tests__/makerEditChips-v1-scope-7709.test.ts`.
|
|
1724
2082
|
editApp: {
|
|
1725
2083
|
addField: '给某个对象加一个字段。',
|
|
1726
2084
|
addObject: '新增一个对象,并关联到已有对象。',
|
|
1727
2085
|
addDashboard: '加一个展示关键指标的仪表盘。',
|
|
1728
|
-
|
|
2086
|
+
addSampleData: '给现有对象补一批贴近真实的示例数据,好拿去演示。',
|
|
1729
2087
|
},
|
|
1730
2088
|
},
|
|
1731
2089
|
// objectui#3546 slice four — the AI console surfaces: the /ai chat page's app switcher,
|
|
@@ -1771,6 +2129,7 @@ const zh = {
|
|
|
1771
2129
|
collapse: '收起对话',
|
|
1772
2130
|
maximize: '以完整页面打开',
|
|
1773
2131
|
open: '打开助手',
|
|
2132
|
+
planAwaitingApproval: '有一个方案等待确认',
|
|
1774
2133
|
},
|
|
1775
2134
|
group: {
|
|
1776
2135
|
today: '今天',
|
|
@@ -1780,6 +2139,21 @@ const zh = {
|
|
|
1780
2139
|
older: '更早',
|
|
1781
2140
|
},
|
|
1782
2141
|
},
|
|
2142
|
+
// objectui#9954 — see the `en` pack for what raises each case.
|
|
2143
|
+
readRate: {
|
|
2144
|
+
ratioTitle: '本系统读取量异常',
|
|
2145
|
+
ratio: '每写入 1 行就读取 {{ratio}} 行。平台会标记高于 {{threshold}} 的比率。没有任何东西被限制或阻断;这只是一份报告,便于检查读取方式。',
|
|
2146
|
+
noWritesTitle: '本系统只有读取、完全没有写入',
|
|
2147
|
+
noWrites: '有行被读取,却完全没有任何写入,因此读取比率没有上限。这是最严重的读数。平台会标记高于 {{threshold}} 的比率。没有任何东西被限制或阻断;这只是一份报告,便于检查读取方式。',
|
|
2148
|
+
},
|
|
2149
|
+
// objectui#10439 — see the `en` pack for what raises each case.
|
|
2150
|
+
storageUsage: {
|
|
2151
|
+
warningTitle: '存储空间即将用满',
|
|
2152
|
+
warning: '已用 {{used}} MB / {{limit}} MB。存储用满后,上传与导入将暂停。',
|
|
2153
|
+
blockedTitle: '存储已满,上传与导入已暂停',
|
|
2154
|
+
blocked: '已用 {{used}} MB / {{limit}} MB。现有数据不受影响,读取、导出与单条记录编辑照常。',
|
|
2155
|
+
upgrade: '升级以继续',
|
|
2156
|
+
},
|
|
1783
2157
|
errors: {
|
|
1784
2158
|
somethingWentWrong: '出错了',
|
|
1785
2159
|
unexpectedError: '渲染此视图时发生意外错误。',
|
|
@@ -1829,11 +2203,14 @@ const zh = {
|
|
|
1829
2203
|
objectView: {
|
|
1830
2204
|
systemViewReadonly: '系统视图由代码定义,只读。',
|
|
1831
2205
|
cannotEditMetaView: '该视图为内置视图,由代码定义,无法修改。',
|
|
2206
|
+
resetView: '重置视图',
|
|
2207
|
+
resetViewTitle: '将此视图的排序、筛选和列宽恢复为视图自身的设置。只影响你自己。',
|
|
1832
2208
|
cannotDeleteMetaView: '该视图为内置视图,由代码定义,无法删除。',
|
|
1833
2209
|
expandToPage: '以完整页面打开',
|
|
1834
2210
|
objectNotFound: '未找到对象',
|
|
1835
2211
|
objectNotFoundDescription: '对象"{{objectName}}"在当前配置中不存在。',
|
|
1836
2212
|
objectNotFoundHint: '请检查您的应用导航设置或从侧边栏选择其他对象。',
|
|
2213
|
+
objectPackageDisabled: '对象“{{objectName}}”所属的软件包已被禁用,因此当前不提供该对象。',
|
|
1837
2214
|
filterOrNotSavable: '该筛选条件之间使用「或」,保存到视图暂不支持这种结构。它仍会作用于当前列表 —— 取消「或」分组后才能保存到视图。',
|
|
1838
2215
|
filterNestedNotSavable: '该筛选使用了嵌套条件分组,保存到视图不支持这种结构。请改为单层条件列表后再保存到视图。',
|
|
1839
2216
|
allRecords: '所有记录',
|
|
@@ -1841,14 +2218,17 @@ const zh = {
|
|
|
1841
2218
|
import: '导入',
|
|
1842
2219
|
importTitle: '从 CSV 文件导入',
|
|
1843
2220
|
importedToast: '成功导入 {{count}} 行。',
|
|
2221
|
+
importedToast_one: '成功导入 {{count}} 行。',
|
|
2222
|
+
importedToast_other: '成功导入 {{count}} 行。',
|
|
1844
2223
|
importedWithSkipped: '已导入 {{ok}} 行;跳过 {{skipped}} 行。',
|
|
1845
2224
|
configureView: '配置视图',
|
|
1846
|
-
toolbar: '工具栏',
|
|
1847
2225
|
toolbarEnabledCount: '已启用 {{count}}/{{total}} 项',
|
|
1848
2226
|
searchFields: '搜索字段…',
|
|
1849
2227
|
title: '标题',
|
|
1850
2228
|
viewType: '视图类型',
|
|
1851
2229
|
recordCount: '{{count}} 条记录',
|
|
2230
|
+
recordCount_one: '{{count}} 条记录',
|
|
2231
|
+
recordCount_other: '{{count}} 条记录',
|
|
1852
2232
|
save: '保存',
|
|
1853
2233
|
discard: '丢弃',
|
|
1854
2234
|
createView: '创建视图',
|
|
@@ -1859,6 +2239,8 @@ const zh = {
|
|
|
1859
2239
|
deleteViewTitle: '删除视图',
|
|
1860
2240
|
deleteViewConfirm: '确定要删除视图 "{{name}}" 吗?此操作无法撤销。',
|
|
1861
2241
|
bulkDeleteConfirm: '确定要删除选中的 {{count}} 条记录吗?此操作无法撤销。',
|
|
2242
|
+
bulkDeleteConfirm_one: '确定要删除选中的 {{count}} 条记录吗?此操作无法撤销。',
|
|
2243
|
+
bulkDeleteConfirm_other: '确定要删除选中的 {{count}} 条记录吗?此操作无法撤销。',
|
|
1862
2244
|
duplicateViewName: '已存在同名视图。',
|
|
1863
2245
|
viewTypeGrid: '表格',
|
|
1864
2246
|
viewTypeGridDesc: '电子表格风格的记录表格。',
|
|
@@ -1911,16 +2293,23 @@ const zh = {
|
|
|
1911
2293
|
chartTypePie: '饼图',
|
|
1912
2294
|
chartTypeArea: '面积图',
|
|
1913
2295
|
chartTypeScatter: '散点图',
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
2296
|
+
dataset: '数据集',
|
|
2297
|
+
datasetHelp: '图表从该对象的这个数据集读取数值。',
|
|
2298
|
+
chartMeasure: '度量',
|
|
2299
|
+
chartMeasureHelp: '在数值轴上绘制的数据集度量。',
|
|
2300
|
+
chartDimension: '维度',
|
|
2301
|
+
chartDimensionHelp: '用于对数值分组的数据集维度(可选)。',
|
|
2302
|
+
viewTypeUnavailableDataset: '该对象没有可用于图表的数据集。',
|
|
2303
|
+
noDatasetMeasure: '该数据集未声明可绘制的度量。',
|
|
1919
2304
|
endDateField: '结束日期字段',
|
|
1920
2305
|
ufTabs: '标签页',
|
|
1921
2306
|
ufAddField: '+ 添加筛选字段…',
|
|
1922
2307
|
ufShowAllRecords: '显示"全部记录"标签页',
|
|
1923
2308
|
},
|
|
2309
|
+
runtimeDraft: {
|
|
2310
|
+
publishFailed: '发布失败',
|
|
2311
|
+
discardFailed: '放弃草稿失败',
|
|
2312
|
+
},
|
|
1924
2313
|
localeSwitcher: {
|
|
1925
2314
|
label: '语言',
|
|
1926
2315
|
},
|
|
@@ -1941,9 +2330,8 @@ const zh = {
|
|
|
1941
2330
|
signingIn: '正在登录…',
|
|
1942
2331
|
ssoHandoff: '继续前往 {{target}}',
|
|
1943
2332
|
devAdminHint: {
|
|
1944
|
-
title: '
|
|
1945
|
-
|
|
1946
|
-
dismiss: '关闭',
|
|
2333
|
+
title: '本地开发实例',
|
|
2334
|
+
signIn: '以开发管理员登录',
|
|
1947
2335
|
},
|
|
1948
2336
|
errors: {
|
|
1949
2337
|
invalidCredentials: '邮箱或密码错误,请重试。',
|
|
@@ -1962,6 +2350,22 @@ const zh = {
|
|
|
1962
2350
|
resendOtpCountdownText: '{seconds} 秒后可重新发送',
|
|
1963
2351
|
usePhoneOtpText: '使用验证码登录',
|
|
1964
2352
|
usePasswordSignInText: '改用密码登录',
|
|
2353
|
+
socialButton: '使用 {provider} 继续',
|
|
2354
|
+
orText: '或使用邮箱继续',
|
|
2355
|
+
ssoButton: '使用 SSO 登录',
|
|
2356
|
+
ssoOnlyDescription: '使用你所在组织的单点登录进行登录',
|
|
2357
|
+
usePasswordText: '改用密码登录',
|
|
2358
|
+
backToSsoText: '返回单点登录',
|
|
2359
|
+
// objectui#12600 — the console login card's own header, the password
|
|
2360
|
+
// field's reveal toggle, and the footer's legal links.
|
|
2361
|
+
welcomeTitle: '欢迎回来',
|
|
2362
|
+
welcomeDescription: '登录后继续你的工作',
|
|
2363
|
+
showPasswordText: '显示密码',
|
|
2364
|
+
hidePasswordText: '隐藏密码',
|
|
2365
|
+
footer: {
|
|
2366
|
+
privacy: '隐私',
|
|
2367
|
+
terms: '条款',
|
|
2368
|
+
},
|
|
1965
2369
|
},
|
|
1966
2370
|
register: {
|
|
1967
2371
|
title: '创建账户',
|
|
@@ -1980,8 +2384,12 @@ const zh = {
|
|
|
1980
2384
|
submittingButton: '创建中…',
|
|
1981
2385
|
hasAccountText: '已有账户?',
|
|
1982
2386
|
signInText: '登录',
|
|
2387
|
+
socialButton: '使用 {provider} 注册',
|
|
2388
|
+
orText: '或使用邮箱继续',
|
|
1983
2389
|
errors: {
|
|
1984
2390
|
userExists: '该邮箱已被注册,请直接登录或更换邮箱。',
|
|
2391
|
+
selfRegistrationClosed: '本系统未开放自助注册,请联系管理员获取邀请。',
|
|
2392
|
+
emailDomainNotAllowed: '该邮箱的域名不允许在此注册,请使用组织邮箱,或联系管理员获取邀请。',
|
|
1985
2393
|
},
|
|
1986
2394
|
verifyInbox: {
|
|
1987
2395
|
title: '请检查您的邮箱',
|
|
@@ -2021,7 +2429,7 @@ const zh = {
|
|
|
2021
2429
|
},
|
|
2022
2430
|
setPassword: {
|
|
2023
2431
|
title: '设置一个备用密码',
|
|
2024
|
-
description: '
|
|
2432
|
+
description: '您是通过单点登录进入的。设置一个本地密码,这样即使单点登录不可用,您仍能直接登录。',
|
|
2025
2433
|
email: '邮箱',
|
|
2026
2434
|
newPassword: '新密码',
|
|
2027
2435
|
confirmPassword: '确认密码',
|
|
@@ -2071,7 +2479,7 @@ const zh = {
|
|
|
2071
2479
|
checkSpam: '没有收到邮件?请检查垃圾邮件文件夹或联系支持。',
|
|
2072
2480
|
or: '或',
|
|
2073
2481
|
// objectui#3546 slice three.
|
|
2074
|
-
resendUnavailable: '
|
|
2482
|
+
resendUnavailable: '本系统可能未配置邮件发送服务。如果问题持续存在,请联系支持。',
|
|
2075
2483
|
},
|
|
2076
2484
|
setup: {
|
|
2077
2485
|
welcomeTitle: '欢迎使用 ObjectStack',
|
|
@@ -2115,7 +2523,7 @@ const zh = {
|
|
|
2115
2523
|
disabledDescription: '此部署未启用设备授权,因此无法在此批准该设备。',
|
|
2116
2524
|
},
|
|
2117
2525
|
shell: {
|
|
2118
|
-
tenantHostHint: '
|
|
2526
|
+
tenantHostHint: '您正在登录本系统',
|
|
2119
2527
|
},
|
|
2120
2528
|
layout: {
|
|
2121
2529
|
headline: '更快地构建强大的业务应用。',
|
|
@@ -2125,6 +2533,7 @@ const zh = {
|
|
|
2125
2533
|
signOut: '改为退出登录',
|
|
2126
2534
|
password: {
|
|
2127
2535
|
title: '您的密码已过期',
|
|
2536
|
+
resetTitle: '您必须修改密码',
|
|
2128
2537
|
fallbackMessage: '请设置新密码后继续。',
|
|
2129
2538
|
current: '当前密码',
|
|
2130
2539
|
next: '新密码',
|
|
@@ -2150,6 +2559,11 @@ const zh = {
|
|
|
2150
2559
|
verifying: '正在验证…',
|
|
2151
2560
|
invalidCode: '验证码无效,请重试。',
|
|
2152
2561
|
},
|
|
2562
|
+
impersonation: {
|
|
2563
|
+
passwordTitle: '{{user}} 必须修改密码',
|
|
2564
|
+
mfaTitle: '{{user}} 必须设置双重验证',
|
|
2565
|
+
body: '您正在以 {{user}} 的身份操作,此操作只能由该用户本人完成。请结束模拟登录,返回您自己的账户。',
|
|
2566
|
+
},
|
|
2153
2567
|
},
|
|
2154
2568
|
},
|
|
2155
2569
|
// objectui#3546 slice three — the /oauth/consent screen.
|
|
@@ -2158,12 +2572,17 @@ const zh = {
|
|
|
2158
2572
|
title: '{{appName}} 请求访问您的账户',
|
|
2159
2573
|
request: '{{appName}} 正在请求授权{{suffix}}。',
|
|
2160
2574
|
unknownApp: '某个应用',
|
|
2575
|
+
unidentified: '无法识别此应用。',
|
|
2576
|
+
clientId: '客户端 ID',
|
|
2161
2577
|
willAllow: '此应用将能够:',
|
|
2162
2578
|
scope: {
|
|
2163
2579
|
openid: '确认您的身份',
|
|
2164
2580
|
profile: '读取您的基本资料(姓名、头像)',
|
|
2165
2581
|
email: '读取您的邮箱地址',
|
|
2166
2582
|
offlineAccess: '保持登录状态(刷新访问权限)',
|
|
2583
|
+
dataRead: '读取记录(不超出您自己的权限)',
|
|
2584
|
+
dataWrite: '创建、修改和删除记录(不超出您自己的权限)',
|
|
2585
|
+
actionsExecute: '代表您运行操作(不超出您自己的权限)',
|
|
2167
2586
|
},
|
|
2168
2587
|
deny: '拒绝',
|
|
2169
2588
|
authorize: '授权',
|
|
@@ -2194,11 +2613,20 @@ const zh = {
|
|
|
2194
2613
|
role: '角色',
|
|
2195
2614
|
save: '保存更改',
|
|
2196
2615
|
},
|
|
2616
|
+
language: {
|
|
2617
|
+
title: '语言',
|
|
2618
|
+
description: '发送给您的通知和消息所使用的语言。界面语言另行设置,在地球图标菜单中切换。',
|
|
2619
|
+
label: '首选语言',
|
|
2620
|
+
systemDefault: '使用部署默认值',
|
|
2621
|
+
save: '保存',
|
|
2622
|
+
saved: '语言偏好已更新。',
|
|
2623
|
+
readOnly: '您账户的语言由管理员管理。',
|
|
2624
|
+
},
|
|
2197
2625
|
password: {
|
|
2198
2626
|
changeTitle: '修改密码',
|
|
2199
2627
|
setTitle: '设置本地密码',
|
|
2200
|
-
changeDescription: '
|
|
2201
|
-
setDescription: '
|
|
2628
|
+
changeDescription: '更新您登录所用的密码。',
|
|
2629
|
+
setDescription: '您通过单点登录进入。设置本地密码后,也可以使用邮箱和密码登录。',
|
|
2202
2630
|
current: '当前密码',
|
|
2203
2631
|
new: '新密码',
|
|
2204
2632
|
password: '密码',
|
|
@@ -2207,7 +2635,7 @@ const zh = {
|
|
|
2207
2635
|
mismatch: '两次输入的密码不一致',
|
|
2208
2636
|
enterCurrent: '请输入当前密码',
|
|
2209
2637
|
changed: '密码已修改。',
|
|
2210
|
-
localSet: '
|
|
2638
|
+
localSet: '本地密码已设置。现在您可以使用邮箱和密码登录。',
|
|
2211
2639
|
changeAction: '修改密码',
|
|
2212
2640
|
setAction: '设置密码',
|
|
2213
2641
|
},
|
|
@@ -2222,22 +2650,21 @@ const zh = {
|
|
|
2222
2650
|
unknown: '发生未知错误。',
|
|
2223
2651
|
},
|
|
2224
2652
|
workspace: {
|
|
2225
|
-
label: '
|
|
2226
|
-
default: '
|
|
2227
|
-
switch: '
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
nameLabel: '工作区名称',
|
|
2653
|
+
label: '组织',
|
|
2654
|
+
default: '我的组织',
|
|
2655
|
+
switch: '切换组织',
|
|
2656
|
+
createTitle: '创建组织',
|
|
2657
|
+
createDescription: '组织是团队协作的共享空间。',
|
|
2658
|
+
createButton: '创建组织',
|
|
2659
|
+
nameLabel: '组织名称',
|
|
2233
2660
|
namePlaceholder: '例如:极客科技',
|
|
2234
2661
|
slugLabel: 'URL 标识',
|
|
2235
2662
|
slugHint: '用于 URL 中,仅支持小写字母、数字和连字符。',
|
|
2236
2663
|
invite: '邀请成员',
|
|
2237
2664
|
members: '成员',
|
|
2238
|
-
settings: '
|
|
2665
|
+
settings: '组织设置',
|
|
2239
2666
|
multiOrgDisabled: '此实例已禁用创建新组织。',
|
|
2240
|
-
createFailed: '
|
|
2667
|
+
createFailed: '创建组织失败',
|
|
2241
2668
|
},
|
|
2242
2669
|
help: {
|
|
2243
2670
|
keyboardShortcuts: '键盘快捷键',
|
|
@@ -2245,10 +2672,15 @@ const zh = {
|
|
|
2245
2672
|
appDocs: '本应用文档',
|
|
2246
2673
|
allDocs: '全部文档',
|
|
2247
2674
|
onlineDocs: '在线文档',
|
|
2675
|
+
loadingDocumentation: '正在加载文档',
|
|
2676
|
+
about: '关于',
|
|
2677
|
+
aboutTitle: '关于此控制台',
|
|
2678
|
+
aboutDescription: '此控制台编译所用的构建。',
|
|
2679
|
+
aboutBuild: '控制台构建',
|
|
2680
|
+
aboutBuildUnknown: '未知构建(构建此控制台时未设置版本)',
|
|
2248
2681
|
},
|
|
2249
2682
|
sidebar: {
|
|
2250
2683
|
settings: '设置',
|
|
2251
|
-
help: '帮助',
|
|
2252
2684
|
helpTooltip: '帮助与文档',
|
|
2253
2685
|
activityFeed: '活动动态',
|
|
2254
2686
|
notifications: '通知',
|
|
@@ -2260,20 +2692,19 @@ const zh = {
|
|
|
2260
2692
|
packageManagement: '软件包管理',
|
|
2261
2693
|
searchNavigation: '搜索导航…',
|
|
2262
2694
|
recent: '最近使用',
|
|
2263
|
-
favorites: '收藏',
|
|
2264
2695
|
starred: '已收藏',
|
|
2265
2696
|
removeFromFavorites: '从收藏中移除 {{name}}',
|
|
2697
|
+
allReports: '全部报表',
|
|
2266
2698
|
},
|
|
2267
2699
|
topbar: {
|
|
2268
2700
|
aiAssistant: 'AI 助手',
|
|
2269
2701
|
designInStudio: '在 Studio 中设计',
|
|
2702
|
+
editApp: '编辑应用',
|
|
2270
2703
|
openAssistant: '打开{{name}}助手',
|
|
2271
2704
|
offline: '离线',
|
|
2272
2705
|
usersOnline: '当前在线用户',
|
|
2273
2706
|
switchView: '切换视图',
|
|
2274
|
-
switchObject: '切换对象',
|
|
2275
2707
|
connection: {
|
|
2276
|
-
connected: '已连接',
|
|
2277
2708
|
connecting: '连接中…',
|
|
2278
2709
|
reconnecting: '正在重新连接…',
|
|
2279
2710
|
disconnected: '已断开连接',
|
|
@@ -2288,57 +2719,72 @@ const zh = {
|
|
|
2288
2719
|
},
|
|
2289
2720
|
home: {
|
|
2290
2721
|
title: '首页',
|
|
2291
|
-
subtitle: '您的工作区仪表盘',
|
|
2292
2722
|
nav: '首页',
|
|
2293
2723
|
allApps: '全部应用',
|
|
2294
2724
|
yourApps: '我的应用',
|
|
2295
2725
|
showMoreApps: '更多',
|
|
2296
2726
|
showLess: '收起',
|
|
2297
2727
|
continueEmpty: '你打开过的内容会显示在这里。',
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2728
|
+
// objectui#12602 — Home's "My work" section: its heading, the link to the
|
|
2729
|
+
// full inbox, each column's title, "view all" link and empty line.
|
|
2730
|
+
myWork: {
|
|
2731
|
+
title: "我的工作",
|
|
2732
|
+
openInbox: "打开收件箱",
|
|
2733
|
+
viewAll: "查看全部",
|
|
2734
|
+
approvals: "待审批",
|
|
2735
|
+
approvalsEmpty: "没有待审批的事项",
|
|
2736
|
+
notifications: "通知",
|
|
2737
|
+
notificationsEmpty: "没有未读通知",
|
|
2301
2738
|
},
|
|
2302
2739
|
greetingMorning: '早上好',
|
|
2303
2740
|
greetingAfternoon: '下午好',
|
|
2304
2741
|
greetingEvening: '晚上好',
|
|
2305
2742
|
greetingNight: '夜深了',
|
|
2306
|
-
|
|
2743
|
+
greetingSeparator: ',',
|
|
2744
|
+
greetingEnd: '。',
|
|
2745
|
+
search: '搜索应用、记录、页面…',
|
|
2746
|
+
summary: {
|
|
2747
|
+
approvals: '今天有 {{count}} 项待审批',
|
|
2748
|
+
approvals_one: '今天有 {{count}} 项待审批',
|
|
2749
|
+
approvals_other: '今天有 {{count}} 项待审批',
|
|
2750
|
+
none: '今天没有待办',
|
|
2751
|
+
},
|
|
2752
|
+
addApp: '添加应用',
|
|
2753
|
+
appOpened: '{{time}}打开',
|
|
2307
2754
|
build: {
|
|
2308
2755
|
title: '构建应用',
|
|
2309
|
-
|
|
2310
|
-
noCapability: '此工作区不提供构建应用功能 — 它需要「管理元数据」权限,而你的账号没有该权限。',
|
|
2756
|
+
noCapability: '本系统不提供构建应用功能 — 它需要「管理元数据」权限,而你的账号没有该权限。',
|
|
2311
2757
|
},
|
|
2312
2758
|
template: {
|
|
2313
2759
|
title: '从模板开始',
|
|
2314
|
-
subtitle: '从应用市场安装模板应用并按需定制。',
|
|
2315
2760
|
marketplaceDisabled: '本运行时未配置应用市场,因此这里没有可安装的模板。',
|
|
2316
2761
|
},
|
|
2317
2762
|
open: '打开',
|
|
2318
|
-
|
|
2319
|
-
apps: '应用',
|
|
2320
|
-
starred: '收藏',
|
|
2321
|
-
recent: '最近访问',
|
|
2322
|
-
},
|
|
2323
|
-
loading: '正在加载工作区…',
|
|
2324
|
-
recent: '最近使用',
|
|
2325
|
-
starred: '收藏',
|
|
2763
|
+
loading: '加载中…',
|
|
2326
2764
|
welcome: '用 AI 搭建你的业务系统',
|
|
2327
2765
|
welcomeDescription: '用一句话描述你的业务,AI 帮你生成对象、界面、API 和 agent 工具。也可以手动从零开始。',
|
|
2328
2766
|
welcomeAdminDescription: '用一句话描述你的业务,AI 会为你生成对象、界面、API 和智能体工具;也可以从左侧菜单自行搭建。',
|
|
2329
2767
|
welcomeAdminDescriptionNoBuild: '从左侧的「管理」菜单创建你的第一个应用。有了数据后,AI 助手可以帮你查询和分析。',
|
|
2330
2768
|
welcomeAdminDescriptionNoAi: '从左侧的「管理」菜单创建你的第一个应用。',
|
|
2331
2769
|
noAppsTitle: '还没有应用',
|
|
2332
|
-
noAppsDescription: '
|
|
2770
|
+
noAppsDescription: '系统正在准备中——管理员共享给你的应用会显示在这里。',
|
|
2333
2771
|
buildWithAI: '用 AI 搭建',
|
|
2334
2772
|
askAI: '问 AI',
|
|
2335
2773
|
recoveryReminder: {
|
|
2336
|
-
message: '
|
|
2774
|
+
message: '建议设置一个备用密码,这样即使单点登录不可用,你仍能直接登录。',
|
|
2337
2775
|
cta: '设置密码',
|
|
2338
2776
|
dismiss: '关闭',
|
|
2339
2777
|
},
|
|
2340
2778
|
pendingDrafts: {
|
|
2341
|
-
|
|
2779
|
+
// objectui#12602 — the drafts row in Home's "My work" section: the
|
|
2780
|
+
// count, then the first draft names joined by `nameSeparator`, in
|
|
2781
|
+
// their package when they share one.
|
|
2782
|
+
title: "{{count}} 项未发布更改",
|
|
2783
|
+
title_one: "{{count}} 项未发布更改",
|
|
2784
|
+
title_other: "{{count}} 项未发布更改",
|
|
2785
|
+
inPackage: "{{names}} 在 {{package}} 包里等待发布",
|
|
2786
|
+
waiting: "{{names}} 等待发布",
|
|
2787
|
+
nameSeparator: "、",
|
|
2342
2788
|
cta: '发布',
|
|
2343
2789
|
publishing: '发布中…',
|
|
2344
2790
|
published: '已发布!更改已生效。',
|
|
@@ -2356,12 +2802,10 @@ const zh = {
|
|
|
2356
2802
|
browseMarketplace: '浏览应用市场',
|
|
2357
2803
|
quickActions: {
|
|
2358
2804
|
title: '快捷操作',
|
|
2359
|
-
createApp: '创建应用',
|
|
2360
|
-
createAppDesc: '从新应用开始',
|
|
2361
2805
|
manageObjects: '管理对象',
|
|
2362
2806
|
manageObjectsDesc: '配置数据模型',
|
|
2363
2807
|
systemSettings: '系统设置',
|
|
2364
|
-
systemSettingsDesc: '
|
|
2808
|
+
systemSettingsDesc: '配置您的系统',
|
|
2365
2809
|
},
|
|
2366
2810
|
recentApps: {
|
|
2367
2811
|
title: '最近访问',
|
|
@@ -2369,7 +2813,11 @@ const zh = {
|
|
|
2369
2813
|
object: '对象',
|
|
2370
2814
|
dashboard: '仪表盘',
|
|
2371
2815
|
page: '页面',
|
|
2816
|
+
report: '报表',
|
|
2817
|
+
package: '软件包',
|
|
2818
|
+
view: '列表视图',
|
|
2372
2819
|
record: '记录',
|
|
2820
|
+
metadata: '元数据',
|
|
2373
2821
|
},
|
|
2374
2822
|
},
|
|
2375
2823
|
starredApps: {
|
|
@@ -2396,6 +2844,11 @@ const zh = {
|
|
|
2396
2844
|
manageAllApps: '管理所有应用',
|
|
2397
2845
|
systemConsole: '系统控制台',
|
|
2398
2846
|
noAppsConfigured: '尚未配置任何应用',
|
|
2847
|
+
allApps: '所有应用',
|
|
2848
|
+
editAppInStudio: '在 Studio 中编辑 {{app}}',
|
|
2849
|
+
backToHome: '返回首页',
|
|
2850
|
+
settings: '系统设置',
|
|
2851
|
+
productHome: '{{product}} 首页',
|
|
2399
2852
|
},
|
|
2400
2853
|
systemNav: {
|
|
2401
2854
|
systemSettings: '系统设置',
|
|
@@ -2406,7 +2859,6 @@ const zh = {
|
|
|
2406
2859
|
organizations: '组织',
|
|
2407
2860
|
roles: '角色',
|
|
2408
2861
|
configuration: '配置',
|
|
2409
|
-
createApp: '创建应用',
|
|
2410
2862
|
administration: '管理',
|
|
2411
2863
|
datasources: '数据源',
|
|
2412
2864
|
documentation: '文档',
|
|
@@ -2415,12 +2867,14 @@ const zh = {
|
|
|
2415
2867
|
title: '最近动态',
|
|
2416
2868
|
filter: '筛选',
|
|
2417
2869
|
empty: '暂无最近动态',
|
|
2870
|
+
accessDenied: '您没有查看动态的权限。',
|
|
2418
2871
|
viewAll: '查看全部动态',
|
|
2419
2872
|
ariaLabel: '动态消息',
|
|
2420
2873
|
typeCreate: '创建',
|
|
2421
2874
|
typeUpdate: '更新',
|
|
2422
2875
|
typeDelete: '删除',
|
|
2423
2876
|
typeComment: '评论',
|
|
2877
|
+
typeSystem: '系统',
|
|
2424
2878
|
relativeJustNow: '刚刚',
|
|
2425
2879
|
relativeSecondsAgo: '{{count}} 秒前',
|
|
2426
2880
|
relativeMinutesAgo: '{{count}} 分钟前',
|
|
@@ -2441,8 +2895,11 @@ const zh = {
|
|
|
2441
2895
|
placeholder: '搜索对象、仪表板、页面、报表…',
|
|
2442
2896
|
inputAriaLabel: '搜索对象、仪表板、页面、报表',
|
|
2443
2897
|
resultsCount: '找到 {{count}} 条与“{{query}}”相关的结果',
|
|
2444
|
-
|
|
2898
|
+
resultsCount_one: '找到 {{count}} 条与“{{query}}”相关的结果',
|
|
2899
|
+
resultsCount_other: '找到 {{count}} 条与“{{query}}”相关的结果',
|
|
2445
2900
|
itemsAvailable: '共 {{count}} 项可搜索',
|
|
2901
|
+
itemsAvailable_one: '共 {{count}} 项可搜索',
|
|
2902
|
+
itemsAvailable_other: '共 {{count}} 项可搜索',
|
|
2446
2903
|
noResults: '未找到结果',
|
|
2447
2904
|
noResultsHint: '请尝试调整搜索关键字',
|
|
2448
2905
|
typeObjects: '对象',
|
|
@@ -2460,6 +2917,10 @@ const zh = {
|
|
|
2460
2917
|
interfacePageSourceMissing: '此界面页引用了 “{{name}}”,但该来源不可用。',
|
|
2461
2918
|
recordNotFound: '未找到记录',
|
|
2462
2919
|
recordNotFoundDescription: '您查找的记录不存在或已被删除。',
|
|
2920
|
+
recordAccessDenied: '无权访问{{object}}记录',
|
|
2921
|
+
recordAccessDeniedDescription: '你没有查看此类记录的权限。如需访问,请联系管理员。',
|
|
2922
|
+
recordLoadFailed: '无法加载此记录',
|
|
2923
|
+
recordLoadFailedDescription: '加载时出错。请检查网络连接后重试。',
|
|
2463
2924
|
pageNotFound: '未找到页面',
|
|
2464
2925
|
pageNotFoundDescription: '未找到页面 “{{name}}”,可能已被删除或重命名。',
|
|
2465
2926
|
dashboardNotFound: '未找到仪表板',
|
|
@@ -2469,10 +2930,18 @@ const zh = {
|
|
|
2469
2930
|
noAppsConfigured: '尚未配置应用',
|
|
2470
2931
|
noAppsConfiguredDescription: '当前没有任何已注册的应用。请创建您的第一个应用,或前往系统设置进行配置。',
|
|
2471
2932
|
appNotAvailable: '应用不可用',
|
|
2472
|
-
appNotAvailableDescription: '
|
|
2933
|
+
appNotAvailableDescription: '此应用不可用 —— 请稍后重试。',
|
|
2934
|
+
appNotFound: '无法打开此应用',
|
|
2935
|
+
appNotFoundDescription: '服务器未返回你的账号可访问的此应用。',
|
|
2936
|
+
appUnreachable: '无法连接到服务器',
|
|
2937
|
+
appUnreachableDescription: '无法检查此应用。请稍后重试。',
|
|
2473
2938
|
appAccessDenied: '你没有访问此应用的权限',
|
|
2474
2939
|
appAccessDeniedDescription: '此应用存在,但你的账号未获授权打开它。请联系管理员为你开通访问权限。',
|
|
2475
2940
|
appAccessDeniedHome: '返回首页',
|
|
2941
|
+
appNothingAvailable: '{{app}} 中暂时没有你可以使用的内容',
|
|
2942
|
+
appNothingAvailableDescription: '此应用中没有你的账号可以打开的页面。请联系管理员为你开通访问权限。',
|
|
2943
|
+
appNothingAvailableGrantDescription: '此应用中没有你的账号可以打开的页面。你可以在 Setup 中授予访问权限。',
|
|
2944
|
+
openSetup: '打开 Setup',
|
|
2476
2945
|
createFirstApp: '创建您的第一个应用',
|
|
2477
2946
|
systemSettings: '系统设置',
|
|
2478
2947
|
back: '返回',
|
|
@@ -2493,6 +2962,9 @@ const zh = {
|
|
|
2493
2962
|
publishing: '发布中…',
|
|
2494
2963
|
exit: '退出预览',
|
|
2495
2964
|
changes: '变更',
|
|
2965
|
+
pendingHere: '草稿预览 · 本页 {{count}} 项未发布',
|
|
2966
|
+
pendingHere_one: '草稿预览 · 本页 {{count}} 项未发布',
|
|
2967
|
+
pendingHere_other: '草稿预览 · 本页 {{count}} 项未发布',
|
|
2496
2968
|
// 魔法时刻提示:刚搭好的草稿因为种子/示例数据要发布后才载入,预览里
|
|
2497
2969
|
// 仪表板显示 0、列表显示“暂无内容”。直接说明,避免把空预览误当成搭坏了。
|
|
2498
2970
|
sampleDataTitle: '示例数据将在发布后出现',
|
|
@@ -2512,11 +2984,65 @@ const zh = {
|
|
|
2512
2984
|
detailNone: '未检测到差异 —— 草稿与已发布版本一致。',
|
|
2513
2985
|
detailChangedKeys: '其他变更:',
|
|
2514
2986
|
confirmNote: '发布将一次性(原子地)发布此包全部 {{count}} 个待发布草稿。',
|
|
2987
|
+
confirmNote_one: '发布将一次性(原子地)发布此包全部 {{count}} 个待发布草稿。',
|
|
2988
|
+
confirmNote_other: '发布将一次性(原子地)发布此包全部 {{count}} 个待发布草稿。',
|
|
2989
|
+
// objectui#11591 — the package-less sheet: no package to batch, so each
|
|
2990
|
+
// draft publishes by itself and one that fails stays pending.
|
|
2991
|
+
confirmNoteSeparate: '发布会逐个单独发布这 {{count}} 个待发布草稿:发布失败的草稿仍保持待发布,其余草稿照常发布。',
|
|
2992
|
+
confirmNoteSeparate_one: '发布会逐个单独发布这 {{count}} 个待发布草稿:发布失败的草稿仍保持待发布,其余草稿照常发布。',
|
|
2993
|
+
confirmNoteSeparate_other: '发布会逐个单独发布这 {{count}} 个待发布草稿:发布失败的草稿仍保持待发布,其余草稿照常发布。',
|
|
2515
2994
|
publishConfirm: '全部发布',
|
|
2516
|
-
|
|
2995
|
+
summaryItems: '{{count}} 项',
|
|
2996
|
+
summaryItems_one: '{{count}} 项',
|
|
2997
|
+
summaryItems_other: '{{count}} 项',
|
|
2998
|
+
summaryType: '{{type}} {{n}}',
|
|
2999
|
+
typeCount: {
|
|
3000
|
+
object: '对象 {{count}}',
|
|
3001
|
+
object_one: '对象 {{count}}',
|
|
3002
|
+
object_other: '对象 {{count}}',
|
|
3003
|
+
view: '视图 {{count}}',
|
|
3004
|
+
view_one: '视图 {{count}}',
|
|
3005
|
+
view_other: '视图 {{count}}',
|
|
3006
|
+
page: '页面 {{count}}',
|
|
3007
|
+
page_one: '页面 {{count}}',
|
|
3008
|
+
page_other: '页面 {{count}}',
|
|
3009
|
+
dashboard: '仪表盘 {{count}}',
|
|
3010
|
+
dashboard_one: '仪表盘 {{count}}',
|
|
3011
|
+
dashboard_other: '仪表盘 {{count}}',
|
|
3012
|
+
app: '应用 {{count}}',
|
|
3013
|
+
app_one: '应用 {{count}}',
|
|
3014
|
+
app_other: '应用 {{count}}',
|
|
3015
|
+
action: '动作 {{count}}',
|
|
3016
|
+
action_one: '动作 {{count}}',
|
|
3017
|
+
action_other: '动作 {{count}}',
|
|
3018
|
+
report: '报表 {{count}}',
|
|
3019
|
+
report_one: '报表 {{count}}',
|
|
3020
|
+
report_other: '报表 {{count}}',
|
|
3021
|
+
flow: '流程 {{count}}',
|
|
3022
|
+
flow_one: '流程 {{count}}',
|
|
3023
|
+
flow_other: '流程 {{count}}',
|
|
3024
|
+
permission: '权限集 {{count}}',
|
|
3025
|
+
permission_one: '权限集 {{count}}',
|
|
3026
|
+
permission_other: '权限集 {{count}}',
|
|
3027
|
+
agent: '智能体 {{count}}',
|
|
3028
|
+
agent_one: '智能体 {{count}}',
|
|
3029
|
+
agent_other: '智能体 {{count}}',
|
|
3030
|
+
email_template: '邮件模板 {{count}}',
|
|
3031
|
+
email_template_one: '邮件模板 {{count}}',
|
|
3032
|
+
email_template_other: '邮件模板 {{count}}',
|
|
3033
|
+
},
|
|
3034
|
+
// objectui#12929 — the unchecked choice under an added object field whose
|
|
3035
|
+
// literal default the batch publish can write into the existing records.
|
|
3036
|
+
backfillOption: '补默认值({{count}} 条已有记录)',
|
|
3037
|
+
backfillOption_one: '补默认值({{count}} 条已有记录)',
|
|
3038
|
+
backfillOption_other: '补默认值({{count}} 条已有记录)',
|
|
3039
|
+
backfillOptionNoCount: '补默认值',
|
|
3040
|
+
// [`7a90afdf9`] Pre-publish security-posture findings, shown next to
|
|
2517
3041
|
// the confirm button so a refusal the door would issue is read BEFORE
|
|
2518
3042
|
// the click rather than as a toast after the batch rolled back.
|
|
2519
3043
|
securityBlockTitle: '发布会被拒绝 —— 有 {{count}} 项需要先做出决定',
|
|
3044
|
+
securityBlockTitle_one: '发布会被拒绝 —— 有 {{count}} 项需要先做出决定',
|
|
3045
|
+
securityBlockTitle_other: '发布会被拒绝 —— 有 {{count}} 项需要先做出决定',
|
|
2520
3046
|
securityBlockWhere: '请在对象的“设置 → 记录共享模型”中修改后重新发布。',
|
|
2521
3047
|
},
|
|
2522
3048
|
// ADR-0045 — the materialized-but-unlisted app banner
|
|
@@ -2541,7 +3067,7 @@ const zh = {
|
|
|
2541
3067
|
revertLabel: '已撤销一处变更',
|
|
2542
3068
|
applyLabel: '构建变更',
|
|
2543
3069
|
revert: '撤销',
|
|
2544
|
-
items: '项',
|
|
3070
|
+
items: '{{count}} 项',
|
|
2545
3071
|
revertAction: '撤销',
|
|
2546
3072
|
reverted: '已撤销 —— 该变更已还原。',
|
|
2547
3073
|
revertFailed: '撤销失败',
|
|
@@ -2555,22 +3081,17 @@ const zh = {
|
|
|
2555
3081
|
requiredError: '{{label}} 为必填项',
|
|
2556
3082
|
lookupPlaceholder: '{{label}} 的记录 ID',
|
|
2557
3083
|
lookupHelpText: '该参数未配置引用对象,无法使用记录选择器。请直接填写记录 ID,或联系管理员修正该动作参数。',
|
|
3084
|
+
unresolvedParam: '无法显示该参数:它所依据的字段不在对象元数据中,因此无法构建它所需的控件。请联系管理员修正该动作定义。',
|
|
3085
|
+
carryOverHint: '原样带入(只读)',
|
|
2558
3086
|
cancel: '取消',
|
|
2559
3087
|
confirm: '确认',
|
|
2560
3088
|
uploading: '上传中…',
|
|
2561
|
-
defaultActionTitle: '操作',
|
|
2562
|
-
ok: '确定',
|
|
2563
3089
|
},
|
|
2564
3090
|
actionConfirm: {
|
|
2565
3091
|
title: '确认操作',
|
|
2566
3092
|
confirm: '继续',
|
|
2567
3093
|
cancel: '取消',
|
|
2568
3094
|
},
|
|
2569
|
-
rowAction: {
|
|
2570
|
-
openMenu: '更多操作',
|
|
2571
|
-
edit: '编辑',
|
|
2572
|
-
delete: '删除',
|
|
2573
|
-
},
|
|
2574
3095
|
navigationSync: {
|
|
2575
3096
|
addedPage: '导航已更新:已添加页面 “{{name}}”',
|
|
2576
3097
|
addedDashboard: '导航已更新:已添加仪表板 “{{name}}”',
|
|
@@ -2588,9 +3109,14 @@ const zh = {
|
|
|
2588
3109
|
deleteFailed: '删除 {{label}} 失败',
|
|
2589
3110
|
noRecordId: '未提供记录 ID',
|
|
2590
3111
|
deleteConfirm: '确定要删除此记录吗?',
|
|
2591
|
-
|
|
2592
|
-
|
|
3112
|
+
deleteConfirmTitle: '删除{{label}}“{{name}}”?',
|
|
3113
|
+
bulkDeleteConfirmTitle: '删除 {{count}} 条 {{label}} 记录?',
|
|
3114
|
+
bulkDeleteConfirmTitle_one: '删除 {{count}} 条 {{label}} 记录?',
|
|
3115
|
+
bulkDeleteConfirmTitle_other: '删除 {{count}} 条 {{label}} 记录?',
|
|
3116
|
+
deleteConfirmButton: '删除',
|
|
2593
3117
|
bulkDeleteSuccess: '已删除 {{count}} 条 {{label}} 记录',
|
|
3118
|
+
bulkDeleteSuccess_one: '已删除 {{count}} 条 {{label}} 记录',
|
|
3119
|
+
bulkDeleteSuccess_other: '已删除 {{count}} 条 {{label}} 记录',
|
|
2594
3120
|
bulkDeletePartial: '成功 {{succeeded}} 条,失败 {{failed}} 条',
|
|
2595
3121
|
},
|
|
2596
3122
|
objectViewActions: {
|
|
@@ -2602,15 +3128,6 @@ const zh = {
|
|
|
2602
3128
|
exportFailed: '导出失败:{{message}}',
|
|
2603
3129
|
forecastSoon: '预测视图即将上线',
|
|
2604
3130
|
},
|
|
2605
|
-
recordDetail: {
|
|
2606
|
-
viewersTooltip: '正在查看此记录的用户',
|
|
2607
|
-
},
|
|
2608
|
-
cellRender: {
|
|
2609
|
-
empty: '空',
|
|
2610
|
-
yes: '是',
|
|
2611
|
-
no: '否',
|
|
2612
|
-
systemFields: '系统字段',
|
|
2613
|
-
},
|
|
2614
3131
|
user: {
|
|
2615
3132
|
profile: '个人资料',
|
|
2616
3133
|
settings: '设置',
|
|
@@ -2620,18 +3137,18 @@ const zh = {
|
|
|
2620
3137
|
language: '语言',
|
|
2621
3138
|
},
|
|
2622
3139
|
organizations: {
|
|
2623
|
-
mine: '
|
|
2624
|
-
create: '
|
|
2625
|
-
title: '
|
|
2626
|
-
heading: '
|
|
2627
|
-
subtitle: '
|
|
2628
|
-
searchPlaceholder: '
|
|
2629
|
-
new: '
|
|
2630
|
-
current: '
|
|
3140
|
+
mine: '我的组织',
|
|
3141
|
+
create: '创建组织',
|
|
3142
|
+
title: '组织',
|
|
3143
|
+
heading: '您的组织',
|
|
3144
|
+
subtitle: '选择一个组织以继续,或新建一个。',
|
|
3145
|
+
searchPlaceholder: '搜索组织',
|
|
3146
|
+
new: '新建组织',
|
|
3147
|
+
current: '当前组织',
|
|
2631
3148
|
manage: '管理',
|
|
2632
|
-
emptyTitle: '
|
|
2633
|
-
emptyDescription: '
|
|
2634
|
-
noMatches: '
|
|
3149
|
+
emptyTitle: '尚无组织',
|
|
3150
|
+
emptyDescription: '创建您的第一个组织以开始使用。',
|
|
3151
|
+
noMatches: '没有匹配的组织。',
|
|
2635
3152
|
},
|
|
2636
3153
|
organization: {
|
|
2637
3154
|
roles: {
|
|
@@ -2716,6 +3233,7 @@ const zh = {
|
|
|
2716
3233
|
readOnlyNote: '只有所有者可以修改设置。',
|
|
2717
3234
|
nameLabel: '组织名称',
|
|
2718
3235
|
slugLabel: '标识',
|
|
3236
|
+
slugLockedNote: '该组织还有正在使用的环境,因此无法在此修改标识:重命名会同时迁移这些环境的子域名。',
|
|
2719
3237
|
logoLabel: 'Logo',
|
|
2720
3238
|
logoUpload: '上传',
|
|
2721
3239
|
logoReplace: '更换',
|
|
@@ -2780,15 +3298,34 @@ const zh = {
|
|
|
2780
3298
|
viewAll: '查看全部通知',
|
|
2781
3299
|
groupCount: '{{count}} 条通知',
|
|
2782
3300
|
groupUnread: '{{count}} 条未读',
|
|
3301
|
+
groupUnread_one: '{{count}} 条未读',
|
|
3302
|
+
groupUnread_other: '{{count}} 条未读',
|
|
2783
3303
|
groupMarkRead: '标记已读',
|
|
2784
3304
|
groupMarkReadTitle: '将此类通知全部标记为已读',
|
|
2785
3305
|
approvalsPending: '{{count}} 条待审批',
|
|
3306
|
+
approvalsPending_one: '{{count}} 条待审批',
|
|
3307
|
+
approvalsPending_other: '{{count}} 条待审批',
|
|
2786
3308
|
viewApprovals: '查看审批',
|
|
2787
3309
|
noPendingApprovals: '暂无待审批事项',
|
|
2788
3310
|
openApprovalsInbox: '打开审批中心',
|
|
2789
3311
|
badgeTotal: '共 {{total}} 项',
|
|
2790
|
-
badgeNotifications: '{{
|
|
2791
|
-
|
|
3312
|
+
badgeNotifications: '{{count}} 条通知',
|
|
3313
|
+
badgeNotifications_one: '{{count}} 条通知',
|
|
3314
|
+
badgeNotifications_other: '{{count}} 条通知',
|
|
3315
|
+
badgeApprovals: '{{count}} 条待审批',
|
|
3316
|
+
badgeApprovals_one: '{{count}} 条待审批',
|
|
3317
|
+
badgeApprovals_other: '{{count}} 条待审批',
|
|
3318
|
+
arrivalMany: '{{count}} 条新消息',
|
|
3319
|
+
arrivalMany_one: '{{count}} 条新消息',
|
|
3320
|
+
arrivalMany_other: '{{count}} 条新消息',
|
|
3321
|
+
arrivalRepeats: '该主题有 {{count}} 条新消息',
|
|
3322
|
+
arrivalRepeats_one: '该主题有 {{count}} 条新消息',
|
|
3323
|
+
arrivalRepeats_other: '该主题有 {{count}} 条新消息',
|
|
3324
|
+
arrivalOpen: '查看',
|
|
3325
|
+
toastEnabled: '站内提醒',
|
|
3326
|
+
desktopEnabled: '桌面通知',
|
|
3327
|
+
desktopBlocked: '已被拦截。请在浏览器设置中允许本站发送通知。',
|
|
3328
|
+
desktopUnsupported: '当前浏览器不支持桌面通知。',
|
|
2792
3329
|
},
|
|
2793
3330
|
publicForm: {
|
|
2794
3331
|
submit: '提交',
|
|
@@ -2796,15 +3333,17 @@ const zh = {
|
|
|
2796
3333
|
submitAnother: '再填一份',
|
|
2797
3334
|
poweredBy: '由 ObjectStack 提供技术支持',
|
|
2798
3335
|
secureNotice: '您的信息将通过安全通道传输,仅用于回复您本次请求。',
|
|
2799
|
-
thankYouTitle: '
|
|
3336
|
+
thankYouTitle: '感谢您的提交!',
|
|
2800
3337
|
thankYouMessage: '我们已成功收到您的信息。',
|
|
2801
3338
|
redirecting: '将在 {{seconds}} 秒后跳转…',
|
|
3339
|
+
redirectPending: '正在跳转…',
|
|
2802
3340
|
unavailableTitle: '表单不可用',
|
|
2803
3341
|
unavailableDescription: '该链接当前没有可用的公开表单。请确认对应视图已启用匿名分享并匹配此 slug。',
|
|
2804
3342
|
tryDemo: '试用演示',
|
|
2805
3343
|
retry: '重试',
|
|
2806
3344
|
loading: '正在加载表单…',
|
|
2807
3345
|
requiredHint: '* 为必填项',
|
|
3346
|
+
requiredFields: '必填项:{{fields}}',
|
|
2808
3347
|
consentLabelDefault: '我已阅读并同意隐私政策,授权对本次请求所提供的信息进行处理。',
|
|
2809
3348
|
consentLink: '隐私政策',
|
|
2810
3349
|
consentRequired: '请先勾选同意隐私政策。',
|
|
@@ -2817,10 +3356,10 @@ const zh = {
|
|
|
2817
3356
|
body: 'MCP 服务已关闭(OS_MCP_SERVER_ENABLED=false),暂无可连接的端点。请联系运维人员重新启用。',
|
|
2818
3357
|
},
|
|
2819
3358
|
url: {
|
|
2820
|
-
title: '
|
|
3359
|
+
title: '本系统的 MCP 端点',
|
|
2821
3360
|
body: '任何支持 MCP 的 AI 客户端都用这个 URL 连接。身份是自助的:部署自身就是 OAuth 2.1 授权服务器,交互式客户端只需在浏览器登录——以你自己的身份连接,每次调用都受你的权限和行级安全约束。',
|
|
2822
3361
|
downloadSkill: '下载 SKILL.md',
|
|
2823
|
-
skillHint: '
|
|
3362
|
+
skillHint: '可移植的智能体技能文件:教会任何支持技能的智能体如何使用本系统。',
|
|
2824
3363
|
},
|
|
2825
3364
|
claude: {
|
|
2826
3365
|
body: '设置 → 连接器 → 添加自定义连接器,粘贴此 URL,按提示在浏览器登录。',
|
|
@@ -2855,18 +3394,83 @@ const zh = {
|
|
|
2855
3394
|
noImportableFields: '该对象没有可导入的字段。',
|
|
2856
3395
|
schemaReadFailed: '无法读取对象结构。',
|
|
2857
3396
|
imported: '已把 {{count}} 行真实数据导入「{{object}}」。',
|
|
3397
|
+
imported_one: '已把 {{count}} 行真实数据导入「{{object}}」。',
|
|
3398
|
+
imported_other: '已把 {{count}} 行真实数据导入「{{object}}」。',
|
|
2858
3399
|
importFrom: '把真实数据导入自',
|
|
2859
3400
|
into: '到',
|
|
2860
3401
|
opening: '打开中…',
|
|
2861
3402
|
importAction: '导入',
|
|
2862
3403
|
dismiss: '忽略',
|
|
2863
3404
|
},
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
3405
|
+
cloudWorkspaceTimezoneNotice: {
|
|
3406
|
+
seeded: '环境时区在创建时已按你的浏览器设为 {{zone}},可在「设置 → 本地化」中修改。',
|
|
3407
|
+
},
|
|
3408
|
+
ai: {
|
|
3409
|
+
nlQuery: {
|
|
3410
|
+
placeholder: '就您的数据提问…',
|
|
3411
|
+
ask: '提问',
|
|
3412
|
+
results: '结果',
|
|
3413
|
+
match: '匹配度 {{percent}}',
|
|
3414
|
+
simulatedSummary: '查询结果:{{query}}',
|
|
3415
|
+
noResults: '未找到匹配的记录',
|
|
3416
|
+
recentQueries: '最近的查询',
|
|
3417
|
+
},
|
|
3418
|
+
formAssist: {
|
|
3419
|
+
title: 'AI 建议',
|
|
3420
|
+
suggestionCount: '{{count}} 条建议',
|
|
3421
|
+
suggestionCount_one: '{{count}} 条建议',
|
|
3422
|
+
suggestionCount_other: '{{count}} 条建议',
|
|
3423
|
+
applyAll: '全部应用',
|
|
3424
|
+
confidence: '置信度 {{percent}}',
|
|
3425
|
+
appliedCount: '已应用 {{count}} 条建议',
|
|
3426
|
+
appliedCount_one: '已应用 {{count}} 条建议',
|
|
3427
|
+
appliedCount_other: '已应用 {{count}} 条建议',
|
|
3428
|
+
},
|
|
3429
|
+
recommendations: {
|
|
3430
|
+
title: '推荐',
|
|
3431
|
+
generating: '正在生成推荐…',
|
|
3432
|
+
empty: '暂无推荐',
|
|
3433
|
+
},
|
|
3434
|
+
},
|
|
3435
|
+
aiApprovals: {
|
|
3436
|
+
title: 'AI 审批',
|
|
3437
|
+
description: 'AI 智能体提出的操作,需要人工审核后才会执行。',
|
|
3438
|
+
tabPending: '待审批',
|
|
3439
|
+
tabDecided: '已处理',
|
|
3440
|
+
tabAll: '全部',
|
|
3441
|
+
statusPending: '待审批',
|
|
3442
|
+
statusApproved: '已通过',
|
|
3443
|
+
statusExecuted: '已执行',
|
|
3444
|
+
statusFailed: '失败',
|
|
3445
|
+
statusRejected: '已拒绝',
|
|
3446
|
+
colTool: '工具',
|
|
3447
|
+
colAction: '动作',
|
|
3448
|
+
colObject: '对象',
|
|
3449
|
+
colStatus: '状态',
|
|
3450
|
+
colProposed: '提出时间',
|
|
3451
|
+
colDecision: '决定',
|
|
3452
|
+
emptyTitle: '暂无待处理操作',
|
|
3453
|
+
emptyDescription: '当 AI 提出敏感操作时,会显示在这里等待审核。',
|
|
3454
|
+
view: '查看',
|
|
3455
|
+
approve: '通过',
|
|
3456
|
+
reject: '拒绝',
|
|
3457
|
+
working: '处理中…',
|
|
3458
|
+
approveAndExecute: '通过并执行',
|
|
3459
|
+
outcomeApprove: '对 {{id}} 的通过操作:{{message}}',
|
|
3460
|
+
outcomeReject: '对 {{id}} 的拒绝操作:{{message}}',
|
|
3461
|
+
outcomeExecuteFailed: '操作执行失败',
|
|
3462
|
+
drawerFallbackTitle: '待处理操作',
|
|
3463
|
+
drawerSubtitle: '在 {{object}} 上执行工具 {{tool}}',
|
|
3464
|
+
fieldProposedBy: '提出者',
|
|
3465
|
+
fieldDecidedBy: '处理人',
|
|
3466
|
+
fieldConversation: '会话',
|
|
3467
|
+
fieldToolInput: '工具输入',
|
|
3468
|
+
fieldResult: '结果',
|
|
3469
|
+
fieldError: '错误',
|
|
3470
|
+
fieldRejectionReason: '拒绝原因',
|
|
3471
|
+
rejectTitle: '要拒绝此操作吗?',
|
|
3472
|
+
rejectBody: '该原因会回传给 AI,便于它调整下一步回复。',
|
|
3473
|
+
rejectPlaceholder: '可选原因(例如:“记录 ID 有误 — 请先与用户确认。”)',
|
|
2870
3474
|
},
|
|
2871
3475
|
aiModelStatus: {
|
|
2872
3476
|
summary: '构建 / 提问使用 {{conversational}}({{conversationalSource}});结构化使用 {{structured}}({{structuredSource}})。',
|
|
@@ -2876,8 +3480,8 @@ const zh = {
|
|
|
2876
3480
|
rowConversational: 'Build / Ask 模型',
|
|
2877
3481
|
rowStructured: '结构化(蓝图 / 种子)',
|
|
2878
3482
|
rowReasoning: '推理强度',
|
|
2879
|
-
readFailed: '无法读取有效 AI
|
|
2880
|
-
readFailedWithStatus: '无法读取有效 AI 模型(HTTP {{status}}
|
|
3483
|
+
readFailed: '无法读取有效 AI 模型。本系统可能未运行 AI 服务,或你没有 ai:read 权限。',
|
|
3484
|
+
readFailedWithStatus: '无法读取有效 AI 模型(HTTP {{status}})。本系统可能未运行 AI 服务,或你没有 ai:read 权限。',
|
|
2881
3485
|
overridesInEffect: '生效的 env 覆盖:',
|
|
2882
3486
|
noOverrides: '无 —— 跑的是部署代码的默认值。',
|
|
2883
3487
|
adapter: '适配器:',
|
|
@@ -2885,6 +3489,174 @@ const zh = {
|
|
|
2885
3489
|
sourceInherits: '与 build/ask 相同',
|
|
2886
3490
|
sourcePinned: '被 {{source}} 钉住',
|
|
2887
3491
|
},
|
|
3492
|
+
// objectui#7254 — the AI copilot's tool cards. Three families, all of them
|
|
3493
|
+
// English-only until this landed while every other string on the same screen
|
|
3494
|
+
// was translated:
|
|
3495
|
+
//
|
|
3496
|
+
// `tool.*` — one entry per PLATFORM-PROVIDED tool name
|
|
3497
|
+
// (@objectstack/spec `PLATFORM_TOOLS_BY_PACKAGE`, the
|
|
3498
|
+
// closed registry those runtimes are conformance-tested
|
|
3499
|
+
// against). `humanizeToolName` looks each up as
|
|
3500
|
+
// `chatbot.tool.<tool_name>` and falls back to its English
|
|
3501
|
+
// title-caser for a custom / third-party tool, so a name
|
|
3502
|
+
// missing here is degraded, never broken. Every value, `en`
|
|
3503
|
+
// included, is a short sentence in the pack's language
|
|
3504
|
+
// saying what the step does (cloud#2927 Target 3, ruled
|
|
3505
|
+
// 「同意」; objectui#12724): never the tool id, and never
|
|
3506
|
+
// the title-caser's output for it, which is how the step
|
|
3507
|
+
// reads for a tool the pack has no entry for.
|
|
3508
|
+
// `toolLabels-locale-parity-7481` holds both.
|
|
3509
|
+
// `toolState.*` — the card-header badge + activity-chip vocabulary. ONE
|
|
3510
|
+
// set for both surfaces (they used to carry separate
|
|
3511
|
+
// tables and disagreed on casing).
|
|
3512
|
+
// `plan.*` — the "N objects · N views · N dashboards" strip. Plural
|
|
3513
|
+
// FAMILIES: one slot per CLDR category the pack's language
|
|
3514
|
+
// selects (objectui#11432), plus the base key for a call
|
|
3515
|
+
// made without a count. `all-locales-key-parity.test.ts`
|
|
3516
|
+
// derives the required slots from `Intl.PluralRules`.
|
|
3517
|
+
//
|
|
3518
|
+
// objectui#7481 — five `tool.*` entries are NEWER than the registry above:
|
|
3519
|
+
// `get_authoring_rules` (cloud#1837), `load_tools`, `open_record`, `test_flow`
|
|
3520
|
+
// and `toggle_flow` are registered by cloud `service-ai-studio` but the pinned
|
|
3521
|
+
// `@objectstack/spec` snapshot does not list them yet. They are kept here on
|
|
3522
|
+
// purpose: a step label the user reads must not wait on a pin bump. When the
|
|
3523
|
+
// pin advances, `chatbotToolLabels-locale-parity-7481` starts checking them
|
|
3524
|
+
// against the registry instead of against its own hand-held list.
|
|
3525
|
+
chatbot: {
|
|
3526
|
+
answer: {
|
|
3527
|
+
showFull: '展开全文',
|
|
3528
|
+
collapse: '收起',
|
|
3529
|
+
expandTable: '展开',
|
|
3530
|
+
exitExpandedTable: '关闭',
|
|
3531
|
+
},
|
|
3532
|
+
tool: {
|
|
3533
|
+
aggregate_data: '汇总相关数据',
|
|
3534
|
+
get_record: '读取这条记录',
|
|
3535
|
+
query_data: '查询所需数据',
|
|
3536
|
+
query_records: '查找相关记录',
|
|
3537
|
+
search_knowledge: '在知识库中查找',
|
|
3538
|
+
visualize_data: '把数据画成图表',
|
|
3539
|
+
add_field: '给对象添加字段',
|
|
3540
|
+
apply_blueprint: '按方案搭建应用',
|
|
3541
|
+
apply_edit: '应用这次修改',
|
|
3542
|
+
create_metadata: '新建一项元数据',
|
|
3543
|
+
create_object: '新建一个对象',
|
|
3544
|
+
create_package: '新建一个应用包',
|
|
3545
|
+
create_seed: '为对象生成示例数据',
|
|
3546
|
+
delete_field: '删除一个字段',
|
|
3547
|
+
describe_metadata: '查看元数据的内容',
|
|
3548
|
+
describe_object: '查看对象的结构',
|
|
3549
|
+
get_active_package: '确认当前应用包',
|
|
3550
|
+
get_authoring_rules: '查阅编写规范',
|
|
3551
|
+
get_metadata_schema: '查阅元数据的格式',
|
|
3552
|
+
get_package: '查看应用包信息',
|
|
3553
|
+
list_metadata: '列出已有元数据',
|
|
3554
|
+
list_objects: '列出已有对象',
|
|
3555
|
+
list_packages: '列出已有应用包',
|
|
3556
|
+
load_tools: '加载更多工具',
|
|
3557
|
+
modify_field: '修改一个字段',
|
|
3558
|
+
open_record: '打开这条记录',
|
|
3559
|
+
propose_blueprint: '拟定应用方案',
|
|
3560
|
+
set_active_package: '切换到目标应用包',
|
|
3561
|
+
suggest_builder: '建议改用 AI 搭建',
|
|
3562
|
+
test_flow: '试运行流程',
|
|
3563
|
+
todo_write: '记下后续检查项',
|
|
3564
|
+
toggle_flow: '启用或停用流程',
|
|
3565
|
+
update_metadata: '更新一项元数据',
|
|
3566
|
+
validate_expression: '检查表达式是否有效',
|
|
3567
|
+
verify_build: '核对搭建结果',
|
|
3568
|
+
},
|
|
3569
|
+
toolState: {
|
|
3570
|
+
agentActivity: '智能体活动',
|
|
3571
|
+
pending: '等待中',
|
|
3572
|
+
running: '运行中',
|
|
3573
|
+
awaitingApproval: '待确认',
|
|
3574
|
+
responded: '已回复',
|
|
3575
|
+
completed: '已完成',
|
|
3576
|
+
error: '出错',
|
|
3577
|
+
denied: '已拒绝',
|
|
3578
|
+
failed: '失败',
|
|
3579
|
+
},
|
|
3580
|
+
phase: {
|
|
3581
|
+
build: '搭建',
|
|
3582
|
+
design: '设计方案',
|
|
3583
|
+
stepCount: '{{count}} 步',
|
|
3584
|
+
stepCount_one: '{{count}} 步',
|
|
3585
|
+
stepCount_other: '{{count}} 步',
|
|
3586
|
+
expand: '展开步骤',
|
|
3587
|
+
collapse: '收起步骤',
|
|
3588
|
+
},
|
|
3589
|
+
plan: {
|
|
3590
|
+
countObjects: '{{count}} 个对象',
|
|
3591
|
+
countObjects_one: '{{count}} 个对象',
|
|
3592
|
+
countObjects_other: '{{count}} 个对象',
|
|
3593
|
+
countViews: '{{count}} 个视图',
|
|
3594
|
+
countViews_one: '{{count}} 个视图',
|
|
3595
|
+
countViews_other: '{{count}} 个视图',
|
|
3596
|
+
countDashboards: '{{count}} 个仪表板',
|
|
3597
|
+
countDashboards_one: '{{count}} 个仪表板',
|
|
3598
|
+
countDashboards_other: '{{count}} 个仪表板',
|
|
3599
|
+
countSeedData: '示例数据',
|
|
3600
|
+
extendTarget: '添加到现有应用:{{app}}',
|
|
3601
|
+
awaitingConfirm: '等待确认',
|
|
3602
|
+
objectsAndFields: '对象与字段',
|
|
3603
|
+
views: '视图',
|
|
3604
|
+
suggestedField: '补充',
|
|
3605
|
+
nameField: '名称:{{field}}',
|
|
3606
|
+
},
|
|
3607
|
+
build: {
|
|
3608
|
+
building: '正在构建{{app}}…',
|
|
3609
|
+
built: '已构建{{app}}',
|
|
3610
|
+
builtAndLive: '已搭建并上线 · {{app}}',
|
|
3611
|
+
appFallback: '你的应用',
|
|
3612
|
+
addingSampleData: '正在添加示例数据',
|
|
3613
|
+
group: {
|
|
3614
|
+
object: '对象',
|
|
3615
|
+
view: '视图',
|
|
3616
|
+
dashboard: '仪表板',
|
|
3617
|
+
app: '应用',
|
|
3618
|
+
seed: '示例数据',
|
|
3619
|
+
},
|
|
3620
|
+
moreArtifacts: '+{{n}} 个',
|
|
3621
|
+
verifying: '正在检查改动…',
|
|
3622
|
+
verifyStep: '第 {{n}} 步',
|
|
3623
|
+
verified: '已检查改动',
|
|
3624
|
+
unknownPhase: '未知的构建阶段',
|
|
3625
|
+
nextStepsLead: '接下来可以说:{{steps}}',
|
|
3626
|
+
nextStepQuote: '「{{step}}」',
|
|
3627
|
+
draftPosture: '之后的修改先存草稿,由你在 Studio 发布。',
|
|
3628
|
+
checksPassed: '核对通过 {{passed}}/{{total}}',
|
|
3629
|
+
},
|
|
3630
|
+
changes: {
|
|
3631
|
+
planTitle: '修改方案 · {{count}} 项',
|
|
3632
|
+
planTitle_one: '修改方案 · {{count}} 项',
|
|
3633
|
+
planTitle_other: '修改方案 · {{count}} 项',
|
|
3634
|
+
saveDraft: '存为草稿',
|
|
3635
|
+
reviewAndPublish: '查看变更并发布',
|
|
3636
|
+
undo: '撤销',
|
|
3637
|
+
undoWithOthers: '撤销(连同另外 {{count}} 项草稿)',
|
|
3638
|
+
undoWithOthers_one: '撤销(连同另外 {{count}} 项草稿)',
|
|
3639
|
+
undoWithOthers_other: '撤销(连同另外 {{count}} 项草稿)',
|
|
3640
|
+
undoConfirm: '撤销会丢弃这个应用包全部 {{total}} 项未发布的草稿,其中 {{count}} 项不属于这次修改。',
|
|
3641
|
+
undoConfirm_one: '撤销会丢弃这个应用包全部 {{total}} 项未发布的草稿,其中 {{count}} 项不属于这次修改。',
|
|
3642
|
+
undoConfirm_other: '撤销会丢弃这个应用包全部 {{total}} 项未发布的草稿,其中 {{count}} 项不属于这次修改。',
|
|
3643
|
+
undoConfirmUnknown: '撤销会丢弃这个应用包里全部未发布的草稿,不只是这次修改。',
|
|
3644
|
+
undoConfirmAction: '全部撤销',
|
|
3645
|
+
undoCancel: '取消',
|
|
3646
|
+
undoing: '正在撤销…',
|
|
3647
|
+
undone: '已撤销',
|
|
3648
|
+
undoFailed: '撤销失败',
|
|
3649
|
+
kind: {
|
|
3650
|
+
field: '字段',
|
|
3651
|
+
object: '对象',
|
|
3652
|
+
view: '视图',
|
|
3653
|
+
dashboard: '仪表板',
|
|
3654
|
+
app: '应用',
|
|
3655
|
+
seed: '示例数据',
|
|
3656
|
+
package: '应用包',
|
|
3657
|
+
},
|
|
3658
|
+
},
|
|
3659
|
+
},
|
|
2888
3660
|
chatbotError: {
|
|
2889
3661
|
title: '响应失败',
|
|
2890
3662
|
fallbackDetail: '出了点问题,请重试。',
|
|
@@ -2898,10 +3670,13 @@ const zh = {
|
|
|
2898
3670
|
buyCredits: '购买额度包',
|
|
2899
3671
|
upgradePlan: '升级方案',
|
|
2900
3672
|
},
|
|
3673
|
+
planTier: {
|
|
3674
|
+
teamAndUp: '团队版起',
|
|
3675
|
+
},
|
|
2901
3676
|
environment: {
|
|
2902
|
-
addEnvironment: '新建环境',
|
|
2903
3677
|
setUpProduction: '创建你的生产环境',
|
|
2904
3678
|
addDevelopment: '新建开发环境',
|
|
3679
|
+
developmentLocked: '开发环境 · {{tier}}',
|
|
2905
3680
|
entitlement: {
|
|
2906
3681
|
productionLimitTitle: '你已经有生产环境了',
|
|
2907
3682
|
productionLimitBody: '每个组织只包含一个生产环境。如果还需要,可以新建一个组织,或者联系我们了解企业版方案。',
|
|
@@ -2948,14 +3723,14 @@ const zh = {
|
|
|
2948
3723
|
},
|
|
2949
3724
|
unbound: {
|
|
2950
3725
|
title: '未连接',
|
|
2951
|
-
body: '
|
|
3726
|
+
body: '此运行时尚未连接到控制平面。点击「连接」会在新窗口中打开你的云账户,只需点击一次即可批准连接——无需在本页面输入任何 ID 或凭据。',
|
|
2952
3727
|
connect: '连接',
|
|
2953
3728
|
},
|
|
2954
3729
|
},
|
|
2955
3730
|
marketplace: {
|
|
2956
3731
|
title: '应用市场',
|
|
2957
3732
|
subtitle: '浏览已通过审核、发布到 ObjectStack 目录中的应用。点击应用查看详情并安装到你的某个环境中。',
|
|
2958
|
-
searchPlaceholder: '
|
|
3733
|
+
searchPlaceholder: '按名称或标识搜索应用…',
|
|
2959
3734
|
searchAria: '搜索市场应用',
|
|
2960
3735
|
installed: '已安装',
|
|
2961
3736
|
installedCount: '已安装({{count}})',
|
|
@@ -2965,21 +3740,26 @@ const zh = {
|
|
|
2965
3740
|
noMatchFilters: '没有应用匹配当前筛选条件。',
|
|
2966
3741
|
noDescription: '未提供描述。',
|
|
2967
3742
|
back: '返回应用市场',
|
|
2968
|
-
installedTitle: '已安装的应用',
|
|
2969
|
-
installedSubtitle: '当前已安装到本运行时内核的应用市场软件包。缓存的清单文件位于 <code>.objectstack/installed-packages/</code>,重启后仍然保留。',
|
|
2970
|
-
installedEmpty: '本运行时尚未安装任何应用市场应用。',
|
|
2971
3743
|
browseLink: '去应用市场看看 →',
|
|
2972
|
-
installedAdditiveNote: '
|
|
2973
|
-
installedAt: '安装于 {{when}}',
|
|
2974
|
-
installedBy: '由 {{user}}',
|
|
2975
|
-
installedPackageId: '包',
|
|
2976
|
-
cachedAs: '缓存为 <code>{{path}}</code>',
|
|
3744
|
+
installedAdditiveNote: '卸载会立即将该应用从运行中的内核中移除,其权限集及相应授权也一并移除;同时删除缓存的清单,下次启动时不再加载该包。其对象中已存储的记录仍保留在数据库中。',
|
|
2977
3745
|
versionBadge: 'v{{version}}',
|
|
2978
3746
|
installedBadge: '已安装 v{{version}}',
|
|
3747
|
+
// objectui#11645 — an install-local entry this runtime refused to load at
|
|
3748
|
+
// startup (the listing's `notLoaded` marker), read on Installed Apps.
|
|
3749
|
+
notLoaded: {
|
|
3750
|
+
badge: '未加载',
|
|
3751
|
+
protocolIncompatible: '本运行时未加载此包:它面向协议 {{requiredRange}},而本运行时不支持该协议。',
|
|
3752
|
+
otherReason: '本运行时未加载此包({{code}})。',
|
|
3753
|
+
},
|
|
2979
3754
|
load: {
|
|
2980
3755
|
failed: '应用市场加载失败',
|
|
2981
3756
|
failedHintConfigured: '本运行时通过 {{url}} 上的控制面访问应用市场。请检查该地址是否在线、能否从本运行时访问。',
|
|
2982
|
-
failedHintSameOrigin: '
|
|
3757
|
+
failedHintSameOrigin: '应用市场目录通过本运行时访问。请检查运行时是否在线、能否访问该目录。',
|
|
3758
|
+
loading: '正在加载应用市场目录…',
|
|
3759
|
+
slow: '仍在加载 —— 应用市场目录响应缓慢。',
|
|
3760
|
+
retry: '重试',
|
|
3761
|
+
unreachable: '无法访问应用市场目录。',
|
|
3762
|
+
answeredError: '应用市场目录返回了错误(HTTP {{status}})。',
|
|
2983
3763
|
packageFailed: '应用加载失败',
|
|
2984
3764
|
notFound: '未找到。',
|
|
2985
3765
|
},
|
|
@@ -3003,10 +3783,15 @@ const zh = {
|
|
|
3003
3783
|
purgeSampleData: '清除示例数据',
|
|
3004
3784
|
purgeConfirm: '删除此应用预置的所有示例记录?用户自行添加的记录不会被删除。',
|
|
3005
3785
|
purgeSuccess: '已删除 {{count}} 条示例记录。',
|
|
3786
|
+
purgeSuccess_one: '已删除 {{count}} 条示例记录。',
|
|
3787
|
+
purgeSuccess_other: '已删除 {{count}} 条示例记录。',
|
|
3006
3788
|
purgeNoData: '没有可清除的示例记录。',
|
|
3007
3789
|
reseedQueued: '示例数据将在下次访问该环境时重新加载。',
|
|
3008
3790
|
reseedLocalSuccess: '已重新加载示例数据:新增 {{inserted}} 条,更新 {{updated}} 条。',
|
|
3009
3791
|
reseedPartialErrors: '(有 {{count}} 条记录写入失败)',
|
|
3792
|
+
reseedPartialErrors_one: '(有 {{count}} 条记录写入失败)',
|
|
3793
|
+
reseedPartialErrors_other: '(有 {{count}} 条记录写入失败)',
|
|
3794
|
+
sampleDataKernelUnavailable: '此控制面没有环境内核,因此无法在这里重新加载或清除示例数据。请在该环境自己的运行时中操作。',
|
|
3010
3795
|
updateAvailable: '有可用更新',
|
|
3011
3796
|
},
|
|
3012
3797
|
action: {
|
|
@@ -3016,6 +3801,7 @@ const zh = {
|
|
|
3016
3801
|
installToCloud: '安装到云端…',
|
|
3017
3802
|
installed: '已安装',
|
|
3018
3803
|
installing: '安装中…',
|
|
3804
|
+
updating: '更新中…',
|
|
3019
3805
|
uninstall: '卸载',
|
|
3020
3806
|
uninstalling: '卸载中…',
|
|
3021
3807
|
details: '详情',
|
|
@@ -3033,15 +3819,45 @@ const zh = {
|
|
|
3033
3819
|
environmentPlaceholder: '选择一个环境',
|
|
3034
3820
|
includeSampleData: '包含示例数据',
|
|
3035
3821
|
noEnvs: '当前组织没有可用的环境。',
|
|
3036
|
-
noPermission: '你没有权限在任何环境中安装应用。仅组织所有者和管理员可以安装 —
|
|
3822
|
+
noPermission: '你没有权限在任何环境中安装应用。仅组织所有者和管理员可以安装 — 请联系你的组织管理员。',
|
|
3037
3823
|
signInFirst: '请先登录 ObjectStack Cloud,然后点击下方"在云端打开"。',
|
|
3038
3824
|
success: '安装成功。打开环境即可看到新应用。',
|
|
3039
3825
|
localSuccess: '已将 v{{version}} 安装到本运行时。"{{name}}" 应该已经出现在应用切换器中。',
|
|
3826
|
+
localLoadsAtRestart: '已将 v{{version}} 安装到本运行时。"{{name}}" 将在运行时下次重启时加载,在此之前不会出现在应用切换器中。',
|
|
3040
3827
|
localManifestConflict: '{{message}}\n提示:本地已有应用占用此 manifest_id,请先从 objectstack.config.ts 中移除。',
|
|
3041
3828
|
localUnauthorized: '请先登录本运行时再试。',
|
|
3042
3829
|
localMarketplaceUnavailable: '本运行时未配置 OS_CLOUD_URL,无法访问应用市场目录。',
|
|
3043
3830
|
updateTo: '更新 → v{{version}}',
|
|
3044
3831
|
installedVersion: '已安装 v{{version}}',
|
|
3832
|
+
deploying: '正在部署应用…',
|
|
3833
|
+
deployed: '应用已部署完成。',
|
|
3834
|
+
openApp: '打开 {{name}}',
|
|
3835
|
+
deployTimeout: '安装已记录,但当前环境尚未提供该应用。它可能仍在部署中,请稍后再次检查。如果一直没有出现,可能是软件包未能加载、不包含应用,或其应用需要你尚未拥有的权限。',
|
|
3836
|
+
checkAgain: '再次检查',
|
|
3837
|
+
// ADR-0131 D6 — the install modes a package's manifest permits, and
|
|
3838
|
+
// what an unmanaged install answers (MarketplacePackagePage).
|
|
3839
|
+
mode: {
|
|
3840
|
+
label: '安装方式',
|
|
3841
|
+
managed: '托管',
|
|
3842
|
+
managedHint: '软件包保持权威:以代码形式注册并接收其升级,其中的条目不在此处编辑。',
|
|
3843
|
+
unmanaged: '非托管副本',
|
|
3844
|
+
unmanagedHint: '一次性复制到本运行时,成为它自己的元数据:每个条目都可在此编辑,副本不再接收升级。',
|
|
3845
|
+
required: '请先选择安装方式,再安装此软件包。',
|
|
3846
|
+
},
|
|
3847
|
+
unmanagedSuccess: '已将 "{{name}}" 的 v{{version}} 复制到本运行时,成为它自己的元数据,位于基础包 {{base}} 中。副本可编辑,且不再接收升级。',
|
|
3848
|
+
unmanagedStrippedLocks: '软件包锁定了以下条目。副本可编辑,因此这些锁未被复制:',
|
|
3849
|
+
unmanagedIgnored: '本运行时不支持非托管安装,因此 "{{name}}" 以托管方式安装(以代码形式注册),而不是被复制。请先升级运行时,然后卸载该软件包,再以非托管副本重新安装。',
|
|
3850
|
+
},
|
|
3851
|
+
// objectui#12146 — the install dialog opened as an UPDATE of the copy
|
|
3852
|
+
// this environment holds (MarketplacePackagePage).
|
|
3853
|
+
update: {
|
|
3854
|
+
dialogTitle: '更新 {{name}}',
|
|
3855
|
+
dialogDescCurrent: '更新当前环境({{host}})中已安装的应用。',
|
|
3856
|
+
dialogDescPicker: '选择要更新已安装应用的环境。需要先登录 ObjectStack Cloud。',
|
|
3857
|
+
majorNotice: '这是一次主版本更新(v{{fromMajor}} → v{{toMajor}}),可能包含不兼容的变更。',
|
|
3858
|
+
releaseNotes: '查看 v{{version}} 的版本说明',
|
|
3859
|
+
success: '已更新到 v{{version}}。',
|
|
3860
|
+
deployTimeout: '更新已记录,但当前环境尚未提供 v{{version}}。可能仍在部署中,请稍后再次检查。',
|
|
3045
3861
|
},
|
|
3046
3862
|
// objectui#3546 — the MarketplacePage "Your organization" strip.
|
|
3047
3863
|
org: {
|
|
@@ -3059,7 +3875,8 @@ const zh = {
|
|
|
3059
3875
|
reviewed: '已审核并批准',
|
|
3060
3876
|
unreviewed: '尚未审核',
|
|
3061
3877
|
signed: '已签名',
|
|
3062
|
-
grantsIntro: '
|
|
3878
|
+
grantsIntro: '此软件包请求以下权限:',
|
|
3879
|
+
notEnforced: '安装时会记录这份清单,后续版本要求更多权限时会再次征求同意;但运行时目前还不会把该软件包限制在此清单内。',
|
|
3063
3880
|
services: '平台服务',
|
|
3064
3881
|
hooks: '生命周期钩子',
|
|
3065
3882
|
network: '网络访问',
|
|
@@ -3082,11 +3899,20 @@ const zh = {
|
|
|
3082
3899
|
dismiss: '忽略',
|
|
3083
3900
|
confirmedToast: '「{{set}}」已授予 {{anchor}}。',
|
|
3084
3901
|
dismissedToast: '已忽略「{{set}}」的建议。',
|
|
3902
|
+
guestUnsupported: '此处无法授予:Guest 岗位的权限集不由已接受的建议派生。',
|
|
3903
|
+
acceptedState: '「{{set}}」已为所有已登录用户(Everyone 岗位)接受。',
|
|
3904
|
+
notInForceState: '「{{set}}」已接受,但尚未生效:本次请求未改变 Everyone 岗位。原因见服务器日志。',
|
|
3905
|
+
dismissedState: '「{{set}}」未授予:该建议已被忽略或撤销。',
|
|
3906
|
+
revoke: '撤销',
|
|
3907
|
+
revoking: '撤销中…',
|
|
3908
|
+
revokedToast: '已撤销对「{{set}}」的接受。',
|
|
3085
3909
|
},
|
|
3086
3910
|
uninstall: {
|
|
3087
|
-
confirm: '从本运行时卸载 {{manifestId}} v{{version}}?\n\n
|
|
3088
|
-
successInList: '已移除 {{manifestId}}
|
|
3089
|
-
successInDetail: '已移除 {{manifestId}}
|
|
3911
|
+
confirm: '从本运行时卸载 {{manifestId}} v{{version}}?\n\n该应用将立即从运行中的内核中移除,其权限集及相应授权也一并移除,缓存的清单也将被删除。其对象中已存储的记录仍保留在数据库中。',
|
|
3912
|
+
successInList: '已移除 {{manifestId}}:该应用已从运行中的内核中移除,其权限集及相应授权也已一并移除。其对象中已存储的记录仍保留在数据库中。',
|
|
3913
|
+
successInDetail: '已移除 {{manifestId}} 及其清单缓存:该应用已从运行中的内核中移除,其权限集及相应授权也已一并移除。其对象中已存储的记录仍保留在数据库中。',
|
|
3914
|
+
confirmNotLoaded: '从本运行时卸载 {{manifestId}} v{{version}}?\n\n磁盘上的清单缓存将被移除。本运行时并未加载该包,因此它没有任何部分在运行。',
|
|
3915
|
+
successNotLoaded: '已移除 {{manifestId}}。该包未被加载,无需重启运行时。',
|
|
3090
3916
|
},
|
|
3091
3917
|
accessDenied: {
|
|
3092
3918
|
title: '应用市场仅限管理员使用',
|
|
@@ -3109,30 +3935,19 @@ const zh = {
|
|
|
3109
3935
|
storage: '存储',
|
|
3110
3936
|
other: '其他',
|
|
3111
3937
|
},
|
|
3112
|
-
pricing: {
|
|
3113
|
-
free: '免费',
|
|
3114
|
-
freemium: '免费增值',
|
|
3115
|
-
paid: '付费',
|
|
3116
|
-
subscription: '订阅',
|
|
3117
|
-
'usage-based': '按用量计费',
|
|
3118
|
-
'contact-sales': '联系销售',
|
|
3119
|
-
},
|
|
3120
3938
|
relativeTime: {
|
|
3121
3939
|
today: '今天',
|
|
3122
3940
|
daysAgo: '{{count}} 天前',
|
|
3123
3941
|
monthsAgo: '{{count}} 个月前',
|
|
3942
|
+
monthsAgo_one: '{{count}} 个月前',
|
|
3943
|
+
monthsAgo_other: '{{count}} 个月前',
|
|
3124
3944
|
yearsAgo: '{{count}} 年前',
|
|
3945
|
+
yearsAgo_one: '{{count}} 年前',
|
|
3946
|
+
yearsAgo_other: '{{count}} 年前',
|
|
3125
3947
|
},
|
|
3126
3948
|
},
|
|
3127
|
-
approvals: {
|
|
3128
|
-
approve: '批准',
|
|
3129
|
-
reject: '驳回',
|
|
3130
|
-
comment: '审批意见(可选)',
|
|
3131
|
-
approveSuccess: '已批准',
|
|
3132
|
-
rejectSuccess: '已驳回',
|
|
3133
|
-
rejectConfirm: '确定驳回该审批请求吗?',
|
|
3134
|
-
},
|
|
3135
3949
|
approvalsInbox: {
|
|
3950
|
+
recordUnresolvable: '无法打开此记录',
|
|
3136
3951
|
loadMore: '加载更多',
|
|
3137
3952
|
loadingMore: '加载中…',
|
|
3138
3953
|
loadedOf: '已加载 {{loaded}} / 共 {{total}} 条',
|
|
@@ -3151,6 +3966,8 @@ const zh = {
|
|
|
3151
3966
|
requestInfoSent: '已退回给申请人补充材料',
|
|
3152
3967
|
remindBtn: '催办',
|
|
3153
3968
|
remindSuccess: '已提醒 {{count}} 位审批人',
|
|
3969
|
+
remindSuccess_one: '已提醒 {{count}} 位审批人',
|
|
3970
|
+
remindSuccess_other: '已提醒 {{count}} 位审批人',
|
|
3154
3971
|
remindThrottled: '刚刚已发送过催办,请稍后再试。',
|
|
3155
3972
|
replyPlaceholder: '在此回复…',
|
|
3156
3973
|
slaRemaining: 'SLA 剩余 {{dur}}',
|
|
@@ -3167,8 +3984,11 @@ const zh = {
|
|
|
3167
3984
|
progressApprovals: '审批进度 — {{got}} / {{need}}',
|
|
3168
3985
|
progressGroups: '会签进度 — {{got}} / {{need}} 组',
|
|
3169
3986
|
progressEligible: '{{count}} 位可审批人',
|
|
3987
|
+
progressEligible_one: '{{count}} 位可审批人',
|
|
3988
|
+
progressEligible_other: '{{count}} 位可审批人',
|
|
3170
3989
|
progressBar: '决策进度',
|
|
3171
3990
|
declaredActions: '操作',
|
|
3991
|
+
decisionPanelOffRequestPage: '审批决策面板仅在审批请求页面上可用。',
|
|
3172
3992
|
attachmentChip: '附件',
|
|
3173
3993
|
attachmentOpenFailed: '无法打开附件,请重试',
|
|
3174
3994
|
approveOneTitle: '通过“{{title}}”?',
|
|
@@ -3198,6 +4018,8 @@ const zh = {
|
|
|
3198
4018
|
filterCount: '{{shown}} / {{total}} 条',
|
|
3199
4019
|
selected: '已选择',
|
|
3200
4020
|
actionableCount: '({{count}} 条可操作)',
|
|
4021
|
+
actionableCount_one: '({{count}} 条可操作)',
|
|
4022
|
+
actionableCount_other: '({{count}} 条可操作)',
|
|
3201
4023
|
selectAll: '全选',
|
|
3202
4024
|
selectRow: '选择该请求',
|
|
3203
4025
|
colRequest: '审批事项',
|
|
@@ -3232,6 +4054,9 @@ const zh = {
|
|
|
3232
4054
|
emptyPending: '全部处理完毕,没有等待你审批的请求。',
|
|
3233
4055
|
emptyOther: '这里还没有内容。',
|
|
3234
4056
|
emptyViewAll: '查看全部请求',
|
|
4057
|
+
waitingOnOthers: '{{count}} 个申请正在等待其他审批人',
|
|
4058
|
+
waitingOnOthers_one: '{{count}} 个申请正在等待其他审批人',
|
|
4059
|
+
waitingOnOthers_other: '{{count}} 个申请正在等待其他审批人',
|
|
3235
4060
|
noMatches: '没有符合当前筛选条件的请求。',
|
|
3236
4061
|
keyboardHint: '快捷键:j/k 移动 · Enter 打开 · x 选择 · a 通过 · r 拒绝',
|
|
3237
4062
|
drawerTitle: '审批请求',
|
|
@@ -3249,12 +4074,12 @@ const zh = {
|
|
|
3249
4074
|
overrideActionLabel: '越权{{action}}',
|
|
3250
4075
|
overrideNotice: '你在该步骤没有审批人席位。继续将使用管理员越权:该步骤会立即结案,尚未表态的审批人都会被跳过。此决定将记录为管理员越权。',
|
|
3251
4076
|
overrideNoticeWho: '你在该步骤没有审批人席位。继续将使用管理员越权:该步骤会立即结案,并跳过尚未表态的审批人 —— {{who}}。此决定将记录为管理员越权。',
|
|
4077
|
+
overrideReassignNotice: '你在该步骤没有审批人席位。继续将使用管理员越权:该步骤会转签给你选择的新审批人,取代所有尚未表态的审批人。请求保持待审批状态,等待新审批人处理。此次转签将记录为管理员越权。',
|
|
4078
|
+
overrideReassignNoticeWho: '你在该步骤没有审批人席位。继续将使用管理员越权:该步骤会转签给你选择的新审批人,取代尚未表态的审批人 —— {{who}}。请求保持待审批状态,等待新审批人处理。此次转签将记录为管理员越权。',
|
|
4079
|
+
overrideRecallNotice: '这不是你发起的请求。继续将使用管理员越权:该请求会被撤回,尚未表态的审批人都将无法再处理它,记录随即解锁。',
|
|
4080
|
+
overrideRecallNoticeWho: '这不是你发起的请求。继续将使用管理员越权:该请求会被撤回,记录随即解锁,尚未表态的审批人将无法再处理它 —— {{who}}。',
|
|
3252
4081
|
viaOverrideChip: '管理员越权',
|
|
3253
4082
|
viaOverrideHint: '操作者在该步骤没有审批人席位 —— 经管理员越权通道进入。',
|
|
3254
|
-
rawData: '原始数据(JSON)',
|
|
3255
|
-
copy: '复制',
|
|
3256
|
-
copied: '已复制',
|
|
3257
|
-
copyFailed: '复制失败',
|
|
3258
4083
|
overrideActor: '以其他身份操作(管理员)',
|
|
3259
4084
|
actor: '操作身份',
|
|
3260
4085
|
auto: '自动',
|
|
@@ -3271,11 +4096,19 @@ const zh = {
|
|
|
3271
4096
|
approveN: '通过 {{count}} 条',
|
|
3272
4097
|
rejectN: '拒绝 {{count}} 条',
|
|
3273
4098
|
bulkApproveTitle: '通过这 {{count}} 条请求?',
|
|
4099
|
+
bulkApproveTitle_one: '通过这 {{count}} 条请求?',
|
|
4100
|
+
bulkApproveTitle_other: '通过这 {{count}} 条请求?',
|
|
3274
4101
|
bulkApproveBody: '每条请求都将以你的身份通过,对应流程沿“通过”分支继续。',
|
|
3275
4102
|
bulkRejectTitle: '拒绝这 {{count}} 条请求?',
|
|
4103
|
+
bulkRejectTitle_one: '拒绝这 {{count}} 条请求?',
|
|
4104
|
+
bulkRejectTitle_other: '拒绝这 {{count}} 条请求?',
|
|
3276
4105
|
bulkRejectBody: '将拒绝所选请求并通知各申请人。',
|
|
3277
4106
|
bulkApproved: '已通过 {{count}} 条请求',
|
|
4107
|
+
bulkApproved_one: '已通过 {{count}} 条请求',
|
|
4108
|
+
bulkApproved_other: '已通过 {{count}} 条请求',
|
|
3278
4109
|
bulkRejected: '已拒绝 {{count}} 条请求',
|
|
4110
|
+
bulkRejected_one: '已拒绝 {{count}} 条请求',
|
|
4111
|
+
bulkRejected_other: '已拒绝 {{count}} 条请求',
|
|
3279
4112
|
bulkPartial: '{{ok}} 条成功,{{fail}} 条失败:{{which}}',
|
|
3280
4113
|
rejectOneTitle: '拒绝“{{title}}”?',
|
|
3281
4114
|
rejectOneBody: '将拒绝该请求并通知申请人。',
|
|
@@ -3300,8 +4133,14 @@ const zh = {
|
|
|
3300
4133
|
alreadyDecided: '该请求已被处理,请刷新列表。',
|
|
3301
4134
|
justNow: '刚刚',
|
|
3302
4135
|
minutesAgo: '{{count}} 分钟前',
|
|
4136
|
+
minutesAgo_one: '{{count}} 分钟前',
|
|
4137
|
+
minutesAgo_other: '{{count}} 分钟前',
|
|
3303
4138
|
hoursAgo: '{{count}} 小时前',
|
|
4139
|
+
hoursAgo_one: '{{count}} 小时前',
|
|
4140
|
+
hoursAgo_other: '{{count}} 小时前',
|
|
3304
4141
|
daysAgo: '{{count}} 天前',
|
|
4142
|
+
daysAgo_one: '{{count}} 天前',
|
|
4143
|
+
daysAgo_other: '{{count}} 天前',
|
|
3305
4144
|
},
|
|
3306
4145
|
filterBuilder: {
|
|
3307
4146
|
where: '其中',
|
|
@@ -3325,28 +4164,32 @@ const zh = {
|
|
|
3325
4164
|
rangeEnd: '结束值',
|
|
3326
4165
|
operators: {
|
|
3327
4166
|
equals: '等于',
|
|
3328
|
-
|
|
4167
|
+
not_equals: '不等于',
|
|
3329
4168
|
contains: '包含',
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
4169
|
+
icontains: '包含(忽略大小写)',
|
|
4170
|
+
not_contains: '不包含',
|
|
4171
|
+
is_empty: '为空',
|
|
4172
|
+
is_not_empty: '不为空',
|
|
4173
|
+
greater_than: '大于',
|
|
4174
|
+
less_than: '小于',
|
|
4175
|
+
greater_than_or_equal: '大于或等于',
|
|
4176
|
+
less_than_or_equal: '小于或等于',
|
|
3338
4177
|
before: '早于',
|
|
3339
4178
|
after: '晚于',
|
|
3340
4179
|
between: '介于',
|
|
3341
4180
|
in: '属于',
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
4181
|
+
not_in: '不属于',
|
|
4182
|
+
starts_with: '以…开头',
|
|
4183
|
+
ends_with: '以…结尾',
|
|
4184
|
+
is_null: '为 null',
|
|
4185
|
+
is_not_null: '不为 null',
|
|
3347
4186
|
exists: '已设置',
|
|
3348
4187
|
notExists: '未设置',
|
|
3349
4188
|
},
|
|
4189
|
+
emptyCheckHint: {
|
|
4190
|
+
text: '「{{isEmpty}}」也匹配空白文本;「{{isNull}}」只匹配没有值的记录。',
|
|
4191
|
+
list: '「{{isEmpty}}」也匹配空列表;「{{isNull}}」只匹配没有值的记录。',
|
|
4192
|
+
},
|
|
3350
4193
|
},
|
|
3351
4194
|
sortBuilder: {
|
|
3352
4195
|
sortBy: '排序依据',
|
|
@@ -3359,7 +4202,8 @@ const zh = {
|
|
|
3359
4202
|
},
|
|
3360
4203
|
collaboration: {
|
|
3361
4204
|
commentCount: '{{count}} 条评论',
|
|
3362
|
-
|
|
4205
|
+
commentCount_one: '{{count}} 条评论',
|
|
4206
|
+
commentCount_other: '{{count}} 条评论',
|
|
3363
4207
|
resolvedSuffix: ' · 已解决',
|
|
3364
4208
|
sortComments: '评论排序',
|
|
3365
4209
|
sortOldest: '最早优先',
|
|
@@ -3368,11 +4212,18 @@ const zh = {
|
|
|
3368
4212
|
reopen: '重新打开',
|
|
3369
4213
|
justNow: '刚刚',
|
|
3370
4214
|
minutesAgo: '{{count}} 分钟前',
|
|
4215
|
+
minutesAgo_one: '{{count}} 分钟前',
|
|
4216
|
+
minutesAgo_other: '{{count}} 分钟前',
|
|
3371
4217
|
hoursAgo: '{{count}} 小时前',
|
|
4218
|
+
hoursAgo_one: '{{count}} 小时前',
|
|
4219
|
+
hoursAgo_other: '{{count}} 小时前',
|
|
3372
4220
|
daysAgo: '{{count}} 天前',
|
|
4221
|
+
daysAgo_one: '{{count}} 天前',
|
|
4222
|
+
daysAgo_other: '{{count}} 天前',
|
|
3373
4223
|
edited: '(已编辑)',
|
|
3374
4224
|
reactionCount: '{{count}} 个回应',
|
|
3375
|
-
|
|
4225
|
+
reactionCount_one: '{{count}} 个回应',
|
|
4226
|
+
reactionCount_other: '{{count}} 个回应',
|
|
3376
4227
|
addThumbsUp: '点赞',
|
|
3377
4228
|
reply: '回复',
|
|
3378
4229
|
reactThumbsUp: '以点赞回应',
|
|
@@ -3383,9 +4234,11 @@ const zh = {
|
|
|
3383
4234
|
commentPlaceholder: '添加评论…(输入 @ 提及他人)',
|
|
3384
4235
|
send: '发送',
|
|
3385
4236
|
presentUserCount: '{{count}} 人在线',
|
|
3386
|
-
|
|
4237
|
+
presentUserCount_one: '{{count}} 人在线',
|
|
4238
|
+
presentUserCount_other: '{{count}} 人在线',
|
|
3387
4239
|
moreUserCount: '另有 {{count}} 人',
|
|
3388
|
-
|
|
4240
|
+
moreUserCount_one: '另有 {{count}} 人',
|
|
4241
|
+
moreUserCount_other: '另有 {{count}} 人',
|
|
3389
4242
|
userStatusTitle: '{{name}}({{status}})',
|
|
3390
4243
|
statusActive: '活跃',
|
|
3391
4244
|
statusIdle: '空闲',
|
|
@@ -3393,6 +4246,11 @@ const zh = {
|
|
|
3393
4246
|
},
|
|
3394
4247
|
wizard: {
|
|
3395
4248
|
missingRequired: '请填写以下必填字段:{{fields}}',
|
|
4249
|
+
back: '上一步',
|
|
4250
|
+
submitting: '提交中…',
|
|
4251
|
+
stepFallback: '第 {{n}} 步',
|
|
4252
|
+
progressLabel: '进度',
|
|
4253
|
+
emptyStep: '此步骤未配置字段',
|
|
3396
4254
|
},
|
|
3397
4255
|
flowRunner: {
|
|
3398
4256
|
title: '输入',
|
|
@@ -3442,6 +4300,8 @@ const zh = {
|
|
|
3442
4300
|
setDefaultFailed: '设置默认应用失败:{{reason}}',
|
|
3443
4301
|
appDeleted: '{{name}} 已删除',
|
|
3444
4302
|
deleteFailed: '删除应用失败:{{reason}}',
|
|
4303
|
+
nothingToDelete: '{{name}} 无可删除:{{reason}}',
|
|
4304
|
+
alreadyAtDefault: '它已是其软件包的默认状态',
|
|
3445
4305
|
bulkEnabled: '已启用 {{n}} 个应用',
|
|
3446
4306
|
bulkDisabled: '已停用 {{n}} 个应用',
|
|
3447
4307
|
bulkFailed: '{{n}} 个失败:{{details}}',
|
|
@@ -3450,5 +4310,131 @@ const zh = {
|
|
|
3450
4310
|
bulkOperationFailed: '批量操作失败:{{reason}}',
|
|
3451
4311
|
},
|
|
3452
4312
|
},
|
|
4313
|
+
// objectui#6301 — 设置 › 打包自动化(ADR-0126 §7.4)。术语沿用本包既有译法:
|
|
4314
|
+
// `common.package` = 软件包,`flowRunner.completed` = 流程,`common.duplicate`
|
|
4315
|
+
// 一族的“复制”在这里写作“克隆”,因为服务端的 clone 是另起机器名的同级流程,
|
|
4316
|
+
// 不是一次副本粘贴。⛔ 本组不含任何血缘/漂移措辞(§9)。
|
|
4317
|
+
packagedAutomation: {
|
|
4318
|
+
title: '打包自动化',
|
|
4319
|
+
subtitle: '由已安装软件包提供的流程与动作。可在本部署中关闭其中之一,流程还可以新名称克隆后再自定义。编辑在 Studio 中进行。',
|
|
4320
|
+
refresh: '刷新',
|
|
4321
|
+
flowsHeading: '打包流程',
|
|
4322
|
+
actionsHeading: '打包动作',
|
|
4323
|
+
colFlow: '流程',
|
|
4324
|
+
colActivation: '启用状态',
|
|
4325
|
+
colActions: '操作',
|
|
4326
|
+
toggleLabel: '{{label}} 的启用状态',
|
|
4327
|
+
on: '已启用',
|
|
4328
|
+
off: '已关闭',
|
|
4329
|
+
notRunning: '未在此运行',
|
|
4330
|
+
clone: '克隆',
|
|
4331
|
+
cloneTitle: '克隆打包流程',
|
|
4332
|
+
cloneBody: '副本会带上完整定义,并需要新的机器名和标签。请在 Studio 中编辑副本。',
|
|
4333
|
+
cloneName: '新机器名',
|
|
4334
|
+
cloneLabel: '新标签',
|
|
4335
|
+
cancel: '取消',
|
|
4336
|
+
cloneConfirm: '创建克隆',
|
|
4337
|
+
cloneCreated: '已创建流程「{{name}}」。',
|
|
4338
|
+
cloneSwitchSourceOff: '停用「{{label}}」',
|
|
4339
|
+
cloneSourceOff: '打包流程「{{label}}」已停用。',
|
|
4340
|
+
cloneOpen: '在 Studio 中打开副本',
|
|
4341
|
+
emptyTitle: '没有打包流程',
|
|
4342
|
+
emptyBody: '本部署中没有任何已安装软件包提供自动化流程。你自己编写的流程在 Studio 中。',
|
|
4343
|
+
loadFailed: '无法加载打包自动化。',
|
|
4344
|
+
toggleFailedHttp: '无法更改启用状态(HTTP {{status}})。',
|
|
4345
|
+
toggleFailed: '无法更改启用状态。',
|
|
4346
|
+
cloneFailedHttp: '无法克隆此流程(HTTP {{status}})。',
|
|
4347
|
+
cloneFailed: '无法克隆此流程。',
|
|
4348
|
+
reasonDetails: '详情',
|
|
4349
|
+
actionsSubtitle: '由已安装软件包提供的动作。在本部署中关闭后,它在所有提供它的位置都不再运行。你仍然可以在 Studio 中另行编写自己的动作。',
|
|
4350
|
+
colAction: '动作',
|
|
4351
|
+
colObject: '对象',
|
|
4352
|
+
actionToggleLabel: '{{object}} 上 {{label}} 的启用状态',
|
|
4353
|
+
actionsEmptyTitle: '没有打包动作',
|
|
4354
|
+
actionsEmptyBody: '本部署中没有任何已安装软件包声明动作。你自己编写的动作在 Studio 中。',
|
|
4355
|
+
actionsLoadFailed: '无法加载打包动作。',
|
|
4356
|
+
},
|
|
4357
|
+
element: {
|
|
4358
|
+
number: {
|
|
4359
|
+
noObject: '未指定对象:请设置 dataSource.object。',
|
|
4360
|
+
sourceUnresolved: '无法解析此指标的数据源',
|
|
4361
|
+
},
|
|
4362
|
+
image: {
|
|
4363
|
+
noSource: '无图片来源',
|
|
4364
|
+
},
|
|
4365
|
+
recordPicker: {
|
|
4366
|
+
sourceUnresolved: '无法解析此记录选择器的数据源',
|
|
4367
|
+
},
|
|
4368
|
+
calendar: {
|
|
4369
|
+
sourceUnresolved: '无法解析此日历的数据源',
|
|
4370
|
+
},
|
|
4371
|
+
chart: {
|
|
4372
|
+
sourceUnresolved: '无法解析此图表的数据源',
|
|
4373
|
+
},
|
|
4374
|
+
pivotTable: {
|
|
4375
|
+
sourceUnresolved: '无法解析此数据透视表的数据源',
|
|
4376
|
+
},
|
|
4377
|
+
detailView: {
|
|
4378
|
+
sourceUnresolved: '无法解析此详情视图的数据源',
|
|
4379
|
+
},
|
|
4380
|
+
relatedList: {
|
|
4381
|
+
sourceUnresolved: '无法解析此相关列表的数据源',
|
|
4382
|
+
parentUnreadable: '无法读取此相关列表的父记录',
|
|
4383
|
+
},
|
|
4384
|
+
form: {
|
|
4385
|
+
sourceUnresolved: '无法解析此表单的数据源',
|
|
4386
|
+
},
|
|
4387
|
+
lineItems: {
|
|
4388
|
+
sourceUnresolved: '无法解析此明细行面板的数据源',
|
|
4389
|
+
},
|
|
4390
|
+
gantt: {
|
|
4391
|
+
sourceUnresolved: '无法解析此甘特图的数据源',
|
|
4392
|
+
},
|
|
4393
|
+
grid: {
|
|
4394
|
+
sourceUnresolved: '无法解析此表格的数据源',
|
|
4395
|
+
},
|
|
4396
|
+
board: {
|
|
4397
|
+
sourceUnresolved: '无法解析此看板的数据源',
|
|
4398
|
+
},
|
|
4399
|
+
listView: {
|
|
4400
|
+
sourceUnresolved: '无法解析此列表视图的数据源',
|
|
4401
|
+
},
|
|
4402
|
+
map: {
|
|
4403
|
+
sourceUnresolved: '无法解析此地图的数据源',
|
|
4404
|
+
},
|
|
4405
|
+
timeline: {
|
|
4406
|
+
sourceUnresolved: '无法解析此时间线的数据源',
|
|
4407
|
+
},
|
|
4408
|
+
component: {
|
|
4409
|
+
sourceUnresolved: '无法解析此组件的数据源',
|
|
4410
|
+
noDataSource: '未解析到数据源',
|
|
4411
|
+
apiRefused: '此组件的 API 数据源被拒绝',
|
|
4412
|
+
apiUnreadable: '无法读取此组件的 API 数据源',
|
|
4413
|
+
},
|
|
4414
|
+
metadataViewer: {
|
|
4415
|
+
missingKey: '此视图缺少 {{key}}。',
|
|
4416
|
+
loading: '正在加载 {{name}}…',
|
|
4417
|
+
loadFailed: '加载 {{name}} 失败:{{message}}',
|
|
4418
|
+
notFound: '未找到 {{name}}。',
|
|
4419
|
+
stateMachine: '状态机',
|
|
4420
|
+
flow: '流程',
|
|
4421
|
+
permission: '权限',
|
|
4422
|
+
noStateMachine: '{{object}} 上没有状态机。',
|
|
4423
|
+
noStateMachineNamed: '{{object}} 上没有名为“{{name}}”的状态机。',
|
|
4424
|
+
lifecycle: '{{object}} 的生命周期',
|
|
4425
|
+
field: '字段 {{field}}',
|
|
4426
|
+
initial: '初始',
|
|
4427
|
+
final: '终态',
|
|
4428
|
+
steps: '步骤:{{count}}',
|
|
4429
|
+
noSteps: '没有可显示的步骤。',
|
|
4430
|
+
untitledStep: '(步骤)',
|
|
4431
|
+
hiddenSteps: '已隐藏技术步骤:{{count}} · 设置 {{setting}} 以显示全部',
|
|
4432
|
+
objectAccess: '对象访问:{{count}}',
|
|
4433
|
+
noPermissions: '未声明对象权限。',
|
|
4434
|
+
object: '对象',
|
|
4435
|
+
unknownType: '未知的元数据视图类型。应为 {{a}}、{{b}} 或 {{c}}。',
|
|
4436
|
+
unknownTypeNamed: '未知的元数据视图类型“{{type}}”。应为 {{a}}、{{b}} 或 {{c}}。',
|
|
4437
|
+
},
|
|
4438
|
+
},
|
|
3453
4439
|
};
|
|
3454
4440
|
export default zh;
|