diff --git a/src/libcalamares/utils/Retranslator.cpp b/src/libcalamares/utils/Retranslator.cpp index 74617fa47..f3ae93836 100644 --- a/src/libcalamares/utils/Retranslator.cpp +++ b/src/libcalamares/utils/Retranslator.cpp @@ -80,14 +80,20 @@ BrandingLoader::tryLoad( QTranslator* translator ) { return false; } + // This is working backwards against m_prefix containing both + // a path and a branding-name. Split it in path + branding-name. + const int lastDirSeparator = m_prefix.lastIndexOf( QDir::separator() ); QString brandingTranslationsDirPath( m_prefix ); - brandingTranslationsDirPath.truncate( m_prefix.lastIndexOf( QDir::separator() ) ); - QDir brandingTranslationsDir( brandingTranslationsDirPath ); - if ( brandingTranslationsDir.exists() ) + brandingTranslationsDirPath.truncate( lastDirSeparator ); + QString filenameBase( m_prefix ); + filenameBase.remove( 0, lastDirSeparator + 1 ); + + + if ( QDir( brandingTranslationsDirPath ).exists() ) { - QString filenameBase( m_prefix ); - filenameBase.remove( 0, m_prefix.lastIndexOf( QDir::separator() ) + 1 ); - if ( translator->load( m_localeName, filenameBase, "_", brandingTranslationsDir.absolutePath() ) ) + const QString fileName = QStringLiteral( "%1_%2" ).arg( filenameBase, m_localeName ); + cDebug() << Logger::SubEntry << "Loading" << fileName << "from" << brandingTranslationsDirPath; + if ( translator->load( fileName, brandingTranslationsDirPath ) ) { cDebug() << Logger::SubEntry << "Branding using locale:" << m_localeName; return true;