From 670c8ed87c14b316bac80b2971c9991d1c5385cf Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 11 Feb 2026 13:51:01 +0100 Subject: [PATCH] Improve culture selection using Accept-Language header When no culture cookie is present, use the browser's Accept-Language header to determine the user's preferred culture. This culture is applied and stored in a cookie, enhancing localization by respecting user preferences instead of always defaulting to the application's default language. --- EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs b/EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs index c13e8a10..ea3200e6 100644 --- a/EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs +++ b/EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs @@ -24,9 +24,13 @@ public class CultureMiddleware if (string.IsNullOrEmpty(cookieValue)) { - context.Response.Cookies.SetCulture(_cultures.Default.Language); - CultureInfo.CurrentCulture = new CultureInfo(_cultures.Default.Language); - CultureInfo.CurrentUICulture = new CultureInfo(_cultures.Default.Language); + var requestCulture = context.GetCultureByAcceptLanguage()?.Name; + var culture = _cultures.GetOrDefault(requestCulture); + var cultureInfo = culture.Info ?? new CultureInfo(culture.Language); + + context.Response.Cookies.SetCulture(culture.Language); + CultureInfo.CurrentCulture = cultureInfo; + CultureInfo.CurrentUICulture = cultureInfo; } await _next(context);