@object-ui/i18n 15.0.0 → 16.1.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 +143 -0
- package/dist/locales/ar.d.ts +9 -0
- package/dist/locales/ar.js +12 -2
- package/dist/locales/de.d.ts +9 -0
- package/dist/locales/de.js +12 -2
- package/dist/locales/en.d.ts +47 -11
- package/dist/locales/en.js +51 -11
- package/dist/locales/es.d.ts +9 -0
- package/dist/locales/es.js +12 -2
- package/dist/locales/fr.d.ts +9 -0
- package/dist/locales/fr.js +12 -2
- package/dist/locales/index.d.ts +168 -24
- package/dist/locales/ja.d.ts +9 -0
- package/dist/locales/ja.js +12 -2
- package/dist/locales/ko.d.ts +9 -0
- package/dist/locales/ko.js +12 -2
- package/dist/locales/pt.d.ts +9 -0
- package/dist/locales/pt.js +12 -2
- package/dist/locales/ru.d.ts +9 -0
- package/dist/locales/ru.js +12 -2
- package/dist/locales/zh.d.ts +49 -13
- package/dist/locales/zh.js +52 -13
- package/dist/useObjectLabel.d.ts +224 -8
- package/dist/useObjectLabel.js +67 -11
- package/package.json +2 -2
package/dist/locales/pt.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
declare const pt: {
|
|
2
|
+
capability: {
|
|
3
|
+
group: {
|
|
4
|
+
platform: string;
|
|
5
|
+
org: string;
|
|
6
|
+
other: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
2
9
|
lookup: {
|
|
3
10
|
recentlyUsed: string;
|
|
4
11
|
allResults: string;
|
|
@@ -69,6 +76,7 @@ declare const pt: {
|
|
|
69
76
|
resultDialog: {
|
|
70
77
|
defaultTitle: string;
|
|
71
78
|
acknowledge: string;
|
|
79
|
+
copyAll: string;
|
|
72
80
|
};
|
|
73
81
|
};
|
|
74
82
|
validation: {
|
|
@@ -1483,6 +1491,7 @@ declare const pt: {
|
|
|
1483
1491
|
requiredError: string;
|
|
1484
1492
|
cancel: string;
|
|
1485
1493
|
confirm: string;
|
|
1494
|
+
uploading: string;
|
|
1486
1495
|
defaultActionTitle: string;
|
|
1487
1496
|
ok: string;
|
|
1488
1497
|
lookupPlaceholder: string;
|
package/dist/locales/pt.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
const pt = {
|
|
2
|
+
// objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
|
|
3
|
+
capability: {
|
|
4
|
+
group: {
|
|
5
|
+
platform: 'Plataforma',
|
|
6
|
+
org: 'Organização',
|
|
7
|
+
other: 'Outro',
|
|
8
|
+
},
|
|
9
|
+
},
|
|
2
10
|
lookup: {
|
|
3
11
|
recentlyUsed: 'Usados recentemente',
|
|
4
12
|
allResults: 'Todos os resultados',
|
|
@@ -67,8 +75,9 @@ const pt = {
|
|
|
67
75
|
},
|
|
68
76
|
actions: {
|
|
69
77
|
resultDialog: {
|
|
70
|
-
defaultTitle: '
|
|
71
|
-
acknowledge: '
|
|
78
|
+
defaultTitle: 'Guarde este valor agora',
|
|
79
|
+
acknowledge: 'Eu o salvei',
|
|
80
|
+
copyAll: 'Copiar tudo',
|
|
72
81
|
},
|
|
73
82
|
},
|
|
74
83
|
validation: {
|
|
@@ -1483,6 +1492,7 @@ const pt = {
|
|
|
1483
1492
|
requiredError: "{{label}} é obrigatório",
|
|
1484
1493
|
cancel: "Cancelar",
|
|
1485
1494
|
confirm: "Confirmar",
|
|
1495
|
+
uploading: "Enviando…",
|
|
1486
1496
|
defaultActionTitle: "Ação",
|
|
1487
1497
|
ok: "OK",
|
|
1488
1498
|
lookupPlaceholder: "Colar ID do registro (UUID) para {{label}}",
|
package/dist/locales/ru.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
declare const ru: {
|
|
2
|
+
capability: {
|
|
3
|
+
group: {
|
|
4
|
+
platform: string;
|
|
5
|
+
org: string;
|
|
6
|
+
other: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
2
9
|
lookup: {
|
|
3
10
|
recentlyUsed: string;
|
|
4
11
|
allResults: string;
|
|
@@ -69,6 +76,7 @@ declare const ru: {
|
|
|
69
76
|
resultDialog: {
|
|
70
77
|
defaultTitle: string;
|
|
71
78
|
acknowledge: string;
|
|
79
|
+
copyAll: string;
|
|
72
80
|
};
|
|
73
81
|
};
|
|
74
82
|
validation: {
|
|
@@ -1483,6 +1491,7 @@ declare const ru: {
|
|
|
1483
1491
|
requiredError: string;
|
|
1484
1492
|
cancel: string;
|
|
1485
1493
|
confirm: string;
|
|
1494
|
+
uploading: string;
|
|
1486
1495
|
defaultActionTitle: string;
|
|
1487
1496
|
ok: string;
|
|
1488
1497
|
lookupPlaceholder: string;
|
package/dist/locales/ru.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
const ru = {
|
|
2
|
+
// objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
|
|
3
|
+
capability: {
|
|
4
|
+
group: {
|
|
5
|
+
platform: 'Платформа',
|
|
6
|
+
org: 'Организация',
|
|
7
|
+
other: 'Другое',
|
|
8
|
+
},
|
|
9
|
+
},
|
|
2
10
|
lookup: {
|
|
3
11
|
recentlyUsed: 'Недавние',
|
|
4
12
|
allResults: 'Все результаты',
|
|
@@ -67,8 +75,9 @@ const ru = {
|
|
|
67
75
|
},
|
|
68
76
|
actions: {
|
|
69
77
|
resultDialog: {
|
|
70
|
-
defaultTitle: '
|
|
71
|
-
acknowledge: '
|
|
78
|
+
defaultTitle: 'Сохраните это значение сейчас',
|
|
79
|
+
acknowledge: 'Я сохранил(а) это',
|
|
80
|
+
copyAll: 'Копировать всё',
|
|
72
81
|
},
|
|
73
82
|
},
|
|
74
83
|
validation: {
|
|
@@ -1483,6 +1492,7 @@ const ru = {
|
|
|
1483
1492
|
requiredError: "{{label}} обязательно",
|
|
1484
1493
|
cancel: "Отмена",
|
|
1485
1494
|
confirm: "Подтвердить",
|
|
1495
|
+
uploading: "Загрузка…",
|
|
1486
1496
|
defaultActionTitle: "Действие",
|
|
1487
1497
|
ok: "ОК",
|
|
1488
1498
|
lookupPlaceholder: "Вставить ID записи (UUID) для {{label}}",
|
package/dist/locales/zh.d.ts
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
* 中文 (zh) - Chinese language pack for Object UI
|
|
3
3
|
*/
|
|
4
4
|
declare const zh: {
|
|
5
|
+
readonly capability: {
|
|
6
|
+
readonly group: {
|
|
7
|
+
readonly platform: "平台";
|
|
8
|
+
readonly org: "组织";
|
|
9
|
+
readonly other: "其他";
|
|
10
|
+
};
|
|
11
|
+
readonly label: {
|
|
12
|
+
readonly manage_users: "管理用户";
|
|
13
|
+
readonly manage_org_users: "管理组织用户";
|
|
14
|
+
readonly manage_metadata: "管理元数据";
|
|
15
|
+
readonly manage_platform_settings: "管理平台设置";
|
|
16
|
+
readonly setup_access: "访问 Setup";
|
|
17
|
+
readonly setup_write: "保存设置";
|
|
18
|
+
readonly studio_access: "访问 Studio";
|
|
19
|
+
};
|
|
20
|
+
};
|
|
5
21
|
readonly lookup: {
|
|
6
22
|
readonly recentlyUsed: "最近使用";
|
|
7
23
|
readonly allResults: "全部结果";
|
|
@@ -70,8 +86,9 @@ declare const zh: {
|
|
|
70
86
|
};
|
|
71
87
|
readonly actions: {
|
|
72
88
|
readonly resultDialog: {
|
|
73
|
-
readonly defaultTitle: "
|
|
74
|
-
readonly acknowledge: "
|
|
89
|
+
readonly defaultTitle: "请立即保存此值";
|
|
90
|
+
readonly acknowledge: "我已保存";
|
|
91
|
+
readonly copyAll: "全部复制";
|
|
75
92
|
};
|
|
76
93
|
};
|
|
77
94
|
readonly validation: {
|
|
@@ -407,6 +424,7 @@ declare const zh: {
|
|
|
407
424
|
};
|
|
408
425
|
};
|
|
409
426
|
readonly showAll: "显示全部";
|
|
427
|
+
readonly refresh: "刷新";
|
|
410
428
|
readonly pullToRefresh: "下拉刷新";
|
|
411
429
|
readonly refreshing: "刷新中…";
|
|
412
430
|
readonly share: "分享";
|
|
@@ -433,6 +451,11 @@ declare const zh: {
|
|
|
433
451
|
readonly title: "由平台管理";
|
|
434
452
|
readonly body: "当源记录上的操作运行时,这里的行会自动创建。下方列表是只读监控界面——行级操作(批准、撤回、重发等)在每一行上。";
|
|
435
453
|
};
|
|
454
|
+
readonly systemWritable: {
|
|
455
|
+
readonly short: "平台架构";
|
|
456
|
+
readonly title: "平台定义,管理员可写";
|
|
457
|
+
readonly body: "此对象的架构由平台定义,但其数据行可在此处创建和编辑。谁可以写入由委派管理和记录级安全控制,而非此标记。";
|
|
458
|
+
};
|
|
436
459
|
readonly appendOnly: {
|
|
437
460
|
readonly short: "只读 · 审计日志";
|
|
438
461
|
readonly title: "只读历史记录";
|
|
@@ -520,14 +543,6 @@ declare const zh: {
|
|
|
520
543
|
readonly removeDependency: "移除依赖";
|
|
521
544
|
readonly noCandidates: "无可用任务";
|
|
522
545
|
readonly searchTasks: "搜索任务…";
|
|
523
|
-
readonly qrcode: "移动端二维码";
|
|
524
|
-
};
|
|
525
|
-
readonly qr: {
|
|
526
|
-
readonly title: "在手机上打开";
|
|
527
|
-
readonly hint: "用手机扫码打开详情页";
|
|
528
|
-
readonly copy: "复制链接";
|
|
529
|
-
readonly copied: "已复制";
|
|
530
|
-
readonly close: "关闭";
|
|
531
546
|
};
|
|
532
547
|
readonly delete: {
|
|
533
548
|
readonly title: "删除此任务?";
|
|
@@ -551,6 +566,14 @@ declare const zh: {
|
|
|
551
566
|
readonly confirm: "自动重新排程";
|
|
552
567
|
readonly cancel: "保持不变";
|
|
553
568
|
};
|
|
569
|
+
readonly autoScheduleDlg: {
|
|
570
|
+
readonly title: "自动排程";
|
|
571
|
+
readonly body: "将顺延 {count} 个任务以满足依赖约束,是否执行?";
|
|
572
|
+
readonly skipped: "另有 {count} 项因锁定/无权限跳过。";
|
|
573
|
+
readonly confirm: "执行";
|
|
574
|
+
readonly cancel: "取消";
|
|
575
|
+
readonly none: "依赖均满足,无需排程";
|
|
576
|
+
};
|
|
554
577
|
readonly resource: {
|
|
555
578
|
readonly header: "资源";
|
|
556
579
|
readonly peak: "峰值";
|
|
@@ -1356,6 +1379,7 @@ declare const zh: {
|
|
|
1356
1379
|
readonly publishOk: "已发布,对象已生效。";
|
|
1357
1380
|
readonly seedWarn: "已发布,但部分示例数据未能载入。";
|
|
1358
1381
|
readonly openBuiltApp: "打开应用";
|
|
1382
|
+
readonly designBuiltApp: "进入 Studio 继续完善";
|
|
1359
1383
|
readonly previewDraft: "预览";
|
|
1360
1384
|
readonly previewApp: "预览应用";
|
|
1361
1385
|
readonly resizeSplit: "调整对话与预览的宽度";
|
|
@@ -1429,14 +1453,16 @@ declare const zh: {
|
|
|
1429
1453
|
readonly identityImport: {
|
|
1430
1454
|
readonly policyTitle: "导入用户的登录方式";
|
|
1431
1455
|
readonly policy: {
|
|
1432
|
-
readonly
|
|
1456
|
+
readonly auto: "自动(推荐)";
|
|
1433
1457
|
readonly invite: "发送邀请";
|
|
1434
1458
|
readonly temporary: "临时密码";
|
|
1459
|
+
readonly none: "不设密码(仅身份)";
|
|
1435
1460
|
};
|
|
1436
1461
|
readonly policyHint: {
|
|
1437
|
-
readonly
|
|
1438
|
-
readonly invite: "为每个新建用户发送\"设置密码\"
|
|
1462
|
+
readonly auto: "可触达的用户收到邀请(邮件或短信);无法触达的行生成一次性密码,仅在结果页显示一次。无论是否配置邮件/短信服务都可用。";
|
|
1463
|
+
readonly invite: "为每个新建用户发送\"设置密码\"邮件(仅手机号的行发送邀请短信)。需要已配置邮件/短信服务——无法触达的行会失败。";
|
|
1439
1464
|
readonly temporary: "适用于未配置邮件/短信的部署:为每个新建用户生成一次性密码,仅在结果页显示一次,首次登录强制修改。";
|
|
1465
|
+
readonly none: "用户通过手机验证码、魔法链接或重置链接首次登录,之后自行设置密码。";
|
|
1440
1466
|
};
|
|
1441
1467
|
readonly passwordsNote: "临时密码——仅显示一次,不会被保存。请立即保存;用户首次登录时必须修改。";
|
|
1442
1468
|
readonly passwordsMore: "更多条目已省略——请使用下载。";
|
|
@@ -1539,6 +1565,10 @@ declare const zh: {
|
|
|
1539
1565
|
readonly parentField: "父级字段";
|
|
1540
1566
|
readonly parentFieldHelp: "指向同一对象的父级字段,决定树的层级(仅自引用字段可选)。";
|
|
1541
1567
|
readonly newView: "新视图";
|
|
1568
|
+
readonly viewName: "名称";
|
|
1569
|
+
readonly viewNameHelp: "机器标识(snake_case),根据标题自动生成,可自行修改。";
|
|
1570
|
+
readonly viewNameRequired: "请输入标识(小写字母、数字、下划线)。非拉丁标题不会自动生成。";
|
|
1571
|
+
readonly viewNameInvalid: "仅限小写字母、数字和下划线,且以字母或下划线开头。";
|
|
1542
1572
|
readonly typeOptions: "类型选项";
|
|
1543
1573
|
readonly groupByField: "分组字段";
|
|
1544
1574
|
readonly groupByFieldHelp: "看板会按该字段的不同取值分列。";
|
|
@@ -1667,6 +1697,11 @@ declare const zh: {
|
|
|
1667
1697
|
readonly signUpText: "注册";
|
|
1668
1698
|
readonly signingIn: "正在登录…";
|
|
1669
1699
|
readonly ssoHandoff: "继续前往 {{target}}";
|
|
1700
|
+
readonly devAdminHint: {
|
|
1701
|
+
readonly title: "开发实例";
|
|
1702
|
+
readonly body: "可使用内置的开发管理员登录:";
|
|
1703
|
+
readonly dismiss: "关闭";
|
|
1704
|
+
};
|
|
1670
1705
|
readonly errors: {
|
|
1671
1706
|
readonly invalidCredentials: "邮箱或密码错误,请重试。";
|
|
1672
1707
|
readonly emailNotVerified: "请先验证您的邮箱后再登录。";
|
|
@@ -2140,6 +2175,7 @@ declare const zh: {
|
|
|
2140
2175
|
readonly lookupHelpText: "请输入引用记录的 ID。可视化选择器即将上线。";
|
|
2141
2176
|
readonly cancel: "取消";
|
|
2142
2177
|
readonly confirm: "确认";
|
|
2178
|
+
readonly uploading: "上传中…";
|
|
2143
2179
|
readonly defaultActionTitle: "操作";
|
|
2144
2180
|
readonly ok: "确定";
|
|
2145
2181
|
};
|
package/dist/locales/zh.js
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
* 中文 (zh) - Chinese language pack for Object UI
|
|
3
3
|
*/
|
|
4
4
|
const zh = {
|
|
5
|
+
// objectui#2600 B5 — 能力选择器的作用域分组标题(能力标签本身来自
|
|
6
|
+
// sys_capability 注册表,这里只本地化分组标题这类 UI 字符串)。
|
|
7
|
+
capability: {
|
|
8
|
+
group: {
|
|
9
|
+
platform: '平台',
|
|
10
|
+
org: '组织',
|
|
11
|
+
other: '其他',
|
|
12
|
+
},
|
|
13
|
+
// 精选平台能力标签(objectui#2600 B5)。注册表 label 为英文,这里本地化。
|
|
14
|
+
label: {
|
|
15
|
+
manage_users: '管理用户',
|
|
16
|
+
manage_org_users: '管理组织用户',
|
|
17
|
+
manage_metadata: '管理元数据',
|
|
18
|
+
manage_platform_settings: '管理平台设置',
|
|
19
|
+
setup_access: '访问 Setup',
|
|
20
|
+
setup_write: '保存设置',
|
|
21
|
+
studio_access: '访问 Studio',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
5
24
|
lookup: {
|
|
6
25
|
recentlyUsed: '最近使用',
|
|
7
26
|
allResults: '全部结果',
|
|
@@ -70,8 +89,9 @@ const zh = {
|
|
|
70
89
|
},
|
|
71
90
|
actions: {
|
|
72
91
|
resultDialog: {
|
|
73
|
-
defaultTitle: '
|
|
74
|
-
acknowledge: '
|
|
92
|
+
defaultTitle: '请立即保存此值',
|
|
93
|
+
acknowledge: '我已保存',
|
|
94
|
+
copyAll: '全部复制',
|
|
75
95
|
},
|
|
76
96
|
},
|
|
77
97
|
validation: {
|
|
@@ -416,6 +436,7 @@ const zh = {
|
|
|
416
436
|
},
|
|
417
437
|
},
|
|
418
438
|
showAll: '显示全部',
|
|
439
|
+
refresh: '刷新',
|
|
419
440
|
pullToRefresh: '下拉刷新',
|
|
420
441
|
refreshing: '刷新中…',
|
|
421
442
|
share: '分享',
|
|
@@ -442,6 +463,11 @@ const zh = {
|
|
|
442
463
|
title: '由平台管理',
|
|
443
464
|
body: '当源记录上的操作运行时,这里的行会自动创建。下方列表是只读监控界面——行级操作(批准、撤回、重发等)在每一行上。',
|
|
444
465
|
},
|
|
466
|
+
systemWritable: {
|
|
467
|
+
short: '平台架构',
|
|
468
|
+
title: '平台定义,管理员可写',
|
|
469
|
+
body: '此对象的架构由平台定义,但其数据行可在此处创建和编辑。谁可以写入由委派管理和记录级安全控制,而非此标记。',
|
|
470
|
+
},
|
|
445
471
|
appendOnly: {
|
|
446
472
|
short: '只读 · 审计日志',
|
|
447
473
|
title: '只读历史记录',
|
|
@@ -529,14 +555,6 @@ const zh = {
|
|
|
529
555
|
removeDependency: '移除依赖',
|
|
530
556
|
noCandidates: '无可用任务',
|
|
531
557
|
searchTasks: '搜索任务…',
|
|
532
|
-
qrcode: '移动端二维码',
|
|
533
|
-
},
|
|
534
|
-
qr: {
|
|
535
|
-
title: '在手机上打开',
|
|
536
|
-
hint: '用手机扫码打开详情页',
|
|
537
|
-
copy: '复制链接',
|
|
538
|
-
copied: '已复制',
|
|
539
|
-
close: '关闭',
|
|
540
558
|
},
|
|
541
559
|
delete: {
|
|
542
560
|
title: '删除此任务?',
|
|
@@ -560,6 +578,14 @@ const zh = {
|
|
|
560
578
|
confirm: '自动重新排程',
|
|
561
579
|
cancel: '保持不变',
|
|
562
580
|
},
|
|
581
|
+
autoScheduleDlg: {
|
|
582
|
+
title: '自动排程',
|
|
583
|
+
body: '将顺延 {count} 个任务以满足依赖约束,是否执行?',
|
|
584
|
+
skipped: '另有 {count} 项因锁定/无权限跳过。',
|
|
585
|
+
confirm: '执行',
|
|
586
|
+
cancel: '取消',
|
|
587
|
+
none: '依赖均满足,无需排程',
|
|
588
|
+
},
|
|
563
589
|
resource: {
|
|
564
590
|
header: '资源',
|
|
565
591
|
peak: '峰值',
|
|
@@ -1382,6 +1408,7 @@ const zh = {
|
|
|
1382
1408
|
publishOk: '已发布,对象已生效。',
|
|
1383
1409
|
seedWarn: '已发布,但部分示例数据未能载入。',
|
|
1384
1410
|
openBuiltApp: '打开应用',
|
|
1411
|
+
designBuiltApp: '进入 Studio 继续完善',
|
|
1385
1412
|
previewDraft: '预览',
|
|
1386
1413
|
previewApp: '预览应用',
|
|
1387
1414
|
resizeSplit: '调整对话与预览的宽度',
|
|
@@ -1461,14 +1488,16 @@ const zh = {
|
|
|
1461
1488
|
identityImport: {
|
|
1462
1489
|
policyTitle: '导入用户的登录方式',
|
|
1463
1490
|
policy: {
|
|
1464
|
-
|
|
1491
|
+
auto: '自动(推荐)',
|
|
1465
1492
|
invite: '发送邀请',
|
|
1466
1493
|
temporary: '临时密码',
|
|
1494
|
+
none: '不设密码(仅身份)',
|
|
1467
1495
|
},
|
|
1468
1496
|
policyHint: {
|
|
1469
|
-
|
|
1470
|
-
invite: '为每个新建用户发送"设置密码"
|
|
1497
|
+
auto: '可触达的用户收到邀请(邮件或短信);无法触达的行生成一次性密码,仅在结果页显示一次。无论是否配置邮件/短信服务都可用。',
|
|
1498
|
+
invite: '为每个新建用户发送"设置密码"邮件(仅手机号的行发送邀请短信)。需要已配置邮件/短信服务——无法触达的行会失败。',
|
|
1471
1499
|
temporary: '适用于未配置邮件/短信的部署:为每个新建用户生成一次性密码,仅在结果页显示一次,首次登录强制修改。',
|
|
1500
|
+
none: '用户通过手机验证码、魔法链接或重置链接首次登录,之后自行设置密码。',
|
|
1472
1501
|
},
|
|
1473
1502
|
passwordsNote: '临时密码——仅显示一次,不会被保存。请立即保存;用户首次登录时必须修改。',
|
|
1474
1503
|
passwordsMore: '更多条目已省略——请使用下载。',
|
|
@@ -1571,6 +1600,10 @@ const zh = {
|
|
|
1571
1600
|
parentField: '父级字段',
|
|
1572
1601
|
parentFieldHelp: '指向同一对象的父级字段,决定树的层级(仅自引用字段可选)。',
|
|
1573
1602
|
newView: '新视图',
|
|
1603
|
+
viewName: '名称',
|
|
1604
|
+
viewNameHelp: '机器标识(snake_case),根据标题自动生成,可自行修改。',
|
|
1605
|
+
viewNameRequired: '请输入标识(小写字母、数字、下划线)。非拉丁标题不会自动生成。',
|
|
1606
|
+
viewNameInvalid: '仅限小写字母、数字和下划线,且以字母或下划线开头。',
|
|
1574
1607
|
typeOptions: '类型选项',
|
|
1575
1608
|
groupByField: '分组字段',
|
|
1576
1609
|
groupByFieldHelp: '看板会按该字段的不同取值分列。',
|
|
@@ -1699,6 +1732,11 @@ const zh = {
|
|
|
1699
1732
|
signUpText: '注册',
|
|
1700
1733
|
signingIn: '正在登录…',
|
|
1701
1734
|
ssoHandoff: '继续前往 {{target}}',
|
|
1735
|
+
devAdminHint: {
|
|
1736
|
+
title: '开发实例',
|
|
1737
|
+
body: '可使用内置的开发管理员登录:',
|
|
1738
|
+
dismiss: '关闭',
|
|
1739
|
+
},
|
|
1702
1740
|
errors: {
|
|
1703
1741
|
invalidCredentials: '邮箱或密码错误,请重试。',
|
|
1704
1742
|
emailNotVerified: '请先验证您的邮箱后再登录。',
|
|
@@ -2175,6 +2213,7 @@ const zh = {
|
|
|
2175
2213
|
lookupHelpText: '请输入引用记录的 ID。可视化选择器即将上线。',
|
|
2176
2214
|
cancel: '取消',
|
|
2177
2215
|
confirm: '确认',
|
|
2216
|
+
uploading: '上传中…',
|
|
2178
2217
|
defaultActionTitle: '操作',
|
|
2179
2218
|
ok: '确定',
|
|
2180
2219
|
},
|
package/dist/useObjectLabel.d.ts
CHANGED
|
@@ -204,6 +204,28 @@ export declare function useObjectLabel(): {
|
|
|
204
204
|
* metadata's literal string; undefined when nothing resolves.
|
|
205
205
|
*/
|
|
206
206
|
actionDescription: (objectName: string | undefined, actionName: string | undefined, fallback?: string) => string | undefined;
|
|
207
|
+
/**
|
|
208
|
+
* Resolve a translated copy of an action's post-success RESULT DIALOG
|
|
209
|
+
* (`title` / `description` / `acknowledge` + per-field labels).
|
|
210
|
+
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.resultDialog.*`,
|
|
211
|
+
* falling back to `{ns}.globalActions.{actionName}.resultDialog.*` when
|
|
212
|
+
* objectName is omitted, then to the metadata's literal strings.
|
|
213
|
+
*
|
|
214
|
+
* The `fields` translation node is keyed by the LITERAL result-field path
|
|
215
|
+
* from the action metadata (may contain dots, e.g. `"user.email"`), so it
|
|
216
|
+
* is fetched whole with `returnObjects` and indexed directly — never
|
|
217
|
+
* resolved through a dotted i18next key.
|
|
218
|
+
*/
|
|
219
|
+
actionResultDialog: <T extends {
|
|
220
|
+
title?: string;
|
|
221
|
+
description?: string;
|
|
222
|
+
acknowledge?: string;
|
|
223
|
+
fields?: Array<{
|
|
224
|
+
path: string;
|
|
225
|
+
label?: string;
|
|
226
|
+
[key: string]: any;
|
|
227
|
+
}>;
|
|
228
|
+
}>(objectName: string | undefined, actionName: string | undefined, spec: T | undefined) => T | undefined;
|
|
207
229
|
/**
|
|
208
230
|
* Resolve translated action-PARAMETER text (label / placeholder / helpText).
|
|
209
231
|
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.params.{paramName}.{attr}`.
|
|
@@ -224,17 +246,211 @@ export declare function useObjectLabel(): {
|
|
|
224
246
|
* may be rendered outside an i18n context.
|
|
225
247
|
*/
|
|
226
248
|
export declare function useSafeFieldLabel(): {
|
|
227
|
-
|
|
228
|
-
|
|
249
|
+
/**
|
|
250
|
+
* Resolve translated object label, falling back to objectDef.label.
|
|
251
|
+
*/
|
|
252
|
+
objectLabel: (objectDef: {
|
|
253
|
+
name: string;
|
|
254
|
+
label: string;
|
|
255
|
+
}) => string;
|
|
256
|
+
/**
|
|
257
|
+
* Resolve translated object description, falling back to objectDef.description.
|
|
258
|
+
*/
|
|
259
|
+
objectDescription: (objectDef: {
|
|
260
|
+
name: string;
|
|
261
|
+
description?: string;
|
|
262
|
+
}) => string | undefined;
|
|
263
|
+
/**
|
|
264
|
+
* Resolve translated field label, falling back to the provided fallback string.
|
|
265
|
+
*/
|
|
266
|
+
fieldLabel: (objectName: string, fieldName: string, fallback: string) => string;
|
|
267
|
+
/**
|
|
268
|
+
* Resolve a translated select option label for a given object field.
|
|
269
|
+
* Falls back to the provided fallback (usually the English option label).
|
|
270
|
+
*/
|
|
271
|
+
fieldOptionLabel: (objectName: string, fieldName: string, optionValue: string, fallback: string) => string;
|
|
272
|
+
/**
|
|
273
|
+
* Translate all options for a given field, returning a new options array
|
|
274
|
+
* with translated labels. Pass the objectName and fieldName to look up
|
|
275
|
+
* translations; the original label is used as fallback.
|
|
276
|
+
*/
|
|
277
|
+
translateOptions: (objectName: string, fieldName: string, options: Array<{
|
|
229
278
|
value: string;
|
|
230
279
|
label: string;
|
|
231
280
|
[key: string]: any;
|
|
232
|
-
}>) => {
|
|
233
|
-
[key: string]: any;
|
|
281
|
+
}>) => Array<{
|
|
234
282
|
value: string;
|
|
235
283
|
label: string;
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
284
|
+
[key: string]: any;
|
|
285
|
+
}>;
|
|
286
|
+
/**
|
|
287
|
+
* Resolve translated app label, falling back to appDef.label.
|
|
288
|
+
* Looks up `{ns}.apps.{appName}.label` from loaded i18next resources.
|
|
289
|
+
*/
|
|
290
|
+
appLabel: (appDef: {
|
|
291
|
+
name: string;
|
|
292
|
+
label?: string;
|
|
293
|
+
}) => string;
|
|
294
|
+
/**
|
|
295
|
+
* Resolve translated app description, falling back to appDef.description.
|
|
296
|
+
* Returns the translated value even when metadata has no description —
|
|
297
|
+
* translation-only descriptions (defined only in i18n bundles) are common
|
|
298
|
+
* in examples where the app metadata is English-only.
|
|
299
|
+
*/
|
|
300
|
+
appDescription: (appDef: {
|
|
301
|
+
name: string;
|
|
302
|
+
description?: string;
|
|
303
|
+
}) => string | undefined;
|
|
304
|
+
/**
|
|
305
|
+
* Resolve translated label for a navigation group within an app.
|
|
306
|
+
* Convention: `{ns}.apps.{appName}.navigation.{groupId}.label`.
|
|
307
|
+
*
|
|
308
|
+
* Mirrors `objectLabel`/`dashboardLabel` so app metadata can keep
|
|
309
|
+
* English fallbacks while translation packs supply localised
|
|
310
|
+
* sidebar group labels (e.g. "Sales" → "销售") without explicit
|
|
311
|
+
* I18nLabel `{ key, defaultValue }` annotations.
|
|
312
|
+
*/
|
|
313
|
+
navGroupLabel: (appName: string, groupId: string, fallback: string) => string;
|
|
314
|
+
/**
|
|
315
|
+
* Resolve translated dashboard label, falling back to dashboardDef.label.
|
|
316
|
+
* Convention: `{ns}.dashboards.{dashboardName}.label`.
|
|
317
|
+
*/
|
|
318
|
+
dashboardLabel: (dashboardDef: {
|
|
319
|
+
name: string;
|
|
320
|
+
label?: string;
|
|
321
|
+
}) => string;
|
|
322
|
+
/**
|
|
323
|
+
* Resolve translated dashboard description, falling back to
|
|
324
|
+
* dashboardDef.description. Returns undefined when neither metadata nor
|
|
325
|
+
* translation provides one.
|
|
326
|
+
* Convention: `{ns}.dashboards.{dashboardName}.description`.
|
|
327
|
+
*/
|
|
328
|
+
dashboardDescription: (dashboardDef: {
|
|
329
|
+
name: string;
|
|
330
|
+
description?: string;
|
|
331
|
+
}) => string | undefined;
|
|
332
|
+
/**
|
|
333
|
+
* Resolve translated dashboard header-action label.
|
|
334
|
+
* Convention: `{ns}.dashboards.{dashboardName}.actions.{actionKey}.label`.
|
|
335
|
+
* The actionKey is typically the action's `actionUrl` (e.g.
|
|
336
|
+
* `create_opportunity`) or its English label slugified.
|
|
337
|
+
*/
|
|
338
|
+
dashboardActionLabel: (dashboardName: string, actionKey: string, fallback: string) => string;
|
|
339
|
+
/**
|
|
340
|
+
* Resolve translated widget title within a dashboard.
|
|
341
|
+
* Convention: `{ns}.dashboards.{dashboardName}.widgets.{widgetId}.title`.
|
|
342
|
+
*/
|
|
343
|
+
widgetTitle: (dashboardName: string, widgetId: string, fallback: string) => string;
|
|
344
|
+
/**
|
|
345
|
+
* Resolve translated widget description within a dashboard.
|
|
346
|
+
* Convention: `{ns}.dashboards.{dashboardName}.widgets.{widgetId}.description`.
|
|
347
|
+
* Returns undefined when neither metadata nor translation provides one.
|
|
348
|
+
*/
|
|
349
|
+
widgetDescription: (dashboardName: string, widgetId: string, fallback?: string) => string | undefined;
|
|
350
|
+
/**
|
|
351
|
+
* Resolve translated page label, falling back to pageDef.label.
|
|
352
|
+
* Convention: `{ns}.pages.{pageName}.label`.
|
|
353
|
+
*/
|
|
354
|
+
pageLabel: (pageDef: {
|
|
355
|
+
name: string;
|
|
356
|
+
label?: string;
|
|
357
|
+
}) => string;
|
|
358
|
+
/**
|
|
359
|
+
* Resolve translated report label, falling back to reportDef.label.
|
|
360
|
+
* Convention: `{ns}.reports.{reportName}.label`.
|
|
361
|
+
*/
|
|
362
|
+
reportLabel: (reportDef: {
|
|
363
|
+
name: string;
|
|
364
|
+
label?: string;
|
|
365
|
+
}) => string;
|
|
366
|
+
/**
|
|
367
|
+
* Resolve translated list-view label.
|
|
368
|
+
* Convention (per @objectstack/spec): `{ns}.objects.{objectName}._views.{viewName}.label`.
|
|
369
|
+
*/
|
|
370
|
+
viewLabel: (objectName: string, viewName: string, fallback: string) => string;
|
|
371
|
+
/**
|
|
372
|
+
* Resolve translated list-view description.
|
|
373
|
+
* Convention: `{ns}.objects.{objectName}._views.{viewName}.description`.
|
|
374
|
+
*/
|
|
375
|
+
viewDescription: (objectName: string, viewName: string, fallback?: string) => string | undefined;
|
|
376
|
+
/**
|
|
377
|
+
* Resolve translated list-view emptyState. Returns a {title, message}
|
|
378
|
+
* tuple with each field independently translated. Convention:
|
|
379
|
+
* `{ns}.objects.{objectName}._views.{viewName}.emptyState.title`
|
|
380
|
+
* `{ns}.objects.{objectName}._views.{viewName}.emptyState.message`
|
|
381
|
+
*/
|
|
382
|
+
viewEmptyState: (objectName: string, viewName: string, fallback: {
|
|
383
|
+
title?: string;
|
|
384
|
+
message?: string;
|
|
385
|
+
icon?: string;
|
|
386
|
+
} | undefined) => {
|
|
387
|
+
title: string | undefined;
|
|
388
|
+
message: string | undefined;
|
|
389
|
+
icon?: string;
|
|
390
|
+
} | undefined;
|
|
391
|
+
/**
|
|
392
|
+
* Resolve translated form-section label.
|
|
393
|
+
* Convention: `{ns}.objects.{objectName}._sections.{sectionName}.label`.
|
|
394
|
+
*/
|
|
395
|
+
sectionLabel: (objectName: string, sectionName: string, fallback: string) => string;
|
|
396
|
+
/**
|
|
397
|
+
* Resolve translated action label.
|
|
398
|
+
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.label`.
|
|
399
|
+
* Falls back to `{ns}.globalActions.{actionName}.label` when objectName is omitted.
|
|
400
|
+
*/
|
|
401
|
+
actionLabel: (objectName: string | undefined, actionName: string, fallback: string) => string;
|
|
402
|
+
/**
|
|
403
|
+
* Resolve translated action confirmation prompt.
|
|
404
|
+
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.confirmText`.
|
|
405
|
+
* Returns undefined when no translation and no fallback exist.
|
|
406
|
+
*/
|
|
407
|
+
actionConfirm: (objectName: string | undefined, actionName: string, fallback?: string) => string | undefined;
|
|
408
|
+
/**
|
|
409
|
+
* Resolve translated action success message.
|
|
410
|
+
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.successMessage`.
|
|
411
|
+
*/
|
|
412
|
+
actionSuccess: (objectName: string | undefined, actionName: string, fallback?: string) => string | undefined;
|
|
413
|
+
/**
|
|
414
|
+
* Resolve translated action description (the explanatory line shown in the
|
|
415
|
+
* action's param dialog / sheet / drawer header).
|
|
416
|
+
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.description`.
|
|
417
|
+
* Falls back to `{ns}.globalActions.{actionName}.description`, then the
|
|
418
|
+
* metadata's literal string; undefined when nothing resolves.
|
|
419
|
+
*/
|
|
420
|
+
actionDescription: (objectName: string | undefined, actionName: string | undefined, fallback?: string) => string | undefined;
|
|
421
|
+
/**
|
|
422
|
+
* Resolve a translated copy of an action's post-success RESULT DIALOG
|
|
423
|
+
* (`title` / `description` / `acknowledge` + per-field labels).
|
|
424
|
+
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.resultDialog.*`,
|
|
425
|
+
* falling back to `{ns}.globalActions.{actionName}.resultDialog.*` when
|
|
426
|
+
* objectName is omitted, then to the metadata's literal strings.
|
|
427
|
+
*
|
|
428
|
+
* The `fields` translation node is keyed by the LITERAL result-field path
|
|
429
|
+
* from the action metadata (may contain dots, e.g. `"user.email"`), so it
|
|
430
|
+
* is fetched whole with `returnObjects` and indexed directly — never
|
|
431
|
+
* resolved through a dotted i18next key.
|
|
432
|
+
*/
|
|
433
|
+
actionResultDialog: <T extends {
|
|
434
|
+
title?: string;
|
|
435
|
+
description?: string;
|
|
436
|
+
acknowledge?: string;
|
|
437
|
+
fields?: Array<{
|
|
438
|
+
path: string;
|
|
439
|
+
label?: string;
|
|
440
|
+
[key: string]: any;
|
|
441
|
+
}>;
|
|
442
|
+
}>(objectName: string | undefined, actionName: string | undefined, spec: T | undefined) => T | undefined;
|
|
443
|
+
/**
|
|
444
|
+
* Resolve translated action-PARAMETER text (label / placeholder / helpText).
|
|
445
|
+
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.params.{paramName}.{attr}`.
|
|
446
|
+
* Falls back to the provided value (the metadata's literal string) when no
|
|
447
|
+
* translation exists, so untranslated params keep rendering as authored.
|
|
448
|
+
*/
|
|
449
|
+
actionParamText: (objectName: string | undefined, actionName: string | undefined, paramName: string, attr: "label" | "placeholder" | "helpText", fallback?: string) => string | undefined;
|
|
450
|
+
/**
|
|
451
|
+
* Resolve a translated action-parameter SELECT OPTION label.
|
|
452
|
+
* Convention: `{ns}.objects.{objectName}._actions.{actionName}.params.{paramName}.options.{optionValue}`.
|
|
453
|
+
* Falls back to the provided (English metadata) label when untranslated.
|
|
454
|
+
*/
|
|
455
|
+
actionParamOptionLabel: (objectName: string | undefined, actionName: string | undefined, paramName: string, optionValue: string, fallback: string) => string;
|
|
240
456
|
};
|