QTranslator switching in CalamaresUtils.
This commit is contained in:
parent
fc4ce3d23b
commit
8b343ace4a
@ -44,6 +44,10 @@ namespace CalamaresUtils
|
|||||||
static QDir s_appDataDir( CMAKE_INSTALL_FULL_DATADIR );
|
static QDir s_appDataDir( CMAKE_INSTALL_FULL_DATADIR );
|
||||||
static bool s_isAppDataDirOverridden = false;
|
static bool s_isAppDataDirOverridden = false;
|
||||||
|
|
||||||
|
static QTranslator* s_translator = nullptr;
|
||||||
|
static QTranslator* s_qtTranslator = nullptr;
|
||||||
|
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
isWritableDir( const QDir& dir )
|
isWritableDir( const QDir& dir )
|
||||||
{
|
{
|
||||||
@ -122,9 +126,10 @@ appLogDir()
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
installTranslator( QObject* parent )
|
installTranslator( const QString& localeName, QObject* parent )
|
||||||
{
|
{
|
||||||
QString locale = QLocale::system().uiLanguages().first().replace( "-", "_" );
|
QString locale = localeName;
|
||||||
|
locale.replace( "-", "_" );
|
||||||
|
|
||||||
if ( locale == "C" )
|
if ( locale == "C" )
|
||||||
locale = "en";
|
locale = "en";
|
||||||
@ -141,7 +146,14 @@ installTranslator( QObject* parent )
|
|||||||
translator->load( QString( ":/lang/calamares_en" ) );
|
translator->load( QString( ":/lang/calamares_en" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( s_translator )
|
||||||
|
{
|
||||||
|
QCoreApplication::removeTranslator( s_translator );
|
||||||
|
delete s_translator;
|
||||||
|
}
|
||||||
|
|
||||||
QCoreApplication::installTranslator( translator );
|
QCoreApplication::installTranslator( translator );
|
||||||
|
s_translator = translator;
|
||||||
|
|
||||||
// Qt translations
|
// Qt translations
|
||||||
translator = new QTranslator( parent );
|
translator = new QTranslator( parent );
|
||||||
@ -154,7 +166,13 @@ installTranslator( QObject* parent )
|
|||||||
qDebug() << "Translation: Qt: Using default locale, system locale one not found:" << locale;
|
qDebug() << "Translation: Qt: Using default locale, system locale one not found:" << locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( s_qtTranslator )
|
||||||
|
{
|
||||||
|
QCoreApplication::removeTranslator( s_qtTranslator );
|
||||||
|
delete s_qtTranslator;
|
||||||
|
}
|
||||||
QCoreApplication::installTranslator( translator );
|
QCoreApplication::installTranslator( translator );
|
||||||
|
s_qtTranslator = translator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ namespace CalamaresUtils
|
|||||||
DLLEXPORT QDir appDataDir();
|
DLLEXPORT QDir appDataDir();
|
||||||
DLLEXPORT QDir appLogDir();
|
DLLEXPORT QDir appLogDir();
|
||||||
DLLEXPORT QDir systemLibDir();
|
DLLEXPORT QDir systemLibDir();
|
||||||
DLLEXPORT void installTranslator( QObject* parent );
|
DLLEXPORT void installTranslator( const QString& localeName, QObject* parent );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Override app data dir. Only for testing purposes.
|
* Override app data dir. Only for testing purposes.
|
||||||
|
Loading…
Reference in New Issue
Block a user