@object-ui/i18n 13.1.0 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +76 -0
- package/dist/locales/ar.d.ts +62 -0
- package/dist/locales/ar.js +62 -0
- package/dist/locales/de.d.ts +62 -0
- package/dist/locales/de.js +62 -0
- package/dist/locales/en.d.ts +106 -1
- package/dist/locales/en.js +107 -1
- package/dist/locales/es.d.ts +62 -0
- package/dist/locales/es.js +62 -0
- package/dist/locales/fr.d.ts +62 -0
- package/dist/locales/fr.js +62 -0
- package/dist/locales/index.d.ts +709 -2
- package/dist/locales/ja.d.ts +62 -0
- package/dist/locales/ja.js +62 -0
- package/dist/locales/ko.d.ts +62 -0
- package/dist/locales/ko.js +62 -0
- package/dist/locales/pt.d.ts +62 -0
- package/dist/locales/pt.js +62 -0
- package/dist/locales/ru.d.ts +62 -0
- package/dist/locales/ru.js +62 -0
- package/dist/locales/zh.d.ts +107 -1
- package/dist/locales/zh.js +107 -1
- 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/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,81 @@
|
|
|
1
1
|
# @object-ui/i18n
|
|
2
2
|
|
|
3
|
+
## 14.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c70bca7: fix(console-ai): Live Canvas is a full-screen, opt-in preview on mobile — not a broken split (#2481)
|
|
8
|
+
|
|
9
|
+
On a phone the beside-chat Live Canvas split overflowed the viewport (the chat
|
|
10
|
+
column's fixed min-width plus the preview exceeded the screen, and the resize
|
|
11
|
+
handle is desktop-only, so it was stuck clipped). Under `md` the canvas is now:
|
|
12
|
+
|
|
13
|
+
- **Full-width chat, no split** — the build streams in the chat as before.
|
|
14
|
+
- **Opt-in + full-screen** — when the preview is available a floating "Preview
|
|
15
|
+
app" pill appears; tapping it (or a Preview button on a draft card) takes the
|
|
16
|
+
canvas full-screen over the chat. Closing returns to the chat with the
|
|
17
|
+
preview one tap away. The auto-drafted canvas never covers the streaming
|
|
18
|
+
chat unprompted.
|
|
19
|
+
|
|
20
|
+
Desktop is unchanged (the resizable beside-chat split). Adds the
|
|
21
|
+
`console.ai.previewApp` string (en/zh).
|
|
22
|
+
|
|
23
|
+
- 05e56ca: 导出/导入模板的下载文件名与内容本地化。
|
|
24
|
+
|
|
25
|
+
**导出文件名**:CSV/Excel/JSON 导出下载不再是 `<对象名>.<扩展名>`(如 `contracts.csv`),改为「对象显示名-视图名-时间戳.扩展名」(如 `任务-In Progress-20260714-153045.xlsx`);`exportOptions.fileNamePrefix` 配置仍优先(且作为完整前缀,不再追加视图名)。视图名与对象名重复时自动省略;`@object-ui/core` 新增 `buildExportFileName(ext, { prefix, label, objectName, viewLabel }, now?)` 与 `sanitizeFileNameBase(raw)`,ObjectGrid 与 ListView 的所有导出路径(服务端流式与前端兜底)统一走它。app-shell/plugin-view 的 ObjectView 现将当前视图的显示标签写进传给 ListView 的 schema(`label`),使导出文件名能区分同一对象的不同保存视图。
|
|
26
|
+
|
|
27
|
+
**导入模板**:「下载模板」修复两处英文漏出——示例行的 select/多选取值改为优先取选项**显示标签**(如 `准备中`)而非 ASCII slug(`prepare`,服务端导入两者都接受);模板文件名本地化为 `{{object}}-导入模板.csv`(新增 i18n key `grid.import.templateFileName`,英文回退 `{{object}}-import-template.csv`)。
|
|
28
|
+
|
|
29
|
+
- 5971cc4: i18n: translate the Profile page, honor inline i18n label objects under bare
|
|
30
|
+
base-language codes, and localize managed-by badges / record quick actions.
|
|
31
|
+
|
|
32
|
+
- `pickLocalized` now upgrades a bare base language (`zh`) to any
|
|
33
|
+
region-qualified key sharing the base (`zh-CN`) — runtime language is
|
|
34
|
+
normalized to the base code while metadata authors write full BCP-47 tags,
|
|
35
|
+
so inline `{ en, 'zh-CN', ... }` label objects previously fell back to
|
|
36
|
+
English.
|
|
37
|
+
- ProfilePage (`account:profile_card` / `/system/profile`): every hardcoded
|
|
38
|
+
string — page title/subtitle, avatar Upload/Replace/Remove, Personal
|
|
39
|
+
Information card, Change/Set Password card — now goes through
|
|
40
|
+
`useObjectTranslation()` with `profile.*` keys (new namespace in all ten
|
|
41
|
+
locale bundles); the lazy-load fallback reuses `common.loading`.
|
|
42
|
+
- `ManagedByBadge` chips/tooltips (Config/System/Append-only/Identity) now
|
|
43
|
+
resolve through new `managedByBadge.*` keys with `{{provider}}`
|
|
44
|
+
interpolation.
|
|
45
|
+
- `record:quick_actions` resolves action labels via the
|
|
46
|
+
`objects.{object}._actions.{action}.label` convention plus `pickLocalized`,
|
|
47
|
+
so object action buttons (Change Password, Enable 2FA, …) localize.
|
|
48
|
+
- `record:details` / `record:related_list` / `record:alert` / `ObjectTree`
|
|
49
|
+
pass inline label objects through `pickLocalized`.
|
|
50
|
+
- Locale bundles: added `managedByBadge` namespace to all ten locales and
|
|
51
|
+
backfilled `list.inlineEditShort` / `inlineEditLabel` /
|
|
52
|
+
`recordEditingTitle` for ja/es/ko/de/fr/pt/ru/ar.
|
|
53
|
+
|
|
54
|
+
## 13.2.0
|
|
55
|
+
|
|
56
|
+
### Patch Changes
|
|
57
|
+
|
|
58
|
+
- 53c40c2: feat: identity import — the stock ImportWizard now drives sys_user bulk import (framework#2782)
|
|
59
|
+
|
|
60
|
+
The Users list gets an Import entry for platform admins (gated on
|
|
61
|
+
`features.admin` from `/api/v1/auth/config` plus workspace-admin), wired to
|
|
62
|
+
the dedicated `POST /api/v1/auth/admin/import-users` pipeline instead of the
|
|
63
|
+
generic data import (which would bypass better-auth hashing and produce
|
|
64
|
+
accounts that can never sign in).
|
|
65
|
+
|
|
66
|
+
- **plugin-grid**: two generic, backend-agnostic ImportWizard slots —
|
|
67
|
+
`extraOptionsContent` (host-injected options on the preview step) and
|
|
68
|
+
`renderResultExtra` (host-rendered content on the result step).
|
|
69
|
+
- **app-shell**: identity import dataSource adapter — splits files into the
|
|
70
|
+
endpoint's ≤500-row batches (idempotent upsert makes re-runs safe), injects
|
|
71
|
+
the selected password policy, renumbers per-batch results onto the whole
|
|
72
|
+
file, and enriches rows with their sign-in identity. Password policy panel
|
|
73
|
+
(`none` default / `invite` / `temporary`) and a one-shot temporary-password
|
|
74
|
+
reveal with CSV download (client memory only — nothing is persisted).
|
|
75
|
+
Async-job/undo surfaces are hidden for identity import by design.
|
|
76
|
+
- **auth**: `AuthPublicConfig.features.admin` typing.
|
|
77
|
+
- **i18n**: en/zh strings for the identity import panels.
|
|
78
|
+
|
|
3
79
|
## 13.1.0
|
|
4
80
|
|
|
5
81
|
## 13.0.0
|
package/dist/locales/ar.d.ts
CHANGED
|
@@ -280,6 +280,31 @@ declare const ar: {
|
|
|
280
280
|
addGroup: string;
|
|
281
281
|
collapsedByDefault: string;
|
|
282
282
|
removeGroup: string;
|
|
283
|
+
inlineEditShort: string;
|
|
284
|
+
inlineEditLabel: string;
|
|
285
|
+
recordEditingTitle: string;
|
|
286
|
+
};
|
|
287
|
+
managedByBadge: {
|
|
288
|
+
config: {
|
|
289
|
+
short: string;
|
|
290
|
+
title: string;
|
|
291
|
+
body: string;
|
|
292
|
+
};
|
|
293
|
+
system: {
|
|
294
|
+
short: string;
|
|
295
|
+
title: string;
|
|
296
|
+
body: string;
|
|
297
|
+
};
|
|
298
|
+
appendOnly: {
|
|
299
|
+
short: string;
|
|
300
|
+
title: string;
|
|
301
|
+
body: string;
|
|
302
|
+
};
|
|
303
|
+
betterAuth: {
|
|
304
|
+
short: string;
|
|
305
|
+
title: string;
|
|
306
|
+
body: string;
|
|
307
|
+
};
|
|
283
308
|
};
|
|
284
309
|
kanban: {
|
|
285
310
|
addCard: string;
|
|
@@ -1222,6 +1247,43 @@ declare const ar: {
|
|
|
1222
1247
|
tenantHostHint: string;
|
|
1223
1248
|
};
|
|
1224
1249
|
};
|
|
1250
|
+
profile: {
|
|
1251
|
+
title: string;
|
|
1252
|
+
subtitle: string;
|
|
1253
|
+
saving: string;
|
|
1254
|
+
avatar: {
|
|
1255
|
+
upload: string;
|
|
1256
|
+
replace: string;
|
|
1257
|
+
remove: string;
|
|
1258
|
+
};
|
|
1259
|
+
info: {
|
|
1260
|
+
title: string;
|
|
1261
|
+
description: string;
|
|
1262
|
+
saved: string;
|
|
1263
|
+
name: string;
|
|
1264
|
+
email: string;
|
|
1265
|
+
emailImmutable: string;
|
|
1266
|
+
role: string;
|
|
1267
|
+
save: string;
|
|
1268
|
+
};
|
|
1269
|
+
password: {
|
|
1270
|
+
changeTitle: string;
|
|
1271
|
+
setTitle: string;
|
|
1272
|
+
changeDescription: string;
|
|
1273
|
+
setDescription: string;
|
|
1274
|
+
current: string;
|
|
1275
|
+
new: string;
|
|
1276
|
+
password: string;
|
|
1277
|
+
confirm: string;
|
|
1278
|
+
tooShort: string;
|
|
1279
|
+
mismatch: string;
|
|
1280
|
+
enterCurrent: string;
|
|
1281
|
+
changed: string;
|
|
1282
|
+
localSet: string;
|
|
1283
|
+
changeAction: string;
|
|
1284
|
+
setAction: string;
|
|
1285
|
+
};
|
|
1286
|
+
};
|
|
1225
1287
|
errors: {
|
|
1226
1288
|
networkError: string;
|
|
1227
1289
|
serverError: string;
|
package/dist/locales/ar.js
CHANGED
|
@@ -280,6 +280,31 @@ const ar = {
|
|
|
280
280
|
addGroup: "إضافة حقل مجموعة",
|
|
281
281
|
collapsedByDefault: "مطوي افتراضياً",
|
|
282
282
|
removeGroup: "إزالة",
|
|
283
|
+
inlineEditShort: "تحرير مضمّن",
|
|
284
|
+
inlineEditLabel: "حرّر السجلات مباشرة (انقر خلية للتحرير)",
|
|
285
|
+
recordEditingTitle: "تحرير السجلات",
|
|
286
|
+
},
|
|
287
|
+
managedByBadge: {
|
|
288
|
+
config: {
|
|
289
|
+
short: "إعدادات المسؤول",
|
|
290
|
+
title: "تكوين المسؤول",
|
|
291
|
+
body: "تحدد هذه الصفوف سلوك المنصة أثناء التشغيل. أنشئها هنا؛ وتُخزَّن بيانات التشغيل الناتجة في جدول منفصل.",
|
|
292
|
+
},
|
|
293
|
+
system: {
|
|
294
|
+
short: "يديره النظام",
|
|
295
|
+
title: "تديره المنصة",
|
|
296
|
+
body: "تُنشأ الصفوف تلقائيًا عند تشغيل الإجراءات على السجل المصدر. القائمة أدناه واجهة مراقبة للقراءة فقط — وتوجد إجراءات مستوى الصف (اعتماد، استرجاع، إعادة إرسال، …) على كل صف.",
|
|
297
|
+
},
|
|
298
|
+
appendOnly: {
|
|
299
|
+
short: "للقراءة فقط · سجل التدقيق",
|
|
300
|
+
title: "سجل تاريخي للقراءة فقط",
|
|
301
|
+
body: "سجل تدقيق غير قابل للتغيير. لا يمكن إنشاء الصفوف أو تعديلها أو حذفها من الواجهة — تكتبها المنصة عند وقوع الأحداث. استخدم التصدير للتنزيل لمراجعة الامتثال.",
|
|
302
|
+
},
|
|
303
|
+
betterAuth: {
|
|
304
|
+
short: "الهوية",
|
|
305
|
+
title: "يديره مزوّد الهوية",
|
|
306
|
+
body: "مخطط هذا الكائن مملوك لـ {{provider}}. التعديلات المباشرة تتجاوز تجزئة كلمات المرور والتحقق من الجلسات وفحوصات المصادقة الثنائية وخطافات التدقيق. أدر هذه السجلات عبر تدفقات تسجيل الدخول والدعوة والأمان لدى مزوّد المصادقة.",
|
|
307
|
+
},
|
|
283
308
|
},
|
|
284
309
|
kanban: {
|
|
285
310
|
addCard: "إضافة بطاقة",
|
|
@@ -1222,6 +1247,43 @@ const ar = {
|
|
|
1222
1247
|
tenantHostHint: "تسجل الدخول إلى مساحة العمل هذه",
|
|
1223
1248
|
},
|
|
1224
1249
|
},
|
|
1250
|
+
profile: {
|
|
1251
|
+
title: "الملف الشخصي",
|
|
1252
|
+
subtitle: "إدارة إعدادات حسابك",
|
|
1253
|
+
saving: "جارٍ الحفظ…",
|
|
1254
|
+
avatar: {
|
|
1255
|
+
upload: "رفع",
|
|
1256
|
+
replace: "استبدال",
|
|
1257
|
+
remove: "إزالة",
|
|
1258
|
+
},
|
|
1259
|
+
info: {
|
|
1260
|
+
title: "المعلومات الشخصية",
|
|
1261
|
+
description: "قم بتحديث اسمك وعرض تفاصيل حسابك",
|
|
1262
|
+
saved: "تم تحديث الملف الشخصي بنجاح.",
|
|
1263
|
+
name: "الاسم",
|
|
1264
|
+
email: "البريد الإلكتروني",
|
|
1265
|
+
emailImmutable: "لا يمكن تغيير البريد الإلكتروني.",
|
|
1266
|
+
role: "الدور",
|
|
1267
|
+
save: "حفظ التغييرات",
|
|
1268
|
+
},
|
|
1269
|
+
password: {
|
|
1270
|
+
changeTitle: "تغيير كلمة المرور",
|
|
1271
|
+
setTitle: "تعيين كلمة مرور محلية",
|
|
1272
|
+
changeDescription: "قم بتحديث كلمة المرور التي تستخدمها لتسجيل الدخول إلى هذه البيئة.",
|
|
1273
|
+
setDescription: "لقد سجّلت الدخول عبر تسجيل الدخول الموحّد. عيّن كلمة مرور محلية لتتمكن أيضاً من تسجيل الدخول بالبريد الإلكتروني وكلمة المرور في هذه البيئة.",
|
|
1274
|
+
current: "كلمة المرور الحالية",
|
|
1275
|
+
new: "كلمة المرور الجديدة",
|
|
1276
|
+
password: "كلمة المرور",
|
|
1277
|
+
confirm: "تأكيد كلمة المرور",
|
|
1278
|
+
tooShort: "يجب أن تتكون كلمة المرور من 8 أحرف على الأقل",
|
|
1279
|
+
mismatch: "كلمتا المرور غير متطابقتين",
|
|
1280
|
+
enterCurrent: "أدخل كلمة المرور الحالية",
|
|
1281
|
+
changed: "تم تغيير كلمة المرور.",
|
|
1282
|
+
localSet: "تم تعيين كلمة المرور المحلية. يمكنك الآن تسجيل الدخول بالبريد الإلكتروني وكلمة المرور في هذه البيئة.",
|
|
1283
|
+
changeAction: "تغيير كلمة المرور",
|
|
1284
|
+
setAction: "تعيين كلمة المرور",
|
|
1285
|
+
},
|
|
1286
|
+
},
|
|
1225
1287
|
errors: {
|
|
1226
1288
|
networkError: "خطأ في الشبكة. يرجى التحقق من اتصالك.",
|
|
1227
1289
|
serverError: "خطأ في الخادم. يرجى المحاولة مرة أخرى لاحقاً.",
|
package/dist/locales/de.d.ts
CHANGED
|
@@ -280,6 +280,31 @@ declare const de: {
|
|
|
280
280
|
addGroup: string;
|
|
281
281
|
collapsedByDefault: string;
|
|
282
282
|
removeGroup: string;
|
|
283
|
+
inlineEditShort: string;
|
|
284
|
+
inlineEditLabel: string;
|
|
285
|
+
recordEditingTitle: string;
|
|
286
|
+
};
|
|
287
|
+
managedByBadge: {
|
|
288
|
+
config: {
|
|
289
|
+
short: string;
|
|
290
|
+
title: string;
|
|
291
|
+
body: string;
|
|
292
|
+
};
|
|
293
|
+
system: {
|
|
294
|
+
short: string;
|
|
295
|
+
title: string;
|
|
296
|
+
body: string;
|
|
297
|
+
};
|
|
298
|
+
appendOnly: {
|
|
299
|
+
short: string;
|
|
300
|
+
title: string;
|
|
301
|
+
body: string;
|
|
302
|
+
};
|
|
303
|
+
betterAuth: {
|
|
304
|
+
short: string;
|
|
305
|
+
title: string;
|
|
306
|
+
body: string;
|
|
307
|
+
};
|
|
283
308
|
};
|
|
284
309
|
kanban: {
|
|
285
310
|
addCard: string;
|
|
@@ -1222,6 +1247,43 @@ declare const de: {
|
|
|
1222
1247
|
tenantHostHint: string;
|
|
1223
1248
|
};
|
|
1224
1249
|
};
|
|
1250
|
+
profile: {
|
|
1251
|
+
title: string;
|
|
1252
|
+
subtitle: string;
|
|
1253
|
+
saving: string;
|
|
1254
|
+
avatar: {
|
|
1255
|
+
upload: string;
|
|
1256
|
+
replace: string;
|
|
1257
|
+
remove: string;
|
|
1258
|
+
};
|
|
1259
|
+
info: {
|
|
1260
|
+
title: string;
|
|
1261
|
+
description: string;
|
|
1262
|
+
saved: string;
|
|
1263
|
+
name: string;
|
|
1264
|
+
email: string;
|
|
1265
|
+
emailImmutable: string;
|
|
1266
|
+
role: string;
|
|
1267
|
+
save: string;
|
|
1268
|
+
};
|
|
1269
|
+
password: {
|
|
1270
|
+
changeTitle: string;
|
|
1271
|
+
setTitle: string;
|
|
1272
|
+
changeDescription: string;
|
|
1273
|
+
setDescription: string;
|
|
1274
|
+
current: string;
|
|
1275
|
+
new: string;
|
|
1276
|
+
password: string;
|
|
1277
|
+
confirm: string;
|
|
1278
|
+
tooShort: string;
|
|
1279
|
+
mismatch: string;
|
|
1280
|
+
enterCurrent: string;
|
|
1281
|
+
changed: string;
|
|
1282
|
+
localSet: string;
|
|
1283
|
+
changeAction: string;
|
|
1284
|
+
setAction: string;
|
|
1285
|
+
};
|
|
1286
|
+
};
|
|
1225
1287
|
errors: {
|
|
1226
1288
|
networkError: string;
|
|
1227
1289
|
serverError: string;
|
package/dist/locales/de.js
CHANGED
|
@@ -280,6 +280,31 @@ const de = {
|
|
|
280
280
|
addGroup: "Gruppenfeld hinzufügen",
|
|
281
281
|
collapsedByDefault: "Standardmäßig eingeklappt",
|
|
282
282
|
removeGroup: "Entfernen",
|
|
283
|
+
inlineEditShort: "Inline bearbeiten",
|
|
284
|
+
inlineEditLabel: "Datensätze inline bearbeiten (Zelle anklicken zum Bearbeiten)",
|
|
285
|
+
recordEditingTitle: "Datensatzbearbeitung",
|
|
286
|
+
},
|
|
287
|
+
managedByBadge: {
|
|
288
|
+
config: {
|
|
289
|
+
short: "Admin-Konfiguration",
|
|
290
|
+
title: "Administrator-Konfiguration",
|
|
291
|
+
body: "Diese Zeilen definieren das Laufzeitverhalten der Plattform. Erstellen Sie sie hier; die erzeugten Laufzeitdaten liegen in einer separaten Tabelle.",
|
|
292
|
+
},
|
|
293
|
+
system: {
|
|
294
|
+
short: "Systemverwaltet",
|
|
295
|
+
title: "Von der Plattform verwaltet",
|
|
296
|
+
body: "Zeilen werden automatisch erstellt, wenn Aktionen auf dem Quelldatensatz ausgeführt werden. Die Liste ist eine schreibgeschützte Überwachungsansicht – Aktionen auf Zeilenebene (Genehmigen, Zurückrufen, Erneut senden, …) befinden sich an jeder Zeile.",
|
|
297
|
+
},
|
|
298
|
+
appendOnly: {
|
|
299
|
+
short: "Schreibgeschützt · Audit-Log",
|
|
300
|
+
title: "Schreibgeschützter Verlauf",
|
|
301
|
+
body: "Unveränderliches Audit-Log. Zeilen können in der UI nicht erstellt, bearbeitet oder gelöscht werden – die Plattform schreibt sie bei Ereignissen. Nutzen Sie Export für Compliance-Prüfungen.",
|
|
302
|
+
},
|
|
303
|
+
betterAuth: {
|
|
304
|
+
short: "Identität",
|
|
305
|
+
title: "Vom Identitätsanbieter verwaltet",
|
|
306
|
+
body: "Das Schema dieses Objekts gehört {{provider}}. Direkte Änderungen umgehen Passwort-Hashing, Sitzungsvalidierung, Zwei-Faktor-Prüfungen und Audit-Hooks. Verwalten Sie diese Datensätze über die Anmelde-, Einladungs- und Sicherheitsabläufe Ihres Authentifizierungsanbieters.",
|
|
307
|
+
},
|
|
283
308
|
},
|
|
284
309
|
kanban: {
|
|
285
310
|
addCard: "Karte hinzufügen",
|
|
@@ -1222,6 +1247,43 @@ const de = {
|
|
|
1222
1247
|
tenantHostHint: "Sie melden sich bei diesem Arbeitsbereich an",
|
|
1223
1248
|
},
|
|
1224
1249
|
},
|
|
1250
|
+
profile: {
|
|
1251
|
+
title: "Profil",
|
|
1252
|
+
subtitle: "Verwalten Sie Ihre Kontoeinstellungen",
|
|
1253
|
+
saving: "Speichern…",
|
|
1254
|
+
avatar: {
|
|
1255
|
+
upload: "Hochladen",
|
|
1256
|
+
replace: "Ersetzen",
|
|
1257
|
+
remove: "Entfernen",
|
|
1258
|
+
},
|
|
1259
|
+
info: {
|
|
1260
|
+
title: "Persönliche Informationen",
|
|
1261
|
+
description: "Aktualisieren Sie Ihren Namen und sehen Sie Ihre Kontodetails ein",
|
|
1262
|
+
saved: "Profil erfolgreich aktualisiert.",
|
|
1263
|
+
name: "Name",
|
|
1264
|
+
email: "E-Mail",
|
|
1265
|
+
emailImmutable: "Die E-Mail-Adresse kann nicht geändert werden.",
|
|
1266
|
+
role: "Rolle",
|
|
1267
|
+
save: "Änderungen speichern",
|
|
1268
|
+
},
|
|
1269
|
+
password: {
|
|
1270
|
+
changeTitle: "Passwort ändern",
|
|
1271
|
+
setTitle: "Lokales Passwort festlegen",
|
|
1272
|
+
changeDescription: "Aktualisieren Sie das Passwort, mit dem Sie sich in dieser Umgebung anmelden.",
|
|
1273
|
+
setDescription: "Sie haben sich per Single Sign-On angemeldet. Legen Sie ein lokales Passwort fest, um sich in dieser Umgebung auch mit E-Mail und Passwort anmelden zu können.",
|
|
1274
|
+
current: "Aktuelles Passwort",
|
|
1275
|
+
new: "Neues Passwort",
|
|
1276
|
+
password: "Passwort",
|
|
1277
|
+
confirm: "Passwort bestätigen",
|
|
1278
|
+
tooShort: "Das Passwort muss mindestens 8 Zeichen lang sein",
|
|
1279
|
+
mismatch: "Die Passwörter stimmen nicht überein",
|
|
1280
|
+
enterCurrent: "Geben Sie Ihr aktuelles Passwort ein",
|
|
1281
|
+
changed: "Passwort geändert.",
|
|
1282
|
+
localSet: "Lokales Passwort festgelegt. Sie können sich in dieser Umgebung jetzt auch mit E-Mail und Passwort anmelden.",
|
|
1283
|
+
changeAction: "Passwort ändern",
|
|
1284
|
+
setAction: "Passwort festlegen",
|
|
1285
|
+
},
|
|
1286
|
+
},
|
|
1225
1287
|
errors: {
|
|
1226
1288
|
networkError: "Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.",
|
|
1227
1289
|
serverError: "Serverfehler. Bitte versuchen Sie es später erneut.",
|
package/dist/locales/en.d.ts
CHANGED
|
@@ -330,6 +330,10 @@ declare const en: {
|
|
|
330
330
|
readonly title: "No users yet";
|
|
331
331
|
readonly message: "User accounts are provisioned by the authentication provider, not created here. Invite teammates to your organization and they appear automatically on first sign-in (SSO just-in-time provisioning). App end-users arrive when they sign up through your app.";
|
|
332
332
|
};
|
|
333
|
+
readonly betterAuthTeam: {
|
|
334
|
+
readonly title: "No teams yet";
|
|
335
|
+
readonly message: "Teams group members within an organization. Create one with “Create Team”, or they arrive through your auth provider’s organization and SSO provisioning flows.";
|
|
336
|
+
};
|
|
333
337
|
};
|
|
334
338
|
readonly showAll: "Show all";
|
|
335
339
|
readonly pullToRefresh: "Pull to refresh";
|
|
@@ -347,6 +351,28 @@ declare const en: {
|
|
|
347
351
|
readonly inlineEditLabel: "Edit records inline (click a cell to edit)";
|
|
348
352
|
readonly recordEditingTitle: "Record editing";
|
|
349
353
|
};
|
|
354
|
+
readonly managedByBadge: {
|
|
355
|
+
readonly config: {
|
|
356
|
+
readonly short: "Admin config";
|
|
357
|
+
readonly title: "Administrator configuration";
|
|
358
|
+
readonly body: "These rows define how the platform behaves at runtime. Author them here; the runtime data they produce lives in a separate table.";
|
|
359
|
+
};
|
|
360
|
+
readonly system: {
|
|
361
|
+
readonly short: "System-managed";
|
|
362
|
+
readonly title: "Managed by the platform";
|
|
363
|
+
readonly body: "Rows here are created automatically when actions run on the source record. The list below is a read-only monitoring surface — row-level actions (Approve, Recall, Resend, …) live on each row.";
|
|
364
|
+
};
|
|
365
|
+
readonly appendOnly: {
|
|
366
|
+
readonly short: "Read-only · Audit log";
|
|
367
|
+
readonly title: "Read-only historical record";
|
|
368
|
+
readonly body: "Immutable audit log. Rows cannot be created, edited, or deleted from the UI — they're written by the platform when events occur. Use Export to download for compliance review.";
|
|
369
|
+
};
|
|
370
|
+
readonly betterAuth: {
|
|
371
|
+
readonly short: "Identity";
|
|
372
|
+
readonly title: "Managed by the identity provider";
|
|
373
|
+
readonly body: "This object's schema is owned by {{provider}}. Direct edits bypass password hashing, session validation, two-factor checks, and audit hooks. Manage these records through your authentication provider's sign-in, invitation, and security flows instead.";
|
|
374
|
+
};
|
|
375
|
+
};
|
|
350
376
|
readonly kanban: {
|
|
351
377
|
readonly addCard: "Add card";
|
|
352
378
|
readonly addColumn: "Add column";
|
|
@@ -406,7 +432,7 @@ declare const en: {
|
|
|
406
432
|
readonly row: {
|
|
407
433
|
readonly expand: "Expand";
|
|
408
434
|
readonly collapse: "Collapse";
|
|
409
|
-
readonly
|
|
435
|
+
readonly open: "Open details";
|
|
410
436
|
};
|
|
411
437
|
readonly aria: {
|
|
412
438
|
readonly taskList: "Task list";
|
|
@@ -422,6 +448,25 @@ declare const en: {
|
|
|
422
448
|
readonly addSuccessor: "Add successor…";
|
|
423
449
|
readonly removeDependency: "Remove dependency";
|
|
424
450
|
readonly noCandidates: "No available tasks";
|
|
451
|
+
readonly searchTasks: "Search tasks…";
|
|
452
|
+
readonly qrcode: "Mobile QR code";
|
|
453
|
+
};
|
|
454
|
+
readonly qr: {
|
|
455
|
+
readonly title: "Open on mobile";
|
|
456
|
+
readonly hint: "Scan with a phone to open the details";
|
|
457
|
+
readonly copy: "Copy link";
|
|
458
|
+
readonly copied: "Copied";
|
|
459
|
+
readonly close: "Close";
|
|
460
|
+
};
|
|
461
|
+
readonly delete: {
|
|
462
|
+
readonly title: "Delete this task?";
|
|
463
|
+
readonly body: "\"{{title}}\" will be permanently removed. This action cannot be undone.";
|
|
464
|
+
readonly cancel: "Cancel";
|
|
465
|
+
readonly confirm: "Delete";
|
|
466
|
+
readonly deleting: "Deleting…";
|
|
467
|
+
};
|
|
468
|
+
readonly drawer: {
|
|
469
|
+
readonly fallbackTitle: "Task Details";
|
|
425
470
|
};
|
|
426
471
|
readonly linkType: {
|
|
427
472
|
readonly fs: "Finish → Start";
|
|
@@ -443,6 +488,8 @@ declare const en: {
|
|
|
443
488
|
};
|
|
444
489
|
readonly readOnly: "Read-only";
|
|
445
490
|
readonly readOnlyHint: "Editing is disabled for this view.";
|
|
491
|
+
readonly lockedHint: "No edit permission";
|
|
492
|
+
readonly writeFailed: "Save failed — the change was rolled back";
|
|
446
493
|
};
|
|
447
494
|
readonly view: {
|
|
448
495
|
readonly editViewConfig: "Edit view config";
|
|
@@ -482,6 +529,7 @@ declare const en: {
|
|
|
482
529
|
readonly saveChanges: "Save changes";
|
|
483
530
|
readonly saving: "Saving…";
|
|
484
531
|
readonly editFieldsInline: "Edit fields";
|
|
532
|
+
readonly editInlineHint: "Double-click to edit";
|
|
485
533
|
readonly lockedByApproval: "Locked for approval";
|
|
486
534
|
readonly lockedTooltip: "This record has a pending approval request; editing is locked";
|
|
487
535
|
readonly cancelApproval: "Recall approval";
|
|
@@ -1194,6 +1242,7 @@ declare const en: {
|
|
|
1194
1242
|
readonly seedWarn: "Published, but some sample data failed to load.";
|
|
1195
1243
|
readonly openBuiltApp: "Open app";
|
|
1196
1244
|
readonly previewDraft: "Preview";
|
|
1245
|
+
readonly previewApp: "Preview app";
|
|
1197
1246
|
readonly resizeSplit: "Resize chat and preview";
|
|
1198
1247
|
readonly hideChats: "Hide chats";
|
|
1199
1248
|
readonly showChats: "Show chats";
|
|
@@ -1258,6 +1307,22 @@ declare const en: {
|
|
|
1258
1307
|
readonly noAccessTitle: "Access denied";
|
|
1259
1308
|
readonly noAccess: "You do not have permission to view this data.";
|
|
1260
1309
|
};
|
|
1310
|
+
readonly identityImport: {
|
|
1311
|
+
readonly policyTitle: "Sign-in setup for imported users";
|
|
1312
|
+
readonly policy: {
|
|
1313
|
+
readonly none: "No password (recommended)";
|
|
1314
|
+
readonly invite: "Send invitations";
|
|
1315
|
+
readonly temporary: "Temporary passwords";
|
|
1316
|
+
};
|
|
1317
|
+
readonly policyHint: {
|
|
1318
|
+
readonly none: "Users first sign in with a phone OTP, magic link, or password-reset link, then set their own password.";
|
|
1319
|
+
readonly invite: "Each created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service.";
|
|
1320
|
+
readonly temporary: "For deployments without email/SMS: each created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.";
|
|
1321
|
+
};
|
|
1322
|
+
readonly passwordsNote: "Temporary passwords — shown once, never stored. Save them now; each user must change theirs at first sign-in.";
|
|
1323
|
+
readonly passwordsMore: "More entries omitted — use the download.";
|
|
1324
|
+
readonly passwordsDownload: "Download CSV";
|
|
1325
|
+
};
|
|
1261
1326
|
readonly objectView: {
|
|
1262
1327
|
readonly objectNotFound: "Object Not Found";
|
|
1263
1328
|
readonly objectNotFoundDescription: "The object \"{{objectName}}\" does not exist in the current configuration.";
|
|
@@ -1486,6 +1551,7 @@ declare const en: {
|
|
|
1486
1551
|
readonly errors: {
|
|
1487
1552
|
readonly invalidCredentials: "Invalid email or password. Please try again.";
|
|
1488
1553
|
readonly emailNotVerified: "Please verify your email address before signing in.";
|
|
1554
|
+
readonly oauthCallbackFailed: "Single sign-on could not be completed — the sign-in link expired or was already used. Please try again.";
|
|
1489
1555
|
};
|
|
1490
1556
|
};
|
|
1491
1557
|
readonly register: {
|
|
@@ -1610,6 +1676,43 @@ declare const en: {
|
|
|
1610
1676
|
readonly tenantHostHint: "You are signing in to this workspace";
|
|
1611
1677
|
};
|
|
1612
1678
|
};
|
|
1679
|
+
readonly profile: {
|
|
1680
|
+
readonly title: "Profile";
|
|
1681
|
+
readonly subtitle: "Manage your account settings";
|
|
1682
|
+
readonly saving: "Saving…";
|
|
1683
|
+
readonly avatar: {
|
|
1684
|
+
readonly upload: "Upload";
|
|
1685
|
+
readonly replace: "Replace";
|
|
1686
|
+
readonly remove: "Remove";
|
|
1687
|
+
};
|
|
1688
|
+
readonly info: {
|
|
1689
|
+
readonly title: "Personal Information";
|
|
1690
|
+
readonly description: "Update your name and view account details";
|
|
1691
|
+
readonly saved: "Profile updated successfully.";
|
|
1692
|
+
readonly name: "Name";
|
|
1693
|
+
readonly email: "Email";
|
|
1694
|
+
readonly emailImmutable: "Email cannot be changed.";
|
|
1695
|
+
readonly role: "Role";
|
|
1696
|
+
readonly save: "Save Changes";
|
|
1697
|
+
};
|
|
1698
|
+
readonly password: {
|
|
1699
|
+
readonly changeTitle: "Change Password";
|
|
1700
|
+
readonly setTitle: "Set Local Password";
|
|
1701
|
+
readonly changeDescription: "Update the password you use to sign in to this environment.";
|
|
1702
|
+
readonly setDescription: "You signed in via single sign-on. Set a local password to also sign in with email and password on this environment.";
|
|
1703
|
+
readonly current: "Current password";
|
|
1704
|
+
readonly new: "New password";
|
|
1705
|
+
readonly password: "Password";
|
|
1706
|
+
readonly confirm: "Confirm password";
|
|
1707
|
+
readonly tooShort: "Password must be at least 8 characters";
|
|
1708
|
+
readonly mismatch: "Passwords do not match";
|
|
1709
|
+
readonly enterCurrent: "Enter your current password";
|
|
1710
|
+
readonly changed: "Password changed.";
|
|
1711
|
+
readonly localSet: "Local password set. You can now sign in with email and password on this environment.";
|
|
1712
|
+
readonly changeAction: "Change password";
|
|
1713
|
+
readonly setAction: "Set password";
|
|
1714
|
+
};
|
|
1715
|
+
};
|
|
1613
1716
|
readonly errors: {
|
|
1614
1717
|
readonly networkError: "Network error. Please check your connection.";
|
|
1615
1718
|
readonly serverError: "Server error. Please try again later.";
|
|
@@ -1935,6 +2038,8 @@ declare const en: {
|
|
|
1935
2038
|
readonly deleteFailed: "Failed to delete {{label}}";
|
|
1936
2039
|
readonly noRecordId: "No record ID provided";
|
|
1937
2040
|
readonly deleteConfirm: "Are you sure you want to delete this record?";
|
|
2041
|
+
readonly resetPackageSetConfirm: string;
|
|
2042
|
+
readonly resetPackageSetSuccess: "Permission set reset to its shipped baseline";
|
|
1938
2043
|
readonly bulkDeleteSuccess: "Deleted {{count}} {{label}} records";
|
|
1939
2044
|
readonly bulkDeletePartial: "{{succeeded}} deleted, {{failed}} failed";
|
|
1940
2045
|
};
|