Repository navigation
Expand file tree
/
Copy pathde.objects.generated.ts
More file actions
413 lines (410 loc) · 13.9 KB
/
Copy pathde.objects.generated.ts
File metadata and controls
413 lines (410 loc) · 13.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
/**
* Auto-generated by 'os i18n extract' for locale 'de'.
* Edit translations in place; re-run extract (with --merge) to fill new gaps.
* Do not hand-edit the structure — only the leaf string values.
* Merge only fills gaps: correcting a source label/description does not
* push the correction into a leaf here that already holds a translation —
* a present-but-stale string is not a gap, so it is left as-is. Re-translate
* it by hand when its source changes; nothing here or in `os i18n check`
* tells a leaf a translator updated on purpose from one nobody has looked
* at since the source moved.
*/
import type { TranslationData } from '@objectstack/spec/system';
export const deObjects: NonNullable<TranslationData['objects']> = {
sys_record_share: {
label: "Datensatzfreigabe",
pluralLabel: "Datensatzfreigaben",
description: "Über den Eigentümer hinaus geteilte Datensätze, eine Zeile pro Gewährung.",
fields: {
id: {
label: "Freigabe-ID"
},
object_name: {
label: "Objekt",
help: "Kurzer Objektname des geteilten Datensatzes"
},
record_id: {
label: "Datensatz",
help: "Primärschlüssel des geteilten Datensatzes in object_name"
},
recipient_type: {
label: "Empfängertyp",
help: "Art des Prinzipals, der die Gewährung hält",
options: {
user: "Benutzer",
group: "Gruppe",
position: "Position",
unit_and_subordinates: "Geschäftsbereich und untergeordnete"
}
},
recipient_id: {
label: "Empfänger",
help: "ID des Benutzers, der Gruppe oder der Position, die Zugriff erhält"
},
access_level: {
label: "Zugriffsebene",
help: "Was der Empfänger tun kann — lesen oder lesen und bearbeiten",
options: {
read: "Lesen",
edit: "Lesen und Bearbeiten"
}
},
source: {
label: "Quelle",
help: "Warum diese Gewährung besteht — vom Regelauswerter zum Abgleich genutzt",
options: {
manual: "Manuell",
rule: "Regel",
team: "Team",
inherited: "Geerbt"
}
},
source_id: {
label: "Quell-ID",
help: "Regelname / Team-ID, wenn source != manual"
},
granted_by: {
label: "Gewährt von",
help: "Benutzer, der die Gewährung erstellt hat (nur manuell)"
},
reason: {
label: "Grund",
help: "Optionale Freitext-Erklärung, die dem Empfänger angezeigt wird"
},
created_at: {
label: "Erstellt am"
},
updated_at: {
label: "Aktualisiert am"
}
},
_views: {
all_shares: {
label: "Alle"
},
granted_to_me: {
label: "Mir gewährt"
},
granted_by_me: {
label: "Von mir gewährt"
},
by_object: {
label: "Nach Objekt"
},
manual_grants: {
label: "Manuelle Gewährungen"
},
rule_grants: {
label: "Regelgewährungen"
}
}
},
sys_sharing_rule: {
label: "Freigaberegel",
pluralLabel: "Freigaberegeln",
description: "Gibt einer Gruppe von Personen Zugriff auf die Datensätze, die eine Bedingung erfüllen.",
fields: {
id: {
label: "Regel-ID"
},
organization_id: {
label: "Organisation",
help: "Die Organisation, zu der diese Regel gehört."
},
name: {
label: "Name",
help: "Kennzeichnet die Regel. Nur Kleinbuchstaben, Ziffern und Unterstriche."
},
label: {
label: "Anzeigebezeichnung"
},
description: {
label: "Beschreibung"
},
object_name: {
label: "Objekt",
help: "Das Objekt, dessen Datensätze diese Regel teilt."
},
criteria_json: {
label: "Kriterien",
help: "Welche Datensätze geteilt werden. Pflicht — eine Regel muss die geteilten Datensätze eingrenzen, daher gibt es keine Einstellung „alle Datensätze teilen“."
},
recipient_type: {
label: "Empfängertyp",
help: "Wer Zugriff erhält. Wählen Sie ein Team, einen Geschäftsbereich, eine Position oder eine Warteschlange, erhält jede Person darin Zugriff. „Geschäftsbereich und untergeordnete“ umfasst zusätzlich jeden Bereich unter dem gewählten. „Feld“ teilt jeden Datensatz mit dem oder den Benutzern, die in einem seiner eigenen Felder stehen — geben Sie dieses Feld als Empfänger an.",
options: {
user: "Benutzer",
team: "Team",
business_unit: "Geschäftsbereich",
position: "Position",
unit_and_subordinates: "Geschäftsbereich und untergeordnete",
queue: "Warteschlange",
field: "Feld"
}
},
recipient_id: {
label: "Empfänger",
help: "Der konkrete Benutzer, das Team, der Geschäftsbereich, die Position oder die Warteschlange, die Zugriff erhält — oder beim Empfängertyp „Feld“ der Name des Datensatzfelds, das den oder die Benutzer zum Teilen enthält."
},
access_level: {
label: "Zugriffsebene",
help: "Was die Empfänger mit den passenden Datensätzen tun dürfen — sie lesen oder lesen und bearbeiten.",
options: {
read: "Lesen",
edit: "Lesen und Bearbeiten"
}
},
active: {
label: "Aktiv",
help: "Ausschalten, um den von dieser Regel gewährten Zugriff zu entziehen, ohne die Regel zu löschen."
},
managed_by: {
label: "Verwaltet von",
help: "Woher diese Regel stammt: in die Plattform integriert, mit einer App installiert oder hier im Setup erstellt.",
options: {
platform: "Plattform",
package: "Paket",
admin: "Administrator"
}
},
customized: {
label: "Angepasst",
help: "Wird gesetzt, sobald Sie eine mit einer App gelieferte Regel bearbeiten, damit Ihre Änderungen bei einem App-Update erhalten bleiben."
},
created_at: {
label: "Erstellt am"
},
updated_at: {
label: "Aktualisiert am"
}
},
_views: {
active: {
label: "Aktiv"
},
inactive: {
label: "Inaktiv"
},
by_object: {
label: "Nach Objekt"
},
all_rules: {
label: "Alle"
}
}
},
sys_share_link: {
label: "Freigabelink",
pluralLabel: "Freigabelinks",
description: "Undurchsichtiges Berechtigungstoken für den Zugriff auf einen einzelnen Datensatz. Öffentliche Linkfreigabe im Stil von Notion/Figma.",
fields: {
id: {
label: "Link-ID"
},
token: {
label: "Token",
help: "Undurchsichtiges, URL-sicheres Zufallstoken (≥ 22 Zeichen). Das einzige Geheimnis in dieser Zeile."
},
object_name: {
label: "Objekt",
help: "Kurzer Objektname des geteilten Datensatzes (z. B. ai_conversation, contracts_contract)"
},
record_id: {
label: "Datensatz",
help: "Primärschlüssel des geteilten Datensatzes in object_name"
},
permission: {
label: "Berechtigung",
help: "Was der Linkinhaber mit dem Datensatz tun kann",
options: {
view: "Ansehen",
comment: "Kommentieren",
edit: "Bearbeiten"
}
},
audience: {
label: "Zielgruppe",
help: "Zugangsschicht, die zusätzlich zur Tokenprüfung gilt",
options: {
public: "Öffentlich (indexierbar)",
link_only: "Alle mit dem Link",
signed_in: "Angemeldete Benutzer",
email: "Bestimmte E-Mail-Adressen"
}
},
expires_at: {
label: "Läuft ab am",
help: "Wenn gesetzt, gibt resolveToken nach diesem Zeitpunkt null zurück"
},
email_allowlist: {
label: "E-Mail-Positivliste",
help: "Kleingeschriebene Adressen, geprüft bei audience=email"
},
password_hash: {
label: "Passwort-Hash",
help: "Argon2/bcrypt-Hash. Wenn gesetzt, fragt die Oberfläche vor der Anzeige nach einem Passwort."
},
redact_fields: {
label: "Schwärzungen pro Link",
help: "Zusätzliche Felder, die über den Standardsatz des Objekts hinaus aus der Antwort entfernt werden"
},
label: {
label: "Bezeichnung",
help: "Freitext im Freigabedialog (z. B. „ACME-Vertrag Q3“)"
},
revoked_at: {
label: "Widerrufen am",
help: "Wenn gesetzt, ist der Link dauerhaft deaktiviert"
},
created_by: {
label: "Erstellt von",
help: "Aussteller des Links"
},
created_at: {
label: "Erstellt am"
},
last_used_at: {
label: "Zuletzt verwendet",
help: "Von resolveToken gestempelt; das Dashboard hebt damit aktive Links hervor"
},
use_count: {
label: "Nutzungszähler",
help: "Wird von resolveToken bei jeder erfolgreichen Auflösung erhöht"
}
},
_views: {
active_links: {
label: "Aktiv"
},
by_me: {
label: "Von mir erstellt"
},
revoked: {
label: "Widerrufen"
},
all_links: {
label: "Alle"
}
}
},
sys_queue: {
label: "Warteschlange",
pluralLabel: "Warteschlangen",
description: "Eine benannte Gruppe von Personen, in der nicht zugewiesene Datensätze warten, bis eine davon sie übernimmt.",
fields: {
name: {
label: "Name",
help: "Kennzeichnet die Warteschlange überall, wo sie verwendet wird — an Datensätzen, in Zuweisungsregeln, Genehmigungen und Freigaberegeln. Nur Kleinbuchstaben, Ziffern und Unterstriche."
},
label: {
label: "Anzeigebezeichnung"
},
description: {
label: "Beschreibung"
}
},
_views: {
all_queues: {
label: "Alle"
}
}
},
sys_queue_member: {
label: "Warteschlangenmitglied",
pluralLabel: "Warteschlangenmitglieder",
description: "Wer zu einer Warteschlange gehört: ein Benutzer, ein Team, eine Position oder ein Geschäftsbereich.",
fields: {
queue: {
label: "Warteschlange",
help: "Der Name der Warteschlange, zu der dieses Mitglied gehört."
},
recipient_type: {
label: "Mitgliedstyp",
help: "Welche Art Mitglied dies ist. Ein Team, eine Position oder ein Geschäftsbereich macht jede Person darin zum Mitglied. „Geschäftsbereich und untergeordnete“ umfasst zusätzlich jeden Bereich unter dem gewählten.",
options: {
user: "Benutzer",
team: "Team",
position: "Position",
business_unit: "Geschäftsbereich",
unit_and_subordinates: "Geschäftsbereich und untergeordnete"
}
},
recipient_id: {
label: "Mitglied",
help: "Der konkrete Benutzer, das Team, die Position oder der Geschäftsbereich."
}
},
_views: {
by_queue: {
label: "Nach Warteschlange"
}
}
},
sys_assignment_rule: {
label: "Zuweisungsregel",
pluralLabel: "Zuweisungsregeln",
description: "Sendet jeden neuen Datensatz, der eine Bedingung erfüllt, an eine Warteschlange oder an eine Person.",
fields: {
organization_id: {
label: "Organisation",
help: "Die Organisation, zu der diese Regel gehört."
},
name: {
label: "Name",
help: "Kennzeichnet die Regel. Nur Kleinbuchstaben, Ziffern und Unterstriche, und nicht der Name einer Regel, die eine installierte App bereitstellt."
},
label: {
label: "Anzeigebezeichnung"
},
description: {
label: "Beschreibung"
},
object_name: {
label: "Objekt",
help: "Das Objekt, dessen neue Datensätze diese Regel weiterleitet. Zuweisen lassen sich nur Objekte, deren Datensätze einen Besitzer haben."
},
criteria: {
label: "Bedingung",
help: "Welche neuen Datensätze diese Regel übernimmt; leer lassen, um jeden neuen Datensatz zu übernehmen, den keine frühere Regel übernommen hat. Geschrieben als Ausdruck über den Datensatz, zum Beispiel record.priority == \"high\"."
},
sort_order: {
label: "Reihenfolge",
help: "Wenn mehrere Ihrer Regeln denselben Datensatz übernehmen könnten, wird die mit der niedrigsten Reihenfolge zuerst versucht. Ihre Regeln werden immer vor den Regeln installierter Apps versucht."
},
recipient_type: {
label: "Zuweisen an",
help: "Sendet den Datensatz an eine Warteschlange, aus der ihre Mitglieder ihn übernehmen können, oder direkt an eine Person.",
options: {
queue: "Warteschlange",
user: "Benutzer"
}
},
recipient_id: {
label: "Warteschlange oder Benutzer",
help: "Die Warteschlange oder die Person, an die der Datensatz geht. Eine Person muss ein aktives Mitglied dieser Organisation sein."
},
strategy: {
label: "Mitglied auswählen",
help: "Für eine Warteschlange: gibt den Datensatz direkt einem Mitglied, reihum oder dem Mitglied mit der wenigsten offenen Arbeit. Leer lassen, damit der Datensatz in der Warteschlange bleibt, bis ein Mitglied ihn übernimmt.",
options: {
round_robin: "Reihum",
least_loaded: "Geringste Auslastung"
}
},
load: {
label: "Offene Arbeit",
help: "Erforderlich bei „Geringste Auslastung“: welche Datensätze als offene Arbeit eines Mitglieds zählen, geschrieben als Ausdruck über den Datensatz, zum Beispiel record.status != \"closed\"."
},
active: {
label: "Aktiv",
help: "Ausschalten, damit diese Regel keine neuen Datensätze mehr zuweist, ohne sie zu löschen."
}
},
_views: {
by_object: {
label: "Nach Objekt"
}
}
}
};