<?php

return [
    // Die Namen der verwalteten Zugangsdaten.
    'item' => [
        'stripe_secret' => 'Stripe Secret Key',
        'stripe_webhook_secret' => 'Stripe Webhook-Signatur-Secret',
        'stripe_publishable_key' => 'Stripe Publishable Key (öffentlich)',
        'inbound_mail_password' => 'Passwort des Support-Postfachs',
        'dns_token' => 'Hetzner-DNS-API-Token',
        'monitoring_token' => 'Uptime-Kuma-API-Token',
        'ssh_private_key' => 'SSH-Schlüssel (privat)',
        'server_private_key' => 'Serverschlüssel für das Terminal (privat)',
    ],

    'ssh_private_key_hint' => 'Diese Identität wird auf jedem neuen Host hinterlegt — der empfindlichste Wert im System, er öffnet jeden Server, den CluPilot verwaltet.',

    'title' => 'Zugangsdaten',
    'subtitle' => 'Schlüssel für angebundene Dienste — hier änderbar, ohne Zugriff auf den Server.',
    'no_key' => 'SECRETS_KEY ist auf diesem Server nicht gesetzt. Ohne eigenen Schlüssel werden hier keine Zugangsdaten gespeichert — bewusst, denn APP_KEY wird routinemäßig gewechselt.',

    'locked_title' => 'Gesperrt',
    'locked_body' => 'Bitte bestätigen Sie Ihr Passwort. Angemeldet zu sein genügt hier nicht — der realistische Fall ist ein offener Rechner, und genau den gibt eine Sitzung her.',
    'unlock' => 'Entsperren',
    'unlocked_note' => 'Entsperrt. Änderungen wirken sofort auf den laufenden Betrieb.',
    'lock_again' => 'Wieder sperren',

    // Welcher der zwei Plätze dieses Eintrags jetzt gilt — Speichern UND
    // Lesen, weil save()/render() ohne Modus-Argument auf
    // OperatingMode::current() auflösen. Benennt den PLATZ, nicht den Modus:
    // „Testbetrieb"/„Livebetrieb" steht schon in der Plakette oben auf der
    // Seite, hier geht es darum, in welche der zwei Zeilen ein neuer Wert
    // tatsächlich landet.
    'slot' => [
        'test' => 'Testplatz aktiv',
        'live' => 'Live-Platz aktiv',
    ],

    'source_stored' => 'Hier hinterlegt',
    // Im Testbetrieb gilt der Live-Wert, wenn der Testplatz leer ist — genau
    // das, was SecretVault::get() tut. Ohne eigene Beschriftung stand hier
    // „Aus der Serverdatei" über einem Wert aus der Datenbank, und wer die
    // .env daraufhin änderte, änderte nichts.
    'source_stored_live' => 'Aus dem Live-Platz',
    'source_environment' => 'Aus der Serverdatei',
    'source_none' => 'Nicht gesetzt',
    'stored_value' => 'Hinterlegt',
    'changed' => 'Geändert',
    'new_value' => 'Neuer Wert',
    'new_value_hint' => 'Wird verschlüsselt gespeichert und nie wieder vollständig angezeigt.',

    'test' => 'Verbindung testen',
    'save' => 'Speichern',
    // Modal statt wire:confirm (R23): der Titel nennt, anders als der alte
    // Fließtext, welcher der drei Schlüssel gemeint ist — sonst nicht zu
    // unterscheiden. Der Fließtext selbst (body) ist unverändert der frühere
    // Bestätigungssatz; _confirm ist jetzt die kurze Knopfbeschriftung, wie
    // überall sonst im Repo.
    'ssh_generate' => 'Schlüsselpaar erzeugen',
    'ssh_generate_hint' => 'Ed25519. Der private Teil geht direkt in den Tresor und wird nie angezeigt.',
    'ssh_generate_title' => 'Neues Schlüsselpaar erzeugen?',
    'ssh_generate_body' => 'Der bisherige private Schlüssel wird ersetzt. Der bisherige öffentliche Teil steht weiter in den authorized_keys jedes übernommenen Hosts, der neue noch nicht — bis Sie ihn dort eintragen, erreicht die Konsole keine dieser Maschinen mehr.',
    'ssh_generate_confirm' => 'Erzeugen',
    'ssh_generated' => 'Schlüsselpaar erzeugt. Der öffentliche Teil steht unten — er gehört auf jeden bereits übernommenen Host.',

    'save_title' => ':label wirklich übernehmen?',
    'save_body' => 'Er wirkt sofort — ein falscher Wert legt Zahlungen still.',
    'save_confirm' => 'Übernehmen',
    'forget' => 'Hier entfernen',
    'forget_title' => ':label hier entfernen?',
    'forget_body' => 'Danach gilt wieder der Wert aus der Serverdatei — falls dort einer steht.',
    'forget_confirm' => 'Entfernen',
    'saved' => 'Gespeichert. Der neue Wert gilt ab sofort.',
    'removed' => 'Entfernt. Es gilt wieder der Wert aus der Serverdatei.',
    'empty' => 'Bitte einen Wert eingeben.',
    'check_writable' => 'Der Token darf schreiben. Ein Probeeintrag wurde angelegt und wieder entfernt.',
    'check_read_only' => 'Der Token darf lesen, aber nicht schreiben. Damit scheitert der A-Eintrag jeder neuen Instanz — nach der Bezahlung.',
    'check_write_failed' => 'Der Schreibversuch wurde abgelehnt. Über die Berechtigung des Tokens sagt das nichts.',
    'check_zone_not_found' => 'Die eingetragene Zone liegt nicht in diesem Konto. Einzelheiten auf der Bereitschaftsseite.',
    'check_zone_list_failed' => 'Die Zonenliste kam nicht. Über die Zonen dieses Kontos sagt das nichts.',
    'check_zone_list_unreadable' => 'Die Antwort war keine Zonenliste. Da hat etwas anderes geantwortet.',

    'check_title' => 'Ergebnis der Prüfung',
    'check_missing' => 'Es ist kein Schlüssel hinterlegt und auch keiner in der Serverdatei.',
    'check_unreachable' => 'Stripe war nicht erreichbar. Das sagt nichts über den Schlüssel aus.',
    'check_rejected' => 'Stripe hat den Schlüssel abgelehnt. Er ist falsch, widerrufen oder gehört zu einem anderen Konto.',
    'check_error' => 'Stripe hat unerwartet geantwortet.',
    'check_account' => 'Konto',
    'check_mode' => 'Modus',
    'mode_live' => 'LIVE — echte Zahlungen',
    'mode_test' => 'Test',
    'mode_restricted' => 'eingeschränkter Schlüssel',
    'check_webhooks' => 'Hinterlegte Webhooks und ihre Ereignisse',
    'check_webhooks_unknown' => 'Dieser Schlüssel darf die Webhooks nicht lesen — das ist bei eingeschränkten Schlüsseln normal.',
    'check_webhooks_none' => 'Bei Stripe ist kein Webhook eingetragen. Ohne ihn werden Zahlungen nicht verbucht.',

    'publishable_hint' => 'Beginnt mit pk_test_ oder pk_live_. Wird im Klartext gespeichert — er ist öffentlich.',
    'publishable_wrong_mode' => 'Dieser Schlüssel gehört zum Konto für :mode. Er liegt damit im falschen Platz.',
    'publishable_saved' => 'Publishable Key gespeichert.',
    'publishable_note' => 'Der Publishable Key wird von dieser Installation heute nicht ausgelesen: die Kasse leitet auf Stripes eigene Bezahlseite weiter, im Browser läuft kein Stripe.js. Er steht hier, damit alle drei Werte aus dem Stripe-Dashboard an einer Stelle liegen — und er wird gebraucht, sobald eine eingebettete Bezahlmaske dazukommt. Gesagt statt verschwiegen, damit niemand ihn für eine wirksame Einstellung hält.',
    'webhook_secret_note' => 'Beide Werte gelten je Betriebsmodus: Stripe stellt für Test und Live eigene Schlüssel aus, und jede Karte hier schreibt in den Platz des gerade aktiven Modus. Das Signatur-Secret steht im Stripe-Dashboard unter Entwickler → Webhooks bei dem Endpunkt, der auf diese Installation zeigt.',
];
