@object-ui/i18n 17.3.0 → 17.6.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 +1929 -1
- package/README.md +41 -12
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.js +1 -2
- package/dist/index.d.ts +23 -21
- package/dist/index.js +31 -21
- package/dist/locales/ar.d.ts +638 -369
- package/dist/locales/ar.js +744 -424
- package/dist/locales/de.d.ts +638 -369
- package/dist/locales/de.js +759 -446
- package/dist/locales/en.d.ts +673 -404
- package/dist/locales/en.js +899 -406
- package/dist/locales/es.d.ts +638 -369
- package/dist/locales/es.js +739 -427
- package/dist/locales/fr.d.ts +638 -369
- package/dist/locales/fr.js +738 -423
- package/dist/locales/index.d.ts +6476 -3786
- package/dist/locales/index.js +20 -20
- package/dist/locales/ja.d.ts +638 -369
- package/dist/locales/ja.js +732 -417
- package/dist/locales/ko.d.ts +638 -369
- package/dist/locales/ko.js +736 -424
- package/dist/locales/pt.d.ts +638 -369
- package/dist/locales/pt.js +737 -425
- package/dist/locales/ru.d.ts +638 -369
- package/dist/locales/ru.js +750 -424
- package/dist/locales/zh.d.ts +672 -403
- package/dist/locales/zh.js +720 -403
- package/dist/pickLocalized.d.ts +58 -0
- package/dist/pickLocalized.js +115 -7
- package/dist/provider.d.ts +84 -2
- package/dist/provider.js +305 -31
- package/dist/useDisplayLocale.d.ts +49 -0
- package/dist/useDisplayLocale.js +55 -0
- package/dist/useObjectLabel.d.ts +94 -14
- package/dist/useObjectLabel.js +134 -21
- package/dist/useSafeTranslation.js +51 -3
- package/dist/utils/index.d.ts +4 -3
- package/dist/utils/index.js +4 -3
- package/dist/utils/number-display.d.ts +32 -0
- package/dist/utils/number-display.js +32 -0
- package/dist/utils/spec-formatters.d.ts +39 -13
- package/dist/utils/spec-formatters.js +3 -3
- package/package.json +4 -3
package/dist/locales/zh.js
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
* 中文 (zh) - Chinese language pack for Object UI
|
|
3
3
|
*/
|
|
4
4
|
const zh = {
|
|
5
|
+
// objectui#4467 — the impersonation banner (app-shell ImpersonationBanner).
|
|
6
|
+
// Raised by `session.impersonatedBy`, so it survives SPA reboots; it names
|
|
7
|
+
// BOTH parties because the audit trail attributes the work to the impersonated
|
|
8
|
+
// user, and the exit states its own failure rather than appearing to succeed.
|
|
9
|
+
impersonation: {
|
|
10
|
+
banner: {
|
|
11
|
+
message: '您正在以 {{user}} 的身份操作 —— 所有操作都会记录为该用户。',
|
|
12
|
+
startedBy: '由管理员 {{admin}} 发起。',
|
|
13
|
+
stop: '结束模拟登录',
|
|
14
|
+
stopping: '正在结束…',
|
|
15
|
+
stopFailed: '无法结束模拟登录:{{reason}}',
|
|
16
|
+
notRestored: '服务器接受了请求,但没有恢复您的管理员会话 —— 您仍在以 {{user}} 的身份操作。请退出登录后重新登录以结束。',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
5
19
|
// objectui#2600 B5 — 能力选择器的作用域分组标题(能力标签本身来自
|
|
6
20
|
// sys_capability 注册表,这里只本地化分组标题这类 UI 字符串)。
|
|
7
21
|
capability: {
|
|
@@ -21,6 +35,28 @@ const zh = {
|
|
|
21
35
|
studio_access: '访问 Studio',
|
|
22
36
|
},
|
|
23
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 中设计',
|
|
58
|
+
},
|
|
59
|
+
},
|
|
24
60
|
lookup: {
|
|
25
61
|
recentlyUsed: '最近使用',
|
|
26
62
|
allResults: '全部结果',
|
|
@@ -49,13 +85,13 @@ const zh = {
|
|
|
49
85
|
retry: '重试',
|
|
50
86
|
},
|
|
51
87
|
common: {
|
|
52
|
-
loading: '
|
|
88
|
+
loading: '加载中…',
|
|
53
89
|
save: '保存',
|
|
90
|
+
discard: '放弃',
|
|
54
91
|
cancel: '取消',
|
|
55
92
|
delete: '删除',
|
|
56
93
|
edit: '编辑',
|
|
57
94
|
create: '新建',
|
|
58
|
-
search: '搜索',
|
|
59
95
|
filter: '筛选',
|
|
60
96
|
reset: '重置',
|
|
61
97
|
confirm: '确认',
|
|
@@ -81,7 +117,7 @@ const zh = {
|
|
|
81
117
|
required: '必填',
|
|
82
118
|
optional: '选填',
|
|
83
119
|
selectOption: '请选择',
|
|
84
|
-
select: '
|
|
120
|
+
select: '选择…',
|
|
85
121
|
openChat: '打开聊天',
|
|
86
122
|
closeChat: '关闭聊天',
|
|
87
123
|
closePanel: '关闭面板',
|
|
@@ -90,6 +126,11 @@ const zh = {
|
|
|
90
126
|
itemCountOne: '{{count}} 项',
|
|
91
127
|
toggleSidebar: '切换侧边栏',
|
|
92
128
|
package: '软件包',
|
|
129
|
+
done: '完成',
|
|
130
|
+
editInStudio: '在 Studio 中编辑',
|
|
131
|
+
record: '记录',
|
|
132
|
+
retry: '重试',
|
|
133
|
+
printDialogHint: '打开浏览器打印对话框(不是导出 PDF)',
|
|
93
134
|
},
|
|
94
135
|
actions: {
|
|
95
136
|
decisionOutput: {
|
|
@@ -128,6 +169,9 @@ const zh = {
|
|
|
128
169
|
unsavedChanges: '您有未保存的更改,确定要离开吗?',
|
|
129
170
|
discardTitle: '放弃更改?',
|
|
130
171
|
discardMessage: '您有未保存的更改。如果现在关闭此表单,您的编辑将会丢失。',
|
|
172
|
+
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
173
|
+
// description, used when the form declares no `description` of its own.
|
|
174
|
+
dialogDescriptionFallback: '填写表单字段,然后提交或取消。',
|
|
131
175
|
keepEditing: '继续编辑',
|
|
132
176
|
discard: '放弃',
|
|
133
177
|
conflictTitle: '保存冲突',
|
|
@@ -189,7 +233,7 @@ const zh = {
|
|
|
189
233
|
richText: {
|
|
190
234
|
format: '格式: {{format}}',
|
|
191
235
|
basicEditorHint: '富文本编辑器(基础)',
|
|
192
|
-
placeholder: '
|
|
236
|
+
placeholder: '请输入文字…',
|
|
193
237
|
},
|
|
194
238
|
options: {
|
|
195
239
|
empty: '暂无可选项',
|
|
@@ -225,6 +269,17 @@ const zh = {
|
|
|
225
269
|
tags: {
|
|
226
270
|
placeholder: '输入后回车添加…',
|
|
227
271
|
},
|
|
272
|
+
// objectui#4028 — `AddressField`'s five sub-labels. These were English
|
|
273
|
+
// string literals with no key, and this pack is the one the issue was
|
|
274
|
+
// reported against: a zh-CN console showed five English words in the
|
|
275
|
+
// middle of an otherwise fully translated address form.
|
|
276
|
+
address: {
|
|
277
|
+
street: '街道地址',
|
|
278
|
+
city: '城市',
|
|
279
|
+
state: '省 / 州',
|
|
280
|
+
postalCode: '邮政编码',
|
|
281
|
+
country: '国家 / 地区',
|
|
282
|
+
},
|
|
228
283
|
textarea: {
|
|
229
284
|
characterCount: '已输入 {{count}} 个字符,最多 {{max}} 个',
|
|
230
285
|
charactersRemaining: '还可输入 {{count}} 个字符',
|
|
@@ -255,7 +310,7 @@ const zh = {
|
|
|
255
310
|
saveAll: '全部保存 ({{count}})',
|
|
256
311
|
addRecord: '添加记录',
|
|
257
312
|
open: '打开',
|
|
258
|
-
search: '
|
|
313
|
+
search: '搜索…',
|
|
259
314
|
modified: '{{count}} 行已修改',
|
|
260
315
|
saveFailed: '保存失败',
|
|
261
316
|
selected: '已选择 {{count}} 项',
|
|
@@ -268,7 +323,7 @@ const zh = {
|
|
|
268
323
|
delete: '删除',
|
|
269
324
|
export: '导出',
|
|
270
325
|
exportAs: '导出为 {{format}}',
|
|
271
|
-
loading: '
|
|
326
|
+
loading: '加载数据中…',
|
|
272
327
|
errorLoading: '数据加载失败',
|
|
273
328
|
pullToRefresh: '下拉刷新',
|
|
274
329
|
refreshing: '刷新中…',
|
|
@@ -285,6 +340,22 @@ const zh = {
|
|
|
285
340
|
yes: '是',
|
|
286
341
|
no: '否',
|
|
287
342
|
systemFields: '系统字段',
|
|
343
|
+
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
344
|
+
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
345
|
+
// pack controls its own separator and word order.
|
|
346
|
+
summary: {
|
|
347
|
+
pattern: '{{label}}:{{value}}',
|
|
348
|
+
count: '计数',
|
|
349
|
+
countEmpty: '空值',
|
|
350
|
+
countFilled: '非空',
|
|
351
|
+
countUnique: '去重',
|
|
352
|
+
percentEmpty: '空值',
|
|
353
|
+
percentFilled: '非空',
|
|
354
|
+
sum: '合计',
|
|
355
|
+
avg: '平均值',
|
|
356
|
+
min: '最小值',
|
|
357
|
+
max: '最大值',
|
|
358
|
+
},
|
|
288
359
|
toolbar: {
|
|
289
360
|
densityMode: '密度',
|
|
290
361
|
densityCompact: '紧凑',
|
|
@@ -485,7 +556,7 @@ const zh = {
|
|
|
485
556
|
moreEvents: '+{{count}} 更多',
|
|
486
557
|
},
|
|
487
558
|
list: {
|
|
488
|
-
loading: '
|
|
559
|
+
loading: '正在加载记录…',
|
|
489
560
|
recordCount: '{{count}} 条记录',
|
|
490
561
|
recordCountOne: '{{count}} 条记录',
|
|
491
562
|
addRecord: '添加记录',
|
|
@@ -497,7 +568,8 @@ const zh = {
|
|
|
497
568
|
sort: '排序',
|
|
498
569
|
sortRecords: '排序记录',
|
|
499
570
|
sortByIdSuffix: '(按 ID)',
|
|
500
|
-
sortRelationalHint: '指向其他记录的列未列出:它们只能按存储的 ID
|
|
571
|
+
sortRelationalHint: '指向其他记录的列未列出:它们只能按存储的 ID 排序,而不是单元格中显示的名称。若要按该名称排序,请把该名称反规范化到本对象上,做成一个在来源变更时写入的存储字段,再按它排序。不要用公式字段:公式字段是虚拟的,不会为它存储任何列,服务端会拒绝按它排序。',
|
|
572
|
+
resetSortToDefault: '恢复视图默认排序',
|
|
501
573
|
group: '分组',
|
|
502
574
|
groupBy: '分组依据',
|
|
503
575
|
export: '导出',
|
|
@@ -522,6 +594,8 @@ const zh = {
|
|
|
522
594
|
loadErrorUnauthorizedMessage: '登录状态已过期或已退出。请重新登录后查看这些记录。',
|
|
523
595
|
loadErrorRejectedTitle: '该视图的查询被拒绝',
|
|
524
596
|
loadErrorRejectedMessage: '服务器无法处理该视图的筛选条件或查询参数。清除筛选条件通常即可恢复;如果视图本身就是这样保存的,需要管理员修正。',
|
|
597
|
+
loadErrorApiDisabledTitle: '该对象未开放 API 访问',
|
|
598
|
+
loadErrorApiDisabledMessage: '此页面无法加载记录,因为该对象未通过 API 开放。这是对象自身的设置,而不是权限问题 —— 需要管理员为其启用 API 访问,此页面才能正常工作。',
|
|
525
599
|
retry: '重试',
|
|
526
600
|
managedBy: {
|
|
527
601
|
system: {
|
|
@@ -596,8 +670,11 @@ const zh = {
|
|
|
596
670
|
deleteCard: '删除卡片',
|
|
597
671
|
deleteColumn: '删除列',
|
|
598
672
|
noCards: '暂无卡片',
|
|
599
|
-
cardTitlePlaceholder: '
|
|
673
|
+
cardTitlePlaceholder: '输入卡片标题…',
|
|
600
674
|
uncategorized: '未分类',
|
|
675
|
+
columns: '列',
|
|
676
|
+
requiredFieldsTitle: '填写必填字段',
|
|
677
|
+
requiredFieldsDescription: '此次移动会使以下字段成为必填项。填写后即可继续。',
|
|
601
678
|
},
|
|
602
679
|
timeline: {
|
|
603
680
|
bucket: {
|
|
@@ -610,6 +687,13 @@ const zh = {
|
|
|
610
687
|
noDate: '无日期',
|
|
611
688
|
unassigned: '未分配',
|
|
612
689
|
},
|
|
690
|
+
scale: {
|
|
691
|
+
week: '第 {{n}} 周',
|
|
692
|
+
quarter: '{{year}}年第{{quarter}}季度',
|
|
693
|
+
},
|
|
694
|
+
gantt: {
|
|
695
|
+
rowLabel: '条目',
|
|
696
|
+
},
|
|
613
697
|
},
|
|
614
698
|
gantt: {
|
|
615
699
|
column: {
|
|
@@ -636,6 +720,7 @@ const zh = {
|
|
|
636
720
|
exportPng: '导出 PNG',
|
|
637
721
|
exportPdf: '导出 PDF',
|
|
638
722
|
saveLayout: '保存布局',
|
|
723
|
+
refresh: '刷新',
|
|
639
724
|
undo: '撤销',
|
|
640
725
|
redo: '重做',
|
|
641
726
|
},
|
|
@@ -683,6 +768,18 @@ const zh = {
|
|
|
683
768
|
ff: '完成 → 完成',
|
|
684
769
|
sf: '开始 → 完成',
|
|
685
770
|
},
|
|
771
|
+
linkEnd: {
|
|
772
|
+
start: '开始',
|
|
773
|
+
end: '结束',
|
|
774
|
+
},
|
|
775
|
+
link: {
|
|
776
|
+
rejected: {
|
|
777
|
+
self: "任务不能依赖自身。",
|
|
778
|
+
locked: "该行已锁定,无法新增依赖。",
|
|
779
|
+
group: "汇总行不能作为依赖目标,请改为连接其下的具体任务。",
|
|
780
|
+
cycle: "该连接会形成循环依赖。",
|
|
781
|
+
},
|
|
782
|
+
},
|
|
686
783
|
conflict: {
|
|
687
784
|
title: '排程冲突',
|
|
688
785
|
body: '此次移动与依赖约束冲突。是否自动重新排程 {{count}} 个受影响的任务?',
|
|
@@ -691,8 +788,8 @@ const zh = {
|
|
|
691
788
|
},
|
|
692
789
|
autoScheduleDlg: {
|
|
693
790
|
title: '自动排程',
|
|
694
|
-
body: '将顺延 {count} 个任务以满足依赖约束,是否执行?',
|
|
695
|
-
skipped: '另有 {count} 项因锁定/无权限跳过。',
|
|
791
|
+
body: '将顺延 {{count}} 个任务以满足依赖约束,是否执行?',
|
|
792
|
+
skipped: '另有 {{count}} 项因锁定/无权限跳过。',
|
|
696
793
|
confirm: '执行',
|
|
697
794
|
cancel: '取消',
|
|
698
795
|
none: '依赖均满足,无需排程',
|
|
@@ -745,8 +842,8 @@ const zh = {
|
|
|
745
842
|
readonlyTooltip: '系统视图 — 由代码定义,只读。',
|
|
746
843
|
},
|
|
747
844
|
designer: {
|
|
748
|
-
undo: '
|
|
749
|
-
redo: '
|
|
845
|
+
undo: '撤销',
|
|
846
|
+
redo: '重做',
|
|
750
847
|
},
|
|
751
848
|
detail: {
|
|
752
849
|
back: '返回',
|
|
@@ -762,6 +859,8 @@ const zh = {
|
|
|
762
859
|
writeStrippedTitle: '已保存,但部分字段未生效',
|
|
763
860
|
writeStrippedReadonly: '以下字段为只读,未生效:{{fields}}',
|
|
764
861
|
writeStrippedByState: '以下字段在记录当前状态下不可编辑,未生效:{{fields}}',
|
|
862
|
+
writeStrippedPrimaryKey: '以下字段是记录的标识符,保存时无法修改,未生效:{{fields}}',
|
|
863
|
+
writeStrippedUnknownReason: '以下字段未被服务端写入:{{fields}}',
|
|
765
864
|
approvalPendingEditable: '审批中 · 可编辑',
|
|
766
865
|
approvalPendingTooltip: '该记录有待审批的请求,但当前审批节点仍允许编辑',
|
|
767
866
|
approvalProgress: '审批 — 已通过 {{got}} / 共需 {{need}}',
|
|
@@ -774,6 +873,13 @@ const zh = {
|
|
|
774
873
|
cancelApprovalTooltipUnlocked: '撤回当前的待审批请求',
|
|
775
874
|
cancelApprovalFailed: '撤回审批失败',
|
|
776
875
|
cancelApprovalUnavailable: '当前数据源不支持撤回审批',
|
|
876
|
+
pathLabel: '记录路径',
|
|
877
|
+
pathStageCompleted: '{{stage}},已完成',
|
|
878
|
+
pathStageCurrent: '{{stage}},当前阶段',
|
|
879
|
+
pathStageUpcoming: '{{stage}},未开始',
|
|
880
|
+
pathStageLostCurrent: '{{stage}},已失败,当前阶段',
|
|
881
|
+
pathStageLostUpcoming: '{{stage}},已失败,未到达',
|
|
882
|
+
pathStageWonUpcoming: '{{stage}},目标阶段,未到达',
|
|
777
883
|
linkCopied: '链接已复制到剪贴板',
|
|
778
884
|
linkCopyFailed: '复制链接失败',
|
|
779
885
|
cancel: '取消',
|
|
@@ -789,6 +895,7 @@ const zh = {
|
|
|
789
895
|
concurrentUpdateReload: '加载最新',
|
|
790
896
|
concurrentUpdateOverwrite: '仍然覆盖',
|
|
791
897
|
concurrentUpdateCancel: '取消',
|
|
898
|
+
concurrentUpdateRecordLabel: '此记录',
|
|
792
899
|
openInNewTab: '在新标签页打开',
|
|
793
900
|
share: '分享',
|
|
794
901
|
duplicate: '复制',
|
|
@@ -818,16 +925,19 @@ const zh = {
|
|
|
818
925
|
relatedRecords: '{{count}} 条记录',
|
|
819
926
|
relatedRecordOne: '{{count}} 条记录',
|
|
820
927
|
noRelatedRecords: '暂无相关记录',
|
|
821
|
-
loading: '
|
|
928
|
+
loading: '加载中…',
|
|
822
929
|
copyToClipboard: '复制到剪贴板',
|
|
823
930
|
copied: '已复制!',
|
|
824
931
|
deleteConfirmation: '确定要删除此记录吗?',
|
|
932
|
+
deleted: '记录已删除',
|
|
825
933
|
editRecord: '编辑记录',
|
|
826
934
|
viewAll: '查看全部',
|
|
827
935
|
new: '新建',
|
|
936
|
+
add: '添加',
|
|
828
937
|
emptyValue: '—',
|
|
829
938
|
activity: '活动',
|
|
830
939
|
history: '历史',
|
|
940
|
+
historyEmpty: '暂无历史记录',
|
|
831
941
|
editRow: '编辑',
|
|
832
942
|
deleteRow: '删除',
|
|
833
943
|
deleteRowConfirmation: '确定要删除此记录吗?',
|
|
@@ -837,7 +947,7 @@ const zh = {
|
|
|
837
947
|
nextPage: '下一页',
|
|
838
948
|
pageOf: '第 {{current}} 页,共 {{total}} 页',
|
|
839
949
|
sortBy: '排序',
|
|
840
|
-
filterPlaceholder: '
|
|
950
|
+
filterPlaceholder: '筛选…',
|
|
841
951
|
highlightFields: '关键字段',
|
|
842
952
|
// Comments
|
|
843
953
|
comments: '评论',
|
|
@@ -879,6 +989,10 @@ const zh = {
|
|
|
879
989
|
attachmentDownloadDenied: '您无权下载此附件。',
|
|
880
990
|
attachmentAuthRequired: '请登录后再下载此附件。',
|
|
881
991
|
attachmentPermissionDenied: '您没有执行此操作的权限。',
|
|
992
|
+
attachmentsAccessDenied: '您没有访问这些附件的权限。',
|
|
993
|
+
attachmentsLoadFailed: '无法加载此记录的附件。',
|
|
994
|
+
attachmentsApiUnavailable: '此对象上的附件列表不可用。',
|
|
995
|
+
retryLoadAttachments: '重试',
|
|
882
996
|
// Diff
|
|
883
997
|
unifiedDiff: '统一视图',
|
|
884
998
|
sideBySideDiff: '并排视图',
|
|
@@ -908,6 +1022,9 @@ const zh = {
|
|
|
908
1022
|
nextRecordKey: '下一条记录 (→)',
|
|
909
1023
|
lastRecord: '最后一条记录 (End)',
|
|
910
1024
|
noRecords: '无记录',
|
|
1025
|
+
// objectui#3863 — base key. zh has a single plural category (`other`), so this
|
|
1026
|
+
// slot is unreachable here and equals `_other` for key-set parity.
|
|
1027
|
+
showEmptyRelated: '+ {{count}} 个为空',
|
|
911
1028
|
showEmptyRelated_one: '+ {{count}} 个为空',
|
|
912
1029
|
showEmptyRelated_other: '+ {{count}} 个为空',
|
|
913
1030
|
searchWhileNavigating: '导航时搜索',
|
|
@@ -922,6 +1039,7 @@ const zh = {
|
|
|
922
1039
|
loadMore: '加载更多',
|
|
923
1040
|
edited: '(已编辑)',
|
|
924
1041
|
via: '通过 {{source}}',
|
|
1042
|
+
viewSource: '查看来源',
|
|
925
1043
|
// Replies
|
|
926
1044
|
replyCount: '{{count}} 条回复',
|
|
927
1045
|
replyCountPlural: '{{count}} 条回复',
|
|
@@ -942,7 +1060,8 @@ const zh = {
|
|
|
942
1060
|
},
|
|
943
1061
|
chart: {
|
|
944
1062
|
noData: '暂无图表数据',
|
|
945
|
-
loading: '
|
|
1063
|
+
loading: '图表加载中…',
|
|
1064
|
+
nullCategory: '(未指定)',
|
|
946
1065
|
},
|
|
947
1066
|
report: {
|
|
948
1067
|
total: '总计',
|
|
@@ -967,111 +1086,7 @@ const zh = {
|
|
|
967
1086
|
first: '首个',
|
|
968
1087
|
},
|
|
969
1088
|
editor: {
|
|
970
|
-
|
|
971
|
-
basic: '基础',
|
|
972
|
-
title: '标题',
|
|
973
|
-
titlePlaceholder: '例如:按季度的销售管道',
|
|
974
|
-
description: '描述',
|
|
975
|
-
descriptionPlaceholder: '此报表展示什么?',
|
|
976
|
-
type: '报表类型',
|
|
977
|
-
typeTabular: '表格 — 平铺列表',
|
|
978
|
-
typeSummary: '汇总 — 分组带合计',
|
|
979
|
-
typeMatrix: '矩阵 — 行列透视',
|
|
980
|
-
typeJoined: '拼接 — 多块组合',
|
|
981
|
-
typeHelp: '选择最贴合需求的布局方式。',
|
|
982
|
-
data: '数据',
|
|
983
|
-
objectName: '数据源',
|
|
984
|
-
objectNamePlaceholder: '例如:opportunity',
|
|
985
|
-
objectNameHelp: '此报表应查询哪个对象?',
|
|
986
|
-
limit: '行数上限',
|
|
987
|
-
limitPlaceholder: '例如:100',
|
|
988
|
-
columns: '列',
|
|
989
|
-
columnsHint: '选择要展示的字段。汇总或矩阵报表可添加聚合(求和、计数…)。',
|
|
990
|
-
filters: '筛选',
|
|
991
|
-
filtersHint: '限定参与报表的数据行。',
|
|
992
|
-
filtersComplex: '此报表使用了高级筛选条件,此处无法编辑。保存时将原样保留。',
|
|
993
|
-
groupBy: '分组',
|
|
994
|
-
groupByHint: '按字段分组并计算小计。',
|
|
995
|
-
rows: '行',
|
|
996
|
-
rowsHint: '按这些字段对行分组。',
|
|
997
|
-
columnsAxis: '列',
|
|
998
|
-
columnsAxisHint: '将这些字段透视到顶部。',
|
|
999
|
-
values: '度量',
|
|
1000
|
-
valuesHint: '每个单元格里展示的数字。选择一个或多个字段并设置聚合方式(求和、计数…)。',
|
|
1001
|
-
grouping: '分组',
|
|
1002
|
-
addGrouping: '添加分组',
|
|
1003
|
-
dateGranularity: '日期粒度',
|
|
1004
|
-
dateGranularityNone: '(使用原始值)',
|
|
1005
|
-
day: '日',
|
|
1006
|
-
week: '周',
|
|
1007
|
-
month: '月',
|
|
1008
|
-
quarter: '季度',
|
|
1009
|
-
year: '年',
|
|
1010
|
-
sortAsc: '升序',
|
|
1011
|
-
sortDesc: '降序',
|
|
1012
|
-
chart: '图表',
|
|
1013
|
-
chartHint: '在表格旁可选展示的可视化。',
|
|
1014
|
-
chartType: '图表类型',
|
|
1015
|
-
chartTitle: '图表标题',
|
|
1016
|
-
chartTitlePlaceholder: '默认使用报表标题',
|
|
1017
|
-
chartXAxis: 'X 轴(类别)',
|
|
1018
|
-
chartYAxis: 'Y 轴(数值)',
|
|
1019
|
-
chartShowLegend: '显示图例',
|
|
1020
|
-
chartShowDataLabels: '显示数据标签',
|
|
1021
|
-
chartNone: '(无图表)',
|
|
1022
|
-
chartBar: '柱状图',
|
|
1023
|
-
chartLine: '折线图',
|
|
1024
|
-
chartArea: '面积图',
|
|
1025
|
-
chartPie: '饼图',
|
|
1026
|
-
chartDonut: '环形图',
|
|
1027
|
-
chartFunnel: '漏斗图',
|
|
1028
|
-
validationNeedsObject: '请先选择数据源,再添加列。',
|
|
1029
|
-
validationMatrixNeedsRowsCols: '矩阵报表至少需要一个行字段和一个列字段。',
|
|
1030
|
-
validationSummaryNeedsRows: '汇总报表至少需要一个分组字段。',
|
|
1031
|
-
blocks: '区块',
|
|
1032
|
-
blocksHint: '每个区块都是独立的表格或图表。区块筛选会与报表筛选合并(AND)。',
|
|
1033
|
-
addBlock: '添加区块',
|
|
1034
|
-
removeBlock: '删除区块',
|
|
1035
|
-
blockName: '区块名称',
|
|
1036
|
-
blockNamePlaceholder: '唯一的区块名',
|
|
1037
|
-
blockLabel: '显示标题',
|
|
1038
|
-
blockLabelPlaceholder: '显示在区块上方',
|
|
1039
|
-
blockDescription: '说明',
|
|
1040
|
-
blockDescriptionPlaceholder: '该区块的可选说明',
|
|
1041
|
-
validationJoinedNeedsBlocks: '组合报表至少需要一个区块。',
|
|
1042
|
-
validationBlockNameRequired: '每个区块都必须有非空的名称。',
|
|
1043
|
-
validationBlockNameDuplicate: '区块名称在报表内必须唯一。',
|
|
1044
|
-
validationBlockNeedsColumns: '每个区块至少需要一列。',
|
|
1045
|
-
noneOption: '(无)',
|
|
1046
|
-
addCondition: '添加条件',
|
|
1047
|
-
combineLogic: '组合方式',
|
|
1048
|
-
opContains: '包含',
|
|
1049
|
-
opIsEmpty: '为空',
|
|
1050
|
-
opIsNotEmpty: '不为空',
|
|
1051
|
-
formatAuto: '自动',
|
|
1052
|
-
formatCurrency: '货币',
|
|
1053
|
-
formatPercent: '百分比',
|
|
1054
|
-
formatInteger: '整数',
|
|
1055
|
-
formatDate: '日期',
|
|
1056
|
-
formatDatetime: '日期 + 时间',
|
|
1057
|
-
columnLabelPlaceholder: '自定义标签',
|
|
1058
|
-
aggregateColumn: '聚合',
|
|
1059
|
-
formatColumn: '格式',
|
|
1060
|
-
addColumns: '添加字段',
|
|
1061
|
-
searchFields: '搜索字段…',
|
|
1062
|
-
noMatchingFields: '没有匹配的字段。',
|
|
1063
|
-
noFieldsAvailable: '暂无可用字段。',
|
|
1064
|
-
columnsCount: '已选择 {n} 个列',
|
|
1065
|
-
columnsEmpty: '尚未选择任何列。',
|
|
1066
|
-
fieldPickerTitle: '选择字段',
|
|
1067
|
-
fieldPickerDescription: '可选择一个或多个字段添加到报表,输入关键字可快速筛选。',
|
|
1068
|
-
fieldPickerChangeTitle: '更换字段',
|
|
1069
|
-
fieldPickerAddGroupingTitle: '添加分组',
|
|
1070
|
-
fieldPickerEmpty: '(请选择字段)',
|
|
1071
|
-
fieldPickerSelected: '已选 {n} 个',
|
|
1072
|
-
fieldPickerClear: '清空选择',
|
|
1073
|
-
fieldPickerAdd: '添加',
|
|
1074
|
-
fieldPickerAddN: '添加 {n} 个',
|
|
1089
|
+
panelTitle: '编辑报表',
|
|
1075
1090
|
},
|
|
1076
1091
|
},
|
|
1077
1092
|
map: {
|
|
@@ -1081,66 +1096,6 @@ const zh = {
|
|
|
1081
1096
|
invalidCoordinates: '{{count}} 条记录因坐标缺失或无效已从地图中排除。',
|
|
1082
1097
|
invalidCoordinatesPlural: '{{count}} 条记录因坐标缺失或无效已从地图中排除。',
|
|
1083
1098
|
},
|
|
1084
|
-
workflow: {
|
|
1085
|
-
draft: '草稿',
|
|
1086
|
-
active: '活跃',
|
|
1087
|
-
paused: '已暂停',
|
|
1088
|
-
completed: '已完成',
|
|
1089
|
-
cancelled: '已取消',
|
|
1090
|
-
save: '保存',
|
|
1091
|
-
publish: '发布',
|
|
1092
|
-
addNode: '添加节点',
|
|
1093
|
-
workflowFlow: '工作流程',
|
|
1094
|
-
properties: '属性',
|
|
1095
|
-
connections: '连接',
|
|
1096
|
-
quickConnect: '快速连接',
|
|
1097
|
-
fromPlaceholder: '从...',
|
|
1098
|
-
toPlaceholder: '到...',
|
|
1099
|
-
connect: '连接',
|
|
1100
|
-
label: '标签',
|
|
1101
|
-
type: '类型',
|
|
1102
|
-
description: '描述',
|
|
1103
|
-
assignee: '负责人',
|
|
1104
|
-
assigneeType: '负责人类型',
|
|
1105
|
-
user: '用户',
|
|
1106
|
-
role: '角色',
|
|
1107
|
-
group: '组',
|
|
1108
|
-
expression: '表达式',
|
|
1109
|
-
timeoutMinutes: '超时时间(分钟)',
|
|
1110
|
-
selectNodeToEdit: '选择节点以编辑其属性',
|
|
1111
|
-
workflowTitle: '工作流标题',
|
|
1112
|
-
newWorkflow: '新工作流',
|
|
1113
|
-
outConnections: '{{count}} 个输出',
|
|
1114
|
-
start: '开始',
|
|
1115
|
-
end: '结束',
|
|
1116
|
-
task: '任务',
|
|
1117
|
-
userTask: '用户任务',
|
|
1118
|
-
serviceTask: '服务任务',
|
|
1119
|
-
scriptTask: '脚本任务',
|
|
1120
|
-
approval: '审批',
|
|
1121
|
-
condition: '条件',
|
|
1122
|
-
parallelGateway: '并行网关',
|
|
1123
|
-
joinGateway: '合并网关',
|
|
1124
|
-
boundaryEvent: '边界事件',
|
|
1125
|
-
delay: '延迟',
|
|
1126
|
-
notification: '通知',
|
|
1127
|
-
webhook: 'Webhook',
|
|
1128
|
-
allowConcurrency: '允许(并发执行)',
|
|
1129
|
-
forbidConcurrency: '禁止(跳过新任务)',
|
|
1130
|
-
replaceConcurrency: '替换(取消现有任务)',
|
|
1131
|
-
queueConcurrency: '排队(等待当前完成)',
|
|
1132
|
-
conditionEvent: '条件',
|
|
1133
|
-
manualEvent: '手动',
|
|
1134
|
-
webhookEvent: 'Webhook',
|
|
1135
|
-
timerEvent: '定时器',
|
|
1136
|
-
signalEvent: '信号',
|
|
1137
|
-
versionHistory: '版本历史',
|
|
1138
|
-
importBpmn: '导入 BPMN',
|
|
1139
|
-
exportBpmn: '导出 BPMN',
|
|
1140
|
-
undo: '撤销',
|
|
1141
|
-
redo: '重做',
|
|
1142
|
-
resetZoom: '重置缩放',
|
|
1143
|
-
},
|
|
1144
1099
|
dashboard: {
|
|
1145
1100
|
addWidget: '添加组件',
|
|
1146
1101
|
removeWidget: '移除组件',
|
|
@@ -1151,11 +1106,111 @@ const zh = {
|
|
|
1151
1106
|
noDataAvailable: '暂无数据',
|
|
1152
1107
|
noDataSourceFor: '没有可用的数据源:',
|
|
1153
1108
|
noRows: '暂无数据行',
|
|
1109
|
+
loading: '加载中…',
|
|
1154
1110
|
pickMeasures: '请为该数据集组件选择度量(值)。',
|
|
1155
1111
|
datasetUnsupported: '当前数据源不支持数据集查询。',
|
|
1156
1112
|
details: '明细',
|
|
1157
1113
|
exportCsv: '导出 CSV',
|
|
1158
1114
|
openInList: '在列表中打开',
|
|
1115
|
+
config: {
|
|
1116
|
+
breadcrumb: {
|
|
1117
|
+
dashboard: '仪表盘',
|
|
1118
|
+
configuration: '配置',
|
|
1119
|
+
widget: '组件',
|
|
1120
|
+
chart: '图表',
|
|
1121
|
+
table: '表格',
|
|
1122
|
+
pivotTable: '透视表',
|
|
1123
|
+
},
|
|
1124
|
+
section: {
|
|
1125
|
+
general: '基本',
|
|
1126
|
+
layout: '布局',
|
|
1127
|
+
data: '数据',
|
|
1128
|
+
dataBinding: '数据绑定',
|
|
1129
|
+
appearance: '外观',
|
|
1130
|
+
},
|
|
1131
|
+
field: {
|
|
1132
|
+
title: '标题',
|
|
1133
|
+
description: '描述',
|
|
1134
|
+
columns: '列数',
|
|
1135
|
+
gap: '间距',
|
|
1136
|
+
rowHeight: '行高 (px)',
|
|
1137
|
+
autoRefresh: '自动刷新',
|
|
1138
|
+
showDescription: '显示描述',
|
|
1139
|
+
theme: '主题',
|
|
1140
|
+
widgetType: '组件类型',
|
|
1141
|
+
colorVariant: '颜色',
|
|
1142
|
+
dataset: '数据集',
|
|
1143
|
+
dimensions: '维度',
|
|
1144
|
+
values: '度量值',
|
|
1145
|
+
width: '宽度 (列数)',
|
|
1146
|
+
height: '高度 (行数)',
|
|
1147
|
+
},
|
|
1148
|
+
placeholder: {
|
|
1149
|
+
dashboardTitle: '仪表盘标题',
|
|
1150
|
+
dashboardDescription: '显示在标题下方的简短说明',
|
|
1151
|
+
widgetTitle: '组件标题',
|
|
1152
|
+
widgetDescription: '组件描述',
|
|
1153
|
+
datasetName: '数据集名称',
|
|
1154
|
+
selectDataset: '选择数据集…',
|
|
1155
|
+
searchDatasets: '搜索数据集…',
|
|
1156
|
+
addDimension: '添加维度…',
|
|
1157
|
+
addMeasure: '添加度量…',
|
|
1158
|
+
searchMembers: '搜索…',
|
|
1159
|
+
},
|
|
1160
|
+
empty: {
|
|
1161
|
+
datasets: '未找到数据集。',
|
|
1162
|
+
dimensions: '未选择维度。',
|
|
1163
|
+
measures: '未选择度量。',
|
|
1164
|
+
nothingToAdd: '没有可添加的项。',
|
|
1165
|
+
},
|
|
1166
|
+
help: {
|
|
1167
|
+
dataset: '该组件绑定的语义层数据集 (ADR-0021)。',
|
|
1168
|
+
dimensions: '按这些数据集维度对度量值进行分组/拆分。',
|
|
1169
|
+
dimensionsPivot: '分组/拆分字段。最后一个维度将横向展开为列。',
|
|
1170
|
+
values: '要展示的数据集度量 (至少一个)。',
|
|
1171
|
+
},
|
|
1172
|
+
action: {
|
|
1173
|
+
add: '添加',
|
|
1174
|
+
remove: '移除 {{name}}',
|
|
1175
|
+
},
|
|
1176
|
+
refresh: {
|
|
1177
|
+
off: '关闭',
|
|
1178
|
+
every30s: '每 30 秒',
|
|
1179
|
+
every1m: '每 1 分钟',
|
|
1180
|
+
every5m: '每 5 分钟',
|
|
1181
|
+
every15m: '每 15 分钟',
|
|
1182
|
+
every30m: '每 30 分钟',
|
|
1183
|
+
every1h: '每 1 小时',
|
|
1184
|
+
},
|
|
1185
|
+
themeOption: {
|
|
1186
|
+
light: '浅色',
|
|
1187
|
+
dark: '深色',
|
|
1188
|
+
auto: '自动',
|
|
1189
|
+
},
|
|
1190
|
+
widgetType: {
|
|
1191
|
+
metric: '指标',
|
|
1192
|
+
bar: '柱状图',
|
|
1193
|
+
horizontalBar: '条形图',
|
|
1194
|
+
line: '折线图',
|
|
1195
|
+
pie: '饼图',
|
|
1196
|
+
donut: '环形图',
|
|
1197
|
+
area: '面积图',
|
|
1198
|
+
scatter: '散点图',
|
|
1199
|
+
funnel: '漏斗图',
|
|
1200
|
+
table: '表格',
|
|
1201
|
+
pivot: '透视表',
|
|
1202
|
+
},
|
|
1203
|
+
color: {
|
|
1204
|
+
default: '默认',
|
|
1205
|
+
blue: '蓝色',
|
|
1206
|
+
teal: '青色',
|
|
1207
|
+
orange: '橙色',
|
|
1208
|
+
purple: '紫色',
|
|
1209
|
+
success: '成功',
|
|
1210
|
+
warning: '警告',
|
|
1211
|
+
danger: '危险',
|
|
1212
|
+
},
|
|
1213
|
+
},
|
|
1159
1214
|
trend: {
|
|
1160
1215
|
vsLastQuarter: '较上季度',
|
|
1161
1216
|
vsLastMonth: '较上月',
|
|
@@ -1188,24 +1243,6 @@ const zh = {
|
|
|
1188
1243
|
},
|
|
1189
1244
|
},
|
|
1190
1245
|
},
|
|
1191
|
-
configPanel: {
|
|
1192
|
-
save: '保存',
|
|
1193
|
-
discard: '丢弃',
|
|
1194
|
-
close: '关闭',
|
|
1195
|
-
layout: '布局',
|
|
1196
|
-
columns: '列数',
|
|
1197
|
-
gap: '间距',
|
|
1198
|
-
rowHeight: '行高',
|
|
1199
|
-
data: '数据',
|
|
1200
|
-
refreshInterval: '刷新间隔',
|
|
1201
|
-
appearance: '外观',
|
|
1202
|
-
title: '标题',
|
|
1203
|
-
showDescription: '显示描述',
|
|
1204
|
-
theme: '主题',
|
|
1205
|
-
configuration: '配置',
|
|
1206
|
-
general: '基本',
|
|
1207
|
-
advanced: '高级',
|
|
1208
|
-
},
|
|
1209
1246
|
appDesigner: {
|
|
1210
1247
|
createApp: '创建应用',
|
|
1211
1248
|
editApp: '编辑应用',
|
|
@@ -1256,8 +1293,6 @@ const zh = {
|
|
|
1256
1293
|
showSort: '显示排序',
|
|
1257
1294
|
appearance: '外观',
|
|
1258
1295
|
rowHeight: '行高',
|
|
1259
|
-
stripedRows: '斑马纹',
|
|
1260
|
-
bordered: '边框',
|
|
1261
1296
|
livePreview: '实时预览',
|
|
1262
1297
|
stepBasicDesc: '名称、标题和布局',
|
|
1263
1298
|
stepObjectsDesc: '选择业务对象',
|
|
@@ -1371,7 +1406,6 @@ const zh = {
|
|
|
1371
1406
|
unique: '唯一',
|
|
1372
1407
|
readOnly: '只读',
|
|
1373
1408
|
hidden: '隐藏',
|
|
1374
|
-
indexed: '索引',
|
|
1375
1409
|
externalId: '外部 ID',
|
|
1376
1410
|
trackHistory: '追踪历史',
|
|
1377
1411
|
defaultValue: '默认值',
|
|
@@ -1400,8 +1434,9 @@ const zh = {
|
|
|
1400
1434
|
},
|
|
1401
1435
|
},
|
|
1402
1436
|
console: {
|
|
1437
|
+
saveAdvisoryTitle: '已保存 — 编辑检查提出了 {{count}} 条建议',
|
|
1403
1438
|
title: 'ObjectStack 控制台',
|
|
1404
|
-
initializing: '
|
|
1439
|
+
initializing: '正在初始化应用程序…',
|
|
1405
1440
|
search: '搜索…',
|
|
1406
1441
|
breadcrumb: {
|
|
1407
1442
|
dashboards: '仪表盘',
|
|
@@ -1432,6 +1467,31 @@ const zh = {
|
|
|
1432
1467
|
Other: '其他',
|
|
1433
1468
|
},
|
|
1434
1469
|
},
|
|
1470
|
+
// objectui#4024 — the single-namespace settings screen. Its sibling
|
|
1471
|
+
// `settingsHub` above already resolved through this pack; the view was the
|
|
1472
|
+
// one file still carrying English literals.
|
|
1473
|
+
settingsView: {
|
|
1474
|
+
backToHub: '全部设置',
|
|
1475
|
+
back: '返回',
|
|
1476
|
+
noNamespace: '未选择命名空间。',
|
|
1477
|
+
loadError: '加载设置失败',
|
|
1478
|
+
saved: '设置已保存',
|
|
1479
|
+
saveFailed: '保存失败',
|
|
1480
|
+
lockedByEnv: '已被环境变量锁定:{{key}}',
|
|
1481
|
+
lockedByEnvNoKey: '已被环境变量锁定',
|
|
1482
|
+
actionSucceeded: '操作成功',
|
|
1483
|
+
actionFailed: '操作失败',
|
|
1484
|
+
discard: '放弃',
|
|
1485
|
+
saveChanges: '保存更改',
|
|
1486
|
+
unsavedCount: '{{count}} 项未保存的更改',
|
|
1487
|
+
unsavedCount_one: '{{count}} 项未保存的更改',
|
|
1488
|
+
unsavedCount_other: '{{count}} 项未保存的更改',
|
|
1489
|
+
cryptoRefusalTitle: '此部署无法加密机密信息',
|
|
1490
|
+
cryptoRefusalSubjectSuffix: '被声明为加密字段,因此未写入任何内容。',
|
|
1491
|
+
cryptoRefusalNoSubject: '声明为加密的值被拒绝,因此未写入任何内容。',
|
|
1492
|
+
cryptoRefusalToast: '无法加密机密信息:{{subject}}',
|
|
1493
|
+
cryptoRefusalToastNoSubject: '无法加密机密信息',
|
|
1494
|
+
},
|
|
1435
1495
|
loadingSteps: {
|
|
1436
1496
|
connecting: '正在连接数据源',
|
|
1437
1497
|
loadingConfig: '正在加载配置',
|
|
@@ -1462,6 +1522,7 @@ const zh = {
|
|
|
1462
1522
|
general: '通用',
|
|
1463
1523
|
navigation: '导航',
|
|
1464
1524
|
dataViews: '数据视图',
|
|
1525
|
+
aiChat: 'AI 助手',
|
|
1465
1526
|
preferences: '偏好设置',
|
|
1466
1527
|
},
|
|
1467
1528
|
openCommandPalette: '打开命令面板',
|
|
@@ -1472,11 +1533,13 @@ const zh = {
|
|
|
1472
1533
|
createRecord: '新建记录',
|
|
1473
1534
|
refreshData: '刷新数据',
|
|
1474
1535
|
editRecord: '编辑选中记录',
|
|
1536
|
+
newChat: '新建对话',
|
|
1537
|
+
toggleChatsList: '切换对话列表',
|
|
1475
1538
|
toggleDarkMode: '切换深色模式',
|
|
1476
1539
|
},
|
|
1477
1540
|
commandPalette: {
|
|
1478
1541
|
title: '命令面板',
|
|
1479
|
-
placeholder: '
|
|
1542
|
+
placeholder: '输入命令或搜索…',
|
|
1480
1543
|
noResults: '未找到结果。',
|
|
1481
1544
|
searching: '搜索中…',
|
|
1482
1545
|
records: '记录',
|
|
@@ -1496,6 +1559,13 @@ const zh = {
|
|
|
1496
1559
|
createApp: '创建新应用',
|
|
1497
1560
|
},
|
|
1498
1561
|
ai: {
|
|
1562
|
+
pendingDrafts: {
|
|
1563
|
+
count: '有 {{count}} 项改动尚未发布——用户还看不到。',
|
|
1564
|
+
publish: '发布',
|
|
1565
|
+
published: '全部待发布改动已生效。',
|
|
1566
|
+
failed: '发布失败。',
|
|
1567
|
+
publishedWithFindings: '已发布,但运行时探针发现问题:{{detail}}',
|
|
1568
|
+
},
|
|
1499
1569
|
usage: {
|
|
1500
1570
|
title: 'AI 用量',
|
|
1501
1571
|
meterBuild: 'AI 搭建',
|
|
@@ -1518,7 +1588,7 @@ const zh = {
|
|
|
1518
1588
|
shareTitle: '分享此对话',
|
|
1519
1589
|
shareDisabledTitle: '开始对话后即可分享',
|
|
1520
1590
|
newChat: '新对话',
|
|
1521
|
-
searchChats: '
|
|
1591
|
+
searchChats: '搜索对话…',
|
|
1522
1592
|
noChatsYet: '暂无对话',
|
|
1523
1593
|
noChatsDescription: '开始新的对话后会显示在这里。',
|
|
1524
1594
|
noMatchingChats: '没有匹配的对话。',
|
|
@@ -1527,18 +1597,18 @@ const zh = {
|
|
|
1527
1597
|
deleteConversation: '删除对话',
|
|
1528
1598
|
saveRename: '保存重命名',
|
|
1529
1599
|
cancelRename: '取消重命名',
|
|
1530
|
-
loadingHistory: '
|
|
1600
|
+
loadingHistory: '正在加载对话历史…',
|
|
1531
1601
|
conversationReady: '对话已就绪',
|
|
1532
1602
|
preparingConversation: '正在准备新对话',
|
|
1533
1603
|
offlineDemoMode: '离线演示模式 — 无法获取助手列表',
|
|
1534
1604
|
sendFailedRateLimited: '发送过于频繁,请稍候再试。你的消息已保留在输入框中。',
|
|
1535
1605
|
sendFailedGeneric: '消息发送失败,请重试。你的消息已保留在输入框中。',
|
|
1536
|
-
askAgent: '向 {{agent}}
|
|
1606
|
+
askAgent: '向 {{agent}} 提问…',
|
|
1537
1607
|
assistant: '助手',
|
|
1538
1608
|
liveCanvas: '草稿预览 · {{app}}',
|
|
1539
1609
|
liveCanvasUnlisted: '运行预览 · {{app}}(未发布 · 仅自己可见)',
|
|
1540
|
-
loadingAgents: '
|
|
1541
|
-
askAnything: '
|
|
1610
|
+
loadingAgents: '正在加载助手…',
|
|
1611
|
+
askAnything: '输入你的问题…',
|
|
1542
1612
|
emptyTitle: '开始对话',
|
|
1543
1613
|
emptyDescription: '可以直接提问,助手会结合当前应用上下文提供帮助。',
|
|
1544
1614
|
switchAssistant: '切换助手',
|
|
@@ -1606,6 +1676,11 @@ const zh = {
|
|
|
1606
1676
|
changesConfirmed: '已确认',
|
|
1607
1677
|
changesConfirm: '确认修改',
|
|
1608
1678
|
changesConfirmHint: '回复以确认或调整该改动。',
|
|
1679
|
+
changesApplying: '应用中…',
|
|
1680
|
+
changesApplied: '已生效',
|
|
1681
|
+
changesDrafted: '已暂存为草稿',
|
|
1682
|
+
changesFailed: '未生效',
|
|
1683
|
+
discussing: '正在讨论:{{target}}',
|
|
1609
1684
|
changesConfirmMessage: '确认修改,应用你刚才提议的改动。',
|
|
1610
1685
|
changeVerb: {
|
|
1611
1686
|
createObject: '新建对象',
|
|
@@ -1653,6 +1728,57 @@ const zh = {
|
|
|
1653
1728
|
addAutomation: '加一个自动化 —— 审批、状态流转或通知。',
|
|
1654
1729
|
},
|
|
1655
1730
|
},
|
|
1731
|
+
// objectui#3546 slice four — the AI console surfaces: the /ai chat page's app switcher,
|
|
1732
|
+
// connection banner and plan/publish cards, the ChatDock chrome, and the
|
|
1733
|
+
// conversation-list date buckets. `group.*` is the template-key family
|
|
1734
|
+
// `console.ai.group.${key}` (ConversationsSidebar), enumerated from the
|
|
1735
|
+
// ConversationGroupKey union — all five members, no wildcard.
|
|
1736
|
+
collapseToDock: '收起到侧边栏',
|
|
1737
|
+
switchApp: '切换应用',
|
|
1738
|
+
switchAppLabel: '按应用查看搭建对话',
|
|
1739
|
+
newApp: '新建应用',
|
|
1740
|
+
connectionWaiting: '正在等待服务器…',
|
|
1741
|
+
connectionStalled: '仍在处理…',
|
|
1742
|
+
connectionOffline: '连接已断开 — 正在重新连接…',
|
|
1743
|
+
designingPlan: '正在设计你的应用…',
|
|
1744
|
+
designingPlanHint: {
|
|
1745
|
+
data: '正在梳理你要跟踪的数据…',
|
|
1746
|
+
objects: '正在设计对象及其字段…',
|
|
1747
|
+
relations: '正在关联相关记录…',
|
|
1748
|
+
lookups: '正在设置关系与关联查找…',
|
|
1749
|
+
views: '正在规划界面与视图…',
|
|
1750
|
+
forms: '正在排布表单与列表…',
|
|
1751
|
+
defaults: '正在添加合理的默认值与校验…',
|
|
1752
|
+
dashboard: '正在勾画用于跟踪的仪表盘…',
|
|
1753
|
+
review: '正在复核整体结构是否自洽…',
|
|
1754
|
+
finalize: '正在汇总方案…',
|
|
1755
|
+
},
|
|
1756
|
+
planBuilding: '正在搭建…',
|
|
1757
|
+
planBuilt: '已搭建',
|
|
1758
|
+
planDeferred: '尚未搭建',
|
|
1759
|
+
planReady: '方案已就绪。现在就开始搭建,或者告诉我需要调整什么。',
|
|
1760
|
+
published: '已发布',
|
|
1761
|
+
publishFailed: '发布失败',
|
|
1762
|
+
unavailableTitle: 'AI 助手不可用',
|
|
1763
|
+
unavailableDescription: '当前部署未启用 AI 助手。其他功能一切正常。',
|
|
1764
|
+
unavailableError: '无法连接 AI 服务。它可能暂时离线 — 请重试,或返回首页。',
|
|
1765
|
+
unavailableRetry: '重试',
|
|
1766
|
+
unavailableHome: '返回首页',
|
|
1767
|
+
dock: {
|
|
1768
|
+
title: '助手',
|
|
1769
|
+
description: 'AI 助手对话',
|
|
1770
|
+
resize: '调整对话宽度',
|
|
1771
|
+
collapse: '收起对话',
|
|
1772
|
+
maximize: '以完整页面打开',
|
|
1773
|
+
open: '打开助手',
|
|
1774
|
+
},
|
|
1775
|
+
group: {
|
|
1776
|
+
today: '今天',
|
|
1777
|
+
yesterday: '昨天',
|
|
1778
|
+
previous7Days: '过去 7 天',
|
|
1779
|
+
previous30Days: '过去 30 天',
|
|
1780
|
+
older: '更早',
|
|
1781
|
+
},
|
|
1656
1782
|
},
|
|
1657
1783
|
errors: {
|
|
1658
1784
|
somethingWentWrong: '出错了',
|
|
@@ -1661,6 +1787,12 @@ const zh = {
|
|
|
1661
1787
|
goHome: '返回首页',
|
|
1662
1788
|
errorDetails: '错误详情(仅开发模式)',
|
|
1663
1789
|
},
|
|
1790
|
+
// objectui#3546 slice four — the console's catch-all route (AppContent `RouteNotFound`).
|
|
1791
|
+
notFound: {
|
|
1792
|
+
title: '页面不存在',
|
|
1793
|
+
description: '你访问的链接与该应用中的任何视图都不匹配。',
|
|
1794
|
+
back: '返回',
|
|
1795
|
+
},
|
|
1664
1796
|
theme: {
|
|
1665
1797
|
toggle: '切换主题',
|
|
1666
1798
|
light: '浅色',
|
|
@@ -1696,6 +1828,8 @@ const zh = {
|
|
|
1696
1828
|
},
|
|
1697
1829
|
objectView: {
|
|
1698
1830
|
systemViewReadonly: '系统视图由代码定义,只读。',
|
|
1831
|
+
cannotEditMetaView: '该视图为内置视图,由代码定义,无法修改。',
|
|
1832
|
+
cannotDeleteMetaView: '该视图为内置视图,由代码定义,无法删除。',
|
|
1699
1833
|
expandToPage: '以完整页面打开',
|
|
1700
1834
|
objectNotFound: '未找到对象',
|
|
1701
1835
|
objectNotFoundDescription: '对象"{{objectName}}"在当前配置中不存在。',
|
|
@@ -1703,64 +1837,18 @@ const zh = {
|
|
|
1703
1837
|
filterOrNotSavable: '该筛选条件之间使用「或」,保存到视图暂不支持这种结构。它仍会作用于当前列表 —— 取消「或」分组后才能保存到视图。',
|
|
1704
1838
|
filterNestedNotSavable: '该筛选使用了嵌套条件分组,保存到视图不支持这种结构。请改为单层条件列表后再保存到视图。',
|
|
1705
1839
|
allRecords: '所有记录',
|
|
1706
|
-
exitDesignMode: '退出设计模式',
|
|
1707
|
-
enterDesignMode: '进入设计模式',
|
|
1708
|
-
metadataInspector: '元数据检查器',
|
|
1709
|
-
editView: '编辑视图',
|
|
1710
|
-
addView: '添加视图',
|
|
1711
|
-
designTools: '设计工具',
|
|
1712
1840
|
new: '新建',
|
|
1713
1841
|
import: '导入',
|
|
1714
1842
|
importTitle: '从 CSV 文件导入',
|
|
1715
1843
|
importedToast: '成功导入 {{count}} 行。',
|
|
1716
1844
|
importedWithSkipped: '已导入 {{ok}} 行;跳过 {{skipped}} 行。',
|
|
1717
1845
|
configureView: '配置视图',
|
|
1718
|
-
closePanel: '关闭面板',
|
|
1719
|
-
showAdvancedSettings: '显示高级设置',
|
|
1720
|
-
showFewerSettings: '显示精简设置',
|
|
1721
|
-
page: '页面',
|
|
1722
|
-
pageConfigHint: '工具栏、导航与视图外壳设置',
|
|
1723
|
-
listConfigHint: '此列表类型的数据渲染、列与外观',
|
|
1724
|
-
general: '常规',
|
|
1725
|
-
generalHint: '视图标题、描述和类型',
|
|
1726
1846
|
toolbar: '工具栏',
|
|
1727
|
-
toolbarHint: '搜索、筛选、排序、分组和密度切换',
|
|
1728
1847
|
toolbarEnabledCount: '已启用 {{count}}/{{total}} 项',
|
|
1729
|
-
|
|
1730
|
-
navigationHint: '行点击行为和详情视图设置',
|
|
1731
|
-
records: '记录',
|
|
1732
|
-
recordsHint: '选择模式、添加记录和内联编辑',
|
|
1733
|
-
exportPrint: '导出与打印',
|
|
1734
|
-
exportPrintHint: '导出格式、打印和记录数显示',
|
|
1735
|
-
showAllFields: '全部显示',
|
|
1736
|
-
hideAllFields: '全部隐藏',
|
|
1737
|
-
searchFields: '搜索字段...',
|
|
1848
|
+
searchFields: '搜索字段…',
|
|
1738
1849
|
title: '标题',
|
|
1739
|
-
description: '描述',
|
|
1740
|
-
data: '数据',
|
|
1741
|
-
source: '数据源',
|
|
1742
|
-
columns: '列',
|
|
1743
|
-
filterBy: '筛选条件',
|
|
1744
|
-
sortBy: '排序条件',
|
|
1745
|
-
appearance: '外观',
|
|
1746
|
-
showDescription: '显示描述',
|
|
1747
1850
|
viewType: '视图类型',
|
|
1748
|
-
userFilters: '用户筛选器',
|
|
1749
|
-
enableSearch: '启用搜索',
|
|
1750
|
-
enableFilter: '启用筛选',
|
|
1751
|
-
enableSort: '启用排序',
|
|
1752
|
-
enableHideFields: '启用隐藏字段',
|
|
1753
|
-
enableGroup: '启用分组',
|
|
1754
|
-
enableColor: '启用颜色',
|
|
1755
|
-
enableDensity: '启用密度',
|
|
1756
|
-
userActions: '用户操作',
|
|
1757
|
-
addRecordViaForm: '通过表单添加记录',
|
|
1758
|
-
advanced: '高级',
|
|
1759
|
-
allowExport: '允许导出',
|
|
1760
1851
|
recordCount: '{{count}} 条记录',
|
|
1761
|
-
noDescription: '无描述',
|
|
1762
|
-
none: '无',
|
|
1763
|
-
columnsConfigured: '{{count}} 列',
|
|
1764
1852
|
save: '保存',
|
|
1765
1853
|
discard: '丢弃',
|
|
1766
1854
|
createView: '创建视图',
|
|
@@ -1797,7 +1885,6 @@ const zh = {
|
|
|
1797
1885
|
viewNameHelp: '机器标识(snake_case),根据标题自动生成,可自行修改。',
|
|
1798
1886
|
viewNameRequired: '请输入标识(小写字母、数字、下划线)。非拉丁标题不会自动生成。',
|
|
1799
1887
|
viewNameInvalid: '仅限小写字母、数字和下划线,且以字母或下划线开头。',
|
|
1800
|
-
typeOptions: '类型选项',
|
|
1801
1888
|
groupByField: '分组字段',
|
|
1802
1889
|
groupByFieldHelp: '看板会按该字段的不同取值分列。',
|
|
1803
1890
|
startDateField: '开始日期字段',
|
|
@@ -1812,9 +1899,8 @@ const zh = {
|
|
|
1812
1899
|
longitudeFieldHelp: '提供经度坐标的字段(仅地理坐标字段可选)。',
|
|
1813
1900
|
imageField: '图片字段',
|
|
1814
1901
|
imageFieldHelp: '画廊封面来自该图片或附件字段。',
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
selectOption: '选择...',
|
|
1902
|
+
selectField: '选择字段…',
|
|
1903
|
+
selectOption: '选择…',
|
|
1818
1904
|
noEligibleFieldForType: '没有符合条件的字段。请先在对象上添加该类型字段。',
|
|
1819
1905
|
viewTypeUnavailable: '该对象缺少所需的“{{field}}”字段。',
|
|
1820
1906
|
viewTypeUnavailableShort: '当前对象不支持。',
|
|
@@ -1829,82 +1915,11 @@ const zh = {
|
|
|
1829
1915
|
xAxisFieldHelp: '用于分类或时间维度的字段。',
|
|
1830
1916
|
yAxisField: 'Y 轴字段',
|
|
1831
1917
|
yAxisFieldHelp: '用于数值聚合的字段。',
|
|
1832
|
-
gridOptionsHint: '网格视图使用上方配置的列。',
|
|
1833
1918
|
groupBy: '分组依据',
|
|
1834
|
-
prefixField: '前缀字段',
|
|
1835
|
-
fields: '字段',
|
|
1836
|
-
fieldsVisible: '{{count}} 个可见',
|
|
1837
|
-
sortsCount: '{{count}} 个排序',
|
|
1838
|
-
filtersCount: '{{count}} 个筛选',
|
|
1839
1919
|
endDateField: '结束日期字段',
|
|
1840
|
-
color: '颜色',
|
|
1841
|
-
fieldTextColor: '字段文字颜色',
|
|
1842
|
-
rowHeight: '行高',
|
|
1843
|
-
wrapHeaders: '自动换行标题',
|
|
1844
|
-
showFieldDescriptions: '显示字段描述',
|
|
1845
|
-
collapseAllByDefault: '默认全部折叠',
|
|
1846
|
-
striped: '斑马纹行',
|
|
1847
|
-
bordered: '边框单元格',
|
|
1848
|
-
inlineEdit: '内联编辑记录',
|
|
1849
|
-
addDeleteRecordsInline: '内联添加/删除记录',
|
|
1850
|
-
clickIntoRecordDetails: '点击进入记录详情',
|
|
1851
|
-
navigationMode: '导航模式',
|
|
1852
|
-
navigationWidth: '导航宽度',
|
|
1853
|
-
navigationWidthHint: '适用于抽屉、弹窗和分屏导航模式',
|
|
1854
|
-
openNewTab: '在新标签页打开',
|
|
1855
|
-
openNewTabHint: '适用于页面和新窗口导航模式',
|
|
1856
|
-
selectionMode: '选择模式',
|
|
1857
|
-
selectionNone: '无',
|
|
1858
|
-
selectionSingle: '单选',
|
|
1859
|
-
selectionMultiple: '多选',
|
|
1860
|
-
pageSize: '每页记录数',
|
|
1861
|
-
pageSizeOptions: '每页选项',
|
|
1862
|
-
exportFormats: '导出格式',
|
|
1863
|
-
exportMaxRecords: '最大记录数',
|
|
1864
|
-
exportIncludeHeaders: '包含表头',
|
|
1865
|
-
exportFileNamePrefix: '文件名前缀',
|
|
1866
|
-
searchableFields: '可搜索字段',
|
|
1867
|
-
filterableFields: '可筛选字段',
|
|
1868
|
-
resizableColumns: '可调整列宽',
|
|
1869
|
-
densityCompact: '紧凑',
|
|
1870
|
-
densityComfortable: '舒适',
|
|
1871
|
-
densitySpacious: '宽松',
|
|
1872
|
-
densityMode: '密度模式',
|
|
1873
|
-
hiddenFields: '隐藏字段',
|
|
1874
|
-
rowActions: '行操作',
|
|
1875
|
-
bulkActions: '批量操作',
|
|
1876
|
-
sharing: '共享',
|
|
1877
|
-
sharingEnabled: '启用共享',
|
|
1878
|
-
sharingVisibility: '可见性',
|
|
1879
|
-
addRecordEnabled: '启用添加记录',
|
|
1880
|
-
addRecordPosition: '位置',
|
|
1881
|
-
addRecordMode: '模式',
|
|
1882
|
-
addRecordFormView: '表单视图',
|
|
1883
|
-
conditionalFormatting: '条件格式',
|
|
1884
|
-
addRule: '添加规则',
|
|
1885
|
-
quickFilters: '快速筛选',
|
|
1886
|
-
addQuickFilter: '添加快速筛选',
|
|
1887
|
-
ufElements: '元素类型',
|
|
1888
|
-
ufDropdown: '下拉菜单',
|
|
1889
1920
|
ufTabs: '标签页',
|
|
1890
|
-
|
|
1891
|
-
ufAddField: '+ 添加筛选字段...',
|
|
1892
|
-
ufNoFields: '无可用字段',
|
|
1893
|
-
ufAddTab: '+ 添加标签页',
|
|
1894
|
-
ufTabLabel: '标签',
|
|
1921
|
+
ufAddField: '+ 添加筛选字段…',
|
|
1895
1922
|
ufShowAllRecords: '显示"全部记录"标签页',
|
|
1896
|
-
ufAllowAddTab: '允许添加标签页',
|
|
1897
|
-
showRecordCount: '显示记录计数',
|
|
1898
|
-
allowPrinting: '允许打印',
|
|
1899
|
-
virtualScroll: '虚拟滚动',
|
|
1900
|
-
emptyStateTitle: '空状态标题',
|
|
1901
|
-
emptyStateMessage: '空状态消息',
|
|
1902
|
-
emptyStateIcon: '空状态图标',
|
|
1903
|
-
ariaLabel: 'ARIA 标签',
|
|
1904
|
-
ariaDescribedBy: 'ARIA 描述',
|
|
1905
|
-
ariaLive: 'ARIA 实时区域',
|
|
1906
|
-
accessibility: '无障碍',
|
|
1907
|
-
viewTabs: '视图标签',
|
|
1908
1923
|
},
|
|
1909
1924
|
localeSwitcher: {
|
|
1910
1925
|
label: '语言',
|
|
@@ -1920,7 +1935,7 @@ const zh = {
|
|
|
1920
1935
|
passwordPlaceholder: '输入您的密码',
|
|
1921
1936
|
forgotPasswordText: '忘记密码?',
|
|
1922
1937
|
submitButton: '登录',
|
|
1923
|
-
submittingButton: '
|
|
1938
|
+
submittingButton: '登录中…',
|
|
1924
1939
|
noAccountText: '还没有账户?',
|
|
1925
1940
|
signUpText: '注册',
|
|
1926
1941
|
signingIn: '正在登录…',
|
|
@@ -1935,6 +1950,18 @@ const zh = {
|
|
|
1935
1950
|
emailNotVerified: '请先验证您的邮箱后再登录。',
|
|
1936
1951
|
oauthCallbackFailed: '单点登录未能完成——登录链接已过期或已被使用,请重新发起登录。',
|
|
1937
1952
|
},
|
|
1953
|
+
// objectui#3546 slice three — phone/OTP sign-in. `{seconds}` is LoginForm's own
|
|
1954
|
+
// literal `.replace()` hole, not i18next interpolation: keep the single braces.
|
|
1955
|
+
emailOrPhoneLabel: '邮箱或手机号',
|
|
1956
|
+
emailOrPhonePlaceholder: 'name@example.com 或 +1 555 000 0000',
|
|
1957
|
+
phoneLabel: '手机号',
|
|
1958
|
+
phonePlaceholder: '+1 555 000 0000',
|
|
1959
|
+
otpCodeLabel: '验证码',
|
|
1960
|
+
otpCodePlaceholder: '6 位验证码',
|
|
1961
|
+
sendOtpButton: '获取验证码',
|
|
1962
|
+
resendOtpCountdownText: '{seconds} 秒后可重新发送',
|
|
1963
|
+
usePhoneOtpText: '使用验证码登录',
|
|
1964
|
+
usePasswordSignInText: '改用密码登录',
|
|
1938
1965
|
},
|
|
1939
1966
|
register: {
|
|
1940
1967
|
title: '创建账户',
|
|
@@ -1950,7 +1977,7 @@ const zh = {
|
|
|
1950
1977
|
passwordMismatchError: '两次输入的密码不一致',
|
|
1951
1978
|
passwordTooShortError: '密码至少需要8个字符',
|
|
1952
1979
|
submitButton: '创建账户',
|
|
1953
|
-
submittingButton: '
|
|
1980
|
+
submittingButton: '创建中…',
|
|
1954
1981
|
hasAccountText: '已有账户?',
|
|
1955
1982
|
signInText: '登录',
|
|
1956
1983
|
errors: {
|
|
@@ -1971,12 +1998,26 @@ const zh = {
|
|
|
1971
1998
|
emailLabel: '邮箱',
|
|
1972
1999
|
emailPlaceholder: 'name@example.com',
|
|
1973
2000
|
submitButton: '发送重置链接',
|
|
1974
|
-
submittingButton: '
|
|
2001
|
+
submittingButton: '发送中…',
|
|
1975
2002
|
successTitle: '请查看您的邮箱',
|
|
1976
|
-
successDescription: '我们已将密码重置链接发送至 {
|
|
2003
|
+
successDescription: '我们已将密码重置链接发送至 {email},请检查您的收件箱。',
|
|
1977
2004
|
backToSignInText: '返回登录',
|
|
1978
2005
|
rememberPasswordText: '记住密码了?',
|
|
1979
2006
|
signInText: '登录',
|
|
2007
|
+
// objectui#3546 slice three — the SMS reset branch of the same form.
|
|
2008
|
+
phoneLabel: '手机号',
|
|
2009
|
+
phonePlaceholder: '+1 555 000 0000',
|
|
2010
|
+
otpCodeLabel: '验证码',
|
|
2011
|
+
otpCodePlaceholder: '6 位验证码',
|
|
2012
|
+
sendOtpButton: '获取验证码',
|
|
2013
|
+
resendOtpCountdownText: '{seconds} 秒后可重新发送',
|
|
2014
|
+
newPasswordLabel: '新密码',
|
|
2015
|
+
newPasswordPlaceholder: '输入新密码',
|
|
2016
|
+
resetButton: '重置密码',
|
|
2017
|
+
usePhoneResetText: '通过短信验证码重置',
|
|
2018
|
+
useEmailResetText: '改用邮箱重置',
|
|
2019
|
+
phoneSuccessTitle: '密码已重置',
|
|
2020
|
+
phoneSuccessDescription: '您的密码已重置,现在可以使用新密码登录了。',
|
|
1980
2021
|
},
|
|
1981
2022
|
setPassword: {
|
|
1982
2023
|
title: '设置一个备用密码',
|
|
@@ -2029,6 +2070,8 @@ const zh = {
|
|
|
2029
2070
|
backToLogin: '返回登录',
|
|
2030
2071
|
checkSpam: '没有收到邮件?请检查垃圾邮件文件夹或联系支持。',
|
|
2031
2072
|
or: '或',
|
|
2073
|
+
// objectui#3546 slice three.
|
|
2074
|
+
resendUnavailable: '此环境可能未配置邮件发送服务。如果问题持续存在,请联系支持。',
|
|
2032
2075
|
},
|
|
2033
2076
|
setup: {
|
|
2034
2077
|
welcomeTitle: '欢迎使用 ObjectStack',
|
|
@@ -2067,6 +2110,9 @@ const zh = {
|
|
|
2067
2110
|
invalidDescription: 'URL 中未提供设备代码。',
|
|
2068
2111
|
loading: '加载中…',
|
|
2069
2112
|
cancel: '取消',
|
|
2113
|
+
// objectui#3546 slice three — device-authorization plugin switched off.
|
|
2114
|
+
disabledTitle: '未启用设备授权',
|
|
2115
|
+
disabledDescription: '此部署未启用设备授权,因此无法在此批准该设备。',
|
|
2070
2116
|
},
|
|
2071
2117
|
shell: {
|
|
2072
2118
|
tenantHostHint: '您正在登录此工作区',
|
|
@@ -2106,6 +2152,29 @@ const zh = {
|
|
|
2106
2152
|
},
|
|
2107
2153
|
},
|
|
2108
2154
|
},
|
|
2155
|
+
// objectui#3546 slice three — the /oauth/consent screen.
|
|
2156
|
+
oauth: {
|
|
2157
|
+
consent: {
|
|
2158
|
+
title: '{{appName}} 请求访问您的账户',
|
|
2159
|
+
request: '{{appName}} 正在请求授权{{suffix}}。',
|
|
2160
|
+
unknownApp: '某个应用',
|
|
2161
|
+
willAllow: '此应用将能够:',
|
|
2162
|
+
scope: {
|
|
2163
|
+
openid: '确认您的身份',
|
|
2164
|
+
profile: '读取您的基本资料(姓名、头像)',
|
|
2165
|
+
email: '读取您的邮箱地址',
|
|
2166
|
+
offlineAccess: '保持登录状态(刷新访问权限)',
|
|
2167
|
+
},
|
|
2168
|
+
deny: '拒绝',
|
|
2169
|
+
authorize: '授权',
|
|
2170
|
+
submitting: '授权中…',
|
|
2171
|
+
granted: '已授予访问权限',
|
|
2172
|
+
denied: '访问被拒绝',
|
|
2173
|
+
noRedirect: '服务器未返回跳转地址。',
|
|
2174
|
+
failed: '授权失败',
|
|
2175
|
+
footer: '您可以随时在账户设置中撤销访问权限。',
|
|
2176
|
+
},
|
|
2177
|
+
},
|
|
2109
2178
|
profile: {
|
|
2110
2179
|
title: '个人资料',
|
|
2111
2180
|
subtitle: '管理您的账户设置',
|
|
@@ -2167,6 +2236,8 @@ const zh = {
|
|
|
2167
2236
|
invite: '邀请成员',
|
|
2168
2237
|
members: '成员',
|
|
2169
2238
|
settings: '工作区设置',
|
|
2239
|
+
multiOrgDisabled: '此实例已禁用创建新组织。',
|
|
2240
|
+
createFailed: '创建工作区失败',
|
|
2170
2241
|
},
|
|
2171
2242
|
help: {
|
|
2172
2243
|
keyboardShortcuts: '键盘快捷键',
|
|
@@ -2187,7 +2258,7 @@ const zh = {
|
|
|
2187
2258
|
area: '区域',
|
|
2188
2259
|
scope: '范围',
|
|
2189
2260
|
packageManagement: '软件包管理',
|
|
2190
|
-
searchNavigation: '
|
|
2261
|
+
searchNavigation: '搜索导航…',
|
|
2191
2262
|
recent: '最近使用',
|
|
2192
2263
|
favorites: '收藏',
|
|
2193
2264
|
starred: '已收藏',
|
|
@@ -2203,8 +2274,8 @@ const zh = {
|
|
|
2203
2274
|
switchObject: '切换对象',
|
|
2204
2275
|
connection: {
|
|
2205
2276
|
connected: '已连接',
|
|
2206
|
-
connecting: '
|
|
2207
|
-
reconnecting: '
|
|
2277
|
+
connecting: '连接中…',
|
|
2278
|
+
reconnecting: '正在重新连接…',
|
|
2208
2279
|
disconnected: '已断开连接',
|
|
2209
2280
|
error: '连接错误',
|
|
2210
2281
|
},
|
|
@@ -2236,10 +2307,12 @@ const zh = {
|
|
|
2236
2307
|
build: {
|
|
2237
2308
|
title: '构建应用',
|
|
2238
2309
|
subtitle: '从零开始 — 设计对象、表单、自动化与界面。',
|
|
2310
|
+
noCapability: '此工作区不提供构建应用功能 — 它需要「管理元数据」权限,而你的账号没有该权限。',
|
|
2239
2311
|
},
|
|
2240
2312
|
template: {
|
|
2241
2313
|
title: '从模板开始',
|
|
2242
2314
|
subtitle: '从应用市场安装模板应用并按需定制。',
|
|
2315
|
+
marketplaceDisabled: '本运行时未配置应用市场,因此这里没有可安装的模板。',
|
|
2243
2316
|
},
|
|
2244
2317
|
open: '打开',
|
|
2245
2318
|
stats: {
|
|
@@ -2247,7 +2320,7 @@ const zh = {
|
|
|
2247
2320
|
starred: '收藏',
|
|
2248
2321
|
recent: '最近访问',
|
|
2249
2322
|
},
|
|
2250
|
-
loading: '
|
|
2323
|
+
loading: '正在加载工作区…',
|
|
2251
2324
|
recent: '最近使用',
|
|
2252
2325
|
starred: '收藏',
|
|
2253
2326
|
welcome: '用 AI 搭建你的业务系统',
|
|
@@ -2270,6 +2343,13 @@ const zh = {
|
|
|
2270
2343
|
publishing: '发布中…',
|
|
2271
2344
|
published: '已发布!更改已生效。',
|
|
2272
2345
|
publishFailed: '发布失败',
|
|
2346
|
+
// objectui#3546 切片六 —— usePublishAllDrafts 其余几条 toast。
|
|
2347
|
+
// seedWarn 与 console.ai.seedWarn 同串,直接沿用该键既有译文。
|
|
2348
|
+
nothing: '没有需要发布的内容。',
|
|
2349
|
+
probeWarn: '已发布,但验证发现了问题。',
|
|
2350
|
+
seedWarn: '已发布,但部分示例数据未能载入。',
|
|
2351
|
+
publishedVerified: '已发布并验证 —— {{count}} 行示例数据已生效。',
|
|
2352
|
+
capabilityWarn: '编写检查:{{count}} 个能力引用无法解析。',
|
|
2273
2353
|
},
|
|
2274
2354
|
createFirstApp: '手动创建应用',
|
|
2275
2355
|
systemSettings: '系统设置',
|
|
@@ -2327,6 +2407,9 @@ const zh = {
|
|
|
2327
2407
|
roles: '角色',
|
|
2328
2408
|
configuration: '配置',
|
|
2329
2409
|
createApp: '创建应用',
|
|
2410
|
+
administration: '管理',
|
|
2411
|
+
datasources: '数据源',
|
|
2412
|
+
documentation: '文档',
|
|
2330
2413
|
},
|
|
2331
2414
|
activityFeed: {
|
|
2332
2415
|
title: '最近动态',
|
|
@@ -2374,6 +2457,7 @@ const zh = {
|
|
|
2374
2457
|
empty: {
|
|
2375
2458
|
objectNotFound: '未找到对象',
|
|
2376
2459
|
objectNotFoundDescription: '对象 “{{name}}” 的定义不存在。请检查配置或返回选择有效的对象。',
|
|
2460
|
+
interfacePageSourceMissing: '此界面页引用了 “{{name}}”,但该来源不可用。',
|
|
2377
2461
|
recordNotFound: '未找到记录',
|
|
2378
2462
|
recordNotFoundDescription: '您查找的记录不存在或已被删除。',
|
|
2379
2463
|
pageNotFound: '未找到页面',
|
|
@@ -2384,6 +2468,11 @@ const zh = {
|
|
|
2384
2468
|
reportNotFoundDescription: '未找到报表 “{{name}}”,可能已被删除或重命名。',
|
|
2385
2469
|
noAppsConfigured: '尚未配置应用',
|
|
2386
2470
|
noAppsConfiguredDescription: '当前没有任何已注册的应用。请创建您的第一个应用,或前往系统设置进行配置。',
|
|
2471
|
+
appNotAvailable: '应用不可用',
|
|
2472
|
+
appNotAvailableDescription: '此应用尚不可用 —— 可能仍在发布中。请稍后重试。',
|
|
2473
|
+
appAccessDenied: '你没有访问此应用的权限',
|
|
2474
|
+
appAccessDeniedDescription: '此应用存在,但你的账号未获授权打开它。请联系管理员为你开通访问权限。',
|
|
2475
|
+
appAccessDeniedHome: '返回首页',
|
|
2387
2476
|
createFirstApp: '创建您的第一个应用',
|
|
2388
2477
|
systemSettings: '系统设置',
|
|
2389
2478
|
back: '返回',
|
|
@@ -2424,22 +2513,40 @@ const zh = {
|
|
|
2424
2513
|
detailChangedKeys: '其他变更:',
|
|
2425
2514
|
confirmNote: '发布将一次性(原子地)发布此包全部 {{count}} 个待发布草稿。',
|
|
2426
2515
|
publishConfirm: '全部发布',
|
|
2516
|
+
// [objectui#5418] Pre-publish security-posture findings, shown next to
|
|
2517
|
+
// the confirm button so a refusal the door would issue is read BEFORE
|
|
2518
|
+
// the click rather than as a toast after the batch rolled back.
|
|
2519
|
+
securityBlockTitle: '发布会被拒绝 —— 有 {{count}} 项需要先做出决定',
|
|
2520
|
+
securityBlockWhere: '请在对象的“设置 → 记录共享模型”中修改后重新发布。',
|
|
2521
|
+
},
|
|
2522
|
+
// ADR-0045 — the materialized-but-unlisted app banner
|
|
2523
|
+
// (UnpublishedAppBar.tsx), sibling of draftBar above.
|
|
2524
|
+
unpublishedBar: {
|
|
2525
|
+
message: '未发布的应用 —— 功能完整,但只有构建者能看到。发布后即可让您的用户看到。',
|
|
2526
|
+
publish: '发布',
|
|
2527
|
+
publishing: '发布中…',
|
|
2528
|
+
published: '已发布!应用现在对您的用户可见。',
|
|
2529
|
+
publishFailed: '发布失败',
|
|
2530
|
+
},
|
|
2531
|
+
// ADR-0067 — the append-only build/revert timeline (CommitTimeline.tsx);
|
|
2532
|
+
// `button` is the banner's entry point into it.
|
|
2533
|
+
history: {
|
|
2534
|
+
button: '历史',
|
|
2535
|
+
title: '构建历史',
|
|
2536
|
+
description: '此应用的每一次变更,最新的在最前。撤销任一步骤即可回退 —— 无需确认发布。',
|
|
2537
|
+
loadFailed: '无法加载历史记录:',
|
|
2538
|
+
loadFailedUnavailable: '提交存储暂时不可达 —— 本次读取并未发生,因此不显示任何历史记录。请稍后重试。',
|
|
2539
|
+
loading: '正在加载历史记录…',
|
|
2540
|
+
empty: '此应用暂无历史记录。',
|
|
2541
|
+
revertLabel: '已撤销一处变更',
|
|
2542
|
+
applyLabel: '构建变更',
|
|
2543
|
+
revert: '撤销',
|
|
2544
|
+
items: '项',
|
|
2545
|
+
revertAction: '撤销',
|
|
2546
|
+
reverted: '已撤销 —— 该变更已还原。',
|
|
2547
|
+
revertFailed: '撤销失败',
|
|
2548
|
+
revertUnavailable: '提交存储暂时不可达 —— 此次撤销可能尚未生效。请重新打开历史记录确认后再重试。',
|
|
2427
2549
|
},
|
|
2428
|
-
},
|
|
2429
|
-
renderer: {
|
|
2430
|
-
noPageSchema: '未提供页面 schema',
|
|
2431
|
-
noFormSchema: '未提供表单 schema',
|
|
2432
|
-
noDashboardSchema: '未提供仪表板 schema',
|
|
2433
|
-
pageRendering: '页面渲染中:{{name}}',
|
|
2434
|
-
dashboardRendering: '仪表板渲染中:{{name}}',
|
|
2435
|
-
formRenderingMode: '正在以 {{mode}} 模式渲染表单',
|
|
2436
|
-
formRenderingFor: '记录 {{id}}',
|
|
2437
|
-
createRecord: '新建记录',
|
|
2438
|
-
editRecord: '编辑记录',
|
|
2439
|
-
page: '页面',
|
|
2440
|
-
dashboard: '仪表板',
|
|
2441
|
-
save: '保存',
|
|
2442
|
-
cancel: '取消',
|
|
2443
2550
|
},
|
|
2444
2551
|
actionDialog: {
|
|
2445
2552
|
title: '操作参数',
|
|
@@ -2491,7 +2598,7 @@ const zh = {
|
|
|
2491
2598
|
deleteFailed: '删除视图失败',
|
|
2492
2599
|
},
|
|
2493
2600
|
dashboardActions: {
|
|
2494
|
-
|
|
2601
|
+
printDialogOpening: '正在打开浏览器打印对话框(不是导出 PDF)',
|
|
2495
2602
|
exportFailed: '导出失败:{{message}}',
|
|
2496
2603
|
forecastSoon: '预测视图即将上线',
|
|
2497
2604
|
},
|
|
@@ -2526,6 +2633,143 @@ const zh = {
|
|
|
2526
2633
|
emptyDescription: '创建您的第一个工作区以开始使用。',
|
|
2527
2634
|
noMatches: '没有匹配的工作区。',
|
|
2528
2635
|
},
|
|
2636
|
+
organization: {
|
|
2637
|
+
roles: {
|
|
2638
|
+
owner: '所有者',
|
|
2639
|
+
admin: '管理员',
|
|
2640
|
+
delegatedAdmin: '受托管理员',
|
|
2641
|
+
member: '成员',
|
|
2642
|
+
},
|
|
2643
|
+
errors: {
|
|
2644
|
+
notAllowedToInvite: '您无权邀请用户加入该组织。',
|
|
2645
|
+
notAllowedToInviteWithRole: '您无权以该角色邀请用户。',
|
|
2646
|
+
alreadyInvited: '该用户已被邀请加入本组织。',
|
|
2647
|
+
organizationExists: '该组织已存在。',
|
|
2648
|
+
slugTaken: '该标识已被占用。',
|
|
2649
|
+
notAllowedToCreate: '您无权创建新组织。',
|
|
2650
|
+
notTheRecipient: '您不是该邀请的收件人。',
|
|
2651
|
+
invitationNotFound: '该邀请已失效或已过期。',
|
|
2652
|
+
unknown: '出了点问题,请重试。',
|
|
2653
|
+
},
|
|
2654
|
+
backToList: '返回组织列表',
|
|
2655
|
+
notFound: '未找到组织',
|
|
2656
|
+
notFoundDescription: '该组织不存在,或您没有访问权限。',
|
|
2657
|
+
tabs: {
|
|
2658
|
+
members: '成员',
|
|
2659
|
+
invitations: '邀请',
|
|
2660
|
+
settings: '设置',
|
|
2661
|
+
},
|
|
2662
|
+
members: {
|
|
2663
|
+
title: '成员',
|
|
2664
|
+
inviteMember: '邀请成员',
|
|
2665
|
+
inviteRestrictedNote: '只有组织管理员可以邀请成员。',
|
|
2666
|
+
removeMember: '移除成员',
|
|
2667
|
+
removeConfirmTitle: '移除成员?',
|
|
2668
|
+
removeConfirmDescription: '将把 {{name}} 从该组织中移除,其访问权限会立即失效。',
|
|
2669
|
+
removeConfirmAction: '移除',
|
|
2670
|
+
memberRemoved: '成员已移除',
|
|
2671
|
+
removeFailed: '移除成员失败',
|
|
2672
|
+
roleUpdated: '角色已更新',
|
|
2673
|
+
roleUpdateFailed: '更新角色失败',
|
|
2674
|
+
memberActions: '成员操作',
|
|
2675
|
+
loadFailed: '加载成员失败',
|
|
2676
|
+
},
|
|
2677
|
+
invitations: {
|
|
2678
|
+
title: '邀请',
|
|
2679
|
+
empty: '暂无邀请。',
|
|
2680
|
+
expiresAt: '过期时间',
|
|
2681
|
+
linkCopied: '邀请链接已复制',
|
|
2682
|
+
copyFailed: '复制链接失败',
|
|
2683
|
+
canceled: '邀请已取消',
|
|
2684
|
+
cancelFailed: '取消邀请失败',
|
|
2685
|
+
cancelTitle: '取消邀请?',
|
|
2686
|
+
cancelDescription: '将撤销发给 {{email}} 的邀请。',
|
|
2687
|
+
cancelAction: '取消邀请',
|
|
2688
|
+
inviteTitle: '邀请成员',
|
|
2689
|
+
inviteDescription: '对方将收到加入该组织的邀请。',
|
|
2690
|
+
emailLabel: '邮箱',
|
|
2691
|
+
roleLabel: '角色',
|
|
2692
|
+
placementLabel: '任职安排(可选)',
|
|
2693
|
+
placementDescription: '在邀请被接受时生效。仅列出您有权分派的业务单元和岗位。',
|
|
2694
|
+
businessUnitLabel: '业务单元',
|
|
2695
|
+
businessUnitPlaceholder: '不指定任职',
|
|
2696
|
+
positionsLabel: '岗位',
|
|
2697
|
+
sendInvite: '发送邀请',
|
|
2698
|
+
sentTitle: '邀请已创建',
|
|
2699
|
+
sentDescription: '请将下方链接发送给受邀人。对方需要登录后才能接受。',
|
|
2700
|
+
linkLabel: '接受链接',
|
|
2701
|
+
invitedAs: '{{email}} 已以 {{role}} 身份受邀',
|
|
2702
|
+
copyLinkLabel: '复制邀请链接',
|
|
2703
|
+
loadFailed: '加载邀请失败',
|
|
2704
|
+
inviteFailed: '邀请成员失败',
|
|
2705
|
+
status: {
|
|
2706
|
+
all: '全部',
|
|
2707
|
+
pending: '等待中',
|
|
2708
|
+
accepted: '已接受',
|
|
2709
|
+
rejected: '已拒绝',
|
|
2710
|
+
canceled: '已取消',
|
|
2711
|
+
},
|
|
2712
|
+
},
|
|
2713
|
+
settings: {
|
|
2714
|
+
generalTitle: '常规',
|
|
2715
|
+
generalDescription: '更新组织信息。',
|
|
2716
|
+
readOnlyNote: '只有所有者可以修改设置。',
|
|
2717
|
+
nameLabel: '组织名称',
|
|
2718
|
+
slugLabel: '标识',
|
|
2719
|
+
logoLabel: 'Logo',
|
|
2720
|
+
logoUpload: '上传',
|
|
2721
|
+
logoReplace: '更换',
|
|
2722
|
+
logoClear: '移除',
|
|
2723
|
+
logoUploaded: 'Logo 已上传,保存后生效',
|
|
2724
|
+
logoUploadFailed: '上传 Logo 失败',
|
|
2725
|
+
save: '保存更改',
|
|
2726
|
+
saved: '设置已保存',
|
|
2727
|
+
saveFailed: '保存设置失败',
|
|
2728
|
+
leaveTitle: '退出组织',
|
|
2729
|
+
leaveDescription: '退出后您将失去对该组织的访问权限。',
|
|
2730
|
+
leaveAction: '退出',
|
|
2731
|
+
leaveConfirmTitle: '退出组织?',
|
|
2732
|
+
leaveConfirmDescription: '确定要退出 {{name}} 吗?您的访问权限会立即失效。',
|
|
2733
|
+
leaveConfirmAction: '退出',
|
|
2734
|
+
leftOrg: '您已退出该组织',
|
|
2735
|
+
leaveFailed: '退出组织失败',
|
|
2736
|
+
dangerZone: '危险操作',
|
|
2737
|
+
deleteTitle: '删除组织',
|
|
2738
|
+
deleteDescription: '永久删除该组织及其全部数据。',
|
|
2739
|
+
deleteAction: '删除',
|
|
2740
|
+
deleteConfirmTitle: '删除组织?',
|
|
2741
|
+
deleteConfirmDescription: '此操作不可撤销,所有数据将被永久删除。请输入组织标识以确认。',
|
|
2742
|
+
deleteConfirmSlugLabel: '输入“{{slug}}”以确认',
|
|
2743
|
+
deleteConfirmAction: '删除组织',
|
|
2744
|
+
deleted: '组织已删除',
|
|
2745
|
+
deleteFailed: '删除组织失败',
|
|
2746
|
+
},
|
|
2747
|
+
accept: {
|
|
2748
|
+
title: '您收到一份邀请',
|
|
2749
|
+
description: '您受邀以 {{role}} 身份加入 {{orgName}}。',
|
|
2750
|
+
errorTitle: '邀请不可用',
|
|
2751
|
+
goToOrgs: '前往组织列表',
|
|
2752
|
+
loading: '正在加载邀请…',
|
|
2753
|
+
organization: '组织',
|
|
2754
|
+
role: '角色',
|
|
2755
|
+
expiresAt: '过期时间',
|
|
2756
|
+
accept: '接受邀请',
|
|
2757
|
+
accepted: '邀请已接受',
|
|
2758
|
+
acceptFailed: '接受邀请失败',
|
|
2759
|
+
decline: '拒绝',
|
|
2760
|
+
declined: '邀请已拒绝',
|
|
2761
|
+
declineFailed: '拒绝邀请失败',
|
|
2762
|
+
},
|
|
2763
|
+
current: {
|
|
2764
|
+
label: '当前组织',
|
|
2765
|
+
},
|
|
2766
|
+
switcher: {
|
|
2767
|
+
label: '切换组织',
|
|
2768
|
+
groupLabel: '当前工作组织',
|
|
2769
|
+
groupHint: '新建记录将归属该组织。视图会显示您所有组织的数据。',
|
|
2770
|
+
manageMembers: '管理成员',
|
|
2771
|
+
},
|
|
2772
|
+
},
|
|
2529
2773
|
notifications: {
|
|
2530
2774
|
regionLabel: '通知',
|
|
2531
2775
|
empty: '暂无通知',
|
|
@@ -2542,6 +2786,9 @@ const zh = {
|
|
|
2542
2786
|
viewApprovals: '查看审批',
|
|
2543
2787
|
noPendingApprovals: '暂无待审批事项',
|
|
2544
2788
|
openApprovalsInbox: '打开审批中心',
|
|
2789
|
+
badgeTotal: '共 {{total}} 项',
|
|
2790
|
+
badgeNotifications: '{{unread}} 条通知',
|
|
2791
|
+
badgeApprovals: '{{approvals}} 条待审批',
|
|
2545
2792
|
},
|
|
2546
2793
|
publicForm: {
|
|
2547
2794
|
submit: '提交',
|
|
@@ -2563,52 +2810,6 @@ const zh = {
|
|
|
2563
2810
|
consentRequired: '请先勾选同意隐私政策。',
|
|
2564
2811
|
rateLimited: '请再花点时间核对一下您的填写内容,再点击提交。',
|
|
2565
2812
|
redirectBlocked: '提交成功,但出于安全考虑,跳转链接已被阻止。',
|
|
2566
|
-
demo: {
|
|
2567
|
-
contactTitle: '联系我们',
|
|
2568
|
-
contactDescription: '告诉我们您的项目需求,销售代表将在一个工作日内与您联系。',
|
|
2569
|
-
supportTitle: '提交支持请求',
|
|
2570
|
-
supportDescription: '描述您遇到的问题,我们的团队会在一个工作日内回复。',
|
|
2571
|
-
thankYouSalesTitle: '已收到您的信息,感谢联系!',
|
|
2572
|
-
thankYouSalesMessage: '我们的销售代表将在一个工作日内与您取得联系。',
|
|
2573
|
-
thankYouSupportTitle: '您的请求已进入处理队列。',
|
|
2574
|
-
thankYouSupportMessage: '支持工程师将尽快跟进。如需补充截图,请保留此页面。',
|
|
2575
|
-
field: {
|
|
2576
|
-
firstName: '名字',
|
|
2577
|
-
lastName: '姓氏',
|
|
2578
|
-
email: '工作邮箱',
|
|
2579
|
-
phone: '电话',
|
|
2580
|
-
jobTitle: '职位',
|
|
2581
|
-
company: '公司',
|
|
2582
|
-
website: '官网',
|
|
2583
|
-
industry: '行业',
|
|
2584
|
-
companySize: '公司规模',
|
|
2585
|
-
howCanWeHelp: '我们可以为您做些什么?',
|
|
2586
|
-
subject: '主题',
|
|
2587
|
-
description: '问题描述',
|
|
2588
|
-
issueType: '问题类型',
|
|
2589
|
-
priority: '优先级',
|
|
2590
|
-
},
|
|
2591
|
-
industry: {
|
|
2592
|
-
technology: '科技',
|
|
2593
|
-
software: '软件 / SaaS',
|
|
2594
|
-
finance: '金融',
|
|
2595
|
-
healthcare: '医疗健康',
|
|
2596
|
-
retail: '零售',
|
|
2597
|
-
other: '其他',
|
|
2598
|
-
},
|
|
2599
|
-
issueType: {
|
|
2600
|
-
question: '咨询',
|
|
2601
|
-
problem: '问题',
|
|
2602
|
-
bug: '缺陷',
|
|
2603
|
-
feature_request: '功能建议',
|
|
2604
|
-
},
|
|
2605
|
-
priority: {
|
|
2606
|
-
low: '低',
|
|
2607
|
-
medium: '中',
|
|
2608
|
-
high: '高',
|
|
2609
|
-
critical: '紧急',
|
|
2610
|
-
},
|
|
2611
|
-
},
|
|
2612
2813
|
},
|
|
2613
2814
|
connectAgent: {
|
|
2614
2815
|
disabled: {
|
|
@@ -2720,6 +2921,7 @@ const zh = {
|
|
|
2720
2921
|
retry: '重试',
|
|
2721
2922
|
errors: {
|
|
2722
2923
|
expired: '请求在获批前已过期,请重新开始。',
|
|
2924
|
+
accessDenied: '连接请求已被拒绝,请重新开始。',
|
|
2723
2925
|
bindFailed: '绑定失败。',
|
|
2724
2926
|
deviceCodeFailed: '设备码请求失败。',
|
|
2725
2927
|
},
|
|
@@ -2776,10 +2978,16 @@ const zh = {
|
|
|
2776
2978
|
installedBadge: '已安装 v{{version}}',
|
|
2777
2979
|
load: {
|
|
2778
2980
|
failed: '应用市场加载失败',
|
|
2779
|
-
|
|
2981
|
+
failedHintConfigured: '本运行时通过 {{url}} 上的控制面访问应用市场。请检查该地址是否在线、能否从本运行时访问。',
|
|
2982
|
+
failedHintSameOrigin: '本运行时自己提供应用市场目录。请检查运行时是否在线。',
|
|
2780
2983
|
packageFailed: '应用加载失败',
|
|
2781
2984
|
notFound: '未找到。',
|
|
2782
2985
|
},
|
|
2986
|
+
disabled: {
|
|
2987
|
+
title: '应用市场已关闭',
|
|
2988
|
+
description: '本运行时未配置应用市场,因此这里没有可浏览或安装的内容。',
|
|
2989
|
+
hint: '当运行时以 <code>OS_CLOUD_URL=off</code>(或 <code>none</code>、<code>local</code>、<code>disabled</code>)启动时,这就是预期状态。如需开启应用市场,请把 <code>OS_CLOUD_URL</code> 指向一个控制面并重启运行时。',
|
|
2990
|
+
},
|
|
2783
2991
|
detail: {
|
|
2784
2992
|
homepage: '主页',
|
|
2785
2993
|
installedV: '已安装 · v{{version}}',
|
|
@@ -2815,6 +3023,7 @@ const zh = {
|
|
|
2815
3023
|
dismiss: '关闭',
|
|
2816
3024
|
openOnCloud: '在云端打开',
|
|
2817
3025
|
backHome: '返回首页',
|
|
3026
|
+
updateTo: '更新',
|
|
2818
3027
|
},
|
|
2819
3028
|
install: {
|
|
2820
3029
|
dialogTitle: '安装 {{name}}',
|
|
@@ -2831,6 +3040,37 @@ const zh = {
|
|
|
2831
3040
|
localManifestConflict: '{{message}}\n提示:本地已有应用占用此 manifest_id,请先从 objectstack.config.ts 中移除。',
|
|
2832
3041
|
localUnauthorized: '请先登录本运行时再试。',
|
|
2833
3042
|
localMarketplaceUnavailable: '本运行时未配置 OS_CLOUD_URL,无法访问应用市场目录。',
|
|
3043
|
+
updateTo: '更新 → v{{version}}',
|
|
3044
|
+
installedVersion: '已安装 v{{version}}',
|
|
3045
|
+
},
|
|
3046
|
+
// objectui#3546 — the MarketplacePage "Your organization" strip.
|
|
3047
|
+
org: {
|
|
3048
|
+
heading: '你的组织',
|
|
3049
|
+
install: '安装',
|
|
3050
|
+
installed: '已安装 {{name}}',
|
|
3051
|
+
installedBadge: '已安装',
|
|
3052
|
+
installing: '安装中…',
|
|
3053
|
+
},
|
|
3054
|
+
// ADR-0025 PD4 §3.5/§3.11 — the pre-install consent panel
|
|
3055
|
+
// (PluginDisclosure.tsx). `runtime` is a CLOSED enum: spec
|
|
3056
|
+
// PluginRuntimeSchema = z.enum(['node', 'sandbox', 'worker']).
|
|
3057
|
+
disclosure: {
|
|
3058
|
+
containsCode: '此软件包包含代码',
|
|
3059
|
+
reviewed: '已审核并批准',
|
|
3060
|
+
unreviewed: '尚未审核',
|
|
3061
|
+
signed: '已签名',
|
|
3062
|
+
grantsIntro: '安装后,此软件包将获得以下权限:',
|
|
3063
|
+
services: '平台服务',
|
|
3064
|
+
hooks: '生命周期钩子',
|
|
3065
|
+
network: '网络访问',
|
|
3066
|
+
fs: '文件系统访问',
|
|
3067
|
+
noPermissions: '不请求任何特殊权限。',
|
|
3068
|
+
acknowledge: '我了解此软件包会运行代码,并将获得上述权限。',
|
|
3069
|
+
runtime: {
|
|
3070
|
+
node: '进程内 · 完全信任',
|
|
3071
|
+
sandbox: '沙箱隔离',
|
|
3072
|
+
worker: '进程外',
|
|
3073
|
+
},
|
|
2834
3074
|
},
|
|
2835
3075
|
// ADR-0090 D5/D9 — 安装时建议:包声明 isDefault 的权限集建议绑定到
|
|
2836
3076
|
// everyone/guest 岗位,由管理员在此确认,服务端绝不自动绑定。
|
|
@@ -2998,12 +3238,19 @@ const zh = {
|
|
|
2998
3238
|
submittedAgo: '提交于{{when}}',
|
|
2999
3239
|
completedAt: '完成于{{when}}',
|
|
3000
3240
|
waitingOn: '等待以下审批人',
|
|
3241
|
+
approverNameSeparator: '、',
|
|
3242
|
+
approverUnstaffed: '{{seat}}(暂无在岗人员)',
|
|
3001
3243
|
history: '审批动态',
|
|
3002
3244
|
noActions: '暂无操作记录。',
|
|
3003
3245
|
actSubmit: '提交',
|
|
3004
3246
|
actApprove: '通过',
|
|
3005
3247
|
actReject: '拒绝',
|
|
3006
3248
|
actRecall: '撤回',
|
|
3249
|
+
overrideActionLabel: '越权{{action}}',
|
|
3250
|
+
overrideNotice: '你在该步骤没有审批人席位。继续将使用管理员越权:该步骤会立即结案,尚未表态的审批人都会被跳过。此决定将记录为管理员越权。',
|
|
3251
|
+
overrideNoticeWho: '你在该步骤没有审批人席位。继续将使用管理员越权:该步骤会立即结案,并跳过尚未表态的审批人 —— {{who}}。此决定将记录为管理员越权。',
|
|
3252
|
+
viaOverrideChip: '管理员越权',
|
|
3253
|
+
viaOverrideHint: '操作者在该步骤没有审批人席位 —— 经管理员越权通道进入。',
|
|
3007
3254
|
rawData: '原始数据(JSON)',
|
|
3008
3255
|
copy: '复制',
|
|
3009
3256
|
copied: '已复制',
|
|
@@ -3072,10 +3319,15 @@ const zh = {
|
|
|
3072
3319
|
noResults: '无结果',
|
|
3073
3320
|
searchField: '搜索 {{label}}…',
|
|
3074
3321
|
enterId: '输入 {{label}} ID',
|
|
3322
|
+
addValue: '输入值后按回车',
|
|
3323
|
+
removeValue: '移除 {{value}}',
|
|
3324
|
+
rangeStart: '起始值',
|
|
3325
|
+
rangeEnd: '结束值',
|
|
3075
3326
|
operators: {
|
|
3076
3327
|
equals: '等于',
|
|
3077
3328
|
notEquals: '不等于',
|
|
3078
3329
|
contains: '包含',
|
|
3330
|
+
containsCaseInsensitive: '包含(忽略大小写)',
|
|
3079
3331
|
notContains: '不包含',
|
|
3080
3332
|
isEmpty: '为空',
|
|
3081
3333
|
isNotEmpty: '不为空',
|
|
@@ -3088,6 +3340,12 @@ const zh = {
|
|
|
3088
3340
|
between: '介于',
|
|
3089
3341
|
in: '属于',
|
|
3090
3342
|
notIn: '不属于',
|
|
3343
|
+
startsWith: '以…开头',
|
|
3344
|
+
endsWith: '以…结尾',
|
|
3345
|
+
isNull: '为 null',
|
|
3346
|
+
isNotNull: '不为 null',
|
|
3347
|
+
exists: '已设置',
|
|
3348
|
+
notExists: '未设置',
|
|
3091
3349
|
},
|
|
3092
3350
|
},
|
|
3093
3351
|
sortBuilder: {
|
|
@@ -3133,5 +3391,64 @@ const zh = {
|
|
|
3133
3391
|
statusIdle: '空闲',
|
|
3134
3392
|
statusAway: '离开',
|
|
3135
3393
|
},
|
|
3394
|
+
wizard: {
|
|
3395
|
+
missingRequired: '请填写以下必填字段:{{fields}}',
|
|
3396
|
+
},
|
|
3397
|
+
flowRunner: {
|
|
3398
|
+
title: '输入',
|
|
3399
|
+
submitting: '提交中…',
|
|
3400
|
+
saveAndContinue: '保存并继续',
|
|
3401
|
+
nextStep: '已保存 — 下一步',
|
|
3402
|
+
completed: '流程「{{flow}}」已完成',
|
|
3403
|
+
},
|
|
3404
|
+
appManagement: {
|
|
3405
|
+
title: '应用',
|
|
3406
|
+
subtitle: '管理所有已配置的应用',
|
|
3407
|
+
newApp: '新建应用',
|
|
3408
|
+
searchLabel: '搜索应用',
|
|
3409
|
+
searchPlaceholder: '搜索应用…',
|
|
3410
|
+
selectedCount: '已选择 {{n}} 个',
|
|
3411
|
+
bulkEnable: '启用',
|
|
3412
|
+
bulkDisable: '停用',
|
|
3413
|
+
selectAll: '全选({{n}})',
|
|
3414
|
+
empty: '未找到应用。',
|
|
3415
|
+
defaultBadge: '默认',
|
|
3416
|
+
active: '已启用',
|
|
3417
|
+
inactive: '已停用',
|
|
3418
|
+
selectApp: '选择 {{name}}',
|
|
3419
|
+
openApp: '打开应用',
|
|
3420
|
+
openAppNamed: '打开 {{name}}',
|
|
3421
|
+
editApp: '编辑应用',
|
|
3422
|
+
editAppNamed: '编辑 {{name}}',
|
|
3423
|
+
editWithAi: '用 AI 编辑',
|
|
3424
|
+
editWithAiNamed: '用 AI 编辑 {{name}}',
|
|
3425
|
+
enableApp: '启用应用',
|
|
3426
|
+
disableApp: '停用应用',
|
|
3427
|
+
enableAppNamed: '启用 {{name}}',
|
|
3428
|
+
disableAppNamed: '停用 {{name}}',
|
|
3429
|
+
setDefault: '设为默认',
|
|
3430
|
+
setDefaultNamed: '将 {{name}} 设为默认',
|
|
3431
|
+
deleteApp: '删除应用',
|
|
3432
|
+
deleteAppNamed: '删除 {{name}}',
|
|
3433
|
+
confirmDelete: '再次点击以确认删除',
|
|
3434
|
+
confirmDeleteNamed: '确认删除 {{name}}',
|
|
3435
|
+
toast: {
|
|
3436
|
+
noClient: '无法连接到元数据服务',
|
|
3437
|
+
unknownError: '未知错误',
|
|
3438
|
+
appEnabled: '{{name}} 已启用',
|
|
3439
|
+
appDisabled: '{{name}} 已停用',
|
|
3440
|
+
toggleFailed: '切换应用状态失败:{{reason}}',
|
|
3441
|
+
setDefaultDone: '{{name}} 已设为默认',
|
|
3442
|
+
setDefaultFailed: '设置默认应用失败:{{reason}}',
|
|
3443
|
+
appDeleted: '{{name}} 已删除',
|
|
3444
|
+
deleteFailed: '删除应用失败:{{reason}}',
|
|
3445
|
+
bulkEnabled: '已启用 {{n}} 个应用',
|
|
3446
|
+
bulkDisabled: '已停用 {{n}} 个应用',
|
|
3447
|
+
bulkFailed: '{{n}} 个失败:{{details}}',
|
|
3448
|
+
bulkFailureEntry: '{{name}}({{reason}})',
|
|
3449
|
+
bulkFailureJoiner: ';',
|
|
3450
|
+
bulkOperationFailed: '批量操作失败:{{reason}}',
|
|
3451
|
+
},
|
|
3452
|
+
},
|
|
3136
3453
|
};
|
|
3137
3454
|
export default zh;
|