Merge pull request #9514 from ColinKinloch/en_gb
settings: warn on invalid regon/language combinations
This commit is contained in:
		| @@ -14,6 +14,26 @@ | ||||
| #include "yuzu/configuration/configuration_shared.h" | ||||
| #include "yuzu/configuration/configure_system.h" | ||||
|  | ||||
| constexpr std::array<u32, 7> LOCALE_BLOCKLIST{ | ||||
|     // pzzefezrpnkzeidfej | ||||
|     // thhsrnhutlohsternp | ||||
|     // BHH4CG          U | ||||
|     // Raa1AB          S | ||||
|     //  nn9 | ||||
|     //  ts | ||||
|     0b0100011100001100000, // Japan | ||||
|     0b0000001101001100100, // Americas | ||||
|     0b0100110100001000010, // Europe | ||||
|     0b0100110100001000010, // Australia | ||||
|     0b0000000000000000000, // China | ||||
|     0b0100111100001000000, // Korea | ||||
|     0b0100111100001000000, // Taiwan | ||||
| }; | ||||
|  | ||||
| static bool IsValidLocale(u32 region_index, u32 language_index) { | ||||
|     return ((LOCALE_BLOCKLIST.at(region_index) >> language_index) & 1) == 0; | ||||
| } | ||||
|  | ||||
| ConfigureSystem::ConfigureSystem(Core::System& system_, QWidget* parent) | ||||
|     : QWidget(parent), ui{std::make_unique<Ui::ConfigureSystem>()}, system{system_} { | ||||
|     ui->setupUi(this); | ||||
| @@ -34,6 +54,22 @@ ConfigureSystem::ConfigureSystem(Core::System& system_, QWidget* parent) | ||||
|         } | ||||
|     }); | ||||
|  | ||||
|     const auto locale_check = [this](int index) { | ||||
|         const bool valid_locale = | ||||
|             IsValidLocale(ui->combo_region->currentIndex(), ui->combo_language->currentIndex()); | ||||
|         ui->label_warn_invalid_locale->setVisible(!valid_locale); | ||||
|         if (!valid_locale) { | ||||
|             ui->label_warn_invalid_locale->setText( | ||||
|                 tr("Warning: \"%1\" is not a valid language for region \"%2\"") | ||||
|                     .arg(ui->combo_language->currentText()) | ||||
|                     .arg(ui->combo_region->currentText())); | ||||
|         } | ||||
|     }; | ||||
|  | ||||
|     connect(ui->combo_language, qOverload<int>(&QComboBox::currentIndexChanged), this, | ||||
|             locale_check); | ||||
|     connect(ui->combo_region, qOverload<int>(&QComboBox::currentIndexChanged), this, locale_check); | ||||
|  | ||||
|     ui->label_console_id->setVisible(Settings::IsConfiguringGlobal()); | ||||
|     ui->button_regenerate_console_id->setVisible(Settings::IsConfiguringGlobal()); | ||||
|  | ||||
|   | ||||
| @@ -326,7 +326,7 @@ | ||||
|             </item> | ||||
|             <item> | ||||
|              <property name="text"> | ||||
|               <string>English</string> | ||||
|               <string>American English</string> | ||||
|              </property> | ||||
|             </item> | ||||
|             <item> | ||||
| @@ -545,6 +545,16 @@ | ||||
|        </property> | ||||
|       </spacer> | ||||
|      </item> | ||||
|      <item> | ||||
|       <widget class="QLabel" name="label_warn_invalid_locale"> | ||||
|        <property name="text"> | ||||
|         <string></string> | ||||
|        </property> | ||||
|        <property name="wordWrap"> | ||||
|         <bool>true</bool> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
|       <widget class="QLabel" name="label_disable_info"> | ||||
|        <property name="text"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 liamwhite
					liamwhite