diff options
Diffstat (limited to 'src/linguist/shared/translator.cpp')
| -rw-r--r-- | src/linguist/shared/translator.cpp | 13 |
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(); |
