From 5177399bc20fb14aa6709399f79a27f75d030f7d Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Wed, 5 Mar 2025 16:31:13 +0100 Subject: [PATCH] Changed to UI culture by default for web output --- .../Library/Localization/LocalizationService.cs | 14 ++++++++++++++ .../WebserverCore/Middlewares/LanguageFilter.cs | 3 ++- .../WebserverCore/Services/SystemInfoProvider.cs | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Duplicati/Library/Localization/LocalizationService.cs b/Duplicati/Library/Localization/LocalizationService.cs index 8d62b88fd..636a75217 100644 --- a/Duplicati/Library/Localization/LocalizationService.cs +++ b/Duplicati/Library/Localization/LocalizationService.cs @@ -98,6 +98,20 @@ namespace Duplicati.Library.Localization } } + /// + /// Gets a localization provider with the current UI language + /// + public static ILocalizationService CurrentUI + { + get + { + var lc = LocalizationContext.Current; + if (!string.IsNullOrWhiteSpace(lc)) + return Get(new CultureInfo(lc)); + return Get(CultureInfo.CurrentUICulture); + } + } + /// /// Gets a localization provider with the OS install language /// diff --git a/Duplicati/WebserverCore/Middlewares/LanguageFilter.cs b/Duplicati/WebserverCore/Middlewares/LanguageFilter.cs index 353720ebf..a376baee5 100644 --- a/Duplicati/WebserverCore/Middlewares/LanguageFilter.cs +++ b/Duplicati/WebserverCore/Middlewares/LanguageFilter.cs @@ -18,6 +18,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. +using System.Globalization; using Duplicati.Library.Localization; namespace Duplicati.WebserverCore.Middlewares; @@ -30,7 +31,7 @@ public class LanguageFilter : IEndpointFilter ? LocalizationService.ParseCulture(locale) : null; - using (ci == null ? null : LocalizationService.TemporaryContext(ci)) + using (LocalizationService.TemporaryContext(ci ?? CultureInfo.CurrentUICulture)) return await next(context); } diff --git a/Duplicati/WebserverCore/Services/SystemInfoProvider.cs b/Duplicati/WebserverCore/Services/SystemInfoProvider.cs index 8d9679c64..724732457 100644 --- a/Duplicati/WebserverCore/Services/SystemInfoProvider.cs +++ b/Duplicati/WebserverCore/Services/SystemInfoProvider.cs @@ -273,7 +273,7 @@ public class SystemInfoProvider : ISystemInfoProvider public SystemInfoDto GetSystemInfo(CultureInfo? browserlanguage) { browserlanguage ??= CultureInfo.InvariantCulture; - var currentLanguage = LocalizationService.Current?.Culture.Name; + var currentLanguage = LocalizationService.CurrentUI?.Culture.Name; if (string.IsNullOrWhiteSpace(currentLanguage)) currentLanguage = CultureInfo.CurrentUICulture.Name;