clusev/lang/en/auth.php

131 lines
7.8 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
// Auth feature strings (login, password change, 2FA challenge + setup, auth brand panel).
// Shared actions/status live in common.php (R16). en = natural English, same terse register.
return [
// ── Login ────────────────────────────────────────────────────────────
'control_plane' => 'Control Plane',
'login_heading' => 'Sign in',
'login_subtitle' => 'Access to the Clusev panel.',
'email' => 'Email',
'password' => 'Password',
'toggle_password' => 'Show password',
'hide_password' => 'Hide password',
'remember_me' => 'Stay signed in',
'login_submit' => 'Sign in',
'checking' => 'Checking…',
'secured' => 'Secured',
'security_note' => 'Connection over SSH · 2FA recommended · every action lands in the audit log.',
// ── Password change ──────────────────────────────────────────────────
'security' => 'Security',
'password_change_heading' => 'Change password',
'password_change_subtitle' => 'Set your own password (min. 6 characters).',
'current_password' => 'Current password',
'new_password' => 'New password',
'confirm_new_password' => 'Confirm new password',
'save_and_continue' => 'Save & continue',
'saving' => 'Saving…',
'skip_for_now' => 'Skip for now',
'default_pw_warning' => 'Initial password still in use. For security, you should change it.',
'default_pw_change' => 'Change',
// ── Two-factor (shared label) ────────────────────────────────────────
'two_factor' => 'Two-factor',
// ── 2FA challenge ────────────────────────────────────────────────────
'challenge_heading' => 'Verification',
'challenge_subtitle' => '6-digit code from your authenticator app.',
'code' => 'Code',
'challenge_use_backup' => 'Use backup code',
'backup_heading' => 'Backup codes',
'backup_subtitle' => 'Enter a backup code to continue.',
'back_to_options' => 'Back to sign-in options',
'back_to_login' => 'Back to sign in',
// ── 2FA setup ────────────────────────────────────────────────────────
'setup_heading' => 'Set up',
'setup_subtitle' => 'Scan the code with an authenticator app (Aegis, Google Authenticator, …) and confirm with a code.',
'qr_alt' => '2FA QR code',
'secret_manual' => 'Secret (manual)',
'confirmation_code' => 'Confirmation code',
'activate' => 'Activate',
// ── Brand panel (auth layout) ────────────────────────────────────────
'brand_headline_lead' => 'One console for your',
'brand_headline_accent' => 'entire fleet',
'brand_tagline' => 'Agentless over SSH. Metrics, services, files and a gapless audit log — securely controlled from one panel.',
'terminal_title' => 'clusev · security model',
'terminal_ssh' => 'agentless · exec + SFTP over phpseclib',
'terminal_key' => 'host keys pinned via TOFU',
'terminal_2fa' => 'optional, but recommended',
'terminal_log' => 'every action in the audit log',
'terminal_core' => 'Open Core · AGPL-licensed',
'footer_copyright' => '© :year Clusev · Fleet Control',
'footer_operational' => 'operational',
// ── Page titles ──────────────────────────────────────────────────────
'title_login' => 'Sign in — Clusev',
'title_password_change' => 'Change password — Clusev',
'title_challenge' => 'Verification — Clusev',
'title_backup' => 'Backup code — Clusev',
'title_setup' => 'Set up 2FA — Clusev',
// ── Validation / error messages ──────────────────────────────────────
'too_many_attempts' => 'Too many attempts. Please try again in :seconds seconds.',
'invalid_credentials' => 'These credentials are incorrect.',
'session_expired' => 'Session expired. Please sign in again.',
'invalid_code' => 'Invalid code.',
'code_mismatch' => 'Code does not match — check your authenticator apps time.',
// ── Validation attribute names ───────────────────────────────────────
'attr_current_password' => 'current password',
'attr_new_password' => 'new password',
// ── 2FA backup (recovery) codes ──────────────────────────────────────
'challenge_key_subtitle' => 'Confirm with your security key or a backup code.',
'challenge_backup_label' => 'Backup code',
'challenge_backup_placeholder' => 'xxxxxxxxxx-xxxxxxxxxx',
'recovery_heading' => 'Backup codes',
'recovery_subtitle' => 'Use these one-time codes to sign in when you do not have your authenticator.',
'recovery_warning' => 'Save these codes somewhere safe now — each works exactly once. Download them while they are shown.',
'recovery_download' => 'Download as file',
'recovery_regenerate' => 'Regenerate',
'recovery_regenerated' => 'New backup codes generated.',
'recovery_manage' => 'Manage backup codes',
'recovery_hidden_notice' => 'For security, backup codes are shown only once, at creation. Generate a new set to see them — the old ones stop working.',
// ── Forgot / reset password ──────────────────────────────────────────
'title_forgot' => 'Forgot password — Clusev',
'forgot_link' => 'Forgot password?',
'forgot_heading' => 'Reset password',
'forgot_subtitle' => 'Reset your password with your 2FA code or a backup code.',
'forgot_subtitle_mail' => 'We will send you a reset link (valid for 15 minutes).',
'forgot_code' => '2FA code or backup code',
'forgot_code_hint' => 'Your 6-digit authenticator code or one of your backup codes.',
'forgot_submit' => 'Reset password',
'forgot_send_email' => 'Send reset link',
'forgot_use_code_toggle' => 'No email access? Reset with a 2FA code',
'reset_invalid' => 'Invalid email or code.',
'reset_done' => 'Password changed. Please sign in again.',
'reset_link_sent' => 'If the email exists, a reset link has been sent.',
'reset_token_invalid' => 'Reset link is invalid or expired.',
// ── WebAuthn / security keys ─────────────────────────────────────────
'webauthn_login' => 'Sign in with a security key',
'webauthn_failed' => 'Could not verify the security key.',
'webauthn_title' => 'Security keys',
'webauthn_subtitle' => 'Hardware keys (e.g. YubiKey) — as the only factor, with TOTP, or both.',
'webauthn_unavailable' => 'Security keys are only available when the panel runs under a domain with HTTPS.',
'webauthn_name' => 'Label',
'webauthn_name_placeholder' => 'e.g. YubiKey 5C',
'webauthn_add' => 'Add security key',
'webauthn_added' => 'Security key added.',
'webauthn_removed' => 'Security key removed.',
'webauthn_none' => 'No security key registered yet.',
'webauthn_added_on' => 'Added :date',
'webauthn_last_used' => 'Last used :date',
'webauthn_never_used' => 'Not used yet',
'webauthn_remove_confirm' => 'Remove this security key?',
];