119 lines
7.4 KiB
PHP
119 lines
7.4 KiB
PHP
<?php
|
|
|
|
// Auth feature strings (login, password change, 2FA challenge + setup, auth brand panel).
|
|
// Shared actions/status live in common.php (R16). de = original German verbatim.
|
|
return [
|
|
// ── Login ────────────────────────────────────────────────────────────
|
|
'control_plane' => 'Control Plane',
|
|
'login_heading' => 'Anmelden',
|
|
'login_subtitle' => 'Zugang zum Clusev-Panel.',
|
|
'email' => 'E-Mail',
|
|
'password' => 'Passwort',
|
|
'remember_me' => 'Angemeldet bleiben',
|
|
'login_submit' => 'Anmelden',
|
|
'checking' => 'Prüfe…',
|
|
'secured' => 'Gesichert',
|
|
'security_note' => 'Verbindung über SSH · 2FA erforderlich · jede Aktion landet im Audit-Log.',
|
|
|
|
// ── Password change ──────────────────────────────────────────────────
|
|
'security' => 'Sicherheit',
|
|
'password_change_heading' => 'Passwort ändern',
|
|
'password_change_subtitle' => 'Lege ein eigenes Passwort fest (min. 12 Zeichen, Groß-/Kleinschreibung + Zahl).',
|
|
'current_password' => 'Aktuelles Passwort',
|
|
'new_password' => 'Neues Passwort',
|
|
'confirm_new_password' => 'Neues Passwort bestätigen',
|
|
'save_and_continue' => 'Speichern & weiter',
|
|
'saving' => 'Speichere…',
|
|
|
|
// ── Two-factor (shared label) ────────────────────────────────────────
|
|
'two_factor' => 'Zwei-Faktor',
|
|
|
|
// ── 2FA challenge ────────────────────────────────────────────────────
|
|
'challenge_heading' => 'Bestätigung',
|
|
'challenge_subtitle' => '6-stelliger Code aus deiner Authenticator-App.',
|
|
'code' => 'Code',
|
|
'back_to_login' => 'Zurück zur Anmeldung',
|
|
|
|
// ── 2FA setup ────────────────────────────────────────────────────────
|
|
'setup_heading' => 'Einrichten',
|
|
'setup_subtitle' => 'Scanne den Code mit einer Authenticator-App (Aegis, Google Authenticator, …) und bestätige mit einem Code.',
|
|
'qr_alt' => '2FA-QR-Code',
|
|
'secret_manual' => 'Geheimnis (manuell)',
|
|
'confirmation_code' => 'Bestätigungs-Code',
|
|
'activate' => 'Aktivieren',
|
|
|
|
// ── Brand panel (auth layout) ────────────────────────────────────────
|
|
'brand_headline_lead' => 'Eine Konsole für deine',
|
|
'brand_headline_accent' => 'gesamte Flotte',
|
|
'brand_tagline' => 'Agentenlos über SSH. Metriken, Dienste, Dateien und ein lückenloses Audit-Log — sicher aus einem Panel gesteuert.',
|
|
'terminal_title' => 'clusev · sicherheitsmodell',
|
|
'terminal_ssh' => 'agentenlos · exec + SFTP über phpseclib',
|
|
'terminal_key' => 'Host-Keys via TOFU gepinnt',
|
|
'terminal_2fa' => 'erzwungen für jeden Login',
|
|
'terminal_log' => 'jede Aktion im Audit-Log',
|
|
'terminal_core' => 'Open Core · AGPL-lizenziert',
|
|
'footer_copyright' => '© :year Clusev · Fleet Control',
|
|
'footer_operational' => 'betriebsbereit',
|
|
|
|
// ── Page titles ──────────────────────────────────────────────────────
|
|
'title_login' => 'Anmelden — Clusev',
|
|
'title_password_change' => 'Passwort ändern — Clusev',
|
|
'title_challenge' => 'Bestätigung — Clusev',
|
|
'title_setup' => '2FA einrichten — Clusev',
|
|
|
|
// ── Validation / error messages ──────────────────────────────────────
|
|
'too_many_attempts' => 'Zu viele Versuche. Bitte in :seconds Sekunden erneut versuchen.',
|
|
'invalid_credentials' => 'Diese Zugangsdaten passen nicht.',
|
|
'session_expired' => 'Sitzung abgelaufen. Bitte erneut anmelden.',
|
|
'invalid_code' => 'Ungültiger Code.',
|
|
'code_mismatch' => 'Code stimmt nicht — prüfe die Uhrzeit der Authenticator-App.',
|
|
|
|
// ── Validation attribute names ───────────────────────────────────────
|
|
'attr_current_password' => 'aktuelles Passwort',
|
|
'attr_new_password' => 'neues Passwort',
|
|
|
|
// ── 2FA backup (recovery) codes ──────────────────────────────────────
|
|
'challenge_recovery_hint' => 'Authenticator verloren? Gib einen deiner Backup-Codes ein.',
|
|
'title_recovery' => 'Backup-Codes — Clusev',
|
|
'recovery_heading' => 'Backup-Codes',
|
|
'recovery_subtitle' => 'Mit diesen Einmal-Codes meldest du dich an, wenn du keinen Authenticator hast.',
|
|
'recovery_warning' => 'Speichere diese Codes jetzt sicher ab — jeder Code funktioniert genau einmal. Lade sie herunter, solange sie angezeigt werden.',
|
|
'recovery_download' => 'Als Datei herunterladen',
|
|
'recovery_regenerate' => 'Neu erzeugen',
|
|
'recovery_regenerate_confirm' => 'Neue Codes erzeugen? Die alten werden ungültig.',
|
|
'recovery_regenerated' => 'Neue Backup-Codes erzeugt.',
|
|
'recovery_done' => 'Gespeichert — weiter',
|
|
'recovery_manage' => 'Backup-Codes verwalten',
|
|
|
|
// ── Forgot / reset password ──────────────────────────────────────────
|
|
'title_forgot' => 'Passwort vergessen — Clusev',
|
|
'forgot_link' => 'Passwort vergessen?',
|
|
'forgot_heading' => 'Passwort zurücksetzen',
|
|
'forgot_subtitle' => 'Setze dein Passwort mit deinem 2FA-Code oder einem Backup-Code zurück.',
|
|
'forgot_code' => '2FA-Code oder Backup-Code',
|
|
'forgot_code_hint' => '6-stelliger Authenticator-Code oder einer deiner Backup-Codes.',
|
|
'forgot_submit' => 'Passwort zurücksetzen',
|
|
'forgot_send_email' => 'Reset-Link per E-Mail senden',
|
|
'reset_invalid' => 'E-Mail oder Code ungültig.',
|
|
'reset_done' => 'Passwort geändert. Bitte neu anmelden.',
|
|
'reset_link_sent' => 'Falls die E-Mail existiert, wurde ein Reset-Link versendet.',
|
|
'reset_token_invalid' => 'Reset-Link ungültig oder abgelaufen.',
|
|
|
|
// ── WebAuthn / Security-Keys ─────────────────────────────────────────
|
|
'webauthn_login' => 'Mit Security-Key anmelden',
|
|
'webauthn_failed' => 'Security-Key konnte nicht bestätigt werden.',
|
|
'webauthn_title' => 'Security-Keys',
|
|
'webauthn_subtitle' => 'Hardware-Schlüssel (z. B. YubiKey) als zweiten Faktor beim Login.',
|
|
'webauthn_unavailable' => 'Security-Keys sind nur verfügbar, wenn das Panel unter einer Domain mit HTTPS läuft.',
|
|
'webauthn_name' => 'Bezeichnung',
|
|
'webauthn_name_placeholder' => 'z. B. YubiKey 5C',
|
|
'webauthn_add' => 'Security-Key hinzufügen',
|
|
'webauthn_added' => 'Security-Key hinzugefügt.',
|
|
'webauthn_removed' => 'Security-Key entfernt.',
|
|
'webauthn_none' => 'Noch kein Security-Key registriert.',
|
|
'webauthn_added_on' => 'Hinzugefügt :date',
|
|
'webauthn_last_used' => 'Zuletzt verwendet :date',
|
|
'webauthn_never_used' => 'Noch nicht verwendet',
|
|
'webauthn_remove_confirm' => 'Diesen Security-Key entfernen?',
|
|
];
|