75 lines
4.3 KiB
PHP
75 lines
4.3 KiB
PHP
<?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 app’s time.',
|
||
|
||
// ── Validation attribute names ───────────────────────────────────────
|
||
'attr_current_password' => 'current password',
|
||
'attr_new_password' => 'new password',
|
||
];
|