summaryrefslogtreecommitdiffstats
path: root/src/linguist/shared/translator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/linguist/shared/translator.cpp')
-rw-r--r--src/linguist/shared/translator.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/linguist/shared/translator.cpp b/src/linguist/shared/translator.cpp
index b52b8a253..46f4a067f 100644
--- a/src/linguist/shared/translator.cpp
+++ b/src/linguist/shared/translator.cpp
@@ -19,7 +19,6 @@
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
#include <QtCore/QLocale>
-#include <QtCore/QRegularExpression>
#include <QtCore/QTextStream>
#include <private/qtranslator_p.h>
@@ -339,10 +338,14 @@ void Translator::languageAndTerritory(QStringView languageCode, QLocale::Languag
{
QLocale::Language language = QLocale::AnyLanguage;
QLocale::Territory territory = QLocale::AnyTerritory;
- const auto underScore = languageCode.indexOf(u'_'); // "de_DE"
- if (underScore != -1) {
- language = QLocale::codeToLanguage(languageCode.left(underScore));
- territory = QLocale::codeToTerritory(languageCode.mid(underScore + 1));
+ auto separator = languageCode.indexOf(u'_'); // "de_DE"
+ if (separator == -1) {
+ // compatibility with older .ts files
+ separator = languageCode.indexOf(u'-'); // "de-DE"
+ }
+ if (separator != -1) {
+ language = QLocale::codeToLanguage(languageCode.left(separator));
+ territory = QLocale::codeToTerritory(languageCode.mid(separator + 1));
} else {
language = QLocale::codeToLanguage(languageCode);
territory = QLocale(language).territory();