summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/yuzu/configuration/configure_system.cpp36
-rw-r--r--src/yuzu/configuration/configure_system.ui12
2 files changed, 47 insertions, 1 deletions
diff --git a/src/yuzu/configuration/configure_system.cpp b/src/yuzu/configuration/configure_system.cpp
index 9b14e5903..94049f2f4 100644
--- a/src/yuzu/configuration/configure_system.cpp
+++ b/src/yuzu/configuration/configure_system.cpp
@@ -14,6 +14,26 @@
14#include "yuzu/configuration/configuration_shared.h" 14#include "yuzu/configuration/configuration_shared.h"
15#include "yuzu/configuration/configure_system.h" 15#include "yuzu/configuration/configure_system.h"
16 16
17constexpr std::array<u32, 7> LOCALE_BLOCKLIST{
18 // pzzefezrpnkzeidfej
19 // thhsrnhutlohsternp
20 // BHH4CG U
21 // Raa1AB S
22 // nn9
23 // ts
24 0b0100011100001100000, // Japan
25 0b0000001101001100100, // Americas
26 0b0100110100001000010, // Europe
27 0b0100110100001000010, // Australia
28 0b0000000000000000000, // China
29 0b0100111100001000000, // Korea
30 0b0100111100001000000, // Taiwan
31};
32
33static bool IsValidLocale(u32 region_index, u32 language_index) {
34 return ((LOCALE_BLOCKLIST.at(region_index) >> language_index) & 1) == 0;
35}
36
17ConfigureSystem::ConfigureSystem(Core::System& system_, QWidget* parent) 37ConfigureSystem::ConfigureSystem(Core::System& system_, QWidget* parent)
18 : QWidget(parent), ui{std::make_unique<Ui::ConfigureSystem>()}, system{system_} { 38 : QWidget(parent), ui{std::make_unique<Ui::ConfigureSystem>()}, system{system_} {
19 ui->setupUi(this); 39 ui->setupUi(this);
@@ -34,6 +54,22 @@ ConfigureSystem::ConfigureSystem(Core::System& system_, QWidget* parent)
34 } 54 }
35 }); 55 });
36 56
57 const auto locale_check = [this](int index) {
58 const bool valid_locale =
59 IsValidLocale(ui->combo_region->currentIndex(), ui->combo_language->currentIndex());
60 ui->label_warn_invalid_locale->setVisible(!valid_locale);
61 if (!valid_locale) {
62 ui->label_warn_invalid_locale->setText(
63 tr("Warning: \"%1\" is not a valid language for region \"%2\"")
64 .arg(ui->combo_language->currentText())
65 .arg(ui->combo_region->currentText()));
66 }
67 };
68
69 connect(ui->combo_language, qOverload<int>(&QComboBox::currentIndexChanged), this,
70 locale_check);
71 connect(ui->combo_region, qOverload<int>(&QComboBox::currentIndexChanged), this, locale_check);
72
37 ui->label_console_id->setVisible(Settings::IsConfiguringGlobal()); 73 ui->label_console_id->setVisible(Settings::IsConfiguringGlobal());
38 ui->button_regenerate_console_id->setVisible(Settings::IsConfiguringGlobal()); 74 ui->button_regenerate_console_id->setVisible(Settings::IsConfiguringGlobal());
39 75
diff --git a/src/yuzu/configuration/configure_system.ui b/src/yuzu/configuration/configure_system.ui
index 46892f5c1..0459cd924 100644
--- a/src/yuzu/configuration/configure_system.ui
+++ b/src/yuzu/configuration/configure_system.ui
@@ -326,7 +326,7 @@
326 </item> 326 </item>
327 <item> 327 <item>
328 <property name="text"> 328 <property name="text">
329 <string>English</string> 329 <string>American English</string>
330 </property> 330 </property>
331 </item> 331 </item>
332 <item> 332 <item>
@@ -546,6 +546,16 @@
546 </spacer> 546 </spacer>
547 </item> 547 </item>
548 <item> 548 <item>
549 <widget class="QLabel" name="label_warn_invalid_locale">
550 <property name="text">
551 <string></string>
552 </property>
553 <property name="wordWrap">
554 <bool>true</bool>
555 </property>
556 </widget>
557 </item>
558 <item>
549 <widget class="QLabel" name="label_disable_info"> 559 <widget class="QLabel" name="label_disable_info">
550 <property name="text"> 560 <property name="text">
551 <string>System settings are available only when game is not running.</string> 561 <string>System settings are available only when game is not running.</string>