#include "backend.h"

#include <QDebug>
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QTranslator>

extern QTranslator translator;

Backend::Backend() : QObject()
{
}

//===================================================================================================
// Fonction :   Reçoit le code de la langue (par exemple 'en_EN') sélectionnée par l'utilisateur,
//              supprime le fichier de langue en cours et charge le nouveau.
//===================================================================================================
void Backend::change_langue(QString lang)
{
    if (!translator.isEmpty()) QApplication::instance()->removeTranslator(&translator);

    if (translator.load(":/shipheart_"+ lang))
    {
        if (QApplication::instance()->installTranslator(&translator))
        {
            QQmlApplicationEngine *engine = QApplication::instance()->findChild<QQmlApplicationEngine *>("currentEngine");
            engine->retranslate();
        }
        else qDebug() << "\tL'installation de " << lang << " a rencontré une erreur. Aucune langue n'est désormais installée (retour au FR)";
    }
    else qDebug() << "\tLe chargement de " << lang << " a rencontré une erreur. Aucune langue n'est désormais chargée (retour au FR)";

    QQmlApplicationEngine *engine = QApplication::instance()->findChild<QQmlApplicationEngine *>("currentEngine");
    engine->retranslate();

    qDebug() << "L'activation de la langue [" << lang << "] a été effectuée avec succès.";
}

