From c40d9ac64ff9cf819941e80037924d5c9cc3afcc Mon Sep 17 00:00:00 2001 From: Qiutong Shen Date: Mon, 22 Sep 2025 15:26:48 +0800 Subject: [PATCH] Fix ApplicationLanguages.PrimaryLanguageOverride to allow empty string to clear override - Modified validation logic in ApplicationLanguages.cpp to allow empty strings - Empty string input now clears the language override instead of throwing exception - Non-empty strings still validated using IsWellFormedTag() Fixes #17 --- .../src/ApplicationLanguages.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/MRTCore/mrt/Microsoft.Windows.ApplicationModel.Resources/src/ApplicationLanguages.cpp b/dev/MRTCore/mrt/Microsoft.Windows.ApplicationModel.Resources/src/ApplicationLanguages.cpp index 892a3ab5..76479361 100644 --- a/dev/MRTCore/mrt/Microsoft.Windows.ApplicationModel.Resources/src/ApplicationLanguages.cpp +++ b/dev/MRTCore/mrt/Microsoft.Windows.ApplicationModel.Resources/src/ApplicationLanguages.cpp @@ -41,7 +41,8 @@ namespace winrt::Microsoft::Windows::Globalization::implementation void ApplicationLanguages::PrimaryLanguageOverride(hstring const& language) { - bool isValidLanguageTag = IsWellFormedTag(language.c_str()); + // Allow empty string to clear the override, otherwise validate the language tag + bool isValidLanguageTag = language.empty() || IsWellFormedTag(language.c_str()); THROW_HR_IF_MSG(E_INVALIDARG, !isValidLanguageTag, "The parameter is incorrect");