From 4c81a982139d8d80c451bbcde3ec25d8050b7a7c Mon Sep 17 00:00:00 2001 From: Davide Pesavento Date: Thu, 18 Sep 2025 04:10:43 -0400 Subject: [PATCH] Qt: Fix detection of system language (#3573) --- src/duckstation-qt/qthost.cpp | 8 ++++---- src/duckstation-qt/translations/duckstation-qt_es.ts | 0 2 files changed, 4 insertions(+), 4 deletions(-) mode change 100755 => 100644 src/duckstation-qt/translations/duckstation-qt_es.ts diff --git a/src/duckstation-qt/qthost.cpp b/src/duckstation-qt/qthost.cpp index 2cb77d45c..84d6ebd34 100644 --- a/src/duckstation-qt/qthost.cpp +++ b/src/duckstation-qt/qthost.cpp @@ -2315,7 +2315,7 @@ void QtHost::UpdateApplicationLanguage(QWidget* dialog_parent) { QMessageBox::warning( dialog_parent, QStringLiteral("Translation Error"), - QStringLiteral("Failed to find load base translation file for '%1':\n%2").arg(qlanguage).arg(base_path)); + QStringLiteral("Failed to load base translation file for '%1':\n%2").arg(qlanguage).arg(base_path)); delete base_translator; } else @@ -2421,7 +2421,7 @@ const char* Host::GetLanguageName(std::string_view language_code) std::string_view QtHost::GetSystemLanguage() { - std::string locname = QLocale::system().name().toStdString(); + std::string locname = QLocale::system().name(QLocale::TagSeparator::Dash).toStdString(); // Does this match any of our translations? for (const auto& [lname, lcode] : Host::GetAvailableLanguageList()) @@ -2513,8 +2513,8 @@ void QtHost::UpdateApplicationLocale(std::string_view language) // If the system locale is using the same language, then use the system locale. // Otherwise we'll be using that ugly US date format in Straya mate. s_state.app_locale = QLocale::system(); - const std::string system_locale_name = s_state.app_locale.name().toStdString(); - if (s_state.app_locale.name().startsWith(QLatin1StringView(language), Qt::CaseInsensitive)) + const QString system_locale_name = s_state.app_locale.name(QLocale::TagSeparator::Dash); + if (system_locale_name.startsWith(QLatin1StringView(language), Qt::CaseInsensitive)) { INFO_LOG("Using system locale for {}.", language); return; diff --git a/src/duckstation-qt/translations/duckstation-qt_es.ts b/src/duckstation-qt/translations/duckstation-qt_es.ts old mode 100755 new mode 100644