/**
 * Dieses Objekt enthält alle Textbausteine für das Frontend.
 * Wenn wir später weitere Sprachen hinzufügen (z.B. 'es' für Spanisch),
 * müssen wir nur dieses Objekt erweitern, ohne den restlichen Code anzufassen.
 */
export const translations = {
    de: {
        // --- UI Elemente ---
        tab_login: "Login",
        tab_register: "Registrieren",
        btn_login: "Login",
        btn_register: "Jetzt kostenlos registrieren",
        link_forgot_password: "Passwort vergessen?",
        btn_reset_request: "Code anfordern",
        btn_reset_password: "Passwort ändern",
        discord_text: "Offizieller Discord Server",
        link_back: "« Zurück",
        btn_male: "Männlich",
        btn_female: "Weiblich",
        btn_cancel: "Abbrechen",
        btn_join: "Beitreten",
        
        // --- Platzhalter (Placeholders) ---
        ph_username_login: "Benutzername / E-Mail",
        ph_username_reg: "Benutzername eingeben",
        ph_email: "E-Mail eingeben",
        ph_password: "Passwort eingeben",
        ph_otp: "6-stelliger Code",
        
        // --- Labels ---
        lbl_agb: "Ich akzeptiere die <a href='agb.html' target='_blank'>AGB</a>, <a href='regeln.html' target='_blank'>Spielregeln</a> & den <a href='datenschutz.html' target='_blank'>Datenschutz</a>",
        lbl_remember: "Angemeldet bleiben",

        // --- OTP Modus ---
        txt_otp_instruction: "Bitte gib den 6-stelligen Code aus deiner E-Mail ein.",
        txt_reset_instruction_1: "Um dein Passwort zurückzusetzen, gib bitte deine E-Mail-Adresse ein.",
        txt_reset_instruction_2: "Bitte gib den Code aus der E-Mail sowie dein neues Passwort ein.",
        btn_verify: "BESTÄTIGEN",
        msg_verify_success: "Verifizierung erfolgreich! Du kannst dich nun einloggen.",
        link_resend_otp: "Code erneut senden",

        // --- Sektor-Onboarding ---
        ERR_ALREADY_IN_SECTOR: "Du bist diesem Sektor bereits beigetreten.",
        ERR_LOCAL_USERNAME_TAKEN: "Dieser Commander-Name ist in diesem Sektor leider schon vergeben.",
        ERR_ACCOUNT_ALREADY_EXISTS: "Dieser Commander-Name oder deine Lobby-ID ist in diesem Sektor bereits registriert.",
        ERR_SECTOR_OFFLINE: "Dieser Sektor ist derzeit offline oder wird gewartet. Beitritt nicht möglich.",
        ERR_SECTOR_CONNECTION_FAILED: "Verbindung zum Sektor fehlgeschlagen. Bitte versuche es später noch einmal.",
        MSG_SECTOR_JOINED_SUCCESS: "Sektor erfolgreich beigetreten!",        

        // --- Footer ---
        link_agb: "AGB",
        link_rules: "Spielregeln",
        link_imprint: "Impressum",
        link_privacy: "Datenschutz",

        // --- Backend Fehlermeldungen (Mapping) ---
        ERR_MISSING_FIELDS: "Bitte alle Felder ausfüllen.",
        ERR_PASSWORD_TOO_SHORT: "Das Passwort muss mindestens 8 Zeichen lang sein.",
        ERR_USERNAME_TOO_SHORT: "Der Benutzername muss mindestens 3 Zeichen lang sein.",
        ERR_INVALID_EMAIL: "Das E-Mail-Format ist ungültig.",
        ERR_USERNAME_TAKEN: "Dieser Benutzername ist bereits vergeben.",
        ERR_EMAIL_TAKEN: "Diese E-Mail-Adresse ist bereits vergeben.",
        ERR_INVALID_CREDENTIALS: "Benutzername/E-Mail oder Passwort falsch.",
        ERR_EMAIL_NOT_VERIFIED: "Bitte bestätige zuerst deine E-Mail-Adresse.",
        ERR_INTERNAL_SERVER: "Ein interner Serverfehler ist aufgetreten.",
        ERR_INVALID_OTP: "Der eingegebene Code ist falsch. Bitte überprüfe deine Eingabe.",
        ERR_OTP_EXPIRED: "Dieser Code ist abgelaufen. Bitte fordere einen neuen Code an.",
        ERR_COOLDOWN_ACTIVE: "Bitte warte 2 Minuten, bevor du einen neuen Code anforderst.",
        
        // --- Erfolgsmeldungen ---
        MSG_REGISTER_SUCCESS: "Registrierung erfolgreich. Bitte prüfe deine E-Mails.",
        MSG_LOGIN_SUCCESS: "Erfolgreich eingeloggt!",
        MSG_OTP_RESENT: "Ein neuer Code wurde an deine E-Mail gesendet.",
        MSG_RESET_EMAIL_SENT: "Code gesendet. Bitte prüfe deine E-Mails.",
        MSG_PASSWORD_RESET_SUCCESS: "Passwort geändert! Du kannst dich nun einloggen.",
    },
    en: {
        // --- UI Elements ---
        tab_login: "Login",
        tab_register: "Register",
        btn_login: "LOGIN",
        btn_register: "REGISTER",
        discord_text: "Official Discord Server",
        link_forgot_password: "Forgot Password?",
        btn_reset_request: "REQUEST CODE",
        btn_reset_password: "CHANGE PASSWORD",
        link_back: "« back",
        btn_male: "Male",
        btn_female: "Female",
        btn_cancel: "Cancel",
        btn_join: "Join Sector",
        
        // --- Placeholders ---
        ph_username_login: "Username / E-Mail",
        ph_username_reg: "Enter Username",
        ph_email: "Enter E-Mail",
        ph_password: "Enter Password",
        ph_otp: "6-digit code",
        
        // --- Labels ---
        lbl_agb: "I accept the <a href='agb.html' target='_blank'>Terms of Service</a>, <a href='regeln.html' target='_blank'>Rules</a> & <a href='datenschutz.html' target='_blank'>Privacy Policy</a>",
        lbl_remember: "Keep me logged in",
        
        // --- OTP Modus ---
        txt_otp_instruction: "Please enter the 6-digit code from your e-mail.",
        txt_reset_instruction_1: "To reset your password, please enter your e-mail address.",
        txt_reset_instruction_2: "Please enter the code from the e-mail and your new password.",
        btn_verify: "VERIFY",        
        msg_verify_success: "Verification successful! You can now log in.",
        link_resend_otp: "Resend Code",

        // --- Sektor-Onboarding ---
        ERR_ALREADY_IN_SECTOR: "You have already joined this sector.",
        ERR_LOCAL_USERNAME_TAKEN: "This Commander name is already taken in this sector.",
        ERR_ACCOUNT_ALREADY_EXISTS: "This Commander name or your Lobby ID is already registered in this sector.",
        ERR_SECTOR_OFFLINE: "This sector is currently offline or under maintenance. Cannot join.",
        ERR_SECTOR_CONNECTION_FAILED: "Connection to sector failed. Please try again later.",
        MSG_SECTOR_JOINED_SUCCESS: "Successfully joined the sector!",

        // --- Footer ---
        link_agb: "Terms of Service",
        link_rules: "Game Rules",
        link_imprint: "Imprint",
        link_privacy: "Privacy Policy",

        // --- Backend Error Messages (Mapping) ---
        ERR_MISSING_FIELDS: "Please fill in all fields.",
        ERR_PASSWORD_TOO_SHORT: "Password must be at least 8 characters long.",
        ERR_USERNAME_TOO_SHORT: "Username must be at least 3 characters long.",
        ERR_INVALID_EMAIL: "Invalid e-mail format.",
        ERR_USERNAME_TAKEN: "This username is already taken.",
        ERR_EMAIL_TAKEN: "This e-mail address is already taken.",
        ERR_INVALID_CREDENTIALS: "Invalid username/e-mail or password.",
        ERR_EMAIL_NOT_VERIFIED: "Please verify your e-mail address first.",
        ERR_INTERNAL_SERVER: "An internal server error occurred.",
        ERR_INVALID_OTP: "The entered code is incorrect. Please check your input.",
        ERR_OTP_EXPIRED: "This code has expired. Please request a new code.",
        ERR_COOLDOWN_ACTIVE: "Please wait 2 minutes before requesting a new code.",
        
        // --- Success Messages ---
        MSG_REGISTER_SUCCESS: "Registration successful. Please check your e-mails.",
        MSG_LOGIN_SUCCESS: "Successfully logged in!",
        MSG_OTP_RESENT: "A new code has been sent to your e-mail.",
        MSG_RESET_EMAIL_SENT: "Code sent. Please check your e-mails.",
        MSG_PASSWORD_RESET_SUCCESS: "Password changed! You can now log in.",
    }
};

export let currentLang = localStorage.getItem('void_language') || 'de';

export function setLanguage(lang) {
    if (translations[lang]) {
        currentLang = lang;
        localStorage.setItem('void_language', lang);
    }
}

export function t(key) {
    return translations[currentLang][key] || key;
}