Files

39 lines
1.5 KiB
C++

#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.";
}