@cosmicdrift/kumiko-locale-de 0.333.0 → 0.335.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-locale-de",
3
- "version": "0.333.0",
3
+ "version": "0.335.0",
4
4
  "description": "German UI and mail copy for Kumiko framework screens. Opt in by mounting localeDe() + localeDeClient().",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -28,7 +28,7 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@cosmicdrift/kumiko-framework": "0.333.0"
31
+ "@cosmicdrift/kumiko-framework": "0.335.0"
32
32
  },
33
33
  "publishConfig": {
34
34
  "registry": "https://registry.npmjs.org",
@@ -104,6 +104,7 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
104
104
  "auth.login.resendError": "Could not send. Please try again.",
105
105
  "auth.login.resendRateLimited": "Please wait a moment and try again.",
106
106
  "auth.login.resendSuccess": "We've sent you a new verification email.",
107
+ "auth.login.sessionEnded": "Your session has ended. Please sign in again.",
107
108
  "auth.login.resendVerification": "Send verification email again",
108
109
  "auth.login.submit": "Sign in",
109
110
  "auth.login.submitting": "…",
@@ -229,6 +230,7 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
229
230
  "Too many requests in a short time. Please wait a moment and try again.",
230
231
  "auth.sessionBootstrap.retry": "Try again",
231
232
  "auth.sessionBootstrap.retrying": "Retrying…",
233
+ "auth.sessionBootstrap.signOut": "Sign out",
232
234
  "auth.signup.email": "Email",
233
235
  "auth.signup.haveAccount": "Already have an account? Sign in",
234
236
  "auth.signup.intro": "Enter your email. We'll send you an activation link to set your password.",
@@ -324,6 +326,9 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
324
326
  "cap-counter:nav.cap-list": "Caps",
325
327
  "cap-overview.cards.empty": "No caps configured for this tenant.",
326
328
  "cap-overview.cards.loading": "Loading usage…",
329
+ "cap-overview.errors.filterFieldUnsupported":
330
+ "Filtering by this field is not supported, or tier was filtered more than once.",
331
+ "cap-overview.errors.invalidCursor": "The pagination cursor is invalid.",
327
332
  "cap-overview.errors.progressPrimitiveMissing":
328
333
  "Usage bar unavailable — Progress primitive is not registered.",
329
334
  "cap-overview.errors.sortFieldUnsupported": "Sorting by this field is not supported.",
@@ -337,6 +342,7 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
337
342
  "cap-overview.list.filter.tier": "Tier",
338
343
  "cap-overview.notMeasured": "Not measured yet",
339
344
  "cap-overview.platform.filter.tenant": "Tenant",
345
+ "cap-overview.unlimited": "{used} · unlimited",
340
346
  "compliance-profiles:entity:__action-form__:field:profileKey": "Compliance profile",
341
347
  "compliance-profiles:entity:__action-form__:field:profileKey:option:de-hr-dsgvo-hgb":
342
348
  "Deutschland HR — DSGVO + HGB + Personalakten",
@@ -354,19 +360,29 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
354
360
  "config.errors.unknownKey": "Unknown configuration key.",
355
361
  "config.secret.file-provider-s3.s3-secret-access-key.hint":
356
362
  "Private half of the S3 key pair. Hetzner calls it 'Secret Key', AWS calls it 'Secret Access Key'.",
357
- "config.secret.file-provider-s3.s3-secret-access-key.label": "S3 Secret Access Key",
363
+ "config.secret.file-provider-s3.s3-secret-access-key.label": "S3 secret access key",
358
364
  "config.secret.mail-transport-smtp.smtp-password.hint":
359
365
  "Login password at the SMTP server. Brevo/Postmark/SES call it 'API key' or 'SMTP credentials'.",
360
366
  "config.secret.mail-transport-smtp.smtp-password.label": "SMTP password",
361
- "config.secrets.delete": "Delete",
367
+ "config.secrets.delete": "Remove",
368
+ "config.secrets.description": "Stored encrypted. Saved values are never shown again.",
369
+ "config.secrets.deleteConfirm":
370
+ "Remove this secret? Anything using it stops working, and it cannot be restored.",
362
371
  "config.secrets.notSet": "Not set",
363
372
  "config.secrets.placeholder": "Enter a value",
364
- "config.secrets.replacePlaceholder": "Enter a new value to replace",
365
- "config.secrets.required": "Required",
373
+ "config.secrets.replacePlaceholder": "Enter a new value to replace it",
374
+ "config.secrets.saved": "Saved",
375
+ "config.secrets.section": "Secrets",
366
376
  "config.secrets.set": "Set",
377
+ "config.secrets.stored": "Stored: {preview}",
367
378
  "config.secrets.title": "Secrets",
368
- "config.settings.extensionSelectorHint":
369
- "Save the provider selection to show its settings below.",
379
+ "config.settings.audience.system": "Applies to every tenant unless a tenant sets its own value.",
380
+ "config.settings.audience.tenant":
381
+ "Applies to everyone in this tenant. Platform defaults are shown where nothing is set here.",
382
+ "config.settings.audience.user": "Only applies to you.",
383
+ "config.settings.extensionSelectorHint": "Choose a provider and save. Its settings appear below.",
384
+ "config.settings.provider": "Provider",
385
+ "config.settings.saveProvider": "Save provider",
370
386
  "config.settings.system": "Platform",
371
387
  "config.settings.tenant": "Tenant",
372
388
  "config.settings.title": "Settings",
@@ -409,6 +425,8 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
409
425
  "errors.validation.not_multiple_of": "Must be a multiple of {divisor}.",
410
426
  "errors.validation.out_of_bounds": "Value out of allowed range.",
411
427
  "errors.validation.too_big": "Too big or too long (maximum: {maximum}).",
428
+ "kumiko.validation.number.min": "Must be at least {minimum}.",
429
+ "kumiko.validation.number.max": "Must be {maximum} or less.",
412
430
  "errors.validation.too_small": "Too small or too short (minimum: {minimum}).",
413
431
  "errors.validation.unexpected_field": "Unknown field.",
414
432
  "errors.validation.unrecognized_keys": "Unknown fields.",
@@ -505,6 +523,7 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
505
523
  "kumiko.actions.finish": "Finish",
506
524
  "kumiko.actions.next": "Next",
507
525
  "kumiko.actions.reload": "Reload",
526
+ "kumiko.actions.retry": "Try again",
508
527
  "kumiko.actions.save": "Save",
509
528
  "kumiko.actions.view": "View",
510
529
  "kumiko.aiText.acceptHint": "Tab = accept, Esc = discard",
@@ -528,16 +547,30 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
528
547
  "kumiko.combobox.loading": "Loading…",
529
548
  "kumiko.combobox.placeholder": "—",
530
549
  "kumiko.combobox.search-placeholder": "Search…",
531
- "kumiko.config.cascade.activeMarker": "active",
532
- "kumiko.config.cascade.noValue": "No value set",
533
- "kumiko.config.cascade.resetTo": "Reset override ({scope})",
550
+ "kumiko.config.cascade.activeMarker": "in use",
551
+ "kumiko.config.cascade.hideLevels": "Hide levels",
552
+ "kumiko.config.cascade.noDefault": "not set",
553
+ "kumiko.config.cascade.noValue": "Not set",
554
+ "kumiko.config.cascade.notSetRequired": "Not set. Required.",
555
+ "kumiko.config.cascade.off": "Off",
556
+ "kumiko.config.cascade.on": "On",
557
+ "kumiko.config.cascade.origin.default": "Uses the default",
558
+ "kumiko.config.cascade.origin.system": "Set for the platform. App default is {value}.",
559
+ "kumiko.config.cascade.origin.tenant": "Set for this tenant. Default is {value}.",
560
+ "kumiko.config.cascade.origin.user": "Set by you. Default is {value}.",
561
+ "kumiko.config.cascade.originNoDefault.tenant": "Set for this tenant.",
562
+ "kumiko.config.cascade.originNoDefault.user": "Set by you.",
563
+ "kumiko.config.cascade.originNoDefault.system": "Set for the platform.",
564
+ "kumiko.config.cascade.resetTo": "Reset to default",
565
+ "kumiko.config.cascade.resetToApp": "Reset to app value",
566
+ "kumiko.config.cascade.showLevels": "Show all levels",
534
567
  "kumiko.config.source.appOverride": "App override",
535
568
  "kumiko.config.source.computed": "Computed",
536
569
  "kumiko.config.source.default": "Default",
537
570
  "kumiko.config.source.missing": "Missing",
538
- "kumiko.config.source.system": "System",
571
+ "kumiko.config.source.system": "Platform",
539
572
  "kumiko.config.source.tenant": "Tenant",
540
- "kumiko.config.source.user": "My value",
573
+ "kumiko.config.source.user": "Your value",
541
574
  "kumiko.contentEditor.bold": "Bold",
542
575
  "kumiko.contentEditor.bulletList": "Bullet list",
543
576
  "kumiko.contentEditor.editMode": "Edit",
@@ -586,8 +619,14 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
586
619
  "kumiko.field.time": "Time",
587
620
  "kumiko.field.timezone": "Time zone",
588
621
  "kumiko.field.unsupported": "This field type can't be edited here yet.",
622
+ "kumiko.field.writeOnly.remove": "Remove stored value",
623
+ "kumiko.field.writeOnly.set": "Set",
624
+ "kumiko.field.writeOnly.setPlaceholder": "Set — leave empty to keep it",
625
+ "kumiko.field.writeOnly.undo": "Undo",
626
+ "kumiko.field.writeOnly.willRemove": "Removed on save",
589
627
  "kumiko.form.all-required": "All fields are required.",
590
628
  "kumiko.form.changed": "changed",
629
+ "kumiko.form.discard": "Discard",
591
630
  "kumiko.form.draft.resume-multiple":
592
631
  "Found multiple open drafts for this form. Which one do you want to resume?",
593
632
  "kumiko.form.draft.resume-single": "Found an open draft for this form. Do you want to resume it?",
@@ -596,7 +635,9 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
596
635
  "kumiko.form.error.version-conflict":
597
636
  "Record was modified in the meantime. Reload and try again.",
598
637
  "kumiko.form.extension.save-failed": "A custom field could not be saved.",
638
+ "kumiko.form.noUnsavedChanges": "No unsaved changes",
599
639
  "kumiko.form.on-this-page": "On this page",
640
+ "kumiko.form.saveChanges": "Save changes",
600
641
  "kumiko.form.unsaved.one": "1 unsaved change",
601
642
  "kumiko.form.unsaved.other": "{count} unsaved changes",
602
643
  "kumiko.list.count.noun": "{count} {noun}",
@@ -775,6 +816,9 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
775
816
  "profile.password.submit": "Change password",
776
817
  "profile.password.success": "Password changed.",
777
818
  "profile.password.title": "Password",
819
+ "rateLimiting.errors.bucketOutsideTenant":
820
+ "You can only inspect rate-limit buckets that belong to your own tenant or user.",
821
+ "rateLimiting.errors.resolverUnavailable": "Rate limiting is not available on this server.",
778
822
  "screen:api-token-create.title": "Create a new token",
779
823
  "screen:api-tokens.title": "Personal Access Tokens",
780
824
  "screen:audit-log-detail.title": "Event",
@@ -814,8 +858,8 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
814
858
  "screen:tenant-edit.title": "Edit tenant",
815
859
  "screen:tenant-list.title": "Tenants",
816
860
  "screen:tenant-overview.title": "Overview",
817
- "screen:tenant-settings-system.title": "Tenant Settings",
818
- "screen:tenant-settings-tenant.title": "Tenant Settings",
861
+ "screen:tenant-settings-system.title": "Tenant defaults",
862
+ "screen:tenant-settings-tenant.title": "Tenant settings",
819
863
  "screen:tier-admin.title": "Assign tier manually",
820
864
  "screen:toggle-admin.title": "Feature toggles",
821
865
  "screen:user-edit.title": "Edit user",
@@ -841,10 +885,10 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
841
885
  "sessions.mine.revokeAllOthers": "Sign out all other devices",
842
886
  "sessions.mine.revokeAllOthers.confirm": "Sign out every device except this one?",
843
887
  "sessions:nav.sessionList": "Sessions",
844
- "subscription-stripe.api-key": "Stripe API Key",
845
- "subscription-stripe.billing-live": "Stripe Billing Live",
888
+ "subscription-stripe.api-key": "Stripe API key",
889
+ "subscription-stripe.billing-live": "Live billing",
846
890
  "subscription-stripe.settings": "Stripe",
847
- "subscription-stripe.webhook-secret": "Stripe Webhook Secret",
891
+ "subscription-stripe.webhook-secret": "Stripe webhook secret",
848
892
  "tags.filter.clear": "Clear",
849
893
  "tags.filter.label": "Filter by tag",
850
894
  "tags.manage.cancel": "Cancel",
@@ -883,10 +927,11 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
883
927
  "template-resolver.editor.saved": "Saved.",
884
928
  "template-resolver.editor.saving": "Saving…",
885
929
  "template-resolver.editor.titleLabel": "Title",
886
- "tenant-settings.currency": "Default Currency",
887
- "tenant-settings.locale": "Default Locale",
888
- "tenant-settings.settings": "Tenant Settings",
889
- "tenant-settings.settings.system": "Tenant Settings (Platform Default)",
930
+ "tenant-settings.currency": "Default currency",
931
+ "tenant-settings.locale": "Default locale",
932
+ "tenant-settings.settings": "Tenant settings",
933
+ "tenant-settings.settings.section": "Currency and language",
934
+ "tenant-settings.settings.system": "Tenant defaults",
890
935
  "tenant.members.actions.editRoles": "Edit roles",
891
936
  "tenant.members.cancel": "Cancel invitation",
892
937
  "tenant.members.cancel.confirm": "Cancel this invitation? The invite link will stop working.",
@@ -914,6 +959,9 @@ export const frameworkEnCatalog: Readonly<Record<string, string>> = {
914
959
  "tenant:entity:__action-form__:field:roles:option:Admin": "Admin",
915
960
  "tenant:entity:__action-form__:field:roles:option:Editor": "Editor",
916
961
  "tenant:entity:__action-form__:field:roles:option:TenantAdmin": "Tenant Admin",
962
+ "tenant:entity:__action-form__:field:roles:option:TenantOwner": "Tenant Owner",
963
+ "tenant:entity:__action-form__:field:roles:option:DataProtectionOfficer":
964
+ "Data Protection Officer",
917
965
  "tenant:entity:__action-form__:field:roles:option:User": "User",
918
966
  "tenant:entity:__action-form__:field:userId": "User ID",
919
967
  "tenant:entity:tenant:field:isEnabled": "Enabled",
package/src/formal.ts CHANGED
@@ -24,6 +24,7 @@ export const localeDeFormalOverrides: Readonly<Record<string, string>> = {
24
24
  "Sie sind als {email} angemeldet. Klicken Sie auf „Annehmen“, um Mitglied zu werden.",
25
25
  "auth.login.resendRateLimited": "Bitte warten Sie kurz und versuchen Sie es erneut.",
26
26
  "auth.login.resendSuccess": "Wir haben Ihnen eine neue Bestätigungs-Mail geschickt.",
27
+ "auth.login.sessionEnded": "Ihre Sitzung wurde beendet. Bitte melden Sie sich erneut an.",
27
28
  "auth.mail.activation.ignore":
28
29
  "Falls Sie sich nicht registriert haben, können Sie diese E-Mail ignorieren. Es wird kein Account erstellt, solange Sie den Link nicht öffnen.",
29
30
  "auth.mail.activation.intro":
@@ -93,19 +94,25 @@ export const localeDeFormalOverrides: Readonly<Record<string, string>> = {
93
94
  "errors.rate_limited": "Zu viele Anfragen. Bitte versuchen Sie es in Kürze erneut.",
94
95
  "folders.section.createMode": "Speichern Sie zuerst den Eintrag, um einen Ordner zu wählen.",
95
96
  "gdpr.mail.deletionExecuted.intro":
96
- "Ihr {app}-Konto und die zugehoerigen personenbezogenen Daten wurden am {when} geloescht. Diese Aktion ist endgueltig.",
97
- "gdpr.mail.deletionExecuted.subject": "{app} — Ihr Konto wurde geloescht",
97
+ "Ihr {app}-Konto und die zugehörigen personenbezogenen Daten wurden am {when} gelöscht. Diese Aktion ist endgültig.",
98
+ "gdpr.mail.deletionExecuted.subject": "{app} — Ihr Konto wurde gelöscht",
98
99
  "gdpr.mail.deletionRequested.cancel":
99
- "Falls Sie das nicht angefordert haben, melden Sie sich an und brechen Sie die Loeschung in den Kontoeinstellungen ab, bevor die Frist ablaeuft.",
100
+ "Falls Sie das nicht angefordert haben, melden Sie sich an und brechen Sie die Löschung in den Kontoeinstellungen ab, bevor die Frist abläuft.",
100
101
  "gdpr.mail.deletionRequested.intro":
101
- "wir haben Ihren Antrag zur Loeschung Ihres {app}-Kontos erhalten. Ihr Konto und die zugehoerigen Daten werden am {when} endgueltig geloescht.",
102
- "gdpr.mail.deletionRequested.subject": "{app} — Loeschung Ihres Kontos angefordert",
102
+ "wir haben Ihren Antrag zur Löschung Ihres {app}-Kontos erhalten. Ihr Konto und die zugehörigen Daten werden am {when} endgültig gelöscht.",
103
+ "gdpr.mail.deletionRequested.subject": "{app} — Löschung Ihres Kontos angefordert",
103
104
  "gdpr.mail.exportFailed.intro":
104
- "Ihr angeforderter Datenexport fuer {app} konnte leider nicht erstellt werden. Bitte fordern Sie den Export erneut an.",
105
+ "Ihr angeforderter Datenexport für {app} konnte leider nicht erstellt werden. Bitte fordern Sie den Export erneut an.",
105
106
  "gdpr.mail.exportFailed.subject": "{app} — Ihr Datenexport ist fehlgeschlagen",
106
107
  "gdpr.mail.exportReady.intro":
107
- "Ihr angeforderter Datenexport fuer {app} ist fertig. Laden Sie ihn ueber den folgenden Link herunter:",
108
+ "Ihr angeforderter Datenexport für {app} ist fertig. Laden Sie ihn über den folgenden Link herunter:",
108
109
  "gdpr.mail.exportReady.subject": "{app} — Ihr Datenexport ist bereit",
110
+ "config.settings.audience.user": "Gilt nur für Sie.",
111
+ "config.settings.extensionSelectorHint":
112
+ "Wählen Sie einen Anbieter und speichern Sie. Seine Einstellungen erscheinen darunter.",
113
+ "kumiko.config.cascade.origin.user": "Von Ihnen gesetzt. Standard ist {value}.",
114
+ "kumiko.config.cascade.originNoDefault.user": "Von Ihnen gesetzt.",
115
+ "kumiko.config.source.user": "Ihr Wert",
109
116
  "kumiko.drawer.discard.body": "Ihre Eingaben in diesem Formular gehen verloren.",
110
117
  "kumiko.field.reference-created-no-id":
111
118
  "Der Eintrag wurde angelegt, aber nicht automatisch ausgewählt. Bitte wählen Sie ihn manuell aus.",
@@ -114,6 +121,8 @@ export const localeDeFormalOverrides: Readonly<Record<string, string>> = {
114
121
  "kumiko.form.draft.resume-single":
115
122
  "Ein offener Entwurf für dieses Formular gefunden. Möchten Sie ihn fortsetzen?",
116
123
  "notesHistory.section.createMode": "Speichern Sie zuerst den Eintrag, um Notizen anzulegen.",
124
+ "rateLimiting.errors.bucketOutsideTenant":
125
+ "Sie können nur Rate-Limit-Buckets Ihres eigenen Mandanten oder Benutzers einsehen.",
117
126
  "screen:my-sessions.title": "Ihre Sitzungen",
118
127
  "profile.danger.dialogDescription":
119
128
  "Nach Ablauf der Frist werden Ihre Daten endgültig gelöscht. Bis dahin können Sie die Löschung abbrechen.",
package/src/strings.ts CHANGED
@@ -110,6 +110,7 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
110
110
  "auth.login.resendRateLimited": "Bitte warte kurz und versuche es erneut.",
111
111
  "auth.login.resendSuccess": "Wir haben dir eine neue Bestätigungs-Mail geschickt.",
112
112
  "auth.login.resendVerification": "Bestätigungs-Mail erneut senden",
113
+ "auth.login.sessionEnded": "Deine Sitzung wurde beendet. Bitte melde dich erneut an.",
113
114
  "auth.login.submit": "Einloggen",
114
115
  "auth.login.submitting": "…",
115
116
  "auth.login.title": "Anmelden",
@@ -238,6 +239,7 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
238
239
  "Zu viele Anfragen in kurzer Zeit. Bitte kurz warten und erneut versuchen.",
239
240
  "auth.sessionBootstrap.retry": "Erneut versuchen",
240
241
  "auth.sessionBootstrap.retrying": "Wird erneut versucht …",
242
+ "auth.sessionBootstrap.signOut": "Abmelden",
241
243
  "auth.signup.email": "E-Mail",
242
244
  "auth.signup.haveAccount": "Bereits einen Account? Anmelden",
243
245
  "auth.signup.intro":
@@ -338,6 +340,9 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
338
340
  "cap-counter:nav.cap-list": "Limits",
339
341
  "cap-overview.cards.empty": "Für diesen Mandanten sind keine Caps konfiguriert.",
340
342
  "cap-overview.cards.loading": "Lade Nutzungsdaten …",
343
+ "cap-overview.errors.filterFieldUnsupported":
344
+ "Filtern nach diesem Feld wird nicht unterstützt, oder Tier wurde mehrfach gefiltert.",
345
+ "cap-overview.errors.invalidCursor": "Der Paginierungs-Cursor ist ungültig.",
341
346
  "cap-overview.errors.progressPrimitiveMissing": "Nutzungsbalken nicht verfügbar.",
342
347
  "cap-overview.errors.sortFieldUnsupported": "Sortierung nach diesem Feld wird nicht unterstützt.",
343
348
  "cap-overview.errors.tenantOverrideRequiresSystemAdmin":
@@ -351,6 +356,7 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
351
356
  "cap-overview.list.filter.tier": "Tier",
352
357
  "cap-overview.notMeasured": "Noch nicht gemessen",
353
358
  "cap-overview.platform.filter.tenant": "Mandant",
359
+ "cap-overview.unlimited": "{used} · unbegrenzt",
354
360
  "compliance-profiles:entity:__action-form__:field:profileKey": "Compliance-Profil",
355
361
  "compliance-profiles:entity:__action-form__:field:profileKey:option:de-hr-dsgvo-hgb":
356
362
  "Deutschland HR — DSGVO + HGB + Personalakten",
@@ -372,15 +378,28 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
372
378
  "config.secret.mail-transport-smtp.smtp-password.hint":
373
379
  "Login-Passwort am SMTP-Server. Brevo/Postmark/SES nennen es „API-Key“ oder „SMTP-Zugangsdaten“.",
374
380
  "config.secret.mail-transport-smtp.smtp-password.label": "SMTP-Passwort",
375
- "config.secrets.delete": "Löschen",
381
+ "config.secrets.delete": "Entfernen",
382
+ "config.secrets.description":
383
+ "Verschlüsselt gespeichert. Gespeicherte Werte werden nicht mehr angezeigt.",
384
+ "config.secrets.deleteConfirm":
385
+ "Dieses Secret entfernen? Alles, was es nutzt, funktioniert nicht mehr, und es lässt sich nicht wiederherstellen.",
376
386
  "config.secrets.notSet": "Nicht gesetzt",
377
387
  "config.secrets.placeholder": "Wert eingeben",
378
388
  "config.secrets.replacePlaceholder": "Neuen Wert zum Ersetzen eingeben",
379
- "config.secrets.required": "Erforderlich",
389
+ "config.secrets.saved": "Gespeichert",
390
+ "config.secrets.section": "Zugangsdaten",
380
391
  "config.secrets.set": "Gesetzt",
392
+ "config.secrets.stored": "Hinterlegt: {preview}",
381
393
  "config.secrets.title": "Secrets",
394
+ "config.settings.audience.system":
395
+ "Gilt für jeden Mandanten, solange ein Mandant keinen eigenen Wert setzt.",
396
+ "config.settings.audience.tenant":
397
+ "Gilt für alle in diesem Mandanten. Wo hier nichts gesetzt ist, erscheinen die Plattform-Vorgaben.",
398
+ "config.settings.audience.user": "Gilt nur für dich.",
382
399
  "config.settings.extensionSelectorHint":
383
- "Speichere die Anbieterauswahl, damit darunter dessen Einstellungen erscheinen.",
400
+ "Wähle einen Anbieter und speichere. Seine Einstellungen erscheinen darunter.",
401
+ "config.settings.provider": "Anbieter",
402
+ "config.settings.saveProvider": "Anbieter speichern",
384
403
  "config.settings.system": "Plattform",
385
404
  "config.settings.tenant": "Mandant",
386
405
  "config.settings.title": "Einstellungen",
@@ -426,6 +445,8 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
426
445
  "errors.validation.not_multiple_of": "Muss ein Vielfaches von {divisor} sein.",
427
446
  "errors.validation.out_of_bounds": "Wert außerhalb des erlaubten Bereichs.",
428
447
  "errors.validation.too_big": "Zu groß oder zu lang. Maximal erlaubt: {maximum}.",
448
+ "kumiko.validation.number.min": "Muss mindestens {minimum} sein.",
449
+ "kumiko.validation.number.max": "Darf höchstens {maximum} sein.",
429
450
  "errors.validation.too_small": "Zu klein oder zu kurz. Mindestens erforderlich: {minimum}.",
430
451
  "errors.validation.unexpected_field": "Unbekanntes Feld.",
431
452
  "errors.validation.unrecognized_keys": "Unbekannte Felder.",
@@ -465,20 +486,20 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
465
486
  "folders.section.working": "Speichert…",
466
487
  "gdpr.mail.appNameDefault": "Konto",
467
488
  "gdpr.mail.deletionExecuted.intro":
468
- "dein {app}-Konto und die zugehoerigen personenbezogenen Daten wurden am {when} geloescht. Diese Aktion ist endgueltig.",
469
- "gdpr.mail.deletionExecuted.subject": "{app} — Dein Konto wurde geloescht",
489
+ "dein {app}-Konto und die zugehörigen personenbezogenen Daten wurden am {when} gelöscht. Diese Aktion ist endgültig.",
490
+ "gdpr.mail.deletionExecuted.subject": "{app} — Dein Konto wurde gelöscht",
470
491
  "gdpr.mail.deletionRequested.cancel":
471
- "Falls du das nicht angefordert hast, melde dich an und brich die Loeschung in den Kontoeinstellungen ab, bevor die Frist ablaeuft.",
492
+ "Falls du das nicht angefordert hast, melde dich an und brich die Löschung in den Kontoeinstellungen ab, bevor die Frist abläuft.",
472
493
  "gdpr.mail.deletionRequested.intro":
473
- "wir haben deinen Antrag zur Loeschung deines {app}-Kontos erhalten. Dein Konto und die zugehoerigen Daten werden am {when} endgueltig geloescht.",
474
- "gdpr.mail.deletionRequested.subject": "{app} — Loeschung deines Kontos angefordert",
494
+ "wir haben deinen Antrag zur Löschung deines {app}-Kontos erhalten. Dein Konto und die zugehörigen Daten werden am {when} endgültig gelöscht.",
495
+ "gdpr.mail.deletionRequested.subject": "{app} — Löschung deines Kontos angefordert",
475
496
  "gdpr.mail.exportFailed.intro":
476
- "dein angeforderter Datenexport fuer {app} konnte leider nicht erstellt werden. Bitte fordere den Export erneut an.",
497
+ "dein angeforderter Datenexport für {app} konnte leider nicht erstellt werden. Bitte fordere den Export erneut an.",
477
498
  "gdpr.mail.exportFailed.subject": "{app} — Dein Datenexport ist fehlgeschlagen",
478
499
  "gdpr.mail.exportReady.button": "Datenexport herunterladen",
479
- "gdpr.mail.exportReady.expiry": "Der Download-Link laeuft am {when} ab.",
500
+ "gdpr.mail.exportReady.expiry": "Der Download-Link läuft am {when} ab.",
480
501
  "gdpr.mail.exportReady.intro":
481
- "dein angeforderter Datenexport fuer {app} ist fertig. Lade ihn ueber den folgenden Link herunter:",
502
+ "dein angeforderter Datenexport für {app} ist fertig. Lade ihn über den folgenden Link herunter:",
482
503
  "gdpr.mail.exportReady.subject": "{app} — Dein Datenexport ist bereit",
483
504
  "gdpr.mail.fallbackUrl":
484
505
  "Falls der Button nicht funktioniert, kopiere diesen Link in den Browser:",
@@ -524,6 +545,7 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
524
545
  "kumiko.actions.finish": "Abschließen",
525
546
  "kumiko.actions.next": "Weiter",
526
547
  "kumiko.actions.reload": "Neu laden",
548
+ "kumiko.actions.retry": "Erneut versuchen",
527
549
  "kumiko.actions.save": "Speichern",
528
550
  "kumiko.actions.view": "Anzeigen",
529
551
  "kumiko.aiText.acceptHint": "Tab = übernehmen, Esc = verwerfen",
@@ -548,16 +570,30 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
548
570
  "kumiko.combobox.loading": "Lade…",
549
571
  "kumiko.combobox.placeholder": "—",
550
572
  "kumiko.combobox.search-placeholder": "Suchen…",
551
- "kumiko.config.cascade.activeMarker": "aktiv",
552
- "kumiko.config.cascade.noValue": "Kein Wert gesetzt",
553
- "kumiko.config.cascade.resetTo": "Überschreibung zurücksetzen · {scope}",
573
+ "kumiko.config.cascade.activeMarker": "in Verwendung",
574
+ "kumiko.config.cascade.hideLevels": "Ebenen ausblenden",
575
+ "kumiko.config.cascade.noDefault": "nicht gesetzt",
576
+ "kumiko.config.cascade.noValue": "Nicht gesetzt",
577
+ "kumiko.config.cascade.notSetRequired": "Nicht gesetzt. Pflichtangabe.",
578
+ "kumiko.config.cascade.off": "Aus",
579
+ "kumiko.config.cascade.on": "An",
580
+ "kumiko.config.cascade.origin.default": "Verwendet den Standard",
581
+ "kumiko.config.cascade.origin.system": "Für die Plattform gesetzt. App-Standard ist {value}.",
582
+ "kumiko.config.cascade.origin.tenant": "Für diesen Mandanten gesetzt. Standard ist {value}.",
583
+ "kumiko.config.cascade.origin.user": "Von dir gesetzt. Standard ist {value}.",
584
+ "kumiko.config.cascade.originNoDefault.tenant": "Für diesen Mandanten gesetzt.",
585
+ "kumiko.config.cascade.originNoDefault.user": "Von dir gesetzt.",
586
+ "kumiko.config.cascade.originNoDefault.system": "Für die Plattform gesetzt.",
587
+ "kumiko.config.cascade.resetTo": "Auf Standard zurücksetzen",
588
+ "kumiko.config.cascade.resetToApp": "Auf App-Wert zurücksetzen",
589
+ "kumiko.config.cascade.showLevels": "Alle Ebenen anzeigen",
554
590
  "kumiko.config.source.appOverride": "App-Override",
555
591
  "kumiko.config.source.computed": "Berechnet",
556
592
  "kumiko.config.source.default": "Standard",
557
593
  "kumiko.config.source.missing": "Fehlt",
558
- "kumiko.config.source.system": "System",
594
+ "kumiko.config.source.system": "Plattform",
559
595
  "kumiko.config.source.tenant": "Mandant",
560
- "kumiko.config.source.user": "Mein Wert",
596
+ "kumiko.config.source.user": "Dein Wert",
561
597
  "kumiko.contentEditor.bold": "Fett",
562
598
  "kumiko.contentEditor.bulletList": "Aufzählungsliste",
563
599
  "kumiko.contentEditor.editMode": "Bearbeiten",
@@ -606,8 +642,14 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
606
642
  "kumiko.field.time": "Uhrzeit",
607
643
  "kumiko.field.timezone": "Zeitzone",
608
644
  "kumiko.field.unsupported": "Dieser Feldtyp kann hier noch nicht bearbeitet werden.",
645
+ "kumiko.field.writeOnly.remove": "Gespeicherten Wert entfernen",
646
+ "kumiko.field.writeOnly.set": "Gesetzt",
647
+ "kumiko.field.writeOnly.setPlaceholder": "Gesetzt – leer lassen, um ihn zu behalten",
648
+ "kumiko.field.writeOnly.undo": "Rückgängig",
649
+ "kumiko.field.writeOnly.willRemove": "Wird beim Speichern entfernt",
609
650
  "kumiko.form.all-required": "Alle Felder sind erforderlich.",
610
651
  "kumiko.form.changed": "geändert",
652
+ "kumiko.form.discard": "Verwerfen",
611
653
  "kumiko.form.draft.resume-multiple":
612
654
  "Mehrere offene Entwürfe für dieses Formular gefunden. Welchen möchtest du fortsetzen?",
613
655
  "kumiko.form.draft.resume-single":
@@ -617,7 +659,9 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
617
659
  "kumiko.form.error.version-conflict":
618
660
  "Der Eintrag hat sich inzwischen geändert. Bitte neu laden und erneut versuchen.",
619
661
  "kumiko.form.extension.save-failed": "Ein Zusatzfeld konnte nicht gespeichert werden.",
662
+ "kumiko.form.noUnsavedChanges": "Keine ungespeicherten Änderungen",
620
663
  "kumiko.form.on-this-page": "Auf dieser Seite",
664
+ "kumiko.form.saveChanges": "Änderungen speichern",
621
665
  "kumiko.form.unsaved.one": "1 ungespeicherte Änderung",
622
666
  "kumiko.form.unsaved.other": "{count} ungespeicherte Änderungen",
623
667
  "kumiko.list.count.noun": "{count} {noun}",
@@ -799,6 +843,9 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
799
843
  "profile.password.submit": "Passwort ändern",
800
844
  "profile.password.success": "Passwort geändert.",
801
845
  "profile.password.title": "Passwort",
846
+ "rateLimiting.errors.bucketOutsideTenant":
847
+ "Du kannst nur Rate-Limit-Buckets deines eigenen Mandanten oder Benutzers einsehen.",
848
+ "rateLimiting.errors.resolverUnavailable": "Rate-Limiting ist auf diesem Server nicht verfügbar.",
802
849
  "screen:api-token-create.title": "Neuen Token erstellen",
803
850
  "screen:api-tokens.title": "Personal Access Tokens",
804
851
  "screen:audit-log-detail.title": "Ereignis",
@@ -838,7 +885,7 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
838
885
  "screen:tenant-edit.title": "Mandant bearbeiten",
839
886
  "screen:tenant-list.title": "Mandanten",
840
887
  "screen:tenant-overview.title": "Übersicht",
841
- "screen:tenant-settings-system.title": "Mandanten-Einstellungen",
888
+ "screen:tenant-settings-system.title": "Standard-Mandanteneinstellungen",
842
889
  "screen:tenant-settings-tenant.title": "Mandanten-Einstellungen",
843
890
  "screen:tier-admin.title": "Tier manuell zuweisen",
844
891
  "screen:toggle-admin.title": "Feature-Toggles",
@@ -911,6 +958,7 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
911
958
  "tenant-settings.currency": "Standard-Währung",
912
959
  "tenant-settings.locale": "Standard-Sprache",
913
960
  "tenant-settings.settings": "Mandanten-Einstellungen",
961
+ "tenant-settings.settings.section": "Währung und Sprache",
914
962
  "tenant-settings.settings.system": "Standard-Mandanteneinstellungen",
915
963
  "tenant.members.actions.editRoles": "Rollen bearbeiten",
916
964
  "tenant.members.cancel": "Zurückziehen",
@@ -940,6 +988,9 @@ export const localeDeBundle: Readonly<Record<string, string>> = {
940
988
  "tenant:entity:__action-form__:field:roles:option:Admin": "Admin",
941
989
  "tenant:entity:__action-form__:field:roles:option:Editor": "Editor",
942
990
  "tenant:entity:__action-form__:field:roles:option:TenantAdmin": "Mandanten-Admin",
991
+ "tenant:entity:__action-form__:field:roles:option:TenantOwner": "Mandanten-Inhaber",
992
+ "tenant:entity:__action-form__:field:roles:option:DataProtectionOfficer":
993
+ "Datenschutzbeauftragter",
943
994
  "tenant:entity:__action-form__:field:roles:option:User": "Benutzer",
944
995
  "tenant:entity:__action-form__:field:userId": "User-ID",
945
996
  "tenant:entity:tenant:field:isEnabled": "Aktiv",