pgkiln 0.58.0 → 0.60.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.
@@ -1383,4 +1383,405 @@ export const de: BuilderMessages = {
1383
1383
  'st.saved': 'Gespeichert.',
1384
1384
  'st.settings_saved': 'Einstellungen gespeichert.',
1385
1385
  'st.app_deleted': 'Anwendung gelöscht.',
1386
+ // ------------------------------------------------------------ Users and identity providers (sprint 125)
1387
+ 'us.hints_none': 'Diese Anwendung prüft noch keine Rollen. Rollen zählen nur dort, wo ein Autorisierungsschema oder {fn} sie prüft (Shared Components → Autorisierungsschemas).',
1388
+ 'us.hints_label': 'Rollen, die diese Anwendung prüft',
1389
+ 'us.hints_add': 'Hinzufügen',
1390
+ 'us.hints_app': '{app} prüft',
1391
+ 'us.title': 'Benutzer',
1392
+ 'us.providers_btn': 'Identitätsanbieter (Single Sign-on)',
1393
+ 'us.ldap_btn': 'LDAP-Verzeichnisse',
1394
+ 'us.intro': 'Ein Konto pro Person. Geben Sie Konten Zugriff auf Anwendungen, mit Rollen pro Anwendung, hier oder unter {where} einer Anwendung.',
1395
+ 'us.access_path': 'Shared Components → Zugriffskontrolle',
1396
+ 'us.accounts': 'Konten',
1397
+ 'us.search_ph': 'Name, Benutzername oder E-Mail suchen …',
1398
+ 'us.search_label': 'Konten suchen',
1399
+ 'us.search': 'Suchen',
1400
+ 'us.username': 'Benutzername',
1401
+ 'us.name': 'Name',
1402
+ 'us.apps_roles': 'Anwendungen (Rollen)',
1403
+ 'us.applications': 'Anwendungen',
1404
+ 'us.signin': 'Anmeldung',
1405
+ 'us.status': 'Status',
1406
+ 'us.none': 'keine',
1407
+ 'us.password': 'Passwort',
1408
+ 'us.no_password': 'kein Passwort',
1409
+ 'us.active': 'aktiv',
1410
+ 'us.inactive': 'inaktiv',
1411
+ 'us.last': 'zuletzt {at}',
1412
+ 'us.no_accounts': 'Keine Konten gefunden.',
1413
+ 'us.create': 'Konto anlegen',
1414
+ 'us.username_help': 'Keine Leerzeichen oder Doppelpunkte; Groß-/Kleinschreibung egal.',
1415
+ 'us.email': 'E-Mail',
1416
+ 'us.password_label': 'Passwort',
1417
+ 'us.password_help': 'Mindestens 8 Zeichen. Leer lassen für Konten, die sich nur per Single Sign-on anmelden.',
1418
+ 'us.must_change': 'Passwortänderung bei der ersten Anmeldung verlangen',
1419
+ 'us.settings': 'Kontoeinstellungen',
1420
+ 'us.min_length': 'Mindestlänge des Passworts',
1421
+ 'us.lifetime': 'Gültigkeit des Passworts (Tage)',
1422
+ 'us.lifetime_help': 'Nach so vielen Tagen müssen Benutzer bei der Anmeldung ein neues Passwort wählen. 0 = nie.',
1423
+ 'us.mixed': 'Passwörter brauchen Buchstaben und Ziffern',
1424
+ 'us.policy_note': 'Passwörter dürfen nie den Benutzernamen enthalten. Die Anmeldung wird nach {failures} Fehlversuchen für {minutes} Minuten gesperrt (Workspace-Werkzeuge → Instanzeinstellungen); Entsperren bei einem Konto hebt das auf.',
1425
+ 'us.save_settings': 'Einstellungen speichern',
1426
+ 'us.created': 'Konto angelegt. Geben Sie ihm jetzt Zugriff auf Anwendungen.',
1427
+ 'us.exists': 'Ein Konto mit diesem Benutzernamen existiert bereits.',
1428
+ 'us.settings_saved': 'Kontoeinstellungen gespeichert.',
1429
+ 'us.details': 'Details',
1430
+ 'us.active_label': 'Aktiv',
1431
+ 'us.active_help': 'Inaktive Konten können sich bei keiner Anwendung anmelden; das Deaktivieren beendet ihre Sitzungen.',
1432
+ 'us.save': 'Speichern',
1433
+ 'us.password_title': 'Passwort',
1434
+ 'us.set': 'Gesetzt',
1435
+ 'us.set_on': 'Gesetzt am {date}',
1436
+ 'us.sso_only': 'Kein Passwort (nur Single Sign-on)',
1437
+ 'us.must_next': 'Muss bei der nächsten Anmeldung geändert werden',
1438
+ 'us.expires': 'Läuft in {n} Tag(en) ab',
1439
+ 'us.fails': '{n} fehlgeschlagene Anmeldung(en) in der letzten Stunde',
1440
+ 'us.unexpire': 'Passwortablauf aufheben',
1441
+ 'us.expire': 'Passwort ablaufen lassen',
1442
+ 'us.unlock': 'Anmeldung entsperren',
1443
+ 'us.new_password': 'Neues Passwort',
1444
+ 'us.set_password_label': 'Ein Passwort setzen',
1445
+ 'us.ends_sessions': 'Beendet die Sitzungen des Kontos.',
1446
+ 'us.set_password': 'Passwort setzen',
1447
+ 'us.remove_confirm': 'Passwort entfernen? Das Konto kann sich dann nur noch per Single Sign-on anmelden.',
1448
+ 'us.remove_password': 'Passwort entfernen',
1449
+ 'us.delete_confirm': 'Konto {user} mit allen Anwendungszugriffen löschen?',
1450
+ 'us.delete': 'Konto löschen',
1451
+ 'us.app_access': 'Anwendungszugriff',
1452
+ 'us.application': 'Anwendung',
1453
+ 'us.roles': 'Rollen',
1454
+ 'us.roles_in': 'Rollen in {app}',
1455
+ 'us.roles_ph': 'keine Rollen (z. B. {example})',
1456
+ 'us.revoke_confirm': 'Zugriff auf {app} entziehen?',
1457
+ 'us.revoke': 'Entziehen',
1458
+ 'us.no_access': 'Noch kein Zugriff auf eine Anwendung.',
1459
+ 'us.grant': 'Zugriff gewähren',
1460
+ 'us.roles_comma': 'durch Komma getrennt, oder unten wählen',
1461
+ 'us.saved': 'Konto gespeichert.',
1462
+ 'us.pw_removed': 'Passwort entfernt.',
1463
+ 'us.pw_set': 'Passwort gesetzt.',
1464
+ 'us.pw_expired': 'Passwort abgelaufen: Es muss bei der nächsten Anmeldung geändert werden.',
1465
+ 'us.pw_unexpired': 'Passwort nicht mehr abgelaufen.',
1466
+ 'us.unlocked': 'Anmeldung entsperrt.',
1467
+ 'us.deleted': 'Konto gelöscht.',
1468
+ 'us.granted': 'Zugriff gewährt.',
1469
+ 'us.roles_saved': 'Rollen gespeichert. Der Benutzer erhält sie bei der nächsten Anmeldung.',
1470
+ 'us.revoked': 'Zugriff entzogen.',
1471
+ 'idp.title': 'Identitätsanbieter',
1472
+ 'idp.name': 'Name (in URLs)',
1473
+ 'idp.name_help': 'Kleinbuchstaben, z. B. entra, google, keycloak',
1474
+ 'idp.protocol': 'Protokoll',
1475
+ 'idp.label': 'Beschriftung der Schaltfläche',
1476
+ 'idp.label_help': 'Angezeigt als „Anmelden mit …“',
1477
+ 'idp.issuer': 'Aussteller (OIDC: URL; SAML: die Entity-ID des IdP)',
1478
+ 'idp.issuer_help': 'z. B. https://login.microsoftonline.com/<tenant>/v2.0, https://keycloak.example.com/realms/acme oder für SAML die entityID aus den IdP-Metadaten',
1479
+ 'idp.client_id': 'Client-ID (SAML: die Entity-ID von pgkiln)',
1480
+ 'idp.client_id_help': 'OIDC: erforderlich. SAML: leer = die Metadaten-URL dieses Anbieters.',
1481
+ 'idp.sso_url': 'SAML: Anmelde-URL des IdP',
1482
+ 'idp.sso_url_help': 'Die SingleSignOnService-Adresse (HTTP-Redirect-Binding) aus den IdP-Metadaten.',
1483
+ 'idp.cert': 'SAML: Signaturzertifikat des IdP (PEM)',
1484
+ 'idp.cert_help': 'Aus den IdP-Metadaten (X509Certificate, umschlossen von BEGIN/END CERTIFICATE-Zeilen). Assertions müssen damit signiert sein.',
1485
+ 'idp.secret': 'Client-Geheimnis',
1486
+ 'idp.secret_kept': 'Ein Geheimnis ist gespeichert. Leer lassen, um es zu behalten.',
1487
+ 'idp.secret_public': 'Leer lassen für einen öffentlichen Client (nur PKCE).',
1488
+ 'idp.scopes': 'Scopes',
1489
+ 'idp.username_claim': 'Claim für den Benutzernamen',
1490
+ 'idp.username_claim_help': 'Verwenden Sie einen Claim, den Benutzer nicht selbst ändern können (z. B. preferred_username, upn, email). SAML: ein Attributname oder nameID.',
1491
+ 'idp.groups_claim': 'Claim für Gruppen',
1492
+ 'idp.groups_claim_help': 'Punktpfade funktionieren, z. B. realm_access.roles',
1493
+ 'idp.auto_create': 'Konten bei der ersten Anmeldung automatisch anlegen',
1494
+ 'idp.auto_create_help': 'Sonst können sich nur Personen mit einem mit diesem Anbieter verknüpften Konto (oder unten erlaubte) anmelden.',
1495
+ 'idp.link': 'Vorhandene Konten mit demselben Benutzernamen bei der ersten Anmeldung verknüpfen',
1496
+ 'idp.link_help': 'Nur wenn Benutzer den Benutzernamen-Claim bei diesem Anbieter nicht selbst wählen können: sonst könnte jemand den Namen eines vorhandenen Kontos registrieren und es übernehmen. Mit dem E-Mail-Claim werden nur bestätigte Adressen verknüpft. Schalten Sie es ab, sobald die Konten verknüpft sind.',
1497
+ 'idp.enabled': 'Aktiviert',
1498
+ 'idp.remove_secret': 'Das gespeicherte Client-Geheimnis entfernen',
1499
+ 'idp.add': 'Anbieter hinzufügen',
1500
+ 'idp.intro': 'OpenID-Connect-Anbieter für Single Sign-on (Microsoft Entra ID, Google, Okta, Keycloak, Auth0, …). Registrieren Sie pgkiln beim Anbieter als Webanwendung mit der angezeigten Redirect-URI und aktivieren Sie den Anbieter dann pro Anwendung unter {where}.',
1501
+ 'idp.where': 'Einstellungen → Anmeldemethoden',
1502
+ 'idp.providers': 'Anbieter',
1503
+ 'idp.provider': 'Anbieter',
1504
+ 'idp.issuer_col': 'Aussteller',
1505
+ 'idp.used_by': 'Verwendet von',
1506
+ 'idp.linked': 'Verknüpfte Konten',
1507
+ 'idp.no_apps': 'keine Anwendungen',
1508
+ 'idp.enabled_s': 'aktiviert',
1509
+ 'idp.disabled_s': 'deaktiviert',
1510
+ 'idp.auto_s': 'automatisch anlegen',
1511
+ 'idp.links_s': 'verknüpft vorhandene Konten',
1512
+ 'idp.none': 'Noch keine Identitätsanbieter.',
1513
+ 'idp.settings': 'Einstellungen',
1514
+ 'idp.delete_confirm': '{name} löschen? Verknüpfte Identitäten werden entfernt; die Konten bleiben.',
1515
+ 'idp.delete': 'Anbieter löschen',
1516
+ 'idp.register_idp': 'Beim Identitätsanbieter registrieren',
1517
+ 'idp.sp_metadata': 'Metadaten des Dienstanbieters (beim IdP importieren):',
1518
+ 'idp.by_hand': 'Oder von Hand: Entity-ID {entity}, Assertion Consumer Service (HTTP-POST) {acs}.',
1519
+ 'idp.saml_note': 'Basiert auf {env}. Signieren Sie die Assertions; senden Sie die Gruppen im Attribut {claim}, um sie Rollen zuzuordnen.',
1520
+ 'idp.register': 'Beim Anbieter registrieren',
1521
+ 'idp.redirect': 'Redirect-URI (Callback):',
1522
+ 'idp.public_url': 'Basiert auf {env}; setzen Sie sie auf die Adresse, die Benutzer sehen (z. B. https://apps.example.com).',
1523
+ 'idp.grant': 'Grant-Typ: {type} mit PKCE. Scopes: {scopes}. Nehmen Sie einen Claim {claim} in das ID-Token auf, um Gruppen Rollen zuzuordnen.',
1524
+ 'idp.auth_code': 'Authorization Code',
1525
+ 'idp.test': 'Discovery testen',
1526
+ 'idp.added': 'Anbieter hinzugefügt. Registrieren Sie die Redirect-URI beim Anbieter und testen Sie dann die Verbindung.',
1527
+ 'idp.saved': 'Anbieter gespeichert.',
1528
+ 'idp.works': 'Discovery funktioniert. Autorisierungsendpunkt: {url}',
1529
+ 'idp.failed': 'Discovery fehlgeschlagen: {error}',
1530
+ 'idp.deleted': 'Anbieter gelöscht.',
1531
+ // ------------------------------------------------------------ Workspaces (sprint 125)
1532
+ 'wsp.title': 'Workspaces',
1533
+ 'wsp.admins_only': 'Nur Administratoren verwalten Workspaces.',
1534
+ 'wsp.err.exists': 'Ein Workspace mit diesem Namen existiert bereits.',
1535
+ 'wsp.err.name_check': 'Der Name hat 1 bis 60 Zeichen, ohne Leerzeichen am Anfang oder Ende.',
1536
+ 'wsp.err.name': 'Der Name hat 1 bis 60 Zeichen.',
1537
+ 'wsp.iso.secret': 'setzen Sie PGKILN_SECRET_KEY (mindestens 32 Zeichen) in der Umgebung des Servers: Die Datenbank-Logins des Workspace erhalten daraus abgeleitete Passwörter.',
1538
+ 'wsp.iso.runtime': 'setzen Sie RUNTIME_DATABASE_URL: Anwendungen laufen auf der Eigentümerverbindung, daher kann kein Workspace isoliert werden.',
1539
+ 'wsp.err.role_taken': 'diese Rolle gehört bereits zu einem anderen Workspace.',
1540
+ 'wsp.err.role_has': 'der Workspace hat diese Rolle bereits.',
1541
+ 'wsp.isolated_tag': 'isoliert',
1542
+ 'wsp.iso.on': 'Seine Anwendungen laufen als {run} und das SQL seiner Entwickler (SQL Workshop, Codeprüfungen, der Advisor) als {dev}. Beide erreichen nur die Rollen unten und sehen in den Tabellen von pgkiln nur die Anwendungen, Sitzungen und Konten dieses Workspace. Entwickler, die auch zu einem gemeinsamen Workspace gehören, behalten dort dessen Rechte.',
1543
+ 'wsp.db_role': 'Datenbankrolle',
1544
+ 'wsp.used_by': 'Verwendet von',
1545
+ 'wsp.missing': 'fehlt',
1546
+ 'wsp.no_app': 'keine Anwendung',
1547
+ 'wsp.remove': 'Entfernen',
1548
+ 'wsp.no_roles': 'Keine Datenbankrollen: Anwendungen hier können nicht als eigene Rolle laufen.',
1549
+ 'wsp.add_role': 'Eine Datenbankrolle hinzufügen',
1550
+ 'wsp.add_role_help': 'Eine vorhandene Rolle (kein Superuser, keine, die Rollen anlegt oder Row Level Security umgeht). Ihre Rechte werden die dieses Workspace; sie kann nicht zu einem anderen Workspace gehören.',
1551
+ 'wsp.add_role_btn': 'Rolle hinzufügen',
1552
+ 'wsp.make_shared_confirm': '{name} wieder gemeinsam machen? Seine Anwendungen laufen dann auf der gemeinsamen Laufzeitverbindung und das SQL seiner Entwickler als Eigentümer.',
1553
+ 'wsp.make_shared': 'Gemeinsam machen',
1554
+ 'wsp.shared_text': 'Gemeinsam: Die Anwendungen laufen auf der gemeinsamen Laufzeitverbindung und das SQL der Entwickler als Eigentümer, wie bei jedem gemeinsamen Workspace.',
1555
+ 'wsp.iso_help': 'Das Isolieren gibt dem Workspace zwei eigene Datenbank-Logins und die Datenbankrollen, die seine Anwendungen jetzt verwenden. Anwendungscode erreicht dann nur diese Rollen und die Anwendungen dieses Workspace; der SQL Workshop seiner Entwickler läuft auf dem Login des Workspace statt als Eigentümer. Neue Anwendungen erhalten eine eigene neue Rolle und ein eigenes Schema.',
1556
+ 'wsp.to_isolate': 'Um einen Workspace zu isolieren, {problem}',
1557
+ 'wsp.isolate_confirm': '{name} isolieren?',
1558
+ 'wsp.isolate': 'Diesen Workspace isolieren',
1559
+ 'wsp.isolation': 'Isolation',
1560
+ 'wsp.service': 'Dienst verwalten',
1561
+ 'wsp.message': 'Workspace-Meldung',
1562
+ 'wsp.message_help': 'Wird den Entwicklern dieses Workspace auf der App Builder-Startseite angezeigt, z. B. ein Wartungsfenster. Reiner Text.',
1563
+ 'wsp.banner': 'Umgebungsbanner',
1564
+ 'wsp.banner_help': 'Ein kurzes Label oben auf jeder Builder-Seite, solange dieser Workspace aktuell ist. Leer: kein Banner.',
1565
+ 'wsp.banner_colour': 'Bannerfarbe',
1566
+ 'wsp.save': 'Speichern',
1567
+ 'wsp.prefs': 'Workspace-Einstellungen',
1568
+ 'wsp.sql_on': 'SQL Workshop aktivieren',
1569
+ 'wsp.sql_on_help': 'Aus: SQL-Arbeitsblatt, Objektbrowser, SQL-Skripte, Laden und Entladen von Daten, Quick SQL, Query Builder, DDL, Vergleich und KI werden abgelehnt, solange dieser Workspace aktuell ist, für alle Entwickler.',
1570
+ 'wsp.rest_on': 'RESTful-Dienste aktivieren',
1571
+ 'wsp.rest_on_help': 'Aus: Die REST-Module der Anwendungen dieses Workspace antworten unter {path} mit 404 (Not found); sie können weiterhin bearbeitet werden.',
1572
+ 'wsp.builder_home': 'Builder-Links öffnen',
1573
+ 'wsp.home.apps': 'App Builder',
1574
+ 'wsp.home.home': 'Workspace-Startseite',
1575
+ 'wsp.builder_home_help': 'Wohin ein Link auf /builder (ein Lesezeichen aus der Zeit vor der Workspace-Startseite) in diesem Workspace führt. Die Anmeldung öffnet immer die Workspace-Startseite; der App Builder liegt unter /builder/apps.',
1576
+ 'wsp.save_prefs': 'Einstellungen speichern',
1577
+ 'wsp.links': 'Erweiterungslinks',
1578
+ 'wsp.links_help': 'Links zu anderen Werkzeugen der Entwickler dieses Workspace (Monitoring, ein Wiki, ein Ticketsystem) im Menü {menu} des Builders, solange der Workspace aktuell ist. Sie öffnen sich in einem neuen Tab.',
1579
+ 'wsp.extensions': 'Erweiterungen',
1580
+ 'wsp.label': 'Beschriftung',
1581
+ 'wsp.url': 'URL',
1582
+ 'wsp.order': 'Reihenfolge',
1583
+ 'wsp.delete_link_confirm': 'Den Link {label} löschen?',
1584
+ 'wsp.delete': 'Löschen',
1585
+ 'wsp.no_links': 'Keine Erweiterungslinks.',
1586
+ 'wsp.label_ph': 'Monitoring',
1587
+ 'wsp.description': 'Beschreibung',
1588
+ 'wsp.add_link': 'Link hinzufügen',
1589
+ 'wsp.switched': 'Workspace {name}.',
1590
+ 'wsp.intro': 'Ein Workspace fasst Anwendungen und die Entwickler zusammen, die sie bauen. Entwickler sehen und ändern die Anwendungen ihrer eigenen Workspaces; Administratoren sehen alle. Ein gemeinsamer Workspace ist keine Sicherheitsgrenze zwischen Entwicklern, die SQL schreiben: Sein SQL Workshop und der Anwendungscode laufen mit den Rechten dieser Installation. Ein {isolated} Workspace ist eine: Seine Anwendungen und sein SQL laufen auf eigenen Datenbank-Logins, die nur seine Datenbankrollen und seine eigenen Anwendungen erreichen.',
1591
+ 'wsp.isolated_word': 'isolierter',
1592
+ 'wsp.workspace': 'Workspace',
1593
+ 'wsp.applications': 'Anwendungen',
1594
+ 'wsp.developers': 'Entwickler',
1595
+ 'wsp.admins_text': 'nur Administratoren',
1596
+ 'wsp.add': 'Workspace hinzufügen',
1597
+ 'wsp.name': 'Name',
1598
+ 'wsp.name_help': 'Zum Beispiel das Team oder die Abteilung, die hier ihre Anwendungen baut.',
1599
+ 'wsp.first_dev': 'Sie werden sein erster Entwickler; fügen Sie weitere auf seiner Seite hinzu.',
1600
+ 'wsp.added': 'Workspace {name} hinzugefügt.',
1601
+ 'wsp.settings': 'Einstellungen',
1602
+ 'wsp.default_no_delete': 'Der Default-Workspace kann nicht gelöscht werden: Importierte und über die Kommandozeile erstellte Anwendungen beginnen hier.',
1603
+ 'wsp.delete_confirm': 'Workspace {name} löschen?',
1604
+ 'wsp.delete_ws': 'Workspace löschen',
1605
+ 'wsp.move_first': 'Verschieben Sie zuerst seine Anwendungen in einen anderen Workspace.',
1606
+ 'wsp.devs_help': 'Entwickler dieses Workspace sehen und ändern seine Anwendungen. Administratoren sehen jeden Workspace.',
1607
+ 'wsp.administrator': '(Administrator)',
1608
+ 'wsp.ws_admins': 'Workspace-Administratoren',
1609
+ 'wsp.ws_admins_help': 'Sie verwalten Namen und Entwickler dieses Workspace. Isolation, Datenbankrollen, das Verschieben von Anwendungen und das Löschen des Workspace bleiben bei den Administratoren.',
1610
+ 'wsp.save_devs': 'Entwickler speichern',
1611
+ 'wsp.mail_net': 'Mail und Netzwerkzugriff',
1612
+ 'wsp.mail_net_text': 'Der eigene {mail} dieses Workspace für seine Anwendungen ohne eigenen, seine Liste für {network} (welche Hosts seine Anwendungen aufrufen dürfen, innerhalb der Liste der Installation) und die {queue}.',
1613
+ 'wsp.mail_service': 'Mail-Dienst',
1614
+ 'wsp.network': 'Netzwerkzugriff',
1615
+ 'wsp.queue': 'Mail-Warteschlange',
1616
+ 'wsp.iso_short_on': 'Isoliert: Seine Anwendungen und sein SQL laufen auf eigenen Datenbank-Logins.',
1617
+ 'wsp.iso_short_off': 'Gemeinsam.',
1618
+ 'wsp.admins_change': 'Administratoren ändern das.',
1619
+ 'wsp.application': 'Anwendung',
1620
+ 'wsp.move_to': 'Verschieben nach',
1621
+ 'wsp.move_label': '{app} verschieben nach',
1622
+ 'wsp.move': 'Verschieben',
1623
+ 'wsp.no_other': 'kein anderer Workspace',
1624
+ 'wsp.no_apps': 'Keine Anwendungen.',
1625
+ 'wsp.saved': 'Workspace gespeichert.',
1626
+ 'wsp.not_found': 'Nicht gefunden.',
1627
+ 'wsp.devs_saved': 'Entwickler gespeichert.',
1628
+ 'wsp.not_moved': 'Nicht verschoben: {why}',
1629
+ 'wsp.moved': 'Anwendung nach {name} verschoben.',
1630
+ 'wsp.err.default': 'Der Default-Workspace kann nicht gelöscht werden.',
1631
+ 'wsp.err.isolated': 'Machen Sie den Workspace gemeinsam (nicht isoliert), bevor Sie ihn löschen.',
1632
+ 'wsp.err.has_apps': 'Verschieben Sie zuerst die Anwendungen dieses Workspace in einen anderen.',
1633
+ 'wsp.deleted': 'Workspace {name} gelöscht.',
1634
+ 'wsp.isolated_now': 'Der Workspace ist isoliert: Seine Anwendungen und sein SQL laufen jetzt auf eigenen Datenbank-Logins.',
1635
+ 'wsp.shared_now': 'Der Workspace ist wieder gemeinsam: Seine Anwendungen laufen auf der gemeinsamen Laufzeitverbindung.',
1636
+ 'wsp.not_isolated': 'Nicht isoliert: {why}',
1637
+ 'wsp.not_changed': 'Nicht geändert: {why}',
1638
+ 'wsp.err.role_name': 'Ein Rollenname ist ein Buchstabe oder _, gefolgt von Buchstaben, Ziffern, _ oder $ (höchstens 63).',
1639
+ 'wsp.err.no_role': 'Es gibt keine Datenbankrolle {role}.',
1640
+ 'wsp.err.role_used_one': '{apps} läuft als {role}: Geben Sie ihr zuerst eine andere Rolle.',
1641
+ 'wsp.err.role_used': '{apps} laufen als {role}: Geben Sie ihnen zuerst eine andere Rolle.',
1642
+ 'wsp.role_removed': 'Rolle {role} entfernt.',
1643
+ 'wsp.role_added': 'Rolle {role} hinzugefügt.',
1644
+ 'wsp.not_saved': 'Nicht gespeichert: {why}',
1645
+ 'wsp.err.message': 'Die Meldung hat höchstens 2000 Zeichen.',
1646
+ 'wsp.err.banner': 'Das Bannerlabel hat höchstens 40 Zeichen.',
1647
+ 'wsp.service_saved': 'Meldung und Banner gespeichert.',
1648
+ 'wsp.prefs_saved': 'Einstellungen gespeichert.',
1649
+ 'wsp.err.label': 'Das Label hat 1 bis 60 Zeichen.',
1650
+ 'wsp.err.url': 'Die URL beginnt mit http:// oder https://.',
1651
+ 'wsp.err.description': 'Die Beschreibung hat höchstens 500 Zeichen.',
1652
+ 'wsp.err.order': 'Die Reihenfolge ist eine ganze Zahl.',
1653
+ 'wsp.link_added': 'Link {label} hinzugefügt.',
1654
+ 'wsp.link_exists': 'Es gibt bereits einen Link {label}.',
1655
+ 'wsp.link_not_saved': 'Der Link wurde nicht gespeichert.',
1656
+ 'wsp.link_deleted': 'Link gelöscht.',
1657
+ 'wsp.util_title': 'Nutzung des Workspace: {name}',
1658
+ 'wsp.pages': 'Seiten',
1659
+ 'wsp.views30': 'Seitenaufrufe (30 Tage)',
1660
+ 'wsp.scripts': 'SQL-Skripte',
1661
+ 'wsp.regions': 'Regionen',
1662
+ 'wsp.items': 'Elemente',
1663
+ 'wsp.users30': 'Benutzer (30 Tage)',
1664
+ 'wsp.static': 'Statische Dateien',
1665
+ 'wsp.views': 'Seitenaufrufe',
1666
+ 'wsp.users': 'Benutzer',
1667
+ 'wsp.schemas': 'Schemas',
1668
+ 'wsp.schemas_help': 'Die Schemas, die die Datenbankrollen des Workspace verwenden dürfen, mit dem Speicher ihrer Tabellen, Indizes und TOAST-Daten.',
1669
+ 'wsp.schema': 'Schema',
1670
+ 'wsp.owner': 'Eigentümer',
1671
+ 'wsp.tables': 'Tabellen',
1672
+ 'wsp.storage': 'Speicher',
1673
+ 'wsp.no_schemas': 'Keine Schemas: Die Anwendungen des Workspace haben keine eigene Datenbankrolle.',
1674
+ 'wsp.utilization': 'Nutzung',
1675
+ 'wsp.util_crumb': 'Nutzung: {name}',
1676
+ // ------------------------------------------------------------ Developers (sprint 125)
1677
+ 'dev.title': 'Entwickler',
1678
+ 'dev.change_pw': 'Ihr Passwort ändern',
1679
+ 'dev.current': 'Aktuelles Passwort',
1680
+ 'dev.new': 'Neues Passwort',
1681
+ 'dev.min8': 'Mindestens 8 Zeichen.',
1682
+ 'dev.change_btn': 'Passwort ändern',
1683
+ 'dev.your_email': 'Ihre E-Mail-Adresse',
1684
+ 'dev.email': 'E-Mail-Adresse',
1685
+ 'dev.email_help': '„Meinen Workspace finden“ auf der Anmeldeseite sendet Ihre Workspaces dorthin. Leer: keine.',
1686
+ 'dev.save': 'Speichern',
1687
+ 'dev.accounts': 'Entwicklerkonten',
1688
+ 'dev.accounts_help': 'Administratoren fügen Entwickler hinzu, entfernen sie und können Seiten- und Anwendungssperren anderer Entwickler aufheben.',
1689
+ 'dev.username': 'Benutzername',
1690
+ 'dev.role': 'Rolle',
1691
+ 'dev.email_col': 'E-Mail',
1692
+ 'dev.you': '(Sie)',
1693
+ 'dev.administrator': 'Administrator',
1694
+ 'dev.developer': 'Entwickler',
1695
+ 'dev.email_of': 'E-Mail-Adresse von {user}',
1696
+ 'dev.none': 'keine',
1697
+ 'dev.make_dev': 'Zum Entwickler machen',
1698
+ 'dev.make_admin': 'Zum Administrator machen',
1699
+ 'dev.remove_confirm': 'Entwickler {user} entfernen?',
1700
+ 'dev.remove': 'Entfernen',
1701
+ 'dev.add': 'Entwickler hinzufügen',
1702
+ 'dev.password': 'Passwort',
1703
+ 'dev.optional_email': 'Optional: für „Meinen Workspace finden“.',
1704
+ 'dev.admins_only': 'Nur Administratoren fügen Entwickler hinzu und entfernen sie.',
1705
+ 'dev.err.email': 'Die E-Mail-Adresse ist ungültig.',
1706
+ 'dev.added_ws': 'Entwickler zum Workspace {name} hinzugefügt.',
1707
+ 'dev.added': 'Entwickler hinzugefügt.',
1708
+ 'dev.err.current': 'Das aktuelle Passwort ist falsch.',
1709
+ 'dev.pw_changed': 'Passwort geändert.',
1710
+ 'dev.email_saved': 'E-Mail-Adresse gespeichert.',
1711
+ 'dev.not_found': 'Nicht gefunden.',
1712
+ 'dev.role_changed': 'Rolle geändert.',
1713
+ 'dev.removed': 'Entwickler entfernt.',
1714
+ // ------------------------------------------------------------ Security: two-factor sign-in (sprint 126)
1715
+ 'mfa.menu': 'Zwei-Faktor-Anmeldung',
1716
+ 'mfa.title': 'Sicherheit',
1717
+ 'mfa.intro': 'Melden Sie sich nach dem Passwort mit einem Code aus einer Authenticator-App an. Wiederherstellungscodes helfen, wenn Sie das Telefon verlieren.',
1718
+ 'mfa.required_you': 'Ihr Administrator verlangt die Zwei-Faktor-Anmeldung: Fügen Sie eine Authenticator-App hinzu.',
1719
+ 'mfa.banner': 'Die Zwei-Faktor-Anmeldung ist erforderlich. Richten Sie sie vor dem {date} ein: {link}',
1720
+ 'mfa.set_up_now': 'jetzt einrichten',
1721
+ 'mfa.apps': 'Authenticator-Apps',
1722
+ 'mfa.app_name': 'Name',
1723
+ 'mfa.app_default': 'Telefon',
1724
+ 'mfa.added': 'Hinzugefügt',
1725
+ 'mfa.last_used': 'Zuletzt verwendet',
1726
+ 'mfa.no_apps': 'Noch keine Authenticator-App: Sie melden sich nur mit Ihrem Passwort an.',
1727
+ 'mfa.add_app': 'Authenticator-App hinzufügen',
1728
+ 'mfa.no_key': 'Die Zwei-Faktor-Anmeldung braucht den Instanzschlüssel (PGKILN_SECRET_KEY), um das Geheimnis der App zu speichern.',
1729
+ 'mfa.scan': 'Scannen Sie den QR-Code mit einer Authenticator-App.',
1730
+ 'mfa.or_enter': 'Oder geben Sie diesen Schlüssel von Hand ein:',
1731
+ 'mfa.enter_code': 'Geben Sie den 6-stelligen Code der App ein.',
1732
+ 'mfa.qr_label': 'QR-Code für die Authenticator-App',
1733
+ 'mfa.confirm_app': 'Bestätigen und einschalten',
1734
+ 'mfa.cancel_setup': 'Abbrechen',
1735
+ 'mfa.setup_expired': 'Die Einrichtung hat zu lange gedauert: Beginnen Sie neu.',
1736
+ 'mfa.wrong_setup': 'Dieser Code passt nicht: Prüfen Sie die Uhrzeit Ihres Telefons und versuchen Sie den nächsten Code.',
1737
+ 'mfa.app_added': 'Authenticator-App hinzugefügt: Ab jetzt melden Sie sich auch mit einem Code an.',
1738
+ 'mfa.remove': 'Entfernen',
1739
+ 'mfa.remove_app': 'Diese App entfernen',
1740
+ 'mfa.your_password': 'Ihr Passwort',
1741
+ 'mfa.wrong_password': 'Falsches Passwort.',
1742
+ 'mfa.cannot_remove_required': 'Die Zwei-Faktor-Anmeldung ist für Sie erforderlich: Fügen Sie eine weitere App hinzu, bevor Sie diese entfernen.',
1743
+ 'mfa.cannot_remove_admin': 'Mindestens zwei Administratoren (oder alle, wenn es weniger sind) müssen die Zwei-Faktor-Anmeldung behalten, solange die Richtlinie gilt.',
1744
+ 'mfa.keep_admins': 'Jetzt nicht: Die Zwei-Faktor-Richtlinie braucht mindestens zwei Administratoren mit Zwei-Faktor-Anmeldung (oder alle, wenn es weniger sind).',
1745
+ 'mfa.removed': 'Authenticator-App entfernt.',
1746
+ 'mfa.codes_title': 'Wiederherstellungscodes',
1747
+ 'mfa.codes_once': 'Bewahren Sie diese Codes sicher und getrennt vom Telefon auf. Jeder Code ersetzt einmal einen App-Code. Sie werden nur jetzt angezeigt.',
1748
+ 'mfa.codes_saved': 'Ich habe diese Codes gespeichert',
1749
+ 'mfa.codes_done': 'Fertig',
1750
+ 'mfa.codes_kept': 'Wiederherstellungscodes gespeichert.',
1751
+ 'mfa.codes_left': 'Unbenutzte Wiederherstellungscodes: {n}.',
1752
+ 'mfa.codes_after': 'Sie erhalten Wiederherstellungscodes, wenn Sie eine Authenticator-App hinzufügen.',
1753
+ 'mfa.codes_low': 'Nur noch wenige Wiederherstellungscodes: Erstellen Sie neue.',
1754
+ 'mfa.codes_new': 'Neue Wiederherstellungscodes',
1755
+ 'mfa.codes_new_confirm': 'Neue Wiederherstellungscodes erstellen? Die alten gelten dann nicht mehr.',
1756
+ 'mfa.expired': 'Die Anmeldung hat zu lange gedauert: Melden Sie sich erneut an.',
1757
+ 'mfa.step_title': 'Zwei-Faktor-Anmeldung',
1758
+ 'mfa.step_intro': 'Geben Sie den Code aus Ihrer Authenticator-App für {user} ein.',
1759
+ 'mfa.code': 'Code',
1760
+ 'mfa.code_help': '6 Ziffern aus der App oder einer Ihrer Wiederherstellungscodes.',
1761
+ 'mfa.verify': 'Bestätigen',
1762
+ 'mfa.cancel': 'Zurück zur Anmeldung',
1763
+ 'mfa.locked_out': 'Telefon und Codes verloren? Bitten Sie einen Administrator, Ihre Zwei-Faktor-Anmeldung zurückzusetzen.',
1764
+ 'mfa.wrong': 'Dieser Code ist falsch oder wurde schon verwendet.',
1765
+ 'mfa.column': 'Zwei-Faktor',
1766
+ 'mfa.on': 'an',
1767
+ 'mfa.off': 'aus',
1768
+ 'mfa.reset': 'Zurücksetzen',
1769
+ 'mfa.reason': 'Grund',
1770
+ 'mfa.reset_help': 'Entfernt die Apps und Wiederherstellungscodes von {user} und meldet die Person ab. Protokolliert; die Administratoren erhalten eine E-Mail.',
1771
+ 'mfa.reset_btn': 'Zwei-Faktor-Anmeldung zurücksetzen',
1772
+ 'mfa.reason_needed': 'Geben Sie einen Grund für das Zurücksetzen an.',
1773
+ 'mfa.reset_done': 'Zwei-Faktor-Anmeldung von {user} zurückgesetzt.',
1774
+ 'mfa.policy_title': 'Zwei-Faktor-Anmeldung',
1775
+ 'mfa.policy_label': 'Zwei-Faktor-Anmeldung verlangen für',
1776
+ 'mfa.policy_off': 'Niemanden (freiwillig)',
1777
+ 'mfa.policy_admins': 'Administratoren',
1778
+ 'mfa.policy_all': 'Alle Entwickler',
1779
+ 'mfa.grace': 'Übergangsfrist (Tage)',
1780
+ 'mfa.grace_help': 'Entwickler ohne App sehen bis dahin eine Erinnerung, danach nur noch ihre Sicherheitsseite.',
1781
+ 'mfa.policy_help': 'Administratoren mit Zwei-Faktor-Anmeldung: {enrolled} von {admins}. Zum Verlangen braucht es mindestens zwei (oder alle, wenn es weniger sind).',
1782
+ 'mfa.policy_save': 'Speichern',
1783
+ 'mfa.policy_saved': 'Zwei-Faktor-Richtlinie gespeichert.',
1784
+ 'mfa.policy_needs_admins': 'Zuerst müssen mindestens zwei Administratoren (oder alle, wenn es weniger sind) die Zwei-Faktor-Anmeldung einrichten, damit niemand allein ausgesperrt wird.',
1785
+ 'mfa.without': 'Ohne Zwei-Faktor-Anmeldung: {list}.',
1786
+ 'mfa.cli_note': 'Ausgesperrt? Auf dem Server: pgkiln admin reset-2fa <developer> oder pgkiln admin set-2fa-policy off.',
1386
1787
  };