Merge 4d1a2c75c6c205601763aac07085f58cacb7f5be into 42d77cd720eb42845c2afb77c6d7157e02c8c325

This commit is contained in:
OpenSauce 2025-03-12 22:13:57 -03:00 committed by GitHub
commit 391981c53a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3537,16 +3537,31 @@ void GMainWindow::LoadTranslation() {
return;
}
bool loaded;
QString language = UISettings::values.language;
if (UISettings::values.language.isEmpty()) {
// Use the system's default locale
loaded = translator.load(QLocale::system(), {}, {}, QStringLiteral(":/languages/"));
} else {
// Otherwise load from the specified file
loaded = translator.load(UISettings::values.language, QStringLiteral(":/languages/"));
if (language.isEmpty()) {
#ifdef _WIN32
LANGID lang_id = GetUserDefaultUILanguage();
wchar_t locale_name[LOCALE_NAME_MAX_LENGTH];
if (LCIDToLocaleName(MAKELCID(lang_id, SORT_DEFAULT), locale_name, LOCALE_NAME_MAX_LENGTH,
0)) {
char locale_name_str[LOCALE_NAME_MAX_LENGTH];
WideCharToMultiByte(CP_UTF8, 0, locale_name, -1, locale_name_str,
LOCALE_NAME_MAX_LENGTH, nullptr, nullptr);
language = QString::fromUtf8(locale_name_str);
} else {
language = QLocale::system().name();
}
#else
language = QLocale::system().name();
#endif
}
// For compatibility with translation files
language.replace(QLatin1Char('-'), QLatin1Char('_'));
bool loaded = translator.load(language, QStringLiteral(":/languages/"));
if (loaded) {
qApp->installTranslator(&translator);
} else {