myxlib/src/qt/translators.cpp

58 lines
1.2 KiB
C++

#include "config.hpp"
#include "translators.hpp"
#include <QCoreApplication>
#include <QLocale>
#include <QLibraryInfo>
namespace myx {
namespace qt {
void append_translators( QTranslatorsList& translators, const QString& appName )
{
auto* translator = new QTranslator( qApp );
if ( translator->load( QLocale(), appName, QStringLiteral( "_" ),
QStringLiteral( ":/qm" ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
translator = new QTranslator( qApp );
if ( translator->load( QLocale::system(),
QStringLiteral( "qt" ), QStringLiteral( "_" ),
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
translator = new QTranslator( qApp );
if ( translator->load( QStringLiteral( "qtbase_" ) + QLocale::system().name(),
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
for ( auto i : qAsConst( translators ) )
{
qApp->installTranslator( i );
}
} // install_translators
} // namespace qt
} // namespace myx