GH-3334 Show English variants correctly

This will no longer show 'American English' with the statistics of
'British English', yet show the correct translations - and will now
display 'British English'.
This commit is contained in:
Jamie Mansfield 2021-04-08 18:05:44 +01:00
parent d6dc22d57c
commit 64617201b0
No known key found for this signature in database
GPG Key ID: 36F61598F39F67B0

View File

@ -15,7 +15,19 @@
#include "POTranslator.h" #include "POTranslator.h"
const static QLatin1Literal defaultLangCode("en"); const static QLatin1Literal defaultLangCode("en_US");
static QLocale getLocaleFromKey(const QString &key) {
if(key == "pt") {
return QLocale("pt_PT");
}
else if (key == "en") {
return QLocale("en_GB");
}
else {
return QLocale(key);
}
}
enum class FileType enum class FileType
{ {
@ -33,12 +45,7 @@ struct Language
Language(const QString & _key) Language(const QString & _key)
{ {
key = _key; key = _key;
if(key == "pt") { locale = getLocaleFromKey(key);
locale = QLocale("pt_PT");
}
else {
locale = QLocale(key);
}
updated = (key == defaultLangCode); updated = (key == defaultLangCode);
} }
@ -452,7 +459,7 @@ bool TranslationsModel::selectLanguage(QString key)
* In a multithreaded application, the default locale should be set at application startup, before any non-GUI threads are created. * In a multithreaded application, the default locale should be set at application startup, before any non-GUI threads are created.
* This function is not reentrant. * This function is not reentrant.
*/ */
QLocale locale(langCode); QLocale locale = getLocaleFromKey(langCode);
QLocale::setDefault(locale); QLocale::setDefault(locale);
// if it's the default UI language, finish // if it's the default UI language, finish