68 lines
1.4 KiB
C++
68 lines
1.4 KiB
C++
#ifndef MYX_QT_TRANSLATORS_INL_HPP_
|
|
#define MYX_QT_TRANSLATORS_INL_HPP_
|
|
|
|
#pragma once
|
|
|
|
#include <myx/base/config.hpp>
|
|
|
|
#ifndef MYXLIB_HEADER_ONLY
|
|
#include <myx/qt/translators.hpp>
|
|
#endif
|
|
|
|
#include <QCoreApplication>
|
|
#include <QLibraryInfo>
|
|
#include <QLocale>
|
|
|
|
namespace myx {
|
|
|
|
namespace qt {
|
|
|
|
MYXLIB_INLINE 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( "qtbase_" + QLocale::system().name(),
|
|
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )
|
|
{
|
|
translators.append( translator );
|
|
}
|
|
else
|
|
{
|
|
translator->deleteLater();
|
|
}
|
|
|
|
for ( auto* i : qAsConst( translators ) )
|
|
{
|
|
qApp->installTranslator( i );
|
|
}
|
|
} // append_translators
|
|
|
|
} // namespace qt
|
|
|
|
} // namespace myx
|
|
|
|
#endif // MYX_QT_TRANSLATORS_INL_HPP_
|