<?php
/**
 * Onboarding wizard translations (6 locales). Kept inline (not via .po/.mo)
 * because the wizard is shown ONCE per install, before any user has had a
 * chance to switch the WP language — selecting it inside the wizard is the
 * point. Plugin-wide UI continues to use WordPress' standard i18n.
 *
 * @package Brainwerk Security Suite
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

class Shieldforge_Onboarding_I18n {

    const OPTION_KEY = 'shieldforge_onboarding_locale';
    const DEFAULT_LOCALE = 'en';

    /**
     * Supported locales -> native language label (shown in the picker).
     */
    public static function locales() {
        return array(
            'de' => 'Deutsch',
            'en' => 'English',
            'fr' => 'Français',
            'it' => 'Italiano',
            'pl' => 'Polski',
            'es' => 'Español',
        );
    }

    public static function is_supported( $locale ) {
        return array_key_exists( (string) $locale, self::locales() );
    }

    public static function current_locale() {
        $stored = is_multisite()
            ? get_site_option( self::OPTION_KEY, '' )
            : get_option( self::OPTION_KEY, '' );

        if ( $stored && self::is_supported( $stored ) ) {
            return $stored;
        }
        // Fall back to WP locale prefix if it matches one of ours.
        $wp = function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale();
        $prefix = strtolower( substr( (string) $wp, 0, 2 ) );
        if ( self::is_supported( $prefix ) ) {
            return $prefix;
        }
        return self::DEFAULT_LOCALE;
    }

    public static function set_locale( $locale ) {
        if ( ! self::is_supported( $locale ) ) {
            return false;
        }
        if ( is_multisite() ) {
            update_site_option( self::OPTION_KEY, $locale );
        } else {
            update_option( self::OPTION_KEY, $locale );
        }
        return true;
    }

    public static function t( $key, $locale = null ) {
        $locale = $locale ?: self::current_locale();
        $strings = self::strings();
        if ( isset( $strings[ $locale ][ $key ] ) ) {
            return $strings[ $locale ][ $key ];
        }
        if ( isset( $strings[ self::DEFAULT_LOCALE ][ $key ] ) ) {
            return $strings[ self::DEFAULT_LOCALE ][ $key ];
        }
        return $key;
    }

    /**
     * The full string table. Keys are stable identifiers, values per-locale.
     * Translations were prepared by the developer; native speakers should
     * proof-read before WP.org submission.
     */
    private static function strings() {
        return array(
            // ===================================================== ENGLISH
            'en' => array(
                'language_title'      => 'Choose your language',
                'language_intro'      => 'Pick the language for this setup. You can change it later on the Brainwerk Security Suite dashboard.',
                'continue_btn'        => 'Continue',

                'step_language'       => 'Language',
                'step_welcome'        => 'Welcome',
                'step_privacy'        => 'Privacy',
                'step_login'          => 'Login protection',
                'step_notifications'  => 'Notifications',
                'step_done'           => 'Finish',

                'welcome_title'       => 'Welcome to Brainwerk Security Suite',
                'welcome_intro'       => 'A privacy-first WordPress security suite, designed for EU compliance and Multisite. The next four steps will help you tune the basics.',
                'welcome_li_1'        => 'No external services. All data stays on your server.',
                'welcome_li_2'        => 'IP addresses are anonymized by default (GDPR-friendly).',
                'welcome_li_3'        => 'Brute-force protection is enabled out of the box.',

                'privacy_title'       => 'Privacy defaults',
                'privacy_anon'        => 'Anonymize IP addresses',
                'privacy_pseudonym'   => 'Pseudonymize usernames in logs',
                'privacy_retention'   => 'Log retention (days)',

                'login_title'         => 'Login protection',
                'login_enabled'       => 'Enable brute-force protection',
                'login_threshold'     => 'Lock out after how many failed attempts?',
                'login_lockout'       => 'Lockout duration (minutes)',

                'notif_title'         => 'Notifications',
                'notif_alerts'        => 'E-mail alerts for serious events',
                'notif_recipient'     => 'Recipient',
                'notif_digest'        => 'Daily digest e-mail',

                'done_title'          => 'You are all set.',
                'done_body'           => 'Visit the Dashboard tab to see live stats. You can re-run this wizard any time from the Onboarding tab.',
                'done_btn'            => 'Go to dashboard',

                'save'                => 'Save',
                'back'                => 'Back',
                'next'                => 'Next',
            ),

            // ===================================================== GERMAN
            'de' => array(
                'language_title'      => 'Sprache wählen',
                'language_intro'      => 'Wählen Sie die Sprache für diese Einrichtung. Sie können sie später im Brainwerk-Security-Suite-Dashboard ändern.',
                'continue_btn'        => 'Weiter',

                'step_language'       => 'Sprache',
                'step_welcome'        => 'Willkommen',
                'step_privacy'        => 'Datenschutz',
                'step_login'          => 'Login-Schutz',
                'step_notifications'  => 'Benachrichtigungen',
                'step_done'           => 'Fertig',

                'welcome_title'       => 'Willkommen bei Brainwerk Security Suite',
                'welcome_intro'       => 'Eine datenschutzfreundliche WordPress-Sicherheitslösung, ausgelegt auf DSGVO-Konformität und Multisite. Die nächsten vier Schritte richten die Grundeinstellungen ein.',
                'welcome_li_1'        => 'Keine externen Dienste. Alle Daten bleiben auf Ihrem Server.',
                'welcome_li_2'        => 'IP-Adressen werden standardmäßig anonymisiert (DSGVO-konform).',
                'welcome_li_3'        => 'Brute-Force-Schutz ist sofort aktiv.',

                'privacy_title'       => 'Datenschutz-Voreinstellungen',
                'privacy_anon'        => 'IP-Adressen anonymisieren',
                'privacy_pseudonym'   => 'Benutzernamen in Logs pseudonymisieren',
                'privacy_retention'   => 'Aufbewahrung der Logs (Tage)',

                'login_title'         => 'Login-Schutz',
                'login_enabled'       => 'Brute-Force-Schutz aktivieren',
                'login_threshold'     => 'Sperren nach wie vielen Fehlversuchen?',
                'login_lockout'       => 'Sperrdauer (Minuten)',

                'notif_title'         => 'Benachrichtigungen',
                'notif_alerts'        => 'E-Mail-Benachrichtigungen bei kritischen Ereignissen',
                'notif_recipient'     => 'Empfänger',
                'notif_digest'        => 'Tägliche Zusammenfassung per E-Mail',

                'done_title'          => 'Alles eingerichtet.',
                'done_body'           => 'Besuchen Sie den Dashboard-Tab für Live-Statistiken. Sie können diesen Assistenten jederzeit unter „Onboarding" erneut starten.',
                'done_btn'            => 'Zum Dashboard',

                'save'                => 'Speichern',
                'back'                => 'Zurück',
                'next'                => 'Weiter',
            ),

            // ===================================================== FRENCH
            'fr' => array(
                'language_title'      => 'Choisissez votre langue',
                'language_intro'      => 'Sélectionnez la langue pour cette configuration. Vous pourrez la modifier plus tard sur le tableau de bord de Brainwerk Security Suite.',
                'continue_btn'        => 'Continuer',

                'step_language'       => 'Langue',
                'step_welcome'        => 'Bienvenue',
                'step_privacy'        => 'Confidentialité',
                'step_login'          => 'Protection des connexions',
                'step_notifications'  => 'Notifications',
                'step_done'           => 'Terminer',

                'welcome_title'       => 'Bienvenue sur Brainwerk Security Suite',
                'welcome_intro'       => 'Une suite de sécurité WordPress axée sur la confidentialité, conçue pour la conformité RGPD et le Multisite. Les quatre étapes suivantes configurent les bases.',
                'welcome_li_1'        => 'Aucun service externe. Toutes les données restent sur votre serveur.',
                'welcome_li_2'        => 'Les adresses IP sont anonymisées par défaut (compatible RGPD).',
                'welcome_li_3'        => 'La protection contre les attaques par force brute est active dès le départ.',

                'privacy_title'       => 'Paramètres de confidentialité par défaut',
                'privacy_anon'        => 'Anonymiser les adresses IP',
                'privacy_pseudonym'   => 'Pseudonymiser les noms d\'utilisateur dans les journaux',
                'privacy_retention'   => 'Conservation des journaux (jours)',

                'login_title'         => 'Protection des connexions',
                'login_enabled'       => 'Activer la protection contre la force brute',
                'login_threshold'     => 'Bloquer après combien d\'échecs ?',
                'login_lockout'       => 'Durée du blocage (minutes)',

                'notif_title'         => 'Notifications',
                'notif_alerts'        => 'Alertes par e-mail pour les événements graves',
                'notif_recipient'     => 'Destinataire',
                'notif_digest'        => 'Résumé quotidien par e-mail',

                'done_title'          => 'Tout est prêt.',
                'done_body'           => 'Consultez l\'onglet Tableau de bord pour les statistiques en direct. Vous pouvez relancer cet assistant à tout moment depuis l\'onglet Onboarding.',
                'done_btn'            => 'Aller au tableau de bord',

                'save'                => 'Enregistrer',
                'back'                => 'Retour',
                'next'                => 'Suivant',
            ),

            // ===================================================== ITALIAN
            'it' => array(
                'language_title'      => 'Scegli la tua lingua',
                'language_intro'      => 'Seleziona la lingua per questa configurazione. Potrai modificarla in seguito dalla dashboard di Brainwerk Security Suite.',
                'continue_btn'        => 'Continua',

                'step_language'       => 'Lingua',
                'step_welcome'        => 'Benvenuto',
                'step_privacy'        => 'Privacy',
                'step_login'          => 'Protezione accessi',
                'step_notifications'  => 'Notifiche',
                'step_done'           => 'Fine',

                'welcome_title'       => 'Benvenuto in Brainwerk Security Suite',
                'welcome_intro'       => 'Una suite di sicurezza WordPress orientata alla privacy, pensata per la conformità GDPR e per il Multisite. I prossimi quattro passaggi configureranno le basi.',
                'welcome_li_1'        => 'Nessun servizio esterno. Tutti i dati rimangono sul tuo server.',
                'welcome_li_2'        => 'Gli indirizzi IP sono anonimizzati per impostazione predefinita (conforme al GDPR).',
                'welcome_li_3'        => 'La protezione contro gli attacchi a forza bruta è attiva fin da subito.',

                'privacy_title'       => 'Impostazioni privacy predefinite',
                'privacy_anon'        => 'Anonimizza gli indirizzi IP',
                'privacy_pseudonym'   => 'Pseudonimizza i nomi utente nei log',
                'privacy_retention'   => 'Conservazione dei log (giorni)',

                'login_title'         => 'Protezione accessi',
                'login_enabled'       => 'Attiva la protezione contro la forza bruta',
                'login_threshold'     => 'Blocca dopo quanti tentativi falliti?',
                'login_lockout'       => 'Durata del blocco (minuti)',

                'notif_title'         => 'Notifiche',
                'notif_alerts'        => 'Avvisi via e-mail per eventi gravi',
                'notif_recipient'     => 'Destinatario',
                'notif_digest'        => 'Riepilogo giornaliero via e-mail',

                'done_title'          => 'Tutto pronto.',
                'done_body'           => 'Visita la scheda Dashboard per le statistiche in tempo reale. Puoi riavviare questa procedura guidata in qualsiasi momento dalla scheda Onboarding.',
                'done_btn'            => 'Vai alla dashboard',

                'save'                => 'Salva',
                'back'                => 'Indietro',
                'next'                => 'Avanti',
            ),

            // ===================================================== POLISH
            'pl' => array(
                'language_title'      => 'Wybierz język',
                'language_intro'      => 'Wybierz język dla tej konfiguracji. Możesz go później zmienić na pulpicie Brainwerk Security Suite.',
                'continue_btn'        => 'Kontynuuj',

                'step_language'       => 'Język',
                'step_welcome'        => 'Witaj',
                'step_privacy'        => 'Prywatność',
                'step_login'          => 'Ochrona logowania',
                'step_notifications'  => 'Powiadomienia',
                'step_done'           => 'Zakończ',

                'welcome_title'       => 'Witaj w Brainwerk Security Suite',
                'welcome_intro'       => 'Pakiet zabezpieczeń WordPress stawiający na prywatność, zgodny z RODO i obsługujący Multisite. Następne cztery kroki skonfigurują podstawy.',
                'welcome_li_1'        => 'Bez usług zewnętrznych. Wszystkie dane pozostają na Twoim serwerze.',
                'welcome_li_2'        => 'Adresy IP są domyślnie anonimizowane (zgodnie z RODO).',
                'welcome_li_3'        => 'Ochrona przed atakami brute-force jest aktywna od razu.',

                'privacy_title'       => 'Domyślne ustawienia prywatności',
                'privacy_anon'        => 'Anonimizuj adresy IP',
                'privacy_pseudonym'   => 'Pseudonimizuj nazwy użytkowników w logach',
                'privacy_retention'   => 'Przechowywanie logów (dni)',

                'login_title'         => 'Ochrona logowania',
                'login_enabled'       => 'Włącz ochronę przed atakami brute-force',
                'login_threshold'     => 'Zablokuj po ilu nieudanych próbach?',
                'login_lockout'       => 'Czas blokady (minuty)',

                'notif_title'         => 'Powiadomienia',
                'notif_alerts'        => 'Powiadomienia e-mail przy poważnych zdarzeniach',
                'notif_recipient'     => 'Odbiorca',
                'notif_digest'        => 'Codzienne podsumowanie e-mail',

                'done_title'          => 'Wszystko gotowe.',
                'done_body'           => 'Odwiedź zakładkę Dashboard, aby zobaczyć statystyki na żywo. Ten kreator możesz uruchomić ponownie w dowolnej chwili z zakładki Onboarding.',
                'done_btn'            => 'Przejdź do dashboardu',

                'save'                => 'Zapisz',
                'back'                => 'Wstecz',
                'next'                => 'Dalej',
            ),

            // ===================================================== SPANISH
            'es' => array(
                'language_title'      => 'Elija su idioma',
                'language_intro'      => 'Seleccione el idioma para esta configuración. Podrá cambiarlo más tarde en el panel de Brainwerk Security Suite.',
                'continue_btn'        => 'Continuar',

                'step_language'       => 'Idioma',
                'step_welcome'        => 'Bienvenida',
                'step_privacy'        => 'Privacidad',
                'step_login'          => 'Protección de inicio de sesión',
                'step_notifications'  => 'Notificaciones',
                'step_done'           => 'Finalizar',

                'welcome_title'       => 'Bienvenido a Brainwerk Security Suite',
                'welcome_intro'       => 'Un conjunto de seguridad para WordPress centrado en la privacidad, diseñado para el cumplimiento del RGPD y para Multisite. Los próximos cuatro pasos configurarán los aspectos básicos.',
                'welcome_li_1'        => 'Sin servicios externos. Todos los datos permanecen en su servidor.',
                'welcome_li_2'        => 'Las direcciones IP se anonimizan de forma predeterminada (compatible con el RGPD).',
                'welcome_li_3'        => 'La protección contra fuerza bruta está activa desde el inicio.',

                'privacy_title'       => 'Ajustes de privacidad predeterminados',
                'privacy_anon'        => 'Anonimizar las direcciones IP',
                'privacy_pseudonym'   => 'Seudonimizar los nombres de usuario en los registros',
                'privacy_retention'   => 'Conservación de registros (días)',

                'login_title'         => 'Protección de inicio de sesión',
                'login_enabled'       => 'Activar la protección contra fuerza bruta',
                'login_threshold'     => '¿Bloquear tras cuántos intentos fallidos?',
                'login_lockout'       => 'Duración del bloqueo (minutos)',

                'notif_title'         => 'Notificaciones',
                'notif_alerts'        => 'Alertas por correo electrónico para eventos graves',
                'notif_recipient'     => 'Destinatario',
                'notif_digest'        => 'Resumen diario por correo electrónico',

                'done_title'          => 'Todo listo.',
                'done_body'           => 'Visite la pestaña Dashboard para ver estadísticas en directo. Puede volver a ejecutar este asistente en cualquier momento desde la pestaña Onboarding.',
                'done_btn'            => 'Ir al panel',

                'save'                => 'Guardar',
                'back'                => 'Atrás',
                'next'                => 'Siguiente',
            ),
        );
    }
}
