From 113e2646172645ee0e838843c9750f19914cf469 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Fri, 30 Jun 2023 22:42:48 +1000 Subject: [PATCH] Qt: Fix theme names not being translatable --- pcsx2-qt/SettingWidgetBinder.h | 8 ++++++-- pcsx2-qt/Settings/InterfaceSettingsWidget.cpp | 2 +- pcsx2-qt/SetupWizardDialog.cpp | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pcsx2-qt/SettingWidgetBinder.h b/pcsx2-qt/SettingWidgetBinder.h index 3d010a8ff6..17b300b5a6 100644 --- a/pcsx2-qt/SettingWidgetBinder.h +++ b/pcsx2-qt/SettingWidgetBinder.h @@ -931,14 +931,18 @@ namespace SettingWidgetBinder template static inline void BindWidgetToEnumSetting(SettingsInterface* sif, WidgetType* widget, std::string section, std::string key, - const char** enum_names, const char** enum_values, const char* default_value) + const char** enum_names, const char** enum_values, const char* default_value, const char* translation_ctx = nullptr) { using Accessor = SettingAccessor; const std::string value = Host::GetBaseStringSettingValue(section.c_str(), key.c_str(), default_value); for (int i = 0; enum_names[i] != nullptr; i++) - widget->addItem(QString::fromUtf8(enum_names[i])); + { + widget->addItem(translation_ctx ? + qApp->translate(translation_ctx, enum_names[i]) : + QString::fromUtf8(enum_names[i])); + } int enum_index = -1; for (int i = 0; enum_values[i] != nullptr; i++) diff --git a/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp b/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp index 16b382a41e..393914dd9a 100644 --- a/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp +++ b/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp @@ -92,7 +92,7 @@ InterfaceSettingsWidget::InterfaceSettingsWidget(SettingsDialog* dialog, QWidget connect(m_ui.renderToSeparateWindow, &QCheckBox::stateChanged, this, &InterfaceSettingsWidget::onRenderToSeparateWindowChanged); SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.theme, "UI", "Theme", THEME_NAMES, THEME_VALUES, - QtHost::GetDefaultThemeName()); + QtHost::GetDefaultThemeName(), "InterfaceSettingsWidget"); connect(m_ui.theme, QOverload::of(&QComboBox::currentIndexChanged), [this]() { emit themeChanged(); }); populateLanguages(); diff --git a/pcsx2-qt/SetupWizardDialog.cpp b/pcsx2-qt/SetupWizardDialog.cpp index d60586a575..7e08384cb3 100644 --- a/pcsx2-qt/SetupWizardDialog.cpp +++ b/pcsx2-qt/SetupWizardDialog.cpp @@ -194,7 +194,7 @@ void SetupWizardDialog::setupUi() void SetupWizardDialog::setupLanguagePage() { SettingWidgetBinder::BindWidgetToEnumSetting(nullptr, m_ui.theme, "UI", "Theme", - InterfaceSettingsWidget::THEME_NAMES, InterfaceSettingsWidget::THEME_VALUES, QtHost::GetDefaultThemeName()); + InterfaceSettingsWidget::THEME_NAMES, InterfaceSettingsWidget::THEME_VALUES, QtHost::GetDefaultThemeName(), "InterfaceSettingsWidget"); connect(m_ui.theme, QOverload::of(&QComboBox::currentIndexChanged), this, &SetupWizardDialog::themeChanged); for (const std::pair& it : QtHost::GetAvailableLanguageList())