|
|
@ -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 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; |
|
|
|
int i = 0; |
|
|
|
bool found = true; |
|
|
|
bool found = true; |
|
|
|
while (i < data.size() && found) { |
|
|
|
while (i < data.size() && found) { |
|
|
@ -212,12 +208,12 @@ void WebApplication::translateDocument(QString &data) |
|
|
|
const QString sourceText = regexMatch.captured(1); |
|
|
|
const QString sourceText = regexMatch.captured(1); |
|
|
|
const QString context = regexMatch.captured(3); |
|
|
|
const QString context = regexMatch.captured(3); |
|
|
|
|
|
|
|
|
|
|
|
QString translation = sourceText; |
|
|
|
const QString loadedText = m_translationFileLoaded |
|
|
|
if (isTranslationNeeded) { |
|
|
|
? m_translator.translate(context.toUtf8().constData(), sourceText.toUtf8().constData()) |
|
|
|
const QString loadedText = m_translator.translate(context.toUtf8().constData(), sourceText.toUtf8().constData(), nullptr, 1); |
|
|
|
: QString(); |
|
|
|
if (!loadedText.isEmpty()) |
|
|
|
// `loadedText` is empty when translation is not provided
|
|
|
|
translation = loadedText; |
|
|
|
// it should fallback to `sourceText`
|
|
|
|
} |
|
|
|
QString translation = loadedText.isEmpty() ? sourceText : loadedText; |
|
|
|
|
|
|
|
|
|
|
|
// Use HTML code for quotes to prevent issues with JS
|
|
|
|
// Use HTML code for quotes to prevent issues with JS
|
|
|
|
translation.replace('\'', "'"); |
|
|
|
translation.replace('\'', "'"); |
|
|
@ -436,13 +432,14 @@ void WebApplication::configure() |
|
|
|
if (m_currentLocale != newLocale) { |
|
|
|
if (m_currentLocale != newLocale) { |
|
|
|
m_currentLocale = newLocale; |
|
|
|
m_currentLocale = newLocale; |
|
|
|
m_translatedFiles.clear(); |
|
|
|
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.") |
|
|
|
m_translationFileLoaded = m_translator.load(m_rootFolder + QLatin1String("/translations/webui_") + newLocale); |
|
|
|
.arg(m_currentLocale)); |
|
|
|
if (m_translationFileLoaded) { |
|
|
|
|
|
|
|
LogMsg(tr("Web UI translation for selected locale (%1) has been successfully loaded.") |
|
|
|
|
|
|
|
.arg(newLocale)); |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
LogMsg(tr("Couldn't load Web UI translation for selected locale (%1). Falling back to default (en).") |
|
|
|
LogMsg(tr("Couldn't load Web UI translation for selected locale (%1).").arg(newLocale), Log::WARNING); |
|
|
|
.arg(m_currentLocale), Log::WARNING); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|