clusev/lang/en/auth.php

122 lines
7.3 KiB
PHP
Raw 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',
'remember_me' => 'Stay signed in',
'login_submit' => 'Sign in',
'checking' => 'Checking…',
'secured' => 'Secured',
'security_note' => 'Connection over SSH · 2FA required · every action lands in the audit log.',
// ── Password change ──────────────────────────────────────────────────
'security' => 'Security',
'password_change_heading' => 'Change password',
'password_change_subtitle' => 'Set your own password (min. 12 characters, upper/lowercase + a digit).',
'current_password' => 'Current password',
'new_password' => 'New password',
'confirm_new_password' => 'Confirm new password',
'save_and_continue' => 'Save & continue',
'saving' => 'Saving…',
// ── Two-factor (shared label) ────────────────────────────────────────
'two_factor' => 'Two-factor',
// ── 2FA challenge ────────────────────────────────────────────────────
'challenge_heading' => 'Verification',
'challenge_subtitle' => '6-digit code from your authenticator app.',
'code' => 'Code',
'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' => 'enforced on every login',
'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_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_recovery_hint' => 'Lost your authenticator? Enter one of your backup codes.',
'challenge_key_subtitle' => 'Confirm with your security key or a backup code.',
'challenge_backup_label' => 'Backup code',
'challenge_backup_placeholder' => 'xxxxxxxxxx-xxxxxxxxxx',
'challenge_backup_only_hint' => 'No authenticator needed — use a security key or a backup code.',
'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_regenerate_confirm' => 'Generate new codes? The old ones stop working.',
'recovery_regenerated' => 'New backup codes generated.',
'recovery_done' => 'Saved — continue',
'recovery_manage' => 'Manage backup codes',
// ── 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_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' => 'Email me a reset link',
'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 a second factor at login.',
'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?',
];