39 lines
1.5 KiB
C++
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.";
|
|
}
|
|
|