<?php

return [
    // Names of the managed credentials.
    'item' => [
        'stripe_secret' => 'Stripe secret key',
        'stripe_webhook_secret' => 'Stripe webhook signing secret',
        'stripe_publishable_key' => 'Stripe publishable key (public)',
        'inbound_mail_password' => 'Support mailbox password',
        'dns_token' => 'Hetzner DNS API token',
        'monitoring_token' => 'Uptime Kuma API token',
        'ssh_private_key' => 'SSH key (private)',
        'server_private_key' => 'Server terminal key (private)',
    ],

    'ssh_private_key_hint' => 'This identity is deployed to every fresh host — the most sensitive value in the system, it opens every server CluPilot manages.',

    'title' => 'Credentials',
    'subtitle' => 'Keys for connected services — changeable here, without server access.',
    'no_key' => 'SECRETS_KEY is not set on this server. Without a key of its own nothing is stored here — deliberately, because APP_KEY is rotated as routine maintenance.',

    'locked_title' => 'Locked',
    'locked_body' => 'Confirm your password. Being signed in is not enough here — the realistic case is an unlocked machine, and that is exactly what a session hands over.',
    'unlock' => 'Unlock',
    'unlocked_note' => 'Unlocked. Changes take effect on the running system immediately.',
    'lock_again' => 'Lock again',

    // Which of the two slots this entry resolves to right now — for both
    // saving and reading, since save()/render() resolve against
    // OperatingMode::current() without a mode argument. Names the SLOT, not
    // the mode: "Test mode"/"Live mode" already sits in the badge at the top
    // of the page; this is about which of the two rows a new value actually
    // lands in.
    'slot' => [
        'test' => 'Test slot active',
        'live' => 'Live slot active',
    ],

    'source_stored' => 'Stored here',
    // In test mode the live value applies when the test slot is empty —
    // exactly what SecretVault::get() does. Without a label of its own this
    // read "From the server file" over a value coming from the database.
    'source_stored_live' => 'From the live slot',
    'source_environment' => 'From the server file',
    'source_none' => 'Not set',
    'stored_value' => 'Stored',
    'changed' => 'Changed',
    'new_value' => 'New value',
    'new_value_hint' => 'Stored encrypted and never shown in full again.',

    'test' => 'Test connection',
    'save' => 'Save',
    // Modal instead of wire:confirm (R23): the title names which of the
    // three keys is meant — the old sentence alone did not. The body is
    // unchanged, the former confirmation sentence; _confirm is now the short
    // confirm-button label, as everywhere else in the repo.
    'ssh_generate' => 'Generate a keypair',
    'ssh_generate_hint' => 'Ed25519. The private half goes straight into the vault and is never shown.',
    'ssh_generate_title' => 'Generate a new keypair?',
    'ssh_generate_body' => 'The current private key is replaced. The current public half stays in the authorized_keys of every onboarded host and the new one is not there yet — until you install it, this console cannot reach any of those machines.',
    'ssh_generate_confirm' => 'Generate',
    'ssh_generated' => 'Keypair generated. The public half is below — it belongs on every host already onboarded.',

    'save_title' => 'Really apply :label?',
    'save_body' => 'It takes effect immediately — a wrong value stops payments.',
    'save_confirm' => 'Apply',
    'forget' => 'Remove from here',
    'forget_title' => 'Remove :label from here?',
    'forget_body' => 'The server file applies again — if it has one.',
    'forget_confirm' => 'Remove',
    'saved' => 'Saved. The new value applies immediately.',
    'removed' => 'Removed. The server file applies again.',
    'empty' => 'Enter a value.',
    'check_writable' => 'The token may write. A probe record was created and removed again.',
    'check_read_only' => 'The token may read but not write. Every new instance\'s A record then fails — after payment.',
    'check_write_failed' => 'The write was rejected. That says nothing about the token\'s permissions.',
    'check_zone_not_found' => 'The configured zone is not in this account. Details on the readiness page.',
    'check_zone_list_failed' => 'The zone list did not arrive. That says nothing about this account\'s zones.',
    'check_zone_list_unreadable' => 'The answer was not a zone list. Something else replied.',

    'check_title' => 'Result',
    'check_missing' => 'No key is stored here and none is in the server file.',
    'check_unreachable' => 'Stripe could not be reached. That says nothing about the key.',
    'check_rejected' => 'Stripe rejected the key. It is wrong, revoked, or belongs to another account.',
    'check_error' => 'Stripe answered unexpectedly.',
    'check_account' => 'Account',
    'check_mode' => 'Mode',
    'mode_live' => 'LIVE — real payments',
    'mode_test' => 'Test',
    'mode_restricted' => 'restricted key',
    'check_webhooks' => 'Configured webhooks and their events',
    'check_webhooks_unknown' => 'This key may not read webhooks — normal for a restricted key.',
    'check_webhooks_none' => 'Stripe has no webhook configured. Without one, payments are not recorded.',

    'publishable_hint' => 'Starts with pk_test_ or pk_live_. Stored in the clear — it is public.',
    'publishable_wrong_mode' => 'This key belongs to the :mode account, so it is in the wrong slot.',
    'publishable_saved' => 'Publishable key saved.',
    'publishable_note' => 'This installation does not read the publishable key today: the checkout redirects to Stripe\'s own payment page, and no Stripe.js runs in the browser. It is here so all three values from the Stripe dashboard live in one place — and it is needed the moment an embedded payment form is added. Said rather than left out, so nobody mistakes it for a setting that takes effect.',
    'webhook_secret_note' => 'Both values are per operating mode: Stripe issues separate keys for test and live, and each card here writes into the slot of the mode currently active. The signing secret is in the Stripe dashboard under Developers → Webhooks, on the endpoint pointing at this installation.',
];
