const DEFAULT_LANGUAGE = 'en';
const TRANSLATIONS = {
    en: {
        notifications: 'Notifications',
        noMessages: 'Nothing new to see here yet',
        markAllAsRead: 'Mark all as read',
        markAsRead: 'Mark as read',
        markAsUnread: 'Mark as unread',
        removeMessage: 'Remove the message',
        deleteAllMessages: 'Delete all messages',
        next: 'Next',
        prev: 'Previous'
    },
    tr: {
        notifications: 'Bildirimler',
        noMessages: 'Burada henüz görülecek yeni bir şey yok',
        markAllAsRead: 'Hepsini okunmuş olarak işaretle',
        markAsRead: 'Okunmuş olarak işaretle',
        markAsUnread: 'Okunmamış olarak işaretle',
        removeMessage: 'Bu mesajı sil',
        deleteAllMessages: 'Tüm mesajları sil',
        next: 'Sonraki',
        prev: 'Önceki'
    },
    hu: {
        notifications: 'értesítéseket',
        noMessages: 'Itt még semmi újat nem látni',
        markAllAsRead: 'összes megjelölése olvasottként',
        markAsRead: 'Jelöld olvasottként',
        markAsUnread: 'Megjelölés olvasatlanként',
        removeMessage: 'Távolítsa el az üzenetet',
        deleteAllMessages: 'Delete all messages',
        next: 'Következő',
        prev: 'Előző'
    },
    az: {
        notifications: "Bildirişlər",
        noMessages: "Burada hələ yeni heç nə yoxdur",
        markAllAsRead: "Hamısını oxunmuş kimi işarələ",
        markAsRead: "Oxunmuş kimi işarələ",
        markAsUnread: "Oxunmamış kimi işarələ",
        removeMessage: "Mesajı sil",
        deleteAllMessages: "Bütün mesajları sil",
        next: "Növbəti",
        prev: "Əvvəlki"
    },
    es: {
        notifications: "Notificaciones",
        noMessages: "Aún no hay nada nuevo por aquí",
        markAllAsRead: "Marcar todo como leído",
        markAsRead: "Marcar como leído",
        markAsUnread: "Marcar como no leído",
        removeMessage: "Eliminar el mensaje",
        deleteAllMessages: "Eliminar todos los mensajes",
        next: "Siguiente",
        prev: "Anterior"
    }
};
export const translate = (key, customLang, values) => {
    const lang = customLang;
    let translation = TRANSLATIONS[lang !== undefined && lang in TRANSLATIONS ? lang : DEFAULT_LANGUAGE][key];
    if (values !== undefined) {
        for (const [key, value] of Object.entries(values.values)) {
            const regex = new RegExp(`{${key}}`, 'g');
            translation = translation.replace(regex, value);
        }
    }
    return translation;
};
export const getTranslations = (url) => {
    // fetch url, get the data, replace the TRANSLATIONS content
    return new Promise((resolve) => {
        fetch(url)
            .then((res) => res.json())
            .then((data) => {
            Object.keys(data).forEach((item) => {
                if (!TRANSLATIONS[item]) {
                    TRANSLATIONS[item] = {};
                }
                for (let key in data[item]) {
                    TRANSLATIONS[item][key] = data[item][key];
                }
            });
            resolve(true);
        })
            .catch((err) => {
            console.error('Failed to fetch translations:', err);
            resolve(false);
        });
    });
};
