diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index 5b38e887d..1f111ca09 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -199,10 +199,6 @@ void WebApplication::translateDocument(QString &data) { const QRegularExpression regex("QBT_TR\\((([^\\)]|\\)(?!QBT_TR))+)\\)QBT_TR\\[CONTEXT=([a-zA-Z_][a-zA-Z0-9_]*)\\]"); - const bool isTranslationNeeded = !m_currentLocale.startsWith("en") - || m_currentLocale.startsWith("en_AU") || m_currentLocale.startsWith("en_GB") - || !m_translator.isEmpty(); - int i = 0; bool found = true; while (i < data.size() && found) { @@ -212,12 +208,12 @@ void WebApplication::translateDocument(QString &data) const QString sourceText = regexMatch.captured(1); const QString context = regexMatch.captured(3); - QString translation = sourceText; - if (isTranslationNeeded) { - const QString loadedText = m_translator.translate(context.toUtf8().constData(), sourceText.toUtf8().constData(), nullptr, 1); - if (!loadedText.isEmpty()) - translation = loadedText; - } + const QString loadedText = m_translationFileLoaded + ? m_translator.translate(context.toUtf8().constData(), sourceText.toUtf8().constData()) + : QString(); + // `loadedText` is empty when translation is not provided + // it should fallback to `sourceText` + QString translation = loadedText.isEmpty() ? sourceText : loadedText; // Use HTML code for quotes to prevent issues with JS translation.replace('\'', "'"); @@ -436,13 +432,14 @@ void WebApplication::configure() if (m_currentLocale != newLocale) { m_currentLocale = newLocale; m_translatedFiles.clear(); - if (m_translator.load(m_rootFolder + QLatin1String("/translations/webui_") + m_currentLocale)) { - LogMsg(tr("Web UI translation for selected locale (%1) is successfully loaded.") - .arg(m_currentLocale)); + + m_translationFileLoaded = m_translator.load(m_rootFolder + QLatin1String("/translations/webui_") + newLocale); + if (m_translationFileLoaded) { + LogMsg(tr("Web UI translation for selected locale (%1) has been successfully loaded.") + .arg(newLocale)); } else { - LogMsg(tr("Couldn't load Web UI translation for selected locale (%1). Falling back to default (en).") - .arg(m_currentLocale), Log::WARNING); + LogMsg(tr("Couldn't load Web UI translation for selected locale (%1).").arg(newLocale), Log::WARNING); } } diff --git a/src/webui/webapplication.h b/src/webui/webapplication.h index 71b560444..c3e84f1d7 100644 --- a/src/webui/webapplication.h +++ b/src/webui/webapplication.h @@ -146,6 +146,7 @@ private: QMap m_translatedFiles; QString m_currentLocale; QTranslator m_translator; + bool m_translationFileLoaded = false; bool m_isLocalAuthEnabled; bool m_isAuthSubnetWhitelistEnabled; diff --git a/src/webui/www/translations/webui_en.ts b/src/webui/www/translations/webui_en.ts index 6af096bb6..c6c750bdd 100644 --- a/src/webui/www/translations/webui_en.ts +++ b/src/webui/www/translations/webui_en.ts @@ -5,7 +5,7 @@ AboutDlg About - + About