@object-ui/i18n 13.2.0 → 14.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 +142 -0
- package/dist/locales/ar.d.ts +65 -0
- package/dist/locales/ar.js +65 -0
- package/dist/locales/de.d.ts +67 -0
- package/dist/locales/de.js +67 -0
- package/dist/locales/en.d.ts +139 -1
- package/dist/locales/en.js +143 -2
- package/dist/locales/es.d.ts +67 -0
- package/dist/locales/es.js +67 -0
- package/dist/locales/fr.d.ts +65 -0
- package/dist/locales/fr.js +65 -0
- package/dist/locales/index.d.ts +809 -4
- package/dist/locales/ja.d.ts +67 -0
- package/dist/locales/ja.js +67 -0
- package/dist/locales/ko.d.ts +67 -0
- package/dist/locales/ko.js +67 -0
- package/dist/locales/pt.d.ts +65 -0
- package/dist/locales/pt.js +65 -0
- package/dist/locales/ru.d.ts +65 -0
- package/dist/locales/ru.js +65 -0
- package/dist/locales/zh.d.ts +142 -3
- package/dist/locales/zh.js +145 -4
- package/dist/pickLocalized.d.ts +3 -2
- package/dist/pickLocalized.js +7 -2
- package/dist/useObjectLabel.d.ts +1 -0
- package/dist/useObjectLabel.js +1 -0
- package/dist/useSafeTranslation.js +27 -38
- package/package.json +3 -3
package/dist/locales/ru.js
CHANGED
|
@@ -105,6 +105,9 @@ const ru = {
|
|
|
105
105
|
deleteSuccess: "{{object}} удалён",
|
|
106
106
|
},
|
|
107
107
|
fields: {
|
|
108
|
+
relativeDate: {
|
|
109
|
+
overdue: "Просрочено на {{count}} дн.",
|
|
110
|
+
},
|
|
108
111
|
richText: {
|
|
109
112
|
format: "Формат: {{format}}",
|
|
110
113
|
basicEditorHint: "Редактор форматированного текста (базовый)",
|
|
@@ -280,6 +283,31 @@ const ru = {
|
|
|
280
283
|
addGroup: "Добавить поле группировки",
|
|
281
284
|
collapsedByDefault: "Свёрнуто по умолчанию",
|
|
282
285
|
removeGroup: "Удалить",
|
|
286
|
+
inlineEditShort: "Встроенное редактирование",
|
|
287
|
+
inlineEditLabel: "Редактировать записи в таблице (щёлкните ячейку для редактирования)",
|
|
288
|
+
recordEditingTitle: "Редактирование записей",
|
|
289
|
+
},
|
|
290
|
+
managedByBadge: {
|
|
291
|
+
config: {
|
|
292
|
+
short: "Конфигурация",
|
|
293
|
+
title: "Конфигурация администратора",
|
|
294
|
+
body: "Эти строки определяют поведение платформы во время выполнения. Создавайте их здесь; создаваемые данные времени выполнения хранятся в отдельной таблице.",
|
|
295
|
+
},
|
|
296
|
+
system: {
|
|
297
|
+
short: "Управляется системой",
|
|
298
|
+
title: "Управляется платформой",
|
|
299
|
+
body: "Строки создаются автоматически при выполнении действий над исходной записью. Список — это панель мониторинга только для чтения; действия на уровне строк (Утвердить, Отозвать, Отправить повторно и т. д.) находятся у каждой строки.",
|
|
300
|
+
},
|
|
301
|
+
appendOnly: {
|
|
302
|
+
short: "Только чтение · Журнал аудита",
|
|
303
|
+
title: "Историческая запись только для чтения",
|
|
304
|
+
body: "Неизменяемый журнал аудита. Строки нельзя создавать, изменять или удалять из интерфейса — платформа записывает их при наступлении событий. Используйте экспорт для проверки соответствия.",
|
|
305
|
+
},
|
|
306
|
+
betterAuth: {
|
|
307
|
+
short: "Идентификация",
|
|
308
|
+
title: "Управляется поставщиком удостоверений",
|
|
309
|
+
body: "Схема этого объекта принадлежит {{provider}}. Прямые изменения обходят хеширование паролей, проверку сессий, двухфакторные проверки и хуки аудита. Управляйте этими записями через процессы входа, приглашения и безопасности вашего поставщика аутентификации.",
|
|
310
|
+
},
|
|
283
311
|
},
|
|
284
312
|
kanban: {
|
|
285
313
|
addCard: "Добавить карточку",
|
|
@@ -1222,6 +1250,43 @@ const ru = {
|
|
|
1222
1250
|
tenantHostHint: "Вы входите в это рабочее пространство",
|
|
1223
1251
|
},
|
|
1224
1252
|
},
|
|
1253
|
+
profile: {
|
|
1254
|
+
title: "Профиль",
|
|
1255
|
+
subtitle: "Управляйте настройками своей учётной записи",
|
|
1256
|
+
saving: "Сохранение…",
|
|
1257
|
+
avatar: {
|
|
1258
|
+
upload: "Загрузить",
|
|
1259
|
+
replace: "Заменить",
|
|
1260
|
+
remove: "Удалить",
|
|
1261
|
+
},
|
|
1262
|
+
info: {
|
|
1263
|
+
title: "Личная информация",
|
|
1264
|
+
description: "Обновите имя и просмотрите данные учётной записи",
|
|
1265
|
+
saved: "Профиль успешно обновлён.",
|
|
1266
|
+
name: "Имя",
|
|
1267
|
+
email: "Эл. почта",
|
|
1268
|
+
emailImmutable: "Адрес электронной почты изменить нельзя.",
|
|
1269
|
+
role: "Роль",
|
|
1270
|
+
save: "Сохранить изменения",
|
|
1271
|
+
},
|
|
1272
|
+
password: {
|
|
1273
|
+
changeTitle: "Изменить пароль",
|
|
1274
|
+
setTitle: "Задать локальный пароль",
|
|
1275
|
+
changeDescription: "Обновите пароль, который вы используете для входа в эту среду.",
|
|
1276
|
+
setDescription: "Вы вошли через единый вход (SSO). Задайте локальный пароль, чтобы также входить в эту среду по электронной почте и паролю.",
|
|
1277
|
+
current: "Текущий пароль",
|
|
1278
|
+
new: "Новый пароль",
|
|
1279
|
+
password: "Пароль",
|
|
1280
|
+
confirm: "Подтвердите пароль",
|
|
1281
|
+
tooShort: "Пароль должен содержать не менее 8 символов",
|
|
1282
|
+
mismatch: "Пароли не совпадают",
|
|
1283
|
+
enterCurrent: "Введите текущий пароль",
|
|
1284
|
+
changed: "Пароль изменён.",
|
|
1285
|
+
localSet: "Локальный пароль задан. Теперь вы можете входить в эту среду по электронной почте и паролю.",
|
|
1286
|
+
changeAction: "Изменить пароль",
|
|
1287
|
+
setAction: "Задать пароль",
|
|
1288
|
+
},
|
|
1289
|
+
},
|
|
1225
1290
|
errors: {
|
|
1226
1291
|
networkError: "Ошибка сети. Проверьте подключение к интернету.",
|
|
1227
1292
|
serverError: "Ошибка сервера. Попробуйте позже.",
|
package/dist/locales/zh.d.ts
CHANGED
|
@@ -112,6 +112,9 @@ declare const zh: {
|
|
|
112
112
|
readonly deleteSuccess: "{{object}}删除成功";
|
|
113
113
|
};
|
|
114
114
|
readonly fields: {
|
|
115
|
+
readonly relativeDate: {
|
|
116
|
+
readonly overdue: "逾期 {{count}} 天";
|
|
117
|
+
};
|
|
115
118
|
readonly richText: {
|
|
116
119
|
readonly format: "格式: {{format}}";
|
|
117
120
|
readonly basicEditorHint: "富文本编辑器(基础)";
|
|
@@ -254,6 +257,7 @@ declare const zh: {
|
|
|
254
257
|
};
|
|
255
258
|
readonly downloadTemplate: "下载模板";
|
|
256
259
|
readonly downloadTemplateHint: "获取带正确列的 CSV(必填字段标 *)。";
|
|
260
|
+
readonly templateFileName: "{{object}}-导入模板";
|
|
257
261
|
readonly validate: "校验数据";
|
|
258
262
|
readonly validateHint: "导入前在服务端逐行校验。";
|
|
259
263
|
readonly validating: "校验中…";
|
|
@@ -418,6 +422,28 @@ declare const zh: {
|
|
|
418
422
|
readonly inlineEditLabel: "行内编辑记录(点击单元格进行编辑)";
|
|
419
423
|
readonly recordEditingTitle: "记录编辑";
|
|
420
424
|
};
|
|
425
|
+
readonly managedByBadge: {
|
|
426
|
+
readonly config: {
|
|
427
|
+
readonly short: "管理配置";
|
|
428
|
+
readonly title: "管理员配置";
|
|
429
|
+
readonly body: "这些记录定义平台的运行时行为。请在此处编写配置;其产生的运行时数据存放在单独的表中。";
|
|
430
|
+
};
|
|
431
|
+
readonly system: {
|
|
432
|
+
readonly short: "系统管理";
|
|
433
|
+
readonly title: "由平台管理";
|
|
434
|
+
readonly body: "当源记录上的操作运行时,这里的行会自动创建。下方列表是只读监控界面——行级操作(批准、撤回、重发等)在每一行上。";
|
|
435
|
+
};
|
|
436
|
+
readonly appendOnly: {
|
|
437
|
+
readonly short: "只读 · 审计日志";
|
|
438
|
+
readonly title: "只读历史记录";
|
|
439
|
+
readonly body: "不可变审计日志。行由平台在事件发生时写入,不能在界面上创建、编辑或删除。可使用导出功能下载以供合规审查。";
|
|
440
|
+
};
|
|
441
|
+
readonly betterAuth: {
|
|
442
|
+
readonly short: "身份";
|
|
443
|
+
readonly title: "由身份提供方管理";
|
|
444
|
+
readonly body: "此对象的架构由 {{provider}} 管理。直接编辑会绕过密码哈希、会话校验、两步验证检查和审计钩子。请通过身份认证提供方的登录、邀请和安全流程管理这些记录。";
|
|
445
|
+
};
|
|
446
|
+
};
|
|
421
447
|
readonly kanban: {
|
|
422
448
|
readonly addCard: "添加卡片";
|
|
423
449
|
readonly addColumn: "添加列";
|
|
@@ -477,7 +503,7 @@ declare const zh: {
|
|
|
477
503
|
readonly row: {
|
|
478
504
|
readonly expand: "展开";
|
|
479
505
|
readonly collapse: "收起";
|
|
480
|
-
readonly
|
|
506
|
+
readonly open: "打开详情";
|
|
481
507
|
};
|
|
482
508
|
readonly aria: {
|
|
483
509
|
readonly taskList: "任务列表";
|
|
@@ -493,6 +519,25 @@ declare const zh: {
|
|
|
493
519
|
readonly addSuccessor: "添加后置任务…";
|
|
494
520
|
readonly removeDependency: "移除依赖";
|
|
495
521
|
readonly noCandidates: "无可用任务";
|
|
522
|
+
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
|
+
};
|
|
532
|
+
readonly delete: {
|
|
533
|
+
readonly title: "删除此任务?";
|
|
534
|
+
readonly body: "\"{{title}}\" 将被永久删除,此操作无法撤销。";
|
|
535
|
+
readonly cancel: "取消";
|
|
536
|
+
readonly confirm: "删除";
|
|
537
|
+
readonly deleting: "删除中…";
|
|
538
|
+
};
|
|
539
|
+
readonly drawer: {
|
|
540
|
+
readonly fallbackTitle: "任务详情";
|
|
496
541
|
};
|
|
497
542
|
readonly linkType: {
|
|
498
543
|
readonly fs: "完成 → 开始";
|
|
@@ -514,6 +559,8 @@ declare const zh: {
|
|
|
514
559
|
};
|
|
515
560
|
readonly readOnly: "只读";
|
|
516
561
|
readonly readOnlyHint: "此视图已禁用编辑。";
|
|
562
|
+
readonly lockedHint: "无编辑权限";
|
|
563
|
+
readonly writeFailed: "保存失败,已恢复修改前状态";
|
|
517
564
|
};
|
|
518
565
|
readonly view: {
|
|
519
566
|
readonly editViewConfig: "编辑视图配置";
|
|
@@ -634,8 +681,10 @@ declare const zh: {
|
|
|
634
681
|
readonly daysAgo: "{{count}}天前";
|
|
635
682
|
readonly systemActor: "系统";
|
|
636
683
|
readonly unknownUser: "未知用户";
|
|
637
|
-
readonly createdBy: "
|
|
638
|
-
readonly updatedBy: "
|
|
684
|
+
readonly createdBy: "创建人";
|
|
685
|
+
readonly updatedBy: "更新人";
|
|
686
|
+
readonly created: "创建于";
|
|
687
|
+
readonly updated: "更新于";
|
|
639
688
|
readonly dropFilesToUpload: "拖拽文件到此处或点击上传";
|
|
640
689
|
readonly attachmentCount: "{{count}} 个附件";
|
|
641
690
|
readonly attachmentCountPlural: "{{count}} 个附件";
|
|
@@ -917,6 +966,29 @@ declare const zh: {
|
|
|
917
966
|
readonly vsYesterday: "较昨日";
|
|
918
967
|
readonly vsPreviousPeriod: "较上期";
|
|
919
968
|
};
|
|
969
|
+
readonly filters: {
|
|
970
|
+
readonly label: "仪表盘过滤器";
|
|
971
|
+
readonly dateRange: "日期范围";
|
|
972
|
+
readonly allTime: "全部时间";
|
|
973
|
+
readonly custom: "自定义…";
|
|
974
|
+
readonly all: "全部";
|
|
975
|
+
readonly reset: "重置";
|
|
976
|
+
readonly range: {
|
|
977
|
+
readonly today: "今天";
|
|
978
|
+
readonly yesterday: "昨天";
|
|
979
|
+
readonly this_week: "本周";
|
|
980
|
+
readonly last_week: "上周";
|
|
981
|
+
readonly this_month: "本月";
|
|
982
|
+
readonly last_month: "上月";
|
|
983
|
+
readonly this_quarter: "本季度";
|
|
984
|
+
readonly last_quarter: "上季度";
|
|
985
|
+
readonly this_year: "今年";
|
|
986
|
+
readonly last_year: "去年";
|
|
987
|
+
readonly last_7_days: "近 7 天";
|
|
988
|
+
readonly last_30_days: "近 30 天";
|
|
989
|
+
readonly last_90_days: "近 90 天";
|
|
990
|
+
};
|
|
991
|
+
};
|
|
920
992
|
};
|
|
921
993
|
readonly configPanel: {
|
|
922
994
|
readonly save: "保存";
|
|
@@ -1200,6 +1272,19 @@ declare const zh: {
|
|
|
1200
1272
|
readonly createApp: "创建新应用";
|
|
1201
1273
|
};
|
|
1202
1274
|
readonly ai: {
|
|
1275
|
+
readonly usage: {
|
|
1276
|
+
readonly title: "AI 用量";
|
|
1277
|
+
readonly meterBuild: "AI 搭建";
|
|
1278
|
+
readonly meterAsk: "数据问询";
|
|
1279
|
+
readonly statusOk: "额度充足";
|
|
1280
|
+
readonly statusLow: "即将用完";
|
|
1281
|
+
readonly statusFull: "额度已用完";
|
|
1282
|
+
readonly resetsDaily: "今晚重置";
|
|
1283
|
+
readonly resetsMonthly: "下个周期重置";
|
|
1284
|
+
readonly ctaUpgrade: "升级以继续使用";
|
|
1285
|
+
readonly ctaTopUp: "购买额度包以继续";
|
|
1286
|
+
readonly ariaLabel: "AI 用量:{{status}}";
|
|
1287
|
+
};
|
|
1203
1288
|
readonly workspaceTitle: "AI 工作区";
|
|
1204
1289
|
readonly workspaceSubtitle: "提问、查看并继续历史对话";
|
|
1205
1290
|
readonly openChats: "打开对话列表";
|
|
@@ -1226,6 +1311,8 @@ declare const zh: {
|
|
|
1226
1311
|
readonly sendFailedGeneric: "消息发送失败,请重试。你的消息已保留在输入框中。";
|
|
1227
1312
|
readonly askAgent: "向 {{agent}} 提问...";
|
|
1228
1313
|
readonly assistant: "助手";
|
|
1314
|
+
readonly liveCanvas: "草稿预览 · {{app}}";
|
|
1315
|
+
readonly liveCanvasUnlisted: "运行预览 · {{app}}(未发布 · 仅自己可见)";
|
|
1229
1316
|
readonly loadingAgents: "正在加载助手...";
|
|
1230
1317
|
readonly askAnything: "输入你的问题...";
|
|
1231
1318
|
readonly emptyTitle: "开始对话";
|
|
@@ -1241,6 +1328,11 @@ declare const zh: {
|
|
|
1241
1328
|
readonly title: "向你的数据提问";
|
|
1242
1329
|
readonly description: "针对你的记录提问 —— 在你有权访问的数据范围内进行计数、列举和汇总。";
|
|
1243
1330
|
};
|
|
1331
|
+
readonly editApp: {
|
|
1332
|
+
readonly title: "正在编辑「{{app}}」";
|
|
1333
|
+
readonly titleGeneric: "编辑此应用";
|
|
1334
|
+
readonly description: "想改点什么?我会就地修改这个应用 —— 加字段、对象、视图或自动化,或调整已有内容。";
|
|
1335
|
+
};
|
|
1244
1336
|
};
|
|
1245
1337
|
readonly clearConversation: "清空";
|
|
1246
1338
|
readonly sendHint: "发送";
|
|
@@ -1265,6 +1357,7 @@ declare const zh: {
|
|
|
1265
1357
|
readonly seedWarn: "已发布,但部分示例数据未能载入。";
|
|
1266
1358
|
readonly openBuiltApp: "打开应用";
|
|
1267
1359
|
readonly previewDraft: "预览";
|
|
1360
|
+
readonly previewApp: "预览应用";
|
|
1268
1361
|
readonly resizeSplit: "调整对话与预览的宽度";
|
|
1269
1362
|
readonly hideChats: "隐藏对话列表";
|
|
1270
1363
|
readonly showChats: "显示对话列表";
|
|
@@ -1303,6 +1396,12 @@ declare const zh: {
|
|
|
1303
1396
|
readonly availableObjects: "列出可用的数据对象。";
|
|
1304
1397
|
readonly recentActivity: "总结我的最近动态。";
|
|
1305
1398
|
};
|
|
1399
|
+
readonly editApp: {
|
|
1400
|
+
readonly addField: "给某个对象加一个字段。";
|
|
1401
|
+
readonly addObject: "新增一个对象,并关联到已有对象。";
|
|
1402
|
+
readonly addDashboard: "加一个展示关键指标的仪表盘。";
|
|
1403
|
+
readonly addAutomation: "加一个自动化 —— 审批、状态流转或通知。";
|
|
1404
|
+
};
|
|
1306
1405
|
};
|
|
1307
1406
|
};
|
|
1308
1407
|
readonly errors: {
|
|
@@ -1571,6 +1670,7 @@ declare const zh: {
|
|
|
1571
1670
|
readonly errors: {
|
|
1572
1671
|
readonly invalidCredentials: "邮箱或密码错误,请重试。";
|
|
1573
1672
|
readonly emailNotVerified: "请先验证您的邮箱后再登录。";
|
|
1673
|
+
readonly oauthCallbackFailed: "单点登录未能完成——登录链接已过期或已被使用,请重新发起登录。";
|
|
1574
1674
|
};
|
|
1575
1675
|
};
|
|
1576
1676
|
readonly register: {
|
|
@@ -1709,6 +1809,43 @@ declare const zh: {
|
|
|
1709
1809
|
readonly tenantHostHint: "您正在登录此工作区";
|
|
1710
1810
|
};
|
|
1711
1811
|
};
|
|
1812
|
+
readonly profile: {
|
|
1813
|
+
readonly title: "个人资料";
|
|
1814
|
+
readonly subtitle: "管理您的账户设置";
|
|
1815
|
+
readonly saving: "保存中…";
|
|
1816
|
+
readonly avatar: {
|
|
1817
|
+
readonly upload: "上传";
|
|
1818
|
+
readonly replace: "更换";
|
|
1819
|
+
readonly remove: "移除";
|
|
1820
|
+
};
|
|
1821
|
+
readonly info: {
|
|
1822
|
+
readonly title: "个人信息";
|
|
1823
|
+
readonly description: "更新您的姓名并查看账户详情";
|
|
1824
|
+
readonly saved: "个人资料已更新。";
|
|
1825
|
+
readonly name: "姓名";
|
|
1826
|
+
readonly email: "邮箱";
|
|
1827
|
+
readonly emailImmutable: "邮箱不可修改。";
|
|
1828
|
+
readonly role: "角色";
|
|
1829
|
+
readonly save: "保存更改";
|
|
1830
|
+
};
|
|
1831
|
+
readonly password: {
|
|
1832
|
+
readonly changeTitle: "修改密码";
|
|
1833
|
+
readonly setTitle: "设置本地密码";
|
|
1834
|
+
readonly changeDescription: "更新您在此环境登录所用的密码。";
|
|
1835
|
+
readonly setDescription: "您通过单点登录进入。设置本地密码后,也可以在此环境使用邮箱和密码登录。";
|
|
1836
|
+
readonly current: "当前密码";
|
|
1837
|
+
readonly new: "新密码";
|
|
1838
|
+
readonly password: "密码";
|
|
1839
|
+
readonly confirm: "确认密码";
|
|
1840
|
+
readonly tooShort: "密码长度至少为 8 个字符";
|
|
1841
|
+
readonly mismatch: "两次输入的密码不一致";
|
|
1842
|
+
readonly enterCurrent: "请输入当前密码";
|
|
1843
|
+
readonly changed: "密码已修改。";
|
|
1844
|
+
readonly localSet: "本地密码已设置。现在您可以在此环境使用邮箱和密码登录。";
|
|
1845
|
+
readonly changeAction: "修改密码";
|
|
1846
|
+
readonly setAction: "设置密码";
|
|
1847
|
+
};
|
|
1848
|
+
};
|
|
1712
1849
|
readonly errors: {
|
|
1713
1850
|
readonly networkError: "网络错误,请检查网络连接。";
|
|
1714
1851
|
readonly serverError: "服务器错误,请稍后重试。";
|
|
@@ -2033,6 +2170,8 @@ declare const zh: {
|
|
|
2033
2170
|
readonly deleteFailed: "删除 {{label}} 失败";
|
|
2034
2171
|
readonly noRecordId: "未提供记录 ID";
|
|
2035
2172
|
readonly deleteConfirm: "确定要删除此记录吗?";
|
|
2173
|
+
readonly resetPackageSetConfirm: "该权限集随已安装的软件包发布,无法删除。删除操作将丢弃环境定制并把它重置为发布基线。是否继续?";
|
|
2174
|
+
readonly resetPackageSetSuccess: "权限集已重置为发布基线";
|
|
2036
2175
|
readonly bulkDeleteSuccess: "已删除 {{count}} 条 {{label}} 记录";
|
|
2037
2176
|
readonly bulkDeletePartial: "成功 {{succeeded}} 条,失败 {{failed}} 条";
|
|
2038
2177
|
};
|
package/dist/locales/zh.js
CHANGED
|
@@ -112,6 +112,9 @@ const zh = {
|
|
|
112
112
|
deleteSuccess: '{{object}}删除成功',
|
|
113
113
|
},
|
|
114
114
|
fields: {
|
|
115
|
+
relativeDate: {
|
|
116
|
+
overdue: '逾期 {{count}} 天',
|
|
117
|
+
},
|
|
115
118
|
richText: {
|
|
116
119
|
format: '格式: {{format}}',
|
|
117
120
|
basicEditorHint: '富文本编辑器(基础)',
|
|
@@ -256,6 +259,7 @@ const zh = {
|
|
|
256
259
|
// 下载模板
|
|
257
260
|
downloadTemplate: '下载模板',
|
|
258
261
|
downloadTemplateHint: '获取带正确列的 CSV(必填字段标 *)。',
|
|
262
|
+
templateFileName: '{{object}}-导入模板',
|
|
259
263
|
// 校验(服务端 dryRun 预检)
|
|
260
264
|
validate: '校验数据',
|
|
261
265
|
validateHint: '导入前在服务端逐行校验。',
|
|
@@ -427,6 +431,28 @@ const zh = {
|
|
|
427
431
|
inlineEditLabel: '行内编辑记录(点击单元格进行编辑)',
|
|
428
432
|
recordEditingTitle: '记录编辑',
|
|
429
433
|
},
|
|
434
|
+
managedByBadge: {
|
|
435
|
+
config: {
|
|
436
|
+
short: '管理配置',
|
|
437
|
+
title: '管理员配置',
|
|
438
|
+
body: '这些记录定义平台的运行时行为。请在此处编写配置;其产生的运行时数据存放在单独的表中。',
|
|
439
|
+
},
|
|
440
|
+
system: {
|
|
441
|
+
short: '系统管理',
|
|
442
|
+
title: '由平台管理',
|
|
443
|
+
body: '当源记录上的操作运行时,这里的行会自动创建。下方列表是只读监控界面——行级操作(批准、撤回、重发等)在每一行上。',
|
|
444
|
+
},
|
|
445
|
+
appendOnly: {
|
|
446
|
+
short: '只读 · 审计日志',
|
|
447
|
+
title: '只读历史记录',
|
|
448
|
+
body: '不可变审计日志。行由平台在事件发生时写入,不能在界面上创建、编辑或删除。可使用导出功能下载以供合规审查。',
|
|
449
|
+
},
|
|
450
|
+
betterAuth: {
|
|
451
|
+
short: '身份',
|
|
452
|
+
title: '由身份提供方管理',
|
|
453
|
+
body: '此对象的架构由 {{provider}} 管理。直接编辑会绕过密码哈希、会话校验、两步验证检查和审计钩子。请通过身份认证提供方的登录、邀请和安全流程管理这些记录。',
|
|
454
|
+
},
|
|
455
|
+
},
|
|
430
456
|
kanban: {
|
|
431
457
|
addCard: '添加卡片',
|
|
432
458
|
addColumn: '添加列',
|
|
@@ -486,7 +512,7 @@ const zh = {
|
|
|
486
512
|
row: {
|
|
487
513
|
expand: '展开',
|
|
488
514
|
collapse: '收起',
|
|
489
|
-
|
|
515
|
+
open: '打开详情',
|
|
490
516
|
},
|
|
491
517
|
aria: {
|
|
492
518
|
taskList: '任务列表',
|
|
@@ -502,6 +528,25 @@ const zh = {
|
|
|
502
528
|
addSuccessor: '添加后置任务…',
|
|
503
529
|
removeDependency: '移除依赖',
|
|
504
530
|
noCandidates: '无可用任务',
|
|
531
|
+
searchTasks: '搜索任务…',
|
|
532
|
+
qrcode: '移动端二维码',
|
|
533
|
+
},
|
|
534
|
+
qr: {
|
|
535
|
+
title: '在手机上打开',
|
|
536
|
+
hint: '用手机扫码打开详情页',
|
|
537
|
+
copy: '复制链接',
|
|
538
|
+
copied: '已复制',
|
|
539
|
+
close: '关闭',
|
|
540
|
+
},
|
|
541
|
+
delete: {
|
|
542
|
+
title: '删除此任务?',
|
|
543
|
+
body: '"{{title}}" 将被永久删除,此操作无法撤销。',
|
|
544
|
+
cancel: '取消',
|
|
545
|
+
confirm: '删除',
|
|
546
|
+
deleting: '删除中…',
|
|
547
|
+
},
|
|
548
|
+
drawer: {
|
|
549
|
+
fallbackTitle: '任务详情',
|
|
505
550
|
},
|
|
506
551
|
linkType: {
|
|
507
552
|
fs: '完成 → 开始',
|
|
@@ -523,6 +568,8 @@ const zh = {
|
|
|
523
568
|
},
|
|
524
569
|
readOnly: '只读',
|
|
525
570
|
readOnlyHint: '此视图已禁用编辑。',
|
|
571
|
+
lockedHint: '无编辑权限',
|
|
572
|
+
writeFailed: '保存失败,已恢复修改前状态',
|
|
526
573
|
},
|
|
527
574
|
view: {
|
|
528
575
|
editViewConfig: '编辑视图配置',
|
|
@@ -646,9 +693,13 @@ const zh = {
|
|
|
646
693
|
// Activity feed actors
|
|
647
694
|
systemActor: '系统',
|
|
648
695
|
unknownUser: '未知用户',
|
|
649
|
-
// Record meta footer (audit provenance)
|
|
650
|
-
|
|
651
|
-
|
|
696
|
+
// Record meta footer (audit provenance)。createdBy/updatedBy 后面跟的是
|
|
697
|
+
// 操作者("创建人 Dev Admin · 5 分钟前");created/updated 是无操作者时的
|
|
698
|
+
// 兜底("创建于 5 分钟前")。旧文案把"创建于"用在了操作者位置,属误译。
|
|
699
|
+
createdBy: '创建人',
|
|
700
|
+
updatedBy: '更新人',
|
|
701
|
+
created: '创建于',
|
|
702
|
+
updated: '更新于',
|
|
652
703
|
// Attachments
|
|
653
704
|
dropFilesToUpload: '拖拽文件到此处或点击上传',
|
|
654
705
|
attachmentCount: '{{count}} 个附件',
|
|
@@ -939,6 +990,29 @@ const zh = {
|
|
|
939
990
|
vsYesterday: '较昨日',
|
|
940
991
|
vsPreviousPeriod: '较上期',
|
|
941
992
|
},
|
|
993
|
+
filters: {
|
|
994
|
+
label: '仪表盘过滤器',
|
|
995
|
+
dateRange: '日期范围',
|
|
996
|
+
allTime: '全部时间',
|
|
997
|
+
custom: '自定义…',
|
|
998
|
+
all: '全部',
|
|
999
|
+
reset: '重置',
|
|
1000
|
+
range: {
|
|
1001
|
+
today: '今天',
|
|
1002
|
+
yesterday: '昨天',
|
|
1003
|
+
this_week: '本周',
|
|
1004
|
+
last_week: '上周',
|
|
1005
|
+
this_month: '本月',
|
|
1006
|
+
last_month: '上月',
|
|
1007
|
+
this_quarter: '本季度',
|
|
1008
|
+
last_quarter: '上季度',
|
|
1009
|
+
this_year: '今年',
|
|
1010
|
+
last_year: '去年',
|
|
1011
|
+
last_7_days: '近 7 天',
|
|
1012
|
+
last_30_days: '近 30 天',
|
|
1013
|
+
last_90_days: '近 90 天',
|
|
1014
|
+
},
|
|
1015
|
+
},
|
|
942
1016
|
},
|
|
943
1017
|
configPanel: {
|
|
944
1018
|
save: '保存',
|
|
@@ -1222,6 +1296,19 @@ const zh = {
|
|
|
1222
1296
|
createApp: '创建新应用',
|
|
1223
1297
|
},
|
|
1224
1298
|
ai: {
|
|
1299
|
+
usage: {
|
|
1300
|
+
title: 'AI 用量',
|
|
1301
|
+
meterBuild: 'AI 搭建',
|
|
1302
|
+
meterAsk: '数据问询',
|
|
1303
|
+
statusOk: '额度充足',
|
|
1304
|
+
statusLow: '即将用完',
|
|
1305
|
+
statusFull: '额度已用完',
|
|
1306
|
+
resetsDaily: '今晚重置',
|
|
1307
|
+
resetsMonthly: '下个周期重置',
|
|
1308
|
+
ctaUpgrade: '升级以继续使用',
|
|
1309
|
+
ctaTopUp: '购买额度包以继续',
|
|
1310
|
+
ariaLabel: 'AI 用量:{{status}}',
|
|
1311
|
+
},
|
|
1225
1312
|
workspaceTitle: 'AI 工作区',
|
|
1226
1313
|
workspaceSubtitle: '提问、查看并继续历史对话',
|
|
1227
1314
|
openChats: '打开对话列表',
|
|
@@ -1248,6 +1335,8 @@ const zh = {
|
|
|
1248
1335
|
sendFailedGeneric: '消息发送失败,请重试。你的消息已保留在输入框中。',
|
|
1249
1336
|
askAgent: '向 {{agent}} 提问...',
|
|
1250
1337
|
assistant: '助手',
|
|
1338
|
+
liveCanvas: '草稿预览 · {{app}}',
|
|
1339
|
+
liveCanvasUnlisted: '运行预览 · {{app}}(未发布 · 仅自己可见)',
|
|
1251
1340
|
loadingAgents: '正在加载助手...',
|
|
1252
1341
|
askAnything: '输入你的问题...',
|
|
1253
1342
|
emptyTitle: '开始对话',
|
|
@@ -1263,6 +1352,11 @@ const zh = {
|
|
|
1263
1352
|
title: '向你的数据提问',
|
|
1264
1353
|
description: '针对你的记录提问 —— 在你有权访问的数据范围内进行计数、列举和汇总。',
|
|
1265
1354
|
},
|
|
1355
|
+
editApp: {
|
|
1356
|
+
title: '正在编辑「{{app}}」',
|
|
1357
|
+
titleGeneric: '编辑此应用',
|
|
1358
|
+
description: '想改点什么?我会就地修改这个应用 —— 加字段、对象、视图或自动化,或调整已有内容。',
|
|
1359
|
+
},
|
|
1266
1360
|
},
|
|
1267
1361
|
clearConversation: '清空',
|
|
1268
1362
|
sendHint: '发送',
|
|
@@ -1289,6 +1383,7 @@ const zh = {
|
|
|
1289
1383
|
seedWarn: '已发布,但部分示例数据未能载入。',
|
|
1290
1384
|
openBuiltApp: '打开应用',
|
|
1291
1385
|
previewDraft: '预览',
|
|
1386
|
+
previewApp: '预览应用',
|
|
1292
1387
|
resizeSplit: '调整对话与预览的宽度',
|
|
1293
1388
|
hideChats: '隐藏对话列表',
|
|
1294
1389
|
showChats: '显示对话列表',
|
|
@@ -1333,6 +1428,12 @@ const zh = {
|
|
|
1333
1428
|
availableObjects: '列出可用的数据对象。',
|
|
1334
1429
|
recentActivity: '总结我的最近动态。',
|
|
1335
1430
|
},
|
|
1431
|
+
editApp: {
|
|
1432
|
+
addField: '给某个对象加一个字段。',
|
|
1433
|
+
addObject: '新增一个对象,并关联到已有对象。',
|
|
1434
|
+
addDashboard: '加一个展示关键指标的仪表盘。',
|
|
1435
|
+
addAutomation: '加一个自动化 —— 审批、状态流转或通知。',
|
|
1436
|
+
},
|
|
1336
1437
|
},
|
|
1337
1438
|
},
|
|
1338
1439
|
errors: {
|
|
@@ -1601,6 +1702,7 @@ const zh = {
|
|
|
1601
1702
|
errors: {
|
|
1602
1703
|
invalidCredentials: '邮箱或密码错误,请重试。',
|
|
1603
1704
|
emailNotVerified: '请先验证您的邮箱后再登录。',
|
|
1705
|
+
oauthCallbackFailed: '单点登录未能完成——登录链接已过期或已被使用,请重新发起登录。',
|
|
1604
1706
|
},
|
|
1605
1707
|
},
|
|
1606
1708
|
register: {
|
|
@@ -1739,6 +1841,43 @@ const zh = {
|
|
|
1739
1841
|
tenantHostHint: '您正在登录此工作区',
|
|
1740
1842
|
},
|
|
1741
1843
|
},
|
|
1844
|
+
profile: {
|
|
1845
|
+
title: '个人资料',
|
|
1846
|
+
subtitle: '管理您的账户设置',
|
|
1847
|
+
saving: '保存中…',
|
|
1848
|
+
avatar: {
|
|
1849
|
+
upload: '上传',
|
|
1850
|
+
replace: '更换',
|
|
1851
|
+
remove: '移除',
|
|
1852
|
+
},
|
|
1853
|
+
info: {
|
|
1854
|
+
title: '个人信息',
|
|
1855
|
+
description: '更新您的姓名并查看账户详情',
|
|
1856
|
+
saved: '个人资料已更新。',
|
|
1857
|
+
name: '姓名',
|
|
1858
|
+
email: '邮箱',
|
|
1859
|
+
emailImmutable: '邮箱不可修改。',
|
|
1860
|
+
role: '角色',
|
|
1861
|
+
save: '保存更改',
|
|
1862
|
+
},
|
|
1863
|
+
password: {
|
|
1864
|
+
changeTitle: '修改密码',
|
|
1865
|
+
setTitle: '设置本地密码',
|
|
1866
|
+
changeDescription: '更新您在此环境登录所用的密码。',
|
|
1867
|
+
setDescription: '您通过单点登录进入。设置本地密码后,也可以在此环境使用邮箱和密码登录。',
|
|
1868
|
+
current: '当前密码',
|
|
1869
|
+
new: '新密码',
|
|
1870
|
+
password: '密码',
|
|
1871
|
+
confirm: '确认密码',
|
|
1872
|
+
tooShort: '密码长度至少为 8 个字符',
|
|
1873
|
+
mismatch: '两次输入的密码不一致',
|
|
1874
|
+
enterCurrent: '请输入当前密码',
|
|
1875
|
+
changed: '密码已修改。',
|
|
1876
|
+
localSet: '本地密码已设置。现在您可以在此环境使用邮箱和密码登录。',
|
|
1877
|
+
changeAction: '修改密码',
|
|
1878
|
+
setAction: '设置密码',
|
|
1879
|
+
},
|
|
1880
|
+
},
|
|
1742
1881
|
errors: {
|
|
1743
1882
|
networkError: '网络错误,请检查网络连接。',
|
|
1744
1883
|
serverError: '服务器错误,请稍后重试。',
|
|
@@ -2066,6 +2205,8 @@ const zh = {
|
|
|
2066
2205
|
deleteFailed: '删除 {{label}} 失败',
|
|
2067
2206
|
noRecordId: '未提供记录 ID',
|
|
2068
2207
|
deleteConfirm: '确定要删除此记录吗?',
|
|
2208
|
+
resetPackageSetConfirm: '该权限集随已安装的软件包发布,无法删除。删除操作将丢弃环境定制并把它重置为发布基线。是否继续?',
|
|
2209
|
+
resetPackageSetSuccess: '权限集已重置为发布基线',
|
|
2069
2210
|
bulkDeleteSuccess: '已删除 {{count}} 条 {{label}} 记录',
|
|
2070
2211
|
bulkDeletePartial: '成功 {{succeeded}} 条,失败 {{failed}} 条',
|
|
2071
2212
|
},
|
package/dist/pickLocalized.d.ts
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Accepts a plain string (passed through) or an i18n object keyed by language
|
|
5
5
|
* code — e.g. `{ en: 'Pricing', 'zh-CN': '定价', zh: '定价', default: 'Pricing' }`.
|
|
6
|
-
* Resolution order: exact language -> base language (`zh-CN` -> `zh`) ->
|
|
7
|
-
*
|
|
6
|
+
* Resolution order: exact language -> base language (`zh-CN` -> `zh`) -> any
|
|
7
|
+
* region-qualified key sharing the base (`zh` -> `zh-CN`) -> `default` -> `en`
|
|
8
|
+
* -> first value. Unlike a `default`/`en`-only resolver this is genuinely
|
|
8
9
|
* locale-aware, so server-driven metadata (page text, action param labels) can
|
|
9
10
|
* carry inline translations instead of rendering "[object Object]" or English.
|
|
10
11
|
*
|
package/dist/pickLocalized.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Accepts a plain string (passed through) or an i18n object keyed by language
|
|
5
5
|
* code — e.g. `{ en: 'Pricing', 'zh-CN': '定价', zh: '定价', default: 'Pricing' }`.
|
|
6
|
-
* Resolution order: exact language -> base language (`zh-CN` -> `zh`) ->
|
|
7
|
-
*
|
|
6
|
+
* Resolution order: exact language -> base language (`zh-CN` -> `zh`) -> any
|
|
7
|
+
* region-qualified key sharing the base (`zh` -> `zh-CN`) -> `default` -> `en`
|
|
8
|
+
* -> first value. Unlike a `default`/`en`-only resolver this is genuinely
|
|
8
9
|
* locale-aware, so server-driven metadata (page text, action param labels) can
|
|
9
10
|
* carry inline translations instead of rendering "[object Object]" or English.
|
|
10
11
|
*
|
|
@@ -22,8 +23,12 @@ export function pickLocalized(value, language) {
|
|
|
22
23
|
const o = value;
|
|
23
24
|
const lang = (language || 'en').trim();
|
|
24
25
|
const base = lang.split('-')[0];
|
|
26
|
+
// Runtime language is often a bare base code ('zh') while metadata authors
|
|
27
|
+
// write full BCP-47 tags ('zh-CN') — upgrade to any key sharing the base.
|
|
28
|
+
const regional = Object.keys(o).find((k) => k.split('-')[0] === base && typeof o[k] === 'string');
|
|
25
29
|
const pick = o[lang] ??
|
|
26
30
|
o[base] ??
|
|
31
|
+
(regional !== undefined ? o[regional] : undefined) ??
|
|
27
32
|
o.default ??
|
|
28
33
|
o.en ??
|
|
29
34
|
Object.values(o).find((v) => typeof v === 'string');
|
package/dist/useObjectLabel.d.ts
CHANGED
|
@@ -236,4 +236,5 @@ export declare function useSafeFieldLabel(): {
|
|
|
236
236
|
}[];
|
|
237
237
|
fieldOptionLabel: (_objectName: string, _fieldName: string, _optionValue: string, fallback: string) => string;
|
|
238
238
|
sectionLabel: (_objectName: string, _sectionName: string, fallback: string) => string;
|
|
239
|
+
actionLabel: (_objectName: string | undefined, _actionName: string, fallback: string) => string;
|
|
239
240
|
};
|
package/dist/useObjectLabel.js
CHANGED
|
@@ -394,6 +394,7 @@ const SAFE_FIELD_LABEL_FALLBACK = {
|
|
|
394
394
|
translateOptions: (_objectName, _fieldName, options) => options,
|
|
395
395
|
fieldOptionLabel: (_objectName, _fieldName, _optionValue, fallback) => fallback,
|
|
396
396
|
sectionLabel: (_objectName, _sectionName, fallback) => fallback,
|
|
397
|
+
actionLabel: (_objectName, _actionName, fallback) => fallback,
|
|
397
398
|
};
|
|
398
399
|
/**
|
|
399
400
|
* Safe wrapper for useObjectLabel that falls back to identity functions
|